@codeperfect/eslint-plugin 2.6.0 → 2.8.0

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 (108) hide show
  1. package/README.md +3 -7
  2. package/dist/application/custom-rules.d.ts.map +1 -1
  3. package/dist/application/custom-rules.js +15 -57
  4. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  5. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +1 -1
  6. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +0 -1
  7. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
  8. package/dist/domain/architecture/consistent-barrel-files/index.js +1 -2
  9. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
  10. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +3 -9
  11. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
  12. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +3 -9
  13. package/dist/domain/architecture/index.d.ts +2 -1
  14. package/dist/domain/architecture/index.d.ts.map +1 -1
  15. package/dist/domain/architecture/index.js +3 -2
  16. package/dist/domain/architecture/no-import-export-extensions/index.d.ts +2 -0
  17. package/dist/domain/architecture/no-import-export-extensions/index.d.ts.map +1 -0
  18. package/dist/domain/architecture/no-import-export-extensions/index.js +2 -0
  19. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -0
  20. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +171 -0
  21. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  22. package/dist/domain/core/no-multiple-declarators/rule.js +6 -1
  23. package/dist/domain/core/no-multiple-declarators/types.js +1 -1
  24. package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -1
  25. package/dist/domain/core/no-useless-delegation/rule.js +12 -8
  26. package/dist/domain/core/prefer-interface-types/autofix.d.ts +15 -0
  27. package/dist/domain/core/prefer-interface-types/autofix.d.ts.map +1 -0
  28. package/dist/domain/core/prefer-interface-types/autofix.js +196 -0
  29. package/dist/domain/core/prefer-interface-types/declaration-names.d.ts +23 -0
  30. package/dist/domain/core/prefer-interface-types/declaration-names.d.ts.map +1 -0
  31. package/dist/domain/core/prefer-interface-types/declaration-names.js +139 -0
  32. package/dist/domain/core/prefer-interface-types/naming.d.ts +45 -0
  33. package/dist/domain/core/prefer-interface-types/naming.d.ts.map +1 -0
  34. package/dist/domain/core/prefer-interface-types/naming.js +179 -0
  35. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +2 -0
  36. package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -1
  37. package/dist/domain/core/prefer-interface-types/rule-utilities.js +1 -1
  38. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  39. package/dist/domain/core/prefer-interface-types/rule.js +40 -16
  40. package/dist/domain/core/prefer-interface-types/types.d.ts +80 -0
  41. package/dist/domain/core/prefer-interface-types/types.d.ts.map +1 -0
  42. package/dist/domain/core/prefer-interface-types/types.js +2 -0
  43. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -1
  44. package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +2 -7
  45. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
  46. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -6
  47. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -1
  48. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -5
  49. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  50. package/dist/domain/docs/no-interface-member-docs/rule.js +6 -2
  51. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  52. package/dist/domain/docs/require-example-language/examples.js +2 -6
  53. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  54. package/dist/domain/docs/require-example-language/reporting.js +34 -7
  55. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  56. package/dist/domain/docs/require-example-language/rule.js +6 -1
  57. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
  58. package/dist/domain/docs/single-line-jsdoc/rule.js +5 -3
  59. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
  60. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +4 -2
  61. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +1 -1
  62. package/dist/domain/testing/aaa/analyzer.analysis.js +1 -1
  63. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  64. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +27 -3
  65. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +1 -1
  66. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
  67. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +29 -4
  68. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +1 -1
  69. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  70. package/dist/domain/testing/aaa/analyzer.super.helpers.js +1 -1
  71. package/dist/domain/testing/aaa/analyzer.super.js +10 -3
  72. package/dist/domain/testing/aaa/index.d.ts +1 -1
  73. package/dist/domain/testing/aaa/index.d.ts.map +1 -1
  74. package/dist/domain/testing/aaa/index.js +1 -1
  75. package/dist/domain/testing/aaa/types.d.ts +7 -9
  76. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  77. package/dist/domain/testing/aaa/types.js +1 -1
  78. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  79. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -18
  80. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
  81. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
  82. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +3 -2
  83. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -1
  84. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +44 -58
  85. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  86. package/dist/domain/testing/enforce-aaa-structure/rule.js +4 -1
  87. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
  88. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +10 -4
  89. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +1 -1
  90. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +1 -1
  91. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +1 -1
  92. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -1
  93. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +2 -6
  94. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  95. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +10 -4
  96. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  97. package/dist/domain/testing/require-act-result-capture/rule.js +10 -5
  98. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  99. package/dist/domain/testing/require-test-companion/rule.js +4 -13
  100. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
  101. package/dist/infrastructure/codeperfect-plugin.js +2 -4
  102. package/dist/infrastructure/index.js +1 -1
  103. package/dist/infrastructure/presets.d.ts.map +1 -1
  104. package/dist/infrastructure/presets.js +2 -4
  105. package/package.json +24 -23
  106. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +0 -1
  107. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +0 -134
  108. /package/dist/domain/architecture/{consistent-barrel-files → no-import-export-extensions}/no-import-export-extensions-rule.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"single-line-jsdoc-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAa3D;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,MAU7D,CAAC;AAiHF;;;;;;;;;GASG;AACH,QAAA,MAAM,kBAAkB,GACtB,SAAS,IAAI,CAAC,WAAW,EACzB,SAAS,OAAO,EAChB,eAAe,MAAM,KACpB,IAsBF,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"single-line-jsdoc-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAa3D;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,MAU7D,CAAC;AAiHF;;;;;;;;;GASG;AACH,QAAA,MAAM,kBAAkB,GACtB,SAAS,IAAI,CAAC,WAAW,EACzB,SAAS,OAAO,EAChB,eAAe,MAAM,KACpB,IAyBF,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -130,11 +130,13 @@ const reportIfSingleLine = (context, comment, maxLineLength) => {
130
130
  if (loc === null || loc === void 0 || range === void 0) {
131
131
  return;
132
132
  }
133
+ const fix = createFix(range, singleLineText);
133
134
  context.report({
134
- fix: createFix(range, singleLineText),
135
+ fix,
135
136
  loc,
136
137
  messageId: "singleLine",
138
+ suggest: [{ fix, messageId: "collapseToSingleLine" }],
137
139
  });
138
140
  };
139
141
  export { normalizeMaxLineLength, reportIfSingleLine };
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxpbmUtanNkb2MtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9kb2NzL3NpbmdsZS1saW5lLWpzZG9jL3NpbmdsZS1saW5lLWpzZG9jLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRSx5Q0FBeUM7QUFDekMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFRbkM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsT0FBMkIsRUFBVSxFQUFFO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXVDLENBQUM7SUFDcEUsTUFBTSxhQUFhLEdBQUcsVUFBVSxFQUFFLGFBQWEsQ0FBQztJQUVoRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDeEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxPQUFPLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDL0QsQ0FBQztJQUVELE9BQU8sdUJBQXVCLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBZ0IsRUFBVyxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRS9CLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIs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QUM7QUFDTCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBDb21tZW50IH0gZnJvbSBcIi4vc2luZ2xlLWxpbmUtanNkb2MtY29udGVudFwiO1xuXG5pbXBvcnQgeyBnZXRDb2xsYXBzZWRDb250ZW50IH0gZnJvbSBcIi4vc2luZ2xlLWxpbmUtanNkb2MtY29udGVudFwiO1xuXG4vKiogRGVmYXVsdCB2YWx1ZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuY29uc3QgREVGQVVMVF9NQVhfTElORV9MRU5HVEggPSA4MDtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFNpbmdsZUxpbmVKc2RvY09wdGlvbnMge1xuICAvKiogTWF4TGluZUxlbmd0aCBoZWxwZXIgdmFsdWUuICovXG4gIG1heExpbmVMZW5ndGg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBub3JtYWxpemVNYXhMaW5lTGVuZ3RoLlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbm9ybWFsaXplTWF4TGluZUxlbmd0aCgpO1xuICogYGBgXG4gKi9cbmNvbnN0IG5vcm1hbGl6ZU1heExpbmVMZW5ndGggPSAob3B0aW9uczogcmVhZG9ubHkgdW5rbm93bltdKTogbnVtYmVyID0+IHtcbiAgY29uc3QgcmF3T3B0aW9ucyA9IG9wdGlvbnNbMF0gYXMgU2luZ2xlTGluZUpzZG9jT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbWF4TGluZUxlbmd0aCA9IHJhd09wdGlvbnM/Lm1heExpbmVMZW5ndGg7XG5cbiAgaWYgKHR5cGVvZiBtYXhMaW5lTGVuZ3RoID09PSBcIm51bWJlclwiICYmIE51bWJlci5pc0Zpbml0ZShtYXhMaW5lTGVuZ3RoKSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGgpO1xuICAgIHJldHVybiBub3JtYWxpemVkID4gMCA/IG5vcm1hbGl6ZWQgOiBERUZBVUxUX01BWF9MSU5FX0xFTkdUSDtcbiAgfVxuXG4gIHJldHVybiBERUZBVUxUX01BWF9MSU5FX0xFTkdUSDtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlzTXVsdGlsaW5lQ29tbWVudC5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzTXVsdGlsaW5lQ29tbWVudCgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTXVsdGlsaW5lQ29tbWVudCA9IChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHsgbG9jLCB2YWx1ZSB9ID0gY29tbWVudDtcblxuICBpZiAobG9jID09PSBudWxsIHx8IGxvYyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIC9cXHJ8XFxuL3UudGVzdCh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gbG9jLnN0YXJ0LmxpbmUgIT09IGxvYy5lbmQubGluZTtcbn07XG5cbi8qKlxuICogQnVpbGQgYSBzaW5nbGUtbGluZSBKU0RvYyBzdHJpbmcgZnJvbSBjb250ZW50LlxuICogQHBhcmFtIGNvbnRlbnQgSW5wdXQgY29udGVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dCA9IGJ1aWxkU2luZ2xlTGluZVRleHQoXCJva1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBidWlsZFNpbmdsZUxpbmVUZXh0ID0gKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyA9PiBgLyoqICR7Y29udGVudH0gKi9gO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmaXhlciBmb3IgcmVwbGFjaW5nIGEgSlNEb2MgcmFuZ2UuXG4gKiBAcGFyYW0gcmFuZ2UgSW5wdXQgcmFuZ2UgdmFsdWUuXG4gKiBAcGFyYW0gcmVwbGFjZW1lbnRUZXh0IElucHV0IHJlcGxhY2VtZW50VGV4dCB2YWx1ZS5cbiAqIEByZXR1cm5zIEZpeGVyIGZ1bmN0aW9uIGZvciBFU0xpbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXIgPSBjcmVhdGVGaXgoWzAsIDFdLCBcIi8qKiBvayAqXFxcXC9cIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRml4ID0gKFxuICByYW5nZTogW251bWJlciwgbnVtYmVyXSxcbiAgcmVwbGFjZW1lbnRUZXh0OiBzdHJpbmcsXG4pOiBSdWxlLlJlcG9ydEZpeGVyID0+IHtcbiAgcmV0dXJuIChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeCA9PlxuICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHJlcGxhY2VtZW50VGV4dCk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpc0pzZG9jQ29tbWVudC5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzSnNkb2NDb21tZW50KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNKc2RvY0NvbW1lbnQgPSAoY29tbWVudDogQ29tbWVudCk6IGJvb2xlYW4gPT5cbiAgY29tbWVudC50eXBlID09PSBcIkJsb2NrXCIgJiYgY29tbWVudC52YWx1ZS5zdGFydHNXaXRoKFwiKlwiKTtcblxuLyoqXG4gKiBHZXRzIGdldFN0YXJ0Q29sdW1uLlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0U3RhcnRDb2x1bW4oKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRTdGFydENvbHVtbiA9IChjb21tZW50OiBDb21tZW50KTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgeyBsb2MgfSA9IGNvbW1lbnQ7XG5cbiAgaWYgKGxvYyA9PT0gbnVsbCB8fCBsb2MgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4gbG9jLnN0YXJ0LmNvbHVtbjtcbn07XG5cbi8qKlxuICogQnVpbGRzIGEgc2luZ2xlLWxpbmUgcmVwbGFjZW1lbnQgd2hlbiBpdCBmaXRzLlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEBwYXJhbSBtYXhMaW5lTGVuZ3RoIElucHV0IG1heExpbmVMZW5ndGggdmFsdWUuXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudCB0ZXh0IHdoZW4gYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRleHQgPSBnZXRTaW5nbGVMaW5lUmVwbGFjZW1lbnQoY29tbWVudCwgODApO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFNpbmdsZUxpbmVSZXBsYWNlbWVudCA9IChcbiAgY29tbWVudDogQ29tbWVudCxcbiAgbWF4TGluZUxlbmd0aDogbnVtYmVyLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpc011bHRpbGluZUNvbW1lbnQoY29tbWVudCkpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29udGVudCA9IGdldENvbGxhcHNlZENvbnRlbnQoY29tbWVudCk7XG4gIGNvbnN0IHN0YXJ0Q29sdW1uID0gZ2V0U3RhcnRDb2x1bW4oY29tbWVudCk7XG5cbiAgaWYgKGNvbnRlbnQgPT09IHZvaWQgMCB8fCBzdGFydENvbHVtbiA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHNpbmdsZUxpbmVUZXh0ID0gYnVpbGRTaW5nbGVMaW5lVGV4dChjb250ZW50KTtcblxuICByZXR1cm4gc3RhcnRDb2x1bW4gKyBzaW5nbGVMaW5lVGV4dC5sZW5ndGggPiBtYXhMaW5lTGVuZ3RoXG4gICAgPyB2b2lkIDBcbiAgICA6IHNpbmdsZUxpbmVUZXh0O1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIGEgY29tbWVudCB3aGVuIGl0IGNhbiBiZSBjb2xsYXBzZWQgdG8gYSBzaW5nbGUgbGluZS5cbiAqIEBwYXJhbSBjb250ZXh0IElucHV0IGNvbnRleHQgdmFsdWUuXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHBhcmFtIG1heExpbmVMZW5ndGggSW5wdXQgbWF4TGluZUxlbmd0aCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRJZlNpbmdsZUxpbmUoY29udGV4dCwgY29tbWVudCwgODApO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydElmU2luZ2xlTGluZSA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgY29tbWVudDogQ29tbWVudCxcbiAgbWF4TGluZUxlbmd0aDogbnVtYmVyLFxuKTogdm9pZCA9PiB7XG4gIGlmICghaXNKc2RvY0NvbW1lbnQoY29tbWVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzaW5nbGVMaW5lVGV4dCA9IGdldFNpbmdsZUxpbmVSZXBsYWNlbWVudChjb21tZW50LCBtYXhMaW5lTGVuZ3RoKTtcblxuICBpZiAoc2luZ2xlTGluZVRleHQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgbG9jLCByYW5nZSB9ID0gY29tbWVudDtcblxuICBpZiAobG9jID09PSBudWxsIHx8IGxvYyA9PT0gdm9pZCAwIHx8IHJhbmdlID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZml4OiBjcmVhdGVGaXgocmFuZ2UsIHNpbmdsZUxpbmVUZXh0KSxcbiAgICBsb2MsXG4gICAgbWVzc2FnZUlkOiBcInNpbmdsZUxpbmVcIixcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBub3JtYWxpemVNYXhMaW5lTGVuZ3RoLCByZXBvcnRJZlNpbmdsZUxpbmUgfTtcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxpbmUtanNkb2MtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9kb2NzL3NpbmdsZS1saW5lLWpzZG9jL3NpbmdsZS1saW5lLWpzZG9jLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRSx5Q0FBeUM7QUFDekMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFRbkM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsT0FBMkIsRUFBVSxFQUFFO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXVDLENBQUM7SUFDcEUsTUFBTSxhQUFhLEdBQUcsVUFBVSxFQUFFLGFBQWEsQ0FBQztJQUVoRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDeEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxPQUFPLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDL0QsQ0FBQztJQUVELE9BQU8sdUJBQXVCLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBZ0IsRUFBVyxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRS9CLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIs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RSxZQUFZO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0tBQ3RELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiLi9zaW5nbGUtbGluZS1qc2RvYy1jb250ZW50XCI7XG5cbmltcG9ydCB7IGdldENvbGxhcHNlZENvbnRlbnQgfSBmcm9tIFwiLi9zaW5nbGUtbGluZS1qc2RvYy1jb250ZW50XCI7XG5cbi8qKiBEZWZhdWx0IHZhbHVlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICovXG5jb25zdCBERUZBVUxUX01BWF9MSU5FX0xFTkdUSCA9IDgwO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgU2luZ2xlTGluZUpzZG9jT3B0aW9ucyB7XG4gIC8qKiBNYXhMaW5lTGVuZ3RoIGhlbHBlciB2YWx1ZS4gKi9cbiAgbWF4TGluZUxlbmd0aD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIG5vcm1hbGl6ZU1heExpbmVMZW5ndGguXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBub3JtYWxpemVNYXhMaW5lTGVuZ3RoKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgbm9ybWFsaXplTWF4TGluZUxlbmd0aCA9IChvcHRpb25zOiByZWFkb25seSB1bmtub3duW10pOiBudW1iZXIgPT4ge1xuICBjb25zdCByYXdPcHRpb25zID0gb3B0aW9uc1swXSBhcyBTaW5nbGVMaW5lSnNkb2NPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBtYXhMaW5lTGVuZ3RoID0gcmF3T3B0aW9ucz8ubWF4TGluZUxlbmd0aDtcblxuICBpZiAodHlwZW9mIG1heExpbmVMZW5ndGggPT09IFwibnVtYmVyXCIgJiYgTnVtYmVyLmlzRmluaXRlKG1heExpbmVMZW5ndGgpKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IE1hdGguZmxvb3IobWF4TGluZUxlbmd0aCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQgPiAwID8gbm9ybWFsaXplZCA6IERFRkFVTFRfTUFYX0xJTkVfTEVOR1RIO1xuICB9XG5cbiAgcmV0dXJuIERFRkFVTFRfTUFYX0xJTkVfTEVOR1RIO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaXNNdWx0aWxpbmVDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNNdWx0aWxpbmVDb21tZW50KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNNdWx0aWxpbmVDb21tZW50ID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBib29sZWFuID0+IHtcbiAgY29uc3QgeyBsb2MsIHZhbHVlIH0gPSBjb21tZW50O1xuXG4gIGlmIChsb2MgPT09IG51bGwgfHwgbG9jID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gL1xccnxcXG4vdS50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBsb2Muc3RhcnQubGluZSAhPT0gbG9jLmVuZC5saW5lO1xufTtcblxuLyoqXG4gKiBCdWlsZCBhIHNpbmdsZS1saW5lIEpTRG9jIHN0cmluZyBmcm9tIGNvbnRlbnQuXG4gKiBAcGFyYW0gY29udGVudCBJbnB1dCBjb250ZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gYnVpbGRTaW5nbGVMaW5lVGV4dChcIm9rXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkU2luZ2xlTGluZVRleHQgPSAoY29udGVudDogc3RyaW5nKTogc3RyaW5nID0+IGAvKiogJHtjb250ZW50fSAqL2A7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpeGVyIGZvciByZXBsYWNpbmcgYSBKU0RvYyByYW5nZS5cbiAqIEBwYXJhbSByYW5nZSBJbnB1dCByYW5nZSB2YWx1ZS5cbiAqIEBwYXJhbSByZXBsYWNlbWVudFRleHQgSW5wdXQgcmVwbGFjZW1lbnRUZXh0IHZhbHVlLlxuICogQHJldHVybnMgRml4ZXIgZnVuY3Rpb24gZm9yIEVTTGludC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlciA9IGNyZWF0ZUZpeChbMCwgMV0sIFwiLyoqIG9rICpcXFxcL1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVGaXggPSAoXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLFxuICByZXBsYWNlbWVudFRleHQ6IHN0cmluZyxcbik6IFJ1bGUuUmVwb3J0Rml4ZXIgPT4ge1xuICByZXR1cm4gKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4ID0+XG4gICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShyYW5nZSwgcmVwbGFjZW1lbnRUZXh0KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlzSnNkb2NDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNKc2RvY0NvbW1lbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0pzZG9jQ29tbWVudCA9IChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiA9PlxuICBjb21tZW50LnR5cGUgPT09IFwiQmxvY2tcIiAmJiBjb21tZW50LnZhbHVlLnN0YXJ0c1dpdGgoXCIqXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0U3RhcnRDb2x1bW4uXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRTdGFydENvbHVtbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFN0YXJ0Q29sdW1uID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7IGxvYyB9ID0gY29tbWVudDtcblxuICBpZiAobG9jID09PSBudWxsIHx8IGxvYyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiBsb2Muc3RhcnQuY29sdW1uO1xufTtcblxuLyoqXG4gKiBCdWlsZHMgYSBzaW5nbGUtbGluZSByZXBsYWNlbWVudCB3aGVuIGl0IGZpdHMuXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHBhcmFtIG1heExpbmVMZW5ndGggSW5wdXQgbWF4TGluZUxlbmd0aCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJlcGxhY2VtZW50IHRleHQgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dCA9IGdldFNpbmdsZUxpbmVSZXBsYWNlbWVudChjb21tZW50LCA4MCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0U2luZ2xlTGluZVJlcGxhY2VtZW50ID0gKFxuICBjb21tZW50OiBDb21tZW50LFxuICBtYXhMaW5lTGVuZ3RoOiBudW1iZXIsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIWlzTXVsdGlsaW5lQ29tbWVudChjb21tZW50KSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBjb250ZW50ID0gZ2V0Q29sbGFwc2VkQ29udGVudChjb21tZW50KTtcbiAgY29uc3Qgc3RhcnRDb2x1bW4gPSBnZXRTdGFydENvbHVtbihjb21tZW50KTtcblxuICBpZiAoY29udGVudCA9PT0gdm9pZCAwIHx8IHN0YXJ0Q29sdW1uID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3Qgc2luZ2xlTGluZVRleHQgPSBidWlsZFNpbmdsZUxpbmVUZXh0KGNvbnRlbnQpO1xuXG4gIHJldHVybiBzdGFydENvbHVtbiArIHNpbmdsZUxpbmVUZXh0Lmxlbmd0aCA+IG1heExpbmVMZW5ndGhcbiAgICA/IHZvaWQgMFxuICAgIDogc2luZ2xlTGluZVRleHQ7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgYSBjb21tZW50IHdoZW4gaXQgY2FuIGJlIGNvbGxhcHNlZCB0byBhIHNpbmdsZSBsaW5lLlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcGFyYW0gbWF4TGluZUxlbmd0aCBJbnB1dCBtYXhMaW5lTGVuZ3RoIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydElmU2luZ2xlTGluZShjb250ZXh0LCBjb21tZW50LCA4MCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0SWZTaW5nbGVMaW5lID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBjb21tZW50OiBDb21tZW50LFxuICBtYXhMaW5lTGVuZ3RoOiBudW1iZXIsXG4pOiB2b2lkID0+IHtcbiAgaWYgKCFpc0pzZG9jQ29tbWVudChjb21tZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNpbmdsZUxpbmVUZXh0ID0gZ2V0U2luZ2xlTGluZVJlcGxhY2VtZW50KGNvbW1lbnQsIG1heExpbmVMZW5ndGgpO1xuXG4gIGlmIChzaW5nbGVMaW5lVGV4dCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBsb2MsIHJhbmdlIH0gPSBjb21tZW50O1xuXG4gIGlmIChsb2MgPT09IG51bGwgfHwgbG9jID09PSB2b2lkIDAgfHwgcmFuZ2UgPT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZpeCA9IGNyZWF0ZUZpeChyYW5nZSwgc2luZ2xlTGluZVRleHQpO1xuXG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBmaXgsXG4gICAgbG9jLFxuICAgIG1lc3NhZ2VJZDogXCJzaW5nbGVMaW5lXCIsXG4gICAgc3VnZ2VzdDogW3sgZml4LCBtZXNzYWdlSWQ6IFwiY29sbGFwc2VUb1NpbmdsZUxpbmVcIiB9XSxcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBub3JtYWxpemVNYXhMaW5lTGVuZ3RoLCByZXBvcnRJZlNpbmdsZUxpbmUgfTtcbiJdfQ==
@@ -196,4 +196,4 @@ function isAaaPhase(value) {
196
196
  }
