@decaf-ts/integrations 0.4.1-2 → 0.5.1

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 (50) hide show
  1. package/dist/integrations.cjs +4 -4
  2. package/dist/integrations.js +4 -4
  3. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +13 -5
  4. package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +37 -0
  5. package/lib/cjs/graph/engine/errors/index.cjs +3 -2
  6. package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +22 -0
  7. package/lib/cjs/graph/engine/execution/index.cjs +3 -2
  8. package/lib/cjs/graph/engine/index.cjs +4 -2
  9. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +54 -19
  10. package/lib/cjs/graph/engine/types.cjs +2 -2
  11. package/lib/cjs/graph/shared/nodes/flow-control.cjs +41 -3
  12. package/lib/cjs/index.cjs +3 -3
  13. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +7 -2
  14. package/lib/cjs/nest/keycloakAuthHandler.cjs +5 -3
  15. package/lib/cjs/nest/utils.cjs +15 -4
  16. package/lib/cjs/plugins/superset/templates.cjs +14 -20
  17. package/lib/esm/feature-flags/services/FeatureFlag.service.js +13 -5
  18. package/lib/esm/graph/engine/errors/GraphBreakSignal.js +32 -0
  19. package/lib/esm/graph/engine/errors/index.js +2 -1
  20. package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +17 -0
  21. package/lib/esm/graph/engine/execution/index.js +2 -1
  22. package/lib/esm/graph/engine/index.js +3 -1
  23. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +53 -18
  24. package/lib/esm/graph/engine/types.js +1 -1
  25. package/lib/esm/graph/shared/nodes/flow-control.js +39 -1
  26. package/lib/esm/index.js +3 -3
  27. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +7 -2
  28. package/lib/esm/nest/keycloakAuthHandler.js +4 -2
  29. package/lib/esm/nest/utils.js +14 -3
  30. package/lib/esm/plugins/superset/templates.js +13 -19
  31. package/lib/types/graph/engine/errors/GraphBreakSignal.d.cts +28 -0
  32. package/lib/types/graph/engine/errors/GraphBreakSignal.d.mts +28 -0
  33. package/lib/types/graph/engine/errors/index.d.cts +1 -0
  34. package/lib/types/graph/engine/errors/index.d.mts +1 -0
  35. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.cts +22 -0
  36. package/lib/types/graph/engine/execution/BreakGraphNodeExecutor.d.mts +22 -0
  37. package/lib/types/graph/engine/execution/index.d.cts +1 -0
  38. package/lib/types/graph/engine/execution/index.d.mts +1 -0
  39. package/lib/types/graph/engine/index.d.cts +2 -0
  40. package/lib/types/graph/engine/index.d.mts +2 -0
  41. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.cts +11 -3
  42. package/lib/types/graph/engine/loops/ForeachGraphNodeExecutor.d.mts +11 -3
  43. package/lib/types/graph/engine/types.d.cts +6 -0
  44. package/lib/types/graph/engine/types.d.mts +6 -0
  45. package/lib/types/graph/shared/nodes/flow-control.d.cts +12 -1
  46. package/lib/types/graph/shared/nodes/flow-control.d.mts +12 -1
  47. package/lib/types/index.d.cts +2 -2
  48. package/lib/types/index.d.mts +2 -2
  49. package/package.json +6 -3
  50. package/plugins/superset/Dockerfile +9 -9
@@ -181,8 +181,13 @@ let FeatureFlagService = class FeatureFlagService extends core_1.ModelService {
181
181
  const featureKeys = [...new Set(access.map((item) => item.featureKey))];
182
182
  if (featureKeys.length === 0)
183
183
  return {};
184
- const condition = core_1.Condition.attr("enabled").eq(true).and(core_1.Condition.attr("key").in(featureKeys.map(utils_js_1.normalizeFeatureName)));
185
- const enabledFlags = await this.repo.select().where(condition).execute(...args);
184
+ const condition = core_1.Condition.attr("enabled")
185
+ .eq(true)
186
+ .and(core_1.Condition.attr("key").in(featureKeys.map(utils_js_1.normalizeFeatureName)));
187
+ const enabledFlags = await this.repo
188
+ .select()
189
+ .where(condition)
190
+ .execute(...args);
186
191
  return enabledFlags.reduce((registry, flag) => {
187
192
  registry[flag.key] = flag.config ?? true;
188
193
  return registry;
@@ -212,6 +217,7 @@ let FeatureFlagService = class FeatureFlagService extends core_1.ModelService {
212
217
  const config = value && typeof value === "object" && !Array.isArray(value)
213
218
  ? value
214
219
  : { enabled: Boolean(value) };
220
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
215
221
  const { enabled: _ignoredEnabled, ...restConfig } = config;
216
222
  const normalizedKey = (0, utils_js_1.normalizeFeatureName)(key);
217
223
  const existing = await this.findOneBy("key", normalizedKey, ...args).catch(() => undefined);
@@ -237,7 +243,9 @@ let FeatureFlagService = class FeatureFlagService extends core_1.ModelService {
237
243
  enabled: (0, utils_js_1.isFeatureFlagEnabled)(value),
238
244
  },
239
245
  });
240
- results.push(existing ? await this.update(model, ...args) : await this.create(model, ...args));
246
+ results.push(existing
247
+ ? await this.update(model, ...args)
248
+ : await this.create(model, ...args));
241
249
  }
242
250
  this.cachedRegistry = await this.refreshCachedRegistry({
243
251
  ...options,
@@ -255,5 +263,5 @@ exports.FeatureFlagService = FeatureFlagService = __decorate([
255
263
  (0, core_1.service)(FeatureFlag_model_js_1.FeatureFlag),
256
264
  __metadata("design:paramtypes", [])
257
265
  ], FeatureFlagService);
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZUZsYWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mZWF0dXJlLWZsYWdzL3NlcnZpY2VzL0ZlYXR1cmVGbGFnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDRCQUF1QjtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0NBQTBDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUseUNBQW9DO0FBQzFELE9BQU8sRUFDTCxtQkFBbUIsR0FHcEIsOEJBQW1CO0FBVXBCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLG9CQUFvQixHQUNyQixzQkFBaUI7QUFDbEIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDJCQUEyQixFQUFFLHNCQUFpQjtBQVE1RSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLFlBQXlCO0lBTS9EO1FBQ0UsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTmIsV0FBTSxHQUFzQixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDdEQsbUJBQWMsR0FBd0IsRUFBRSxDQUFDO0lBTWpELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBVztRQUVkLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxDQUFDLENBQTBDLElBQUksRUFBRSxDQUFDO1FBQ3ZFLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQWlCLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FB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T0FBTyxFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQztvQkFDcEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXO29CQUNuQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7b0JBQ3ZCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtvQkFDN0IsTUFBTSxFQUFFO3dCQUNOLEdBQUcsVUFBVTt3QkFDYixPQUFPLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO3FCQUNyQztpQkFDRixDQUFDLENBQUM7WUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FDcEQ7WUFDRSxHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxzQkFBc0I7U0FDakQsRUFDRCxHQUFHLElBQUksQ0FDUixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUE7QUF0VVc7SUFEVCxVQUFVLENBQUMsaUJBQWlCLENBQUM7OzREQUN1QjtBQUoxQyxrQkFBa0I7SUFEOUIsT0FBTyxDQUFDLFdBQVcsQ0FBQzs7R0FDUixrQkFBa0IsQ0EwVTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBNb2RlbFNlcnZpY2UsXG4gIFJlcG9zaXRvcnksXG4gIHJlcG9zaXRvcnksXG4gIHNlcnZpY2UsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBSZXBvIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ0FjY2VzcyB9IGZyb20gXCIuLi9tb2RlbHMvRmVhdHVyZUZsYWdBY2Nlc3MubW9kZWxcIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnIH0gZnJvbSBcIi4uL21vZGVscy9GZWF0dXJlRmxhZy5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgRW52aXJvbm1lRmxhZ1JlYWRlcixcbiAgRmVhdHVyZUZsYWdSZWFkZXIsXG4gIEZlYXR1cmVGbGFnUmVhZGVyTGlrZSxcbn0gZnJvbSBcIi4uL3JlYWRlcnNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRmVhdHVyZUZsYWdBY2Nlc3NJbnB1dCxcbiAgRmVhdHVyZUZsYWdBY2Nlc3NRdWVyeSxcbiAgRmVhdHVyZUZsYWdBY2Nlc3NTdWJqZWN0LFxuICBGZWF0dXJlRmxhZ0NvbmZpZyxcbiAgRmVhdHVyZUZsYWdSZWFkZXJDb25maWcsXG4gIEZlYXR1cmVGbGFnUmVhZGVySW5wdXQsXG4gIEZlYXR1cmVGbGFnUmVnaXN0cnksXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgaXNGZWF0dXJlRmxhZ0VuYWJsZWQsXG4gIGlzRmVhdHVyZUZsYWdFbmFibGVkQnlOYW1lLFxuICBub3JtYWxpemVGZWF0dXJlTmFtZSxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleSwgbm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnIGV4dGVuZHMgRmVhdHVyZUZsYWdSZWFkZXJDb25maWcge1xuICByZWFkZXI/OiBGZWF0dXJlRmxhZ1JlYWRlckxpa2U7XG4gIHJlcG9zaXRvcnk/OiBSZXBvc2l0b3J5PEZlYXR1cmVGbGFnLCBhbnk+O1xufVxuXG5Ac2VydmljZShGZWF0dXJlRmxhZylcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2UgZXh0ZW5kcyBNb2RlbFNlcnZpY2U8RmVhdHVyZUZsYWc+IHtcbiAgcHJpdmF0ZSByZWFkZXI6IEZlYXR1cmVGbGFnUmVhZGVyID0gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKTtcbiAgcHJpdmF0ZSBjYWNoZWRSZWdpc3RyeTogRmVhdHVyZUZsYWdSZWdpc3RyeSA9IHt9O1xuICBAcmVwb3NpdG9yeShGZWF0dXJlRmxhZ0FjY2VzcylcbiAgcHJvdGVjdGVkIGFjY2Vzc1JlcG9zaXRvcnkhOiBSZXBvPEZlYXR1cmVGbGFnQWNjZXNzPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihGZWF0dXJlRmxhZyk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8eyBjb25maWc6IEZlYXR1cmVGbGFnU2VydmljZUNvbmZpZzsgY2xpZW50OiBGZWF0dXJlRmxhZ1JlYWRlciB9PiB7XG4gICAgY29uc3QgY29uZmlnID0gKGFyZ3NbMF0gYXMgRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkKSA/PyB7fTtcbiAgICBpZiAoY29uZmlnLnJlcG9zaXRvcnkpIHtcbiAgICAgIHRoaXMuX3JlcG9zaXRvcnkgPSBjb25maWcucmVwb3NpdG9yeSBhcyBhbnk7XG4gICAgfVxuICAgIHRoaXMucmVhZGVyID0gIWNvbmZpZy5yZWFkZXJcbiAgICAgID8gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKVxuICAgICAgOiB0eXBlb2YgY29uZmlnLnJlYWRlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gbmV3IGNvbmZpZy5yZWFkZXIoKVxuICAgICAgICA6IGNvbmZpZy5yZWFkZXI7XG4gICAgY29uc3QgcmVhZGVyQ29uZmlnID0ge1xuICAgICAgLi4uKGNvbmZpZy5yZWFkZXJDb25maWcgPz8ge30pLFxuICAgICAgc291cmNlOiBjb25maWcucmVhZGVyQ29uZmlnPy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICB9O1xuICAgIHRoaXMuY2FjaGVkUmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZWRSZWdpc3RyeShyZWFkZXJDb25maWcsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbmZpZzogRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgcmVhZGVyOiB0aGlzLnJlYWRlcixcbiAgICAgIHJlYWRlckNvbmZpZyxcbiAgICB9O1xuICAgIHJldHVybiB7IGNvbmZpZzogZWZmZWN0aXZlQ29uZmlnLCBjbGllbnQ6IHRoaXMucmVhZGVyIH07XG4gIH1cblxuICBwcml2YXRlIGNsb25lUmVnaXN0cnkocmVnaXN0cnk6IEZlYXR1cmVGbGFnUmVnaXN0cnkpOiBGZWF0dXJlRmxhZ1JlZ2lzdHJ5IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVnaXN0cnkpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGFjY1trZXldID1cbiAgICAgICAgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgID8gKHsgLi4uKHZhbHVlIGFzIEZlYXR1cmVGbGFnQ29uZmlnKSB9IGFzIEZlYXR1cmVGbGFnQ29uZmlnKVxuICAgICAgICAgIDogdmFsdWU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIEZlYXR1cmVGbGFnUmVnaXN0cnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoQ2FjaGVkUmVnaXN0cnkoXG4gICAgb3B0aW9uczogRmVhdHVyZUZsYWdSZWFkZXJJbnB1dCA9IHt9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIGNvbnN0IGVudlJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWFkZXIucmVhZCh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50LFxuICAgIH0pO1xuICAgIGxldCBwZXJzaXN0ZWQ6IEZlYXR1cmVGbGFnW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgcGVyc2lzdGVkID0gYXdhaXQgdGhpcy5yZXBvLnNlbGVjdCgpLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBwZXJzaXN0ZWQgPSBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuY2xvbmVSZWdpc3RyeShlbnZSZWdpc3RyeSk7XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIHBlcnNpc3RlZCkge1xuICAgICAgcmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkID8gKGZsYWcuY29uZmlnID8/IHRydWUpIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiByZWdpc3RyeTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGVkRmxhZyhmbGFnOiBGZWF0dXJlRmxhZyk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGVkUmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkXG4gICAgICA/IChmbGFnLmNvbmZpZyA/PyB0cnVlKVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWNjZXNzUmVwb3NpdG9yeSgpOiBSZXBvPEZlYXR1cmVGbGFnQWNjZXNzPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzUmVwb3NpdG9yeSA/PyBSZXBvc2l0b3J5LmZvck1vZGVsKEZlYXR1cmVGbGFnQWNjZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0SW5pdGlhbGl6ZWQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnJlYWRlcjtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KFxuICAgIGlucHV0OiBGZWF0dXJlRmxhZ0FjY2Vzc0lucHV0XG4gICk6IEZlYXR1cmVGbGFnQWNjZXNzSW5wdXQge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGZlYXR1cmVLZXk6IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKGlucHV0LmZlYXR1cmVLZXkpLFxuICAgICAgc3ViamVjdFR5cGU6IG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0VHlwZShpbnB1dC5zdWJqZWN0VHlwZSksXG4gICAgICBzdWJqZWN0S2V5OiBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShpbnB1dC5zdWJqZWN0S2V5KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEFjY2Vzc0NvbmRpdGlvbihcbiAgICBxdWVyeTogRmVhdHVyZUZsYWdBY2Nlc3NRdWVyeVxuICApOiBDb25kaXRpb248RmVhdHVyZUZsYWdBY2Nlc3M+IHtcbiAgICBsZXQgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwic3ViamVjdFR5cGVcIikuZXEoXG4gICAgICBub3JtYWxpemVGZWF0dXJlU3ViamVjdFR5cGUocXVlcnkuc3ViamVjdFR5cGUpXG4gICAgKTtcbiAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKFxuICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwic3ViamVjdEtleVwiKS5lcShcbiAgICAgICAgbm9ybWFsaXplRmVhdHVyZVN1YmplY3RLZXkocXVlcnkuc3ViamVjdEtleSlcbiAgICAgIClcbiAgICApO1xuICAgIGlmICh0eXBlb2YgcXVlcnkuZW5hYmxlZCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChcbiAgICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwiZW5hYmxlZFwiKS5lcShxdWVyeS5lbmFibGVkKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHF1ZXJ5LmZlYXR1cmVLZXlzICYmIHF1ZXJ5LmZlYXR1cmVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoXG4gICAgICAgIENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnQWNjZXNzPihcImZlYXR1cmVLZXlcIikuaW4oXG4gICAgICAgICAgcXVlcnkuZmVhdHVyZUtleXMubWFwKG5vcm1hbGl6ZUZlYXR1cmVOYW1lKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY29uZGl0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlKFxuICAgIG1vZGVsOiBGZWF0dXJlRmxhZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEZlYXR1cmVGbGFnPiB7XG4gICAgbW9kZWwua2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUobW9kZWwua2V5KTtcbiAgICBtb2RlbC5lbmFibGVkID8/PSB0cnVlO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBzdXBlci5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpO1xuICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyhjcmVhdGVkKTtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZShcbiAgICBtb2RlbDogRmVhdHVyZUZsYWcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZz4ge1xuICAgIG1vZGVsLmtleSA9IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKG1vZGVsLmtleSk7XG4gICAgbW9kZWwuZW5hYmxlZCA/Pz0gdHJ1ZTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgc3VwZXIudXBkYXRlKG1vZGVsLCAuLi5hcmdzKTtcbiAgICB0aGlzLnNldENhY2hlZEZsYWcodXBkYXRlZCk7XG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kT25lQnkoXG4gICAga2V5OiBrZXlvZiBGZWF0dXJlRmxhZyxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWc+IHtcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPVxuICAgICAga2V5ID09PSBcImtleVwiICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKHZhbHVlKVxuICAgICAgICA6IHZhbHVlO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZmluZE9uZUJ5KGtleSwgbm9ybWFsaXplZFZhbHVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBbGwoXG4gICAga2V5czogYW55W10sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ1tdPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvLnJlYWRBbGwoa2V5cywgLi4uYXJncyk7XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIHJlc3VsdCkgdGhpcy5zZXRDYWNoZWRGbGFnKGZsYWcpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc3luYyBsaXN0RW5hYmxlZCguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8RmVhdHVyZUZsYWdbXT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9cbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnPihcImVuYWJsZWRcIikuZXEodHJ1ZSkpXG4gICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGdyYW50RmVhdHVyZUFjY2VzcyhcbiAgICBpbnB1dDogRmVhdHVyZUZsYWdBY2Nlc3NJbnB1dCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEZlYXR1cmVGbGFnQWNjZXNzPiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KGlucHV0KTtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMuZmluZEZlYXR1cmVBY2Nlc3Mobm9ybWFsaXplZCwgLi4uYXJncykuY2F0Y2goXG4gICAgICAoKSA9PiB1bmRlZmluZWRcbiAgICApO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKS5jcmVhdGUoXG4gICAgICAgIG5ldyBGZWF0dXJlRmxhZ0FjY2Vzcyhub3JtYWxpemVkKSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLnVwZGF0ZShcbiAgICAgIE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIG5vcm1hbGl6ZWQpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyByZXZva2VGZWF0dXJlQWNjZXNzKFxuICAgIGlucHV0OiBGZWF0dXJlRmxhZ0FjY2Vzc1N1YmplY3QgJiB7IGZlYXR1cmVLZXk6IHN0cmluZyB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdBY2Nlc3MgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMuZmluZEZlYXR1cmVBY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpLmNhdGNoKFxuICAgICAgKCkgPT4gdW5kZWZpbmVkXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0aW5nKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKS5kZWxldGUoZXhpc3RpbmcuaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZEZlYXR1cmVBY2Nlc3MoXG4gICAgcXVlcnk6IEZlYXR1cmVGbGFnQWNjZXNzUXVlcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ0FjY2Vzcz4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKVxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgRmVhdHVyZSBhY2Nlc3MgZm9yICR7bm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlKHF1ZXJ5LnN1YmplY3RUeXBlKX06JHtub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShxdWVyeS5zdWJqZWN0S2V5KX0gbm90IGZvdW5kYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG5cbiAgYXN5bmMgbGlzdEZlYXR1cmVBY2Nlc3MoXG4gICAgcXVlcnk6IEZlYXR1cmVGbGFnQWNjZXNzUXVlcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ0FjY2Vzc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpXG4gICAgICAuc2VsZWN0KClcbiAgICAgIC53aGVyZSh0aGlzLmJ1aWxkQWNjZXNzQ29uZGl0aW9uKHF1ZXJ5KSlcbiAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZUZlYXR1cmVGbGFnc0ZvclN1YmplY3QoXG4gICAgc3ViamVjdDogRmVhdHVyZUZsYWdBY2Nlc3NTdWJqZWN0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCB0aGlzLmxpc3RGZWF0dXJlQWNjZXNzKFxuICAgICAge1xuICAgICAgICAuLi5zdWJqZWN0LFxuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGZlYXR1cmVLZXlzID0gWy4uLm5ldyBTZXQoYWNjZXNzLm1hcCgoaXRlbSkgPT4gaXRlbS5mZWF0dXJlS2V5KSldO1xuICAgIGlmIChmZWF0dXJlS2V5cy5sZW5ndGggPT09IDApIHJldHVybiB7fTtcblxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnPihcImVuYWJsZWRcIikuZXEodHJ1ZSkuYW5kKFxuICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWc+KFwia2V5XCIpLmluKFxuICAgICAgICBmZWF0dXJlS2V5cy5tYXAobm9ybWFsaXplRmVhdHVyZU5hbWUpXG4gICAgICApXG4gICAgKTtcblxuICAgIGNvbnN0IGVuYWJsZWRGbGFncyA9IGF3YWl0IHRoaXMucmVwby5zZWxlY3QoKS53aGVyZShjb25kaXRpb24pLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgcmV0dXJuIGVuYWJsZWRGbGFncy5yZWR1Y2UoKHJlZ2lzdHJ5LCBmbGFnKSA9PiB7XG4gICAgICByZWdpc3RyeVtmbGFnLmtleV0gPSBmbGFnLmNvbmZpZyA/PyB0cnVlO1xuICAgICAgcmV0dXJuIHJlZ2lzdHJ5O1xuICAgIH0sIHt9IGFzIEZlYXR1cmVGbGFnUmVnaXN0cnkpO1xuICB9XG5cbiAgYXN5bmMgaXNFbmFibGVkRm9yU3ViamVjdChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzdWJqZWN0OiBGZWF0dXJlRmxhZ0FjY2Vzc1N1YmplY3QsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlc29sdmVGZWF0dXJlRmxhZ3NGb3JTdWJqZWN0KHN1YmplY3QsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZEJ5TmFtZShyZWdpc3RyeSwga2V5KTtcbiAgfVxuXG4gIGlzRW5hYmxlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWRCeU5hbWUodGhpcy5jYWNoZWRSZWdpc3RyeSwgbm9ybWFsaXplZEtleSk7XG4gIH1cblxuICBhc3luYyByZXNvbHZlRmVhdHVyZUZsYWdzKCk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5jbG9uZVJlZ2lzdHJ5KHRoaXMuY2FjaGVkUmVnaXN0cnkpO1xuICB9XG5cbiAgYXN5bmMgc3luY0Zyb21FbnZpcm9ubWVudChcbiAgICBvcHRpb25zOiBGZWF0dXJlRmxhZ1JlYWRlcklucHV0ID0ge30sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ1tdPiB7XG4gICAgdGhpcy5hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWFkZXIucmVhZCh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50LFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdHM6IEZlYXR1cmVGbGFnW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZWdpc3RyeSkpIHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9XG4gICAgICAgIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICA/ICh2YWx1ZSBhcyBGZWF0dXJlRmxhZ0NvbmZpZylcbiAgICAgICAgICA6IHsgZW5hYmxlZDogQm9vbGVhbih2YWx1ZSkgfTtcbiAgICAgIGNvbnN0IHsgZW5hYmxlZDogX2lnbm9yZWRFbmFibGVkLCAuLi5yZXN0Q29uZmlnIH0gPSBjb25maWc7XG4gICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5maW5kT25lQnkoXG4gICAgICAgIFwia2V5XCIsXG4gICAgICAgIG5vcm1hbGl6ZWRLZXksXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gZXhpc3RpbmdcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCB7XG4gICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbiA/PyBleGlzdGluZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjb3BlOiByZXN0Q29uZmlnLnNjb3BlID8/IGV4aXN0aW5nLnNjb3BlLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEgPz8gZXhpc3RpbmcubWV0YWRhdGEsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG5ldyBGZWF0dXJlRmxhZyh7XG4gICAgICAgICAgICBrZXk6IG5vcm1hbGl6ZWRLZXksXG4gICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjb3BlOiByZXN0Q29uZmlnLnNjb3BlLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgIHJlc3VsdHMucHVzaChleGlzdGluZyA/IGF3YWl0IHRoaXMudXBkYXRlKG1vZGVsLCAuLi5hcmdzKSA6IGF3YWl0IHRoaXMuY3JlYXRlKG1vZGVsLCAuLi5hcmdzKSk7XG4gICAgfVxuICAgIHRoaXMuY2FjaGVkUmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZWRSZWdpc3RyeShcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50LFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59XG4iXX0=
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZUZsYWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZlYXR1cmVGbGFnLnNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFN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LCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgQ29uZGl0aW9uLCBNb2RlbFNlcnZpY2UsIFJlcG9zaXRvcnksIHJlcG9zaXRvcnksIHNlcnZpY2UsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50IH0gZnJvbSBcIi4vLi4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnQWNjZXNzIH0gZnJvbSBcIi4vLi4vbW9kZWxzL0ZlYXR1cmVGbGFnQWNjZXNzLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZyB9IGZyb20gXCIuLy4uL21vZGVscy9GZWF0dXJlRmxhZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgRW52aXJvbm1lRmxhZ1JlYWRlciwgfSBmcm9tIFwiLi8uLi9yZWFkZXJzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBpc0ZlYXR1cmVGbGFnRW5hYmxlZCwgaXNGZWF0dXJlRmxhZ0VuYWJsZWRCeU5hbWUsIG5vcm1hbGl6ZUZlYXR1cmVOYW1lLCB9IGZyb20gXCIuLy4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleSwgbm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmxldCBGZWF0dXJlRmxhZ1NlcnZpY2UgPSBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2UgZXh0ZW5kcyBNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihGZWF0dXJlRmxhZyk7XG4gICAgICAgIHRoaXMucmVhZGVyID0gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKTtcbiAgICAgICAgdGhpcy5jYWNoZWRSZWdpc3RyeSA9IHt9O1xuICAgIH1cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gYXJnc1swXSA/PyB7fTtcbiAgICAgICAgaWYgKGNvbmZpZy5yZXBvc2l0b3J5KSB7XG4gICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5ID0gY29uZmlnLnJlcG9zaXRvcnk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWFkZXIgPSAhY29uZmlnLnJlYWRlclxuICAgICAgICAgICAgPyBuZXcgRW52aXJvbm1lRmxhZ1JlYWRlcigpXG4gICAgICAgICAgICA6IHR5cGVvZiBjb25maWcucmVhZGVyID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IG5ldyBjb25maWcucmVhZGVyKClcbiAgICAgICAgICAgICAgICA6IGNvbmZpZy5yZWFkZXI7XG4gICAgICAgIGNvbnN0IHJlYWRlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLihjb25maWcucmVhZGVyQ29uZmlnID8/IHt9KSxcbiAgICAgICAgICAgIHNvdXJjZTogY29uZmlnLnJlYWRlckNvbmZpZz8uc291cmNlID8/IEZlYXR1cmVGbGFnRW52aXJvbm1lbnQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2FjaGVkUmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZWRSZWdpc3RyeShyZWFkZXJDb25maWcsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICByZWFkZXI6IHRoaXMucmVhZGVyLFxuICAgICAgICAgICAgcmVhZGVyQ29uZmlnLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4geyBjb25maWc6IGVmZmVjdGl2ZUNvbmZpZywgY2xpZW50OiB0aGlzLnJlYWRlciB9O1xuICAgIH1cbiAgICBjbG9uZVJlZ2lzdHJ5KHJlZ2lzdHJ5KSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhyZWdpc3RyeSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgYWNjW2tleV0gPVxuICAgICAgICAgICAgICAgIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB7IC4uLnZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG4gICAgYXN5bmMgcmVmcmVzaENhY2hlZFJlZ2lzdHJ5KG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBlbnZSZWdpc3RyeSA9IGF3YWl0IHRoaXMucmVhZGVyLnJlYWQoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHNvdXJjZTogb3B0aW9ucy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBwZXJzaXN0ZWQgPSBbXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBlcnNpc3RlZCA9IGF3YWl0IHRoaXMucmVwby5zZWxlY3QoKS5leGVjdXRlKC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIHBlcnNpc3RlZCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gdGhpcy5jbG9uZVJlZ2lzdHJ5KGVudlJlZ2lzdHJ5KTtcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIHBlcnNpc3RlZCkge1xuICAgICAgICAgICAgcmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkID8gKGZsYWcuY29uZmlnID8/IHRydWUpIDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5O1xuICAgIH1cbiAgICBzZXRDYWNoZWRGbGFnKGZsYWcpIHtcbiAgICAgICAgdGhpcy5jYWNoZWRSZWdpc3RyeVtmbGFnLmtleV0gPSBmbGFnLmVuYWJsZWRcbiAgICAgICAgICAgID8gKGZsYWcuY29uZmlnID8/IHRydWUpXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgIH1cbiAgICBnZXRBY2Nlc3NSZXBvc2l0b3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NSZXBvc2l0b3J5ID8/IFJlcG9zaXRvcnkuZm9yTW9kZWwoRmVhdHVyZUZsYWdBY2Nlc3MpO1xuICAgIH1cbiAgICBhc3NlcnRJbml0aWFsaXplZCgpIHtcbiAgICAgICAgdm9pZCB0aGlzLnJlYWRlcjtcbiAgICB9XG4gICAgbm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KGlucHV0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICAgIGZlYXR1cmVLZXk6IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKGlucHV0LmZlYXR1cmVLZXkpLFxuICAgICAgICAgICAgc3ViamVjdFR5cGU6IG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0VHlwZShpbnB1dC5zdWJqZWN0VHlwZSksXG4gICAgICAgICAgICBzdWJqZWN0S2V5OiBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShpbnB1dC5zdWJqZWN0S2V5KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpIHtcbiAgICAgICAgbGV0IGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyKFwic3ViamVjdFR5cGVcIikuZXEobm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlKHF1ZXJ5LnN1YmplY3RUeXBlKSk7XG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoQ29uZGl0aW9uLmF0dHIoXCJzdWJqZWN0S2V5XCIpLmVxKG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0S2V5KHF1ZXJ5LnN1YmplY3RLZXkpKSk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkuZW5hYmxlZCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cihcImVuYWJsZWRcIikuZXEocXVlcnkuZW5hYmxlZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeS5mZWF0dXJlS2V5cyAmJiBxdWVyeS5mZWF0dXJlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyKFwiZmVhdHVyZUtleVwiKS5pbihxdWVyeS5mZWF0dXJlS2V5cy5tYXAobm9ybWFsaXplRmVhdHVyZU5hbWUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIG1vZGVsLmtleSA9IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKG1vZGVsLmtleSk7XG4gICAgICAgIG1vZGVsLmVuYWJsZWQgPz89IHRydWU7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBzdXBlci5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpO1xuICAgICAgICB0aGlzLnNldENhY2hlZEZsYWcoY3JlYXRlZCk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGUobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgbW9kZWwua2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUobW9kZWwua2V5KTtcbiAgICAgICAgbW9kZWwuZW5hYmxlZCA/Pz0gdHJ1ZTtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHN1cGVyLnVwZGF0ZShtb2RlbCwgLi4uYXJncyk7XG4gICAgICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyh1cGRhdGVkKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IGtleSA9PT0gXCJrZXlcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gbm9ybWFsaXplRmVhdHVyZU5hbWUodmFsdWUpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIG5vcm1hbGl6ZWRWYWx1ZSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlYWRBbGwoa2V5cywgLi4uYXJncykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5hcmdzKTtcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIHJlc3VsdClcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyhmbGFnKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEVuYWJsZWQoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvXG4gICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgIC53aGVyZShDb25kaXRpb24uYXR0cihcImVuYWJsZWRcIikuZXEodHJ1ZSkpXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JhbnRGZWF0dXJlQWNjZXNzKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZUZlYXR1cmVBY2Nlc3NJbnB1dChpbnB1dCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5maW5kRmVhdHVyZUFjY2Vzcyhub3JtYWxpemVkLCAuLi5hcmdzKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NSZXBvc2l0b3J5KCkuY3JlYXRlKG5ldyBGZWF0dXJlRmxhZ0FjY2Vzcyhub3JtYWxpemVkKSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLnVwZGF0ZShPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBub3JtYWxpemVkKSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJldm9rZUZlYXR1cmVBY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmZpbmRGZWF0dXJlQWNjZXNzKGlucHV0LCAuLi5hcmdzKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLmRlbGV0ZShleGlzdGluZy5pZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRGZWF0dXJlQWNjZXNzKHF1ZXJ5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5nZXRBY2Nlc3NSZXBvc2l0b3J5KClcbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgICAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHJlc3VsdHNbMF07XG4gICAgICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBGZWF0dXJlIGFjY2VzcyBmb3IgJHtub3JtYWxpemVGZWF0dXJlU3ViamVjdFR5cGUocXVlcnkuc3ViamVjdFR5cGUpfToke25vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0S2V5KHF1ZXJ5LnN1YmplY3RLZXkpfSBub3QgZm91bmRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RGZWF0dXJlQWNjZXNzKHF1ZXJ5LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUodGhpcy5idWlsZEFjY2Vzc0NvbmRpdGlvbihxdWVyeSkpXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVzb2x2ZUZlYXR1cmVGbGFnc0ZvclN1YmplY3Qoc3ViamVjdCwgLi4uYXJncykge1xuICAgICAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMubGlzdEZlYXR1cmVBY2Nlc3Moe1xuICAgICAgICAgICAgLi4uc3ViamVjdCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBmZWF0dXJlS2V5cyA9IFsuLi5uZXcgU2V0KGFjY2Vzcy5tYXAoKGl0ZW0pID0+IGl0ZW0uZmVhdHVyZUtleSkpXTtcbiAgICAgICAgaWYgKGZlYXR1cmVLZXlzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHIoXCJlbmFibGVkXCIpLmVxKHRydWUpLmFuZChDb25kaXRpb24uYXR0cihcImtleVwiKS5pbihmZWF0dXJlS2V5cy5tYXAobm9ybWFsaXplRmVhdHVyZU5hbWUpKSk7XG4gICAgICAgIGNvbnN0IGVuYWJsZWRGbGFncyA9IGF3YWl0IHRoaXMucmVwby5zZWxlY3QoKS53aGVyZShjb25kaXRpb24pLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgICAgIHJldHVybiBlbmFibGVkRmxhZ3MucmVkdWNlKChyZWdpc3RyeSwgZmxhZykgPT4ge1xuICAgICAgICAgICAgcmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5jb25maWcgPz8gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeTtcbiAgICAgICAgfSwge30pO1xuICAgIH1cbiAgICBhc3luYyBpc0VuYWJsZWRGb3JTdWJqZWN0KGtleSwgc3ViamVjdCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IGF3YWl0IHRoaXMucmVzb2x2ZUZlYXR1cmVGbGFnc0ZvclN1YmplY3Qoc3ViamVjdCwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZEJ5TmFtZShyZWdpc3RyeSwga2V5KTtcbiAgICB9XG4gICAgaXNFbmFibGVkKGtleSkge1xuICAgICAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBub3JtYWxpemVGZWF0dXJlTmFtZShrZXkpO1xuICAgICAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWRCeU5hbWUodGhpcy5jYWNoZWRSZWdpc3RyeSwgbm9ybWFsaXplZEtleSk7XG4gICAgfVxuICAgIGFzeW5jIHJlc29sdmVGZWF0dXJlRmxhZ3MoKSB7XG4gICAgICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmVSZWdpc3RyeSh0aGlzLmNhY2hlZFJlZ2lzdHJ5KTtcbiAgICB9XG4gICAgYXN5bmMgc3luY0Zyb21FbnZpcm9ubWVudChvcHRpb25zID0ge30sIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgICAgICBjb25zdCByZWdpc3RyeSA9IGF3YWl0IHRoaXMucmVhZGVyLnJlYWQoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHNvdXJjZTogb3B0aW9ucy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVnaXN0cnkpKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogeyBlbmFibGVkOiBCb29sZWFuKHZhbHVlKSB9O1xuICAgICAgICAgICAgY29uc3QgeyBlbmFibGVkOiBfaWdub3JlZEVuYWJsZWQsIC4uLnJlc3RDb25maWcgfSA9IGNvbmZpZztcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSBub3JtYWxpemVGZWF0dXJlTmFtZShrZXkpO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmZpbmRPbmVCeShcImtleVwiLCBub3JtYWxpemVkS2V5LCAuLi5hcmdzKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSBleGlzdGluZ1xuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihleGlzdGluZywge1xuICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXN0Q29uZmlnLmRlc2NyaXB0aW9uID8/IGV4aXN0aW5nLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBzY29wZTogcmVzdENvbmZpZy5zY29wZSA/PyBleGlzdGluZy5zY29wZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEgPz8gZXhpc3RpbmcubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGlzRmVhdHVyZUZsYWdFbmFibGVkKHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIDogbmV3IEZlYXR1cmVGbGFnKHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBub3JtYWxpemVkS2V5LFxuICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXN0Q29uZmlnLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBzY29wZTogcmVzdENvbmZpZy5zY29wZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGlzRmVhdHVyZUZsYWdFbmFibGVkKHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChleGlzdGluZyA/IGF3YWl0IHRoaXMudXBkYXRlKG1vZGVsLCAuLi5hcmdzKSA6IGF3YWl0IHRoaXMuY3JlYXRlKG1vZGVsLCAuLi5hcmdzKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYWNoZWRSZWdpc3RyeSA9IGF3YWl0IHRoaXMucmVmcmVzaENhY2hlZFJlZ2lzdHJ5KHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlID8/IEZlYXR1cmVGbGFnRW52aXJvbm1lbnQsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcmVwb3NpdG9yeShGZWF0dXJlRmxhZ0FjY2VzcyksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE9iamVjdClcbl0sIEZlYXR1cmVGbGFnU2VydmljZS5wcm90b3R5cGUsIFwiYWNjZXNzUmVwb3NpdG9yeVwiLCB2b2lkIDApO1xuRmVhdHVyZUZsYWdTZXJ2aWNlID0gX19kZWNvcmF0ZShbXG4gICAgc2VydmljZShGZWF0dXJlRmxhZyksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtdKVxuXSwgRmVhdHVyZUZsYWdTZXJ2aWNlKTtcbmV4cG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1WaGRIVnlaVVpzWVdjdWMyVnlkbWxqWlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OW1aV0YwZFhKbExXWnNZV2R6TDNObGNuWnBZMlZ6TDBabFlYUjFjbVZHYkdGbkxuTmxjblpwWTJVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVU5NTEZOQlFWTXNSVUZEVkN4WlFVRlpMRVZCUTFvc1ZVRkJWU3hGUVVOV0xGVkJRVlVzUlVGRFZpeFBRVUZQTEVkQlExSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVVY0UWl4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkRlRVFzVDBGQlR5eEZRVUZGTEhOQ1FVRnpRaXhGUVVGRkxEUkNRVUYxUWp0QlFVTjRSQ3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc0swTkJRVEJETzBGQlEzUkZMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzZVVOQlFXOURPMEZCUXpGRUxFOUJRVThzUlVGRFRDeHRRa0ZCYlVJc1IwRkhjRUlzT0VKQlFXMUNPMEZCVlhCQ0xFOUJRVThzUlVGRFRDeHZRa0ZCYjBJc1JVRkRjRUlzTUVKQlFUQkNMRVZCUXpGQ0xHOUNRVUZ2UWl4SFFVTnlRaXh6UWtGQmFVSTdRVUZEYkVJc1QwRkJUeXhGUVVGRkxEQkNRVUV3UWl4RlFVRkZMREpDUVVFeVFpeEZRVUZGTEhOQ1FVRnBRanRCUVZFMVJTeEpRVUZOTEd0Q1FVRnJRaXhIUVVGNFFpeE5RVUZOTEd0Q1FVRnRRaXhUUVVGUkxGbEJRWGxDTzBsQlRTOUVPMUZCUTBVc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlRtSXNWMEZCVFN4SFFVRnpRaXhKUVVGSkxHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNN1VVRkRkRVFzYlVKQlFXTXNSMEZCZDBJc1JVRkJSU3hEUVVGRE8wbEJUV3BFTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOa0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNUVUZCVFN4SFFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVEJETEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNaRkxFbEJRVWtzVFVGQlRTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNSQ0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVdsQ0xFTkJRVU03VVVGRE9VTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFR0WlFVTXhRaXhEUVVGRExFTkJRVU1zU1VGQlNTeHRRa0ZCYlVJc1JVRkJSVHRaUVVNelFpeERRVUZETEVOQlFVTXNUMEZCVHl4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExGVkJRVlU3WjBKQlEyNURMRU5CUVVNc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTNKQ0xFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNCQ0xFMUJRVTBzV1VGQldTeEhRVUZITzFsQlEyNUNMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTTVRaXhOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEZsQlFWa3NSVUZCUlN4TlFVRk5MRWxCUVVrc2MwSkJRWE5DTzFOQlF6bEVMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemxGTEUxQlFVMHNaVUZCWlN4SFFVRTJRanRaUVVOb1JDeEhRVUZITEUxQlFVMDdXVUZEVkN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTA3V1VGRGJrSXNXVUZCV1R0VFFVTmlMRU5CUVVNN1VVRkRSaXhQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEdWQlFXVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBsQlF6RkVMRU5CUVVNN1NVRkZUeXhoUVVGaExFTkJRVU1zVVVGQk5rSTdVVUZEYWtRc1QwRkJUeXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRek5FTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRMDRzUzBGQlN5eEpRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRkZCUVZFc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRPMjlDUVVONlJDeERRVUZETEVOQlFVVXNSVUZCUlN4SFFVRkpMRXRCUVRKQ0xFVkJRWGRDTzI5Q1FVTTFSQ3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzFsQlExb3NUMEZCVHl4SFFVRkhMRU5CUVVNN1VVRkRZaXhEUVVGRExFVkJRVVVzUlVGQmVVSXNRMEZCUXl4RFFVRkRPMGxCUTJoRExFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNjVUpCUVhGQ0xFTkJRMnBETEZWQlFXdERMRVZCUVVVc1JVRkRjRU1zUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTjZReXhIUVVGSExFOUJRVTg3V1VGRFZpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3h6UWtGQmMwSTdVMEZEYWtRc1EwRkJReXhEUVVGRE8xRkJRMGdzU1VGQlNTeFRRVUZUTEVkQlFXdENMRVZCUVVVc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTTdXVUZEU0N4VFFVRlRMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzaEVMRU5CUVVNN1VVRkJReXhOUVVGTkxFTkJRVU03V1VGRFVDeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJwQ0xFTkJRVU03VVVGRlJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEycEVMRXRCUVVzc1RVRkJUU3hKUVVGSkxFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdXVUZETjBJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTndSU3hEUVVGRE8xRkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVJc1EwRkJRenRKUVVWUExHRkJRV0VzUTBGQlF5eEpRVUZwUWp0UlFVTnlReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR6dFpRVU14UXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXp0WlFVTjJRaXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzBsQlExb3NRMEZCUXp0SlFVVlBMRzFDUVVGdFFqdFJRVU42UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRla1VzUTBGQlF6dEpRVVZQTEdsQ1FVRnBRanRSUVVOMlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZQTERKQ1FVRXlRaXhEUVVOcVF5eExRVUUyUWp0UlFVVTNRaXhQUVVGUE8xbEJRMHdzUjBGQlJ5eExRVUZMTzFsQlExSXNWVUZCVlN4RlFVRkZMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRiRVFzVjBGQlZ5eEZRVUZGTERKQ1FVRXlRaXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZETTBRc1ZVRkJWU3hGUVVGRkxEQkNRVUV3UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU03VTBGRGVrUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZUeXh2UWtGQmIwSXNRMEZETVVJc1MwRkJOa0k3VVVGRk4wSXNTVUZCU1N4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQmIwSXNZVUZCWVN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVOcVJTd3lRa0ZCTWtJc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlF5OURMRU5CUVVNN1VVRkRSaXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZEZGtJc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQmIwSXNXVUZCV1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVOb1JDd3dRa0ZCTUVJc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlF6ZERMRU5CUTBZc1EwRkJRenRSUVVOR0xFbEJRVWtzVDBGQlR5eExRVUZMTEVOQlFVTXNUMEZCVHl4TFFVRkxMRmRCUVZjc1JVRkJSU3hEUVVGRE8xbEJRM3BETEZOQlFWTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVOMlFpeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRnZRaXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVNdlJDeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU4wUkN4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGRGRrSXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJiMElzV1VGQldTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVTm9SQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVU0xUXl4RFFVTkdMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRMFFzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlEyNUNMRXRCUVd0Q0xFVkJRMnhDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRXRCUVVzc1EwRkJReXhIUVVGSExFZEJRVWNzYjBKQlFXOUNMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlF6VkRMRXRCUVVzc1EwRkJReXhQUVVGUExFdEJRVXNzU1VGQlNTeERRVUZETzFGQlEzWkNMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU51UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6VkNMRTlCUVU4c1QwRkJUeXhEUVVGRE8wbEJRMnBDTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOdVFpeExRVUZyUWl4RlFVTnNRaXhIUVVGSExFbEJRVmM3VVVGRlpDeExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNMVF5eExRVUZMTEVOQlFVTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVOMlFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRia1FzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNMVFpeFBRVUZQTEU5QlFVOHNRMEZCUXp0SlFVTnFRaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEZEVJc1IwRkJjMElzUlVGRGRFSXNTMEZCVlN4RlFVTldMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzWlVGQlpTeEhRVU51UWl4SFFVRkhMRXRCUVVzc1MwRkJTeXhKUVVGSkxFOUJRVThzUzBGQlN5eExRVUZMTEZGQlFWRTdXVUZEZUVNc1EwRkJReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVNM1FpeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTFvc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1pVRkJaU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETlVRc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlEzQkNMRWxCUVZjc1JVRkRXQ3hIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM1JFTEV0QlFVc3NUVUZCVFN4SlFVRkpMRWxCUVVrc1RVRkJUVHRaUVVGRkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRjRVFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4SlFVRlhPMUZCUXpsQ0xFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVazdZVUZEWWl4TlFVRk5MRVZCUVVVN1lVRkRVaXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCWXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdZVUZEZEVRc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZEVJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkRkRUlzUzBGQk5rSXNSVUZETjBJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXpORUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZWQlFWVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGRGRFVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVOb1FpeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMlFzVDBGQlR5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlEzUkRMRWxCUVVrc2FVSkJRV2xDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUTJwRExFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRM1JETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxGVkJRVlVzUTBGQlF5eEZRVU51UXl4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGRGRrSXNTMEZCZDBRc1JVRkRlRVFzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVTnFSU3hIUVVGSExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlEyaENMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVUZGTEU5QlFVOHNVMEZCVXl4RFFVRkRPMUZCUTJoRExFOUJRVThzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5xUlN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVTnlRaXhMUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVU3WVVGRE4wTXNUVUZCVFN4RlFVRkZPMkZCUTFJc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dGhRVU5vUWl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU53UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETlVJc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYzBKQlFYTkNMREpDUVVFeVFpeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3d3UWtGQk1FSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExGbEJRVmtzUTBGRGFra3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVTnlRaXhMUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSVHRoUVVNNVFpeE5RVUZOTEVWQlFVVTdZVUZEVWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRM1pETEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM1JDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc05rSkJRVFpDTEVOQlEycERMRTlCUVdsRExFVkJRMnBETEVkQlFVY3NTVUZCVnp0UlFVVmtMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMUZCUTNwQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU42UXp0WlFVTkZMRWRCUVVjc1QwRkJUenRaUVVOV0xFOUJRVThzUlVGQlJTeEpRVUZKTzFOQlEyUXNSVUZEUkN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMFlzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzU1VGQlNTeFhRVUZYTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN1dVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF6dFJRVVY0UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZqTEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEyNUZMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRV01zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVTnVReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRM1JETEVOQlEwWXNRMEZCUXp0UlFVVkdMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFFWXNUMEZCVHl4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpWRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTTdXVUZEZWtNc1QwRkJUeXhSUVVGUkxFTkJRVU03VVVGRGJFSXNRMEZCUXl4RlFVRkZMRVZCUVhsQ0xFTkJRVU1zUTBGQlF6dEpRVU5vUXl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhIUVVGWExFVkJRMWdzVDBGQmFVTXNSVUZEYWtNc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE5VVXNUMEZCVHl3d1FrRkJNRUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRia1FzUTBGQlF6dEpRVVZFTEZOQlFWTXNRMEZCUXl4SFFVRlhPMUZCUTI1Q0xFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8xRkJRM3BDTEUxQlFVMHNZVUZCWVN4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRUxFOUJRVThzTUVKQlFUQkNMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeGhRVUZoTEVOQlFVTXNRMEZCUXp0SlFVTjRSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRanRSUVVOMlFpeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dFJRVU42UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMGxCUTJwRUxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEZWQlFXdERMRVZCUVVVc1JVRkRjRU1zUjBGQlJ5eEpRVUZYTzFGQlJXUXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOMFF5eEhRVUZITEU5QlFVODdXVUZEVml4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeHpRa0ZCYzBJN1UwRkRha1FzUTBGQlF5eERRVUZETzFGQlEwZ3NUVUZCVFN4UFFVRlBMRWRCUVd0Q0xFVkJRVVVzUTBGQlF6dFJRVU5zUXl4TFFVRkxMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzQkVMRTFCUVUwc1RVRkJUU3hIUVVOV0xFdEJRVXNzU1VGQlNTeFBRVUZQTEV0QlFVc3NTMEZCU3l4UlFVRlJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRla1FzUTBGQlF5eERRVUZGTEV0QlFUSkNPMmRDUVVNNVFpeERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYkVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeGxRVUZsTEVWQlFVVXNSMEZCUnl4VlFVRlZMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRE0wUXNUVUZCVFN4aFFVRmhMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVF5eExRVUZMTEVWQlEwd3NZVUZCWVN4RlFVTmlMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRM3BDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRkZCUVZFN1owSkJRM0JDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJUdHZRa0ZEZEVJc1QwRkJUeXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJRenR2UWtGRGNFTXNWMEZCVnl4RlFVRkZMRlZCUVZVc1EwRkJReXhYUVVGWExFbEJRVWtzVVVGQlVTeERRVUZETEZkQlFWYzdiMEpCUXpORUxFdEJRVXNzUlVGQlJTeFZRVUZWTEVOQlFVTXNTMEZCU3l4SlFVRkpMRkZCUVZFc1EwRkJReXhMUVVGTE8yOUNRVU42UXl4UlFVRlJMRVZCUVVVc1ZVRkJWU3hEUVVGRExGRkJRVkVzU1VGQlNTeFJRVUZSTEVOQlFVTXNVVUZCVVR0dlFrRkRiRVFzVFVGQlRTeEZRVUZGTzNkQ1FVTk9MRWRCUVVjc1ZVRkJWVHQzUWtGRFlpeFBRVUZQTEVWQlFVVXNiMEpCUVc5Q0xFTkJRVU1zUzBGQlN5eERRVUZETzNGQ1FVTnlRenRwUWtGRFJpeERRVUZETzJkQ1FVTktMRU5CUVVNc1EwRkJReXhKUVVGSkxGZEJRVmNzUTBGQlF6dHZRa0ZEWkN4SFFVRkhMRVZCUVVVc1lVRkJZVHR2UWtGRGJFSXNUMEZCVHl4RlFVRkZMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXp0dlFrRkRjRU1zVjBGQlZ5eEZRVUZGTEZWQlFWVXNRMEZCUXl4WFFVRlhPMjlDUVVOdVF5eExRVUZMTEVWQlFVVXNWVUZCVlN4RFFVRkRMRXRCUVVzN2IwSkJRM1pDTEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1VVRkJVVHR2UWtGRE4wSXNUVUZCVFN4RlFVRkZPM2RDUVVOT0xFZEJRVWNzVlVGQlZUdDNRa0ZEWWl4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTXNTMEZCU3l4RFFVRkRPM0ZDUVVOeVF6dHBRa0ZEUml4RFFVRkRMRU5CUVVNN1dVRkRVQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnFSeXhEUVVGRE8xRkJRMFFzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZEY0VRN1dVRkRSU3hIUVVGSExFOUJRVTg3V1VGRFZpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3h6UWtGQmMwSTdVMEZEYWtRc1JVRkRSQ3hIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlEwWXNUMEZCVHl4UFFVRlBMRU5CUVVNN1NVRkRha0lzUTBGQlF6dERRVU5HTEVOQlFVRTdRVUYwVlZjN1NVRkVWQ3hWUVVGVkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNN096UkVRVU4xUWp0QlFVb3hReXhyUWtGQmEwSTdTVUZFT1VJc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6czdSMEZEVWl4clFrRkJhMElzUTBFd1ZUbENJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRjYmlBZ1EyOXVaR2wwYVc5dUxGeHVJQ0JOYjJSbGJGTmxjblpwWTJVc1hHNGdJRkpsY0c5emFYUnZjbmtzWEc0Z0lISmxjRzl6YVhSdmNua3NYRzRnSUhObGNuWnBZMlVzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhSNWNHVWdleUJTWlhCdklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk9iM1JHYjNWdVpFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCR1pXRjBkWEpsUm14aFowVnVkbWx5YjI1dFpXNTBJSDBnWm5KdmJTQmNJaTR1TDJWdWRtbHliMjV0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJHWldGMGRYSmxSbXhoWjBGalkyVnpjeUI5SUdaeWIyMGdYQ0l1TGk5dGIyUmxiSE12Um1WaGRIVnlaVVpzWVdkQlkyTmxjM011Ylc5a1pXeGNJanRjYm1sdGNHOXlkQ0I3SUVabFlYUjFjbVZHYkdGbklIMGdabkp2YlNCY0lpNHVMMjF2WkdWc2N5OUdaV0YwZFhKbFJteGhaeTV0YjJSbGJGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1JXNTJhWEp2Ym0xbFJteGhaMUpsWVdSbGNpeGNiaUFnUm1WaGRIVnlaVVpzWVdkU1pXRmtaWElzWEc0Z0lFWmxZWFIxY21WR2JHRm5VbVZoWkdWeVRHbHJaU3hjYm4wZ1puSnZiU0JjSWk0dUwzSmxZV1JsY25OY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUh0Y2JpQWdSbVZoZEhWeVpVWnNZV2RCWTJObGMzTkpibkIxZEN4Y2JpQWdSbVZoZEhWeVpVWnNZV2RCWTJObGMzTlJkV1Z5ZVN4Y2JpQWdSbVZoZEhWeVpVWnNZV2RCWTJObGMzTlRkV0pxWldOMExGeHVJQ0JHWldGMGRYSmxSbXhoWjBOdmJtWnBaeXhjYmlBZ1JtVmhkSFZ5WlVac1lXZFNaV0ZrWlhKRGIyNW1hV2NzWEc0Z0lFWmxZWFIxY21WR2JHRm5VbVZoWkdWeVNXNXdkWFFzWEc0Z0lFWmxZWFIxY21WR2JHRm5VbVZuYVhOMGNua3NYRzU5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdhWE5HWldGMGRYSmxSbXhoWjBWdVlXSnNaV1FzWEc0Z0lHbHpSbVZoZEhWeVpVWnNZV2RGYm1GaWJHVmtRbmxPWVcxbExGeHVJQ0J1YjNKdFlXeHBlbVZHWldGMGRYSmxUbUZ0WlN4Y2JuMGdabkp2YlNCY0lpNHVMM1YwYVd4elhDSTdYRzVwYlhCdmNuUWdleUJ1YjNKdFlXeHBlbVZHWldGMGRYSmxVM1ZpYW1WamRFdGxlU3dnYm05eWJXRnNhWHBsUm1WaGRIVnlaVk4xWW1wbFkzUlVlWEJsSUgwZ1puSnZiU0JjSWk0dUwzVjBhV3h6WENJN1hHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSbVZoZEhWeVpVWnNZV2RUWlhKMmFXTmxRMjl1Wm1sbklHVjRkR1Z1WkhNZ1JtVmhkSFZ5WlVac1lXZFNaV0ZrWlhKRGIyNW1hV2NnZTF4dUlDQnlaV0ZrWlhJL09pQkdaV0YwZFhKbFJteGhaMUpsWVdSbGNreHBhMlU3WEc0Z0lISmxjRzl6YVhSdmNuay9PaUJTWlhCdmMybDBiM0o1UEVabFlYUjFjbVZHYkdGbkxDQmhibmsrTzF4dWZWeHVYRzVBYzJWeWRtbGpaU2hHWldGMGRYSmxSbXhoWnlsY2JtVjRjRzl5ZENCamJHRnpjeUJHWldGMGRYSmxSbXhoWjFObGNuWnBZMlVnWlhoMFpXNWtjeUJOYjJSbGJGTmxjblpwWTJVOFJtVmhkSFZ5WlVac1lXYytJSHRjYmlBZ2NISnBkbUYwWlNCeVpXRmtaWEk2SUVabFlYUjFjbVZHYkdGblVtVmhaR1Z5SUQwZ2JtVjNJRVZ1ZG1seWIyNXRaVVpzWVdkU1pXRmtaWElvS1R0Y2JpQWdjSEpwZG1GMFpTQmpZV05vWldSU1pXZHBjM1J5ZVRvZ1JtVmhkSFZ5WlVac1lXZFNaV2RwYzNSeWVTQTlJSHQ5TzF4dUlDQkFjbVZ3YjNOcGRHOXllU2hHWldGMGRYSmxSbXhoWjBGalkyVnpjeWxjYmlBZ2NISnZkR1ZqZEdWa0lHRmpZMlZ6YzFKbGNHOXphWFJ2Y25raE9pQlNaWEJ2UEVabFlYUjFjbVZHYkdGblFXTmpaWE56UGp0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWhHWldGMGRYSmxSbXhoWnlrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCcGJtbDBhV0ZzYVhwbEtGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOGV5QmpiMjVtYVdjNklFWmxZWFIxY21WR2JHRm5VMlZ5ZG1salpVTnZibVpwWnpzZ1kyeHBaVzUwT2lCR1pXRjBkWEpsUm14aFoxSmxZV1JsY2lCOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTI5dVptbG5JRDBnS0dGeVozTmJNRjBnWVhNZ1JtVmhkSFZ5WlVac1lXZFRaWEoyYVdObFEyOXVabWxuSUh3Z2RXNWtaV1pwYm1Wa0tTQS9QeUI3ZlR0Y2JpQWdJQ0JwWmlBb1kyOXVabWxuTG5KbGNHOXphWFJ2Y25rcElIdGNiaUFnSUNBZ0lIUm9hWE11WDNKbGNHOXphWFJ2Y25rZ1BTQmpiMjVtYVdjdWNtVndiM05wZEc5eWVTQmhjeUJoYm5rN1hHNGdJQ0FnZlZ4dUlDQWdJSFJvYVhNdWNtVmhaR1Z5SUQwZ0lXTnZibVpwWnk1eVpXRmtaWEpjYmlBZ0lDQWdJRDhnYm1WM0lFVnVkbWx5YjI1dFpVWnNZV2RTWldGa1pYSW9LVnh1SUNBZ0lDQWdPaUIwZVhCbGIyWWdZMjl1Wm1sbkxuSmxZV1JsY2lBOVBUMGdYQ0ptZFc1amRHbHZibHdpWEc0Z0lDQWdJQ0FnSUQ4Z2JtVjNJR052Ym1acFp5NXlaV0ZrWlhJb0tWeHVJQ0FnSUNBZ0lDQTZJR052Ym1acFp5NXlaV0ZrWlhJN1hHNGdJQ0FnWTI5dWMzUWdjbVZoWkdWeVEyOXVabWxuSUQwZ2UxeHVJQ0FnSUNBZ0xpNHVLR052Ym1acFp5NXlaV0ZrWlhKRGIyNW1hV2NnUHo4Z2UzMHBMRnh1SUNBZ0lDQWdjMjkxY21ObE9pQmpiMjVtYVdjdWNtVmhaR1Z5UTI5dVptbG5QeTV6YjNWeVkyVWdQejhnUm1WaGRIVnlaVVpzWVdkRmJuWnBjbTl1YldWdWRDeGNiaUFnSUNCOU8xeHVJQ0FnSUhSb2FYTXVZMkZqYUdWa1VtVm5hWE4wY25rZ1BTQmhkMkZwZENCMGFHbHpMbkpsWm5KbGMyaERZV05vWldSU1pXZHBjM1J5ZVNoeVpXRmtaWEpEYjI1bWFXY3NJQzR1TG1GeVozTXBPMXh1SUNBZ0lHTnZibk4wSUdWbVptVmpkR2wyWlVOdmJtWnBaem9nUm1WaGRIVnlaVVpzWVdkVFpYSjJhV05sUTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnTGk0dVkyOXVabWxuTEZ4dUlDQWdJQ0FnY21WaFpHVnlPaUIwYUdsekxuSmxZV1JsY2l4Y2JpQWdJQ0FnSUhKbFlXUmxja052Ym1acFp5eGNiaUFnSUNCOU8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaem9nWldabVpXTjBhWFpsUTI5dVptbG5MQ0JqYkdsbGJuUTZJSFJvYVhNdWNtVmhaR1Z5SUgwN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnNiMjVsVW1WbmFYTjBjbmtvY21WbmFYTjBjbms2SUVabFlYUjFjbVZHYkdGblVtVm5hWE4wY25rcE9pQkdaV0YwZFhKbFJteGhaMUpsWjJsemRISjVJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG1WdWRISnBaWE1vY21WbmFYTjBjbmtwTG5KbFpIVmpaU2dvWVdOakxDQmJhMlY1TENCMllXeDFaVjBwSUQwK0lIdGNiaUFnSUNBZ0lHRmpZMXRyWlhsZElEMWNiaUFnSUNBZ0lDQWdkbUZzZFdVZ0ppWWdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUNGQmNuSmhlUzVwYzBGeWNtRjVLSFpoYkhWbEtWeHVJQ0FnSUNBZ0lDQWdJRDhnS0hzZ0xpNHVLSFpoYkhWbElHRnpJRVpsWVhSMWNtVkdiR0ZuUTI5dVptbG5LU0I5SUdGeklFWmxZWFIxY21WR2JHRm5RMjl1Wm1sbktWeHVJQ0FnSUNBZ0lDQWdJRG9nZG1Gc2RXVTdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXTmpPMXh1SUNBZ0lIMHNJSHQ5SUdGeklFWmxZWFIxY21WR2JHRm5VbVZuYVhOMGNua3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnlaV1p5WlhOb1EyRmphR1ZrVW1WbmFYTjBjbmtvWEc0Z0lDQWdiM0IwYVc5dWN6b2dSbVZoZEhWeVpVWnNZV2RTWldGa1pYSkpibkIxZENBOUlIdDlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThSbVZoZEhWeVpVWnNZV2RTWldkcGMzUnllVDRnZTF4dUlDQWdJR052Ym5OMElHVnVkbEpsWjJsemRISjVJRDBnWVhkaGFYUWdkR2hwY3k1eVpXRmtaWEl1Y21WaFpDaDdYRzRnSUNBZ0lDQXVMaTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdjMjkxY21ObE9pQnZjSFJwYjI1ekxuTnZkWEpqWlNBL1B5QkdaV0YwZFhKbFJteGhaMFZ1ZG1seWIyNXRaVzUwTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR3hsZENCd1pYSnphWE4wWldRNklFWmxZWFIxY21WR2JHRm5XMTBnUFNCYlhUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjR1Z5YzJsemRHVmtJRDBnWVhkaGFYUWdkR2hwY3k1eVpYQnZMbk5sYkdWamRDZ3BMbVY0WldOMWRHVW9MaTR1WVhKbmN5azdYRzRnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNCd1pYSnphWE4wWldRZ1BTQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCeVpXZHBjM1J5ZVNBOUlIUm9hWE11WTJ4dmJtVlNaV2RwYzNSeWVTaGxiblpTWldkcGMzUnllU2s3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JtYkdGbklHOW1JSEJsY25OcGMzUmxaQ2tnZTF4dUlDQWdJQ0FnY21WbmFYTjBjbmxiWm14aFp5NXJaWGxkSUQwZ1pteGhaeTVsYm1GaWJHVmtJRDhnS0dac1lXY3VZMjl1Wm1sbklEOC9JSFJ5ZFdVcElEb2dabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaV2RwYzNSeWVUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjMlYwUTJGamFHVmtSbXhoWnlobWJHRm5PaUJHWldGMGRYSmxSbXhoWnlrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdVkyRmphR1ZrVW1WbmFYTjBjbmxiWm14aFp5NXJaWGxkSUQwZ1pteGhaeTVsYm1GaWJHVmtYRzRnSUNBZ0lDQS9JQ2htYkdGbkxtTnZibVpwWnlBL1B5QjBjblZsS1Z4dUlDQWdJQ0FnT2lCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMFFXTmpaWE56VW1Wd2IzTnBkRzl5ZVNncE9pQlNaWEJ2UEVabFlYUjFjbVZHYkdGblFXTmpaWE56UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXTmpaWE56VW1Wd2IzTnBkRzl5ZVNBL1B5QlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNLRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhOelpYSjBTVzVwZEdsaGJHbDZaV1FvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdkbTlwWkNCMGFHbHpMbkpsWVdSbGNqdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdibTl5YldGc2FYcGxSbVZoZEhWeVpVRmpZMlZ6YzBsdWNIVjBLRnh1SUNBZ0lHbHVjSFYwT2lCR1pXRjBkWEpsUm14aFowRmpZMlZ6YzBsdWNIVjBYRzRnSUNrNklFWmxZWFIxY21WR2JHRm5RV05qWlhOelNXNXdkWFFnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQXVMaTVwYm5CMWRDeGNiaUFnSUNBZ0lHWmxZWFIxY21WTFpYazZJRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS0dsdWNIVjBMbVpsWVhSMWNtVkxaWGtwTEZ4dUlDQWdJQ0FnYzNWaWFtVmpkRlI1Y0dVNklHNXZjbTFoYkdsNlpVWmxZWFIxY21WVGRXSnFaV04wVkhsd1pTaHBibkIxZEM1emRXSnFaV04wVkhsd1pTa3NYRzRnSUNBZ0lDQnpkV0pxWldOMFMyVjVPaUJ1YjNKdFlXeHBlbVZHWldGMGRYSmxVM1ZpYW1WamRFdGxlU2hwYm5CMWRDNXpkV0pxWldOMFMyVjVLU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JpZFdsc1pFRmpZMlZ6YzBOdmJtUnBkR2x2YmloY2JpQWdJQ0J4ZFdWeWVUb2dSbVZoZEhWeVpVWnNZV2RCWTJObGMzTlJkV1Z5ZVZ4dUlDQXBPaUJEYjI1a2FYUnBiMjQ4Um1WaGRIVnlaVVpzWVdkQlkyTmxjM00rSUh0Y2JpQWdJQ0JzWlhRZ1kyOXVaR2wwYVc5dUlEMGdRMjl1WkdsMGFXOXVMbUYwZEhJOFJtVmhkSFZ5WlVac1lXZEJZMk5sYzNNK0tGd2ljM1ZpYW1WamRGUjVjR1ZjSWlrdVpYRW9YRzRnSUNBZ0lDQnViM0p0WVd4cGVtVkdaV0YwZFhKbFUzVmlhbVZqZEZSNWNHVW9jWFZsY25rdWMzVmlhbVZqZEZSNWNHVXBYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNWthWFJwYjI0Z1BTQmpiMjVrYVhScGIyNHVZVzVrS0Z4dUlDQWdJQ0FnUTI5dVpHbDBhVzl1TG1GMGRISThSbVZoZEhWeVpVWnNZV2RCWTJObGMzTStLRndpYzNWaWFtVmpkRXRsZVZ3aUtTNWxjU2hjYmlBZ0lDQWdJQ0FnYm05eWJXRnNhWHBsUm1WaGRIVnlaVk4xWW1wbFkzUkxaWGtvY1hWbGNua3VjM1ZpYW1WamRFdGxlU2xjYmlBZ0lDQWdJQ2xjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjWFZsY25rdVpXNWhZbXhsWkNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ1kyOXVaR2wwYVc5dUlEMGdZMjl1WkdsMGFXOXVMbUZ1WkNoY2JpQWdJQ0FnSUNBZ1EyOXVaR2wwYVc5dUxtRjBkSEk4Um1WaGRIVnlaVVpzWVdkQlkyTmxjM00rS0Z3aVpXNWhZbXhsWkZ3aUtTNWxjU2h4ZFdWeWVTNWxibUZpYkdWa0tWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIRjFaWEo1TG1abFlYUjFjbVZMWlhseklDWW1JSEYxWlhKNUxtWmxZWFIxY21WTFpYbHpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUdOdmJtUnBkR2x2YmlBOUlHTnZibVJwZEdsdmJpNWhibVFvWEc0Z0lDQWdJQ0FnSUVOdmJtUnBkR2x2Ymk1aGRIUnlQRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpQaWhjSW1abFlYUjFjbVZMWlhsY0lpa3VhVzRvWEc0Z0lDQWdJQ0FnSUNBZ2NYVmxjbmt1Wm1WaGRIVnlaVXRsZVhNdWJXRndLRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZMjl1WkdsMGFXOXVPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdZM0psWVhSbEtGeHVJQ0FnSUcxdlpHVnNPaUJHWldGMGRYSmxSbXhoWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEVabFlYUjFjbVZHYkdGblBpQjdYRzRnSUNBZ2JXOWtaV3d1YTJWNUlEMGdibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VvYlc5a1pXd3VhMlY1S1R0Y2JpQWdJQ0J0YjJSbGJDNWxibUZpYkdWa0lEOC9QU0IwY25WbE8xeHVJQ0FnSUdOdmJuTjBJR055WldGMFpXUWdQU0JoZDJGcGRDQnpkWEJsY2k1amNtVmhkR1VvYlc5a1pXd3NJQzR1TG1GeVozTXBPMXh1SUNBZ0lIUm9hWE11YzJWMFEyRmphR1ZrUm14aFp5aGpjbVZoZEdWa0tUdGNiaUFnSUNCeVpYUjFjbTRnWTNKbFlYUmxaRHRjYmlBZ2ZWeHVYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSFZ3WkdGMFpTaGNiaUFnSUNCdGIyUmxiRG9nUm1WaGRIVnlaVVpzWVdjc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFp6NGdlMXh1SUNBZ0lHMXZaR1ZzTG10bGVTQTlJRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS0cxdlpHVnNMbXRsZVNrN1hHNGdJQ0FnYlc5a1pXd3VaVzVoWW14bFpDQS9QejBnZEhKMVpUdGNiaUFnSUNCamIyNXpkQ0IxY0dSaGRHVmtJRDBnWVhkaGFYUWdjM1Z3WlhJdWRYQmtZWFJsS0cxdlpHVnNMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQjBhR2x6TG5ObGRFTmhZMmhsWkVac1lXY29kWEJrWVhSbFpDazdYRzRnSUNBZ2NtVjBkWEp1SUhWd1pHRjBaV1E3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJtYVc1a1QyNWxRbmtvWEc0Z0lDQWdhMlY1T2lCclpYbHZaaUJHWldGMGRYSmxSbXhoWnl4Y2JpQWdJQ0IyWVd4MVpUb2dZVzU1TEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4Um1WaGRIVnlaVVpzWVdjK0lIdGNiaUFnSUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrVm1Gc2RXVWdQVnh1SUNBZ0lDQWdhMlY1SUQwOVBTQmNJbXRsZVZ3aUlDWW1JSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdJQ0EvSUc1dmNtMWhiR2w2WlVabFlYUjFjbVZPWVcxbEtIWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBNklIWmhiSFZsTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbGNHOHVabWx1WkU5dVpVSjVLR3RsZVN3Z2JtOXliV0ZzYVhwbFpGWmhiSFZsTENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhKbFlXUkJiR3dvWEc0Z0lDQWdhMlY1Y3pvZ1lXNTVXMTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhHWldGMGRYSmxSbXhoWjF0ZFBpQjdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1eVpYQnZMbkpsWVdSQmJHd29hMlY1Y3l3Z0xpNHVZWEpuY3lrN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCbWJHRm5JRzltSUhKbGMzVnNkQ2tnZEdocGN5NXpaWFJEWVdOb1pXUkdiR0ZuS0dac1lXY3BPMXh1SUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJzYVhOMFJXNWhZbXhsWkNndUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4Um1WaGRIVnlaVVpzWVdkYlhUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c5Y2JpQWdJQ0FnSUM1elpXeGxZM1FvS1Z4dUlDQWdJQ0FnTG5kb1pYSmxLRU52Ym1ScGRHbHZiaTVoZEhSeVBFWmxZWFIxY21WR2JHRm5QaWhjSW1WdVlXSnNaV1JjSWlrdVpYRW9kSEoxWlNrcFhHNGdJQ0FnSUNBdVpYaGxZM1YwWlNndUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkeVlXNTBSbVZoZEhWeVpVRmpZMlZ6Y3loY2JpQWdJQ0JwYm5CMWREb2dSbVZoZEhWeVpVWnNZV2RCWTJObGMzTkpibkIxZEN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEVabFlYUjFjbVZHYkdGblFXTmpaWE56UGlCN1hHNGdJQ0FnWTI5dWMzUWdibTl5YldGc2FYcGxaQ0E5SUhSb2FYTXVibTl5YldGc2FYcGxSbVZoZEhWeVpVRmpZMlZ6YzBsdWNIVjBLR2x1Y0hWMEtUdGNiaUFnSUNCamIyNXpkQ0JsZUdsemRHbHVaeUE5SUdGM1lXbDBJSFJvYVhNdVptbHVaRVpsWVhSMWNtVkJZMk5sYzNNb2JtOXliV0ZzYVhwbFpDd2dMaTR1WVhKbmN5a3VZMkYwWTJnb1hHNGdJQ0FnSUNBb0tTQTlQaUIxYm1SbFptbHVaV1JjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doWlhocGMzUnBibWNwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRUZqWTJWemMxSmxjRzl6YVhSdmNua29LUzVqY21WaGRHVW9YRzRnSUNBZ0lDQWdJRzVsZHlCR1pXRjBkWEpsUm14aFowRmpZMlZ6Y3lodWIzSnRZV3hwZW1Wa0tTeGNiaUFnSUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVoyVjBRV05qWlhOelVtVndiM05wZEc5eWVTZ3BMblZ3WkdGMFpTaGNiaUFnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvWlhocGMzUnBibWNzSUc1dmNtMWhiR2w2WldRcExGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ5WlhadmEyVkdaV0YwZFhKbFFXTmpaWE56S0Z4dUlDQWdJR2x1Y0hWME9pQkdaV0YwZFhKbFJteGhaMEZqWTJWemMxTjFZbXBsWTNRZ0ppQjdJR1psWVhSMWNtVkxaWGs2SUhOMGNtbHVaeUI5TEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4Um1WaGRIVnlaVVpzWVdkQlkyTmxjM01nZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnSUNCamIyNXpkQ0JsZUdsemRHbHVaeUE5SUdGM1lXbDBJSFJvYVhNdVptbHVaRVpsWVhSMWNtVkJZMk5sYzNNb2FXNXdkWFFzSUM0dUxtRnlaM01wTG1OaGRHTm9LRnh1SUNBZ0lDQWdLQ2tnUFQ0Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb0lXVjRhWE4wYVc1bktTQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRUZqWTJWemMxSmxjRzl6YVhSdmNua29LUzVrWld4bGRHVW9aWGhwYzNScGJtY3VhV1FzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWm1sdVpFWmxZWFIxY21WQlkyTmxjM01vWEc0Z0lDQWdjWFZsY25rNklFWmxZWFIxY21WR2JHRm5RV05qWlhOelVYVmxjbmtzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhHWldGMGRYSmxSbXhoWjBGalkyVnpjejRnZTF4dUlDQWdJR052Ym5OMElHTnZibVJwZEdsdmJpQTlJSFJvYVhNdVluVnBiR1JCWTJObGMzTkRiMjVrYVhScGIyNG9jWFZsY25rcE8xeHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITWdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmpZMlZ6YzFKbGNHOXphWFJ2Y25rb0tWeHVJQ0FnSUNBZ0xuTmxiR1ZqZENncFhHNGdJQ0FnSUNBdWQyaGxjbVVvWTI5dVpHbDBhVzl1S1Z4dUlDQWdJQ0FnTG1WNFpXTjFkR1VvTGk0dVlYSm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ1pYaHBjM1JwYm1jZ1BTQnlaWE4xYkhSeld6QmRPMXh1SUNBZ0lHbG1JQ2doWlhocGMzUnBibWNwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnUm1WaGRIVnlaU0JoWTJObGMzTWdabTl5SUNSN2JtOXliV0ZzYVhwbFJtVmhkSFZ5WlZOMVltcGxZM1JVZVhCbEtIRjFaWEo1TG5OMVltcGxZM1JVZVhCbEtYMDZKSHR1YjNKdFlXeHBlbVZHWldGMGRYSmxVM1ZpYW1WamRFdGxlU2h4ZFdWeWVTNXpkV0pxWldOMFMyVjVLWDBnYm05MElHWnZkVzVrWUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHVjRhWE4wYVc1bk8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRVpsWVhSMWNtVkJZMk5sYzNNb1hHNGdJQ0FnY1hWbGNuazZJRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpVWFZsY25rc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFowRmpZMlZ6YzF0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaMlYwUVdOalpYTnpVbVZ3YjNOcGRHOXllU2dwWEc0Z0lDQWdJQ0F1YzJWc1pXTjBLQ2xjYmlBZ0lDQWdJQzUzYUdWeVpTaDBhR2x6TG1KMWFXeGtRV05qWlhOelEyOXVaR2wwYVc5dUtIRjFaWEo1S1NsY2JpQWdJQ0FnSUM1bGVHVmpkWFJsS0M0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WemIyeDJaVVpsWVhSMWNtVkdiR0ZuYzBadmNsTjFZbXBsWTNRb1hHNGdJQ0FnYzNWaWFtVmpkRG9nUm1WaGRIVnlaVVpzWVdkQlkyTmxjM05UZFdKcVpXTjBMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThSbVZoZEhWeVpVWnNZV2RTWldkcGMzUnllVDRnZTF4dUlDQWdJSFJvYVhNdVlYTnpaWEowU1c1cGRHbGhiR2w2WldRb0tUdGNiaUFnSUNCamIyNXpkQ0JoWTJObGMzTWdQU0JoZDJGcGRDQjBhR2x6TG14cGMzUkdaV0YwZFhKbFFXTmpaWE56S0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBdUxpNXpkV0pxWldOMExGeHVJQ0FnSUNBZ0lDQmxibUZpYkdWa09pQjBjblZsTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdabFlYUjFjbVZMWlhseklEMGdXeTR1TG01bGR5QlRaWFFvWVdOalpYTnpMbTFoY0Nnb2FYUmxiU2tnUFQ0Z2FYUmxiUzVtWldGMGRYSmxTMlY1S1NsZE8xeHVJQ0FnSUdsbUlDaG1aV0YwZFhKbFMyVjVjeTVzWlc1bmRHZ2dQVDA5SURBcElISmxkSFZ5YmlCN2ZUdGNibHh1SUNBZ0lHTnZibk4wSUdOdmJtUnBkR2x2YmlBOUlFTnZibVJwZEdsdmJpNWhkSFJ5UEVabFlYUjFjbVZHYkdGblBpaGNJbVZ1WVdKc1pXUmNJaWt1WlhFb2RISjFaU2t1WVc1a0tGeHVJQ0FnSUNBZ1EyOXVaR2wwYVc5dUxtRjBkSEk4Um1WaGRIVnlaVVpzWVdjK0tGd2lhMlY1WENJcExtbHVLRnh1SUNBZ0lDQWdJQ0JtWldGMGRYSmxTMlY1Y3k1dFlYQW9ibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VwWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHVnVZV0pzWldSR2JHRm5jeUE5SUdGM1lXbDBJSFJvYVhNdWNtVndieTV6Wld4bFkzUW9LUzUzYUdWeVpTaGpiMjVrYVhScGIyNHBMbVY0WldOMWRHVW9MaTR1WVhKbmN5azdYRzRnSUNBZ2NtVjBkWEp1SUdWdVlXSnNaV1JHYkdGbmN5NXlaV1IxWTJVb0tISmxaMmx6ZEhKNUxDQm1iR0ZuS1NBOVBpQjdYRzRnSUNBZ0lDQnlaV2RwYzNSeWVWdG1iR0ZuTG10bGVWMGdQU0JtYkdGbkxtTnZibVpwWnlBL1B5QjBjblZsTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsWjJsemRISjVPMXh1SUNBZ0lIMHNJSHQ5SUdGeklFWmxZWFIxY21WR2JHRm5VbVZuYVhOMGNua3BPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdhWE5GYm1GaWJHVmtSbTl5VTNWaWFtVmpkQ2hjYmlBZ0lDQnJaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQnpkV0pxWldOME9pQkdaV0YwZFhKbFJteGhaMEZqWTJWemMxTjFZbXBsWTNRc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnWTI5dWMzUWdjbVZuYVhOMGNua2dQU0JoZDJGcGRDQjBhR2x6TG5KbGMyOXNkbVZHWldGMGRYSmxSbXhoWjNOR2IzSlRkV0pxWldOMEtITjFZbXBsWTNRc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUhKbGRIVnliaUJwYzBabFlYUjFjbVZHYkdGblJXNWhZbXhsWkVKNVRtRnRaU2h5WldkcGMzUnllU3dnYTJWNUtUdGNiaUFnZlZ4dVhHNGdJR2x6Ulc1aFlteGxaQ2hyWlhrNklITjBjbWx1WnlrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUhSb2FYTXVZWE56WlhKMFNXNXBkR2xoYkdsNlpXUW9LVHRjYmlBZ0lDQmpiMjV6ZENCdWIzSnRZV3hwZW1Wa1MyVjVJRDBnYm05eWJXRnNhWHBsUm1WaGRIVnlaVTVoYldVb2EyVjVLVHRjYmlBZ0lDQnlaWFIxY200Z2FYTkdaV0YwZFhKbFJteGhaMFZ1WVdKc1pXUkNlVTVoYldVb2RHaHBjeTVqWVdOb1pXUlNaV2RwYzNSeWVTd2dibTl5YldGc2FYcGxaRXRsZVNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCeVpYTnZiSFpsUm1WaGRIVnlaVVpzWVdkektDazZJRkJ5YjIxcGMyVThSbVZoZEhWeVpVWnNZV2RTWldkcGMzUnllVDRnZTF4dUlDQWdJSFJvYVhNdVlYTnpaWEowU1c1cGRHbGhiR2w2WldRb0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiRzl1WlZKbFoybHpkSEo1S0hSb2FYTXVZMkZqYUdWa1VtVm5hWE4wY25rcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2MzbHVZMFp5YjIxRmJuWnBjbTl1YldWdWRDaGNiaUFnSUNCdmNIUnBiMjV6T2lCR1pXRjBkWEpsUm14aFoxSmxZV1JsY2tsdWNIVjBJRDBnZTMwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFoxdGRQaUI3WEc0Z0lDQWdkR2hwY3k1aGMzTmxjblJKYm1sMGFXRnNhWHBsWkNncE8xeHVJQ0FnSUdOdmJuTjBJSEpsWjJsemRISjVJRDBnWVhkaGFYUWdkR2hwY3k1eVpXRmtaWEl1Y21WaFpDaDdYRzRnSUNBZ0lDQXVMaTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdjMjkxY21ObE9pQnZjSFJwYjI1ekxuTnZkWEpqWlNBL1B5QkdaV0YwZFhKbFJteGhaMFZ1ZG1seWIyNXRaVzUwTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR052Ym5OMElISmxjM1ZzZEhNNklFWmxZWFIxY21WR2JHRm5XMTBnUFNCYlhUdGNiaUFnSUNCbWIzSWdLR052Ym5OMElGdHJaWGtzSUhaaGJIVmxYU0J2WmlCUFltcGxZM1F1Wlc1MGNtbGxjeWh5WldkcGMzUnllU2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlYRzRnSUNBZ0lDQWdJSFpoYkhWbElDWW1JSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdYQ0p2WW1wbFkzUmNJaUFtSmlBaFFYSnlZWGt1YVhOQmNuSmhlU2gyWVd4MVpTbGNiaUFnSUNBZ0lDQWdJQ0EvSUNoMllXeDFaU0JoY3lCR1pXRjBkWEpsUm14aFowTnZibVpwWnlsY2JpQWdJQ0FnSUNBZ0lDQTZJSHNnWlc1aFlteGxaRG9nUW05dmJHVmhiaWgyWVd4MVpTa2dmVHRjYmlBZ0lDQWdJR052Ym5OMElIc2daVzVoWW14bFpEb2dYMmxuYm05eVpXUkZibUZpYkdWa0xDQXVMaTV5WlhOMFEyOXVabWxuSUgwZ1BTQmpiMjVtYVdjN1hHNGdJQ0FnSUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrUzJWNUlEMGdibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VvYTJWNUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdWNGFYTjBhVzVuSUQwZ1lYZGhhWFFnZEdocGN5NW1hVzVrVDI1bFFua29YRzRnSUNBZ0lDQWdJRndpYTJWNVhDSXNYRzRnSUNBZ0lDQWdJRzV2Y20xaGJHbDZaV1JMWlhrc1hHNGdJQ0FnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FnSUNrdVkyRjBZMmdvS0NrZ1BUNGdkVzVrWldacGJtVmtLVHRjYmlBZ0lDQWdJR052Ym5OMElHMXZaR1ZzSUQwZ1pYaHBjM1JwYm1kY2JpQWdJQ0FnSUNBZ1B5QlBZbXBsWTNRdVlYTnphV2R1S0dWNGFYTjBhVzVuTENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsYm1GaWJHVmtPaUJwYzBabFlYUjFjbVZHYkdGblJXNWhZbXhsWkNoMllXeDFaU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaWE5qY21sd2RHbHZiam9nY21WemRFTnZibVpwWnk1a1pYTmpjbWx3ZEdsdmJpQS9QeUJsZUdsemRHbHVaeTVrWlhOamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5qYjNCbE9pQnlaWE4wUTI5dVptbG5Mbk5qYjNCbElEOC9JR1Y0YVhOMGFXNW5Mbk5qYjNCbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldWMFlXUmhkR0U2SUhKbGMzUkRiMjVtYVdjdWJXVjBZV1JoZEdFZ1B6OGdaWGhwYzNScGJtY3ViV1YwWVdSaGRHRXNYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNW1hV2M2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnTGk0dWNtVnpkRU52Ym1acFp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1pXNWhZbXhsWkRvZ2FYTkdaV0YwZFhKbFJteGhaMFZ1WVdKc1pXUW9kbUZzZFdVcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQjlLVnh1SUNBZ0lDQWdJQ0E2SUc1bGR5QkdaV0YwZFhKbFJteGhaeWg3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnJaWGs2SUc1dmNtMWhiR2w2WldSTFpYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJtRmliR1ZrT2lCcGMwWmxZWFIxY21WR2JHRm5SVzVoWW14bFpDaDJZV3gxWlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ2NtVnpkRU52Ym1acFp5NWtaWE5qY21sd2RHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lITmpiM0JsT2lCeVpYTjBRMjl1Wm1sbkxuTmpiM0JsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiV1YwWVdSaGRHRTZJSEpsYzNSRGIyNW1hV2N1YldWMFlXUmhkR0VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjVtYVdjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjbVZ6ZEVOdmJtWnBaeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVoWW14bFpEb2dhWE5HWldGMGRYSmxSbXhoWjBWdVlXSnNaV1FvZG1Gc2RXVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGMzVnNkSE11Y0hWemFDaGxlR2x6ZEdsdVp5QS9JR0YzWVdsMElIUm9hWE11ZFhCa1lYUmxLRzF2WkdWc0xDQXVMaTVoY21kektTQTZJR0YzWVdsMElIUm9hWE11WTNKbFlYUmxLRzF2WkdWc0xDQXVMaTVoY21kektTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSb2FYTXVZMkZqYUdWa1VtVm5hWE4wY25rZ1BTQmhkMkZwZENCMGFHbHpMbkpsWm5KbGMyaERZV05vWldSU1pXZHBjM1J5ZVNoY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0xpNHViM0IwYVc5dWN5eGNiaUFnSUNBZ0lDQWdjMjkxY21ObE9pQnZjSFJwYjI1ekxuTnZkWEpqWlNBL1B5QkdaV0YwZFhKbFJteGhaMFZ1ZG1seWIyNXRaVzUwTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFJ6TzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZUZsYWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mZWF0dXJlLWZsYWdzL3NlcnZpY2VzL0ZlYXR1cmVGbGFnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDRCQUF1QjtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0NBQTBDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUseUNBQW9DO0FBQzFELE9BQU8sRUFDTCxtQkFBbUIsR0FHcEIsOEJBQW1CO0FBVXBCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLG9CQUFvQixHQUNyQixzQkFBaUI7QUFDbEIsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiwyQkFBMkIsR0FDNUIsc0JBQWlCO0FBUVgsSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBbUIsU0FBUSxZQUF5QjtJQU0vRDtRQUNFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQU5iLFdBQU0sR0FBc0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RELG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztJQU1qRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFHLElBQVc7UUFFZCxNQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsQ0FBQyxDQUEwQyxJQUFJLEVBQUUsQ0FBQztRQUN2RSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFpQixDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENB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QUFFLGFBQWE7b0JBQ2xCLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7b0JBQ3BDLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztvQkFDbkMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO29CQUN2QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7b0JBQzdCLE1BQU0sRUFBRTt3QkFDTixHQUFHLFVBQVU7d0JBQ2IsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQztxQkFDckM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxDQUFDLElBQUksQ0FDVixRQUFRO2dCQUNOLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQ3BEO1lBQ0UsR0FBRyxPQUFPO1lBQ1YsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksc0JBQXNCO1NBQ2pELEVBQ0QsR0FBRyxJQUFJLENBQ1IsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFBO0FBaFZXO0lBRFQsVUFBVSxDQUFDLGlCQUFpQixDQUFDOzs0REFDdUI7QUFKMUMsa0JBQWtCO0lBRDlCLE9BQU8sQ0FBQyxXQUFXLENBQUM7O0dBQ1Isa0JBQWtCLENBb1Y5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmRpdGlvbixcbiAgTW9kZWxTZXJ2aWNlLFxuICBSZXBvc2l0b3J5LFxuICByZXBvc2l0b3J5LFxuICBzZXJ2aWNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgUmVwbyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdFbnZpcm9ubWVudCB9IGZyb20gXCIuLi9lbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdBY2Nlc3MgfSBmcm9tIFwiLi4vbW9kZWxzL0ZlYXR1cmVGbGFnQWNjZXNzLm1vZGVsXCI7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZyB9IGZyb20gXCIuLi9tb2RlbHMvRmVhdHVyZUZsYWcubW9kZWxcIjtcbmltcG9ydCB7XG4gIEVudmlyb25tZUZsYWdSZWFkZXIsXG4gIEZlYXR1cmVGbGFnUmVhZGVyLFxuICBGZWF0dXJlRmxhZ1JlYWRlckxpa2UsXG59IGZyb20gXCIuLi9yZWFkZXJzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEZlYXR1cmVGbGFnQWNjZXNzSW5wdXQsXG4gIEZlYXR1cmVGbGFnQWNjZXNzUXVlcnksXG4gIEZlYXR1cmVGbGFnQWNjZXNzU3ViamVjdCxcbiAgRmVhdHVyZUZsYWdDb25maWcsXG4gIEZlYXR1cmVGbGFnUmVhZGVyQ29uZmlnLFxuICBGZWF0dXJlRmxhZ1JlYWRlcklucHV0LFxuICBGZWF0dXJlRmxhZ1JlZ2lzdHJ5LFxufSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIGlzRmVhdHVyZUZsYWdFbmFibGVkLFxuICBpc0ZlYXR1cmVGbGFnRW5hYmxlZEJ5TmFtZSxcbiAgbm9ybWFsaXplRmVhdHVyZU5hbWUsXG59IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplRmVhdHVyZVN1YmplY3RLZXksXG4gIG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0VHlwZSxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnIGV4dGVuZHMgRmVhdHVyZUZsYWdSZWFkZXJDb25maWcge1xuICByZWFkZXI/OiBGZWF0dXJlRmxhZ1JlYWRlckxpa2U7XG4gIHJlcG9zaXRvcnk/OiBSZXBvc2l0b3J5PEZlYXR1cmVGbGFnLCBhbnk+O1xufVxuXG5Ac2VydmljZShGZWF0dXJlRmxhZylcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2UgZXh0ZW5kcyBNb2RlbFNlcnZpY2U8RmVhdHVyZUZsYWc+IHtcbiAgcHJpdmF0ZSByZWFkZXI6IEZlYXR1cmVGbGFnUmVhZGVyID0gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKTtcbiAgcHJpdmF0ZSBjYWNoZWRSZWdpc3RyeTogRmVhdHVyZUZsYWdSZWdpc3RyeSA9IHt9O1xuICBAcmVwb3NpdG9yeShGZWF0dXJlRmxhZ0FjY2VzcylcbiAgcHJvdGVjdGVkIGFjY2Vzc1JlcG9zaXRvcnkhOiBSZXBvPEZlYXR1cmVGbGFnQWNjZXNzPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihGZWF0dXJlRmxhZyk7XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8eyBjb25maWc6IEZlYXR1cmVGbGFnU2VydmljZUNvbmZpZzsgY2xpZW50OiBGZWF0dXJlRmxhZ1JlYWRlciB9PiB7XG4gICAgY29uc3QgY29uZmlnID0gKGFyZ3NbMF0gYXMgRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnIHwgdW5kZWZpbmVkKSA/PyB7fTtcbiAgICBpZiAoY29uZmlnLnJlcG9zaXRvcnkpIHtcbiAgICAgIHRoaXMuX3JlcG9zaXRvcnkgPSBjb25maWcucmVwb3NpdG9yeSBhcyBhbnk7XG4gICAgfVxuICAgIHRoaXMucmVhZGVyID0gIWNvbmZpZy5yZWFkZXJcbiAgICAgID8gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKVxuICAgICAgOiB0eXBlb2YgY29uZmlnLnJlYWRlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gbmV3IGNvbmZpZy5yZWFkZXIoKVxuICAgICAgICA6IGNvbmZpZy5yZWFkZXI7XG4gICAgY29uc3QgcmVhZGVyQ29uZmlnID0ge1xuICAgICAgLi4uKGNvbmZpZy5yZWFkZXJDb25maWcgPz8ge30pLFxuICAgICAgc291cmNlOiBjb25maWcucmVhZGVyQ29uZmlnPy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICB9O1xuICAgIHRoaXMuY2FjaGVkUmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZWRSZWdpc3RyeShcbiAgICAgIHJlYWRlckNvbmZpZyxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbmZpZzogRmVhdHVyZUZsYWdTZXJ2aWNlQ29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgcmVhZGVyOiB0aGlzLnJlYWRlcixcbiAgICAgIHJlYWRlckNvbmZpZyxcbiAgICB9O1xuICAgIHJldHVybiB7IGNvbmZpZzogZWZmZWN0aXZlQ29uZmlnLCBjbGllbnQ6IHRoaXMucmVhZGVyIH07XG4gIH1cblxuICBwcml2YXRlIGNsb25lUmVnaXN0cnkocmVnaXN0cnk6IEZlYXR1cmVGbGFnUmVnaXN0cnkpOiBGZWF0dXJlRmxhZ1JlZ2lzdHJ5IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVnaXN0cnkpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGFjY1trZXldID1cbiAgICAgICAgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgID8gKHsgLi4uKHZhbHVlIGFzIEZlYXR1cmVGbGFnQ29uZmlnKSB9IGFzIEZlYXR1cmVGbGFnQ29uZmlnKVxuICAgICAgICAgIDogdmFsdWU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIEZlYXR1cmVGbGFnUmVnaXN0cnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoQ2FjaGVkUmVnaXN0cnkoXG4gICAgb3B0aW9uczogRmVhdHVyZUZsYWdSZWFkZXJJbnB1dCA9IHt9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIGNvbnN0IGVudlJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWFkZXIucmVhZCh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50LFxuICAgIH0pO1xuICAgIGxldCBwZXJzaXN0ZWQ6IEZlYXR1cmVGbGFnW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgcGVyc2lzdGVkID0gYXdhaXQgdGhpcy5yZXBvLnNlbGVjdCgpLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBwZXJzaXN0ZWQgPSBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdpc3RyeSA9IHRoaXMuY2xvbmVSZWdpc3RyeShlbnZSZWdpc3RyeSk7XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIHBlcnNpc3RlZCkge1xuICAgICAgcmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkID8gKGZsYWcuY29uZmlnID8/IHRydWUpIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiByZWdpc3RyeTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGVkRmxhZyhmbGFnOiBGZWF0dXJlRmxhZyk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGVkUmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkXG4gICAgICA/IChmbGFnLmNvbmZpZyA/PyB0cnVlKVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWNjZXNzUmVwb3NpdG9yeSgpOiBSZXBvPEZlYXR1cmVGbGFnQWNjZXNzPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzUmVwb3NpdG9yeSA/PyBSZXBvc2l0b3J5LmZvck1vZGVsKEZlYXR1cmVGbGFnQWNjZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0SW5pdGlhbGl6ZWQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnJlYWRlcjtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KFxuICAgIGlucHV0OiBGZWF0dXJlRmxhZ0FjY2Vzc0lucHV0XG4gICk6IEZlYXR1cmVGbGFnQWNjZXNzSW5wdXQge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGZlYXR1cmVLZXk6IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKGlucHV0LmZlYXR1cmVLZXkpLFxuICAgICAgc3ViamVjdFR5cGU6IG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0VHlwZShpbnB1dC5zdWJqZWN0VHlwZSksXG4gICAgICBzdWJqZWN0S2V5OiBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShpbnB1dC5zdWJqZWN0S2V5KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEFjY2Vzc0NvbmRpdGlvbihcbiAgICBxdWVyeTogRmVhdHVyZUZsYWdBY2Nlc3NRdWVyeVxuICApOiBDb25kaXRpb248RmVhdHVyZUZsYWdBY2Nlc3M+IHtcbiAgICBsZXQgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwic3ViamVjdFR5cGVcIikuZXEoXG4gICAgICBub3JtYWxpemVGZWF0dXJlU3ViamVjdFR5cGUocXVlcnkuc3ViamVjdFR5cGUpXG4gICAgKTtcbiAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKFxuICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwic3ViamVjdEtleVwiKS5lcShcbiAgICAgICAgbm9ybWFsaXplRmVhdHVyZVN1YmplY3RLZXkocXVlcnkuc3ViamVjdEtleSlcbiAgICAgIClcbiAgICApO1xuICAgIGlmICh0eXBlb2YgcXVlcnkuZW5hYmxlZCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChcbiAgICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWdBY2Nlc3M+KFwiZW5hYmxlZFwiKS5lcShxdWVyeS5lbmFibGVkKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHF1ZXJ5LmZlYXR1cmVLZXlzICYmIHF1ZXJ5LmZlYXR1cmVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoXG4gICAgICAgIENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnQWNjZXNzPihcImZlYXR1cmVLZXlcIikuaW4oXG4gICAgICAgICAgcXVlcnkuZmVhdHVyZUtleXMubWFwKG5vcm1hbGl6ZUZlYXR1cmVOYW1lKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY29uZGl0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlKFxuICAgIG1vZGVsOiBGZWF0dXJlRmxhZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEZlYXR1cmVGbGFnPiB7XG4gICAgbW9kZWwua2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUobW9kZWwua2V5KTtcbiAgICBtb2RlbC5lbmFibGVkID8/PSB0cnVlO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBzdXBlci5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpO1xuICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyhjcmVhdGVkKTtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZShcbiAgICBtb2RlbDogRmVhdHVyZUZsYWcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZz4ge1xuICAgIG1vZGVsLmtleSA9IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKG1vZGVsLmtleSk7XG4gICAgbW9kZWwuZW5hYmxlZCA/Pz0gdHJ1ZTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgc3VwZXIudXBkYXRlKG1vZGVsLCAuLi5hcmdzKTtcbiAgICB0aGlzLnNldENhY2hlZEZsYWcodXBkYXRlZCk7XG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kT25lQnkoXG4gICAga2V5OiBrZXlvZiBGZWF0dXJlRmxhZyxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWc+IHtcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPVxuICAgICAga2V5ID09PSBcImtleVwiICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKHZhbHVlKVxuICAgICAgICA6IHZhbHVlO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZmluZE9uZUJ5KGtleSwgbm9ybWFsaXplZFZhbHVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBbGwoa2V5czogYW55W10sIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxGZWF0dXJlRmxhZ1tdPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXBvLnJlYWRBbGwoa2V5cywgLi4uYXJncyk7XG4gICAgZm9yIChjb25zdCBmbGFnIG9mIHJlc3VsdCkgdGhpcy5zZXRDYWNoZWRGbGFnKGZsYWcpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc3luYyBsaXN0RW5hYmxlZCguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8RmVhdHVyZUZsYWdbXT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG9cbiAgICAgIC5zZWxlY3QoKVxuICAgICAgLndoZXJlKENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnPihcImVuYWJsZWRcIikuZXEodHJ1ZSkpXG4gICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGdyYW50RmVhdHVyZUFjY2VzcyhcbiAgICBpbnB1dDogRmVhdHVyZUZsYWdBY2Nlc3NJbnB1dCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEZlYXR1cmVGbGFnQWNjZXNzPiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KGlucHV0KTtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMuZmluZEZlYXR1cmVBY2Nlc3Mobm9ybWFsaXplZCwgLi4uYXJncykuY2F0Y2goXG4gICAgICAoKSA9PiB1bmRlZmluZWRcbiAgICApO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKS5jcmVhdGUoXG4gICAgICAgIG5ldyBGZWF0dXJlRmxhZ0FjY2Vzcyhub3JtYWxpemVkKSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLnVwZGF0ZShcbiAgICAgIE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIG5vcm1hbGl6ZWQpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyByZXZva2VGZWF0dXJlQWNjZXNzKFxuICAgIGlucHV0OiBGZWF0dXJlRmxhZ0FjY2Vzc1N1YmplY3QgJiB7IGZlYXR1cmVLZXk6IHN0cmluZyB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdBY2Nlc3MgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMuZmluZEZlYXR1cmVBY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpLmNhdGNoKFxuICAgICAgKCkgPT4gdW5kZWZpbmVkXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0aW5nKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKS5kZWxldGUoZXhpc3RpbmcuaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZEZlYXR1cmVBY2Nlc3MoXG4gICAgcXVlcnk6IEZlYXR1cmVGbGFnQWNjZXNzUXVlcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ0FjY2Vzcz4ge1xuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKVxuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSByZXN1bHRzWzBdO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgRmVhdHVyZSBhY2Nlc3MgZm9yICR7bm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlKHF1ZXJ5LnN1YmplY3RUeXBlKX06JHtub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShxdWVyeS5zdWJqZWN0S2V5KX0gbm90IGZvdW5kYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG5cbiAgYXN5bmMgbGlzdEZlYXR1cmVBY2Nlc3MoXG4gICAgcXVlcnk6IEZlYXR1cmVGbGFnQWNjZXNzUXVlcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ0FjY2Vzc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpXG4gICAgICAuc2VsZWN0KClcbiAgICAgIC53aGVyZSh0aGlzLmJ1aWxkQWNjZXNzQ29uZGl0aW9uKHF1ZXJ5KSlcbiAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZUZlYXR1cmVGbGFnc0ZvclN1YmplY3QoXG4gICAgc3ViamVjdDogRmVhdHVyZUZsYWdBY2Nlc3NTdWJqZWN0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCB0aGlzLmxpc3RGZWF0dXJlQWNjZXNzKFxuICAgICAge1xuICAgICAgICAuLi5zdWJqZWN0LFxuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGZlYXR1cmVLZXlzID0gWy4uLm5ldyBTZXQoYWNjZXNzLm1hcCgoaXRlbSkgPT4gaXRlbS5mZWF0dXJlS2V5KSldO1xuICAgIGlmIChmZWF0dXJlS2V5cy5sZW5ndGggPT09IDApIHJldHVybiB7fTtcblxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPEZlYXR1cmVGbGFnPihcImVuYWJsZWRcIilcbiAgICAgIC5lcSh0cnVlKVxuICAgICAgLmFuZChcbiAgICAgICAgQ29uZGl0aW9uLmF0dHI8RmVhdHVyZUZsYWc+KFwia2V5XCIpLmluKFxuICAgICAgICAgIGZlYXR1cmVLZXlzLm1hcChub3JtYWxpemVGZWF0dXJlTmFtZSlcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIGNvbnN0IGVuYWJsZWRGbGFncyA9IGF3YWl0IHRoaXMucmVwb1xuICAgICAgLnNlbGVjdCgpXG4gICAgICAud2hlcmUoY29uZGl0aW9uKVxuICAgICAgLmV4ZWN1dGUoLi4uYXJncyk7XG4gICAgcmV0dXJuIGVuYWJsZWRGbGFncy5yZWR1Y2UoKHJlZ2lzdHJ5LCBmbGFnKSA9PiB7XG4gICAgICByZWdpc3RyeVtmbGFnLmtleV0gPSBmbGFnLmNvbmZpZyA/PyB0cnVlO1xuICAgICAgcmV0dXJuIHJlZ2lzdHJ5O1xuICAgIH0sIHt9IGFzIEZlYXR1cmVGbGFnUmVnaXN0cnkpO1xuICB9XG5cbiAgYXN5bmMgaXNFbmFibGVkRm9yU3ViamVjdChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzdWJqZWN0OiBGZWF0dXJlRmxhZ0FjY2Vzc1N1YmplY3QsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlc29sdmVGZWF0dXJlRmxhZ3NGb3JTdWJqZWN0KHN1YmplY3QsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZEJ5TmFtZShyZWdpc3RyeSwga2V5KTtcbiAgfVxuXG4gIGlzRW5hYmxlZChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWRCeU5hbWUodGhpcy5jYWNoZWRSZWdpc3RyeSwgbm9ybWFsaXplZEtleSk7XG4gIH1cblxuICBhc3luYyByZXNvbHZlRmVhdHVyZUZsYWdzKCk6IFByb21pc2U8RmVhdHVyZUZsYWdSZWdpc3RyeT4ge1xuICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICByZXR1cm4gdGhpcy5jbG9uZVJlZ2lzdHJ5KHRoaXMuY2FjaGVkUmVnaXN0cnkpO1xuICB9XG5cbiAgYXN5bmMgc3luY0Zyb21FbnZpcm9ubWVudChcbiAgICBvcHRpb25zOiBGZWF0dXJlRmxhZ1JlYWRlcklucHV0ID0ge30sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxGZWF0dXJlRmxhZ1tdPiB7XG4gICAgdGhpcy5hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWFkZXIucmVhZCh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSA/PyBGZWF0dXJlRmxhZ0Vudmlyb25tZW50LFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdHM6IEZlYXR1cmVGbGFnW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZWdpc3RyeSkpIHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9XG4gICAgICAgIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICA/ICh2YWx1ZSBhcyBGZWF0dXJlRmxhZ0NvbmZpZylcbiAgICAgICAgICA6IHsgZW5hYmxlZDogQm9vbGVhbih2YWx1ZSkgfTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIGNvbnN0IHsgZW5hYmxlZDogX2lnbm9yZWRFbmFibGVkLCAuLi5yZXN0Q29uZmlnIH0gPSBjb25maWc7XG4gICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5maW5kT25lQnkoXG4gICAgICAgIFwia2V5XCIsXG4gICAgICAgIG5vcm1hbGl6ZWRLZXksXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gZXhpc3RpbmdcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCB7XG4gICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbiA/PyBleGlzdGluZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjb3BlOiByZXN0Q29uZmlnLnNjb3BlID8/IGV4aXN0aW5nLnNjb3BlLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEgPz8gZXhpc3RpbmcubWV0YWRhdGEsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG5ldyBGZWF0dXJlRmxhZyh7XG4gICAgICAgICAgICBrZXk6IG5vcm1hbGl6ZWRLZXksXG4gICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjb3BlOiByZXN0Q29uZmlnLnNjb3BlLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3RDb25maWcubWV0YWRhdGEsXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdENvbmZpZyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgIHJlc3VsdHMucHVzaChcbiAgICAgICAgZXhpc3RpbmdcbiAgICAgICAgICA/IGF3YWl0IHRoaXMudXBkYXRlKG1vZGVsLCAuLi5hcmdzKVxuICAgICAgICAgIDogYXdhaXQgdGhpcy5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlZFJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWZyZXNoQ2FjaGVkUmVnaXN0cnkoXG4gICAgICB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNvdXJjZTogb3B0aW9ucy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxufVxuIl19
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZUZsYWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZlYXR1cmVGbGFnLnNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFN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QUM7QUFFdkIsc2g0QkFBc2g0QiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBDb25kaXRpb24sIE1vZGVsU2VydmljZSwgUmVwb3NpdG9yeSwgcmVwb3NpdG9yeSwgc2VydmljZSwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnRW52aXJvbm1lbnQgfSBmcm9tIFwiLi8uLi9lbnZpcm9ubWVudC5qc1wiO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdBY2Nlc3MgfSBmcm9tIFwiLi8uLi9tb2RlbHMvRmVhdHVyZUZsYWdBY2Nlc3MubW9kZWwuanNcIjtcbmltcG9ydCB7IEZlYXR1cmVGbGFnIH0gZnJvbSBcIi4vLi4vbW9kZWxzL0ZlYXR1cmVGbGFnLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVGbGFnUmVhZGVyLCB9IGZyb20gXCIuLy4uL3JlYWRlcnMvaW5kZXguanNcIjtcbmltcG9ydCB7IGlzRmVhdHVyZUZsYWdFbmFibGVkLCBpc0ZlYXR1cmVGbGFnRW5hYmxlZEJ5TmFtZSwgbm9ybWFsaXplRmVhdHVyZU5hbWUsIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0S2V5LCBub3JtYWxpemVGZWF0dXJlU3ViamVjdFR5cGUsIH0gZnJvbSBcIi4vLi4vdXRpbHMuanNcIjtcbmxldCBGZWF0dXJlRmxhZ1NlcnZpY2UgPSBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2UgZXh0ZW5kcyBNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihGZWF0dXJlRmxhZyk7XG4gICAgICAgIHRoaXMucmVhZGVyID0gbmV3IEVudmlyb25tZUZsYWdSZWFkZXIoKTtcbiAgICAgICAgdGhpcy5jYWNoZWRSZWdpc3RyeSA9IHt9O1xuICAgIH1cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gYXJnc1swXSA/PyB7fTtcbiAgICAgICAgaWYgKGNvbmZpZy5yZXBvc2l0b3J5KSB7XG4gICAgICAgICAgICB0aGlzLl9yZXBvc2l0b3J5ID0gY29uZmlnLnJlcG9zaXRvcnk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWFkZXIgPSAhY29uZmlnLnJlYWRlclxuICAgICAgICAgICAgPyBuZXcgRW52aXJvbm1lRmxhZ1JlYWRlcigpXG4gICAgICAgICAgICA6IHR5cGVvZiBjb25maWcucmVhZGVyID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IG5ldyBjb25maWcucmVhZGVyKClcbiAgICAgICAgICAgICAgICA6IGNvbmZpZy5yZWFkZXI7XG4gICAgICAgIGNvbnN0IHJlYWRlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLihjb25maWcucmVhZGVyQ29uZmlnID8/IHt9KSxcbiAgICAgICAgICAgIHNvdXJjZTogY29uZmlnLnJlYWRlckNvbmZpZz8uc291cmNlID8/IEZlYXR1cmVGbGFnRW52aXJvbm1lbnQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2FjaGVkUmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZWRSZWdpc3RyeShyZWFkZXJDb25maWcsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICByZWFkZXI6IHRoaXMucmVhZGVyLFxuICAgICAgICAgICAgcmVhZGVyQ29uZmlnLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4geyBjb25maWc6IGVmZmVjdGl2ZUNvbmZpZywgY2xpZW50OiB0aGlzLnJlYWRlciB9O1xuICAgIH1cbiAgICBjbG9uZVJlZ2lzdHJ5KHJlZ2lzdHJ5KSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhyZWdpc3RyeSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgYWNjW2tleV0gPVxuICAgICAgICAgICAgICAgIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB7IC4uLnZhbHVlIH1cbiAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG4gICAgYXN5bmMgcmVmcmVzaENhY2hlZFJlZ2lzdHJ5KG9wdGlvbnMgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBlbnZSZWdpc3RyeSA9IGF3YWl0IHRoaXMucmVhZGVyLnJlYWQoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHNvdXJjZTogb3B0aW9ucy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBwZXJzaXN0ZWQgPSBbXTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBlcnNpc3RlZCA9IGF3YWl0IHRoaXMucmVwby5zZWxlY3QoKS5leGVjdXRlKC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIHBlcnNpc3RlZCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gdGhpcy5jbG9uZVJlZ2lzdHJ5KGVudlJlZ2lzdHJ5KTtcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIHBlcnNpc3RlZCkge1xuICAgICAgICAgICAgcmVnaXN0cnlbZmxhZy5rZXldID0gZmxhZy5lbmFibGVkID8gKGZsYWcuY29uZmlnID8/IHRydWUpIDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5O1xuICAgIH1cbiAgICBzZXRDYWNoZWRGbGFnKGZsYWcpIHtcbiAgICAgICAgdGhpcy5jYWNoZWRSZWdpc3RyeVtmbGFnLmtleV0gPSBmbGFnLmVuYWJsZWRcbiAgICAgICAgICAgID8gKGZsYWcuY29uZmlnID8/IHRydWUpXG4gICAgICAgICAgICA6IGZhbHNlO1xuICAgIH1cbiAgICBnZXRBY2Nlc3NSZXBvc2l0b3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NSZXBvc2l0b3J5ID8/IFJlcG9zaXRvcnkuZm9yTW9kZWwoRmVhdHVyZUZsYWdBY2Nlc3MpO1xuICAgIH1cbiAgICBhc3NlcnRJbml0aWFsaXplZCgpIHtcbiAgICAgICAgdm9pZCB0aGlzLnJlYWRlcjtcbiAgICB9XG4gICAgbm9ybWFsaXplRmVhdHVyZUFjY2Vzc0lucHV0KGlucHV0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICAgIGZlYXR1cmVLZXk6IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKGlucHV0LmZlYXR1cmVLZXkpLFxuICAgICAgICAgICAgc3ViamVjdFR5cGU6IG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0VHlwZShpbnB1dC5zdWJqZWN0VHlwZSksXG4gICAgICAgICAgICBzdWJqZWN0S2V5OiBub3JtYWxpemVGZWF0dXJlU3ViamVjdEtleShpbnB1dC5zdWJqZWN0S2V5KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpIHtcbiAgICAgICAgbGV0IGNvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyKFwic3ViamVjdFR5cGVcIikuZXEobm9ybWFsaXplRmVhdHVyZVN1YmplY3RUeXBlKHF1ZXJ5LnN1YmplY3RUeXBlKSk7XG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5hbmQoQ29uZGl0aW9uLmF0dHIoXCJzdWJqZWN0S2V5XCIpLmVxKG5vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0S2V5KHF1ZXJ5LnN1YmplY3RLZXkpKSk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkuZW5hYmxlZCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cihcImVuYWJsZWRcIikuZXEocXVlcnkuZW5hYmxlZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeS5mZWF0dXJlS2V5cyAmJiBxdWVyeS5mZWF0dXJlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24uYW5kKENvbmRpdGlvbi5hdHRyKFwiZmVhdHVyZUtleVwiKS5pbihxdWVyeS5mZWF0dXJlS2V5cy5tYXAobm9ybWFsaXplRmVhdHVyZU5hbWUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIG1vZGVsLmtleSA9IG5vcm1hbGl6ZUZlYXR1cmVOYW1lKG1vZGVsLmtleSk7XG4gICAgICAgIG1vZGVsLmVuYWJsZWQgPz89IHRydWU7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBzdXBlci5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpO1xuICAgICAgICB0aGlzLnNldENhY2hlZEZsYWcoY3JlYXRlZCk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGUobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgbW9kZWwua2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUobW9kZWwua2V5KTtcbiAgICAgICAgbW9kZWwuZW5hYmxlZCA/Pz0gdHJ1ZTtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHN1cGVyLnVwZGF0ZShtb2RlbCwgLi4uYXJncyk7XG4gICAgICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyh1cGRhdGVkKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IGtleSA9PT0gXCJrZXlcIiAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gbm9ybWFsaXplRmVhdHVyZU5hbWUodmFsdWUpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIG5vcm1hbGl6ZWRWYWx1ZSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlYWRBbGwoa2V5cywgLi4uYXJncykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5hcmdzKTtcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIHJlc3VsdClcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGVkRmxhZyhmbGFnKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEVuYWJsZWQoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvXG4gICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgIC53aGVyZShDb25kaXRpb24uYXR0cihcImVuYWJsZWRcIikuZXEodHJ1ZSkpXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JhbnRGZWF0dXJlQWNjZXNzKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZUZlYXR1cmVBY2Nlc3NJbnB1dChpbnB1dCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5maW5kRmVhdHVyZUFjY2Vzcyhub3JtYWxpemVkLCAuLi5hcmdzKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NSZXBvc2l0b3J5KCkuY3JlYXRlKG5ldyBGZWF0dXJlRmxhZ0FjY2Vzcyhub3JtYWxpemVkKSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLnVwZGF0ZShPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBub3JtYWxpemVkKSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJldm9rZUZlYXR1cmVBY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmZpbmRGZWF0dXJlQWNjZXNzKGlucHV0LCAuLi5hcmdzKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzUmVwb3NpdG9yeSgpLmRlbGV0ZShleGlzdGluZy5pZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRGZWF0dXJlQWNjZXNzKHF1ZXJ5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGRBY2Nlc3NDb25kaXRpb24ocXVlcnkpO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5nZXRBY2Nlc3NSZXBvc2l0b3J5KClcbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgICAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHJlc3VsdHNbMF07XG4gICAgICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBGZWF0dXJlIGFjY2VzcyBmb3IgJHtub3JtYWxpemVGZWF0dXJlU3ViamVjdFR5cGUocXVlcnkuc3ViamVjdFR5cGUpfToke25vcm1hbGl6ZUZlYXR1cmVTdWJqZWN0S2V5KHF1ZXJ5LnN1YmplY3RLZXkpfSBub3QgZm91bmRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RGZWF0dXJlQWNjZXNzKHF1ZXJ5LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1JlcG9zaXRvcnkoKVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUodGhpcy5idWlsZEFjY2Vzc0NvbmRpdGlvbihxdWVyeSkpXG4gICAgICAgICAgICAuZXhlY3V0ZSguLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVzb2x2ZUZlYXR1cmVGbGFnc0ZvclN1YmplY3Qoc3ViamVjdCwgLi4uYXJncykge1xuICAgICAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMubGlzdEZlYXR1cmVBY2Nlc3Moe1xuICAgICAgICAgICAgLi4uc3ViamVjdCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBmZWF0dXJlS2V5cyA9IFsuLi5uZXcgU2V0KGFjY2Vzcy5tYXAoKGl0ZW0pID0+IGl0ZW0uZmVhdHVyZUtleSkpXTtcbiAgICAgICAgaWYgKGZlYXR1cmVLZXlzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHIoXCJlbmFibGVkXCIpXG4gICAgICAgICAgICAuZXEodHJ1ZSlcbiAgICAgICAgICAgIC5hbmQoQ29uZGl0aW9uLmF0dHIoXCJrZXlcIikuaW4oZmVhdHVyZUtleXMubWFwKG5vcm1hbGl6ZUZlYXR1cmVOYW1lKSkpO1xuICAgICAgICBjb25zdCBlbmFibGVkRmxhZ3MgPSBhd2FpdCB0aGlzLnJlcG9cbiAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgICAgICAgIC5leGVjdXRlKC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gZW5hYmxlZEZsYWdzLnJlZHVjZSgocmVnaXN0cnksIGZsYWcpID0+IHtcbiAgICAgICAgICAgIHJlZ2lzdHJ5W2ZsYWcua2V5XSA9IGZsYWcuY29uZmlnID8/IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0cnk7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG4gICAgYXN5bmMgaXNFbmFibGVkRm9yU3ViamVjdChrZXksIHN1YmplY3QsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlc29sdmVGZWF0dXJlRmxhZ3NGb3JTdWJqZWN0KHN1YmplY3QsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJsZWRCeU5hbWUocmVnaXN0cnksIGtleSk7XG4gICAgfVxuICAgIGlzRW5hYmxlZChrZXkpIHtcbiAgICAgICAgdGhpcy5hc3NlcnRJbml0aWFsaXplZCgpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICAgICAgcmV0dXJuIGlzRmVhdHVyZUZsYWdFbmFibGVkQnlOYW1lKHRoaXMuY2FjaGVkUmVnaXN0cnksIG5vcm1hbGl6ZWRLZXkpO1xuICAgIH1cbiAgICBhc3luYyByZXNvbHZlRmVhdHVyZUZsYWdzKCkge1xuICAgICAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lUmVnaXN0cnkodGhpcy5jYWNoZWRSZWdpc3RyeSk7XG4gICAgfVxuICAgIGFzeW5jIHN5bmNGcm9tRW52aXJvbm1lbnQob3B0aW9ucyA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMuYXNzZXJ0SW5pdGlhbGl6ZWQoKTtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBhd2FpdCB0aGlzLnJlYWRlci5yZWFkKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlID8/IEZlYXR1cmVGbGFnRW52aXJvbm1lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlZ2lzdHJ5KSkge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICA6IHsgZW5hYmxlZDogQm9vbGVhbih2YWx1ZSkgfTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgIGNvbnN0IHsgZW5hYmxlZDogX2lnbm9yZWRFbmFibGVkLCAuLi5yZXN0Q29uZmlnIH0gPSBjb25maWc7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gbm9ybWFsaXplRmVhdHVyZU5hbWUoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5maW5kT25lQnkoXCJrZXlcIiwgbm9ybWFsaXplZEtleSwgLi4uYXJncykuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gZXhpc3RpbmdcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIHtcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbiA/PyBleGlzdGluZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2NvcGU6IHJlc3RDb25maWcuc2NvcGUgPz8gZXhpc3Rpbmcuc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN0Q29uZmlnLm1ldGFkYXRhID8/IGV4aXN0aW5nLm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3RDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICA6IG5ldyBGZWF0dXJlRmxhZyh7XG4gICAgICAgICAgICAgICAgICAgIGtleTogbm9ybWFsaXplZEtleSxcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogaXNGZWF0dXJlRmxhZ0VuYWJsZWQodmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcmVzdENvbmZpZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2NvcGU6IHJlc3RDb25maWcuc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN0Q29uZmlnLm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3RDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2goZXhpc3RpbmdcbiAgICAgICAgICAgICAgICA/IGF3YWl0IHRoaXMudXBkYXRlKG1vZGVsLCAuLi5hcmdzKVxuICAgICAgICAgICAgICAgIDogYXdhaXQgdGhpcy5jcmVhdGUobW9kZWwsIC4uLmFyZ3MpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlZFJlZ2lzdHJ5ID0gYXdhaXQgdGhpcy5yZWZyZXNoQ2FjaGVkUmVnaXN0cnkoe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIHNvdXJjZTogb3B0aW9ucy5zb3VyY2UgPz8gRmVhdHVyZUZsYWdFbnZpcm9ubWVudCxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICByZXBvc2l0b3J5KEZlYXR1cmVGbGFnQWNjZXNzKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgRmVhdHVyZUZsYWdTZXJ2aWNlLnByb3RvdHlwZSwgXCJhY2Nlc3NSZXBvc2l0b3J5XCIsIHZvaWQgMCk7XG5GZWF0dXJlRmxhZ1NlcnZpY2UgPSBfX2RlY29yYXRlKFtcbiAgICBzZXJ2aWNlKEZlYXR1cmVGbGFnKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW10pXG5dLCBGZWF0dXJlRmxhZ1NlcnZpY2UpO1xuZXhwb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lSbVZoZEhWeVpVWnNZV2N1YzJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5bVpXRjBkWEpsTFdac1lXZHpMM05sY25acFkyVnpMMFpsWVhSMWNtVkdiR0ZuTG5ObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3TzBGQlFVRXNUMEZCVHl4RlFVTk1MRk5CUVZNc1JVRkRWQ3haUVVGWkxFVkJRMW9zVlVGQlZTeEZRVU5XTEZWQlFWVXNSVUZEVml4UFFVRlBMRWRCUTFJc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVjRRaXhQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRGVFUXNUMEZCVHl4RlFVRkZMSE5DUVVGelFpeEZRVUZGTERSQ1FVRjFRanRCUVVONFJDeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzSzBOQlFUQkRPMEZCUTNSRkxFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNlVU5CUVc5RE8wRkJRekZFTEU5QlFVOHNSVUZEVEN4dFFrRkJiVUlzUjBGSGNFSXNPRUpCUVcxQ08wRkJWWEJDTEU5QlFVOHNSVUZEVEN4dlFrRkJiMElzUlVGRGNFSXNNRUpCUVRCQ0xFVkJRekZDTEc5Q1FVRnZRaXhIUVVOeVFpeHpRa0ZCYVVJN1FVRkRiRUlzVDBGQlR5eEZRVU5NTERCQ1FVRXdRaXhGUVVNeFFpd3lRa0ZCTWtJc1IwRkROVUlzYzBKQlFXbENPMEZCVVZnc1NVRkJUU3hyUWtGQmEwSXNSMEZCZUVJc1RVRkJUU3hyUWtGQmJVSXNVMEZCVVN4WlFVRjVRanRKUVUwdlJEdFJRVU5GTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVU1aUxGZEJRVTBzUjBGQmMwSXNTVUZCU1N4dFFrRkJiVUlzUlVGQlJTeERRVUZETzFGQlEzUkVMRzFDUVVGakxFZEJRWGRDTEVWQlFVVXNRMEZCUXp0SlFVMXFSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZEWkN4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFMUJRVTBzUjBGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRXdReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU4yUlN4SlFVRkpMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU4wUWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFMUJRVTBzUTBGQlF5eFZRVUZwUWl4RFFVRkRPMUZCUXpsRExFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRE1VSXNRMEZCUXl4RFFVRkRMRWxCUVVrc2JVSkJRVzFDTEVWQlFVVTdXVUZETTBJc1EwRkJReXhEUVVGRExFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4VlFVRlZPMmRDUVVOdVF5eERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU55UWl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU53UWl4TlFVRk5MRmxCUVZrc1IwRkJSenRaUVVOdVFpeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRE9VSXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzVFVGQlRTeEpRVUZKTEhOQ1FVRnpRanRUUVVNNVJDeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkRjRVFzV1VGQldTeEZRVU5hTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxHVkJRV1VzUjBGQk5rSTdXVUZEYUVRc1IwRkJSeXhOUVVGTk8xbEJRMVFzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5PMWxCUTI1Q0xGbEJRVms3VTBGRFlpeERRVUZETzFGQlEwWXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hsUVVGbExFVkJRVVVzVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVNeFJDeERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRkZCUVRaQ08xRkJRMnBFTEU5QlFVOHNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTXpSQ3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTk9MRXRCUVVzc1NVRkJTU3hQUVVGUExFdEJRVXNzUzBGQlN5eFJRVUZSTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dHZRa0ZEZWtRc1EwRkJReXhEUVVGRkxFVkJRVVVzUjBGQlNTeExRVUV5UWl4RlFVRjNRanR2UWtGRE5VUXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRaUVVOYUxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlEySXNRMEZCUXl4RlFVRkZMRVZCUVhsQ0xFTkJRVU1zUTBGQlF6dEpRVU5vUXl4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVTnFReXhWUVVGclF5eEZRVUZGTEVWQlEzQkRMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGVrTXNSMEZCUnl4UFFVRlBPMWxCUTFZc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NjMEpCUVhOQ08xTkJRMnBFTEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1UwRkJVeXhIUVVGclFpeEZRVUZGTEVOQlFVTTdVVUZEYkVNc1NVRkJTU3hEUVVGRE8xbEJRMGdzVTBGQlV5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVONFJDeERRVUZETzFGQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTFBc1UwRkJVeXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5xUWl4RFFVRkRPMUZCUlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOcVJDeExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRemRDTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGNFVXNRMEZCUXp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGVHl4aFFVRmhMRU5CUVVNc1NVRkJhVUk3VVVGRGNrTXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4N1dVRkRNVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU03V1VGRGRrSXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOYUxFTkJRVU03U1VGRlR5eHRRa0ZCYlVJN1VVRkRla0lzVDBGQlR5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFbEJRVWtzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzBsQlEzcEZMRU5CUVVNN1NVRkZUeXhwUWtGQmFVSTdVVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZUeXd5UWtGQk1rSXNRMEZEYWtNc1MwRkJOa0k3VVVGRk4wSXNUMEZCVHp0WlFVTk1MRWRCUVVjc1MwRkJTenRaUVVOU0xGVkJRVlVzUlVGQlJTeHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETzFsQlEyeEVMRmRCUVZjc1JVRkJSU3d5UWtGQk1rSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRek5FTEZWQlFWVXNSVUZCUlN3d1FrRkJNRUlzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUTNwRUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNiMEpCUVc5Q0xFTkJRekZDTEV0QlFUWkNPMUZCUlRkQ0xFbEJRVWtzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVc5Q0xHRkJRV0VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZEYWtVc01rSkJRVEpDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVNdlF5eERRVUZETzFGQlEwWXNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRM1pDTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVc5Q0xGbEJRVmtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZEYUVRc01FSkJRVEJDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVNM1F5eERRVU5HTEVOQlFVTTdVVUZEUml4SlFVRkpMRTlCUVU4c1MwRkJTeXhEUVVGRExFOUJRVThzUzBGQlN5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTjZReXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZEZGtJc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQmIwSXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZETDBRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRkRVFzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUTNaQ0xGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFXOUNMRmxCUVZrc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGRGFFUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1EwRkROVU1zUTBGRFJpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOdVFpeExRVUZyUWl4RlFVTnNRaXhIUVVGSExFbEJRVmM3VVVGRlpDeExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNMVF5eExRVUZMTEVOQlFVTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVOMlFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRia1FzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNMVFpeFBRVUZQTEU5QlFVOHNRMEZCUXp0SlFVTnFRaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1MwRkJhMElzUlVGRGJFSXNSMEZCUnl4SlFVRlhPMUZCUldRc1MwRkJTeXhEUVVGRExFZEJRVWNzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETlVNc1MwRkJTeXhEUVVGRExFOUJRVThzUzBGQlN5eEpRVUZKTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyNUVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETlVJc1QwRkJUeXhQUVVGUExFTkJRVU03U1VGRGFrSXNRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEVkQlFYTkNMRVZCUTNSQ0xFdEJRVlVzUlVGRFZpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MR1ZCUVdVc1IwRkRia0lzUjBGQlJ5eExRVUZMTEV0QlFVc3NTVUZCU1N4UFFVRlBMRXRCUVVzc1MwRkJTeXhSUVVGUk8xbEJRM2hETEVOQlFVTXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZETjBJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU5hTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTEdWQlFXVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRelZFTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVmNzUlVGQlJTeEhRVUZITEVsQlFWYzdVVUZEYUVRc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hMUVVGTExFMUJRVTBzU1VGQlNTeEpRVUZKTEUxQlFVMDdXVUZCUlN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzQkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFZEJRVWNzU1VGQlZ6dFJRVU01UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSk8yRkJRMklzVFVGQlRTeEZRVUZGTzJGQlExSXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRV01zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRM1JFTEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM1JDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlEzUkNMRXRCUVRaQ0xFVkJRemRDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhWUVVGVkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUTNSRkxFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZEYUVJc1EwRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTmtMRTlCUVU4c1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVOMFF5eEpRVUZKTEdsQ1FVRnBRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVU5xUXl4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVTjBReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1JVRkRia01zUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUTNaQ0xFdEJRWGRFTEVWQlEzaEVMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGRGFrVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVOb1FpeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRMRkZCUVZFN1dVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dFJRVU5vUXl4UFFVRlBMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRha1VzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGRGNrSXNTMEZCTmtJc1JVRkROMElzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMjVFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZPMkZCUXpkRExFMUJRVTBzUlVGQlJUdGhRVU5TTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNN1lVRkRhRUlzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRjRUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRelZDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVOa0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMSE5DUVVGelFpd3lRa0ZCTWtJc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4WlFVRlpMRU5CUTJwSkxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNUMEZCVHl4UlFVRlJMRU5CUVVNN1NVRkRiRUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGRGNrSXNTMEZCTmtJc1JVRkROMElzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVWQlFVVTdZVUZET1VJc1RVRkJUU3hGUVVGRk8yRkJRMUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0aFFVTjJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTjBRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETERaQ1FVRTJRaXhEUVVOcVF5eFBRVUZwUXl4RlFVTnFReXhIUVVGSExFbEJRVmM3VVVGRlpDeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dFJRVU42UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRla003V1VGRFJTeEhRVUZITEU5QlFVODdXVUZEVml4UFFVRlBMRVZCUVVVc1NVRkJTVHRUUVVOa0xFVkJRMFFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaEZMRWxCUVVrc1YwRkJWeXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETzFsQlFVVXNUMEZCVHl4RlFVRkZMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJZeXhUUVVGVExFTkJRVU03WVVGRGNrUXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJRenRoUVVOU0xFZEJRVWNzUTBGRFJpeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRmpMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGRGJrTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVTjBReXhEUVVOR0xFTkJRVU03VVVGRlNpeE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSk8yRkJRMnBETEUxQlFVMHNSVUZCUlR0aFFVTlNMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU03WVVGRGFFSXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNFSXNUMEZCVHl4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpWRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTTdXVUZEZWtNc1QwRkJUeXhSUVVGUkxFTkJRVU03VVVGRGJFSXNRMEZCUXl4RlFVRkZMRVZCUVhsQ0xFTkJRVU1zUTBGQlF6dEpRVU5vUXl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhIUVVGWExFVkJRMWdzVDBGQmFVTXNSVUZEYWtNc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE5VVXNUMEZCVHl3d1FrRkJNRUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRia1FzUTBGQlF6dEpRVVZFTEZOQlFWTXNRMEZCUXl4SFFVRlhPMUZCUTI1Q0xFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8xRkJRM3BDTEUxQlFVMHNZVUZCWVN4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRUxFOUJRVThzTUVKQlFUQkNMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeGhRVUZoTEVOQlFVTXNRMEZCUXp0SlFVTjRSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRanRSUVVOMlFpeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dFJRVU42UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMGxCUTJwRUxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEZWQlFXdERMRVZCUVVVc1JVRkRjRU1zUjBGQlJ5eEpRVUZYTzFGQlJXUXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOMFF5eEhRVUZITEU5QlFVODdXVUZEVml4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeHpRa0ZCYzBJN1UwRkRha1FzUTBGQlF5eERRVUZETzFGQlEwZ3NUVUZCVFN4UFFVRlBMRWRCUVd0Q0xFVkJRVVVzUTBGQlF6dFJRVU5zUXl4TFFVRkxMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzQkVMRTFCUVUwc1RVRkJUU3hIUVVOV0xFdEJRVXNzU1VGQlNTeFBRVUZQTEV0QlFVc3NTMEZCU3l4UlFVRlJMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRla1FzUTBGQlF5eERRVUZGTEV0QlFUSkNPMmRDUVVNNVFpeERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYkVNc05rUkJRVFpFTzFsQlF6ZEVMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzWlVGQlpTeEZRVUZGTEVkQlFVY3NWVUZCVlN4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRE8xbEJRek5FTEUxQlFVMHNZVUZCWVN4SFFVRkhMRzlDUVVGdlFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJoRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRia01zUzBGQlN5eEZRVU5NTEdGQlFXRXNSVUZEWWl4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRaUVVONlFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4UlFVRlJPMmRDUVVOd1FpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFVkJRVVU3YjBKQlEzUkNMRTlCUVU4c1JVRkJSU3h2UWtGQmIwSXNRMEZCUXl4TFFVRkxMRU5CUVVNN2IwSkJRM0JETEZkQlFWY3NSVUZCUlN4VlFVRlZMRU5CUVVNc1YwRkJWeXhKUVVGSkxGRkJRVkVzUTBGQlF5eFhRVUZYTzI5Q1FVTXpSQ3hMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEV0QlFVc3NTVUZCU1N4UlFVRlJMRU5CUVVNc1MwRkJTenR2UWtGRGVrTXNVVUZCVVN4RlFVRkZMRlZCUVZVc1EwRkJReXhSUVVGUkxFbEJRVWtzVVVGQlVTeERRVUZETEZGQlFWRTdiMEpCUTJ4RUxFMUJRVTBzUlVGQlJUdDNRa0ZEVGl4SFFVRkhMRlZCUVZVN2QwSkJRMklzVDBGQlR5eEZRVUZGTEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF6dHhRa0ZEY2tNN2FVSkJRMFlzUTBGQlF6dG5Ra0ZEU2l4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU03YjBKQlEyUXNSMEZCUnl4RlFVRkZMR0ZCUVdFN2IwSkJRMnhDTEU5QlFVOHNSVUZCUlN4dlFrRkJiMElzUTBGQlF5eExRVUZMTEVOQlFVTTdiMEpCUTNCRExGZEJRVmNzUlVGQlJTeFZRVUZWTEVOQlFVTXNWMEZCVnp0dlFrRkRia01zUzBGQlN5eEZRVUZGTEZWQlFWVXNRMEZCUXl4TFFVRkxPMjlDUVVOMlFpeFJRVUZSTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFN2IwSkJRemRDTEUxQlFVMHNSVUZCUlR0M1FrRkRUaXhIUVVGSExGVkJRVlU3ZDBKQlEySXNUMEZCVHl4RlFVRkZMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkRja003YVVKQlEwWXNRMEZCUXl4RFFVRkRPMWxCUTFBc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGRFZpeFJRVUZSTzJkQ1FVTk9MRU5CUVVNc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRE8yZENRVU51UXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVOMFF5eERRVUZETzFGQlEwb3NRMEZCUXp0UlFVTkVMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRM0JFTzFsQlEwVXNSMEZCUnl4UFFVRlBPMWxCUTFZc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NjMEpCUVhOQ08xTkJRMnBFTEVWQlEwUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOR0xFOUJRVThzVDBGQlR5eERRVUZETzBsQlEycENMRU5CUVVNN1EwRkRSaXhEUVVGQk8wRkJhRlpYTzBsQlJGUXNWVUZCVlN4RFFVRkRMR2xDUVVGcFFpeERRVUZET3pzMFJFRkRkVUk3UVVGS01VTXNhMEpCUVd0Q08wbEJSRGxDTEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNN08wZEJRMUlzYTBKQlFXdENMRU5CYjFZNVFpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdYRzRnSUVOdmJtUnBkR2x2Yml4Y2JpQWdUVzlrWld4VFpYSjJhV05sTEZ4dUlDQlNaWEJ2YzJsMGIzSjVMRnh1SUNCeVpYQnZjMmwwYjNKNUxGeHVJQ0J6WlhKMmFXTmxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dVbVZ3YnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1RtOTBSbTkxYm1SRmNuSnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnUm1WaGRIVnlaVVpzWVdkRmJuWnBjbTl1YldWdWRDQjlJR1p5YjIwZ1hDSXVMaTlsYm5acGNtOXViV1Z1ZEZ3aU8xeHVhVzF3YjNKMElIc2dSbVZoZEhWeVpVWnNZV2RCWTJObGMzTWdmU0JtY205dElGd2lMaTR2Ylc5a1pXeHpMMFpsWVhSMWNtVkdiR0ZuUVdOalpYTnpMbTF2WkdWc1hDSTdYRzVwYlhCdmNuUWdleUJHWldGMGRYSmxSbXhoWnlCOUlHWnliMjBnWENJdUxpOXRiMlJsYkhNdlJtVmhkSFZ5WlVac1lXY3ViVzlrWld4Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVWdWRtbHliMjV0WlVac1lXZFNaV0ZrWlhJc1hHNGdJRVpsWVhSMWNtVkdiR0ZuVW1WaFpHVnlMRnh1SUNCR1pXRjBkWEpsUm14aFoxSmxZV1JsY2t4cGEyVXNYRzU5SUdaeWIyMGdYQ0l1TGk5eVpXRmtaWEp6WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3WEc0Z0lFWmxZWFIxY21WR2JHRm5RV05qWlhOelNXNXdkWFFzWEc0Z0lFWmxZWFIxY21WR2JHRm5RV05qWlhOelVYVmxjbmtzWEc0Z0lFWmxZWFIxY21WR2JHRm5RV05qWlhOelUzVmlhbVZqZEN4Y2JpQWdSbVZoZEhWeVpVWnNZV2REYjI1bWFXY3NYRzRnSUVabFlYUjFjbVZHYkdGblVtVmhaR1Z5UTI5dVptbG5MRnh1SUNCR1pXRjBkWEpsUm14aFoxSmxZV1JsY2tsdWNIVjBMRnh1SUNCR1pXRjBkWEpsUm14aFoxSmxaMmx6ZEhKNUxGeHVmU0JtY205dElGd2lMaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHbHpSbVZoZEhWeVpVWnNZV2RGYm1GaWJHVmtMRnh1SUNCcGMwWmxZWFIxY21WR2JHRm5SVzVoWW14bFpFSjVUbUZ0WlN4Y2JpQWdibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VzWEc1OUlHWnliMjBnWENJdUxpOTFkR2xzYzF3aU8xeHVhVzF3YjNKMElIdGNiaUFnYm05eWJXRnNhWHBsUm1WaGRIVnlaVk4xWW1wbFkzUkxaWGtzWEc0Z0lHNXZjbTFoYkdsNlpVWmxZWFIxY21WVGRXSnFaV04wVkhsd1pTeGNibjBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1JtVmhkSFZ5WlVac1lXZFRaWEoyYVdObFEyOXVabWxuSUdWNGRHVnVaSE1nUm1WaGRIVnlaVVpzWVdkU1pXRmtaWEpEYjI1bWFXY2dlMXh1SUNCeVpXRmtaWEkvT2lCR1pXRjBkWEpsUm14aFoxSmxZV1JsY2t4cGEyVTdYRzRnSUhKbGNHOXphWFJ2Y25rL09pQlNaWEJ2YzJsMGIzSjVQRVpsWVhSMWNtVkdiR0ZuTENCaGJuaytPMXh1ZlZ4dVhHNUFjMlZ5ZG1salpTaEdaV0YwZFhKbFJteGhaeWxjYm1WNGNHOXlkQ0JqYkdGemN5QkdaV0YwZFhKbFJteGhaMU5sY25acFkyVWdaWGgwWlc1a2N5Qk5iMlJsYkZObGNuWnBZMlU4Um1WaGRIVnlaVVpzWVdjK0lIdGNiaUFnY0hKcGRtRjBaU0J5WldGa1pYSTZJRVpsWVhSMWNtVkdiR0ZuVW1WaFpHVnlJRDBnYm1WM0lFVnVkbWx5YjI1dFpVWnNZV2RTWldGa1pYSW9LVHRjYmlBZ2NISnBkbUYwWlNCallXTm9aV1JTWldkcGMzUnllVG9nUm1WaGRIVnlaVVpzWVdkU1pXZHBjM1J5ZVNBOUlIdDlPMXh1SUNCQWNtVndiM05wZEc5eWVTaEdaV0YwZFhKbFJteGhaMEZqWTJWemN5bGNiaUFnY0hKdmRHVmpkR1ZrSUdGalkyVnpjMUpsY0c5emFYUnZjbmtoT2lCU1pYQnZQRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpQanRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWdwSUh0Y2JpQWdJQ0J6ZFhCbGNpaEdaV0YwZFhKbFJteGhaeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUVabFlYUjFjbVZHYkdGblUyVnlkbWxqWlVOdmJtWnBaenNnWTJ4cFpXNTBPaUJHWldGMGRYSmxSbXhoWjFKbFlXUmxjaUI5UGlCN1hHNGdJQ0FnWTI5dWMzUWdZMjl1Wm1sbklEMGdLR0Z5WjNOYk1GMGdZWE1nUm1WaGRIVnlaVVpzWVdkVFpYSjJhV05sUTI5dVptbG5JSHdnZFc1a1pXWnBibVZrS1NBL1B5QjdmVHRjYmlBZ0lDQnBaaUFvWTI5dVptbG5MbkpsY0c5emFYUnZjbmtwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM0psY0c5emFYUnZjbmtnUFNCamIyNW1hV2N1Y21Wd2IzTnBkRzl5ZVNCaGN5Qmhibms3WEc0Z0lDQWdmVnh1SUNBZ0lIUm9hWE11Y21WaFpHVnlJRDBnSVdOdmJtWnBaeTV5WldGa1pYSmNiaUFnSUNBZ0lEOGdibVYzSUVWdWRtbHliMjV0WlVac1lXZFNaV0ZrWlhJb0tWeHVJQ0FnSUNBZ09pQjBlWEJsYjJZZ1kyOXVabWxuTG5KbFlXUmxjaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lYRzRnSUNBZ0lDQWdJRDhnYm1WM0lHTnZibVpwWnk1eVpXRmtaWElvS1Z4dUlDQWdJQ0FnSUNBNklHTnZibVpwWnk1eVpXRmtaWEk3WEc0Z0lDQWdZMjl1YzNRZ2NtVmhaR1Z5UTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnTGk0dUtHTnZibVpwWnk1eVpXRmtaWEpEYjI1bWFXY2dQejhnZTMwcExGeHVJQ0FnSUNBZ2MyOTFjbU5sT2lCamIyNW1hV2N1Y21WaFpHVnlRMjl1Wm1sblB5NXpiM1Z5WTJVZ1B6OGdSbVZoZEhWeVpVWnNZV2RGYm5acGNtOXViV1Z1ZEN4Y2JpQWdJQ0I5TzF4dUlDQWdJSFJvYVhNdVkyRmphR1ZrVW1WbmFYTjBjbmtnUFNCaGQyRnBkQ0IwYUdsekxuSmxabkpsYzJoRFlXTm9aV1JTWldkcGMzUnllU2hjYmlBZ0lDQWdJSEpsWVdSbGNrTnZibVpwWnl4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdWbVptVmpkR2wyWlVOdmJtWnBaem9nUm1WaGRIVnlaVVpzWVdkVFpYSjJhV05sUTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnTGk0dVkyOXVabWxuTEZ4dUlDQWdJQ0FnY21WaFpHVnlPaUIwYUdsekxuSmxZV1JsY2l4Y2JpQWdJQ0FnSUhKbFlXUmxja052Ym1acFp5eGNiaUFnSUNCOU8xeHVJQ0FnSUhKbGRIVnliaUI3SUdOdmJtWnBaem9nWldabVpXTjBhWFpsUTI5dVptbG5MQ0JqYkdsbGJuUTZJSFJvYVhNdWNtVmhaR1Z5SUgwN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnNiMjVsVW1WbmFYTjBjbmtvY21WbmFYTjBjbms2SUVabFlYUjFjbVZHYkdGblVtVm5hWE4wY25rcE9pQkdaV0YwZFhKbFJteGhaMUpsWjJsemRISjVJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG1WdWRISnBaWE1vY21WbmFYTjBjbmtwTG5KbFpIVmpaU2dvWVdOakxDQmJhMlY1TENCMllXeDFaVjBwSUQwK0lIdGNiaUFnSUNBZ0lHRmpZMXRyWlhsZElEMWNiaUFnSUNBZ0lDQWdkbUZzZFdVZ0ppWWdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQmNJbTlpYW1WamRGd2lJQ1ltSUNGQmNuSmhlUzVwYzBGeWNtRjVLSFpoYkhWbEtWeHVJQ0FnSUNBZ0lDQWdJRDhnS0hzZ0xpNHVLSFpoYkhWbElHRnpJRVpsWVhSMWNtVkdiR0ZuUTI5dVptbG5LU0I5SUdGeklFWmxZWFIxY21WR2JHRm5RMjl1Wm1sbktWeHVJQ0FnSUNBZ0lDQWdJRG9nZG1Gc2RXVTdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXTmpPMXh1SUNBZ0lIMHNJSHQ5SUdGeklFWmxZWFIxY21WR2JHRm5VbVZuYVhOMGNua3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5QnlaV1p5WlhOb1EyRmphR1ZrVW1WbmFYTjBjbmtvWEc0Z0lDQWdiM0IwYVc5dWN6b2dSbVZoZEhWeVpVWnNZV2RTWldGa1pYSkpibkIxZENBOUlIdDlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThSbVZoZEhWeVpVWnNZV2RTWldkcGMzUnllVDRnZTF4dUlDQWdJR052Ym5OMElHVnVkbEpsWjJsemRISjVJRDBnWVhkaGFYUWdkR2hwY3k1eVpXRmtaWEl1Y21WaFpDaDdYRzRnSUNBZ0lDQXVMaTV2Y0hScGIyNXpMRnh1SUNBZ0lDQWdjMjkxY21ObE9pQnZjSFJwYjI1ekxuTnZkWEpqWlNBL1B5QkdaV0YwZFhKbFJteGhaMFZ1ZG1seWIyNXRaVzUwTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR3hsZENCd1pYSnphWE4wWldRNklFWmxZWFIxY21WR2JHRm5XMTBnUFNCYlhUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjR1Z5YzJsemRHVmtJRDBnWVhkaGFYUWdkR2hwY3k1eVpYQnZMbk5sYkdWamRDZ3BMbVY0WldOMWRHVW9MaTR1WVhKbmN5azdYRzRnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNCd1pYSnphWE4wWldRZ1BTQmJYVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCeVpXZHBjM1J5ZVNBOUlIUm9hWE11WTJ4dmJtVlNaV2RwYzNSeWVTaGxiblpTWldkcGMzUnllU2s3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JtYkdGbklHOW1JSEJsY25OcGMzUmxaQ2tnZTF4dUlDQWdJQ0FnY21WbmFYTjBjbmxiWm14aFp5NXJaWGxkSUQwZ1pteGhaeTVsYm1GaWJHVmtJRDhnS0dac1lXY3VZMjl1Wm1sbklEOC9JSFJ5ZFdVcElEb2dabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaV2RwYzNSeWVUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjMlYwUTJGamFHVmtSbXhoWnlobWJHRm5PaUJHWldGMGRYSmxSbXhoWnlrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdVkyRmphR1ZrVW1WbmFYTjBjbmxiWm14aFp5NXJaWGxkSUQwZ1pteGhaeTVsYm1GaWJHVmtYRzRnSUNBZ0lDQS9JQ2htYkdGbkxtTnZibVpwWnlBL1B5QjBjblZsS1Z4dUlDQWdJQ0FnT2lCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMFFXTmpaWE56VW1Wd2IzTnBkRzl5ZVNncE9pQlNaWEJ2UEVabFlYUjFjbVZHYkdGblFXTmpaWE56UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXTmpaWE56VW1Wd2IzTnBkRzl5ZVNBL1B5QlNaWEJ2YzJsMGIzSjVMbVp2Y2sxdlpHVnNLRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhOelpYSjBTVzVwZEdsaGJHbDZaV1FvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdkbTlwWkNCMGFHbHpMbkpsWVdSbGNqdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdibTl5YldGc2FYcGxSbVZoZEhWeVpVRmpZMlZ6YzBsdWNIVjBLRnh1SUNBZ0lHbHVjSFYwT2lCR1pXRjBkWEpsUm14aFowRmpZMlZ6YzBsdWNIVjBYRzRnSUNrNklFWmxZWFIxY21WR2JHRm5RV05qWlhOelNXNXdkWFFnZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQXVMaTVwYm5CMWRDeGNiaUFnSUNBZ0lHWmxZWFIxY21WTFpYazZJRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS0dsdWNIVjBMbVpsWVhSMWNtVkxaWGtwTEZ4dUlDQWdJQ0FnYzNWaWFtVmpkRlI1Y0dVNklHNXZjbTFoYkdsNlpVWmxZWFIxY21WVGRXSnFaV04wVkhsd1pTaHBibkIxZEM1emRXSnFaV04wVkhsd1pTa3NYRzRnSUNBZ0lDQnpkV0pxWldOMFMyVjVPaUJ1YjNKdFlXeHBlbVZHWldGMGRYSmxVM1ZpYW1WamRFdGxlU2hwYm5CMWRDNXpkV0pxWldOMFMyVjVLU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JpZFdsc1pFRmpZMlZ6YzBOdmJtUnBkR2x2YmloY2JpQWdJQ0J4ZFdWeWVUb2dSbVZoZEhWeVpVWnNZV2RCWTJObGMzTlJkV1Z5ZVZ4dUlDQXBPaUJEYjI1a2FYUnBiMjQ4Um1WaGRIVnlaVVpzWVdkQlkyTmxjM00rSUh0Y2JpQWdJQ0JzWlhRZ1kyOXVaR2wwYVc5dUlEMGdRMjl1WkdsMGFXOXVMbUYwZEhJOFJtVmhkSFZ5WlVac1lXZEJZMk5sYzNNK0tGd2ljM1ZpYW1WamRGUjVjR1ZjSWlrdVpYRW9YRzRnSUNBZ0lDQnViM0p0WVd4cGVtVkdaV0YwZFhKbFUzVmlhbVZqZEZSNWNHVW9jWFZsY25rdWMzVmlhbVZqZEZSNWNHVXBYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNWthWFJwYjI0Z1BTQmpiMjVrYVhScGIyNHVZVzVrS0Z4dUlDQWdJQ0FnUTI5dVpHbDBhVzl1TG1GMGRISThSbVZoZEhWeVpVWnNZV2RCWTJObGMzTStLRndpYzNWaWFtVmpkRXRsZVZ3aUtTNWxjU2hjYmlBZ0lDQWdJQ0FnYm05eWJXRnNhWHBsUm1WaGRIVnlaVk4xWW1wbFkzUkxaWGtvY1hWbGNua3VjM1ZpYW1WamRFdGxlU2xjYmlBZ0lDQWdJQ2xjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdjWFZsY25rdVpXNWhZbXhsWkNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlrZ2UxeHVJQ0FnSUNBZ1kyOXVaR2wwYVc5dUlEMGdZMjl1WkdsMGFXOXVMbUZ1WkNoY2JpQWdJQ0FnSUNBZ1EyOXVaR2wwYVc5dUxtRjBkSEk4Um1WaGRIVnlaVVpzWVdkQlkyTmxjM00rS0Z3aVpXNWhZbXhsWkZ3aUtTNWxjU2h4ZFdWeWVTNWxibUZpYkdWa0tWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIRjFaWEo1TG1abFlYUjFjbVZMWlhseklDWW1JSEYxWlhKNUxtWmxZWFIxY21WTFpYbHpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUdOdmJtUnBkR2x2YmlBOUlHTnZibVJwZEdsdmJpNWhibVFvWEc0Z0lDQWdJQ0FnSUVOdmJtUnBkR2x2Ymk1aGRIUnlQRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpQaWhjSW1abFlYUjFjbVZMWlhsY0lpa3VhVzRvWEc0Z0lDQWdJQ0FnSUNBZ2NYVmxjbmt1Wm1WaGRIVnlaVXRsZVhNdWJXRndLRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdZMjl1WkdsMGFXOXVPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdZM0psWVhSbEtGeHVJQ0FnSUcxdlpHVnNPaUJHWldGMGRYSmxSbXhoWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEVabFlYUjFjbVZHYkdGblBpQjdYRzRnSUNBZ2JXOWtaV3d1YTJWNUlEMGdibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VvYlc5a1pXd3VhMlY1S1R0Y2JpQWdJQ0J0YjJSbGJDNWxibUZpYkdWa0lEOC9QU0IwY25WbE8xeHVJQ0FnSUdOdmJuTjBJR055WldGMFpXUWdQU0JoZDJGcGRDQnpkWEJsY2k1amNtVmhkR1VvYlc5a1pXd3NJQzR1TG1GeVozTXBPMXh1SUNBZ0lIUm9hWE11YzJWMFEyRmphR1ZrUm14aFp5aGpjbVZoZEdWa0tUdGNiaUFnSUNCeVpYUjFjbTRnWTNKbFlYUmxaRHRjYmlBZ2ZWeHVYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSFZ3WkdGMFpTaGNiaUFnSUNCdGIyUmxiRG9nUm1WaGRIVnlaVVpzWVdjc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFp6NGdlMXh1SUNBZ0lHMXZaR1ZzTG10bGVTQTlJRzV2Y20xaGJHbDZaVVpsWVhSMWNtVk9ZVzFsS0cxdlpHVnNMbXRsZVNrN1hHNGdJQ0FnYlc5a1pXd3VaVzVoWW14bFpDQS9QejBnZEhKMVpUdGNiaUFnSUNCamIyNXpkQ0IxY0dSaGRHVmtJRDBnWVhkaGFYUWdjM1Z3WlhJdWRYQmtZWFJsS0cxdlpHVnNMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQjBhR2x6TG5ObGRFTmhZMmhsWkVac1lXY29kWEJrWVhSbFpDazdYRzRnSUNBZ2NtVjBkWEp1SUhWd1pHRjBaV1E3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJtYVc1a1QyNWxRbmtvWEc0Z0lDQWdhMlY1T2lCclpYbHZaaUJHWldGMGRYSmxSbXhoWnl4Y2JpQWdJQ0IyWVd4MVpUb2dZVzU1TEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4Um1WaGRIVnlaVVpzWVdjK0lIdGNiaUFnSUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrVm1Gc2RXVWdQVnh1SUNBZ0lDQWdhMlY1SUQwOVBTQmNJbXRsZVZ3aUlDWW1JSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdJQ0EvSUc1dmNtMWhiR2w2WlVabFlYUjFjbVZPWVcxbEtIWmhiSFZsS1Z4dUlDQWdJQ0FnSUNBNklIWmhiSFZsTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbGNHOHVabWx1WkU5dVpVSjVLR3RsZVN3Z2JtOXliV0ZzYVhwbFpGWmhiSFZsTENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhKbFlXUkJiR3dvYTJWNWN6b2dZVzU1VzEwc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFoxdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXlaWEJ2TG5KbFlXUkJiR3dvYTJWNWN5d2dMaTR1WVhKbmN5azdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQm1iR0ZuSUc5bUlISmxjM1ZzZENrZ2RHaHBjeTV6WlhSRFlXTm9aV1JHYkdGbktHWnNZV2NwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCc2FYTjBSVzVoWW14bFpDZ3VMaTVoY21kek9pQmhibmxiWFNrNklGQnliMjFwYzJVOFJtVmhkSFZ5WlVac1lXZGJYVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbGNHOWNiaUFnSUNBZ0lDNXpaV3hsWTNRb0tWeHVJQ0FnSUNBZ0xuZG9aWEpsS0VOdmJtUnBkR2x2Ymk1aGRIUnlQRVpsWVhSMWNtVkdiR0ZuUGloY0ltVnVZV0pzWldSY0lpa3VaWEVvZEhKMVpTa3BYRzRnSUNBZ0lDQXVaWGhsWTNWMFpTZ3VMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHZHlZVzUwUm1WaGRIVnlaVUZqWTJWemN5aGNiaUFnSUNCcGJuQjFkRG9nUm1WaGRIVnlaVVpzWVdkQlkyTmxjM05KYm5CMWRDeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFWmxZWFIxY21WR2JHRm5RV05qWlhOelBpQjdYRzRnSUNBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlIUm9hWE11Ym05eWJXRnNhWHBsUm1WaGRIVnlaVUZqWTJWemMwbHVjSFYwS0dsdWNIVjBLVHRjYmlBZ0lDQmpiMjV6ZENCbGVHbHpkR2x1WnlBOUlHRjNZV2wwSUhSb2FYTXVabWx1WkVabFlYUjFjbVZCWTJObGMzTW9ibTl5YldGc2FYcGxaQ3dnTGk0dVlYSm5jeWt1WTJGMFkyZ29YRzRnSUNBZ0lDQW9LU0E5UGlCMWJtUmxabWx1WldSY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNnaFpYaHBjM1JwYm1jcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEVGalkyVnpjMUpsY0c5emFYUnZjbmtvS1M1amNtVmhkR1VvWEc0Z0lDQWdJQ0FnSUc1bGR5QkdaV0YwZFhKbFJteGhaMEZqWTJWemN5aHViM0p0WVd4cGVtVmtLU3hjYmlBZ0lDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaMlYwUVdOalpYTnpVbVZ3YjNOcGRHOXllU2dwTG5Wd1pHRjBaU2hjYmlBZ0lDQWdJRTlpYW1WamRDNWhjM05wWjI0b1pYaHBjM1JwYm1jc0lHNXZjbTFoYkdsNlpXUXBMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCeVpYWnZhMlZHWldGMGRYSmxRV05qWlhOektGeHVJQ0FnSUdsdWNIVjBPaUJHWldGMGRYSmxSbXhoWjBGalkyVnpjMU4xWW1wbFkzUWdKaUI3SUdabFlYUjFjbVZMWlhrNklITjBjbWx1WnlCOUxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFJtVmhkSFZ5WlVac1lXZEJZMk5sYzNNZ2ZDQjFibVJsWm1sdVpXUStJSHRjYmlBZ0lDQmpiMjV6ZENCbGVHbHpkR2x1WnlBOUlHRjNZV2wwSUhSb2FYTXVabWx1WkVabFlYUjFjbVZCWTJObGMzTW9hVzV3ZFhRc0lDNHVMbUZ5WjNNcExtTmhkR05vS0Z4dUlDQWdJQ0FnS0NrZ1BUNGdkVzVrWldacGJtVmtYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9JV1Y0YVhOMGFXNW5LU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEVGalkyVnpjMUpsY0c5emFYUnZjbmtvS1M1a1pXeGxkR1VvWlhocGMzUnBibWN1YVdRc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1ptbHVaRVpsWVhSMWNtVkJZMk5sYzNNb1hHNGdJQ0FnY1hWbGNuazZJRVpsWVhSMWNtVkdiR0ZuUVdOalpYTnpVWFZsY25rc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4R1pXRjBkWEpsUm14aFowRmpZMlZ6Y3o0Z2UxeHVJQ0FnSUdOdmJuTjBJR052Ym1ScGRHbHZiaUE5SUhSb2FYTXVZblZwYkdSQlkyTmxjM05EYjI1a2FYUnBiMjRvY1hWbGNua3BPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0IwYUdsekxtZGxkRUZqWTJWemMxSmxjRzl6YVhSdmNua29LVnh1SUNBZ0lDQWdMbk5sYkdWamRDZ3BYRzRnSUNBZ0lDQXVkMmhsY21Vb1kyOXVaR2wwYVc5dUtWeHVJQ0FnSUNBZ0xtVjRaV04xZEdVb0xpNHVZWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdaWGhwYzNScGJtY2dQU0J5WlhOMWJIUnpXekJkTzF4dUlDQWdJR2xtSUNnaFpYaHBjM1JwYm1jcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0Z4dUlDQWdJQ0FnSUNCZ1JtVmhkSFZ5WlNCaFkyTmxjM01nWm05eUlDUjdibTl5YldGc2FYcGxSbVZoZEhWeVpWTjFZbXBsWTNSVWVYQmxLSEYxWlhKNUxuTjFZbXBsWTNSVWVYQmxLWDA2Skh0dWIzSnRZV3hwZW1WR1pXRjBkWEpsVTNWaWFtVmpkRXRsZVNoeGRXVnllUzV6ZFdKcVpXTjBTMlY1S1gwZ2JtOTBJR1p2ZFc1a1lGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1Y0YVhOMGFXNW5PMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEVabFlYUjFjbVZCWTJObGMzTW9YRzRnSUNBZ2NYVmxjbms2SUVabFlYUjFjbVZHYkdGblFXTmpaWE56VVhWbGNua3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeEdaV0YwZFhKbFJteGhaMEZqWTJWemMxdGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFFXTmpaWE56VW1Wd2IzTnBkRzl5ZVNncFhHNGdJQ0FnSUNBdWMyVnNaV04wS0NsY2JpQWdJQ0FnSUM1M2FHVnlaU2gwYUdsekxtSjFhV3hrUVdOalpYTnpRMjl1WkdsMGFXOXVLSEYxWlhKNUtTbGNiaUFnSUNBZ0lDNWxlR1ZqZFhSbEtDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVnpiMngyWlVabFlYUjFjbVZHYkdGbmMwWnZjbE4xWW1wbFkzUW9YRzRnSUNBZ2MzVmlhbVZqZERvZ1JtVmhkSFZ5WlVac1lXZEJZMk5sYzNOVGRXSnFaV04wTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4Um1WaGRIVnlaVVpzWVdkU1pXZHBjM1J5ZVQ0Z2UxeHVJQ0FnSUhSb2FYTXVZWE56WlhKMFNXNXBkR2xoYkdsNlpXUW9LVHRjYmlBZ0lDQmpiMjV6ZENCaFkyTmxjM01nUFNCaGQyRnBkQ0IwYUdsekxteHBjM1JHWldGMGRYSmxRV05qWlhOektGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQXVMaTV6ZFdKcVpXTjBMRnh1SUNBZ0lDQWdJQ0JsYm1GaWJHVmtPaUIwY25WbExGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHWmxZWFIxY21WTFpYbHpJRDBnV3k0dUxtNWxkeUJUWlhRb1lXTmpaWE56TG0xaGNDZ29hWFJsYlNrZ1BUNGdhWFJsYlM1bVpXRjBkWEpsUzJWNUtTbGRPMXh1SUNBZ0lHbG1JQ2htWldGMGRYSmxTMlY1Y3k1c1pXNW5kR2dnUFQwOUlEQXBJSEpsZEhWeWJpQjdmVHRjYmx4dUlDQWdJR052Ym5OMElHTnZibVJwZEdsdmJpQTlJRU52Ym1ScGRHbHZiaTVoZEhSeVBFWmxZWFIxY21WR2JHRm5QaWhjSW1WdVlXSnNaV1JjSWlsY2JpQWdJQ0FnSUM1bGNTaDBjblZsS1Z4dUlDQWdJQ0FnTG1GdVpDaGNiaUFnSUNBZ0lDQWdRMjl1WkdsMGFXOXVMbUYwZEhJOFJtVmhkSFZ5WlVac1lXYytLRndpYTJWNVhDSXBMbWx1S0Z4dUlDQWdJQ0FnSUNBZ0lHWmxZWFIxY21WTFpYbHpMbTFoY0NodWIzSnRZV3hwZW1WR1pXRjBkWEpsVG1GdFpTbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJR052Ym5OMElHVnVZV0pzWldSR2JHRm5jeUE5SUdGM1lXbDBJSFJvYVhNdWNtVndiMXh1SUNBZ0lDQWdMbk5sYkdWamRDZ3BYRzRnSUNBZ0lDQXVkMmhsY21Vb1kyOXVaR2wwYVc5dUtWeHVJQ0FnSUNBZ0xtVjRaV04xZEdVb0xpNHVZWEpuY3lrN1hHNGdJQ0FnY21WMGRYSnVJR1Z1WVdKc1pXUkdiR0ZuY3k1eVpXUjFZMlVvS0hKbFoybHpkSEo1TENCbWJHRm5LU0E5UGlCN1hHNGdJQ0FnSUNCeVpXZHBjM1J5ZVZ0bWJHRm5MbXRsZVYwZ1BTQm1iR0ZuTG1OdmJtWnBaeUEvUHlCMGNuVmxPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxaMmx6ZEhKNU8xeHVJQ0FnSUgwc0lIdDlJR0Z6SUVabFlYUjFjbVZHYkdGblVtVm5hWE4wY25rcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2FYTkZibUZpYkdWa1JtOXlVM1ZpYW1WamRDaGNiaUFnSUNCclpYazZJSE4wY21sdVp5eGNiaUFnSUNCemRXSnFaV04wT2lCR1pXRjBkWEpsUm14aFowRmpZMlZ6YzFOMVltcGxZM1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhpYjI5c1pXRnVQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVm5hWE4wY25rZ1BTQmhkMkZwZENCMGFHbHpMbkpsYzI5c2RtVkdaV0YwZFhKbFJteGhaM05HYjNKVGRXSnFaV04wS0hOMVltcGxZM1FzSUM0dUxtRnlaM01wTzF4dUlDQWdJSEpsZEhWeWJpQnBjMFpsWVhSMWNtVkdiR0ZuUlc1aFlteGxaRUo1VG1GdFpTaHlaV2RwYzNSeWVTd2dhMlY1S1R0Y2JpQWdmVnh1WEc0Z0lHbHpSVzVoWW14bFpDaHJaWGs2SUhOMGNtbHVaeWs2SUdKdmIyeGxZVzRnZTF4dUlDQWdJSFJvYVhNdVlYTnpaWEowU1c1cGRHbGhiR2w2WldRb0tUdGNiaUFnSUNCamIyNXpkQ0J1YjNKdFlXeHBlbVZrUzJWNUlEMGdibTl5YldGc2FYcGxSbVZoZEhWeVpVNWhiV1VvYTJWNUtUdGNiaUFnSUNCeVpYUjFjbTRnYVhOR1pXRjBkWEpsUm14aFowVnVZV0pzWldSQ2VVNWhiV1VvZEdocGN5NWpZV05vWldSU1pXZHBjM1J5ZVN3Z2JtOXliV0ZzYVhwbFpFdGxlU2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ5WlhOdmJIWmxSbVZoZEhWeVpVWnNZV2R6S0NrNklGQnliMjFwYzJVOFJtVmhkSFZ5WlVac1lXZFNaV2RwYzNSeWVUNGdlMXh1SUNBZ0lIUm9hWE11WVhOelpYSjBTVzVwZEdsaGJHbDZaV1FvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amJHOXVaVkpsWjJsemRISjVLSFJvYVhNdVkyRmphR1ZrVW1WbmFYTjBjbmtwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYzNsdVkwWnliMjFGYm5acGNtOXViV1Z1ZENoY2JpQWdJQ0J2Y0hScGIyNXpPaUJHWldGMGRYSmxSbXhoWjFKbFlXUmxja2x1Y0hWMElEMGdlMzBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhHWldGMGRYSmxSbXhoWjF0ZFBpQjdYRzRnSUNBZ2RHaHBjeTVoYzNObGNuUkpibWwwYVdGc2FYcGxaQ2dwTzF4dUlDQWdJR052Ym5OMElISmxaMmx6ZEhKNUlEMGdZWGRoYVhRZ2RHaHBjeTV5WldGa1pYSXVjbVZoWkNoN1hHNGdJQ0FnSUNBdUxpNXZjSFJwYjI1ekxGeHVJQ0FnSUNBZ2MyOTFjbU5sT2lCdmNIUnBiMjV6TG5OdmRYSmpaU0EvUHlCR1pXRjBkWEpsUm14aFowVnVkbWx5YjI1dFpXNTBMRnh1SUNBZ0lIMHBPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkSE02SUVabFlYUjFjbVZHYkdGblcxMGdQU0JiWFR0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUZ0clpYa3NJSFpoYkhWbFhTQnZaaUJQWW1wbFkzUXVaVzUwY21sbGN5aHlaV2RwYzNSeWVTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHTnZibVpwWnlBOVhHNGdJQ0FnSUNBZ0lIWmhiSFZsSUNZbUlIUjVjR1Z2WmlCMllXeDFaU0E5UFQwZ1hDSnZZbXBsWTNSY0lpQW1KaUFoUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNsY2JpQWdJQ0FnSUNBZ0lDQS9JQ2gyWVd4MVpTQmhjeUJHWldGMGRYSmxSbXhoWjBOdmJtWnBaeWxjYmlBZ0lDQWdJQ0FnSUNBNklIc2daVzVoWW14bFpEb2dRbTl2YkdWaGJpaDJZV3gxWlNrZ2ZUdGNiaUFnSUNBZ0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibTh0ZFc1MWMyVmtMWFpoY25OY2JpQWdJQ0FnSUdOdmJuTjBJSHNnWlc1aFlteGxaRG9nWDJsbmJtOXlaV1JGYm1GaWJHVmtMQ0F1TGk1eVpYTjBRMjl1Wm1sbklIMGdQU0JqYjI1bWFXYzdYRzRnSUNBZ0lDQmpiMjV6ZENCdWIzSnRZV3hwZW1Wa1MyVjVJRDBnYm05eWJXRnNhWHBsUm1WaGRIVnlaVTVoYldVb2EyVjVLVHRjYmlBZ0lDQWdJR052Ym5OMElHVjRhWE4wYVc1bklEMGdZWGRoYVhRZ2RHaHBjeTVtYVc1a1QyNWxRbmtvWEc0Z0lDQWdJQ0FnSUZ3aWEyVjVYQ0lzWEc0Z0lDQWdJQ0FnSUc1dmNtMWhiR2w2WldSTFpYa3NYRzRnSUNBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBZ0lDa3VZMkYwWTJnb0tDa2dQVDRnZFc1a1pXWnBibVZrS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRzF2WkdWc0lEMGdaWGhwYzNScGJtZGNiaUFnSUNBZ0lDQWdQeUJQWW1wbFkzUXVZWE56YVdkdUtHVjRhWE4wYVc1bkxDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbGJtRmliR1ZrT2lCcGMwWmxZWFIxY21WR2JHRm5SVzVoWW14bFpDaDJZV3gxWlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrWlhOamNtbHdkR2x2YmpvZ2NtVnpkRU52Ym1acFp5NWtaWE5qY21sd2RHbHZiaUEvUHlCbGVHbHpkR2x1Wnk1a1pYTmpjbWx3ZEdsdmJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOamIzQmxPaUJ5WlhOMFEyOXVabWxuTG5OamIzQmxJRDgvSUdWNGFYTjBhVzVuTG5OamIzQmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JXVjBZV1JoZEdFNklISmxjM1JEYjI1bWFXY3ViV1YwWVdSaGRHRWdQejhnWlhocGMzUnBibWN1YldWMFlXUmhkR0VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjVtYVdjNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVjbVZ6ZEVOdmJtWnBaeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdaVzVoWW14bFpEb2dhWE5HWldGMGRYSmxSbXhoWjBWdVlXSnNaV1FvZG1Gc2RXVXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0I5S1Z4dUlDQWdJQ0FnSUNBNklHNWxkeUJHWldGMGRYSmxSbXhoWnloN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JyWlhrNklHNXZjbTFoYkdsNlpXUkxaWGtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxibUZpYkdWa09pQnBjMFpsWVhSMWNtVkdiR0ZuUlc1aFlteGxaQ2gyWVd4MVpTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pYTmpjbWx3ZEdsdmJqb2djbVZ6ZEVOdmJtWnBaeTVrWlhOamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5qYjNCbE9pQnlaWE4wUTI5dVptbG5Mbk5qYjNCbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldWMFlXUmhkR0U2SUhKbGMzUkRiMjVtYVdjdWJXVjBZV1JoZEdFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1bWFXYzZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1Y21WemRFTnZibVpwWnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWlc1aFlteGxaRG9nYVhOR1pXRjBkWEpsUm14aFowVnVZV0pzWldRb2RtRnNkV1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lISmxjM1ZzZEhNdWNIVnphQ2hjYmlBZ0lDQWdJQ0FnWlhocGMzUnBibWRjYmlBZ0lDQWdJQ0FnSUNBL0lHRjNZV2wwSUhSb2FYTXVkWEJrWVhSbEtHMXZaR1ZzTENBdUxpNWhjbWR6S1Z4dUlDQWdJQ0FnSUNBZ0lEb2dZWGRoYVhRZ2RHaHBjeTVqY21WaGRHVW9iVzlrWld3c0lDNHVMbUZ5WjNNcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwYUdsekxtTmhZMmhsWkZKbFoybHpkSEo1SUQwZ1lYZGhhWFFnZEdocGN5NXlaV1p5WlhOb1EyRmphR1ZrVW1WbmFYTjBjbmtvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUM0dUxtOXdkR2x2Ym5Nc1hHNGdJQ0FnSUNBZ0lITnZkWEpqWlRvZ2IzQjBhVzl1Y3k1emIzVnlZMlVnUHo4Z1JtVmhkSFZ5WlVac1lXZEZiblpwY205dWJXVnVkQ3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBjenRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphBreakSignal = void 0;
4
+ /**
5
+ * @module integrations/graph/errors/GraphBreakSignal
6
+ * @summary Control-flow signal used by `core.flow.break` to exit a loop early.
7
+ * @description Thrown by the Break node executor and caught by the enclosing
8
+ * loop executor (`core.loop.foreach`, `core.loop.while`, `core.loop.until`).
9
+ * Unlike a real error, a break signal is a cooperative control-flow token: it
10
+ * is NOT propagated as a workflow failure. When caught, the loop terminates
11
+ * early and returns the results collected so far (plus the optional `value`
12
+ * carried by the signal as the final partial result).
13
+ */
14
+ const GraphExecutionError_js_1 = require("./GraphExecutionError.cjs");
15
+ /**
16
+ * Control-flow signal thrown by `core.flow.break` nodes.
17
+ *
18
+ * Extends {@link GraphExecutionError} so it rides on the existing error
19
+ * pipeline, but carries the `graphCode` `"GRAPH_BREAK_SIGNAL"` and the flag
20
+ * `isBreakSignal = true` so loop executors can distinguish it from a genuine
21
+ * execution failure via `instanceof` or the flag.
22
+ */
23
+ class GraphBreakSignal extends GraphExecutionError_js_1.GraphExecutionError {
24
+ /**
25
+ * @param value - Optional value forwarded by the Break node. The enclosing
26
+ * loop appends this to the collected results as the last partial result.
27
+ */
28
+ constructor(value) {
29
+ super("Break signal", "GRAPH_BREAK_SIGNAL", { value });
30
+ /** Distinguishes a break signal from a genuine error without `instanceof`. */
31
+ this.isBreakSignal = true;
32
+ this.name = "GraphBreakSignal";
33
+ }
34
+ }
35
+ exports.GraphBreakSignal = GraphBreakSignal;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhCcmVha1NpZ25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ncmFwaC9lbmdpbmUvZXJyb3JzL0dyYXBoQnJlYWtTaWduYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBQ0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUU1RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG1CQUFtQjtJQUl2RDs7O09BR0c7SUFDSCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFSekQsOEVBQThFO1FBQ3JFLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBUTVCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9lcnJvcnMvR3JhcGhCcmVha1NpZ25hbFxuICogQHN1bW1hcnkgQ29udHJvbC1mbG93IHNpZ25hbCB1c2VkIGJ5IGBjb3JlLmZsb3cuYnJlYWtgIHRvIGV4aXQgYSBsb29wIGVhcmx5LlxuICogQGRlc2NyaXB0aW9uIFRocm93biBieSB0aGUgQnJlYWsgbm9kZSBleGVjdXRvciBhbmQgY2F1Z2h0IGJ5IHRoZSBlbmNsb3NpbmdcbiAqIGxvb3AgZXhlY3V0b3IgKGBjb3JlLmxvb3AuZm9yZWFjaGAsIGBjb3JlLmxvb3Aud2hpbGVgLCBgY29yZS5sb29wLnVudGlsYCkuXG4gKiBVbmxpa2UgYSByZWFsIGVycm9yLCBhIGJyZWFrIHNpZ25hbCBpcyBhIGNvb3BlcmF0aXZlIGNvbnRyb2wtZmxvdyB0b2tlbjogaXRcbiAqIGlzIE5PVCBwcm9wYWdhdGVkIGFzIGEgd29ya2Zsb3cgZmFpbHVyZS4gV2hlbiBjYXVnaHQsIHRoZSBsb29wIHRlcm1pbmF0ZXNcbiAqIGVhcmx5IGFuZCByZXR1cm5zIHRoZSByZXN1bHRzIGNvbGxlY3RlZCBzbyBmYXIgKHBsdXMgdGhlIG9wdGlvbmFsIGB2YWx1ZWBcbiAqIGNhcnJpZWQgYnkgdGhlIHNpZ25hbCBhcyB0aGUgZmluYWwgcGFydGlhbCByZXN1bHQpLlxuICovXG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkVycm9yIH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25FcnJvclwiO1xuXG4vKipcbiAqIENvbnRyb2wtZmxvdyBzaWduYWwgdGhyb3duIGJ5IGBjb3JlLmZsb3cuYnJlYWtgIG5vZGVzLlxuICpcbiAqIEV4dGVuZHMge0BsaW5rIEdyYXBoRXhlY3V0aW9uRXJyb3J9IHNvIGl0IHJpZGVzIG9uIHRoZSBleGlzdGluZyBlcnJvclxuICogcGlwZWxpbmUsIGJ1dCBjYXJyaWVzIHRoZSBgZ3JhcGhDb2RlYCBgXCJHUkFQSF9CUkVBS19TSUdOQUxcImAgYW5kIHRoZSBmbGFnXG4gKiBgaXNCcmVha1NpZ25hbCA9IHRydWVgIHNvIGxvb3AgZXhlY3V0b3JzIGNhbiBkaXN0aW5ndWlzaCBpdCBmcm9tIGEgZ2VudWluZVxuICogZXhlY3V0aW9uIGZhaWx1cmUgdmlhIGBpbnN0YW5jZW9mYCBvciB0aGUgZmxhZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoQnJlYWtTaWduYWwgZXh0ZW5kcyBHcmFwaEV4ZWN1dGlvbkVycm9yIHtcbiAgLyoqIERpc3Rpbmd1aXNoZXMgYSBicmVhayBzaWduYWwgZnJvbSBhIGdlbnVpbmUgZXJyb3Igd2l0aG91dCBgaW5zdGFuY2VvZmAuICovXG4gIHJlYWRvbmx5IGlzQnJlYWtTaWduYWwgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBPcHRpb25hbCB2YWx1ZSBmb3J3YXJkZWQgYnkgdGhlIEJyZWFrIG5vZGUuIFRoZSBlbmNsb3NpbmdcbiAgICogICBsb29wIGFwcGVuZHMgdGhpcyB0byB0aGUgY29sbGVjdGVkIHJlc3VsdHMgYXMgdGhlIGxhc3QgcGFydGlhbCByZXN1bHQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWx1ZT86IHVua25vd24pIHtcbiAgICBzdXBlcihcIkJyZWFrIHNpZ25hbFwiLCBcIkdSQVBIX0JSRUFLX1NJR05BTFwiLCB7IHZhbHVlIH0pO1xuICAgIHRoaXMubmFtZSA9IFwiR3JhcGhCcmVha1NpZ25hbFwiO1xuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhCcmVha1NpZ25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdyYXBoQnJlYWtTaWduYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7OztHQVNHO0FBQ0gscUVBQStEO0FBQy9EOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLDRDQUFtQjtJQUNyRDs7O09BR0c7SUFDSCxZQUFZLEtBQUs7UUFDYixLQUFLLENBQUMsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFYRCw0Q0FXQztBQUNELHNvRkFBc29GIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9lcnJvcnMvR3JhcGhCcmVha1NpZ25hbFxuICogQHN1bW1hcnkgQ29udHJvbC1mbG93IHNpZ25hbCB1c2VkIGJ5IGBjb3JlLmZsb3cuYnJlYWtgIHRvIGV4aXQgYSBsb29wIGVhcmx5LlxuICogQGRlc2NyaXB0aW9uIFRocm93biBieSB0aGUgQnJlYWsgbm9kZSBleGVjdXRvciBhbmQgY2F1Z2h0IGJ5IHRoZSBlbmNsb3NpbmdcbiAqIGxvb3AgZXhlY3V0b3IgKGBjb3JlLmxvb3AuZm9yZWFjaGAsIGBjb3JlLmxvb3Aud2hpbGVgLCBgY29yZS5sb29wLnVudGlsYCkuXG4gKiBVbmxpa2UgYSByZWFsIGVycm9yLCBhIGJyZWFrIHNpZ25hbCBpcyBhIGNvb3BlcmF0aXZlIGNvbnRyb2wtZmxvdyB0b2tlbjogaXRcbiAqIGlzIE5PVCBwcm9wYWdhdGVkIGFzIGEgd29ya2Zsb3cgZmFpbHVyZS4gV2hlbiBjYXVnaHQsIHRoZSBsb29wIHRlcm1pbmF0ZXNcbiAqIGVhcmx5IGFuZCByZXR1cm5zIHRoZSByZXN1bHRzIGNvbGxlY3RlZCBzbyBmYXIgKHBsdXMgdGhlIG9wdGlvbmFsIGB2YWx1ZWBcbiAqIGNhcnJpZWQgYnkgdGhlIHNpZ25hbCBhcyB0aGUgZmluYWwgcGFydGlhbCByZXN1bHQpLlxuICovXG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkVycm9yIH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25FcnJvci5qc1wiO1xuLyoqXG4gKiBDb250cm9sLWZsb3cgc2lnbmFsIHRocm93biBieSBgY29yZS5mbG93LmJyZWFrYCBub2Rlcy5cbiAqXG4gKiBFeHRlbmRzIHtAbGluayBHcmFwaEV4ZWN1dGlvbkVycm9yfSBzbyBpdCByaWRlcyBvbiB0aGUgZXhpc3RpbmcgZXJyb3JcbiAqIHBpcGVsaW5lLCBidXQgY2FycmllcyB0aGUgYGdyYXBoQ29kZWAgYFwiR1JBUEhfQlJFQUtfU0lHTkFMXCJgIGFuZCB0aGUgZmxhZ1xuICogYGlzQnJlYWtTaWduYWwgPSB0cnVlYCBzbyBsb29wIGV4ZWN1dG9ycyBjYW4gZGlzdGluZ3Vpc2ggaXQgZnJvbSBhIGdlbnVpbmVcbiAqIGV4ZWN1dGlvbiBmYWlsdXJlIHZpYSBgaW5zdGFuY2VvZmAgb3IgdGhlIGZsYWcuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaEJyZWFrU2lnbmFsIGV4dGVuZHMgR3JhcGhFeGVjdXRpb25FcnJvciB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gT3B0aW9uYWwgdmFsdWUgZm9yd2FyZGVkIGJ5IHRoZSBCcmVhayBub2RlLiBUaGUgZW5jbG9zaW5nXG4gICAgICogICBsb29wIGFwcGVuZHMgdGhpcyB0byB0aGUgY29sbGVjdGVkIHJlc3VsdHMgYXMgdGhlIGxhc3QgcGFydGlhbCByZXN1bHQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgc3VwZXIoXCJCcmVhayBzaWduYWxcIiwgXCJHUkFQSF9CUkVBS19TSUdOQUxcIiwgeyB2YWx1ZSB9KTtcbiAgICAgICAgLyoqIERpc3Rpbmd1aXNoZXMgYSBicmVhayBzaWduYWwgZnJvbSBhIGdlbnVpbmUgZXJyb3Igd2l0aG91dCBgaW5zdGFuY2VvZmAuICovXG4gICAgICAgIHRoaXMuaXNCcmVha1NpZ25hbCA9IHRydWU7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiR3JhcGhCcmVha1NpZ25hbFwiO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVIzSmhjR2hDY21WaGExTnBaMjVoYkM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1THk0dUwzTnlZeTluY21Gd2FDOWxibWRwYm1VdlpYSnliM0p6TDBkeVlYQm9RbkpsWVd0VGFXZHVZV3d1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096dEhRVk5ITzBGQlEwZ3NUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEdsRFFVRTRRanRCUVVVMVJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hQUVVGUExHZENRVUZwUWl4VFFVRlJMRzFDUVVGdFFqdEpRVWwyUkRzN08wOUJSMGM3U1VGRFNDeFpRVUZaTEV0QlFXVTdVVUZEZWtJc1MwRkJTeXhEUVVGRExHTkJRV01zUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZTZWtRc09FVkJRVGhGTzFGQlEzSkZMR3RDUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETzFGQlVUVkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzYTBKQlFXdENMRU5CUVVNN1NVRkRha01zUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCQWJXOWtkV3hsSUdsdWRHVm5jbUYwYVc5dWN5OW5jbUZ3YUM5bGNuSnZjbk12UjNKaGNHaENjbVZoYTFOcFoyNWhiRnh1SUNvZ1FITjFiVzFoY25rZ1EyOXVkSEp2YkMxbWJHOTNJSE5wWjI1aGJDQjFjMlZrSUdKNUlHQmpiM0psTG1ac2IzY3VZbkpsWVd0Z0lIUnZJR1Y0YVhRZ1lTQnNiMjl3SUdWaGNteDVMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRlJvY205M2JpQmllU0IwYUdVZ1FuSmxZV3NnYm05a1pTQmxlR1ZqZFhSdmNpQmhibVFnWTJGMVoyaDBJR0o1SUhSb1pTQmxibU5zYjNOcGJtZGNiaUFxSUd4dmIzQWdaWGhsWTNWMGIzSWdLR0JqYjNKbExteHZiM0F1Wm05eVpXRmphR0FzSUdCamIzSmxMbXh2YjNBdWQyaHBiR1ZnTENCZ1kyOXlaUzVzYjI5d0xuVnVkR2xzWUNrdVhHNGdLaUJWYm14cGEyVWdZU0J5WldGc0lHVnljbTl5TENCaElHSnlaV0ZySUhOcFoyNWhiQ0JwY3lCaElHTnZiM0JsY21GMGFYWmxJR052Ym5SeWIyd3RabXh2ZHlCMGIydGxiam9nYVhSY2JpQXFJR2x6SUU1UFZDQndjbTl3WVdkaGRHVmtJR0Z6SUdFZ2QyOXlhMlpzYjNjZ1ptRnBiSFZ5WlM0Z1YyaGxiaUJqWVhWbmFIUXNJSFJvWlNCc2IyOXdJSFJsY20xcGJtRjBaWE5jYmlBcUlHVmhjbXg1SUdGdVpDQnlaWFIxY201eklIUm9aU0J5WlhOMWJIUnpJR052Ykd4bFkzUmxaQ0J6YnlCbVlYSWdLSEJzZFhNZ2RHaGxJRzl3ZEdsdmJtRnNJR0IyWVd4MVpXQmNiaUFxSUdOaGNuSnBaV1FnWW5rZ2RHaGxJSE5wWjI1aGJDQmhjeUIwYUdVZ1ptbHVZV3dnY0dGeWRHbGhiQ0J5WlhOMWJIUXBMbHh1SUNvdlhHNXBiWEJ2Y25RZ2V5QkhjbUZ3YUVWNFpXTjFkR2x2YmtWeWNtOXlJSDBnWm5KdmJTQmNJaTR2UjNKaGNHaEZlR1ZqZFhScGIyNUZjbkp2Y2x3aU8xeHVYRzR2S2lwY2JpQXFJRU52Ym5SeWIyd3RabXh2ZHlCemFXZHVZV3dnZEdoeWIzZHVJR0o1SUdCamIzSmxMbVpzYjNjdVluSmxZV3RnSUc1dlpHVnpMbHh1SUNwY2JpQXFJRVY0ZEdWdVpITWdlMEJzYVc1cklFZHlZWEJvUlhobFkzVjBhVzl1UlhKeWIzSjlJSE52SUdsMElISnBaR1Z6SUc5dUlIUm9aU0JsZUdsemRHbHVaeUJsY25KdmNseHVJQ29nY0dsd1pXeHBibVVzSUdKMWRDQmpZWEp5YVdWeklIUm9aU0JnWjNKaGNHaERiMlJsWUNCZ1hDSkhVa0ZRU0Y5Q1VrVkJTMTlUU1VkT1FVeGNJbUFnWVc1a0lIUm9aU0JtYkdGblhHNGdLaUJnYVhOQ2NtVmhhMU5wWjI1aGJDQTlJSFJ5ZFdWZ0lITnZJR3h2YjNBZ1pYaGxZM1YwYjNKeklHTmhiaUJrYVhOMGFXNW5kV2x6YUNCcGRDQm1jbTl0SUdFZ1oyVnVkV2x1WlZ4dUlDb2daWGhsWTNWMGFXOXVJR1poYVd4MWNtVWdkbWxoSUdCcGJuTjBZVzVqWlc5bVlDQnZjaUIwYUdVZ1pteGhaeTVjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVkeVlYQm9RbkpsWVd0VGFXZHVZV3dnWlhoMFpXNWtjeUJIY21Gd2FFVjRaV04xZEdsdmJrVnljbTl5SUh0Y2JpQWdMeW9xSUVScGMzUnBibWQxYVhOb1pYTWdZU0JpY21WaGF5QnphV2R1WVd3Z1puSnZiU0JoSUdkbGJuVnBibVVnWlhKeWIzSWdkMmwwYUc5MWRDQmdhVzV6ZEdGdVkyVnZabUF1SUNvdlhHNGdJSEpsWVdSdmJteDVJR2x6UW5KbFlXdFRhV2R1WVd3Z1BTQjBjblZsTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJBY0dGeVlXMGdkbUZzZFdVZ0xTQlBjSFJwYjI1aGJDQjJZV3gxWlNCbWIzSjNZWEprWldRZ1lua2dkR2hsSUVKeVpXRnJJRzV2WkdVdUlGUm9aU0JsYm1Oc2IzTnBibWRjYmlBZ0lDb2dJQ0JzYjI5d0lHRndjR1Z1WkhNZ2RHaHBjeUIwYnlCMGFHVWdZMjlzYkdWamRHVmtJSEpsYzNWc2RITWdZWE1nZEdobElHeGhjM1FnY0dGeWRHbGhiQ0J5WlhOMWJIUXVYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2loMllXeDFaVDg2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGNJa0p5WldGcklITnBaMjVoYkZ3aUxDQmNJa2RTUVZCSVgwSlNSVUZMWDFOSlIwNUJURndpTENCN0lIWmhiSFZsSUgwcE8xeHVJQ0FnSUhSb2FYTXVibUZ0WlNBOUlGd2lSM0poY0doQ2NtVmhhMU5wWjI1aGJGd2lPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
@@ -27,5 +27,6 @@ __exportStar(require("./GraphPinningError.cjs"), exports);
27
27
  __exportStar(require("./GraphPortError.cjs"), exports);
28
28
  __exportStar(require("./GraphStoreError.cjs"), exports);
29
29
  __exportStar(require("./GraphTopologyError.cjs"), exports);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2Vycm9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gseUNBQXNDO0FBQ3RDLHFDQUFrQztBQUNsQyxxQ0FBa0M7QUFDbEMseUNBQXNDO0FBQ3RDLHVDQUFvQztBQUNwQyxvQ0FBaUM7QUFDakMscUNBQWtDO0FBQ2xDLHdDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXJyb3JzXG4gKiBAc3VtbWFyeSBHcmFwaCBleGVjdXRpb24gZXJyb3IgY2xhc3Nlcy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIGFsbCBzdHJ1Y3R1cmVkIGVycm9yIHR5cGVzIHVzZWQgYnkgdGhlIGdyYXBoIGV4ZWN1dGlvbiBlbmdpbmUuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uRXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoQ3ljbGVFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhJbnB1dEVycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaExvb3BMaW1pdEVycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFBpbm5pbmdFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhQb3J0RXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoU3RvcmVFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhUb3BvbG9neUVycm9yXCI7XG4iXX0=
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDJEQUF5QztBQUN6Qyx1REFBcUM7QUFDckMsdURBQXFDO0FBQ3JDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsc0RBQW9DO0FBQ3BDLHVEQUFxQztBQUNyQywwREFBd0M7QUFDeEMsc2pDQUFzakMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2Vycm9yc1xuICogQHN1bW1hcnkgR3JhcGggZXhlY3V0aW9uIGVycm9yIGNsYXNzZXMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyBhbGwgc3RydWN0dXJlZCBlcnJvciB0eXBlcyB1c2VkIGJ5IHRoZSBncmFwaCBleGVjdXRpb24gZW5naW5lLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEN5Y2xlRXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoSW5wdXRFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhMb29wTGltaXRFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhQaW5uaW5nRXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoUG9ydEVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFN0b3JlRXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoVG9wb2xvZ3lFcnJvci5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOHVMaTl6Y21NdlozSmhjR2d2Wlc1bmFXNWxMMlZ5Y205eWN5OXBibVJsZUM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3p0SFFVbEhPMEZCUTBnc2VVTkJRWE5ETzBGQlEzUkRMSEZEUVVGclF6dEJRVU5zUXl4eFEwRkJhME03UVVGRGJFTXNlVU5CUVhORE8wRkJRM1JETEhWRFFVRnZRenRCUVVOd1F5eHZRMEZCYVVNN1FVRkRha01zY1VOQlFXdERPMEZCUTJ4RExIZERRVUZ4UXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZaM0poY0dndlpYSnliM0p6WEc0Z0tpQkFjM1Z0YldGeWVTQkhjbUZ3YUNCbGVHVmpkWFJwYjI0Z1pYSnliM0lnWTJ4aGMzTmxjeTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJTWlMxbGVIQnZjblJ6SUdGc2JDQnpkSEoxWTNSMWNtVmtJR1Z5Y205eUlIUjVjR1Z6SUhWelpXUWdZbmtnZEdobElHZHlZWEJvSUdWNFpXTjFkR2x2YmlCbGJtZHBibVV1WEc0Z0tpOWNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMGR5WVhCb1JYaGxZM1YwYVc5dVJYSnliM0pjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwZHlZWEJvUTNsamJHVkZjbkp2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZSM0poY0doSmJuQjFkRVZ5Y205eVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlIY21Gd2FFeHZiM0JNYVcxcGRFVnljbTl5WENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUhjbUZ3YUZCcGJtNXBibWRGY25KdmNsd2lPMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2UjNKaGNHaFFiM0owUlhKeWIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDBkeVlYQm9VM1J2Y21WRmNuSnZjbHdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlIzSmhjR2hVYjNCdmJHOW5lVVZ5Y205eVhDSTdYRzRpWFgwPSJdfQ==
30
+ __exportStar(require("./GraphBreakSignal.cjs"), exports);
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2Vycm9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gseUNBQXNDO0FBQ3RDLHFDQUFrQztBQUNsQyxxQ0FBa0M7QUFDbEMseUNBQXNDO0FBQ3RDLHVDQUFvQztBQUNwQyxvQ0FBaUM7QUFDakMscUNBQWtDO0FBQ2xDLHdDQUFxQztBQUNyQyxzQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2Vycm9yc1xuICogQHN1bW1hcnkgR3JhcGggZXhlY3V0aW9uIGVycm9yIGNsYXNzZXMuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyBhbGwgc3RydWN0dXJlZCBlcnJvciB0eXBlcyB1c2VkIGJ5IHRoZSBncmFwaCBleGVjdXRpb24gZW5naW5lLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkVycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEN5Y2xlRXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoSW5wdXRFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhMb29wTGltaXRFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhQaW5uaW5nRXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoUG9ydEVycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFN0b3JlRXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoVG9wb2xvZ3lFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhCcmVha1NpZ25hbFwiO1xuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDJEQUF5QztBQUN6Qyx1REFBcUM7QUFDckMsdURBQXFDO0FBQ3JDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsc0RBQW9DO0FBQ3BDLHVEQUFxQztBQUNyQywwREFBd0M7QUFDeEMsd0RBQXNDO0FBQ3RDLDBuQ0FBMG5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9lcnJvcnNcbiAqIEBzdW1tYXJ5IEdyYXBoIGV4ZWN1dGlvbiBlcnJvciBjbGFzc2VzLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgYWxsIHN0cnVjdHVyZWQgZXJyb3IgdHlwZXMgdXNlZCBieSB0aGUgZ3JhcGggZXhlY3V0aW9uIGVuZ2luZS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25FcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhDeWNsZUVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaElucHV0RXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTG9vcExpbWl0RXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoUGlubmluZ0Vycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFBvcnRFcnJvci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhTdG9yZUVycm9yLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFRvcG9sb2d5RXJyb3IuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoQnJlYWtTaWduYWwuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTh1TGk5emNtTXZaM0poY0dndlpXNW5hVzVsTDJWeWNtOXljeTlwYm1SbGVDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096dEhRVWxITzBGQlEwZ3NlVU5CUVhORE8wRkJRM1JETEhGRFFVRnJRenRCUVVOc1F5eHhRMEZCYTBNN1FVRkRiRU1zZVVOQlFYTkRPMEZCUTNSRExIVkRRVUZ2UXp0QlFVTndReXh2UTBGQmFVTTdRVUZEYWtNc2NVTkJRV3RETzBGQlEyeERMSGREUVVGeFF6dEJRVU55UXl4elEwRkJiVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwyZHlZWEJvTDJWeWNtOXljMXh1SUNvZ1FITjFiVzFoY25rZ1IzSmhjR2dnWlhobFkzVjBhVzl1SUdWeWNtOXlJR05zWVhOelpYTXVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVV0Wlhod2IzSjBjeUJoYkd3Z2MzUnlkV04wZFhKbFpDQmxjbkp2Y2lCMGVYQmxjeUIxYzJWa0lHSjVJSFJvWlNCbmNtRndhQ0JsZUdWamRYUnBiMjRnWlc1bmFXNWxMbHh1SUNvdlhHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUhjbUZ3YUVWNFpXTjFkR2x2YmtWeWNtOXlYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5SGNtRndhRU41WTJ4bFJYSnliM0pjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwZHlZWEJvU1c1d2RYUkZjbkp2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZSM0poY0doTWIyOXdUR2x0YVhSRmNuSnZjbHdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlIzSmhjR2hRYVc1dWFXNW5SWEp5YjNKY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMGR5WVhCb1VHOXlkRVZ5Y205eVhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlIY21Gd2FGTjBiM0psUlhKeWIzSmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDBkeVlYQm9WRzl3YjJ4dlozbEZjbkp2Y2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZSM0poY0doQ2NtVmhhMU5wWjI1aGJGd2lPMXh1SWwxOSJdfQ==
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BreakGraphNodeExecutor = void 0;
4
+ const GraphBreakSignal_js_1 = require("./../errors/GraphBreakSignal.cjs");
5
+ /**
6
+ * Executor for `core.flow.break` nodes.
7
+ *
8
+ * Reads the optional `value` input port and throws a {@link GraphBreakSignal}
9
+ * carrying it. The enclosing loop executor (`core.loop.foreach`,
10
+ * `core.loop.while`, `core.loop.until`) catches the signal, stops iterating,
11
+ * and returns the results collected so far (plus the carried value as the
12
+ * final partial result).
13
+ */
14
+ class BreakGraphNodeExecutor {
15
+ async execute(input, _context) {
16
+ const value = input["value"];
17
+ throw new GraphBreakSignal_js_1.GraphBreakSignal(value);
18
+ }
19
+ }
20
+ exports.BreakGraphNodeExecutor = BreakGraphNodeExecutor;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWtHcmFwaE5vZGVFeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9ncmFwaC9lbmdpbmUvZXhlY3V0aW9uL0JyZWFrR3JhcGhOb2RlRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdDQUFtQztBQUU5RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUEyQixFQUMzQixRQUErQjtRQUUvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL0JyZWFrR3JhcGhOb2RlRXhlY3V0b3JcbiAqIEBzdW1tYXJ5IEV4ZWN1dG9yIGZvciB0aGUgQnJlYWsgZmxvdy1jb250cm9sIG5vZGUuXG4gKiBAZGVzY3JpcHRpb24gVGhyb3dzIGEge0BsaW5rIEdyYXBoQnJlYWtTaWduYWx9IHRoYXQgdGhlIGVuY2xvc2luZyBsb29wXG4gKiBleGVjdXRvciBjYXRjaGVzIHRvIHRlcm1pbmF0ZSB0aGUgbG9vcCBlYXJseS4gVGhlIG9wdGlvbmFsIGB2YWx1ZWAgaW5wdXQgaXNcbiAqIGNhcnJpZWQgb24gdGhlIHNpZ25hbCBzbyB0aGUgbG9vcCBjYW4gYXBwZW5kIGl0IGFzIHRoZSBsYXN0IHBhcnRpYWwgcmVzdWx0LlxuICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoTm9kZUV4ZWN1dG9yIH0gZnJvbSBcIi4vR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBHcmFwaEJyZWFrU2lnbmFsIH0gZnJvbSBcIi4uL2Vycm9ycy9HcmFwaEJyZWFrU2lnbmFsXCI7XG5cbi8qKlxuICogRXhlY3V0b3IgZm9yIGBjb3JlLmZsb3cuYnJlYWtgIG5vZGVzLlxuICpcbiAqIFJlYWRzIHRoZSBvcHRpb25hbCBgdmFsdWVgIGlucHV0IHBvcnQgYW5kIHRocm93cyBhIHtAbGluayBHcmFwaEJyZWFrU2lnbmFsfVxuICogY2FycnlpbmcgaXQuIFRoZSBlbmNsb3NpbmcgbG9vcCBleGVjdXRvciAoYGNvcmUubG9vcC5mb3JlYWNoYCxcbiAqIGBjb3JlLmxvb3Aud2hpbGVgLCBgY29yZS5sb29wLnVudGlsYCkgY2F0Y2hlcyB0aGUgc2lnbmFsLCBzdG9wcyBpdGVyYXRpbmcsXG4gKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0cyBjb2xsZWN0ZWQgc28gZmFyIChwbHVzIHRoZSBjYXJyaWVkIHZhbHVlIGFzIHRoZVxuICogZmluYWwgcGFydGlhbCByZXN1bHQpLlxuICovXG5leHBvcnQgY2xhc3MgQnJlYWtHcmFwaE5vZGVFeGVjdXRvciBpbXBsZW1lbnRzIEdyYXBoTm9kZUV4ZWN1dG9yIHtcbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogR3JhcGhFeGVjdXRpb25WYWx1ZXMsXG4gICAgX2NvbnRleHQ6IEdyYXBoRXhlY3V0aW9uQ29udGV4dFxuICApOiBQcm9taXNlPEdyYXBoRXhlY3V0aW9uVmFsdWVzPiB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dFtcInZhbHVlXCJdO1xuICAgIHRocm93IG5ldyBHcmFwaEJyZWFrU2lnbmFsKHZhbHVlKTtcbiAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWtHcmFwaE5vZGVFeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkJyZWFrR3JhcGhOb2RlRXhlY3V0b3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW1FO0FBQ25FOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLHNDQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUxELHdEQUtDO0FBQ0Qsc3hFQUFzeEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmFwaEJyZWFrU2lnbmFsIH0gZnJvbSBcIi4vLi4vZXJyb3JzL0dyYXBoQnJlYWtTaWduYWwuanNcIjtcbi8qKlxuICogRXhlY3V0b3IgZm9yIGBjb3JlLmZsb3cuYnJlYWtgIG5vZGVzLlxuICpcbiAqIFJlYWRzIHRoZSBvcHRpb25hbCBgdmFsdWVgIGlucHV0IHBvcnQgYW5kIHRocm93cyBhIHtAbGluayBHcmFwaEJyZWFrU2lnbmFsfVxuICogY2FycnlpbmcgaXQuIFRoZSBlbmNsb3NpbmcgbG9vcCBleGVjdXRvciAoYGNvcmUubG9vcC5mb3JlYWNoYCxcbiAqIGBjb3JlLmxvb3Aud2hpbGVgLCBgY29yZS5sb29wLnVudGlsYCkgY2F0Y2hlcyB0aGUgc2lnbmFsLCBzdG9wcyBpdGVyYXRpbmcsXG4gKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0cyBjb2xsZWN0ZWQgc28gZmFyIChwbHVzIHRoZSBjYXJyaWVkIHZhbHVlIGFzIHRoZVxuICogZmluYWwgcGFydGlhbCByZXN1bHQpLlxuICovXG5leHBvcnQgY2xhc3MgQnJlYWtHcmFwaE5vZGVFeGVjdXRvciB7XG4gICAgYXN5bmMgZXhlY3V0ZShpbnB1dCwgX2NvbnRleHQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dFtcInZhbHVlXCJdO1xuICAgICAgICB0aHJvdyBuZXcgR3JhcGhCcmVha1NpZ25hbCh2YWx1ZSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUW5KbFlXdEhjbUZ3YUU1dlpHVkZlR1ZqZFhSdmNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUx5NHVMM055WXk5bmNtRndhQzlsYm1kcGJtVXZaWGhsWTNWMGFXOXVMMEp5WldGclIzSmhjR2hPYjJSbFJYaGxZM1YwYjNJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJWVUVzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxIZERRVUZ0UXp0QlFVVTVSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRTFCUVUwc1QwRkJUeXh6UWtGQmMwSTdTVUZEYWtNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRFdDeExRVUV5UWl4RlFVTXpRaXhSUVVFclFqdFJRVVV2UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETjBJc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZaM0poY0dndlpYaGxZM1YwYVc5dUwwSnlaV0ZyUjNKaGNHaE9iMlJsUlhobFkzVjBiM0pjYmlBcUlFQnpkVzF0WVhKNUlFVjRaV04xZEc5eUlHWnZjaUIwYUdVZ1FuSmxZV3NnWm14dmR5MWpiMjUwY205c0lHNXZaR1V1WEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVkdoeWIzZHpJR0VnZTBCc2FXNXJJRWR5WVhCb1FuSmxZV3RUYVdkdVlXeDlJSFJvWVhRZ2RHaGxJR1Z1WTJ4dmMybHVaeUJzYjI5d1hHNGdLaUJsZUdWamRYUnZjaUJqWVhSamFHVnpJSFJ2SUhSbGNtMXBibUYwWlNCMGFHVWdiRzl2Y0NCbFlYSnNlUzRnVkdobElHOXdkR2x2Ym1Gc0lHQjJZV3gxWldBZ2FXNXdkWFFnYVhOY2JpQXFJR05oY25KcFpXUWdiMjRnZEdobElITnBaMjVoYkNCemJ5QjBhR1VnYkc5dmNDQmpZVzRnWVhCd1pXNWtJR2wwSUdGeklIUm9aU0JzWVhOMElIQmhjblJwWVd3Z2NtVnpkV3gwTGx4dUlDb3ZYRzVwYlhCdmNuUWdkSGx3WlNCN0lFZHlZWEJvVG05a1pVVjRaV04xZEc5eUlIMGdabkp2YlNCY0lpNHZSM0poY0doT2IyUmxSWGhsWTNWMGIzSmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dSM0poY0doRmVHVmpkWFJwYjI1RGIyNTBaWGgwSUgwZ1puSnZiU0JjSWk0dlIzSmhjR2hGZUdWamRYUnBiMjVEYjI1MFpYaDBYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRWR5WVhCb1JYaGxZM1YwYVc5dVZtRnNkV1Z6SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QkhjbUZ3YUVKeVpXRnJVMmxuYm1Gc0lIMGdabkp2YlNCY0lpNHVMMlZ5Y205eWN5OUhjbUZ3YUVKeVpXRnJVMmxuYm1Gc1hDSTdYRzVjYmk4cUtseHVJQ29nUlhobFkzVjBiM0lnWm05eUlHQmpiM0psTG1ac2IzY3VZbkpsWVd0Z0lHNXZaR1Z6TGx4dUlDcGNiaUFxSUZKbFlXUnpJSFJvWlNCdmNIUnBiMjVoYkNCZ2RtRnNkV1ZnSUdsdWNIVjBJSEJ2Y25RZ1lXNWtJSFJvY205M2N5QmhJSHRBYkdsdWF5QkhjbUZ3YUVKeVpXRnJVMmxuYm1Gc2ZWeHVJQ29nWTJGeWNubHBibWNnYVhRdUlGUm9aU0JsYm1Oc2IzTnBibWNnYkc5dmNDQmxlR1ZqZFhSdmNpQW9ZR052Y21VdWJHOXZjQzVtYjNKbFlXTm9ZQ3hjYmlBcUlHQmpiM0psTG14dmIzQXVkMmhwYkdWZ0xDQmdZMjl5WlM1c2IyOXdMblZ1ZEdsc1lDa2dZMkYwWTJobGN5QjBhR1VnYzJsbmJtRnNMQ0J6ZEc5d2N5QnBkR1Z5WVhScGJtY3NYRzRnS2lCaGJtUWdjbVYwZFhKdWN5QjBhR1VnY21WemRXeDBjeUJqYjJ4c1pXTjBaV1FnYzI4Z1ptRnlJQ2h3YkhWeklIUm9aU0JqWVhKeWFXVmtJSFpoYkhWbElHRnpJSFJvWlZ4dUlDb2dabWx1WVd3Z2NHRnlkR2xoYkNCeVpYTjFiSFFwTGx4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1FuSmxZV3RIY21Gd2FFNXZaR1ZGZUdWamRYUnZjaUJwYlhCc1pXMWxiblJ6SUVkeVlYQm9UbTlrWlVWNFpXTjFkRzl5SUh0Y2JpQWdZWE41Ym1NZ1pYaGxZM1YwWlNoY2JpQWdJQ0JwYm5CMWREb2dSM0poY0doRmVHVmpkWFJwYjI1V1lXeDFaWE1zWEc0Z0lDQWdYMk52Ym5SbGVIUTZJRWR5WVhCb1JYaGxZM1YwYVc5dVEyOXVkR1Y0ZEZ4dUlDQXBPaUJRY205dGFYTmxQRWR5WVhCb1JYaGxZM1YwYVc5dVZtRnNkV1Z6UGlCN1hHNGdJQ0FnWTI5dWMzUWdkbUZzZFdVZ1BTQnBibkIxZEZ0Y0luWmhiSFZsWENKZE8xeHVJQ0FnSUhSb2NtOTNJRzVsZHlCSGNtRndhRUp5WldGclUybG5ibUZzS0haaGJIVmxLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==