Socket
Socket
Sign inDemoInstall

@glimmer/syntax

Package Overview
Dependencies
Maintainers
12
Versions
286
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.77.6 to 0.78.0

test/builders-test.js

10

dist/commonjs/es2017/lib/v2-a/builders.js

@@ -203,2 +203,10 @@ "use strict";

deprecatedCall(arg, callee, loc) {
return new ASTv2.DeprecatedCallExpression({
loc,
arg,
callee
});
}
interpolate(parts, loc) {

@@ -344,2 +352,2 @@ (0, _util.assertPresent)(parts);

exports.BuildElement = BuildElement;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT00sTUFBQSxPQUFBLENBQWM7QUFDbEI7QUFFQSxFQUFBLFFBQVEsQ0FBQSxPQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFHUztBQUVmLFdBQU8sSUFBSSxLQUFLLENBQVQsUUFBQSxDQUFtQjtBQUN4QixNQUFBLEtBQUssRUFEbUIsT0FBQTtBQUFBLE1BQUEsSUFBQTtBQUd4QixNQUFBO0FBSHdCLEtBQW5CLENBQVA7QUFSZ0IsR0FBQSxDQWVsQjs7O0FBRUEsRUFBQSxLQUFLLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQXNFO0FBQ3pFLFdBQU8sSUFBSSxLQUFLLENBQVQsS0FBQSxDQUFnQjtBQUNyQixNQUFBLEtBQUssRUFEZ0IsT0FBQTtBQUFBLE1BQUEsSUFBQTtBQUdyQixNQUFBO0FBSHFCLEtBQWhCLENBQVA7QUFLRDs7QUFFRCxFQUFBLFVBQVUsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBdUQ7QUFDL0QsV0FBTyxJQUFJLEtBQUssQ0FBVCxVQUFBLENBQXFCO0FBQUEsTUFBQSxJQUFBO0FBQUEsTUFBQSxLQUFBO0FBRzFCLE1BQUEsS0FBSyxFQUhxQixFQUFBO0FBSTFCLE1BQUEsYUFBYSxFQUphLEVBQUE7QUFLMUIsTUFBQSxTQUFTLEVBTGlCLEVBQUE7QUFNMUIsTUFBQTtBQU4wQixLQUFyQixDQUFQO0FBUUQ7O0FBRUQsRUFBQSxnQkFBZ0IsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBdUQ7QUFDckUsV0FBTyxJQUFBLFlBQUEsQ0FBaUI7QUFDdEIsTUFBQSxXQUFXLEVBRFcsS0FBQTtBQUV0QixNQUFBLEtBQUssRUFGaUIsRUFBQTtBQUd0QixNQUFBLGFB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U0FBd0IsQ0FBeEIsRUFBQSxLQUFBLEVBSEYsR0FHRSxDQUFqQixDQUhlLENBR3lFOztBQUV4RixXQUFPLElBQUksS0FBSyxDQUFULGVBQUEsQ0FDTCxrQkFDRTtBQUFBLE1BQUEsR0FBQTtBQUFBLE1BQUEsTUFBQTtBQUdFLE1BQUEsTUFBTSxFQUFFLEtBQUEsT0FBQSxDQUFBLFdBQUEsQ0FBeUIsQ0FBekIsVUFBeUIsQ0FBekIsRUFBdUMsVUFBVSxDQUFqRCxHQUFBO0FBSFYsS0FERixFQU1FLEtBUEosSUFDRSxDQURLLENBQVA7QUFVRDs7QUFFRCxFQUFBLHdCQUF3QixDQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsR0FBQSxFQUdQO0FBRWYsV0FBTyxJQUFJLEtBQUssQ0FBVCxlQUFBLENBQ0wsa0JBQ0U7QUFBQSxNQUFBLEdBQUE7QUFBQSxNQUFBLE1BQUE7QUFHRSxNQUFBLE1BQU0sRUFBRSxLQUFBLE9BQUEsQ0FBQSxXQUFBLENBQUEsTUFBQSxFQUFpQyxtQkFBQSxLQUFBLENBQWpDLE1BQWlDLENBQWpDO0FBSFYsS0FERixFQU1FLEtBUEosSUFDRSxDQURLLENBQVA7QUFVRDs7QUF2RnNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzZXJ0UHJlc2VudCwgYXNzaWduIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFNvdXJjZVNsaWNlIH0gZnJvbSAnLi4vc291cmNlL3NsaWNlJztcbmltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgeyBTcGFuTGlzdCB9IGZyb20gJy4uL3NvdXJjZS9zcGFuLWxpc3QnO1xuaW1wb3J0IHsgQmxvY2tTeW1ib2xUYWJsZSwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBTeW1ib2xUYWJsZSB9IGZyb20gJy4uL3N5bWJvbC10YWJsZSc7XG5pbXBvcnQgKiBhcyBBU1R2MiBmcm9tICcuL2FwaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbFBhcnRzIHtcbiAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTtcbiAgYXJnczogQVNUdjIuQXJncztcbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkZXIge1xuICAvLyBURU1QTEFURSAvL1xuXG4gIHRlbXBsYXRlKFxuICAgIHN5bWJvbHM6IFByb2dyYW1TeW1ib2xUYWJsZSxcbiAgICBib2R5OiBBU1R2Mi5Db250ZW50Tm9kZVtdLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5UZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5UZW1wbGF0ZSh7XG4gICAgICB0YWJsZTogc3ltYm9scyxcbiAgICAgIGJvZHksXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICAvLyBJTlRFUk5BTCAodGhlc2Ugbm9kZXMgY2Fubm90IGJlIHJlYWNoZWQgd2hlbiBkb2luZyBnZW5lcmFsLXB1cnBvc2UgdmlzaXRpbmcpIC8vXG5cbiAgYmxvY2soc3ltYm9sczogQmxvY2tTeW1ib2xUYWJsZSwgYm9keTogQVNUdjIuQ29udGVudE5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuQmxvY2sge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQmxvY2soe1xuICAgICAgc2NvcGU6IHN5bWJvbHMsXG4gICAgICBib2R5LFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRCbG9jayhuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2soe1xuICAgICAgbmFtZSxcbiAgICAgIGJsb2NrLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICBtb2RpZmllcnM6IFtdLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgc2ltcGxlTmFtZWRCbG9jayhuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkRWxlbWVudCh7XG4gICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICBhdHRyczogW10sXG4gICAgICBjb21wb25lbnRBcmdzOiBbXSxcbiAgICAgIG1vZGlmaWVyczogW10sXG4gICAgICBjb21tZW50czogW10sXG4gICAgfSkubmFtZWQobmFtZSwgYmxvY2ssIGxvYyk7XG4gIH1cblxuICBzbGljZShjaGFyczogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBTb3VyY2VTbGljZSB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7XG4gICAgICBsb2MsXG4gICAgICBjaGFycyxcbiAgICB9KTtcbiAgfVxuXG4gIGFyZ3MoXG4gICAgcG9zaXRpb25hbDogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyxcbiAgICBuYW1lZDogQVNUdjIuTmFtZWRBcmd1bWVudHMsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkFyZ3Mge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQXJncyh7XG4gICAgICBsb2MsXG4gICAgICBwb3NpdGlvbmFsLFxuICAgICAgbmFtZWQsXG4gICAgfSk7XG4gIH1cblxuICBwb3NpdGlvbmFsKGV4cHJzOiBBU1R2Mi5FeHByZXNzaW9uTm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMoe1xuICAgICAgbG9jLFxuICAgICAgZXhwcnMsXG4gICAgfSk7XG4gIH1cblxuICBuYW1lZEFyZ3VtZW50KGtleTogU291cmNlU2xpY2UsIHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSk6IEFTVHYyLk5hbWVkQXJndW1lbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRBcmd1bWVudCh7XG4gICAgICBuYW1lOiBrZXksXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG5hbWVkKGVudHJpZXM6IEFTVHYyLk5hbWVkQXJndW1lbnRbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRBcmd1bWVudHMge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRBcmd1bWVudHMoe1xuICAgICAgbG9jLFxuICAgICAgZW50cmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIGF0dHIoXG4gICAge1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfTogeyBuYW1lOiBTb3VyY2VTbGljZTsgdmFsdWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlOyB0cnVzdGluZzogYm9vbGVhbiB9LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5IdG1sQXR0ciB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5IdG1sQXR0cih7XG4gICAgICBsb2MsXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICB0cnVzdGluZyxcbiAgICB9KTtcbiAgfVxuXG4gIHNwbGF0QXR0cihzeW1ib2w6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuU3BsYXRBdHRyIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlNwbGF0QXR0cih7XG4gICAgICBzeW1ib2wsXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBhcmcoXG4gICAge1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfTogeyBuYW1lOiBTb3VyY2VTbGljZTsgdmFsdWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlOyB0cnVzdGluZzogYm9vbGVhbiB9LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5Db21wb25lbnRBcmcge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQ29tcG9uZW50QXJnKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRVhQUkVTU0lPTlMgLy9cblxuICBwYXRoKGhlYWQ6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlLCB0YWlsOiBTb3VyY2VTbGljZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5QYXRoRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5QYXRoRXhwcmVzc2lvbih7XG4gICAgICBsb2MsXG4gICAgICByZWY6IGhlYWQsXG4gICAgICB0YWlsLFxuICAgIH0pO1xuICB9XG5cbiAgc2VsZihsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5UaGlzUmVmZXJlbmNlKHtcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIGF0KG5hbWU6IHN0cmluZywgc3ltYm9sOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlIHtcbiAgICAvLyB0aGUgYEBgIHNob3VsZCBiZSBpbmNsdWRlZCBzbyB3ZSBoYXZlIGEgY29tcGxldGUgc291cmNlIHJhbmdlXG4gICAgYXNzZXJ0KG5hbWVbMF0gPT09ICdAJywgYGNhbGwgYnVpbGRlcnMuYXQoKSB3aXRoIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggJ0AnYCk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkFyZ1JlZmVyZW5jZSh7XG4gICAgICBsb2MsXG4gICAgICBuYW1lOiBuZXcgU291cmNlU2xpY2UoeyBsb2MsIGNoYXJzOiBuYW1lIH0pLFxuICAgICAgc3ltYm9sLFxuICAgIH0pO1xuICB9XG5cbiAgZnJlZVZhcih7XG4gICAgbmFtZSxcbiAgICBjb250ZXh0LFxuICAgIHN5bWJvbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY29udGV4dDogQVNUdjIuRnJlZVZhclJlc29sdXRpb247XG4gICAgc3ltYm9sOiBudW1iZXI7XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIGFzc2VydChcbiAgICAgIG5hbWUgIT09ICd0aGlzJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLmZyZWVWYXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgXG4gICAgKTtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgICBgWW91IGNhbGxlZCBidWlsZGVycy5mcmVlVmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkZyZWVWYXJSZWZlcmVuY2Uoe1xuICAgICAgbmFtZSxcbiAgICAgIHJlc29sdXRpb246IGNvbnRleHQsXG4gICAgICBzeW1ib2wsXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBsb2NhbFZhcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgc3ltYm9sOiBudW1iZXIsXG4gICAgaXNUZW1wbGF0ZUxvY2FsOiBib29sZWFuLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgYXNzZXJ0KG5hbWUgIT09ICd0aGlzJywgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAndGhpcycuIENhbGwgYnVpbGRlcnMudGhpcyBpbnN0ZWFkYCk7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkxvY2FsVmFyUmVmZXJlbmNlKHtcbiAgICAgIGxvYyxcbiAgICAgIG5hbWUsXG4gICAgICBpc1RlbXBsYXRlTG9jYWwsXG4gICAgICBzeW1ib2wsXG4gICAgfSk7XG4gIH1cblxuICBzZXhwKHBhcnRzOiBDYWxsUGFydHMsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkNhbGxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkNhbGxFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIGNhbGxlZTogcGFydHMuY2FsbGVlLFxuICAgICAgYXJnczogcGFydHMuYXJncyxcbiAgICB9KTtcbiAgfVxuXG4gIGludGVycG9sYXRlKHBhcnRzOiBBU1R2Mi5FeHByZXNzaW9uTm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5JbnRlcnBvbGF0ZUV4cHJlc3Npb24ge1xuICAgIGFzc2VydFByZXNlbnQocGFydHMpO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnRlcnBvbGF0ZUV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgcGFydHMsXG4gICAgfSk7XG4gIH1cblxuICBsaXRlcmFsKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogc3RyaW5nIH07XG4gIGxpdGVyYWwodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBudW1iZXIgfTtcbiAgbGl0ZXJhbCh2YWx1ZTogYm9vbGVhbiwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBib29sZWFuIH07XG4gIGxpdGVyYWwodmFsdWU6IG51bGwsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogbnVsbCB9O1xuICBsaXRlcmFsKHZhbHVlOiB1bmRlZmluZWQsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogdW5kZWZpbmVkIH07XG4gIGxpdGVyYWwoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbjtcbiAgbGl0ZXJhbChcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gU1RBVEVNRU5UUyAvL1xuXG4gIGFwcGVuZChcbiAgICB7XG4gICAgICB0YWJsZSxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgdmFsdWUsXG4gICAgfTogeyB0YWJsZTogU3ltYm9sVGFibGU7IHRydXN0aW5nOiBib29sZWFuOyB2YWx1ZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUgfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuQXBwZW5kQ29udGVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5BcHBlbmRDb250ZW50KHtcbiAgICAgIHRhYmxlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vZGlmaWVyKHsgY2FsbGVlLCBhcmdzIH06IENhbGxQYXJ0cywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuRWxlbWVudE1vZGlmaWVyIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkVsZW1lbnRNb2RpZmllcih7XG4gICAgICBsb2MsXG4gICAgICBjYWxsZWUsXG4gICAgICBhcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRCbG9ja3MoYmxvY2tzOiBBU1R2Mi5OYW1lZEJsb2NrW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLk5hbWVkQmxvY2tzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2tzKHtcbiAgICAgIGxvYyxcbiAgICAgIGJsb2NrcyxcbiAgICB9KTtcbiAgfVxuXG4gIGJsb2NrU3RhdGVtZW50KFxuICAgIHtcbiAgICAgIHN5bWJvbHMsXG4gICAgICBwcm9ncmFtLFxuICAgICAgaW52ZXJzZSA9IG51bGwsXG4gICAgICAuLi5jYWxsXG4gICAgfToge1xuICAgICAgc3ltYm9sczogU3ltYm9sVGFibGU7XG4gICAgICBwcm9ncmFtOiBBU1R2Mi5CbG9jaztcbiAgICAgIGludmVyc2U/OiBBU1R2Mi5CbG9jayB8IG51bGw7XG4gICAgfSAmIENhbGxQYXJ0cyxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSW52b2tlQmxvY2sge1xuICAgIGxldCBibG9ja3NMb2MgPSBwcm9ncmFtLmxvYztcbiAgICBsZXQgYmxvY2tzOiBQcmVzZW50QXJyYXk8QVNUdjIuTmFtZWRCbG9jaz4gPSBbXG4gICAgICB0aGlzLm5hbWVkQmxvY2soU291cmNlU2xpY2Uuc3ludGhldGljKCdkZWZhdWx0JyksIHByb2dyYW0sIHByb2dyYW0ubG9jKSxcbiAgICBdO1xuICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICBibG9ja3NMb2MgPSBibG9ja3NMb2MuZXh0ZW5kKGludmVyc2UubG9jKTtcbiAgICAgIGJsb2Nrcy5wdXNoKHRoaXMubmFtZWRCbG9jayhTb3VyY2VTbGljZS5zeW50aGV0aWMoJ2Vsc2UnKSwgaW52ZXJzZSwgaW52ZXJzZS5sb2MpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUJsb2NrKHtcbiAgICAgIGxvYyxcbiAgICAgIGJsb2NrczogdGhpcy5uYW1lZEJsb2NrcyhibG9ja3MsIGJsb2Nrc0xvYyksXG4gICAgICBjYWxsZWU6IGNhbGwuY2FsbGVlLFxuICAgICAgYXJnczogY2FsbC5hcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgZWxlbWVudChvcHRpb25zOiBCdWlsZEJhc2VFbGVtZW50KTogQnVpbGRFbGVtZW50IHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkRWxlbWVudChvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQmFzZUVsZW1lbnQge1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYyLkh0bWxPclNwbGF0QXR0cltdO1xuICBjb21wb25lbnRBcmdzOiBBU1R2Mi5Db21wb25lbnRBcmdbXTtcbiAgbW9kaWZpZXJzOiBBU1R2Mi5FbGVtZW50TW9kaWZpZXJbXTtcbiAgY29tbWVudHM6IEFTVHYyLkdsaW1tZXJDb21tZW50W107XG59XG5cbmV4cG9ydCBjbGFzcyBCdWlsZEVsZW1lbnQge1xuICByZWFkb25seSBidWlsZGVyOiBCdWlsZGVyO1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBiYXNlOiBCdWlsZEJhc2VFbGVtZW50KSB7XG4gICAgdGhpcy5idWlsZGVyID0gbmV3IEJ1aWxkZXIoKTtcbiAgfVxuXG4gIHNpbXBsZSh0YWc6IFNvdXJjZVNsaWNlLCBib2R5OiBBU1R2Mi5Db250ZW50Tm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5TaW1wbGVFbGVtZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlNpbXBsZUVsZW1lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICB0YWcsXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBjb21wb25lbnRBcmdzOiBbXSxcbiAgICAgICAgICBsb2MsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuYW1lZChuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2soXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgIGNvbXBvbmVudEFyZ3M6IFtdLFxuICAgICAgICAgIGxvYyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNlbGZDbG9zaW5nQ29tcG9uZW50KGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkludm9rZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnZva2VDb21wb25lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBsb2MsXG4gICAgICAgICAgY2FsbGVlLFxuICAgICAgICAgIC8vIHBvaW50IHRoZSBlbXB0eSBuYW1lZCBibG9ja3MgYXQgdGhlIGAvYCBzZWxmLWNsb3NpbmcgdGFnXG4gICAgICAgICAgYmxvY2tzOiBuZXcgQVNUdjIuTmFtZWRCbG9ja3Moe1xuICAgICAgICAgICAgYmxvY2tzOiBbXSxcbiAgICAgICAgICAgIGxvYzogbG9jLnNsaWNlRW5kQ2hhcnMoeyBza2lwRW5kOiAxLCBjaGFyczogMSB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpdGhEZWZhdWx0QmxvY2soXG4gICAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSxcbiAgICBjaGlsZHJlbjogQVNUdjIuQ29udGVudE5vZGVbXSxcbiAgICBzeW1ib2xzOiBCbG9ja1N5bWJvbFRhYmxlLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5JbnZva2VDb21wb25lbnQge1xuICAgIGxldCBibG9jayA9IHRoaXMuYnVpbGRlci5ibG9jayhzeW1ib2xzLCBjaGlsZHJlbiwgbG9jKTtcbiAgICBsZXQgbmFtZWRCbG9jayA9IHRoaXMuYnVpbGRlci5uYW1lZEJsb2NrKFNvdXJjZVNsaWNlLnN5bnRoZXRpYygnZGVmYXVsdCcpLCBibG9jaywgbG9jKTsgLy8gQlVJTERFUi5zaW1wbGVOYW1lZEJsb2NrKCdkZWZhdWx0JywgY2hpbGRyZW4sIHN5bWJvbHMsIGxvYyk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUNvbXBvbmVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYyxcbiAgICAgICAgICBjYWxsZWUsXG4gICAgICAgICAgYmxvY2tzOiB0aGlzLmJ1aWxkZXIubmFtZWRCbG9ja3MoW25hbWVkQmxvY2tdLCBuYW1lZEJsb2NrLmxvYyksXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBjb21wb25lbnRXaXRoTmFtZWRCbG9ja3MoXG4gICAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSxcbiAgICBibG9ja3M6IFByZXNlbnRBcnJheTxBU1R2Mi5OYW1lZEJsb2NrPixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSW52b2tlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUNvbXBvbmVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYyxcbiAgICAgICAgICBjYWxsZWUsXG4gICAgICAgICAgYmxvY2tzOiB0aGlzLmJ1aWxkZXIubmFtZWRCbG9ja3MoYmxvY2tzLCBTcGFuTGlzdC5yYW5nZShibG9ja3MpKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT00sTUFBQSxPQUFBLENBQWM7QUFDbEI7QUFFQSxFQUFBLFFBQVEsQ0FBQSxPQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFHUztBQUVmLFdBQU8sSUFBSSxLQUFLLENBQVQsUUFBQSxDQUFtQjtBQUN4QixNQUFBLEtBQUssRUFEbUIsT0FBQTtBQUFBLE1BQUEsSUFBQTtBQUd4QixNQUFBO0FBSHdCLEtBQW5CLENBQVA7QUFSZ0IsR0FBQSxDQWVsQjs7O0FBRUEsRUFBQSxLQUFLLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQXNFO0FBQ3pFLFdBQU8sSUFBSSxLQUFLLENBQVQsS0FBQSxDQUFnQjtBQUNyQixNQUFBLEtBQUssRUFEZ0IsT0FBQTtBQUFBLE1BQUEsSUFBQTtBQUdyQixNQUFBO0FBSHFCLEtBQWhCLENBQVA7QUFLRDs7QUFFRCxFQUFBLFVBQVUsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBdUQ7QUFDL0QsV0FBTyxJQUFJLEtBQUssQ0FBVCxVQUFBLENBQXFCO0FBQUEsTUFBQSxJQUFBO0FBQUEsTUFBQSxLQUFBO0FBRzFCLE1BQUEsS0FBSyxFQUhxQixFQUFBO0FBSTFCLE1BQUEsYUFBYSxFQUphLEVBQUE7QUFLMUIsTUFBQSxTQUFTLEVBTGlCLEVBQUE7QUFNMUIsTUFBQTtBQU4wQixLQUFyQixDQUFQO0FBUUQ7O0FBRUQsRUFBQSxnQkFBZ0IsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBdUQ7QUFDckUsV0FBTyxJQUFBLFlBQUEsQ0FBaUI7QUFDdEIsTUFBQSxXQUFXLEVBRFcsS0FBQTtBQUV0QixNQUFBLEtBQUssRUFGaUIsRUFBQTtBQUd0QixNQUFBLGFB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QUEsR0FBQSxFQUlSO0FBRWYsUUFBSSxLQUFLLEdBQUcsS0FBQSxPQUFBLENBQUEsS0FBQSxDQUFBLE9BQUEsRUFBQSxRQUFBLEVBQVosR0FBWSxDQUFaO0FBQ0EsUUFBSSxVQUFVLEdBQUcsS0FBQSxPQUFBLENBQUEsVUFBQSxDQUF3QixtQkFBQSxTQUFBLENBQXhCLFNBQXdCLENBQXhCLEVBQUEsS0FBQSxFQUhGLEdBR0UsQ0FBakIsQ0FIZSxDQUd5RTs7QUFFeEYsV0FBTyxJQUFJLEtBQUssQ0FBVCxlQUFBLENBQ0wsa0JBQ0U7QUFBQSxNQUFBLEdBQUE7QUFBQSxNQUFBLE1BQUE7QUFHRSxNQUFBLE1BQU0sRUFBRSxLQUFBLE9BQUEsQ0FBQSxXQUFBLENBQXlCLENBQXpCLFVBQXlCLENBQXpCLEVBQXVDLFVBQVUsQ0FBakQsR0FBQTtBQUhWLEtBREYsRUFNRSxLQVBKLElBQ0UsQ0FESyxDQUFQO0FBVUQ7O0FBRUQsRUFBQSx3QkFBd0IsQ0FBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFHUDtBQUVmLFdBQU8sSUFBSSxLQUFLLENBQVQsZUFBQSxDQUNMLGtCQUNFO0FBQUEsTUFBQSxHQUFBO0FBQUEsTUFBQSxNQUFBO0FBR0UsTUFBQSxNQUFNLEVBQUUsS0FBQSxPQUFBLENBQUEsV0FBQSxDQUFBLE1BQUEsRUFBaUMsbUJBQUEsS0FBQSxDQUFqQyxNQUFpQyxDQUFqQztBQUhWLEtBREYsRUFNRSxLQVBKLElBQ0UsQ0FESyxDQUFQO0FBVUQ7O0FBdkZzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2VydFByZXNlbnQsIGFzc2lnbiB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0IHsgU3Bhbkxpc3QgfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbi1saXN0JztcbmltcG9ydCB7IEJsb2NrU3ltYm9sVGFibGUsIFByb2dyYW1TeW1ib2xUYWJsZSwgU3ltYm9sVGFibGUgfSBmcm9tICcuLi9zeW1ib2wtdGFibGUnO1xuaW1wb3J0ICogYXMgQVNUdjIgZnJvbSAnLi9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxQYXJ0cyB7XG4gIGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGU7XG4gIGFyZ3M6IEFTVHYyLkFyZ3M7XG59XG5cbmV4cG9ydCBjbGFzcyBCdWlsZGVyIHtcbiAgLy8gVEVNUExBVEUgLy9cblxuICB0ZW1wbGF0ZShcbiAgICBzeW1ib2xzOiBQcm9ncmFtU3ltYm9sVGFibGUsXG4gICAgYm9keTogQVNUdjIuQ29udGVudE5vZGVbXSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuVGVtcGxhdGUge1xuICAgIHJldHVybiBuZXcgQVNUdjIuVGVtcGxhdGUoe1xuICAgICAgdGFibGU6IHN5bWJvbHMsXG4gICAgICBib2R5LFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgKHRoZXNlIG5vZGVzIGNhbm5vdCBiZSByZWFjaGVkIHdoZW4gZG9pbmcgZ2VuZXJhbC1wdXJwb3NlIHZpc2l0aW5nKSAvL1xuXG4gIGJsb2NrKHN5bWJvbHM6IEJsb2NrU3ltYm9sVGFibGUsIGJvZHk6IEFTVHYyLkNvbnRlbnROb2RlW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkJsb2NrKHtcbiAgICAgIHNjb3BlOiBzeW1ib2xzLFxuICAgICAgYm9keSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIG5hbWVkQmxvY2sobmFtZTogU291cmNlU2xpY2UsIGJsb2NrOiBBU1R2Mi5CbG9jaywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5OYW1lZEJsb2NrKHtcbiAgICAgIG5hbWUsXG4gICAgICBibG9jayxcbiAgICAgIGF0dHJzOiBbXSxcbiAgICAgIGNvbXBvbmVudEFyZ3M6IFtdLFxuICAgICAgbW9kaWZpZXJzOiBbXSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIHNpbXBsZU5hbWVkQmxvY2sobmFtZTogU291cmNlU2xpY2UsIGJsb2NrOiBBU1R2Mi5CbG9jaywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZEVsZW1lbnQoe1xuICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICBtb2RpZmllcnM6IFtdLFxuICAgICAgY29tbWVudHM6IFtdLFxuICAgIH0pLm5hbWVkKG5hbWUsIGJsb2NrLCBsb2MpO1xuICB9XG5cbiAgc2xpY2UoY2hhcnM6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogU291cmNlU2xpY2Uge1xuICAgIHJldHVybiBuZXcgU291cmNlU2xpY2Uoe1xuICAgICAgbG9jLFxuICAgICAgY2hhcnMsXG4gICAgfSk7XG4gIH1cblxuICBhcmdzKFxuICAgIHBvc2l0aW9uYWw6IEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMsXG4gICAgbmFtZWQ6IEFTVHYyLk5hbWVkQXJndW1lbnRzLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5BcmdzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkFyZ3Moe1xuICAgICAgbG9jLFxuICAgICAgcG9zaXRpb25hbCxcbiAgICAgIG5hbWVkLFxuICAgIH0pO1xuICB9XG5cbiAgcG9zaXRpb25hbChleHByczogQVNUdjIuRXhwcmVzc2lvbk5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzKHtcbiAgICAgIGxvYyxcbiAgICAgIGV4cHJzLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRBcmd1bWVudChrZXk6IFNvdXJjZVNsaWNlLCB2YWx1ZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUpOiBBU1R2Mi5OYW1lZEFyZ3VtZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQXJndW1lbnQoe1xuICAgICAgbmFtZToga2V5LFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBuYW1lZChlbnRyaWVzOiBBU1R2Mi5OYW1lZEFyZ3VtZW50W10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLk5hbWVkQXJndW1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQXJndW1lbnRzKHtcbiAgICAgIGxvYyxcbiAgICAgIGVudHJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBhdHRyKFxuICAgIHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgIH06IHsgbmFtZTogU291cmNlU2xpY2U7IHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTsgdHJ1c3Rpbmc6IGJvb2xlYW4gfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSHRtbEF0dHIge1xuICAgIHJldHVybiBuZXcgQVNUdjIuSHRtbEF0dHIoe1xuICAgICAgbG9jLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfSk7XG4gIH1cblxuICBzcGxhdEF0dHIoc3ltYm9sOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLlNwbGF0QXR0ciB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5TcGxhdEF0dHIoe1xuICAgICAgc3ltYm9sLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgYXJnKFxuICAgIHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgIH06IHsgbmFtZTogU291cmNlU2xpY2U7IHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTsgdHJ1c3Rpbmc6IGJvb2xlYW4gfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuQ29tcG9uZW50QXJnIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkNvbXBvbmVudEFyZyh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICB0cnVzdGluZyxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEVYUFJFU1NJT05TIC8vXG5cbiAgcGF0aChoZWFkOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSwgdGFpbDogU291cmNlU2xpY2VbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuUGF0aEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgQVNUdjIuUGF0aEV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgcmVmOiBoZWFkLFxuICAgICAgdGFpbCxcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGYobG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIHJldHVybiBuZXcgQVNUdjIuVGhpc1JlZmVyZW5jZSh7XG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBhdChuYW1lOiBzdHJpbmcsIHN5bWJvbDogbnVtYmVyLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5BcmdSZWZlcmVuY2Uoe1xuICAgICAgbG9jLFxuICAgICAgbmFtZTogbmV3IFNvdXJjZVNsaWNlKHsgbG9jLCBjaGFyczogbmFtZSB9KSxcbiAgICAgIHN5bWJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIGZyZWVWYXIoe1xuICAgIG5hbWUsXG4gICAgY29udGV4dCxcbiAgICBzeW1ib2wsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbnRleHQ6IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uO1xuICAgIHN5bWJvbDogbnVtYmVyO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYyLkZyZWVWYXJSZWZlcmVuY2Uge1xuICAgIGFzc2VydChcbiAgICAgIG5hbWUgIT09ICd0aGlzJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLmZyZWVWYXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgXG4gICAgKTtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgICBgWW91IGNhbGxlZCBidWlsZGVycy5mcmVlVmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkZyZWVWYXJSZWZlcmVuY2Uoe1xuICAgICAgbmFtZSxcbiAgICAgIHJlc29sdXRpb246IGNvbnRleHQsXG4gICAgICBzeW1ib2wsXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBsb2NhbFZhcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgc3ltYm9sOiBudW1iZXIsXG4gICAgaXNUZW1wbGF0ZUxvY2FsOiBib29sZWFuLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgYXNzZXJ0KG5hbWUgIT09ICd0aGlzJywgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAndGhpcycuIENhbGwgYnVpbGRlcnMudGhpcyBpbnN0ZWFkYCk7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkxvY2FsVmFyUmVmZXJlbmNlKHtcbiAgICAgIGxvYyxcbiAgICAgIG5hbWUsXG4gICAgICBpc1RlbXBsYXRlTG9jYWwsXG4gICAgICBzeW1ib2wsXG4gICAgfSk7XG4gIH1cblxuICBzZXhwKHBhcnRzOiBDYWxsUGFydHMsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkNhbGxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkNhbGxFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIGNhbGxlZTogcGFydHMuY2FsbGVlLFxuICAgICAgYXJnczogcGFydHMuYXJncyxcbiAgICB9KTtcbiAgfVxuXG4gIGRlcHJlY2F0ZWRDYWxsKFxuICAgIGFyZzogU291cmNlU2xpY2UsXG4gICAgY2FsbGVlOiBBU1R2Mi5GcmVlVmFyUmVmZXJlbmNlLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5EZXByZWNhdGVkQ2FsbEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgQVNUdjIuRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIGFyZyxcbiAgICAgIGNhbGxlZSxcbiAgICB9KTtcbiAgfVxuXG4gIGludGVycG9sYXRlKHBhcnRzOiBBU1R2Mi5FeHByZXNzaW9uTm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5JbnRlcnBvbGF0ZUV4cHJlc3Npb24ge1xuICAgIGFzc2VydFByZXNlbnQocGFydHMpO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnRlcnBvbGF0ZUV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgcGFydHMsXG4gICAgfSk7XG4gIH1cblxuICBsaXRlcmFsKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogc3RyaW5nIH07XG4gIGxpdGVyYWwodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBudW1iZXIgfTtcbiAgbGl0ZXJhbCh2YWx1ZTogYm9vbGVhbiwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBib29sZWFuIH07XG4gIGxpdGVyYWwodmFsdWU6IG51bGwsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogbnVsbCB9O1xuICBsaXRlcmFsKHZhbHVlOiB1bmRlZmluZWQsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogdW5kZWZpbmVkIH07XG4gIGxpdGVyYWwoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbjtcbiAgbGl0ZXJhbChcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gU1RBVEVNRU5UUyAvL1xuXG4gIGFwcGVuZChcbiAgICB7XG4gICAgICB0YWJsZSxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgdmFsdWUsXG4gICAgfTogeyB0YWJsZTogU3ltYm9sVGFibGU7IHRydXN0aW5nOiBib29sZWFuOyB2YWx1ZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUgfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuQXBwZW5kQ29udGVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5BcHBlbmRDb250ZW50KHtcbiAgICAgIHRhYmxlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIG1vZGlmaWVyKHsgY2FsbGVlLCBhcmdzIH06IENhbGxQYXJ0cywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuRWxlbWVudE1vZGlmaWVyIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkVsZW1lbnRNb2RpZmllcih7XG4gICAgICBsb2MsXG4gICAgICBjYWxsZWUsXG4gICAgICBhcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRCbG9ja3MoYmxvY2tzOiBBU1R2Mi5OYW1lZEJsb2NrW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLk5hbWVkQmxvY2tzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2tzKHtcbiAgICAgIGxvYyxcbiAgICAgIGJsb2NrcyxcbiAgICB9KTtcbiAgfVxuXG4gIGJsb2NrU3RhdGVtZW50KFxuICAgIHtcbiAgICAgIHN5bWJvbHMsXG4gICAgICBwcm9ncmFtLFxuICAgICAgaW52ZXJzZSA9IG51bGwsXG4gICAgICAuLi5jYWxsXG4gICAgfToge1xuICAgICAgc3ltYm9sczogU3ltYm9sVGFibGU7XG4gICAgICBwcm9ncmFtOiBBU1R2Mi5CbG9jaztcbiAgICAgIGludmVyc2U/OiBBU1R2Mi5CbG9jayB8IG51bGw7XG4gICAgfSAmIENhbGxQYXJ0cyxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSW52b2tlQmxvY2sge1xuICAgIGxldCBibG9ja3NMb2MgPSBwcm9ncmFtLmxvYztcbiAgICBsZXQgYmxvY2tzOiBQcmVzZW50QXJyYXk8QVNUdjIuTmFtZWRCbG9jaz4gPSBbXG4gICAgICB0aGlzLm5hbWVkQmxvY2soU291cmNlU2xpY2Uuc3ludGhldGljKCdkZWZhdWx0JyksIHByb2dyYW0sIHByb2dyYW0ubG9jKSxcbiAgICBdO1xuICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICBibG9ja3NMb2MgPSBibG9ja3NMb2MuZXh0ZW5kKGludmVyc2UubG9jKTtcbiAgICAgIGJsb2Nrcy5wdXNoKHRoaXMubmFtZWRCbG9jayhTb3VyY2VTbGljZS5zeW50aGV0aWMoJ2Vsc2UnKSwgaW52ZXJzZSwgaW52ZXJzZS5sb2MpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUJsb2NrKHtcbiAgICAgIGxvYyxcbiAgICAgIGJsb2NrczogdGhpcy5uYW1lZEJsb2NrcyhibG9ja3MsIGJsb2Nrc0xvYyksXG4gICAgICBjYWxsZWU6IGNhbGwuY2FsbGVlLFxuICAgICAgYXJnczogY2FsbC5hcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgZWxlbWVudChvcHRpb25zOiBCdWlsZEJhc2VFbGVtZW50KTogQnVpbGRFbGVtZW50IHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkRWxlbWVudChvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQmFzZUVsZW1lbnQge1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYyLkh0bWxPclNwbGF0QXR0cltdO1xuICBjb21wb25lbnRBcmdzOiBBU1R2Mi5Db21wb25lbnRBcmdbXTtcbiAgbW9kaWZpZXJzOiBBU1R2Mi5FbGVtZW50TW9kaWZpZXJbXTtcbiAgY29tbWVudHM6IEFTVHYyLkdsaW1tZXJDb21tZW50W107XG59XG5cbmV4cG9ydCBjbGFzcyBCdWlsZEVsZW1lbnQge1xuICByZWFkb25seSBidWlsZGVyOiBCdWlsZGVyO1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBiYXNlOiBCdWlsZEJhc2VFbGVtZW50KSB7XG4gICAgdGhpcy5idWlsZGVyID0gbmV3IEJ1aWxkZXIoKTtcbiAgfVxuXG4gIHNpbXBsZSh0YWc6IFNvdXJjZVNsaWNlLCBib2R5OiBBU1R2Mi5Db250ZW50Tm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5TaW1wbGVFbGVtZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlNpbXBsZUVsZW1lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICB0YWcsXG4gICAgICAgICAgYm9keSxcbiAgICAgICAgICBjb21wb25lbnRBcmdzOiBbXSxcbiAgICAgICAgICBsb2MsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuYW1lZChuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2soXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgIGNvbXBvbmVudEFyZ3M6IFtdLFxuICAgICAgICAgIGxvYyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNlbGZDbG9zaW5nQ29tcG9uZW50KGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkludm9rZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnZva2VDb21wb25lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBsb2MsXG4gICAgICAgICAgY2FsbGVlLFxuICAgICAgICAgIC8vIHBvaW50IHRoZSBlbXB0eSBuYW1lZCBibG9ja3MgYXQgdGhlIGAvYCBzZWxmLWNsb3NpbmcgdGFnXG4gICAgICAgICAgYmxvY2tzOiBuZXcgQVNUdjIuTmFtZWRCbG9ja3Moe1xuICAgICAgICAgICAgYmxvY2tzOiBbXSxcbiAgICAgICAgICAgIGxvYzogbG9jLnNsaWNlRW5kQ2hhcnMoeyBza2lwRW5kOiAxLCBjaGFyczogMSB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpdGhEZWZhdWx0QmxvY2soXG4gICAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSxcbiAgICBjaGlsZHJlbjogQVNUdjIuQ29udGVudE5vZGVbXSxcbiAgICBzeW1ib2xzOiBCbG9ja1N5bWJvbFRhYmxlLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5JbnZva2VDb21wb25lbnQge1xuICAgIGxldCBibG9jayA9IHRoaXMuYnVpbGRlci5ibG9jayhzeW1ib2xzLCBjaGlsZHJlbiwgbG9jKTtcbiAgICBsZXQgbmFtZWRCbG9jayA9IHRoaXMuYnVpbGRlci5uYW1lZEJsb2NrKFNvdXJjZVNsaWNlLnN5bnRoZXRpYygnZGVmYXVsdCcpLCBibG9jaywgbG9jKTsgLy8gQlVJTERFUi5zaW1wbGVOYW1lZEJsb2NrKCdkZWZhdWx0JywgY2hpbGRyZW4sIHN5bWJvbHMsIGxvYyk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUNvbXBvbmVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYyxcbiAgICAgICAgICBjYWxsZWUsXG4gICAgICAgICAgYmxvY2tzOiB0aGlzLmJ1aWxkZXIubmFtZWRCbG9ja3MoW25hbWVkQmxvY2tdLCBuYW1lZEJsb2NrLmxvYyksXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBjb21wb25lbnRXaXRoTmFtZWRCbG9ja3MoXG4gICAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSxcbiAgICBibG9ja3M6IFByZXNlbnRBcnJheTxBU1R2Mi5OYW1lZEJsb2NrPixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSW52b2tlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUNvbXBvbmVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYyxcbiAgICAgICAgICBjYWxsZWUsXG4gICAgICAgICAgYmxvY2tzOiB0aGlzLmJ1aWxkZXIubmFtZWRCbG9ja3MoYmxvY2tzLCBTcGFuTGlzdC5yYW5nZShibG9ja3MpKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -7,3 +7,3 @@ "use strict";

exports.isLiteral = isLiteral;
exports.InterpolateExpression = exports.CallExpression = exports.PathExpression = exports.LiteralExpression = void 0;
exports.InterpolateExpression = exports.DeprecatedCallExpression = exports.CallExpression = exports.PathExpression = exports.LiteralExpression = void 0;

@@ -79,2 +79,20 @@ var _slice = require("../../source/slice");

/**
* Corresponds to a possible deprecated helper call. Must be:
*
* 1. A free variable (not this.foo, not @foo, not local).
* 2. Argument-less.
* 3. In a component invocation's named argument position.
* 4. Not parenthesized (not @bar={{(helper)}}).
* 5. Not interpolated (not @bar="{{helper}}").
*
* ```hbs
* <Foo @bar={{helper}} />
* ```
*/
exports.CallExpression = CallExpression;
class DeprecatedCallExpression extends (0, _node.node)('DeprecatedCall').fields() {}
/**
* Corresponds to an interpolation in attribute value position.

@@ -88,3 +106,3 @@ *

exports.CallExpression = CallExpression;
exports.DeprecatedCallExpression = DeprecatedCallExpression;

@@ -94,2 +112,2 @@ class InterpolateExpression extends (0, _node.node)('Interpolate').fields() {}

exports.InterpolateExpression = InterpolateExpression;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2V4cHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFrQkE7Ozs7O0FBS00sTUFBQSxpQkFBQSxTQUFpQyxnQkFBQSxTQUFBLEVBQWpDLE1BQWlDLEVBQWpDLENBQWtGO0FBQ3RGLEVBQUEsT0FBTyxHQUFBO0FBQ0wsV0FBTyxJQUFBLGtCQUFBLENBQWdCO0FBQUUsTUFBQSxHQUFHLEVBQUUsS0FBUCxHQUFBO0FBQWlCLE1BQUEsS0FBSyxFQUFFLEtBQUs7QUFBN0IsS0FBaEIsQ0FBUDtBQUNEOztBQUhxRjtBQVF4Rjs7Ozs7OztBQUdNLFNBQUEsU0FBQSxDQUFBLElBQUEsRUFBQSxJQUFBLEVBRUk7QUFFUixNQUFJLElBQUksQ0FBSixJQUFBLEtBQUosU0FBQSxFQUE2QjtBQUMzQixRQUFJLElBQUksS0FBUixTQUFBLEVBQXdCO0FBQ3RCLGFBQUEsSUFBQTtBQURGLEtBQUEsTUFFTyxJQUFJLElBQUksS0FBUixNQUFBLEVBQXFCO0FBQzFCLGFBQU8sSUFBSSxDQUFKLEtBQUEsS0FBUCxJQUFBO0FBREssS0FBQSxNQUVBO0FBQ0wsYUFBTyxPQUFPLElBQUksQ0FBWCxLQUFBLEtBQVAsSUFBQTtBQUNEO0FBUEgsR0FBQSxNQVFPO0FBQ0wsV0FBQSxLQUFBO0FBQ0Q7QUFDRjtBQUVEOzs7Ozs7Ozs7Ozs7OztBQVlNLE1BQUEsY0FBQSxTQUE4QixnQkFBQSxNQUFBLEVBQTlCLE1BQThCLEVBQTlCLENBR0Y7QUFFSjs7Ozs7Ozs7Ozs7Ozs7QUFVTSxNQUFBLGNBQUEsU0FBOEIsZ0JBQUEsTUFBQSxFQUE5QixNQUE4QixFQUE5QixDQUErRDtBQUVyRTs7Ozs7Ozs7Ozs7QUFPTSxNQUFBLHFCQUFBLFNBQXFDLGdCQUFBLGFBQUEsRUFBckMsTUFBcUMsRUFBckMsQ0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uLy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgdHlwZSB7IENhbGxGaWVsZHMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgbm9kZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgdHlwZSB7IFZhcmlhYmxlUmVmZXJlbmNlIH0gZnJvbSAnLi9yZWZzJztcblxuLyoqXG4gKiBBIEhhbmRsZWJhcnMgbGl0ZXJhbC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2d1aWRlL2V4cHJlc3Npb25zLmh0bWwjbGl0ZXJhbC1zZWdtZW50c31cbiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFZhbHVlID0gc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGl0ZXJhbFR5cGVzIHtcbiAgc3RyaW5nOiBzdHJpbmc7XG4gIGJvb2xlYW46IGJvb2xlYW47XG4gIG51bWJlcjogbnVtYmVyO1xuICBudWxsOiBudWxsO1xuICB1bmRlZmluZWQ6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIEhhbmRsZWJhcnMgbGl0ZXJhbC5cbiAqXG4gKiBAc2VlIHtMaXRlcmFsVmFsdWV9XG4gKi9cbmV4cG9ydCBjbGFzcyBMaXRlcmFsRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ0xpdGVyYWwnKS5maWVsZHM8eyB2YWx1ZTogTGl0ZXJhbFZhbHVlIH0+KCkge1xuICB0b1NsaWNlKHRoaXM6IFN0cmluZ0xpdGVyYWwpOiBTb3VyY2VTbGljZSB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7IGxvYzogdGhpcy5sb2MsIGNoYXJzOiB0aGlzLnZhbHVlIH0pO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ0xpdGVyYWwgPSBMaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IHN0cmluZyB9O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBhbiBpbnB1dCB7QHNlZSBFeHByZXNzaW9uTm9kZX0gaXMgYSBsaXRlcmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMaXRlcmFsPEsgZXh0ZW5kcyBrZXlvZiBMaXRlcmFsVHlwZXMgPSBrZXlvZiBMaXRlcmFsVHlwZXM+KFxuICBub2RlOiBFeHByZXNzaW9uTm9kZSxcbiAga2luZD86IEtcbik6IG5vZGUgaXMgU3RyaW5nTGl0ZXJhbCB7XG4gIGlmIChub2RlLnR5cGUgPT09ICdMaXRlcmFsJykge1xuICAgIGlmIChraW5kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gJ251bGwnKSB7XG4gICAgICByZXR1cm4gbm9kZS52YWx1ZSA9PT0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGVvZiBub2RlLnZhbHVlID09PSBraW5kO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBhdGggaW4gZXhwcmVzc2lvbiBwb3NpdGlvbi5cbiAqXG4gKiBgYGBoYnNcbiAqIHRoaXNcbiAqIHRoaXMueFxuICogQHhcbiAqIEB4LnlcbiAqIHhcbiAqIHgueVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXRoRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ1BhdGgnKS5maWVsZHM8e1xuICByZWY6IFZhcmlhYmxlUmVmZXJlbmNlO1xuICB0YWlsOiByZWFkb25seSBTb3VyY2VTbGljZVtdO1xufT4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgcGFyZW50aGVzaXplZCBjYWxsIGV4cHJlc3Npb24uXG4gKlxuICogYGBgaGJzXG4gKiAoeClcbiAqICh4LnkpXG4gKiAoeCB5KVxuICogKHgueSB6KVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ0NhbGwnKS5maWVsZHM8Q2FsbEZpZWxkcz4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGFuIGludGVycG9sYXRpb24gaW4gYXR0cmlidXRlIHZhbHVlIHBvc2l0aW9uLlxuICpcbiAqIGBgYGhic1xuICogPGEgaHJlZj1cInt7dXJsfX0uaHRtbFwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVycG9sYXRlRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ0ludGVycG9sYXRlJykuZmllbGRzPHtcbiAgcGFydHM6IFByZXNlbnRBcnJheTxFeHByZXNzaW9uTm9kZT47XG59PigpIHt9XG5cbmV4cG9ydCB0eXBlIEV4cHJlc3Npb25Ob2RlID1cbiAgfCBMaXRlcmFsRXhwcmVzc2lvblxuICB8IFBhdGhFeHByZXNzaW9uXG4gIHwgQ2FsbEV4cHJlc3Npb25cbiAgfCBJbnRlcnBvbGF0ZUV4cHJlc3Npb247XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2V4cHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFrQkE7Ozs7O0FBS00sTUFBQSxpQkFBQSxTQUFpQyxnQkFBQSxTQUFBLEVBQWpDLE1BQWlDLEVBQWpDLENBQWtGO0FBQ3RGLEVBQUEsT0FBTyxHQUFBO0FBQ0wsV0FBTyxJQUFBLGtCQUFBLENBQWdCO0FBQUUsTUFBQSxHQUFHLEVBQUUsS0FBUCxHQUFBO0FBQWlCLE1BQUEsS0FBSyxFQUFFLEtBQUs7QUFBN0IsS0FBaEIsQ0FBUDtBQUNEOztBQUhxRjtBQVF4Rjs7Ozs7OztBQUdNLFNBQUEsU0FBQSxDQUFBLElBQUEsRUFBQSxJQUFBLEVBRUk7QUFFUixNQUFJLElBQUksQ0FBSixJQUFBLEtBQUosU0FBQSxFQUE2QjtBQUMzQixRQUFJLElBQUksS0FBUixTQUFBLEVBQXdCO0FBQ3RCLGFBQUEsSUFBQTtBQURGLEtBQUEsTUFFTyxJQUFJLElBQUksS0FBUixNQUFBLEVBQXFCO0FBQzFCLGFBQU8sSUFBSSxDQUFKLEtBQUEsS0FBUCxJQUFBO0FBREssS0FBQSxNQUVBO0FBQ0wsYUFBTyxPQUFPLElBQUksQ0FBWCxLQUFBLEtBQVAsSUFBQTtBQUNEO0FBUEgsR0FBQSxNQVFPO0FBQ0wsV0FBQSxLQUFBO0FBQ0Q7QUFDRjtBQUVEOzs7Ozs7Ozs7Ozs7OztBQVlNLE1BQUEsY0FBQSxTQUE4QixnQkFBQSxNQUFBLEVBQTlCLE1BQThCLEVBQTlCLENBR0Y7QUFFSjs7Ozs7Ozs7Ozs7Ozs7QUFVTSxNQUFBLGNBQUEsU0FBOEIsZ0JBQUEsTUFBQSxFQUE5QixNQUE4QixFQUE5QixDQUErRDtBQUVyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhTSxNQUFBLHdCQUFBLFNBQXdDLGdCQUFBLGdCQUFBLEVBQXhDLE1BQXdDLEVBQXhDLENBR0Y7QUFFSjs7Ozs7Ozs7Ozs7QUFPTSxNQUFBLHFCQUFBLFNBQXFDLGdCQUFBLGFBQUEsRUFBckMsTUFBcUMsRUFBckMsQ0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uLy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgdHlwZSB7IENhbGxGaWVsZHMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgbm9kZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgdHlwZSB7IEZyZWVWYXJSZWZlcmVuY2UsIFZhcmlhYmxlUmVmZXJlbmNlIH0gZnJvbSAnLi9yZWZzJztcblxuLyoqXG4gKiBBIEhhbmRsZWJhcnMgbGl0ZXJhbC5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2d1aWRlL2V4cHJlc3Npb25zLmh0bWwjbGl0ZXJhbC1zZWdtZW50c31cbiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbFZhbHVlID0gc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGl0ZXJhbFR5cGVzIHtcbiAgc3RyaW5nOiBzdHJpbmc7XG4gIGJvb2xlYW46IGJvb2xlYW47XG4gIG51bWJlcjogbnVtYmVyO1xuICBudWxsOiBudWxsO1xuICB1bmRlZmluZWQ6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIEhhbmRsZWJhcnMgbGl0ZXJhbC5cbiAqXG4gKiBAc2VlIHtMaXRlcmFsVmFsdWV9XG4gKi9cbmV4cG9ydCBjbGFzcyBMaXRlcmFsRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ0xpdGVyYWwnKS5maWVsZHM8eyB2YWx1ZTogTGl0ZXJhbFZhbHVlIH0+KCkge1xuICB0b1NsaWNlKHRoaXM6IFN0cmluZ0xpdGVyYWwpOiBTb3VyY2VTbGljZSB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7IGxvYzogdGhpcy5sb2MsIGNoYXJzOiB0aGlzLnZhbHVlIH0pO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFN0cmluZ0xpdGVyYWwgPSBMaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IHN0cmluZyB9O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBhbiBpbnB1dCB7QHNlZSBFeHByZXNzaW9uTm9kZX0gaXMgYSBsaXRlcmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMaXRlcmFsPEsgZXh0ZW5kcyBrZXlvZiBMaXRlcmFsVHlwZXMgPSBrZXlvZiBMaXRlcmFsVHlwZXM+KFxuICBub2RlOiBFeHByZXNzaW9uTm9kZSxcbiAga2luZD86IEtcbik6IG5vZGUgaXMgU3RyaW5nTGl0ZXJhbCB7XG4gIGlmIChub2RlLnR5cGUgPT09ICdMaXRlcmFsJykge1xuICAgIGlmIChraW5kID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoa2luZCA9PT0gJ251bGwnKSB7XG4gICAgICByZXR1cm4gbm9kZS52YWx1ZSA9PT0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGVvZiBub2RlLnZhbHVlID09PSBraW5kO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBhdGggaW4gZXhwcmVzc2lvbiBwb3NpdGlvbi5cbiAqXG4gKiBgYGBoYnNcbiAqIHRoaXNcbiAqIHRoaXMueFxuICogQHhcbiAqIEB4LnlcbiAqIHhcbiAqIHgueVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXRoRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ1BhdGgnKS5maWVsZHM8e1xuICByZWY6IFZhcmlhYmxlUmVmZXJlbmNlO1xuICB0YWlsOiByZWFkb25seSBTb3VyY2VTbGljZVtdO1xufT4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgcGFyZW50aGVzaXplZCBjYWxsIGV4cHJlc3Npb24uXG4gKlxuICogYGBgaGJzXG4gKiAoeClcbiAqICh4LnkpXG4gKiAoeCB5KVxuICogKHgueSB6KVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIG5vZGUoJ0NhbGwnKS5maWVsZHM8Q2FsbEZpZWxkcz4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgcG9zc2libGUgZGVwcmVjYXRlZCBoZWxwZXIgY2FsbC4gTXVzdCBiZTpcbiAqXG4gKiAxLiBBIGZyZWUgdmFyaWFibGUgKG5vdCB0aGlzLmZvbywgbm90IEBmb28sIG5vdCBsb2NhbCkuXG4gKiAyLiBBcmd1bWVudC1sZXNzLlxuICogMy4gSW4gYSBjb21wb25lbnQgaW52b2NhdGlvbidzIG5hbWVkIGFyZ3VtZW50IHBvc2l0aW9uLlxuICogNC4gTm90IHBhcmVudGhlc2l6ZWQgKG5vdCBAYmFyPXt7KGhlbHBlcil9fSkuXG4gKiA1LiBOb3QgaW50ZXJwb2xhdGVkIChub3QgQGJhcj1cInt7aGVscGVyfX1cIikuXG4gKlxuICogYGBgaGJzXG4gKiA8Rm9vIEBiYXI9e3toZWxwZXJ9fSAvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdEZXByZWNhdGVkQ2FsbCcpLmZpZWxkczx7XG4gIGFyZzogU291cmNlU2xpY2U7XG4gIGNhbGxlZTogRnJlZVZhclJlZmVyZW5jZTtcbn0+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhbiBpbnRlcnBvbGF0aW9uIGluIGF0dHJpYnV0ZSB2YWx1ZSBwb3NpdGlvbi5cbiAqXG4gKiBgYGBoYnNcbiAqIDxhIGhyZWY9XCJ7e3VybH19Lmh0bWxcIlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnRlcnBvbGF0ZUV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdJbnRlcnBvbGF0ZScpLmZpZWxkczx7XG4gIHBhcnRzOiBQcmVzZW50QXJyYXk8RXhwcmVzc2lvbk5vZGU+O1xufT4oKSB7fVxuXG5leHBvcnQgdHlwZSBFeHByZXNzaW9uTm9kZSA9XG4gIHwgTGl0ZXJhbEV4cHJlc3Npb25cbiAgfCBQYXRoRXhwcmVzc2lvblxuICB8IENhbGxFeHByZXNzaW9uXG4gIHwgRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uXG4gIHwgSW50ZXJwb2xhdGVFeHByZXNzaW9uO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -75,2 +75,10 @@ "use strict";

deprecatedCall(call) {
return {
type: 'DeprecatedCall',
loc: call.loc.serialize(),
callee: REF.free(call.callee)
};
}
interpolate(interpolate) {

@@ -259,2 +267,5 @@ return {

case 'DeprecatedCall':
return EXPR.deprecatedCall(expr);
case 'Interpolate':

@@ -318,2 +329,2 @@ return EXPR.interpolate(expr);

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9zZXJpYWxpemUvc2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFpQ00sTUFBQSxhQUFBLENBQW9CO0FBQ3hCLEVBQUEsR0FBRyxDQUFBLEdBQUEsRUFBd0I7QUFDekIsV0FBTztBQUNMLE1BQUEsSUFBSSxFQURDLEtBQUE7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUgsR0FBQSxDQUZBLFNBRUEsRUFGQTtBQUdMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBSCxJQUFBLENBQUEsU0FBQTtBQUhELEtBQVA7QUFLRDs7QUFFRCxFQUFBLElBQUksQ0FBQSxHQUFBLEVBQTRCO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxNQUFBO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFILEdBQUEsQ0FGQSxTQUVBLEVBRkE7QUFHTCxNQUFBLFVBQVUsRUFBRSxHQUFHLENBQUgsVUFBQSxDQUhQLFNBR08sRUFIUDtBQUlMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUpMLEtBQVA7QUFNRDs7QUFFRCxFQUFBLEtBQUssQ0FBQSxHQUFBLEVBQTZCO0FBQ2hDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFILEdBQUEsQ0FGQSxTQUVBLEVBRkE7QUFHTCxNQUFBLElBQUksRUFBRSxHQUFHLENBQUM7QUFITCxLQUFQO0FBS0Q7O0FBRUQsRUFBQSxJQUFJLENBQUEsR0FBQSxFQUF5QjtBQUMzQixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsTUFBQTtBQUVMLE1BQUEsR0FBRyxFQUFFLEdBQUcsQ0FBSCxHQUFBLENBQUEsU0FBQTtBQUZBLEtBQVA7QUFJRDs7QUEvQnVCOzs7QUFrQzFCLE1BQU0sR0FBRyxHQUFHLElBQVosYUFBWSxFQUFaOztBQUVNLE1BQUEs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QUE7QUFDRSxXQUFBLGVBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxNQUFBLENBQVAsSUFBTyxDQUFQOztBQUNGLFdBQUEsZ0JBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxjQUFBLENBQVAsSUFBTyxDQUFQOztBQUNGLFdBQUEsYUFBQTtBQUNFLGVBQU8sT0FBTyxDQUFQLFdBQUEsQ0FBUCxJQUFPLENBQVA7O0FBQ0YsV0FBQSxVQUFBO0FBQ0UsZUFBTyxPQUFPLENBQVAsUUFBQSxDQUFQLElBQU8sQ0FBUDs7QUFDRixXQUFBLGFBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxXQUFBLENBQVAsSUFBTyxDQUFQOztBQUNGLFdBQUEsaUJBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxlQUFBLENBQVAsSUFBTyxDQUFQOztBQUNGLFdBQUEsZUFBQTtBQUNFLGVBQU8sT0FBTyxDQUFQLGFBQUEsQ0FBUCxJQUFPLENBQVA7QUFkSjtBQWdCRDs7QUFwRFcsQ0FBZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uLy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgKiBhcyBBU1R2MiBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHR5cGUge1xuICBTZXJpYWxpemVkQXBwZW5kQ29udGVudCxcbiAgU2VyaWFsaXplZEFyZ1JlZmVyZW5jZSxcbiAgU2VyaWFsaXplZEFyZ3MsXG4gIFNlcmlhbGl6ZWRBdHRyT3JBcmcsXG4gIFNlcmlhbGl6ZWRCbG9jayxcbiAgU2VyaWFsaXplZENhbGxFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkQ29udGVudE5vZGUsXG4gIFNlcmlhbGl6ZWRFbGVtZW50TW9kaWZpZXIsXG4gIFNlcmlhbGl6ZWRFeHByZXNzaW9uTm9kZSxcbiAgU2VyaWFsaXplZEZyZWVWYXJSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRHbGltbWVyQ29tbWVudCxcbiAgU2VyaWFsaXplZEh0bWxDb21tZW50LFxuICBTZXJpYWxpemVkSHRtbE9yU3BsYXRBdHRyLFxuICBTZXJpYWxpemVkSHRtbFRleHQsXG4gIFNlcmlhbGl6ZWRJbnRlcnBvbGF0ZUV4cHJlc3Npb24sXG4gIFNlcmlhbGl6ZWRJbnZva2VCbG9jayxcbiAgU2VyaWFsaXplZEludm9rZUNvbXBvbmVudCxcbiAgU2VyaWFsaXplZExpdGVyYWxFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkTG9jYWxWYXJSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWROYW1lZCxcbiAgU2VyaWFsaXplZE5hbWVkQXJndW1lbnQsXG4gIFNlcmlhbGl6ZWROYW1lZEJsb2NrLFxuICBTZXJpYWxpemVkTmFtZWRCbG9ja3MsXG4gIFNlcmlhbGl6ZWRQYXRoRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZFBvc2l0aW9uYWwsXG4gIFNlcmlhbGl6ZWRTaW1wbGVFbGVtZW50LFxuICBTZXJpYWxpemVkVGhpc1JlZmVyZW5jZSxcbiAgU2VyaWFsaXplZFZhcmlhYmxlUmVmZXJlbmNlLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFJlZlNlcmlhbGl6ZXIge1xuICBhcmcocmVmOiBBU1R2Mi5BcmdSZWZlcmVuY2UpOiBTZXJpYWxpemVkQXJnUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0FyZycsXG4gICAgICBsb2M6IHJlZi5sb2Muc2VyaWFsaXplKCksXG4gICAgICBuYW1lOiByZWYubmFtZS5zZXJpYWxpemUoKSxcbiAgICB9O1xuICB9XG5cbiAgZnJlZShyZWY6IEFTVHYyLkZyZWVWYXJSZWZlcmVuY2UpOiBTZXJpYWxpemVkRnJlZVZhclJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdGcmVlJyxcbiAgICAgIGxvYzogcmVmLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHJlc29sdXRpb246IHJlZi5yZXNvbHV0aW9uLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogcmVmLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIGxvY2FsKHJlZjogQVNUdjIuTG9jYWxWYXJSZWZlcmVuY2UpOiBTZXJpYWxpemVkTG9jYWxWYXJSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnTG9jYWwnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogcmVmLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHNlbGYocmVmOiBBU1R2Mi5UaGlzUmVmZXJlbmNlKTogU2VyaWFsaXplZFRoaXNSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpcycsXG4gICAgICBsb2M6IHJlZi5sb2Muc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBSRUYgPSBuZXcgUmVmU2VyaWFsaXplcigpO1xuXG5leHBvcnQgY2xhc3MgRXhwclNlcmlhbGl6ZXIge1xuICBsaXRlcmFsKGxpdGVyYWw6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uKTogU2VyaWFsaXplZExpdGVyYWxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0xpdGVyYWwnLFxuICAgICAgbG9jOiBsaXRlcmFsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHZhbHVlOiBsaXRlcmFsLnZhbHVlLFxuICAgIH07XG4gIH1cblxuICBwYXRoKHBhdGg6IEFTVHYyLlBhdGhFeHByZXNzaW9uKTogU2VyaWFsaXplZFBhdGhFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1BhdGgnLFxuICAgICAgbG9jOiBwYXRoLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHJlZjogdmlzaXQucmVmKHBhdGgucmVmKSxcbiAgICAgIHRhaWw6IHBhdGgudGFpbC5tYXAoKHQpID0+IHQuc2VyaWFsaXplKCkpLFxuICAgIH07XG4gIH1cblxuICBjYWxsKGNhbGw6IEFTVHYyLkNhbGxFeHByZXNzaW9uKTogU2VyaWFsaXplZENhbGxFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NhbGwnLFxuICAgICAgbG9jOiBjYWxsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNhbGxlZTogdmlzaXQuZXhwcihjYWxsLmNhbGxlZSksXG4gICAgICBhcmdzOiBBUkdTLmFyZ3MoY2FsbC5hcmdzKSxcbiAgICB9O1xuICB9XG5cbiAgaW50ZXJwb2xhdGUoaW50ZXJwb2xhdGU6IEFTVHYyLkludGVycG9sYXRlRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRJbnRlcnBvbGF0ZUV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSW50ZXJwb2xhdGUnLFxuICAgICAgbG9jOiBpbnRlcnBvbGF0ZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBwYXJ0czogaW50ZXJwb2xhdGUucGFydHMubWFwKChwKSA9PiB2aXNpdC5leHByKHApKSBhcyBQcmVzZW50QXJyYXk8U2VyaWFsaXplZEV4cHJlc3Npb25Ob2RlPixcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IEVYUFIgPSBuZXcgRXhwclNlcmlhbGl6ZXIoKTtcblxuY2xhc3MgQXJnc1NlcmlhbGl6ZXIge1xuICBhcmdzKGFyZ3M6IEFTVHYyLkFyZ3MpOiBTZXJpYWxpemVkQXJncyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogYXJncy5sb2Muc2VyaWFsaXplKCksXG4gICAgICBwb3NpdGlvbmFsOiB0aGlzLnBvc2l0aW9uYWwoYXJncy5wb3NpdGlvbmFsKSxcbiAgICAgIG5hbWVkOiB0aGlzLm5hbWVkKGFyZ3MubmFtZWQpLFxuICAgIH07XG4gIH1cblxuICBwb3NpdGlvbmFsKHBvc2l0aW9uYWw6IEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMpOiBTZXJpYWxpemVkUG9zaXRpb25hbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogcG9zaXRpb25hbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICBleHByczogcG9zaXRpb25hbC5leHBycy5tYXAoKHApID0+IHZpc2l0LmV4cHIocCkpLFxuICAgIH07XG4gIH1cblxuICBuYW1lZChuYW1lZDogQVNUdjIuTmFtZWRBcmd1bWVudHMpOiBTZXJpYWxpemVkTmFtZWQge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IG5hbWVkLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGVudHJpZXM6IG5hbWVkLmVudHJpZXMubWFwKChlKSA9PiB0aGlzLmVudHJ5KGUpKSxcbiAgICB9O1xuICB9XG5cbiAgZW50cnkoZW50cnk6IEFTVHYyLk5hbWVkQXJndW1lbnQpOiBTZXJpYWxpemVkTmFtZWRBcmd1bWVudCB7XG4gICAgcmV0dXJuIFtlbnRyeS5uYW1lLnNlcmlhbGl6ZSgpLCB2aXNpdC5leHByKGVudHJ5LnZhbHVlKV07XG4gIH1cbn1cblxuY29uc3QgQVJHUyA9IG5ldyBBcmdzU2VyaWFsaXplcigpO1xuXG5leHBvcnQgY2xhc3MgQ29udGVudFNlcmlhbGl6ZXIge1xuICBhcHBlbmQobm9kZTogQVNUdjIuQXBwZW5kQ29udGVudCk6IFNlcmlhbGl6ZWRBcHBlbmRDb250ZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0FwcGVuZCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdmFsdWU6IHZpc2l0LmV4cHIobm9kZS52YWx1ZSksXG4gICAgICB0cnVzdGluZzogbm9kZS50cnVzdGluZyxcbiAgICB9O1xuICB9XG5cbiAgZ2xpbW1lckNvbW1lbnQobm9kZTogQVNUdjIuR2xpbW1lckNvbW1lbnQpOiBTZXJpYWxpemVkR2xpbW1lckNvbW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnR2xpbW1lckNvbW1lbnQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHRleHQ6IG5vZGUudGV4dC5zZXJpYWxpemUoKSxcbiAgICB9O1xuICB9XG5cbiAgaHRtbENvbW1lbnQobm9kZTogQVNUdjIuSHRtbENvbW1lbnQpOiBTZXJpYWxpemVkSHRtbENvbW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSHRtbENvbW1lbnQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHRleHQ6IG5vZGUudGV4dC5zZXJpYWxpemUoKSxcbiAgICB9O1xuICB9XG5cbiAgaHRtbFRleHQobm9kZTogQVNUdjIuSHRtbFRleHQpOiBTZXJpYWxpemVkSHRtbFRleHQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSHRtbFRleHQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNoYXJzOiBub2RlLmNoYXJzLFxuICAgIH07XG4gIH1cblxuICBpbnZva2VCbG9jayhub2RlOiBBU1R2Mi5JbnZva2VCbG9jayk6IFNlcmlhbGl6ZWRJbnZva2VCbG9jayB7XG4gICAgbGV0IGFyZ3MgPSBBUkdTLmFyZ3Mobm9kZS5hcmdzKTtcbiAgICBsZXQgY2FsbGVlID0gdmlzaXQuZXhwcihub2RlLmNhbGxlZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0ludm9rZUJsb2NrJyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBhcmdzLFxuICAgICAgY2FsbGVlLFxuICAgICAgYmxvY2tzOiBJTlRFUk5BTC5uYW1lZEJsb2Nrcyhub2RlLmJsb2NrcyksXG4gICAgfTtcbiAgfVxuXG4gIGludm9rZUNvbXBvbmVudChub2RlOiBBU1R2Mi5JbnZva2VDb21wb25lbnQpOiBTZXJpYWxpemVkSW52b2tlQ29tcG9uZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0ludm9rZUNvbXBvbmVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgY2FsbGVlOiB2aXNpdC5leHByKG5vZGUuY2FsbGVlKSxcbiAgICAgIGJsb2NrczogSU5URVJOQUwubmFtZWRCbG9ja3Mobm9kZS5ibG9ja3MpLFxuICAgICAgYXR0cnM6IG5vZGUuYXR0cnMubWFwKChhKSA9PiB2aXNpdC5hdHRyKGEpKSxcbiAgICAgIGNvbXBvbmVudEFyZ3M6IG5vZGUuY29tcG9uZW50QXJncy5tYXAoKGEpID0+IEFUVFJTLmFyZyhhKSksXG4gICAgICBtb2RpZmllcnM6IG5vZGUubW9kaWZpZXJzLm1hcCgobSkgPT4gQVRUUlMubW9kaWZpZXIobSkpLFxuICAgIH07XG4gIH1cblxuICBzaW1wbGVFbGVtZW50KG5vZGU6IEFTVHYyLlNpbXBsZUVsZW1lbnQpOiBTZXJpYWxpemVkU2ltcGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdTaW1wbGVFbGVtZW50JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICB0YWc6IG5vZGUudGFnLnNlcmlhbGl6ZSgpLFxuICAgICAgYm9keTogbm9kZS5ib2R5Lm1hcCgoYikgPT4gdmlzaXQuY29udGVudChiKSksXG4gICAgICBhdHRyczogbm9kZS5hdHRycy5tYXAoKGEpID0+IHZpc2l0LmF0dHIoYSkpLFxuICAgICAgY29tcG9uZW50QXJnczogbm9kZS5jb21wb25lbnRBcmdzLm1hcCgoYSkgPT4gQVRUUlMuYXJnKGEpKSxcbiAgICAgIG1vZGlmaWVyczogbm9kZS5tb2RpZmllcnMubWFwKChtKSA9PiBBVFRSUy5tb2RpZmllcihtKSksXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBDT05URU5UID0gbmV3IENvbnRlbnRTZXJpYWxpemVyKCk7XG5cbmNsYXNzIEF0dHJCbG9ja1NlcmlhbGl6ZXIge1xuICBtb2RpZmllcihub2RlOiBBU1R2Mi5FbGVtZW50TW9kaWZpZXIpOiBTZXJpYWxpemVkRWxlbWVudE1vZGlmaWVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNhbGxlZTogdmlzaXQuZXhwcihub2RlLmNhbGxlZSksXG4gICAgICBhcmdzOiBBUkdTLmFyZ3Mobm9kZS5hcmdzKSxcbiAgICB9O1xuICB9XG5cbiAgYXJnKG5vZGU6IEFTVHYyLkNvbXBvbmVudEFyZyk6IFNlcmlhbGl6ZWRBdHRyT3JBcmcge1xuICAgIHJldHVybiB0aGlzLmFueUF0dHIobm9kZSk7XG4gIH1cblxuICBhbnlBdHRyKG5vZGU6IEFTVHYyLkNvbXBvbmVudEFyZyB8IEFTVHYyLkh0bWxBdHRyKTogU2VyaWFsaXplZEF0dHJPckFyZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBuYW1lOiBub2RlLm5hbWUuc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogdmlzaXQuZXhwcihub2RlLnZhbHVlKSxcbiAgICAgIHRydXN0aW5nOiBub2RlLnRydXN0aW5nLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgQVRUUlMgPSBuZXcgQXR0ckJsb2NrU2VyaWFsaXplcigpO1xuXG5jbGFzcyBJbnRlcm5hbFNlcmlhbGl6ZXIge1xuICBibG9jayhub2RlOiBBU1R2Mi5CbG9jayk6IFNlcmlhbGl6ZWRCbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBib2R5OiBub2RlLmJvZHkubWFwKChiKSA9PiB2aXNpdC5jb250ZW50KGIpKSxcbiAgICAgIHRhYmxlOiBub2RlLnNjb3BlLmxvY2FscyxcbiAgICB9O1xuICB9XG5cbiAgbmFtZWRCbG9jayhub2RlOiBBU1R2Mi5OYW1lZEJsb2NrKTogU2VyaWFsaXplZE5hbWVkQmxvY2sge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBub2RlLm5hbWUuc2VyaWFsaXplKCksXG4gICAgICBibG9jazogSU5URVJOQUwuYmxvY2sobm9kZS5ibG9jayksXG4gICAgfTtcbiAgfVxuXG4gIG5hbWVkQmxvY2tzKG5vZGU6IEFTVHYyLk5hbWVkQmxvY2tzKTogU2VyaWFsaXplZE5hbWVkQmxvY2tzIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2tzOiBub2RlLmJsb2Nrcy5tYXAoKGIpID0+IElOVEVSTkFMLm5hbWVkQmxvY2soYikpLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IElOVEVSTkFMID0gbmV3IEludGVybmFsU2VyaWFsaXplcigpO1xuXG5jb25zdCB2aXNpdCA9IHtcbiAgZXhwcihleHByOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSk6IFNlcmlhbGl6ZWRFeHByZXNzaW9uTm9kZSB7XG4gICAgc3dpdGNoIChleHByLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0xpdGVyYWwnOlxuICAgICAgICByZXR1cm4gRVhQUi5saXRlcmFsKGV4cHIpO1xuICAgICAgY2FzZSAnUGF0aCc6XG4gICAgICAgIHJldHVybiBFWFBSLnBhdGgoZXhwcik7XG4gICAgICBjYXNlICdDYWxsJzpcbiAgICAgICAgcmV0dXJuIEVYUFIuY2FsbChleHByKTtcbiAgICAgIGNhc2UgJ0ludGVycG9sYXRlJzpcbiAgICAgICAgcmV0dXJuIEVYUFIuaW50ZXJwb2xhdGUoZXhwcik7XG4gICAgfVxuICB9LFxuXG4gIGF0dHIobm9kZTogQVNUdjIuSHRtbE9yU3BsYXRBdHRyKTogU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0ciB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ1NwbGF0QXR0cicpIHtcbiAgICAgIHJldHVybiBuZXcgU291cmNlU2xpY2UoeyBsb2M6IG5vZGUubG9jLCBjaGFyczogJy4uLmF0dHJpYnV0ZXMnIH0pLnNlcmlhbGl6ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQVRUUlMuYW55QXR0cihub2RlKTtcbiAgICB9XG4gIH0sXG5cbiAgcmVmKHJlZjogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2UpOiBTZXJpYWxpemVkVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIHN3aXRjaCAocmVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FyZyc6XG4gICAgICAgIHJldHVybiBSRUYuYXJnKHJlZik7XG4gICAgICBjYXNlICdGcmVlJzpcbiAgICAgICAgcmV0dXJuIFJFRi5mcmVlKHJlZik7XG4gICAgICBjYXNlICdMb2NhbCc6XG4gICAgICAgIHJldHVybiBSRUYubG9jYWwocmVmKTtcbiAgICAgIGNhc2UgJ1RoaXMnOlxuICAgICAgICByZXR1cm4gUkVGLnNlbGYocmVmKTtcbiAgICB9XG4gIH0sXG5cbiAgY29udGVudChub2RlOiBBU1R2Mi5Db250ZW50Tm9kZSk6IFNlcmlhbGl6ZWRDb250ZW50Tm9kZSB7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FwcGVuZENvbnRlbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5hcHBlbmQobm9kZSk7XG4gICAgICBjYXNlICdHbGltbWVyQ29tbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmdsaW1tZXJDb21tZW50KG5vZGUpO1xuICAgICAgY2FzZSAnSHRtbENvbW1lbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5odG1sQ29tbWVudChub2RlKTtcbiAgICAgIGNhc2UgJ0h0bWxUZXh0JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaHRtbFRleHQobm9kZSk7XG4gICAgICBjYXNlICdJbnZva2VCbG9jayc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmludm9rZUJsb2NrKG5vZGUpO1xuICAgICAgY2FzZSAnSW52b2tlQ29tcG9uZW50JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaW52b2tlQ29tcG9uZW50KG5vZGUpO1xuICAgICAgY2FzZSAnU2ltcGxlRWxlbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULnNpbXBsZUVsZW1lbnQobm9kZSk7XG4gICAgfVxuICB9LFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9zZXJpYWxpemUvc2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFrQ00sTUFBQSxhQUFBLENBQW9CO0FBQ3hCLEVBQUEsR0FBRyxDQUFBLEdBQUEsRUFBd0I7QUFDekIsV0FBTztBQUNMLE1BQUEsSUFBSSxFQURDLEtBQUE7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUgsR0FBQSxDQUZBLFNBRUEsRUFGQTtBQUdMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBSCxJQUFBLENBQUEsU0FBQTtBQUhELEtBQVA7QUFLRDs7QUFFRCxFQUFBLElBQUksQ0FBQSxHQUFBLEVBQTRCO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxNQUFBO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFILEdBQUEsQ0FGQSxTQUVBLEVBRkE7QUFHTCxNQUFBLFVBQVUsRUFBRSxHQUFHLENBQUgsVUFBQSxDQUhQLFNBR08sRUFIUDtBQUlMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUpMLEtBQVA7QUFNRDs7QUFFRCxFQUFBLEtBQUssQ0FBQSxHQUFBLEVBQTZCO0FBQ2hDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFILEdBQUEsQ0FGQSxTQUVBLEVBRkE7QUFHTCxNQUFBLElBQUksRUFBRSxHQUFHLENBQUM7QUFITCxLQUFQO0FBS0Q7O0FBRUQsRUFBQSxJQUFJLENBQUEsR0FBQSxFQUF5QjtBQUMzQixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsTUFBQTtBQUVMLE1BQUEsR0FBRyxFQUFFLEdBQUcsQ0FBSCxHQUFBLENBQUEsU0FBQTtBQUZBLEtBQVA7QUFJRDs7QUEvQnVCOzs7QUFrQzFCLE1BQU0sR0FBRyxHQUFHLElBQVosYUFBWSxFQUFaOztBQUVNLE1BQUEs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TyxDQUFQOztBQUNGLFdBQUEsTUFBQTtBQUNFLGVBQU8sR0FBRyxDQUFILElBQUEsQ0FBUCxHQUFPLENBQVA7O0FBQ0YsV0FBQSxPQUFBO0FBQ0UsZUFBTyxHQUFHLENBQUgsS0FBQSxDQUFQLEdBQU8sQ0FBUDs7QUFDRixXQUFBLE1BQUE7QUFDRSxlQUFPLEdBQUcsQ0FBSCxJQUFBLENBQVAsR0FBTyxDQUFQO0FBUko7QUF6QlUsR0FBQTs7QUFxQ1osRUFBQSxPQUFPLENBQUEsSUFBQSxFQUF3QjtBQUM3QixZQUFRLElBQUksQ0FBWixJQUFBO0FBQ0UsV0FBQSxlQUFBO0FBQ0UsZUFBTyxPQUFPLENBQVAsTUFBQSxDQUFQLElBQU8sQ0FBUDs7QUFDRixXQUFBLGdCQUFBO0FBQ0UsZUFBTyxPQUFPLENBQVAsY0FBQSxDQUFQLElBQU8sQ0FBUDs7QUFDRixXQUFBLGFBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxXQUFBLENBQVAsSUFBTyxDQUFQOztBQUNGLFdBQUEsVUFBQTtBQUNFLGVBQU8sT0FBTyxDQUFQLFFBQUEsQ0FBUCxJQUFPLENBQVA7O0FBQ0YsV0FBQSxhQUFBO0FBQ0UsZUFBTyxPQUFPLENBQVAsV0FBQSxDQUFQLElBQU8sQ0FBUDs7QUFDRixXQUFBLGlCQUFBO0FBQ0UsZUFBTyxPQUFPLENBQVAsZUFBQSxDQUFQLElBQU8sQ0FBUDs7QUFDRixXQUFBLGVBQUE7QUFDRSxlQUFPLE9BQU8sQ0FBUCxhQUFBLENBQVAsSUFBTyxDQUFQO0FBZEo7QUFnQkQ7O0FBdERXLENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgU291cmNlU2xpY2UgfSBmcm9tICcuLi8uLi9zb3VyY2Uvc2xpY2UnO1xuaW1wb3J0ICogYXMgQVNUdjIgZnJvbSAnLi4vYXBpJztcbmltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplZEFwcGVuZENvbnRlbnQsXG4gIFNlcmlhbGl6ZWRBcmdSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRBcmdzLFxuICBTZXJpYWxpemVkQXR0ck9yQXJnLFxuICBTZXJpYWxpemVkQmxvY2ssXG4gIFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZENvbnRlbnROb2RlLFxuICBTZXJpYWxpemVkRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkRWxlbWVudE1vZGlmaWVyLFxuICBTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGUsXG4gIFNlcmlhbGl6ZWRGcmVlVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkR2xpbW1lckNvbW1lbnQsXG4gIFNlcmlhbGl6ZWRIdG1sQ29tbWVudCxcbiAgU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0cixcbiAgU2VyaWFsaXplZEh0bWxUZXh0LFxuICBTZXJpYWxpemVkSW50ZXJwb2xhdGVFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkSW52b2tlQmxvY2ssXG4gIFNlcmlhbGl6ZWRJbnZva2VDb21wb25lbnQsXG4gIFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkTmFtZWQsXG4gIFNlcmlhbGl6ZWROYW1lZEFyZ3VtZW50LFxuICBTZXJpYWxpemVkTmFtZWRCbG9jayxcbiAgU2VyaWFsaXplZE5hbWVkQmxvY2tzLFxuICBTZXJpYWxpemVkUGF0aEV4cHJlc3Npb24sXG4gIFNlcmlhbGl6ZWRQb3NpdGlvbmFsLFxuICBTZXJpYWxpemVkU2ltcGxlRWxlbWVudCxcbiAgU2VyaWFsaXplZFRoaXNSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRWYXJpYWJsZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBSZWZTZXJpYWxpemVyIHtcbiAgYXJnKHJlZjogQVNUdjIuQXJnUmVmZXJlbmNlKTogU2VyaWFsaXplZEFyZ1JlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBcmcnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogcmVmLm5hbWUuc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxuXG4gIGZyZWUocmVmOiBBU1R2Mi5GcmVlVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZEZyZWVWYXJSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRnJlZScsXG4gICAgICBsb2M6IHJlZi5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZXNvbHV0aW9uOiByZWYucmVzb2x1dGlvbi5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBsb2NhbChyZWY6IEFTVHYyLkxvY2FsVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0xvY2FsJyxcbiAgICAgIGxvYzogcmVmLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBzZWxmKHJlZjogQVNUdjIuVGhpc1JlZmVyZW5jZSk6IFNlcmlhbGl6ZWRUaGlzUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RoaXMnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgUkVGID0gbmV3IFJlZlNlcmlhbGl6ZXIoKTtcblxuZXhwb3J0IGNsYXNzIEV4cHJTZXJpYWxpemVyIHtcbiAgbGl0ZXJhbChsaXRlcmFsOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdMaXRlcmFsJyxcbiAgICAgIGxvYzogbGl0ZXJhbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogbGl0ZXJhbC52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcGF0aChwYXRoOiBBU1R2Mi5QYXRoRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRQYXRoRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdQYXRoJyxcbiAgICAgIGxvYzogcGF0aC5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZWY6IHZpc2l0LnJlZihwYXRoLnJlZiksXG4gICAgICB0YWlsOiBwYXRoLnRhaWwubWFwKCh0KSA9PiB0LnNlcmlhbGl6ZSgpKSxcbiAgICB9O1xuICB9XG5cbiAgY2FsbChjYWxsOiBBU1R2Mi5DYWxsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDYWxsJyxcbiAgICAgIGxvYzogY2FsbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIoY2FsbC5jYWxsZWUpLFxuICAgICAgYXJnczogQVJHUy5hcmdzKGNhbGwuYXJncyksXG4gICAgfTtcbiAgfVxuXG4gIGRlcHJlY2F0ZWRDYWxsKGNhbGw6IEFTVHYyLkRlcHJlY2F0ZWRDYWxsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWREZXByZWNhdGVkQ2FsbEV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRGVwcmVjYXRlZENhbGwnLFxuICAgICAgbG9jOiBjYWxsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNhbGxlZTogUkVGLmZyZWUoY2FsbC5jYWxsZWUpLFxuICAgIH07XG4gIH1cblxuICBpbnRlcnBvbGF0ZShpbnRlcnBvbGF0ZTogQVNUdjIuSW50ZXJwb2xhdGVFeHByZXNzaW9uKTogU2VyaWFsaXplZEludGVycG9sYXRlRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdJbnRlcnBvbGF0ZScsXG4gICAgICBsb2M6IGludGVycG9sYXRlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHBhcnRzOiBpbnRlcnBvbGF0ZS5wYXJ0cy5tYXAoKHApID0+IHZpc2l0LmV4cHIocCkpIGFzIFByZXNlbnRBcnJheTxTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGU+LFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgRVhQUiA9IG5ldyBFeHByU2VyaWFsaXplcigpO1xuXG5jbGFzcyBBcmdzU2VyaWFsaXplciB7XG4gIGFyZ3MoYXJnczogQVNUdjIuQXJncyk6IFNlcmlhbGl6ZWRBcmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBhcmdzLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHBvc2l0aW9uYWw6IHRoaXMucG9zaXRpb25hbChhcmdzLnBvc2l0aW9uYWwpLFxuICAgICAgbmFtZWQ6IHRoaXMubmFtZWQoYXJncy5uYW1lZCksXG4gICAgfTtcbiAgfVxuXG4gIHBvc2l0aW9uYWwocG9zaXRpb25hbDogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyk6IFNlcmlhbGl6ZWRQb3NpdGlvbmFsIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBwb3NpdGlvbmFsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGV4cHJzOiBwb3NpdGlvbmFsLmV4cHJzLm1hcCgocCkgPT4gdmlzaXQuZXhwcihwKSksXG4gICAgfTtcbiAgfVxuXG4gIG5hbWVkKG5hbWVkOiBBU1R2Mi5OYW1lZEFyZ3VtZW50cyk6IFNlcmlhbGl6ZWROYW1lZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogbmFtZWQubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgZW50cmllczogbmFtZWQuZW50cmllcy5tYXAoKGUpID0+IHRoaXMuZW50cnkoZSkpLFxuICAgIH07XG4gIH1cblxuICBlbnRyeShlbnRyeTogQVNUdjIuTmFtZWRBcmd1bWVudCk6IFNlcmlhbGl6ZWROYW1lZEFyZ3VtZW50IHtcbiAgICByZXR1cm4gW2VudHJ5Lm5hbWUuc2VyaWFsaXplKCksIHZpc2l0LmV4cHIoZW50cnkudmFsdWUpXTtcbiAgfVxufVxuXG5jb25zdCBBUkdTID0gbmV3IEFyZ3NTZXJpYWxpemVyKCk7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50U2VyaWFsaXplciB7XG4gIGFwcGVuZChub2RlOiBBU1R2Mi5BcHBlbmRDb250ZW50KTogU2VyaWFsaXplZEFwcGVuZENvbnRlbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXBwZW5kJyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogdmlzaXQuZXhwcihub2RlLnZhbHVlKSxcbiAgICAgIHRydXN0aW5nOiBub2RlLnRydXN0aW5nLFxuICAgIH07XG4gIH1cblxuICBnbGltbWVyQ29tbWVudChub2RlOiBBU1R2Mi5HbGltbWVyQ29tbWVudCk6IFNlcmlhbGl6ZWRHbGltbWVyQ29tbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdHbGltbWVyQ29tbWVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdGV4dDogbm9kZS50ZXh0LnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cblxuICBodG1sQ29tbWVudChub2RlOiBBU1R2Mi5IdG1sQ29tbWVudCk6IFNlcmlhbGl6ZWRIdG1sQ29tbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIdG1sQ29tbWVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdGV4dDogbm9kZS50ZXh0LnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cblxuICBodG1sVGV4dChub2RlOiBBU1R2Mi5IdG1sVGV4dCk6IFNlcmlhbGl6ZWRIdG1sVGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIdG1sVGV4dCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgY2hhcnM6IG5vZGUuY2hhcnMsXG4gICAgfTtcbiAgfVxuXG4gIGludm9rZUJsb2NrKG5vZGU6IEFTVHYyLkludm9rZUJsb2NrKTogU2VyaWFsaXplZEludm9rZUJsb2NrIHtcbiAgICBsZXQgYXJncyA9IEFSR1MuYXJncyhub2RlLmFyZ3MpO1xuICAgIGxldCBjYWxsZWUgPSB2aXNpdC5leHByKG5vZGUuY2FsbGVlKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSW52b2tlQmxvY2snLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGFyZ3MsXG4gICAgICBjYWxsZWUsXG4gICAgICBibG9ja3M6IElOVEVSTkFMLm5hbWVkQmxvY2tzKG5vZGUuYmxvY2tzKSxcbiAgICB9O1xuICB9XG5cbiAgaW52b2tlQ29tcG9uZW50KG5vZGU6IEFTVHYyLkludm9rZUNvbXBvbmVudCk6IFNlcmlhbGl6ZWRJbnZva2VDb21wb25lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSW52b2tlQ29tcG9uZW50JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIobm9kZS5jYWxsZWUpLFxuICAgICAgYmxvY2tzOiBJTlRFUk5BTC5uYW1lZEJsb2Nrcyhub2RlLmJsb2NrcyksXG4gICAgICBhdHRyczogbm9kZS5hdHRycy5tYXAoKGEpID0+IHZpc2l0LmF0dHIoYSkpLFxuICAgICAgY29tcG9uZW50QXJnczogbm9kZS5jb21wb25lbnRBcmdzLm1hcCgoYSkgPT4gQVRUUlMuYXJnKGEpKSxcbiAgICAgIG1vZGlmaWVyczogbm9kZS5tb2RpZmllcnMubWFwKChtKSA9PiBBVFRSUy5tb2RpZmllcihtKSksXG4gICAgfTtcbiAgfVxuXG4gIHNpbXBsZUVsZW1lbnQobm9kZTogQVNUdjIuU2ltcGxlRWxlbWVudCk6IFNlcmlhbGl6ZWRTaW1wbGVFbGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1NpbXBsZUVsZW1lbnQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHRhZzogbm9kZS50YWcuc2VyaWFsaXplKCksXG4gICAgICBib2R5OiBub2RlLmJvZHkubWFwKChiKSA9PiB2aXNpdC5jb250ZW50KGIpKSxcbiAgICAgIGF0dHJzOiBub2RlLmF0dHJzLm1hcCgoYSkgPT4gdmlzaXQuYXR0cihhKSksXG4gICAgICBjb21wb25lbnRBcmdzOiBub2RlLmNvbXBvbmVudEFyZ3MubWFwKChhKSA9PiBBVFRSUy5hcmcoYSkpLFxuICAgICAgbW9kaWZpZXJzOiBub2RlLm1vZGlmaWVycy5tYXAoKG0pID0+IEFUVFJTLm1vZGlmaWVyKG0pKSxcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IENPTlRFTlQgPSBuZXcgQ29udGVudFNlcmlhbGl6ZXIoKTtcblxuY2xhc3MgQXR0ckJsb2NrU2VyaWFsaXplciB7XG4gIG1vZGlmaWVyKG5vZGU6IEFTVHYyLkVsZW1lbnRNb2RpZmllcik6IFNlcmlhbGl6ZWRFbGVtZW50TW9kaWZpZXIge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgY2FsbGVlOiB2aXNpdC5leHByKG5vZGUuY2FsbGVlKSxcbiAgICAgIGFyZ3M6IEFSR1MuYXJncyhub2RlLmFyZ3MpLFxuICAgIH07XG4gIH1cblxuICBhcmcobm9kZTogQVNUdjIuQ29tcG9uZW50QXJnKTogU2VyaWFsaXplZEF0dHJPckFyZyB7XG4gICAgcmV0dXJuIHRoaXMuYW55QXR0cihub2RlKTtcbiAgfVxuXG4gIGFueUF0dHIobm9kZTogQVNUdjIuQ29tcG9uZW50QXJnIHwgQVNUdjIuSHRtbEF0dHIpOiBTZXJpYWxpemVkQXR0ck9yQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IG5vZGUubmFtZS5zZXJpYWxpemUoKSxcbiAgICAgIHZhbHVlOiB2aXNpdC5leHByKG5vZGUudmFsdWUpLFxuICAgICAgdHJ1c3Rpbmc6IG5vZGUudHJ1c3RpbmcsXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBBVFRSUyA9IG5ldyBBdHRyQmxvY2tTZXJpYWxpemVyKCk7XG5cbmNsYXNzIEludGVybmFsU2VyaWFsaXplciB7XG4gIGJsb2NrKG5vZGU6IEFTVHYyLkJsb2NrKTogU2VyaWFsaXplZEJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGJvZHk6IG5vZGUuYm9keS5tYXAoKGIpID0+IHZpc2l0LmNvbnRlbnQoYikpLFxuICAgICAgdGFibGU6IG5vZGUuc2NvcGUubG9jYWxzLFxuICAgIH07XG4gIH1cblxuICBuYW1lZEJsb2NrKG5vZGU6IEFTVHYyLk5hbWVkQmxvY2spOiBTZXJpYWxpemVkTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5vZGUubmFtZS5zZXJpYWxpemUoKSxcbiAgICAgIGJsb2NrOiBJTlRFUk5BTC5ibG9jayhub2RlLmJsb2NrKSxcbiAgICB9O1xuICB9XG5cbiAgbmFtZWRCbG9ja3Mobm9kZTogQVNUdjIuTmFtZWRCbG9ja3MpOiBTZXJpYWxpemVkTmFtZWRCbG9ja3Mge1xuICAgIHJldHVybiB7XG4gICAgICBibG9ja3M6IG5vZGUuYmxvY2tzLm1hcCgoYikgPT4gSU5URVJOQUwubmFtZWRCbG9jayhiKSksXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgSU5URVJOQUwgPSBuZXcgSW50ZXJuYWxTZXJpYWxpemVyKCk7XG5cbmNvbnN0IHZpc2l0ID0ge1xuICBleHByKGV4cHI6IEFTVHYyLkV4cHJlc3Npb25Ob2RlKTogU2VyaWFsaXplZEV4cHJlc3Npb25Ob2RlIHtcbiAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgY2FzZSAnTGl0ZXJhbCc6XG4gICAgICAgIHJldHVybiBFWFBSLmxpdGVyYWwoZXhwcik7XG4gICAgICBjYXNlICdQYXRoJzpcbiAgICAgICAgcmV0dXJuIEVYUFIucGF0aChleHByKTtcbiAgICAgIGNhc2UgJ0NhbGwnOlxuICAgICAgICByZXR1cm4gRVhQUi5jYWxsKGV4cHIpO1xuICAgICAgY2FzZSAnRGVwcmVjYXRlZENhbGwnOlxuICAgICAgICByZXR1cm4gRVhQUi5kZXByZWNhdGVkQ2FsbChleHByKTtcbiAgICAgIGNhc2UgJ0ludGVycG9sYXRlJzpcbiAgICAgICAgcmV0dXJuIEVYUFIuaW50ZXJwb2xhdGUoZXhwcik7XG4gICAgfVxuICB9LFxuXG4gIGF0dHIobm9kZTogQVNUdjIuSHRtbE9yU3BsYXRBdHRyKTogU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0ciB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ1NwbGF0QXR0cicpIHtcbiAgICAgIHJldHVybiBuZXcgU291cmNlU2xpY2UoeyBsb2M6IG5vZGUubG9jLCBjaGFyczogJy4uLmF0dHJpYnV0ZXMnIH0pLnNlcmlhbGl6ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQVRUUlMuYW55QXR0cihub2RlKTtcbiAgICB9XG4gIH0sXG5cbiAgcmVmKHJlZjogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2UpOiBTZXJpYWxpemVkVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIHN3aXRjaCAocmVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FyZyc6XG4gICAgICAgIHJldHVybiBSRUYuYXJnKHJlZik7XG4gICAgICBjYXNlICdGcmVlJzpcbiAgICAgICAgcmV0dXJuIFJFRi5mcmVlKHJlZik7XG4gICAgICBjYXNlICdMb2NhbCc6XG4gICAgICAgIHJldHVybiBSRUYubG9jYWwocmVmKTtcbiAgICAgIGNhc2UgJ1RoaXMnOlxuICAgICAgICByZXR1cm4gUkVGLnNlbGYocmVmKTtcbiAgICB9XG4gIH0sXG5cbiAgY29udGVudChub2RlOiBBU1R2Mi5Db250ZW50Tm9kZSk6IFNlcmlhbGl6ZWRDb250ZW50Tm9kZSB7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FwcGVuZENvbnRlbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5hcHBlbmQobm9kZSk7XG4gICAgICBjYXNlICdHbGltbWVyQ29tbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmdsaW1tZXJDb21tZW50KG5vZGUpO1xuICAgICAgY2FzZSAnSHRtbENvbW1lbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5odG1sQ29tbWVudChub2RlKTtcbiAgICAgIGNhc2UgJ0h0bWxUZXh0JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaHRtbFRleHQobm9kZSk7XG4gICAgICBjYXNlICdJbnZva2VCbG9jayc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmludm9rZUJsb2NrKG5vZGUpO1xuICAgICAgY2FzZSAnSW52b2tlQ29tcG9uZW50JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaW52b2tlQ29tcG9uZW50KG5vZGUpO1xuICAgICAgY2FzZSAnU2ltcGxlRWxlbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULnNpbXBsZUVsZW1lbnQobm9kZSk7XG4gICAgfVxuICB9LFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -188,2 +188,10 @@ var __rest = this && this.__rest || function (s, e) {

deprecatedCall(arg, callee, loc) {
return new ASTv2.DeprecatedCallExpression({
loc,
arg,
callee
});
}
interpolate(parts, loc) {

@@ -324,2 +332,2 @@ assertPresent(parts);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLFNBQVMsTUFBVCxFQUFpQixhQUFqQixFQUFnQyxNQUFoQyxRQUE4QyxlQUE5QztBQUVBLFNBQVMsV0FBVCxRQUE0QixpQkFBNUI7QUFFQSxTQUFTLFFBQVQsUUFBeUIscUJBQXpCO0FBRUEsT0FBTyxLQUFLLEtBQVosTUFBdUIsT0FBdkI7QUFPQSxPQUFNLE1BQU8sT0FBUCxDQUFjO0FBQ2xCO0FBRUEsRUFBQSxRQUFRLENBQ04sT0FETSxFQUVOLElBRk0sRUFHTixHQUhNLEVBR1M7QUFFZixXQUFPLElBQUksS0FBSyxDQUFDLFFBQVYsQ0FBbUI7QUFDeEIsTUFBQSxLQUFLLEVBQUUsT0FEaUI7QUFFeEIsTUFBQSxJQUZ3QjtBQUd4QixNQUFBO0FBSHdCLEtBQW5CLENBQVA7QUFLRCxHQWJpQixDQWVsQjs7O0FBRUEsRUFBQSxLQUFLLENBQUMsT0FBRCxFQUE0QixJQUE1QixFQUF1RCxHQUF2RCxFQUFzRTtBQUN6RSxXQUFPLElBQUksS0FBSyxDQUFDLEtBQVYsQ0FBZ0I7QUFDckIsTUFBQSxLQUFLLEVBQUUsT0FEYztBQUVyQixNQUFBLElBRnFCO0FBR3JCLE1BQUE7QUFIcUIsS0FBaEIsQ0FBUDtBQUtEOztBQUVELEVBQUEsVUFBVSxDQUFDLElBQUQsRUFBb0IsS0FBcEIsRUFBd0MsR0FBeEMsRUFBdUQ7QUFDL0QsV0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFWLENBQXFCO0FBQzFCLE1BQUEsSUFEMEI7QUFFMUIsTUFBQSxLQUYwQjtBQUcxQixNQUFBLEtBQUssRUFBRSxFQUhtQjtBQUkxQixNQUFBLGFBQWEsRUFBRSxFQUpXO0FBSzFCLE1BQUEsU0FBUyxFQUFFLEVBTGU7QUFNMUIsTUFBQTtBQU4wQixLQUFyQixDQUFQO0FBUUQ7O0FBRUQsRUFBQSxnQkFBZ0IsQ0FBQyxJ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WDtBQUFjLFVBQUEsS0FBSyxFQUFFO0FBQXJCLFNBQWxCO0FBRnVCLE9BQXRCO0FBSlYsS0FESSxFQVVKLEtBQUssSUFWRCxDQURELENBQVA7QUFjRDs7QUFFRCxFQUFBLHlCQUF5QixDQUN2QixNQUR1QixFQUV2QixRQUZ1QixFQUd2QixPQUh1QixFQUl2QixHQUp1QixFQUlSO0FBRWYsUUFBSSxLQUFLLEdBQUcsS0FBSyxPQUFMLENBQWEsS0FBYixDQUFtQixPQUFuQixFQUE0QixRQUE1QixFQUFzQyxHQUF0QyxDQUFaO0FBQ0EsUUFBSSxVQUFVLEdBQUcsS0FBSyxPQUFMLENBQWEsVUFBYixDQUF3QixXQUFXLENBQUMsU0FBWixDQUFzQixTQUF0QixDQUF4QixFQUEwRCxLQUExRCxFQUFpRSxHQUFqRSxDQUFqQixDQUhlLENBR3lFOztBQUV4RixXQUFPLElBQUksS0FBSyxDQUFDLGVBQVYsQ0FDTCxNQUFNLENBQ0o7QUFDRSxNQUFBLEdBREY7QUFFRSxNQUFBLE1BRkY7QUFHRSxNQUFBLE1BQU0sRUFBRSxLQUFLLE9BQUwsQ0FBYSxXQUFiLENBQXlCLENBQUMsVUFBRCxDQUF6QixFQUF1QyxVQUFVLENBQUMsR0FBbEQ7QUFIVixLQURJLEVBTUosS0FBSyxJQU5ELENBREQsQ0FBUDtBQVVEOztBQUVELEVBQUEsd0JBQXdCLENBQ3RCLE1BRHNCLEVBRXRCLE1BRnNCLEVBR3RCLEdBSHNCLEVBR1A7QUFFZixXQUFPLElBQUksS0FBSyxDQUFDLGVBQVYsQ0FDTCxNQUFNLENBQ0o7QUFDRSxNQUFBLEdBREY7QUFFRSxNQUFBLE1BRkY7QUFHRSxNQUFBLE1BQU0sRUFBRSxLQUFLLE9BQUwsQ0FBYSxXQUFiLENBQXlCLE1BQXpCLEVBQWlDLFFBQVEsQ0FBQyxLQUFULENBQWUsTUFBZixDQUFqQztBQUhWLEtBREksRUFNSixLQUFLLElBTkQsQ0FERCxDQUFQO0FBVUQ7O0FBdkZzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2VydFByZXNlbnQsIGFzc2lnbiB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0IHsgU3Bhbkxpc3QgfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbi1saXN0JztcbmltcG9ydCB7IEJsb2NrU3ltYm9sVGFibGUsIFByb2dyYW1TeW1ib2xUYWJsZSwgU3ltYm9sVGFibGUgfSBmcm9tICcuLi9zeW1ib2wtdGFibGUnO1xuaW1wb3J0ICogYXMgQVNUdjIgZnJvbSAnLi9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxQYXJ0cyB7XG4gIGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGU7XG4gIGFyZ3M6IEFTVHYyLkFyZ3M7XG59XG5cbmV4cG9ydCBjbGFzcyBCdWlsZGVyIHtcbiAgLy8gVEVNUExBVEUgLy9cblxuICB0ZW1wbGF0ZShcbiAgICBzeW1ib2xzOiBQcm9ncmFtU3ltYm9sVGFibGUsXG4gICAgYm9keTogQVNUdjIuQ29udGVudE5vZGVbXSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuVGVtcGxhdGUge1xuICAgIHJldHVybiBuZXcgQVNUdjIuVGVtcGxhdGUoe1xuICAgICAgdGFibGU6IHN5bWJvbHMsXG4gICAgICBib2R5LFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgKHRoZXNlIG5vZGVzIGNhbm5vdCBiZSByZWFjaGVkIHdoZW4gZG9pbmcgZ2VuZXJhbC1wdXJwb3NlIHZpc2l0aW5nKSAvL1xuXG4gIGJsb2NrKHN5bWJvbHM6IEJsb2NrU3ltYm9sVGFibGUsIGJvZHk6IEFTVHYyLkNvbnRlbnROb2RlW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkJsb2NrKHtcbiAgICAgIHNjb3BlOiBzeW1ib2xzLFxuICAgICAgYm9keSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIG5hbWVkQmxvY2sobmFtZTogU291cmNlU2xpY2UsIGJsb2NrOiBBU1R2Mi5CbG9jaywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5OYW1lZEJsb2NrKHtcbiAgICAgIG5hbWUsXG4gICAgICBibG9jayxcbiAgICAgIGF0dHJzOiBbXSxcbiAgICAgIGNvbXBvbmVudEFyZ3M6IFtdLFxuICAgICAgbW9kaWZpZXJzOiBbXSxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIHNpbXBsZU5hbWVkQmxvY2sobmFtZTogU291cmNlU2xpY2UsIGJsb2NrOiBBU1R2Mi5CbG9jaywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZEVsZW1lbnQoe1xuICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICBtb2RpZmllcnM6IFtdLFxuICAgICAgY29tbWVudHM6IFtdLFxuICAgIH0pLm5hbWVkKG5hbWUsIGJsb2NrLCBsb2MpO1xuICB9XG5cbiAgc2xpY2UoY2hhcnM6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogU291cmNlU2xpY2Uge1xuICAgIHJldHVybiBuZXcgU291cmNlU2xpY2Uoe1xuICAgICAgbG9jLFxuICAgICAgY2hhcnMsXG4gICAgfSk7XG4gIH1cblxuICBhcmdzKFxuICAgIHBvc2l0aW9uYWw6IEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMsXG4gICAgbmFtZWQ6IEFTVHYyLk5hbWVkQXJndW1lbnRzLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5BcmdzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkFyZ3Moe1xuICAgICAgbG9jLFxuICAgICAgcG9zaXRpb25hbCxcbiAgICAgIG5hbWVkLFxuICAgIH0pO1xuICB9XG5cbiAgcG9zaXRpb25hbChleHByczogQVNUdjIuRXhwcmVzc2lvbk5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzKHtcbiAgICAgIGxvYyxcbiAgICAgIGV4cHJzLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRBcmd1bWVudChrZXk6IFNvdXJjZVNsaWNlLCB2YWx1ZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUpOiBBU1R2Mi5OYW1lZEFyZ3VtZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQXJndW1lbnQoe1xuICAgICAgbmFtZToga2V5LFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBuYW1lZChlbnRyaWVzOiBBU1R2Mi5OYW1lZEFyZ3VtZW50W10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLk5hbWVkQXJndW1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQXJndW1lbnRzKHtcbiAgICAgIGxvYyxcbiAgICAgIGVudHJpZXMsXG4gICAgfSk7XG4gIH1cblxuICBhdHRyKFxuICAgIHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgIH06IHsgbmFtZTogU291cmNlU2xpY2U7IHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTsgdHJ1c3Rpbmc6IGJvb2xlYW4gfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSHRtbEF0dHIge1xuICAgIHJldHVybiBuZXcgQVNUdjIuSHRtbEF0dHIoe1xuICAgICAgbG9jLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfSk7XG4gIH1cblxuICBzcGxhdEF0dHIoc3ltYm9sOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLlNwbGF0QXR0ciB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5TcGxhdEF0dHIoe1xuICAgICAgc3ltYm9sLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgYXJnKFxuICAgIHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgIH06IHsgbmFtZTogU291cmNlU2xpY2U7IHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTsgdHJ1c3Rpbmc6IGJvb2xlYW4gfSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuQ29tcG9uZW50QXJnIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkNvbXBvbmVudEFyZyh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICB0cnVzdGluZyxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEVYUFJFU1NJT05TIC8vXG5cbiAgcGF0aChoZWFkOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSwgdGFpbDogU291cmNlU2xpY2VbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuUGF0aEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgQVNUdjIuUGF0aEV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgcmVmOiBoZWFkLFxuICAgICAgdGFpbCxcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGYobG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIHJldHVybiBuZXcgQVNUdjIuVGhpc1JlZmVyZW5jZSh7XG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBhdChuYW1lOiBzdHJpbmcsIHN5bWJvbDogbnVtYmVyLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5BcmdSZWZlcmVuY2Uoe1xuICAgICAgbG9jLFxuICAgICAgbmFtZTogbmV3IFNvdXJjZVNsaWNlKHsgbG9jLCBjaGFyczogbmFtZSB9KSxcbiAgICAgIHN5bWJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIGZyZWVWYXIoe1xuICAgIG5hbWUsXG4gICAgY29udGV4dCxcbiAgICBzeW1ib2wsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNvbnRleHQ6IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uO1xuICAgIHN5bWJvbDogbnVtYmVyO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlIHtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lICE9PSAndGhpcycsXG4gICAgICBgWW91IGNhbGxlZCBidWlsZGVycy5mcmVlVmFyKCkgd2l0aCAndGhpcycuIENhbGwgYnVpbGRlcnMudGhpcyBpbnN0ZWFkYFxuICAgICk7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMuZnJlZVZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5GcmVlVmFyUmVmZXJlbmNlKHtcbiAgICAgIG5hbWUsXG4gICAgICByZXNvbHV0aW9uOiBjb250ZXh0LFxuICAgICAgc3ltYm9sLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgbG9jYWxWYXIoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHN5bWJvbDogbnVtYmVyLFxuICAgIGlzVGVtcGxhdGVMb2NhbDogYm9vbGVhbixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5Mb2NhbFZhclJlZmVyZW5jZSh7XG4gICAgICBsb2MsXG4gICAgICBuYW1lLFxuICAgICAgaXNUZW1wbGF0ZUxvY2FsLFxuICAgICAgc3ltYm9sLFxuICAgIH0pO1xuICB9XG5cbiAgc2V4cChwYXJ0czogQ2FsbFBhcnRzLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5DYWxsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5DYWxsRXhwcmVzc2lvbih7XG4gICAgICBsb2MsXG4gICAgICBjYWxsZWU6IHBhcnRzLmNhbGxlZSxcbiAgICAgIGFyZ3M6IHBhcnRzLmFyZ3MsXG4gICAgfSk7XG4gIH1cblxuICBpbnRlcnBvbGF0ZShwYXJ0czogQVNUdjIuRXhwcmVzc2lvbk5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuSW50ZXJwb2xhdGVFeHByZXNzaW9uIHtcbiAgICBhc3NlcnRQcmVzZW50KHBhcnRzKTtcblxuICAgIHJldHVybiBuZXcgQVNUdjIuSW50ZXJwb2xhdGVFeHByZXNzaW9uKHtcbiAgICAgIGxvYyxcbiAgICAgIHBhcnRzLFxuICAgIH0pO1xuICB9XG5cbiAgbGl0ZXJhbCh2YWx1ZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IHN0cmluZyB9O1xuICBsaXRlcmFsKHZhbHVlOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogbnVtYmVyIH07XG4gIGxpdGVyYWwodmFsdWU6IGJvb2xlYW4sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogYm9vbGVhbiB9O1xuICBsaXRlcmFsKHZhbHVlOiBudWxsLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IG51bGwgfTtcbiAgbGl0ZXJhbCh2YWx1ZTogdW5kZWZpbmVkLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IHVuZGVmaW5lZCB9O1xuICBsaXRlcmFsKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb247XG4gIGxpdGVyYWwoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbih7XG4gICAgICBsb2MsXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFNUQVRFTUVOVFMgLy9cblxuICBhcHBlbmQoXG4gICAge1xuICAgICAgdGFibGUsXG4gICAgICB0cnVzdGluZyxcbiAgICAgIHZhbHVlLFxuICAgIH06IHsgdGFibGU6IFN5bWJvbFRhYmxlOyB0cnVzdGluZzogYm9vbGVhbjsgdmFsdWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlIH0sXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkFwcGVuZENvbnRlbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQXBwZW5kQ29udGVudCh7XG4gICAgICB0YWJsZSxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgdmFsdWUsXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBtb2RpZmllcih7IGNhbGxlZSwgYXJncyB9OiBDYWxsUGFydHMsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkVsZW1lbnRNb2RpZmllciB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5FbGVtZW50TW9kaWZpZXIoe1xuICAgICAgbG9jLFxuICAgICAgY2FsbGVlLFxuICAgICAgYXJncyxcbiAgICB9KTtcbiAgfVxuXG4gIG5hbWVkQmxvY2tzKGJsb2NrczogQVNUdjIuTmFtZWRCbG9ja1tdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrcyB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5OYW1lZEJsb2Nrcyh7XG4gICAgICBsb2MsXG4gICAgICBibG9ja3MsXG4gICAgfSk7XG4gIH1cblxuICBibG9ja1N0YXRlbWVudChcbiAgICB7XG4gICAgICBzeW1ib2xzLFxuICAgICAgcHJvZ3JhbSxcbiAgICAgIGludmVyc2UgPSBudWxsLFxuICAgICAgLi4uY2FsbFxuICAgIH06IHtcbiAgICAgIHN5bWJvbHM6IFN5bWJvbFRhYmxlO1xuICAgICAgcHJvZ3JhbTogQVNUdjIuQmxvY2s7XG4gICAgICBpbnZlcnNlPzogQVNUdjIuQmxvY2sgfCBudWxsO1xuICAgIH0gJiBDYWxsUGFydHMsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkludm9rZUJsb2NrIHtcbiAgICBsZXQgYmxvY2tzTG9jID0gcHJvZ3JhbS5sb2M7XG4gICAgbGV0IGJsb2NrczogUHJlc2VudEFycmF5PEFTVHYyLk5hbWVkQmxvY2s+ID0gW1xuICAgICAgdGhpcy5uYW1lZEJsb2NrKFNvdXJjZVNsaWNlLnN5bnRoZXRpYygnZGVmYXVsdCcpLCBwcm9ncmFtLCBwcm9ncmFtLmxvYyksXG4gICAgXTtcbiAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgYmxvY2tzTG9jID0gYmxvY2tzTG9jLmV4dGVuZChpbnZlcnNlLmxvYyk7XG4gICAgICBibG9ja3MucHVzaCh0aGlzLm5hbWVkQmxvY2soU291cmNlU2xpY2Uuc3ludGhldGljKCdlbHNlJyksIGludmVyc2UsIGludmVyc2UubG9jKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnZva2VCbG9jayh7XG4gICAgICBsb2MsXG4gICAgICBibG9ja3M6IHRoaXMubmFtZWRCbG9ja3MoYmxvY2tzLCBibG9ja3NMb2MpLFxuICAgICAgY2FsbGVlOiBjYWxsLmNhbGxlZSxcbiAgICAgIGFyZ3M6IGNhbGwuYXJncyxcbiAgICB9KTtcbiAgfVxuXG4gIGVsZW1lbnQob3B0aW9uczogQnVpbGRCYXNlRWxlbWVudCk6IEJ1aWxkRWxlbWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZEVsZW1lbnQob3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEJhc2VFbGVtZW50IHtcbiAgc2VsZkNsb3Npbmc6IGJvb2xlYW47XG4gIGF0dHJzOiBBU1R2Mi5IdG1sT3JTcGxhdEF0dHJbXTtcbiAgY29tcG9uZW50QXJnczogQVNUdjIuQ29tcG9uZW50QXJnW107XG4gIG1vZGlmaWVyczogQVNUdjIuRWxlbWVudE1vZGlmaWVyW107XG4gIGNvbW1lbnRzOiBBU1R2Mi5HbGltbWVyQ29tbWVudFtdO1xufVxuXG5leHBvcnQgY2xhc3MgQnVpbGRFbGVtZW50IHtcbiAgcmVhZG9ubHkgYnVpbGRlcjogQnVpbGRlcjtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYmFzZTogQnVpbGRCYXNlRWxlbWVudCkge1xuICAgIHRoaXMuYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7XG4gIH1cblxuICBzaW1wbGUodGFnOiBTb3VyY2VTbGljZSwgYm9keTogQVNUdjIuQ29udGVudE5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuU2ltcGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5TaW1wbGVFbGVtZW50KFxuICAgICAgYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgdGFnLFxuICAgICAgICAgIGJvZHksXG4gICAgICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICAgICAgbG9jLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmJhc2VcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbmFtZWQobmFtZTogU291cmNlU2xpY2UsIGJsb2NrOiBBU1R2Mi5CbG9jaywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5OYW1lZEJsb2NrKFxuICAgICAgYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBibG9jayxcbiAgICAgICAgICBjb21wb25lbnRBcmdzOiBbXSxcbiAgICAgICAgICBsb2MsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBzZWxmQ2xvc2luZ0NvbXBvbmVudChjYWxsZWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5JbnZva2VDb21wb25lbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuSW52b2tlQ29tcG9uZW50KFxuICAgICAgYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbG9jLFxuICAgICAgICAgIGNhbGxlZSxcbiAgICAgICAgICAvLyBwb2ludCB0aGUgZW1wdHkgbmFtZWQgYmxvY2tzIGF0IHRoZSBgL2Agc2VsZi1jbG9zaW5nIHRhZ1xuICAgICAgICAgIGJsb2NrczogbmV3IEFTVHYyLk5hbWVkQmxvY2tzKHtcbiAgICAgICAgICAgIGJsb2NrczogW10sXG4gICAgICAgICAgICBsb2M6IGxvYy5zbGljZUVuZENoYXJzKHsgc2tpcEVuZDogMSwgY2hhcnM6IDEgfSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBjb21wb25lbnRXaXRoRGVmYXVsdEJsb2NrKFxuICAgIGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUsXG4gICAgY2hpbGRyZW46IEFTVHYyLkNvbnRlbnROb2RlW10sXG4gICAgc3ltYm9sczogQmxvY2tTeW1ib2xUYWJsZSxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuSW52b2tlQ29tcG9uZW50IHtcbiAgICBsZXQgYmxvY2sgPSB0aGlzLmJ1aWxkZXIuYmxvY2soc3ltYm9scywgY2hpbGRyZW4sIGxvYyk7XG4gICAgbGV0IG5hbWVkQmxvY2sgPSB0aGlzLmJ1aWxkZXIubmFtZWRCbG9jayhTb3VyY2VTbGljZS5zeW50aGV0aWMoJ2RlZmF1bHQnKSwgYmxvY2ssIGxvYyk7IC8vIEJVSUxERVIuc2ltcGxlTmFtZWRCbG9jaygnZGVmYXVsdCcsIGNoaWxkcmVuLCBzeW1ib2xzLCBsb2MpO1xuXG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnZva2VDb21wb25lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBsb2MsXG4gICAgICAgICAgY2FsbGVlLFxuICAgICAgICAgIGJsb2NrczogdGhpcy5idWlsZGVyLm5hbWVkQmxvY2tzKFtuYW1lZEJsb2NrXSwgbmFtZWRCbG9jay5sb2MpLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmJhc2VcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgY29tcG9uZW50V2l0aE5hbWVkQmxvY2tzKFxuICAgIGNhbGxlZTogQVNUdjIuRXhwcmVzc2lvbk5vZGUsXG4gICAgYmxvY2tzOiBQcmVzZW50QXJyYXk8QVNUdjIuTmFtZWRCbG9jaz4sXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkludm9rZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5JbnZva2VDb21wb25lbnQoXG4gICAgICBhc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBsb2MsXG4gICAgICAgICAgY2FsbGVlLFxuICAgICAgICAgIGJsb2NrczogdGhpcy5idWlsZGVyLm5hbWVkQmxvY2tzKGJsb2NrcywgU3Bhbkxpc3QucmFuZ2UoYmxvY2tzKSksXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuYmFzZVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9idWlsZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLFNBQVMsTUFBVCxFQUFpQixhQUFqQixFQUFnQyxNQUFoQyxRQUE4QyxlQUE5QztBQUVBLFNBQVMsV0FBVCxRQUE0QixpQkFBNUI7QUFFQSxTQUFTLFFBQVQsUUFBeUIscUJBQXpCO0FBRUEsT0FBTyxLQUFLLEtBQVosTUFBdUIsT0FBdkI7QUFPQSxPQUFNLE1BQU8sT0FBUCxDQUFjO0FBQ2xCO0FBRUEsRUFBQSxRQUFRLENBQ04sT0FETSxFQUVOLElBRk0sRUFHTixHQUhNLEVBR1M7QUFFZixXQUFPLElBQUksS0FBSyxDQUFDLFFBQVYsQ0FBbUI7QUFDeEIsTUFBQSxLQUFLLEVBQUUsT0FEaUI7QUFFeEIsTUFBQSxJQUZ3QjtBQUd4QixNQUFBO0FBSHdCLEtBQW5CLENBQVA7QUFLRCxHQWJpQixDQWVsQjs7O0FBRUEsRUFBQSxLQUFLLENBQUMsT0FBRCxFQUE0QixJQUE1QixFQUF1RCxHQUF2RCxFQUFzRTtBQUN6RSxXQUFPLElBQUksS0FBSyxDQUFDLEtBQVYsQ0FBZ0I7QUFDckIsTUFBQSxLQUFLLEVBQUUsT0FEYztBQUVyQixNQUFBLElBRnFCO0FBR3JCLE1BQUE7QUFIcUIsS0FBaEIsQ0FBUDtBQUtEOztBQUVELEVBQUEsVUFBVSxDQUFDLElBQUQsRUFBb0IsS0FBcEIsRUFBd0MsR0FBeEMsRUFBdUQ7QUFDL0QsV0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFWLENBQXFCO0FBQzFCLE1BQUEsSUFEMEI7QUFFMUIsTUFBQSxLQUYwQjtBQUcxQixNQUFBLEtBQUssRUFBRSxFQUhtQjtBQUkxQixNQUFBLGFBQWEsRUFBRSxFQUpXO0FBSzFCLE1BQUEsU0FBUyxFQUFFLEVBTGU7QUFNMUIsTUFBQTtBQU4wQixLQUFyQixDQUFQO0FBUUQ7O0FBRUQsRUFBQSxnQkFBZ0IsQ0FBQyxJ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RUFBaUMsUUFBUSxDQUFDLEtBQVQsQ0FBZSxNQUFmLENBQWpDO0FBSFYsS0FESSxFQU1KLEtBQUssSUFORCxDQURELENBQVA7QUFVRDs7QUF2RnNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzZXJ0UHJlc2VudCwgYXNzaWduIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFNvdXJjZVNsaWNlIH0gZnJvbSAnLi4vc291cmNlL3NsaWNlJztcbmltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgeyBTcGFuTGlzdCB9IGZyb20gJy4uL3NvdXJjZS9zcGFuLWxpc3QnO1xuaW1wb3J0IHsgQmxvY2tTeW1ib2xUYWJsZSwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBTeW1ib2xUYWJsZSB9IGZyb20gJy4uL3N5bWJvbC10YWJsZSc7XG5pbXBvcnQgKiBhcyBBU1R2MiBmcm9tICcuL2FwaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbFBhcnRzIHtcbiAgY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZTtcbiAgYXJnczogQVNUdjIuQXJncztcbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkZXIge1xuICAvLyBURU1QTEFURSAvL1xuXG4gIHRlbXBsYXRlKFxuICAgIHN5bWJvbHM6IFByb2dyYW1TeW1ib2xUYWJsZSxcbiAgICBib2R5OiBBU1R2Mi5Db250ZW50Tm9kZVtdLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5UZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5UZW1wbGF0ZSh7XG4gICAgICB0YWJsZTogc3ltYm9scyxcbiAgICAgIGJvZHksXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICAvLyBJTlRFUk5BTCAodGhlc2Ugbm9kZXMgY2Fubm90IGJlIHJlYWNoZWQgd2hlbiBkb2luZyBnZW5lcmFsLXB1cnBvc2UgdmlzaXRpbmcpIC8vXG5cbiAgYmxvY2soc3ltYm9sczogQmxvY2tTeW1ib2xUYWJsZSwgYm9keTogQVNUdjIuQ29udGVudE5vZGVbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuQmxvY2sge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQmxvY2soe1xuICAgICAgc2NvcGU6IHN5bWJvbHMsXG4gICAgICBib2R5LFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgbmFtZWRCbG9jayhuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLk5hbWVkQmxvY2soe1xuICAgICAgbmFtZSxcbiAgICAgIGJsb2NrLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICBtb2RpZmllcnM6IFtdLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgc2ltcGxlTmFtZWRCbG9jayhuYW1lOiBTb3VyY2VTbGljZSwgYmxvY2s6IEFTVHYyLkJsb2NrLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5OYW1lZEJsb2NrIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkRWxlbWVudCh7XG4gICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICBhdHRyczogW10sXG4gICAgICBjb21wb25lbnRBcmdzOiBbXSxcbiAgICAgIG1vZGlmaWVyczogW10sXG4gICAgICBjb21tZW50czogW10sXG4gICAgfSkubmFtZWQobmFtZSwgYmxvY2ssIGxvYyk7XG4gIH1cblxuICBzbGljZShjaGFyczogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBTb3VyY2VTbGljZSB7XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VTbGljZSh7XG4gICAgICBsb2MsXG4gICAgICBjaGFycyxcbiAgICB9KTtcbiAgfVxuXG4gIGFyZ3MoXG4gICAgcG9zaXRpb25hbDogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyxcbiAgICBuYW1lZDogQVNUdjIuTmFtZWRBcmd1bWVudHMsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkFyZ3Mge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQXJncyh7XG4gICAgICBsb2MsXG4gICAgICBwb3NpdGlvbmFsLFxuICAgICAgbmFtZWQsXG4gICAgfSk7XG4gIH1cblxuICBwb3NpdGlvbmFsKGV4cHJzOiBBU1R2Mi5FeHByZXNzaW9uTm9kZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlBvc2l0aW9uYWxBcmd1bWVudHMoe1xuICAgICAgbG9jLFxuICAgICAgZXhwcnMsXG4gICAgfSk7XG4gIH1cblxuICBuYW1lZEFyZ3VtZW50KGtleTogU291cmNlU2xpY2UsIHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSk6IEFTVHYyLk5hbWVkQXJndW1lbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRBcmd1bWVudCh7XG4gICAgICBuYW1lOiBrZXksXG4gICAgICB2YWx1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG5hbWVkKGVudHJpZXM6IEFTVHYyLk5hbWVkQXJndW1lbnRbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRBcmd1bWVudHMge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRBcmd1bWVudHMoe1xuICAgICAgbG9jLFxuICAgICAgZW50cmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIGF0dHIoXG4gICAge1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfTogeyBuYW1lOiBTb3VyY2VTbGljZTsgdmFsdWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlOyB0cnVzdGluZzogYm9vbGVhbiB9LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5IdG1sQXR0ciB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5IdG1sQXR0cih7XG4gICAgICBsb2MsXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICB0cnVzdGluZyxcbiAgICB9KTtcbiAgfVxuXG4gIHNwbGF0QXR0cihzeW1ib2w6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuU3BsYXRBdHRyIHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLlNwbGF0QXR0cih7XG4gICAgICBzeW1ib2wsXG4gICAgICBsb2MsXG4gICAgfSk7XG4gIH1cblxuICBhcmcoXG4gICAge1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgfTogeyBuYW1lOiBTb3VyY2VTbGljZTsgdmFsdWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlOyB0cnVzdGluZzogYm9vbGVhbiB9LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5Db21wb25lbnRBcmcge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQ29tcG9uZW50QXJnKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRVhQUkVTU0lPTlMgLy9cblxuICBwYXRoKGhlYWQ6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlLCB0YWlsOiBTb3VyY2VTbGljZVtdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5QYXRoRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5QYXRoRXhwcmVzc2lvbih7XG4gICAgICBsb2MsXG4gICAgICByZWY6IGhlYWQsXG4gICAgICB0YWlsLFxuICAgIH0pO1xuICB9XG5cbiAgc2VsZihsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5WYXJpYWJsZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5UaGlzUmVmZXJlbmNlKHtcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIGF0KG5hbWU6IHN0cmluZywgc3ltYm9sOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlIHtcbiAgICAvLyB0aGUgYEBgIHNob3VsZCBiZSBpbmNsdWRlZCBzbyB3ZSBoYXZlIGEgY29tcGxldGUgc291cmNlIHJhbmdlXG4gICAgYXNzZXJ0KG5hbWVbMF0gPT09ICdAJywgYGNhbGwgYnVpbGRlcnMuYXQoKSB3aXRoIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggJ0AnYCk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkFyZ1JlZmVyZW5jZSh7XG4gICAgICBsb2MsXG4gICAgICBuYW1lOiBuZXcgU291cmNlU2xpY2UoeyBsb2MsIGNoYXJzOiBuYW1lIH0pLFxuICAgICAgc3ltYm9sLFxuICAgIH0pO1xuICB9XG5cbiAgZnJlZVZhcih7XG4gICAgbmFtZSxcbiAgICBjb250ZXh0LFxuICAgIHN5bWJvbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY29udGV4dDogQVNUdjIuRnJlZVZhclJlc29sdXRpb247XG4gICAgc3ltYm9sOiBudW1iZXI7XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjIuRnJlZVZhclJlZmVyZW5jZSB7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZSAhPT0gJ3RoaXMnLFxuICAgICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMuZnJlZVZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGBcbiAgICApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLmZyZWVWYXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgQVNUdjIuRnJlZVZhclJlZmVyZW5jZSh7XG4gICAgICBuYW1lLFxuICAgICAgcmVzb2x1dGlvbjogY29udGV4dCxcbiAgICAgIHN5bWJvbCxcbiAgICAgIGxvYyxcbiAgICB9KTtcbiAgfVxuXG4gIGxvY2FsVmFyKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBzeW1ib2w6IG51bWJlcixcbiAgICBpc1RlbXBsYXRlTG9jYWw6IGJvb2xlYW4sXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlIHtcbiAgICBhc3NlcnQobmFtZSAhPT0gJ3RoaXMnLCBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgKTtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgICBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgQVNUdjIuTG9jYWxWYXJSZWZlcmVuY2Uoe1xuICAgICAgbG9jLFxuICAgICAgbmFtZSxcbiAgICAgIGlzVGVtcGxhdGVMb2NhbCxcbiAgICAgIHN5bWJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIHNleHAocGFydHM6IENhbGxQYXJ0cywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuQ2FsbEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgQVNUdjIuQ2FsbEV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgY2FsbGVlOiBwYXJ0cy5jYWxsZWUsXG4gICAgICBhcmdzOiBwYXJ0cy5hcmdzLFxuICAgIH0pO1xuICB9XG5cbiAgZGVwcmVjYXRlZENhbGwoXG4gICAgYXJnOiBTb3VyY2VTbGljZSxcbiAgICBjYWxsZWU6IEFTVHYyLkZyZWVWYXJSZWZlcmVuY2UsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkRlcHJlY2F0ZWRDYWxsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBBU1R2Mi5EZXByZWNhdGVkQ2FsbEV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgYXJnLFxuICAgICAgY2FsbGVlLFxuICAgIH0pO1xuICB9XG5cbiAgaW50ZXJwb2xhdGUocGFydHM6IEFTVHYyLkV4cHJlc3Npb25Ob2RlW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLkludGVycG9sYXRlRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0UHJlc2VudChwYXJ0cyk7XG5cbiAgICByZXR1cm4gbmV3IEFTVHYyLkludGVycG9sYXRlRXhwcmVzc2lvbih7XG4gICAgICBsb2MsXG4gICAgICBwYXJ0cyxcbiAgICB9KTtcbiAgfVxuXG4gIGxpdGVyYWwodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBzdHJpbmcgfTtcbiAgbGl0ZXJhbCh2YWx1ZTogbnVtYmVyLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IG51bWJlciB9O1xuICBsaXRlcmFsKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbiAmIHsgdmFsdWU6IGJvb2xlYW4gfTtcbiAgbGl0ZXJhbCh2YWx1ZTogbnVsbCwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBudWxsIH07XG4gIGxpdGVyYWwodmFsdWU6IHVuZGVmaW5lZCwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiB1bmRlZmluZWQgfTtcbiAgbGl0ZXJhbChcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkxpdGVyYWxFeHByZXNzaW9uO1xuICBsaXRlcmFsKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTGl0ZXJhbEV4cHJlc3Npb24oe1xuICAgICAgbG9jLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICAvLyBTVEFURU1FTlRTIC8vXG5cbiAgYXBwZW5kKFxuICAgIHtcbiAgICAgIHRhYmxlLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICB2YWx1ZSxcbiAgICB9OiB7IHRhYmxlOiBTeW1ib2xUYWJsZTsgdHJ1c3Rpbmc6IGJvb2xlYW47IHZhbHVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSB9LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5BcHBlbmRDb250ZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkFwcGVuZENvbnRlbnQoe1xuICAgICAgdGFibGUsXG4gICAgICB0cnVzdGluZyxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0pO1xuICB9XG5cbiAgbW9kaWZpZXIoeyBjYWxsZWUsIGFyZ3MgfTogQ2FsbFBhcnRzLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2Mi5FbGVtZW50TW9kaWZpZXIge1xuICAgIHJldHVybiBuZXcgQVNUdjIuRWxlbWVudE1vZGlmaWVyKHtcbiAgICAgIGxvYyxcbiAgICAgIGNhbGxlZSxcbiAgICAgIGFyZ3MsXG4gICAgfSk7XG4gIH1cblxuICBuYW1lZEJsb2NrcyhibG9ja3M6IEFTVHYyLk5hbWVkQmxvY2tbXSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuTmFtZWRCbG9ja3Mge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRCbG9ja3Moe1xuICAgICAgbG9jLFxuICAgICAgYmxvY2tzLFxuICAgIH0pO1xuICB9XG5cbiAgYmxvY2tTdGF0ZW1lbnQoXG4gICAge1xuICAgICAgc3ltYm9scyxcbiAgICAgIHByb2dyYW0sXG4gICAgICBpbnZlcnNlID0gbnVsbCxcbiAgICAgIC4uLmNhbGxcbiAgICB9OiB7XG4gICAgICBzeW1ib2xzOiBTeW1ib2xUYWJsZTtcbiAgICAgIHByb2dyYW06IEFTVHYyLkJsb2NrO1xuICAgICAgaW52ZXJzZT86IEFTVHYyLkJsb2NrIHwgbnVsbDtcbiAgICB9ICYgQ2FsbFBhcnRzLFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5JbnZva2VCbG9jayB7XG4gICAgbGV0IGJsb2Nrc0xvYyA9IHByb2dyYW0ubG9jO1xuICAgIGxldCBibG9ja3M6IFByZXNlbnRBcnJheTxBU1R2Mi5OYW1lZEJsb2NrPiA9IFtcbiAgICAgIHRoaXMubmFtZWRCbG9jayhTb3VyY2VTbGljZS5zeW50aGV0aWMoJ2RlZmF1bHQnKSwgcHJvZ3JhbSwgcHJvZ3JhbS5sb2MpLFxuICAgIF07XG4gICAgaWYgKGludmVyc2UpIHtcbiAgICAgIGJsb2Nrc0xvYyA9IGJsb2Nrc0xvYy5leHRlbmQoaW52ZXJzZS5sb2MpO1xuICAgICAgYmxvY2tzLnB1c2godGhpcy5uYW1lZEJsb2NrKFNvdXJjZVNsaWNlLnN5bnRoZXRpYygnZWxzZScpLCBpbnZlcnNlLCBpbnZlcnNlLmxvYykpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQVNUdjIuSW52b2tlQmxvY2soe1xuICAgICAgbG9jLFxuICAgICAgYmxvY2tzOiB0aGlzLm5hbWVkQmxvY2tzKGJsb2NrcywgYmxvY2tzTG9jKSxcbiAgICAgIGNhbGxlZTogY2FsbC5jYWxsZWUsXG4gICAgICBhcmdzOiBjYWxsLmFyZ3MsXG4gICAgfSk7XG4gIH1cblxuICBlbGVtZW50KG9wdGlvbnM6IEJ1aWxkQmFzZUVsZW1lbnQpOiBCdWlsZEVsZW1lbnQge1xuICAgIHJldHVybiBuZXcgQnVpbGRFbGVtZW50KG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRCYXNlRWxlbWVudCB7XG4gIHNlbGZDbG9zaW5nOiBib29sZWFuO1xuICBhdHRyczogQVNUdjIuSHRtbE9yU3BsYXRBdHRyW107XG4gIGNvbXBvbmVudEFyZ3M6IEFTVHYyLkNvbXBvbmVudEFyZ1tdO1xuICBtb2RpZmllcnM6IEFTVHYyLkVsZW1lbnRNb2RpZmllcltdO1xuICBjb21tZW50czogQVNUdjIuR2xpbW1lckNvbW1lbnRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkRWxlbWVudCB7XG4gIHJlYWRvbmx5IGJ1aWxkZXI6IEJ1aWxkZXI7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGJhc2U6IEJ1aWxkQmFzZUVsZW1lbnQpIHtcbiAgICB0aGlzLmJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpO1xuICB9XG5cbiAgc2ltcGxlKHRhZzogU291cmNlU2xpY2UsIGJvZHk6IEFTVHYyLkNvbnRlbnROb2RlW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLlNpbXBsZUVsZW1lbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuU2ltcGxlRWxlbWVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIHRhZyxcbiAgICAgICAgICBib2R5LFxuICAgICAgICAgIGNvbXBvbmVudEFyZ3M6IFtdLFxuICAgICAgICAgIGxvYyxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG5hbWVkKG5hbWU6IFNvdXJjZVNsaWNlLCBibG9jazogQVNUdjIuQmxvY2ssIGxvYzogU291cmNlU3Bhbik6IEFTVHYyLk5hbWVkQmxvY2sge1xuICAgIHJldHVybiBuZXcgQVNUdjIuTmFtZWRCbG9jayhcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgY29tcG9uZW50QXJnczogW10sXG4gICAgICAgICAgbG9jLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmJhc2VcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2VsZkNsb3NpbmdDb21wb25lbnQoY2FsbGVlOiBBU1R2Mi5FeHByZXNzaW9uTm9kZSwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjIuSW52b2tlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gbmV3IEFTVHYyLkludm9rZUNvbXBvbmVudChcbiAgICAgIGFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYyxcbiAgICAgICAgICBjYWxsZWUsXG4gICAgICAgICAgLy8gcG9pbnQgdGhlIGVtcHR5IG5hbWVkIGJsb2NrcyBhdCB0aGUgYC9gIHNlbGYtY2xvc2luZyB0YWdcbiAgICAgICAgICBibG9ja3M6IG5ldyBBU1R2Mi5OYW1lZEJsb2Nrcyh7XG4gICAgICAgICAgICBibG9ja3M6IFtdLFxuICAgICAgICAgICAgbG9jOiBsb2Muc2xpY2VFbmRDaGFycyh7IHNraXBFbmQ6IDEsIGNoYXJzOiAxIH0pLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmJhc2VcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgY29tcG9uZW50V2l0aERlZmF1bHRCbG9jayhcbiAgICBjYWxsZWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlLFxuICAgIGNoaWxkcmVuOiBBU1R2Mi5Db250ZW50Tm9kZVtdLFxuICAgIHN5bWJvbHM6IEJsb2NrU3ltYm9sVGFibGUsXG4gICAgbG9jOiBTb3VyY2VTcGFuXG4gICk6IEFTVHYyLkludm9rZUNvbXBvbmVudCB7XG4gICAgbGV0IGJsb2NrID0gdGhpcy5idWlsZGVyLmJsb2NrKHN5bWJvbHMsIGNoaWxkcmVuLCBsb2MpO1xuICAgIGxldCBuYW1lZEJsb2NrID0gdGhpcy5idWlsZGVyLm5hbWVkQmxvY2soU291cmNlU2xpY2Uuc3ludGhldGljKCdkZWZhdWx0JyksIGJsb2NrLCBsb2MpOyAvLyBCVUlMREVSLnNpbXBsZU5hbWVkQmxvY2soJ2RlZmF1bHQnLCBjaGlsZHJlbiwgc3ltYm9scywgbG9jKTtcblxuICAgIHJldHVybiBuZXcgQVNUdjIuSW52b2tlQ29tcG9uZW50KFxuICAgICAgYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbG9jLFxuICAgICAgICAgIGNhbGxlZSxcbiAgICAgICAgICBibG9ja3M6IHRoaXMuYnVpbGRlci5uYW1lZEJsb2NrcyhbbmFtZWRCbG9ja10sIG5hbWVkQmxvY2subG9jKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5iYXNlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpdGhOYW1lZEJsb2NrcyhcbiAgICBjYWxsZWU6IEFTVHYyLkV4cHJlc3Npb25Ob2RlLFxuICAgIGJsb2NrczogUHJlc2VudEFycmF5PEFTVHYyLk5hbWVkQmxvY2s+LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2Mi5JbnZva2VDb21wb25lbnQge1xuICAgIHJldHVybiBuZXcgQVNUdjIuSW52b2tlQ29tcG9uZW50KFxuICAgICAgYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbG9jLFxuICAgICAgICAgIGNhbGxlZSxcbiAgICAgICAgICBibG9ja3M6IHRoaXMuYnVpbGRlci5uYW1lZEJsb2NrcyhibG9ja3MsIFNwYW5MaXN0LnJhbmdlKGJsb2NrcykpLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmJhc2VcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -62,2 +62,17 @@ import { SourceSlice } from '../../source/slice';

/**
* Corresponds to a possible deprecated helper call. Must be:
*
* 1. A free variable (not this.foo, not @foo, not local).
* 2. Argument-less.
* 3. In a component invocation's named argument position.
* 4. Not parenthesized (not @bar={{(helper)}}).
* 5. Not interpolated (not @bar="{{helper}}").
*
* ```hbs
* <Foo @bar={{helper}} />
* ```
*/
export class DeprecatedCallExpression extends node('DeprecatedCall').fields() {}
/**
* Corresponds to an interpolation in attribute value position.

@@ -71,2 +86,2 @@ *

export class InterpolateExpression extends node('Interpolate').fields() {}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2V4cHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsU0FBUyxXQUFULFFBQTRCLG9CQUE1QjtBQUVBLFNBQVMsSUFBVCxRQUFxQixRQUFyQjtBQWtCQTs7Ozs7O0FBS0EsT0FBTSxNQUFPLGlCQUFQLFNBQWlDLElBQUksQ0FBQyxTQUFELENBQUosQ0FBZ0IsTUFBaEIsRUFBakMsQ0FBa0Y7QUFDdEYsRUFBQSxPQUFPLEdBQUE7QUFDTCxXQUFPLElBQUksV0FBSixDQUFnQjtBQUFFLE1BQUEsR0FBRyxFQUFFLEtBQUssR0FBWjtBQUFpQixNQUFBLEtBQUssRUFBRSxLQUFLO0FBQTdCLEtBQWhCLENBQVA7QUFDRDs7QUFIcUY7QUFReEY7Ozs7QUFHQSxPQUFNLFNBQVUsU0FBVixDQUNKLElBREksRUFFSixJQUZJLEVBRUk7QUFFUixNQUFJLElBQUksQ0FBQyxJQUFMLEtBQWMsU0FBbEIsRUFBNkI7QUFDM0IsUUFBSSxJQUFJLEtBQUssU0FBYixFQUF3QjtBQUN0QixhQUFPLElBQVA7QUFDRCxLQUZELE1BRU8sSUFBSSxJQUFJLEtBQUssTUFBYixFQUFxQjtBQUMxQixhQUFPLElBQUksQ0FBQyxLQUFMLEtBQWUsSUFBdEI7QUFDRCxLQUZNLE1BRUE7QUFDTCxhQUFPLE9BQU8sSUFBSSxDQUFDLEtBQVosS0FBc0IsSUFBN0I7QUFDRDtBQUNGLEdBUkQsTUFRTztBQUNMLFdBQU8sS0FBUDtBQUNEO0FBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7OztBQVlBLE9BQU0sTUFBTyxjQUFQLFNBQThCLElBQUksQ0FBQyxNQUFELENBQUosQ0FBYSxNQUFiLEVBQTlCLENBR0Y7QUFFSjs7Ozs7Ozs7Ozs7QUFVQSxPQUFNLE1BQU8sY0FBUCxTQUE4QixJQUFJLENBQUMsTUFBRCxDQUFKLENBQWEsTUFBYixFQUE5QixDQUErRDtBQUVyRTs7Ozs7Ozs7QUFPQSxPQUFNLE1BQU8scUJBQVAsU0FBcUMsSUFBSSxDQUFDLGFBQUQsQ0FBSixDQUFvQixNQUFwQixFQUFyQyxDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlc2VudEFycmF5IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IFNvdXJjZVNsaWNlIH0gZnJvbSAnLi4vLi4vc291cmNlL3NsaWNlJztcbmltcG9ydCB0eXBlIHsgQ2FsbEZpZWxkcyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBub2RlIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB0eXBlIHsgVmFyaWFibGVSZWZlcmVuY2UgfSBmcm9tICcuL3JlZnMnO1xuXG4vKipcbiAqIEEgSGFuZGxlYmFycyBsaXRlcmFsLlxuICpcbiAqIHtAbGluayBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vZ3VpZGUvZXhwcmVzc2lvbnMuaHRtbCNsaXRlcmFsLXNlZ21lbnRzfVxuICovXG5leHBvcnQgdHlwZSBMaXRlcmFsVmFsdWUgPSBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuZXhwb3J0IGludGVyZmFjZSBMaXRlcmFsVHlwZXMge1xuICBzdHJpbmc6IHN0cmluZztcbiAgYm9vbGVhbjogYm9vbGVhbjtcbiAgbnVtYmVyOiBudW1iZXI7XG4gIG51bGw6IG51bGw7XG4gIHVuZGVmaW5lZDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgSGFuZGxlYmFycyBsaXRlcmFsLlxuICpcbiAqIEBzZWUge0xpdGVyYWxWYWx1ZX1cbiAqL1xuZXhwb3J0IGNsYXNzIExpdGVyYWxFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnTGl0ZXJhbCcpLmZpZWxkczx7IHZhbHVlOiBMaXRlcmFsVmFsdWUgfT4oKSB7XG4gIHRvU2xpY2UodGhpczogU3RyaW5nTGl0ZXJhbCk6IFNvdXJjZVNsaWNlIHtcbiAgICByZXR1cm4gbmV3IFNvdXJjZVNsaWNlKHsgbG9jOiB0aGlzLmxvYywgY2hhcnM6IHRoaXMudmFsdWUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3RyaW5nTGl0ZXJhbCA9IExpdGVyYWxFeHByZXNzaW9uICYgeyB2YWx1ZTogc3RyaW5nIH07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIGFuIGlucHV0IHtAc2VlIEV4cHJlc3Npb25Ob2RlfSBpcyBhIGxpdGVyYWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xpdGVyYWw8SyBleHRlbmRzIGtleW9mIExpdGVyYWxUeXBlcyA9IGtleW9mIExpdGVyYWxUeXBlcz4oXG4gIG5vZGU6IEV4cHJlc3Npb25Ob2RlLFxuICBraW5kPzogS1xuKTogbm9kZSBpcyBTdHJpbmdMaXRlcmFsIHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ0xpdGVyYWwnKSB7XG4gICAgaWYgKGtpbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChraW5kID09PSAnbnVsbCcpIHtcbiAgICAgIHJldHVybiBub2RlLnZhbHVlID09PSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG5vZGUudmFsdWUgPT09IGtpbmQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgcGF0aCBpbiBleHByZXNzaW9uIHBvc2l0aW9uLlxuICpcbiAqIGBgYGhic1xuICogdGhpc1xuICogdGhpcy54XG4gKiBAeFxuICogQHgueVxuICogeFxuICogeC55XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFBhdGhFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnUGF0aCcpLmZpZWxkczx7XG4gIHJlZjogVmFyaWFibGVSZWZlcmVuY2U7XG4gIHRhaWw6IHJlYWRvbmx5IFNvdXJjZVNsaWNlW107XG59PigpIHt9XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBwYXJlbnRoZXNpemVkIGNhbGwgZXhwcmVzc2lvbi5cbiAqXG4gKiBgYGBoYnNcbiAqICh4KVxuICogKHgueSlcbiAqICh4IHkpXG4gKiAoeC55IHopXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnQ2FsbCcpLmZpZWxkczxDYWxsRmllbGRzPigpIHt9XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYW4gaW50ZXJwb2xhdGlvbiBpbiBhdHRyaWJ1dGUgdmFsdWUgcG9zaXRpb24uXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPVwie3t1cmx9fS5odG1sXCJcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgSW50ZXJwb2xhdGVFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnSW50ZXJwb2xhdGUnKS5maWVsZHM8e1xuICBwYXJ0czogUHJlc2VudEFycmF5PEV4cHJlc3Npb25Ob2RlPjtcbn0+KCkge31cblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbk5vZGUgPVxuICB8IExpdGVyYWxFeHByZXNzaW9uXG4gIHwgUGF0aEV4cHJlc3Npb25cbiAgfCBDYWxsRXhwcmVzc2lvblxuICB8IEludGVycG9sYXRlRXhwcmVzc2lvbjtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2V4cHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsU0FBUyxXQUFULFFBQTRCLG9CQUE1QjtBQUVBLFNBQVMsSUFBVCxRQUFxQixRQUFyQjtBQWtCQTs7Ozs7O0FBS0EsT0FBTSxNQUFPLGlCQUFQLFNBQWlDLElBQUksQ0FBQyxTQUFELENBQUosQ0FBZ0IsTUFBaEIsRUFBakMsQ0FBa0Y7QUFDdEYsRUFBQSxPQUFPLEdBQUE7QUFDTCxXQUFPLElBQUksV0FBSixDQUFnQjtBQUFFLE1BQUEsR0FBRyxFQUFFLEtBQUssR0FBWjtBQUFpQixNQUFBLEtBQUssRUFBRSxLQUFLO0FBQTdCLEtBQWhCLENBQVA7QUFDRDs7QUFIcUY7QUFReEY7Ozs7QUFHQSxPQUFNLFNBQVUsU0FBVixDQUNKLElBREksRUFFSixJQUZJLEVBRUk7QUFFUixNQUFJLElBQUksQ0FBQyxJQUFMLEtBQWMsU0FBbEIsRUFBNkI7QUFDM0IsUUFBSSxJQUFJLEtBQUssU0FBYixFQUF3QjtBQUN0QixhQUFPLElBQVA7QUFDRCxLQUZELE1BRU8sSUFBSSxJQUFJLEtBQUssTUFBYixFQUFxQjtBQUMxQixhQUFPLElBQUksQ0FBQyxLQUFMLEtBQWUsSUFBdEI7QUFDRCxLQUZNLE1BRUE7QUFDTCxhQUFPLE9BQU8sSUFBSSxDQUFDLEtBQVosS0FBc0IsSUFBN0I7QUFDRDtBQUNGLEdBUkQsTUFRTztBQUNMLFdBQU8sS0FBUDtBQUNEO0FBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7OztBQVlBLE9BQU0sTUFBTyxjQUFQLFNBQThCLElBQUksQ0FBQyxNQUFELENBQUosQ0FBYSxNQUFiLEVBQTlCLENBR0Y7QUFFSjs7Ozs7Ozs7Ozs7QUFVQSxPQUFNLE1BQU8sY0FBUCxTQUE4QixJQUFJLENBQUMsTUFBRCxDQUFKLENBQWEsTUFBYixFQUE5QixDQUErRDtBQUVyRTs7Ozs7Ozs7Ozs7Ozs7QUFhQSxPQUFNLE1BQU8sd0JBQVAsU0FBd0MsSUFBSSxDQUFDLGdCQUFELENBQUosQ0FBdUIsTUFBdkIsRUFBeEMsQ0FHRjtBQUVKOzs7Ozs7OztBQU9BLE9BQU0sTUFBTyxxQkFBUCxTQUFxQyxJQUFJLENBQUMsYUFBRCxDQUFKLENBQW9CLE1BQXBCLEVBQXJDLENBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgU291cmNlU2xpY2UgfSBmcm9tICcuLi8uLi9zb3VyY2Uvc2xpY2UnO1xuaW1wb3J0IHR5cGUgeyBDYWxsRmllbGRzIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG5vZGUgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHR5cGUgeyBGcmVlVmFyUmVmZXJlbmNlLCBWYXJpYWJsZVJlZmVyZW5jZSB9IGZyb20gJy4vcmVmcyc7XG5cbi8qKlxuICogQSBIYW5kbGViYXJzIGxpdGVyYWwuXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vaGFuZGxlYmFyc2pzLmNvbS9ndWlkZS9leHByZXNzaW9ucy5odG1sI2xpdGVyYWwtc2VnbWVudHN9XG4gKi9cbmV4cG9ydCB0eXBlIExpdGVyYWxWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpdGVyYWxUeXBlcyB7XG4gIHN0cmluZzogc3RyaW5nO1xuICBib29sZWFuOiBib29sZWFuO1xuICBudW1iZXI6IG51bWJlcjtcbiAgbnVsbDogbnVsbDtcbiAgdW5kZWZpbmVkOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBIYW5kbGViYXJzIGxpdGVyYWwuXG4gKlxuICogQHNlZSB7TGl0ZXJhbFZhbHVlfVxuICovXG5leHBvcnQgY2xhc3MgTGl0ZXJhbEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdMaXRlcmFsJykuZmllbGRzPHsgdmFsdWU6IExpdGVyYWxWYWx1ZSB9PigpIHtcbiAgdG9TbGljZSh0aGlzOiBTdHJpbmdMaXRlcmFsKTogU291cmNlU2xpY2Uge1xuICAgIHJldHVybiBuZXcgU291cmNlU2xpY2UoeyBsb2M6IHRoaXMubG9jLCBjaGFyczogdGhpcy52YWx1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBTdHJpbmdMaXRlcmFsID0gTGl0ZXJhbEV4cHJlc3Npb24gJiB7IHZhbHVlOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgYW4gaW5wdXQge0BzZWUgRXhwcmVzc2lvbk5vZGV9IGlzIGEgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGl0ZXJhbDxLIGV4dGVuZHMga2V5b2YgTGl0ZXJhbFR5cGVzID0ga2V5b2YgTGl0ZXJhbFR5cGVzPihcbiAgbm9kZTogRXhwcmVzc2lvbk5vZGUsXG4gIGtpbmQ/OiBLXG4pOiBub2RlIGlzIFN0cmluZ0xpdGVyYWwge1xuICBpZiAobm9kZS50eXBlID09PSAnTGl0ZXJhbCcpIHtcbiAgICBpZiAoa2luZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGtpbmQgPT09ICdudWxsJykge1xuICAgICAgcmV0dXJuIG5vZGUudmFsdWUgPT09IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlb2Ygbm9kZS52YWx1ZSA9PT0ga2luZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBwYXRoIGluIGV4cHJlc3Npb24gcG9zaXRpb24uXG4gKlxuICogYGBgaGJzXG4gKiB0aGlzXG4gKiB0aGlzLnhcbiAqIEB4XG4gKiBAeC55XG4gKiB4XG4gKiB4LnlcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgUGF0aEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdQYXRoJykuZmllbGRzPHtcbiAgcmVmOiBWYXJpYWJsZVJlZmVyZW5jZTtcbiAgdGFpbDogcmVhZG9ubHkgU291cmNlU2xpY2VbXTtcbn0+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBhcmVudGhlc2l6ZWQgY2FsbCBleHByZXNzaW9uLlxuICpcbiAqIGBgYGhic1xuICogKHgpXG4gKiAoeC55KVxuICogKHggeSlcbiAqICh4LnkgeilcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBub2RlKCdDYWxsJykuZmllbGRzPENhbGxGaWVsZHM+KCkge31cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHBvc3NpYmxlIGRlcHJlY2F0ZWQgaGVscGVyIGNhbGwuIE11c3QgYmU6XG4gKlxuICogMS4gQSBmcmVlIHZhcmlhYmxlIChub3QgdGhpcy5mb28sIG5vdCBAZm9vLCBub3QgbG9jYWwpLlxuICogMi4gQXJndW1lbnQtbGVzcy5cbiAqIDMuIEluIGEgY29tcG9uZW50IGludm9jYXRpb24ncyBuYW1lZCBhcmd1bWVudCBwb3NpdGlvbi5cbiAqIDQuIE5vdCBwYXJlbnRoZXNpemVkIChub3QgQGJhcj17eyhoZWxwZXIpfX0pLlxuICogNS4gTm90IGludGVycG9sYXRlZCAobm90IEBiYXI9XCJ7e2hlbHBlcn19XCIpLlxuICpcbiAqIGBgYGhic1xuICogPEZvbyBAYmFyPXt7aGVscGVyfX0gLz5cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnRGVwcmVjYXRlZENhbGwnKS5maWVsZHM8e1xuICBhcmc6IFNvdXJjZVNsaWNlO1xuICBjYWxsZWU6IEZyZWVWYXJSZWZlcmVuY2U7XG59PigpIHt9XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYW4gaW50ZXJwb2xhdGlvbiBpbiBhdHRyaWJ1dGUgdmFsdWUgcG9zaXRpb24uXG4gKlxuICogYGBgaGJzXG4gKiA8YSBocmVmPVwie3t1cmx9fS5odG1sXCJcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgSW50ZXJwb2xhdGVFeHByZXNzaW9uIGV4dGVuZHMgbm9kZSgnSW50ZXJwb2xhdGUnKS5maWVsZHM8e1xuICBwYXJ0czogUHJlc2VudEFycmF5PEV4cHJlc3Npb25Ob2RlPjtcbn0+KCkge31cblxuZXhwb3J0IHR5cGUgRXhwcmVzc2lvbk5vZGUgPVxuICB8IExpdGVyYWxFeHByZXNzaW9uXG4gIHwgUGF0aEV4cHJlc3Npb25cbiAgfCBDYWxsRXhwcmVzc2lvblxuICB8IERlcHJlY2F0ZWRDYWxsRXhwcmVzc2lvblxuICB8IEludGVycG9sYXRlRXhwcmVzc2lvbjtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -64,2 +64,10 @@ import { SourceSlice } from '../../source/slice';

deprecatedCall(call) {
return {
type: 'DeprecatedCall',
loc: call.loc.serialize(),
callee: REF.free(call.callee)
};
}
interpolate(interpolate) {

@@ -243,2 +251,5 @@ return {

case 'DeprecatedCall':
return EXPR.deprecatedCall(expr);
case 'Interpolate':

@@ -302,2 +313,2 @@ return EXPR.interpolate(expr);

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9zZXJpYWxpemUvc2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsV0FBVCxRQUE0QixvQkFBNUI7QUFpQ0EsT0FBTSxNQUFPLGFBQVAsQ0FBb0I7QUFDeEIsRUFBQSxHQUFHLENBQUMsR0FBRCxFQUF3QjtBQUN6QixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsS0FERDtBQUVMLE1BQUEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFKLENBQVEsU0FBUixFQUZBO0FBR0wsTUFBQSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUosQ0FBUyxTQUFUO0FBSEQsS0FBUDtBQUtEOztBQUVELEVBQUEsSUFBSSxDQUFDLEdBQUQsRUFBNEI7QUFDOUIsV0FBTztBQUNMLE1BQUEsSUFBSSxFQUFFLE1BREQ7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBSixDQUFRLFNBQVIsRUFGQTtBQUdMLE1BQUEsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFKLENBQWUsU0FBZixFQUhQO0FBSUwsTUFBQSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBSkwsS0FBUDtBQU1EOztBQUVELEVBQUEsS0FBSyxDQUFDLEdBQUQsRUFBNkI7QUFDaEMsV0FBTztBQUNMLE1BQUEsSUFBSSxFQUFFLE9BREQ7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBSixDQUFRLFNBQVIsRUFGQTtBQUdMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUhMLEtBQVA7QUFLRDs7QUFFRCxFQUFBLElBQUksQ0FBQyxHQUFELEVBQXlCO0FBQzNCLFdBQU87QUFDTCxNQUFBLElBQUksRUFBRSxNQUREO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUosQ0FBUSxTQUFSO0FBRkEsS0FBUDtBQUlEOztBQS9CdUI7QUFrQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFB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Q0FBQyxJQUFiO0FBQ0UsV0FBSyxlQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsTUFBUixDQUFlLElBQWYsQ0FBUDs7QUFDRixXQUFLLGdCQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsY0FBUixDQUF1QixJQUF2QixDQUFQOztBQUNGLFdBQUssYUFBTDtBQUNFLGVBQU8sT0FBTyxDQUFDLFdBQVIsQ0FBb0IsSUFBcEIsQ0FBUDs7QUFDRixXQUFLLFVBQUw7QUFDRSxlQUFPLE9BQU8sQ0FBQyxRQUFSLENBQWlCLElBQWpCLENBQVA7O0FBQ0YsV0FBSyxhQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsV0FBUixDQUFvQixJQUFwQixDQUFQOztBQUNGLFdBQUssaUJBQUw7QUFDRSxlQUFPLE9BQU8sQ0FBQyxlQUFSLENBQXdCLElBQXhCLENBQVA7O0FBQ0YsV0FBSyxlQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsYUFBUixDQUFzQixJQUF0QixDQUFQO0FBZEo7QUFnQkQ7O0FBcERXLENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgU291cmNlU2xpY2UgfSBmcm9tICcuLi8uLi9zb3VyY2Uvc2xpY2UnO1xuaW1wb3J0ICogYXMgQVNUdjIgZnJvbSAnLi4vYXBpJztcbmltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplZEFwcGVuZENvbnRlbnQsXG4gIFNlcmlhbGl6ZWRBcmdSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRBcmdzLFxuICBTZXJpYWxpemVkQXR0ck9yQXJnLFxuICBTZXJpYWxpemVkQmxvY2ssXG4gIFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZENvbnRlbnROb2RlLFxuICBTZXJpYWxpemVkRWxlbWVudE1vZGlmaWVyLFxuICBTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGUsXG4gIFNlcmlhbGl6ZWRGcmVlVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkR2xpbW1lckNvbW1lbnQsXG4gIFNlcmlhbGl6ZWRIdG1sQ29tbWVudCxcbiAgU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0cixcbiAgU2VyaWFsaXplZEh0bWxUZXh0LFxuICBTZXJpYWxpemVkSW50ZXJwb2xhdGVFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkSW52b2tlQmxvY2ssXG4gIFNlcmlhbGl6ZWRJbnZva2VDb21wb25lbnQsXG4gIFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkTmFtZWQsXG4gIFNlcmlhbGl6ZWROYW1lZEFyZ3VtZW50LFxuICBTZXJpYWxpemVkTmFtZWRCbG9jayxcbiAgU2VyaWFsaXplZE5hbWVkQmxvY2tzLFxuICBTZXJpYWxpemVkUGF0aEV4cHJlc3Npb24sXG4gIFNlcmlhbGl6ZWRQb3NpdGlvbmFsLFxuICBTZXJpYWxpemVkU2ltcGxlRWxlbWVudCxcbiAgU2VyaWFsaXplZFRoaXNSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRWYXJpYWJsZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBSZWZTZXJpYWxpemVyIHtcbiAgYXJnKHJlZjogQVNUdjIuQXJnUmVmZXJlbmNlKTogU2VyaWFsaXplZEFyZ1JlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBcmcnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogcmVmLm5hbWUuc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxuXG4gIGZyZWUocmVmOiBBU1R2Mi5GcmVlVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZEZyZWVWYXJSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRnJlZScsXG4gICAgICBsb2M6IHJlZi5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZXNvbHV0aW9uOiByZWYucmVzb2x1dGlvbi5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBsb2NhbChyZWY6IEFTVHYyLkxvY2FsVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0xvY2FsJyxcbiAgICAgIGxvYzogcmVmLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBzZWxmKHJlZjogQVNUdjIuVGhpc1JlZmVyZW5jZSk6IFNlcmlhbGl6ZWRUaGlzUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RoaXMnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgUkVGID0gbmV3IFJlZlNlcmlhbGl6ZXIoKTtcblxuZXhwb3J0IGNsYXNzIEV4cHJTZXJpYWxpemVyIHtcbiAgbGl0ZXJhbChsaXRlcmFsOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdMaXRlcmFsJyxcbiAgICAgIGxvYzogbGl0ZXJhbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogbGl0ZXJhbC52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcGF0aChwYXRoOiBBU1R2Mi5QYXRoRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRQYXRoRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdQYXRoJyxcbiAgICAgIGxvYzogcGF0aC5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZWY6IHZpc2l0LnJlZihwYXRoLnJlZiksXG4gICAgICB0YWlsOiBwYXRoLnRhaWwubWFwKCh0KSA9PiB0LnNlcmlhbGl6ZSgpKSxcbiAgICB9O1xuICB9XG5cbiAgY2FsbChjYWxsOiBBU1R2Mi5DYWxsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDYWxsJyxcbiAgICAgIGxvYzogY2FsbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIoY2FsbC5jYWxsZWUpLFxuICAgICAgYXJnczogQVJHUy5hcmdzKGNhbGwuYXJncyksXG4gICAgfTtcbiAgfVxuXG4gIGludGVycG9sYXRlKGludGVycG9sYXRlOiBBU1R2Mi5JbnRlcnBvbGF0ZUV4cHJlc3Npb24pOiBTZXJpYWxpemVkSW50ZXJwb2xhdGVFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0ludGVycG9sYXRlJyxcbiAgICAgIGxvYzogaW50ZXJwb2xhdGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgcGFydHM6IGludGVycG9sYXRlLnBhcnRzLm1hcCgocCkgPT4gdmlzaXQuZXhwcihwKSkgYXMgUHJlc2VudEFycmF5PFNlcmlhbGl6ZWRFeHByZXNzaW9uTm9kZT4sXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBFWFBSID0gbmV3IEV4cHJTZXJpYWxpemVyKCk7XG5cbmNsYXNzIEFyZ3NTZXJpYWxpemVyIHtcbiAgYXJncyhhcmdzOiBBU1R2Mi5BcmdzKTogU2VyaWFsaXplZEFyZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IGFyZ3MubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgcG9zaXRpb25hbDogdGhpcy5wb3NpdGlvbmFsKGFyZ3MucG9zaXRpb25hbCksXG4gICAgICBuYW1lZDogdGhpcy5uYW1lZChhcmdzLm5hbWVkKSxcbiAgICB9O1xuICB9XG5cbiAgcG9zaXRpb25hbChwb3NpdGlvbmFsOiBBU1R2Mi5Qb3NpdGlvbmFsQXJndW1lbnRzKTogU2VyaWFsaXplZFBvc2l0aW9uYWwge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IHBvc2l0aW9uYWwubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgZXhwcnM6IHBvc2l0aW9uYWwuZXhwcnMubWFwKChwKSA9PiB2aXNpdC5leHByKHApKSxcbiAgICB9O1xuICB9XG5cbiAgbmFtZWQobmFtZWQ6IEFTVHYyLk5hbWVkQXJndW1lbnRzKTogU2VyaWFsaXplZE5hbWVkIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBuYW1lZC5sb2Muc2VyaWFsaXplKCksXG4gICAgICBlbnRyaWVzOiBuYW1lZC5lbnRyaWVzLm1hcCgoZSkgPT4gdGhpcy5lbnRyeShlKSksXG4gICAgfTtcbiAgfVxuXG4gIGVudHJ5KGVudHJ5OiBBU1R2Mi5OYW1lZEFyZ3VtZW50KTogU2VyaWFsaXplZE5hbWVkQXJndW1lbnQge1xuICAgIHJldHVybiBbZW50cnkubmFtZS5zZXJpYWxpemUoKSwgdmlzaXQuZXhwcihlbnRyeS52YWx1ZSldO1xuICB9XG59XG5cbmNvbnN0IEFSR1MgPSBuZXcgQXJnc1NlcmlhbGl6ZXIoKTtcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRTZXJpYWxpemVyIHtcbiAgYXBwZW5kKG5vZGU6IEFTVHYyLkFwcGVuZENvbnRlbnQpOiBTZXJpYWxpemVkQXBwZW5kQ29udGVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBcHBlbmQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHZhbHVlOiB2aXNpdC5leHByKG5vZGUudmFsdWUpLFxuICAgICAgdHJ1c3Rpbmc6IG5vZGUudHJ1c3RpbmcsXG4gICAgfTtcbiAgfVxuXG4gIGdsaW1tZXJDb21tZW50KG5vZGU6IEFTVHYyLkdsaW1tZXJDb21tZW50KTogU2VyaWFsaXplZEdsaW1tZXJDb21tZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0dsaW1tZXJDb21tZW50JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICB0ZXh0OiBub2RlLnRleHQuc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxuXG4gIGh0bWxDb21tZW50KG5vZGU6IEFTVHYyLkh0bWxDb21tZW50KTogU2VyaWFsaXplZEh0bWxDb21tZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0h0bWxDb21tZW50JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICB0ZXh0OiBub2RlLnRleHQuc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxuXG4gIGh0bWxUZXh0KG5vZGU6IEFTVHYyLkh0bWxUZXh0KTogU2VyaWFsaXplZEh0bWxUZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0h0bWxUZXh0JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjaGFyczogbm9kZS5jaGFycyxcbiAgICB9O1xuICB9XG5cbiAgaW52b2tlQmxvY2sobm9kZTogQVNUdjIuSW52b2tlQmxvY2spOiBTZXJpYWxpemVkSW52b2tlQmxvY2sge1xuICAgIGxldCBhcmdzID0gQVJHUy5hcmdzKG5vZGUuYXJncyk7XG4gICAgbGV0IGNhbGxlZSA9IHZpc2l0LmV4cHIobm9kZS5jYWxsZWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdJbnZva2VCbG9jaycsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgYXJncyxcbiAgICAgIGNhbGxlZSxcbiAgICAgIGJsb2NrczogSU5URVJOQUwubmFtZWRCbG9ja3Mobm9kZS5ibG9ja3MpLFxuICAgIH07XG4gIH1cblxuICBpbnZva2VDb21wb25lbnQobm9kZTogQVNUdjIuSW52b2tlQ29tcG9uZW50KTogU2VyaWFsaXplZEludm9rZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdJbnZva2VDb21wb25lbnQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNhbGxlZTogdmlzaXQuZXhwcihub2RlLmNhbGxlZSksXG4gICAgICBibG9ja3M6IElOVEVSTkFMLm5hbWVkQmxvY2tzKG5vZGUuYmxvY2tzKSxcbiAgICAgIGF0dHJzOiBub2RlLmF0dHJzLm1hcCgoYSkgPT4gdmlzaXQuYXR0cihhKSksXG4gICAgICBjb21wb25lbnRBcmdzOiBub2RlLmNvbXBvbmVudEFyZ3MubWFwKChhKSA9PiBBVFRSUy5hcmcoYSkpLFxuICAgICAgbW9kaWZpZXJzOiBub2RlLm1vZGlmaWVycy5tYXAoKG0pID0+IEFUVFJTLm1vZGlmaWVyKG0pKSxcbiAgICB9O1xuICB9XG5cbiAgc2ltcGxlRWxlbWVudChub2RlOiBBU1R2Mi5TaW1wbGVFbGVtZW50KTogU2VyaWFsaXplZFNpbXBsZUVsZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnU2ltcGxlRWxlbWVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdGFnOiBub2RlLnRhZy5zZXJpYWxpemUoKSxcbiAgICAgIGJvZHk6IG5vZGUuYm9keS5tYXAoKGIpID0+IHZpc2l0LmNvbnRlbnQoYikpLFxuICAgICAgYXR0cnM6IG5vZGUuYXR0cnMubWFwKChhKSA9PiB2aXNpdC5hdHRyKGEpKSxcbiAgICAgIGNvbXBvbmVudEFyZ3M6IG5vZGUuY29tcG9uZW50QXJncy5tYXAoKGEpID0+IEFUVFJTLmFyZyhhKSksXG4gICAgICBtb2RpZmllcnM6IG5vZGUubW9kaWZpZXJzLm1hcCgobSkgPT4gQVRUUlMubW9kaWZpZXIobSkpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgQ09OVEVOVCA9IG5ldyBDb250ZW50U2VyaWFsaXplcigpO1xuXG5jbGFzcyBBdHRyQmxvY2tTZXJpYWxpemVyIHtcbiAgbW9kaWZpZXIobm9kZTogQVNUdjIuRWxlbWVudE1vZGlmaWVyKTogU2VyaWFsaXplZEVsZW1lbnRNb2RpZmllciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIobm9kZS5jYWxsZWUpLFxuICAgICAgYXJnczogQVJHUy5hcmdzKG5vZGUuYXJncyksXG4gICAgfTtcbiAgfVxuXG4gIGFyZyhub2RlOiBBU1R2Mi5Db21wb25lbnRBcmcpOiBTZXJpYWxpemVkQXR0ck9yQXJnIHtcbiAgICByZXR1cm4gdGhpcy5hbnlBdHRyKG5vZGUpO1xuICB9XG5cbiAgYW55QXR0cihub2RlOiBBU1R2Mi5Db21wb25lbnRBcmcgfCBBU1R2Mi5IdG1sQXR0cik6IFNlcmlhbGl6ZWRBdHRyT3JBcmcge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogbm9kZS5uYW1lLnNlcmlhbGl6ZSgpLFxuICAgICAgdmFsdWU6IHZpc2l0LmV4cHIobm9kZS52YWx1ZSksXG4gICAgICB0cnVzdGluZzogbm9kZS50cnVzdGluZyxcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IEFUVFJTID0gbmV3IEF0dHJCbG9ja1NlcmlhbGl6ZXIoKTtcblxuY2xhc3MgSW50ZXJuYWxTZXJpYWxpemVyIHtcbiAgYmxvY2sobm9kZTogQVNUdjIuQmxvY2spOiBTZXJpYWxpemVkQmxvY2sge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgYm9keTogbm9kZS5ib2R5Lm1hcCgoYikgPT4gdmlzaXQuY29udGVudChiKSksXG4gICAgICB0YWJsZTogbm9kZS5zY29wZS5sb2NhbHMsXG4gICAgfTtcbiAgfVxuXG4gIG5hbWVkQmxvY2sobm9kZTogQVNUdjIuTmFtZWRCbG9jayk6IFNlcmlhbGl6ZWROYW1lZEJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogbm9kZS5uYW1lLnNlcmlhbGl6ZSgpLFxuICAgICAgYmxvY2s6IElOVEVSTkFMLmJsb2NrKG5vZGUuYmxvY2spLFxuICAgIH07XG4gIH1cblxuICBuYW1lZEJsb2Nrcyhub2RlOiBBU1R2Mi5OYW1lZEJsb2Nrcyk6IFNlcmlhbGl6ZWROYW1lZEJsb2NrcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJsb2Nrczogbm9kZS5ibG9ja3MubWFwKChiKSA9PiBJTlRFUk5BTC5uYW1lZEJsb2NrKGIpKSxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBJTlRFUk5BTCA9IG5ldyBJbnRlcm5hbFNlcmlhbGl6ZXIoKTtcblxuY29uc3QgdmlzaXQgPSB7XG4gIGV4cHIoZXhwcjogQVNUdjIuRXhwcmVzc2lvbk5vZGUpOiBTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGUge1xuICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICBjYXNlICdMaXRlcmFsJzpcbiAgICAgICAgcmV0dXJuIEVYUFIubGl0ZXJhbChleHByKTtcbiAgICAgIGNhc2UgJ1BhdGgnOlxuICAgICAgICByZXR1cm4gRVhQUi5wYXRoKGV4cHIpO1xuICAgICAgY2FzZSAnQ2FsbCc6XG4gICAgICAgIHJldHVybiBFWFBSLmNhbGwoZXhwcik7XG4gICAgICBjYXNlICdJbnRlcnBvbGF0ZSc6XG4gICAgICAgIHJldHVybiBFWFBSLmludGVycG9sYXRlKGV4cHIpO1xuICAgIH1cbiAgfSxcblxuICBhdHRyKG5vZGU6IEFTVHYyLkh0bWxPclNwbGF0QXR0cik6IFNlcmlhbGl6ZWRIdG1sT3JTcGxhdEF0dHIge1xuICAgIGlmIChub2RlLnR5cGUgPT09ICdTcGxhdEF0dHInKSB7XG4gICAgICByZXR1cm4gbmV3IFNvdXJjZVNsaWNlKHsgbG9jOiBub2RlLmxvYywgY2hhcnM6ICcuLi5hdHRyaWJ1dGVzJyB9KS5zZXJpYWxpemUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEFUVFJTLmFueUF0dHIobm9kZSk7XG4gICAgfVxuICB9LFxuXG4gIHJlZihyZWY6IEFTVHYyLlZhcmlhYmxlUmVmZXJlbmNlKTogU2VyaWFsaXplZFZhcmlhYmxlUmVmZXJlbmNlIHtcbiAgICBzd2l0Y2ggKHJlZi50eXBlKSB7XG4gICAgICBjYXNlICdBcmcnOlxuICAgICAgICByZXR1cm4gUkVGLmFyZyhyZWYpO1xuICAgICAgY2FzZSAnRnJlZSc6XG4gICAgICAgIHJldHVybiBSRUYuZnJlZShyZWYpO1xuICAgICAgY2FzZSAnTG9jYWwnOlxuICAgICAgICByZXR1cm4gUkVGLmxvY2FsKHJlZik7XG4gICAgICBjYXNlICdUaGlzJzpcbiAgICAgICAgcmV0dXJuIFJFRi5zZWxmKHJlZik7XG4gICAgfVxuICB9LFxuXG4gIGNvbnRlbnQobm9kZTogQVNUdjIuQ29udGVudE5vZGUpOiBTZXJpYWxpemVkQ29udGVudE5vZGUge1xuICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgICBjYXNlICdBcHBlbmRDb250ZW50JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuYXBwZW5kKG5vZGUpO1xuICAgICAgY2FzZSAnR2xpbW1lckNvbW1lbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5nbGltbWVyQ29tbWVudChub2RlKTtcbiAgICAgIGNhc2UgJ0h0bWxDb21tZW50JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaHRtbENvbW1lbnQobm9kZSk7XG4gICAgICBjYXNlICdIdG1sVGV4dCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmh0bWxUZXh0KG5vZGUpO1xuICAgICAgY2FzZSAnSW52b2tlQmxvY2snOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5pbnZva2VCbG9jayhub2RlKTtcbiAgICAgIGNhc2UgJ0ludm9rZUNvbXBvbmVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmludm9rZUNvbXBvbmVudChub2RlKTtcbiAgICAgIGNhc2UgJ1NpbXBsZUVsZW1lbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5zaW1wbGVFbGVtZW50KG5vZGUpO1xuICAgIH1cbiAgfSxcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9zZXJpYWxpemUvc2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsV0FBVCxRQUE0QixvQkFBNUI7QUFrQ0EsT0FBTSxNQUFPLGFBQVAsQ0FBb0I7QUFDeEIsRUFBQSxHQUFHLENBQUMsR0FBRCxFQUF3QjtBQUN6QixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsS0FERDtBQUVMLE1BQUEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFKLENBQVEsU0FBUixFQUZBO0FBR0wsTUFBQSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUosQ0FBUyxTQUFUO0FBSEQsS0FBUDtBQUtEOztBQUVELEVBQUEsSUFBSSxDQUFDLEdBQUQsRUFBNEI7QUFDOUIsV0FBTztBQUNMLE1BQUEsSUFBSSxFQUFFLE1BREQ7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBSixDQUFRLFNBQVIsRUFGQTtBQUdMLE1BQUEsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFKLENBQWUsU0FBZixFQUhQO0FBSUwsTUFBQSxJQUFJLEVBQUUsR0FBRyxDQUFDO0FBSkwsS0FBUDtBQU1EOztBQUVELEVBQUEsS0FBSyxDQUFDLEdBQUQsRUFBNkI7QUFDaEMsV0FBTztBQUNMLE1BQUEsSUFBSSxFQUFFLE9BREQ7QUFFTCxNQUFBLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBSixDQUFRLFNBQVIsRUFGQTtBQUdMLE1BQUEsSUFBSSxFQUFFLEdBQUcsQ0FBQztBQUhMLEtBQVA7QUFLRDs7QUFFRCxFQUFBLElBQUksQ0FBQyxHQUFELEVBQXlCO0FBQzNCLFdBQU87QUFDTCxNQUFBLElBQUksRUFBRSxNQUREO0FBRUwsTUFBQSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUosQ0FBUSxTQUFSO0FBRkEsS0FBUDtBQUlEOztBQS9CdUI7QUFrQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFB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LENBQVEsR0FBUixDQUFQOztBQUNGLFdBQUssTUFBTDtBQUNFLGVBQU8sR0FBRyxDQUFDLElBQUosQ0FBUyxHQUFULENBQVA7O0FBQ0YsV0FBSyxPQUFMO0FBQ0UsZUFBTyxHQUFHLENBQUMsS0FBSixDQUFVLEdBQVYsQ0FBUDs7QUFDRixXQUFLLE1BQUw7QUFDRSxlQUFPLEdBQUcsQ0FBQyxJQUFKLENBQVMsR0FBVCxDQUFQO0FBUko7QUFVRCxHQW5DVzs7QUFxQ1osRUFBQSxPQUFPLENBQUMsSUFBRCxFQUF3QjtBQUM3QixZQUFRLElBQUksQ0FBQyxJQUFiO0FBQ0UsV0FBSyxlQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsTUFBUixDQUFlLElBQWYsQ0FBUDs7QUFDRixXQUFLLGdCQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsY0FBUixDQUF1QixJQUF2QixDQUFQOztBQUNGLFdBQUssYUFBTDtBQUNFLGVBQU8sT0FBTyxDQUFDLFdBQVIsQ0FBb0IsSUFBcEIsQ0FBUDs7QUFDRixXQUFLLFVBQUw7QUFDRSxlQUFPLE9BQU8sQ0FBQyxRQUFSLENBQWlCLElBQWpCLENBQVA7O0FBQ0YsV0FBSyxhQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsV0FBUixDQUFvQixJQUFwQixDQUFQOztBQUNGLFdBQUssaUJBQUw7QUFDRSxlQUFPLE9BQU8sQ0FBQyxlQUFSLENBQXdCLElBQXhCLENBQVA7O0FBQ0YsV0FBSyxlQUFMO0FBQ0UsZUFBTyxPQUFPLENBQUMsYUFBUixDQUFzQixJQUF0QixDQUFQO0FBZEo7QUFnQkQ7O0FBdERXLENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgU291cmNlU2xpY2UgfSBmcm9tICcuLi8uLi9zb3VyY2Uvc2xpY2UnO1xuaW1wb3J0ICogYXMgQVNUdjIgZnJvbSAnLi4vYXBpJztcbmltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplZEFwcGVuZENvbnRlbnQsXG4gIFNlcmlhbGl6ZWRBcmdSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRBcmdzLFxuICBTZXJpYWxpemVkQXR0ck9yQXJnLFxuICBTZXJpYWxpemVkQmxvY2ssXG4gIFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZENvbnRlbnROb2RlLFxuICBTZXJpYWxpemVkRGVwcmVjYXRlZENhbGxFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkRWxlbWVudE1vZGlmaWVyLFxuICBTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGUsXG4gIFNlcmlhbGl6ZWRGcmVlVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkR2xpbW1lckNvbW1lbnQsXG4gIFNlcmlhbGl6ZWRIdG1sQ29tbWVudCxcbiAgU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0cixcbiAgU2VyaWFsaXplZEh0bWxUZXh0LFxuICBTZXJpYWxpemVkSW50ZXJwb2xhdGVFeHByZXNzaW9uLFxuICBTZXJpYWxpemVkSW52b2tlQmxvY2ssXG4gIFNlcmlhbGl6ZWRJbnZva2VDb21wb25lbnQsXG4gIFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbixcbiAgU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlLFxuICBTZXJpYWxpemVkTmFtZWQsXG4gIFNlcmlhbGl6ZWROYW1lZEFyZ3VtZW50LFxuICBTZXJpYWxpemVkTmFtZWRCbG9jayxcbiAgU2VyaWFsaXplZE5hbWVkQmxvY2tzLFxuICBTZXJpYWxpemVkUGF0aEV4cHJlc3Npb24sXG4gIFNlcmlhbGl6ZWRQb3NpdGlvbmFsLFxuICBTZXJpYWxpemVkU2ltcGxlRWxlbWVudCxcbiAgU2VyaWFsaXplZFRoaXNSZWZlcmVuY2UsXG4gIFNlcmlhbGl6ZWRWYXJpYWJsZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBSZWZTZXJpYWxpemVyIHtcbiAgYXJnKHJlZjogQVNUdjIuQXJnUmVmZXJlbmNlKTogU2VyaWFsaXplZEFyZ1JlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBcmcnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgbmFtZTogcmVmLm5hbWUuc2VyaWFsaXplKCksXG4gICAgfTtcbiAgfVxuXG4gIGZyZWUocmVmOiBBU1R2Mi5GcmVlVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZEZyZWVWYXJSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRnJlZScsXG4gICAgICBsb2M6IHJlZi5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZXNvbHV0aW9uOiByZWYucmVzb2x1dGlvbi5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBsb2NhbChyZWY6IEFTVHYyLkxvY2FsVmFyUmVmZXJlbmNlKTogU2VyaWFsaXplZExvY2FsVmFyUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0xvY2FsJyxcbiAgICAgIGxvYzogcmVmLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IHJlZi5uYW1lLFxuICAgIH07XG4gIH1cblxuICBzZWxmKHJlZjogQVNUdjIuVGhpc1JlZmVyZW5jZSk6IFNlcmlhbGl6ZWRUaGlzUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RoaXMnLFxuICAgICAgbG9jOiByZWYubG9jLnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgUkVGID0gbmV3IFJlZlNlcmlhbGl6ZXIoKTtcblxuZXhwb3J0IGNsYXNzIEV4cHJTZXJpYWxpemVyIHtcbiAgbGl0ZXJhbChsaXRlcmFsOiBBU1R2Mi5MaXRlcmFsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRMaXRlcmFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdMaXRlcmFsJyxcbiAgICAgIGxvYzogbGl0ZXJhbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogbGl0ZXJhbC52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgcGF0aChwYXRoOiBBU1R2Mi5QYXRoRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRQYXRoRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdQYXRoJyxcbiAgICAgIGxvYzogcGF0aC5sb2Muc2VyaWFsaXplKCksXG4gICAgICByZWY6IHZpc2l0LnJlZihwYXRoLnJlZiksXG4gICAgICB0YWlsOiBwYXRoLnRhaWwubWFwKCh0KSA9PiB0LnNlcmlhbGl6ZSgpKSxcbiAgICB9O1xuICB9XG5cbiAgY2FsbChjYWxsOiBBU1R2Mi5DYWxsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWRDYWxsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDYWxsJyxcbiAgICAgIGxvYzogY2FsbC5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIoY2FsbC5jYWxsZWUpLFxuICAgICAgYXJnczogQVJHUy5hcmdzKGNhbGwuYXJncyksXG4gICAgfTtcbiAgfVxuXG4gIGRlcHJlY2F0ZWRDYWxsKGNhbGw6IEFTVHYyLkRlcHJlY2F0ZWRDYWxsRXhwcmVzc2lvbik6IFNlcmlhbGl6ZWREZXByZWNhdGVkQ2FsbEV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRGVwcmVjYXRlZENhbGwnLFxuICAgICAgbG9jOiBjYWxsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGNhbGxlZTogUkVGLmZyZWUoY2FsbC5jYWxsZWUpLFxuICAgIH07XG4gIH1cblxuICBpbnRlcnBvbGF0ZShpbnRlcnBvbGF0ZTogQVNUdjIuSW50ZXJwb2xhdGVFeHByZXNzaW9uKTogU2VyaWFsaXplZEludGVycG9sYXRlRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdJbnRlcnBvbGF0ZScsXG4gICAgICBsb2M6IGludGVycG9sYXRlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHBhcnRzOiBpbnRlcnBvbGF0ZS5wYXJ0cy5tYXAoKHApID0+IHZpc2l0LmV4cHIocCkpIGFzIFByZXNlbnRBcnJheTxTZXJpYWxpemVkRXhwcmVzc2lvbk5vZGU+LFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgRVhQUiA9IG5ldyBFeHByU2VyaWFsaXplcigpO1xuXG5jbGFzcyBBcmdzU2VyaWFsaXplciB7XG4gIGFyZ3MoYXJnczogQVNUdjIuQXJncyk6IFNlcmlhbGl6ZWRBcmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBhcmdzLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHBvc2l0aW9uYWw6IHRoaXMucG9zaXRpb25hbChhcmdzLnBvc2l0aW9uYWwpLFxuICAgICAgbmFtZWQ6IHRoaXMubmFtZWQoYXJncy5uYW1lZCksXG4gICAgfTtcbiAgfVxuXG4gIHBvc2l0aW9uYWwocG9zaXRpb25hbDogQVNUdjIuUG9zaXRpb25hbEFyZ3VtZW50cyk6IFNlcmlhbGl6ZWRQb3NpdGlvbmFsIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBwb3NpdGlvbmFsLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGV4cHJzOiBwb3NpdGlvbmFsLmV4cHJzLm1hcCgocCkgPT4gdmlzaXQuZXhwcihwKSksXG4gICAgfTtcbiAgfVxuXG4gIG5hbWVkKG5hbWVkOiBBU1R2Mi5OYW1lZEFyZ3VtZW50cyk6IFNlcmlhbGl6ZWROYW1lZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvYzogbmFtZWQubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgZW50cmllczogbmFtZWQuZW50cmllcy5tYXAoKGUpID0+IHRoaXMuZW50cnkoZSkpLFxuICAgIH07XG4gIH1cblxuICBlbnRyeShlbnRyeTogQVNUdjIuTmFtZWRBcmd1bWVudCk6IFNlcmlhbGl6ZWROYW1lZEFyZ3VtZW50IHtcbiAgICByZXR1cm4gW2VudHJ5Lm5hbWUuc2VyaWFsaXplKCksIHZpc2l0LmV4cHIoZW50cnkudmFsdWUpXTtcbiAgfVxufVxuXG5jb25zdCBBUkdTID0gbmV3IEFyZ3NTZXJpYWxpemVyKCk7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50U2VyaWFsaXplciB7XG4gIGFwcGVuZChub2RlOiBBU1R2Mi5BcHBlbmRDb250ZW50KTogU2VyaWFsaXplZEFwcGVuZENvbnRlbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXBwZW5kJyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICB2YWx1ZTogdmlzaXQuZXhwcihub2RlLnZhbHVlKSxcbiAgICAgIHRydXN0aW5nOiBub2RlLnRydXN0aW5nLFxuICAgIH07XG4gIH1cblxuICBnbGltbWVyQ29tbWVudChub2RlOiBBU1R2Mi5HbGltbWVyQ29tbWVudCk6IFNlcmlhbGl6ZWRHbGltbWVyQ29tbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdHbGltbWVyQ29tbWVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdGV4dDogbm9kZS50ZXh0LnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cblxuICBodG1sQ29tbWVudChub2RlOiBBU1R2Mi5IdG1sQ29tbWVudCk6IFNlcmlhbGl6ZWRIdG1sQ29tbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIdG1sQ29tbWVudCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgdGV4dDogbm9kZS50ZXh0LnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cblxuICBodG1sVGV4dChub2RlOiBBU1R2Mi5IdG1sVGV4dCk6IFNlcmlhbGl6ZWRIdG1sVGV4dCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIdG1sVGV4dCcsXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgY2hhcnM6IG5vZGUuY2hhcnMsXG4gICAgfTtcbiAgfVxuXG4gIGludm9rZUJsb2NrKG5vZGU6IEFTVHYyLkludm9rZUJsb2NrKTogU2VyaWFsaXplZEludm9rZUJsb2NrIHtcbiAgICBsZXQgYXJncyA9IEFSR1MuYXJncyhub2RlLmFyZ3MpO1xuICAgIGxldCBjYWxsZWUgPSB2aXNpdC5leHByKG5vZGUuY2FsbGVlKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSW52b2tlQmxvY2snLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGFyZ3MsXG4gICAgICBjYWxsZWUsXG4gICAgICBibG9ja3M6IElOVEVSTkFMLm5hbWVkQmxvY2tzKG5vZGUuYmxvY2tzKSxcbiAgICB9O1xuICB9XG5cbiAgaW52b2tlQ29tcG9uZW50KG5vZGU6IEFTVHYyLkludm9rZUNvbXBvbmVudCk6IFNlcmlhbGl6ZWRJbnZva2VDb21wb25lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSW52b2tlQ29tcG9uZW50JyxcbiAgICAgIGxvYzogbm9kZS5sb2Muc2VyaWFsaXplKCksXG4gICAgICBjYWxsZWU6IHZpc2l0LmV4cHIobm9kZS5jYWxsZWUpLFxuICAgICAgYmxvY2tzOiBJTlRFUk5BTC5uYW1lZEJsb2Nrcyhub2RlLmJsb2NrcyksXG4gICAgICBhdHRyczogbm9kZS5hdHRycy5tYXAoKGEpID0+IHZpc2l0LmF0dHIoYSkpLFxuICAgICAgY29tcG9uZW50QXJnczogbm9kZS5jb21wb25lbnRBcmdzLm1hcCgoYSkgPT4gQVRUUlMuYXJnKGEpKSxcbiAgICAgIG1vZGlmaWVyczogbm9kZS5tb2RpZmllcnMubWFwKChtKSA9PiBBVFRSUy5tb2RpZmllcihtKSksXG4gICAgfTtcbiAgfVxuXG4gIHNpbXBsZUVsZW1lbnQobm9kZTogQVNUdjIuU2ltcGxlRWxlbWVudCk6IFNlcmlhbGl6ZWRTaW1wbGVFbGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1NpbXBsZUVsZW1lbnQnLFxuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIHRhZzogbm9kZS50YWcuc2VyaWFsaXplKCksXG4gICAgICBib2R5OiBub2RlLmJvZHkubWFwKChiKSA9PiB2aXNpdC5jb250ZW50KGIpKSxcbiAgICAgIGF0dHJzOiBub2RlLmF0dHJzLm1hcCgoYSkgPT4gdmlzaXQuYXR0cihhKSksXG4gICAgICBjb21wb25lbnRBcmdzOiBub2RlLmNvbXBvbmVudEFyZ3MubWFwKChhKSA9PiBBVFRSUy5hcmcoYSkpLFxuICAgICAgbW9kaWZpZXJzOiBub2RlLm1vZGlmaWVycy5tYXAoKG0pID0+IEFUVFJTLm1vZGlmaWVyKG0pKSxcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IENPTlRFTlQgPSBuZXcgQ29udGVudFNlcmlhbGl6ZXIoKTtcblxuY2xhc3MgQXR0ckJsb2NrU2VyaWFsaXplciB7XG4gIG1vZGlmaWVyKG5vZGU6IEFTVHYyLkVsZW1lbnRNb2RpZmllcik6IFNlcmlhbGl6ZWRFbGVtZW50TW9kaWZpZXIge1xuICAgIHJldHVybiB7XG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgICAgY2FsbGVlOiB2aXNpdC5leHByKG5vZGUuY2FsbGVlKSxcbiAgICAgIGFyZ3M6IEFSR1MuYXJncyhub2RlLmFyZ3MpLFxuICAgIH07XG4gIH1cblxuICBhcmcobm9kZTogQVNUdjIuQ29tcG9uZW50QXJnKTogU2VyaWFsaXplZEF0dHJPckFyZyB7XG4gICAgcmV0dXJuIHRoaXMuYW55QXR0cihub2RlKTtcbiAgfVxuXG4gIGFueUF0dHIobm9kZTogQVNUdjIuQ29tcG9uZW50QXJnIHwgQVNUdjIuSHRtbEF0dHIpOiBTZXJpYWxpemVkQXR0ck9yQXJnIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIG5hbWU6IG5vZGUubmFtZS5zZXJpYWxpemUoKSxcbiAgICAgIHZhbHVlOiB2aXNpdC5leHByKG5vZGUudmFsdWUpLFxuICAgICAgdHJ1c3Rpbmc6IG5vZGUudHJ1c3RpbmcsXG4gICAgfTtcbiAgfVxufVxuXG5jb25zdCBBVFRSUyA9IG5ldyBBdHRyQmxvY2tTZXJpYWxpemVyKCk7XG5cbmNsYXNzIEludGVybmFsU2VyaWFsaXplciB7XG4gIGJsb2NrKG5vZGU6IEFTVHYyLkJsb2NrKTogU2VyaWFsaXplZEJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jOiBub2RlLmxvYy5zZXJpYWxpemUoKSxcbiAgICAgIGJvZHk6IG5vZGUuYm9keS5tYXAoKGIpID0+IHZpc2l0LmNvbnRlbnQoYikpLFxuICAgICAgdGFibGU6IG5vZGUuc2NvcGUubG9jYWxzLFxuICAgIH07XG4gIH1cblxuICBuYW1lZEJsb2NrKG5vZGU6IEFTVHYyLk5hbWVkQmxvY2spOiBTZXJpYWxpemVkTmFtZWRCbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5vZGUubmFtZS5zZXJpYWxpemUoKSxcbiAgICAgIGJsb2NrOiBJTlRFUk5BTC5ibG9jayhub2RlLmJsb2NrKSxcbiAgICB9O1xuICB9XG5cbiAgbmFtZWRCbG9ja3Mobm9kZTogQVNUdjIuTmFtZWRCbG9ja3MpOiBTZXJpYWxpemVkTmFtZWRCbG9ja3Mge1xuICAgIHJldHVybiB7XG4gICAgICBibG9ja3M6IG5vZGUuYmxvY2tzLm1hcCgoYikgPT4gSU5URVJOQUwubmFtZWRCbG9jayhiKSksXG4gICAgICBsb2M6IG5vZGUubG9jLnNlcmlhbGl6ZSgpLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3QgSU5URVJOQUwgPSBuZXcgSW50ZXJuYWxTZXJpYWxpemVyKCk7XG5cbmNvbnN0IHZpc2l0ID0ge1xuICBleHByKGV4cHI6IEFTVHYyLkV4cHJlc3Npb25Ob2RlKTogU2VyaWFsaXplZEV4cHJlc3Npb25Ob2RlIHtcbiAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgY2FzZSAnTGl0ZXJhbCc6XG4gICAgICAgIHJldHVybiBFWFBSLmxpdGVyYWwoZXhwcik7XG4gICAgICBjYXNlICdQYXRoJzpcbiAgICAgICAgcmV0dXJuIEVYUFIucGF0aChleHByKTtcbiAgICAgIGNhc2UgJ0NhbGwnOlxuICAgICAgICByZXR1cm4gRVhQUi5jYWxsKGV4cHIpO1xuICAgICAgY2FzZSAnRGVwcmVjYXRlZENhbGwnOlxuICAgICAgICByZXR1cm4gRVhQUi5kZXByZWNhdGVkQ2FsbChleHByKTtcbiAgICAgIGNhc2UgJ0ludGVycG9sYXRlJzpcbiAgICAgICAgcmV0dXJuIEVYUFIuaW50ZXJwb2xhdGUoZXhwcik7XG4gICAgfVxuICB9LFxuXG4gIGF0dHIobm9kZTogQVNUdjIuSHRtbE9yU3BsYXRBdHRyKTogU2VyaWFsaXplZEh0bWxPclNwbGF0QXR0ciB7XG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ1NwbGF0QXR0cicpIHtcbiAgICAgIHJldHVybiBuZXcgU291cmNlU2xpY2UoeyBsb2M6IG5vZGUubG9jLCBjaGFyczogJy4uLmF0dHJpYnV0ZXMnIH0pLnNlcmlhbGl6ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQVRUUlMuYW55QXR0cihub2RlKTtcbiAgICB9XG4gIH0sXG5cbiAgcmVmKHJlZjogQVNUdjIuVmFyaWFibGVSZWZlcmVuY2UpOiBTZXJpYWxpemVkVmFyaWFibGVSZWZlcmVuY2Uge1xuICAgIHN3aXRjaCAocmVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FyZyc6XG4gICAgICAgIHJldHVybiBSRUYuYXJnKHJlZik7XG4gICAgICBjYXNlICdGcmVlJzpcbiAgICAgICAgcmV0dXJuIFJFRi5mcmVlKHJlZik7XG4gICAgICBjYXNlICdMb2NhbCc6XG4gICAgICAgIHJldHVybiBSRUYubG9jYWwocmVmKTtcbiAgICAgIGNhc2UgJ1RoaXMnOlxuICAgICAgICByZXR1cm4gUkVGLnNlbGYocmVmKTtcbiAgICB9XG4gIH0sXG5cbiAgY29udGVudChub2RlOiBBU1R2Mi5Db250ZW50Tm9kZSk6IFNlcmlhbGl6ZWRDb250ZW50Tm9kZSB7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0FwcGVuZENvbnRlbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5hcHBlbmQobm9kZSk7XG4gICAgICBjYXNlICdHbGltbWVyQ29tbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmdsaW1tZXJDb21tZW50KG5vZGUpO1xuICAgICAgY2FzZSAnSHRtbENvbW1lbnQnOlxuICAgICAgICByZXR1cm4gQ09OVEVOVC5odG1sQ29tbWVudChub2RlKTtcbiAgICAgIGNhc2UgJ0h0bWxUZXh0JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaHRtbFRleHQobm9kZSk7XG4gICAgICBjYXNlICdJbnZva2VCbG9jayc6XG4gICAgICAgIHJldHVybiBDT05URU5ULmludm9rZUJsb2NrKG5vZGUpO1xuICAgICAgY2FzZSAnSW52b2tlQ29tcG9uZW50JzpcbiAgICAgICAgcmV0dXJuIENPTlRFTlQuaW52b2tlQ29tcG9uZW50KG5vZGUpO1xuICAgICAgY2FzZSAnU2ltcGxlRWxlbWVudCc6XG4gICAgICAgIHJldHVybiBDT05URU5ULnNpbXBsZUVsZW1lbnQobm9kZSk7XG4gICAgfVxuICB9LFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

3

dist/types/lib/v2-a/builders.d.ts

@@ -39,5 +39,6 @@ import type { PresentArray } from '@glimmer/interfaces';

loc: SourceSpan;
}): ASTv2.VariableReference;
}): ASTv2.FreeVarReference;
localVar(name: string, symbol: number, isTemplateLocal: boolean, loc: SourceSpan): ASTv2.VariableReference;
sexp(parts: CallParts, loc: SourceSpan): ASTv2.CallExpression;
deprecatedCall(arg: SourceSlice, callee: ASTv2.FreeVarReference, loc: SourceSpan): ASTv2.DeprecatedCallExpression;
interpolate(parts: ASTv2.ExpressionNode[], loc: SourceSpan): ASTv2.InterpolateExpression;

@@ -44,0 +45,0 @@ literal(value: string, loc: SourceSpan): ASTv2.LiteralExpression & {

import { PresentArray } from '@glimmer/interfaces';
import { SourceSlice } from '../../source/slice';
import type { CallFields } from './base';
import type { VariableReference } from './refs';
import type { FreeVarReference, VariableReference } from './refs';
/**

@@ -67,2 +67,21 @@ * A Handlebars literal.

}
declare const DeprecatedCallExpression_base: import("./node").TypedNodeConstructor<"DeprecatedCall", {
arg: SourceSlice;
callee: FreeVarReference;
} & import("./node").BaseNodeFields>;
/**
* Corresponds to a possible deprecated helper call. Must be:
*
* 1. A free variable (not this.foo, not @foo, not local).
* 2. Argument-less.
* 3. In a component invocation's named argument position.
* 4. Not parenthesized (not @bar={{(helper)}}).
* 5. Not interpolated (not @bar="{{helper}}").
*
* ```hbs
* <Foo @bar={{helper}} />
* ```
*/
export declare class DeprecatedCallExpression extends DeprecatedCallExpression_base {
}
declare const InterpolateExpression_base: import("./node").TypedNodeConstructor<"Interpolate", {

@@ -80,4 +99,4 @@ parts: PresentArray<ExpressionNode>;

}
export declare type ExpressionNode = LiteralExpression | PathExpression | CallExpression | InterpolateExpression;
export declare type ExpressionNode = LiteralExpression | PathExpression | CallExpression | DeprecatedCallExpression | InterpolateExpression;
export {};
//# sourceMappingURL=expr.d.ts.map
import * as ASTv2 from '../api';
import type { SerializedAppendContent, SerializedArgReference, SerializedCallExpression, SerializedFreeVarReference, SerializedGlimmerComment, SerializedHtmlComment, SerializedHtmlText, SerializedInterpolateExpression, SerializedInvokeBlock, SerializedInvokeComponent, SerializedLiteralExpression, SerializedLocalVarReference, SerializedPathExpression, SerializedSimpleElement, SerializedThisReference } from './types';
import type { SerializedAppendContent, SerializedArgReference, SerializedCallExpression, SerializedDeprecatedCallExpression, SerializedFreeVarReference, SerializedGlimmerComment, SerializedHtmlComment, SerializedHtmlText, SerializedInterpolateExpression, SerializedInvokeBlock, SerializedInvokeComponent, SerializedLiteralExpression, SerializedLocalVarReference, SerializedPathExpression, SerializedSimpleElement, SerializedThisReference } from './types';
export declare class RefSerializer {

@@ -13,2 +13,3 @@ arg(ref: ASTv2.ArgReference): SerializedArgReference;

call(call: ASTv2.CallExpression): SerializedCallExpression;
deprecatedCall(call: ASTv2.DeprecatedCallExpression): SerializedDeprecatedCallExpression;
interpolate(interpolate: ASTv2.InterpolateExpression): SerializedInterpolateExpression;

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

@@ -45,3 +45,7 @@ import type { PresentArray } from '@glimmer/interfaces';

}
export declare type SerializedExpressionNode = SerializedLiteralExpression | SerializedPathExpression | SerializedCallExpression | SerializedInterpolateExpression;
export interface SerializedDeprecatedCallExpression extends SerializedBaseNode {
type: 'DeprecatedCall';
callee: SerializedFreeVarReference;
}
export declare type SerializedExpressionNode = SerializedLiteralExpression | SerializedPathExpression | SerializedCallExpression | SerializedDeprecatedCallExpression | SerializedInterpolateExpression;
export interface SerializedArgs extends SerializedBaseNode {

@@ -48,0 +52,0 @@ positional: SerializedPositional;

{
"name": "@glimmer/syntax",
"version": "0.77.6",
"version": "0.78.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/syntax",
"dependencies": {
"@glimmer/interfaces": "0.77.6",
"@glimmer/util": "0.77.6",
"@glimmer/interfaces": "0.78.0",
"@glimmer/util": "0.78.0",
"@handlebars/parser": "~2.0.0",

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

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

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

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc