@angular/compiler-cli 10.1.3 → 10.2.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 (81) hide show
  1. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +2 -2
  2. package/ngcc/src/analysis/module_with_providers_analyzer.js +1 -1
  3. package/ngcc/src/analysis/ngcc_references_registry.d.ts +3 -3
  4. package/ngcc/src/analysis/ngcc_references_registry.js +2 -2
  5. package/ngcc/src/analysis/private_declarations_analyzer.js +1 -1
  6. package/ngcc/src/dependencies/commonjs_dependency_host.js +1 -1
  7. package/ngcc/src/dependencies/dependency_host.d.ts +15 -0
  8. package/ngcc/src/dependencies/dependency_host.js +42 -9
  9. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +4 -6
  10. package/ngcc/src/host/commonjs_host.d.ts +0 -1
  11. package/ngcc/src/host/commonjs_host.js +28 -19
  12. package/ngcc/src/host/commonjs_umd_utils.d.ts +59 -12
  13. package/ngcc/src/host/commonjs_umd_utils.js +57 -15
  14. package/ngcc/src/host/delegating_host.d.ts +3 -3
  15. package/ngcc/src/host/delegating_host.js +1 -1
  16. package/ngcc/src/host/esm2015_host.d.ts +82 -27
  17. package/ngcc/src/host/esm2015_host.js +129 -107
  18. package/ngcc/src/host/esm5_host.js +7 -7
  19. package/ngcc/src/host/umd_host.d.ts +16 -1
  20. package/ngcc/src/host/umd_host.js +190 -25
  21. package/ngcc/src/migrations/missing_injectable_migration.js +1 -1
  22. package/ngcc/src/migrations/undecorated_parent_migration.js +1 -1
  23. package/ngcc/src/migrations/utils.d.ts +1 -1
  24. package/ngcc/src/migrations/utils.js +1 -1
  25. package/ngcc/src/packages/build_marker.d.ts +1 -1
  26. package/ngcc/src/packages/build_marker.js +1 -1
  27. package/ngcc/src/utils.d.ts +3 -3
  28. package/ngcc/src/utils.js +1 -1
  29. package/package.json +2 -2
  30. package/src/ngtsc/annotations/src/component.js +1 -1
  31. package/src/ngtsc/annotations/src/directive.js +9 -3
  32. package/src/ngtsc/annotations/src/metadata.d.ts +2 -3
  33. package/src/ngtsc/annotations/src/metadata.js +1 -1
  34. package/src/ngtsc/annotations/src/ng_module.js +4 -9
  35. package/src/ngtsc/annotations/src/references_registry.d.ts +3 -3
  36. package/src/ngtsc/annotations/src/references_registry.js +1 -1
  37. package/src/ngtsc/core/src/compiler.d.ts +2 -1
  38. package/src/ngtsc/core/src/compiler.js +5 -1
  39. package/src/ngtsc/entry_point/src/private_export_checker.js +1 -1
  40. package/src/ngtsc/entry_point/src/reference_graph.d.ts +2 -2
  41. package/src/ngtsc/entry_point/src/reference_graph.js +1 -1
  42. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +3 -1
  43. package/src/ngtsc/file_system/testing/src/mock_file_system.js +29 -10
  44. package/src/ngtsc/imports/src/emitter.d.ts +2 -2
  45. package/src/ngtsc/imports/src/emitter.js +2 -6
  46. package/src/ngtsc/indexer/src/api.d.ts +2 -3
  47. package/src/ngtsc/indexer/src/api.js +1 -1
  48. package/src/ngtsc/indexer/src/transform.d.ts +2 -2
  49. package/src/ngtsc/indexer/src/transform.js +1 -1
  50. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -0
  51. package/src/ngtsc/partial_evaluator/src/interpreter.js +13 -20
  52. package/src/ngtsc/perf/src/api.d.ts +3 -3
  53. package/src/ngtsc/perf/src/api.js +1 -1
  54. package/src/ngtsc/perf/src/noop.d.ts +0 -7
  55. package/src/ngtsc/perf/src/noop.js +1 -8
  56. package/src/ngtsc/perf/src/tracking.d.ts +3 -2
  57. package/src/ngtsc/perf/src/tracking.js +1 -1
  58. package/src/ngtsc/program.d.ts +2 -1
  59. package/src/ngtsc/program.js +1 -1
  60. package/src/ngtsc/reflection/src/host.d.ts +39 -22
  61. package/src/ngtsc/reflection/src/host.js +10 -2
  62. package/src/ngtsc/reflection/src/typescript.d.ts +3 -3
  63. package/src/ngtsc/reflection/src/typescript.js +4 -2
  64. package/src/ngtsc/reflection/src/util.js +7 -4
  65. package/src/ngtsc/scope/src/local.js +1 -1
  66. package/src/ngtsc/sourcemaps/src/source_file.d.ts +3 -2
  67. package/src/ngtsc/sourcemaps/src/source_file.js +8 -7
  68. package/src/ngtsc/sourcemaps/src/source_file_loader.js +4 -5
  69. package/src/ngtsc/transform/src/compilation.d.ts +3 -3
  70. package/src/ngtsc/transform/src/compilation.js +1 -1
  71. package/src/ngtsc/typecheck/api/api.d.ts +5 -0
  72. package/src/ngtsc/typecheck/api/api.js +1 -1
  73. package/src/ngtsc/typecheck/diagnostics/src/id.d.ts +2 -2
  74. package/src/ngtsc/typecheck/diagnostics/src/id.js +1 -1
  75. package/src/ngtsc/typecheck/src/host.d.ts +41 -11
  76. package/src/ngtsc/typecheck/src/host.js +53 -36
  77. package/src/ngtsc/typecheck/src/type_check_block.js +60 -1
  78. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +1 -1
  79. package/src/ngtsc/util/src/typescript.d.ts +4 -1
  80. package/src/ngtsc/util/src/typescript.js +7 -2
  81. package/src/version.js +1 -1
@@ -32,4 +32,4 @@
32
32
  UpdateMode[UpdateMode["Incremental"] = 1] = "Incremental";
33
33
  })(UpdateMode = exports.UpdateMode || (exports.UpdateMode = {}));
34
34
  });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFxVUgsSUFBWSxVQWFYO0lBYkQsV0FBWSxVQUFVO1FBQ3BCOzs7O1dBSUc7UUFDSCxtREFBUSxDQUFBO1FBRVI7OztXQUdHO1FBQ0gseURBQVcsQ0FBQTtJQUNiLENBQUMsRUFiVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQWFyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0JvdW5kVGFyZ2V0LCBEaXJlY3RpdmVNZXRhLCBTY2hlbWFNZXRhZGF0YX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NQcm9wZXJ0eU1hcHBpbmcsIERpcmVjdGl2ZVR5cGVDaGVja01ldGF9IGZyb20gJy4uLy4uL21ldGFkYXRhJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cblxuLyoqXG4gKiBFeHRlbnNpb24gb2YgYERpcmVjdGl2ZU1ldGFgIHRoYXQgaW5jbHVkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB0eXBlLWNoZWNrIHRoZVxuICogdXNhZ2Ugb2YgYSBwYXJ0aWN1bGFyIGRpcmVjdGl2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YSBleHRlbmRzIERpcmVjdGl2ZU1ldGEsIERpcmVjdGl2ZVR5cGVDaGVja01ldGEge1xuICByZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPjtcbiAgcXVlcmllczogc3RyaW5nW107XG4gIGlucHV0czogQ2xhc3NQcm9wZXJ0eU1hcHBpbmc7XG4gIG91dHB1dHM6IENsYXNzUHJvcGVydHlNYXBwaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUlkID0gc3RyaW5nJntfX2JyYW5kOiAnVGVtcGxhdGVJZCd9O1xuXG4vKipcbiAqIE1ldGFkYXRhIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIGEgY29tcG9uZW50IGNsYXNzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgdHlwZSBjaGVjayBibG9jayAoVENCKVxuICogZm9yIHRoYXQgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDaGVja0Jsb2NrTWV0YWRhdGEge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIHdoaWNoIGdhdmUgcmlzZSB0byB0aGlzIFRDQi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBtYXAgZXJyb3JzIGJhY2sgdG8gdGhlIGB0cy5DbGFzc0RlY2xhcmF0aW9uYCBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGlkOiBUZW1wbGF0ZUlkO1xuXG4gIC8qKlxuICAgKiBTZW1hbnRpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGJvdW5kVGFyZ2V0OiBCb3VuZFRhcmdldDxUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YT47XG5cbiAgLypcbiAgICogUGlwZXMgdXNlZCBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHBpcGVzOiBNYXA8c3RyaW5nLCBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPj4+O1xuXG4gIC8qKlxuICAgKiBTY2hlbWFzIHRoYXQgYXBwbHkgdG8gdGhpcyB0ZW1wbGF0ZS5cbiAgICovXG4gIHNjaGVtYXM6IFNjaGVtYU1ldGFkYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUN0b3JNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIHR5cGUgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gICAqL1xuICBmbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSBhIGJvZHkgZm9yIHRoZSBmdW5jdGlvbiBvciBub3QuXG4gICAqL1xuICBib2R5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCwgb3V0cHV0LCBhbmQgcXVlcnkgZmllbGQgbmFtZXMgaW4gdGhlIHR5cGUgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGFzIGNvbnN0cnVjdG9yIGlucHV0LlxuICAgKi9cbiAgZmllbGRzOiB7aW5wdXRzOiBzdHJpbmdbXTsgb3V0cHV0czogc3RyaW5nW107IHF1ZXJpZXM6IHN0cmluZ1tdO307XG5cbiAgLyoqXG4gICAqIGBTZXRgIG9mIGZpZWxkIG5hbWVzIHdoaWNoIGhhdmUgdHlwZSBjb2VyY2lvbiBlbmFibGVkLlxuICAgKi9cbiAgY29lcmNlZElucHV0RmllbGRzOiBTZXQ8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2tpbmdDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGBmYWxzZWAgdGhlbiB0aGUgZXhwcmVzc2lvbiBgW2lucHV0XT1cImV4cHJcImAgd2lsbCBoYXZlIGBleHByYCB0eXBlLVxuICAgKiBjaGVja2VkLCBidXQgbm90IHRoZSBhc3NpZ25tZW50IG9mIHRoZSByZXN1bHRpbmcgdHlwZSB0byB0aGUgYGlucHV0YCBwcm9wZXJ0eSBvZiB3aGljaGV2ZXJcbiAgICogZGlyZWN0aXZlIG9yIGNvbXBvbmVudCBpcyByZWNlaXZpbmcgdGhlIGJpbmRpbmcuIElmIHNldCB0byBgdHJ1ZWAsIGJvdGggc2lkZXMgb2YgdGhlIGFzc2lnbm1lbnRcbiAgICogYXJlIGNoZWNrZWQuXG4gICAqXG4gICAqIFRoaXMgZmxhZyBvbmx5IGFmZmVjdHMgYmluZGluZ3MgdG8gY29tcG9uZW50cy9kaXJlY3RpdmVzLiBCaW5kaW5ncyB0byB0aGUgRE9NIGFyZSBjaGVja2VkIGlmXG4gICAqIGBjaGVja1R5cGVPZkRvbUJpbmRpbmdzYCBpcyBzZXQuXG4gICAqL1xuICBjaGVja1R5cGVPZklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaG9ub3IgdGhlIGFjY2VzcyBtb2RpZmllcnMgb24gaW5wdXQgYmluZGluZ3MgZm9yIHRoZSBjb21wb25lbnQvZGlyZWN0aXZlLlxuICAgKlxuICAgKiBJZiBhIHRlbXBsYXRlIGJpbmRpbmcgYXR0ZW1wdHMgdG8gYXNzaWduIHRvIGFuIGlucHV0IHRoYXQgaXMgcHJpdmF0ZS9wcm90ZWN0ZWQvcmVhZG9ubHksXG4gICAqIHRoaXMgd2lsbCBwcm9kdWNlIGVycm9ycyB3aGVuIGVuYWJsZWQgYnV0IHdpbGwgbm90IHdoZW4gZGlzYWJsZWQuXG4gICAqL1xuICBob25vckFjY2Vzc01vZGlmaWVyc0ZvcklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHN0cmljdCBudWxsIHR5cGVzIGZvciBpbnB1dCBiaW5kaW5ncyBmb3IgZGlyZWN0aXZlcy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBjb21waWxlZCB3aXRoIFR5cGVTY3JpcHQncyBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZFxuICAgKiB3aWxsIHByb2R1Y2UgdHlwZSBlcnJvcnMgZm9yIGJpbmRpbmdzIHdoaWNoIGNhbiBldmFsdWF0ZSB0byBgdW5kZWZpbmVkYCBvciBgbnVsbGAgd2hlcmUgdGhlXG4gICAqIGlucHV0cydzIHR5cGUgZG9lcyBub3QgaW5jbHVkZSBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaW4gaXRzIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCBhbGxcbiAgICogYmluZGluZyBleHByZXNzaW9ucyBhcmUgd3JhcHBlZCBpbiBhIG5vbi1udWxsIGFzc2VydGlvbiBvcGVyYXRvciB0byBlZmZlY3RpdmVseSBkaXNhYmxlIHN0cmljdFxuICAgKiBudWxsIGNoZWNrcy4gVGhpcyBtYXkgYmUgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgZnJvbSBhIGxpYnJhcnkgdGhhdCBpcyBub3RcbiAgICogY29tcGlsZWQgd2l0aCBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZC5cbiAgICpcbiAgICogSWYgYGNoZWNrVHlwZU9mSW5wdXRCaW5kaW5nc2AgaXMgc2V0IHRvIGBmYWxzZWAsIHRoaXMgZmxhZyBoYXMgbm8gZWZmZWN0LlxuICAgKi9cbiAgc3RyaWN0TnVsbElucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgdGV4dCBhdHRyaWJ1dGVzIHRoYXQgaGFwcGVuIHRvIGJlIGNvbnN1bWVkIGJ5IGEgZGlyZWN0aXZlIG9yIGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGluIGEgdGVtcGxhdGUgY29udGFpbmluZyBgPGlucHV0IG1hdElucHV0IGRpc2FibGVkPmAgdGhlIGBkaXNhYmxlZGAgYXR0cmlidXRlIGVuZHNcbiAgICogdXAgYmVpbmcgY29uc3VtZWQgYXMgYW4gaW5wdXQgd2l0aCB0eXBlIGBib29sZWFuYCBieSB0aGUgYG1hdElucHV0YCBkaXJlY3RpdmUuIEF0IHJ1bnRpbWUsIHRoZVxuICAgKiBpbnB1dCB3aWxsIGJlIHNldCB0byB0aGUgYXR0cmlidXRlJ3Mgc3RyaW5nIHZhbHVlLCB3aGljaCBpcyBhbiBlbXB0eSBzdHJpbmcgZm9yIGF0dHJpYnV0ZXNcbiAgICogd2l0aG91dCBhIHZhbHVlLCBzbyB3aXRoIHRoaXMgZmxhZyBzZXQgdG8gYHRydWVgLCBhbiBlcnJvciB3b3VsZCBiZSByZXBvcnRlZC4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRleHQgYXR0cmlidXRlcyB3aWxsIG5ldmVyIHJlcG9ydCBhbiBlcnJvci5cbiAgICpcbiAgICogTm90ZSB0aGF0IGlmIGBjaGVja1R5cGVPZklucHV0QmluZGluZ3NgIGlzIHNldCB0byBgZmFsc2VgLCB0aGlzIGZsYWcgaGFzIG5vIGVmZmVjdC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQXR0cmlidXRlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMgdG8gRE9NIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFzIGBjaGVja1R5cGVPZkJpbmRpbmdzYCwgYnV0IG9ubHkgYXBwbGllcyB0byBiaW5kaW5ncyB0byBET00gcHJvcGVydGllcy5cbiAgICpcbiAgICogVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIHVzZSBvZiB0aGUgYERvbVNjaGVtYUNoZWNrZXJgIHRvIHZhbGlkYXRlIHRoZSB0ZW1wbGF0ZSBhZ2FpbnN0IHRoZSBET01cbiAgICogc2NoZW1hLiBSYXRoZXIsIHRoaXMgZmxhZyBpcyBhbiBleHBlcmltZW50YWwsIG5vdCB5ZXQgY29tcGxldGUgZmVhdHVyZSB3aGljaCB1c2VzIHRoZVxuICAgKiBsaWIuZG9tLmQudHMgRE9NIHR5cGluZ3MgaW4gVHlwZVNjcmlwdCB0byB2YWxpZGF0ZSB0aGF0IERPTSBiaW5kaW5ncyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZVxuICAgKiBmb3IgYXNzaWduYWJpbGl0eSB0byB0aGUgdW5kZXJseWluZyBET00gZWxlbWVudCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21CaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmZlciB0aGUgdHlwZSBvZiB0aGUgYCRldmVudGAgdmFyaWFibGUgaW4gZXZlbnQgYmluZGluZ3MgZm9yIGRpcmVjdGl2ZSBvdXRwdXRzIG9yXG4gICAqIGFuaW1hdGlvbiBldmVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBgJGV2ZW50YCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBnZW5lcmljIHR5cGUgb2ZcbiAgICogYEV2ZW50RW1pdHRlcmAvYFN1YmplY3RgIG9mIHRoZSBvdXRwdXQuIElmIHNldCB0byBgZmFsc2VgLCB0aGUgYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZlxuICAgKiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZPdXRwdXRFdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIGluIGV2ZW50IGJpbmRpbmdzIGZvciBhbmltYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBgQW5pbWF0aW9uRXZlbnRgIGZyb20gYEBhbmd1bGFyL2FuaW1hdGlvbnNgLlxuICAgKiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIHdpbGwgYmUgb2YgdHlwZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQW5pbWF0aW9uRXZlbnRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBgJGV2ZW50YCB2YXJpYWJsZSBpbiBldmVudCBiaW5kaW5ncyB0byBET00gZXZlbnRzLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBpbmZlcnJlZCBiYXNlZCBvbiBUeXBlU2NyaXB0J3NcbiAgICogYEhUTUxFbGVtZW50RXZlbnRNYXBgLCB3aXRoIGEgZmFsbGJhY2sgdG8gdGhlIG5hdGl2ZSBgRXZlbnRgIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCB0aGVcbiAgICogYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21FdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgbG9jYWwgcmVmZXJlbmNlcyB0byBET00gZWxlbWVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSBvbiBhIERPTSBub2RlIGluIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlXG4gICAqIGRldGVybWluZWQgYnkgdGhlIHR5cGUgb2YgYGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRgIGZvciB0aGUgZ2l2ZW4gRE9NIG5vZGUgdHlwZS4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciBET00gbm9kZXMgd2lsbCBiZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mRG9tUmVmZXJlbmNlczogYm9vbGVhbjtcblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIGxvY2FsIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSB0aGF0IHBvaW50cyB0byBhIGRpcmVjdGl2ZSBvciBgVGVtcGxhdGVSZWZgIGluXG4gICAqIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlIGluZmVycmVkIGNvcnJlY3RseS4gSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciB3aWxsIGJlXG4gICAqIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZOb25Eb21SZWZlcmVuY2VzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdHlwZSBpbmZvcm1hdGlvbiBmcm9tIHBpcGVzIGluIHRoZSB0eXBlLWNoZWNraW5nIG9wZXJhdGlvbi5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZW4gdGhlIHBpcGUncyB0eXBlIHNpZ25hdHVyZSBmb3IgYHRyYW5zZm9ybSgpYCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGhlXG4gICAqIHVzYWdlIG9mIHRoZSBwaXBlLiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyBhIHBpcGUgd2lsbCBiZSBgYW55YCwgYW5kXG4gICAqIHRoZSB0eXBlcyBvZiB0aGUgcGlwZSdzIHZhbHVlIGFuZCBhcmd1bWVudHMgd2lsbCBub3QgYmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBgdHJhbnNmb3JtKClgXG4gICAqIG1ldGhvZC5cbiAgICovXG4gIGNoZWNrVHlwZU9mUGlwZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbmFycm93IHRoZSB0eXBlcyBvZiB0ZW1wbGF0ZSBjb250ZXh0cy5cbiAgICovXG4gIGFwcGx5VGVtcGxhdGVDb250ZXh0R3VhcmRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBhIHN0cmljdCB0eXBlIGZvciBudWxsLXNhZmUgbmF2aWdhdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJldHVybiB0eXBlIG9mIGBhPy5iYCBvciBgYT8oKWAgd2lsbCBiZSBgYW55YC4gSWYgc2V0IHRvIGB0cnVlYCxcbiAgICogdGhlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYGE/LmJgIGZvciBleGFtcGxlIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHR5cGUgb2YgdGhlIHRlcm5hcnlcbiAgICogZXhwcmVzc2lvbiBgYSAhPSBudWxsID8gYS5iIDogYWAuXG4gICAqL1xuICBzdHJpY3RTYWZlTmF2aWdhdGlvblR5cGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlc2NlbmQgaW50byB0ZW1wbGF0ZSBib2RpZXMgYW5kIGNoZWNrIGFueSBiaW5kaW5ncyB0aGVyZS5cbiAgICovXG4gIGNoZWNrVGVtcGxhdGVCb2RpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgcmVzb2x2YWJsZSBxdWVyaWVzLlxuICAgKlxuICAgKiBUaGlzIGlzIGN1cnJlbnRseSBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlLlxuICAgKi9cbiAgY2hlY2tRdWVyaWVzOiBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgYW55IGdlbmVyaWMgdHlwZXMgb2YgdGhlIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiBpZiB0aGUgY29udGV4dCBjb21wb25lbnQgaGFzIGdlbmVyaWMgdHlwZXMsIHRob3NlIHdpbGwgYmUgbWlycm9yZWQgaW5cbiAgICogdGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgY29udGV4dC4gSWYgYGZhbHNlYCwgYW55IGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBjb250ZXh0XG4gICAqIGNvbXBvbmVudCB3aWxsIGJlIHNldCB0byBgYW55YCBkdXJpbmcgdHlwZS1jaGVja2luZy5cbiAgICovXG4gIHVzZUNvbnRleHRHZW5lcmljVHlwZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5mZXIgdHlwZXMgZm9yIG9iamVjdCBhbmQgYXJyYXkgbGl0ZXJhbHMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiB0aGUgdHlwZSBvZiBhbiBvYmplY3Qgb3IgYW4gYXJyYXkgbGl0ZXJhbCBpbiB0aGUgdGVtcGxhdGUgd2lsbCBiZSB0aGVcbiAgICogc2FtZSB0eXBlIHRoYXQgVHlwZVNjcmlwdCB3b3VsZCBpbmZlciBpZiB0aGUgbGl0ZXJhbCBhcHBlYXJlZCBpbiBjb2RlLiBJZiBgZmFsc2VgLCB0aGVuIHN1Y2hcbiAgICogbGl0ZXJhbHMgYXJlIGNhc3QgdG8gYGFueWAgd2hlbiBkZWNsYXJlZC5cbiAgICovXG4gIHN0cmljdExpdGVyYWxUeXBlczogYm9vbGVhbjtcbn1cblxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVNvdXJjZU1hcHBpbmcgPVxuICAgIERpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZ3xJbmRpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZ3xFeHRlcm5hbFRlbXBsYXRlU291cmNlTWFwcGluZztcblxuLyoqXG4gKiBBIG1hcHBpbmcgdG8gYW4gaW5saW5lIHRlbXBsYXRlIGluIGEgVFMgZmlsZS5cbiAqXG4gKiBgUGFyc2VTb3VyY2VTcGFuYHMgZm9yIHRoaXMgdGVtcGxhdGUgc2hvdWxkIGJlIGFjY3VyYXRlIGZvciBkaXJlY3QgcmVwb3J0aW5nIGluIGEgVFMgZXJyb3JcbiAqIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0VGVtcGxhdGVTb3VyY2VNYXBwaW5nIHtcbiAgdHlwZTogJ2RpcmVjdCc7XG4gIG5vZGU6IHRzLlN0cmluZ0xpdGVyYWx8dHMuTm9TdWJzdGl0dXRpb25UZW1wbGF0ZUxpdGVyYWw7XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIHRvIGEgdGVtcGxhdGUgd2hpY2ggaXMgc3RpbGwgaW4gYSBUUyBmaWxlLCBidXQgd2hlcmUgdGhlIG5vZGUgcG9zaXRpb25zIGluIGFueVxuICogYFBhcnNlU291cmNlU3BhbmBzIGFyZSBub3QgYWNjdXJhdGUgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci5cbiAqXG4gKiBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgdGVtcGxhdGUgZXhwcmVzc2lvbiB3YXMgaW50ZXJwb2xhdGVkIGluIGEgd2F5IHdoZXJlIHRoZSBjb21waWxlciBjb3VsZCBub3RcbiAqIGNvbnN0cnVjdCBhIGNvbnRpZ3VvdXMgbWFwcGluZyBmb3IgdGhlIHRlbXBsYXRlIHN0cmluZy4gVGhlIGBub2RlYCByZWZlcnMgdG8gdGhlIGB0ZW1wbGF0ZWBcbiAqIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kaXJlY3RUZW1wbGF0ZVNvdXJjZU1hcHBpbmcge1xuICB0eXBlOiAnaW5kaXJlY3QnO1xuICBjb21wb25lbnRDbGFzczogQ2xhc3NEZWNsYXJhdGlvbjtcbiAgbm9kZTogdHMuRXhwcmVzc2lvbjtcbiAgdGVtcGxhdGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG1hcHBpbmcgdG8gYSB0ZW1wbGF0ZSBkZWNsYXJlZCBpbiBhbiBleHRlcm5hbCBIVE1MIGZpbGUsIHdoZXJlIG5vZGUgcG9zaXRpb25zIGluXG4gKiBgUGFyc2VTb3VyY2VTcGFuYHMgcmVwcmVzZW50IGFjY3VyYXRlIG9mZnNldHMgaW50byB0aGUgZXh0ZXJuYWwgZmlsZS5cbiAqXG4gKiBJbiB0aGlzIGNhc2UsIHRoZSBnaXZlbiBgbm9kZWAgcmVmZXJzIHRvIHRoZSBgdGVtcGxhdGVVcmxgIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxUZW1wbGF0ZVNvdXJjZU1hcHBpbmcge1xuICB0eXBlOiAnZXh0ZXJuYWwnO1xuICBjb21wb25lbnRDbGFzczogQ2xhc3NEZWNsYXJhdGlvbjtcbiAgbm9kZTogdHMuRXhwcmVzc2lvbjtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgdGVtcGxhdGVVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBYnN0cmFjdHMgdGhlIG9wZXJhdGlvbiBvZiBkZXRlcm1pbmluZyB3aGljaCBzaGltIGZpbGUgd2lsbCBob3N0IGEgcGFydGljdWxhciBjb21wb25lbnQnc1xuICogdGVtcGxhdGUgdHlwZS1jaGVja2luZyBjb2RlLlxuICpcbiAqIERpZmZlcmVudCBjb25zdW1lcnMgb2YgdGhlIHR5cGUgY2hlY2tpbmcgaW5mcmFzdHJ1Y3R1cmUgbWF5IGNob29zZSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0b1xuICogb3B0aW1pemUgZm9yIHRoZWlyIHNwZWNpZmljIHVzZSBjYXNlIChmb3IgZXhhbXBsZSwgdGhlIGNvbW1hbmQtbGluZSBjb21waWxlciBvcHRpbWl6ZXMgZm9yXG4gKiBlZmZpY2llbnQgYHRzLlByb2dyYW1gIHJldXNlIGluIHdhdGNoIG1vZGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFRvU2hpbU1hcHBpbmdTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBHaXZlbiBhIGNvbXBvbmVudCwgZGV0ZXJtaW5lIGEgcGF0aCB0byB0aGUgc2hpbSBmaWxlIGludG8gd2hpY2ggdGhhdCBjb21wb25lbnQncyB0eXBlIGNoZWNraW5nXG4gICAqIGNvZGUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqXG4gICAqIEEgbWFqb3IgY29uc3RyYWludCBpcyB0aGF0IGNvbXBvbmVudHMgaW4gZGlmZmVyZW50IGlucHV0IGZpbGVzIG11c3Qgbm90IHNoYXJlIHRoZSBzYW1lIHNoaW1cbiAgICogZmlsZS4gVGhlIGJlaGF2aW9yIG9mIHRoZSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHN5c3RlbSBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB2aW9sYXRlZC5cbiAgICovXG4gIHNoaW1QYXRoRm9yQ29tcG9uZW50KG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBBYnNvbHV0ZUZzUGF0aDtcbn1cblxuLyoqXG4gKiBTdHJhdGVneSB1c2VkIHRvIG1hbmFnZSBhIGB0cy5Qcm9ncmFtYCB3aGljaCBjb250YWlucyB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIGNvZGUgYW5kIHVwZGF0ZSBpdFxuICogb3ZlciB0aW1lLlxuICpcbiAqIFRoaXMgYWJzdHJhY3Rpb24gYWxsb3dzIGJvdGggdGhlIEFuZ3VsYXIgY29tcGlsZXIgaXRzZWxmIGFzIHdlbGwgYXMgdGhlIGxhbmd1YWdlIHNlcnZpY2UgdG9cbiAqIGltcGxlbWVudCBlZmZpY2llbnQgdGVtcGxhdGUgdHlwZS1jaGVja2luZyB1c2luZyBjb21tb24gaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUNoZWNraW5nUHJvZ3JhbVN0cmF0ZWd5IGV4dGVuZHMgQ29tcG9uZW50VG9TaGltTWFwcGluZ1N0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdHJhdGVneSBzdXBwb3J0cyBtb2RpZnlpbmcgdXNlciBmaWxlcyAoaW5saW5lIG1vZGlmaWNhdGlvbnMpIGluIGFkZGl0aW9uIHRvXG4gICAqIG1vZGlmeWluZyB0eXBlLWNoZWNraW5nIHNoaW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcG9ydHNJbmxpbmVPcGVyYXRpb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHByb2dyYW0sIGNvbnRhaW5pbmcgYWxsIHRoZSB1cGRhdGVzIG1hZGUgdGh1cyBmYXIuXG4gICAqL1xuICBnZXRQcm9ncmFtKCk6IHRzLlByb2dyYW07XG5cbiAgLyoqXG4gICAqIEluY29ycG9yYXRlIGEgc2V0IG9mIGNoYW5nZXMgdG8gZWl0aGVyIGF1Z21lbnQgb3IgY29tcGxldGVseSByZXBsYWNlIHRoZSB0eXBlLWNoZWNraW5nIGNvZGVcbiAgICogaW5jbHVkZWQgaW4gdGhlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbS5cbiAgICovXG4gIHVwZGF0ZUZpbGVzKGNvbnRlbnRzOiBNYXA8QWJzb2x1dGVGc1BhdGgsIHN0cmluZz4sIHVwZGF0ZU1vZGU6IFVwZGF0ZU1vZGUpOiB2b2lkO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVNb2RlIHtcbiAgLyoqXG4gICAqIEEgY29tcGxldGUgdXBkYXRlIGNyZWF0ZXMgYSBjb21wbGV0ZWx5IG5ldyBvdmVybGF5IG9mIHR5cGUtY2hlY2tpbmcgY29kZSBvbiB0b3Agb2YgdGhlIHVzZXInc1xuICAgKiBvcmlnaW5hbCBwcm9ncmFtLCB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdHlwZS1jaGVja2luZyBjb2RlIGZyb20gcHJldmlvdXMgY2FsbHMgdG9cbiAgICogYHVwZGF0ZUZpbGVzYC5cbiAgICovXG4gIENvbXBsZXRlLFxuXG4gIC8qKlxuICAgKiBBbiBpbmNyZW1lbnRhbCB1cGRhdGUgY2hhbmdlcyB0aGUgY29udGVudHMgb2Ygc29tZSBmaWxlcyBpbiB0aGUgdHlwZS1jaGVja2luZyBwcm9ncmFtIHdpdGhvdXRcbiAgICogcmV2ZXJ0aW5nIGFueSBwcmlvciBjaGFuZ2VzLlxuICAgKi9cbiAgSW5jcmVtZW50YWwsXG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90eXBlY2hlY2svYXBpL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUEyVUgsSUFBWSxVQWFYO0lBYkQsV0FBWSxVQUFVO1FBQ3BCOzs7O1dBSUc7UUFDSCxtREFBUSxDQUFBO1FBRVI7OztXQUdHO1FBQ0gseURBQVcsQ0FBQTtJQUNiLENBQUMsRUFiVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQWFyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0JvdW5kVGFyZ2V0LCBEaXJlY3RpdmVNZXRhLCBTY2hlbWFNZXRhZGF0YX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Q2xhc3NQcm9wZXJ0eU1hcHBpbmcsIERpcmVjdGl2ZVR5cGVDaGVja01ldGF9IGZyb20gJy4uLy4uL21ldGFkYXRhJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cblxuLyoqXG4gKiBFeHRlbnNpb24gb2YgYERpcmVjdGl2ZU1ldGFgIHRoYXQgaW5jbHVkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB0eXBlLWNoZWNrIHRoZVxuICogdXNhZ2Ugb2YgYSBwYXJ0aWN1bGFyIGRpcmVjdGl2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YSBleHRlbmRzIERpcmVjdGl2ZU1ldGEsIERpcmVjdGl2ZVR5cGVDaGVja01ldGEge1xuICByZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPjtcbiAgcXVlcmllczogc3RyaW5nW107XG4gIGlucHV0czogQ2xhc3NQcm9wZXJ0eU1hcHBpbmc7XG4gIG91dHB1dHM6IENsYXNzUHJvcGVydHlNYXBwaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUlkID0gc3RyaW5nJntfX2JyYW5kOiAnVGVtcGxhdGVJZCd9O1xuXG4vKipcbiAqIE1ldGFkYXRhIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIGEgY29tcG9uZW50IGNsYXNzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgdHlwZSBjaGVjayBibG9jayAoVENCKVxuICogZm9yIHRoYXQgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDaGVja0Jsb2NrTWV0YWRhdGEge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIHdoaWNoIGdhdmUgcmlzZSB0byB0aGlzIFRDQi5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBtYXAgZXJyb3JzIGJhY2sgdG8gdGhlIGB0cy5DbGFzc0RlY2xhcmF0aW9uYCBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGlkOiBUZW1wbGF0ZUlkO1xuXG4gIC8qKlxuICAgKiBTZW1hbnRpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGJvdW5kVGFyZ2V0OiBCb3VuZFRhcmdldDxUeXBlQ2hlY2thYmxlRGlyZWN0aXZlTWV0YT47XG5cbiAgLypcbiAgICogUGlwZXMgdXNlZCBpbiB0aGUgdGVtcGxhdGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHBpcGVzOiBNYXA8c3RyaW5nLCBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbjx0cy5DbGFzc0RlY2xhcmF0aW9uPj4+O1xuXG4gIC8qKlxuICAgKiBTY2hlbWFzIHRoYXQgYXBwbHkgdG8gdGhpcyB0ZW1wbGF0ZS5cbiAgICovXG4gIHNjaGVtYXM6IFNjaGVtYU1ldGFkYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUN0b3JNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIHR5cGUgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gICAqL1xuICBmbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSBhIGJvZHkgZm9yIHRoZSBmdW5jdGlvbiBvciBub3QuXG4gICAqL1xuICBib2R5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCwgb3V0cHV0LCBhbmQgcXVlcnkgZmllbGQgbmFtZXMgaW4gdGhlIHR5cGUgd2hpY2ggc2hvdWxkIGJlIGluY2x1ZGVkIGFzIGNvbnN0cnVjdG9yIGlucHV0LlxuICAgKi9cbiAgZmllbGRzOiB7aW5wdXRzOiBzdHJpbmdbXTsgb3V0cHV0czogc3RyaW5nW107IHF1ZXJpZXM6IHN0cmluZ1tdO307XG5cbiAgLyoqXG4gICAqIGBTZXRgIG9mIGZpZWxkIG5hbWVzIHdoaWNoIGhhdmUgdHlwZSBjb2VyY2lvbiBlbmFibGVkLlxuICAgKi9cbiAgY29lcmNlZElucHV0RmllbGRzOiBTZXQ8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ2hlY2tpbmdDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGBmYWxzZWAgdGhlbiB0aGUgZXhwcmVzc2lvbiBgW2lucHV0XT1cImV4cHJcImAgd2lsbCBoYXZlIGBleHByYCB0eXBlLVxuICAgKiBjaGVja2VkLCBidXQgbm90IHRoZSBhc3NpZ25tZW50IG9mIHRoZSByZXN1bHRpbmcgdHlwZSB0byB0aGUgYGlucHV0YCBwcm9wZXJ0eSBvZiB3aGljaGV2ZXJcbiAgICogZGlyZWN0aXZlIG9yIGNvbXBvbmVudCBpcyByZWNlaXZpbmcgdGhlIGJpbmRpbmcuIElmIHNldCB0byBgdHJ1ZWAsIGJvdGggc2lkZXMgb2YgdGhlIGFzc2lnbm1lbnRcbiAgICogYXJlIGNoZWNrZWQuXG4gICAqXG4gICAqIFRoaXMgZmxhZyBvbmx5IGFmZmVjdHMgYmluZGluZ3MgdG8gY29tcG9uZW50cy9kaXJlY3RpdmVzLiBCaW5kaW5ncyB0byB0aGUgRE9NIGFyZSBjaGVja2VkIGlmXG4gICAqIGBjaGVja1R5cGVPZkRvbUJpbmRpbmdzYCBpcyBzZXQuXG4gICAqL1xuICBjaGVja1R5cGVPZklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaG9ub3IgdGhlIGFjY2VzcyBtb2RpZmllcnMgb24gaW5wdXQgYmluZGluZ3MgZm9yIHRoZSBjb21wb25lbnQvZGlyZWN0aXZlLlxuICAgKlxuICAgKiBJZiBhIHRlbXBsYXRlIGJpbmRpbmcgYXR0ZW1wdHMgdG8gYXNzaWduIHRvIGFuIGlucHV0IHRoYXQgaXMgcHJpdmF0ZS9wcm90ZWN0ZWQvcmVhZG9ubHksXG4gICAqIHRoaXMgd2lsbCBwcm9kdWNlIGVycm9ycyB3aGVuIGVuYWJsZWQgYnV0IHdpbGwgbm90IHdoZW4gZGlzYWJsZWQuXG4gICAqL1xuICBob25vckFjY2Vzc01vZGlmaWVyc0ZvcklucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHN0cmljdCBudWxsIHR5cGVzIGZvciBpbnB1dCBiaW5kaW5ncyBmb3IgZGlyZWN0aXZlcy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBjb21waWxlZCB3aXRoIFR5cGVTY3JpcHQncyBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZFxuICAgKiB3aWxsIHByb2R1Y2UgdHlwZSBlcnJvcnMgZm9yIGJpbmRpbmdzIHdoaWNoIGNhbiBldmFsdWF0ZSB0byBgdW5kZWZpbmVkYCBvciBgbnVsbGAgd2hlcmUgdGhlXG4gICAqIGlucHV0cydzIHR5cGUgZG9lcyBub3QgaW5jbHVkZSBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaW4gaXRzIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCBhbGxcbiAgICogYmluZGluZyBleHByZXNzaW9ucyBhcmUgd3JhcHBlZCBpbiBhIG5vbi1udWxsIGFzc2VydGlvbiBvcGVyYXRvciB0byBlZmZlY3RpdmVseSBkaXNhYmxlIHN0cmljdFxuICAgKiBudWxsIGNoZWNrcy4gVGhpcyBtYXkgYmUgcGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgZnJvbSBhIGxpYnJhcnkgdGhhdCBpcyBub3RcbiAgICogY29tcGlsZWQgd2l0aCBgc3RyaWN0TnVsbENoZWNrc2AgZW5hYmxlZC5cbiAgICpcbiAgICogSWYgYGNoZWNrVHlwZU9mSW5wdXRCaW5kaW5nc2AgaXMgc2V0IHRvIGBmYWxzZWAsIHRoaXMgZmxhZyBoYXMgbm8gZWZmZWN0LlxuICAgKi9cbiAgc3RyaWN0TnVsbElucHV0QmluZGluZ3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgdGV4dCBhdHRyaWJ1dGVzIHRoYXQgaGFwcGVuIHRvIGJlIGNvbnN1bWVkIGJ5IGEgZGlyZWN0aXZlIG9yIGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGluIGEgdGVtcGxhdGUgY29udGFpbmluZyBgPGlucHV0IG1hdElucHV0IGRpc2FibGVkPmAgdGhlIGBkaXNhYmxlZGAgYXR0cmlidXRlIGVuZHNcbiAgICogdXAgYmVpbmcgY29uc3VtZWQgYXMgYW4gaW5wdXQgd2l0aCB0eXBlIGBib29sZWFuYCBieSB0aGUgYG1hdElucHV0YCBkaXJlY3RpdmUuIEF0IHJ1bnRpbWUsIHRoZVxuICAgKiBpbnB1dCB3aWxsIGJlIHNldCB0byB0aGUgYXR0cmlidXRlJ3Mgc3RyaW5nIHZhbHVlLCB3aGljaCBpcyBhbiBlbXB0eSBzdHJpbmcgZm9yIGF0dHJpYnV0ZXNcbiAgICogd2l0aG91dCBhIHZhbHVlLCBzbyB3aXRoIHRoaXMgZmxhZyBzZXQgdG8gYHRydWVgLCBhbiBlcnJvciB3b3VsZCBiZSByZXBvcnRlZC4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRleHQgYXR0cmlidXRlcyB3aWxsIG5ldmVyIHJlcG9ydCBhbiBlcnJvci5cbiAgICpcbiAgICogTm90ZSB0aGF0IGlmIGBjaGVja1R5cGVPZklucHV0QmluZGluZ3NgIGlzIHNldCB0byBgZmFsc2VgLCB0aGlzIGZsYWcgaGFzIG5vIGVmZmVjdC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQXR0cmlidXRlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjaGVjayB0aGUgbGVmdC1oYW5kIHNpZGUgdHlwZSBvZiBiaW5kaW5nIG9wZXJhdGlvbnMgdG8gRE9NIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFzIGBjaGVja1R5cGVPZkJpbmRpbmdzYCwgYnV0IG9ubHkgYXBwbGllcyB0byBiaW5kaW5ncyB0byBET00gcHJvcGVydGllcy5cbiAgICpcbiAgICogVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIHVzZSBvZiB0aGUgYERvbVNjaGVtYUNoZWNrZXJgIHRvIHZhbGlkYXRlIHRoZSB0ZW1wbGF0ZSBhZ2FpbnN0IHRoZSBET01cbiAgICogc2NoZW1hLiBSYXRoZXIsIHRoaXMgZmxhZyBpcyBhbiBleHBlcmltZW50YWwsIG5vdCB5ZXQgY29tcGxldGUgZmVhdHVyZSB3aGljaCB1c2VzIHRoZVxuICAgKiBsaWIuZG9tLmQudHMgRE9NIHR5cGluZ3MgaW4gVHlwZVNjcmlwdCB0byB2YWxpZGF0ZSB0aGF0IERPTSBiaW5kaW5ncyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZVxuICAgKiBmb3IgYXNzaWduYWJpbGl0eSB0byB0aGUgdW5kZXJseWluZyBET00gZWxlbWVudCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21CaW5kaW5nczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmZlciB0aGUgdHlwZSBvZiB0aGUgYCRldmVudGAgdmFyaWFibGUgaW4gZXZlbnQgYmluZGluZ3MgZm9yIGRpcmVjdGl2ZSBvdXRwdXRzIG9yXG4gICAqIGFuaW1hdGlvbiBldmVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBgJGV2ZW50YCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBnZW5lcmljIHR5cGUgb2ZcbiAgICogYEV2ZW50RW1pdHRlcmAvYFN1YmplY3RgIG9mIHRoZSBvdXRwdXQuIElmIHNldCB0byBgZmFsc2VgLCB0aGUgYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZlxuICAgKiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZPdXRwdXRFdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIGluIGV2ZW50IGJpbmRpbmdzIGZvciBhbmltYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBgQW5pbWF0aW9uRXZlbnRgIGZyb20gYEBhbmd1bGFyL2FuaW1hdGlvbnNgLlxuICAgKiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIGAkZXZlbnRgIHZhcmlhYmxlIHdpbGwgYmUgb2YgdHlwZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mQW5pbWF0aW9uRXZlbnRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBgJGV2ZW50YCB2YXJpYWJsZSBpbiBldmVudCBiaW5kaW5ncyB0byBET00gZXZlbnRzLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlIHR5cGUgb2YgYCRldmVudGAgd2lsbCBiZSBpbmZlcnJlZCBiYXNlZCBvbiBUeXBlU2NyaXB0J3NcbiAgICogYEhUTUxFbGVtZW50RXZlbnRNYXBgLCB3aXRoIGEgZmFsbGJhY2sgdG8gdGhlIG5hdGl2ZSBgRXZlbnRgIHR5cGUuIElmIHNldCB0byBgZmFsc2VgLCB0aGVcbiAgICogYCRldmVudGAgdmFyaWFibGUgd2lsbCBiZSBvZiB0eXBlIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZEb21FdmVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5mZXIgdGhlIHR5cGUgb2YgbG9jYWwgcmVmZXJlbmNlcyB0byBET00gZWxlbWVudHMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSBvbiBhIERPTSBub2RlIGluIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlXG4gICAqIGRldGVybWluZWQgYnkgdGhlIHR5cGUgb2YgYGRvY3VtZW50LmNyZWF0ZUVsZW1lbnRgIGZvciB0aGUgZ2l2ZW4gRE9NIG5vZGUgdHlwZS4gSWYgc2V0IHRvXG4gICAqIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciBET00gbm9kZXMgd2lsbCBiZSBgYW55YC5cbiAgICovXG4gIGNoZWNrVHlwZU9mRG9tUmVmZXJlbmNlczogYm9vbGVhbjtcblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluZmVyIHRoZSB0eXBlIG9mIGxvY2FsIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgdHlwZSBvZiBhIGAjcmVmYCB2YXJpYWJsZSB0aGF0IHBvaW50cyB0byBhIGRpcmVjdGl2ZSBvciBgVGVtcGxhdGVSZWZgIGluXG4gICAqIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlIGluZmVycmVkIGNvcnJlY3RseS4gSWYgc2V0IHRvIGBmYWxzZWAsIHRoZSB0eXBlIG9mIGByZWZgIGZvciB3aWxsIGJlXG4gICAqIGBhbnlgLlxuICAgKi9cbiAgY2hlY2tUeXBlT2ZOb25Eb21SZWZlcmVuY2VzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdHlwZSBpbmZvcm1hdGlvbiBmcm9tIHBpcGVzIGluIHRoZSB0eXBlLWNoZWNraW5nIG9wZXJhdGlvbi5cbiAgICpcbiAgICogSWYgdGhpcyBpcyBgdHJ1ZWAsIHRoZW4gdGhlIHBpcGUncyB0eXBlIHNpZ25hdHVyZSBmb3IgYHRyYW5zZm9ybSgpYCB3aWxsIGJlIHVzZWQgdG8gY2hlY2sgdGhlXG4gICAqIHVzYWdlIG9mIHRoZSBwaXBlLiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyBhIHBpcGUgd2lsbCBiZSBgYW55YCwgYW5kXG4gICAqIHRoZSB0eXBlcyBvZiB0aGUgcGlwZSdzIHZhbHVlIGFuZCBhcmd1bWVudHMgd2lsbCBub3QgYmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBgdHJhbnNmb3JtKClgXG4gICAqIG1ldGhvZC5cbiAgICovXG4gIGNoZWNrVHlwZU9mUGlwZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbmFycm93IHRoZSB0eXBlcyBvZiB0ZW1wbGF0ZSBjb250ZXh0cy5cbiAgICovXG4gIGFwcGx5VGVtcGxhdGVDb250ZXh0R3VhcmRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBhIHN0cmljdCB0eXBlIGZvciBudWxsLXNhZmUgbmF2aWdhdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGBmYWxzZWAsIHRoZW4gdGhlIHJldHVybiB0eXBlIG9mIGBhPy5iYCBvciBgYT8oKWAgd2lsbCBiZSBgYW55YC4gSWYgc2V0IHRvIGB0cnVlYCxcbiAgICogdGhlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYGE/LmJgIGZvciBleGFtcGxlIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHR5cGUgb2YgdGhlIHRlcm5hcnlcbiAgICogZXhwcmVzc2lvbiBgYSAhPSBudWxsID8gYS5iIDogYWAuXG4gICAqL1xuICBzdHJpY3RTYWZlTmF2aWdhdGlvblR5cGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlc2NlbmQgaW50byB0ZW1wbGF0ZSBib2RpZXMgYW5kIGNoZWNrIGFueSBiaW5kaW5ncyB0aGVyZS5cbiAgICovXG4gIGNoZWNrVGVtcGxhdGVCb2RpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWx3YXlzIGFwcGx5IERPTSBzY2hlbWEgY2hlY2tzIGluIHRlbXBsYXRlIGJvZGllcywgaW5kZXBlbmRlbnRseSBvZiB0aGVcbiAgICogYGNoZWNrVGVtcGxhdGVCb2RpZXNgIHNldHRpbmcuXG4gICAqL1xuICBhbHdheXNDaGVja1NjaGVtYUluVGVtcGxhdGVCb2RpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2hlY2sgcmVzb2x2YWJsZSBxdWVyaWVzLlxuICAgKlxuICAgKiBUaGlzIGlzIGN1cnJlbnRseSBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlLlxuICAgKi9cbiAgY2hlY2tRdWVyaWVzOiBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgYW55IGdlbmVyaWMgdHlwZXMgb2YgdGhlIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiBpZiB0aGUgY29udGV4dCBjb21wb25lbnQgaGFzIGdlbmVyaWMgdHlwZXMsIHRob3NlIHdpbGwgYmUgbWlycm9yZWQgaW5cbiAgICogdGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgY29udGV4dC4gSWYgYGZhbHNlYCwgYW55IGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBjb250ZXh0XG4gICAqIGNvbXBvbmVudCB3aWxsIGJlIHNldCB0byBgYW55YCBkdXJpbmcgdHlwZS1jaGVja2luZy5cbiAgICovXG4gIHVzZUNvbnRleHRHZW5lcmljVHlwZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gaW5mZXIgdHlwZXMgZm9yIG9iamVjdCBhbmQgYXJyYXkgbGl0ZXJhbHMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIGB0cnVlYCwgdGhlbiB0aGUgdHlwZSBvZiBhbiBvYmplY3Qgb3IgYW4gYXJyYXkgbGl0ZXJhbCBpbiB0aGUgdGVtcGxhdGUgd2lsbCBiZSB0aGVcbiAgICogc2FtZSB0eXBlIHRoYXQgVHlwZVNjcmlwdCB3b3VsZCBpbmZlciBpZiB0aGUgbGl0ZXJhbCBhcHBlYXJlZCBpbiBjb2RlLiBJZiBgZmFsc2VgLCB0aGVuIHN1Y2hcbiAgICogbGl0ZXJhbHMgYXJlIGNhc3QgdG8gYGFueWAgd2hlbiBkZWNsYXJlZC5cbiAgICovXG4gIHN0cmljdExpdGVyYWxUeXBlczogYm9vbGVhbjtcbn1cblxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVNvdXJjZU1hcHBpbmcgPVxuICAgIERpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZ3xJbmRpcmVjdFRlbXBsYXRlU291cmNlTWFwcGluZ3xFeHRlcm5hbFRlbXBsYXRlU291cmNlTWFwcGluZztcblxuLyoqXG4gKiBBIG1hcHBpbmcgdG8gYW4gaW5saW5lIHRlbXBsYXRlIGluIGEgVFMgZmlsZS5cbiAqXG4gKiBgUGFyc2VTb3VyY2VTcGFuYHMgZm9yIHRoaXMgdGVtcGxhdGUgc2hvdWxkIGJlIGFjY3VyYXRlIGZvciBkaXJlY3QgcmVwb3J0aW5nIGluIGEgVFMgZXJyb3JcbiAqIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0VGVtcGxhdGVTb3VyY2VNYXBwaW5nIHtcbiAgdHlwZTogJ2RpcmVjdCc7XG4gIG5vZGU6IHRzLlN0cmluZ0xpdGVyYWx8dHMuTm9TdWJzdGl0dXRpb25UZW1wbGF0ZUxpdGVyYWw7XG59XG5cbi8qKlxuICogQSBtYXBwaW5nIHRvIGEgdGVtcGxhdGUgd2hpY2ggaXMgc3RpbGwgaW4gYSBUUyBmaWxlLCBidXQgd2hlcmUgdGhlIG5vZGUgcG9zaXRpb25zIGluIGFueVxuICogYFBhcnNlU291cmNlU3BhbmBzIGFyZSBub3QgYWNjdXJhdGUgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci5cbiAqXG4gKiBUaGlzIGNhbiBvY2N1ciBpZiB0aGUgdGVtcGxhdGUgZXhwcmVzc2lvbiB3YXMgaW50ZXJwb2xhdGVkIGluIGEgd2F5IHdoZXJlIHRoZSBjb21waWxlciBjb3VsZCBub3RcbiAqIGNvbnN0cnVjdCBhIGNvbnRpZ3VvdXMgbWFwcGluZyBmb3IgdGhlIHRlbXBsYXRlIHN0cmluZy4gVGhlIGBub2RlYCByZWZlcnMgdG8gdGhlIGB0ZW1wbGF0ZWBcbiAqIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kaXJlY3RUZW1wbGF0ZVNvdXJjZU1hcHBpbmcge1xuICB0eXBlOiAnaW5kaXJlY3QnO1xuICBjb21wb25lbnRDbGFzczogQ2xhc3NEZWNsYXJhdGlvbjtcbiAgbm9kZTogdHMuRXhwcmVzc2lvbjtcbiAgdGVtcGxhdGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG1hcHBpbmcgdG8gYSB0ZW1wbGF0ZSBkZWNsYXJlZCBpbiBhbiBleHRlcm5hbCBIVE1MIGZpbGUsIHdoZXJlIG5vZGUgcG9zaXRpb25zIGluXG4gKiBgUGFyc2VTb3VyY2VTcGFuYHMgcmVwcmVzZW50IGFjY3VyYXRlIG9mZnNldHMgaW50byB0aGUgZXh0ZXJuYWwgZmlsZS5cbiAqXG4gKiBJbiB0aGlzIGNhc2UsIHRoZSBnaXZlbiBgbm9kZWAgcmVmZXJzIHRvIHRoZSBgdGVtcGxhdGVVcmxgIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxUZW1wbGF0ZVNvdXJjZU1hcHBpbmcge1xuICB0eXBlOiAnZXh0ZXJuYWwnO1xuICBjb21wb25lbnRDbGFzczogQ2xhc3NEZWNsYXJhdGlvbjtcbiAgbm9kZTogdHMuRXhwcmVzc2lvbjtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgdGVtcGxhdGVVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBYnN0cmFjdHMgdGhlIG9wZXJhdGlvbiBvZiBkZXRlcm1pbmluZyB3aGljaCBzaGltIGZpbGUgd2lsbCBob3N0IGEgcGFydGljdWxhciBjb21wb25lbnQnc1xuICogdGVtcGxhdGUgdHlwZS1jaGVja2luZyBjb2RlLlxuICpcbiAqIERpZmZlcmVudCBjb25zdW1lcnMgb2YgdGhlIHR5cGUgY2hlY2tpbmcgaW5mcmFzdHJ1Y3R1cmUgbWF5IGNob29zZSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0b1xuICogb3B0aW1pemUgZm9yIHRoZWlyIHNwZWNpZmljIHVzZSBjYXNlIChmb3IgZXhhbXBsZSwgdGhlIGNvbW1hbmQtbGluZSBjb21waWxlciBvcHRpbWl6ZXMgZm9yXG4gKiBlZmZpY2llbnQgYHRzLlByb2dyYW1gIHJldXNlIGluIHdhdGNoIG1vZGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFRvU2hpbU1hcHBpbmdTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBHaXZlbiBhIGNvbXBvbmVudCwgZGV0ZXJtaW5lIGEgcGF0aCB0byB0aGUgc2hpbSBmaWxlIGludG8gd2hpY2ggdGhhdCBjb21wb25lbnQncyB0eXBlIGNoZWNraW5nXG4gICAqIGNvZGUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqXG4gICAqIEEgbWFqb3IgY29uc3RyYWludCBpcyB0aGF0IGNvbXBvbmVudHMgaW4gZGlmZmVyZW50IGlucHV0IGZpbGVzIG11c3Qgbm90IHNoYXJlIHRoZSBzYW1lIHNoaW1cbiAgICogZmlsZS4gVGhlIGJlaGF2aW9yIG9mIHRoZSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHN5c3RlbSBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB2aW9sYXRlZC5cbiAgICovXG4gIHNoaW1QYXRoRm9yQ29tcG9uZW50KG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBBYnNvbHV0ZUZzUGF0aDtcbn1cblxuLyoqXG4gKiBTdHJhdGVneSB1c2VkIHRvIG1hbmFnZSBhIGB0cy5Qcm9ncmFtYCB3aGljaCBjb250YWlucyB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIGNvZGUgYW5kIHVwZGF0ZSBpdFxuICogb3ZlciB0aW1lLlxuICpcbiAqIFRoaXMgYWJzdHJhY3Rpb24gYWxsb3dzIGJvdGggdGhlIEFuZ3VsYXIgY29tcGlsZXIgaXRzZWxmIGFzIHdlbGwgYXMgdGhlIGxhbmd1YWdlIHNlcnZpY2UgdG9cbiAqIGltcGxlbWVudCBlZmZpY2llbnQgdGVtcGxhdGUgdHlwZS1jaGVja2luZyB1c2luZyBjb21tb24gaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUNoZWNraW5nUHJvZ3JhbVN0cmF0ZWd5IGV4dGVuZHMgQ29tcG9uZW50VG9TaGltTWFwcGluZ1N0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdHJhdGVneSBzdXBwb3J0cyBtb2RpZnlpbmcgdXNlciBmaWxlcyAoaW5saW5lIG1vZGlmaWNhdGlvbnMpIGluIGFkZGl0aW9uIHRvXG4gICAqIG1vZGlmeWluZyB0eXBlLWNoZWNraW5nIHNoaW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcG9ydHNJbmxpbmVPcGVyYXRpb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHByb2dyYW0sIGNvbnRhaW5pbmcgYWxsIHRoZSB1cGRhdGVzIG1hZGUgdGh1cyBmYXIuXG4gICAqL1xuICBnZXRQcm9ncmFtKCk6IHRzLlByb2dyYW07XG5cbiAgLyoqXG4gICAqIEluY29ycG9yYXRlIGEgc2V0IG9mIGNoYW5nZXMgdG8gZWl0aGVyIGF1Z21lbnQgb3IgY29tcGxldGVseSByZXBsYWNlIHRoZSB0eXBlLWNoZWNraW5nIGNvZGVcbiAgICogaW5jbHVkZWQgaW4gdGhlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbS5cbiAgICovXG4gIHVwZGF0ZUZpbGVzKGNvbnRlbnRzOiBNYXA8QWJzb2x1dGVGc1BhdGgsIHN0cmluZz4sIHVwZGF0ZU1vZGU6IFVwZGF0ZU1vZGUpOiB2b2lkO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVNb2RlIHtcbiAgLyoqXG4gICAqIEEgY29tcGxldGUgdXBkYXRlIGNyZWF0ZXMgYSBjb21wbGV0ZWx5IG5ldyBvdmVybGF5IG9mIHR5cGUtY2hlY2tpbmcgY29kZSBvbiB0b3Agb2YgdGhlIHVzZXInc1xuICAgKiBvcmlnaW5hbCBwcm9ncmFtLCB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdHlwZS1jaGVja2luZyBjb2RlIGZyb20gcHJldmlvdXMgY2FsbHMgdG9cbiAgICogYHVwZGF0ZUZpbGVzYC5cbiAgICovXG4gIENvbXBsZXRlLFxuXG4gIC8qKlxuICAgKiBBbiBpbmNyZW1lbnRhbCB1cGRhdGUgY2hhbmdlcyB0aGUgY29udGVudHMgb2Ygc29tZSBmaWxlcyBpbiB0aGUgdHlwZS1jaGVja2luZyBwcm9ncmFtIHdpdGhvdXRcbiAgICogcmV2ZXJ0aW5nIGFueSBwcmlvciBjaGFuZ2VzLlxuICAgKi9cbiAgSW5jcmVtZW50YWwsXG59XG4iXX0=
