Socket
Socket
Sign inDemoInstall

@glimmer/syntax

Package Overview
Dependencies
Maintainers
12
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/syntax - npm Package Compare versions

Comparing version 0.83.0 to 0.83.1

6

dist/commonjs/es2017/lib/v2-a/objects/resolution.js

@@ -185,4 +185,4 @@ "use strict";

if (this.ambiguity.namespaces.length === 0) {
return 33
/* GetFreeAsFallback */
return 31
/* GetStrictFree */
;

@@ -302,2 +302,2 @@ } else if (this.ambiguity.namespaces.length === 1) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFVQTs7Ozs7O0FBTU0sTUFBQSxnQkFBQSxDQUF1QjtBQUE3QixFQUFBLFdBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFUQyxFQUFBLFVBQVUsR0FBQTtBQUNSLFdBQUE7QUFBQTtBQUFBO0FBQ0Q7O0FBRUQsRUFBQSxTQUFTLEdBQUE7QUFDUCxXQUFBLFFBQUE7QUFDRDs7QUFQMEI7OztBQVl0QixNQUFNLGlCQUFpQixHQUFHLElBQTFCLGdCQUEwQixFQUExQjtBQUVQOzs7Ozs7Ozs7Ozs7QUFTTSxNQUFBLG1CQUFBLENBQTBCO0FBd0c5QixFQUFBLFdBQUEsQ0FBQSxTQUFBLEVBQW9ELGNBQUEsR0FBcEQsS0FBQSxFQUEwRTtBQUFyRCxTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQStCLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFBMEI7QUF2RzlFOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFBLFVBQUEsQ0FBQSxTQUFBLEVBQStDLGNBQWMsR0FBN0QsS0FBQSxFQUFxRTtBQUNuRSxXQUFPLElBQUEsbUJBQUEsQ0FDTDtBQUNFLE1BQUEsVUFBVSxFQUFFLENBRGQsU0FDYyxDQURkO0FBRUUsTUFBQSxRQUFRLEVBQUU7QUFGWixLQURLLEVBQVAsY0FBTyxDQUFQO0FBT0Q7QUFFRDs7Ozs7Ozs7Ozs7O0FBVUEsU0FBQSxRQUFBLEdBQWU7QUFDYixXQUFPLElBQUEsbUJBQUEsQ0FBd0I7QUFBRSxNQUFBLFVBQVUsRUFBWixFQUFBO0FBQWtCLE1BQUEsUUFBUSxFQUFFO0FBQTVCLEtBQXhCLENBQVA7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsU0FBQSxNQUFBLENBQWM7QUFBRSxJQUFBO0FBQUYsR0FBZCxFQUE2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QUFDRSxjQUFRLFVBQVUsQ0FBbEIsQ0FBa0IsQ0FBbEI7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFuQixNQUFBLENBQTJCO0FBQUUsWUFBQSxNQUFNLEVBQUU7QUFBVixXQUEzQixDQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQTFCLElBQU8sRUFBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFuQixNQUFBLENBQTJCO0FBQUUsWUFBQSxNQUFNLEVBQUU7QUFBVixXQUEzQixDQUFQO0FBTko7O0FBU0YsU0FBQSxJQUFBO0FBQ0UsYUFBTyxtQkFBbUIsQ0FBbkIsVUFBQSxDQUErQixVQUFVLENBQWhELENBQWdELENBQXpDLENBQVA7QUFaSjtBQWNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGZyZWUgdmFyaWFibGUgaXMgcmVzb2x2ZWQgYWNjb3JkaW5nIHRvIGEgcmVzb2x1dGlvbiBydWxlOlxuICpcbiAqIDEuIFN0cmljdCByZXNvbHV0aW9uXG4gKiAyLiBOYW1lc3BhY2VkIHJlc29sdXRpb25cbiAqIDMuIEZhbGxiYWNrIHJlc29sdXRpb25cbiAqL1xuXG5pbXBvcnQgeyBHZXRDb250ZXh0dWFsRnJlZU9wLCBTZXhwT3Bjb2RlcyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIFN0cmljdCByZXNvbHV0aW9uIGlzIHVzZWQ6XG4gKlxuICogMS4gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZVxuICogMi4gaW4gYW4gdW5hbWJpZ3VvdXMgaW52b2NhdGlvbiB3aXRoIGRvdCBwYXRoc1xuICovXG5leHBvcnQgY2xhc3MgU3RyaWN0UmVzb2x1dGlvbiB7XG4gIHJlc29sdXRpb24oKTogR2V0Q29udGV4dHVhbEZyZWVPcCB7XG4gICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWU7XG4gIH1cblxuICBzZXJpYWxpemUoKTogU2VyaWFsaXplZFJlc29sdXRpb24ge1xuICAgIHJldHVybiAnU3RyaWN0JztcbiAgfVxuXG4gIHJlYWRvbmx5IGlzQW5nbGVCcmFja2V0ID0gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBTVFJJQ1RfUkVTT0xVVElPTiA9IG5ldyBTdHJpY3RSZXNvbHV0aW9uKCk7XG5cbi8qKlxuICogQSBgTG9vc2VNb2RlUmVzb2x1dGlvbmAgaW5jbHVkZXM6XG4gKlxuICogLSAwIG9yIG1vcmUgbmFtZXNwYWNlcyB0byByZXNvbHZlIHRoZSB2YXJpYWJsZSBpblxuICogLSBvcHRpb25hbCBmYWxsYmFjayBiZWhhdmlvclxuICpcbiAqIEluIHByYWN0aWNlLCB0aGVyZSBhcmUgYSBsaW1pdGVkIG51bWJlciBvZiBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgdGhlc2UgZGVncmVlcyBvZiBmcmVlZG9tLFxuICogYW5kIHRoZXkgYXJlIGNhcHR1cmVkIGJ5IHRoZSBgQW1iaWd1aXR5YCB1bmlvbiBiZWxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAvKipcbiAgICogTmFtZXNwYWNlZCByZXNvbHV0aW9uIGlzIHVzZWQgaW4gYW4gdW5hbWJpZ3VvdXMgc3ludGF4IHBvc2l0aW9uOlxuICAgKlxuICAgKiAxLiBgKHNleHApYCAobmFtZXNwYWNlOiBgSGVscGVyYClcbiAgICogMi4gYHt7I2Jsb2NrfX1gIChuYW1lc3BhY2U6IGBDb21wb25lbnRgKVxuICAgKiAzLiBgPGEge3ttb2RpZmllcn19PmAgKG5hbWVzcGFjZTogYE1vZGlmaWVyYClcbiAgICogNC4gYDxDb21wb25lbnQgLz5gIChuYW1lc3BhY2U6IGBDb21wb25lbnRgKVxuICAgKlxuICAgKiBAc2VlIHtOYW1lc3BhY2VkQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIG5hbWVzcGFjZWQobmFtZXNwYWNlOiBGcmVlVmFyTmFtZXNwYWNlLCBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKFxuICAgICAge1xuICAgICAgICBuYW1lc3BhY2VzOiBbbmFtZXNwYWNlXSxcbiAgICAgICAgZmFsbGJhY2s6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGlzQW5nbGVCcmFja2V0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiBubyBuYW1lc3BhY2VkIHJlc29sdXRpb25zIGFyZSBwb3NzaWJsZSwgYnV0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24gaXMgc3RpbGwgYWxsb3dlZC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eC55fX1cbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUge0ZhbGxiYWNrQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGZhbGxiYWNrKCk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7IG5hbWVzcGFjZXM6IFtdLCBmYWxsYmFjazogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBpbiBib3RoIHRoZSBgY29tcG9uZW50YCBhbmRcbiAgICogYGhlbHBlcmAgbmFtZXNwYWNlcy4gRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyBvcHRpb25hbC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eH19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eCB5fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aG91dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBAc2VlIHtDb21wb25lbnRPckhlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBhcHBlbmQoeyBpbnZva2UgfTogeyBpbnZva2U6IGJvb2xlYW4gfSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7XG4gICAgICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQsIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSxcbiAgICAgIGZhbGxiYWNrOiAhaW52b2tlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRydXN0aW5nIGFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t7eH19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRoIGZhbGxiYWNrIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4IHl9fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aG91dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBAc2VlIHtIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgdHJ1c3RpbmdBcHBlbmQoeyBpbnZva2UgfTogeyBpbnZva2U6IGJvb2xlYW4gfSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7XG4gICAgICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0cmlidXRlIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgYXMgYSBgaGVscGVyYCB3aXRoIGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiA8YSBocmVmPXt7eH19IC8+XG4gICAqIDxhIGhyZWY9XCJ7e3h9fS5odG1sXCIgLz5cbiAgICogYGBgXG4gICAqXG4gICAqIF4gcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRoIGZhbGxiYWNrXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBhdHRyKCk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7IG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYW1iaWd1aXR5OiBBbWJpZ3VpdHksIHJlYWRvbmx5IGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpIHt9XG5cbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRoIGZhbGxiYWNrIG11c3QgYmUgYXR0cj17e3h9fVxuICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRob3V0IGZhbGxiYWNrXG4gICAgICAgIHN3aXRjaCAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlc1swXSkge1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXI6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZDtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuTW9kaWZpZXI6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkO1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQ6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgKyBmYWxsYmFjayAoe3tzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciB3aXRob3V0IGZhbGxiYWNrICh7e3NvbWV0aGluZyBzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQ7XG4gICAgfVxuICB9XG5cbiAgc2VyaWFsaXplKCk6IFNlcmlhbGl6ZWRSZXNvbHV0aW9uIHtcbiAgICBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnTG9vc2UnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGggZmFsbGJhY2sgbXVzdCBiZSBhdHRyPXt7eH19XG4gICAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXR0cl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWyducycsIHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXNbMF1dO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgKyBmYWxsYmFjayAoe3tzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXBwZW5kXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciB3aXRob3V0IGZhbGxiYWNrICh7e3NvbWV0aGluZyBzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuSW52b2tlXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX1JFU09MVVRJT04gPSBMb29zZU1vZGVSZXNvbHV0aW9uLmZhbGxiYWNrKCk7XG5cbmV4cG9ydCBjb25zdCBlbnVtIEZyZWVWYXJOYW1lc3BhY2Uge1xuICBIZWxwZXIgPSAnSGVscGVyJyxcbiAgTW9kaWZpZXIgPSAnTW9kaWZpZXInLFxuICBDb21wb25lbnQgPSAnQ29tcG9uZW50Jyxcbn1cblxuLyoqXG4gKiBBIGBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eWAgbWlnaHQgYmUgYSBjb21wb25lbnQgb3IgYSBoZWxwZXIsIHdpdGggYW4gb3B0aW9uYWwgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIHt7eH19XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMsIHdpdGggZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIHt7eCB5fX1cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcywgd2l0aG91dCBmYWxsYmFja1xuICovXG50eXBlIENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQsIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXTtcbiAgZmFsbGJhY2s6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEEgYEhlbHBlckFtYmlndWl0eWAgbXVzdCBiZSBhIGhlbHBlciwgYnV0IGl0IGhhcyBmYWxsYmFjay4gSWYgaXQgZGlkbid0IGhhdmUgZmFsbGJhY2ssIGl0IHdvdWxkXG4gKiBiZSBhIGBOYW1lc3BhY2VkQW1iaWd1aXR5YC5cbiAqXG4gKiBgYGBoYnNcbiAqIDxhIGhyZWY9e3t4fX0gLz5cbiAqIDxhIGhyZWY9XCJ7e3h9fS5odG1sXCIgLz5cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aCBmYWxsYmFja1xuICovXG50eXBlIEhlbHBlckFtYmlndWl0eSA9IHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXTsgZmFsbGJhY2s6IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBBIGBOYW1lc3BhY2VkQW1iaWd1aXR5YCBtdXN0IGJlIHJlc29sdmVkIGluIGEgcGFydGljdWxhciBuYW1lc3BhY2UsIHdpdGhvdXQgZmFsbGJhY2suXG4gKlxuICogYGBgaGJzXG4gKiA8WCAvPlxuICogYGBgXG4gKlxuICogXiBgWGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiAoeClcbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICogPGEge3t4fX0gLz5cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgbW9kaWZpZXJgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKi9cbnR5cGUgTmFtZXNwYWNlZEFtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50IHwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXIgfCBGcmVlVmFyTmFtZXNwYWNlLk1vZGlmaWVyXTtcbiAgZmFsbGJhY2s6IGZhbHNlO1xufTtcblxudHlwZSBGYWxsYmFja0FtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW107XG4gIGZhbGxiYWNrOiB0cnVlO1xufTtcblxudHlwZSBBbWJpZ3VpdHkgPVxuICB8IENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5XG4gIHwgSGVscGVyQW1iaWd1aXR5XG4gIHwgTmFtZXNwYWNlZEFtYmlndWl0eVxuICB8IEZhbGxiYWNrQW1iaWd1aXR5O1xuXG5leHBvcnQgdHlwZSBGcmVlVmFyUmVzb2x1dGlvbiA9IFN0cmljdFJlc29sdXRpb24gfCBMb29zZU1vZGVSZXNvbHV0aW9uO1xuXG4vLyBTZXJpYWxpemF0aW9uXG5cbmNvbnN0IGVudW0gU2VyaWFsaXplZEFtYmlndWl0eSB7XG4gIC8vIHt7eH19XG4gIEFwcGVuZCA9ICdBcHBlbmQnLFxuICAvLyBocmVmPXt7eH19XG4gIEF0dHIgPSAnQXR0cicsXG4gIC8vIHt7eCB5fX0gKG5vdCBhdHRyKVxuICBJbnZva2UgPSAnSW52b2tlJyxcbn1cblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFJlc29sdXRpb24gPVxuICB8ICdTdHJpY3QnXG4gIHwgJ0xvb3NlJ1xuICB8IFsnbnMnLCBGcmVlVmFyTmFtZXNwYWNlXVxuICB8IFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eV07XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVzb2x1dGlvbihyZXNvbHV0aW9uOiBTZXJpYWxpemVkUmVzb2x1dGlvbik6IEZyZWVWYXJSZXNvbHV0aW9uIHtcbiAgaWYgKHR5cGVvZiByZXNvbHV0aW9uID09PSAnc3RyaW5nJykge1xuICAgIHN3aXRjaCAocmVzb2x1dGlvbikge1xuICAgICAgY2FzZSAnTG9vc2UnOlxuICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5mYWxsYmFjaygpO1xuICAgICAgY2FzZSAnU3RyaWN0JzpcbiAgICAgICAgcmV0dXJuIFNUUklDVF9SRVNPTFVUSU9OO1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAocmVzb2x1dGlvblswXSkge1xuICAgIGNhc2UgJ2FtYmlndW91cyc6XG4gICAgICBzd2l0Y2ggKHJlc29sdXRpb25bMV0pIHtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5LkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hcHBlbmQoeyBpbnZva2U6IGZhbHNlIH0pO1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXR0cjpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hdHRyKCk7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5JbnZva2U6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXBwZW5kKHsgaW52b2tlOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSAnbnMnOlxuICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24ubmFtZXNwYWNlZChyZXNvbHV0aW9uWzFdKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFVQTs7Ozs7O0FBTU0sTUFBQSxnQkFBQSxDQUF1QjtBQUE3QixFQUFBLFdBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFUQyxFQUFBLFVBQVUsR0FBQTtBQUNSLFdBQUE7QUFBQTtBQUFBO0FBQ0Q7O0FBRUQsRUFBQSxTQUFTLEdBQUE7QUFDUCxXQUFBLFFBQUE7QUFDRDs7QUFQMEI7OztBQVl0QixNQUFNLGlCQUFpQixHQUFHLElBQTFCLGdCQUEwQixFQUExQjtBQUVQOzs7Ozs7Ozs7Ozs7QUFTTSxNQUFBLG1CQUFBLENBQTBCO0FBd0c5QixFQUFBLFdBQUEsQ0FBQSxTQUFBLEVBQW9ELGNBQUEsR0FBcEQsS0FBQSxFQUEwRTtBQUFyRCxTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQStCLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFBMEI7QUF2RzlFOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFBLFVBQUEsQ0FBQSxTQUFBLEVBQStDLGNBQWMsR0FBN0QsS0FBQSxFQUFxRTtBQUNuRSxXQUFPLElBQUEsbUJBQUEsQ0FDTDtBQUNFLE1BQUEsVUFBVSxFQUFFLENBRGQsU0FDYyxDQURkO0FBRUUsTUFBQSxRQUFRLEVBQUU7QUFGWixLQURLLEVBQVAsY0FBTyxDQUFQO0FBT0Q7QUFFRDs7Ozs7Ozs7Ozs7O0FBVUEsU0FBQSxRQUFBLEdBQWU7QUFDYixXQUFPLElBQUEsbUJBQUEsQ0FBd0I7QUFBRSxNQUFBLFVBQVUsRUFBWixFQUFBO0FBQWtCLE1BQUEsUUFBUSxFQUFFO0FBQTVCLEtBQXhCLENBQVA7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsU0FBQSxNQUFBLENBQWM7QUFBRSxJQUFBO0FBQUYsR0FBZCxFQUE2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QUFDRSxjQUFRLFVBQVUsQ0FBbEIsQ0FBa0IsQ0FBbEI7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFuQixNQUFBLENBQTJCO0FBQUUsWUFBQSxNQUFNLEVBQUU7QUFBVixXQUEzQixDQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQTFCLElBQU8sRUFBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFuQixNQUFBLENBQTJCO0FBQUUsWUFBQSxNQUFNLEVBQUU7QUFBVixXQUEzQixDQUFQO0FBTko7O0FBU0YsU0FBQSxJQUFBO0FBQ0UsYUFBTyxtQkFBbUIsQ0FBbkIsVUFBQSxDQUErQixVQUFVLENBQWhELENBQWdELENBQXpDLENBQVA7QUFaSjtBQWNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGZyZWUgdmFyaWFibGUgaXMgcmVzb2x2ZWQgYWNjb3JkaW5nIHRvIGEgcmVzb2x1dGlvbiBydWxlOlxuICpcbiAqIDEuIFN0cmljdCByZXNvbHV0aW9uXG4gKiAyLiBOYW1lc3BhY2VkIHJlc29sdXRpb25cbiAqIDMuIEZhbGxiYWNrIHJlc29sdXRpb25cbiAqL1xuXG5pbXBvcnQgeyBHZXRDb250ZXh0dWFsRnJlZU9wLCBTZXhwT3Bjb2RlcyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIFN0cmljdCByZXNvbHV0aW9uIGlzIHVzZWQ6XG4gKlxuICogMS4gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZVxuICogMi4gaW4gYW4gdW5hbWJpZ3VvdXMgaW52b2NhdGlvbiB3aXRoIGRvdCBwYXRoc1xuICovXG5leHBvcnQgY2xhc3MgU3RyaWN0UmVzb2x1dGlvbiB7XG4gIHJlc29sdXRpb24oKTogR2V0Q29udGV4dHVhbEZyZWVPcCB7XG4gICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWU7XG4gIH1cblxuICBzZXJpYWxpemUoKTogU2VyaWFsaXplZFJlc29sdXRpb24ge1xuICAgIHJldHVybiAnU3RyaWN0JztcbiAgfVxuXG4gIHJlYWRvbmx5IGlzQW5nbGVCcmFja2V0ID0gZmFsc2U7XG59XG5cbmV4cG9ydCBjb25zdCBTVFJJQ1RfUkVTT0xVVElPTiA9IG5ldyBTdHJpY3RSZXNvbHV0aW9uKCk7XG5cbi8qKlxuICogQSBgTG9vc2VNb2RlUmVzb2x1dGlvbmAgaW5jbHVkZXM6XG4gKlxuICogLSAwIG9yIG1vcmUgbmFtZXNwYWNlcyB0byByZXNvbHZlIHRoZSB2YXJpYWJsZSBpblxuICogLSBvcHRpb25hbCBmYWxsYmFjayBiZWhhdmlvclxuICpcbiAqIEluIHByYWN0aWNlLCB0aGVyZSBhcmUgYSBsaW1pdGVkIG51bWJlciBvZiBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgdGhlc2UgZGVncmVlcyBvZiBmcmVlZG9tLFxuICogYW5kIHRoZXkgYXJlIGNhcHR1cmVkIGJ5IHRoZSBgQW1iaWd1aXR5YCB1bmlvbiBiZWxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAvKipcbiAgICogTmFtZXNwYWNlZCByZXNvbHV0aW9uIGlzIHVzZWQgaW4gYW4gdW5hbWJpZ3VvdXMgc3ludGF4IHBvc2l0aW9uOlxuICAgKlxuICAgKiAxLiBgKHNleHApYCAobmFtZXNwYWNlOiBgSGVscGVyYClcbiAgICogMi4gYHt7I2Jsb2NrfX1gIChuYW1lc3BhY2U6IGBDb21wb25lbnRgKVxuICAgKiAzLiBgPGEge3ttb2RpZmllcn19PmAgKG5hbWVzcGFjZTogYE1vZGlmaWVyYClcbiAgICogNC4gYDxDb21wb25lbnQgLz5gIChuYW1lc3BhY2U6IGBDb21wb25lbnRgKVxuICAgKlxuICAgKiBAc2VlIHtOYW1lc3BhY2VkQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIG5hbWVzcGFjZWQobmFtZXNwYWNlOiBGcmVlVmFyTmFtZXNwYWNlLCBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKFxuICAgICAge1xuICAgICAgICBuYW1lc3BhY2VzOiBbbmFtZXNwYWNlXSxcbiAgICAgICAgZmFsbGJhY2s6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGlzQW5nbGVCcmFja2V0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiBubyBuYW1lc3BhY2VkIHJlc29sdXRpb25zIGFyZSBwb3NzaWJsZSwgYnV0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24gaXMgc3RpbGwgYWxsb3dlZC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eC55fX1cbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUge0ZhbGxiYWNrQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGZhbGxiYWNrKCk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7IG5hbWVzcGFjZXM6IFtdLCBmYWxsYmFjazogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBpbiBib3RoIHRoZSBgY29tcG9uZW50YCBhbmRcbiAgICogYGhlbHBlcmAgbmFtZXNwYWNlcy4gRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyBvcHRpb25hbC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eH19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7eCB5fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aG91dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBAc2VlIHtDb21wb25lbnRPckhlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBhcHBlbmQoeyBpbnZva2UgfTogeyBpbnZva2U6IGJvb2xlYW4gfSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7XG4gICAgICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQsIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSxcbiAgICAgIGZhbGxiYWNrOiAhaW52b2tlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRydXN0aW5nIGFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t7eH19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRoIGZhbGxiYWNrIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4IHl9fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aG91dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBAc2VlIHtIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgdHJ1c3RpbmdBcHBlbmQoeyBpbnZva2UgfTogeyBpbnZva2U6IGJvb2xlYW4gfSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7XG4gICAgICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0cmlidXRlIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgYXMgYSBgaGVscGVyYCB3aXRoIGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiA8YSBocmVmPXt7eH19IC8+XG4gICAqIDxhIGhyZWY9XCJ7e3h9fS5odG1sXCIgLz5cbiAgICogYGBgXG4gICAqXG4gICAqIF4gcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRoIGZhbGxiYWNrXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBhdHRyKCk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbih7IG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYW1iaWd1aXR5OiBBbWJpZ3VpdHksIHJlYWRvbmx5IGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpIHt9XG5cbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGggZmFsbGJhY2sgbXVzdCBiZSBhdHRyPXt7eH19XG4gICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGhvdXQgZmFsbGJhY2tcbiAgICAgICAgc3dpdGNoICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdKSB7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudDpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDtcbiAgICB9XG4gIH1cblxuICBzZXJpYWxpemUoKTogU2VyaWFsaXplZFJlc29sdXRpb24ge1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdMb29zZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbJ25zJywgdGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlc1swXV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmRdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5JbnZva2VdO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUkVTT0xVVElPTiA9IExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcblxuZXhwb3J0IGNvbnN0IGVudW0gRnJlZVZhck5hbWVzcGFjZSB7XG4gIEhlbHBlciA9ICdIZWxwZXInLFxuICBNb2RpZmllciA9ICdNb2RpZmllcicsXG4gIENvbXBvbmVudCA9ICdDb21wb25lbnQnLFxufVxuXG4vKipcbiAqIEEgYENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5YCBtaWdodCBiZSBhIGNvbXBvbmVudCBvciBhIGhlbHBlciwgd2l0aCBhbiBvcHRpb25hbCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4fX1cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcywgd2l0aCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4IHl9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRob3V0IGZhbGxiYWNrXG4gKi9cbnR5cGUgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdO1xuICBmYWxsYmFjazogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQSBgSGVscGVyQW1iaWd1aXR5YCBtdXN0IGJlIGEgaGVscGVyLCBidXQgaXQgaGFzIGZhbGxiYWNrLiBJZiBpdCBkaWRuJ3QgaGF2ZSBmYWxsYmFjaywgaXQgd291bGRcbiAqIGJlIGEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgLlxuICpcbiAqIGBgYGhic1xuICogPGEgaHJlZj17e3h9fSAvPlxuICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRoIGZhbGxiYWNrXG4gKi9cbnR5cGUgSGVscGVyQW1iaWd1aXR5ID0geyBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdOyBmYWxsYmFjazogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgIG11c3QgYmUgcmVzb2x2ZWQgaW4gYSBwYXJ0aWN1bGFyIG5hbWVzcGFjZSwgd2l0aG91dCBmYWxsYmFjay5cbiAqXG4gKiBgYGBoYnNcbiAqIDxYIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGBYYCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqICh4KVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiA8YSB7e3h9fSAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBtb2RpZmllcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBOYW1lc3BhY2VkQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQgfCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlciB8IEZyZWVWYXJOYW1lc3BhY2UuTW9kaWZpZXJdO1xuICBmYWxsYmFjazogZmFsc2U7XG59O1xuXG50eXBlIEZhbGxiYWNrQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbXTtcbiAgZmFsbGJhY2s6IHRydWU7XG59O1xuXG50eXBlIEFtYmlndWl0eSA9XG4gIHwgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlcbiAgfCBIZWxwZXJBbWJpZ3VpdHlcbiAgfCBOYW1lc3BhY2VkQW1iaWd1aXR5XG4gIHwgRmFsbGJhY2tBbWJpZ3VpdHk7XG5cbmV4cG9ydCB0eXBlIEZyZWVWYXJSZXNvbHV0aW9uID0gU3RyaWN0UmVzb2x1dGlvbiB8IExvb3NlTW9kZVJlc29sdXRpb247XG5cbi8vIFNlcmlhbGl6YXRpb25cblxuY29uc3QgZW51bSBTZXJpYWxpemVkQW1iaWd1aXR5IHtcbiAgLy8ge3t4fX1cbiAgQXBwZW5kID0gJ0FwcGVuZCcsXG4gIC8vIGhyZWY9e3t4fX1cbiAgQXR0ciA9ICdBdHRyJyxcbiAgLy8ge3t4IHl9fSAobm90IGF0dHIpXG4gIEludm9rZSA9ICdJbnZva2UnLFxufVxuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUmVzb2x1dGlvbiA9XG4gIHwgJ1N0cmljdCdcbiAgfCAnTG9vc2UnXG4gIHwgWyducycsIEZyZWVWYXJOYW1lc3BhY2VdXG4gIHwgWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZXNvbHV0aW9uKHJlc29sdXRpb246IFNlcmlhbGl6ZWRSZXNvbHV0aW9uKTogRnJlZVZhclJlc29sdXRpb24ge1xuICBpZiAodHlwZW9mIHJlc29sdXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgc3dpdGNoIChyZXNvbHV0aW9uKSB7XG4gICAgICBjYXNlICdMb29zZSc6XG4gICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmZhbGxiYWNrKCk7XG4gICAgICBjYXNlICdTdHJpY3QnOlxuICAgICAgICByZXR1cm4gU1RSSUNUX1JFU09MVVRJT047XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChyZXNvbHV0aW9uWzBdKSB7XG4gICAgY2FzZSAnYW1iaWd1b3VzJzpcbiAgICAgIHN3aXRjaCAocmVzb2x1dGlvblsxXSkge1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogZmFsc2UgfSk7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmF0dHIoKTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZTpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hcHBlbmQoeyBpbnZva2U6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICBjYXNlICducyc6XG4gICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5uYW1lc3BhY2VkKHJlc29sdXRpb25bMV0pO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -196,4 +196,4 @@ "use strict";

