@stemy/backend 3.5.4 → 3.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,6 +35,7 @@ import { MongoConnector } from "./services/mongo-connector";
35
35
  import { OpenApi } from "./services/open-api";
36
36
  import { Progresses } from "./services/progresses";
37
37
  import { TemplateRenderer } from "./services/template-renderer";
38
+ import { TokenGenerator } from "./services/token-generator";
38
39
  import { TranslationProvider } from "./services/translation-provider";
39
40
  import { Translator } from "./services/translator";
40
41
  import { UserManager } from "./services/user-manager";
@@ -76,6 +77,7 @@ export { MongoConnector } from "./services/mongo-connector";
76
77
  export { OpenApi } from "./services/open-api";
77
78
  export { Progresses } from "./services/progresses";
78
79
  export { TemplateRenderer } from "./services/template-renderer";
80
+ export { TokenGenerator } from "./services/token-generator";
79
81
  export { TranslationProvider } from "./services/translation-provider";
80
82
  export { Translator } from "./services/translator";
81
83
  export { UserManager } from "./services/user-manager";
@@ -173,6 +175,7 @@ export function createServices() {
173
175
  OpenApi,
174
176
  Progresses,
175
177
  TemplateRenderer,
178
+ TokenGenerator,
176
179
  TranslationProvider,
177
180
  Translator,
178
181
  UserManager
@@ -351,4 +354,4 @@ export function setupBackend(config, providers, parent) {
351
354
  return diContainer;
352
355
  });
