@firestartr/cli 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/build/index.js +81 -61
  2. package/build/provisioner/cdktf.json +0 -0
  3. package/build/provisioner/dist-cdktf/index.js +1 -1
  4. package/build/provisioner/dist-cdktf/index.js.map +1 -1
  5. package/build/provisioner/dist-cdktf/src/entities/feature/FirestarterGithubRepositoryFeature.d.ts +8 -0
  6. package/build/provisioner/dist-cdktf/src/entities/feature/FirestarterGithubRepositoryFeature.js +15 -0
  7. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/FirestarterGithubGroup.d.ts +8 -0
  8. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/FirestarterGithubGroup.js +17 -0
  9. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/auxiliars/TeamConfigAux.d.ts +29 -0
  10. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/auxiliars/TeamConfigAux.js +35 -0
  11. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/helpers/TeamMembersHelper.d.ts +4 -0
  12. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/helpers/TeamMembersHelper.js +28 -0
  13. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/helpers/TeamsHelper.d.ts +4 -0
  14. package/build/provisioner/dist-cdktf/src/entities/firestartergithubgroup/helpers/TeamsHelper.js +23 -0
  15. package/build/provisioner/dist-cdktf/src/entities/firestartergithubmembership/FirestarterGithubMembership.d.ts +8 -0
  16. package/build/provisioner/dist-cdktf/src/entities/firestartergithubmembership/FirestarterGithubMembership.js +15 -0
  17. package/build/provisioner/dist-cdktf/src/entities/firestartergithubmembership/helpers/MembershipHelper.d.ts +4 -0
  18. package/build/provisioner/dist-cdktf/src/entities/firestartergithubmembership/helpers/MembershipHelper.js +19 -0
  19. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/FirestarterGithubRepository.d.ts +9 -0
  20. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/FirestarterGithubRepository.js +30 -0
  21. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/auxiliars/RepositoryConfigAux.d.ts +52 -0
  22. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/auxiliars/RepositoryConfigAux.js +72 -0
  23. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/ActionsHelper.d.ts +5 -0
  24. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/ActionsHelper.js +19 -0
  25. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/CodeownersHelper.d.ts +5 -0
  26. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/CodeownersHelper.js +24 -0
  27. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/DefaultBranchHelper.d.ts +5 -0
  28. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/DefaultBranchHelper.js +17 -0
  29. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/RepositoryHelper.d.ts +5 -0
  30. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/RepositoryHelper.js +72 -0
  31. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/RepositoryTeamsHelper.d.ts +4 -0
  32. package/build/provisioner/dist-cdktf/src/entities/firestartergithubrepository/helpers/RepositoryTeamsHelper.js +49 -0
  33. package/build/provisioner/dist-cdktf/src/entities/firestarterterraformmodule/FirestarterTerraformModule.d.ts +10 -0
  34. package/build/provisioner/dist-cdktf/src/entities/firestarterterraformmodule/FirestarterTerraformModule.js +17 -0
  35. package/build/provisioner/dist-cdktf/src/entities/firestarterterraformmodule/auxiliars/terraformModuleHelper.d.ts +13 -0
  36. package/build/provisioner/dist-cdktf/src/entities/firestarterterraformmodule/auxiliars/terraformModuleHelper.js +36 -0
  37. package/build/provisioner/dist-cdktf/src/handlers/index.d.ts +1 -1
  38. package/build/provisioner/dist-cdktf/tsconfig.cdktf.tsbuildinfo +1 -1
  39. package/package.json +1 -1
package/build/index.js CHANGED
@@ -228043,7 +228043,7 @@ exports["default"] = {
228043
228043
  Object.defineProperty(exports, "__esModule", ({ value: true }));
228044
228044
  exports.TFWorkspaceRefCR = exports.TFWorkspaceRefRegex = void 0;
228045
228045
  const regModuleName = /[\w\-\.]+/;
228046
- exports.TFWorkspaceRefRegex = new RegExp(`(\\$\\{\\{\\s*tfworkspace\\:${regModuleName.source}\\:outputs\\.${regModuleName.source}\\s*\\}\\})`, 'i');
228046
+ exports.TFWorkspaceRefRegex = new RegExp(`\\$\\{\\{\\s*tfworkspace\\:(${regModuleName.source})\\:outputs\\.(${regModuleName.source})\\s*\\}\\}`, 'ig');
228047
228047
  exports.TFWorkspaceRefCR = new RegExp(`\\$\\{\\{\\s*references\\.(${regModuleName.source})\\s*\\}\\}`, 'i');
228048
228048
 
228049
228049
 
@@ -230522,11 +230522,16 @@ function findTfWorspaceDependencies(values) {
230522
230522
  let matches = [];
230523
230523
  function helper(o) {
230524
230524
  for (let key in o) {
230525
- if (typeof o[key] === 'string' && o[key].match(catalog_common_1.default.types.regex.TFWorkspaceRefRegex)) {
230526
- matches.push(`resource:${o[key].match(catalog_common_1.default.types.regex.TFWorkspaceRefRegex)[1].split(":")[1]}`);
230527
- }
230528
- else if (typeof o[key] === 'object') {
230529
- helper(o[key]);
230525
+ switch (typeof o[key]) {
230526
+ case 'object':
230527
+ helper(o[key]);
230528
+ break;
230529
+ case 'string':
230530
+ for (const match of o[key].matchAll(catalog_common_1.default.types.regex.TFWorkspaceRefRegex)) {
230531
+ const [_, claimName] = match;
230532
+ matches.push(`resource:${claimName}`);
230533
+ }
230534
+ break;
230530
230535
  }
230531
230536
  }
230532
230537
  }
@@ -230566,7 +230571,7 @@ class CatalogTFWorkspaceChart extends base_1.BaseCatalogChart {
230566
230571
  }
230567
230572
  }
230568
230573
  exports.CatalogTFWorkspaceChart = CatalogTFWorkspaceChart;
230569
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZXb3Jrc3BhY2VDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydHMvY2F0YWxvZy90ZldvcmtzcGFjZUNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGlDQUEwQztBQUMxQyxpQ0FBb0Q7QUFDcEQsb0VBQW9DO0FBRXBDLFNBQVMsMEJBQTBCLENBQUMsTUFBVztJQUM3QyxJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDM0IsU0FBUyxNQUFNLENBQUMsQ0FBTTtRQUNwQixLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNqQixJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO2dCQUN0RixPQUFPLENBQUMsSUFBSSxDQUNWLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEYsQ0FBQzthQUNIO2lCQUFNLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEI7U0FDRjtJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDZixPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFhLHVCQUF3QixTQUFRLHVCQUFnQjtJQUUzRCxRQUFRO1FBQ04sTUFBTSxLQUFLLEdBQWdCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0MsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEYsTUFBTSxrQkFBa0IsR0FBYSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtRQUUvRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2pCLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVk7Z0JBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTO2dCQUNqQyxTQUFTLEVBQUUsa0JBQWtCO2FBQzlCO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFhO1FBQzdCLE9BQU8sSUFBSSxpQkFBUyxDQUNsQixJQUFJLEVBQ0osR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQzVDLFFBQVEsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQTtJQUNILENBQUM7Q0FFRjtBQTFDRCwwREEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURldvcmtzcGFjZSB9IGZyb20gJy4uLy4uL2NsYWltcy90ZndvcmtzcGFjZXMvdGZ3b3Jrc3BhY2UnO1xuaW1wb3J0IHsgQmFzZUNhdGFsb2dDaGFydCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBcGlPYmplY3QsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgY29tbW9uIGZyb20gJ2NhdGFsb2dfY29tbW9uJztcblxuZnVuY3Rpb24gZmluZFRmV29yc3BhY2VEZXBlbmRlbmNpZXModmFsdWVzOiBhbnkpOiBzdHJpbmdbXSB7XG4gIGxldCBtYXRjaGVzOiBzdHJpbmdbXSA9IFtdO1xuICBmdW5jdGlvbiBoZWxwZXIobzogYW55KSB7XG4gICAgZm9yIChsZXQga2V5IGluIG8pIHtcbiAgICAgIGlmICh0eXBlb2Ygb1trZXldID09PSAnc3RyaW5nJyAmJiBvW2tleV0ubWF0Y2goY29tbW9uLnR5cGVzLnJlZ2V4LlRGV29ya3NwYWNlUmVmUmVnZXgpKSB7XG4gICAgICAgIG1hdGNoZXMucHVzaChcbiAgICAgICAgICBgcmVzb3VyY2U6JHtvW2tleV0ubWF0Y2goY29tbW9uLnR5cGVzLnJlZ2V4LlRGV29ya3NwYWNlUmVmUmVnZXgpWzFdLnNwbGl0KFwiOlwiKVsxXX1gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvW2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGhlbHBlcihvW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBoZWxwZXIodmFsdWVzKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KG1hdGNoZXMpXTtcbn1cblxuZXhwb3J0IGNsYXNzIENhdGFsb2dURldvcmtzcGFjZUNoYXJ0IGV4dGVuZHMgQmFzZUNhdGFsb2dDaGFydCB7XG5cbiAgdGVtcGxhdGUoKSB7XG4gICAgY29uc3QgY2xhaW06IFRGV29ya3NwYWNlID0gdGhpcy5nZXQoXCJjbGFpbVwiKTtcblxuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IGZpbmRUZldvcnNwYWNlRGVwZW5kZW5jaWVzKGNsYWltLnByb3ZpZGVycy50ZXJyYWZvcm0udmFsdWVzKTtcblxuICAgIGNvbnN0IHVuaXF1ZURlcGVuZGVuY2llczogc3RyaW5nW10gPSBbLi4ubmV3IFNldChkZXBlbmRlbmNpZXMpXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFwaVZlcnNpb246IFwiYmFja3N0YWdlLmlvL3YxYWxwaGExXCIsXG4gICAgICBraW5kOiBcIlJlc291cmNlXCIsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lOiBjb21tb24uZ2VuZXJpYy5ub3JtYWxpemVOYW1lKGNsYWltLm5hbWUpLFxuICAgICAgICB0aXRsZTogY2xhaW0ubmFtZSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHt9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgdHlwZTogY2xhaW0udHlwZSB8fCBcInRmcmVzb3VyY2VcIixcbiAgICAgICAgb3duZXI6IGNsYWltLm93bmVyLFxuICAgICAgICBzeXN0ZW06IGNsYWltLnN5c3RlbSxcbiAgICAgICAgdmFsdWVzOiBjbGFpbS5wcm92aWRlcnMudGVycmFmb3JtLFxuICAgICAgICBkZXBlbmRzT246IHVuaXF1ZURlcGVuZGVuY2llcyxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnN0YW5jZUFwaU9iamVjdCh0ZW1wbGF0ZTogYW55KTogQXBpT2JqZWN0IHtcbiAgICByZXR1cm4gbmV3IEFwaU9iamVjdChcbiAgICAgIHRoaXMsXG4gICAgICBgJHt0ZW1wbGF0ZS5raW5kfS0ke3RlbXBsYXRlLm1ldGFkYXRhLm5hbWV9YCxcbiAgICAgIHRlbXBsYXRlXG4gICAgKVxuICB9XG5cbiAgZ3ZrKCk6IEdyb3VwVmVyc2lvbktpbmQge1xuICAgIHJldHVybiB7XG4gICAgICBraW5kOiBcIlJlc291cmNlXCIsXG4gICAgICBhcGlWZXJzaW9uOiBcInYxYWxwaGExXCJcbiAgICB9XG4gIH1cblxufVxuIl19
230574
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZXb3Jrc3BhY2VDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydHMvY2F0YWxvZy90ZldvcmtzcGFjZUNoYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGlDQUEwQztBQUMxQyxpQ0FBb0Q7QUFDcEQsb0VBQW9DO0FBRXBDLFNBQVMsMEJBQTBCLENBQUMsTUFBVztJQUM3QyxJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDM0IsU0FBUyxNQUFNLENBQUMsQ0FBTTtRQUNwQixLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNqQixRQUFRLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNmLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3QkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRTt3QkFDM0UsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUE7d0JBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxTQUFTLEVBQUUsQ0FBQyxDQUFDO3FCQUN2QztvQkFDRCxNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDZixPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFhLHVCQUF3QixTQUFRLHVCQUFnQjtJQUUzRCxRQUFRO1FBQ04sTUFBTSxLQUFLLEdBQWdCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0MsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEYsTUFBTSxrQkFBa0IsR0FBYSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtRQUUvRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUUsVUFBVTtZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLHdCQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2pCLFdBQVcsRUFBRSxFQUFFO2FBQ2hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVk7Z0JBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTO2dCQUNqQyxTQUFTLEVBQUUsa0JBQWtCO2FBQzlCO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFhO1FBQzdCLE9BQU8sSUFBSSxpQkFBUyxDQUNsQixJQUFJLEVBQ0osR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQzVDLFFBQVEsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQTtJQUNILENBQUM7Q0FFRjtBQTFDRCwwREEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURldvcmtzcGFjZSB9IGZyb20gJy4uLy4uL2NsYWltcy90ZndvcmtzcGFjZXMvdGZ3b3Jrc3BhY2UnO1xuaW1wb3J0IHsgQmFzZUNhdGFsb2dDaGFydCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBcGlPYmplY3QsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgY29tbW9uIGZyb20gJ2NhdGFsb2dfY29tbW9uJztcblxuZnVuY3Rpb24gZmluZFRmV29yc3BhY2VEZXBlbmRlbmNpZXModmFsdWVzOiBhbnkpOiBzdHJpbmdbXSB7XG4gIGxldCBtYXRjaGVzOiBzdHJpbmdbXSA9IFtdO1xuICBmdW5jdGlvbiBoZWxwZXIobzogYW55KSB7XG4gICAgZm9yIChsZXQga2V5IGluIG8pIHtcbiAgICAgIHN3aXRjaCAodHlwZW9mIG9ba2V5XSkge1xuICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgIGhlbHBlcihvW2tleV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2Ygb1trZXldLm1hdGNoQWxsKGNvbW1vbi50eXBlcy5yZWdleC5URldvcmtzcGFjZVJlZlJlZ2V4KSkge1xuICAgICAgICAgICAgY29uc3QgW18sIGNsYWltTmFtZV0gPSBtYXRjaFxuICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKGByZXNvdXJjZToke2NsYWltTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhlbHBlcih2YWx1ZXMpO1xuICByZXR1cm4gWy4uLm5ldyBTZXQobWF0Y2hlcyldO1xufVxuXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ1RGV29ya3NwYWNlQ2hhcnQgZXh0ZW5kcyBCYXNlQ2F0YWxvZ0NoYXJ0IHtcblxuICB0ZW1wbGF0ZSgpIHtcbiAgICBjb25zdCBjbGFpbTogVEZXb3Jrc3BhY2UgPSB0aGlzLmdldChcImNsYWltXCIpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gZmluZFRmV29yc3BhY2VEZXBlbmRlbmNpZXMoY2xhaW0ucHJvdmlkZXJzLnRlcnJhZm9ybS52YWx1ZXMpO1xuXG4gICAgY29uc3QgdW5pcXVlRGVwZW5kZW5jaWVzOiBzdHJpbmdbXSA9IFsuLi5uZXcgU2V0KGRlcGVuZGVuY2llcyldXG5cbiAgICByZXR1cm4ge1xuICAgICAgYXBpVmVyc2lvbjogXCJiYWNrc3RhZ2UuaW8vdjFhbHBoYTFcIixcbiAgICAgIGtpbmQ6IFwiUmVzb3VyY2VcIixcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6IGNvbW1vbi5nZW5lcmljLm5vcm1hbGl6ZU5hbWUoY2xhaW0ubmFtZSksXG4gICAgICAgIHRpdGxlOiBjbGFpbS5uYW1lLFxuICAgICAgICBhbm5vdGF0aW9uczoge30sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICB0eXBlOiBjbGFpbS50eXBlIHx8IFwidGZyZXNvdXJjZVwiLFxuICAgICAgICBvd25lcjogY2xhaW0ub3duZXIsXG4gICAgICAgIHN5c3RlbTogY2xhaW0uc3lzdGVtLFxuICAgICAgICB2YWx1ZXM6IGNsYWltLnByb3ZpZGVycy50ZXJyYWZvcm0sXG4gICAgICAgIGRlcGVuZHNPbjogdW5pcXVlRGVwZW5kZW5jaWVzLFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGluc3RhbmNlQXBpT2JqZWN0KHRlbXBsYXRlOiBhbnkpOiBBcGlPYmplY3Qge1xuICAgIHJldHVybiBuZXcgQXBpT2JqZWN0KFxuICAgICAgdGhpcyxcbiAgICAgIGAke3RlbXBsYXRlLmtpbmR9LSR7dGVtcGxhdGUubWV0YWRhdGEubmFtZX1gLFxuICAgICAgdGVtcGxhdGVcbiAgICApXG4gIH1cblxuICBndmsoKTogR3JvdXBWZXJzaW9uS2luZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IFwiUmVzb3VyY2VcIixcbiAgICAgIGFwaVZlcnNpb246IFwidjFhbHBoYTFcIlxuICAgIH1cbiAgfVxuXG59XG4iXX0=
230570
230575
 
230571
230576
  /***/ }),