if (this.ambiguity.namespaces.length === 0) {
return 33
/* GetFreeAsFallback */
return 31
/* GetStrictFree */
;

@@ -314,2 +314,2 @@ } else if (this.ambiguity.namespaces.length === 1) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFVQTs7Ozs7O0FBTUEsSUFBTSxnQkFBTixHQUFBLGFBQUEsWUFBQTtBQUFBLFdBQUEsZ0JBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFWRCxNQUFBLE1BQUEsR0FBQSxnQkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsVUFBQSxHQUNFLFNBQUEsVUFBQSxHQUFVO0FBQ1IsV0FBQTtBQUFBO0FBQUE7QUFGSixHQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLFNBQUEsR0FLRSxTQUFBLFNBQUEsR0FBUztBQUNQLFdBQUEsUUFBQTtBQU5KLEdBQUE7O0FBQUEsU0FBQSxnQkFBQTtBQUFBLENBQUEsRUFBQTs7O0FBWU8sSUFBTSxpQkFBaUIsR0FBRyxJQUExQixnQkFBMEIsRUFBMUI7QUFFUDs7Ozs7Ozs7Ozs7O0FBU0EsSUFBTSxtQkFBTixHQUFBLGFBQUEsWUFBQTtBQXdHRSxXQUFBLG1CQUFBLENBQUEsU0FBQSxFQUFBLGNBQUEsRUFBMEU7QUFBQSxRQUF0QixjQUFzQixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQXRCLE1BQUEsY0FBc0IsR0FBMUUsS0FBb0Q7QUFBc0I7O0FBQXJELFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFBK0IsU0FBQSxjQUFBLEdBQUEsY0FBQTtBQUEwQjtBQXZHOUU7Ozs7Ozs7Ozs7OztBQURGLEVBQUEsbUJBQUEsQ0FBQSxVQUFBLEdBV0UsU0FBQSxVQUFBLENBQUEsU0FBQSxFQUFBLGNBQUEsRUFBcUU7QUFBQSxRQUF0QixjQUFzQixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQXRCLE1BQUEsY0FBc0IsR0FBckUsS0FBK0M7QUFBc0I7O0FBQ25FLFdBQU8sSUFBQSxtQkFBQSxDQUNM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QW5CLFVBQUEsQ0FBK0IsVUFBVSxDQUFoRCxDQUFnRCxDQUF6QyxDQUFQO0FBWko7QUFjRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBmcmVlIHZhcmlhYmxlIGlzIHJlc29sdmVkIGFjY29yZGluZyB0byBhIHJlc29sdXRpb24gcnVsZTpcbiAqXG4gKiAxLiBTdHJpY3QgcmVzb2x1dGlvblxuICogMi4gTmFtZXNwYWNlZCByZXNvbHV0aW9uXG4gKiAzLiBGYWxsYmFjayByZXNvbHV0aW9uXG4gKi9cblxuaW1wb3J0IHsgR2V0Q29udGV4dHVhbEZyZWVPcCwgU2V4cE9wY29kZXMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBTdHJpY3QgcmVzb2x1dGlvbiBpcyB1c2VkOlxuICpcbiAqIDEuIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGVcbiAqIDIuIGluIGFuIHVuYW1iaWd1b3VzIGludm9jYXRpb24gd2l0aCBkb3QgcGF0aHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmljdFJlc29sdXRpb24ge1xuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IFNlcmlhbGl6ZWRSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gJ1N0cmljdCc7XG4gIH1cblxuICByZWFkb25seSBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgU1RSSUNUX1JFU09MVVRJT04gPSBuZXcgU3RyaWN0UmVzb2x1dGlvbigpO1xuXG4vKipcbiAqIEEgYExvb3NlTW9kZVJlc29sdXRpb25gIGluY2x1ZGVzOlxuICpcbiAqIC0gMCBvciBtb3JlIG5hbWVzcGFjZXMgdG8gcmVzb2x2ZSB0aGUgdmFyaWFibGUgaW5cbiAqIC0gb3B0aW9uYWwgZmFsbGJhY2sgYmVoYXZpb3JcbiAqXG4gKiBJbiBwcmFjdGljZSwgdGhlcmUgYXJlIGEgbGltaXRlZCBudW1iZXIgb2YgcG9zc2libGUgY29tYmluYXRpb25zIG9mIHRoZXNlIGRlZ3JlZXMgb2YgZnJlZWRvbSxcbiAqIGFuZCB0aGV5IGFyZSBjYXB0dXJlZCBieSB0aGUgYEFtYmlndWl0eWAgdW5pb24gYmVsb3cuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgLyoqXG4gICAqIE5hbWVzcGFjZWQgcmVzb2x1dGlvbiBpcyB1c2VkIGluIGFuIHVuYW1iaWd1b3VzIHN5bnRheCBwb3NpdGlvbjpcbiAgICpcbiAgICogMS4gYChzZXhwKWAgKG5hbWVzcGFjZTogYEhlbHBlcmApXG4gICAqIDIuIGB7eyNibG9ja319YCAobmFtZXNwYWNlOiBgQ29tcG9uZW50YClcbiAgICogMy4gYDxhIHt7bW9kaWZpZXJ9fT5gIChuYW1lc3BhY2U6IGBNb2RpZmllcmApXG4gICAqIDQuIGA8Q29tcG9uZW50IC8+YCAobmFtZXNwYWNlOiBgQ29tcG9uZW50YClcbiAgICpcbiAgICogQHNlZSB7TmFtZXNwYWNlZEFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBuYW1lc3BhY2VkKG5hbWVzcGFjZTogRnJlZVZhck5hbWVzcGFjZSwgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbihcbiAgICAgIHtcbiAgICAgICAgbmFtZXNwYWNlczogW25hbWVzcGFjZV0sXG4gICAgICAgIGZhbGxiYWNrOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBpc0FuZ2xlQnJhY2tldFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gbm8gbmFtZXNwYWNlZCByZXNvbHV0aW9ucyBhcmUgcG9zc2libGUsIGJ1dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uIGlzIHN0aWxsIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3gueX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIHtGYWxsYmFja0FtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBmYWxsYmFjaygpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oeyBuYW1lc3BhY2VzOiBbXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3h9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRoIGZhbGxiYWNrIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3ggeX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGhvdXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogQHNlZSB7Q29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgYXBwZW5kKHsgaW52b2tlIH06IHsgaW52b2tlOiBib29sZWFuIH0pOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oe1xuICAgICAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50LCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnVzdGluZyBhcHBlbmQgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBpbiBib3RoIHRoZSBgY29tcG9uZW50YCBhbmRcbiAgICogYGhlbHBlcmAgbmFtZXNwYWNlcy4gRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyBvcHRpb25hbC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3h9fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t7eCB5fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGhvdXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIHRydXN0aW5nQXBwZW5kKHsgaW52b2tlIH06IHsgaW52b2tlOiBib29sZWFuIH0pOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oe1xuICAgICAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSxcbiAgICAgIGZhbGxiYWNrOiAhaW52b2tlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGFzIGEgYGhlbHBlcmAgd2l0aCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICogPGEgaHJlZj17e3h9fSAvPlxuICAgKiA8YSBocmVmPVwie3t4fX0uaHRtbFwiIC8+XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aCBmYWxsYmFja1xuICAgKlxuICAgKiBAc2VlIHtIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgYXR0cigpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oeyBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLCBmYWxsYmFjazogdHJ1ZSB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGFtYmlndWl0eTogQW1iaWd1aXR5LCByZWFkb25seSBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlKSB7fVxuXG4gIHJlc29sdXRpb24oKTogR2V0Q29udGV4dHVhbEZyZWVPcCB7XG4gICAgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2s7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aG91dCBmYWxsYmFja1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXNbMF0pIHtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLk1vZGlmaWVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZDtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50OlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkO1xuICAgIH1cbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ0xvb3NlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRoIGZhbGxiYWNrIG11c3QgYmUgYXR0cj17e3h9fVxuICAgICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsnbnMnLCB0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkFwcGVuZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZV07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBUkdVTUVOVF9SRVNPTFVUSU9OID0gTG9vc2VNb2RlUmVzb2x1dGlvbi5mYWxsYmFjaygpO1xuXG5leHBvcnQgY29uc3QgZW51bSBGcmVlVmFyTmFtZXNwYWNlIHtcbiAgSGVscGVyID0gJ0hlbHBlcicsXG4gIE1vZGlmaWVyID0gJ01vZGlmaWVyJyxcbiAgQ29tcG9uZW50ID0gJ0NvbXBvbmVudCcsXG59XG5cbi8qKlxuICogQSBgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlgIG1pZ2h0IGJlIGEgY29tcG9uZW50IG9yIGEgaGVscGVyLCB3aXRoIGFuIG9wdGlvbmFsIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3h9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRoIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3ggeX19XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMsIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50LCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07XG4gIGZhbGxiYWNrOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBIGBIZWxwZXJBbWJpZ3VpdHlgIG11c3QgYmUgYSBoZWxwZXIsIGJ1dCBpdCBoYXMgZmFsbGJhY2suIElmIGl0IGRpZG4ndCBoYXZlIGZhbGxiYWNrLCBpdCB3b3VsZFxuICogYmUgYSBgTmFtZXNwYWNlZEFtYmlndWl0eWAuXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPXt7eH19IC8+XG4gKiA8YSBocmVmPVwie3t4fX0uaHRtbFwiIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAqL1xudHlwZSBIZWxwZXJBbWJpZ3VpdHkgPSB7IG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07IGZhbGxiYWNrOiBib29sZWFuIH07XG5cbi8qKlxuICogQSBgTmFtZXNwYWNlZEFtYmlndWl0eWAgbXVzdCBiZSByZXNvbHZlZCBpbiBhIHBhcnRpY3VsYXIgbmFtZXNwYWNlLCB3aXRob3V0IGZhbGxiYWNrLlxuICpcbiAqIGBgYGhic1xuICogPFggLz5cbiAqIGBgYFxuICpcbiAqIF4gYFhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICogKHgpXG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIDxhIHt7eH19IC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYG1vZGlmaWVyYCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICovXG50eXBlIE5hbWVzcGFjZWRBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCB8IEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyIHwgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcl07XG4gIGZhbGxiYWNrOiBmYWxzZTtcbn07XG5cbnR5cGUgRmFsbGJhY2tBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtdO1xuICBmYWxsYmFjazogdHJ1ZTtcbn07XG5cbnR5cGUgQW1iaWd1aXR5ID1cbiAgfCBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eVxuICB8IEhlbHBlckFtYmlndWl0eVxuICB8IE5hbWVzcGFjZWRBbWJpZ3VpdHlcbiAgfCBGYWxsYmFja0FtYmlndWl0eTtcblxuZXhwb3J0IHR5cGUgRnJlZVZhclJlc29sdXRpb24gPSBTdHJpY3RSZXNvbHV0aW9uIHwgTG9vc2VNb2RlUmVzb2x1dGlvbjtcblxuLy8gU2VyaWFsaXphdGlvblxuXG5jb25zdCBlbnVtIFNlcmlhbGl6ZWRBbWJpZ3VpdHkge1xuICAvLyB7e3h9fVxuICBBcHBlbmQgPSAnQXBwZW5kJyxcbiAgLy8gaHJlZj17e3h9fVxuICBBdHRyID0gJ0F0dHInLFxuICAvLyB7e3ggeX19IChub3QgYXR0cilcbiAgSW52b2tlID0gJ0ludm9rZScsXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRSZXNvbHV0aW9uID1cbiAgfCAnU3RyaWN0J1xuICB8ICdMb29zZSdcbiAgfCBbJ25zJywgRnJlZVZhck5hbWVzcGFjZV1cbiAgfCBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHldO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlc29sdXRpb24ocmVzb2x1dGlvbjogU2VyaWFsaXplZFJlc29sdXRpb24pOiBGcmVlVmFyUmVzb2x1dGlvbiB7XG4gIGlmICh0eXBlb2YgcmVzb2x1dGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICBzd2l0Y2ggKHJlc29sdXRpb24pIHtcbiAgICAgIGNhc2UgJ0xvb3NlJzpcbiAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcbiAgICAgIGNhc2UgJ1N0cmljdCc6XG4gICAgICAgIHJldHVybiBTVFJJQ1RfUkVTT0xVVElPTjtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHJlc29sdXRpb25bMF0pIHtcbiAgICBjYXNlICdhbWJpZ3VvdXMnOlxuICAgICAgc3dpdGNoIChyZXNvbHV0aW9uWzFdKSB7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmQ6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXBwZW5kKHsgaW52b2tlOiBmYWxzZSB9KTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHI6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXR0cigpO1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuSW52b2tlOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ25zJzpcbiAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLm5hbWVzcGFjZWQocmVzb2x1dGlvblsxXSk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFVQTs7Ozs7O0FBTUEsSUFBTSxnQkFBTixHQUFBLGFBQUEsWUFBQTtBQUFBLFdBQUEsZ0JBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFWRCxNQUFBLE1BQUEsR0FBQSxnQkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsVUFBQSxHQUNFLFNBQUEsVUFBQSxHQUFVO0FBQ1IsV0FBQTtBQUFBO0FBQUE7QUFGSixHQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLFNBQUEsR0FLRSxTQUFBLFNBQUEsR0FBUztBQUNQLFdBQUEsUUFBQTtBQU5KLEdBQUE7O0FBQUEsU0FBQSxnQkFBQTtBQUFBLENBQUEsRUFBQTs7O0FBWU8sSUFBTSxpQkFBaUIsR0FBRyxJQUExQixnQkFBMEIsRUFBMUI7QUFFUDs7Ozs7Ozs7Ozs7O0FBU0EsSUFBTSxtQkFBTixHQUFBLGFBQUEsWUFBQTtBQXdHRSxXQUFBLG1CQUFBLENBQUEsU0FBQSxFQUFBLGNBQUEsRUFBMEU7QUFBQSxRQUF0QixjQUFzQixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQXRCLE1BQUEsY0FBc0IsR0FBMUUsS0FBb0Q7QUFBc0I7O0FBQXJELFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFBK0IsU0FBQSxjQUFBLEdBQUEsY0FBQTtBQUEwQjtBQXZHOUU7Ozs7Ozs7Ozs7OztBQURGLEVBQUEsbUJBQUEsQ0FBQSxVQUFBLEdBV0UsU0FBQSxVQUFBLENBQUEsU0FBQSxFQUFBLGNBQUEsRUFBcUU7QUFBQSxRQUF0QixjQUFzQixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQXRCLE1BQUEsY0FBc0IsR0FBckUsS0FBK0M7QUFBc0I7O0FBQ25FLFdBQU8sSUFBQSxtQkFBQSxDQUNM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QW5CLFVBQUEsQ0FBK0IsVUFBVSxDQUFoRCxDQUFnRCxDQUF6QyxDQUFQO0FBWko7QUFjRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBmcmVlIHZhcmlhYmxlIGlzIHJlc29sdmVkIGFjY29yZGluZyB0byBhIHJlc29sdXRpb24gcnVsZTpcbiAqXG4gKiAxLiBTdHJpY3QgcmVzb2x1dGlvblxuICogMi4gTmFtZXNwYWNlZCByZXNvbHV0aW9uXG4gKiAzLiBGYWxsYmFjayByZXNvbHV0aW9uXG4gKi9cblxuaW1wb3J0IHsgR2V0Q29udGV4dHVhbEZyZWVPcCwgU2V4cE9wY29kZXMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBTdHJpY3QgcmVzb2x1dGlvbiBpcyB1c2VkOlxuICpcbiAqIDEuIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGVcbiAqIDIuIGluIGFuIHVuYW1iaWd1b3VzIGludm9jYXRpb24gd2l0aCBkb3QgcGF0aHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmljdFJlc29sdXRpb24ge1xuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IFNlcmlhbGl6ZWRSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gJ1N0cmljdCc7XG4gIH1cblxuICByZWFkb25seSBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgU1RSSUNUX1JFU09MVVRJT04gPSBuZXcgU3RyaWN0UmVzb2x1dGlvbigpO1xuXG4vKipcbiAqIEEgYExvb3NlTW9kZVJlc29sdXRpb25gIGluY2x1ZGVzOlxuICpcbiAqIC0gMCBvciBtb3JlIG5hbWVzcGFjZXMgdG8gcmVzb2x2ZSB0aGUgdmFyaWFibGUgaW5cbiAqIC0gb3B0aW9uYWwgZmFsbGJhY2sgYmVoYXZpb3JcbiAqXG4gKiBJbiBwcmFjdGljZSwgdGhlcmUgYXJlIGEgbGltaXRlZCBudW1iZXIgb2YgcG9zc2libGUgY29tYmluYXRpb25zIG9mIHRoZXNlIGRlZ3JlZXMgb2YgZnJlZWRvbSxcbiAqIGFuZCB0aGV5IGFyZSBjYXB0dXJlZCBieSB0aGUgYEFtYmlndWl0eWAgdW5pb24gYmVsb3cuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgLyoqXG4gICAqIE5hbWVzcGFjZWQgcmVzb2x1dGlvbiBpcyB1c2VkIGluIGFuIHVuYW1iaWd1b3VzIHN5bnRheCBwb3NpdGlvbjpcbiAgICpcbiAgICogMS4gYChzZXhwKWAgKG5hbWVzcGFjZTogYEhlbHBlcmApXG4gICAqIDIuIGB7eyNibG9ja319YCAobmFtZXNwYWNlOiBgQ29tcG9uZW50YClcbiAgICogMy4gYDxhIHt7bW9kaWZpZXJ9fT5gIChuYW1lc3BhY2U6IGBNb2RpZmllcmApXG4gICAqIDQuIGA8Q29tcG9uZW50IC8+YCAobmFtZXNwYWNlOiBgQ29tcG9uZW50YClcbiAgICpcbiAgICogQHNlZSB7TmFtZXNwYWNlZEFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBuYW1lc3BhY2VkKG5hbWVzcGFjZTogRnJlZVZhck5hbWVzcGFjZSwgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSk6IExvb3NlTW9kZVJlc29sdXRpb24ge1xuICAgIHJldHVybiBuZXcgTG9vc2VNb2RlUmVzb2x1dGlvbihcbiAgICAgIHtcbiAgICAgICAgbmFtZXNwYWNlczogW25hbWVzcGFjZV0sXG4gICAgICAgIGZhbGxiYWNrOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBpc0FuZ2xlQnJhY2tldFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gbm8gbmFtZXNwYWNlZCByZXNvbHV0aW9ucyBhcmUgcG9zc2libGUsIGJ1dCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uIGlzIHN0aWxsIGFsbG93ZWQuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3gueX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIHtGYWxsYmFja0FtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyBmYWxsYmFjaygpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oeyBuYW1lc3BhY2VzOiBbXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3h9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRoIGZhbGxiYWNrIHJlc29sdXRpb24uXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3ggeX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGhvdXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogQHNlZSB7Q29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgYXBwZW5kKHsgaW52b2tlIH06IHsgaW52b2tlOiBib29sZWFuIH0pOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oe1xuICAgICAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50LCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnVzdGluZyBhcHBlbmQgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBpbiBib3RoIHRoZSBgY29tcG9uZW50YCBhbmRcbiAgICogYGhlbHBlcmAgbmFtZXNwYWNlcy4gRmFsbGJhY2sgcmVzb2x1dGlvbiBpcyBvcHRpb25hbC5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3h9fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t7eCB5fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGhvdXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIHRydXN0aW5nQXBwZW5kKHsgaW52b2tlIH06IHsgaW52b2tlOiBib29sZWFuIH0pOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oe1xuICAgICAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSxcbiAgICAgIGZhbGxiYWNrOiAhaW52b2tlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGFzIGEgYGhlbHBlcmAgd2l0aCBmYWxsYmFja1xuICAgKiByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICogPGEgaHJlZj17e3h9fSAvPlxuICAgKiA8YSBocmVmPVwie3t4fX0uaHRtbFwiIC8+XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aCBmYWxsYmFja1xuICAgKlxuICAgKiBAc2VlIHtIZWxwZXJBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgYXR0cigpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oeyBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLCBmYWxsYmFjazogdHJ1ZSB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGFtYmlndWl0eTogQW1iaWd1aXR5LCByZWFkb25seSBpc0FuZ2xlQnJhY2tldCA9IGZhbHNlKSB7fVxuXG4gIHJlc29sdXRpb24oKTogR2V0Q29udGV4dHVhbEZyZWVPcCB7XG4gICAgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRoIGZhbGxiYWNrIG11c3QgYmUgYXR0cj17e3h9fVxuICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRob3V0IGZhbGxiYWNrXG4gICAgICAgIHN3aXRjaCAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlc1swXSkge1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXI6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZDtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuTW9kaWZpZXI6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkO1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQ6XG4gICAgICAgICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgKyBmYWxsYmFjayAoe3tzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciB3aXRob3V0IGZhbGxiYWNrICh7e3NvbWV0aGluZyBzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQ7XG4gICAgfVxuICB9XG5cbiAgc2VyaWFsaXplKCk6IFNlcmlhbGl6ZWRSZXNvbHV0aW9uIHtcbiAgICBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnTG9vc2UnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGggZmFsbGJhY2sgbXVzdCBiZSBhdHRyPXt7eH19XG4gICAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXR0cl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWyducycsIHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXNbMF1dO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgKyBmYWxsYmFjayAoe3tzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXBwZW5kXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciB3aXRob3V0IGZhbGxiYWNrICh7e3NvbWV0aGluZyBzb21ldGhpbmd9fSlcbiAgICAgIHJldHVybiBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuSW52b2tlXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX1JFU09MVVRJT04gPSBMb29zZU1vZGVSZXNvbHV0aW9uLmZhbGxiYWNrKCk7XG5cbmV4cG9ydCBjb25zdCBlbnVtIEZyZWVWYXJOYW1lc3BhY2Uge1xuICBIZWxwZXIgPSAnSGVscGVyJyxcbiAgTW9kaWZpZXIgPSAnTW9kaWZpZXInLFxuICBDb21wb25lbnQgPSAnQ29tcG9uZW50Jyxcbn1cblxuLyoqXG4gKiBBIGBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eWAgbWlnaHQgYmUgYSBjb21wb25lbnQgb3IgYSBoZWxwZXIsIHdpdGggYW4gb3B0aW9uYWwgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIHt7eH19XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMsIHdpdGggZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIHt7eCB5fX1cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcywgd2l0aG91dCBmYWxsYmFja1xuICovXG50eXBlIENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQsIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXTtcbiAgZmFsbGJhY2s6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEEgYEhlbHBlckFtYmlndWl0eWAgbXVzdCBiZSBhIGhlbHBlciwgYnV0IGl0IGhhcyBmYWxsYmFjay4gSWYgaXQgZGlkbid0IGhhdmUgZmFsbGJhY2ssIGl0IHdvdWxkXG4gKiBiZSBhIGBOYW1lc3BhY2VkQW1iaWd1aXR5YC5cbiAqXG4gKiBgYGBoYnNcbiAqIDxhIGhyZWY9e3t4fX0gLz5cbiAqIDxhIGhyZWY9XCJ7e3h9fS5odG1sXCIgLz5cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aCBmYWxsYmFja1xuICovXG50eXBlIEhlbHBlckFtYmlndWl0eSA9IHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXTsgZmFsbGJhY2s6IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBBIGBOYW1lc3BhY2VkQW1iaWd1aXR5YCBtdXN0IGJlIHJlc29sdmVkIGluIGEgcGFydGljdWxhciBuYW1lc3BhY2UsIHdpdGhvdXQgZmFsbGJhY2suXG4gKlxuICogYGBgaGJzXG4gKiA8WCAvPlxuICogYGBgXG4gKlxuICogXiBgWGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiAoeClcbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgaGVscGVyYCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICogPGEge3t4fX0gLz5cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgbW9kaWZpZXJgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKi9cbnR5cGUgTmFtZXNwYWNlZEFtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50IHwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXIgfCBGcmVlVmFyTmFtZXNwYWNlLk1vZGlmaWVyXTtcbiAgZmFsbGJhY2s6IGZhbHNlO1xufTtcblxudHlwZSBGYWxsYmFja0FtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW107XG4gIGZhbGxiYWNrOiB0cnVlO1xufTtcblxudHlwZSBBbWJpZ3VpdHkgPVxuICB8IENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5XG4gIHwgSGVscGVyQW1iaWd1aXR5XG4gIHwgTmFtZXNwYWNlZEFtYmlndWl0eVxuICB8IEZhbGxiYWNrQW1iaWd1aXR5O1xuXG5leHBvcnQgdHlwZSBGcmVlVmFyUmVzb2x1dGlvbiA9IFN0cmljdFJlc29sdXRpb24gfCBMb29zZU1vZGVSZXNvbHV0aW9uO1xuXG4vLyBTZXJpYWxpemF0aW9uXG5cbmNvbnN0IGVudW0gU2VyaWFsaXplZEFtYmlndWl0eSB7XG4gIC8vIHt7eH19XG4gIEFwcGVuZCA9ICdBcHBlbmQnLFxuICAvLyBocmVmPXt7eH19XG4gIEF0dHIgPSAnQXR0cicsXG4gIC8vIHt7eCB5fX0gKG5vdCBhdHRyKVxuICBJbnZva2UgPSAnSW52b2tlJyxcbn1cblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFJlc29sdXRpb24gPVxuICB8ICdTdHJpY3QnXG4gIHwgJ0xvb3NlJ1xuICB8IFsnbnMnLCBGcmVlVmFyTmFtZXNwYWNlXVxuICB8IFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eV07XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVzb2x1dGlvbihyZXNvbHV0aW9uOiBTZXJpYWxpemVkUmVzb2x1dGlvbik6IEZyZWVWYXJSZXNvbHV0aW9uIHtcbiAgaWYgKHR5cGVvZiByZXNvbHV0aW9uID09PSAnc3RyaW5nJykge1xuICAgIHN3aXRjaCAocmVzb2x1dGlvbikge1xuICAgICAgY2FzZSAnTG9vc2UnOlxuICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5mYWxsYmFjaygpO1xuICAgICAgY2FzZSAnU3RyaWN0JzpcbiAgICAgICAgcmV0dXJuIFNUUklDVF9SRVNPTFVUSU9OO1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAocmVzb2x1dGlvblswXSkge1xuICAgIGNhc2UgJ2FtYmlndW91cyc6XG4gICAgICBzd2l0Y2ggKHJlc29sdXRpb25bMV0pIHtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5LkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hcHBlbmQoeyBpbnZva2U6IGZhbHNlIH0pO1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXR0cjpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hdHRyKCk7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5JbnZva2U6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXBwZW5kKHsgaW52b2tlOiB0cnVlIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSAnbnMnOlxuICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24ubmFtZXNwYWNlZChyZXNvbHV0aW9uWzFdKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -173,4 +173,4 @@ /**

if (this.ambiguity.namespaces.length === 0) {
return 33
/* GetFreeAsFallback */
return 31
/* GetStrictFree */
;