197
197
  /** Companion marker for test isolation. */
198
198
  export { aaaPhaseOrder, countActStatements, getActTopLevelStatements, getFlattenedSections, getLineStartRange, getNewline, getPhaseBoundaryComments, getSectionPhases, getStatementPhases, getSupportedTestCall, };
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSx5REFBeUQ7QUFDekQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsR0FBRyxFQUFFLENBQUM7SUFDTixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0NBQ2tDLENBQUM7QUFFOUMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBSTdDLENBQUM7QUEwQkY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFFBQTJCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLFFBQStDO0lBRS9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQy9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsUUFBb0Q7SUFFcEQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTztRQUMvQixLQUFLO0tBQ04sQ0FBQyxDQUFDLENBQ0osQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFVBQWtCLEVBQUUsSUFBWTtJQUN6RCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDcEIsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbkMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsYUFBYSxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQVk7SUFDOUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHdCQUF3QixDQUMvQixRQUFvRDtJQUVwRCxPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDeEQsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxRQUFRLENBQ2pELENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsWUFBb0I7SUFDNUMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQzlELENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixTQUEyQixFQUMzQixlQUFxRDtJQUVyRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDaEQsSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLGFBQWEsR0FBZSxFQUFFLENBQUM7SUFDbkMsS0FBSyxNQUFNLGNBQWMsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM3QyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDMUQsTUFBTTtRQUNSLENBQUM7UUFDRCxhQUFhLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsSUFBMkI7SUFFM0IsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQzdDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUNFLGdCQUFnQixLQUFLLEtBQUssQ0FBQztRQUMzQixnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssZUFBZTtRQUN6QyxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyx5QkFBeUI7WUFDbEQsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDO1FBQ2pELGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQy9DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLGdCQUF5QztRQUNuRCxjQUFjLEVBQUUsSUFBMEM7S0FDM0QsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsZUFBZSxDQUN0QixNQUF1QztJQUV2QyxJQUFJLE9BQU8sR0FBb0MsTUFBTSxDQUFDO0lBRXRELE9BQ0UsT0FBTyxDQUFDLElBQUksS0FBSyxnQkFBZ0I7UUFDakMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxFQUN4RSxDQUFDO1FBQ0QsT0FBTztZQUNMLE9BQU8sQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxVQUFVLENBQUMsS0FBYTtJQUMvQixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBaUIsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIEFhYVBoYXNlLFxyXG4gIExvY2F0ZWROb2RlLFxyXG4gIFNvdXJjZUNvbW1lbnQsXHJcbiAgVGVzdEJsb2NrQW5hbHlzaXMsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xyXG5jb25zdCBhYWFQaGFzZU9yZGVyID0ge1xyXG4gIEFjdDogMSxcclxuICBBcnJhbmdlOiAwLFxyXG4gIEFzc2VydDogMixcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPEFhYVBoYXNlLCBudW1iZXI+O1xyXG5cclxuLyoqIFJlY29nbml6ZWQgQUFBIHBoYXNlIG5hbWVzLiAqL1xyXG5jb25zdCBwaGFzZU5hbWVzID0gW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgW1xyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG4gIEFhYVBoYXNlLFxyXG5dO1xyXG5cclxuLyoqIEhlbHBlciBzdGF0ZSBmb3IgZmxhdHRlbmVkIHNlY3Rpb24gY29tbWVudHMuICovXHJcbmludGVyZmFjZSBGbGF0dGVuZWRTZWN0aW9uIHtcclxuICAvKiogT3JpZ2luYWwgc291cmNlIGNvbW1lbnQgZm9yIHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cclxuICBjb21tZW50OiBTb3VyY2VDb21tZW50O1xyXG4gIC8qKiBQaGFzZSByZXByZXNlbnRlZCBieSB0aGUgZmxhdHRlbmVkIHNlY3Rpb24gZW50cnkuICovXHJcbiAgcGhhc2U6IEFhYVBoYXNlO1xyXG59XHJcblxyXG4vKiogU3VwcG9ydGVkIGNhbGwtZXhwcmVzc2lvbiB3cmFwcGVyIGZvciBhbmFseXplZCB0ZXN0IGJsb2Nrcy4gKi9cclxuaW50ZXJmYWNlIFN1cHBvcnRlZFRlc3RDYWxsIHtcclxuICAvKiogQ2FsbGJhY2sgYXJndW1lbnQgdGhhdCBvd25zIHRoZSB0ZXN0IGJvZHkuICovXHJcbiAgY2FsbGJhY2s6IFN1cHBvcnRlZFRlc3RDYWxsYmFjaztcclxuICAvKiogT3JpZ2luYWwgYGl0YCBvciBgdGVzdGAgaW52b2NhdGlvbi4gKi9cclxuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcclxufVxyXG5cclxuLyoqIFN1cHBvcnRlZCB0ZXN0IGNhbGxiYWNrIHNoYXBlIGZvciBgaXRgIGFuZCBgdGVzdGAgY2FsbHMuICovXHJcbnR5cGUgU3VwcG9ydGVkVGVzdENhbGxiYWNrID0gTG9jYXRlZE5vZGU8XHJcbiAgRVNUcmVlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uIHwgRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvblxyXG4+ICYge1xyXG4gIC8qKiBDYWxsYmFjayBib2R5IGJsb2NrIHVzZWQgZm9yIHNlY3Rpb24gYW5hbHlzaXMuICovXHJcbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb3VudHMgQWN0IHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb3VudEFjdFN0YXRlbWVudHMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNvdW50QWN0U3RhdGVtZW50cyhhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMpOiBudW1iZXIge1xyXG4gIHJldHVybiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoYW5hbHlzaXMpLmxlbmd0aDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdG9wLWxldmVsIHN0YXRlbWVudHMgdGhhdCBiZWxvbmcgdG8gdGhlIEFjdCBwaGFzZSBvbmx5LlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QWN0VG9wTGV2ZWxTdGF0ZW1lbnRzKGFuYWx5c2lzKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoXHJcbiAgYW5hbHlzaXM6IFBpY2s8VGVzdEJsb2NrQW5hbHlzaXMsIFwic3RhdGVtZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzdGF0ZW1lbnRzXCJdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc3RhdGVtZW50cy5maWx0ZXIoXHJcbiAgICAoc3RhdGVtZW50KSA9PlxyXG4gICAgICBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQWN0XCIpICYmICFzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGbGF0dGVucyBzZWN0aW9uIGNvbW1lbnRzLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0RmxhdHRlbmVkU2VjdGlvbnMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEZsYXR0ZW5lZFNlY3Rpb25zKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogRmxhdHRlbmVkU2VjdGlvbltdIHtcclxuICByZXR1cm4gYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLmZsYXRNYXAoKHNlY3Rpb25Db21tZW50KSA9PlxyXG4gICAgc2VjdGlvbkNvbW1lbnQucGhhc2VzLm1hcCgocGhhc2UpID0+ICh7XHJcbiAgICAgIGNvbW1lbnQ6IHNlY3Rpb25Db21tZW50LmNvbW1lbnQsXHJcbiAgICAgIHBoYXNlLFxyXG4gICAgfSkpLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBzdGFydCByYW5nZSBmb3IgYSBsaW5lLlxyXG4gKiBAcGFyYW0gc291cmNlVGV4dCBJbnB1dCBzb3VyY2VUZXh0IHZhbHVlLlxyXG4gKiBAcGFyYW0gbGluZSBJbnB1dCBsaW5lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQsIDIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQ6IHN0cmluZywgbGluZTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XHJcbiAgbGV0IGN1cnJlbnRMaW5lID0gMTtcclxuICBsZXQgY3VycmVudE9mZnNldCA9IDA7XHJcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc291cmNlVGV4dCkge1xyXG4gICAgaWYgKGN1cnJlbnRMaW5lID09PSBsaW5lKSB7XHJcbiAgICAgIHJldHVybiBbY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldF07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhcmFjdGVyID09PSBcIlxcblwiKSB7XHJcbiAgICAgIGN1cnJlbnRMaW5lICs9IDE7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50T2Zmc2V0ICs9IDE7XHJcbiAgfVxyXG4gIHJldHVybiBbc291cmNlVGV4dC5sZW5ndGgsIHNvdXJjZVRleHQubGVuZ3RoXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIG5ld2xpbmUgc2VxdWVuY2UuXHJcbiAqIEBwYXJhbSB0ZXh0IElucHV0IHRleHQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0TmV3bGluZShzb3VyY2VUZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXROZXdsaW5lKHRleHQ6IHN0cmluZyk6IFwiXFxuXCIgfCBcIlxcclxcblwiIHtcclxuICByZXR1cm4gdGV4dC5pbmNsdWRlcyhcIlxcclxcblwiKSA/IFwiXFxyXFxuXCIgOiBcIlxcblwiO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwaGFzZS1ib3VuZGFyeSBjb21tZW50cy5cclxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyhhbmFseXNpcyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzKFxyXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInNlY3Rpb25Db21tZW50c1wiPixcclxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0ge1xyXG4gIHJldHVybiBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuZmlsdGVyKChzZWN0aW9uQ29tbWVudCkgPT5cclxuICAgIHNlY3Rpb25Db21tZW50LnBoYXNlcy5zb21lKFxyXG4gICAgICAocGhhc2UpID0+IHBoYXNlID09PSBcIkFjdFwiIHx8IHBoYXNlID09PSBcIkFzc2VydFwiLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIGNvbW1lbnQuXHJcbiAqIEBwYXJhbSBjb21tZW50VmFsdWUgSW5wdXQgY29tbWVudFZhbHVlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFNlY3Rpb25QaGFzZXMoXCJBcnJhbmdlICYgQWN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNlY3Rpb25QaGFzZXMoY29tbWVudFZhbHVlOiBzdHJpbmcpOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCB0cmltbWVkQ29tbWVudCA9IGNvbW1lbnRWYWx1ZS50cmltKCk7XHJcbiAgaWYgKHRyaW1tZWRDb21tZW50Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBjb25zdCBwYXJ0cyA9IHRyaW1tZWRDb21tZW50LnNwbGl0KC9cXHMqJlxccyovdSk7XHJcbiAgcmV0dXJuIHBhcnRzLmV2ZXJ5KChwYXJ0KSA9PiBpc0FhYVBoYXNlKHBhcnQpKSA/IHBhcnRzIDogW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBhY3RpdmUgcGhhc2VzIGZvciBhIHN0YXRlbWVudC5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWN0aW9uQ29tbWVudHMgSW5wdXQgc2VjdGlvbkNvbW1lbnRzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN0YXRlbWVudFBoYXNlcyhzdGF0ZW1lbnQsIHNlY3Rpb25Db21tZW50cyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U3RhdGVtZW50UGhhc2VzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuICBzZWN0aW9uQ29tbWVudHM6IFRlc3RCbG9ja0FuYWx5c2lzW1wic2VjdGlvbkNvbW1lbnRzXCJdLFxyXG4pOiBBYWFQaGFzZVtdIHtcclxuICBjb25zdCBzdGF0ZW1lbnRMaW5lID0gc3RhdGVtZW50LmxvYz8uc3RhcnQubGluZTtcclxuICBpZiAoc3RhdGVtZW50TGluZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG4gIGxldCBjdXJyZW50UGhhc2VzOiBBYWFQaGFzZVtdID0gW107XHJcbiAgZm9yIChjb25zdCBzZWN0aW9uQ29tbWVudCBvZiBzZWN0aW9uQ29tbWVudHMpIHtcclxuICAgIGlmIChzZWN0aW9uQ29tbWVudC5jb21tZW50LmxvYy5zdGFydC5saW5lID4gc3RhdGVtZW50TGluZSkge1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGN1cnJlbnRQaGFzZXMgPSBzZWN0aW9uQ29tbWVudC5waGFzZXM7XHJcbiAgfVxyXG4gIHJldHVybiBjdXJyZW50UGhhc2VzO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBzdXBwb3J0ZWQgdGVzdCBjYWxsIG1ldGFkYXRhLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN1cHBvcnRlZFRlc3RDYWxsKG5vZGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFN1cHBvcnRlZFRlc3RDYWxsKFxyXG4gIG5vZGU6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuKTogU3VwcG9ydGVkVGVzdENhbGwgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHJvb3ROYW1lID0gZ2V0VGVzdFJvb3ROYW1lKG5vZGUuY2FsbGVlKTtcclxuICBpZiAocm9vdE5hbWUgIT09IFwiaXRcIiAmJiByb290TmFtZSAhPT0gXCJ0ZXN0XCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50ID0gbm9kZS5hcmd1bWVudHMuYXQoLTEpO1xyXG4gIGlmIChcclxuICAgIGNhbGxiYWNrQXJndW1lbnQgPT09IHZvaWQgMCB8fFxyXG4gICAgY2FsbGJhY2tBcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiB8fFxyXG4gICAgKGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJGdW5jdGlvbkV4cHJlc3Npb25cIikgfHxcclxuICAgIGNhbGxiYWNrQXJndW1lbnQuYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCJcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY2FsbGJhY2s6IGNhbGxiYWNrQXJndW1lbnQgYXMgU3VwcG9ydGVkVGVzdENhbGxiYWNrLFxyXG4gICAgY2FsbEV4cHJlc3Npb246IG5vZGUgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPixcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgcm9vdCB0ZXN0IGNhbGxlZSBuYW1lLlxyXG4gKiBAcGFyYW0gY2FsbGVlIElucHV0IGNhbGxlZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRUZXN0Um9vdE5hbWUoY2FsbEV4cHJlc3Npb24uY2FsbGVlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRUZXN0Um9vdE5hbWUoXHJcbiAgY2FsbGVlOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb25bXCJjYWxsZWVcIl0sXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgbGV0IGN1cnJlbnQ6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbltcImNhbGxlZVwiXSA9IGNhbGxlZTtcclxuXHJcbiAgd2hpbGUgKFxyXG4gICAgY3VycmVudC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcclxuICAgIChjdXJyZW50LnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmIGN1cnJlbnQub2JqZWN0LnR5cGUgIT09IFwiU3VwZXJcIilcclxuICApIHtcclxuICAgIGN1cnJlbnQgPVxyXG4gICAgICBjdXJyZW50LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiA/IGN1cnJlbnQuY2FsbGVlIDogY3VycmVudC5vYmplY3Q7XHJcbiAgfVxyXG5cclxuICBpZiAoY3VycmVudC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xyXG4gICAgcmV0dXJuIGN1cnJlbnQubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGFuIEFBQSBwaGFzZS5cclxuICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzQWFhUGhhc2UoXCJBcnJhbmdlXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWFhUGhhc2UodmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIEFhYVBoYXNlIHtcclxuICByZXR1cm4gcGhhc2VOYW1lcy5pbmNsdWRlcyh2YWx1ZSBhcyBBYWFQaGFzZSk7XHJcbn1cclxuXHJcbi8qKiBDb21wYW5pb24gbWFya2VyIGZvciB0ZXN0IGlzb2xhdGlvbi4gKi9cclxuZXhwb3J0IHtcclxuICBhYWFQaGFzZU9yZGVyLFxyXG4gIGNvdW50QWN0U3RhdGVtZW50cyxcclxuICBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMsXHJcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXHJcbiAgZ2V0TGluZVN0YXJ0UmFuZ2UsXHJcbiAgZ2V0TmV3bGluZSxcclxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXHJcbiAgZ2V0U2VjdGlvblBoYXNlcyxcclxuICBnZXRTdGF0ZW1lbnRQaGFzZXMsXHJcbiAgZ2V0U3VwcG9ydGVkVGVzdENhbGwsXHJcbn07XHJcbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSx5REFBeUQ7QUFDekQsTUFBTSxhQUFhLEdBQUc7SUFDcEIsR0FBRyxFQUFFLENBQUM7SUFDTixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0NBQ2tDLENBQUM7QUFFOUMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLENBSTdDLENBQUM7QUEwQkY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFFBQTJCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLFFBQStDO0lBRS9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQy9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsUUFBb0Q7SUFFcEQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ3pELGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTztRQUMvQixLQUFLO0tBQ04sQ0FB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LFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBaUIsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFhYVBoYXNlLFxuICBMb2NhdGVkTm9kZSxcbiAgU291cmNlQ29tbWVudCxcbiAgVGVzdEJsb2NrQW5hbHlzaXMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xuY29uc3QgYWFhUGhhc2VPcmRlciA9IHtcbiAgQWN0OiAxLFxuICBBcnJhbmdlOiAwLFxuICBBc3NlcnQ6IDIsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8QWFhUGhhc2UsIG51bWJlcj47XG5cbi8qKiBSZWNvZ25pemVkIEFBQSBwaGFzZSBuYW1lcy4gKi9cbmNvbnN0IHBoYXNlTmFtZXMgPSBbXCJBcnJhbmdlXCIsIFwiQWN0XCIsIFwiQXNzZXJ0XCJdIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBbXG4gIEFhYVBoYXNlLFxuICBBYWFQaGFzZSxcbiAgQWFhUGhhc2UsXG5dO1xuXG4vKiogSGVscGVyIHN0YXRlIGZvciBmbGF0dGVuZWQgc2VjdGlvbiBjb21tZW50cy4gKi9cbmludGVyZmFjZSBGbGF0dGVuZWRTZWN0aW9uIHtcbiAgLyoqIE9yaWdpbmFsIHNvdXJjZSBjb21tZW50IGZvciB0aGUgc2VjdGlvbiBtYXJrZXIuICovXG4gIGNvbW1lbnQ6IFNvdXJjZUNvbW1lbnQ7XG4gIC8qKiBQaGFzZSByZXByZXNlbnRlZCBieSB0aGUgZmxhdHRlbmVkIHNlY3Rpb24gZW50cnkuICovXG4gIHBoYXNlOiBBYWFQaGFzZTtcbn1cblxuLyoqIFN1cHBvcnRlZCBjYWxsLWV4cHJlc3Npb24gd3JhcHBlciBmb3IgYW5hbHl6ZWQgdGVzdCBibG9ja3MuICovXG5pbnRlcmZhY2UgU3VwcG9ydGVkVGVzdENhbGwge1xuICAvKiogQ2FsbGJhY2sgYXJndW1lbnQgdGhhdCBvd25zIHRoZSB0ZXN0IGJvZHkuICovXG4gIGNhbGxiYWNrOiBTdXBwb3J0ZWRUZXN0Q2FsbGJhY2s7XG4gIC8qKiBPcmlnaW5hbCBgaXRgIG9yIGB0ZXN0YCBpbnZvY2F0aW9uLiAqL1xuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcbn1cblxuLyoqIFN1cHBvcnRlZCB0ZXN0IGNhbGxiYWNrIHNoYXBlIGZvciBgaXRgIGFuZCBgdGVzdGAgY2FsbHMuICovXG50eXBlIFN1cHBvcnRlZFRlc3RDYWxsYmFjayA9IExvY2F0ZWROb2RlPFxuICBFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfCBFU1RyZWUuRnVuY3Rpb25FeHByZXNzaW9uXG4+ICYge1xuICAvKiogQ2FsbGJhY2sgYm9keSBibG9jayB1c2VkIGZvciBzZWN0aW9uIGFuYWx5c2lzLiAqL1xuICBib2R5OiBMb2NhdGVkTm9kZTxFU1RyZWUuQmxvY2tTdGF0ZW1lbnQ+O1xufTtcblxuLyoqXG4gKiBDb3VudHMgQWN0IHN0YXRlbWVudHMuXG4gKiBAcGFyYW0gYW5hbHlzaXMgSW5wdXQgYW5hbHlzaXMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvdW50QWN0U3RhdGVtZW50cyhhbmFseXNpcyk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY291bnRBY3RTdGF0ZW1lbnRzKGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyk6IG51bWJlciB7XG4gIHJldHVybiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoYW5hbHlzaXMpLmxlbmd0aDtcbn1cblxuLyoqXG4gKiBHZXRzIHRvcC1sZXZlbCBzdGF0ZW1lbnRzIHRoYXQgYmVsb25nIHRvIHRoZSBBY3QgcGhhc2Ugb25seS5cbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0QWN0VG9wTGV2ZWxTdGF0ZW1lbnRzKGFuYWx5c2lzKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRBY3RUb3BMZXZlbFN0YXRlbWVudHMoXG4gIGFuYWx5c2lzOiBQaWNrPFRlc3RCbG9ja0FuYWx5c2lzLCBcInN0YXRlbWVudHNcIj4sXG4pOiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl0ge1xuICByZXR1cm4gYW5hbHlzaXMuc3RhdGVtZW50cy5maWx0ZXIoXG4gICAgKHN0YXRlbWVudCkgPT5cbiAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBY3RcIikgJiYgIXN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIiksXG4gICk7XG59XG5cbi8qKlxuICogRmxhdHRlbnMgc2VjdGlvbiBjb21tZW50cy5cbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0RmxhdHRlbmVkU2VjdGlvbnMoYW5hbHlzaXMpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldEZsYXR0ZW5lZFNlY3Rpb25zKFxuICBhbmFseXNpczogUGljazxUZXN0QmxvY2tBbmFseXNpcywgXCJzZWN0aW9uQ29tbWVudHNcIj4sXG4pOiBGbGF0dGVuZWRTZWN0aW9uW10ge1xuICByZXR1cm4gYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLmZsYXRNYXAoKHNlY3Rpb25Db21tZW50KSA9PlxuICAgIHNlY3Rpb25Db21tZW50LnBoYXNlcy5tYXAoKHBoYXNlKSA9PiAoe1xuICAgICAgY29tbWVudDogc2VjdGlvbkNvbW1lbnQuY29tbWVudCxcbiAgICAgIHBoYXNlLFxuICAgIH0pKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBzdGFydCByYW5nZSBmb3IgYSBsaW5lLlxuICogQHBhcmFtIHNvdXJjZVRleHQgSW5wdXQgc291cmNlVGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBsaW5lIElucHV0IGxpbmUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQsIDIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldExpbmVTdGFydFJhbmdlKHNvdXJjZVRleHQ6IHN0cmluZywgbGluZTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XG4gIGxldCBjdXJyZW50TGluZSA9IDE7XG4gIGxldCBjdXJyZW50T2Zmc2V0ID0gMDtcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2Ygc291cmNlVGV4dCkge1xuICAgIGlmIChjdXJyZW50TGluZSA9PT0gbGluZSkge1xuICAgICAgcmV0dXJuIFtjdXJyZW50T2Zmc2V0LCBjdXJyZW50T2Zmc2V0XTtcbiAgICB9XG4gICAgaWYgKGNoYXJhY3RlciA9PT0gXCJcXG5cIikge1xuICAgICAgY3VycmVudExpbmUgKz0gMTtcbiAgICB9XG4gICAgY3VycmVudE9mZnNldCArPSAxO1xuICB9XG4gIHJldHVybiBbc291cmNlVGV4dC5sZW5ndGgsIHNvdXJjZVRleHQubGVuZ3RoXTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBuZXdsaW5lIHNlcXVlbmNlLlxuICogQHBhcmFtIHRleHQgSW5wdXQgdGV4dCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0TmV3bGluZShzb3VyY2VUZXh0KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXROZXdsaW5lKHRleHQ6IHN0cmluZyk6IFwiXFxuXCIgfCBcIlxcclxcblwiIHtcbiAgcmV0dXJuIHRleHQuaW5jbHVkZXMoXCJcXHJcXG5cIikgPyBcIlxcclxcblwiIDogXCJcXG5cIjtcbn1cblxuLyoqXG4gKiBHZXRzIHBoYXNlLWJvdW5kYXJ5IGNvbW1lbnRzLlxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMoYW5hbHlzaXMpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyhcbiAgYW5hbHlzaXM6IFBpY2s8VGVzdEJsb2NrQW5hbHlzaXMsIFwic2VjdGlvbkNvbW1lbnRzXCI+LFxuKTogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0ge1xuICByZXR1cm4gYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzLmZpbHRlcigoc2VjdGlvbkNvbW1lbnQpID0+XG4gICAgc2VjdGlvbkNvbW1lbnQucGhhc2VzLnNvbWUoXG4gICAgICAocGhhc2UpID0+IHBoYXNlID09PSBcIkFjdFwiIHx8IHBoYXNlID09PSBcIkFzc2VydFwiLFxuICAgICksXG4gICk7XG59XG5cbi8qKlxuICogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIGNvbW1lbnQuXG4gKiBAcGFyYW0gY29tbWVudFZhbHVlIElucHV0IGNvbW1lbnRWYWx1ZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0U2VjdGlvblBoYXNlcyhcIkFycmFuZ2UgJiBBY3RcIik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0U2VjdGlvblBoYXNlcyhjb21tZW50VmFsdWU6IHN0cmluZyk6IEFhYVBoYXNlW10ge1xuICBjb25zdCB0cmltbWVkQ29tbWVudCA9IGNvbW1lbnRWYWx1ZS50cmltKCk7XG4gIGlmICh0cmltbWVkQ29tbWVudC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgcGFydHMgPSB0cmltbWVkQ29tbWVudC5zcGxpdCgvXFxzKiZcXHMqL3UpO1xuICByZXR1cm4gcGFydHMuZXZlcnkoKHBhcnQpID0+IGlzQWFhUGhhc2UocGFydCkpID8gcGFydHMgOiBbXTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBhY3RpdmUgcGhhc2VzIGZvciBhIHN0YXRlbWVudC5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxuICogQHBhcmFtIHNlY3Rpb25Db21tZW50cyBJbnB1dCBzZWN0aW9uQ29tbWVudHMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldFN0YXRlbWVudFBoYXNlcyhzdGF0ZW1lbnQsIHNlY3Rpb25Db21tZW50cyk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0U3RhdGVtZW50UGhhc2VzKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQsXG4gIHNlY3Rpb25Db21tZW50czogVGVzdEJsb2NrQW5hbHlzaXNbXCJzZWN0aW9uQ29tbWVudHNcIl0sXG4pOiBBYWFQaGFzZVtdIHtcbiAgY29uc3Qgc3RhdGVtZW50TGluZSA9IHN0YXRlbWVudC5sb2M/LnN0YXJ0LmxpbmU7XG4gIGlmIChzdGF0ZW1lbnRMaW5lID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgbGV0IGN1cnJlbnRQaGFzZXM6IEFhYVBoYXNlW10gPSBbXTtcbiAgZm9yIChjb25zdCBzZWN0aW9uQ29tbWVudCBvZiBzZWN0aW9uQ29tbWVudHMpIHtcbiAgICBpZiAoc2VjdGlvbkNvbW1lbnQuY29tbWVudC5sb2Muc3RhcnQubGluZSA+IHN0YXRlbWVudExpbmUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjdXJyZW50UGhhc2VzID0gc2VjdGlvbkNvbW1lbnQucGhhc2VzO1xuICB9XG4gIHJldHVybiBjdXJyZW50UGhhc2VzO1xufVxuXG4vKipcbiAqIEdldHMgc3VwcG9ydGVkIHRlc3QgY2FsbCBtZXRhZGF0YS5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldFN1cHBvcnRlZFRlc3RDYWxsKG5vZGUpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFN1cHBvcnRlZFRlc3RDYWxsKFxuICBub2RlOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXG4pOiBTdXBwb3J0ZWRUZXN0Q2FsbCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJvb3ROYW1lID0gZ2V0VGVzdFJvb3ROYW1lKG5vZGUuY2FsbGVlKTtcbiAgaWYgKHJvb3ROYW1lICE9PSBcIml0XCIgJiYgcm9vdE5hbWUgIT09IFwidGVzdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnQgPSBub2RlLmFyZ3VtZW50cy5hdCgtMSk7XG4gIGlmIChcbiAgICBjYWxsYmFja0FyZ3VtZW50ID09PSB2b2lkIDAgfHxcbiAgICBjYWxsYmFja0FyZ3VtZW50LnR5cGUgPT09IFwiU3ByZWFkRWxlbWVudFwiIHx8XG4gICAgKGNhbGxiYWNrQXJndW1lbnQudHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXG4gICAgICBjYWxsYmFja0FyZ3VtZW50LnR5cGUgIT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCIpIHx8XG4gICAgY2FsbGJhY2tBcmd1bWVudC5ib2R5LnR5cGUgIT09IFwiQmxvY2tTdGF0ZW1lbnRcIlxuICApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjYWxsYmFjazogY2FsbGJhY2tBcmd1bWVudCBhcyBTdXBwb3J0ZWRUZXN0Q2FsbGJhY2ssXG4gICAgY2FsbEV4cHJlc3Npb246IG5vZGUgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPixcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSByb290IHRlc3QgY2FsbGVlIG5hbWUuXG4gKiBAcGFyYW0gY2FsbGVlIElucHV0IGNhbGxlZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0VGVzdFJvb3ROYW1lKGNhbGxFeHByZXNzaW9uLmNhbGxlZSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0VGVzdFJvb3ROYW1lKFxuICBjYWxsZWU6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbltcImNhbGxlZVwiXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGxldCBjdXJyZW50OiBFU1RyZWUuQ2FsbEV4cHJlc3Npb25bXCJjYWxsZWVcIl0gPSBjYWxsZWU7XG5cbiAgd2hpbGUgKFxuICAgIGN1cnJlbnQudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiIHx8XG4gICAgKGN1cnJlbnQudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiYgY3VycmVudC5vYmplY3QudHlwZSAhPT0gXCJTdXBlclwiKVxuICApIHtcbiAgICBjdXJyZW50ID1cbiAgICAgIGN1cnJlbnQudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiID8gY3VycmVudC5jYWxsZWUgOiBjdXJyZW50Lm9iamVjdDtcbiAgfVxuXG4gIGlmIChjdXJyZW50LnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XG4gICAgcmV0dXJuIGN1cnJlbnQubmFtZTtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhbiBBQUEgcGhhc2UuXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzQWFhUGhhc2UoXCJBcnJhbmdlXCIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzQWFhUGhhc2UodmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIEFhYVBoYXNlIHtcbiAgcmV0dXJuIHBoYXNlTmFtZXMuaW5jbHVkZXModmFsdWUgYXMgQWFhUGhhc2UpO1xufVxuXG4vKiogQ29tcGFuaW9uIG1hcmtlciBmb3IgdGVzdCBpc29sYXRpb24uICovXG5leHBvcnQge1xuICBhYWFQaGFzZU9yZGVyLFxuICBjb3VudEFjdFN0YXRlbWVudHMsXG4gIGdldEFjdFRvcExldmVsU3RhdGVtZW50cyxcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXG4gIGdldExpbmVTdGFydFJhbmdlLFxuICBnZXROZXdsaW5lLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXG4gIGdldFNlY3Rpb25QaGFzZXMsXG4gIGdldFN0YXRlbWVudFBoYXNlcyxcbiAgZ2V0U3VwcG9ydGVkVGVzdENhbGwsXG59O1xuIl19
@@ -86,4 +86,4 @@ function isInsideTopLevelStatement(comment, statements) {
86
86
  });