@@ -6,6 +6,6 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id" />
9
- import * as ts from 'typescript';
9
+ import { DeclarationNode } from '../../../reflection';
10
10
  import { TemplateId } from '../../api';
11
- export declare function getTemplateId(clazz: ts.Declaration): TemplateId;
11
+ export declare function getTemplateId(clazz: DeclarationNode): TemplateId;
@@ -34,4 +34,4 @@
34
34
  return ("tcb" + sf[NEXT_TEMPLATE_ID]++);
35
35
  }
36
36
  });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9kaWFnbm9zdGljcy9zcmMvaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBT0gsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFVcEQsU0FBZ0IsYUFBYSxDQUFDLEtBQXFCO1FBQ2pELElBQU0sSUFBSSxHQUFHLEtBQWdELENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RDtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBRSxDQUFDO0lBQzVCLENBQUM7SUFORCxzQ0FNQztJQUVELFNBQVMsa0JBQWtCLENBQUMsRUFBNEM7UUFDdEUsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDdEMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLFFBQU0sRUFBRSxDQUFDLGdCQUFnQixDQUFFLEVBQUksQ0FBZSxDQUFDO0lBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7VGVtcGxhdGVJZH0gZnJvbSAnLi4vLi4vYXBpJztcblxuXG5jb25zdCBURU1QTEFURV9JRCA9IFN5bWJvbCgnbmdUZW1wbGF0ZUlkJyk7XG5jb25zdCBORVhUX1RFTVBMQVRFX0lEID0gU3ltYm9sKCduZ05leHRUZW1wbGF0ZUlkJyk7XG5cbmludGVyZmFjZSBIYXNUZW1wbGF0ZUlkIHtcbiAgW1RFTVBMQVRFX0lEXTogVGVtcGxhdGVJZDtcbn1cblxuaW50ZXJmYWNlIEhhc05leHRUZW1wbGF0ZUlkIHtcbiAgW05FWFRfVEVNUExBVEVfSURdOiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZW1wbGF0ZUlkKGNsYXp6OiB0cy5EZWNsYXJhdGlvbik6IFRlbXBsYXRlSWQge1xuICBjb25zdCBub2RlID0gY2xhenogYXMgdHMuRGVjbGFyYXRpb24gJiBQYXJ0aWFsPEhhc1RlbXBsYXRlSWQ+O1xuICBpZiAobm9kZVtURU1QTEFURV9JRF0gPT09IHVuZGVmaW5lZCkge1xuICAgIG5vZGVbVEVNUExBVEVfSURdID0gYWxsb2NhdGVUZW1wbGF0ZUlkKG5vZGUuZ2V0U291cmNlRmlsZSgpKTtcbiAgfVxuICByZXR1cm4gbm9kZVtURU1QTEFURV9JRF0hO1xufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZVRlbXBsYXRlSWQoc2Y6IHRzLlNvdXJjZUZpbGUmUGFydGlhbDxIYXNOZXh0VGVtcGxhdGVJZD4pOiBUZW1wbGF0ZUlkIHtcbiAgaWYgKHNmW05FWFRfVEVNUExBVEVfSURdID09PSB1bmRlZmluZWQpIHtcbiAgICBzZltORVhUX1RFTVBMQVRFX0lEXSA9IDE7XG4gIH1cbiAgcmV0dXJuIChgdGNiJHtzZltORVhUX1RFTVBMQVRFX0lEXSErK31gKSBhcyBUZW1wbGF0ZUlkO1xufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9kaWFnbm9zdGljcy9zcmMvaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBUUgsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFVcEQsU0FBZ0IsYUFBYSxDQUFDLEtBQXNCO1FBQ2xELElBQU0sSUFBSSxHQUFHLEtBQWdELENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RDtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBRSxDQUFDO0lBQzVCLENBQUM7SUFORCxzQ0FNQztJQUVELFNBQVMsa0JBQWtCLENBQUMsRUFBNEM7UUFDdEUsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDdEMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxDQUFDLFFBQU0sRUFBRSxDQUFDLGdCQUFnQixDQUFFLEVBQUksQ0FBZSxDQUFDO0lBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge0RlY2xhcmF0aW9uTm9kZX0gZnJvbSAnLi4vLi4vLi4vcmVmbGVjdGlvbic7XG5cbmltcG9ydCB7VGVtcGxhdGVJZH0gZnJvbSAnLi4vLi4vYXBpJztcblxuXG5jb25zdCBURU1QTEFURV9JRCA9IFN5bWJvbCgnbmdUZW1wbGF0ZUlkJyk7XG5jb25zdCBORVhUX1RFTVBMQVRFX0lEID0gU3ltYm9sKCduZ05leHRUZW1wbGF0ZUlkJyk7XG5cbmludGVyZmFjZSBIYXNUZW1wbGF0ZUlkIHtcbiAgW1RFTVBMQVRFX0lEXTogVGVtcGxhdGVJZDtcbn1cblxuaW50ZXJmYWNlIEhhc05leHRUZW1wbGF0ZUlkIHtcbiAgW05FWFRfVEVNUExBVEVfSURdOiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZW1wbGF0ZUlkKGNsYXp6OiBEZWNsYXJhdGlvbk5vZGUpOiBUZW1wbGF0ZUlkIHtcbiAgY29uc3Qgbm9kZSA9IGNsYXp6IGFzIHRzLkRlY2xhcmF0aW9uICYgUGFydGlhbDxIYXNUZW1wbGF0ZUlkPjtcbiAgaWYgKG5vZGVbVEVNUExBVEVfSURdID09PSB1bmRlZmluZWQpIHtcbiAgICBub2RlW1RFTVBMQVRFX0lEXSA9IGFsbG9jYXRlVGVtcGxhdGVJZChub2RlLmdldFNvdXJjZUZpbGUoKSk7XG4gIH1cbiAgcmV0dXJuIG5vZGVbVEVNUExBVEVfSURdITtcbn1cblxuZnVuY3Rpb24gYWxsb2NhdGVUZW1wbGF0ZUlkKHNmOiB0cy5Tb3VyY2VGaWxlJlBhcnRpYWw8SGFzTmV4dFRlbXBsYXRlSWQ+KTogVGVtcGxhdGVJZCB7XG4gIGlmIChzZltORVhUX1RFTVBMQVRFX0lEXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc2ZbTkVYVF9URU1QTEFURV9JRF0gPSAxO1xuICB9XG4gIHJldHVybiAoYHRjYiR7c2ZbTkVYVF9URU1QTEFURV9JRF0hKyt9YCkgYXMgVGVtcGxhdGVJZDtcbn1cbiJdfQ==