230572
230577
 
@@ -234208,10 +234213,12 @@ async function loadCRs(crsPath = (0, config_1.getPath)("crs"), excludedPaths = [
234208
234213
  if (!("kind" in yamlData && "name" in yamlData.metadata)) {
234209
234214
  log(`Invalid claim file ${entry}`);
234210
234215
  }
234211
- if (result[`${yamlData.kind}-${yamlData.metadata.name}`]) {
234212
- log(`Duplicate CR ${yamlData.kind}-${yamlData.metadata.name}`);
234216
+ else {
234217
+ if (result[`${yamlData.kind}-${yamlData.metadata.name}`]) {
234218
+ log(`Duplicate CR ${yamlData.kind}-${yamlData.metadata.name}`);
234219
+ }
234220
+ result[`${yamlData.kind}-${yamlData.metadata.name}`] = yamlData;
234213
234221
  }
234214
- result[`${yamlData.kind}-${yamlData.metadata.name}`] = yamlData;
234215
234222
  }, excludedPaths.concat((0, config_1.getAdditionalPaths)()));
234216
234223
  return result;
234217
234224
  }
@@ -234330,7 +234337,7 @@ function getOrg() {
234330
234337
  const groupOrg = catalog_common_1.default.environment.getFromEnvironmentWithDefault(catalog_common_1.default.types.envVars.org, "");
234331
234338
  return groupOrg;
234332
234339
  }