353
356
  }
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBUyxTQUFTLEVBQUUsWUFBWSxJQUFJLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0csT0FBTyxFQUFDLFlBQVksSUFBSSxrQkFBa0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RixPQUFPLEVBQ0gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsV0FBVyxFQU1YLEdBQUcsRUFBRSxrQkFBa0IsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFFVCxhQUFhLEVBRWhCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFD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QUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7am9pbn0gZnJvbSBcInBhdGhcIjtcclxuaW1wb3J0IHtqc29ufSBmcm9tIFwiYm9keS1wYXJzZXJcIjtcclxuaW1wb3J0IHt2ZXJpZnl9IGZyb20gXCJqc29ud2VidG9rZW5cIjtcclxuaW1wb3J0IHtjb250YWluZXIsIERlcGVuZGVuY3lDb250YWluZXJ9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0FjdGlvbiwgSHR0cEVycm9yLCB1c2VDb250YWluZXIgYXMgdXNlUm91dGluZ0NvbnRhaW5lciwgdXNlRXhwcmVzc1NlcnZlcn0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHt1c2VDb250YWluZXIgYXMgdXNlU29ja2V0Q29udGFpbmVyLCB1c2VTb2NrZXRTZXJ2ZXJ9IGZyb20gXCJzb2NrZXQtY29udHJvbGxlcnNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgICBESV9DT05UQUlORVIsXHJcbiAgICBFWFBSRVNTLFxyXG4gICAgRklYVFVSRSxcclxuICAgIEhUVFBfU0VSVkVSLFxyXG4gICAgSUJhY2tlbmRDb25maWcsXHJcbiAgICBJRGVwZW5kZW5jeUNvbnRhaW5lcixcclxuICAgIElQYWdpbmF0aW9uUGFyYW1zLFxyXG4gICAgSVJlcXVlc3QsXHJcbiAgICBJVXNlcixcclxuICAgIEpPQiwgT1BFTkFQSV9WQUxJREFUSU9OLFxyXG4gICAgUGFyYW1ldGVyLFxyXG4gICAgUEFSQU1FVEVSLFxyXG4gICAgUHJvdmlkZXIsXHJcbiAgICBTT0NLRVRfU0VSVkVSLFxyXG4gICAgVHlwZVxyXG59IGZyb20gXCIuL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuaW1wb3J0IHtBc3NldFByb2Nlc3Nvcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcHJvY2Vzc29yXCI7XHJcbmltcG9ydCB7QXNzZXRSZXNvbHZlcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHtBc3NldHN9IGZyb20gXCIuL3NlcnZpY2VzL2Fzc2V0c1wiO1xyXG5pbXBvcnQge0JhY2tlbmRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvYmFja2VuZC1wcm92aWRlclwiO1xyXG5pbXBvcnQge0NhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZVwiO1xyXG5pbXBvcnQge0NhY2hlUHJvY2Vzc29yfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZS1wcm9jZXNzb3JcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7RW5kcG9pbnRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvZW5kcG9pbnQtcHJvdmlkZXJcIjtcclxuaW1wb3J0IHtGaXh0dXJlc30gZnJvbSBcIi4vc2VydmljZXMvZml4dHVyZXNcIjtcclxuaW1wb3J0IHtHYWxsZXJ5fSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5XCI7XHJcbmltcG9ydCB7R2FsbGVyeUNhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5LWNhY2hlXCI7XHJcbmltcG9ydCB7SWRHZW5lcmF0b3J9IGZyb20gXCIuL3NlcnZpY2VzL2lkLWdlbmVyYXRvclwiO1xyXG5pbXBvcnQge0pvYk1hbmFnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL2pvYi1tYW5hZ2VyXCI7XHJcbmltcG9ydCB7TGF6eUFzc2V0c30gZnJvbSBcIi4vc2VydmljZXMvbGF6eS1hc3NldHNcIjtcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL2xvZ2dlclwiO1xyXG5pbXBvcnQge01haWxTZW5kZXJ9IGZyb20gXCIuL3NlcnZpY2VzL21haWwtc2VuZGVyXCI7XHJcbmltcG9ydCB7TWVtb3J5Q2FjaGV9IGZyb20gXCIuL3NlcnZpY2VzL21lbW9yeS1jYWNoZVwiO1xyXG5pbXBvcnQge01vbmdvQ29ubmVjdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy9tb25nby1jb25uZWN0b3JcIjtcclxuaW1wb3J0IHtPcGVuQXBpfSBmcm9tIFwiLi9zZXJ2aWNlcy9vcGVuLWFwaVwiO1xyXG5pbXBvcnQge1Byb2dyZXNzZXN9IGZyb20gXCIuL3NlcnZpY2VzL3Byb2dyZXNzZXNcIjtcclxuaW1wb3J0IHtUZW1wbGF0ZVJlbmRlcmVyfSBmcm9tIFwiLi9zZXJ2aWNlcy90ZW1wbGF0ZS1yZW5kZXJlclwiO1xyXG5pbXBvcnQge1RyYW5zbGF0aW9uUHJvdmlkZXJ9IGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXByb3ZpZGVyXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRvclwiO1xyXG5pbXBvcnQge1VzZXJNYW5hZ2VyfSBmcm9tIFwiLi9zZXJ2aWNlcy91c2VyLW1hbmFnZXJcIjtcclxuXHJcbmltcG9ydCB7QXNzZXRzQ29udHJvbGxlcn0gZnJvbSBcIi4vcmVzdC1jb250cm9sbGVycy9hc3NldHMuY29udHJvbGxlclwiO1xyXG5pbXBvcnQge0F1dGhDb250cm9sbGVyfSBmcm9tIFwiLi9yZXN0LWNvbnRyb2xsZXJzL2F1dGguY29udHJvbGxlclwiO1xyXG5pbXBvcnQge0dhbGxlcnlDb250cm9sbGVyfSBmcm9tIFwiLi9yZXN0LWNvbnRyb2xsZXJzL2dhbGxlcnkuY29udHJvbGxlclwiO1xyXG5pbXBvcnQge1Byb2dyZXNzZXNDb250cm9sbGVyfSBmcm9tIFwiLi9yZXN0LWNvbnRyb2xsZXJzL3Byb2dyZXNzZXMuY29udHJvbGxlclwiO1xyXG5cclxuaW1wb3J0IHtFcnJvckhhbmRsZXJNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL2Vycm9yLWhhbmRsZXIubWlkZGxld2FyZVwiO1xyXG5pbXBvcnQge0NvbnRhaW5lck1pZGRsZXdhcmV9IGZyb20gXCIuL3Jlc3QtbWlkZGxld2FyZXMvY29udGFpbmVyLm1pZGRsZXdhcmVcIjtcclxuaW1wb3J0IHtMYW5ndWFnZU1pZGRsZXdhcmV9IGZyb20gXCIuL3Jlc3QtbWlkZGxld2FyZXMvbGFuZ3VhZ2UubWlkZGxld2FyZVwiO1xyXG5pbXBvcnQge1JlcXVlc3RFbmRlZE1pZGRsZXdhcmV9IGZyb20gXCIuL3Jlc3QtbWlkZGxld2FyZXMvcmVxdWVzdC1lbmRlZC5taWRkbGV3YXJlXCI7XHJcbmltcG9ydCB7UmVxdWVzdFN0YXJ0ZWRNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL3JlcXVlc3Qtc3RhcnRlZC5taWRkbGV3YXJlXCI7XHJcblxyXG5pbXBvcnQge1Byb2dyZXNzQ29udHJvbGxlcn0gZnJvbSBcIi4vc29ja2V0LWNvbnRyb2xsZXJzL3Byb2dyZXNzLmNvbnRyb2xsZXJcIjtcclxuXHJcbmltcG9ydCB7Q29tcHJlc3Npb25NaWRkbGV3YXJlfSBmcm9tIFwiLi9zb2NrZXQtbWlkZGxld2FyZXMvY29tcHJlc3Npb24ubWlkZGxld2FyZVwiO1xyXG5cclxuaW1wb3J0IHtEaUNvbnRhaW5lcn0gZnJvbSBcIi4vdXRpbGl0aWVzL2RpLWNvbnRhaW5lclwiO1xyXG5pbXBvcnQge0VtcHR5Sm9ifSBmcm9tIFwiLi91dGlsaXRpZXMvZW1wdHktam9iXCI7XHJcbmltcG9ydCB7ZGlDb250YWluZXJzLCBpc0Z1bmN0aW9uLCBpc1N0cmluZywgaXNUeXBlLCB2YWx1ZVRvUHJvbWlzZX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuaW1wb3J0IHtzZXR1cFN0YXRpY30gZnJvbSBcIi4vc3RhdGljXCI7XHJcblxyXG5leHBvcnQge1xyXG4gICAgRmlsdGVyUHJlZGljYXRlLFxyXG4gICAgaXNOdWxsT3JVbmRlZmluZWQsXHJcbiAgICBpc0RlZmluZWQsXHJcbiAgICBnZXRUeXBlLFxyXG4gICAgaXNPYmplY3QsXHJcbiAgICBpc0FycmF5LFxyXG4gICAgaXNCb29sZWFuLFxyXG4gICAgaXNEYXRlLFxyXG4gICAgaXNQcmltaXRpdmUsXHJcbiAgICBpc1N0cmluZyxcclxuICAgIGlzRnVuY3Rpb24sXHJcbiAgICBpc0NvbnN0cnVjdG9yLFxyXG4gICAgaXNUeXBlLFxyXG4gICAgaXNJbnRlcmZhY2UsXHJcbiAgICB1Y0ZpcnN0LFxyXG4gICAgbGNGaXJzdCxcclxuICAgIGlzT2JqZWN0SWQsXHJcbiAgICBmaXJzdEl0ZW0sXHJcbiAgICBsYXN0SXRlbSxcclxuICAgIHJlZ3JvdXAsXHJcbiAgICB1bmlxdWVJdGVtcyxcclxuICAgIGdldFZhbHVlLFxyXG4gICAgZ3JvdXBCeSxcclxuICAgIGNvbnZlcnRWYWx1ZSxcclxuICAgIHRvSW1hZ2UsXHJcbiAgICBidWZmZXJUb1N0cmVhbSxcclxuICAgIHN0cmVhbVRvQnVmZmVyLFxyXG4gICAgY29weVN0cmVhbSxcclxuICAgIG1rZGlyUmVjdXJzaXZlLFxyXG4gICAgZGVsZXRlRmlsZSxcclxuICAgIHJlYWRGaWxlLFxyXG4gICAgcmVhZEFuZERlbGV0ZUZpbGUsXHJcbiAgICB3cml0ZUZpbGUsXHJcbiAgICB2YWx1ZVRvUHJvbWlzZSxcclxuICAgIHByb21pc2VUaW1lb3V0LFxyXG4gICAgZ2V0Q29uc3RydWN0b3JOYW1lLFxyXG4gICAgZ2V0RnVuY3Rpb25QYXJhbXMsXHJcbiAgICBnZXRGaWxlTmFtZSxcclxuICAgIGdldEV4dGVuc2lvbixcclxuICAgIGNyZWF0ZUlkU3RyaW5nLFxyXG4gICAgaWRUb1N0cmluZyxcclxuICAgIGNyZWF0ZVRyYW5zZm9ybWVyLFxyXG4gICAgYnJvYWRjYXN0LFxyXG4gICAgcmFuZCxcclxuICAgIHJhbmRvbSxcclxuICAgIG11bHRpU3Vic2NyaXB0aW9uLFxyXG4gICAgb2JzZXJ2YWJsZUZyb21GdW5jdGlvbixcclxuICAgIHBhZExlZnQsXHJcbiAgICBwYWRSaWdodCxcclxuICAgIGRlbGV0ZUZyb21CdWNrZXQsXHJcbiAgICBmaWx0ZXIsXHJcbiAgICBjb3B5LFxyXG4gICAgYXNzaWduLFxyXG4gICAgbWQ1LFxyXG4gICAgcnVuQ29tbWFuZCxcclxuICAgIENvbnNvbGVDb2xvcixcclxuICAgIElKc29uQ29sb3JzLFxyXG4gICAgY29sb3JpemUsXHJcbiAgICBqc29uSGlnaGxpZ2h0LFxyXG4gICAgcmVwbGFjZVNwZWNpYWxDaGFycyxcclxuICAgIGZsYXR0ZW5cclxufSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IHtJc0ZpbGUsIElzT2JqZWN0SWR9IGZyb20gXCIuL3ZhbGlkYXRvcnNcIjtcclxuXHJcbmV4cG9ydCB7XHJcbiAgICBGSVhUVVJFLFxyXG4gICAgSk9CLFxyXG4gICAgRVhQUkVTUyxcclxuICAgIEhUVFBfU0VSVkVSLFxyXG4gICAgU09DS0VUX1NFUlZFUixcclxuICAgIFBBUkFNRVRFUixcclxuICAgIERJX0NPTlRBSU5FUixcclxuICAgIE9QRU5BUElfVkFMSURBVElPTixcclxuICAgIFR5cGUsXHJcbiAgICBGYWN0b3J5UHJvdmlkZXIsXHJcbiAgICBJRGVwZW5kZW5jeUNvbnRhaW5lcixcclxuICAgIENsYXNzQmFzZWRQcm92aWRlcixcclxuICAgIFZhbHVlQmFzZWRQcm92aWRlcixcclxuICAgIEZhY3RvcnlCYXNlZFByb3ZpZGVyLFxyXG4gICAgVG9rZW5CYXNlZFByb3ZpZGVyLFxyXG4gICAgU3lyaW5nZVByb3ZpZGVyLFxyXG4gICAgUHJvdmlkZXIsXHJcbiAgICBDb25zdHJ1Y3RvcixcclxuICAgIEluZmVyR2VuZXJpYyxcclxuICAgIFBpY2tNYXRjaGluZyxcclxuICAgIE9taXRGaXJzdEFyZyxcclxuICAgIElNYXRjaEZpZWxkLFxyXG4gICAgSVByb2plY3RPcHRpb25zLFxyXG4gICAgSVVud2luZE9wdGlvbnMsXHJcbiAgICBJRml4dHVyZSxcclxuICAgIFNjaGVtYUNvbnZlcnRlcixcclxuICAgIE9wZW5BcGlWYWxpZGF0aW9uLFxyXG4gICAgUGFyYW1SZXNvbHZlcixcclxuICAgIFBhcmFtZXRlcixcclxuICAgIFNvY2tldFBhcmFtLFxyXG4gICAgU29ja2V0UGFyYW1zLFxyXG4gICAgSVNvY2tldE1lc3NhZ2UsXHJcbiAgICBJTWVzc2FnZUJyaWRnZSxcclxuICAgIElKb2IsXHJcbiAgICBJSm9iVGFzayxcclxuICAgIEpvYlBhcmFtcyxcclxuICAgIEpvYlNjaGVkdWxlUmFuZ2UsXHJcbiAgICBKb2JTY2hlZHVsZVRpbWUsXHJcbiAgICBJUHJvZ3Jlc3MsXHJcbiAgICBJQXNzZXRDcm9wSW5mbyxcclxuICAgIElBc3NldE1ldGEsXHJcbiAgICBJQXNzZXRJbWFnZVBhcmFtcyxcclxuICAgIElBc3NldCxcclxuICAgIElMYXp5QXNzZXQsXHJcbiAgICBJVXNlcixcclxuICAgIElDbGllbnRTb2NrZXQsXHJcbiAgICBJUmVxdWVzdEJhc2UsXHJcbiAgICBJUmVxdWVzdCxcclxuICAgIElHYWxsZXJ5SW1hZ2UsXHJcbiAgICBJR2FsbGVyeVNpemUsXHJcbiAgICBJR2FsbGVyeUltYWdlSGFuZGxlcixcclxuICAgIElUcmFuc2xhdGlvbnMsXHJcbiAgICBJUGFnaW5hdGlvbk1ldGEsXHJcbiAgICBJUGFnaW5hdGlvbkJhc2UsXHJcbiAgICBJUGFnaW5hdGlvbixcclxuICAgIElQYWdpbmF0aW9uUGFyYW1zLFxyXG4gICAgRm9udEZvcm1hdCxcclxuICAgIElGaWxlVHlwZSxcclxuICAgIElCYWNrZW5kQ29uZmlnXHJcbn0gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5leHBvcnQge0Fzc2V0UHJvY2Vzc29yfSBmcm9tIFwiLi9zZXJ2aWNlcy9hc3NldC1wcm9jZXNzb3JcIjtcclxuZXhwb3J0IHtBc3NldFJlc29sdmVyfSBmcm9tIFwiLi9zZXJ2aWNlcy9hc3NldC1yZXNvbHZlclwiO1xyXG5leHBvcnQge0Fzc2V0c30gZnJvbSBcIi4vc2VydmljZXMvYXNzZXRzXCI7XHJcbmV4cG9ydCB7QmFja2VuZFByb3ZpZGVyfSBmcm9tIFwiLi9zZXJ2aWNlcy9iYWNrZW5kLXByb3ZpZGVyXCI7XHJcbmV4cG9ydCB7Q2FjaGV9IGZyb20gXCIuL3NlcnZpY2VzL2NhY2hlXCI7XHJcbmV4cG9ydCB7Q2FjaGVQcm9jZXNzb3J9IGZyb20gXCIuL3NlcnZpY2VzL2NhY2hlLXByb2Nlc3NvclwiO1xyXG5leHBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb25cIjtcclxuZXhwb3J0IHtFbmRwb2ludFByb3ZpZGVyfSBmcm9tIFwiLi9zZXJ2aWNlcy9lbmRwb2ludC1wcm92aWRlclwiO1xyXG5leHBvcnQge0ZpeHR1cmVzfSBmcm9tIFwiLi9zZXJ2aWNlcy9maXh0dXJlc1wiO1xyXG5leHBvcnQge0dhbGxlcnl9IGZyb20gXCIuL3NlcnZpY2VzL2dhbGxlcnlcIjtcclxuZXhwb3J0IHtHYWxsZXJ5Q2FjaGV9IGZyb20gXCIuL3NlcnZpY2VzL2dhbGxlcnktY2FjaGVcIjtcclxuZXhwb3J0IHtJZEdlbmVyYXRvcn0gZnJvbSBcIi4vc2VydmljZXMvaWQtZ2VuZXJhdG9yXCI7XHJcbmV4cG9ydCB7Sm9iTWFuYWdlcn0gZnJvbSBcIi4vc2VydmljZXMvam9iLW1hbmFnZXJcIjtcclxuZXhwb3J0IHtMYXp5QXNzZXRzfSBmcm9tIFwiLi9zZXJ2aWNlcy9sYXp5LWFzc2V0c1wiO1xyXG5leHBvcnQge01haWxTZW5kZXJ9IGZyb20gXCIuL3NlcnZpY2VzL21haWwtc2VuZGVyXCI7XHJcbmV4cG9ydCB7TWVtb3J5Q2FjaGV9IGZyb20gXCIuL3NlcnZpY2VzL21lbW9yeS1jYWNoZVwiO1xyXG5leHBvcnQge01vbmdvQ29ubmVjdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy9tb25nby1jb25uZWN0b3JcIjtcclxuZXhwb3J0IHtPcGVuQXBpfSBmcm9tIFwiLi9zZXJ2aWNlcy9vcGVuLWFwaVwiO1xyXG5leHBvcnQge1Byb2dyZXNzZXN9IGZyb20gXCIuL3NlcnZpY2VzL3Byb2dyZXNzZXNcIjtcclxuZXhwb3J0IHtUZW1wbGF0ZVJlbmRlcmVyfSBmcm9tIFwiLi9zZXJ2aWNlcy90ZW1wbGF0ZS1yZW5kZXJlclwiO1xyXG5leHBvcnQge1RyYW5zbGF0aW9uUHJvdmlkZXJ9IGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXByb3ZpZGVyXCI7XHJcbmV4cG9ydCB7VHJhbnNsYXRvcn0gZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRvclwiO1xyXG5leHBvcnQge1VzZXJNYW5hZ2VyfSBmcm9tIFwiLi9zZXJ2aWNlcy91c2VyLW1hbmFnZXJcIjtcclxuXHJcbmV4cG9ydCB7QXNzZXRJbWFnZVBhcmFtc30gZnJvbSBcIi4vcmVxdWVzdHMvYXNzZXQtaW1hZ2UtcGFyYW1zXCI7XHJcblxyXG5leHBvcnQge0F1dGhDb250cm9sbGVyfSBmcm9tIFwiLi9yZXN0LWNvbnRyb2xsZXJzL2F1dGguY29udHJvbGxlclwiO1xyXG5leHBvcnQge0dhbGxlcnlDb250cm9sbGVyfSBmcm9tIFwiLi9yZXN0LWNvbnRyb2xsZXJzL2dhbGxlcnkuY29udHJvbGxlclwiO1xyXG5cclxuZXhwb3J0IHtFcnJvckhhbmRsZXJNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL2Vycm9yLWhhbmRsZXIubWlkZGxld2FyZVwiO1xyXG5leHBvcnQge0xhbmd1YWdlTWlkZGxld2FyZX0gZnJvbSBcIi4vcmVzdC1taWRkbGV3YXJlcy9sYW5ndWFnZS5taWRkbGV3YXJlXCI7XHJcblxyXG5leHBvcnQge0Jhc2VEb2MsIERvY3VtZW50QXJyYXksIFByaW1pdGl2ZUFycmF5fSBmcm9tIFwiLi91dGlsaXRpZXMvYmFzZS1kb2NcIjtcclxuZXhwb3J0IHtJc0RvY3VtZW50ZWQsIEpzb25SZXNwb25zZSwgUmVzcG9uc2VUeXBlfSBmcm9tIFwiLi91dGlsaXRpZXMvZGVjb3JhdG9yc1wiO1xyXG5leHBvcnQge0xhenlBc3NldEdlbmVyYXRvcn0gZnJvbSBcIi4vdXRpbGl0aWVzL2xhenktYXNzZXQtZ2VuZXJhdG9yXCI7XHJcbmV4cG9ydCB7XHJcbiAgICBSZXNvbHZlRW50aXR5LFxyXG4gICAgcGFnaW5hdGVBZ2dyZWdhdGlvbnMsXHJcbiAgICBoeWRyYXRlUG9wdWxhdGVkLFxyXG4gICAgdW53aW5kU3RhZ2UsXHJcbiAgICBwcm9qZWN0U3RhZ2UsXHJcbiAgICBtYXRjaEZpZWxkU3RhZ2VzLFxyXG4gICAgbWF0Y2hGaWVsZCxcclxuICAgIG1hdGNoU3RhZ2UsXHJcbiAgICBsZXRzTG9va3VwU3RhZ2UsXHJcbiAgICBsb29rdXBTdGFnZXMsXHJcbiAgICBwYWdpbmF0ZSxcclxuICAgIGluamVjdFNlcnZpY2VzLFxyXG4gICAgc2VydmljZVxyXG59IGZyb20gXCIuL3V0aWxpdGllcy9tb25nb29zZVwiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVVc2VyKHJlcTogSVJlcXVlc3QpOiBQcm9taXNlPElVc2VyPiB7XHJcbiAgICBpZiAocmVxLnVzZXIpIHJldHVybiByZXEudXNlcjtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IHJlcS5jb250YWluZXI7XHJcbiAgICBjb25zdCBhdXRoID0gcmVxLmhlYWRlcihcIkF1dGhvcml6YXRpb25cIikgfHwgXCJcIjtcclxuICAgIGxldCBwYXlsb2FkID0gbnVsbDtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0gY29udGFpbmVyLnJlc29sdmUoQ29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgcGF5bG9hZCA9IHZlcmlmeShhdXRoLnNwbGl0KFwiIFwiKVsxXSwgY29uZmlnLnJlc29sdmUoXCJqd3RTZWNyZXRcIikpIGFzIGFueTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwMSwgYEF1dGhlbnRpY2F0aW9uIGZhaWxlZC4gKCR7ZS5tZXNzYWdlfSlgKTtcclxuICAgIH1cclxuICAgIGlmICghcGF5bG9hZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoNDAxLCBgQXV0aGVudGljYXRpb24gZmFpbGVkLiAoTWF5YmUgaW52YWxpZCB0b2tlbilgKTtcclxuICAgIH1cclxuICAgIHJlcS51c2VyID0gYXdhaXQgY29udGFpbmVyLnJlc29sdmUoVXNlck1hbmFnZXIpLmdldEJ5SWQocGF5bG9hZC5pZCk7XHJcbiAgICByZXR1cm4gcmVxLnVzZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXJ2aWNlcygpOiBJRGVwZW5kZW5jeUNvbnRhaW5lciB7XHJcbiAgICAvLyBMaXN0IG9mIHBhcmFtZXRlcnNcclxuICAgIGNvbnN0IHBhcmFtcyA9IFtcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwidGVtcGxhdGVzRGlyXCIsIGpvaW4oX19kaXJuYW1lLCBcInRlbXBsYXRlc1wiKSksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImdhbGxlcnlEaXJcIiwgam9pbihfX2Rpcm5hbWUsIFwiZ2FsbGVyeVwiKSksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImNhY2hlRGlyXCIsIGpvaW4oX19kaXJuYW1lLCBcImNhY2hlXCIpKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiZGVmYXVsdExhbmd1YWdlXCIsIFwiZW5cIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcInNtdHBIb3N0XCIsIFwic210cC5zZW5kZ3JpZC5uZXRcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcInNtdHBQb3J0XCIsIDU4NyksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcInNtdHBVc2VyXCIsIFwiYXBpa2V5XCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJzbXRwUGFzc3dvcmRcIiwgXCJcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm1haWxTZW5kZXJBZGRyZXNzXCIsIFwiaW5mb0BzdGVteS5odVwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwidHJhbnNsYXRpb25zVGVtcGxhdGVcIiwgXCJodHRwczovL3RyYW5zbGF0aW9uLnNlcnZpY2UvW2xhbmddXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJqd3RTZWNyZXRcIiwgXCJleUowZVhBaU9pSktWMVFpTENKaGJHY2lPaUpTVXpJMU5pSjlcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm1vbmdvVXJpXCIsIFwiXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJtb25nb0RiXCIsIFwibm9kZS1iYWNrZW5kXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJtb25nb1VzZXJcIiwgbnVsbCksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm1vbmdvUGFzc3dvcmRcIiwgbnVsbCksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm5vZGVFbnZcIiwgXCJwcm9kdWN0aW9uXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJhcHBQb3J0XCIsIDgwKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiem1xUG9ydFwiLCAzMDAwKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiem1xQmFja1BvcnRcIiwgMzEwMCksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcInptcVJlbW90ZUhvc3RcIiwgXCJ0Y3A6Ly8xMjcuMC4wLjFcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImlzV29ya2VyXCIsIGZhbHNlKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibWFpbkVuZHBvaW50XCIsIFwiXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJpZENoYXJzXCIsIFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJpZFNlcGFyYXRvclwiLCBcIi1cIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImlkUHJlZml4XCIsIFwiSUQtXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJpZFBhcnRzXCIsIFs0LCA0XSksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImpzb25MaW1pdFwiLCBcIjI1MG1iXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJqb2JUaW1lb3V0XCIsIDUgKiA2MCAqIDEwMDApLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJjYWNoZUNvbGxlY3Rpb25cIiwgXCJjYWNoZVwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibG9nVGFnc1wiLCBbXSksXHJcbiAgICBdO1xyXG5cclxuICAgIC8vIENvbnZlcnQgcGFyYW1ldGVycyB0byBwcm92aWRlcnNcclxuICAgIGNvbnN0IHBhcmFtUHJvdmlkZXJzID0gcGFyYW1zLm1hcChwID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBQQVJBTUVURVIsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBwXHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gTGlzdCBvZiBzZXJ2aWNlc1xyXG4gICAgY29uc3Qgc2VydmljZXMgPSBbXHJcbiAgICAgICAgQXNzZXRQcm9jZXNzb3IsXHJcbiAgICAgICAgQXNzZXRSZXNvbHZlcixcclxuICAgICAgICBBc3NldHMsXHJcbiAgICAgICAgQmFja2VuZFByb3ZpZGVyLFxyXG4gICAgICAgIENhY2hlLFxyXG4gICAgICAgIENhY2hlUHJvY2Vzc29yLFxyXG4gICAgICAgIENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgRW5kcG9pbnRQcm92aWRlcixcclxuICAgICAgICBGaXh0dXJlcyxcclxuICAgICAgICBHYWxsZXJ5LFxyXG4gICAgICAgIEdhbGxlcnlDYWNoZSxcclxuICAgICAgICBJZEdlbmVyYXRvcixcclxuICAgICAgICBKb2JNYW5hZ2VyLFxyXG4gICAgICAgIExhenlBc3NldHMsXHJcbiAgICAgICAgTG9nZ2VyLFxyXG4gICAgICAgIE1haWxTZW5kZXIsXHJcbiAgICAgICAgTWVtb3J5Q2FjaGUsXHJcbiAgICAgICAgTW9uZ29Db25uZWN0b3IsXHJcbiAgICAgICAgT3BlbkFwaSxcclxuICAgICAgICBQcm9ncmVzc2VzLFxyXG4gICAgICAgIFRlbXBsYXRlUmVuZGVyZXIsXHJcbiAgICAgICAgVHJhbnNsYXRpb25Qcm92aWRlcixcclxuICAgICAgICBUcmFuc2xhdG9yLFxyXG4gICAgICAgIFVzZXJNYW5hZ2VyXHJcbiAgICBdIGFzIFR5cGU8YW55PltdO1xyXG5cclxuICAgIC8vIENyZWF0ZSBjb250YWluZXJcclxuICAgIGNvbnN0IGRpQ29udGFpbmVyID0gbmV3IERpQ29udGFpbmVyKGNvbnRhaW5lci5jcmVhdGVDaGlsZENvbnRhaW5lcigpKTtcclxuICAgIHBhcmFtUHJvdmlkZXJzLmZvckVhY2gocHJvdmlkZXIgPT4ge1xyXG4gICAgICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKHByb3ZpZGVyLnByb3ZpZGUsIHByb3ZpZGVyKTtcclxuICAgIH0pO1xyXG4gICAgc2VydmljZXMuZm9yRWFjaChzZXJ2aWNlID0+IHtcclxuICAgICAgICBpZiAoIWNvbnRhaW5lci5pc1JlZ2lzdGVyZWQoc2VydmljZSkpXHJcbiAgICAgICAgICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKHNlcnZpY2UsIHNlcnZpY2UpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGlDb250YWluZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXR1cEJhY2tlbmQoY29uZmlnOiBJQmFja2VuZENvbmZpZywgcHJvdmlkZXJzPzogUHJvdmlkZXI8YW55PltdLCBwYXJlbnQ/OiBJRGVwZW5kZW5jeUNvbnRhaW5lcik6IFByb21pc2U8SURlcGVuZGVuY3lDb250YWluZXI+IHtcclxuXHJcbiAgICBwcm92aWRlcnMgPSBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgPyBwcm92aWRlcnMgOiBbXTtcclxuICAgIHBhcmVudCA9IHBhcmVudCB8fCBjcmVhdGVTZXJ2aWNlcygpO1xyXG5cclxuICAgIC8vIENyZWF0ZSBmaXh0dXJlc1xyXG4gICAgY29uc3QgZml4dHVyZVR5cGVzID0gKGNvbmZpZy5maXh0dXJlcyB8fCBbXSk7XHJcbiAgICBjb25zdCBmaXh0dXJlUHJvdmlkZXJzID0gZml4dHVyZVR5cGVzLm1hcChmaXh0dXJlID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBGSVhUVVJFLFxyXG4gICAgICAgICAgICB1c2VDbGFzczogZml4dHVyZVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBDcmVhdGUgcGFyYW1zXHJcbiAgICBjb25zdCBwYXJhbVByb3ZpZGVycyA9IChjb25maWcucGFyYW1zIHx8IFtdKS5tYXAocCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogUEFSQU1FVEVSLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZTogcFxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENyZWF0ZSBqb2JzXHJcbiAgICBjb25zdCBqb2JQcm92aWRlcnMgPSBbRW1wdHlKb2JdLmNvbmNhdChjb25maWcuam9icyB8fCBbXSkubWFwKGpvYlR5cGUgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEpPQixcclxuICAgICAgICAgICAgdXNlVmFsdWU6IGpvYlR5cGVcclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU2V0dXAgcmVzdCBBUElcclxuICAgIGNvbnN0IHJlc3RPcHRpb25zID0gY29uZmlnLnJlc3RPcHRpb25zIHx8IHt9O1xyXG4gICAgcmVzdE9wdGlvbnMuZGVmYXVsdEVycm9ySGFuZGxlciA9IGZhbHNlO1xyXG4gICAgcmVzdE9wdGlvbnMuY29ycyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIGNyZWRlbnRpYWxzOiB0cnVlLFxyXG4gICAgICAgIGV4cG9zZWRIZWFkZXJzOiBbXCJjb250ZW50LWRpc3Bvc2l0aW9uXCJdLFxyXG4gICAgICAgIG9yaWdpbjogKG9yaWdpbiwgY2FsbGJhY2spID0+IHtcclxuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgcmVzdE9wdGlvbnMuY29ycyB8fCB7fSk7XHJcbiAgICByZXN0T3B0aW9ucy5yb3V0ZVByZWZpeCA9IGNvbmZpZy5yb3V0ZVByZWZpeCB8fCBcIi9hcGlcIjtcclxuICAgIHJlc3RPcHRpb25zLnJvdXRlUHJlZml4ID0gcmVzdE9wdGlvbnMucm91dGVQcmVmaXggPT0gXCIvXCIgPyBcIlwiIDogcmVzdE9wdGlvbnMucm91dGVQcmVmaXg7XHJcbiAgICByZXN0T3B0aW9ucy5taWRkbGV3YXJlcyA9IFtFcnJvckhhbmRsZXJNaWRkbGV3YXJlLCBDb250YWluZXJNaWRkbGV3YXJlLCBMYW5ndWFnZU1pZGRsZXdhcmUsIFJlcXVlc3RTdGFydGVkTWlkZGxld2FyZSwgUmVxdWVzdEVuZGVkTWlkZGxld2FyZV1cclxuICAgICAgICAuY29uY2F0KHJlc3RPcHRpb25zLm1pZGRsZXdhcmVzIGFzIGFueSB8fCBbXSk7XHJcbiAgICByZXN0T3B0aW9ucy5jb250cm9sbGVycyA9IFtBc3NldHNDb250cm9sbGVyLCBBdXRoQ29udHJvbGxlciwgR2FsbGVyeUNvbnRyb2xsZXIsIFByb2dyZXNzZXNDb250cm9sbGVyXVxyXG4gICAgICAgIC5jb25jYXQocmVzdE9wdGlvbnMuY29udHJvbGxlcnMgYXMgYW55IHx8IFtdKTtcclxuXHJcbiAgICAvLyBTZXR1cCBzb2NrZXQgQVBJXHJcbiAgICBjb25zdCBzb2NrZXRPcHRpb25zID0gY29uZmlnLnNvY2tldE9wdGlvbnMgfHwge307XHJcbiAgICBzb2NrZXRPcHRpb25zLm1pZGRsZXdhcmVzID0gW0NvbXByZXNzaW9uTWlkZGxld2FyZV0uY29uY2F0KHNvY2tldE9wdGlvbnMubWlkZGxld2FyZXMgYXMgYW55IHx8IFtdKTtcclxuICAgIHNvY2tldE9wdGlvbnMuY29udHJvbGxlcnMgPSBbUHJvZ3Jlc3NDb250cm9sbGVyXS5jb25jYXQoc29ja2V0T3B0aW9ucy5jb250cm9sbGVycyBhcyBhbnkgfHwgW10pO1xyXG5cclxuICAgIC8vIENyZWF0ZSBwcm92aWRlcnNcclxuXHJcbiAgICBjb25zdCBhbGxQcm92aWRlcnM6IFByb3ZpZGVyPGFueT5bXSA9IFtdO1xyXG5cclxuICAgIC8vIEFkZCBtdWx0aSB0b2tlbnMgdG8gc3ViIGNvbnRhaW5lclxyXG4gICAgW1BBUkFNRVRFUl0uZm9yRWFjaChwcm92aWRlID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBwYXJlbnQucmVzb2x2ZUFsbChwcm92aWRlKTtcclxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh1c2VWYWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIGFsbFByb3ZpZGVycy5wdXNoKHtwcm92aWRlLCB1c2VWYWx1ZX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQWRkIG90aGVyIHByb3ZpZGVyc1xyXG4gICAgYWxsUHJvdmlkZXJzLnB1c2goXHJcbiAgICAgICAgLi4uZml4dHVyZVR5cGVzLFxyXG4gICAgICAgIC4uLmZpeHR1cmVQcm92aWRlcnMsXHJcbiAgICAgICAgLi4ucGFyYW1Qcm92aWRlcnMsXHJcbiAgICAgICAgLi4uam9iUHJvdmlkZXJzLFxyXG4gICAgICAgIC4uLnJlc3RPcHRpb25zLm1pZGRsZXdhcmVzIGFzIFR5cGU8YW55PltdLFxyXG4gICAgICAgIC4uLnJlc3RPcHRpb25zLmNvbnRyb2xsZXJzIGFzIFR5cGU8YW55PltdLFxyXG4gICAgICAgIC4uLnNvY2tldE9wdGlvbnMubWlkZGxld2FyZXMgYXMgVHlwZTxhbnk+W10sXHJcbiAgICAgICAgLi4uc29ja2V0T3B0aW9ucy5jb250cm9sbGVycyBhcyBUeXBlPGFueT5bXSxcclxuICAgICAgICAuLi5wcm92aWRlcnMsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBFWFBSRVNTLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoY29udGFpbmVyOiBEZXBlbmRlbmN5Q29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmVyLnJlc29sdmUoQmFja2VuZFByb3ZpZGVyKS5leHByZXNzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfU0VSVkVSLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoY29udGFpbmVyOiBEZXBlbmRlbmN5Q29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmVyLnJlc29sdmUoQmFja2VuZFByb3ZpZGVyKS5zZXJ2ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogU09DS0VUX1NFUlZFUixcclxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGNvbnRhaW5lcjogRGVwZW5kZW5jeUNvbnRhaW5lcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5yZXNvbHZlKEJhY2tlbmRQcm92aWRlcikuaW87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICApXHJcblxyXG4gICAgLy8gQ3JlYXRlIERJIGNvbnRhaW5lclxyXG5cclxuICAgIGNvbnN0IGRpQ29udGFpbmVyID0gcGFyZW50LmNyZWF0ZUNoaWxkQ29udGFpbmVyKCk7XHJcblxyXG4gICAgYWxsUHJvdmlkZXJzLmZvckVhY2gocHJvdmlkZXIgPT4ge1xyXG4gICAgICAgIGlmIChpc1R5cGUocHJvdmlkZXIpKSB7XHJcbiAgICAgICAgICAgIGlmIChjb250YWluZXIuaXNSZWdpc3RlcmVkKHByb3ZpZGVyKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBkaUNvbnRhaW5lci5yZWdpc3Rlcihwcm92aWRlciwgcHJvdmlkZXIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKHByb3ZpZGVyLnByb3ZpZGUsIHByb3ZpZGVyIGFzIGFueSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaUNvbnRhaW5lci5yZWdpc3RlcihESV9DT05UQUlORVIsIHtcclxuICAgICAgICB1c2VWYWx1ZTogZGlDb250YWluZXJcclxuICAgIH0pO1xyXG5cclxuICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKE9QRU5BUElfVkFMSURBVElPTiwge1xyXG4gICAgICAgIHVzZVZhbHVlOiBjb25maWcuY3VzdG9tVmFsaWRhdGlvbiB8fCAoKCkgPT4gbnVsbClcclxuICAgIH0pO1xyXG5cclxuICAgIGRpQ29udGFpbmVycy5hcHBDb250YWluZXIgPSBkaUNvbnRhaW5lcnMuYXBwQ29udGFpbmVyIHx8IGRpQ29udGFpbmVyO1xyXG5cclxuICAgIC8vIEF1dGhlbnRpY2F0aW9uXHJcbiAgICByZXN0T3B0aW9ucy5hdXRob3JpemF0aW9uQ2hlY2tlciA9IGFzeW5jIChhY3Rpb246IEFjdGlvbiwgcm9sZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IHJlc29sdmVVc2VyKGFjdGlvbi5yZXF1ZXN0KTtcclxuICAgICAgICBpZiAoIXVzZXIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvcig0MDEsIFwiQXV0aGVudGljYXRpb24gZmFpbGVkLiAoVXNlciBjYW4ndCBiZSBmb3VuZC4pXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB1c2VyUm9sZXMgPSBBcnJheS5pc0FycmF5KHVzZXIucm9sZXMpID8gdXNlci5yb2xlcyA6IFtdO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvbGVzKSAmJiByb2xlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGxldCBsYXN0RXJyb3IgPSBudWxsO1xyXG4gICAgICAgICAgICBmb3IgKGxldCByb2xlIG9mIHJvbGVzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihyb2xlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCB2YWx1ZVRvUHJvbWlzZShyb2xlKHVzZXIsIGFjdGlvbikpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEVycm9yID0gZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodXNlclJvbGVzLmluZGV4T2Yocm9sZSkgPj0gMCkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSAhbGFzdEVycm9yIHx8ICghbGFzdEVycm9yLm1lc3NhZ2UgJiYgIWlzU3RyaW5nKGxhc3RFcnJvcikpXHJcbiAgICAgICAgICAgICAgICA/IFwiVXNlciBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIHRoaXMgcmVzb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgOiBsYXN0RXJyb3IubWVzc2FnZSB8fCBsYXN0RXJyb3I7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoNDAxLCBgQXV0aGVudGljYXRpb24gZmFpbGVkLiAoJHtlcnJvcn0pYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHJlc3RPcHRpb25zLmN1cnJlbnRVc2VyQ2hlY2tlciA9IGFzeW5jIChhY3Rpb246IEFjdGlvbikgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXNvbHZlVXNlcihhY3Rpb24ucmVxdWVzdCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEZpbmFsIHNldHVwXHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gZGlDb250YWluZXIucmVzb2x2ZShDb25maWd1cmF0aW9uKTtcclxuICAgIGNvbnN0IGJwID0gZGlDb250YWluZXIucmVzb2x2ZShCYWNrZW5kUHJvdmlkZXIpO1xyXG5cclxuICAgIGlmIChjb25maWcucmVzdE9wdGlvbnMpIHtcclxuICAgICAgICBicC5leHByZXNzLnVzZShqc29uKHtcclxuICAgICAgICAgICAgbGltaXQ6IGNvbmZpZ3VyYXRpb24uaGFzUGFyYW0oXCJqc29uTGltaXRcIilcclxuICAgICAgICAgICAgICAgID8gY29uZmlndXJhdGlvbi5yZXNvbHZlKFwianNvbkxpbWl0XCIpXHJcbiAgICAgICAgICAgICAgICA6IFwiMjUwbWJcIlxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICB1c2VSb3V0aW5nQ29udGFpbmVyKGRpQ29udGFpbmVyKTtcclxuICAgICAgICB1c2VFeHByZXNzU2VydmVyKGJwLmV4cHJlc3MsIHJlc3RPcHRpb25zKTtcclxuICAgICAgICAvLyBTZXR1cCByZXN0IGFpIGRvY3NcclxuICAgICAgICBsZXQgb3BlbkFwaTogT3BlbkFwaSA9IG51bGxcclxuICAgICAgICBicC5leHByZXNzLmdldChcIi9hcGktZG9jc1wiLCAocmVxLCByZXMpID0+IHtcclxuICAgICAgICAgICAgb3BlbkFwaSA9IG9wZW5BcGkgfHwgZGlDb250YWluZXIuZ2V0KE9wZW5BcGkpO1xyXG4gICAgICAgICAgICByZXMuaGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKVxyXG4gICAgICAgICAgICAgICAgLnN0YXR1cygyMDApXHJcbiAgICAgICAgICAgICAgICAuZW5kKG9wZW5BcGkuYXBpRG9jc1N0cik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnNvY2tldE9wdGlvbnMpIHtcclxuICAgICAgICB1c2VTb2NrZXRDb250YWluZXIoZGlDb250YWluZXIpO1xyXG4gICAgICAgIHVzZVNvY2tldFNlcnZlcihicC5pbywgc29ja2V0T3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ29ubmVjdCB0byBtb25nbyBpZiBuZWNlc3NhcnlcclxuICAgIGlmIChjb25maWd1cmF0aW9uLmhhc1BhcmFtKFwibW9uZ29VcmlcIikgJiYgY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibW9uZ29VcmlcIikpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNvbm5lY3RpbmcgdG8gTW9uZ29EQi4uLlwiKTtcclxuICAgICAgICBjb25zdCBjb25uZWN0b3IgPSBkaUNvbnRhaW5lci5yZXNvbHZlKE1vbmdvQ29ubmVjdG9yKTtcclxuICAgICAgICBhd2FpdCBjb25uZWN0b3IuY29ubmVjdCgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3VjY2Vzc2Z1bGx5IGNvbm5lY3RlZCB0byBNb25nb0RCLlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCBzZXR1cFN0YXRpYyhjb25maWcucm9vdEZvbGRlciwgZGlDb250YWluZXIpO1xyXG5cclxuICAgIHJldHVybiBkaUNvbnRhaW5lcjtcclxufVxyXG4iXX0=
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQXNCLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBUyxTQUFTLEVBQUUsWUFBWSxJQUFJLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDN0csT0FBTyxFQUFDLFlBQVksSUFBSSxrQkFBa0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RixPQUFPLEVBQ0gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsV0FBVyxFQU1YLEdBQUcsRUFBRSxrQkFBa0IsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFFVCxhQUFhLEVBRWhCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFD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LENBQUM7U0FDckQ7UUFFRCxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWxELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7am9pbn0gZnJvbSBcInBhdGhcIjtcclxuaW1wb3J0IHtqc29ufSBmcm9tIFwiYm9keS1wYXJzZXJcIjtcclxuaW1wb3J0IHt2ZXJpZnl9IGZyb20gXCJqc29ud2VidG9rZW5cIjtcclxuaW1wb3J0IHtjb250YWluZXIsIERlcGVuZGVuY3lDb250YWluZXJ9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0FjdGlvbiwgSHR0cEVycm9yLCB1c2VDb250YWluZXIgYXMgdXNlUm91dGluZ0NvbnRhaW5lciwgdXNlRXhwcmVzc1NlcnZlcn0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHt1c2VDb250YWluZXIgYXMgdXNlU29ja2V0Q29udGFpbmVyLCB1c2VTb2NrZXRTZXJ2ZXJ9IGZyb20gXCJzb2NrZXQtY29udHJvbGxlcnNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgICBESV9DT05UQUlORVIsXHJcbiAgICBFWFBSRVNTLFxyXG4gICAgRklYVFVSRSxcclxuICAgIEhUVFBfU0VSVkVSLFxyXG4gICAgSUJhY2tlbmRDb25maWcsXHJcbiAgICBJRGVwZW5kZW5jeUNvbnRhaW5lcixcclxuICAgIElQYWdpbmF0aW9uUGFyYW1zLFxyXG4gICAgSVJlcXVlc3QsXHJcbiAgICBJVXNlcixcclxuICAgIEpPQiwgT1BFTkFQSV9WQUxJREFUSU9OLFxyXG4gICAgUGFyYW1ldGVyLFxyXG4gICAgUEFSQU1FVEVSLFxyXG4gICAgUHJvdmlkZXIsXHJcbiAgICBTT0NLRVRfU0VSVkVSLFxyXG4gICAgVHlwZVxyXG59IGZyb20gXCIuL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuaW1wb3J0IHtBc3NldFByb2Nlc3Nvcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcHJvY2Vzc29yXCI7XHJcbmltcG9ydCB7QXNzZXRSZXNvbHZlcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcmVzb2x2ZXJcIjtcclxuaW1wb3J0IHtBc3NldHN9IGZyb20gXCIuL3NlcnZpY2VzL2Fzc2V0c1wiO1xyXG5pbXBvcnQge0JhY2tlbmRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvYmFja2VuZC1wcm92aWRlclwiO1xyXG5pbXBvcnQge0NhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZVwiO1xyXG5pbXBvcnQge0NhY2hlUHJvY2Vzc29yfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZS1wcm9jZXNzb3JcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7RW5kcG9pbnRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvZW5kcG9pbnQtcHJvdmlkZXJcIjtcclxuaW1wb3J0IHtGaXh0dXJlc30gZnJvbSBcIi4vc2VydmljZXMvZml4dHVyZXNcIjtcclxuaW1wb3J0IHtHYWxsZXJ5fSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5XCI7XHJcbmltcG9ydCB7R2FsbGVyeUNhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5LWNhY2hlXCI7XHJcbmltcG9ydCB7SWRHZW5lcmF0b3J9IGZyb20gXCIuL3NlcnZpY2VzL2lkLWdlbmVyYXRvclwiO1xyXG5pbXBvcnQge0pvYk1hbmFnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL2pvYi1tYW5hZ2VyXCI7XHJcbmltcG9ydCB7TGF6eUFzc2V0c30gZnJvbSBcIi4vc2VydmljZXMvbGF6eS1hc3NldHNcIjtcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL2xvZ2dlclwiO1xyXG5pbXBvcnQge01haWxTZW5kZXJ9IGZyb20gXCIuL3NlcnZpY2VzL21haWwtc2VuZGVyXCI7XHJcbmltcG9ydCB7TWVtb3J5Q2FjaGV9IGZyb20gXCIuL3NlcnZpY2VzL21lbW9yeS1jYWNoZVwiO1xyXG5pbXBvcnQge01vbmdvQ29ubmVjdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy9tb25nby1jb25uZWN0b3JcIjtcclxuaW1wb3J0IHtPcGVuQXBpfSBmcm9tIFwiLi9zZXJ2aWNlcy9vcGVuLWFwaVwiO1xyXG5pbXBvcnQge1Byb2dyZXNzZXN9IGZyb20gXCIuL3NlcnZpY2VzL3Byb2dyZXNzZXNcIjtcclxuaW1wb3J0IHtUZW1wbGF0ZVJlbmRlcmVyfSBmcm9tIFwiLi9zZXJ2aWNlcy90ZW1wbGF0ZS1yZW5kZXJlclwiO1xyXG5pbXBvcnQge1Rva2VuR2VuZXJhdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy90b2tlbi1nZW5lcmF0b3JcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGlvblByb3ZpZGVyfSBmcm9tIFwiLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1wcm92aWRlclwiO1xyXG5pbXBvcnQge1RyYW5zbGF0b3J9IGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0b3JcIjtcclxuaW1wb3J0IHtVc2VyTWFuYWdlcn0gZnJvbSBcIi4vc2VydmljZXMvdXNlci1tYW5hZ2VyXCI7XHJcblxyXG5pbXBvcnQge0Fzc2V0c0NvbnRyb2xsZXJ9IGZyb20gXCIuL3Jlc3QtY29udHJvbGxlcnMvYXNzZXRzLmNvbnRyb2xsZXJcIjtcclxuaW1wb3J0IHtBdXRoQ29udHJvbGxlcn0gZnJvbSBcIi4vcmVzdC1jb250cm9sbGVycy9hdXRoLmNvbnRyb2xsZXJcIjtcclxuaW1wb3J0IHtHYWxsZXJ5Q29udHJvbGxlcn0gZnJvbSBcIi4vcmVzdC1jb250cm9sbGVycy9nYWxsZXJ5LmNvbnRyb2xsZXJcIjtcclxuaW1wb3J0IHtQcm9ncmVzc2VzQ29udHJvbGxlcn0gZnJvbSBcIi4vcmVzdC1jb250cm9sbGVycy9wcm9ncmVzc2VzLmNvbnRyb2xsZXJcIjtcclxuXHJcbmltcG9ydCB7RXJyb3JIYW5kbGVyTWlkZGxld2FyZX0gZnJvbSBcIi4vcmVzdC1taWRkbGV3YXJlcy9lcnJvci1oYW5kbGVyLm1pZGRsZXdhcmVcIjtcclxuaW1wb3J0IHtDb250YWluZXJNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL2NvbnRhaW5lci5taWRkbGV3YXJlXCI7XHJcbmltcG9ydCB7TGFuZ3VhZ2VNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL2xhbmd1YWdlLm1pZGRsZXdhcmVcIjtcclxuaW1wb3J0IHtSZXF1ZXN0RW5kZWRNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL3JlcXVlc3QtZW5kZWQubWlkZGxld2FyZVwiO1xyXG5pbXBvcnQge1JlcXVlc3RTdGFydGVkTWlkZGxld2FyZX0gZnJvbSBcIi4vcmVzdC1taWRkbGV3YXJlcy9yZXF1ZXN0LXN0YXJ0ZWQubWlkZGxld2FyZVwiO1xyXG5cclxuaW1wb3J0IHtQcm9ncmVzc0NvbnRyb2xsZXJ9IGZyb20gXCIuL3NvY2tldC1jb250cm9sbGVycy9wcm9ncmVzcy5jb250cm9sbGVyXCI7XHJcblxyXG5pbXBvcnQge0NvbXByZXNzaW9uTWlkZGxld2FyZX0gZnJvbSBcIi4vc29ja2V0LW1pZGRsZXdhcmVzL2NvbXByZXNzaW9uLm1pZGRsZXdhcmVcIjtcclxuXHJcbmltcG9ydCB7RGlDb250YWluZXJ9IGZyb20gXCIuL3V0aWxpdGllcy9kaS1jb250YWluZXJcIjtcclxuaW1wb3J0IHtFbXB0eUpvYn0gZnJvbSBcIi4vdXRpbGl0aWVzL2VtcHR5LWpvYlwiO1xyXG5pbXBvcnQge2RpQ29udGFpbmVycywgaXNGdW5jdGlvbiwgaXNTdHJpbmcsIGlzVHlwZSwgdmFsdWVUb1Byb21pc2V9IGZyb20gXCIuL3V0aWxzXCI7XHJcbmltcG9ydCB7c2V0dXBTdGF0aWN9IGZyb20gXCIuL3N0YXRpY1wiO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIEZpbHRlclByZWRpY2F0ZSxcclxuICAgIGlzTnVsbE9yVW5kZWZpbmVkLFxyXG4gICAgaXNEZWZpbmVkLFxyXG4gICAgZ2V0VHlwZSxcclxuICAgIGlzT2JqZWN0LFxyXG4gICAgaXNBcnJheSxcclxuICAgIGlzQm9vbGVhbixcclxuICAgIGlzRGF0ZSxcclxuICAgIGlzUHJpbWl0aXZlLFxyXG4gICAgaXNTdHJpbmcsXHJcbiAgICBpc0Z1bmN0aW9uLFxyXG4gICAgaXNDb25zdHJ1Y3RvcixcclxuICAgIGlzVHlwZSxcclxuICAgIGlzSW50ZXJmYWNlLFxyXG4gICAgdWNGaXJzdCxcclxuICAgIGxjRmlyc3QsXHJcbiAgICBpc09iamVjdElkLFxyXG4gICAgZmlyc3RJdGVtLFxyXG4gICAgbGFzdEl0ZW0sXHJcbiAgICByZWdyb3VwLFxyXG4gICAgdW5pcXVlSXRlbXMsXHJcbiAgICBnZXRWYWx1ZSxcclxuICAgIGdyb3VwQnksXHJcbiAgICBjb252ZXJ0VmFsdWUsXHJcbiAgICB0b0ltYWdlLFxyXG4gICAgYnVmZmVyVG9TdHJlYW0sXHJcbiAgICBzdHJlYW1Ub0J1ZmZlcixcclxuICAgIGNvcHlTdHJlYW0sXHJcbiAgICBta2RpclJlY3Vyc2l2ZSxcclxuICAgIGRlbGV0ZUZpbGUsXHJcbiAgICByZWFkRmlsZSxcclxuICAgIHJlYWRBbmREZWxldGVGaWxlLFxyXG4gICAgd3JpdGVGaWxlLFxyXG4gICAgdmFsdWVUb1Byb21pc2UsXHJcbiAgICBwcm9taXNlVGltZW91dCxcclxuICAgIGdldENvbnN0cnVjdG9yTmFtZSxcclxuICAgIGdldEZ1bmN0aW9uUGFyYW1zLFxyXG4gICAgZ2V0RmlsZU5hbWUsXHJcbiAgICBnZXRFeHRlbnNpb24sXHJcbiAgICBjcmVhdGVJZFN0cmluZyxcclxuICAgIGlkVG9TdHJpbmcsXHJcbiAgICBjcmVhdGVUcmFuc2Zvcm1lcixcclxuICAgIGJyb2FkY2FzdCxcclxuICAgIHJhbmQsXHJcbiAgICByYW5kb20sXHJcbiAgICBtdWx0aVN1YnNjcmlwdGlvbixcclxuICAgIG9ic2VydmFibGVGcm9tRnVuY3Rpb24sXHJcbiAgICBwYWRMZWZ0LFxyXG4gICAgcGFkUmlnaHQsXHJcbiAgICBkZWxldGVGcm9tQnVja2V0LFxyXG4gICAgZmlsdGVyLFxyXG4gICAgY29weSxcclxuICAgIGFzc2lnbixcclxuICAgIG1kNSxcclxuICAgIHJ1bkNvbW1hbmQsXHJcbiAgICBDb25zb2xlQ29sb3IsXHJcbiAgICBJSnNvbkNvbG9ycyxcclxuICAgIGNvbG9yaXplLFxyXG4gICAganNvbkhpZ2hsaWdodCxcclxuICAgIHJlcGxhY2VTcGVjaWFsQ2hhcnMsXHJcbiAgICBmbGF0dGVuXHJcbn0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCB7SXNGaWxlLCBJc09iamVjdElkfSBmcm9tIFwiLi92YWxpZGF0b3JzXCI7XHJcblxyXG5leHBvcnQge1xyXG4gICAgRklYVFVSRSxcclxuICAgIEpPQixcclxuICAgIEVYUFJFU1MsXHJcbiAgICBIVFRQX1NFUlZFUixcclxuICAgIFNPQ0tFVF9TRVJWRVIsXHJcbiAgICBQQVJBTUVURVIsXHJcbiAgICBESV9DT05UQUlORVIsXHJcbiAgICBPUEVOQVBJX1ZBTElEQVRJT04sXHJcbiAgICBUeXBlLFxyXG4gICAgRmFjdG9yeVByb3ZpZGVyLFxyXG4gICAgSURlcGVuZGVuY3lDb250YWluZXIsXHJcbiAgICBDbGFzc0Jhc2VkUHJvdmlkZXIsXHJcbiAgICBWYWx1ZUJhc2VkUHJvdmlkZXIsXHJcbiAgICBGYWN0b3J5QmFzZWRQcm92aWRlcixcclxuICAgIFRva2VuQmFzZWRQcm92aWRlcixcclxuICAgIFN5cmluZ2VQcm92aWRlcixcclxuICAgIFByb3ZpZGVyLFxyXG4gICAgQ29uc3RydWN0b3IsXHJcbiAgICBJbmZlckdlbmVyaWMsXHJcbiAgICBQaWNrTWF0Y2hpbmcsXHJcbiAgICBPbWl0Rmlyc3RBcmcsXHJcbiAgICBJTWF0Y2hGaWVsZCxcclxuICAgIElQcm9qZWN0T3B0aW9ucyxcclxuICAgIElVbndpbmRPcHRpb25zLFxyXG4gICAgSUZpeHR1cmUsXHJcbiAgICBTY2hlbWFDb252ZXJ0ZXIsXHJcbiAgICBPcGVuQXBpVmFsaWRhdGlvbixcclxuICAgIFBhcmFtUmVzb2x2ZXIsXHJcbiAgICBQYXJhbWV0ZXIsXHJcbiAgICBTb2NrZXRQYXJhbSxcclxuICAgIFNvY2tldFBhcmFtcyxcclxuICAgIElTb2NrZXRNZXNzYWdlLFxyXG4gICAgSU1lc3NhZ2VCcmlkZ2UsXHJcbiAgICBJSm9iLFxyXG4gICAgSUpvYlRhc2ssXHJcbiAgICBKb2JQYXJhbXMsXHJcbiAgICBKb2JTY2hlZHVsZVJhbmdlLFxyXG4gICAgSm9iU2NoZWR1bGVUaW1lLFxyXG4gICAgSVByb2dyZXNzLFxyXG4gICAgSUFzc2V0Q3JvcEluZm8sXHJcbiAgICBJQXNzZXRNZXRhLFxyXG4gICAgSUFzc2V0SW1hZ2VQYXJhbXMsXHJcbiAgICBJQXNzZXQsXHJcbiAgICBJTGF6eUFzc2V0LFxyXG4gICAgSVVzZXIsXHJcbiAgICBJQ2xpZW50U29ja2V0LFxyXG4gICAgSVJlcXVlc3RCYXNlLFxyXG4gICAgSVJlcXVlc3QsXHJcbiAgICBJR2FsbGVyeUltYWdlLFxyXG4gICAgSUdhbGxlcnlTaXplLFxyXG4gICAgSUdhbGxlcnlJbWFnZUhhbmRsZXIsXHJcbiAgICBJVHJhbnNsYXRpb25zLFxyXG4gICAgSVBhZ2luYXRpb25NZXRhLFxyXG4gICAgSVBhZ2luYXRpb25CYXNlLFxyXG4gICAgSVBhZ2luYXRpb24sXHJcbiAgICBJUGFnaW5hdGlvblBhcmFtcyxcclxuICAgIEZvbnRGb3JtYXQsXHJcbiAgICBJRmlsZVR5cGUsXHJcbiAgICBJQmFja2VuZENvbmZpZ1xyXG59IGZyb20gXCIuL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IHtBc3NldFByb2Nlc3Nvcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcHJvY2Vzc29yXCI7XHJcbmV4cG9ydCB7QXNzZXRSZXNvbHZlcn0gZnJvbSBcIi4vc2VydmljZXMvYXNzZXQtcmVzb2x2ZXJcIjtcclxuZXhwb3J0IHtBc3NldHN9IGZyb20gXCIuL3NlcnZpY2VzL2Fzc2V0c1wiO1xyXG5leHBvcnQge0JhY2tlbmRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvYmFja2VuZC1wcm92aWRlclwiO1xyXG5leHBvcnQge0NhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZVwiO1xyXG5leHBvcnQge0NhY2hlUHJvY2Vzc29yfSBmcm9tIFwiLi9zZXJ2aWNlcy9jYWNoZS1wcm9jZXNzb3JcIjtcclxuZXhwb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWd1cmF0aW9uXCI7XHJcbmV4cG9ydCB7RW5kcG9pbnRQcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvZW5kcG9pbnQtcHJvdmlkZXJcIjtcclxuZXhwb3J0IHtGaXh0dXJlc30gZnJvbSBcIi4vc2VydmljZXMvZml4dHVyZXNcIjtcclxuZXhwb3J0IHtHYWxsZXJ5fSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5XCI7XHJcbmV4cG9ydCB7R2FsbGVyeUNhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9nYWxsZXJ5LWNhY2hlXCI7XHJcbmV4cG9ydCB7SWRHZW5lcmF0b3J9IGZyb20gXCIuL3NlcnZpY2VzL2lkLWdlbmVyYXRvclwiO1xyXG5leHBvcnQge0pvYk1hbmFnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL2pvYi1tYW5hZ2VyXCI7XHJcbmV4cG9ydCB7TGF6eUFzc2V0c30gZnJvbSBcIi4vc2VydmljZXMvbGF6eS1hc3NldHNcIjtcclxuZXhwb3J0IHtNYWlsU2VuZGVyfSBmcm9tIFwiLi9zZXJ2aWNlcy9tYWlsLXNlbmRlclwiO1xyXG5leHBvcnQge01lbW9yeUNhY2hlfSBmcm9tIFwiLi9zZXJ2aWNlcy9tZW1vcnktY2FjaGVcIjtcclxuZXhwb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vc2VydmljZXMvbW9uZ28tY29ubmVjdG9yXCI7XHJcbmV4cG9ydCB7T3BlbkFwaX0gZnJvbSBcIi4vc2VydmljZXMvb3Blbi1hcGlcIjtcclxuZXhwb3J0IHtQcm9ncmVzc2VzfSBmcm9tIFwiLi9zZXJ2aWNlcy9wcm9ncmVzc2VzXCI7XHJcbmV4cG9ydCB7VGVtcGxhdGVSZW5kZXJlcn0gZnJvbSBcIi4vc2VydmljZXMvdGVtcGxhdGUtcmVuZGVyZXJcIjtcclxuZXhwb3J0IHtUb2tlbkdlbmVyYXRvcn0gZnJvbSBcIi4vc2VydmljZXMvdG9rZW4tZ2VuZXJhdG9yXCI7XHJcbmV4cG9ydCB7VHJhbnNsYXRpb25Qcm92aWRlcn0gZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRpb24tcHJvdmlkZXJcIjtcclxuZXhwb3J0IHtUcmFuc2xhdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy90cmFuc2xhdG9yXCI7XHJcbmV4cG9ydCB7VXNlck1hbmFnZXJ9IGZyb20gXCIuL3NlcnZpY2VzL3VzZXItbWFuYWdlclwiO1xyXG5cclxuZXhwb3J0IHtBc3NldEltYWdlUGFyYW1zfSBmcm9tIFwiLi9yZXF1ZXN0cy9hc3NldC1pbWFnZS1wYXJhbXNcIjtcclxuXHJcbmV4cG9ydCB7QXV0aENvbnRyb2xsZXJ9IGZyb20gXCIuL3Jlc3QtY29udHJvbGxlcnMvYXV0aC5jb250cm9sbGVyXCI7XHJcbmV4cG9ydCB7R2FsbGVyeUNvbnRyb2xsZXJ9IGZyb20gXCIuL3Jlc3QtY29udHJvbGxlcnMvZ2FsbGVyeS5jb250cm9sbGVyXCI7XHJcblxyXG5leHBvcnQge0Vycm9ySGFuZGxlck1pZGRsZXdhcmV9IGZyb20gXCIuL3Jlc3QtbWlkZGxld2FyZXMvZXJyb3ItaGFuZGxlci5taWRkbGV3YXJlXCI7XHJcbmV4cG9ydCB7TGFuZ3VhZ2VNaWRkbGV3YXJlfSBmcm9tIFwiLi9yZXN0LW1pZGRsZXdhcmVzL2xhbmd1YWdlLm1pZGRsZXdhcmVcIjtcclxuXHJcbmV4cG9ydCB7QmFzZURvYywgRG9jdW1lbnRBcnJheSwgUHJpbWl0aXZlQXJyYXl9IGZyb20gXCIuL3V0aWxpdGllcy9iYXNlLWRvY1wiO1xyXG5leHBvcnQge0lzRG9jdW1lbnRlZCwgSnNvblJlc3BvbnNlLCBSZXNwb25zZVR5cGV9IGZyb20gXCIuL3V0aWxpdGllcy9kZWNvcmF0b3JzXCI7XHJcbmV4cG9ydCB7TGF6eUFzc2V0R2VuZXJhdG9yfSBmcm9tIFwiLi91dGlsaXRpZXMvbGF6eS1hc3NldC1nZW5lcmF0b3JcIjtcclxuZXhwb3J0IHtcclxuICAgIFJlc29sdmVFbnRpdHksXHJcbiAgICBwYWdpbmF0ZUFnZ3JlZ2F0aW9ucyxcclxuICAgIGh5ZHJhdGVQb3B1bGF0ZWQsXHJcbiAgICB1bndpbmRTdGFnZSxcclxuICAgIHByb2plY3RTdGFnZSxcclxuICAgIG1hdGNoRmllbGRTdGFnZXMsXHJcbiAgICBtYXRjaEZpZWxkLFxyXG4gICAgbWF0Y2hTdGFnZSxcclxuICAgIGxldHNMb29rdXBTdGFnZSxcclxuICAgIGxvb2t1cFN0YWdlcyxcclxuICAgIHBhZ2luYXRlLFxyXG4gICAgaW5qZWN0U2VydmljZXMsXHJcbiAgICBzZXJ2aWNlXHJcbn0gZnJvbSBcIi4vdXRpbGl0aWVzL21vbmdvb3NlXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVVzZXIocmVxOiBJUmVxdWVzdCk6IFByb21pc2U8SVVzZXI+IHtcclxuICAgIGlmIChyZXEudXNlcikgcmV0dXJuIHJlcS51c2VyO1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gcmVxLmNvbnRhaW5lcjtcclxuICAgIGNvbnN0IGF1dGggPSByZXEuaGVhZGVyKFwiQXV0aG9yaXphdGlvblwiKSB8fCBcIlwiO1xyXG4gICAgbGV0IHBheWxvYWQgPSBudWxsO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSBjb250YWluZXIucmVzb2x2ZShDb25maWd1cmF0aW9uKTtcclxuICAgICAgICBwYXlsb2FkID0gdmVyaWZ5KGF1dGguc3BsaXQoXCIgXCIpWzFdLCBjb25maWcucmVzb2x2ZShcImp3dFNlY3JldFwiKSkgYXMgYW55O1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBIdHRwRXJyb3IoNDAxLCBgQXV0aGVudGljYXRpb24gZmFpbGVkLiAoJHtlLm1lc3NhZ2V9KWApO1xyXG4gICAgfVxyXG4gICAgaWYgKCFwYXlsb2FkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvcig0MDEsIGBBdXRoZW50aWNhdGlvbiBmYWlsZWQuIChNYXliZSBpbnZhbGlkIHRva2VuKWApO1xyXG4gICAgfVxyXG4gICAgcmVxLnVzZXIgPSBhd2FpdCBjb250YWluZXIucmVzb2x2ZShVc2VyTWFuYWdlcikuZ2V0QnlJZChwYXlsb2FkLmlkKTtcclxuICAgIHJldHVybiByZXEudXNlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VzKCk6IElEZXBlbmRlbmN5Q29udGFpbmVyIHtcclxuICAgIC8vIExpc3Qgb2YgcGFyYW1ldGVyc1xyXG4gICAgY29uc3QgcGFyYW1zID0gW1xyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJ0ZW1wbGF0ZXNEaXJcIiwgam9pbihfX2Rpcm5hbWUsIFwidGVtcGxhdGVzXCIpKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiZ2FsbGVyeURpclwiLCBqb2luKF9fZGlybmFtZSwgXCJnYWxsZXJ5XCIpKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiY2FjaGVEaXJcIiwgam9pbihfX2Rpcm5hbWUsIFwiY2FjaGVcIikpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJkZWZhdWx0TGFuZ3VhZ2VcIiwgXCJlblwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwic210cEhvc3RcIiwgXCJzbXRwLnNlbmRncmlkLm5ldFwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwic210cFBvcnRcIiwgNTg3KSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwic210cFVzZXJcIiwgXCJhcGlrZXlcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcInNtdHBQYXNzd29yZFwiLCBcIlwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibWFpbFNlbmRlckFkZHJlc3NcIiwgXCJpbmZvQHN0ZW15Lmh1XCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJ0cmFuc2xhdGlvbnNUZW1wbGF0ZVwiLCBcImh0dHBzOi8vdHJhbnNsYXRpb24uc2VydmljZS9bbGFuZ11cIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImp3dFNlY3JldFwiLCBcImV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSlNVekkxTmlKOVwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibW9uZ29VcmlcIiwgXCJcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm1vbmdvRGJcIiwgXCJub2RlLWJhY2tlbmRcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcIm1vbmdvVXNlclwiLCBudWxsKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibW9uZ29QYXNzd29yZFwiLCBudWxsKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwibm9kZUVudlwiLCBcInByb2R1Y3Rpb25cIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImFwcFBvcnRcIiwgODApLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJ6bXFQb3J0XCIsIDMwMDApLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJ6bXFCYWNrUG9ydFwiLCAzMTAwKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiem1xUmVtb3RlSG9zdFwiLCBcInRjcDovLzEyNy4wLjAuMVwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiaXNXb3JrZXJcIiwgZmFsc2UpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJtYWluRW5kcG9pbnRcIiwgXCJcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImlkQ2hhcnNcIiwgXCIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImlkU2VwYXJhdG9yXCIsIFwiLVwiKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwiaWRQcmVmaXhcIiwgXCJJRC1cIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImlkUGFydHNcIiwgWzQsIDRdKSxcclxuICAgICAgICBuZXcgUGFyYW1ldGVyKFwianNvbkxpbWl0XCIsIFwiMjUwbWJcIiksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImpvYlRpbWVvdXRcIiwgNSAqIDYwICogMTAwMCksXHJcbiAgICAgICAgbmV3IFBhcmFtZXRlcihcImNhY2hlQ29sbGVjdGlvblwiLCBcImNhY2hlXCIpLFxyXG4gICAgICAgIG5ldyBQYXJhbWV0ZXIoXCJsb2dUYWdzXCIsIFtdKSxcclxuICAgIF07XHJcblxyXG4gICAgLy8gQ29udmVydCBwYXJhbWV0ZXJzIHRvIHByb3ZpZGVyc1xyXG4gICAgY29uc3QgcGFyYW1Qcm92aWRlcnMgPSBwYXJhbXMubWFwKHAgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFBBUkFNRVRFUixcclxuICAgICAgICAgICAgdXNlVmFsdWU6IHBcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBMaXN0IG9mIHNlcnZpY2VzXHJcbiAgICBjb25zdCBzZXJ2aWNlcyA9IFtcclxuICAgICAgICBBc3NldFByb2Nlc3NvcixcclxuICAgICAgICBBc3NldFJlc29sdmVyLFxyXG4gICAgICAgIEFzc2V0cyxcclxuICAgICAgICBCYWNrZW5kUHJvdmlkZXIsXHJcbiAgICAgICAgQ2FjaGUsXHJcbiAgICAgICAgQ2FjaGVQcm9jZXNzb3IsXHJcbiAgICAgICAgQ29uZmlndXJhdGlvbixcclxuICAgICAgICBFbmRwb2ludFByb3ZpZGVyLFxyXG4gICAgICAgIEZpeHR1cmVzLFxyXG4gICAgICAgIEdhbGxlcnksXHJcbiAgICAgICAgR2FsbGVyeUNhY2hlLFxyXG4gICAgICAgIElkR2VuZXJhdG9yLFxyXG4gICAgICAgIEpvYk1hbmFnZXIsXHJcbiAgICAgICAgTGF6eUFzc2V0cyxcclxuICAgICAgICBMb2dnZXIsXHJcbiAgICAgICAgTWFpbFNlbmRlcixcclxuICAgICAgICBNZW1vcnlDYWNoZSxcclxuICAgICAgICBNb25nb0Nvbm5lY3RvcixcclxuICAgICAgICBPcGVuQXBpLFxyXG4gICAgICAgIFByb2dyZXNzZXMsXHJcbiAgICAgICAgVGVtcGxhdGVSZW5kZXJlcixcclxuICAgICAgICBUb2tlbkdlbmVyYXRvcixcclxuICAgICAgICBUcmFuc2xhdGlvblByb3ZpZGVyLFxyXG4gICAgICAgIFRyYW5zbGF0b3IsXHJcbiAgICAgICAgVXNlck1hbmFnZXJcclxuICAgIF0gYXMgVHlwZTxhbnk+W107XHJcblxyXG4gICAgLy8gQ3JlYXRlIGNvbnRhaW5lclxyXG4gICAgY29uc3QgZGlDb250YWluZXIgPSBuZXcgRGlDb250YWluZXIoY29udGFpbmVyLmNyZWF0ZUNoaWxkQ29udGFpbmVyKCkpO1xyXG4gICAgcGFyYW1Qcm92aWRlcnMuZm9yRWFjaChwcm92aWRlciA9PiB7XHJcbiAgICAgICAgZGlDb250YWluZXIucmVnaXN0ZXIocHJvdmlkZXIucHJvdmlkZSwgcHJvdmlkZXIpO1xyXG4gICAgfSk7XHJcbiAgICBzZXJ2aWNlcy5mb3JFYWNoKHNlcnZpY2UgPT4ge1xyXG4gICAgICAgIGlmICghY29udGFpbmVyLmlzUmVnaXN0ZXJlZChzZXJ2aWNlKSlcclxuICAgICAgICAgICAgZGlDb250YWluZXIucmVnaXN0ZXIoc2VydmljZSwgc2VydmljZSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkaUNvbnRhaW5lcjtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwQmFja2VuZChjb25maWc6IElCYWNrZW5kQ29uZmlnLCBwcm92aWRlcnM/OiBQcm92aWRlcjxhbnk+W10sIHBhcmVudD86IElEZXBlbmRlbmN5Q29udGFpbmVyKTogUHJvbWlzZTxJRGVwZW5kZW5jeUNvbnRhaW5lcj4ge1xyXG5cclxuICAgIHByb3ZpZGVycyA9IEFycmF5LmlzQXJyYXkocHJvdmlkZXJzKSA/IHByb3ZpZGVycyA6IFtdO1xyXG4gICAgcGFyZW50ID0gcGFyZW50IHx8IGNyZWF0ZVNlcnZpY2VzKCk7XHJcblxyXG4gICAgLy8gQ3JlYXRlIGZpeHR1cmVzXHJcbiAgICBjb25zdCBmaXh0dXJlVHlwZXMgPSAoY29uZmlnLmZpeHR1cmVzIHx8IFtdKTtcclxuICAgIGNvbnN0IGZpeHR1cmVQcm92aWRlcnMgPSBmaXh0dXJlVHlwZXMubWFwKGZpeHR1cmUgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEZJWFRVUkUsXHJcbiAgICAgICAgICAgIHVzZUNsYXNzOiBmaXh0dXJlXHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENyZWF0ZSBwYXJhbXNcclxuICAgIGNvbnN0IHBhcmFtUHJvdmlkZXJzID0gKGNvbmZpZy5wYXJhbXMgfHwgW10pLm1hcChwID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBQQVJBTUVURVIsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBwXHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQ3JlYXRlIGpvYnNcclxuICAgIGNvbnN0IGpvYlByb3ZpZGVycyA9IFtFbXB0eUpvYl0uY29uY2F0KGNvbmZpZy5qb2JzIHx8IFtdKS5tYXAoam9iVHlwZSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogSk9CLFxyXG4gICAgICAgICAgICB1c2VWYWx1ZTogam9iVHlwZVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTZXR1cCByZXN0IEFQSVxyXG4gICAgY29uc3QgcmVzdE9wdGlvbnMgPSBjb25maWcucmVzdE9wdGlvbnMgfHwge307XHJcbiAgICByZXN0T3B0aW9ucy5kZWZhdWx0RXJyb3JIYW5kbGVyID0gZmFsc2U7XHJcbiAgICByZXN0T3B0aW9ucy5jb3JzID0gT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgY3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgICAgZXhwb3NlZEhlYWRlcnM6IFtcImNvbnRlbnQtZGlzcG9zaXRpb25cIl0sXHJcbiAgICAgICAgb3JpZ2luOiAob3JpZ2luLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LCByZXN0T3B0aW9ucy5jb3JzIHx8IHt9KTtcclxuICAgIHJlc3RPcHRpb25zLnJvdXRlUHJlZml4ID0gY29uZmlnLnJvdXRlUHJlZml4IHx8IFwiL2FwaVwiO1xyXG4gICAgcmVzdE9wdGlvbnMucm91dGVQcmVmaXggPSByZXN0T3B0aW9ucy5yb3V0ZVByZWZpeCA9PSBcIi9cIiA/IFwiXCIgOiByZXN0T3B0aW9ucy5yb3V0ZVByZWZpeDtcclxuICAgIHJlc3RPcHRpb25zLm1pZGRsZXdhcmVzID0gW0Vycm9ySGFuZGxlck1pZGRsZXdhcmUsIENvbnRhaW5lck1pZGRsZXdhcmUsIExhbmd1YWdlTWlkZGxld2FyZSwgUmVxdWVzdFN0YXJ0ZWRNaWRkbGV3YXJlLCBSZXF1ZXN0RW5kZWRNaWRkbGV3YXJlXVxyXG4gICAgICAgIC5jb25jYXQocmVzdE9wdGlvbnMubWlkZGxld2FyZXMgYXMgYW55IHx8IFtdKTtcclxuICAgIHJlc3RPcHRpb25zLmNvbnRyb2xsZXJzID0gW0Fzc2V0c0NvbnRyb2xsZXIsIEF1dGhDb250cm9sbGVyLCBHYWxsZXJ5Q29udHJvbGxlciwgUHJvZ3Jlc3Nlc0NvbnRyb2xsZXJdXHJcbiAgICAgICAgLmNvbmNhdChyZXN0T3B0aW9ucy5jb250cm9sbGVycyBhcyBhbnkgfHwgW10pO1xyXG5cclxuICAgIC8vIFNldHVwIHNvY2tldCBBUElcclxuICAgIGNvbnN0IHNvY2tldE9wdGlvbnMgPSBjb25maWcuc29ja2V0T3B0aW9ucyB8fCB7fTtcclxuICAgIHNvY2tldE9wdGlvbnMubWlkZGxld2FyZXMgPSBbQ29tcHJlc3Npb25NaWRkbGV3YXJlXS5jb25jYXQoc29ja2V0T3B0aW9ucy5taWRkbGV3YXJlcyBhcyBhbnkgfHwgW10pO1xyXG4gICAgc29ja2V0T3B0aW9ucy5jb250cm9sbGVycyA9IFtQcm9ncmVzc0NvbnRyb2xsZXJdLmNvbmNhdChzb2NrZXRPcHRpb25zLmNvbnRyb2xsZXJzIGFzIGFueSB8fCBbXSk7XHJcblxyXG4gICAgLy8gQ3JlYXRlIHByb3ZpZGVyc1xyXG5cclxuICAgIGNvbnN0IGFsbFByb3ZpZGVyczogUHJvdmlkZXI8YW55PltdID0gW107XHJcblxyXG4gICAgLy8gQWRkIG11bHRpIHRva2VucyB0byBzdWIgY29udGFpbmVyXHJcbiAgICBbUEFSQU1FVEVSXS5mb3JFYWNoKHByb3ZpZGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcmVudC5yZXNvbHZlQWxsKHByb3ZpZGUpO1xyXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHVzZVZhbHVlID0+IHtcclxuICAgICAgICAgICAgYWxsUHJvdmlkZXJzLnB1c2goe3Byb3ZpZGUsIHVzZVZhbHVlfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBZGQgb3RoZXIgcHJvdmlkZXJzXHJcbiAgICBhbGxQcm92aWRlcnMucHVzaChcclxuICAgICAgICAuLi5maXh0dXJlVHlwZXMsXHJcbiAgICAgICAgLi4uZml4dHVyZVByb3ZpZGVycyxcclxuICAgICAgICAuLi5wYXJhbVByb3ZpZGVycyxcclxuICAgICAgICAuLi5qb2JQcm92aWRlcnMsXHJcbiAgICAgICAgLi4ucmVzdE9wdGlvbnMubWlkZGxld2FyZXMgYXMgVHlwZTxhbnk+W10sXHJcbiAgICAgICAgLi4ucmVzdE9wdGlvbnMuY29udHJvbGxlcnMgYXMgVHlwZTxhbnk+W10sXHJcbiAgICAgICAgLi4uc29ja2V0T3B0aW9ucy5taWRkbGV3YXJlcyBhcyBUeXBlPGFueT5bXSxcclxuICAgICAgICAuLi5zb2NrZXRPcHRpb25zLmNvbnRyb2xsZXJzIGFzIFR5cGU8YW55PltdLFxyXG4gICAgICAgIC4uLnByb3ZpZGVycyxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEVYUFJFU1MsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChjb250YWluZXI6IERlcGVuZGVuY3lDb250YWluZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb250YWluZXIucmVzb2x2ZShCYWNrZW5kUHJvdmlkZXIpLmV4cHJlc3M7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9TRVJWRVIsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChjb250YWluZXI6IERlcGVuZGVuY3lDb250YWluZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb250YWluZXIucmVzb2x2ZShCYWNrZW5kUHJvdmlkZXIpLnNlcnZlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBTT0NLRVRfU0VSVkVSLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoY29udGFpbmVyOiBEZXBlbmRlbmN5Q29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmVyLnJlc29sdmUoQmFja2VuZFByb3ZpZGVyKS5pbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIClcclxuXHJcbiAgICAvLyBDcmVhdGUgREkgY29udGFpbmVyXHJcblxyXG4gICAgY29uc3QgZGlDb250YWluZXIgPSBwYXJlbnQuY3JlYXRlQ2hpbGRDb250YWluZXIoKTtcclxuXHJcbiAgICBhbGxQcm92aWRlcnMuZm9yRWFjaChwcm92aWRlciA9PiB7XHJcbiAgICAgICAgaWYgKGlzVHlwZShwcm92aWRlcikpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5pc1JlZ2lzdGVyZWQocHJvdmlkZXIpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKHByb3ZpZGVyLCBwcm92aWRlcik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGlDb250YWluZXIucmVnaXN0ZXIocHJvdmlkZXIucHJvdmlkZSwgcHJvdmlkZXIgYXMgYW55KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGRpQ29udGFpbmVyLnJlZ2lzdGVyKERJX0NPTlRBSU5FUiwge1xyXG4gICAgICAgIHVzZVZhbHVlOiBkaUNvbnRhaW5lclxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlDb250YWluZXIucmVnaXN0ZXIoT1BFTkFQSV9WQUxJREFUSU9OLCB7XHJcbiAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5jdXN0b21WYWxpZGF0aW9uIHx8ICgoKSA9PiBudWxsKVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlDb250YWluZXJzLmFwcENvbnRhaW5lciA9IGRpQ29udGFpbmVycy5hcHBDb250YWluZXIgfHwgZGlDb250YWluZXI7XHJcblxyXG4gICAgLy8gQXV0aGVudGljYXRpb25cclxuICAgIHJlc3RPcHRpb25zLmF1dGhvcml6YXRpb25DaGVja2VyID0gYXN5bmMgKGFjdGlvbjogQWN0aW9uLCByb2xlczogYW55W10pID0+IHtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgcmVzb2x2ZVVzZXIoYWN0aW9uLnJlcXVlc3QpO1xyXG4gICAgICAgIGlmICghdXNlcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgSHR0cEVycm9yKDQwMSwgXCJBdXRoZW50aWNhdGlvbiBmYWlsZWQuIChVc2VyIGNhbid0IGJlIGZvdW5kLilcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVzZXJSb2xlcyA9IEFycmF5LmlzQXJyYXkodXNlci5yb2xlcykgPyB1c2VyLnJvbGVzIDogW107XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm9sZXMpICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IGxhc3RFcnJvciA9IG51bGw7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHJvbGUgb2Ygcm9sZXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHJvbGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IHZhbHVlVG9Qcm9taXNlKHJvbGUodXNlciwgYWN0aW9uKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0RXJyb3IgPSBlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh1c2VyUm9sZXMuaW5kZXhPZihyb2xlKSA+PSAwKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlcnJvciA9ICFsYXN0RXJyb3IgfHwgKCFsYXN0RXJyb3IubWVzc2FnZSAmJiAhaXNTdHJpbmcobGFzdEVycm9yKSlcclxuICAgICAgICAgICAgICAgID8gXCJVc2VyIGRvZXNuJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhpcyByZXNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICA6IGxhc3RFcnJvci5tZXNzYWdlIHx8IGxhc3RFcnJvcjtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEh0dHBFcnJvcig0MDEsIGBBdXRoZW50aWNhdGlvbiBmYWlsZWQuICgke2Vycm9yfSlgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgcmVzdE9wdGlvbnMuY3VycmVudFVzZXJDaGVja2VyID0gYXN5bmMgKGFjdGlvbjogQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJlc29sdmVVc2VyKGFjdGlvbi5yZXF1ZXN0KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8gRmluYWwgc2V0dXBcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBkaUNvbnRhaW5lci5yZXNvbHZlKENvbmZpZ3VyYXRpb24pO1xyXG4gICAgY29uc3QgYnAgPSBkaUNvbnRhaW5lci5yZXNvbHZlKEJhY2tlbmRQcm92aWRlcik7XHJcblxyXG4gICAgaWYgKGNvbmZpZy5yZXN0T3B0aW9ucykge1xyXG4gICAgICAgIGJwLmV4cHJlc3MudXNlKGpzb24oe1xyXG4gICAgICAgICAgICBsaW1pdDogY29uZmlndXJhdGlvbi5oYXNQYXJhbShcImpzb25MaW1pdFwiKVxyXG4gICAgICAgICAgICAgICAgPyBjb25maWd1cmF0aW9uLnJlc29sdmUoXCJqc29uTGltaXRcIilcclxuICAgICAgICAgICAgICAgIDogXCIyNTBtYlwiXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHVzZVJvdXRpbmdDb250YWluZXIoZGlDb250YWluZXIpO1xyXG4gICAgICAgIHVzZUV4cHJlc3NTZXJ2ZXIoYnAuZXhwcmVzcywgcmVzdE9wdGlvbnMpO1xyXG4gICAgICAgIC8vIFNldHVwIHJlc3QgYWkgZG9jc1xyXG4gICAgICAgIGxldCBvcGVuQXBpOiBPcGVuQXBpID0gbnVsbFxyXG4gICAgICAgIGJwLmV4cHJlc3MuZ2V0KFwiL2FwaS1kb2NzXCIsIChyZXEsIHJlcykgPT4ge1xyXG4gICAgICAgICAgICBvcGVuQXBpID0gb3BlbkFwaSB8fCBkaUNvbnRhaW5lci5nZXQoT3BlbkFwaSk7XHJcbiAgICAgICAgICAgIHJlcy5oZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXHJcbiAgICAgICAgICAgICAgICAuc3RhdHVzKDIwMClcclxuICAgICAgICAgICAgICAgIC5lbmQob3BlbkFwaS5hcGlEb2NzU3RyKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChjb25maWcuc29ja2V0T3B0aW9ucykge1xyXG4gICAgICAgIHVzZVNvY2tldENvbnRhaW5lcihkaUNvbnRhaW5lcik7XHJcbiAgICAgICAgdXNlU29ja2V0U2VydmVyKGJwLmlvLCBzb2NrZXRPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDb25uZWN0IHRvIG1vbmdvIGlmIG5lY2Vzc2FyeVxyXG4gICAgaWYgKGNvbmZpZ3VyYXRpb24uaGFzUGFyYW0oXCJtb25nb1VyaVwiKSAmJiBjb25maWd1cmF0aW9uLnJlc29sdmUoXCJtb25nb1VyaVwiKSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ29ubmVjdGluZyB0byBNb25nb0RCLi4uXCIpO1xyXG4gICAgICAgIGNvbnN0IGNvbm5lY3RvciA9IGRpQ29udGFpbmVyLnJlc29sdmUoTW9uZ29Db25uZWN0b3IpO1xyXG4gICAgICAgIGF3YWl0IGNvbm5lY3Rvci5jb25uZWN0KCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJTdWNjZXNzZnVsbHkgY29ubmVjdGVkIHRvIE1vbmdvREIuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHNldHVwU3RhdGljKGNvbmZpZy5yb290Rm9sZGVyLCBkaUNvbnRhaW5lcik7XHJcblxyXG4gICAgcmV0dXJuIGRpQ29udGFpbmVyO1xyXG59XHJcbiJdfQ==
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { createServer } from "http";
11
11
  import express_ from "express";
12
- import { injectable, singleton } from "tsyringe";
12
+ import { singleton } from "tsyringe";
13
13
  import socket_io from "socket.io";
14
14
  const express = express_;
15
15
  const socketIO = socket_io;
@@ -25,9 +25,8 @@ let BackendProvider = class BackendProvider {
25
25
  }
26
26
  };
27
27
  BackendProvider = __decorate([
28
- injectable(),
29
28
  singleton(),
30
29
  __metadata("design:paramtypes", [])
31
30
  ], BackendProvider);
32
31
  export { BackendProvider };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9iYWNrZW5kLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxRQUFtQixNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLFNBQW1DLE1BQU0sV0FBVyxDQUFDO0FBRTVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUN6QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFJZCxlQUFlLFNBQWYsZUFBZTtJQVl4QjtRQUNJLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBWEQsSUFBSSxFQUFFO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7Q0FTSixDQUFBO0FBakJZLGVBQWU7SUFGM0IsVUFBVSxFQUFFO0lBQ1osU0FBUyxFQUFFOztHQUNDLGVBQWUsQ0FpQjNCO1NBakJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVNlcnZlciwgU2VydmVyfSBmcm9tIFwiaHR0cFwiO1xyXG5pbXBvcnQgZXhwcmVzc18sIHtFeHByZXNzfSBmcm9tIFwiZXhwcmVzc1wiO1xyXG5pbXBvcnQge2luamVjdGFibGUsIHNpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCBzb2NrZXRfaW8sIHtTZXJ2ZXIgYXMgU29ja2V0U2VydmVyfSBmcm9tIFwic29ja2V0LmlvXCI7XHJcblxyXG5jb25zdCBleHByZXNzID0gZXhwcmVzc187XHJcbmNvbnN0IHNvY2tldElPID0gc29ja2V0X2lvO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIEJhY2tlbmRQcm92aWRlciB7XHJcblxyXG4gICAgcmVhZG9ubHkgZXhwcmVzczogRXhwcmVzcztcclxuICAgIHJlYWRvbmx5IHNlcnZlcjogU2VydmVyO1xyXG5cclxuICAgIGdldCBpbygpOiBTb2NrZXRTZXJ2ZXIge1xyXG4gICAgICAgIHRoaXMuaW9TZXJ2ZXIgPSB0aGlzLmlvU2VydmVyIHx8IHNvY2tldElPKHRoaXMuc2VydmVyLCB7cGF0aDogXCIvc29ja2V0XCJ9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pb1NlcnZlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW9TZXJ2ZXI6IFNvY2tldFNlcnZlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmV4cHJlc3MgPSBleHByZXNzKCk7XHJcbiAgICAgICAgdGhpcy5leHByZXNzLnNldChcInRydXN0IHByb3h5XCIsIHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2VydmVyID0gY3JlYXRlU2VydmVyKHRoaXMuZXhwcmVzcyk7XHJcbiAgICB9XHJcbn1cclxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9iYWNrZW5kLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxRQUFtQixNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sU0FBbUMsTUFBTSxXQUFXLENBQUM7QUFFNUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUdkLGVBQWUsU0FBZixlQUFlO0lBWXhCO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFYRCxJQUFJLEVBQUU7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztDQVNKLENBQUE7QUFqQlksZUFBZTtJQUQzQixTQUFTLEVBQUU7O0dBQ0MsZUFBZSxDQWlCM0I7U0FqQlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlU2VydmVyLCBTZXJ2ZXJ9IGZyb20gXCJodHRwXCI7XHJcbmltcG9ydCBleHByZXNzXywge0V4cHJlc3N9IGZyb20gXCJleHByZXNzXCI7XHJcbmltcG9ydCB7c2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHNvY2tldF9pbywge1NlcnZlciBhcyBTb2NrZXRTZXJ2ZXJ9IGZyb20gXCJzb2NrZXQuaW9cIjtcclxuXHJcbmNvbnN0IGV4cHJlc3MgPSBleHByZXNzXztcclxuY29uc3Qgc29ja2V0SU8gPSBzb2NrZXRfaW87XHJcblxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIEJhY2tlbmRQcm92aWRlciB7XHJcblxyXG4gICAgcmVhZG9ubHkgZXhwcmVzczogRXhwcmVzcztcclxuICAgIHJlYWRvbmx5IHNlcnZlcjogU2VydmVyO1xyXG5cclxuICAgIGdldCBpbygpOiBTb2NrZXRTZXJ2ZXIge1xyXG4gICAgICAgIHRoaXMuaW9TZXJ2ZXIgPSB0aGlzLmlvU2VydmVyIHx8IHNvY2tldElPKHRoaXMuc2VydmVyLCB7cGF0aDogXCIvc29ja2V0XCJ9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pb1NlcnZlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW9TZXJ2ZXI6IFNvY2tldFNlcnZlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmV4cHJlc3MgPSBleHByZXNzKCk7XHJcbiAgICAgICAgdGhpcy5leHByZXNzLnNldChcInRydXN0IHByb3h5XCIsIHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2VydmVyID0gY3JlYXRlU2VydmVyKHRoaXMuZXhwcmVzcyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -16,7 +16,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  step((generator = generator.apply(thisArg, _arguments || [])).next());
17
17
  });
18
18
  };
19
- import { injectable, Lifecycle, scoped } from "tsyringe";
19
+ import { singleton } from "tsyringe";
20
20
  import { MongoConnector } from "./mongo-connector";
21
21
  import { Configuration } from "./configuration";
22
22
  import { CacheProcessor } from "./cache-processor";
@@ -86,9 +86,8 @@ let Cache = class Cache {
86
86
  }
87
87
  };
88
88
  Cache = __decorate([
89
- injectable(),
90
- scoped(Lifecycle.ContainerScoped),
89
+ singleton(),
91
90
  __metadata("design:paramtypes", [MongoConnector, Configuration, CacheProcessor])
92
91
  ], Cache);
93
92
  export { Cache };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0lBWXBDLEtBQUssU0FBTCxLQUFLO0lBSWQsWUFBcUIsU0FBeUIsRUFBWSxNQUFxQixFQUFZLGNBQThCO1FBQXBHLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFZLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUV6SCxDQUFDO0lBRWUsT0FBTzs7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2FBQ3BFO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1lBQzdGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQzdCLEVBQUMsU0FBUyxFQUFFLENBQUMsRUFBQyxFQUNkLEVBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFDLENBQzFCLENBQUM7UUFDTixDQUFDO0tBQUE7SUFFSyxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxHQUFZLEVBQUUsc0JBQThCLElBQUksRUFBRSxPQUFZLEVBQUU7O1lBQy9GLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxHQUFlO2dCQUNyQixHQUFHLEVBQUUsR0FBRztnQkFDUixJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hELElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDL0MsbUJBQW1CO2FBQ3RCLENBQUM7WUFDRixJQUFJLEdBQUcsRUFBRTtnQkFDTCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUM5QjtZQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUMxRSxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFSyxHQUFHLENBQUMsR0FBVzs7WUFDakIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxFQUFFO2dCQUNoRCxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDckU7WUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxHQUFXLEVBQUUsT0FBMkIsRUFBRSxHQUFZLEVBQUUsc0JBQThCLElBQUksRUFBRSxPQUFZLEVBQUU7O1lBQ3JILElBQUk7Z0JBQ0EsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDUixPQUFPLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDL0U7UUFDTCxDQUFDO0tBQUE7SUFFSyxNQUFNLENBQUMsR0FBVzs7WUFDcEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7S0FBQTtDQUNKLENBQUE7QUE3RFksS0FBSztJQUZqQixVQUFVLEVBQUU7SUFDWixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztxQ0FLRSxjQUFjLEVBQW9CLGFBQWEsRUFBNEIsY0FBYztHQUpoSCxLQUFLLENBNkRqQjtTQTdEWSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBMaWZlY3ljbGUsIHNjb3BlZH0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSBcIm1vbmdvZGJcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQge0NhY2hlUHJvY2Vzc29yfSBmcm9tIFwiLi9jYWNoZS1wcm9jZXNzb3JcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNhY2hlSXRlbSB7XHJcbiAgICBfaWQ6IHN0cmluZztcclxuICAgIGRhdGE6IGFueTtcclxuICAgIHRhZ3M/OiBhbnk7XHJcbiAgICBleHBpcmF0aW9uVGltZXN0YW1wPzogbnVtYmVyO1xyXG4gICAgZXhwaXJlc0F0PzogbnVtYmVyO1xyXG59XHJcblxyXG5AaW5qZWN0YWJsZSgpXHJcbkBzY29wZWQoTGlmZWN5Y2xlLkNvbnRhaW5lclNjb3BlZClcclxuZXhwb3J0IGNsYXNzIENhY2hlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxJQ2FjaGVJdGVtPjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25uZWN0b3I6IE1vbmdvQ29ubmVjdG9yLCBwcm90ZWN0ZWQgY29uZmlnOiBDb25maWd1cmF0aW9uLCBwcm90ZWN0ZWQgY2FjaGVQcm9jZXNzb3I6IENhY2hlUHJvY2Vzc29yKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBwcmVwYXJlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy5jb25uZWN0b3IuZGF0YWJhc2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZb3UgY2FuJ3QgdXNlIGNhY2hlIHdpdGhvdXQgbW9uZ28gY29ubmVjdGlvbiFgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gdGhpcy5jb25uZWN0b3IuZGF0YWJhc2UuY29sbGVjdGlvbih0aGlzLmNvbmZpZy5yZXNvbHZlKFwiY2FjaGVDb2xsZWN0aW9uXCIpKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uY3JlYXRlSW5kZXgoXHJcbiAgICAgICAgICAgIHtleHBpcmVzQXQ6IDF9LFxyXG4gICAgICAgICAgICB7ZXhwaXJlQWZ0ZXJTZWNvbmRzOiAwfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCB0dGw/OiBudW1iZXIsIGV4cGlyYXRpb25UaW1lc3RhbXA6IG51bWJlciA9IG51bGwsIHRhZ3M6IGFueSA9IHt9KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmUoKTtcclxuICAgICAgICBjb25zdCBpdGVtOiBJQ2FjaGVJdGVtID0ge1xyXG4gICAgICAgICAgICBfaWQ6IGtleSxcclxuICAgICAgICAgICAgZGF0YTogYXdhaXQgdGhpcy5jYWNoZVByb2Nlc3Nvci5zZXJpYWxpemUodmFsdWUpLFxyXG4gICAgICAgICAgICB0YWdzOiBhd2FpdCB0aGlzLmNhY2hlUHJvY2Vzc29yLnNlcmlhbGl6ZSh0YWdzKSxcclxuICAgICAgICAgICAgZXhwaXJhdGlvblRpbWVzdGFtcCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh0dGwpIHtcclxuICAgICAgICAgICAgY29uc3Qgbm93ID0gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApO1xyXG4gICAgICAgICAgICBpdGVtLmV4cGlyZXNBdCA9IG5vdyArIHR0bDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLnVwZGF0ZU9uZSh7X2lkOiBrZXl9LCB7JHNldDogaXRlbX0sIHt1cHNlcnQ6IHRydWV9KTtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0KGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmUoKTtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5maW5kT25lKHtfaWQ6IGtleX0pO1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcclxuICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmV4cGlyZXNBdCAmJiBpdGVtLmV4cGlyZXNBdCA8IG5vdykge1xyXG4gICAgICAgICAgICBpdGVtID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FjaGUgcHJvYmFibHkgZG9lc24ndCBleGlzdHMgd2l0aCBrZXk6ICR7a2V5fWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVByb2Nlc3Nvci5kZXNlcmlhbGl6ZShpdGVtLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldE9yU2V0KGtleTogc3RyaW5nLCB2YWx1ZUNiOiAoKSA9PiBQcm9taXNlPGFueT4sIHR0bD86IG51bWJlciwgZXhwaXJhdGlvblRpbWVzdGFtcDogbnVtYmVyID0gbnVsbCwgdGFnczogYW55ID0ge30pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldChrZXkpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0KGtleSwgYXdhaXQgdmFsdWVDYigpLCB0dGwsIGV4cGlyYXRpb25UaW1lc3RhbXAsIHRhZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWxldGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZSgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGVPbmUoe19pZDoga2V5fSk7XHJcbiAgICB9XHJcbn1cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVuQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztJQVdwQyxLQUFLLFNBQUwsS0FBSztJQUlkLFlBQXFCLFNBQXlCLEVBQVksTUFBcUIsRUFBWSxjQUE4QjtRQUFwRyxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFZLFdBQU0sR0FBTixNQUFNLENBQWU7UUFBWSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFFekgsQ0FBQztJQUVlLE9BQU87O1lBQ25CLElBQUksSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQzthQUNwRTtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUM3RixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUM3QixFQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUMsRUFDZCxFQUFDLGtCQUFrQixFQUFFLENBQUMsRUFBQyxDQUMxQixDQUFDO1FBQ04sQ0FBQztLQUFBO0lBRUssR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsR0FBWSxFQUFFLHNCQUE4QixJQUFJLEVBQUUsT0FBWSxFQUFFOztZQUMvRixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksR0FBZTtnQkFDckIsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLG1CQUFtQjthQUN0QixDQUFDO1lBQ0YsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7YUFDOUI7WUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDMUUsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUssR0FBRyxDQUFDLEdBQVc7O1lBQ2pCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDaEQsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNmO1lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDUCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ3JFO1lBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxDQUFDO0tBQUE7SUFFSyxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQTJCLEVBQUUsR0FBWSxFQUFFLHNCQUE4QixJQUFJLEVBQUUsT0FBWSxFQUFFOztZQUNySCxJQUFJO2dCQUNBLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzlCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO2FBQy9FO1FBQ0wsQ0FBQztLQUFBO0lBRUssTUFBTSxDQUFDLEdBQVc7O1lBQ3BCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDO0tBQUE7Q0FDSixDQUFBO0FBN0RZLEtBQUs7SUFEakIsU0FBUyxFQUFFO3FDQUt3QixjQUFjLEVBQW9CLGFBQWEsRUFBNEIsY0FBYztHQUpoSCxLQUFLLENBNkRqQjtTQTdEWSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7TW9uZ29Db25uZWN0b3J9IGZyb20gXCIuL21vbmdvLWNvbm5lY3RvclwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtDYWNoZVByb2Nlc3Nvcn0gZnJvbSBcIi4vY2FjaGUtcHJvY2Vzc29yXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDYWNoZUl0ZW0ge1xyXG4gICAgX2lkOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBhbnk7XHJcbiAgICB0YWdzPzogYW55O1xyXG4gICAgZXhwaXJhdGlvblRpbWVzdGFtcD86IG51bWJlcjtcclxuICAgIGV4cGlyZXNBdD86IG51bWJlcjtcclxufVxyXG5cclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbGxlY3Rpb246IENvbGxlY3Rpb248SUNhY2hlSXRlbT47XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvciwgcHJvdGVjdGVkIGNvbmZpZzogQ29uZmlndXJhdGlvbiwgcHJvdGVjdGVkIGNhY2hlUHJvY2Vzc29yOiBDYWNoZVByb2Nlc3Nvcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgcHJlcGFyZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuY29ubmVjdG9yLmRhdGFiYXNlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgWW91IGNhbid0IHVzZSBjYWNoZSB3aXRob3V0IG1vbmdvIGNvbm5lY3Rpb24hYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHRoaXMuY29ubmVjdG9yLmRhdGFiYXNlLmNvbGxlY3Rpb24odGhpcy5jb25maWcucmVzb2x2ZShcImNhY2hlQ29sbGVjdGlvblwiKSk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmNyZWF0ZUluZGV4KFxyXG4gICAgICAgICAgICB7ZXhwaXJlc0F0OiAxfSxcclxuICAgICAgICAgICAge2V4cGlyZUFmdGVyU2Vjb25kczogMH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgdHRsPzogbnVtYmVyLCBleHBpcmF0aW9uVGltZXN0YW1wOiBudW1iZXIgPSBudWxsLCB0YWdzOiBhbnkgPSB7fSk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlKCk7XHJcbiAgICAgICAgY29uc3QgaXRlbTogSUNhY2hlSXRlbSA9IHtcclxuICAgICAgICAgICAgX2lkOiBrZXksXHJcbiAgICAgICAgICAgIGRhdGE6IGF3YWl0IHRoaXMuY2FjaGVQcm9jZXNzb3Iuc2VyaWFsaXplKHZhbHVlKSxcclxuICAgICAgICAgICAgdGFnczogYXdhaXQgdGhpcy5jYWNoZVByb2Nlc3Nvci5zZXJpYWxpemUodGFncyksXHJcbiAgICAgICAgICAgIGV4cGlyYXRpb25UaW1lc3RhbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAodHRsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcclxuICAgICAgICAgICAgaXRlbS5leHBpcmVzQXQgPSBub3cgKyB0dGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi51cGRhdGVPbmUoe19pZDoga2V5fSwgeyRzZXQ6IGl0ZW19LCB7dXBzZXJ0OiB0cnVlfSk7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlKCk7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZmluZE9uZSh7X2lkOiBrZXl9KTtcclxuICAgICAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCk7XHJcbiAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5leHBpcmVzQXQgJiYgaXRlbS5leHBpcmVzQXQgPCBub3cpIHtcclxuICAgICAgICAgICAgaXRlbSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaXRlbSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhY2hlIHByb2JhYmx5IGRvZXNuJ3QgZXhpc3RzIHdpdGgga2V5OiAke2tleX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVQcm9jZXNzb3IuZGVzZXJpYWxpemUoaXRlbS5kYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRPclNldChrZXk6IHN0cmluZywgdmFsdWVDYjogKCkgPT4gUHJvbWlzZTxhbnk+LCB0dGw/OiBudW1iZXIsIGV4cGlyYXRpb25UaW1lc3RhbXA6IG51bWJlciA9IG51bGwsIHRhZ3M6IGFueSA9IHt9KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXQoa2V5KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNldChrZXksIGF3YWl0IHZhbHVlQ2IoKSwgdHRsLCBleHBpcmF0aW9uVGltZXN0YW1wLCB0YWdzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlKGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmUoKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZGVsZXRlT25lKHtfaWQ6IGtleX0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -16,7 +16,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  step((generator = generator.apply(thisArg, _arguments || [])).next());
17
17
  });
18
18
  };
19
- import { injectable, singleton } from "tsyringe";
19
+ import { singleton } from "tsyringe";
20
20
  import { createTransport } from "nodemailer";
21
21
  import { TemplateRenderer } from "./template-renderer";
22
22
  import { Configuration } from "./configuration";
@@ -51,9 +51,8 @@ let MailSender = class MailSender {
51
51
  }
52
52
  };
53
53
  MailSender = __decorate([
54
- injectable(),
55
54
  singleton(),
56
55
  __metadata("design:paramtypes", [Configuration, TemplateRenderer])
57
56
  ], MailSender);
58
57
  export { MailSender };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC1zZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpbC1zZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUczQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7SUFhakMsVUFBVSxTQUFWLFVBQVU7SUFRbkIsWUFBcUIsTUFBcUIsRUFBVyxRQUEwQjtRQUExRCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDM0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUM7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3JDLElBQUksRUFBRTtnQkFDRixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2FBQzVDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQWJELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQWFLLFFBQVEsQ0FBQyxRQUFnQixFQUFFLE9BQW9COztZQUNqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO2dCQUM5RCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUNoQyxPQUFPO2dCQUNQLElBQUk7YUFDUCxDQUFDLENBQUM7UUFDUCxDQUFDO0tBQUE7Q0FDSixDQUFBO0FBOUJZLFVBQVU7SUFGdEIsVUFBVSxFQUFFO0lBQ1osU0FBUyxFQUFFO3FDQVNxQixhQUFhLEVBQXFCLGdCQUFnQjtHQVJ0RSxVQUFVLENBOEJ0QjtTQTlCWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge2NyZWF0ZVRyYW5zcG9ydH0gZnJvbSBcIm5vZGVtYWlsZXJcIjtcclxuaW1wb3J0ICogYXMgTWFpbCBmcm9tIFwibm9kZW1haWxlci9saWIvbWFpbGVyXCI7XHJcblxyXG5pbXBvcnQge1RlbXBsYXRlUmVuZGVyZXJ9IGZyb20gXCIuL3RlbXBsYXRlLXJlbmRlcmVyXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSBcIi4vdHJhbnNsYXRvclwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFpbE9wdGlvbnMge1xyXG4gICAgdG86IHN0cmluZztcclxuICAgIGZyb20/OiBzdHJpbmc7XHJcbiAgICBzdWJqZWN0Pzogc3RyaW5nO1xyXG4gICAgdGVtcGxhdGU6IHN0cmluZztcclxuICAgIGNvbnRleHQ6IGFueTtcclxuICAgIGF0dGFjaG1lbnRzPzogTWFpbC5BdHRhY2htZW50W11cclxufVxyXG5cclxuQGluamVjdGFibGUoKVxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIE1haWxTZW5kZXIge1xyXG5cclxuICAgIHJlYWRvbmx5IHRyYW5zcG9ydGVyOiBNYWlsO1xyXG5cclxuICAgIGdldCB0cmFuc2xhdG9yKCk6IFRyYW5zbGF0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLnRyYW5zbGF0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29uZmlnOiBDb25maWd1cmF0aW9uLCByZWFkb25seSByZW5kZXJlcjogVGVtcGxhdGVSZW5kZXJlcikge1xyXG4gICAgICAgIHRoaXMudHJhbnNwb3J0ZXIgPSBjcmVhdGVUcmFuc3BvcnQoe1xyXG4gICAgICAgICAgICBob3N0OiB0aGlzLmNvbmZpZy5yZXNvbHZlKFwic210cEhvc3RcIiksXHJcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMuY29uZmlnLnJlc29sdmUoXCJzbXRwUG9ydFwiKSxcclxuICAgICAgICAgICAgYXV0aDoge1xyXG4gICAgICAgICAgICAgICAgdXNlcjogdGhpcy5jb25maWcucmVzb2x2ZShcInNtdHBVc2VyXCIpLFxyXG4gICAgICAgICAgICAgICAgcGFzczogdGhpcy5jb25maWcucmVzb2x2ZShcInNtdHBQYXNzd29yZFwiKSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNlbmRNYWlsKGxhbmd1YWdlOiBzdHJpbmcsIG9wdGlvbnM6IE1haWxPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gYXdhaXQgdGhpcy50cmFuc2xhdG9yLmdldFRyYW5zbGF0aW9uKGxhbmd1YWdlLCBvcHRpb25zLnN1YmplY3QgfHwgXCItXCIpO1xyXG4gICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLnJlbmRlcmVyLnJlbmRlcihvcHRpb25zLnRlbXBsYXRlLCBsYW5ndWFnZSwgb3B0aW9ucy5jb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc3BvcnRlci5zZW5kTWFpbCh7XHJcbiAgICAgICAgICAgIGZyb206IG9wdGlvbnMuZnJvbSB8fCB0aGlzLmNvbmZpZy5yZXNvbHZlKFwibWFpbFNlbmRlckFkZHJlc3NcIiksXHJcbiAgICAgICAgICAgIHRvOiBvcHRpb25zLnRvLFxyXG4gICAgICAgICAgICBhdHRhY2htZW50czogb3B0aW9ucy5hdHRhY2htZW50cyxcclxuICAgICAgICAgICAgc3ViamVjdCxcclxuICAgICAgICAgICAgaHRtbFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC1zZW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpbC1zZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztJQVlqQyxVQUFVLFNBQVYsVUFBVTtJQVFuQixZQUFxQixNQUFxQixFQUFXLFFBQTBCO1FBQTFELFdBQU0sR0FBTixNQUFNLENBQWU7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMzRSxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDckMsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7YUFDNUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBYkQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBYUssUUFBUSxDQUFDLFFBQWdCLEVBQUUsT0FBb0I7O1lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7WUFDdkYsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztnQkFDN0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7Z0JBQzlELEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDZCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLE9BQU87Z0JBQ1AsSUFBSTthQUNQLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtDQUNKLENBQUE7QUE5QlksVUFBVTtJQUR0QixTQUFTLEVBQUU7cUNBU3FCLGFBQWEsRUFBcUIsZ0JBQWdCO0dBUnRFLFVBQVUsQ0E4QnRCO1NBOUJZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7Y3JlYXRlVHJhbnNwb3J0fSBmcm9tIFwibm9kZW1haWxlclwiO1xyXG5pbXBvcnQgKiBhcyBNYWlsIGZyb20gXCJub2RlbWFpbGVyL2xpYi9tYWlsZXJcIjtcclxuXHJcbmltcG9ydCB7VGVtcGxhdGVSZW5kZXJlcn0gZnJvbSBcIi4vdGVtcGxhdGUtcmVuZGVyZXJcIjtcclxuaW1wb3J0IHtUcmFuc2xhdG9yfSBmcm9tIFwiLi90cmFuc2xhdG9yXCI7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYWlsT3B0aW9ucyB7XHJcbiAgICB0bzogc3RyaW5nO1xyXG4gICAgZnJvbT86IHN0cmluZztcclxuICAgIHN1YmplY3Q/OiBzdHJpbmc7XHJcbiAgICB0ZW1wbGF0ZTogc3RyaW5nO1xyXG4gICAgY29udGV4dDogYW55O1xyXG4gICAgYXR0YWNobWVudHM/OiBNYWlsLkF0dGFjaG1lbnRbXVxyXG59XHJcblxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIE1haWxTZW5kZXIge1xyXG5cclxuICAgIHJlYWRvbmx5IHRyYW5zcG9ydGVyOiBNYWlsO1xyXG5cclxuICAgIGdldCB0cmFuc2xhdG9yKCk6IFRyYW5zbGF0b3Ige1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLnRyYW5zbGF0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29uZmlnOiBDb25maWd1cmF0aW9uLCByZWFkb25seSByZW5kZXJlcjogVGVtcGxhdGVSZW5kZXJlcikge1xyXG4gICAgICAgIHRoaXMudHJhbnNwb3J0ZXIgPSBjcmVhdGVUcmFuc3BvcnQoe1xyXG4gICAgICAgICAgICBob3N0OiB0aGlzLmNvbmZpZy5yZXNvbHZlKFwic210cEhvc3RcIiksXHJcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMuY29uZmlnLnJlc29sdmUoXCJzbXRwUG9ydFwiKSxcclxuICAgICAgICAgICAgYXV0aDoge1xyXG4gICAgICAgICAgICAgICAgdXNlcjogdGhpcy5jb25maWcucmVzb2x2ZShcInNtdHBVc2VyXCIpLFxyXG4gICAgICAgICAgICAgICAgcGFzczogdGhpcy5jb25maWcucmVzb2x2ZShcInNtdHBQYXNzd29yZFwiKSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNlbmRNYWlsKGxhbmd1YWdlOiBzdHJpbmcsIG9wdGlvbnM6IE1haWxPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gYXdhaXQgdGhpcy50cmFuc2xhdG9yLmdldFRyYW5zbGF0aW9uKGxhbmd1YWdlLCBvcHRpb25zLnN1YmplY3QgfHwgXCItXCIpO1xyXG4gICAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCB0aGlzLnJlbmRlcmVyLnJlbmRlcihvcHRpb25zLnRlbXBsYXRlLCBsYW5ndWFnZSwgb3B0aW9ucy5jb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc3BvcnRlci5zZW5kTWFpbCh7XHJcbiAgICAgICAgICAgIGZyb206IG9wdGlvbnMuZnJvbSB8fCB0aGlzLmNvbmZpZy5yZXNvbHZlKFwibWFpbFNlbmRlckFkZHJlc3NcIiksXHJcbiAgICAgICAgICAgIHRvOiBvcHRpb25zLnRvLFxyXG4gICAgICAgICAgICBhdHRhY2htZW50czogb3B0aW9ucy5hdHRhY2htZW50cyxcclxuICAgICAgICAgICAgc3ViamVjdCxcclxuICAgICAgICAgICAgaHRtbFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -16,7 +16,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  step((generator = generator.apply(thisArg, _arguments || [])).next());
17
17
  });
18
18
  };
19
- import { injectable, singleton } from "tsyringe";
19
+ import { singleton } from "tsyringe";
20
20
  import { GridFSBucket } from "mongodb";
21
21
  import { connect } from "mongoose";
22
22
  import { Configuration } from "./configuration";
@@ -51,9 +51,8 @@ let MongoConnector = class MongoConnector {
51
51
  }
52
52
  };
53
53
  MongoConnector = __decorate([
54
- injectable(),
55
54
  singleton(),
56
55
  __metadata("design:paramtypes", [Configuration])
57
56
  ], MongoConnector);
58
57
  export { MongoConnector };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21vbmdvLWNvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLEVBQUssWUFBWSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0lBS2pDLGNBQWMsU0FBZCxjQUFjO0lBa0J2QixZQUFxQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFwQkQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBWUssT0FBTzs7WUFDVCxJQUFJLElBQUksQ0FBQyxFQUFFO2dCQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFXLEVBQUU7Z0JBQ3pFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7YUFDcEQsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQVMsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQUE7Q0FDSixDQUFBO0FBbENZLGNBQWM7SUFGMUIsVUFBVSxFQUFFO0lBQ1osU0FBUyxFQUFFO3FDQW1CNEIsYUFBYTtHQWxCeEMsY0FBYyxDQWtDMUI7U0FsQ1ksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0YWJsZSwgc2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtEYiwgR3JpZEZTQnVja2V0fSBmcm9tIFwibW9uZ29kYlwiO1xyXG5pbXBvcnQge2Nvbm5lY3QsIENvbm5lY3Rpb259IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb259IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtnZXRUeXBlfSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBNb25nb0Nvbm5lY3RvciB7XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKTogQ29ubmVjdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YWJhc2UoKTogRGIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBidWNrZXQoKTogR3JpZEZTQnVja2V0IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mc0J1Y2tldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY29ubjogQ29ubmVjdGlvbjtcclxuICAgIHByb3RlY3RlZCBkYjogRGI7XHJcbiAgICBwcm90ZWN0ZWQgZnNCdWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRiID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8RGI+IHtcclxuICAgICAgICBpZiAodGhpcy5kYikgcmV0dXJuIHRoaXMuZGI7XHJcbiAgICAgICAgdGhpcy5jb25uID0gKGF3YWl0IGNvbm5lY3QodGhpcy5jb25maWd1cmF0aW9uLnJlc29sdmUoXCJtb25nb1VyaVwiKSBhcyBzdHJpbmcsIHtcclxuICAgICAgICAgICAgZGJOYW1lOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvRGJcIiksXHJcbiAgICAgICAgICAgIHVzZXI6IHRoaXMuY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibW9uZ29Vc2VyXCIpLFxyXG4gICAgICAgICAgICBwYXNzOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvUGFzc3dvcmRcIilcclxuICAgICAgICB9KSkuY29ubmVjdGlvbjtcclxuICAgICAgICB0aGlzLmRiID0gdGhpcy5jb25uLmRiIGFzIGFueTtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbmV3IEdyaWRGU0J1Y2tldCh0aGlzLmRiLCB7YnVja2V0TmFtZTogXCJhc3NldHNcIn0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28tY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21vbmdvLWNvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBSyxZQUFZLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDekMsT0FBTyxFQUFDLE9BQU8sRUFBYSxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7SUFHakMsY0FBYyxTQUFkLGNBQWM7SUFrQnZCLFlBQXFCLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQXBCRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFZSyxPQUFPOztZQUNULElBQUksSUFBSSxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQVcsRUFBRTtnQkFDekUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztnQkFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQzthQUNwRCxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDZixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7S0FBQTtDQUNKLENBQUE7QUFsQ1ksY0FBYztJQUQxQixTQUFTLEVBQUU7cUNBbUI0QixhQUFhO0dBbEJ4QyxjQUFjLENBa0MxQjtTQWxDWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge0RiLCBHcmlkRlNCdWNrZXR9IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7Y29ubmVjdCwgQ29ubmVjdGlvbn0gZnJvbSBcIm1vbmdvb3NlXCI7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xyXG5cclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBNb25nb0Nvbm5lY3RvciB7XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKTogQ29ubmVjdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YWJhc2UoKTogRGIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBidWNrZXQoKTogR3JpZEZTQnVja2V0IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mc0J1Y2tldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY29ubjogQ29ubmVjdGlvbjtcclxuICAgIHByb3RlY3RlZCBkYjogRGI7XHJcbiAgICBwcm90ZWN0ZWQgZnNCdWNrZXQ6IEdyaWRGU0J1Y2tldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5jb25uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRiID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8RGI+IHtcclxuICAgICAgICBpZiAodGhpcy5kYikgcmV0dXJuIHRoaXMuZGI7XHJcbiAgICAgICAgdGhpcy5jb25uID0gKGF3YWl0IGNvbm5lY3QodGhpcy5jb25maWd1cmF0aW9uLnJlc29sdmUoXCJtb25nb1VyaVwiKSBhcyBzdHJpbmcsIHtcclxuICAgICAgICAgICAgZGJOYW1lOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvRGJcIiksXHJcbiAgICAgICAgICAgIHVzZXI6IHRoaXMuY29uZmlndXJhdGlvbi5yZXNvbHZlKFwibW9uZ29Vc2VyXCIpLFxyXG4gICAgICAgICAgICBwYXNzOiB0aGlzLmNvbmZpZ3VyYXRpb24ucmVzb2x2ZShcIm1vbmdvUGFzc3dvcmRcIilcclxuICAgICAgICB9KSkuY29ubmVjdGlvbjtcclxuICAgICAgICB0aGlzLmRiID0gdGhpcy5jb25uLmRiIGFzIGFueTtcclxuICAgICAgICB0aGlzLmZzQnVja2V0ID0gbmV3IEdyaWRGU0J1Y2tldCh0aGlzLmRiLCB7YnVja2V0TmFtZTogXCJhc3NldHNcIn0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -49,7 +49,10 @@ let OpenApi = class OpenApi {
49
49
  return __awaiter(this, void 0, void 0, function* () {
50
50
  if (src.$ref) {
51
51
  const schemas = this.apiDocs.components.schemas;
52
- return this.schemaToExample(schemas[src.$ref.replace("#/components/schemas/", "")], req);
52
+ const schema = src.$ref
53
+ .replace("#/components/schemas/", "")
54
+ .replace("#/definitions/", "");
55
+ return this.schemaToExample(schemas[schema], req);
53
56
  }
54
57
  let schema = src;
55
58
  if (schema.oneOf) {
@@ -134,4 +137,4 @@ OpenApi = __decorate([
134
137
  __metadata("design:paramtypes", [Object, Object])
135
138
  ], OpenApi);
136
139
  export { OpenApi };
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvb3Blbi1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFM0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFrQyxrQkFBa0IsRUFBb0IsTUFBTSxpQkFBaUIsQ0FBQztJQUd2RyxPQUFPLFNBQVAsT0FBTztJQWVoQixZQUE0QyxTQUErQixFQUN6QixnQkFBbUM7UUFEekMsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNqRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBYkQsSUFBSSxPQUFPO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixJ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QTtxQkFDSjtvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQzthQUNKO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0osQ0FBQTtBQWpHWSxPQUFPO0lBRG5CLFNBQVMsRUFBRTtJQWdCSyxXQUFBLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNwQixXQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBOztHQWhCOUIsT0FBTyxDQWlHbkI7U0FqR1ksT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge09wZW5BUElPYmplY3QsIFJlZmVyZW5jZU9iamVjdCwgU2NoZW1hT2JqZWN0fSBmcm9tIFwib3BlbmFwaTMtdHNcIjtcclxuaW1wb3J0IHtnZXRNZXRhZGF0YUFyZ3NTdG9yYWdlfSBmcm9tIFwicm91dGluZy1jb250cm9sbGVyc1wiO1xyXG5pbXBvcnQge3JvdXRpbmdDb250cm9sbGVyc1RvU3BlY30gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnMtb3BlbmFwaVwiO1xyXG5pbXBvcnQge3ZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXN9IGZyb20gXCJjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYVwiO1xyXG5pbXBvcnQge2RlZmF1bHRNZXRhZGF0YVN0b3JhZ2V9IGZyb20gXCJjbGFzcy10cmFuc2Zvcm1lci9zdG9yYWdlXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblR5cGVzfSBmcm9tIFwiY2xhc3MtdmFsaWRhdG9yXCI7XHJcbmltcG9ydCB7aXNEZWZpbmVkLCBpc0Z1bmN0aW9uLCBpc09iamVjdH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCB7SXNGaWxlLCBJc09iamVjdElkfSBmcm9tIFwiLi4vdmFsaWRhdG9yc1wiO1xyXG5pbXBvcnQge0RJX0NPTlRBSU5FUiwgSURlcGVuZGVuY3lDb250YWluZXIsIElSZXF1ZXN0LCBPUEVOQVBJX1ZBTElEQVRJT04sIE9wZW5BcGlWYWxpZGF0aW9ufSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIE9wZW5BcGkge1xyXG5cclxuICAgIHByb3RlY3RlZCBkb2NzOiBPcGVuQVBJT2JqZWN0O1xyXG4gICAgcHJvdGVjdGVkIGRvY3NTdHI6IHN0cmluZztcclxuXHJcbiAgICBnZXQgYXBpRG9jcygpOiBPcGVuQVBJT2JqZWN0IHtcclxuICAgICAgICBpZiAoIXRoaXMuZG9jcykgdGhpcy5kb2NzID0gdGhpcy5jcmVhdGVBcGlEb2NzKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXBpRG9jc1N0cigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5kb2NzU3RyKSB0aGlzLmRvY3NTdHIgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmFwaURvY3MpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3NTdHI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQGluamVjdChESV9DT05UQUlORVIpIHByb3RlY3RlZCBjb250YWluZXI6IElEZXBlbmRlbmN5Q29udGFpbmVyLFxyXG4gICAgICAgICAgICAgICAgQGluamVjdChPUEVOQVBJX1ZBTElEQVRJT04pIHByb3RlY3RlZCBjdXN0b21WYWxpZGF0aW9uOiBPcGVuQXBpVmFsaWRhdGlvbikge1xyXG4gICAgICAgIHRoaXMuZG9jcyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2NoZW1hVG9FeGFtcGxlKHNyYzogUmVmZXJlbmNlT2JqZWN0IHwgU2NoZW1hT2JqZWN0LCByZXE/OiBJUmVxdWVzdCk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgaWYgKHNyYy4kcmVmKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYXMgPSB0aGlzLmFwaURvY3MuY29tcG9uZW50cy5zY2hlbWFzO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlbWFUb0V4YW1wbGUoc2NoZW1hc1tzcmMuJHJlZi5yZXBsYWNlKFwiIy9jb21wb25lbnRzL3NjaGVtYXMvXCIsIFwiXCIpXSwgcmVxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHNjaGVtYSA9IHNyYyBhcyBTY2hlbWFPYmplY3Q7XHJcbiAgICAgICAgaWYgKHNjaGVtYS5vbmVPZikge1xyXG4gICAgICAgICAgICBzY2hlbWEgPSBPYmplY3QuYXNzaWduKHt9LCBzY2hlbWEsIHNjaGVtYS5vbmVPZlswXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7fTtcclxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpLm1hcChhc3luYyBrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBhd2FpdCB0aGlzLnNjaGVtYVRvRXhhbXBsZShzY2hlbWEucHJvcGVydGllc1trZXldLCByZXEpO1xyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzY2hlbWEudHlwZSA9PT0gXCJhcnJheVwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbYXdhaXQgdGhpcy5zY2hlbWFUb0V4YW1wbGUoc2NoZW1hLml0ZW1zLCByZXEpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIGlmIChpc0RlZmluZWQoc2NoZW1hLmRlZmF1bHQpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihzY2hlbWEuZGVmYXVsdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NoZW1hLmRlZmF1bHQodGhpcy5jb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5kZWZhdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzY2hlbWEuZm9ybWF0ID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnN1YnN0cigwLCAxMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNjaGVtYS5mb3JtYXQgPT0gXCJkYXRlLXRpbWVcIikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2NoZW1hLmVudW0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzY2hlbWEuZW51bVswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzY2hlbWEuZGVmYXVsdCA/PyAwO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc2NoZW1hLnR5cGUgPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzY2hlbWEuZGVmYXVsdCA/PyBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc2NoZW1hLmRlZmF1bHQgPz8gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUFwaURvY3MoKTogT3BlbkFQSU9iamVjdCB7XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldE1ldGFkYXRhQXJnc1N0b3JhZ2UoKTtcclxuICAgICAgICBjb25zdCBkb2NzID0gcm91dGluZ0NvbnRyb2xsZXJzVG9TcGVjKHN0b3JhZ2UpO1xyXG4gICAgICAgIGRvY3MuYmFzZVBhdGggPSBcIi9hcGkvXCI7XHJcbiAgICAgICAgZG9jcy5kZWZpbml0aW9ucyA9IHZhbGlkYXRpb25NZXRhZGF0YXNUb1NjaGVtYXMoe1xyXG4gICAgICAgICAgICBjbGFzc1RyYW5zZm9ybWVyTWV0YWRhdGFTdG9yYWdlOiBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsQ29udmVydGVyczoge1xyXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRpb25UeXBlcy5DVVNUT01fVkFMSURBVElPTl06IChtZXRhLCBvcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gaXNGdW5jdGlvbih0aGlzLmN1c3RvbVZhbGlkYXRpb24pID8gdGhpcy5jdXN0b21WYWxpZGF0aW9uKG1ldGEsIG9wdGlvbnMpIDogdGhpcy5jdXN0b21WYWxpZGF0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChyZXMpKSByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gbWV0YS5jb25zdHJhaW50cyB8fCBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0YS5jb25zdHJhaW50Q2xzID09PSBJc0ZpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpOiBjb25zdHJhaW50c1swXSB8fCBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGEuY29uc3RyYWludENscyA9PT0gSXNPYmplY3RJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IGNvbnN0cmFpbnRzWzBdIHx8IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGk6IGNvbnN0cmFpbnRzWzFdIHx8IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3MuY29tcG9uZW50cy5zY2hlbWFzID0gZG9jcy5kZWZpbml0aW9ucztcclxuICAgICAgICByZXR1cm4gZG9jcztcclxuICAgIH1cclxufVxyXG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvb3Blbi1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFM0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFrQyxrQkFBa0IsRUFBb0IsTUFBTSxpQkFBaUIsQ0FBQztJQUd2RyxPQUFPLFNBQVAsT0FBTztJQWVoQixZQUE0QyxTQUErQixFQUN6QixnQkFBbUM7UUFEekMsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFDekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNqRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBYkQsSUFBSSxPQUFPO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBT0ssZUFBZSxDQUFDLEdBQW1DLEVBQUUsR0FBYzs7O1lBQ3JFLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJO3FCQUNsQixPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO3FCQUNwQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDckQ7WUFDRCxJQUFJLE1BQU0sR0FBRyxHQUFtQixDQUFDO1lBQ2pDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RDtZQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFNLEdBQUcsRUFBQyxFQUFFO29CQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztnQkFDSixPQUFPLE1BQU0sQ0FBQzthQUNqQjtZQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDMUIsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMzQixJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQzVCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ3pDO29CQUNELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztpQkFDekI7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQ2pEO2dCQUNELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxXQUFXLEVBQUU7b0JBQzlCLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO29CQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDekI7Z0JBQ0QsT0FBTyxRQUFRLENBQUM7YUFDbkI7WUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUMxQixPQUFPLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksQ0FBQyxDQUFDO2FBQzlCO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ2xDLE9BQU8sTUFBQSxNQUFNLENBQUMsT0FBTyxtQ0FBSSxLQUFLLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0gsT0FBTyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLElBQUksQ0FBQzthQUNqQzs7S0FDSjtJQUVTLGFBQWE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLDRCQUE0QixDQUFDO1lBQzVDLCtCQUErQixFQUFFLHNCQUFzQjtZQUN2RCxvQkFBb0IsRUFBRTtnQkFDbEIsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtvQkFDbkQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7b0JBQzdHLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQzt3QkFBRSxPQUFPLEdBQUcsQ0FBQztvQkFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7b0JBQzNDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7d0JBQy9CLE9BQU87NEJBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLOzRCQUM5QixJQUFJLEVBQUUsTUFBTTt5QkFDZixDQUFBO3FCQUNKO29CQUNELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxVQUFVLEVBQUU7d0JBQ25DLE9BQU87NEJBQ0gsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLOzRCQUNqQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUs7NEJBQzlCLElBQUksRUFBRSxNQUFNO3lCQUNmLENBQUE7cUJBQ0o7b0JBQ0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7YUFDSjtTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKLENBQUE7QUFwR1ksT0FBTztJQURuQixTQUFTLEVBQUU7SUFnQkssV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDcEIsV0FBQSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQTs7R0FoQjlCLE9BQU8sQ0FvR25CO1NBcEdZLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgc2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2VcIjtcclxuaW1wb3J0IHtPcGVuQVBJT2JqZWN0LCBSZWZlcmVuY2VPYmplY3QsIFNjaGVtYU9iamVjdH0gZnJvbSBcIm9wZW5hcGkzLXRzXCI7XHJcbmltcG9ydCB7Z2V0TWV0YWRhdGFBcmdzU3RvcmFnZX0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHtyb3V0aW5nQ29udHJvbGxlcnNUb1NwZWN9IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGlcIjtcclxuaW1wb3J0IHt2YWxpZGF0aW9uTWV0YWRhdGFzVG9TY2hlbWFzfSBmcm9tIFwiY2xhc3MtdmFsaWRhdG9yLWpzb25zY2hlbWFcIjtcclxuaW1wb3J0IHtkZWZhdWx0TWV0YWRhdGFTdG9yYWdlfSBmcm9tIFwiY2xhc3MtdHJhbnNmb3JtZXIvc3RvcmFnZVwiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25UeXBlc30gZnJvbSBcImNsYXNzLXZhbGlkYXRvclwiO1xyXG5pbXBvcnQge2lzRGVmaW5lZCwgaXNGdW5jdGlvbiwgaXNPYmplY3R9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQge0lzRmlsZSwgSXNPYmplY3RJZH0gZnJvbSBcIi4uL3ZhbGlkYXRvcnNcIjtcclxuaW1wb3J0IHtESV9DT05UQUlORVIsIElEZXBlbmRlbmN5Q29udGFpbmVyLCBJUmVxdWVzdCwgT1BFTkFQSV9WQUxJREFUSU9OLCBPcGVuQXBpVmFsaWRhdGlvbn0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBPcGVuQXBpIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZG9jczogT3BlbkFQSU9iamVjdDtcclxuICAgIHByb3RlY3RlZCBkb2NzU3RyOiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0IGFwaURvY3MoKTogT3BlbkFQSU9iamVjdCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRvY3MpIHRoaXMuZG9jcyA9IHRoaXMuY3JlYXRlQXBpRG9jcygpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3M7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFwaURvY3NTdHIoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXRoaXMuZG9jc1N0cikgdGhpcy5kb2NzU3RyID0gSlNPTi5zdHJpbmdpZnkodGhpcy5hcGlEb2NzKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5kb2NzU3RyO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBpbmplY3QoRElfQ09OVEFJTkVSKSBwcm90ZWN0ZWQgY29udGFpbmVyOiBJRGVwZW5kZW5jeUNvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgIEBpbmplY3QoT1BFTkFQSV9WQUxJREFUSU9OKSBwcm90ZWN0ZWQgY3VzdG9tVmFsaWRhdGlvbjogT3BlbkFwaVZhbGlkYXRpb24pIHtcclxuICAgICAgICB0aGlzLmRvY3MgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNjaGVtYVRvRXhhbXBsZShzcmM6IFJlZmVyZW5jZU9iamVjdCB8IFNjaGVtYU9iamVjdCwgcmVxPzogSVJlcXVlc3QpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmIChzcmMuJHJlZikge1xyXG4gICAgICAgICAgICBjb25zdCBzY2hlbWFzID0gdGhpcy5hcGlEb2NzLmNvbXBvbmVudHMuc2NoZW1hcztcclxuICAgICAgICAgICAgY29uc3Qgc2NoZW1hID0gc3JjLiRyZWZcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiIy9jb21wb25lbnRzL3NjaGVtYXMvXCIsIFwiXCIpXHJcbiAgICAgICAgICAgICAgICAucmVwbGFjZShcIiMvZGVmaW5pdGlvbnMvXCIsIFwiXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlbWFUb0V4YW1wbGUoc2NoZW1hc1tzY2hlbWFdLCByZXEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc2NoZW1hID0gc3JjIGFzIFNjaGVtYU9iamVjdDtcclxuICAgICAgICBpZiAoc2NoZW1hLm9uZU9mKSB7XHJcbiAgICAgICAgICAgIHNjaGVtYSA9IE9iamVjdC5hc3NpZ24oe30sIHNjaGVtYSwgc2NoZW1hLm9uZU9mWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcykubWFwKGFzeW5jIGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGF3YWl0IHRoaXMuc2NoZW1hVG9FeGFtcGxlKHNjaGVtYS5wcm9wZXJ0aWVzW2tleV0sIHJlcSk7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNjaGVtYS50eXBlID09PSBcImFycmF5XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFthd2FpdCB0aGlzLnNjaGVtYVRvRXhhbXBsZShzY2hlbWEuaXRlbXMsIHJlcSldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgaWYgKGlzRGVmaW5lZChzY2hlbWEuZGVmYXVsdCkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHNjaGVtYS5kZWZhdWx0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2hlbWEuZGVmYXVsdCh0aGlzLmNvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2NoZW1hLmRlZmF1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHNjaGVtYS5mb3JtYXQgPT0gXCJkYXRlXCIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3Vic3RyKDAsIDEwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2NoZW1hLmZvcm1hdCA9PSBcImRhdGUtdGltZVwiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzY2hlbWEuZW51bSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5lbnVtWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBcInN0cmluZ1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2NoZW1hLnR5cGUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5kZWZhdWx0ID8/IDA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzY2hlbWEudHlwZSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5kZWZhdWx0ID8/IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzY2hlbWEuZGVmYXVsdCA/PyBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlQXBpRG9jcygpOiBPcGVuQVBJT2JqZWN0IHtcclxuICAgICAgICBjb25zdCBzdG9yYWdlID0gZ2V0TWV0YWRhdGFBcmdzU3RvcmFnZSgpO1xyXG4gICAgICAgIGNvbnN0IGRvY3MgPSByb3V0aW5nQ29udHJvbGxlcnNUb1NwZWMoc3RvcmFnZSk7XHJcbiAgICAgICAgZG9jcy5iYXNlUGF0aCA9IFwiL2FwaS9cIjtcclxuICAgICAgICBkb2NzLmRlZmluaXRpb25zID0gdmFsaWRhdGlvbk1ldGFkYXRhc1RvU2NoZW1hcyh7XHJcbiAgICAgICAgICAgIGNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2U6IGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2UsXHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDb252ZXJ0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgICBbVmFsaWRhdGlvblR5cGVzLkNVU1RPTV9WQUxJREFUSU9OXTogKG1ldGEsIG9wdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBpc0Z1bmN0aW9uKHRoaXMuY3VzdG9tVmFsaWRhdGlvbikgPyB0aGlzLmN1c3RvbVZhbGlkYXRpb24obWV0YSwgb3B0aW9ucykgOiB0aGlzLmN1c3RvbVZhbGlkYXRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHJlcykpIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3RyYWludHMgPSBtZXRhLmNvbnN0cmFpbnRzIHx8IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRhLmNvbnN0cmFpbnRDbHMgPT09IElzRmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGk6IGNvbnN0cmFpbnRzWzBdIHx8IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0YS5jb25zdHJhaW50Q2xzID09PSBJc09iamVjdElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogY29uc3RyYWludHNbMF0gfHwgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aTogY29uc3RyYWludHNbMV0gfHwgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jcy5jb21wb25lbnRzLnNjaGVtYXMgPSBkb2NzLmRlZmluaXRpb25zO1xyXG4gICAgICAgIHJldHVybiBkb2NzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -16,7 +16,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  step((generator = generator.apply(thisArg, _arguments || [])).next());
17
17
  });
18
18
  };
19
- import { injectable, singleton } from "tsyringe";
19
+ import { singleton } from "tsyringe";
20
20
  import { ObjectId } from "bson";
21
21
  import { promiseTimeout } from "../utils";
22
22
  import { MongoConnector } from "./mongo-connector";
@@ -111,9 +111,8 @@ let Progresses = class Progresses {
111
111
  }
112
112
  };
113
113
  Progresses = __decorate([
114
- injectable(),
115
114
  singleton(),
116
115
  __metadata("design:paramtypes", [MongoConnector, JobManager])
117
116
  ], Progresses);
118
117
  export { Progresses };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9ncmVzc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJOUIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7SUFJaEMsVUFBVSxTQUFWLFVBQVU7SUFLbkIsWUFBcUIsU0FBeUIsRUFBVyxNQUFrQjtRQUF0RCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFSyxZQUFZLENBQUMsRUFBVTs7WUFDekIsT0FBTyxP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USxDQUFDLEtBQUssRUFBRTt3QkFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ25DO29CQUNELFVBQVUsR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDYixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTt3QkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO3FCQUMvRTtvQkFDRCxNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0I7YUFDSjtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtDQUNKLENBQUE7QUFuRlksVUFBVTtJQUZ0QixVQUFVLEVBQUU7SUFDWixTQUFTLEVBQUU7cUNBTXdCLGNBQWMsRUFBbUIsVUFBVTtHQUxsRSxVQUFVLENBbUZ0QjtTQW5GWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQge09iamVjdElkfSBmcm9tIFwiYnNvblwiO1xyXG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gXCJtb25nb2RiXCI7XHJcbmltcG9ydCB7RmlsdGVyUXVlcnl9IGZyb20gXCJtb25nb29zZVwiO1xyXG5pbXBvcnQge0lQcm9ncmVzc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge3Byb21pc2VUaW1lb3V0fSBmcm9tIFwiLi4vdXRpbHNcIjtcclxuaW1wb3J0IHtNb25nb0Nvbm5lY3Rvcn0gZnJvbSBcIi4vbW9uZ28tY29ubmVjdG9yXCI7XHJcbmltcG9ydCB7Sm9iTWFuYWdlcn0gZnJvbSBcIi4vam9iLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtQcm9ncmVzc30gZnJvbSBcIi4vZW50aXRpZXMvcHJvZ3Jlc3NcIjtcclxuXHJcbkBpbmplY3RhYmxlKClcclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2VzIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxQYXJ0aWFsPElQcm9ncmVzcz4+O1xyXG4gICAgcHJvdGVjdGVkIHByb2dyZXNzZXM6IHtbaWQ6IHN0cmluZ106IElQcm9ncmVzc307XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvciwgcmVhZG9ubHkgam9iTWFuOiBKb2JNYW5hZ2VyKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gY29ubmVjdG9yLmRhdGFiYXNlLmNvbGxlY3Rpb24oXCJwcm9ncmVzc2VzXCIpO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3NlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuam9iTWFuLm9uKFwicHJvZ3Jlc3MtY2hhbmdlZFwiLCBwcm9ncmVzcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gcHJvZ3Jlc3MuaWQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzZXNbaWRdID0gbmV3IFByb2dyZXNzKG5ldyBPYmplY3RJZChpZCksIHByb2dyZXNzIGFzIGFueSwgdGhpcy5jb2xsZWN0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3YWl0VG9GaW5pc2goaWQ6IHN0cmluZyk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmFjZShbXHJcbiAgICAgICAgICAgIHRoaXMud2FpdEZvclByb2dyZXNzKGlkLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvZ3Jlc3MgPSB0aGlzLnByb2dyZXNzZXNbaWRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9ncmVzcyB8fCBwcm9ncmVzcy5wZXJjZW50IDwgMTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCB0aGlzLmdldChpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ncmVzcyBkb2VzIG5vdCBleGlzdHMgd2l0aCBpZDogJHtpZH1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9ncmVzcztcclxuICAgICAgICAgICAgfSwgNTAwKSxcclxuICAgICAgICAgICAgdGhpcy53YWl0Rm9yUHJvZ3Jlc3MoaWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2dyZXNzZXNbaWRdIHx8IG51bGw7XHJcbiAgICAgICAgICAgIH0sIDI1KVxyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxJUHJvZ3Jlc3M+IHtcclxuICAgICAgICByZXR1cm4gIWlkID8gbnVsbCA6IHRoaXMuZmluZCh7X2lkOiBuZXcgT2JqZWN0SWQoaWQpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmluZCh3aGVyZTogRmlsdGVyUXVlcnk8SVByb2dyZXNzPik6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5maW5kT25lKHdoZXJlKTtcclxuICAgICAgICByZXR1cm4gIWRhdGEgPyBudWxsIDogbmV3IFByb2dyZXNzKGRhdGEuX2lkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZShtYXg6IG51bWJlciA9IDEwMCk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgaWYgKGlzTmFOKG1heCkgfHwgbWF4IDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXggcHJvZ3Jlc3MgdmFsdWUgbXVzdCBiZSBiaWdnZXIgdGhhbiB6ZXJvYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnQ6IDAsXHJcbiAgICAgICAgICAgIG1heDogbWF4LFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJcIixcclxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uaW5zZXJ0T25lKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZ3Jlc3MocmVzLmluc2VydGVkSWQsIGRhdGEsIHRoaXMuY29sbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGVPbmUoe19pZDogbmV3IE9iamVjdElkKGlkKX0pO1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgd2FpdEZvclByb2dyZXNzKGlkOiBzdHJpbmcsIGNiOiAoKSA9PiBQcm9taXNlPElQcm9ncmVzcz4sIGRlbGF5OiBudW1iZXIpOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIGxldCBpc0ZpbmlzaGVkID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHByb2dyZXNzOiBJUHJvZ3Jlc3MgPSBudWxsO1xyXG4gICAgICAgIGxldCB3YWl0VGltZTogbnVtYmVyID0gMDtcclxuICAgICAgICB3aGlsZSAoIWlzRmluaXNoZWQpIHtcclxuICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCBjYigpO1xyXG4gICAgICAgICAgICB3YWl0VGltZSArPSBkZWxheTtcclxuICAgICAgICAgICAgaWYgKHByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvZ3Jlc3MuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaXNGaW5pc2hlZCA9IHByb2dyZXNzLnBlcmNlbnQgPj0gMTAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghaXNGaW5pc2hlZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhaXRUaW1lID49IHRoaXMuam9iTWFuLm1heFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2dyZXNzIHdpdGggaWQ6ICR7aWR9IHByb2JhYmx5IG5ldmVyIHdpbGwgYmUgZmluaXNoZWQhYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBwcm9taXNlVGltZW91dChkZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9wcm9ncmVzc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUk5QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztJQUdoQyxVQUFVLFNBQVYsVUFBVTtJQUtuQixZQUFxQixTQUF5QixFQUFXLE1BQWtCO1FBQXRELGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUN2RSxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQzFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFZLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVLLFlBQVksQ0FBQyxFQUFVOztZQUN6QixPQUFPLE9BQU8sQ0FBQyxJ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SyxFQUFFO3dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDbkM7b0JBQ0QsVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDO2lCQUN4QztnQkFDRCxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNiLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO3dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixFQUFFLG1DQUFtQyxDQUFDLENBQUM7cUJBQy9FO29CQUNELE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMvQjthQUNKO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztLQUFBO0NBQ0osQ0FBQTtBQW5GWSxVQUFVO0lBRHRCLFNBQVMsRUFBRTtxQ0FNd0IsY0FBYyxFQUFtQixVQUFVO0dBTGxFLFVBQVUsQ0FtRnRCO1NBbkZZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7T2JqZWN0SWR9IGZyb20gXCJic29uXCI7XHJcbmltcG9ydCB7Q29sbGVjdGlvbn0gZnJvbSBcIm1vbmdvZGJcIjtcclxuaW1wb3J0IHtGaWx0ZXJRdWVyeX0gZnJvbSBcIm1vbmdvb3NlXCI7XHJcbmltcG9ydCB7SVByb2dyZXNzfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7cHJvbWlzZVRpbWVvdXR9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQge01vbmdvQ29ubmVjdG9yfSBmcm9tIFwiLi9tb25nby1jb25uZWN0b3JcIjtcclxuaW1wb3J0IHtKb2JNYW5hZ2VyfSBmcm9tIFwiLi9qb2ItbWFuYWdlclwiO1xyXG5pbXBvcnQge1Byb2dyZXNzfSBmcm9tIFwiLi9lbnRpdGllcy9wcm9ncmVzc1wiO1xyXG5cclxuQHNpbmdsZXRvbigpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc2VzIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxQYXJ0aWFsPElQcm9ncmVzcz4+O1xyXG4gICAgcHJvdGVjdGVkIHByb2dyZXNzZXM6IHtbaWQ6IHN0cmluZ106IElQcm9ncmVzc307XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgY29ubmVjdG9yOiBNb25nb0Nvbm5lY3RvciwgcmVhZG9ubHkgam9iTWFuOiBKb2JNYW5hZ2VyKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uID0gY29ubmVjdG9yLmRhdGFiYXNlLmNvbGxlY3Rpb24oXCJwcm9ncmVzc2VzXCIpO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3NlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuam9iTWFuLm9uKFwicHJvZ3Jlc3MtY2hhbmdlZFwiLCBwcm9ncmVzcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gcHJvZ3Jlc3MuaWQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzZXNbaWRdID0gbmV3IFByb2dyZXNzKG5ldyBPYmplY3RJZChpZCksIHByb2dyZXNzIGFzIGFueSwgdGhpcy5jb2xsZWN0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB3YWl0VG9GaW5pc2goaWQ6IHN0cmluZyk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmFjZShbXHJcbiAgICAgICAgICAgIHRoaXMud2FpdEZvclByb2dyZXNzKGlkLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvZ3Jlc3MgPSB0aGlzLnByb2dyZXNzZXNbaWRdO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcm9ncmVzcyB8fCBwcm9ncmVzcy5wZXJjZW50IDwgMTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCB0aGlzLmdldChpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ncmVzcyBkb2VzIG5vdCBleGlzdHMgd2l0aCBpZDogJHtpZH1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9ncmVzcztcclxuICAgICAgICAgICAgfSwgNTAwKSxcclxuICAgICAgICAgICAgdGhpcy53YWl0Rm9yUHJvZ3Jlc3MoaWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2dyZXNzZXNbaWRdIHx8IG51bGw7XHJcbiAgICAgICAgICAgIH0sIDI1KVxyXG4gICAgICAgIF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxJUHJvZ3Jlc3M+IHtcclxuICAgICAgICByZXR1cm4gIWlkID8gbnVsbCA6IHRoaXMuZmluZCh7X2lkOiBuZXcgT2JqZWN0SWQoaWQpfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmluZCh3aGVyZTogRmlsdGVyUXVlcnk8SVByb2dyZXNzPik6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5maW5kT25lKHdoZXJlKTtcclxuICAgICAgICByZXR1cm4gIWRhdGEgPyBudWxsIDogbmV3IFByb2dyZXNzKGRhdGEuX2lkLCBkYXRhLCB0aGlzLmNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZShtYXg6IG51bWJlciA9IDEwMCk6IFByb21pc2U8SVByb2dyZXNzPiB7XHJcbiAgICAgICAgaWYgKGlzTmFOKG1heCkgfHwgbWF4IDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXggcHJvZ3Jlc3MgdmFsdWUgbXVzdCBiZSBiaWdnZXIgdGhhbiB6ZXJvYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnQ6IDAsXHJcbiAgICAgICAgICAgIG1heDogbWF4LFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJcIixcclxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uaW5zZXJ0T25lKGRhdGEpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZ3Jlc3MocmVzLmluc2VydGVkSWQsIGRhdGEsIHRoaXMuY29sbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGVPbmUoe19pZDogbmV3IE9iamVjdElkKGlkKX0pO1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYXN5bmMgd2FpdEZvclByb2dyZXNzKGlkOiBzdHJpbmcsIGNiOiAoKSA9PiBQcm9taXNlPElQcm9ncmVzcz4sIGRlbGF5OiBudW1iZXIpOiBQcm9taXNlPElQcm9ncmVzcz4ge1xyXG4gICAgICAgIGxldCBpc0ZpbmlzaGVkID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHByb2dyZXNzOiBJUHJvZ3Jlc3MgPSBudWxsO1xyXG4gICAgICAgIGxldCB3YWl0VGltZTogbnVtYmVyID0gMDtcclxuICAgICAgICB3aGlsZSAoIWlzRmluaXNoZWQpIHtcclxuICAgICAgICAgICAgcHJvZ3Jlc3MgPSBhd2FpdCBjYigpO1xyXG4gICAgICAgICAgICB3YWl0VGltZSArPSBkZWxheTtcclxuICAgICAgICAgICAgaWYgKHByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZ3Jlc3MuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocHJvZ3Jlc3MuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaXNGaW5pc2hlZCA9IHByb2dyZXNzLnBlcmNlbnQgPj0gMTAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghaXNGaW5pc2hlZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdhaXRUaW1lID49IHRoaXMuam9iTWFuLm1heFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2dyZXNzIHdpdGggaWQ6ICR7aWR9IHByb2JhYmx5IG5ldmVyIHdpbGwgYmUgZmluaXNoZWQhYCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBwcm9taXNlVGltZW91dChkZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2dyZXNzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,55 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
11
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12
+ return new (P || (P = Promise))(function (resolve, reject) {
13
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
14
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
15
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
17
+ });
18
+ };
19
+ import { singleton } from "tsyringe";
20
+ import { rand } from "../utils";
21
+ let TokenGenerator = class TokenGenerator {
22
+ constructor() {
23
+ this.chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
24
+ }
25
+ generate(checkCb) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ let token = null;
28
+ let tries = 0;
29
+ let notGood = true;
30
+ while (notGood && tries < 5) {
31
+ token = this.generateToken();
32
+ notGood = yield checkCb(token);
33
+ tries++;
34
+ }
35
+ if (notGood) {
36
+ throw new Error(`Couldn't generate an unique token..`);
37
+ }
38
+ return token;
39
+ });
40
+ }
41
+ generateToken() {
42
+ let s = "";
43
+ for (let i = 0; i < 15; i++) {
44
+ const ix = rand(0, this.chars.length - 1);
45
+ s += this.chars[ix];
46
+ }
47
+ return s;
48
+ }
49
+ };
50
+ TokenGenerator = __decorate([
51
+ singleton(),
52
+ __metadata("design:paramtypes", [])
53
+ ], TokenGenerator);
54
+ export { TokenGenerator };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3Rva2VuLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxVQUFVLENBQUM7SUFHakIsY0FBYyxTQUFkLGNBQWM7SUFJdkI7UUFDSSxJQUFJLENBQUMsS0FBSyxHQUFHLGdFQUFnRSxDQUFDO0lBQ2xGLENBQUM7SUFFSyxRQUFRLENBQUMsT0FBNEM7O1lBQ3ZELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbkIsT0FBTyxPQUFPLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDekIsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixLQUFLLEVBQUUsQ0FBQzthQUNYO1lBQ0QsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdkI7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSixDQUFBO0FBL0JZLGNBQWM7SUFEMUIsU0FBUyxFQUFFOztHQUNDLGNBQWMsQ0ErQjFCO1NBL0JZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7cmFuZH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcblxyXG5Ac2luZ2xldG9uKClcclxuZXhwb3J0IGNsYXNzIFRva2VuR2VuZXJhdG9yIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY2hhcnM6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNoYXJzID0gXCIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdlbmVyYXRlKGNoZWNrQ2I6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+KTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBsZXQgdG9rZW4gPSBudWxsO1xyXG4gICAgICAgIGxldCB0cmllcyA9IDA7XHJcbiAgICAgICAgbGV0IG5vdEdvb2QgPSB0cnVlO1xyXG4gICAgICAgIHdoaWxlIChub3RHb29kICYmIHRyaWVzIDwgNSkge1xyXG4gICAgICAgICAgICB0b2tlbiA9IHRoaXMuZ2VuZXJhdGVUb2tlbigpO1xyXG4gICAgICAgICAgICBub3RHb29kID0gYXdhaXQgY2hlY2tDYih0b2tlbik7XHJcbiAgICAgICAgICAgIHRyaWVzKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub3RHb29kKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgZ2VuZXJhdGUgYW4gdW5pcXVlIHRva2VuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRva2VuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVUb2tlbigpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBzID0gXCJcIjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE1OyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgaXggPSByYW5kKDAsIHRoaXMuY2hhcnMubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgIHMgKz0gdGhpcy5jaGFyc1tpeF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==