@@ -7,13 +7,51 @@
7
7
  */
8
8
  /// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/src/host" />
9
9
  import * as ts from 'typescript';
10
+ /**
11
+ * Represents the `ts.CompilerHost` interface, with a transformation applied that turns all
12
+ * methods (even optional ones) into required fields (which may be `undefined`, if the method was
13
+ * optional).
14
+ */
15
+ export declare type RequiredCompilerHostDelegations = {
16
+ [M in keyof Required<ts.CompilerHost>]: ts.CompilerHost[M];
17
+ };
18
+ /**
19
+ * Delegates all methods of `ts.CompilerHost` to a delegate, with the exception of
20
+ * `getSourceFile`, `fileExists` and `writeFile` which are implemented in `TypeCheckProgramHost`.
21
+ *
22
+ * If a new method is added to `ts.CompilerHost` which is not delegated, a type error will be
23
+ * generated for this class.
24
+ */
25
+ export declare class DelegatingCompilerHost implements Omit<RequiredCompilerHostDelegations, 'getSourceFile' | 'fileExists' | 'writeFile'> {
26
+ protected delegate: ts.CompilerHost;
27
+ constructor(delegate: ts.CompilerHost);
28
+ private delegateMethod;
29
+ createHash: ((data: string) => string) | undefined;
30
+ directoryExists: ((directoryName: string) => boolean) | undefined;
31
+ getCancellationToken: (() => ts.CancellationToken) | undefined;
32
+ getCanonicalFileName: (fileName: string) => string;
33
+ getCurrentDirectory: () => string;
34
+ getDefaultLibFileName: (options: ts.CompilerOptions) => string;
35
+ getDefaultLibLocation: (() => string) | undefined;
36
+ getDirectories: ((path: string) => string[]) | undefined;
37
+ getEnvironmentVariable: ((name: string) => string | undefined) | undefined;
38
+ getNewLine: () => string;
39
+ getParsedCommandLine: ((fileName: string) => ts.ParsedCommandLine | undefined) | undefined;
40
+ getSourceFileByPath: ((fileName: string, path: ts.Path, languageVersion: ts.ScriptTarget, onError?: ((message: string) => void) | undefined, shouldCreateNewSourceFile?: boolean | undefined) => ts.SourceFile | undefined) | undefined;
41
+ readDirectory: ((rootDir: string, extensions: readonly string[], excludes: readonly string[] | undefined, includes: readonly string[], depth?: number | undefined) => string[]) | undefined;
42
+ readFile: (fileName: string) => string | undefined;
43
+ realpath: ((path: string) => string) | undefined;
44
+ resolveModuleNames: ((moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ts.ResolvedProjectReference | undefined, options: ts.CompilerOptions) => (ts.ResolvedModule | undefined)[]) | undefined;
45
+ resolveTypeReferenceDirectives: ((typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ts.ResolvedProjectReference | undefined, options: ts.CompilerOptions) => (ts.ResolvedTypeReferenceDirective | undefined)[]) | undefined;
46
+ trace: ((s: string) => void) | undefined;
47
+ useCaseSensitiveFileNames: () => boolean;
48
+ }
10
49
  /**
11
50
  * A `ts.CompilerHost` which augments source files with type checking code from a
12
51
  * `TypeCheckContext`.
13
52
  */
14
- export declare class TypeCheckProgramHost implements ts.CompilerHost {
53
+ export declare class TypeCheckProgramHost extends DelegatingCompilerHost {
15
54
  private originalProgram;
16
- private delegate;
17
55
  private shimExtensionPrefixes;
18
56
  /**
19
57
  * Map of source file names to `ts.SourceFile` instances.
@@ -30,17 +68,9 @@ export declare class TypeCheckProgramHost implements ts.CompilerHost {
30
68
  * `TypeCheckProgramHost` has its own `ShimReferenceTagger` to perform this function.
31
69
  */
32
70
  private shimTagger;
33
- readonly resolveModuleNames?: ts.CompilerHost['resolveModuleNames'];
34
71
  constructor(sfMap: Map<string, ts.SourceFile>, originalProgram: ts.Program, delegate: ts.CompilerHost, shimExtensionPrefixes: string[]);
35
72
  getSourceFile(fileName: string, languageVersion: ts.ScriptTarget, onError?: ((message: string) => void) | undefined, shouldCreateNewSourceFile?: boolean | undefined): ts.SourceFile | undefined;
36
73
  postProgramCreationCleanup(): void;
37
- getDefaultLibFileName(options: ts.CompilerOptions): string;
38
- writeFile(fileName: string, data: string, writeByteOrderMark: boolean, onError: ((message: string) => void) | undefined, sourceFiles: ReadonlyArray<ts.SourceFile> | undefined): void;
39
- getCurrentDirectory(): string;
40
- getDirectories?: (path: string) => string[];
41
- getCanonicalFileName(fileName: string): string;
42
- useCaseSensitiveFileNames(): boolean;
43
- getNewLine(): string;
74
+ writeFile(): never;
44
75
  fileExists(fileName: string): boolean;
45
- readFile(fileName: string): string | undefined;
46
76
  }
@@ -11,22 +11,63 @@
11
11
  if (v !== undefined) module.exports = v;
12
12
  }