234333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFvRDtBQUNwRCx1Q0FBMEU7QUFDMUUsb0VBQW1DO0FBQ25DLDJDQUE0QjtBQUM1QixpREFBcUc7QUFJckcscUNBQWdHO0FBRWhHLG9GQUFpRjtBQUNqRix1Q0FBd0I7QUFDeEIsK0RBQWdEO0FBQ2hELGtEQUF5QjtBQUN6Qiw4Q0FBb0U7QUFFcEUsOENBQXFEO0FBQ3JELHFDQUEwQztBQUMxQyx5REFBbUM7QUFDbkMsNkNBQXFEO0FBRXJELCtDQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0RBQTZEO0FBQzdELHdEQUEyRDtBQUczRCxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssRUFBQyw0QkFBNEIsQ0FBQyxDQUFBO0FBRS9DLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBSTlDOzs7R0FHRztBQUdILE1BQU0sYUFBYSxHQUFvQjtJQUV0QyxJQUFJLDRCQUFrQixFQUFFO0NBRXhCLENBQUE7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxXQUFXO0lBQ2hDLE1BQU0sTUFBTSxHQUFVLEVBQUUsQ0FBQTtJQUV4QixNQUFNLElBQUEsZUFBSyxFQUFDLElBQUEsZ0JBQU8sRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1FBRWhELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU5QixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQWEsRUFBRSxJQUFRLEVBQUUsRUFBRTtRQUVwQyxNQUFNLE1BQU0sR0FBUSx3QkFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FB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TUFBTSxRQUFRLEdBQVcsd0JBQU0sQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBRXRFLHdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBRXhCLEVBQUUsQ0FFSCxDQUFBO0lBRUQsT0FBTyxRQUFRLENBQUE7QUFFakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3Jhd2wsIGNyYXdsV2l0aEV4Y2x1c2lvbnN9IGZyb20gXCIuL2NyYXdsZXJcIlxuaW1wb3J0IHsgU0VDVElPTlNfQllfRklMRV9OQU1FLCBTQ0hFTUFTX0JZX1NFQ1RJT05fTkFNRSB9IGZyb20gXCIuL2dsb2JhbHNcIlxuaW1wb3J0IGNvbW1vbiBmcm9tIFwiY2F0YWxvZ19jb21tb25cIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBJTklUSUFMSVpFUlMsIElOSVRJQUxJWkVSU19CWV9GSUxFX05BTUUsIFNDSEVNQVNfQllfSU5JVElBTElaRVJfTkFNRSB9IGZyb20gXCIuL2luaXRpYWxpemVyc1wiXG5pbXBvcnQgeyBSZW5kZXJDbGFpbURhdGEsIFJlbmRlckNsYWltS2V5LCBSZW5kZXJDbGFpbXMgfSBmcm9tIFwiLi9yZW5kZXJlclwiXG5pbXBvcnQgeyBJbml0aWFsaXplclBhdGNoZXMgfSBmcm9tIFwiLi9pbml0aWFsaXplcnMvYmFzZVwiXG5pbXBvcnQgeyBHbG9iYWxTZWN0aW9uIH0gZnJvbSBcIi4vZ2xvYmFscy9iYXNlXCJcbmltcG9ydCB7IGdldEFkZGl0aW9uYWxQYXRocywgZ2V0Q29uZmlndXJlZFByb3ZpZGVyLCBnZXRQYXRoLCBnZXRSZW5hbWVzRW5hYmxlZCB9IGZyb20gXCIuL2NvbmZpZ1wiXG5pbXBvcnQgeyBPdmVycmlkZXJQYXRjaGVzIH0gZnJvbSBcIi4vb3ZlcnJpZGVycy9iYXNlXCJcbmltcG9ydCB7IEdpdGh1YlJlcG9zaXRvcnlPdmVycmlkZXIgfSBmcm9tIFwiLi9vdmVycmlkZXJzL2dpdGh1YlJlcG9zaXRvcnlPdmVycmlkZVwiXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0ICogYXMgZmFzdEpzb25QYXRjaCBmcm9tIFwiZmFzdC1qc29uLXBhdGNoXCJcbmltcG9ydCBEZWJ1ZyBmcm9tIFwiZGVidWdcIlxuaW1wb3J0IHsgRmlyZXN0YXJ0ckFsbENsYWltLCBJVmlydHVhbENsYWltIH0gZnJvbSBcIi4vY2xhaW1zL3ZpcnR1YWxcIlxuaW1wb3J0IHsgSUNsYWltIH0gZnJvbSBcIi4vY2xhaW1zL2Jhc2VcIlxuaW1wb3J0IHsgVVVJREluaXRpYWxpemVyIH0gZnJvbSBcIi4vaW5pdGlhbGl6ZXJzL3V1aWRcIlxuaW1wb3J0IHsgQ2xhaW1WYWxpZGF0aW9uIH0gZnJvbSBcIi4vY2xhaW1zXCJcbmltcG9ydCAgY2xhaW1zIGZyb20gXCIuL2NsYWltcy9iYXNlXCJcbmltcG9ydCB7IHN0cmlwS25vd25SZWxhdGlvbnMgfSBmcm9tIFwiLi91dGlscy9jclV0aWxzXCJcbmltcG9ydCB7IE5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9ub3JtYWxpemVycy9iYXNlXCJcbmltcG9ydCB7IE5PUk1BTElaRVJTIH0gZnJvbSBcIi4vbm9ybWFsaXplcnNcIlxuaW1wb3J0IHsgTmFtZU5vcm1hbGl6ZXIgfSBmcm9tIFwiLi9ub3JtYWxpemVycy9uYW1lXCJcbmltcG9ydCB7IEluaXRpYWxpemVyQ2xhaW1SZWYgfSBmcm9tIFwiLi9pbml0aWFsaXplcnMvY2xhaW1SZWZcIlxuaW1wb3J0IHsgSW5pdGlhbGl6ZXJEZWZhdWx0IH0gZnJvbSBcIi4vZGVmYXVsdHMvaW5pdGlhbGl6ZXJcIlxuXG5cbmNvbnN0IGxvZyA9IERlYnVnKCdmaXJlc3RhcnRyOnJlbmRlcmVyOmxvYWRlcicpXG5cbmNvbnN0IGlzWWFtbEZpbGUgPSBuZXcgUmVnRXhwKC9cXC4oeWFtbHx5bWwpJC8pXG5cblxuXG4vKipcbiAqXG4gKiBAcmV0dXJucyBWaXJ0dWFsIENsYWltc1xuICovXG5cblxuY29uc3QgdmlydHVhbENsYWltczogSVZpcnR1YWxDbGFpbVtdID0gW1xuXG5cdG5ldyBGaXJlc3RhcnRyQWxsQ2xhaW0oKVxuXG5dXG5cbi8qXG4gKiBGdW5jdGlvbiB0byBsb2FkIHN5c3RlbSBjbGFpbXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBubyBpbnB1dC5cbiAqXG4gKiBPdXRwdXQ6XG4gKiAtIEFuIGFueVtdLCB3aXRoIGFsbCB0aGUgc3lzdGVtcyBsb2FkZWQuXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN5c3RlbXMoKSB7XG5cdGNvbnN0IHJlc3VsdDogYW55W10gPSBbXVxuXG5cdGF3YWl0IGNyYXdsKGdldFBhdGgoXCJzeXN0ZW1zXCIpLCAoZW50cnk6c3RyaW5nKSA9PiB7XG5cblx0XHRyZXR1cm4gaXNZYW1sRmlsZS50ZXN0KGVudHJ5KVxuXG5cdH0sIGFzeW5jIChfZW50cnk6c3RyaW5nLCBkYXRhOmFueSkgPT4ge1xuXG5cdFx0Y29uc3Qgc3lzdGVtOiBhbnkgPSBjb21tb24uaW8uZnJvbVlhbWwoZGF0YSlcblxuXHRcdHJlc3VsdC5wdXNoKHN5c3RlbSk7XG5cblx0fSlcblxuXHRyZXR1cm4gcmVzdWx0XG59XG5cbi8qXG4gKiBGdW5jdGlvbiB0byBsb2FkIGRvbWFpbiBjbGFpbXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBubyBpbnB1dC5cbiAqXG4gKiBPdXRwdXQ6XG4gKiAtIEFuIGFueVtdLCB3aXRoIGFsbCB0aGUgZG9tYWlucyBsb2FkZWQuXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZERvbWFpbnMoKSB7XG5cblx0Y29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdXG5cblx0YXdhaXQgY3Jhd2woZ2V0UGF0aChcImRvbWFpbnNcIiksIChlbnRyeTpzdHJpbmcpID0+IHtcblxuXHRcdHJldHVybiBpc1lhbWxGaWxlLnRlc3QoZW50cnkpXG5cblx0fSwgYXN5bmMgKF9lbnRyeTpzdHJpbmcsIGRhdGE6YW55KSA9PiB7XG5cblx0XHRjb25zdCBkb21haW46IGFueSA9IGNvbW1vbi5pby5mcm9tWWFtbChkYXRhKVxuXG5cdFx0cmVzdWx0LnB1c2goZG9tYWluKTtcblx0fSlcblxuXHRyZXR1cm4gcmVzdWx0XG59XG5cblxuLypcbiAqIExvYWRzIGFsbCBhcHBsaWNhYmxlIGdsb2JhbHMgZm9yIGEgZ2l2ZW4gY2xhaW0gYW5kIHN0b3JlcyB0aGVtIGludG8gYSBsaXN0LlxuICpcbiAqIElucHV0OlxuICogLSBjbGFpbTogb3VyIGN1c3RvbSBjbGFpbSBvYmplY3QsIHdpdGggd2hpY2ggd2UgY2hlY2sgaWYgdGhlIGdsb2JhbCBpcyBhcHBsaWNhYmxlXG4gKlxuICogUmV0dXJuczpcbiAqIC0gQSBHbG9iYWxTZWN0aW9uIGFycmF5IHByb21pc2UsIGNvbnRhaW5pbmcgYWxsIHRoZSBnbG9iYWxzIGxvYWRlZCBmb3IgdGhpcyBjbGFpbVxuICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRHbG9iYWxzKGNsYWltOiBhbnkpOiBQcm9taXNlPEdsb2JhbFNlY3Rpb25bXT4ge1xuXG5cdGNvbnN0IHJlc3VsdDogR2xvYmFsU2VjdGlvbltdID0gW11cblxuXHRhd2FpdCBjcmF3bChnZXRQYXRoKFwiZ2xvYmFsc1wiKSwgKGVudHJ5OnN0cmluZykgPT4ge1xuXG5cdFx0cmV0dXJuIGlzWWFtbEZpbGUudGVzdChlbnRyeSlcblxuXHR9LCBhc3luYyAoZW50cnk6c3RyaW5nLCBkYXRhOmFueSkgPT4ge1xuXG5cdFx0Y29uc3QgZ2xvYmFsRGF0YTogYW55ID0gY29tbW9uLmlvLmZyb21ZYW1sKGRhdGEpO1xuXG5cdFx0Y29uc3QgZXh0OiBzdHJpbmcgPSBwYXRoLmV4dG5hbWUoZW50cnkpO1xuXG5cdFx0Y29uc3QgbmFtZTogc3RyaW5nID0gcGF0aC5iYXNlbmFtZShlbnRyeSwgZXh0KTtcblxuXHRcdGlmKG5hbWUgaW4gU0VDVElPTlNfQllfRklMRV9OQU1FKXtcblxuXHRcdFx0Y29uc3Qgc2VjdGlvbjogYW55ID0gbmV3IFNFQ1RJT05TX0JZX0ZJTEVfTkFNRVtuYW1lXShnbG9iYWxEYXRhKVxuXG5cdFx0XHRpZighKGF3YWl0IHNlY3Rpb24udmFsaWRhdGUoU0NIRU1BU19CWV9TRUNUSU9OX05BTUVbbmFtZV0gfHwge30pKSl7XG5cblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7bmFtZX0gZ2xvYmFsIGZpbGVgKVxuXG5cdFx0XHR9XG5cblx0XHRcdGlmKGdsb2JhbERhdGEua2luZCA9PSBjbGFpbS5raW5kKXtcblxuXHRcdFx0XHRyZXN1bHQucHVzaChzZWN0aW9uKVxuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdGxvZygnU2tpcHBpbmcgZ2xvYmFsICVzIGJlY2F1c2UgaXQgaXMgbm90IGFwcGxpY2FibGUgdG8gJXMnLCBuYW1lLCBjbGFpbS5raW5kKVxuXHRcdFx0XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fSlcblxuXHRsb2coJ0xvYWRlZCBnbG9iYWxzICVPJywgcmVzdWx0KVxuXG5cdHJldHVybiByZXN1bHRcblxufVxuXG4vKlxuICogSWYgdGhlIGlucHV0IGNsYWltIGlzIGEgR2l0aHViUmVwb3NpdG9yeUNsYWltLCBpdCBsb2FkcyBhbGwgaXQncyBhcHBsaWNhYmxlXG4gKiBvdmVycmlkZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gYSBsaXN0LiBPdGhlcndpc2UsIGl0IHJldHVybnMgYW4gZW1wdHkgbGlzdC5cbiAqXG4gKiBJbnB1dDpcbiAqIC0gY2xhaW06IG91ciBjdXN0b20gY2xhaW0gb2JqZWN0LCB3aGljaCBzaG91bGQgYmUgYSBHaXRodWJSZXBvc2l0b3J5Q2xhaW1cbiAqXG4gKiBSZXR1cm5zOlxuICogLSBBbiBPdmVycmlkZXIgYXJyYXksIHdpdGggYSBHaXRodWJSZXBvc2l0b3J5T3ZlcnJpZGVyIGlmIHRoZSBjbGFpbVxuICogICB3YXMgYSBHaXRodWJSZXBvc2l0b3J5Q2xhaW0sIG9yIGVtcHR5IGlmIGl0IHdhcyBub3QuXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZE92ZXJyaWRlcyhjbGFpbTogYW55KTogT3ZlcnJpZGVyUGF0Y2hlc1tdIHtcblxuXG5cdGxldCBvdmVycmlkZXMgOiBPdmVycmlkZXJQYXRjaGVzW10gPSBbXVxuXG5cdGlmKGNsYWltLmtpbmQgPT09IFwiQ29tcG9uZW50Q2xhaW1cIiAmJiBjbGFpbS5wcm92aWRlcnMuZ2l0aHViLm92ZXJyaWRlcyl7XG5cblx0XHRvdmVycmlkZXMucHVzaChuZXcgR2l0aHViUmVwb3NpdG9yeU92ZXJyaWRlcigpKVxuXG5cdH1cblxuXHRyZXR1cm4gb3ZlcnJpZGVzXG5cbn1cblxuXG4vKipcbiAqIExvYWQgYWxsIG5vcm1hbGl6ZXJzIGFuZCBzdG9yZXMgdGhlbSBpbnRvIGEgbGlzdC5cbiAqIEBwYXJhbSBjbGFpbVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWROb3JtYWxpemVycyhfY2xhaW06IGFueSwgcGF0aD86IHN0cmluZyk6IFByb21pc2U8Tm9ybWFsaXplcltdPiB7XG5cblx0bGV0IHJlc3VsdDogTm9ybWFsaXplcltdID0gW11cblxuXHRmb3IgKGNvbnN0IG5vcm1hbGl6ZXIgb2YgTk9STUFMSVpFUlMpIHtcblxuXHRcdHJlc3VsdC5wdXNoKG5ldyBub3JtYWxpemVyKHtwYXRoOiBwYXRofSkpO1xuXG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xuXG59XG5cblxuLypcbiAqIExvYWRzIGFsbCBhcHBsaWNhYmxlIGluaXRpYWxpemVycyBmb3IgYSBnaXZlbiBjbGFpbSBhbmQgc3RvcmVzIHRoZW0gaW50byBhIGxpc3QuXG4gKlxuICogSW5wdXQ6XG4gKiAtIGNsYWltOiBvdXIgY3VzdG9tIGNsYWltIG9iamVjdCwgd2l0aCB3aGljaCB3ZSBjaGVjayBpZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYXBwbGljYWJsZVxuICpcbiAqIFJldHVybnM6XG4gKiAtIEFuIEluaXRpYWxpemVyIGFycmF5IHByb21pc2UsIGNvbnRhaW5pbmcgYWxsIHRoZSBpbml0aWFsaXplcnMgbG9hZGVkIGZvciB0aGlzIGNsYWltXG4gKlxuICovXG5cbmxldCBsb2FkZWRJbml0aWFsaXplcnM6IEluaXRpYWxpemVyUGF0Y2hlc1tdIHwgZmFsc2UgPSBmYWxzZVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEluaXRpYWxpemVycyhjbGFpbTogYW55LCBpbml0aWFsaXplcnNQYXRoOiBzdHJpbmcgPSBnZXRQYXRoKFwiaW5pdGlhbGl6ZXJzXCIpKTogUHJvbWlzZTxJbml0aWFsaXplclBhdGNoZXNbXT4ge1xuXG5cdGxldCByZXN1bHQ6IEluaXRpYWxpemVyUGF0Y2hlc1tdID0gW11cblxuXHRhd2FpdCBjcmF3bChpbml0aWFsaXplcnNQYXRoLCAoZW50cnk6c3RyaW5nKSA9PiB7XG5cblx0XHRyZXR1cm4gaXNZYW1sRmlsZS50ZXN0KGVudHJ5KVxuXG5cdH0sIGFzeW5jKGVudHJ5OnN0cmluZywgZGF0YTphbnkpID0+IHtcblxuXHRcdGNvbnN0IGluaXRpYWxpemVyRGF0YTogYW55ID0gY29tbW9uLmlvLmZyb21ZYW1sKGRhdGEpXG5cblx0XHRjb25zdCBleHQ6IHN0cmluZyA9IHBhdGguZXh0bmFtZShlbnRyeSk7XG5cblx0XHRjb25zdCBuYW1lOiBzdHJpbmcgPSBwYXRoLmJhc2VuYW1lKGVudHJ5LCBleHQpO1xuXG5cdFx0aWYobmFtZSBpbiBJTklUSUFMSVpFUlNfQllfRklMRV9OQU1FKXtcblxuXHRcdFx0Y29uc3QgaW5pdGlhbGl6ZXJCZk46IGFueSA9IG5ldyBJTklUSUFMSVpFUlNfQllfRklMRV9OQU1FW25hbWVdKGluaXRpYWxpemVyRGF0YSlcblxuXHRcdFx0aWYoIShhd2FpdCBpbml0aWFsaXplckJmTi52YWxpZGF0ZShTQ0hFTUFTX0JZX0lOSVRJQUxJWkVSX05BTUVbbmFtZV0gfHwge30pKSl7XG5cblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7bmFtZX0gaW5pdGlhbGl6ZXIgZmlsZWApXG5cblx0XHRcdH1cblxuXHRcdFx0aWYoaW5pdGlhbGl6ZXJEYXRhLmtpbmQgPT09IGNsYWltLmtpbmQpe1xuXG5cdFx0XHRcdHJlc3VsdC5wdXNoKGluaXRpYWxpemVyQmZOKVxuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdGxvZygnU2tpcHBpbmcgaW5pdGlhbGl6ZXIgJXMgYmVjYXVzZSBpdCBpcyBub3QgYXBwbGljYWJsZSB0byAlcycsIG5hbWUsIGNsYWltLmtpbmQpXG5cblx0XHRcdH1cblxuXHRcdH1cblxuXHR9KVxuXG5cdGZvcihjb25zdCBpbml0aWFsaXplciBvZiBJTklUSUFMSVpFUlMpIHtcblxuXHRcdGlmKChpbml0aWFsaXplci5hcHBsaWNhYmxlS2luZHMpLmluY2x1ZGVzKGNsYWltLmtpbmQpKXtcblxuXHRcdFx0cmVzdWx0LnB1c2gobmV3IGluaXRpYWxpemVyKCkpO1xuXG5cdFx0fVxuXG5cdH1cblxuXHRsb2coJ0xvYWRlZCBpbml0aWFsaXplcnMgJU8nLCByZXN1bHQpXG5cblx0bG9hZGVkSW5pdGlhbGl6ZXJzID0gcmVzdWx0XG5cblx0cmV0dXJuIGxvYWRlZEluaXRpYWxpemVyc1xufVxuXG5cbi8qXG4gKiBMb2FkcyBhbGwgY2xhaW1zIGFuZCBzdG9yZXMgdGhlbSBpbnRvIGEgYW4gb2JqZWN0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmVjZWl2ZXMgbm8gaW5wdXQuXG4gKlxuICogUmV0dXJuczpcbiAqIC0gQSBSZW5kZXJDbGFpbXMgcHJvbWlzZS4gQSBSZW5kZXJDbGFpbXMgb2JqZWN0IGNvbnRhaW5zLCBmb3IgZWFjaCBjbGFpbTpcbiAqICAgwrcgVGhlIGFjdHVhbCBjbGFpbSBvYmplY3RcbiAqICAgwrcgVGhlIGNsYWltJ3MgcGF0aFxuICogICDCtyBUaGUgY2xhaW0ncyBhcHBsaWNhYmxlIGluaXRpYWxpemVycywgZ2xvYmFscyBhbmQgb3ZlcnJpZGVzXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENsYWltcyhjbGFpbXNQYXRoOiBzdHJpbmcgPSBnZXRQYXRoKFwiY2xhaW1zXCIpKTogUHJvbWlzZTxSZW5kZXJDbGFpbXM+IHtcblxuXHRjb25zdCByZXN1bHQ6IGFueSA9IHt9XG5cblx0Y29uc3QgZGVmYXVsdHNDbGFpbXMgPSBsb2FkQ2xhaW1EZWZhdWx0cygpXG5cblx0YXdhaXQgY3Jhd2woY2xhaW1zUGF0aCwgKGVudHJ5OnN0cmluZykgPT4ge1xuXG5cdFx0cmV0dXJuIGlzWWFtbEZpbGUudGVzdChlbnRyeSlcblxuXHR9LCBhc3luYyAoZW50cnk6c3RyaW5nLCBkYXRhOmFueSkgPT4ge1xuXG5cdFx0Y29uc3QgY2xhaW06IGFueSA9IHBhdGNoQ2xhaW0oY29tbW9uLmlvLmZyb21ZYW1sKGRhdGEpLCBkZWZhdWx0c0NsYWltcylcblxuXHRcdGlmKCEoXCJraW5kXCIgaW4gY2xhaW0gJiYgXCJuYW1lXCIgaW4gY2xhaW0pKXtcblxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNsYWltIGZpbGUgJHtlbnRyeX1gKVxuXG5cdFx0fVxuXG5cdFx0Q2xhaW1WYWxpZGF0aW9uLnZhbGlkYXRlQ2xhaW0oY2xhaW0sIChjbGFpbXMgYXMgYW55KVtgJHtjbGFpbS5raW5kfVNjaGVtYWBdKVxuXG4gICAgICAgICAgICAgICAgYXdhaXQgQ2xhaW1WYWxpZGF0aW9uLm9wdGlvbmFsVmFsaWRhdGlvbihjbGFpbSlcblxuXHRcdGlmKHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF0pIHtcblxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgY2xhaW0gJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YClcblx0XHR9XG5cblx0XHRyZXN1bHRbYCR7Y2xhaW0ua2luZH0tJHtjbGFpbS5uYW1lfWBdID0ge31cblxuXHRcdHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF1bXCJjbGFpbVwiXSA9IGNsYWltXG5cblx0XHRyZXN1bHRbYCR7Y2xhaW0ua2luZH0tJHtjbGFpbS5uYW1lfWBdW1wiY2xhaW1QYXRoXCJdID0gZW50cnlcblxuXHRcdHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF1bXCJpbml0aWFsaXplcnNcIl0gPSBhd2FpdCBsb2FkSW5pdGlhbGl6ZXJzKGNsYWltKTtcblxuXHRcdHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF1bXCJnbG9iYWxzXCJdID0gYXdhaXQgbG9hZEdsb2JhbHMoY2xhaW0pO1xuXG5cdFx0cmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXVtcIm92ZXJyaWRlc1wiXSA9IGxvYWRPdmVycmlkZXMoY2xhaW0pO1xuXG5cdFx0cmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXVtcIm5vcm1hbGl6ZXJzXCJdID0gYXdhaXQgbG9hZE5vcm1hbGl6ZXJzKGNsYWltLCBlbnRyeSk7XG5cblx0fSlcblxuXHRyZXR1cm4gcmVzdWx0XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRDbGFpbURlZmF1bHRzKCl7XG4gIHJldHVybiBjb21tb24uaW8uZnJvbVlhbWwoZnMucmVhZEZpbGVTeW5jKFxuICAgIGAke2dldFBhdGgoXCJjbGFpbXNEZWZhdWx0c1wiKX0vY2xhaW1zX2RlZmF1bHRzLnlhbWxgLCBcInV0Zi04XCJcbiAgKSlcbn1cblxuLypcbiAqIFVzaW5nIGZhc3QtanNvbi1wYXRjaCwgY29tcGFyZXMgYSBjbGFpbSB0byBpdHMga2luZCdzIGRlZmF1bHRzLCB0aGVuIHBhdGNoZXMgaXQuXG4gKlxuICogSW5wdXQ6XG4gKiAtIGNsYWltOiBvdXIgY3VzdG9tIGNsYWltIG9iamVjdCwgd2hpY2ggd2Ugd2FudCB0byBwYXRjaFxuICogLSBkZWZhdWx0c0NsYWltczogYW4gb2JqZWN0LCBjb250YWluaW5nIHRoZSBkZWZhdWx0cyBmb3IgZWFjaCBjbGFpbSBraW5kLFxuICogICB3aXRoIHRoZSBzYW1lIHN0cnVjdHVyZSB0aGF0IHdlIHVzZSBmb3IgdGhlIGFjdHVhbCBjbGFpbXNcbiAqXG4gKiBSZXR1cm5zOlxuICogLSBUaGUgcGF0Y2hlZCBjbGFpbVxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoQ2xhaW0oY2xhaW06IGFueSwgZGVmYXVsdHNDbGFpbXM6IGFueSl7XG5cblx0aWYoZGVmYXVsdHNDbGFpbXNbY2xhaW0ua2luZF0pe1xuXG5cdFx0Y29uc3QganNvblBhdGNoT3BzOiBhbnkgPSBmYXN0SnNvblBhdGNoLmNvbXBhcmUoY2xhaW0sIGRlZmF1bHRzQ2xhaW1zW2NsYWltLmtpbmRdKS5maWx0ZXIoKGpwOmFueSkgPT4ge1xuXG5cdFx0XHRyZXR1cm4ganAub3AgPT0gXCJhZGRcIlxuXG5cdFx0fSlcblxuXHRcdGNsYWltID0gZmFzdEpzb25QYXRjaC5hcHBseVBhdGNoKGNsYWltLCBqc29uUGF0Y2hPcHMpLm5ld0RvY3VtZW50XG5cblx0fVxuXG5cdHJldHVybiBjbGFpbVxuXG59XG5cblxuLypcbiAqIExvYWRzIGFsbCBDUnMgYW5kIHN0b3JlcyB0aGVtIGludG8gYSBvYmplY3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBubyBpbnB1dC5cbiAqXG4gKiBSZXR1cm5zOlxuICogLSBBbiBvYmplY3QgcHJvbWlzZSB3aGljaCBjb250YWlucyBlYWNoIGxvYWRlZCBDUlxuICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRDUnMoXG5cblx0Y3JzUGF0aDogc3RyaW5nID0gZ2V0UGF0aChcImNyc1wiKSxcblxuXHRleGNsdWRlZFBhdGhzOiBzdHJpbmdbXSA9IFsgZ2V0UGF0aChcImdsb2JhbHNcIiksIGdldFBhdGgoXCJpbml0aWFsaXplcnNcIildXG5cbikge1xuXG5cdGNvbnN0IHJlc3VsdDogYW55ID0ge31cblxuXHRhd2FpdCBjcmF3bFdpdGhFeGNsdXNpb25zKGNyc1BhdGgsIChlbnRyeTpzdHJpbmcpID0+IHtcblxuXHRcdHJldHVybiBpc1lhbWxGaWxlLnRlc3QoZW50cnkpXG5cblx0fSwgYXN5bmMgKGVudHJ5OnN0cmluZywgZGF0YTphbnkpID0+IHtcblxuXHRcdGNvbnN0IHlhbWxEYXRhOiBhbnkgPSBzdHJpcEtub3duUmVsYXRpb25zKGNvbW1vbi5pby5mcm9tWWFtbChkYXRhKSk7XG5cblx0XHRpZighKFwia2luZFwiIGluIHlhbWxEYXRhICYmIFwibmFtZVwiIGluIHlhbWxEYXRhLm1ldGFkYXRhKSl7XG5cblx0XHRcdGxvZyhgSW52YWxpZCBjbGFpbSBmaWxlICR7ZW50cnl9YClcblxuXHRcdH1cblxuXHRcdGlmKHJlc3VsdFtgJHt5YW1sRGF0YS5raW5kfS0ke3lhbWxEYXRhLm1ldGFkYXRhLm5hbWV9YF0pIHtcblxuXHRcdFx0bG9nKGBEdXBsaWNhdGUgQ1IgJHt5YW1sRGF0YS5raW5kfS0ke3lhbWxEYXRhLm1ldGFkYXRhLm5hbWV9YClcblxuXHRcdH1cblxuXHRcdHJlc3VsdFtgJHt5YW1sRGF0YS5raW5kfS0ke3lhbWxEYXRhLm1ldGFkYXRhLm5hbWV9YF0gPSB5YW1sRGF0YVxuXG5cdH0sXG5cdFx0ZXhjbHVkZWRQYXRocy5jb25jYXQoZ2V0QWRkaXRpb25hbFBhdGhzKCkpXG5cdClcblxuXHRyZXR1cm4gcmVzdWx0XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVuYW1lUmVzdWx0IHtcblx0a2luZDogc3RyaW5nO1xuXHRjbGFpbVBhdGg6IHN0cmluZztcblx0Y2xhaW1OYW1lOiBzdHJpbmc7XG5cdG9sZE5hbWU6IHN0cmluZztcblx0bmV3TmFtZTogc3RyaW5nO1xufVxuXG4vKlxuKiBEZXNjcmlwdGlvbjogR2V0IHRoZSByZW5hbWVkIHVzaW5nIGNsYWltUmVmIGFubm90YXRpb25cbiogSW5wdXQ6IGNsYWltczogYW55LCBjcnM6IGFueVxuKiBPdXRwdXQ6IHJlbmFtZXM6IElSZW5hbWVSZXN1bHRbXVxuKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRSZW5hbWVzKGNsYWltczogYW55LCBjcnM6IGFueSk6IFByb21pc2U8SVJlbmFtZVJlc3VsdFtdPiB7XG5cblx0Lypcblx0ICogSWYgY2hlY2tSZW5hbWVzIGlzIGZhbHNlLCB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciByZW5hbWVzXG5cdCAqL1xuXHRjb25zdCByZW5hbWVzRW5hYmxlZCA9IGdldFJlbmFtZXNFbmFibGVkKCk7XG5cdGlmICghcmVuYW1lc0VuYWJsZWQpIHJldHVybiBbXTtcblxuXHRjb25zdCByZXN1bHQ6IElSZW5hbWVSZXN1bHRbXSA9IFtdO1xuXG5cdC8qKlxuXHQgKiBGb3IgZWFjaCBDUiwgbG9vayBmb3IgYSBjbGFpbSB0aGF0IGRvZXMgbm90IG1hdGNoIHRoZSBuYW1lIHdpdGggQ1IncyBmaXJlc3RhcnRyLmRldi9jbGFpbS1yZWYgYW5ub3RhdGlvblxuXHQgKi9cblx0Zm9yIChsZXQgY3Igb2YgT2JqZWN0LnZhbHVlcyhjcnMpKSB7XG5cblx0XHRjb25zdCBhbnlDcjogYW55ID0gY3I7XG5cblx0XHRpZiAoIWFueUNyPy5tZXRhZGF0YT8uYW5ub3RhdGlvbnMpIGNvbnRpbnVlO1xuXG5cdFx0Ly8gaWYgdGhlIGFubm90YXRpb24gaXMgYSBjbGFpbVJlZlxuXHRcdGNvbnN0IGFubm90YXRpb25OYW1lID0gY29tbW9uLmdlbmVyaWMuZ2V0RmlyZXN0YXJ0ckFubm90YXRpb24oJ2NsYWltLXJlZicpO1xuXG5cdFx0aWYgKGFubm90YXRpb25OYW1lIGluIGFueUNyPy5tZXRhZGF0YT8uYW5ub3RhdGlvbnMpIHtcblxuXHRcdFx0Y29uc3QgY2xhaW1SZWYgPSBhbnlDci5tZXRhZGF0YS5hbm5vdGF0aW9uc1thbm5vdGF0aW9uTmFtZV07XG5cblx0XHRcdC8vIHNwbGl0IHRoZSBhbm5vdGF0aW9uIGludG8ga2luZCBhbmQgbmFtZVxuXHRcdFx0Y29uc3QgW2tpbmQsIG5hbWVdID0gY2xhaW1SZWYuc3BsaXQoXCIvXCIpO1xuXG5cdFx0XHQvLyBpZiB0aGUgY2xhaW0gZXhpc3RzLCBjaGVjayBpZiB0aGUgbmFtZSBpcyBkaWZmZXJlbnQgZm9yIHRoZSBnaXZlbiBwcm92aWRlclxuXHRcdFx0Y29uc3QgcmVmZXJlbmNlZENsYWltID0gY2xhaW1zW2Ake2tpbmR9LSR7bmFtZX1gXS5jbGFpbTtcblxuXG5cdFx0XHRjb25zdCBvbGROYW1lID0gYW55Q3IubWV0YWRhdGEubmFtZTtcblx0XHRcdGNvbnN0IG5ld05hbWUgPSByZWZlcmVuY2VkQ2xhaW0ucHJvdmlkZXJzW2dldENvbmZpZ3VyZWRQcm92aWRlcigpXS5uYW1lO1xuXG5cdFx0XHRpZiAob2xkTmFtZSAhPT0gbmV3TmFtZSkge1xuXG5cdFx0XHRcdHJlc3VsdC5wdXNoKHtcblx0XHRcdFx0XHRraW5kOiByZWZlcmVuY2VkQ2xhaW0ua2luZCxcblx0XHRcdFx0XHRjbGFpbVBhdGg6IGNsYWltc1tgJHtraW5kfS0ke25hbWV9YF0uY2xhaW1QYXRoLFxuXHRcdFx0XHRcdGNsYWltTmFtZTogcmVmZXJlbmNlZENsYWltLm5hbWUsXG5cdFx0XHRcdFx0b2xkTmFtZSxcblx0XHRcdFx0XHRuZXdOYW1lLFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRGF0YSB7XG5cdGdsb2JhbHM/OiBhbnksXG5cdGluaXRpYWxpemVycz86IGFueSxcblx0Y2xhaW1zPzogYW55LFxuXHRyZW5hbWVzPzogYW55LFxuXHRjcnM/OiBhbnlcbn1cblxuLypcbiAqIE1haW4gZnVuY3Rpb24gb2YgdGhpcyBmaWxlLiBMb2FkcyBhbGwgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBvYmplY3RzIGFuZFxuICogc3RvcmVzIHRoZW0gaW50byBhbiBvYmplY3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBubyBpbnB1dC5cbiAqXG4gKiBPdXRwdXQ6XG4gKiAtIEFuIG9iamVjdCwgd2hpY2ggY29udGFpbnM6XG4gKiAgIMK3IEFsbCBjbGFpbXMgdG8gYmUgcmVuZGVyZWRcbiAqICAgwrcgQWxsIENScyB0aGF0IHdlcmUgYWxyZWFkeSBjcmVhdGVkXG4gKiAgIMK3IEFsbCByZW5hbWUgb3BlcmF0aW9uc1xuICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRBbGwoKXtcblxuXG5cdGNvbnN0IGRhdGE6IHsgcmVuZGVyQ2xhaW1zOiBSZW5kZXJDbGFpbXMsIGNyczogYW55LCByZW5hbWVzPzogSVJlbmFtZVJlc3VsdFtdIH0gPSB7XG5cblx0XHRyZW5kZXJDbGFpbXM6IHt9LFxuXG5cdFx0Y3JzOiB7fSxcblxuXHR9XG5cblx0YXdhaXQgUHJvbWlzZS5hbGwoW1xuXG5cdFx0bG9hZENsYWltcygpLnRoZW4oKGNsYWltczphbnkpID0+IHtcblxuXHRcdFx0ZGF0YVtcInJlbmRlckNsYWltc1wiXSA9IGNsYWltc1xuXG5cdFx0fSlcblxuXHRcdC5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuXG5cdFx0XHR0aHJvdyBlcnJvclxuXG5cdFx0fSlcblxuXHRcdC50aGVuKGFzeW5jKCkgPT4ge1xuXG5cblx0XHRcdGZvcihjb25zdCB2aXJ0dWFsQ2xhaW0gb2YgdmlydHVhbENsYWltcyl7XG5cblx0XHRcdFx0Y29uc3QgZXhwYW5kZWRDbGFpbTogSUNsYWltID0gIGF3YWl0ICh2aXJ0dWFsQ2xhaW0uZXhwYW5kKGRhdGFbXCJyZW5kZXJDbGFpbXNcIl0gLCB7b3JnOiBnZXRPcmcoKX0pKVxuXG5cblx0XHRcdFx0Y29uc3QgZGVmYXVsdENvbmZpZyA9IHtcblx0XHRcdFx0XHRraW5kOiAnRmlyZXN0YXJ0ckdpdGh1Ykdyb3VwJyxcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWVzOiB7XG5cdFx0XHRcdFx0ICBjb250ZXh0OiB7XG5cdFx0XHRcdFx0XHRiYWNrZW5kOiB7XG5cdFx0XHRcdFx0XHQgIHJlZjoge1xuXHRcdFx0XHRcdFx0XHRraW5kOiAnRmlyZXN0YXJ0clByb3ZpZGVyQ29uZmlnJyxcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2ZpcmVzdGFydHItdGVycmFmb3JtLXN0YXRlJ1xuXHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0cHJvdmlkZXI6IHtcblx0XHRcdFx0XHRcdCAgcmVmOiB7XG5cdFx0XHRcdFx0XHRcdGtpbmQ6ICdGaXJlc3RhcnRyUHJvdmlkZXJDb25maWcnLFxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZ2l0aHViLWFwcCdcblx0XHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnN0IHJlbmRlckNsYWltOiBSZW5kZXJDbGFpbURhdGEgPSB7XG5cblx0XHRcdFx0XHRjbGFpbTogZXhwYW5kZWRDbGFpbSxcblxuXHRcdFx0XHRcdGNsYWltUGF0aDogXCJ2aXJ0dWFsXCIsXG5cblx0XHRcdFx0XHRpbml0aWFsaXplcnM6IFtuZXcgVVVJREluaXRpYWxpemVyKGV4cGFuZGVkQ2xhaW0pLCBuZXcgSW5pdGlhbGl6ZXJDbGFpbVJlZigpLCBuZXcgSW5pdGlhbGl6ZXJEZWZhdWx0KGRlZmF1bHRDb25maWcpXSxcblxuXHRcdFx0XHRcdG92ZXJyaWRlczogW10sXG5cblx0XHRcdFx0XHRnbG9iYWxzOiBbXSxcblxuXHRcdFx0XHRcdG5vcm1hbGl6ZXJzOiBbbmV3IE5hbWVOb3JtYWxpemVyKCldXG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRhdGFbXCJyZW5kZXJDbGFpbXNcIl1bYCR7ZXhwYW5kZWRDbGFpbS5raW5kfS0ke2V4cGFuZGVkQ2xhaW0ubmFtZX1gIGFzIFJlbmRlckNsYWltS2V5XSA9IHJlbmRlckNsYWltXG5cdFx0XHR9XG5cblx0XHR9KSxcblxuXHRcdGxvYWRDUnMoKS50aGVuKChjcnM6YW55KSAgPT5cblxuXHRcdFx0ZGF0YVtcImNyc1wiXSA9IGNyc1xuXG5cdCAgICAgICAgKVxuXG5cdF0pXG5cblx0Ly8gV2UgbmVlZCB0byBsb2FkIHJlbmFtZXMgYWZ0ZXIgY3JzIGFuZCBjbGFpbXMgaGFzIGJlZW4gbG9hZGVkIHRvIGNvbXBhcmUgdGhlbSBib3RoXG5cdGRhdGFbXCJyZW5hbWVzXCJdID0gYXdhaXQgbG9hZFJlbmFtZXMoZGF0YVtcInJlbmRlckNsYWltc1wiXSwgZGF0YVtcImNyc1wiXSk7XG5cblx0cmV0dXJuIGRhdGFcblxufVxuXG5cblxuZnVuY3Rpb24gZ2V0T3JnKCl7XG5cblxuXHRjb25zdCBncm91cE9yZzogc3RyaW5nID0gY29tbW9uLmVudmlyb25tZW50LmdldEZyb21FbnZpcm9ubWVudFdpdGhEZWZhdWx0KFxuXG4gICAgY29tbW9uLnR5cGVzLmVudlZhcnMub3JnLFxuXG4gICAgXCJcIlxuXG4gIClcblxuICByZXR1cm4gZ3JvdXBPcmdcblxufVxuIl19
234340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFvRDtBQUNwRCx1Q0FBMEU7QUFDMUUsb0VBQW1DO0FBQ25DLDJDQUE0QjtBQUM1QixpREFBcUc7QUFJckcscUNBQWdHO0FBRWhHLG9GQUFpRjtBQUNqRix1Q0FBd0I7QUFDeEIsK0RBQWdEO0FBQ2hELGtEQUF5QjtBQUN6Qiw4Q0FBb0U7QUFFcEUsOENBQXFEO0FBQ3JELHFDQUEwQztBQUMxQyx5REFBbUM7QUFDbkMsNkNBQXFEO0FBRXJELCtDQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0RBQTZEO0FBQzdELHdEQUEyRDtBQUczRCxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssRUFBQyw0QkFBNEIsQ0FBQyxDQUFBO0FBRS9DLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBSTlDOzs7R0FHRztBQUdILE1BQU0sYUFBYSxHQUFvQjtJQUV0QyxJQUFJLDRCQUFrQixFQUFFO0NBRXhCLENBQUE7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxXQUFXO0lBQ2hDLE1BQU0sTUFBTSxHQUFVLEVBQUUsQ0FBQTtJQUV4QixNQUFNLElBQUEsZUFBSyxFQUFDLElBQUEsZ0JBQU8sRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1FBRWhELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUU5QixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQWEsRUFBRSxJQUFRLEVBQUUsRUFBRTtRQUVwQyxNQUFNLE1BQU0sR0FBUSx3QkFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FB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LE1BQU07SUFHZCxNQUFNLFFBQVEsR0FBVyx3QkFBTSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FFdEUsd0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFFeEIsRUFBRSxDQUVILENBQUE7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUVqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjcmF3bCwgY3Jhd2xXaXRoRXhjbHVzaW9uc30gZnJvbSBcIi4vY3Jhd2xlclwiXG5pbXBvcnQgeyBTRUNUSU9OU19CWV9GSUxFX05BTUUsIFNDSEVNQVNfQllfU0VDVElPTl9OQU1FIH0gZnJvbSBcIi4vZ2xvYmFsc1wiXG5pbXBvcnQgY29tbW9uIGZyb20gXCJjYXRhbG9nX2NvbW1vblwiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IElOSVRJQUxJWkVSUywgSU5JVElBTElaRVJTX0JZX0ZJTEVfTkFNRSwgU0NIRU1BU19CWV9JTklUSUFMSVpFUl9OQU1FIH0gZnJvbSBcIi4vaW5pdGlhbGl6ZXJzXCJcbmltcG9ydCB7IFJlbmRlckNsYWltRGF0YSwgUmVuZGVyQ2xhaW1LZXksIFJlbmRlckNsYWltcyB9IGZyb20gXCIuL3JlbmRlcmVyXCJcbmltcG9ydCB7IEluaXRpYWxpemVyUGF0Y2hlcyB9IGZyb20gXCIuL2luaXRpYWxpemVycy9iYXNlXCJcbmltcG9ydCB7IEdsb2JhbFNlY3Rpb24gfSBmcm9tIFwiLi9nbG9iYWxzL2Jhc2VcIlxuaW1wb3J0IHsgZ2V0QWRkaXRpb25hbFBhdGhzLCBnZXRDb25maWd1cmVkUHJvdmlkZXIsIGdldFBhdGgsIGdldFJlbmFtZXNFbmFibGVkIH0gZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCB7IE92ZXJyaWRlclBhdGNoZXMgfSBmcm9tIFwiLi9vdmVycmlkZXJzL2Jhc2VcIlxuaW1wb3J0IHsgR2l0aHViUmVwb3NpdG9yeU92ZXJyaWRlciB9IGZyb20gXCIuL292ZXJyaWRlcnMvZ2l0aHViUmVwb3NpdG9yeU92ZXJyaWRlXCJcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgKiBhcyBmYXN0SnNvblBhdGNoIGZyb20gXCJmYXN0LWpzb24tcGF0Y2hcIlxuaW1wb3J0IERlYnVnIGZyb20gXCJkZWJ1Z1wiXG5pbXBvcnQgeyBGaXJlc3RhcnRyQWxsQ2xhaW0sIElWaXJ0dWFsQ2xhaW0gfSBmcm9tIFwiLi9jbGFpbXMvdmlydHVhbFwiXG5pbXBvcnQgeyBJQ2xhaW0gfSBmcm9tIFwiLi9jbGFpbXMvYmFzZVwiXG5pbXBvcnQgeyBVVUlESW5pdGlhbGl6ZXIgfSBmcm9tIFwiLi9pbml0aWFsaXplcnMvdXVpZFwiXG5pbXBvcnQgeyBDbGFpbVZhbGlkYXRpb24gfSBmcm9tIFwiLi9jbGFpbXNcIlxuaW1wb3J0ICBjbGFpbXMgZnJvbSBcIi4vY2xhaW1zL2Jhc2VcIlxuaW1wb3J0IHsgc3RyaXBLbm93blJlbGF0aW9ucyB9IGZyb20gXCIuL3V0aWxzL2NyVXRpbHNcIlxuaW1wb3J0IHsgTm9ybWFsaXplciB9IGZyb20gXCIuL25vcm1hbGl6ZXJzL2Jhc2VcIlxuaW1wb3J0IHsgTk9STUFMSVpFUlMgfSBmcm9tIFwiLi9ub3JtYWxpemVyc1wiXG5pbXBvcnQgeyBOYW1lTm9ybWFsaXplciB9IGZyb20gXCIuL25vcm1hbGl6ZXJzL25hbWVcIlxuaW1wb3J0IHsgSW5pdGlhbGl6ZXJDbGFpbVJlZiB9IGZyb20gXCIuL2luaXRpYWxpemVycy9jbGFpbVJlZlwiXG5pbXBvcnQgeyBJbml0aWFsaXplckRlZmF1bHQgfSBmcm9tIFwiLi9kZWZhdWx0cy9pbml0aWFsaXplclwiXG5cblxuY29uc3QgbG9nID0gRGVidWcoJ2ZpcmVzdGFydHI6cmVuZGVyZXI6bG9hZGVyJylcblxuY29uc3QgaXNZYW1sRmlsZSA9IG5ldyBSZWdFeHAoL1xcLih5YW1sfHltbCkkLylcblxuXG5cbi8qKlxuICpcbiAqIEByZXR1cm5zIFZpcnR1YWwgQ2xhaW1zXG4gKi9cblxuXG5jb25zdCB2aXJ0dWFsQ2xhaW1zOiBJVmlydHVhbENsYWltW10gPSBbXG5cblx0bmV3IEZpcmVzdGFydHJBbGxDbGFpbSgpXG5cbl1cblxuLypcbiAqIEZ1bmN0aW9uIHRvIGxvYWQgc3lzdGVtIGNsYWltcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY2VpdmVzIG5vIGlucHV0LlxuICpcbiAqIE91dHB1dDpcbiAqIC0gQW4gYW55W10sIHdpdGggYWxsIHRoZSBzeXN0ZW1zIGxvYWRlZC5cbiAqXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkU3lzdGVtcygpIHtcblx0Y29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdXG5cblx0YXdhaXQgY3Jhd2woZ2V0UGF0aChcInN5c3RlbXNcIiksIChlbnRyeTpzdHJpbmcpID0+IHtcblxuXHRcdHJldHVybiBpc1lhbWxGaWxlLnRlc3QoZW50cnkpXG5cblx0fSwgYXN5bmMgKF9lbnRyeTpzdHJpbmcsIGRhdGE6YW55KSA9PiB7XG5cblx0XHRjb25zdCBzeXN0ZW06IGFueSA9IGNvbW1vbi5pby5mcm9tWWFtbChkYXRhKVxuXG5cdFx0cmVzdWx0LnB1c2goc3lzdGVtKTtcblxuXHR9KVxuXG5cdHJldHVybiByZXN1bHRcbn1cblxuLypcbiAqIEZ1bmN0aW9uIHRvIGxvYWQgZG9tYWluIGNsYWltcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY2VpdmVzIG5vIGlucHV0LlxuICpcbiAqIE91dHB1dDpcbiAqIC0gQW4gYW55W10sIHdpdGggYWxsIHRoZSBkb21haW5zIGxvYWRlZC5cbiAqXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkRG9tYWlucygpIHtcblxuXHRjb25zdCByZXN1bHQ6IGFueVtdID0gW11cblxuXHRhd2FpdCBjcmF3bChnZXRQYXRoKFwiZG9tYWluc1wiKSwgKGVudHJ5OnN0cmluZykgPT4ge1xuXG5cdFx0cmV0dXJuIGlzWWFtbEZpbGUudGVzdChlbnRyeSlcblxuXHR9LCBhc3luYyAoX2VudHJ5OnN0cmluZywgZGF0YTphbnkpID0+IHtcblxuXHRcdGNvbnN0IGRvbWFpbjogYW55ID0gY29tbW9uLmlvLmZyb21ZYW1sKGRhdGEpXG5cblx0XHRyZXN1bHQucHVzaChkb21haW4pO1xuXHR9KVxuXG5cdHJldHVybiByZXN1bHRcbn1cblxuXG4vKlxuICogTG9hZHMgYWxsIGFwcGxpY2FibGUgZ2xvYmFscyBmb3IgYSBnaXZlbiBjbGFpbSBhbmQgc3RvcmVzIHRoZW0gaW50byBhIGxpc3QuXG4gKlxuICogSW5wdXQ6XG4gKiAtIGNsYWltOiBvdXIgY3VzdG9tIGNsYWltIG9iamVjdCwgd2l0aCB3aGljaCB3ZSBjaGVjayBpZiB0aGUgZ2xvYmFsIGlzIGFwcGxpY2FibGVcbiAqXG4gKiBSZXR1cm5zOlxuICogLSBBIEdsb2JhbFNlY3Rpb24gYXJyYXkgcHJvbWlzZSwgY29udGFpbmluZyBhbGwgdGhlIGdsb2JhbHMgbG9hZGVkIGZvciB0aGlzIGNsYWltXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdsb2JhbHMoY2xhaW06IGFueSk6IFByb21pc2U8R2xvYmFsU2VjdGlvbltdPiB7XG5cblx0Y29uc3QgcmVzdWx0OiBHbG9iYWxTZWN0aW9uW10gPSBbXVxuXG5cdGF3YWl0IGNyYXdsKGdldFBhdGgoXCJnbG9iYWxzXCIpLCAoZW50cnk6c3RyaW5nKSA9PiB7XG5cblx0XHRyZXR1cm4gaXNZYW1sRmlsZS50ZXN0KGVudHJ5KVxuXG5cdH0sIGFzeW5jIChlbnRyeTpzdHJpbmcsIGRhdGE6YW55KSA9PiB7XG5cblx0XHRjb25zdCBnbG9iYWxEYXRhOiBhbnkgPSBjb21tb24uaW8uZnJvbVlhbWwoZGF0YSk7XG5cblx0XHRjb25zdCBleHQ6IHN0cmluZyA9IHBhdGguZXh0bmFtZShlbnRyeSk7XG5cblx0XHRjb25zdCBuYW1lOiBzdHJpbmcgPSBwYXRoLmJhc2VuYW1lKGVudHJ5LCBleHQpO1xuXG5cdFx0aWYobmFtZSBpbiBTRUNUSU9OU19CWV9GSUxFX05BTUUpe1xuXG5cdFx0XHRjb25zdCBzZWN0aW9uOiBhbnkgPSBuZXcgU0VDVElPTlNfQllfRklMRV9OQU1FW25hbWVdKGdsb2JhbERhdGEpXG5cblx0XHRcdGlmKCEoYXdhaXQgc2VjdGlvbi52YWxpZGF0ZShTQ0hFTUFTX0JZX1NFQ1RJT05fTkFNRVtuYW1lXSB8fCB7fSkpKXtcblxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtuYW1lfSBnbG9iYWwgZmlsZWApXG5cblx0XHRcdH1cblxuXHRcdFx0aWYoZ2xvYmFsRGF0YS5raW5kID09IGNsYWltLmtpbmQpe1xuXG5cdFx0XHRcdHJlc3VsdC5wdXNoKHNlY3Rpb24pXG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0bG9nKCdTa2lwcGluZyBnbG9iYWwgJXMgYmVjYXVzZSBpdCBpcyBub3QgYXBwbGljYWJsZSB0byAlcycsIG5hbWUsIGNsYWltLmtpbmQpXG5cdFx0XHRcblx0XHRcdH1cblxuXHRcdH1cblxuXHR9KVxuXG5cdGxvZygnTG9hZGVkIGdsb2JhbHMgJU8nLCByZXN1bHQpXG5cblx0cmV0dXJuIHJlc3VsdFxuXG59XG5cbi8qXG4gKiBJZiB0aGUgaW5wdXQgY2xhaW0gaXMgYSBHaXRodWJSZXBvc2l0b3J5Q2xhaW0sIGl0IGxvYWRzIGFsbCBpdCdzIGFwcGxpY2FibGVcbiAqIG92ZXJyaWRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byBhIGxpc3QuIE90aGVyd2lzZSwgaXQgcmV0dXJucyBhbiBlbXB0eSBsaXN0LlxuICpcbiAqIElucHV0OlxuICogLSBjbGFpbTogb3VyIGN1c3RvbSBjbGFpbSBvYmplY3QsIHdoaWNoIHNob3VsZCBiZSBhIEdpdGh1YlJlcG9zaXRvcnlDbGFpbVxuICpcbiAqIFJldHVybnM6XG4gKiAtIEFuIE92ZXJyaWRlciBhcnJheSwgd2l0aCBhIEdpdGh1YlJlcG9zaXRvcnlPdmVycmlkZXIgaWYgdGhlIGNsYWltXG4gKiAgIHdhcyBhIEdpdGh1YlJlcG9zaXRvcnlDbGFpbSwgb3IgZW1wdHkgaWYgaXQgd2FzIG5vdC5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkT3ZlcnJpZGVzKGNsYWltOiBhbnkpOiBPdmVycmlkZXJQYXRjaGVzW10ge1xuXG5cblx0bGV0IG92ZXJyaWRlcyA6IE92ZXJyaWRlclBhdGNoZXNbXSA9IFtdXG5cblx0aWYoY2xhaW0ua2luZCA9PT0gXCJDb21wb25lbnRDbGFpbVwiICYmIGNsYWltLnByb3ZpZGVycy5naXRodWIub3ZlcnJpZGVzKXtcblxuXHRcdG92ZXJyaWRlcy5wdXNoKG5ldyBHaXRodWJSZXBvc2l0b3J5T3ZlcnJpZGVyKCkpXG5cblx0fVxuXG5cdHJldHVybiBvdmVycmlkZXNcblxufVxuXG5cbi8qKlxuICogTG9hZCBhbGwgbm9ybWFsaXplcnMgYW5kIHN0b3JlcyB0aGVtIGludG8gYSBsaXN0LlxuICogQHBhcmFtIGNsYWltXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZE5vcm1hbGl6ZXJzKF9jbGFpbTogYW55LCBwYXRoPzogc3RyaW5nKTogUHJvbWlzZTxOb3JtYWxpemVyW10+IHtcblxuXHRsZXQgcmVzdWx0OiBOb3JtYWxpemVyW10gPSBbXVxuXG5cdGZvciAoY29uc3Qgbm9ybWFsaXplciBvZiBOT1JNQUxJWkVSUykge1xuXG5cdFx0cmVzdWx0LnB1c2gobmV3IG5vcm1hbGl6ZXIoe3BhdGg6IHBhdGh9KSk7XG5cblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG5cbn1cblxuXG4vKlxuICogTG9hZHMgYWxsIGFwcGxpY2FibGUgaW5pdGlhbGl6ZXJzIGZvciBhIGdpdmVuIGNsYWltIGFuZCBzdG9yZXMgdGhlbSBpbnRvIGEgbGlzdC5cbiAqXG4gKiBJbnB1dDpcbiAqIC0gY2xhaW06IG91ciBjdXN0b20gY2xhaW0gb2JqZWN0LCB3aXRoIHdoaWNoIHdlIGNoZWNrIGlmIHRoZSBpbml0aWFsaXplciBpcyBhcHBsaWNhYmxlXG4gKlxuICogUmV0dXJuczpcbiAqIC0gQW4gSW5pdGlhbGl6ZXIgYXJyYXkgcHJvbWlzZSwgY29udGFpbmluZyBhbGwgdGhlIGluaXRpYWxpemVycyBsb2FkZWQgZm9yIHRoaXMgY2xhaW1cbiAqXG4gKi9cblxubGV0IGxvYWRlZEluaXRpYWxpemVyczogSW5pdGlhbGl6ZXJQYXRjaGVzW10gfCBmYWxzZSA9IGZhbHNlXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkSW5pdGlhbGl6ZXJzKGNsYWltOiBhbnksIGluaXRpYWxpemVyc1BhdGg6IHN0cmluZyA9IGdldFBhdGgoXCJpbml0aWFsaXplcnNcIikpOiBQcm9taXNlPEluaXRpYWxpemVyUGF0Y2hlc1tdPiB7XG5cblx0bGV0IHJlc3VsdDogSW5pdGlhbGl6ZXJQYXRjaGVzW10gPSBbXVxuXG5cdGF3YWl0IGNyYXdsKGluaXRpYWxpemVyc1BhdGgsIChlbnRyeTpzdHJpbmcpID0+IHtcblxuXHRcdHJldHVybiBpc1lhbWxGaWxlLnRlc3QoZW50cnkpXG5cblx0fSwgYXN5bmMoZW50cnk6c3RyaW5nLCBkYXRhOmFueSkgPT4ge1xuXG5cdFx0Y29uc3QgaW5pdGlhbGl6ZXJEYXRhOiBhbnkgPSBjb21tb24uaW8uZnJvbVlhbWwoZGF0YSlcblxuXHRcdGNvbnN0IGV4dDogc3RyaW5nID0gcGF0aC5leHRuYW1lKGVudHJ5KTtcblxuXHRcdGNvbnN0IG5hbWU6IHN0cmluZyA9IHBhdGguYmFzZW5hbWUoZW50cnksIGV4dCk7XG5cblx0XHRpZihuYW1lIGluIElOSVRJQUxJWkVSU19CWV9GSUxFX05BTUUpe1xuXG5cdFx0XHRjb25zdCBpbml0aWFsaXplckJmTjogYW55ID0gbmV3IElOSVRJQUxJWkVSU19CWV9GSUxFX05BTUVbbmFtZV0oaW5pdGlhbGl6ZXJEYXRhKVxuXG5cdFx0XHRpZighKGF3YWl0IGluaXRpYWxpemVyQmZOLnZhbGlkYXRlKFNDSEVNQVNfQllfSU5JVElBTElaRVJfTkFNRVtuYW1lXSB8fCB7fSkpKXtcblxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtuYW1lfSBpbml0aWFsaXplciBmaWxlYClcblxuXHRcdFx0fVxuXG5cdFx0XHRpZihpbml0aWFsaXplckRhdGEua2luZCA9PT0gY2xhaW0ua2luZCl7XG5cblx0XHRcdFx0cmVzdWx0LnB1c2goaW5pdGlhbGl6ZXJCZk4pXG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0bG9nKCdTa2lwcGluZyBpbml0aWFsaXplciAlcyBiZWNhdXNlIGl0IGlzIG5vdCBhcHBsaWNhYmxlIHRvICVzJywgbmFtZSwgY2xhaW0ua2luZClcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH0pXG5cblx0Zm9yKGNvbnN0IGluaXRpYWxpemVyIG9mIElOSVRJQUxJWkVSUykge1xuXG5cdFx0aWYoKGluaXRpYWxpemVyLmFwcGxpY2FibGVLaW5kcykuaW5jbHVkZXMoY2xhaW0ua2luZCkpe1xuXG5cdFx0XHRyZXN1bHQucHVzaChuZXcgaW5pdGlhbGl6ZXIoKSk7XG5cblx0XHR9XG5cblx0fVxuXG5cdGxvZygnTG9hZGVkIGluaXRpYWxpemVycyAlTycsIHJlc3VsdClcblxuXHRsb2FkZWRJbml0aWFsaXplcnMgPSByZXN1bHRcblxuXHRyZXR1cm4gbG9hZGVkSW5pdGlhbGl6ZXJzXG59XG5cblxuLypcbiAqIExvYWRzIGFsbCBjbGFpbXMgYW5kIHN0b3JlcyB0aGVtIGludG8gYSBhbiBvYmplY3QuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBubyBpbnB1dC5cbiAqXG4gKiBSZXR1cm5zOlxuICogLSBBIFJlbmRlckNsYWltcyBwcm9taXNlLiBBIFJlbmRlckNsYWltcyBvYmplY3QgY29udGFpbnMsIGZvciBlYWNoIGNsYWltOlxuICogICDCtyBUaGUgYWN0dWFsIGNsYWltIG9iamVjdFxuICogICDCtyBUaGUgY2xhaW0ncyBwYXRoXG4gKiAgIMK3IFRoZSBjbGFpbSdzIGFwcGxpY2FibGUgaW5pdGlhbGl6ZXJzLCBnbG9iYWxzIGFuZCBvdmVycmlkZXNcbiAqXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQ2xhaW1zKGNsYWltc1BhdGg6IHN0cmluZyA9IGdldFBhdGgoXCJjbGFpbXNcIikpOiBQcm9taXNlPFJlbmRlckNsYWltcz4ge1xuXG5cdGNvbnN0IHJlc3VsdDogYW55ID0ge31cblxuXHRjb25zdCBkZWZhdWx0c0NsYWltcyA9IGxvYWRDbGFpbURlZmF1bHRzKClcblxuXHRhd2FpdCBjcmF3bChjbGFpbXNQYXRoLCAoZW50cnk6c3RyaW5nKSA9PiB7XG5cblx0XHRyZXR1cm4gaXNZYW1sRmlsZS50ZXN0KGVudHJ5KVxuXG5cdH0sIGFzeW5jIChlbnRyeTpzdHJpbmcsIGRhdGE6YW55KSA9PiB7XG5cblx0XHRjb25zdCBjbGFpbTogYW55ID0gcGF0Y2hDbGFpbShjb21tb24uaW8uZnJvbVlhbWwoZGF0YSksIGRlZmF1bHRzQ2xhaW1zKVxuXG5cdFx0aWYoIShcImtpbmRcIiBpbiBjbGFpbSAmJiBcIm5hbWVcIiBpbiBjbGFpbSkpe1xuXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2xhaW0gZmlsZSAke2VudHJ5fWApXG5cblx0XHR9XG5cblx0XHRDbGFpbVZhbGlkYXRpb24udmFsaWRhdGVDbGFpbShjbGFpbSwgKGNsYWltcyBhcyBhbnkpW2Ake2NsYWltLmtpbmR9U2NoZW1hYF0pXG5cbiAgICAgICAgICAgICAgICBhd2FpdCBDbGFpbVZhbGlkYXRpb24ub3B0aW9uYWxWYWxpZGF0aW9uKGNsYWltKVxuXG5cdFx0aWYocmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXSkge1xuXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBjbGFpbSAke2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gKVxuXHRcdH1cblxuXHRcdHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF0gPSB7fVxuXG5cdFx0cmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXVtcImNsYWltXCJdID0gY2xhaW1cblxuXHRcdHJlc3VsdFtgJHtjbGFpbS5raW5kfS0ke2NsYWltLm5hbWV9YF1bXCJjbGFpbVBhdGhcIl0gPSBlbnRyeVxuXG5cdFx0cmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXVtcImluaXRpYWxpemVyc1wiXSA9IGF3YWl0IGxvYWRJbml0aWFsaXplcnMoY2xhaW0pO1xuXG5cdFx0cmVzdWx0W2Ake2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gXVtcImdsb2JhbHNcIl0gPSBhd2FpdCBsb2FkR2xvYmFscyhjbGFpbSk7XG5cblx0XHRyZXN1bHRbYCR7Y2xhaW0ua2luZH0tJHtjbGFpbS5uYW1lfWBdW1wib3ZlcnJpZGVzXCJdID0gbG9hZE92ZXJyaWRlcyhjbGFpbSk7XG5cblx0XHRyZXN1bHRbYCR7Y2xhaW0ua2luZH0tJHtjbGFpbS5uYW1lfWBdW1wibm9ybWFsaXplcnNcIl0gPSBhd2FpdCBsb2FkTm9ybWFsaXplcnMoY2xhaW0sIGVudHJ5KTtcblxuXHR9KVxuXG5cdHJldHVybiByZXN1bHRcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZENsYWltRGVmYXVsdHMoKXtcbiAgcmV0dXJuIGNvbW1vbi5pby5mcm9tWWFtbChmcy5yZWFkRmlsZVN5bmMoXG4gICAgYCR7Z2V0UGF0aChcImNsYWltc0RlZmF1bHRzXCIpfS9jbGFpbXNfZGVmYXVsdHMueWFtbGAsIFwidXRmLThcIlxuICApKVxufVxuXG4vKlxuICogVXNpbmcgZmFzdC1qc29uLXBhdGNoLCBjb21wYXJlcyBhIGNsYWltIHRvIGl0cyBraW5kJ3MgZGVmYXVsdHMsIHRoZW4gcGF0Y2hlcyBpdC5cbiAqXG4gKiBJbnB1dDpcbiAqIC0gY2xhaW06IG91ciBjdXN0b20gY2xhaW0gb2JqZWN0LCB3aGljaCB3ZSB3YW50IHRvIHBhdGNoXG4gKiAtIGRlZmF1bHRzQ2xhaW1zOiBhbiBvYmplY3QsIGNvbnRhaW5pbmcgdGhlIGRlZmF1bHRzIGZvciBlYWNoIGNsYWltIGtpbmQsXG4gKiAgIHdpdGggdGhlIHNhbWUgc3RydWN0dXJlIHRoYXQgd2UgdXNlIGZvciB0aGUgYWN0dWFsIGNsYWltc1xuICpcbiAqIFJldHVybnM6XG4gKiAtIFRoZSBwYXRjaGVkIGNsYWltXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hDbGFpbShjbGFpbTogYW55LCBkZWZhdWx0c0NsYWltczogYW55KXtcblxuXHRpZihkZWZhdWx0c0NsYWltc1tjbGFpbS5raW5kXSl7XG5cblx0XHRjb25zdCBqc29uUGF0Y2hPcHM6IGFueSA9IGZhc3RKc29uUGF0Y2guY29tcGFyZShjbGFpbSwgZGVmYXVsdHNDbGFpbXNbY2xhaW0ua2luZF0pLmZpbHRlcigoanA6YW55KSA9PiB7XG5cblx0XHRcdHJldHVybiBqcC5vcCA9PSBcImFkZFwiXG5cblx0XHR9KVxuXG5cdFx0Y2xhaW0gPSBmYXN0SnNvblBhdGNoLmFwcGx5UGF0Y2goY2xhaW0sIGpzb25QYXRjaE9wcykubmV3RG9jdW1lbnRcblxuXHR9XG5cblx0cmV0dXJuIGNsYWltXG5cbn1cblxuXG4vKlxuICogTG9hZHMgYWxsIENScyBhbmQgc3RvcmVzIHRoZW0gaW50byBhIG9iamVjdC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY2VpdmVzIG5vIGlucHV0LlxuICpcbiAqIFJldHVybnM6XG4gKiAtIEFuIG9iamVjdCBwcm9taXNlIHdoaWNoIGNvbnRhaW5zIGVhY2ggbG9hZGVkIENSXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENScyhcblxuXHRjcnNQYXRoOiBzdHJpbmcgPSBnZXRQYXRoKFwiY3JzXCIpLFxuXG5cdGV4Y2x1ZGVkUGF0aHM6IHN0cmluZ1tdID0gWyBnZXRQYXRoKFwiZ2xvYmFsc1wiKSwgZ2V0UGF0aChcImluaXRpYWxpemVyc1wiKV1cblxuKSB7XG5cblx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuXG5cdGF3YWl0IGNyYXdsV2l0aEV4Y2x1c2lvbnMoY3JzUGF0aCwgKGVudHJ5OnN0cmluZykgPT4ge1xuXG5cdFx0cmV0dXJuIGlzWWFtbEZpbGUudGVzdChlbnRyeSlcblxuXHR9LCBhc3luYyAoZW50cnk6c3RyaW5nLCBkYXRhOmFueSkgPT4ge1xuXG5cdFx0Y29uc3QgeWFtbERhdGE6IGFueSA9IHN0cmlwS25vd25SZWxhdGlvbnMoY29tbW9uLmlvLmZyb21ZYW1sKGRhdGEpKTtcblxuXHRcdGlmKCEoXCJraW5kXCIgaW4geWFtbERhdGEgJiYgXCJuYW1lXCIgaW4geWFtbERhdGEubWV0YWRhdGEpKXtcblxuXHRcdFx0bG9nKGBJbnZhbGlkIGNsYWltIGZpbGUgJHtlbnRyeX1gKVxuXG5cdFx0fSBlbHNlIHtcblxuICAgICAgICAgICAgaWYocmVzdWx0W2Ake3lhbWxEYXRhLmtpbmR9LSR7eWFtbERhdGEubWV0YWRhdGEubmFtZX1gXSkge1xuXG4gICAgICAgICAgICAgICAgbG9nKGBEdXBsaWNhdGUgQ1IgJHt5YW1sRGF0YS5raW5kfS0ke3lhbWxEYXRhLm1ldGFkYXRhLm5hbWV9YClcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHRbYCR7eWFtbERhdGEua2luZH0tJHt5YW1sRGF0YS5tZXRhZGF0YS5uYW1lfWBdID0geWFtbERhdGFcblxuICAgICAgICB9XG5cblx0fSxcblx0XHRleGNsdWRlZFBhdGhzLmNvbmNhdChnZXRBZGRpdGlvbmFsUGF0aHMoKSlcblx0KVxuXG5cdHJldHVybiByZXN1bHRcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZW5hbWVSZXN1bHQge1xuXHRraW5kOiBzdHJpbmc7XG5cdGNsYWltUGF0aDogc3RyaW5nO1xuXHRjbGFpbU5hbWU6IHN0cmluZztcblx0b2xkTmFtZTogc3RyaW5nO1xuXHRuZXdOYW1lOiBzdHJpbmc7XG59XG5cbi8qXG4qIERlc2NyaXB0aW9uOiBHZXQgdGhlIHJlbmFtZWQgdXNpbmcgY2xhaW1SZWYgYW5ub3RhdGlvblxuKiBJbnB1dDogY2xhaW1zOiBhbnksIGNyczogYW55XG4qIE91dHB1dDogcmVuYW1lczogSVJlbmFtZVJlc3VsdFtdXG4qL1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFJlbmFtZXMoY2xhaW1zOiBhbnksIGNyczogYW55KTogUHJvbWlzZTxJUmVuYW1lUmVzdWx0W10+IHtcblxuXHQvKlxuXHQgKiBJZiBjaGVja1JlbmFtZXMgaXMgZmFsc2UsIHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgZm9yIHJlbmFtZXNcblx0ICovXG5cdGNvbnN0IHJlbmFtZXNFbmFibGVkID0gZ2V0UmVuYW1lc0VuYWJsZWQoKTtcblx0aWYgKCFyZW5hbWVzRW5hYmxlZCkgcmV0dXJuIFtdO1xuXG5cdGNvbnN0IHJlc3VsdDogSVJlbmFtZVJlc3VsdFtdID0gW107XG5cblx0LyoqXG5cdCAqIEZvciBlYWNoIENSLCBsb29rIGZvciBhIGNsYWltIHRoYXQgZG9lcyBub3QgbWF0Y2ggdGhlIG5hbWUgd2l0aCBDUidzIGZpcmVzdGFydHIuZGV2L2NsYWltLXJlZiBhbm5vdGF0aW9uXG5cdCAqL1xuXHRmb3IgKGxldCBjciBvZiBPYmplY3QudmFsdWVzKGNycykpIHtcblxuXHRcdGNvbnN0IGFueUNyOiBhbnkgPSBjcjtcblxuXHRcdGlmICghYW55Q3I/Lm1ldGFkYXRhPy5hbm5vdGF0aW9ucykgY29udGludWU7XG5cblx0XHQvLyBpZiB0aGUgYW5ub3RhdGlvbiBpcyBhIGNsYWltUmVmXG5cdFx0Y29uc3QgYW5ub3RhdGlvbk5hbWUgPSBjb21tb24uZ2VuZXJpYy5nZXRGaXJlc3RhcnRyQW5ub3RhdGlvbignY2xhaW0tcmVmJyk7XG5cblx0XHRpZiAoYW5ub3RhdGlvbk5hbWUgaW4gYW55Q3I/Lm1ldGFkYXRhPy5hbm5vdGF0aW9ucykge1xuXG5cdFx0XHRjb25zdCBjbGFpbVJlZiA9IGFueUNyLm1ldGFkYXRhLmFubm90YXRpb25zW2Fubm90YXRpb25OYW1lXTtcblxuXHRcdFx0Ly8gc3BsaXQgdGhlIGFubm90YXRpb24gaW50byBraW5kIGFuZCBuYW1lXG5cdFx0XHRjb25zdCBba2luZCwgbmFtZV0gPSBjbGFpbVJlZi5zcGxpdChcIi9cIik7XG5cblx0XHRcdC8vIGlmIHRoZSBjbGFpbSBleGlzdHMsIGNoZWNrIGlmIHRoZSBuYW1lIGlzIGRpZmZlcmVudCBmb3IgdGhlIGdpdmVuIHByb3ZpZGVyXG5cdFx0XHRjb25zdCByZWZlcmVuY2VkQ2xhaW0gPSBjbGFpbXNbYCR7a2luZH0tJHtuYW1lfWBdLmNsYWltO1xuXG5cblx0XHRcdGNvbnN0IG9sZE5hbWUgPSBhbnlDci5tZXRhZGF0YS5uYW1lO1xuXHRcdFx0Y29uc3QgbmV3TmFtZSA9IHJlZmVyZW5jZWRDbGFpbS5wcm92aWRlcnNbZ2V0Q29uZmlndXJlZFByb3ZpZGVyKCldLm5hbWU7XG5cblx0XHRcdGlmIChvbGROYW1lICE9PSBuZXdOYW1lKSB7XG5cblx0XHRcdFx0cmVzdWx0LnB1c2goe1xuXHRcdFx0XHRcdGtpbmQ6IHJlZmVyZW5jZWRDbGFpbS5raW5kLFxuXHRcdFx0XHRcdGNsYWltUGF0aDogY2xhaW1zW2Ake2tpbmR9LSR7bmFtZX1gXS5jbGFpbVBhdGgsXG5cdFx0XHRcdFx0Y2xhaW1OYW1lOiByZWZlcmVuY2VkQ2xhaW0ubmFtZSxcblx0XHRcdFx0XHRvbGROYW1lLFxuXHRcdFx0XHRcdG5ld05hbWUsXG5cdFx0XHRcdH0pO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJEYXRhIHtcblx0Z2xvYmFscz86IGFueSxcblx0aW5pdGlhbGl6ZXJzPzogYW55LFxuXHRjbGFpbXM/OiBhbnksXG5cdHJlbmFtZXM/OiBhbnksXG5cdGNycz86IGFueVxufVxuXG4vKlxuICogTWFpbiBmdW5jdGlvbiBvZiB0aGlzIGZpbGUuIExvYWRzIGFsbCB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIG9iamVjdHMgYW5kXG4gKiBzdG9yZXMgdGhlbSBpbnRvIGFuIG9iamVjdC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlY2VpdmVzIG5vIGlucHV0LlxuICpcbiAqIE91dHB1dDpcbiAqIC0gQW4gb2JqZWN0LCB3aGljaCBjb250YWluczpcbiAqICAgwrcgQWxsIGNsYWltcyB0byBiZSByZW5kZXJlZFxuICogICDCtyBBbGwgQ1JzIHRoYXQgd2VyZSBhbHJlYWR5IGNyZWF0ZWRcbiAqICAgwrcgQWxsIHJlbmFtZSBvcGVyYXRpb25zXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEFsbCgpe1xuXG5cblx0Y29uc3QgZGF0YTogeyByZW5kZXJDbGFpbXM6IFJlbmRlckNsYWltcywgY3JzOiBhbnksIHJlbmFtZXM/OiBJUmVuYW1lUmVzdWx0W10gfSA9IHtcblxuXHRcdHJlbmRlckNsYWltczoge30sXG5cblx0XHRjcnM6IHt9LFxuXG5cdH1cblxuXHRhd2FpdCBQcm9taXNlLmFsbChbXG5cblx0XHRsb2FkQ2xhaW1zKCkudGhlbigoY2xhaW1zOmFueSkgPT4ge1xuXG5cdFx0XHRkYXRhW1wicmVuZGVyQ2xhaW1zXCJdID0gY2xhaW1zXG5cblx0XHR9KVxuXG5cdFx0LmNhdGNoKChlcnJvcjogYW55KSA9PiB7XG5cblx0XHRcdHRocm93IGVycm9yXG5cblx0XHR9KVxuXG5cdFx0LnRoZW4oYXN5bmMoKSA9PiB7XG5cblxuXHRcdFx0Zm9yKGNvbnN0IHZpcnR1YWxDbGFpbSBvZiB2aXJ0dWFsQ2xhaW1zKXtcblxuXHRcdFx0XHRjb25zdCBleHBhbmRlZENsYWltOiBJQ2xhaW0gPSAgYXdhaXQgKHZpcnR1YWxDbGFpbS5leHBhbmQoZGF0YVtcInJlbmRlckNsYWltc1wiXSAsIHtvcmc6IGdldE9yZygpfSkpXG5cblxuXHRcdFx0XHRjb25zdCBkZWZhdWx0Q29uZmlnID0ge1xuXHRcdFx0XHRcdGtpbmQ6ICdGaXJlc3RhcnRyR2l0aHViR3JvdXAnLFxuXHRcdFx0XHRcdGRlZmF1bHRWYWx1ZXM6IHtcblx0XHRcdFx0XHQgIGNvbnRleHQ6IHtcblx0XHRcdFx0XHRcdGJhY2tlbmQ6IHtcblx0XHRcdFx0XHRcdCAgcmVmOiB7XG5cdFx0XHRcdFx0XHRcdGtpbmQ6ICdGaXJlc3RhcnRyUHJvdmlkZXJDb25maWcnLFxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZmlyZXN0YXJ0ci10ZXJyYWZvcm0tc3RhdGUnXG5cdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRwcm92aWRlcjoge1xuXHRcdFx0XHRcdFx0ICByZWY6IHtcblx0XHRcdFx0XHRcdFx0a2luZDogJ0ZpcmVzdGFydHJQcm92aWRlckNvbmZpZycsXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdnaXRodWItYXBwJ1xuXHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgcmVuZGVyQ2xhaW06IFJlbmRlckNsYWltRGF0YSA9IHtcblxuXHRcdFx0XHRcdGNsYWltOiBleHBhbmRlZENsYWltLFxuXG5cdFx0XHRcdFx0Y2xhaW1QYXRoOiBcInZpcnR1YWxcIixcblxuXHRcdFx0XHRcdGluaXRpYWxpemVyczogW25ldyBVVUlESW5pdGlhbGl6ZXIoZXhwYW5kZWRDbGFpbSksIG5ldyBJbml0aWFsaXplckNsYWltUmVmKCksIG5ldyBJbml0aWFsaXplckRlZmF1bHQoZGVmYXVsdENvbmZpZyldLFxuXG5cdFx0XHRcdFx0b3ZlcnJpZGVzOiBbXSxcblxuXHRcdFx0XHRcdGdsb2JhbHM6IFtdLFxuXG5cdFx0XHRcdFx0bm9ybWFsaXplcnM6IFtuZXcgTmFtZU5vcm1hbGl6ZXIoKV1cblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGF0YVtcInJlbmRlckNsYWltc1wiXVtgJHtleHBhbmRlZENsYWltLmtpbmR9LSR7ZXhwYW5kZWRDbGFpbS5uYW1lfWAgYXMgUmVuZGVyQ2xhaW1LZXldID0gcmVuZGVyQ2xhaW1cblx0XHRcdH1cblxuXHRcdH0pLFxuXG5cdFx0bG9hZENScygpLnRoZW4oKGNyczphbnkpICA9PlxuXG5cdFx0XHRkYXRhW1wiY3JzXCJdID0gY3JzXG5cblx0ICAgICAgICApXG5cblx0XSlcblxuXHQvLyBXZSBuZWVkIHRvIGxvYWQgcmVuYW1lcyBhZnRlciBjcnMgYW5kIGNsYWltcyBoYXMgYmVlbiBsb2FkZWQgdG8gY29tcGFyZSB0aGVtIGJvdGhcblx0ZGF0YVtcInJlbmFtZXNcIl0gPSBhd2FpdCBsb2FkUmVuYW1lcyhkYXRhW1wicmVuZGVyQ2xhaW1zXCJdLCBkYXRhW1wiY3JzXCJdKTtcblxuXHRyZXR1cm4gZGF0YVxuXG59XG5cblxuXG5mdW5jdGlvbiBnZXRPcmcoKXtcblxuXG5cdGNvbnN0IGdyb3VwT3JnOiBzdHJpbmcgPSBjb21tb24uZW52aXJvbm1lbnQuZ2V0RnJvbUVudmlyb25tZW50V2l0aERlZmF1bHQoXG5cbiAgICBjb21tb24udHlwZXMuZW52VmFycy5vcmcsXG5cbiAgICBcIlwiXG5cbiAgKVxuXG4gIHJldHVybiBncm91cE9yZ1xuXG59XG4iXX0=
234334
234341
 