@@ -286,2 +286,2 @@ } else if (this.ambiguity.namespaces.length === 1) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BLE9BQU0sTUFBTyxnQkFBUCxDQUF1QjtBQUE3QixFQUFBLFdBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFpQixLQUFqQjtBQUNWOztBQVRDLEVBQUEsVUFBVSxHQUFBO0FBQ1IsV0FBQTtBQUFBO0FBQUE7QUFDRDs7QUFFRCxFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sUUFBUDtBQUNEOztBQVAwQjtBQVk3QixPQUFPLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxnQkFBSixFQUExQjtBQUVQOzs7Ozs7Ozs7O0FBU0EsT0FBTSxNQUFPLG1CQUFQLENBQTBCO0FBd0c5QixFQUFBLFdBQUEsQ0FBcUIsU0FBckIsRUFBb0QsY0FBQSxHQUFpQixLQUFyRSxFQUEwRTtBQUFyRCxTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQStCLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFBMEI7QUF2RzlFOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFPLFVBQVAsQ0FBa0IsU0FBbEIsRUFBK0MsY0FBYyxHQUFHLEtBQWhFLEVBQXFFO0FBQ25FLFdBQU8sSUFBSSxtQkFBSixDQUNMO0FBQ0UsTUFBQSxVQUFVLEVBQUUsQ0FBQyxTQUFELENBRGQ7QUFFRSxNQUFBLFFBQVEsRUFBRTtBQUZaLEtBREssRUFLTCxjQUxLLENBQVA7QUFPRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFPLFFBQVAsR0FBZTtBQUNiLFdBQU8sSUFBSSxtQkFBSixDQUF3QjtBQUFFLE1BQUEsVUFBVSxFQUFFLEVBQWQ7QUFBa0IsTUFBQSxRQUFRLEVBQUU7QUFBNUIsS0FBeEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxTQUFPLE1BQVAsQ0FBYztBQUFFLElBQUE7QUFBRixH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QVEsVUFBVSxDQUFDLENBQUQsQ0FBbEI7QUFDRSxTQUFLLFdBQUw7QUFDRSxjQUFRLFVBQVUsQ0FBQyxDQUFELENBQWxCO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBQyxNQUFwQixDQUEyQjtBQUFFLFlBQUEsTUFBTSxFQUFFO0FBQVYsV0FBM0IsQ0FBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFDLElBQXBCLEVBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBQyxNQUFwQixDQUEyQjtBQUFFLFlBQUEsTUFBTSxFQUFFO0FBQVYsV0FBM0IsQ0FBUDtBQU5KOztBQVNGLFNBQUssSUFBTDtBQUNFLGFBQU8sbUJBQW1CLENBQUMsVUFBcEIsQ0FBK0IsVUFBVSxDQUFDLENBQUQsQ0FBekMsQ0FBUDtBQVpKO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnJlZSB2YXJpYWJsZSBpcyByZXNvbHZlZCBhY2NvcmRpbmcgdG8gYSByZXNvbHV0aW9uIHJ1bGU6XG4gKlxuICogMS4gU3RyaWN0IHJlc29sdXRpb25cbiAqIDIuIE5hbWVzcGFjZWQgcmVzb2x1dGlvblxuICogMy4gRmFsbGJhY2sgcmVzb2x1dGlvblxuICovXG5cbmltcG9ydCB7IEdldENvbnRleHR1YWxGcmVlT3AsIFNleHBPcGNvZGVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogU3RyaWN0IHJlc29sdXRpb24gaXMgdXNlZDpcbiAqXG4gKiAxLiBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlXG4gKiAyLiBpbiBhbiB1bmFtYmlndW91cyBpbnZvY2F0aW9uIHdpdGggZG90IHBhdGhzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpY3RSZXNvbHV0aW9uIHtcbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuICdTdHJpY3QnO1xuICB9XG5cbiAgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFNUUklDVF9SRVNPTFVUSU9OID0gbmV3IFN0cmljdFJlc29sdXRpb24oKTtcblxuLyoqXG4gKiBBIGBMb29zZU1vZGVSZXNvbHV0aW9uYCBpbmNsdWRlczpcbiAqXG4gKiAtIDAgb3IgbW9yZSBuYW1lc3BhY2VzIHRvIHJlc29sdmUgdGhlIHZhcmlhYmxlIGluXG4gKiAtIG9wdGlvbmFsIGZhbGxiYWNrIGJlaGF2aW9yXG4gKlxuICogSW4gcHJhY3RpY2UsIHRoZXJlIGFyZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZSBkZWdyZWVzIG9mIGZyZWVkb20sXG4gKiBhbmQgdGhleSBhcmUgY2FwdHVyZWQgYnkgdGhlIGBBbWJpZ3VpdHlgIHVuaW9uIGJlbG93LlxuICovXG5leHBvcnQgY2xhc3MgTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2VkIHJlc29sdXRpb24gaXMgdXNlZCBpbiBhbiB1bmFtYmlndW91cyBzeW50YXggcG9zaXRpb246XG4gICAqXG4gICAqIDEuIGAoc2V4cClgIChuYW1lc3BhY2U6IGBIZWxwZXJgKVxuICAgKiAyLiBge3sjYmxvY2t9fWAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqIDMuIGA8YSB7e21vZGlmaWVyfX0+YCAobmFtZXNwYWNlOiBgTW9kaWZpZXJgKVxuICAgKiA0LiBgPENvbXBvbmVudCAvPmAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqXG4gICAqIEBzZWUge05hbWVzcGFjZWRBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgbmFtZXNwYWNlZChuYW1lc3BhY2U6IEZyZWVWYXJOYW1lc3BhY2UsIGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oXG4gICAgICB7XG4gICAgICAgIG5hbWVzcGFjZXM6IFtuYW1lc3BhY2VdLFxuICAgICAgICBmYWxsYmFjazogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaXNBbmdsZUJyYWNrZXRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIG5vIG5hbWVzcGFjZWQgcmVzb2x1dGlvbnMgYXJlIHBvc3NpYmxlLCBidXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbiBpcyBzdGlsbCBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4Lnl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSB7RmFsbGJhY2tBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgZmFsbGJhY2soKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW10sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4IHl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0NvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGFwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJ1c3RpbmcgYXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3ggeX19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyB0cnVzdGluZ0FwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBhcyBhIGBoZWxwZXJgIHdpdGggZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIDxhIGhyZWY9e3t4fX0gLz5cbiAgICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICAgKiBgYGBcbiAgICpcbiAgICogXiByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGF0dHIoKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhbWJpZ3VpdHk6IEFtYmlndWl0eSwgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSkge31cblxuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0ZhbGxiYWNrO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGggZmFsbGJhY2sgbXVzdCBiZSBhdHRyPXt7eH19XG4gICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGhvdXQgZmFsbGJhY2tcbiAgICAgICAgc3dpdGNoICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdKSB7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudDpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDtcbiAgICB9XG4gIH1cblxuICBzZXJpYWxpemUoKTogU2VyaWFsaXplZFJlc29sdXRpb24ge1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdMb29zZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbJ25zJywgdGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlc1swXV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmRdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5JbnZva2VdO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUkVTT0xVVElPTiA9IExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcblxuZXhwb3J0IGNvbnN0IGVudW0gRnJlZVZhck5hbWVzcGFjZSB7XG4gIEhlbHBlciA9ICdIZWxwZXInLFxuICBNb2RpZmllciA9ICdNb2RpZmllcicsXG4gIENvbXBvbmVudCA9ICdDb21wb25lbnQnLFxufVxuXG4vKipcbiAqIEEgYENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5YCBtaWdodCBiZSBhIGNvbXBvbmVudCBvciBhIGhlbHBlciwgd2l0aCBhbiBvcHRpb25hbCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4fX1cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcywgd2l0aCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4IHl9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRob3V0IGZhbGxiYWNrXG4gKi9cbnR5cGUgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdO1xuICBmYWxsYmFjazogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQSBgSGVscGVyQW1iaWd1aXR5YCBtdXN0IGJlIGEgaGVscGVyLCBidXQgaXQgaGFzIGZhbGxiYWNrLiBJZiBpdCBkaWRuJ3QgaGF2ZSBmYWxsYmFjaywgaXQgd291bGRcbiAqIGJlIGEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgLlxuICpcbiAqIGBgYGhic1xuICogPGEgaHJlZj17e3h9fSAvPlxuICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRoIGZhbGxiYWNrXG4gKi9cbnR5cGUgSGVscGVyQW1iaWd1aXR5ID0geyBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdOyBmYWxsYmFjazogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgIG11c3QgYmUgcmVzb2x2ZWQgaW4gYSBwYXJ0aWN1bGFyIG5hbWVzcGFjZSwgd2l0aG91dCBmYWxsYmFjay5cbiAqXG4gKiBgYGBoYnNcbiAqIDxYIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGBYYCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqICh4KVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiA8YSB7e3h9fSAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBtb2RpZmllcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBOYW1lc3BhY2VkQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQgfCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlciB8IEZyZWVWYXJOYW1lc3BhY2UuTW9kaWZpZXJdO1xuICBmYWxsYmFjazogZmFsc2U7XG59O1xuXG50eXBlIEZhbGxiYWNrQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbXTtcbiAgZmFsbGJhY2s6IHRydWU7XG59O1xuXG50eXBlIEFtYmlndWl0eSA9XG4gIHwgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlcbiAgfCBIZWxwZXJBbWJpZ3VpdHlcbiAgfCBOYW1lc3BhY2VkQW1iaWd1aXR5XG4gIHwgRmFsbGJhY2tBbWJpZ3VpdHk7XG5cbmV4cG9ydCB0eXBlIEZyZWVWYXJSZXNvbHV0aW9uID0gU3RyaWN0UmVzb2x1dGlvbiB8IExvb3NlTW9kZVJlc29sdXRpb247XG5cbi8vIFNlcmlhbGl6YXRpb25cblxuY29uc3QgZW51bSBTZXJpYWxpemVkQW1iaWd1aXR5IHtcbiAgLy8ge3t4fX1cbiAgQXBwZW5kID0gJ0FwcGVuZCcsXG4gIC8vIGhyZWY9e3t4fX1cbiAgQXR0ciA9ICdBdHRyJyxcbiAgLy8ge3t4IHl9fSAobm90IGF0dHIpXG4gIEludm9rZSA9ICdJbnZva2UnLFxufVxuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUmVzb2x1dGlvbiA9XG4gIHwgJ1N0cmljdCdcbiAgfCAnTG9vc2UnXG4gIHwgWyducycsIEZyZWVWYXJOYW1lc3BhY2VdXG4gIHwgWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZXNvbHV0aW9uKHJlc29sdXRpb246IFNlcmlhbGl6ZWRSZXNvbHV0aW9uKTogRnJlZVZhclJlc29sdXRpb24ge1xuICBpZiAodHlwZW9mIHJlc29sdXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgc3dpdGNoIChyZXNvbHV0aW9uKSB7XG4gICAgICBjYXNlICdMb29zZSc6XG4gICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmZhbGxiYWNrKCk7XG4gICAgICBjYXNlICdTdHJpY3QnOlxuICAgICAgICByZXR1cm4gU1RSSUNUX1JFU09MVVRJT047XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChyZXNvbHV0aW9uWzBdKSB7XG4gICAgY2FzZSAnYW1iaWd1b3VzJzpcbiAgICAgIHN3aXRjaCAocmVzb2x1dGlvblsxXSkge1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogZmFsc2UgfSk7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmF0dHIoKTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZTpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hcHBlbmQoeyBpbnZva2U6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICBjYXNlICducyc6XG4gICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5uYW1lc3BhY2VkKHJlc29sdXRpb25bMV0pO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BLE9BQU0sTUFBTyxnQkFBUCxDQUF1QjtBQUE3QixFQUFBLFdBQUEsR0FBQTtBQVNXLFNBQUEsY0FBQSxHQUFpQixLQUFqQjtBQUNWOztBQVRDLEVBQUEsVUFBVSxHQUFBO0FBQ1IsV0FBQTtBQUFBO0FBQUE7QUFDRDs7QUFFRCxFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sUUFBUDtBQUNEOztBQVAwQjtBQVk3QixPQUFPLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxnQkFBSixFQUExQjtBQUVQOzs7Ozs7Ozs7O0FBU0EsT0FBTSxNQUFPLG1CQUFQLENBQTBCO0FBd0c5QixFQUFBLFdBQUEsQ0FBcUIsU0FBckIsRUFBb0QsY0FBQSxHQUFpQixLQUFyRSxFQUEwRTtBQUFyRCxTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQStCLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFBMEI7QUF2RzlFOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFPLFVBQVAsQ0FBa0IsU0FBbEIsRUFBK0MsY0FBYyxHQUFHLEtBQWhFLEVBQXFFO0FBQ25FLFdBQU8sSUFBSSxtQkFBSixDQUNMO0FBQ0UsTUFBQSxVQUFVLEVBQUUsQ0FBQyxTQUFELENBRGQ7QUFFRSxNQUFBLFFBQVEsRUFBRTtBQUZaLEtBREssRUFLTCxjQUxLLENBQVA7QUFPRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVQSxTQUFPLFFBQVAsR0FBZTtBQUNiLFdBQU8sSUFBSSxtQkFBSixDQUF3QjtBQUFFLE1BQUEsVUFBVSxFQUFFLEVBQWQ7QUFBa0IsTUFBQSxRQUFRLEVBQUU7QUFBNUIsS0FBeEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxTQUFPLE1BQVAsQ0FBYztBQUFFLElBQUE7QUFBRixH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QVEsVUFBVSxDQUFDLENBQUQsQ0FBbEI7QUFDRSxTQUFLLFdBQUw7QUFDRSxjQUFRLFVBQVUsQ0FBQyxDQUFELENBQWxCO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBQyxNQUFwQixDQUEyQjtBQUFFLFlBQUEsTUFBTSxFQUFFO0FBQVYsV0FBM0IsQ0FBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLG1CQUFtQixDQUFDLElBQXBCLEVBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBQyxNQUFwQixDQUEyQjtBQUFFLFlBQUEsTUFBTSxFQUFFO0FBQVYsV0FBM0IsQ0FBUDtBQU5KOztBQVNGLFNBQUssSUFBTDtBQUNFLGFBQU8sbUJBQW1CLENBQUMsVUFBcEIsQ0FBK0IsVUFBVSxDQUFDLENBQUQsQ0FBekMsQ0FBUDtBQVpKO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnJlZSB2YXJpYWJsZSBpcyByZXNvbHZlZCBhY2NvcmRpbmcgdG8gYSByZXNvbHV0aW9uIHJ1bGU6XG4gKlxuICogMS4gU3RyaWN0IHJlc29sdXRpb25cbiAqIDIuIE5hbWVzcGFjZWQgcmVzb2x1dGlvblxuICogMy4gRmFsbGJhY2sgcmVzb2x1dGlvblxuICovXG5cbmltcG9ydCB7IEdldENvbnRleHR1YWxGcmVlT3AsIFNleHBPcGNvZGVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogU3RyaWN0IHJlc29sdXRpb24gaXMgdXNlZDpcbiAqXG4gKiAxLiBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlXG4gKiAyLiBpbiBhbiB1bmFtYmlndW91cyBpbnZvY2F0aW9uIHdpdGggZG90IHBhdGhzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpY3RSZXNvbHV0aW9uIHtcbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuICdTdHJpY3QnO1xuICB9XG5cbiAgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFNUUklDVF9SRVNPTFVUSU9OID0gbmV3IFN0cmljdFJlc29sdXRpb24oKTtcblxuLyoqXG4gKiBBIGBMb29zZU1vZGVSZXNvbHV0aW9uYCBpbmNsdWRlczpcbiAqXG4gKiAtIDAgb3IgbW9yZSBuYW1lc3BhY2VzIHRvIHJlc29sdmUgdGhlIHZhcmlhYmxlIGluXG4gKiAtIG9wdGlvbmFsIGZhbGxiYWNrIGJlaGF2aW9yXG4gKlxuICogSW4gcHJhY3RpY2UsIHRoZXJlIGFyZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZSBkZWdyZWVzIG9mIGZyZWVkb20sXG4gKiBhbmQgdGhleSBhcmUgY2FwdHVyZWQgYnkgdGhlIGBBbWJpZ3VpdHlgIHVuaW9uIGJlbG93LlxuICovXG5leHBvcnQgY2xhc3MgTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2VkIHJlc29sdXRpb24gaXMgdXNlZCBpbiBhbiB1bmFtYmlndW91cyBzeW50YXggcG9zaXRpb246XG4gICAqXG4gICAqIDEuIGAoc2V4cClgIChuYW1lc3BhY2U6IGBIZWxwZXJgKVxuICAgKiAyLiBge3sjYmxvY2t9fWAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqIDMuIGA8YSB7e21vZGlmaWVyfX0+YCAobmFtZXNwYWNlOiBgTW9kaWZpZXJgKVxuICAgKiA0LiBgPENvbXBvbmVudCAvPmAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqXG4gICAqIEBzZWUge05hbWVzcGFjZWRBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgbmFtZXNwYWNlZChuYW1lc3BhY2U6IEZyZWVWYXJOYW1lc3BhY2UsIGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oXG4gICAgICB7XG4gICAgICAgIG5hbWVzcGFjZXM6IFtuYW1lc3BhY2VdLFxuICAgICAgICBmYWxsYmFjazogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaXNBbmdsZUJyYWNrZXRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIG5vIG5hbWVzcGFjZWQgcmVzb2x1dGlvbnMgYXJlIHBvc3NpYmxlLCBidXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbiBpcyBzdGlsbCBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4Lnl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSB7RmFsbGJhY2tBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgZmFsbGJhY2soKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW10sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4IHl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0NvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGFwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJ1c3RpbmcgYXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3ggeX19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyB0cnVzdGluZ0FwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBhcyBhIGBoZWxwZXJgIHdpdGggZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIDxhIGhyZWY9e3t4fX0gLz5cbiAgICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICAgKiBgYGBcbiAgICpcbiAgICogXiByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGF0dHIoKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhbWJpZ3VpdHk6IEFtYmlndWl0eSwgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSkge31cblxuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aG91dCBmYWxsYmFja1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXNbMF0pIHtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLk1vZGlmaWVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZDtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50OlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkO1xuICAgIH1cbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ0xvb3NlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRoIGZhbGxiYWNrIG11c3QgYmUgYXR0cj17e3h9fVxuICAgICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsnbnMnLCB0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkFwcGVuZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZV07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBUkdVTUVOVF9SRVNPTFVUSU9OID0gTG9vc2VNb2RlUmVzb2x1dGlvbi5mYWxsYmFjaygpO1xuXG5leHBvcnQgY29uc3QgZW51bSBGcmVlVmFyTmFtZXNwYWNlIHtcbiAgSGVscGVyID0gJ0hlbHBlcicsXG4gIE1vZGlmaWVyID0gJ01vZGlmaWVyJyxcbiAgQ29tcG9uZW50ID0gJ0NvbXBvbmVudCcsXG59XG5cbi8qKlxuICogQSBgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlgIG1pZ2h0IGJlIGEgY29tcG9uZW50IG9yIGEgaGVscGVyLCB3aXRoIGFuIG9wdGlvbmFsIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3h9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRoIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3ggeX19XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMsIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50LCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07XG4gIGZhbGxiYWNrOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBIGBIZWxwZXJBbWJpZ3VpdHlgIG11c3QgYmUgYSBoZWxwZXIsIGJ1dCBpdCBoYXMgZmFsbGJhY2suIElmIGl0IGRpZG4ndCBoYXZlIGZhbGxiYWNrLCBpdCB3b3VsZFxuICogYmUgYSBgTmFtZXNwYWNlZEFtYmlndWl0eWAuXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPXt7eH19IC8+XG4gKiA8YSBocmVmPVwie3t4fX0uaHRtbFwiIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAqL1xudHlwZSBIZWxwZXJBbWJpZ3VpdHkgPSB7IG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07IGZhbGxiYWNrOiBib29sZWFuIH07XG5cbi8qKlxuICogQSBgTmFtZXNwYWNlZEFtYmlndWl0eWAgbXVzdCBiZSByZXNvbHZlZCBpbiBhIHBhcnRpY3VsYXIgbmFtZXNwYWNlLCB3aXRob3V0IGZhbGxiYWNrLlxuICpcbiAqIGBgYGhic1xuICogPFggLz5cbiAqIGBgYFxuICpcbiAqIF4gYFhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICogKHgpXG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIDxhIHt7eH19IC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYG1vZGlmaWVyYCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICovXG50eXBlIE5hbWVzcGFjZWRBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCB8IEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyIHwgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcl07XG4gIGZhbGxiYWNrOiBmYWxzZTtcbn07XG5cbnR5cGUgRmFsbGJhY2tBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtdO1xuICBmYWxsYmFjazogdHJ1ZTtcbn07XG5cbnR5cGUgQW1iaWd1aXR5ID1cbiAgfCBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eVxuICB8IEhlbHBlckFtYmlndWl0eVxuICB8IE5hbWVzcGFjZWRBbWJpZ3VpdHlcbiAgfCBGYWxsYmFja0FtYmlndWl0eTtcblxuZXhwb3J0IHR5cGUgRnJlZVZhclJlc29sdXRpb24gPSBTdHJpY3RSZXNvbHV0aW9uIHwgTG9vc2VNb2RlUmVzb2x1dGlvbjtcblxuLy8gU2VyaWFsaXphdGlvblxuXG5jb25zdCBlbnVtIFNlcmlhbGl6ZWRBbWJpZ3VpdHkge1xuICAvLyB7e3h9fVxuICBBcHBlbmQgPSAnQXBwZW5kJyxcbiAgLy8gaHJlZj17e3h9fVxuICBBdHRyID0gJ0F0dHInLFxuICAvLyB7e3ggeX19IChub3QgYXR0cilcbiAgSW52b2tlID0gJ0ludm9rZScsXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRSZXNvbHV0aW9uID1cbiAgfCAnU3RyaWN0J1xuICB8ICdMb29zZSdcbiAgfCBbJ25zJywgRnJlZVZhck5hbWVzcGFjZV1cbiAgfCBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHldO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlc29sdXRpb24ocmVzb2x1dGlvbjogU2VyaWFsaXplZFJlc29sdXRpb24pOiBGcmVlVmFyUmVzb2x1dGlvbiB7XG4gIGlmICh0eXBlb2YgcmVzb2x1dGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICBzd2l0Y2ggKHJlc29sdXRpb24pIHtcbiAgICAgIGNhc2UgJ0xvb3NlJzpcbiAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcbiAgICAgIGNhc2UgJ1N0cmljdCc6XG4gICAgICAgIHJldHVybiBTVFJJQ1RfUkVTT0xVVElPTjtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHJlc29sdXRpb25bMF0pIHtcbiAgICBjYXNlICdhbWJpZ3VvdXMnOlxuICAgICAgc3dpdGNoIChyZXNvbHV0aW9uWzFdKSB7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmQ6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXBwZW5kKHsgaW52b2tlOiBmYWxzZSB9KTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHI6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXR0cigpO1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuSW52b2tlOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ25zJzpcbiAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLm5hbWVzcGFjZWQocmVzb2x1dGlvblsxXSk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -184,4 +184,4 @@ /**

if (this.ambiguity.namespaces.length === 0) {
return 33
/* GetFreeAsFallback */
return 31
/* GetStrictFree */
;