13
13
  else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/typecheck/src/host", ["require", "exports", "@angular/compiler-cli/src/ngtsc/shims"], factory);
14
+ define("@angular/compiler-cli/src/ngtsc/typecheck/src/host", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/shims"], factory);
15
15
  }
16
16
  })(function (require, exports) {
17
17
  "use strict";
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.TypeCheckProgramHost = void 0;
19
+ exports.TypeCheckProgramHost = exports.DelegatingCompilerHost = void 0;
20
+ var tslib_1 = require("tslib");
20
21
  var shims_1 = require("@angular/compiler-cli/src/ngtsc/shims");
22
+ /**
23
+ * Delegates all methods of `ts.CompilerHost` to a delegate, with the exception of
24
+ * `getSourceFile`, `fileExists` and `writeFile` which are implemented in `TypeCheckProgramHost`.
25
+ *
26
+ * If a new method is added to `ts.CompilerHost` which is not delegated, a type error will be
27
+ * generated for this class.
28
+ */
29
+ var DelegatingCompilerHost = /** @class */ (function () {
30
+ function DelegatingCompilerHost(delegate) {
31
+ this.delegate = delegate;
32
+ // Excluded are 'getSourceFile', 'fileExists' and 'writeFile', which are actually implemented by
33
+ // `TypeCheckProgramHost` below.
34
+ this.createHash = this.delegateMethod('createHash');
35
+ this.directoryExists = this.delegateMethod('directoryExists');
36
+ this.getCancellationToken = this.delegateMethod('getCancellationToken');
37
+ this.getCanonicalFileName = this.delegateMethod('getCanonicalFileName');
38
+ this.getCurrentDirectory = this.delegateMethod('getCurrentDirectory');
39
+ this.getDefaultLibFileName = this.delegateMethod('getDefaultLibFileName');
40
+ this.getDefaultLibLocation = this.delegateMethod('getDefaultLibLocation');
41
+ this.getDirectories = this.delegateMethod('getDirectories');
42
+ this.getEnvironmentVariable = this.delegateMethod('getEnvironmentVariable');
43
+ this.getNewLine = this.delegateMethod('getNewLine');
44
+ this.getParsedCommandLine = this.delegateMethod('getParsedCommandLine');
45
+ this.getSourceFileByPath = this.delegateMethod('getSourceFileByPath');
46
+ this.readDirectory = this.delegateMethod('readDirectory');
47
+ this.readFile = this.delegateMethod('readFile');
48
+ this.realpath = this.delegateMethod('realpath');
49
+ this.resolveModuleNames = this.delegateMethod('resolveModuleNames');
50
+ this.resolveTypeReferenceDirectives = this.delegateMethod('resolveTypeReferenceDirectives');
51
+ this.trace = this.delegateMethod('trace');
52
+ this.useCaseSensitiveFileNames = this.delegateMethod('useCaseSensitiveFileNames');
53
+ }
54
+ DelegatingCompilerHost.prototype.delegateMethod = function (name) {
55
+ return this.delegate[name] !== undefined ? this.delegate[name].bind(this.delegate) :
56
+ undefined;
57
+ };
58
+ return DelegatingCompilerHost;
59
+ }());
60
+ exports.DelegatingCompilerHost = DelegatingCompilerHost;
21
61
  /**
22
62
  * A `ts.CompilerHost` which augments source files with type checking code from a
23
63
  * `TypeCheckContext`.
24
64
  */
25
- var TypeCheckProgramHost = /** @class */ (function () {
65
+ var TypeCheckProgramHost = /** @class */ (function (_super) {
66
+ tslib_1.__extends(TypeCheckProgramHost, _super);
26
67
  function TypeCheckProgramHost(sfMap, originalProgram, delegate, shimExtensionPrefixes) {
27
- this.originalProgram = originalProgram;
28
- this.delegate = delegate;
29
- this.shimExtensionPrefixes = shimExtensionPrefixes;
68
+ var _this = _super.call(this, delegate) || this;
69
+ _this.originalProgram = originalProgram;
70
+ _this.shimExtensionPrefixes = shimExtensionPrefixes;
30
71
  /**
31
72
  * The `ShimReferenceTagger` responsible for tagging `ts.SourceFile`s loaded via this host.
32
73
  *
@@ -37,14 +78,9 @@
37
78
  * order for those shims to be loaded, and then cleaned up afterwards. Thus the
38
79
  * `TypeCheckProgramHost` has its own `ShimReferenceTagger` to perform this function.
39
80
  */
40
- this.shimTagger = new shims_1.ShimReferenceTagger(this.shimExtensionPrefixes);
41
- this.sfMap = sfMap;
42
- if (delegate.getDirectories !== undefined) {
43
- this.getDirectories = function (path) { return delegate.getDirectories(path); };
44
- }
45
- if (delegate.resolveModuleNames !== undefined) {
46
- this.resolveModuleNames = delegate.resolveModuleNames;
47
- }
81
+ _this.shimTagger = new shims_1.ShimReferenceTagger(_this.shimExtensionPrefixes);
82
+ _this.sfMap = sfMap;
83
+ return _this;
48
84
  }
49
85
  TypeCheckProgramHost.prototype.getSourceFile = function (fileName, languageVersion, onError, shouldCreateNewSourceFile) {
50
86
  // Try to use the same `ts.SourceFile` as the original program, if possible. This guarantees
@@ -79,33 +115,14 @@
79
115
  TypeCheckProgramHost.prototype.postProgramCreationCleanup = function () {
80
116
  this.shimTagger.finalize();
81
117
  };
82
- // The rest of the methods simply delegate to the underlying `ts.CompilerHost`.
83
- TypeCheckProgramHost.prototype.getDefaultLibFileName = function (options) {
84
- return this.delegate.getDefaultLibFileName(options);
85
- };
86
- TypeCheckProgramHost.prototype.writeFile = function (fileName, data, writeByteOrderMark, onError, sourceFiles) {
118
+ TypeCheckProgramHost.prototype.writeFile = function () {
87
119
  throw new Error("TypeCheckProgramHost should never write files");
88
120
  };
89
- TypeCheckProgramHost.prototype.getCurrentDirectory = function () {
90
- return this.delegate.getCurrentDirectory();
91
- };
92
- TypeCheckProgramHost.prototype.getCanonicalFileName = function (fileName) {
93
- return this.delegate.getCanonicalFileName(fileName);
94
- };
95
- TypeCheckProgramHost.prototype.useCaseSensitiveFileNames = function () {
96
- return this.delegate.useCaseSensitiveFileNames();
97
- };
98
- TypeCheckProgramHost.prototype.getNewLine = function () {
99
- return this.delegate.getNewLine();
100
- };
101
121
  TypeCheckProgramHost.prototype.fileExists = function (fileName) {
102
122
  return this.sfMap.has(fileName) || this.delegate.fileExists(fileName);
103
123
  };
104
- TypeCheckProgramHost.prototype.readFile = function (fileName) {
105
- return this.delegate.readFile(fileName);
106
- };
107
124
  return TypeCheckProgramHost;
108
- }());
125
+ }(DelegatingCompilerHost));
109
126
  exports.TypeCheckProgramHost = TypeCheckProgramHost;
110
127
  });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL3NyYy9ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUlILCtEQUFrRTtJQUVsRTs7O09BR0c7SUFDSDtRQW9CRSw4QkFDSSxLQUFpQyxFQUFVLGVBQTJCLEVBQzlELFFBQXlCLEVBQVUscUJBQStCO1lBRC9CLG9CQUFlLEdBQWYsZUFBZSxDQUFZO1lBQzlELGFBQVEsR0FBUixRQUFRLENBQWlCO1lBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFVO1lBaEI5RTs7Ozs7Ozs7O2VBU0c7WUFDSyxlQUFVLEdBQUcsSUFBSSwyQkFBbUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQU92RSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUVuQixJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsUUFBUSxDQUFDLGNBQWUsQ0FBQyxJQUFJLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQzthQUN4RTtZQUVELElBQUksUUFBUSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQzthQUN2RDtRQUNILENBQUM7UUFFRCw0Q0FBYSxHQUFiLFVBQ0ksUUFBZ0IsRUFBRSxlQUFnQyxFQUNsRCxPQUErQyxFQUMvQyx5QkFBNkM7WUFDL0MsNEZBQTRGO1lBQzVGLHVEQUF1RDtZQUN2RCxJQUFJLFVBQVUsR0FBNEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkYsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUM1Qix1RkFBdUY7Z0JBQ3ZGLCtEQUErRDtnQkFDL0QsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUNwQyxRQUFRLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsQ0FBRSxDQUFDO2FBQ3JFO1lBQ0QsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUM1QixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELHlCQUF5QjtZQUN6QixJQUFJLEVBQWlCLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDO2dCQUMvQix3QkFBZ0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsRUFBRSxHQUFHLFVBQVUsQ0FBQzthQUNqQjtZQUNELHlGQUF5RjtZQUN6RixrRUFBa0U7WUFDbEUsSUFBTSxZQUFZLEdBQUksRUFBVSxDQUFDLFlBQVksQ0FBQztZQUM5QyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7Z0JBQzlCLEVBQUUsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO2FBQ2hDO1lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQseURBQTBCLEdBQTFCO1lBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBRUQsK0VBQStFO1FBRS9FLG9EQUFxQixHQUFyQixVQUFzQixPQUEyQjtZQUMvQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELHdDQUFTLEdBQVQsVUFDSSxRQUFnQixFQUFFLElBQVksRUFBRSxrQkFBMkIsRUFDM0QsT0FBOEMsRUFDOUMsV0FBbUQ7WUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxrREFBbUIsR0FBbkI7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBSUQsbURBQW9CLEdBQXBCLFVBQXFCLFFBQWdCO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsd0RBQXlCLEdBQXpCO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUVELHlDQUFVLEdBQVY7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUVELHlDQUFVLEdBQVYsVUFBVyxRQUFnQjtZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCx1Q0FBUSxHQUFSLFVBQVMsUUFBZ0I7WUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0gsMkJBQUM7SUFBRCxDQUFDLEFBaEhELElBZ0hDO0lBaEhZLG9EQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtjb3B5RmlsZVNoaW1EYXRhLCBTaGltUmVmZXJlbmNlVGFnZ2VyfSBmcm9tICcuLi8uLi9zaGltcyc7XG5cbi8qKlxuICogQSBgdHMuQ29tcGlsZXJIb3N0YCB3aGljaCBhdWdtZW50cyBzb3VyY2UgZmlsZXMgd2l0aCB0eXBlIGNoZWNraW5nIGNvZGUgZnJvbSBhXG4gKiBgVHlwZUNoZWNrQ29udGV4dGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlQ2hlY2tQcm9ncmFtSG9zdCBpbXBsZW1lbnRzIHRzLkNvbXBpbGVySG9zdCB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc291cmNlIGZpbGUgbmFtZXMgdG8gYHRzLlNvdXJjZUZpbGVgIGluc3RhbmNlcy5cbiAgICovXG4gIHByaXZhdGUgc2ZNYXA6IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+O1xuXG4gIC8qKlxuICAgKiBUaGUgYFNoaW1SZWZlcmVuY2VUYWdnZXJgIHJlc3BvbnNpYmxlIGZvciB0YWdnaW5nIGB0cy5Tb3VyY2VGaWxlYHMgbG9hZGVkIHZpYSB0aGlzIGhvc3QuXG4gICAqXG4gICAqIFRoZSBgVHlwZUNoZWNrUHJvZ3JhbUhvc3RgIGlzIHVzZWQgaW4gdGhlIGNyZWF0aW9uIG9mIGEgbmV3IGB0cy5Qcm9ncmFtYC4gRXZlbiB0aG91Z2ggdGhpcyBuZXdcbiAgICogcHJvZ3JhbSBpcyBiYXNlZCBvbiBhIHByaW9yIG9uZSwgVHlwZVNjcmlwdCB3aWxsIHN0aWxsIHN0YXJ0IGZyb20gdGhlIHJvb3QgZmlsZXMgYW5kIGVudW1lcmF0ZVxuICAgKiBhbGwgc291cmNlIGZpbGVzIHRvIGluY2x1ZGUgaW4gdGhlIG5ldyBwcm9ncmFtLiAgVGhpcyBtZWFucyB0aGF0IGp1c3QgbGlrZSBkdXJpbmcgdGhlIG9yaWdpbmFsXG4gICAqIHByb2dyYW0ncyBjcmVhdGlvbiwgdGhlc2Ugc291cmNlIGZpbGVzIG11c3QgYmUgdGFnZ2VkIHdpdGggcmVmZXJlbmNlcyB0byBwZXItZmlsZSBzaGltcyBpblxuICAgKiBvcmRlciBmb3IgdGhvc2Ugc2hpbXMgdG8gYmUgbG9hZGVkLCBhbmQgdGhlbiBjbGVhbmVkIHVwIGFmdGVyd2FyZHMuIFRodXMgdGhlXG4gICAqIGBUeXBlQ2hlY2tQcm9ncmFtSG9zdGAgaGFzIGl0cyBvd24gYFNoaW1SZWZlcmVuY2VUYWdnZXJgIHRvIHBlcmZvcm0gdGhpcyBmdW5jdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2hpbVRhZ2dlciA9IG5ldyBTaGltUmVmZXJlbmNlVGFnZ2VyKHRoaXMuc2hpbUV4dGVuc2lvblByZWZpeGVzKTtcblxuICByZWFkb25seSByZXNvbHZlTW9kdWxlTmFtZXM/OiB0cy5Db21waWxlckhvc3RbJ3Jlc29sdmVNb2R1bGVOYW1lcyddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgc2ZNYXA6IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+LCBwcml2YXRlIG9yaWdpbmFsUHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAgIHByaXZhdGUgZGVsZWdhdGU6IHRzLkNvbXBpbGVySG9zdCwgcHJpdmF0ZSBzaGltRXh0ZW5zaW9uUHJlZml4ZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZk1hcCA9IHNmTWFwO1xuXG4gICAgaWYgKGRlbGVnYXRlLmdldERpcmVjdG9yaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZ2V0RGlyZWN0b3JpZXMgPSAocGF0aDogc3RyaW5nKSA9PiBkZWxlZ2F0ZS5nZXREaXJlY3RvcmllcyEocGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKGRlbGVnYXRlLnJlc29sdmVNb2R1bGVOYW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlc29sdmVNb2R1bGVOYW1lcyA9IGRlbGVnYXRlLnJlc29sdmVNb2R1bGVOYW1lcztcbiAgICB9XG4gIH1cblxuICBnZXRTb3VyY2VGaWxlKFxuICAgICAgZmlsZU5hbWU6IHN0cmluZywgbGFuZ3VhZ2VWZXJzaW9uOiB0cy5TY3JpcHRUYXJnZXQsXG4gICAgICBvbkVycm9yPzogKChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpfHVuZGVmaW5lZCxcbiAgICAgIHNob3VsZENyZWF0ZU5ld1NvdXJjZUZpbGU/OiBib29sZWFufHVuZGVmaW5lZCk6IHRzLlNvdXJjZUZpbGV8dW5kZWZpbmVkIHtcbiAgICAvLyBUcnkgdG8gdXNlIHRoZSBzYW1lIGB0cy5Tb3VyY2VGaWxlYCBhcyB0aGUgb3JpZ2luYWwgcHJvZ3JhbSwgaWYgcG9zc2libGUuIFRoaXMgZ3VhcmFudGVlc1xuICAgIC8vIHRoYXQgcHJvZ3JhbSByZXVzZSB3aWxsIGJlIGFzIGVmZmljaWVudCBhcyBwb3NzaWJsZS5cbiAgICBsZXQgZGVsZWdhdGVTZjogdHMuU291cmNlRmlsZXx1bmRlZmluZWQgPSB0aGlzLm9yaWdpbmFsUHJvZ3JhbS5nZXRTb3VyY2VGaWxlKGZpbGVOYW1lKTtcbiAgICBpZiAoZGVsZWdhdGVTZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgYSBzb3VyY2UgZmlsZSBpcyBiZWluZyByZXF1ZXN0ZWQgdGhhdCdzIG5vdCBpbiB0aGUgb3JpZ2luYWxcbiAgICAgIC8vIHByb2dyYW0uIEp1c3QgaW4gY2FzZSwgdHJ5IHRvIHJldHJpZXZlIGl0IGZyb20gdGhlIGRlbGVnYXRlLlxuICAgICAgZGVsZWdhdGVTZiA9IHRoaXMuZGVsZWdhdGUuZ2V0U291cmNlRmlsZShcbiAgICAgICAgICBmaWxlTmFtZSwgbGFuZ3VhZ2VWZXJzaW9uLCBvbkVycm9yLCBzaG91bGRDcmVhdGVOZXdTb3VyY2VGaWxlKSE7XG4gICAgfVxuICAgIGlmIChkZWxlZ2F0ZVNmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gTG9vayBmb3IgcmVwbGFjZW1lbnRzLlxuICAgIGxldCBzZjogdHMuU291cmNlRmlsZTtcbiAgICBpZiAodGhpcy5zZk1hcC5oYXMoZmlsZU5hbWUpKSB7XG4gICAgICBzZiA9IHRoaXMuc2ZNYXAuZ2V0KGZpbGVOYW1lKSE7XG4gICAgICBjb3B5RmlsZVNoaW1EYXRhKGRlbGVnYXRlU2YsIHNmKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2YgPSBkZWxlZ2F0ZVNmO1xuICAgIH1cbiAgICAvLyBUeXBlU2NyaXB0IGRvZXNuJ3QgYWxsb3cgcmV0dXJuaW5nIHJlZGlyZWN0IHNvdXJjZSBmaWxlcy4gVG8gYXZvaWQgdW5mb3JzZWVuIGVycm9ycyB3ZVxuICAgIC8vIHJldHVybiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgaW5zdGVhZCBvZiB0aGUgcmVkaXJlY3QgdGFyZ2V0LlxuICAgIGNvbnN0IHJlZGlyZWN0SW5mbyA9IChzZiBhcyBhbnkpLnJlZGlyZWN0SW5mbztcbiAgICBpZiAocmVkaXJlY3RJbmZvICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNmID0gcmVkaXJlY3RJbmZvLnVucmVkaXJlY3RlZDtcbiAgICB9XG5cbiAgICB0aGlzLnNoaW1UYWdnZXIudGFnKHNmKTtcbiAgICByZXR1cm4gc2Y7XG4gIH1cblxuICBwb3N0UHJvZ3JhbUNyZWF0aW9uQ2xlYW51cCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoaW1UYWdnZXIuZmluYWxpemUoKTtcbiAgfVxuXG4gIC8vIFRoZSByZXN0IG9mIHRoZSBtZXRob2RzIHNpbXBseSBkZWxlZ2F0ZSB0byB0aGUgdW5kZXJseWluZyBgdHMuQ29tcGlsZXJIb3N0YC5cblxuICBnZXREZWZhdWx0TGliRmlsZU5hbWUob3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5nZXREZWZhdWx0TGliRmlsZU5hbWUob3B0aW9ucyk7XG4gIH1cblxuICB3cml0ZUZpbGUoXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLCBkYXRhOiBzdHJpbmcsIHdyaXRlQnl0ZU9yZGVyTWFyazogYm9vbGVhbixcbiAgICAgIG9uRXJyb3I6ICgobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKXx1bmRlZmluZWQsXG4gICAgICBzb3VyY2VGaWxlczogUmVhZG9ubHlBcnJheTx0cy5Tb3VyY2VGaWxlPnx1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGVDaGVja1Byb2dyYW1Ib3N0IHNob3VsZCBuZXZlciB3cml0ZSBmaWxlc2ApO1xuICB9XG5cbiAgZ2V0Q3VycmVudERpcmVjdG9yeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldEN1cnJlbnREaXJlY3RvcnkoKTtcbiAgfVxuXG4gIGdldERpcmVjdG9yaWVzPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nW107XG5cbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuZ2V0Q2Fub25pY2FsRmlsZU5hbWUoZmlsZU5hbWUpO1xuICB9XG5cbiAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzKCk7XG4gIH1cblxuICBnZXROZXdMaW5lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuZ2V0TmV3TGluZSgpO1xuICB9XG5cbiAgZmlsZUV4aXN0cyhmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2ZNYXAuaGFzKGZpbGVOYW1lKSB8fCB0aGlzLmRlbGVnYXRlLmZpbGVFeGlzdHMoZmlsZU5hbWUpO1xuICB9XG5cbiAgcmVhZEZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZ3x1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLnJlYWRGaWxlKGZpbGVOYW1lKTtcbiAgfVxufVxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHlwZWNoZWNrL3NyYy9ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFJSCwrREFBa0U7SUFXbEU7Ozs7OztPQU1HO0lBQ0g7UUFFRSxnQ0FBc0IsUUFBeUI7WUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7WUFPL0MsZ0dBQWdHO1lBQ2hHLGdDQUFnQztZQUNoQyxlQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN6RCx5QkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDbkUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ25FLHdCQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNqRSwwQkFBcUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckUsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JFLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELDJCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN2RSxlQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyx5QkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDbkUsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ2pFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRCxhQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQyxhQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQyx1QkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDL0QsbUNBQThCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3ZGLFVBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLDhCQUF5QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQTNCM0IsQ0FBQztRQUUzQywrQ0FBYyxHQUF0QixVQUF3RCxJQUFPO1lBQzdELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxTQUFTLENBQUM7UUFDdkQsQ0FBQztRQXVCSCw2QkFBQztJQUFELENBQUMsQUE5QkQsSUE4QkM7SUE5Qlksd0RBQXNCO0lBZ0NuQzs7O09BR0c7SUFDSDtRQUEwQyxnREFBc0I7UUFrQjlELDhCQUNJLEtBQWlDLEVBQVUsZUFBMkIsRUFDdEUsUUFBeUIsRUFBVSxxQkFBK0I7WUFGdEUsWUFHRSxrQkFBTSxRQUFRLENBQUMsU0FFaEI7WUFKOEMscUJBQWUsR0FBZixlQUFlLENBQVk7WUFDbkMsMkJBQXFCLEdBQXJCLHFCQUFxQixDQUFVO1lBZHRFOzs7Ozs7Ozs7ZUFTRztZQUNLLGdCQUFVLEdBQUcsSUFBSSwyQkFBbUIsQ0FBQyxLQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQU12RSxLQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzs7UUFDckIsQ0FBQztRQUVELDRDQUFhLEdBQWIsVUFDSSxRQUFnQixFQUFFLGVBQWdDLEVBQ2xELE9BQStDLEVBQy9DLHlCQUE2QztZQUMvQyw0RkFBNEY7WUFDNUYsdURBQXVEO1lBQ3ZELElBQUksVUFBVSxHQUE0QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RixJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLHVGQUF1RjtnQkFDdkYsK0RBQStEO2dCQUMvRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ3BDLFFBQVEsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixDQUFFLENBQUM7YUFDckU7WUFDRCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQseUJBQXlCO1lBQ3pCLElBQUksRUFBaUIsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFLENBQUM7Z0JBQy9CLHdCQUFnQixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxFQUFFLEdBQUcsVUFBVSxDQUFDO2FBQ2pCO1lBQ0QseUZBQXlGO1lBQ3pGLGtFQUFrRTtZQUNsRSxJQUFNLFlBQVksR0FBSSxFQUFVLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtnQkFDOUIsRUFBRSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7YUFDaEM7WUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCx5REFBMEIsR0FBMUI7WUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCx3Q0FBUyxHQUFUO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCx5Q0FBVSxHQUFWLFVBQVcsUUFBZ0I7WUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0gsMkJBQUM7SUFBRCxDQUFDLEFBeEVELENBQTBDLHNCQUFzQixHQXdFL0Q7SUF4RVksb0RBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2NvcHlGaWxlU2hpbURhdGEsIFNoaW1SZWZlcmVuY2VUYWdnZXJ9IGZyb20gJy4uLy4uL3NoaW1zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBgdHMuQ29tcGlsZXJIb3N0YCBpbnRlcmZhY2UsIHdpdGggYSB0cmFuc2Zvcm1hdGlvbiBhcHBsaWVkIHRoYXQgdHVybnMgYWxsXG4gKiBtZXRob2RzIChldmVuIG9wdGlvbmFsIG9uZXMpIGludG8gcmVxdWlyZWQgZmllbGRzICh3aGljaCBtYXkgYmUgYHVuZGVmaW5lZGAsIGlmIHRoZSBtZXRob2Qgd2FzXG4gKiBvcHRpb25hbCkuXG4gKi9cbmV4cG9ydCB0eXBlIFJlcXVpcmVkQ29tcGlsZXJIb3N0RGVsZWdhdGlvbnMgPSB7XG4gIFtNIGluIGtleW9mIFJlcXVpcmVkPHRzLkNvbXBpbGVySG9zdD5dOiB0cy5Db21waWxlckhvc3RbTV07XG59O1xuXG4vKipcbiAqIERlbGVnYXRlcyBhbGwgbWV0aG9kcyBvZiBgdHMuQ29tcGlsZXJIb3N0YCB0byBhIGRlbGVnYXRlLCB3aXRoIHRoZSBleGNlcHRpb24gb2ZcbiAqIGBnZXRTb3VyY2VGaWxlYCwgYGZpbGVFeGlzdHNgIGFuZCBgd3JpdGVGaWxlYCB3aGljaCBhcmUgaW1wbGVtZW50ZWQgaW4gYFR5cGVDaGVja1Byb2dyYW1Ib3N0YC5cbiAqXG4gKiBJZiBhIG5ldyBtZXRob2QgaXMgYWRkZWQgdG8gYHRzLkNvbXBpbGVySG9zdGAgd2hpY2ggaXMgbm90IGRlbGVnYXRlZCwgYSB0eXBlIGVycm9yIHdpbGwgYmVcbiAqIGdlbmVyYXRlZCBmb3IgdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlbGVnYXRpbmdDb21waWxlckhvc3QgaW1wbGVtZW50c1xuICAgIE9taXQ8UmVxdWlyZWRDb21waWxlckhvc3REZWxlZ2F0aW9ucywgJ2dldFNvdXJjZUZpbGUnfCdmaWxlRXhpc3RzJ3wnd3JpdGVGaWxlJz4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGVsZWdhdGU6IHRzLkNvbXBpbGVySG9zdCkge31cblxuICBwcml2YXRlIGRlbGVnYXRlTWV0aG9kPE0gZXh0ZW5kcyBrZXlvZiB0cy5Db21waWxlckhvc3Q+KG5hbWU6IE0pOiB0cy5Db21waWxlckhvc3RbTV0ge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlW25hbWVdICE9PSB1bmRlZmluZWQgPyAodGhpcy5kZWxlZ2F0ZVtuYW1lXSBhcyBhbnkpLmJpbmQodGhpcy5kZWxlZ2F0ZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBFeGNsdWRlZCBhcmUgJ2dldFNvdXJjZUZpbGUnLCAnZmlsZUV4aXN0cycgYW5kICd3cml0ZUZpbGUnLCB3aGljaCBhcmUgYWN0dWFsbHkgaW1wbGVtZW50ZWQgYnlcbiAgLy8gYFR5cGVDaGVja1Byb2dyYW1Ib3N0YCBiZWxvdy5cbiAgY3JlYXRlSGFzaCA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2NyZWF0ZUhhc2gnKTtcbiAgZGlyZWN0b3J5RXhpc3RzID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZGlyZWN0b3J5RXhpc3RzJyk7XG4gIGdldENhbmNlbGxhdGlvblRva2VuID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0Q2FuY2VsbGF0aW9uVG9rZW4nKTtcbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWUgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXRDYW5vbmljYWxGaWxlTmFtZScpO1xuICBnZXRDdXJyZW50RGlyZWN0b3J5ID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0Q3VycmVudERpcmVjdG9yeScpO1xuICBnZXREZWZhdWx0TGliRmlsZU5hbWUgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXREZWZhdWx0TGliRmlsZU5hbWUnKTtcbiAgZ2V0RGVmYXVsdExpYkxvY2F0aW9uID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0RGVmYXVsdExpYkxvY2F0aW9uJyk7XG4gIGdldERpcmVjdG9yaWVzID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0RGlyZWN0b3JpZXMnKTtcbiAgZ2V0RW52aXJvbm1lbnRWYXJpYWJsZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2dldEVudmlyb25tZW50VmFyaWFibGUnKTtcbiAgZ2V0TmV3TGluZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2dldE5ld0xpbmUnKTtcbiAgZ2V0UGFyc2VkQ29tbWFuZExpbmUgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXRQYXJzZWRDb21tYW5kTGluZScpO1xuICBnZXRTb3VyY2VGaWxlQnlQYXRoID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0U291cmNlRmlsZUJ5UGF0aCcpO1xuICByZWFkRGlyZWN0b3J5ID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgncmVhZERpcmVjdG9yeScpO1xuICByZWFkRmlsZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ3JlYWRGaWxlJyk7XG4gIHJlYWxwYXRoID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgncmVhbHBhdGgnKTtcbiAgcmVzb2x2ZU1vZHVsZU5hbWVzID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgncmVzb2x2ZU1vZHVsZU5hbWVzJyk7XG4gIHJlc29sdmVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlcyA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ3Jlc29sdmVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlcycpO1xuICB0cmFjZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ3RyYWNlJyk7XG4gIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCd1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzJyk7XG59XG5cbi8qKlxuICogQSBgdHMuQ29tcGlsZXJIb3N0YCB3aGljaCBhdWdtZW50cyBzb3VyY2UgZmlsZXMgd2l0aCB0eXBlIGNoZWNraW5nIGNvZGUgZnJvbSBhXG4gKiBgVHlwZUNoZWNrQ29udGV4dGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlQ2hlY2tQcm9ncmFtSG9zdCBleHRlbmRzIERlbGVnYXRpbmdDb21waWxlckhvc3Qge1xuICAvKipcbiAgICogTWFwIG9mIHNvdXJjZSBmaWxlIG5hbWVzIHRvIGB0cy5Tb3VyY2VGaWxlYCBpbnN0YW5jZXMuXG4gICAqL1xuICBwcml2YXRlIHNmTWFwOiBNYXA8c3RyaW5nLCB0cy5Tb3VyY2VGaWxlPjtcblxuICAvKipcbiAgICogVGhlIGBTaGltUmVmZXJlbmNlVGFnZ2VyYCByZXNwb25zaWJsZSBmb3IgdGFnZ2luZyBgdHMuU291cmNlRmlsZWBzIGxvYWRlZCB2aWEgdGhpcyBob3N0LlxuICAgKlxuICAgKiBUaGUgYFR5cGVDaGVja1Byb2dyYW1Ib3N0YCBpcyB1c2VkIGluIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBgdHMuUHJvZ3JhbWAuIEV2ZW4gdGhvdWdoIHRoaXMgbmV3XG4gICAqIHByb2dyYW0gaXMgYmFzZWQgb24gYSBwcmlvciBvbmUsIFR5cGVTY3JpcHQgd2lsbCBzdGlsbCBzdGFydCBmcm9tIHRoZSByb290IGZpbGVzIGFuZCBlbnVtZXJhdGVcbiAgICogYWxsIHNvdXJjZSBmaWxlcyB0byBpbmNsdWRlIGluIHRoZSBuZXcgcHJvZ3JhbS4gIFRoaXMgbWVhbnMgdGhhdCBqdXN0IGxpa2UgZHVyaW5nIHRoZSBvcmlnaW5hbFxuICAgKiBwcm9ncmFtJ3MgY3JlYXRpb24sIHRoZXNlIHNvdXJjZSBmaWxlcyBtdXN0IGJlIHRhZ2dlZCB3aXRoIHJlZmVyZW5jZXMgdG8gcGVyLWZpbGUgc2hpbXMgaW5cbiAgICogb3JkZXIgZm9yIHRob3NlIHNoaW1zIHRvIGJlIGxvYWRlZCwgYW5kIHRoZW4gY2xlYW5lZCB1cCBhZnRlcndhcmRzLiBUaHVzIHRoZVxuICAgKiBgVHlwZUNoZWNrUHJvZ3JhbUhvc3RgIGhhcyBpdHMgb3duIGBTaGltUmVmZXJlbmNlVGFnZ2VyYCB0byBwZXJmb3JtIHRoaXMgZnVuY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIHNoaW1UYWdnZXIgPSBuZXcgU2hpbVJlZmVyZW5jZVRhZ2dlcih0aGlzLnNoaW1FeHRlbnNpb25QcmVmaXhlcyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBzZk1hcDogTWFwPHN0cmluZywgdHMuU291cmNlRmlsZT4sIHByaXZhdGUgb3JpZ2luYWxQcm9ncmFtOiB0cy5Qcm9ncmFtLFxuICAgICAgZGVsZWdhdGU6IHRzLkNvbXBpbGVySG9zdCwgcHJpdmF0ZSBzaGltRXh0ZW5zaW9uUHJlZml4ZXM6IHN0cmluZ1tdKSB7XG4gICAgc3VwZXIoZGVsZWdhdGUpO1xuICAgIHRoaXMuc2ZNYXAgPSBzZk1hcDtcbiAgfVxuXG4gIGdldFNvdXJjZUZpbGUoXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLCBsYW5ndWFnZVZlcnNpb246IHRzLlNjcmlwdFRhcmdldCxcbiAgICAgIG9uRXJyb3I/OiAoKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCl8dW5kZWZpbmVkLFxuICAgICAgc2hvdWxkQ3JlYXRlTmV3U291cmNlRmlsZT86IGJvb2xlYW58dW5kZWZpbmVkKTogdHMuU291cmNlRmlsZXx1bmRlZmluZWQge1xuICAgIC8vIFRyeSB0byB1c2UgdGhlIHNhbWUgYHRzLlNvdXJjZUZpbGVgIGFzIHRoZSBvcmlnaW5hbCBwcm9ncmFtLCBpZiBwb3NzaWJsZS4gVGhpcyBndWFyYW50ZWVzXG4gICAgLy8gdGhhdCBwcm9ncmFtIHJldXNlIHdpbGwgYmUgYXMgZWZmaWNpZW50IGFzIHBvc3NpYmxlLlxuICAgIGxldCBkZWxlZ2F0ZVNmOiB0cy5Tb3VyY2VGaWxlfHVuZGVmaW5lZCA9IHRoaXMub3JpZ2luYWxQcm9ncmFtLmdldFNvdXJjZUZpbGUoZmlsZU5hbWUpO1xuICAgIGlmIChkZWxlZ2F0ZVNmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCBhIHNvdXJjZSBmaWxlIGlzIGJlaW5nIHJlcXVlc3RlZCB0aGF0J3Mgbm90IGluIHRoZSBvcmlnaW5hbFxuICAgICAgLy8gcHJvZ3JhbS4gSnVzdCBpbiBjYXNlLCB0cnkgdG8gcmV0cmlldmUgaXQgZnJvbSB0aGUgZGVsZWdhdGUuXG4gICAgICBkZWxlZ2F0ZVNmID0gdGhpcy5kZWxlZ2F0ZS5nZXRTb3VyY2VGaWxlKFxuICAgICAgICAgIGZpbGVOYW1lLCBsYW5ndWFnZVZlcnNpb24sIG9uRXJyb3IsIHNob3VsZENyZWF0ZU5ld1NvdXJjZUZpbGUpITtcbiAgICB9XG4gICAgaWYgKGRlbGVnYXRlU2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBMb29rIGZvciByZXBsYWNlbWVudHMuXG4gICAgbGV0IHNmOiB0cy5Tb3VyY2VGaWxlO1xuICAgIGlmICh0aGlzLnNmTWFwLmhhcyhmaWxlTmFtZSkpIHtcbiAgICAgIHNmID0gdGhpcy5zZk1hcC5nZXQoZmlsZU5hbWUpITtcbiAgICAgIGNvcHlGaWxlU2hpbURhdGEoZGVsZWdhdGVTZiwgc2YpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZiA9IGRlbGVnYXRlU2Y7XG4gICAgfVxuICAgIC8vIFR5cGVTY3JpcHQgZG9lc24ndCBhbGxvdyByZXR1cm5pbmcgcmVkaXJlY3Qgc291cmNlIGZpbGVzLiBUbyBhdm9pZCB1bmZvcnNlZW4gZXJyb3JzIHdlXG4gICAgLy8gcmV0dXJuIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSBpbnN0ZWFkIG9mIHRoZSByZWRpcmVjdCB0YXJnZXQuXG4gICAgY29uc3QgcmVkaXJlY3RJbmZvID0gKHNmIGFzIGFueSkucmVkaXJlY3RJbmZvO1xuICAgIGlmIChyZWRpcmVjdEluZm8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2YgPSByZWRpcmVjdEluZm8udW5yZWRpcmVjdGVkO1xuICAgIH1cblxuICAgIHRoaXMuc2hpbVRhZ2dlci50YWcoc2YpO1xuICAgIHJldHVybiBzZjtcbiAgfVxuXG4gIHBvc3RQcm9ncmFtQ3JlYXRpb25DbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuc2hpbVRhZ2dlci5maW5hbGl6ZSgpO1xuICB9XG5cbiAgd3JpdGVGaWxlKCk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGVDaGVja1Byb2dyYW1Ib3N0IHNob3VsZCBuZXZlciB3cml0ZSBmaWxlc2ApO1xuICB9XG5cbiAgZmlsZUV4aXN0cyhmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2ZNYXAuaGFzKGZpbGVOYW1lKSB8fCB0aGlzLmRlbGVnYXRlLmZpbGVFeGlzdHMoZmlsZU5hbWUpO1xuICB9XG59XG4iXX0=