234335
234342
  /***/ }),
234336
234343
 
@@ -234557,50 +234564,63 @@ class RefValuesNormalizer extends base_1.Normalizer {
234557
234564
  }
234558
234565
  }
234559
234566
  exports.RefValuesNormalizer = RefValuesNormalizer;
234560
- async function replaceReferences(values, resolveRef, references = []) {
234561
- const regex = catalog_common_1.default.types.regex.TFWorkspaceRefRegex;
234562
- for (let key in values) {
234563
- if (typeof values[key] === 'object' && values[key] !== null) {
234564
- await replaceReferences(values[key], resolveRef, references);
234565
- }
234566
- else if (typeof values[key] === 'string') {
234567
- let output = "";
234568
- for (const part of values[key].split(regex)) {
234569
- if (regex.test(part)) {
234570
- const splittedRef = part.split(":");
234571
- let resolvedRef = null;
234572
- const keyName = splittedRef[2]
234573
- .replace("outputs.", "")
234574
- .replace("}}", "")
234575
- .trim();
234576
- output += `\${{ references.${keyName} }}`;
234577
- try {
234578
- resolvedRef = await resolveRef("TFWorkspaceClaim", splittedRef[1]);
234579
- }
234580
- catch (e) {
234581
- console.error(e);
234582
- throw new Error(`❌ Could not resolve reference ${splittedRef[1]} for key ${keyName}`);
234583
- }
234584
- references.push({
234585
- name: keyName,
234586
- ref: {
234587
- kind: "FirestartrTerraformWorkspace",
234588
- name: resolvedRef.metadata.name,
234589
- key: keyName
234590
- }
234591
- });
234592
- }
234593
- else {
234594
- output += part;
234595
- }
234567
+ async function replaceReferences(
234568
+ // Values to replace
234569
+ providerValues, resolveRef, references = new Map()) {
234570
+ let values = {};
234571
+ let updatedReferences = references;
234572
+ for (let key in providerValues) {
234573
+ values[key] = await interpolateObject(providerValues[key], references, resolveRef);
234574
+ }
234575
+ return { values, references: Array.from(updatedReferences.values()) };
234576
+ }
234577
+ exports.replaceReferences = replaceReferences;
234578
+ async function interpolateObject(toInterpolate, references, resolveRef) {
234579
+ switch (toInterpolate === null || toInterpolate === void 0 ? void 0 : toInterpolate.constructor) {
234580
+ case String: {
234581
+ let content = await replaceReferencesValues(toInterpolate, references, resolveRef);
234582
+ return content;
234583
+ }
234584
+ case Array: {
234585
+ const interpolatedArray = [];
234586
+ for (const element of toInterpolate) {
234587
+ interpolatedArray.push(await interpolateObject(element, references, resolveRef));
234596
234588
  }
234597
- values[key] = output;
234589
+ return interpolatedArray;
234598
234590
  }
234591
+ case Object: {
234592
+ const interpolatedObject = {};
234593
+ for (const key in toInterpolate) {
234594
+ interpolatedObject[key] = await interpolateObject(toInterpolate[key], references, resolveRef);
234595
+ }
234596
+ return interpolatedObject;
234597
+ }
234598
+ default:
234599
+ return toInterpolate;
234599
234600
  }
234600
- return { values, references };
234601
234601
  }
234602
- exports.replaceReferences = replaceReferences;
234603
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vcm1hbGl6ZXJzL3JlZlZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3Q0FBNkQ7QUFDN0QsZ0RBQWlEO0FBQ2pELGlDQUFvQztBQUNwQyxvRUFBb0M7QUFJcEMsTUFBYSxtQkFBb0IsU0FBUSxpQkFBVTtJQUFuRDs7UUFFRSx3QkFBbUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBUW5DLGVBQVUsR0FBYSw2QkFBZSxDQUFBO0lBd0N4QyxDQUFDO0lBOUNDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBWTtRQUUzQixPQUFPLElBQUksQ0FBQztJQUVkLENBQUM7SUFJRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQVUsRUFBRSxXQUFnQjtRQUUxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBRWhDLE9BQU87WUFFSDtnQkFFSSxRQUFRLENBQUMsR0FBUTtvQkFFYixPQUFPLElBQUksQ0FBQTtnQkFFZixDQUFDO2dCQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBTztvQkFFZixNQUFNLFFBQVEsR0FBVSxJQUFBLG1CQUFTLEVBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFBO29CQUVoRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFFaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBRXZELEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUU3QyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUVyQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxDQUFDO2dCQUVELFFBQVE7b0JBRUosT0FBTyx1QkFBdUIsQ0FBQztnQkFFbkMsQ0FBQzthQUVKO1NBQ0osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxERCxrREFrREM7QUFLTSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsTUFBVyxFQUFFLFVBQW9CLEVBQUUsYUFBb0IsRUFBRTtJQUU3RixNQUFNLEtBQUssR0FBRyx3QkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUE7SUFFcEQsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFFcEIsSUFBSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUUzRCxNQUFNLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7U0FFNUQ7YUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUcxQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUM7Z0JBRTFDLElBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFFbEIsTUFBTSxXQUFXLEdBQUksSUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFFL0MsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFBO29CQUV0QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO3lCQUU3QixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQzt5QkFFdkIsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLENBQUM7eUJBRWhCLElBQUksRUFBRSxDQUFDO29CQUVSLE1BQU0sSUFBSSxtQkFBbUIsT0FBTyxLQUFLLENBQUE7b0JBRXpDLElBQUc7d0JBRUQsV0FBVyxHQUFHLE1BQU0sVUFBVSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUVuRTtvQkFBQyxPQUFNLENBQUMsRUFBQzt3QkFFUixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO3dCQUVoQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksT0FBTyxFQUFFLENBQUMsQ0FBQTtxQkFFdEY7b0JBRUQsVUFBVSxDQUFDLElBQUksQ0FBQzt3QkFDZCxJQUFJLEVBQUUsT0FBTzt3QkFDYixHQUFHLEVBQUU7NEJBQ0gsSUFBSSxFQUFFLDhCQUE4Qjs0QkFDcEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSTs0QkFDL0IsR0FBRyxFQUFFLE9BQU87eUJBQ2I7cUJBQ0YsQ0FBQyxDQUFBO2lCQUdIO3FCQUFNO29CQUVMLE1BQU0sSUFBSSxJQUFJLENBQUE7aUJBQ2Y7YUFFRjtZQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUE7U0FFckI7S0FDSjtJQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFFaEMsQ0FBQztBQXJFSCw4Q0FxRUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ3VzdG9tUmVzb3VyY2VQYXRjaCwgaGVscGVyQ1RYIH0gZnJvbSBcIi4uL3BhdGNoZXNcIjtcbmltcG9ydCB7IHJlc29sdmVDbGFpbVJlZiB9IGZyb20gXCIuLi9yZWZyZXNvbHZlclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplciB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCBjb21tb24gZnJvbSBcImNhdGFsb2dfY29tbW9uXCI7XG5cbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgY2xhc3MgUmVmVmFsdWVzTm9ybWFsaXplciBleHRlbmRzIE5vcm1hbGl6ZXIge1xuXG4gIGFwcGxpY2FibGVQcm92aWRlcnMgPSBbXCJ0ZXJyYWZvcm1cIl1cblxuICBhc3luYyBfX3ZhbGlkYXRlKF9zY2hlbWE6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgfVxuXG4gIHJzQ2xhaW1SZWY6IEZ1bmN0aW9uID0gcmVzb2x2ZUNsYWltUmVmXG5cbiAgYXN5bmMgX19wYXRjaGVzKGNsYWltOiBhbnksIF9wcmV2aW91c0NSOiBhbnkpOiBQcm9taXNlPElDdXN0b21SZXNvdXJjZVBhdGNoW10+IHtcblxuICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5yc0NsYWltUmVmXG5cbiAgICByZXR1cm4gW1xuICAgICAgICBcbiAgICAgICAge1xuXG4gICAgICAgICAgICB2YWxpZGF0ZShfY3I6IGFueSkge1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXN5bmMgYXBwbHkoY3I6IGFueSkge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXI6c3RyaW5nID0gaGVscGVyQ1RYKHRoaXMpLnByb3ZpZGVyICAgICAgICBcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGNsYWltLnByb3ZpZGVyc1twcm92aWRlcl0udmFsdWVzO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcyA9IGF3YWl0IHJlcGxhY2VSZWZlcmVuY2VzKHZhbHVlcywgcmVzb2x2ZXIpO1xuXG4gICAgICAgICAgICAgICAgY3Iuc3BlYy52YWx1ZXMgPSBKU09OLnN0cmluZ2lmeShyZWZzLnZhbHVlcyk7XG5cbiAgICAgICAgICAgICAgICBjci5zcGVjLnJlZmVyZW5jZXMgPSByZWZzLnJlZmVyZW5jZXM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY3I7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpZGVudGlmeSgpIHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5vcm1hbGl6ZXIvcmVmLXZhbHVlc1wiO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgIH0sIFxuICAgIF07XG4gIH1cbn1cblxuXG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VSZWZlcmVuY2VzKHZhbHVlczogYW55LCByZXNvbHZlUmVmOiBGdW5jdGlvbiwgcmVmZXJlbmNlczogYW55W10gPSBbXSkge1xuICBcbiAgICBjb25zdCByZWdleCA9IGNvbW1vbi50eXBlcy5yZWdleC5URldvcmtzcGFjZVJlZlJlZ2V4XG4gICAgXG4gICAgZm9yIChsZXQga2V5IGluIHZhbHVlcykge1xuICBcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZXNba2V5XSA9PT0gJ29iamVjdCcgJiYgdmFsdWVzW2tleV0gIT09IG51bGwpIHtcbiAgXG4gICAgICAgICAgYXdhaXQgcmVwbGFjZVJlZmVyZW5jZXModmFsdWVzW2tleV0scmVzb2x2ZVJlZiwgcmVmZXJlbmNlcylcbiAgICAgICAgICAgIFxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZXNba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICBsZXQgb3V0cHV0ID0gXCJcIlxuXG4gICAgICAgICAgZm9yKCBjb25zdCBwYXJ0IG9mIHZhbHVlc1trZXldLnNwbGl0KHJlZ2V4KSl7XG5cbiAgICAgICAgICAgIGlmKHJlZ2V4LnRlc3QocGFydCkpe1xuICAgIFxuICAgICAgICAgICAgICBjb25zdCBzcGxpdHRlZFJlZiA9IChwYXJ0IGFzIHN0cmluZykuc3BsaXQoXCI6XCIpXG5cbiAgICAgICAgICAgICAgbGV0IHJlc29sdmVkUmVmID0gbnVsbFxuXG4gICAgICAgICAgICAgIGNvbnN0IGtleU5hbWUgPSBzcGxpdHRlZFJlZlsyXVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLnJlcGxhY2UoXCJvdXRwdXRzLlwiLCBcIlwiKVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLnJlcGxhY2UoXCJ9fVwiLFwiXCIpIFxuXG4gICAgICAgICAgICAgIC50cmltKCk7XG5cbiAgICAgICAgICAgICAgb3V0cHV0ICs9IGBcXCR7eyByZWZlcmVuY2VzLiR7a2V5TmFtZX0gfX1gXG5cbiAgICAgICAgICAgICAgdHJ5e1xuICBcbiAgICAgICAgICAgICAgICByZXNvbHZlZFJlZiA9IGF3YWl0IHJlc29sdmVSZWYoXCJURldvcmtzcGFjZUNsYWltXCIsIHNwbGl0dGVkUmVmWzFdKVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgfSBjYXRjaChlKXtcbiAgXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg4p2MIENvdWxkIG5vdCByZXNvbHZlIHJlZmVyZW5jZSAke3NwbGl0dGVkUmVmWzFdfSBmb3Iga2V5ICR7a2V5TmFtZX1gKVxuICBcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZToga2V5TmFtZSxcbiAgICAgICAgICAgICAgICByZWY6IHtcbiAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiRmlyZXN0YXJ0clRlcnJhZm9ybVdvcmtzcGFjZVwiLFxuICAgICAgICAgICAgICAgICAgbmFtZTogcmVzb2x2ZWRSZWYubWV0YWRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICAgIGtleToga2V5TmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgIFxuICAgICAgICAgICAgICBvdXRwdXQgKz0gcGFydFxuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhbHVlc1trZXldID0gb3V0cHV0XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHZhbHVlcywgcmVmZXJlbmNlcyB9O1xuICBcbiAgfVxuIl19
234602
+ async function replaceReferencesValues(contents, references, resolveRef) {
234603
+ const regex = catalog_common_1.default.types.regex.TFWorkspaceRefRegex;
234604
+ let replacedContent = contents;
234605
+ for (const match of contents.matchAll(regex)) {
234606
+ const [matchStr, claimName, outputKey] = match;
234607
+ const cr = await resolveRef("TFWorkspaceClaim", claimName);
234608
+ if (!cr)
234609
+ throw new Error(`❌ Could not resolve reference ${claimName}`);
234610
+ const refName = `${cr.metadata.name}.${outputKey}`;
234611
+ references.set(refName, {
234612
+ name: refName,
234613
+ ref: {
234614
+ kind: "FirestartrTerraformWorkspace",
234615
+ name: cr.metadata.name,
234616
+ key: outputKey
234617
+ }
234618
+ });
234619
+ replacedContent = replacedContent.replace(matchStr, `\${{ references.${cr.metadata.name}.${outputKey} }}`);
234620
+ }
234621
+ return replacedContent;
234622
+ }
234623
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vcm1hbGl6ZXJzL3JlZlZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3Q0FBNkQ7QUFDN0QsZ0RBQWlEO0FBQ2pELGlDQUFvQztBQUNwQyxvRUFBb0M7QUFJcEMsTUFBYSxtQkFBb0IsU0FBUSxpQkFBVTtJQUFuRDs7UUFFRSx3QkFBbUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBUW5DLGVBQVUsR0FBYSw2QkFBZSxDQUFBO0lBd0N4QyxDQUFDO0lBOUNDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBWTtRQUUzQixPQUFPLElBQUksQ0FBQztJQUVkLENBQUM7SUFJRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQVUsRUFBRSxXQUFnQjtRQUUxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBRWhDLE9BQU87WUFFSDtnQkFFSSxRQUFRLENBQUMsR0FBUTtvQkFFYixPQUFPLElBQUksQ0FBQTtnQkFFZixDQUFDO2dCQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBTztvQkFFZixNQUFNLFFBQVEsR0FBVSxJQUFBLG1CQUFTLEVBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFBO29CQUVoRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFFaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBRXZELEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUU3QyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUVyQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxD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QUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDdEIsR0FBRyxFQUFFLFNBQVM7YUFDZjtTQUNGLENBQUMsQ0FBQztRQUVILGVBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQTtLQUUzRztJQUVELE9BQU8sZUFBZSxDQUFBO0FBRXhCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ3VzdG9tUmVzb3VyY2VQYXRjaCwgaGVscGVyQ1RYIH0gZnJvbSBcIi4uL3BhdGNoZXNcIjtcbmltcG9ydCB7IHJlc29sdmVDbGFpbVJlZiB9IGZyb20gXCIuLi9yZWZyZXNvbHZlclwiO1xuaW1wb3J0IHsgTm9ybWFsaXplciB9IGZyb20gXCIuL2Jhc2VcIjtcbmltcG9ydCBjb21tb24gZnJvbSBcImNhdGFsb2dfY29tbW9uXCI7XG5cbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgY2xhc3MgUmVmVmFsdWVzTm9ybWFsaXplciBleHRlbmRzIE5vcm1hbGl6ZXIge1xuXG4gIGFwcGxpY2FibGVQcm92aWRlcnMgPSBbXCJ0ZXJyYWZvcm1cIl1cblxuICBhc3luYyBfX3ZhbGlkYXRlKF9zY2hlbWE6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgfVxuXG4gIHJzQ2xhaW1SZWY6IEZ1bmN0aW9uID0gcmVzb2x2ZUNsYWltUmVmXG5cbiAgYXN5bmMgX19wYXRjaGVzKGNsYWltOiBhbnksIF9wcmV2aW91c0NSOiBhbnkpOiBQcm9taXNlPElDdXN0b21SZXNvdXJjZVBhdGNoW10+IHtcblxuICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5yc0NsYWltUmVmXG5cbiAgICByZXR1cm4gW1xuICAgICAgICBcbiAgICAgICAge1xuXG4gICAgICAgICAgICB2YWxpZGF0ZShfY3I6IGFueSkge1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXN5bmMgYXBwbHkoY3I6IGFueSkge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvdmlkZXI6c3RyaW5nID0gaGVscGVyQ1RYKHRoaXMpLnByb3ZpZGVyICAgICAgICBcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGNsYWltLnByb3ZpZGVyc1twcm92aWRlcl0udmFsdWVzO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcyA9IGF3YWl0IHJlcGxhY2VSZWZlcmVuY2VzKHZhbHVlcywgcmVzb2x2ZXIpO1xuXG4gICAgICAgICAgICAgICAgY3Iuc3BlYy52YWx1ZXMgPSBKU09OLnN0cmluZ2lmeShyZWZzLnZhbHVlcyk7XG5cbiAgICAgICAgICAgICAgICBjci5zcGVjLnJlZmVyZW5jZXMgPSByZWZzLnJlZmVyZW5jZXM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY3I7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpZGVudGlmeSgpIHtcblxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5vcm1hbGl6ZXIvcmVmLXZhbHVlc1wiO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgIH0sIFxuICAgIF07XG4gIH1cbn1cblxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVwbGFjZVJlZmVyZW5jZXMoXG4gIC8vIFZhbHVlcyB0byByZXBsYWNlXG4gIHByb3ZpZGVyVmFsdWVzOiBhbnksXG5cbiAgcmVzb2x2ZVJlZjogRnVuY3Rpb24sXG5cbiAgcmVmZXJlbmNlczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXAoKSxcblxuKSB7XG5cbiAgbGV0IHZhbHVlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG4gIGxldCB1cGRhdGVkUmVmZXJlbmNlcyA9IHJlZmVyZW5jZXM7XG5cbiAgZm9yIChsZXQga2V5IGluIHByb3ZpZGVyVmFsdWVzKSB7XG4gICAgdmFsdWVzW2tleV0gPSBhd2FpdCBpbnRlcnBvbGF0ZU9iamVjdChwcm92aWRlclZhbHVlc1trZXldLCByZWZlcmVuY2VzLCByZXNvbHZlUmVmKVxuICB9XG5cblxuICByZXR1cm4geyB2YWx1ZXMsIHJlZmVyZW5jZXM6IEFycmF5LmZyb20odXBkYXRlZFJlZmVyZW5jZXMudmFsdWVzKCkpIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW50ZXJwb2xhdGVPYmplY3QodG9JbnRlcnBvbGF0ZTogYW55LCByZWZlcmVuY2VzOiBNYXA8c3RyaW5nLCBhbnk+LCByZXNvbHZlUmVmOiBGdW5jdGlvbik6IFByb21pc2U8YW55PiB7XG4gIHN3aXRjaCAodG9JbnRlcnBvbGF0ZT8uY29uc3RydWN0b3IpIHtcbiAgICBjYXNlIFN0cmluZzoge1xuICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCByZXBsYWNlUmVmZXJlbmNlc1ZhbHVlcyh0b0ludGVycG9sYXRlLCByZWZlcmVuY2VzLCByZXNvbHZlUmVmKVxuXG4gICAgICByZXR1cm4gY29udGVudFxuICAgIH1cbiAgICBjYXNlIEFycmF5OiB7XG4gICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcnJheSA9IFtdXG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdG9JbnRlcnBvbGF0ZSkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRBcnJheS5wdXNoKGF3YWl0IGludGVycG9sYXRlT2JqZWN0KGVsZW1lbnQsIHJlZmVyZW5jZXMsIHJlc29sdmVSZWYpKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW50ZXJwb2xhdGVkQXJyYXlcbiAgICB9XG4gICAgY2FzZSBPYmplY3Q6IHtcbiAgICAgIGNvbnN0IGludGVycG9sYXRlZE9iamVjdDogYW55ID0ge31cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRvSW50ZXJwb2xhdGUpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkT2JqZWN0W2tleV0gPSBhd2FpdCBpbnRlcnBvbGF0ZU9iamVjdCh0b0ludGVycG9sYXRlW2tleV0sIHJlZmVyZW5jZXMsIHJlc29sdmVSZWYpXG4gICAgICB9XG4gICAgICByZXR1cm4gaW50ZXJwb2xhdGVkT2JqZWN0XG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdG9JbnRlcnBvbGF0ZSBcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXBsYWNlUmVmZXJlbmNlc1ZhbHVlcyhjb250ZW50czogc3RyaW5nLCByZWZlcmVuY2VzOiBNYXA8c3RyaW5nLCBhbnk+LCByZXNvbHZlUmVmOiBGdW5jdGlvbikge1xuXG4gIGNvbnN0IHJlZ2V4ID0gY29tbW9uLnR5cGVzLnJlZ2V4LlRGV29ya3NwYWNlUmVmUmVnZXhcblxuICBsZXQgcmVwbGFjZWRDb250ZW50ID0gY29udGVudHM7XG5cbiAgZm9yIChjb25zdCBtYXRjaCBvZiBjb250ZW50cy5tYXRjaEFsbChyZWdleCkpIHtcbiAgICBjb25zdCBbbWF0Y2hTdHIsIGNsYWltTmFtZSwgb3V0cHV0S2V5XSA9IG1hdGNoXG5cbiAgICBjb25zdCBjciA9IGF3YWl0IHJlc29sdmVSZWYoXCJURldvcmtzcGFjZUNsYWltXCIsIGNsYWltTmFtZSlcblxuICAgIGlmICghY3IpIHRocm93IG5ldyBFcnJvcihg4p2MIENvdWxkIG5vdCByZXNvbHZlIHJlZmVyZW5jZSAke2NsYWltTmFtZX1gKVxuICAgIGNvbnN0IHJlZk5hbWUgPSBgJHtjci5tZXRhZGF0YS5uYW1lfS4ke291dHB1dEtleX1gXG4gICAgcmVmZXJlbmNlcy5zZXQocmVmTmFtZSwge1xuICAgICAgbmFtZTogcmVmTmFtZSxcbiAgICAgIHJlZjoge1xuICAgICAgICBraW5kOiBcIkZpcmVzdGFydHJUZXJyYWZvcm1Xb3Jrc3BhY2VcIixcbiAgICAgICAgbmFtZTogY3IubWV0YWRhdGEubmFtZSxcbiAgICAgICAga2V5OiBvdXRwdXRLZXlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlcGxhY2VkQ29udGVudCA9IHJlcGxhY2VkQ29udGVudC5yZXBsYWNlKG1hdGNoU3RyLCBgXFwke3sgcmVmZXJlbmNlcy4ke2NyLm1ldGFkYXRhLm5hbWV9LiR7b3V0cHV0S2V5fSB9fWApXG5cbiAgfVxuXG4gIHJldHVybiByZXBsYWNlZENvbnRlbnRcblxufVxuIl19
234604
234624
 
234605
234625
  /***/ }),
234606
234626
 
@@ -235177,22 +235197,22 @@ exports.extractRefs = extractRefs;
235177
235197
  function getTfWorkspacesRefs(values, references = []) {
235178
235198
  const regex = catalog_common_1.default.types.regex.TFWorkspaceRefRegex;
235179
235199
  for (let key in values) {
235180
- if (typeof values[key] === 'object' && values[key] !== null) {
235181
- getTfWorkspacesRefs(values[key], references);
235182
- }
235183
- else if (typeof values[key] === 'string') {
235184
- for (const part of values[key].split(regex)) {
235185
- if (regex.test(part)) {
235186
- const splittedRef = part.split(":");
235187
- references.push(`${splittedRef[1]}`);
235200
+ switch (typeof values[key]) {
235201
+ case 'object':
235202
+ getTfWorkspacesRefs(values[key], references);
235203
+ break;
235204
+ case 'string':
235205
+ for (const match of values[key].matchAll(regex)) {
235206
+ const [_, claimName] = match;
235207
+ references.push(claimName);
235188
235208
  }
235189
- }
235209
+ break;
235190
235210
  }
235191
235211
  }
235192
235212
  return references;
235193
235213
  }
235194
235214
  exports.getTfWorkspacesRefs = getTfWorkspacesRefs;
235195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmc0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWZzU29ydGVyL3JlZnNFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0VBQW9DO0FBRXBDLFNBQWdCLFdBQVcsQ0FBQyxZQUEwQixFQUFFLElBQVk7SUFFaEUsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFBO0lBRXRCLEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRTVCLE1BQU0sS0FBSyxHQUFJLFlBQVksQ0FBQyxHQUFxQixDQUFTLENBQUMsS0FBSyxDQUFBO1FBRWhFLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUViLFFBQU8sSUFBSSxFQUFFO1lBRVQsS0FBSyxrQkFBa0I7Z0JBRXRCLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFFN0QsTUFBTTtZQUVOO2dCQUVJLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUE7U0FHbEQ7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2pCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNuQyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUE7S0FDSjtJQUVELE9BQU8sTUFBTSxDQUFBO0FBRWYsQ0FBQztBQWpDSCxrQ0FpQ0c7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxNQUFXLEVBQUUsYUFBb0IsRUFBRTtJQUVyRSxNQUFNLEtBQUssR0FBRyx3QkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUE7SUFFcEQsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFFcEIsSUFBSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUUzRCxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUE7U0FFN0M7YUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUUxQyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUM7Z0JBRTFDLElBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFFbEIsTUFBTSxXQUFXLEdBQUksSUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFFL0MsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7aUJBQ3JDO2FBQ0Y7U0FDRjtLQUNKO0lBSUQsT0FBTyxVQUFVLENBQUE7QUFFbkIsQ0FBQztBQTVCRCxrREE0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW5kZXJDbGFpbUtleSwgUmVuZGVyQ2xhaW1zIH0gZnJvbSBcIi4uL3JlbmRlcmVyXCI7XG5pbXBvcnQgY29tbW9uIGZyb20gJ2NhdGFsb2dfY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZWZzKHJlbmRlckNsYWltczogUmVuZGVyQ2xhaW1zLCBraW5kOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge31cblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJlbmRlckNsYWltcykge1xuXG4gICAgICAgIGNvbnN0IGNsYWltID0gKHJlbmRlckNsYWltc1trZXkgYXMgUmVuZGVyQ2xhaW1LZXldIGFzIGFueSkuY2xhaW1cbiAgICAgICAgXG4gICAgICAgIGxldCByZWZzID0gW11cblxuICAgICAgICBzd2l0Y2goa2luZCkge1xuXG4gICAgICAgICAgICBjYXNlIFwiVEZXb3Jrc3BhY2VDbGFpbVwiOiAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgcmVmcyA9IGdldFRmV29ya3NwYWNlc1JlZnMoY2xhaW0ucHJvdmlkZXJzLnRlcnJhZm9ybS52YWx1ZXMpXG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZWZzIGZvciBraW5kICR7a2luZH1gKVxuICAgICAgICAgICAgXG5cbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdFtjbGFpbS5uYW1lXSA9IHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gLFxuICAgICAgICAgICAgcmVmczogcmVmc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VGZXb3Jrc3BhY2VzUmVmcyh2YWx1ZXM6IGFueSwgcmVmZXJlbmNlczogYW55W10gPSBbXSl7XG4gIFxuICAgIGNvbnN0IHJlZ2V4ID0gY29tbW9uLnR5cGVzLnJlZ2V4LlRGV29ya3NwYWNlUmVmUmVnZXhcbiBcbiAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7XG4gIFxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlc1trZXldID09PSAnb2JqZWN0JyAmJiB2YWx1ZXNba2V5XSAhPT0gbnVsbCkge1xuICBcbiAgICAgICAgICBnZXRUZldvcmtzcGFjZXNSZWZzKHZhbHVlc1trZXldLCByZWZlcmVuY2VzKVxuICAgICAgICAgICAgXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlc1trZXldID09PSAnc3RyaW5nJykge1xuXG4gICAgICAgICAgZm9yKCBjb25zdCBwYXJ0IG9mIHZhbHVlc1trZXldLnNwbGl0KHJlZ2V4KSl7XG5cbiAgICAgICAgICAgIGlmKHJlZ2V4LnRlc3QocGFydCkpe1xuICAgIFxuICAgICAgICAgICAgICBjb25zdCBzcGxpdHRlZFJlZiA9IChwYXJ0IGFzIHN0cmluZykuc3BsaXQoXCI6XCIpXG5cbiAgICAgICAgICAgICAgcmVmZXJlbmNlcy5wdXNoKGAke3NwbGl0dGVkUmVmWzFdfWApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIFxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZXNcblxuICB9XG4iXX0=
235215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmc0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWZzU29ydGVyL3JlZnNFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0VBQW9DO0FBRXBDLFNBQWdCLFdBQVcsQ0FBQyxZQUEwQixFQUFFLElBQVk7SUFFaEUsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFBO0lBRXRCLEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRTVCLE1BQU0sS0FBSyxHQUFJLFlBQVksQ0FBQyxHQUFxQixDQUFTLENBQUMsS0FBSyxDQUFBO1FBRWhFLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUViLFFBQU8sSUFBSSxFQUFFO1lBRVQsS0FBSyxrQkFBa0I7Z0JBRXRCLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFFN0QsTUFBTTtZQUVOO2dCQUVJLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUE7U0FHbEQ7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ2pCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNuQyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUE7S0FDSjtJQUVELE9BQU8sTUFBTSxDQUFBO0FBRWYsQ0FBQztBQWpDSCxrQ0FpQ0c7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxNQUFXLEVBQUUsYUFBb0IsRUFBRTtJQUVyRSxNQUFNLEtBQUssR0FBRyx3QkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUE7SUFFcEQsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFFdEIsUUFBUSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUV4QixLQUFLLFFBQVE7Z0JBQ1gsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDL0MsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUE7b0JBQzVCLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE1BQU07U0FFVDtLQUVKO0lBSUQsT0FBTyxVQUFVLENBQUE7QUFFbkIsQ0FBQztBQTNCRCxrREEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW5kZXJDbGFpbUtleSwgUmVuZGVyQ2xhaW1zIH0gZnJvbSBcIi4uL3JlbmRlcmVyXCI7XG5pbXBvcnQgY29tbW9uIGZyb20gJ2NhdGFsb2dfY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZWZzKHJlbmRlckNsYWltczogUmVuZGVyQ2xhaW1zLCBraW5kOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge31cblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJlbmRlckNsYWltcykge1xuXG4gICAgICAgIGNvbnN0IGNsYWltID0gKHJlbmRlckNsYWltc1trZXkgYXMgUmVuZGVyQ2xhaW1LZXldIGFzIGFueSkuY2xhaW1cbiAgICAgICAgXG4gICAgICAgIGxldCByZWZzID0gW11cblxuICAgICAgICBzd2l0Y2goa2luZCkge1xuXG4gICAgICAgICAgICBjYXNlIFwiVEZXb3Jrc3BhY2VDbGFpbVwiOiAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgcmVmcyA9IGdldFRmV29ya3NwYWNlc1JlZnMoY2xhaW0ucHJvdmlkZXJzLnRlcnJhZm9ybS52YWx1ZXMpXG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZWZzIGZvciBraW5kICR7a2luZH1gKVxuICAgICAgICAgICAgXG5cbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdFtjbGFpbS5uYW1lXSA9IHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NsYWltLmtpbmR9LSR7Y2xhaW0ubmFtZX1gLFxuICAgICAgICAgICAgcmVmczogcmVmc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VGZXb3Jrc3BhY2VzUmVmcyh2YWx1ZXM6IGFueSwgcmVmZXJlbmNlczogYW55W10gPSBbXSl7XG4gIFxuICAgIGNvbnN0IHJlZ2V4ID0gY29tbW9uLnR5cGVzLnJlZ2V4LlRGV29ya3NwYWNlUmVmUmVnZXhcbiBcbiAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7XG5cbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlc1trZXldKSB7XG5cbiAgICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgICAgZ2V0VGZXb3Jrc3BhY2VzUmVmcyh2YWx1ZXNba2V5XSwgcmVmZXJlbmNlcyk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIHZhbHVlc1trZXldLm1hdGNoQWxsKHJlZ2V4KSkge1xuICAgICAgICAgICAgICBjb25zdCBbXywgY2xhaW1OYW1lXSA9IG1hdGNoXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXMucHVzaChjbGFpbU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIFxuICAgIFxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZXNcblxuICB9XG4iXX0=
235196
235216
 
235197
235217
  /***/ }),
235198
235218
 
File without changes
@@ -51417,7 +51417,7 @@ exports["default"] = {
51417
51417
  Object.defineProperty(exports, "__esModule", ({ value: true }));
51418
51418
  exports.TFWorkspaceRefCR = exports.TFWorkspaceRefRegex = void 0;
51419
51419
  const regModuleName = /[\w\-\.]+/;
51420
- exports.TFWorkspaceRefRegex = new RegExp(`(\\$\\{\\{\\s*tfworkspace\\:${regModuleName.source}\\:outputs\\.${regModuleName.source}\\s*\\}\\})`, 'i');
51420
+ exports.TFWorkspaceRefRegex = new RegExp(`\\$\\{\\{\\s*tfworkspace\\:(${regModuleName.source})\\:outputs\\.(${regModuleName.source})\\s*\\}\\}`, 'ig');
51421
51421
  exports.TFWorkspaceRefCR = new RegExp(`\\$\\{\\{\\s*references\\.(${regModuleName.source})\\s*\\}\\}`, 'i');
51422
51422
 
51423
51423