87
87
  }
88
88
  export { analyzeTestBlock };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLmFuYWx5c2lzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFVbkUscUVBQXFFO0FBQ3JFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBR3BDLENBQUM7QUFFSjs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUN2QixPQUF5QixFQUN6QixJQUEyQjtJQUUzQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzlDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0IsTUFBTSxlQUFlLEdBQ25CLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztTQUMxQixNQUFNLENBQ0wsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDdkIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakQsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzdDO1NBQ0EsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxPQUF5QjtRQUNsQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVSLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDbkIsYUFBYSxFQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQy9ELGNBQWM7UUFDZCxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDcEMsZUFBZTtRQUNmLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSTtRQUMzQixVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0MsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzlELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFNBQTBDO2dCQUNoRCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTTthQUNQLENBQUM7UUFDSixDQUFDLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FDeEIsVUFBOEI7SUFFOUIsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHlCQUF5QixDQUNoQyxPQUF1QixFQUN2QixVQUF1QztJQUV2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFFM0MsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFakQsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sV0FBVyxJQUFJLGtCQUFrQixJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQztJQUM5RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBMb2NhdGVkQ29tbWVudCwgTG9jYXRlZE5vZGUsIFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgZ2V0TmV3bGluZSxcclxuICBnZXRTZWN0aW9uUGhhc2VzLFxyXG4gIGdldFN0YXRlbWVudFBoYXNlcyxcclxuICBnZXRTdXBwb3J0ZWRUZXN0Q2FsbCxcclxufSBmcm9tIFwiLi9hbmFseXplci5hbmFseXNpcy5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IGlzTG9jYXRlZENvbW1lbnQsIGlzUmFuZ2VXaXRoaW4gfSBmcm9tIFwiLi9hbmFseXplci5zdXBlclwiO1xyXG5cclxuLyoqIFNvdXJjZSBjb21tZW50IHNoYXBlIHJldHVybmVkIGJ5IEVTTGludCBmb3Igb25lIGZpbGUuICovXHJcbnR5cGUgQW5hbHl6ZXJDb21tZW50ID0gUmV0dXJuVHlwZTxcclxuICBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXVtcImdldEFsbENvbW1lbnRzXCJdXHJcbj5bbnVtYmVyXTtcclxuXHJcbi8qKiBFU0xpbnQgc291cmNlLWNvZGUgc2VydmljZSByZWZlcmVuY2UgdXNlZCBmb3IgY29tbWVudCBjYWNoaW5nLiAqL1xyXG50eXBlIEFuYWx5emVyU291cmNlQ29kZSA9IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdO1xyXG5cclxuLyoqIE1lbW9pemVkIGNvbW1lbnQgYXJyYXlzIGtleWVkIGJ5IEVTTGludCBzb3VyY2UtY29kZSBpbnN0YW5jZXMuICovXHJcbmNvbnN0IHNvdXJjZUNvbW1lbnRzQ2FjaGUgPSBuZXcgV2Vha01hcDxcclxuICBBbmFseXplclNvdXJjZUNvZGUsXHJcbiAgcmVhZG9ubHkgQW5hbHl6ZXJDb21tZW50W11cclxuPigpO1xyXG5cclxuLyoqXHJcbiAqIEFuYWx5emVzIHN1cHBvcnRlZCBBQUEgdGVzdCBibG9ja3MuXHJcbiAqIEBwYXJhbSBjb250ZXh0IElucHV0IGNvbnRleHQgdmFsdWUuXHJcbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogYW5hbHl6ZVRlc3RCbG9jayhjb250ZXh0LCBub2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhbmFseXplVGVzdEJsb2NrKFxyXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXHJcbiAgbm9kZTogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxyXG4pOiBUZXN0QmxvY2tBbmFseXNpcyB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgdGVzdENhbGwgPSBnZXRTdXBwb3J0ZWRUZXN0Q2FsbChub2RlKTtcclxuICBpZiAodGVzdENhbGwgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHsgY2FsbGJhY2ssIGNhbGxFeHByZXNzaW9uIH0gPSB0ZXN0Q2FsbDtcclxuICBjb25zdCB7IHNvdXJjZUNvZGUgfSA9IGNvbnRleHQ7XHJcbiAgY29uc3Qgc2VjdGlvbkNvbW1lbnRzOiBUZXN0QmxvY2tBbmFseXNpc1tcInNlY3Rpb25Db21tZW50c1wiXSA9XHJcbiAgICBnZXRTb3VyY2VDb21tZW50cyhzb3VyY2VDb2RlKVxyXG4gICAgICAuZmlsdGVyKFxyXG4gICAgICAgIChjb21tZW50KSA9PlxyXG4gICAgICAgICAgaXNMb2NhdGVkQ29tbWVudChjb21tZW50KSAmJlxyXG4gICAgICAgICAgY29tbWVudC50eXBlID09PSBcIkxpbmVcIiAmJlxyXG4gICAgICAgICAgaXNSYW5nZVdpdGhpbihjb21tZW50LnJhbmdlLCBjYWxsYmFjay5ib2R5LnJhbmdlKSAmJlxyXG4gICAgICAgICAgIWlzSW5zaWRlVG9wTGV2ZWxTdGF0ZW1lbnQoY29tbWVudCwgY2FsbGJhY2suYm9keS5ib2R5KSAmJlxyXG4gICAgICAgICAgZ2V0U2VjdGlvblBoYXNlcyhjb21tZW50LnZhbHVlKS5sZW5ndGggPiAwLFxyXG4gICAgICApXHJcbiAgICAgIC5tYXAoKGNvbW1lbnQpID0+ICh7XHJcbiAgICAgICAgY29tbWVudDogY29tbWVudCBhcyBMb2NhdGVkQ29tbWVudCxcclxuICAgICAgICBwaGFzZXM6IGdldFNlY3Rpb25QaGFzZXMoY29tbWVudC52YWx1ZSksXHJcbiAgICAgIH0pKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGJvZHk6IGNhbGxiYWNrLmJvZHksXHJcbiAgICBib2R5TGluZUNvdW50OlxyXG4gICAgICBjYWxsYmFjay5ib2R5LmxvYy5lbmQubGluZSAtIGNhbGxiYWNrLmJvZHkubG9jLnN0YXJ0LmxpbmUgLSAxLFxyXG4gICAgY2FsbEV4cHJlc3Npb24sXHJcbiAgICBuZXdsaW5lOiBnZXROZXdsaW5lKHNvdXJjZUNvZGUudGV4dCksXHJcbiAgICBzZWN0aW9uQ29tbWVudHMsXHJcbiAgICBzb3VyY2VUZXh0OiBzb3VyY2VDb2RlLnRleHQsXHJcbiAgICBzdGF0ZW1lbnRzOiBjYWxsYmFjay5ib2R5LmJvZHkubWFwKChzdGF0ZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgcGhhc2VzID0gZ2V0U3RhdGVtZW50UGhhc2VzKHN0YXRlbWVudCwgc2VjdGlvbkNvbW1lbnRzKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBub2RlOiBzdGF0ZW1lbnQgYXMgTG9jYXRlZE5vZGU8RVNUcmVlLlN0YXRlbWVudD4sXHJcbiAgICAgICAgcGhhc2U6IHBoYXNlcy5hdCgtMSksXHJcbiAgICAgICAgcGhhc2VzLFxyXG4gICAgICB9O1xyXG4gICAgfSksXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgY2FjaGVkIHNvdXJjZSBjb21tZW50cyBmb3IgdGhlIGFjdGl2ZSBmaWxlLlxyXG4gKiBAcGFyYW0gc291cmNlQ29kZSBJbnB1dCBzb3VyY2VDb2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFNvdXJjZUNvbW1lbnRzKHNvdXJjZUNvZGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNvdXJjZUNvbW1lbnRzKFxyXG4gIHNvdXJjZUNvZGU6IEFuYWx5emVyU291cmNlQ29kZSxcclxuKTogcmVhZG9ubHkgQW5hbHl6ZXJDb21tZW50W10ge1xyXG4gIGNvbnN0IGNhY2hlZENvbW1lbnRzID0gc291cmNlQ29tbWVudHNDYWNoZS5nZXQoc291cmNlQ29kZSk7XHJcbiAgaWYgKGNhY2hlZENvbW1lbnRzICE9PSB2b2lkIDApIHtcclxuICAgIHJldHVybiBjYWNoZWRDb21tZW50cztcclxuICB9XHJcblxyXG4gIGNvbnN0IGxvYWRlZENvbW1lbnRzID0gc291cmNlQ29kZS5nZXRBbGxDb21tZW50cygpO1xyXG4gIHNvdXJjZUNvbW1lbnRzQ2FjaGUuc2V0KHNvdXJjZUNvZGUsIGxvYWRlZENvbW1lbnRzKTtcclxuXHJcbiAgcmV0dXJuIGxvYWRlZENvbW1lbnRzO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb21tZW50IGlzIG5lc3RlZCBpbnNpZGUgb25lIHRvcC1sZXZlbCBzdGF0ZW1lbnQgcmFuZ2UuXHJcbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnRzIElucHV0IHN0YXRlbWVudHMgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNJbnNpZGVUb3BMZXZlbFN0YXRlbWVudChjb21tZW50LCBzdGF0ZW1lbnRzKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0luc2lkZVRvcExldmVsU3RhdGVtZW50KFxyXG4gIGNvbW1lbnQ6IExvY2F0ZWRDb21tZW50LFxyXG4gIHN0YXRlbWVudHM6IHJlYWRvbmx5IEVTVHJlZS5TdGF0ZW1lbnRbXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgY29uc3QgY29tbWVudExpbmUgPSBjb21tZW50LmxvYy5zdGFydC5saW5lO1xyXG5cclxuICByZXR1cm4gc3RhdGVtZW50cy5zb21lKChzdGF0ZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHN0YXRlbWVudFN0YXJ0TGluZSA9IHN0YXRlbWVudC5sb2M/LnN0YXJ0LmxpbmU7XHJcbiAgICBjb25zdCBzdGF0ZW1lbnRFbmRMaW5lID0gc3RhdGVtZW50LmxvYz8uZW5kLmxpbmU7XHJcblxyXG4gICAgaWYgKHN0YXRlbWVudFN0YXJ0TGluZSA9PT0gdm9pZCAwIHx8IHN0YXRlbWVudEVuZExpbmUgPT09IHZvaWQgMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbW1lbnRMaW5lID49IHN0YXRlbWVudFN0YXJ0TGluZSAmJiBjb21tZW50TGluZSA8PSBzdGF0ZW1lbnRFbmRMaW5lO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgeyBhbmFseXplVGVzdEJsb2NrIH07XHJcbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYW5hbHlzaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLmFuYWx5c2lzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFVbkUscUVBQXFFO0FBQ3JFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBR3BDLENBQUM7QUFFSjs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUN2QixPQUF5QixFQUN6QixJQUEyQjtJQUUzQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQzlDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0IsTUFBTSxlQUFlLEdBQ25CLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztTQUMxQixNQUFNLENBQ0wsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDdkIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakQsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzdDO1NBQ0EsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxPQUF5QjtRQUNsQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVSLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDbkIsYUFBYSxFQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQy9ELGNBQWM7UUFDZCxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDcEMsZUFBZTtRQUNmLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSTtRQUMzQixVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0MsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzlELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFNBQTBDO2dCQUNoRCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTTthQUNQLENBQUM7UUFDSixDQUFDLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FDeEIsVUFBOEI7SUFFOUIsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXBELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHlCQUF5QixDQUNoQyxPQUF1QixFQUN2QixVQUF1QztJQUV2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFFM0MsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFakQsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sV0FBVyxJQUFJLGtCQUFrQixJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQztJQUM5RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHR5cGUgeyBMb2NhdGVkQ29tbWVudCwgTG9jYXRlZE5vZGUsIFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHtcbiAgZ2V0TmV3bGluZSxcbiAgZ2V0U2VjdGlvblBoYXNlcyxcbiAgZ2V0U3RhdGVtZW50UGhhc2VzLFxuICBnZXRTdXBwb3J0ZWRUZXN0Q2FsbCxcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYW5hbHlzaXMuaGVscGVyc1wiO1xuaW1wb3J0IHsgaXNMb2NhdGVkQ29tbWVudCwgaXNSYW5nZVdpdGhpbiB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyXCI7XG5cbi8qKiBTb3VyY2UgY29tbWVudCBzaGFwZSByZXR1cm5lZCBieSBFU0xpbnQgZm9yIG9uZSBmaWxlLiAqL1xudHlwZSBBbmFseXplckNvbW1lbnQgPSBSZXR1cm5UeXBlPFxuICBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXVtcImdldEFsbENvbW1lbnRzXCJdXG4+W251bWJlcl07XG5cbi8qKiBFU0xpbnQgc291cmNlLWNvZGUgc2VydmljZSByZWZlcmVuY2UgdXNlZCBmb3IgY29tbWVudCBjYWNoaW5nLiAqL1xudHlwZSBBbmFseXplclNvdXJjZUNvZGUgPSBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXTtcblxuLyoqIE1lbW9pemVkIGNvbW1lbnQgYXJyYXlzIGtleWVkIGJ5IEVTTGludCBzb3VyY2UtY29kZSBpbnN0YW5jZXMuICovXG5jb25zdCBzb3VyY2VDb21tZW50c0NhY2hlID0gbmV3IFdlYWtNYXA8XG4gIEFuYWx5emVyU291cmNlQ29kZSxcbiAgcmVhZG9ubHkgQW5hbHl6ZXJDb21tZW50W11cbj4oKTtcblxuLyoqXG4gKiBBbmFseXplcyBzdXBwb3J0ZWQgQUFBIHRlc3QgYmxvY2tzLlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGFuYWx5emVUZXN0QmxvY2soY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYW5hbHl6ZVRlc3RCbG9jayhcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgbm9kZTogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxuKTogVGVzdEJsb2NrQW5hbHlzaXMgfCB1bmRlZmluZWQge1xuICBjb25zdCB0ZXN0Q2FsbCA9IGdldFN1cHBvcnRlZFRlc3RDYWxsKG5vZGUpO1xuICBpZiAodGVzdENhbGwgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCB7IGNhbGxiYWNrLCBjYWxsRXhwcmVzc2lvbiB9ID0gdGVzdENhbGw7XG4gIGNvbnN0IHsgc291cmNlQ29kZSB9ID0gY29udGV4dDtcbiAgY29uc3Qgc2VjdGlvbkNvbW1lbnRzOiBUZXN0QmxvY2tBbmFseXNpc1tcInNlY3Rpb25Db21tZW50c1wiXSA9XG4gICAgZ2V0U291cmNlQ29tbWVudHMoc291cmNlQ29kZSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjb21tZW50KSA9PlxuICAgICAgICAgIGlzTG9jYXRlZENvbW1lbnQoY29tbWVudCkgJiZcbiAgICAgICAgICBjb21tZW50LnR5cGUgPT09IFwiTGluZVwiICYmXG4gICAgICAgICAgaXNSYW5nZVdpdGhpbihjb21tZW50LnJhbmdlLCBjYWxsYmFjay5ib2R5LnJhbmdlKSAmJlxuICAgICAgICAgICFpc0luc2lkZVRvcExldmVsU3RhdGVtZW50KGNvbW1lbnQsIGNhbGxiYWNrLmJvZHkuYm9keSkgJiZcbiAgICAgICAgICBnZXRTZWN0aW9uUGhhc2VzKGNvbW1lbnQudmFsdWUpLmxlbmd0aCA+IDAsXG4gICAgICApXG4gICAgICAubWFwKChjb21tZW50KSA9PiAoe1xuICAgICAgICBjb21tZW50OiBjb21tZW50IGFzIExvY2F0ZWRDb21tZW50LFxuICAgICAgICBwaGFzZXM6IGdldFNlY3Rpb25QaGFzZXMoY29tbWVudC52YWx1ZSksXG4gICAgICB9KSk7XG5cbiAgcmV0dXJuIHtcbiAgICBib2R5OiBjYWxsYmFjay5ib2R5LFxuICAgIGJvZHlMaW5lQ291bnQ6XG4gICAgICBjYWxsYmFjay5ib2R5LmxvYy5lbmQubGluZSAtIGNhbGxiYWNrLmJvZHkubG9jLnN0YXJ0LmxpbmUgLSAxLFxuICAgIGNhbGxFeHByZXNzaW9uLFxuICAgIG5ld2xpbmU6IGdldE5ld2xpbmUoc291cmNlQ29kZS50ZXh0KSxcbiAgICBzZWN0aW9uQ29tbWVudHMsXG4gICAgc291cmNlVGV4dDogc291cmNlQ29kZS50ZXh0LFxuICAgIHN0YXRlbWVudHM6IGNhbGxiYWNrLmJvZHkuYm9keS5tYXAoKHN0YXRlbWVudCkgPT4ge1xuICAgICAgY29uc3QgcGhhc2VzID0gZ2V0U3RhdGVtZW50UGhhc2VzKHN0YXRlbWVudCwgc2VjdGlvbkNvbW1lbnRzKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5vZGU6IHN0YXRlbWVudCBhcyBMb2NhdGVkTm9kZTxFU1RyZWUuU3RhdGVtZW50PixcbiAgICAgICAgcGhhc2U6IHBoYXNlcy5hdCgtMSksXG4gICAgICAgIHBoYXNlcyxcbiAgICAgIH07XG4gICAgfSksXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBjYWNoZWQgc291cmNlIGNvbW1lbnRzIGZvciB0aGUgYWN0aXZlIGZpbGUuXG4gKiBAcGFyYW0gc291cmNlQ29kZSBJbnB1dCBzb3VyY2VDb2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRTb3VyY2VDb21tZW50cyhzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRTb3VyY2VDb21tZW50cyhcbiAgc291cmNlQ29kZTogQW5hbHl6ZXJTb3VyY2VDb2RlLFxuKTogcmVhZG9ubHkgQW5hbHl6ZXJDb21tZW50W10ge1xuICBjb25zdCBjYWNoZWRDb21tZW50cyA9IHNvdXJjZUNvbW1lbnRzQ2FjaGUuZ2V0KHNvdXJjZUNvZGUpO1xuICBpZiAoY2FjaGVkQ29tbWVudHMgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBjYWNoZWRDb21tZW50cztcbiAgfVxuXG4gIGNvbnN0IGxvYWRlZENvbW1lbnRzID0gc291cmNlQ29kZS5nZXRBbGxDb21tZW50cygpO1xuICBzb3VyY2VDb21tZW50c0NhY2hlLnNldChzb3VyY2VDb2RlLCBsb2FkZWRDb21tZW50cyk7XG5cbiAgcmV0dXJuIGxvYWRlZENvbW1lbnRzO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY29tbWVudCBpcyBuZXN0ZWQgaW5zaWRlIG9uZSB0b3AtbGV2ZWwgc3RhdGVtZW50IHJhbmdlLlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEBwYXJhbSBzdGF0ZW1lbnRzIElucHV0IHN0YXRlbWVudHMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzSW5zaWRlVG9wTGV2ZWxTdGF0ZW1lbnQoY29tbWVudCwgc3RhdGVtZW50cyk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNJbnNpZGVUb3BMZXZlbFN0YXRlbWVudChcbiAgY29tbWVudDogTG9jYXRlZENvbW1lbnQsXG4gIHN0YXRlbWVudHM6IHJlYWRvbmx5IEVTVHJlZS5TdGF0ZW1lbnRbXSxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBjb21tZW50TGluZSA9IGNvbW1lbnQubG9jLnN0YXJ0LmxpbmU7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHMuc29tZSgoc3RhdGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RhcnRMaW5lID0gc3RhdGVtZW50LmxvYz8uc3RhcnQubGluZTtcbiAgICBjb25zdCBzdGF0ZW1lbnRFbmRMaW5lID0gc3RhdGVtZW50LmxvYz8uZW5kLmxpbmU7XG5cbiAgICBpZiAoc3RhdGVtZW50U3RhcnRMaW5lID09PSB2b2lkIDAgfHwgc3RhdGVtZW50RW5kTGluZSA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1lbnRMaW5lID49IHN0YXRlbWVudFN0YXJ0TGluZSAmJiBjb21tZW50TGluZSA8PSBzdGF0ZW1lbnRFbmRMaW5lO1xuICB9KTtcbn1cblxuZXhwb3J0IHsgYW5hbHl6ZVRlc3RCbG9jayB9O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.assertions.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAW9D,8DAA8D;AAC9D,UAAU,oBAAoB;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAkB7C;AAwBD;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,oBAAoB,CAqBtB;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;GAQG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAmBpE;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAExE;AAED,2CAA2C;AAC3C,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,CAAC"}
1
+ {"version":3,"file":"analyzer.assertions.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.assertions.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAY9D,8DAA8D;AAC9D,UAAU,oBAAoB;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,iBAAiB,GAC1B,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAkB7C;AAwBD;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,oBAAoB,CAqBtB;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,GAC1B,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;GAQG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQ1D;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,OAAO,CAOT;AA4BD;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CA4BpE;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,MAAM,CAAC,UAAU,GAAG,SAAS,CAY/B;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAExE;AAED,2CAA2C;AAC3C,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { getAssertOperands, getExpectOperands, getIdentifierName, hasEvaluatedAssertionActual, isAssertionCall, } from "./analyzer.assertions.operands.js";
2
+ import { getExpressionName } from "./analyzer.super.js";
2
3
  import { visitNode } from "./analyzer.super.helpers.js";
3
4
  /**
4
5
  * Collects Assert declarations.
@@ -123,6 +124,23 @@ function isActionExpression(expression) {
123
124
  unwrappedExpression?.type === "CallExpression" ||
124
125
  unwrappedExpression?.type === "NewExpression");
125
126
  }
127
+ /**
128
+ * Checks whether an assertion actual is a local collection query.
129
+ * @param expression Assertion actual expression.
130
+ * @returns True when the expression is a local collection query.
131
+ * @example
132
+ * ```typescript
133
+ * isAssertionLocalExpression({} as ESTree.Expression);
134
+ * ```
135
+ */
136
+ function isAssertionLocalExpression(expression) {
137
+ const methodName = expression?.type === "CallExpression" &&
138
+ expression.callee.type === "MemberExpression"
139
+ ? getExpressionName(expression.callee)
140
+ : void 0;
141
+ return (methodName !== void 0 &&
142
+ ["every", "filter", "find", "get", "includes", "map", "some"].includes(methodName));
143
+ }
126
144
  /**
127
145
  * Checks Assert statement validity.
128
146
  * @param statement Input statement value.
@@ -135,8 +153,14 @@ function isActionExpression(expression) {
135
153
  function isValidAssertStatement(statement) {
136
154
  if (hasAssertion(statement)) {
137
155
  const assertionExpression = getAssertionExpression(statement);
138
- return (assertionExpression === void 0 ||
139
- !hasEvaluatedAssertionActual(assertionExpression, isActionExpression));
156
+ if (assertionExpression === void 0) {
157
+ return true;
158
+ }
159
+ const operands = getExpectOperands(assertionExpression) ??
160
+ getAssertOperands(assertionExpression);
161
+ const actual = operands?.actual;
162
+ return (!hasEvaluatedAssertionActual(assertionExpression, isActionExpression) ||
163
+ isAssertionLocalExpression(actual));
140
164
  }
141
165
  if (statement.type !== "VariableDeclaration") {
142
166
  return false;
@@ -182,4 +206,4 @@ function usesPrefix(name, prefix) {
182
206
  }
183
207
  /** Companion marker for test isolation. */
184
208
  export { getAssertDeclaredIdentifiers, getAssertionIdentifiers, getStatementExpression, hasAssertion, isActionExpression, isValidAssertStatement, unwrapExpression, usesPrefix, };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBVXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsUUFBMkI7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUM5RSxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUNyQixXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFDbkIsV0FBVyxDQUFDLEVBQW9DLENBQ2pELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLFNBQTJCO0lBRTNCLElBQUksU0FBUyxD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Ozs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQVksRUFBRSxNQUE2QjtJQUM3RCxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsMkNBQTJDO0FBQzNDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsVUFBVSxHQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IExvY2F0ZWROb2RlLCBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIGdldEFzc2VydE9wZXJhbmRzLFxyXG4gIGdldEV4cGVjdE9wZXJhbmRzLFxyXG4gIGdldElkZW50aWZpZXJOYW1lLFxyXG4gIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbCxcclxuICBpc0Fzc2VydGlvbkNhbGwsXHJcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kc1wiO1xyXG5pbXBvcnQgeyB2aXNpdE5vZGUgfSBmcm9tIFwiLi9hbmFseXplci5zdXBlci5oZWxwZXJzXCI7XHJcblxyXG4vKiogSWRlbnRpZmllciBuYW1lcyBleHRyYWN0ZWQgZnJvbSBhbiBhc3NlcnRpb24gc3RhdGVtZW50LiAqL1xyXG5pbnRlcmZhY2UgQXNzZXJ0aW9uSWRlbnRpZmllcnMge1xyXG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYXMgdGhlIGFjdHVhbCB2YWx1ZS4gKi9cclxuICBhY3R1YWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvKiogSWRlbnRpZmllciB1c2VkIGFzIHRoZSBleHBlY3RlZCB2YWx1ZS4gKi9cclxuICBleHBlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgQXNzZXJ0IGRlY2xhcmF0aW9ucy5cclxuICogQHBhcmFtIGFuYWx5c2lzIElucHV0IGFuYWx5c2lzIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoYW5hbHlzaXMpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBNYXA8c3RyaW5nLCBMb2NhdGVkTm9kZTxFU1RyZWUuSWRlbnRpZmllcj4+IHtcclxuICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXJzID0gbmV3IE1hcDxzdHJpbmcsIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPj4oKTtcclxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcclxuICAgICAgc3RhdGVtZW50Lm5vZGUudHlwZSA9PT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCJcclxuICAgICkge1xyXG4gICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHN0YXRlbWVudC5ub2RlLmRlY2xhcmF0aW9ucykge1xyXG4gICAgICAgIGlmIChkZWNsYXJhdGlvbi5pZC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xyXG4gICAgICAgICAgZGVjbGFyZWRJZGVudGlmaWVycy5zZXQoXHJcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uLmlkLm5hbWUsXHJcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uLmlkIGFzIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPixcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBkZWNsYXJlZElkZW50aWZpZXJzO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgb3V0ZXIgYXNzZXJ0aW9uIGNhbGwgZXhwcmVzc2lvbiBmb3Igb25lIHN0YXRlbWVudCB3aGVuIHByZXNlbnQuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgU3RhdGVtZW50IHRvIGluc3BlY3QuXHJcbiAqIEByZXR1cm5zIEFzc2VydGlvbiBjYWxsIGV4cHJlc3Npb24gd2hlbiB0aGUgc3RhdGVtZW50IGlzIGV4cHJlc3Npb24tYmFzZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICogdm9pZCBleHByZXNzaW9uO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydGlvbkV4cHJlc3Npb24oXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4pOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBleHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihzdGF0ZW1lbnQuZXhwcmVzc2lvbik7XHJcblxyXG4gIHJldHVybiBleHByZXNzaW9uPy50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgPyBleHByZXNzaW9uIDogdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogRXh0cmFjdHMgYXNzZXJ0aW9uIGlkZW50aWZpZXJzLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRBc3NlcnRpb25JZGVudGlmaWVycyhzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEFzc2VydGlvbklkZW50aWZpZXJzKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuKTogQXNzZXJ0aW9uSWRlbnRpZmllcnMge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiB7IGFjdHVhbDogdm9pZCAwLCBleHBlY3RlZDogdm9pZCAwIH07XHJcbiAgfVxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKHN0YXRlbWVudC5leHByZXNzaW9uKTtcclxuICBpZiAoZXhwcmVzc2lvbj8udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XHJcbiAgICByZXR1cm4geyBhY3R1YWw6IHZvaWQgMCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZXhwZWN0T3BlcmFuZHMgPSBnZXRFeHBlY3RPcGVyYW5kcyhleHByZXNzaW9uKTtcclxuICBpZiAoZXhwZWN0T3BlcmFuZHMgIT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShleHBlY3RPcGVyYW5kcy5hY3R1YWwpLFxyXG4gICAgICBleHBlY3RlZDogZ2V0SWRlbnRpZmllck5hbWUoZXhwZWN0T3BlcmFuZHMuZXhwZWN0ZWQpLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29uc3QgYXNzZXJ0T3BlcmFuZHMgPSBnZXRBc3NlcnRPcGVyYW5kcyhleHByZXNzaW9uKTtcclxuICByZXR1cm4ge1xyXG4gICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShhc3NlcnRPcGVyYW5kcz8uYWN0dWFsKSxcclxuICAgIGV4cGVjdGVkOiBnZXRJZGVudGlmaWVyTmFtZShhc3NlcnRPcGVyYW5kcz8uZXhwZWN0ZWQpLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgc3RhdGVtZW50IGV4cHJlc3Npb24uXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uKFxyXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcclxuKTogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiBzdGF0ZW1lbnQuZXhwcmVzc2lvbjtcclxuICB9XHJcbiAgaWYgKFxyXG4gICAgc3RhdGVtZW50LnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiICYmXHJcbiAgICBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMVxyXG4gICkge1xyXG4gICAgY29uc3QgW2RlY2xhcmF0aW9uXSA9IHN0YXRlbWVudC5kZWNsYXJhdGlvbnM7XHJcbiAgICByZXR1cm4gZGVjbGFyYXRpb24/LmluaXQgYXMgRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGFzc2VydGlvbnMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcclxuICBsZXQgaXNBc3NlcnRpb25Gb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiYgaXNBc3NlcnRpb25DYWxsKG5vZGUpKSB7XHJcbiAgICAgIGlzQXNzZXJ0aW9uRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBpc0Fzc2VydGlvbkZvdW5kO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBhY3Rpb24gZXhwcmVzc2lvbnMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzQWN0aW9uRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogYm9vbGVhbiB7XHJcbiAgY29uc3QgdW53cmFwcGVkRXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAgcmV0dXJuIChcclxuICAgIHVud3JhcHBlZEV4cHJlc3Npb24/LnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIgfHxcclxuICAgIHVud3JhcHBlZEV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgdW53cmFwcGVkRXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIEFzc2VydCBzdGF0ZW1lbnQgdmFsaWRpdHkuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGlmIChoYXNBc3NlcnRpb24oc3RhdGVtZW50KSkge1xyXG4gICAgY29uc3QgYXNzZXJ0aW9uRXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhc3NlcnRpb25FeHByZXNzaW9uID09PSB2b2lkIDAgfHxcclxuICAgICAgIWhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChhc3NlcnRpb25FeHByZXNzaW9uLCBpc0FjdGlvbkV4cHJlc3Npb24pXHJcbiAgICApO1xyXG4gIH1cclxuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3RhdGVtZW50LmRlY2xhcmF0aW9ucy5ldmVyeSgoZGVjbGFyYXRpb24pID0+IHtcclxuICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICFpc0FjdGlvbkV4cHJlc3Npb24odW53cmFwRXhwcmVzc2lvbihkZWNsYXJhdGlvbi5pbml0KSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVbndyYXBzIG5lc3RlZCBleHByZXNzaW9ucy5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB1bndyYXBFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHVud3JhcEV4cHJlc3Npb24oXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQsXHJcbik6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcclxuICBsZXQgY3VycmVudCA9IGV4cHJlc3Npb247XHJcblxyXG4gIHdoaWxlIChjdXJyZW50Py50eXBlID09PSBcIkNoYWluRXhwcmVzc2lvblwiKSB7XHJcbiAgICBjdXJyZW50ID0gY3VycmVudC5leHByZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgaWYgKGN1cnJlbnQ/LnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiBjdXJyZW50LmFyZ3VtZW50O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgQUFBIG5hbWluZyBwcmVmaXhlcy5cclxuICogQHBhcmFtIG5hbWUgSW5wdXQgbmFtZSB2YWx1ZS5cclxuICogQHBhcmFtIHByZWZpeCBJbnB1dCBwcmVmaXggdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdXNlc1ByZWZpeChcImFjdHVhbFJlc3VsdFwiLCBcImFjdHVhbFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiB1c2VzUHJlZml4KG5hbWU6IHN0cmluZywgcHJlZml4OiBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIG5hbWUgPT09IHByZWZpeCB8fCBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KTtcclxufVxyXG5cclxuLyoqIENvbXBhbmlvbiBtYXJrZXIgZm9yIHRlc3QgaXNvbGF0aW9uLiAqL1xyXG5leHBvcnQge1xyXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXHJcbiAgZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMsXHJcbiAgZ2V0U3RhdGVtZW50RXhwcmVzc2lvbixcclxuICBoYXNBc3NlcnRpb24sXHJcbiAgaXNBY3Rpb25FeHByZXNzaW9uLFxyXG4gIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQsXHJcbiAgdW53cmFwRXhwcmVzc2lvbixcclxuICB1c2VzUHJlZml4LFxyXG59O1xyXG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5hc3NlcnRpb25zLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBVXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsUUFBMkI7SUFFM0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUM5RSxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsRUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUNyQixXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksRUFDbkIsV0FBVyxDQUFDLEVBQW9DLENBQ2pELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztB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dCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHR5cGUgeyBMb2NhdGVkTm9kZSwgVGVzdEJsb2NrQW5hbHlzaXMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQge1xuICBnZXRBc3NlcnRPcGVyYW5kcyxcbiAgZ2V0RXhwZWN0T3BlcmFuZHMsXG4gIGdldElkZW50aWZpZXJOYW1lLFxuICBoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwsXG4gIGlzQXNzZXJ0aW9uQ2FsbCxcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kc1wiO1xuaW1wb3J0IHsgZ2V0RXhwcmVzc2lvbk5hbWUgfSBmcm9tIFwiLi9hbmFseXplci5zdXBlclwiO1xuaW1wb3J0IHsgdmlzaXROb2RlIH0gZnJvbSBcIi4vYW5hbHl6ZXIuc3VwZXIuaGVscGVyc1wiO1xuXG4vKiogSWRlbnRpZmllciBuYW1lcyBleHRyYWN0ZWQgZnJvbSBhbiBhc3NlcnRpb24gc3RhdGVtZW50LiAqL1xuaW50ZXJmYWNlIEFzc2VydGlvbklkZW50aWZpZXJzIHtcbiAgLyoqIElkZW50aWZpZXIgdXNlZCBhcyB0aGUgYWN0dWFsIHZhbHVlLiAqL1xuICBhY3R1YWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqIElkZW50aWZpZXIgdXNlZCBhcyB0aGUgZXhwZWN0ZWQgdmFsdWUuICovXG4gIGV4cGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgQXNzZXJ0IGRlY2xhcmF0aW9ucy5cbiAqIEBwYXJhbSBhbmFseXNpcyBJbnB1dCBhbmFseXNpcyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyhhbmFseXNpcyk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyhcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxuKTogTWFwPHN0cmluZywgTG9jYXRlZE5vZGU8RVNUcmVlLklkZW50aWZpZXI+PiB7XG4gIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBuZXcgTWFwPHN0cmluZywgTG9jYXRlZE5vZGU8RVNUcmVlLklkZW50aWZpZXI+PigpO1xuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgaWYgKFxuICAgICAgc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFzc2VydFwiKSAmJlxuICAgICAgc3RhdGVtZW50Lm5vZGUudHlwZSA9PT0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCJcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2Ygc3RhdGVtZW50Lm5vZGUuZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIGlmIChkZWNsYXJhdGlvbi5pZC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xuICAgICAgICAgIGRlY2xhcmVkSWRlbnRpZmllcnMuc2V0KFxuICAgICAgICAgICAgZGVjbGFyYXRpb24uaWQubmFtZSxcbiAgICAgICAgICAgIGRlY2xhcmF0aW9uLmlkIGFzIExvY2F0ZWROb2RlPEVTVHJlZS5JZGVudGlmaWVyPixcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWNsYXJlZElkZW50aWZpZXJzO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIG91dGVyIGFzc2VydGlvbiBjYWxsIGV4cHJlc3Npb24gZm9yIG9uZSBzdGF0ZW1lbnQgd2hlbiBwcmVzZW50LlxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIEFzc2VydGlvbiBjYWxsIGV4cHJlc3Npb24gd2hlbiB0aGUgc3RhdGVtZW50IGlzIGV4cHJlc3Npb24tYmFzZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcbiAqIHZvaWQgZXhwcmVzc2lvbjtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRBc3NlcnRpb25FeHByZXNzaW9uKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQsXG4pOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKHN0YXRlbWVudC5leHByZXNzaW9uKTtcblxuICByZXR1cm4gZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiID8gZXhwcmVzc2lvbiA6IHZvaWQgMDtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBhc3NlcnRpb24gaWRlbnRpZmllcnMuXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0QXNzZXJ0aW9uSWRlbnRpZmllcnMoc3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRBc3NlcnRpb25JZGVudGlmaWVycyhcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxuKTogQXNzZXJ0aW9uSWRlbnRpZmllcnMge1xuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiKSB7XG4gICAgcmV0dXJuIHsgYWN0dWFsOiB2b2lkIDAsIGV4cGVjdGVkOiB2b2lkIDAgfTtcbiAgfVxuICBjb25zdCBleHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihzdGF0ZW1lbnQuZXhwcmVzc2lvbik7XG4gIGlmIChleHByZXNzaW9uPy50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4geyBhY3R1YWw6IHZvaWQgMCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xuICB9XG5cbiAgY29uc3QgZXhwZWN0T3BlcmFuZHMgPSBnZXRFeHBlY3RPcGVyYW5kcyhleHByZXNzaW9uKTtcbiAgaWYgKGV4cGVjdE9wZXJhbmRzICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShleHBlY3RPcGVyYW5kcy5hY3R1YWwpLFxuICAgICAgZXhwZWN0ZWQ6IGdldElkZW50aWZpZXJOYW1lKGV4cGVjdE9wZXJhbmRzLmV4cGVjdGVkKSxcbiAgICB9O1xuICB9XG4gIGNvbnN0IGFzc2VydE9wZXJhbmRzID0gZ2V0QXNzZXJ0T3BlcmFuZHMoZXhwcmVzc2lvbik7XG4gIHJldHVybiB7XG4gICAgYWN0dWFsOiBnZXRJZGVudGlmaWVyTmFtZShhc3NlcnRPcGVyYW5kcz8uYWN0dWFsKSxcbiAgICBleHBlY3RlZDogZ2V0SWRlbnRpZmllck5hbWUoYXNzZXJ0T3BlcmFuZHM/LmV4cGVjdGVkKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgc3RhdGVtZW50IGV4cHJlc3Npb24uXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0U3RhdGVtZW50RXhwcmVzc2lvbihzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXRlbWVudEV4cHJlc3Npb24oXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcbik6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgIHJldHVybiBzdGF0ZW1lbnQuZXhwcmVzc2lvbjtcbiAgfVxuICBpZiAoXG4gICAgc3RhdGVtZW50LnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiICYmXG4gICAgc3RhdGVtZW50LmRlY2xhcmF0aW9ucy5sZW5ndGggPT09IDFcbiAgKSB7XG4gICAgY29uc3QgW2RlY2xhcmF0aW9uXSA9IHN0YXRlbWVudC5kZWNsYXJhdGlvbnM7XG4gICAgcmV0dXJuIGRlY2xhcmF0aW9uPy5pbml0IGFzIEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiB2b2lkIDA7XG59XG5cbi8qKlxuICogQ2hlY2tzIGZvciBhc3NlcnRpb25zLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgbGV0IGlzQXNzZXJ0aW9uRm91bmQgPSBmYWxzZTtcbiAgdmlzaXROb2RlKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiYgaXNBc3NlcnRpb25DYWxsKG5vZGUpKSB7XG4gICAgICBpc0Fzc2VydGlvbkZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gaXNBc3NlcnRpb25Gb3VuZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIGFjdGlvbiBleHByZXNzaW9ucy5cbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzQWN0aW9uRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc0FjdGlvbkV4cHJlc3Npb24oXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHVud3JhcHBlZEV4cHJlc3Npb24gPSB1bndyYXBFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuICByZXR1cm4gKFxuICAgIHVud3JhcHBlZEV4cHJlc3Npb24/LnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIgfHxcbiAgICB1bndyYXBwZWRFeHByZXNzaW9uPy50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcbiAgICB1bndyYXBwZWRFeHByZXNzaW9uPy50eXBlID09PSBcIk5ld0V4cHJlc3Npb25cIlxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGFzc2VydGlvbiBhY3R1YWwgaXMgYSBsb2NhbCBjb2xsZWN0aW9uIHF1ZXJ5LlxuICogQHBhcmFtIGV4cHJlc3Npb24gQXNzZXJ0aW9uIGFjdHVhbCBleHByZXNzaW9uLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBleHByZXNzaW9uIGlzIGEgbG9jYWwgY29sbGVjdGlvbiBxdWVyeS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0Fzc2VydGlvbkxvY2FsRXhwcmVzc2lvbih7fSBhcyBFU1RyZWUuRXhwcmVzc2lvbik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNBc3NlcnRpb25Mb2NhbEV4cHJlc3Npb24oXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1ldGhvZE5hbWUgPVxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiXG4gICAgICA/IGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24uY2FsbGVlKVxuICAgICAgOiB2b2lkIDA7XG5cbiAgcmV0dXJuIChcbiAgICBtZXRob2ROYW1lICE9PSB2b2lkIDAgJiZcbiAgICBbXCJldmVyeVwiLCBcImZpbHRlclwiLCBcImZpbmRcIiwgXCJnZXRcIiwgXCJpbmNsdWRlc1wiLCBcIm1hcFwiLCBcInNvbWVcIl0uaW5jbHVkZXMoXG4gICAgICBtZXRob2ROYW1lLFxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgQXNzZXJ0IHN0YXRlbWVudCB2YWxpZGl0eS5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50KHN0YXRlbWVudCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZEFzc2VydFN0YXRlbWVudChzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgaWYgKGhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpKSB7XG4gICAgY29uc3QgYXNzZXJ0aW9uRXhwcmVzc2lvbiA9IGdldEFzc2VydGlvbkV4cHJlc3Npb24oc3RhdGVtZW50KTtcblxuICAgIGlmIChhc3NlcnRpb25FeHByZXNzaW9uID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG9wZXJhbmRzID1cbiAgICAgIGdldEV4cGVjdE9wZXJhbmRzKGFzc2VydGlvbkV4cHJlc3Npb24pID8/XG4gICAgICBnZXRBc3NlcnRPcGVyYW5kcyhhc3NlcnRpb25FeHByZXNzaW9uKTtcbiAgICBjb25zdCBhY3R1YWwgPSBvcGVyYW5kcz8uYWN0dWFsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICFoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwoYXNzZXJ0aW9uRXhwcmVzc2lvbiwgaXNBY3Rpb25FeHByZXNzaW9uKSB8fFxuICAgICAgaXNBc3NlcnRpb25Mb2NhbEV4cHJlc3Npb24oYWN0dWFsKVxuICAgICk7XG4gIH1cbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmV2ZXJ5KChkZWNsYXJhdGlvbikgPT4ge1xuICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuICFpc0FjdGlvbkV4cHJlc3Npb24odW53cmFwRXhwcmVzc2lvbihkZWNsYXJhdGlvbi5pbml0KSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFVud3JhcHMgbmVzdGVkIGV4cHJlc3Npb25zLlxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiB1bndyYXBFeHByZXNzaW9uKFxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcbik6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcbiAgbGV0IGN1cnJlbnQgPSBleHByZXNzaW9uO1xuXG4gIHdoaWxlIChjdXJyZW50Py50eXBlID09PSBcIkNoYWluRXhwcmVzc2lvblwiKSB7XG4gICAgY3VycmVudCA9IGN1cnJlbnQuZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGlmIChjdXJyZW50Py50eXBlID09PSBcIkF3YWl0RXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGN1cnJlbnQuYXJndW1lbnQ7XG4gIH1cblxuICByZXR1cm4gY3VycmVudDtcbn1cblxuLyoqXG4gKiBDaGVja3MgQUFBIG5hbWluZyBwcmVmaXhlcy5cbiAqIEBwYXJhbSBuYW1lIElucHV0IG5hbWUgdmFsdWUuXG4gKiBAcGFyYW0gcHJlZml4IElucHV0IHByZWZpeCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogdXNlc1ByZWZpeChcImFjdHVhbFJlc3VsdFwiLCBcImFjdHVhbFwiKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiB1c2VzUHJlZml4KG5hbWU6IHN0cmluZywgcHJlZml4OiBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiKTogYm9vbGVhbiB7XG4gIHJldHVybiBuYW1lID09PSBwcmVmaXggfHwgbmFtZS5zdGFydHNXaXRoKHByZWZpeCk7XG59XG5cbi8qKiBDb21wYW5pb24gbWFya2VyIGZvciB0ZXN0IGlzb2xhdGlvbi4gKi9cbmV4cG9ydCB7XG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxuICBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uLFxuICBoYXNBc3NlcnRpb24sXG4gIGlzQWN0aW9uRXhwcmVzc2lvbixcbiAgaXNWYWxpZEFzc2VydFN0YXRlbWVudCxcbiAgdW53cmFwRXhwcmVzc2lvbixcbiAgdXNlc1ByZWZpeCxcbn07XG4iXX0=
@@ -100,4 +100,4 @@ function isAssertionCall(node) {
100
100
  isAssertionCall(node.callee.object));
101
101
  }
102
102
  export { getAssertOperands, getExpectOperands, getIdentifierName, hasEvaluatedAssertionActual, isAssertionCall, };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQWlDO0lBRWpDLElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQzFDLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFDRSxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDaEMsUUFBUSxFQUFFLElBQUksS0FBSyxlQUFlLEVBQ2xDLENBQUM7WUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUFpQztJQUVqQyxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNuQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDdEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDckMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0QyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFDbEQsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssZUFBZTtZQUN2QyxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF5QztJQUV6QyxPQUFPLFVBQVUsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLFVBQWlDLEVBQ2pDLGtCQUEwRTtJQUUxRSxNQUFNLFFBQVEsR0FDWixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRSxPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQUMsSUFBMkI7SUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNwQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7UUFDNUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XHJcblxyXG4vKiogUmF3IGFzc2VydGlvbiBvcGVyYW5kcyBleHRyYWN0ZWQgZnJvbSBhIGNhbGwgZXhwcmVzc2lvbi4gKi9cclxuaW50ZXJmYWNlIEFzc2VydGlvbk9wZXJhbmRzIHtcclxuICAvKiogRXhwcmVzc2lvbiB1c2VkIGFzIHRoZSBhY3R1YWwgb3BlcmFuZC4gKi9cclxuICBhY3R1YWw6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkO1xyXG4gIC8qKiBFeHByZXNzaW9uIHVzZWQgYXMgdGhlIGV4cGVjdGVkIG9wZXJhbmQuICovXHJcbiAgZXhwZWN0ZWQ6IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhc3NlcnQgb3BlcmFuZHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0QXNzZXJ0T3BlcmFuZHMoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QXNzZXJ0T3BlcmFuZHMoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxyXG4pOiBBc3NlcnRpb25PcGVyYW5kcyB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0Lm5hbWUgPT09IFwiYXNzZXJ0XCJcclxuICApIHtcclxuICAgIGNvbnN0IFthY3R1YWwsIGV4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG4gICAgaWYgKFxyXG4gICAgICBhY3R1YWw/LnR5cGUgIT09IFwiU3ByZWFkRWxlbWVudFwiICYmXHJcbiAgICAgIGV4cGVjdGVkPy50eXBlICE9PSBcIlNwcmVhZEVsZW1lbnRcIlxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB7IGFjdHVhbCwgZXhwZWN0ZWQgfTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgZXhwZWN0IG9wZXJhbmRzLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cGVjdE9wZXJhbmRzKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcclxuKTogQXNzZXJ0aW9uT3BlcmFuZHMgfCB1bmRlZmluZWQge1xyXG4gIGlmIChcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5uYW1lID09PSBcImV4cGVjdFwiXHJcbiAgKSB7XHJcbiAgICBjb25zdCBbYWN0dWFsXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG4gICAgcmV0dXJuIGFjdHVhbD8udHlwZSA9PT0gXCJTcHJlYWRFbGVtZW50XCJcclxuICAgICAgPyB7IGFjdHVhbDogdm9pZCAwLCBleHBlY3RlZDogdm9pZCAwIH1cclxuICAgICAgOiB7IGFjdHVhbCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCJcclxuICApIHtcclxuICAgIGNvbnN0IG5lc3RlZE9wZXJhbmRzID0gZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0KTtcclxuICAgIGlmIChuZXN0ZWRPcGVyYW5kcyA9PT0gdm9pZCAwKSB7XHJcbiAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2V4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xyXG5cclxuICAgIHJldHVybiBleHBlY3RlZD8udHlwZSA9PT0gXCJTcHJlYWRFbGVtZW50XCJcclxuICAgICAgPyBuZXN0ZWRPcGVyYW5kc1xyXG4gICAgICA6IHsgYWN0dWFsOiBuZXN0ZWRPcGVyYW5kcy5hY3R1YWwsIGV4cGVjdGVkIH07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhbiBpZGVudGlmaWVyIG5hbWUuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0SWRlbnRpZmllck5hbWUoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SWRlbnRpZmllck5hbWUoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQsXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiSWRlbnRpZmllclwiID8gZXhwcmVzc2lvbi5uYW1lIDogdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gYXNzZXJ0aW9uIGV2YWx1YXRlcyB0aGUgYWN0dWFsIG9wZXJhbmQgaW5saW5lLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBBc3NlcnRpb24gY2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXHJcbiAqIEBwYXJhbSBpc0FjdGlvbkV4cHJlc3Npb24gUHJlZGljYXRlIHRoYXQgaWRlbnRpZmllcyBhY3Rpb24tbGlrZSBleHByZXNzaW9ucy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBhc3NlcnRpb24gYWN0dWFsIG9wZXJhbmQgcGVyZm9ybXMgYWN0aW9uLWxpa2Ugd29yay5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBhY3R1YWwgPSBoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwoZXhwcmVzc2lvbiwgKCkgPT4gdHJ1ZSk7XHJcbiAqIHZvaWQgYWN0dWFsO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXHJcbiAgaXNBY3Rpb25FeHByZXNzaW9uOiAoZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQpID0+IGJvb2xlYW4sXHJcbik6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IG9wZXJhbmRzID1cclxuICAgIGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24pID8/IGdldEFzc2VydE9wZXJhbmRzKGV4cHJlc3Npb24pO1xyXG5cclxuICByZXR1cm4gb3BlcmFuZHMgIT09IHZvaWQgMCAmJiBpc0FjdGlvbkV4cHJlc3Npb24ob3BlcmFuZHMuYWN0dWFsKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYXNzZXJ0aW9uIGNhbGxzLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzQXNzZXJ0aW9uQ2FsbChub2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0Fzc2VydGlvbkNhbGwobm9kZTogRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XHJcbiAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gW1wiYXNzZXJ0XCIsIFwiYXNzZXJ0VHlwZVwiLCBcImV4cGVjdFwiLCBcImV4cGVjdFR5cGVPZlwiXS5pbmNsdWRlcyhcclxuICAgICAgbm9kZS5jYWxsZWUubmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gXCJNZW1iZXJFeHByZXNzaW9uXCIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgbm9kZS5jYWxsZWUub2JqZWN0Lm5hbWUgPT09IFwiYXNzZXJ0XCJcclxuICApIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIG5vZGUuY2FsbGVlLm9iamVjdC50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcclxuICAgIGlzQXNzZXJ0aW9uQ2FsbChub2RlLmNhbGxlZS5vYmplY3QpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBnZXRBc3NlcnRPcGVyYW5kcyxcclxuICBnZXRFeHBlY3RPcGVyYW5kcyxcclxuICBnZXRJZGVudGlmaWVyTmFtZSxcclxuICBoYXNFdmFsdWF0ZWRBc3NlcnRpb25BY3R1YWwsXHJcbiAgaXNBc3NlcnRpb25DYWxsLFxyXG59O1xyXG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuYXNzZXJ0aW9ucy5vcGVyYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQWlDO0lBRWpDLElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQzFDLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFDRSxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDaEMsUUFBUSxFQUFFLElBQUksS0FBSyxlQUFlLEVBQ2xDLENBQUM7WUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUFpQztJQUVqQyxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDdkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNuQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDdEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxLQUFLLGVBQWU7WUFDckMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN0QyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ0UsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFDbEQsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsSUFBSSxjQUFjLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUV4QyxPQUFPLFFBQVEsRUFBRSxJQUFJLEtBQUssZUFBZTtZQUN2QyxDQUFDLENBQUMsY0FBYztZQUNoQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF5QztJQUV6QyxPQUFPLFVBQVUsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsMkJBQTJCLENBQ2xDLFVBQWlDLEVBQ2pDLGtCQUEwRTtJQUUxRSxNQUFNLFFBQVEsR0FDWixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRSxPQUFPLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxlQUFlLENBQUMsSUFBMkI7SUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUNwQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7UUFDNUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLDJCQUEyQixFQUMzQixlQUFlLEdBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBSYXcgYXNzZXJ0aW9uIG9wZXJhbmRzIGV4dHJhY3RlZCBmcm9tIGEgY2FsbCBleHByZXNzaW9uLiAqL1xuaW50ZXJmYWNlIEFzc2VydGlvbk9wZXJhbmRzIHtcbiAgLyoqIEV4cHJlc3Npb24gdXNlZCBhcyB0aGUgYWN0dWFsIG9wZXJhbmQuICovXG4gIGFjdHVhbDogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQ7XG4gIC8qKiBFeHByZXNzaW9uIHVzZWQgYXMgdGhlIGV4cGVjdGVkIG9wZXJhbmQuICovXG4gIGV4cGVjdGVkOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXRzIGFzc2VydCBvcGVyYW5kcy5cbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldEFzc2VydE9wZXJhbmRzKGV4cHJlc3Npb24pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldEFzc2VydE9wZXJhbmRzKFxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24sXG4pOiBBc3NlcnRpb25PcGVyYW5kcyB8IHVuZGVmaW5lZCB7XG4gIGlmIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC5uYW1lID09PSBcImFzc2VydFwiXG4gICkge1xuICAgIGNvbnN0IFthY3R1YWwsIGV4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xuICAgIGlmIChcbiAgICAgIGFjdHVhbD8udHlwZSAhPT0gXCJTcHJlYWRFbGVtZW50XCIgJiZcbiAgICAgIGV4cGVjdGVkPy50eXBlICE9PSBcIlNwcmVhZEVsZW1lbnRcIlxuICAgICkge1xuICAgICAgcmV0dXJuIHsgYWN0dWFsLCBleHBlY3RlZCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdm9pZCAwO1xufVxuXG4vKipcbiAqIEdldHMgZXhwZWN0IG9wZXJhbmRzLlxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0RXhwZWN0T3BlcmFuZHMoXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbixcbik6IEFzc2VydGlvbk9wZXJhbmRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUubmFtZSA9PT0gXCJleHBlY3RcIlxuICApIHtcbiAgICBjb25zdCBbYWN0dWFsXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xuICAgIHJldHVybiBhY3R1YWw/LnR5cGUgPT09IFwiU3ByZWFkRWxlbWVudFwiXG4gICAgICA/IHsgYWN0dWFsOiB2b2lkIDAsIGV4cGVjdGVkOiB2b2lkIDAgfVxuICAgICAgOiB7IGFjdHVhbCwgZXhwZWN0ZWQ6IHZvaWQgMCB9O1xuICB9XG5cbiAgaWYgKFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIlxuICApIHtcbiAgICBjb25zdCBuZXN0ZWRPcGVyYW5kcyA9IGdldEV4cGVjdE9wZXJhbmRzKGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdCk7XG4gICAgaWYgKG5lc3RlZE9wZXJhbmRzID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgY29uc3QgW2V4cGVjdGVkXSA9IGV4cHJlc3Npb24uYXJndW1lbnRzO1xuXG4gICAgcmV0dXJuIGV4cGVjdGVkPy50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIlxuICAgICAgPyBuZXN0ZWRPcGVyYW5kc1xuICAgICAgOiB7IGFjdHVhbDogbmVzdGVkT3BlcmFuZHMuYWN0dWFsLCBleHBlY3RlZCB9O1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn1cblxuLyoqXG4gKiBHZXRzIGFuIGlkZW50aWZpZXIgbmFtZS5cbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldElkZW50aWZpZXJOYW1lKGV4cHJlc3Npb24pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldElkZW50aWZpZXJOYW1lKFxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBleHByZXNzaW9uPy50eXBlID09PSBcIklkZW50aWZpZXJcIiA/IGV4cHJlc3Npb24ubmFtZSA6IHZvaWQgMDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBhc3NlcnRpb24gZXZhbHVhdGVzIHRoZSBhY3R1YWwgb3BlcmFuZCBpbmxpbmUuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBBc3NlcnRpb24gY2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gaXNBY3Rpb25FeHByZXNzaW9uIFByZWRpY2F0ZSB0aGF0IGlkZW50aWZpZXMgYWN0aW9uLWxpa2UgZXhwcmVzc2lvbnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGFzc2VydGlvbiBhY3R1YWwgb3BlcmFuZCBwZXJmb3JtcyBhY3Rpb24tbGlrZSB3b3JrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFjdHVhbCA9IGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChleHByZXNzaW9uLCAoKSA9PiB0cnVlKTtcbiAqIHZvaWQgYWN0dWFsO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbChcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uLFxuICBpc0FjdGlvbkV4cHJlc3Npb246IChleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBvcGVyYW5kcyA9XG4gICAgZ2V0RXhwZWN0T3BlcmFuZHMoZXhwcmVzc2lvbikgPz8gZ2V0QXNzZXJ0T3BlcmFuZHMoZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIG9wZXJhbmRzICE9PSB2b2lkIDAgJiYgaXNBY3Rpb25FeHByZXNzaW9uKG9wZXJhbmRzLmFjdHVhbCk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGZvciBhc3NlcnRpb24gY2FsbHMuXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0Fzc2VydGlvbkNhbGwobm9kZSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNBc3NlcnRpb25DYWxsKG5vZGU6IEVTVHJlZS5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICBpZiAobm9kZS5jYWxsZWUudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICByZXR1cm4gW1wiYXNzZXJ0XCIsIFwiYXNzZXJ0VHlwZVwiLCBcImV4cGVjdFwiLCBcImV4cGVjdFR5cGVPZlwiXS5pbmNsdWRlcyhcbiAgICAgIG5vZGUuY2FsbGVlLm5hbWUsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSBcIk1lbWJlckV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICBub2RlLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICBub2RlLmNhbGxlZS5vYmplY3QubmFtZSA9PT0gXCJhc3NlcnRcIlxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgbm9kZS5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxuICAgIGlzQXNzZXJ0aW9uQ2FsbChub2RlLmNhbGxlZS5vYmplY3QpXG4gICk7XG59XG5cbmV4cG9ydCB7XG4gIGdldEFzc2VydE9wZXJhbmRzLFxuICBnZXRFeHBlY3RPcGVyYW5kcyxcbiAgZ2V0SWRlbnRpZmllck5hbWUsXG4gIGhhc0V2YWx1YXRlZEFzc2VydGlvbkFjdHVhbCxcbiAgaXNBc3NlcnRpb25DYWxsLFxufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.classification.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.classification.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuB7C;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAwB3D;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQtD;AAED;;;;;;;;;GASG;AACH,iBAAS,yBAAyB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAepE;AAED;;;;;;;;GAQG;AACH,iBAAS,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAuBzD;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAUtE;AAwBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAYlE;AA8BD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"analyzer.classification.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.classification.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuB7C;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAwB3D;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAQtD;AAED;;;;;;;;;GASG;AACH,iBAAS,yBAAyB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAOT;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAepE;AAED;;;;;;;;GAQG;AACH,iBAAS,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAuBzD;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAkCtE;AAwBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAkBlE;AA8BD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,GACrB,CAAC"}
@@ -130,9 +130,28 @@ function isMeaningfulActStatement(statement) {
130
130
  if (expression === void 0) {
131
131
  return false;
132
132
  }
133
- return (isActionExpression(expression) &&
134
- !isUtilityLikeExpression(expression) &&
135
- !hasAssertion(statement));
133
+ if (hasAssertion(statement)) {
134
+ return false;
135
+ }
136
+ if (isActionExpression(expression)) {
137
+ if (statement.type === "VariableDeclaration" &&
138
+ expression.type === "NewExpression") {
139
+ return false;
140
+ }
141
+ return !isUtilityLikeExpression(expression);
142
+ }
143
+ if (statement.type !== "VariableDeclaration" ||
144
+ expression.type !== "ObjectExpression") {
145
+ return false;
146
+ }
147
+ let hasMeaningfulAction = false;
148
+ visitStatementWithoutDeferredBodies(statement, (node) => {
149
+ if ((node.type === "CallExpression" || node.type === "NewExpression") &&
150
+ !isUtilityLikeExpression(node)) {
151
+ hasMeaningfulAction = true;
152
+ }
153
+ });
154
+ return hasMeaningfulAction;
136
155
  }
137
156
  /**
138
157
  * Checks for rule create calls.
@@ -167,6 +186,12 @@ function isSetupLikeStatement(statement) {
167
186
  return true;
168
187
  }
169
188
  const init = unwrapExpression(declaration.init);
189
+ if (init === void 0) {
190
+ return true;
191
+ }
192
+ if (init.type === "NewExpression") {
193
+ return true;
194
+ }
170
195
  return !isActionExpression(init) || isUtilityLikeExpression(init);
171
196
  });
172
197
  }
@@ -197,4 +222,4 @@ function isUtilityLikeExpression(expression) {
197
222
  isUtilityNamespaceCall(unwrappedExpression)));
198
223
  }
199
224
  export { hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUYsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsYUFBYSxDQUFDLFNBQTJCO0lBQ2hELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3RELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1lBQzFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENB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QUFvQixDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQztZQUNwRCxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7WUFDOUIsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFDTCxhQUFhLEVBQ2IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLHdCQUF3QixFQUN4QixvQkFBb0IsR0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgU291cmNlQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIGdldFN0YXRlbWVudEV4cHJlc3Npb24sXHJcbiAgaGFzQXNzZXJ0aW9uLFxyXG4gIGlzQWN0aW9uRXhwcmVzc2lvbixcclxuICB1bndyYXBFeHByZXNzaW9uLFxyXG59IGZyb20gXCIuL2FuYWx5emVyLmFzc2VydGlvbnMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyB9IGZyb20gXCIuL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uLnRyYXZlcnNhbFwiO1xyXG5pbXBvcnQge1xyXG4gIGFycmF5TXV0YXRpb25NZXRob2RzLFxyXG4gIGdldEV4cHJlc3Npb25OYW1lLFxyXG4gIGdldEludm9rZWROYW1lLFxyXG4gIGlzQ2FsbGFibGVFeHByZXNzaW9uLFxyXG4gIGlzTG9jYXRlZENvbW1lbnQsXHJcbiAgaXNVdGlsaXR5Q29uc3RydWN0b3IsXHJcbiAgaXNVdGlsaXR5TmFtZWRDYWxsLFxyXG4gIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwsXHJcbiAgaXNWb2lkTGlrZU1ldGhvZE5hbWUsXHJcbiAgdm9pZExpa2VNZXRob2ROYW1lcyxcclxufSBmcm9tIFwiLi9hbmFseXplci5zdXBlclwiO1xyXG5pbXBvcnQgeyB2aXNpdE5vZGUgfSBmcm9tIFwiLi9hbmFseXplci5zdXBlci5oZWxwZXJzXCI7XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBhc3luYyBsb2dpYy5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzQXN5bmNMb2dpYyhzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0FzeW5jTG9naWMoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgbGV0IHdhc0FzeW5jTG9naWNGb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcclxuICAgIGlmIChub2RlLnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIpIHtcclxuICAgICAgd2FzQXN5bmNMb2dpY0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBub2RlLnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxyXG4gICAgICBub2RlLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgICBub2RlLmNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxyXG4gICAgICBbXCJjYXRjaFwiLCBcImZpbmFsbHlcIiwgXCJ0aGVuXCJdLmluY2x1ZGVzKG5vZGUuY2FsbGVlLnByb3BlcnR5Lm5hbWUpXHJcbiAgICApIHtcclxuICAgICAgd2FzQXN5bmNMb2dpY0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBub2RlLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiICYmXHJcbiAgICAgIGdldEV4cHJlc3Npb25OYW1lKG5vZGUuY2FsbGVlKSA9PT0gXCJQcm9taXNlXCJcclxuICAgICkge1xyXG4gICAgICB3YXNBc3luY0xvZ2ljRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiB3YXNBc3luY0xvZ2ljRm91bmQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGF3YWl0IHVzYWdlLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBoYXNBd2FpdChzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc0F3YWl0KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCB3YXNBd2FpdEZvdW5kID0gZmFsc2U7XHJcbiAgdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xyXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJBd2FpdEV4cHJlc3Npb25cIikge1xyXG4gICAgICB3YXNBd2FpdEZvdW5kID0gdHJ1ZTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gd2FzQXdhaXRGb3VuZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgYmxhbmsgbGluZXMgYmVmb3JlIGNvbW1lbnRzLlxyXG4gKiBAcGFyYW0gc291cmNlVGV4dCBJbnB1dCBzb3VyY2VUZXh0IHZhbHVlLlxyXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQoc291cmNlVGV4dCwgY29tbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudChcclxuICBzb3VyY2VUZXh0OiBzdHJpbmcsXHJcbiAgY29tbWVudDogU291cmNlQ29tbWVudCxcclxuKTogYm9vbGVhbiB7XHJcbiAgaWYgKCFpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgY29uc3QgbGluZXMgPSBzb3VyY2VUZXh0LnNwbGl0KC9cXHJcXG58XFxuL3UpO1xyXG4gIGNvbnN0IHByZXZpb3VzTGluZSA9IGxpbmVzW2NvbW1lbnQubG9jLnN0YXJ0LmxpbmUgLSAyXTtcclxuICByZXR1cm4gcHJldmlvdXNMaW5lID09PSB2b2lkIDAgfHwgcHJldmlvdXNMaW5lLnRyaW0oKS5sZW5ndGggPT09IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgZm9yIGNhcHR1cmFibGUgQWN0IHJlc3VsdHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IHVud3JhcEV4cHJlc3Npb24oc3RhdGVtZW50LmV4cHJlc3Npb24pO1xyXG4gIGlmICghaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRJbnZva2VkTmFtZShcclxuICAgIGV4cHJlc3Npb24gYXMgRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbiAgKTtcclxuICByZXR1cm4gKFxyXG4gICAgY2FsbGVlTmFtZSA9PT0gdm9pZCAwIHx8XHJcbiAgICAoIXZvaWRMaWtlTWV0aG9kTmFtZXMuaGFzKGNhbGxlZU5hbWUpICYmICFpc1ZvaWRMaWtlTWV0aG9kTmFtZShjYWxsZWVOYW1lKSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBtdXRhdGlvbi5cclxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaGFzTXV0YXRpb24oc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNNdXRhdGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcclxuICBsZXQgd2FzTXV0YXRpb25Gb3VuZCA9IGZhbHNlO1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFtcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsIFwiVW5hcnlFeHByZXNzaW9uXCIsIFwiVXBkYXRlRXhwcmVzc2lvblwiXS5pbmNsdWRlcyhcclxuICAgICAgICBub2RlLnR5cGUsXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICBpZiAobm9kZS50eXBlICE9PSBcIlVuYXJ5RXhwcmVzc2lvblwiIHx8IG5vZGUub3BlcmF0b3IgPT09IFwiZGVsZXRlXCIpIHtcclxuICAgICAgICB3YXNNdXRhdGlvbkZvdW5kID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICAgIG5vZGUuY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICAgIGFycmF5TXV0YXRpb25NZXRob2RzLmhhcyhub2RlLmNhbGxlZS5wcm9wZXJ0eS5uYW1lKVxyXG4gICAgKSB7XHJcbiAgICAgIHdhc011dGF0aW9uRm91bmQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiB3YXNNdXRhdGlvbkZvdW5kO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBtZWFuaW5nZnVsIEFjdCBzdGF0ZW1lbnRzLlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgZXhwcmVzc2lvbiA9IGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcclxuICBpZiAoZXhwcmVzc2lvbiA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJldHVybiAoXHJcbiAgICBpc0FjdGlvbkV4cHJlc3Npb24oZXhwcmVzc2lvbikgJiZcclxuICAgICFpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKSAmJlxyXG4gICAgIWhhc0Fzc2VydGlvbihzdGF0ZW1lbnQpXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgcnVsZSBjcmVhdGUgY2FsbHMuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSdWxlQ3JlYXRlSW52b2NhdGlvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1J1bGVDcmVhdGVJbnZvY2F0aW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IEVTVHJlZS5OZXdFeHByZXNzaW9uLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS5uYW1lID09PSBcImNyZWF0ZVwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZS5lbmRzV2l0aChcIlJ1bGVcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGZvciBzZXR1cC1saWtlIHN0YXRlbWVudHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzU2V0dXBMaWtlU3RhdGVtZW50KHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNTZXR1cExpa2VTdGF0ZW1lbnQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChkZWNsYXJhdGlvbi5pbml0ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW5pdCA9IHVud3JhcEV4cHJlc3Npb24oZGVjbGFyYXRpb24uaW5pdCk7XHJcbiAgICAgIHJldHVybiAhaXNBY3Rpb25FeHByZXNzaW9uKGluaXQpIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGluaXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnN0IGV4cHJlc3Npb24gPSBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uKHN0YXRlbWVudCk7XHJcbiAgcmV0dXJuIGV4cHJlc3Npb24gIT09IHZvaWQgMCAmJiBpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBmb3IgdXRpbGl0eS1saWtlIGV4cHJlc3Npb25zLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgdW5kZWZpbmVkLFxyXG4pOiBib29sZWFuIHtcclxuICBjb25zdCB1bndyYXBwZWRFeHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICBpZiAoIWlzQ2FsbGFibGVFeHByZXNzaW9uKHVud3JhcHBlZEV4cHJlc3Npb24pKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRFeHByZXNzaW9uTmFtZSh1bndyYXBwZWRFeHByZXNzaW9uLmNhbGxlZSk7XHJcbiAgaWYgKGNhbGxlZU5hbWUgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gKFxyXG4gICAgIWlzUnVsZUNyZWF0ZUludm9jYXRpb24odW53cmFwcGVkRXhwcmVzc2lvbikgJiZcclxuICAgIChpc1V0aWxpdHlDb25zdHJ1Y3Rvcih1bndyYXBwZWRFeHByZXNzaW9uLCBjYWxsZWVOYW1lKSB8fFxyXG4gICAgICBpc1V0aWxpdHlOYW1lZENhbGwoY2FsbGVlTmFtZSkgfHxcclxuICAgICAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCh1bndyYXBwZWRFeHByZXNzaW9uKSlcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGhhc0FzeW5jTG9naWMsXHJcbiAgaGFzQXdhaXQsXHJcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCxcclxuICBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0LFxyXG4gIGhhc011dGF0aW9uLFxyXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcclxuICBpc1NldHVwTGlrZVN0YXRlbWVudCxcclxufTtcclxuIl19
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUYsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsYUFBYSxDQUFDLFNBQTJCO0lBQ2hELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQy9CLG1DQUFtQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3RELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1lBQzFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENB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LEVBQ3hCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IFNvdXJjZUNvbW1lbnQgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQge1xuICBnZXRTdGF0ZW1lbnRFeHByZXNzaW9uLFxuICBoYXNBc3NlcnRpb24sXG4gIGlzQWN0aW9uRXhwcmVzc2lvbixcbiAgdW53cmFwRXhwcmVzc2lvbixcbn0gZnJvbSBcIi4vYW5hbHl6ZXIuYXNzZXJ0aW9ucy5oZWxwZXJzXCI7XG5pbXBvcnQgeyB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyB9IGZyb20gXCIuL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uLnRyYXZlcnNhbFwiO1xuaW1wb3J0IHtcbiAgYXJyYXlNdXRhdGlvbk1ldGhvZHMsXG4gIGdldEV4cHJlc3Npb25OYW1lLFxuICBnZXRJbnZva2VkTmFtZSxcbiAgaXNDYWxsYWJsZUV4cHJlc3Npb24sXG4gIGlzTG9jYXRlZENvbW1lbnQsXG4gIGlzVXRpbGl0eUNvbnN0cnVjdG9yLFxuICBpc1V0aWxpdHlOYW1lZENhbGwsXG4gIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwsXG4gIGlzVm9pZExpa2VNZXRob2ROYW1lLFxuICB2b2lkTGlrZU1ldGhvZE5hbWVzLFxufSBmcm9tIFwiLi9hbmFseXplci5zdXBlclwiO1xuaW1wb3J0IHsgdmlzaXROb2RlIH0gZnJvbSBcIi4vYW5hbHl6ZXIuc3VwZXIuaGVscGVyc1wiO1xuXG4vKipcbiAqIENoZWNrcyBmb3IgYXN5bmMgbG9naWMuXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaGFzQXN5bmNMb2dpYyhzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc0FzeW5jTG9naWMoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XG4gIGxldCB3YXNBc3luY0xvZ2ljRm91bmQgPSBmYWxzZTtcbiAgdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xuICAgIGlmIChub2RlLnR5cGUgPT09IFwiQXdhaXRFeHByZXNzaW9uXCIpIHtcbiAgICAgIHdhc0FzeW5jTG9naWNGb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXG4gICAgICBub2RlLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgICAgbm9kZS5jYWxsZWUucHJvcGVydHkudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICAgIFtcImNhdGNoXCIsIFwiZmluYWxseVwiLCBcInRoZW5cIl0uaW5jbHVkZXMobm9kZS5jYWxsZWUucHJvcGVydHkubmFtZSlcbiAgICApIHtcbiAgICAgIHdhc0FzeW5jTG9naWNGb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCIgJiZcbiAgICAgIGdldEV4cHJlc3Npb25OYW1lKG5vZGUuY2FsbGVlKSA9PT0gXCJQcm9taXNlXCJcbiAgICApIHtcbiAgICAgIHdhc0FzeW5jTG9naWNGb3VuZCA9IHRydWU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHdhc0FzeW5jTG9naWNGb3VuZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIGF3YWl0IHVzYWdlLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhc0F3YWl0KHN0YXRlbWVudCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzQXdhaXQoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XG4gIGxldCB3YXNBd2FpdEZvdW5kID0gZmFsc2U7XG4gIHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkF3YWl0RXhwcmVzc2lvblwiKSB7XG4gICAgICB3YXNBd2FpdEZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gd2FzQXdhaXRGb3VuZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIGJsYW5rIGxpbmVzIGJlZm9yZSBjb21tZW50cy5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IElucHV0IHNvdXJjZVRleHQgdmFsdWUuXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50KHNvdXJjZVRleHQsIGNvbW1lbnQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQoXG4gIHNvdXJjZVRleHQ6IHN0cmluZyxcbiAgY29tbWVudDogU291cmNlQ29tbWVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoIWlzTG9jYXRlZENvbW1lbnQoY29tbWVudCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBsaW5lcyA9IHNvdXJjZVRleHQuc3BsaXQoL1xcclxcbnxcXG4vdSk7XG4gIGNvbnN0IHByZXZpb3VzTGluZSA9IGxpbmVzW2NvbW1lbnQubG9jLnN0YXJ0LmxpbmUgLSAyXTtcbiAgcmV0dXJuIHByZXZpb3VzTGluZSA9PT0gdm9pZCAwIHx8IHByZXZpb3VzTGluZS50cmltKCkubGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIENoZWNrcyBmb3IgY2FwdHVyYWJsZSBBY3QgcmVzdWx0cy5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0KHN0YXRlbWVudCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdChzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBleHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihzdGF0ZW1lbnQuZXhwcmVzc2lvbik7XG4gIGlmICghaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pIHx8IGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRJbnZva2VkTmFtZShcbiAgICBleHByZXNzaW9uIGFzIEVTVHJlZS5DYWxsRXhwcmVzc2lvbiB8IEVTVHJlZS5OZXdFeHByZXNzaW9uLFxuICApO1xuICByZXR1cm4gKFxuICAgIGNhbGxlZU5hbWUgPT09IHZvaWQgMCB8fFxuICAgICghdm9pZExpa2VNZXRob2ROYW1lcy5oYXMoY2FsbGVlTmFtZSkgJiYgIWlzVm9pZExpa2VNZXRob2ROYW1lKGNhbGxlZU5hbWUpKVxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyBmb3IgbXV0YXRpb24uXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaGFzTXV0YXRpb24oc3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBoYXNNdXRhdGlvbihzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgbGV0IHdhc011dGF0aW9uRm91bmQgPSBmYWxzZTtcbiAgdmlzaXROb2RlKHN0YXRlbWVudCwgKG5vZGUpID0+IHtcbiAgICBpZiAoXG4gICAgICBbXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiLCBcIlVuYXJ5RXhwcmVzc2lvblwiLCBcIlVwZGF0ZUV4cHJlc3Npb25cIl0uaW5jbHVkZXMoXG4gICAgICAgIG5vZGUudHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGlmIChub2RlLnR5cGUgIT09IFwiVW5hcnlFeHByZXNzaW9uXCIgfHwgbm9kZS5vcGVyYXRvciA9PT0gXCJkZWxldGVcIikge1xuICAgICAgICB3YXNNdXRhdGlvbkZvdW5kID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbm9kZS50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgJiZcbiAgICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXG4gICAgICBub2RlLmNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgYXJyYXlNdXRhdGlvbk1ldGhvZHMuaGFzKG5vZGUuY2FsbGVlLnByb3BlcnR5Lm5hbWUpXG4gICAgKSB7XG4gICAgICB3YXNNdXRhdGlvbkZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gd2FzTXV0YXRpb25Gb3VuZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIG1lYW5pbmdmdWwgQWN0IHN0YXRlbWVudHMuXG4gKiBAcGFyYW0gc3RhdGVtZW50IElucHV0IHN0YXRlbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNNZWFuaW5nZnVsQWN0U3RhdGVtZW50KHN0YXRlbWVudCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNNZWFuaW5nZnVsQWN0U3RhdGVtZW50KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xuICBjb25zdCBleHByZXNzaW9uID0gZ2V0U3RhdGVtZW50RXhwcmVzc2lvbihzdGF0ZW1lbnQpO1xuICBpZiAoZXhwcmVzc2lvbiA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChoYXNBc3NlcnRpb24oc3RhdGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNBY3Rpb25FeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XG4gICAgaWYgKFxuICAgICAgc3RhdGVtZW50LnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiICYmXG4gICAgICBleHByZXNzaW9uLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhaXNVdGlsaXR5TGlrZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gIH1cbiAgaWYgKFxuICAgIHN0YXRlbWVudC50eXBlICE9PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIiB8fFxuICAgIGV4cHJlc3Npb24udHlwZSAhPT0gXCJPYmplY3RFeHByZXNzaW9uXCJcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IGhhc01lYW5pbmdmdWxBY3Rpb24gPSBmYWxzZTtcbiAgdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xuICAgIGlmIChcbiAgICAgIChub2RlLnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fCBub2RlLnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiKSAmJlxuICAgICAgIWlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKG5vZGUpXG4gICAgKSB7XG4gICAgICBoYXNNZWFuaW5nZnVsQWN0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gaGFzTWVhbmluZ2Z1bEFjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIHJ1bGUgY3JlYXRlIGNhbGxzLlxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNSdWxlQ3JlYXRlSW52b2NhdGlvbihleHByZXNzaW9uKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc1J1bGVDcmVhdGVJbnZvY2F0aW9uKFxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGV4cHJlc3Npb24udHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09IFwiY3JlYXRlXCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZS5lbmRzV2l0aChcIlJ1bGVcIilcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIHNldHVwLWxpa2Ugc3RhdGVtZW50cy5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc1NldHVwTGlrZVN0YXRlbWVudChzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzU2V0dXBMaWtlU3RhdGVtZW50KHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCk6IGJvb2xlYW4ge1xuICBpZiAoc3RhdGVtZW50LnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XG4gICAgcmV0dXJuIHN0YXRlbWVudC5kZWNsYXJhdGlvbnMuZXZlcnkoKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICBpZiAoZGVjbGFyYXRpb24uaW5pdCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGluaXQgPSB1bndyYXBFeHByZXNzaW9uKGRlY2xhcmF0aW9uLmluaXQpO1xuICAgICAgaWYgKGluaXQgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbml0LnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuICFpc0FjdGlvbkV4cHJlc3Npb24oaW5pdCkgfHwgaXNVdGlsaXR5TGlrZUV4cHJlc3Npb24oaW5pdCk7XG4gICAgfSk7XG4gIH1cbiAgY29uc3QgZXhwcmVzc2lvbiA9IGdldFN0YXRlbWVudEV4cHJlc3Npb24oc3RhdGVtZW50KTtcbiAgcmV0dXJuIGV4cHJlc3Npb24gIT09IHZvaWQgMCAmJiBpc1V0aWxpdHlMaWtlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgZm9yIHV0aWxpdHktbGlrZSBleHByZXNzaW9ucy5cbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzVXRpbGl0eUxpa2VFeHByZXNzaW9uKFxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4ge1xuICBjb25zdCB1bndyYXBwZWRFeHByZXNzaW9uID0gdW53cmFwRXhwcmVzc2lvbihleHByZXNzaW9uKTtcbiAgaWYgKCFpc0NhbGxhYmxlRXhwcmVzc2lvbih1bndyYXBwZWRFeHByZXNzaW9uKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBjYWxsZWVOYW1lID0gZ2V0RXhwcmVzc2lvbk5hbWUodW53cmFwcGVkRXhwcmVzc2lvbi5jYWxsZWUpO1xuICBpZiAoY2FsbGVlTmFtZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAoXG4gICAgIWlzUnVsZUNyZWF0ZUludm9jYXRpb24odW53cmFwcGVkRXhwcmVzc2lvbikgJiZcbiAgICAoaXNVdGlsaXR5Q29uc3RydWN0b3IodW53cmFwcGVkRXhwcmVzc2lvbiwgY2FsbGVlTmFtZSkgfHxcbiAgICAgIGlzVXRpbGl0eU5hbWVkQ2FsbChjYWxsZWVOYW1lKSB8fFxuICAgICAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCh1bndyYXBwZWRFeHByZXNzaW9uKSlcbiAgKTtcbn1cblxuZXhwb3J0IHtcbiAgaGFzQXN5bmNMb2dpYyxcbiAgaGFzQXdhaXQsXG4gIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQsXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQsXG4gIGhhc011dGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQsXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50LFxufTtcbiJdfQ==
@@ -31,4 +31,4 @@ function visitStatementWithoutDeferredBodies(statement, callback) {
31
31
  });
32
32
  }
33
33
  export { visitStatementWithoutDeferredBodies };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24udHJhdmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5jbGFzc2lmaWNhdGlvbi50cmF2ZXJzYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFpQjtJQUMvQyxPQUFPO1FBQ0wseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixvQkFBb0I7S0FDckIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLFNBQTJCLEVBQzNCLFFBQXFDO0lBRXJDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixPQUFPLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB7IHZpc2l0Tm9kZSB9IGZyb20gXCIuL2FuYWx5emVyLnN1cGVyLmhlbHBlcnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaW50cm9kdWNlcyBkZWZlcnJlZCBleGVjdXRpb24uXHJcbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNEZWZlcnJlZEZ1bmN0aW9uTm9kZSh7IHR5cGU6IFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiB9IGFzIEVTVHJlZS5Ob2RlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0RlZmVycmVkRnVuY3Rpb25Ob2RlKG5vZGU6IEVTVHJlZS5Ob2RlKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIFtcclxuICAgIFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIixcclxuICAgIFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gICAgXCJGdW5jdGlvbkV4cHJlc3Npb25cIixcclxuICBdLmluY2x1ZGVzKG5vZGUudHlwZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWaXNpdHMgYSBzdGF0ZW1lbnQgd2hpbGUgc2tpcHBpbmcgbmVzdGVkIGZ1bmN0aW9uIGJvZGllcyB0aGF0IGV4ZWN1dGUgbGF0ZXIuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW5wdXQgc3RhdGVtZW50IHZhbHVlLlxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAoKSA9PiB7fSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoXHJcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxyXG4gIGNhbGxiYWNrOiAobm9kZTogRVNUcmVlLk5vZGUpID0+IHZvaWQsXHJcbik6IHZvaWQge1xyXG4gIHZpc2l0Tm9kZShzdGF0ZW1lbnQsIChub2RlKSA9PiB7XHJcbiAgICBjYWxsYmFjayhub2RlKTtcclxuICAgIHJldHVybiBub2RlID09PSBzdGF0ZW1lbnQgfHwgIWlzRGVmZXJyZWRGdW5jdGlvbk5vZGUobm9kZSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IHZpc2l0U3RhdGVtZW50V2l0aG91dERlZmVycmVkQm9kaWVzIH07XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24udHJhdmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL2FhYS9hbmFseXplci5jbGFzc2lmaWNhdGlvbi50cmF2ZXJzYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFpQjtJQUMvQyxPQUFPO1FBQ0wseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixvQkFBb0I7S0FDckIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsbUNBQW1DLENBQzFDLFNBQTJCLEVBQzNCLFFBQXFDO0lBRXJDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixPQUFPLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHsgdmlzaXROb2RlIH0gZnJvbSBcIi4vYW5hbHl6ZXIuc3VwZXIuaGVscGVyc1wiO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbm9kZSBpbnRyb2R1Y2VzIGRlZmVycmVkIGV4ZWN1dGlvbi5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzRGVmZXJyZWRGdW5jdGlvbk5vZGUoeyB0eXBlOiBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIgfSBhcyBFU1RyZWUuTm9kZSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNEZWZlcnJlZEZ1bmN0aW9uTm9kZShub2RlOiBFU1RyZWUuTm9kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gW1xuICAgIFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIixcbiAgICBcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixcbiAgICBcIkZ1bmN0aW9uRXhwcmVzc2lvblwiLFxuICBdLmluY2x1ZGVzKG5vZGUudHlwZSk7XG59XG5cbi8qKlxuICogVmlzaXRzIGEgc3RhdGVtZW50IHdoaWxlIHNraXBwaW5nIG5lc3RlZCBmdW5jdGlvbiBib2RpZXMgdGhhdCBleGVjdXRlIGxhdGVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbnB1dCBzdGF0ZW1lbnQgdmFsdWUuXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoc3RhdGVtZW50LCAoKSA9PiB7fSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdmlzaXRTdGF0ZW1lbnRXaXRob3V0RGVmZXJyZWRCb2RpZXMoXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcbiAgY2FsbGJhY2s6IChub2RlOiBFU1RyZWUuTm9kZSkgPT4gdm9pZCxcbik6IHZvaWQge1xuICB2aXNpdE5vZGUoc3RhdGVtZW50LCAobm9kZSkgPT4ge1xuICAgIGNhbGxiYWNrKG5vZGUpO1xuICAgIHJldHVybiBub2RlID09PSBzdGF0ZW1lbnQgfHwgIWlzRGVmZXJyZWRGdW5jdGlvbk5vZGUobm9kZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgeyB2aXNpdFN0YXRlbWVudFdpdGhvdXREZWZlcnJlZEJvZGllcyB9O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AA0BH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAcvB,CAAC;AAEH;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAkBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAED;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAaT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AAiCH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAcvB,CAAC;AAEH;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAkBD;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAED;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAaT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
@@ -61,4 +61,4 @@ function visitValue(value, callback, seenNodes) {
61
61
  }
62
62
  }
63
63
  export { visitNode };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuc3VwZXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxNQUFNLElBQUksS0FBSztRQUNmLE9BQ0UsS0FJRCxDQUFDLElBQUksS0FBSyxRQUFRLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxTQUFTLENBQ2hCLElBQWlCLEVBQ2pCLFFBQW9ELEVBQ3BELFlBQVksSUFBSSxPQUFPLEVBQVU7SUFFakMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzdCLE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQixVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLFVBQVUsQ0FDakIsS0FBYyxFQUNkLFFBQW9ELEVBQ3BELFNBQTBCO0lBRTFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhbiBFU1RyZWUgbm9kZS5cclxuICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB0ZXN0LlxyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB2YWx1ZSBpcyBhbiBFU1RyZWUgbm9kZSwgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNOb2RlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7IC8vIHRydWVcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc05vZGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBFU1RyZWUuTm9kZSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxyXG4gICAgdmFsdWUgIT09IG51bGwgJiZcclxuICAgIFwidHlwZVwiIGluIHZhbHVlICYmXHJcbiAgICB0eXBlb2YgKFxyXG4gICAgICB2YWx1ZSBhcyB7XHJcbiAgICAgICAgLyoqIFBvdGVudGlhbCBFU1RyZWUgbm9kZSB0eXBlIGZpZWxkLiAqL1xyXG4gICAgICAgIHR5cGU/OiB1bmtub3duO1xyXG4gICAgICB9XHJcbiAgICApLnR5cGUgPT09IFwic3RyaW5nXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogVmlzaXRzIGFuIEVTVHJlZSBub2RlIGdyYXBoIHdoaWxlIGlnbm9yaW5nIGN5Y2xlcy5cclxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxiYWNrIElucHV0IGNhbGxiYWNrIHZhbHVlLlxyXG4gKiBAcGFyYW0gc2Vlbk5vZGVzIElucHV0IHNlZW5Ob2RlcyB2YWx1ZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB2aXNpdE5vZGUobm9kZSwgKCkgPT4ge30pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHZpc2l0Tm9kZShcclxuICBub2RlOiBFU1RyZWUuTm9kZSxcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiBib29sZWFuIHwgdW5kZWZpbmVkLFxyXG4gIHNlZW5Ob2RlcyA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHNlZW5Ob2Rlcy5oYXMobm9kZSkpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNlZW5Ob2Rlcy5hZGQobm9kZSk7XHJcbiAgaWYgKGNhbGxiYWNrKG5vZGUpID09PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZSkpIHtcclxuICAgIGlmIChrZXkgIT09IFwicGFyZW50XCIpIHtcclxuICAgICAgdmlzaXRWYWx1ZSh2YWx1ZSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogVmlzaXRzIGNoaWxkIHZhbHVlcyB0aGF0IG1heSBjb250YWluIG5lc3RlZCBFU1RyZWUgbm9kZXMuXHJcbiAqIEBwYXJhbSB2YWx1ZSBJbnB1dCB2YWx1ZSB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxiYWNrIElucHV0IGNhbGxiYWNrIHZhbHVlLlxyXG4gKiBAcGFyYW0gc2Vlbk5vZGVzIElucHV0IHNlZW5Ob2RlcyB2YWx1ZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB2aXNpdFZhbHVlKHZhbHVlLCAoKSA9PiB7fSwgbmV3IFdlYWtTZXQ8b2JqZWN0PigpKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiB2aXNpdFZhbHVlKFxyXG4gIHZhbHVlOiB1bmtub3duLFxyXG4gIGNhbGxiYWNrOiAobm9kZTogRVNUcmVlLk5vZGUpID0+IGJvb2xlYW4gfCB1bmRlZmluZWQsXHJcbiAgc2Vlbk5vZGVzOiBXZWFrU2V0PG9iamVjdD4sXHJcbik6IHZvaWQge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XHJcbiAgICAgIGlmIChpc05vZGUoaXRlbSkpIHtcclxuICAgICAgICB2aXNpdE5vZGUoaXRlbSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAoaXNOb2RlKHZhbHVlKSkge1xyXG4gICAgdmlzaXROb2RlKHZhbHVlLCBjYWxsYmFjaywgc2Vlbk5vZGVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IHZpc2l0Tm9kZSB9O1xyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuc3VwZXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxNQUFNLElBQUksS0FBSztRQUNmLE9BQ0UsS0FJRCxDQUFDLElBQUksS0FBSyxRQUFRLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxTQUFTLENBQ2hCLElBQWlCLEVBQ2pCLFFBQW9ELEVBQ3BELFlBQVksSUFBSSxPQUFPLEVBQVU7SUFFakMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzdCLE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQixVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLFVBQVUsQ0FDakIsS0FBYyxFQUNkLFFBQW9ELEVBQ3BELFNBQTBCO0lBRTFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhbiBFU1RyZWUgbm9kZS5cbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdGVzdC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHZhbHVlIGlzIGFuIEVTVHJlZSBub2RlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc05vZGUoeyB0eXBlOiBcIklkZW50aWZpZXJcIiB9KTsgLy8gdHJ1ZVxuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVTVHJlZS5Ob2RlIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIFwidHlwZVwiIGluIHZhbHVlICYmXG4gICAgdHlwZW9mIChcbiAgICAgIHZhbHVlIGFzIHtcbiAgICAgICAgLyoqIFBvdGVudGlhbCBFU1RyZWUgbm9kZSB0eXBlIGZpZWxkLiAqL1xuICAgICAgICB0eXBlPzogdW5rbm93bjtcbiAgICAgIH1cbiAgICApLnR5cGUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBWaXNpdHMgYW4gRVNUcmVlIG5vZGUgZ3JhcGggd2hpbGUgaWdub3JpbmcgY3ljbGVzLlxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cbiAqIEBwYXJhbSBjYWxsYmFjayBJbnB1dCBjYWxsYmFjayB2YWx1ZS5cbiAqIEBwYXJhbSBzZWVuTm9kZXMgSW5wdXQgc2Vlbk5vZGVzIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHZpc2l0Tm9kZShub2RlLCAoKSA9PiB7fSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdmlzaXROb2RlKFxuICBub2RlOiBFU1RyZWUuTm9kZSxcbiAgY2FsbGJhY2s6IChub2RlOiBFU1RyZWUuTm9kZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgc2Vlbk5vZGVzID0gbmV3IFdlYWtTZXQ8b2JqZWN0PigpLFxuKTogdm9pZCB7XG4gIGlmIChzZWVuTm9kZXMuaGFzKG5vZGUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2Vlbk5vZGVzLmFkZChub2RlKTtcbiAgaWYgKGNhbGxiYWNrKG5vZGUpID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUpKSB7XG4gICAgaWYgKGtleSAhPT0gXCJwYXJlbnRcIikge1xuICAgICAgdmlzaXRWYWx1ZSh2YWx1ZSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmlzaXRzIGNoaWxkIHZhbHVlcyB0aGF0IG1heSBjb250YWluIG5lc3RlZCBFU1RyZWUgbm9kZXMuXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXG4gKiBAcGFyYW0gc2Vlbk5vZGVzIElucHV0IHNlZW5Ob2RlcyB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB2aXNpdFZhbHVlKHZhbHVlLCAoKSA9PiB7fSwgbmV3IFdlYWtTZXQ8b2JqZWN0PigpKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiB2aXNpdFZhbHVlKFxuICB2YWx1ZTogdW5rbm93bixcbiAgY2FsbGJhY2s6IChub2RlOiBFU1RyZWUuTm9kZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgc2Vlbk5vZGVzOiBXZWFrU2V0PG9iamVjdD4sXG4pOiB2b2lkIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKSB7XG4gICAgICBpZiAoaXNOb2RlKGl0ZW0pKSB7XG4gICAgICAgIHZpc2l0Tm9kZShpdGVtLCBjYWxsYmFjaywgc2Vlbk5vZGVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNOb2RlKHZhbHVlKSkge1xuICAgIHZpc2l0Tm9kZSh2YWx1ZSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XG4gIH1cbn1cblxuZXhwb3J0IHsgdmlzaXROb2RlIH07XG4iXX0=