@@ -298,2 +298,2 @@ } else if (this.ambiguity.namespaces.length === 1) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BLFdBQU0sZ0JBQU47QUFBQSw4QkFBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFWRDs7QUFBQSxTQUNFLFVBREYsR0FDRSxzQkFBVTtBQUNSLFdBQUE7QUFBQTtBQUFBO0FBQ0QsR0FISDs7QUFBQSxTQUtFLFNBTEYsR0FLRSxxQkFBUztBQUNQLFdBQUEsUUFBQTtBQUNELEdBUEg7O0FBQUE7QUFBQTtBQVlBLE9BQU8sSUFBTSxpQkFBaUIsR0FBRyxJQUExQixnQkFBMEIsRUFBMUI7QUFFUDs7Ozs7Ozs7OztBQVNBLFdBQU0sbUJBQU47QUF3R0UsK0JBQUEsU0FBQSxFQUFvRCxjQUFwRCxFQUEwRTtBQUFBLFFBQXRCLGNBQXNCO0FBQXRCLE1BQUEsY0FBc0IsR0FBMUUsS0FBMEU7QUFBQTs7QUFBckQsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUErQixTQUFBLGNBQUEsR0FBQSxjQUFBO0FBQTBCO0FBdkc5RTs7Ozs7Ozs7Ozs7O0FBREYsc0JBV0UsVUFYRixHQVdFLG9CQUFBLFNBQUEsRUFBK0MsY0FBL0MsRUFBcUU7QUFBQSxRQUF0QixjQUFzQjtBQUF0QixNQUFBLGNBQXNCLEdBQXJFLEtBQXFFO0FBQUE7O0FBQ25FLFdBQU8sSUFBQSxtQkFBQSxDQUNMO0FBQ0UsTUFBQSxVQUFVLEVBQUUsQ0FEZCxTQUNjLENBRGQ7QUFFRSxNQUFBLFFBQVEsRUFBRTtBQUZaLEtBREssRUFBUCxjQUFPLENBQVA7QUFPRDtBQUVEOzs7Ozs7Ozs7O0FBckJGOztBQUFBLHNCQStCRSxRQS9CRixHQStCRSxvQkFBZTtBQUNiLFdBQU8sSUFBQSxtQkFBQSxDQUF3QjtBQUFFLE1BQUEsVUFBVSxFQUFaLEVBQUE7QUFBa0IsTUFBQSxRQUFR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QUF5RDtBQUM3RCxNQUFJLE9BQUEsVUFBQSxLQUFKLFFBQUEsRUFBb0M7QUFDbEMsWUFBQSxVQUFBO0FBQ0UsV0FBQSxPQUFBO0FBQ0UsZUFBTyxtQkFBbUIsQ0FBMUIsUUFBTyxFQUFQOztBQUNGLFdBQUEsUUFBQTtBQUNFLGVBQUEsaUJBQUE7QUFKSjtBQU1EOztBQUVELFVBQVEsVUFBVSxDQUFsQixDQUFrQixDQUFsQjtBQUNFLFNBQUEsV0FBQTtBQUNFLGNBQVEsVUFBVSxDQUFsQixDQUFrQixDQUFsQjtBQUNFLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQW5CLE1BQUEsQ0FBMkI7QUFBRSxZQUFBLE1BQU0sRUFBRTtBQUFWLFdBQTNCLENBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBMUIsSUFBTyxFQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQW5CLE1BQUEsQ0FBMkI7QUFBRSxZQUFBLE1BQU0sRUFBRTtBQUFWLFdBQTNCLENBQVA7QUFOSjs7QUFTRixTQUFBLElBQUE7QUFDRSxhQUFPLG1CQUFtQixDQUFuQixVQUFBLENBQStCLFVBQVUsQ0FBaEQsQ0FBZ0QsQ0FBekMsQ0FBUDtBQVpKO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnJlZSB2YXJpYWJsZSBpcyByZXNvbHZlZCBhY2NvcmRpbmcgdG8gYSByZXNvbHV0aW9uIHJ1bGU6XG4gKlxuICogMS4gU3RyaWN0IHJlc29sdXRpb25cbiAqIDIuIE5hbWVzcGFjZWQgcmVzb2x1dGlvblxuICogMy4gRmFsbGJhY2sgcmVzb2x1dGlvblxuICovXG5cbmltcG9ydCB7IEdldENvbnRleHR1YWxGcmVlT3AsIFNleHBPcGNvZGVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogU3RyaWN0IHJlc29sdXRpb24gaXMgdXNlZDpcbiAqXG4gKiAxLiBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlXG4gKiAyLiBpbiBhbiB1bmFtYmlndW91cyBpbnZvY2F0aW9uIHdpdGggZG90IHBhdGhzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpY3RSZXNvbHV0aW9uIHtcbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuICdTdHJpY3QnO1xuICB9XG5cbiAgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFNUUklDVF9SRVNPTFVUSU9OID0gbmV3IFN0cmljdFJlc29sdXRpb24oKTtcblxuLyoqXG4gKiBBIGBMb29zZU1vZGVSZXNvbHV0aW9uYCBpbmNsdWRlczpcbiAqXG4gKiAtIDAgb3IgbW9yZSBuYW1lc3BhY2VzIHRvIHJlc29sdmUgdGhlIHZhcmlhYmxlIGluXG4gKiAtIG9wdGlvbmFsIGZhbGxiYWNrIGJlaGF2aW9yXG4gKlxuICogSW4gcHJhY3RpY2UsIHRoZXJlIGFyZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZSBkZWdyZWVzIG9mIGZyZWVkb20sXG4gKiBhbmQgdGhleSBhcmUgY2FwdHVyZWQgYnkgdGhlIGBBbWJpZ3VpdHlgIHVuaW9uIGJlbG93LlxuICovXG5leHBvcnQgY2xhc3MgTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2VkIHJlc29sdXRpb24gaXMgdXNlZCBpbiBhbiB1bmFtYmlndW91cyBzeW50YXggcG9zaXRpb246XG4gICAqXG4gICAqIDEuIGAoc2V4cClgIChuYW1lc3BhY2U6IGBIZWxwZXJgKVxuICAgKiAyLiBge3sjYmxvY2t9fWAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqIDMuIGA8YSB7e21vZGlmaWVyfX0+YCAobmFtZXNwYWNlOiBgTW9kaWZpZXJgKVxuICAgKiA0LiBgPENvbXBvbmVudCAvPmAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqXG4gICAqIEBzZWUge05hbWVzcGFjZWRBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgbmFtZXNwYWNlZChuYW1lc3BhY2U6IEZyZWVWYXJOYW1lc3BhY2UsIGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oXG4gICAgICB7XG4gICAgICAgIG5hbWVzcGFjZXM6IFtuYW1lc3BhY2VdLFxuICAgICAgICBmYWxsYmFjazogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaXNBbmdsZUJyYWNrZXRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIG5vIG5hbWVzcGFjZWQgcmVzb2x1dGlvbnMgYXJlIHBvc3NpYmxlLCBidXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbiBpcyBzdGlsbCBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4Lnl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSB7RmFsbGJhY2tBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgZmFsbGJhY2soKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW10sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4IHl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0NvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGFwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJ1c3RpbmcgYXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3ggeX19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyB0cnVzdGluZ0FwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBhcyBhIGBoZWxwZXJgIHdpdGggZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIDxhIGhyZWY9e3t4fX0gLz5cbiAgICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICAgKiBgYGBcbiAgICpcbiAgICogXiByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGF0dHIoKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhbWJpZ3VpdHk6IEFtYmlndWl0eSwgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSkge31cblxuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0ZhbGxiYWNrO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGggZmFsbGJhY2sgbXVzdCBiZSBhdHRyPXt7eH19XG4gICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzaW1wbGUgbmFtZXNwYWNlZCByZXNvbHV0aW9uIHdpdGhvdXQgZmFsbGJhY2tcbiAgICAgICAgc3dpdGNoICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdKSB7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgICAgIGNhc2UgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcjpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudDpcbiAgICAgICAgICAgIHJldHVybiBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDtcbiAgICB9XG4gIH1cblxuICBzZXJpYWxpemUoKTogU2VyaWFsaXplZFJlc29sdXRpb24ge1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdMb29zZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbJ25zJywgdGhpcy5hbWJpZ3VpdHkubmFtZXNwYWNlc1swXV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5mYWxsYmFjaykge1xuICAgICAgLy8gY29tcG9uZW50IG9yIGhlbHBlciArIGZhbGxiYWNrICh7e3NvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmRdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyIHdpdGhvdXQgZmFsbGJhY2sgKHt7c29tZXRoaW5nIHNvbWV0aGluZ319KVxuICAgICAgcmV0dXJuIFsnYW1iaWd1b3VzJywgU2VyaWFsaXplZEFtYmlndWl0eS5JbnZva2VdO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUkVTT0xVVElPTiA9IExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcblxuZXhwb3J0IGNvbnN0IGVudW0gRnJlZVZhck5hbWVzcGFjZSB7XG4gIEhlbHBlciA9ICdIZWxwZXInLFxuICBNb2RpZmllciA9ICdNb2RpZmllcicsXG4gIENvbXBvbmVudCA9ICdDb21wb25lbnQnLFxufVxuXG4vKipcbiAqIEEgYENvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5YCBtaWdodCBiZSBhIGNvbXBvbmVudCBvciBhIGhlbHBlciwgd2l0aCBhbiBvcHRpb25hbCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4fX1cbiAqIGBgYFxuICpcbiAqIF4gYHhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcywgd2l0aCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICoge3t4IHl9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRob3V0IGZhbGxiYWNrXG4gKi9cbnR5cGUgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdO1xuICBmYWxsYmFjazogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQSBgSGVscGVyQW1iaWd1aXR5YCBtdXN0IGJlIGEgaGVscGVyLCBidXQgaXQgaGFzIGZhbGxiYWNrLiBJZiBpdCBkaWRuJ3QgaGF2ZSBmYWxsYmFjaywgaXQgd291bGRcbiAqIGJlIGEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgLlxuICpcbiAqIGBgYGhic1xuICogPGEgaHJlZj17e3h9fSAvPlxuICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRoIGZhbGxiYWNrXG4gKi9cbnR5cGUgSGVscGVyQW1iaWd1aXR5ID0geyBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdOyBmYWxsYmFjazogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEEgYE5hbWVzcGFjZWRBbWJpZ3VpdHlgIG11c3QgYmUgcmVzb2x2ZWQgaW4gYSBwYXJ0aWN1bGFyIG5hbWVzcGFjZSwgd2l0aG91dCBmYWxsYmFjay5cbiAqXG4gKiBgYGBoYnNcbiAqIDxYIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGBYYCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqICh4KVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBoZWxwZXJgIG5hbWVzcGFjZSB3aXRob3V0IGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiA8YSB7e3h9fSAvPlxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBtb2RpZmllcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBOYW1lc3BhY2VkQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbRnJlZVZhck5hbWVzcGFjZS5Db21wb25lbnQgfCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlciB8IEZyZWVWYXJOYW1lc3BhY2UuTW9kaWZpZXJdO1xuICBmYWxsYmFjazogZmFsc2U7XG59O1xuXG50eXBlIEZhbGxiYWNrQW1iaWd1aXR5ID0ge1xuICBuYW1lc3BhY2VzOiBbXTtcbiAgZmFsbGJhY2s6IHRydWU7XG59O1xuXG50eXBlIEFtYmlndWl0eSA9XG4gIHwgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlcbiAgfCBIZWxwZXJBbWJpZ3VpdHlcbiAgfCBOYW1lc3BhY2VkQW1iaWd1aXR5XG4gIHwgRmFsbGJhY2tBbWJpZ3VpdHk7XG5cbmV4cG9ydCB0eXBlIEZyZWVWYXJSZXNvbHV0aW9uID0gU3RyaWN0UmVzb2x1dGlvbiB8IExvb3NlTW9kZVJlc29sdXRpb247XG5cbi8vIFNlcmlhbGl6YXRpb25cblxuY29uc3QgZW51bSBTZXJpYWxpemVkQW1iaWd1aXR5IHtcbiAgLy8ge3t4fX1cbiAgQXBwZW5kID0gJ0FwcGVuZCcsXG4gIC8vIGhyZWY9e3t4fX1cbiAgQXR0ciA9ICdBdHRyJyxcbiAgLy8ge3t4IHl9fSAobm90IGF0dHIpXG4gIEludm9rZSA9ICdJbnZva2UnLFxufVxuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUmVzb2x1dGlvbiA9XG4gIHwgJ1N0cmljdCdcbiAgfCAnTG9vc2UnXG4gIHwgWyducycsIEZyZWVWYXJOYW1lc3BhY2VdXG4gIHwgWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZXNvbHV0aW9uKHJlc29sdXRpb246IFNlcmlhbGl6ZWRSZXNvbHV0aW9uKTogRnJlZVZhclJlc29sdXRpb24ge1xuICBpZiAodHlwZW9mIHJlc29sdXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgc3dpdGNoIChyZXNvbHV0aW9uKSB7XG4gICAgICBjYXNlICdMb29zZSc6XG4gICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmZhbGxiYWNrKCk7XG4gICAgICBjYXNlICdTdHJpY3QnOlxuICAgICAgICByZXR1cm4gU1RSSUNUX1JFU09MVVRJT047XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChyZXNvbHV0aW9uWzBdKSB7XG4gICAgY2FzZSAnYW1iaWd1b3VzJzpcbiAgICAgIHN3aXRjaCAocmVzb2x1dGlvblsxXSkge1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogZmFsc2UgfSk7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BdHRyOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmF0dHIoKTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZTpcbiAgICAgICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5hcHBlbmQoeyBpbnZva2U6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICBjYXNlICducyc6XG4gICAgICByZXR1cm4gTG9vc2VNb2RlUmVzb2x1dGlvbi5uYW1lc3BhY2VkKHJlc29sdXRpb25bMV0pO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL3Jlc29sdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BLFdBQU0sZ0JBQU47QUFBQSw4QkFBQTtBQVNXLFNBQUEsY0FBQSxHQUFBLEtBQUE7QUFDVjs7QUFWRDs7QUFBQSxTQUNFLFVBREYsR0FDRSxzQkFBVTtBQUNSLFdBQUE7QUFBQTtBQUFBO0FBQ0QsR0FISDs7QUFBQSxTQUtFLFNBTEYsR0FLRSxxQkFBUztBQUNQLFdBQUEsUUFBQTtBQUNELEdBUEg7O0FBQUE7QUFBQTtBQVlBLE9BQU8sSUFBTSxpQkFBaUIsR0FBRyxJQUExQixnQkFBMEIsRUFBMUI7QUFFUDs7Ozs7Ozs7OztBQVNBLFdBQU0sbUJBQU47QUF3R0UsK0JBQUEsU0FBQSxFQUFvRCxjQUFwRCxFQUEwRTtBQUFBLFFBQXRCLGNBQXNCO0FBQXRCLE1BQUEsY0FBc0IsR0FBMUUsS0FBMEU7QUFBQTs7QUFBckQsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUErQixTQUFBLGNBQUEsR0FBQSxjQUFBO0FBQTBCO0FBdkc5RTs7Ozs7Ozs7Ozs7O0FBREYsc0JBV0UsVUFYRixHQVdFLG9CQUFBLFNBQUEsRUFBK0MsY0FBL0MsRUFBcUU7QUFBQSxRQUF0QixjQUFzQjtBQUF0QixNQUFBLGNBQXNCLEdBQXJFLEtBQXFFO0FBQUE7O0FBQ25FLFdBQU8sSUFBQSxtQkFBQSxDQUNMO0FBQ0UsTUFBQSxVQUFVLEVBQUUsQ0FEZCxTQUNjLENBRGQ7QUFFRSxNQUFBLFFBQVEsRUFBRTtBQUZaLEtBREssRUFBUCxjQUFPLENBQVA7QUFPRDtBQUVEOzs7Ozs7Ozs7O0FBckJGOztBQUFBLHNCQStCRSxRQS9CRixHQStCRSxvQkFBZTtBQUNiLFdBQU8sSUFBQSxtQkFBQSxDQUF3QjtBQUFFLE1BQUEsVUFBVSxFQUFaLEVBQUE7QUFBa0IsTUFBQSxRQUFR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QUF5RDtBQUM3RCxNQUFJLE9BQUEsVUFBQSxLQUFKLFFBQUEsRUFBb0M7QUFDbEMsWUFBQSxVQUFBO0FBQ0UsV0FBQSxPQUFBO0FBQ0UsZUFBTyxtQkFBbUIsQ0FBMUIsUUFBTyxFQUFQOztBQUNGLFdBQUEsUUFBQTtBQUNFLGVBQUEsaUJBQUE7QUFKSjtBQU1EOztBQUVELFVBQVEsVUFBVSxDQUFsQixDQUFrQixDQUFsQjtBQUNFLFNBQUEsV0FBQTtBQUNFLGNBQVEsVUFBVSxDQUFsQixDQUFrQixDQUFsQjtBQUNFLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQW5CLE1BQUEsQ0FBMkI7QUFBRSxZQUFBLE1BQU0sRUFBRTtBQUFWLFdBQTNCLENBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxtQkFBbUIsQ0FBMUIsSUFBTyxFQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sbUJBQW1CLENBQW5CLE1BQUEsQ0FBMkI7QUFBRSxZQUFBLE1BQU0sRUFBRTtBQUFWLFdBQTNCLENBQVA7QUFOSjs7QUFTRixTQUFBLElBQUE7QUFDRSxhQUFPLG1CQUFtQixDQUFuQixVQUFBLENBQStCLFVBQVUsQ0FBaEQsQ0FBZ0QsQ0FBekMsQ0FBUDtBQVpKO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnJlZSB2YXJpYWJsZSBpcyByZXNvbHZlZCBhY2NvcmRpbmcgdG8gYSByZXNvbHV0aW9uIHJ1bGU6XG4gKlxuICogMS4gU3RyaWN0IHJlc29sdXRpb25cbiAqIDIuIE5hbWVzcGFjZWQgcmVzb2x1dGlvblxuICogMy4gRmFsbGJhY2sgcmVzb2x1dGlvblxuICovXG5cbmltcG9ydCB7IEdldENvbnRleHR1YWxGcmVlT3AsIFNleHBPcGNvZGVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogU3RyaWN0IHJlc29sdXRpb24gaXMgdXNlZDpcbiAqXG4gKiAxLiBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlXG4gKiAyLiBpbiBhbiB1bmFtYmlndW91cyBpbnZvY2F0aW9uIHdpdGggZG90IHBhdGhzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpY3RSZXNvbHV0aW9uIHtcbiAgcmVzb2x1dGlvbigpOiBHZXRDb250ZXh0dWFsRnJlZU9wIHtcbiAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuICdTdHJpY3QnO1xuICB9XG5cbiAgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFNUUklDVF9SRVNPTFVUSU9OID0gbmV3IFN0cmljdFJlc29sdXRpb24oKTtcblxuLyoqXG4gKiBBIGBMb29zZU1vZGVSZXNvbHV0aW9uYCBpbmNsdWRlczpcbiAqXG4gKiAtIDAgb3IgbW9yZSBuYW1lc3BhY2VzIHRvIHJlc29sdmUgdGhlIHZhcmlhYmxlIGluXG4gKiAtIG9wdGlvbmFsIGZhbGxiYWNrIGJlaGF2aW9yXG4gKlxuICogSW4gcHJhY3RpY2UsIHRoZXJlIGFyZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZSBkZWdyZWVzIG9mIGZyZWVkb20sXG4gKiBhbmQgdGhleSBhcmUgY2FwdHVyZWQgYnkgdGhlIGBBbWJpZ3VpdHlgIHVuaW9uIGJlbG93LlxuICovXG5leHBvcnQgY2xhc3MgTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2VkIHJlc29sdXRpb24gaXMgdXNlZCBpbiBhbiB1bmFtYmlndW91cyBzeW50YXggcG9zaXRpb246XG4gICAqXG4gICAqIDEuIGAoc2V4cClgIChuYW1lc3BhY2U6IGBIZWxwZXJgKVxuICAgKiAyLiBge3sjYmxvY2t9fWAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqIDMuIGA8YSB7e21vZGlmaWVyfX0+YCAobmFtZXNwYWNlOiBgTW9kaWZpZXJgKVxuICAgKiA0LiBgPENvbXBvbmVudCAvPmAgKG5hbWVzcGFjZTogYENvbXBvbmVudGApXG4gICAqXG4gICAqIEBzZWUge05hbWVzcGFjZWRBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgbmFtZXNwYWNlZChuYW1lc3BhY2U6IEZyZWVWYXJOYW1lc3BhY2UsIGlzQW5nbGVCcmFja2V0ID0gZmFsc2UpOiBMb29zZU1vZGVSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IExvb3NlTW9kZVJlc29sdXRpb24oXG4gICAgICB7XG4gICAgICAgIG5hbWVzcGFjZXM6IFtuYW1lc3BhY2VdLFxuICAgICAgICBmYWxsYmFjazogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaXNBbmdsZUJyYWNrZXRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIG5vIG5hbWVzcGFjZWQgcmVzb2x1dGlvbnMgYXJlIHBvc3NpYmxlLCBidXQgZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbiBpcyBzdGlsbCBhbGxvd2VkLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4Lnl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSB7RmFsbGJhY2tBbWJpZ3VpdHl9XG4gICAqL1xuICBzdGF0aWMgZmFsbGJhY2soKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW10sIGZhbGxiYWNrOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGVuZCByZXNvbHV0aW9uIGlzIHVzZWQgd2hlbiB0aGUgdmFyaWFibGUgc2hvdWxkIGJlIHJlc29sdmVkIGluIGJvdGggdGhlIGBjb21wb25lbnRgIGFuZFxuICAgKiBgaGVscGVyYCBuYW1lc3BhY2VzLiBGYWxsYmFjayByZXNvbHV0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4fX1cbiAgICogYGBgXG4gICAqXG4gICAqIF4gYHhgIHNob3VsZCBiZSByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMgd2l0aCBmYWxsYmFjayByZXNvbHV0aW9uLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3t4IHl9fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0NvbXBvbmVudE9ySGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGFwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCwgRnJlZVZhck5hbWVzcGFjZS5IZWxwZXJdLFxuICAgICAgZmFsbGJhY2s6ICFpbnZva2UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJ1c3RpbmcgYXBwZW5kIHJlc29sdXRpb24gaXMgdXNlZCB3aGVuIHRoZSB2YXJpYWJsZSBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gYm90aCB0aGUgYGNvbXBvbmVudGAgYW5kXG4gICAqIGBoZWxwZXJgIG5hbWVzcGFjZXMuIEZhbGxiYWNrIHJlc29sdXRpb24gaXMgb3B0aW9uYWwuXG4gICAqXG4gICAqIGBgYGhic1xuICAgKiB7e3t4fX19XG4gICAqIGBgYFxuICAgKlxuICAgKiBeIGB4YCBzaG91bGQgYmUgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzIHdpdGggZmFsbGJhY2sgcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIHt7e3ggeX19fVxuICAgKiBgYGBcbiAgICpcbiAgICogXiBgeGAgc2hvdWxkIGJlIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBhbmQgYGhlbHBlcmAgbmFtZXNwYWNlcyB3aXRob3V0IGZhbGxiYWNrXG4gICAqIHJlc29sdXRpb24uXG4gICAqXG4gICAqIEBzZWUge0hlbHBlckFtYmlndWl0eX1cbiAgICovXG4gIHN0YXRpYyB0cnVzdGluZ0FwcGVuZCh7IGludm9rZSB9OiB7IGludm9rZTogYm9vbGVhbiB9KTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHtcbiAgICAgIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl0sXG4gICAgICBmYWxsYmFjazogIWludm9rZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcmVzb2x1dGlvbiBpcyB1c2VkIHdoZW4gdGhlIHZhcmlhYmxlIHNob3VsZCBiZSByZXNvbHZlZCBhcyBhIGBoZWxwZXJgIHdpdGggZmFsbGJhY2tcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogYGBgaGJzXG4gICAqIDxhIGhyZWY9e3t4fX0gLz5cbiAgICogPGEgaHJlZj1cInt7eH19Lmh0bWxcIiAvPlxuICAgKiBgYGBcbiAgICpcbiAgICogXiByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAgICpcbiAgICogQHNlZSB7SGVscGVyQW1iaWd1aXR5fVxuICAgKi9cbiAgc3RhdGljIGF0dHIoKTogTG9vc2VNb2RlUmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBMb29zZU1vZGVSZXNvbHV0aW9uKHsgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuSGVscGVyXSwgZmFsbGJhY2s6IHRydWUgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBhbWJpZ3VpdHk6IEFtYmlndWl0eSwgcmVhZG9ubHkgaXNBbmdsZUJyYWNrZXQgPSBmYWxzZSkge31cblxuICByZXNvbHV0aW9uKCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICAgIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aCBmYWxsYmFjayBtdXN0IGJlIGF0dHI9e3t4fX1cbiAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHNpbXBsZSBuYW1lc3BhY2VkIHJlc29sdXRpb24gd2l0aG91dCBmYWxsYmFja1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXNbMF0pIHtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQ7XG4gICAgICAgICAgY2FzZSBGcmVlVmFyTmFtZXNwYWNlLk1vZGlmaWVyOlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZDtcbiAgICAgICAgICBjYXNlIEZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50OlxuICAgICAgICAgICAgcmV0dXJuIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkO1xuICAgIH1cbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBTZXJpYWxpemVkUmVzb2x1dGlvbiB7XG4gICAgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ0xvb3NlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5Lm5hbWVzcGFjZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAodGhpcy5hbWJpZ3VpdHkuZmFsbGJhY2spIHtcbiAgICAgICAgLy8gc2ltcGxlIG5hbWVzcGFjZWQgcmVzb2x1dGlvbiB3aXRoIGZhbGxiYWNrIG11c3QgYmUgYXR0cj17e3h9fVxuICAgICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsnbnMnLCB0aGlzLmFtYmlndWl0eS5uYW1lc3BhY2VzWzBdXTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYW1iaWd1aXR5LmZhbGxiYWNrKSB7XG4gICAgICAvLyBjb21wb25lbnQgb3IgaGVscGVyICsgZmFsbGJhY2sgKHt7c29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5LkFwcGVuZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aG91dCBmYWxsYmFjayAoe3tzb21ldGhpbmcgc29tZXRoaW5nfX0pXG4gICAgICByZXR1cm4gWydhbWJpZ3VvdXMnLCBTZXJpYWxpemVkQW1iaWd1aXR5Lkludm9rZV07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBUkdVTUVOVF9SRVNPTFVUSU9OID0gTG9vc2VNb2RlUmVzb2x1dGlvbi5mYWxsYmFjaygpO1xuXG5leHBvcnQgY29uc3QgZW51bSBGcmVlVmFyTmFtZXNwYWNlIHtcbiAgSGVscGVyID0gJ0hlbHBlcicsXG4gIE1vZGlmaWVyID0gJ01vZGlmaWVyJyxcbiAgQ29tcG9uZW50ID0gJ0NvbXBvbmVudCcsXG59XG5cbi8qKlxuICogQSBgQ29tcG9uZW50T3JIZWxwZXJBbWJpZ3VpdHlgIG1pZ2h0IGJlIGEgY29tcG9uZW50IG9yIGEgaGVscGVyLCB3aXRoIGFuIG9wdGlvbmFsIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3h9fVxuICogYGBgXG4gKlxuICogXiBgeGAgaXMgcmVzb2x2ZWQgaW4gdGhlIGBjb21wb25lbnRgIGFuZCBgaGVscGVyYCBuYW1lc3BhY2VzLCB3aXRoIGZhbGxiYWNrXG4gKlxuICogYGBgaGJzXG4gKiB7e3ggeX19XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGNvbXBvbmVudGAgYW5kIGBoZWxwZXJgIG5hbWVzcGFjZXMsIHdpdGhvdXQgZmFsbGJhY2tcbiAqL1xudHlwZSBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eSA9IHtcbiAgbmFtZXNwYWNlczogW0ZyZWVWYXJOYW1lc3BhY2UuQ29tcG9uZW50LCBGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07XG4gIGZhbGxiYWNrOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBIGBIZWxwZXJBbWJpZ3VpdHlgIG11c3QgYmUgYSBoZWxwZXIsIGJ1dCBpdCBoYXMgZmFsbGJhY2suIElmIGl0IGRpZG4ndCBoYXZlIGZhbGxiYWNrLCBpdCB3b3VsZFxuICogYmUgYSBgTmFtZXNwYWNlZEFtYmlndWl0eWAuXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPXt7eH19IC8+XG4gKiA8YSBocmVmPVwie3t4fX0uaHRtbFwiIC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGggZmFsbGJhY2tcbiAqL1xudHlwZSBIZWxwZXJBbWJpZ3VpdHkgPSB7IG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkhlbHBlcl07IGZhbGxiYWNrOiBib29sZWFuIH07XG5cbi8qKlxuICogQSBgTmFtZXNwYWNlZEFtYmlndWl0eWAgbXVzdCBiZSByZXNvbHZlZCBpbiBhIHBhcnRpY3VsYXIgbmFtZXNwYWNlLCB3aXRob3V0IGZhbGxiYWNrLlxuICpcbiAqIGBgYGhic1xuICogPFggLz5cbiAqIGBgYFxuICpcbiAqIF4gYFhgIGlzIHJlc29sdmVkIGluIHRoZSBgY29tcG9uZW50YCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICpcbiAqIGBgYGhic1xuICogKHgpXG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYGhlbHBlcmAgbmFtZXNwYWNlIHdpdGhvdXQgZmFsbGJhY2tcbiAqXG4gKiBgYGBoYnNcbiAqIDxhIHt7eH19IC8+XG4gKiBgYGBcbiAqXG4gKiBeIGB4YCBpcyByZXNvbHZlZCBpbiB0aGUgYG1vZGlmaWVyYCBuYW1lc3BhY2Ugd2l0aG91dCBmYWxsYmFja1xuICovXG50eXBlIE5hbWVzcGFjZWRBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtGcmVlVmFyTmFtZXNwYWNlLkNvbXBvbmVudCB8IEZyZWVWYXJOYW1lc3BhY2UuSGVscGVyIHwgRnJlZVZhck5hbWVzcGFjZS5Nb2RpZmllcl07XG4gIGZhbGxiYWNrOiBmYWxzZTtcbn07XG5cbnR5cGUgRmFsbGJhY2tBbWJpZ3VpdHkgPSB7XG4gIG5hbWVzcGFjZXM6IFtdO1xuICBmYWxsYmFjazogdHJ1ZTtcbn07XG5cbnR5cGUgQW1iaWd1aXR5ID1cbiAgfCBDb21wb25lbnRPckhlbHBlckFtYmlndWl0eVxuICB8IEhlbHBlckFtYmlndWl0eVxuICB8IE5hbWVzcGFjZWRBbWJpZ3VpdHlcbiAgfCBGYWxsYmFja0FtYmlndWl0eTtcblxuZXhwb3J0IHR5cGUgRnJlZVZhclJlc29sdXRpb24gPSBTdHJpY3RSZXNvbHV0aW9uIHwgTG9vc2VNb2RlUmVzb2x1dGlvbjtcblxuLy8gU2VyaWFsaXphdGlvblxuXG5jb25zdCBlbnVtIFNlcmlhbGl6ZWRBbWJpZ3VpdHkge1xuICAvLyB7e3h9fVxuICBBcHBlbmQgPSAnQXBwZW5kJyxcbiAgLy8gaHJlZj17e3h9fVxuICBBdHRyID0gJ0F0dHInLFxuICAvLyB7e3ggeX19IChub3QgYXR0cilcbiAgSW52b2tlID0gJ0ludm9rZScsXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRSZXNvbHV0aW9uID1cbiAgfCAnU3RyaWN0J1xuICB8ICdMb29zZSdcbiAgfCBbJ25zJywgRnJlZVZhck5hbWVzcGFjZV1cbiAgfCBbJ2FtYmlndW91cycsIFNlcmlhbGl6ZWRBbWJpZ3VpdHldO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlc29sdXRpb24ocmVzb2x1dGlvbjogU2VyaWFsaXplZFJlc29sdXRpb24pOiBGcmVlVmFyUmVzb2x1dGlvbiB7XG4gIGlmICh0eXBlb2YgcmVzb2x1dGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICBzd2l0Y2ggKHJlc29sdXRpb24pIHtcbiAgICAgIGNhc2UgJ0xvb3NlJzpcbiAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uZmFsbGJhY2soKTtcbiAgICAgIGNhc2UgJ1N0cmljdCc6XG4gICAgICAgIHJldHVybiBTVFJJQ1RfUkVTT0xVVElPTjtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHJlc29sdXRpb25bMF0pIHtcbiAgICBjYXNlICdhbWJpZ3VvdXMnOlxuICAgICAgc3dpdGNoIChyZXNvbHV0aW9uWzFdKSB7XG4gICAgICAgIGNhc2UgU2VyaWFsaXplZEFtYmlndWl0eS5BcHBlbmQ6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXBwZW5kKHsgaW52b2tlOiBmYWxzZSB9KTtcbiAgICAgICAgY2FzZSBTZXJpYWxpemVkQW1iaWd1aXR5LkF0dHI6XG4gICAgICAgICAgcmV0dXJuIExvb3NlTW9kZVJlc29sdXRpb24uYXR0cigpO1xuICAgICAgICBjYXNlIFNlcmlhbGl6ZWRBbWJpZ3VpdHkuSW52b2tlOlxuICAgICAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLmFwcGVuZCh7IGludm9rZTogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ25zJzpcbiAgICAgIHJldHVybiBMb29zZU1vZGVSZXNvbHV0aW9uLm5hbWVzcGFjZWQocmVzb2x1dGlvblsxXSk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
{
"name": "@glimmer/syntax",
"version": "0.83.0",
"version": "0.83.1",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/syntax",
"dependencies": {
"@glimmer/interfaces": "0.83.0",
"@glimmer/util": "0.83.0",
"@glimmer/interfaces": "0.83.1",
"@glimmer/util": "0.83.1",
"@handlebars/parser": "~2.0.0",

@@ -12,3 +12,3 @@ "simple-html-tokenizer": "^0.5.11"

"devDependencies": {
"@glimmer/local-debug-flags": "0.83.0",
"@glimmer/local-debug-flags": "0.83.1",
"@types/qunit": "^2.9.0"

@@ -15,0 +15,0 @@ },

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc