Socket
Socket
Sign inDemoInstall

@glimmer/opcode-compiler

Package Overview
Dependencies
7
Maintainers
12
Versions
240
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.77.6 to 0.78.0

14

dist/commonjs/es2017/lib/opcode-builder/helpers/resolution.js

@@ -6,2 +6,3 @@ "use strict";

});
exports.isGetFreeDeprecatedHelper = isGetFreeDeprecatedHelper;
exports.resolveComponent = resolveComponent;

@@ -55,2 +56,9 @@ exports.resolveHelper = resolveHelper;

exports.isGetFreeOptionalHelper = isGetFreeOptionalHelper;
function isGetFreeDeprecatedHelper(opcode) {
return Array.isArray(opcode) && opcode[0] === 99
/* GetFreeAsDeprecatedHelperHeadOrThisFallback */
;
}
const isGetFreeOptionalComponentOrHelper = makeResolutionTypeVerifier(34

@@ -268,3 +276,3 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

}]) {
false && (0, _util.assert)(isGetFreeOptionalHelper(expr), 'Attempted to resolve a helper with incorrect opcode');
false && (0, _util.assert)(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode');
let {

@@ -280,3 +288,3 @@ upvars,

} else {
ifHelper(constants.helper(helper, name));
ifHelper(constants.helper(helper, name), name, meta.moduleName);
}

@@ -371,2 +379,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFnQkE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxNQURLLElBRTREO0FBQ2pFLFFBQUksQ0FBQyxjQUFjLENBQW5CLE1BQW1CLENBQW5CLEVBQTZCLE9BQUEsS0FBQTtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLENBQWlCLENBQWpCO0FBRUEsV0FDRSxJQUFJLEtBQUE7QUFBQTtBQUFKLE9BQ0EsSUFBSSxLQUFBO0FBQUE7QUFESixPQUVBLElBQUksS0FITixZQUFBO0FBUEYsR0FBQTtBQWFEOztBQUVNLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEOztBQUVBLE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXBEOztBQUVBLE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDs7QUFFQSxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDs7QUFJQSxNQUFNLHVCQUF1QixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUExRDs7QUFJQSxNQUFNLGtDQUFrQyxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRTs7O0FBU1AsU0FBQSx3QkFBQSxDQUFBLElBQUEsRUFBMEQ7QUFDeEQsTUFBQSxVQUFBLEVBQVc7QUFDVCxRQUFJLENBQUMsSUFBSSxDQUFU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UixlQUFBLENBQUEsSUFBQSxFQUFqQixLQUFpQixDQUFqQjs7QUFFQSxRQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLE1BQUEsV0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFVBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFSLFlBQUEsQ0FBQSxJQUFBLEVBQWIsS0FBYSxDQUFiOztBQUVBLFFBQUksTUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVQsSUFBUyxDQUFELENBQVI7QUFDQTtBQUNEOztBQUVELElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBS2M7QUFFWixNQUFJO0FBQUUsSUFBQTtBQUFGLE1BQWEsd0JBQXdCLENBQXpDLElBQXlDLENBQXpDO0FBRUEsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixtQkFBQSxDQUFiLElBQWEsQ0FBYjs7QUFFQSxNQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUNKLDBCQUEwQixJQUFJLGdFQUM1QixJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FBakIsQ0FBaUIsQ0FBakIsQ0FGSixFQUFNLENBQU47QUFLRDs7QUFFRCxTQUFPLFNBQVMsQ0FBVCxNQUFBLENBQUEsTUFBQSxFQUFQLElBQU8sQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKFxuICAgICAgY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gIGV4cHI6IEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIGNvbnN0YW50czogUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHR5cGU6IHN0cmluZ1xuKTogbnVtYmVyIHtcbiAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluSGVscGVyKG5hbWUpO1xuXG4gIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAvLyBLZXl3b3JkIGhlbHBlciBkaWQgbm90IGV4aXN0LCB3aGljaCBtZWFucyB0aGF0IHdlJ3JlIGF0dGVtcHRpbmcgdG8gdXNlIGFcbiAgICAvLyB2YWx1ZSBvZiBzb21lIGtpbmQgdGhhdCBpcyBub3QgaW4gc2NvcGVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSAke3R5cGV9IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBZ0JBOztBQUVBLFNBQUEsY0FBQSxDQUFBLE1BQUEsRUFBc0Q7QUFDcEQsU0FBTyxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLE1BQUEsS0FBaEMsQ0FBQTtBQUNEOztBQUVELFNBQUEsMEJBQUEsQ0FBQSxZQUFBLEVBQTZEO0FBQzNELFNBQ0UsTUFESyxJQUU0RDtBQUNqRSxRQUFJLENBQUMsY0FBYyxDQUFuQixNQUFtQixDQUFuQixFQUE2QixPQUFBLEtBQUE7QUFFN0IsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixDQUFpQixDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBSE4sWUFBQTtBQVBGLEdBQUE7QUFhRDs7QUFFTSxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDs7QUFFQSxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDs7QUFFQSxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBbEQ7O0FBRUEsTUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7O0FBSUEsTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7OztBQUlELFNBQUEseUJBQUEsQ0FBQSxNQUFBLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFMLE9BQUEsQ0FBQSxNQUFBLEtBQXlCLE1BQU0sQ0FBTixDQUFNLENBQU4sS0FBUztBQUFBO0FBRHBDO0FBR0Q7O0FBRU0sTUFBTSxr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LENBQWpCLENBRkosRUFBTSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBUCxJQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihcbiAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0UGF0aEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2sge1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGVbMF0gPT09IFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oXG4gICAgICBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSB8fCBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlciA9PT0gbnVsbCkge1xuICAgIGlmRmFsbGJhY2sobmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSksIG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gIGV4cHI6IEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIGNvbnN0YW50czogUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHR5cGU6IHN0cmluZ1xuKTogbnVtYmVyIHtcbiAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluSGVscGVyKG5hbWUpO1xuXG4gIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAvLyBLZXl3b3JkIGhlbHBlciBkaWQgbm90IGV4aXN0LCB3aGljaCBtZWFucyB0aGF0IHdlJ3JlIGF0dGVtcHRpbmcgdG8gdXNlIGFcbiAgICAvLyB2YWx1ZSBvZiBzb21lIGtpbmQgdGhhdCBpcyBub3QgaW4gc2NvcGVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSAke3R5cGV9IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -86,5 +86,2 @@ "use strict";

function CallDynamic(op, positional, named, append) {
op(35
/* Load */
, _vm.$v0);
op(0

@@ -94,5 +91,8 @@ /* PushFrame */

(0, _shared.SimpleArgs)(op, positional, named, false);
op(33
/* Dup */
, _vm.$fp, 1);
op(107
/* DynamicHelper */
, _vm.$v0);
);

@@ -103,3 +103,3 @@ if (append) {

, _vm.$v0);
append === null || append === void 0 ? void 0 : append();
append();
op(1

@@ -159,2 +159,2 @@ /* PopFrame */

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFTQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFVQTs7OztBQUlNLFNBQUEsc0JBQUEsQ0FBQSxFQUFBLEVBQUEsS0FBQSxFQUF1RTtBQUMzRSxFQUFBLGFBQWEsQ0FBQSxFQUFBLEVBQWIsS0FBYSxDQUFiO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRDtBQUVEOzs7Ozs7O0FBS00sU0FBQSxhQUFBLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBa0U7QUFDdEUsTUFBSSxDQUFDLEdBQUwsU0FBQTs7QUFFQSxNQUFJLE9BQUEsQ0FBQSxLQUFKLFFBQUEsRUFBMkI7QUFDekIsSUFBQSxDQUFDLEdBQUcsc0JBQUEsQ0FBQSxJQUFnQiwyQkFBaEIsQ0FBZ0IsQ0FBaEIsR0FBcUMsa0NBQXpDLENBQXlDLENBQXpDO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsQ0FBRSxDQUFGO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztBQVFNLFNBQUEsSUFBQSxDQUFBLEVBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFJdUI7QUFFM0IsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsTUFBRSxDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFDRDtBQUVEOzs7Ozs7Ozs7QUFPTSxTQUFBLFdBQUEsQ0FBQSxFQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBSWU7QUFFbkIsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsT0FBRSxDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsT0FBRSxDQUFGOztBQUNBLE1BQUEsTUFBQSxFQUFZO0FBQ1YsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUYsT0FBRSxDQUFGO0FBQ0EsSUFBQSxNQUFNLEtBQU4sSUFBQSxJQUFBLE1BQU0sS0FBQSxLQUFOLENBQUEsR0FBTSxLQUFOLENBQUEsR0FBQSxNQUFBLEVBQUE7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUhGLEdBQUEsTUFJTztBQUNMLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0EsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUYsT0FBRSxDQUFGO0FBQ0Q7QUFDRjtBQUVEOzs7Ozs7Ozs7O0FBUU0sU0FBQSxZQUFBLENBQUEsRUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQThFO0FBQ2xGLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsS0FBRSxDQUFGO0FBQ0EsRUFBQSxLQUFLO0FBQ0wsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRDs7QUFFSyxTQUFBLEtBQUEsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUt1QjtBQUUzQixFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLDBCQUFVLEVBQVYsRUFBVSxVQUFWLEVBQVUsS0FBVixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLGtCQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUEsSUFBQSxFQUFGLDZCQUFFLENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLE9BQUUsQ0FBRjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgT3B0aW9uLFxuICBPcCxcbiAgTWFjaGluZU9wLFxuICBXaXJlRm9ybWF0LFxuICBOb25TbWFsbEludE9wZXJhbmQsXG4gIEN1cnJpZWRUeXBlLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGVuY29kZUltbWVkaWF0ZSwgaXNTbWFsbEludCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4vc2hhcmVkJztcbmltcG9ydCB7IFB1c2hFeHByZXNzaW9uT3AsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4uLy4uL3N5bnRheC9jb21waWxlcnMnO1xuaW1wb3J0IHsgaXNTdHJpY3RNb2RlLCBub25TbWFsbEludE9wZXJhbmQgfSBmcm9tICcuLi9vcGVyYW5kcyc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi9leHByJztcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gdW5kZWZpbmVkIHwgbnVsbCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZUhlbHBlciB7XG4gIGhhbmRsZTogbnVtYmVyO1xuICBwb3NpdGlvbmFsOiBPcHRpb248V2lyZUZvcm1hdC5Db3JlLlBhcmFtcz47XG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaDtcbn1cblxuLyoqXG4gKiBQdXNoIGEgcmVmZXJlbmNlIG9udG8gdGhlIHN0YWNrIGNvcnJlc3BvbmRpbmcgdG8gYSBzdGF0aWNhbGx5IGtub3duIHByaW1pdGl2ZVxuICogQHBhcmFtIHZhbHVlIEEgSmF2YVNjcmlwdCBwcmltaXRpdmUgKHVuZGVmaW5lZCwgbnVsbCwgYm9vbGVhbiwgbnVtYmVyIG9yIHN0cmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3A6IFB1c2hFeHByZXNzaW9uT3AsIHZhbHVlOiBQcmltaXRpdmUpOiB2b2lkIHtcbiAgUHVzaFByaW1pdGl2ZShvcCwgdmFsdWUpO1xuICBvcChPcC5QcmltaXRpdmVSZWZlcmVuY2UpO1xufVxuXG4vKipcbiAqIFB1c2ggYW4gZW5jb2RlZCByZXByZXNlbnRhdGlvbiBvZiBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIG9uIHRoZSBzdGFja1xuICpcbiAqIEBwYXJhbSB2YWx1ZSBBIEphdmFTY3JpcHQgcHJpbWl0aXZlICh1bmRlZmluZWQsIG51bGwsIGJvb2xlYW4sIG51bWJlciBvciBzdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXNoUHJpbWl0aXZlKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwcmltaXRpdmU6IFByaW1pdGl2ZSk6IHZvaWQge1xuICBsZXQgcDogUHJpbWl0aXZlIHwgTm9uU21hbGxJbnRPcGVyYW5kID0gcHJpbWl0aXZlO1xuXG4gIGlmICh0eXBlb2YgcCA9PT0gJ251bWJlcicpIHtcbiAgICBwID0gaXNTbWFsbEludChwKSA/IGVuY29kZUltbWVkaWF0ZShwKSA6IG5vblNtYWxsSW50T3BlcmFuZChwKTtcbiAgfVxuXG4gIG9wKE9wLlByaW1pdGl2ZSwgcCk7XG59XG5cbi8qKlxuICogSW52b2tlIGEgZm9yZWlnbiBmdW5jdGlvbiAoYSBcImhlbHBlclwiKSBiYXNlZCBvbiBhIHN0YXRpY2FsbHkga25vd24gaGFuZGxlXG4gKlxuICogQHBhcmFtIG9wIFRoZSBvcCBjcmVhdGlvbiBmdW5jdGlvblxuICogQHBhcmFtIGhhbmRsZSBBIGhhbmRsZVxuICogQHBhcmFtIHBvc2l0aW9uYWwgQW4gb3B0aW9uYWwgbGlzdCBvZiBleHByZXNzaW9ucyB0byBjb21waWxlXG4gKiBAcGFyYW0gbmFtZWQgQW4gb3B0aW9uYWwgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMgKG5hbWUgKyBleHByZXNzaW9uKSB0byBjb21waWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYWxsKFxuICBvcDogUHVzaEV4cHJlc3Npb25PcCxcbiAgaGFuZGxlOiBudW1iZXIsXG4gIHBvc2l0aW9uYWw6IFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMsXG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaFxuKTogdm9pZCB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICBvcChPcC5IZWxwZXIsIGhhbmRsZSk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufVxuXG4vKipcbiAqIEludm9rZSBhIGZvcmVpZ24gZnVuY3Rpb24gKGEgXCJoZWxwZXJcIikgYmFzZWQgb24gYSBkeW5hbWljYWxseSBsb2FkZWQgZGVmaW5pdGlvblxuICpcbiAqIEBwYXJhbSBvcCBUaGUgb3AgY3JlYXRpb24gZnVuY3Rpb25cbiAqIEBwYXJhbSBwb3NpdGlvbmFsIEFuIG9wdGlvbmFsIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gY29tcGlsZVxuICogQHBhcmFtIG5hbWVkIEFuIG9wdGlvbmFsIGxpc3Qgb2YgbmFtZWQgYXJndW1lbnRzIChuYW1lICsgZXhwcmVzc2lvbikgdG8gY29tcGlsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FsbER5bmFtaWMoXG4gIG9wOiBQdXNoRXhwcmVzc2lvbk9wLFxuICBwb3NpdGlvbmFsOiBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zLFxuICBuYW1lZDogV2lyZUZvcm1hdC5Db3JlLkhhc2gsXG4gIGFwcGVuZD86ICgpID0+IHZvaWRcbik6IHZvaWQge1xuICBvcChPcC5Mb2FkLCAkdjApO1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgb3AoT3AuRHluYW1pY0hlbHBlciwgJHYwKTtcbiAgaWYgKGFwcGVuZCkge1xuICAgIG9wKE9wLkZldGNoLCAkdjApO1xuICAgIGFwcGVuZD8uKCk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIG9wKE9wLkZldGNoLCAkdjApO1xuICB9XG59XG5cbi8qKlxuICogRXZhbHVhdGUgc3RhdGVtZW50cyBpbiB0aGUgY29udGV4dCBvZiBuZXcgZHluYW1pYyBzY29wZSBlbnRyaWVzLiBNb3ZlIGVudHJpZXMgZnJvbSB0aGVcbiAqIHN0YWNrIGludG8gbmFtZWQgZW50cmllcyBpbiB0aGUgZHluYW1pYyBzY29wZSwgdGhlbiBldmFsdWF0ZSB0aGUgc3RhdGVtZW50cywgdGhlbiBwb3BcbiAqIHRoZSBkeW5hbWljIHNjb3BlXG4gKlxuICogQHBhcmFtIG5hbWVzIGEgbGlzdCBvZiBkeW5hbWljIHNjb3BlIG5hbWVzXG4gKiBAcGFyYW0gYmxvY2sgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBsaXN0IG9mIHN0YXRlbWVudHMgdG8gZXZhbHVhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIER5bmFtaWNTY29wZShvcDogUHVzaFN0YXRlbWVudE9wLCBuYW1lczogc3RyaW5nW10sIGJsb2NrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIG9wKE9wLlB1c2hEeW5hbWljU2NvcGUpO1xuICBvcChPcC5CaW5kRHluYW1pY1Njb3BlLCBuYW1lcyk7XG4gIGJsb2NrKCk7XG4gIG9wKE9wLlBvcER5bmFtaWNTY29wZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDdXJyeShcbiAgb3A6IFB1c2hFeHByZXNzaW9uT3AsXG4gIHR5cGU6IEN1cnJpZWRUeXBlLFxuICBkZWZpbml0aW9uOiBXaXJlRm9ybWF0LkV4cHJlc3Npb24sXG4gIHBvc2l0aW9uYWw6IFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMsXG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaFxuKTogdm9pZCB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICBvcChPcC5DYXB0dXJlQXJncyk7XG4gIGV4cHIob3AsIGRlZmluaXRpb24pO1xuICBvcChPcC5DdXJyeSwgdHlwZSwgaXNTdHJpY3RNb2RlKCkpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFTQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFVQTs7OztBQUlNLFNBQUEsc0JBQUEsQ0FBQSxFQUFBLEVBQUEsS0FBQSxFQUF1RTtBQUMzRSxFQUFBLGFBQWEsQ0FBQSxFQUFBLEVBQWIsS0FBYSxDQUFiO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRDtBQUVEOzs7Ozs7O0FBS00sU0FBQSxhQUFBLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBa0U7QUFDdEUsTUFBSSxDQUFDLEdBQUwsU0FBQTs7QUFFQSxNQUFJLE9BQUEsQ0FBQSxLQUFKLFFBQUEsRUFBMkI7QUFDekIsSUFBQSxDQUFDLEdBQUcsc0JBQUEsQ0FBQSxJQUFnQiwyQkFBaEIsQ0FBZ0IsQ0FBaEIsR0FBcUMsa0NBQXpDLENBQXlDLENBQXpDO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsQ0FBRSxDQUFGO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztBQVFNLFNBQUEsSUFBQSxDQUFBLEVBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFJdUI7QUFFM0IsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsTUFBRSxDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFDRDtBQUVEOzs7Ozs7Ozs7QUFPTSxTQUFBLFdBQUEsQ0FBQSxFQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBSWU7QUFFbkIsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUEsT0FBQSxFQUFGLENBQUUsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGOztBQUNBLE1BQUEsTUFBQSxFQUFZO0FBQ1YsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUYsT0FBRSxDQUFGO0FBQ0EsSUFBQSxNQUFNO0FBQ04sSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFIRixHQUFBLE1BSU87QUFDTCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFGLE9BQUUsQ0FBRjtBQUNEO0FBQ0Y7QUFFRDs7Ozs7Ozs7OztBQVFNLFNBQUEsWUFBQSxDQUFBLEVBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUE4RTtBQUNsRixFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLEtBQUUsQ0FBRjtBQUNBLEVBQUEsS0FBSztBQUNMLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0Q7O0FBRUssU0FBQSxLQUFBLENBQUEsRUFBQSxFQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFLdUI7QUFFM0IsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxrQkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLElBQUEsRUFBRiw2QkFBRSxDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ICRmcCwgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgT3B0aW9uLFxuICBPcCxcbiAgTWFjaGluZU9wLFxuICBXaXJlRm9ybWF0LFxuICBOb25TbWFsbEludE9wZXJhbmQsXG4gIEN1cnJpZWRUeXBlLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGVuY29kZUltbWVkaWF0ZSwgaXNTbWFsbEludCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4vc2hhcmVkJztcbmltcG9ydCB7IFB1c2hFeHByZXNzaW9uT3AsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4uLy4uL3N5bnRheC9jb21waWxlcnMnO1xuaW1wb3J0IHsgaXNTdHJpY3RNb2RlLCBub25TbWFsbEludE9wZXJhbmQgfSBmcm9tICcuLi9vcGVyYW5kcyc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi9leHByJztcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gdW5kZWZpbmVkIHwgbnVsbCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZUhlbHBlciB7XG4gIGhhbmRsZTogbnVtYmVyO1xuICBwb3NpdGlvbmFsOiBPcHRpb248V2lyZUZvcm1hdC5Db3JlLlBhcmFtcz47XG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaDtcbn1cblxuLyoqXG4gKiBQdXNoIGEgcmVmZXJlbmNlIG9udG8gdGhlIHN0YWNrIGNvcnJlc3BvbmRpbmcgdG8gYSBzdGF0aWNhbGx5IGtub3duIHByaW1pdGl2ZVxuICogQHBhcmFtIHZhbHVlIEEgSmF2YVNjcmlwdCBwcmltaXRpdmUgKHVuZGVmaW5lZCwgbnVsbCwgYm9vbGVhbiwgbnVtYmVyIG9yIHN0cmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3A6IFB1c2hFeHByZXNzaW9uT3AsIHZhbHVlOiBQcmltaXRpdmUpOiB2b2lkIHtcbiAgUHVzaFByaW1pdGl2ZShvcCwgdmFsdWUpO1xuICBvcChPcC5QcmltaXRpdmVSZWZlcmVuY2UpO1xufVxuXG4vKipcbiAqIFB1c2ggYW4gZW5jb2RlZCByZXByZXNlbnRhdGlvbiBvZiBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIG9uIHRoZSBzdGFja1xuICpcbiAqIEBwYXJhbSB2YWx1ZSBBIEphdmFTY3JpcHQgcHJpbWl0aXZlICh1bmRlZmluZWQsIG51bGwsIGJvb2xlYW4sIG51bWJlciBvciBzdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXNoUHJpbWl0aXZlKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwcmltaXRpdmU6IFByaW1pdGl2ZSk6IHZvaWQge1xuICBsZXQgcDogUHJpbWl0aXZlIHwgTm9uU21hbGxJbnRPcGVyYW5kID0gcHJpbWl0aXZlO1xuXG4gIGlmICh0eXBlb2YgcCA9PT0gJ251bWJlcicpIHtcbiAgICBwID0gaXNTbWFsbEludChwKSA/IGVuY29kZUltbWVkaWF0ZShwKSA6IG5vblNtYWxsSW50T3BlcmFuZChwKTtcbiAgfVxuXG4gIG9wKE9wLlByaW1pdGl2ZSwgcCk7XG59XG5cbi8qKlxuICogSW52b2tlIGEgZm9yZWlnbiBmdW5jdGlvbiAoYSBcImhlbHBlclwiKSBiYXNlZCBvbiBhIHN0YXRpY2FsbHkga25vd24gaGFuZGxlXG4gKlxuICogQHBhcmFtIG9wIFRoZSBvcCBjcmVhdGlvbiBmdW5jdGlvblxuICogQHBhcmFtIGhhbmRsZSBBIGhhbmRsZVxuICogQHBhcmFtIHBvc2l0aW9uYWwgQW4gb3B0aW9uYWwgbGlzdCBvZiBleHByZXNzaW9ucyB0byBjb21waWxlXG4gKiBAcGFyYW0gbmFtZWQgQW4gb3B0aW9uYWwgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMgKG5hbWUgKyBleHByZXNzaW9uKSB0byBjb21waWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYWxsKFxuICBvcDogUHVzaEV4cHJlc3Npb25PcCxcbiAgaGFuZGxlOiBudW1iZXIsXG4gIHBvc2l0aW9uYWw6IFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMsXG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaFxuKTogdm9pZCB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICBvcChPcC5IZWxwZXIsIGhhbmRsZSk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufVxuXG4vKipcbiAqIEludm9rZSBhIGZvcmVpZ24gZnVuY3Rpb24gKGEgXCJoZWxwZXJcIikgYmFzZWQgb24gYSBkeW5hbWljYWxseSBsb2FkZWQgZGVmaW5pdGlvblxuICpcbiAqIEBwYXJhbSBvcCBUaGUgb3AgY3JlYXRpb24gZnVuY3Rpb25cbiAqIEBwYXJhbSBwb3NpdGlvbmFsIEFuIG9wdGlvbmFsIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gY29tcGlsZVxuICogQHBhcmFtIG5hbWVkIEFuIG9wdGlvbmFsIGxpc3Qgb2YgbmFtZWQgYXJndW1lbnRzIChuYW1lICsgZXhwcmVzc2lvbikgdG8gY29tcGlsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FsbER5bmFtaWMoXG4gIG9wOiBQdXNoRXhwcmVzc2lvbk9wLFxuICBwb3NpdGlvbmFsOiBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zLFxuICBuYW1lZDogV2lyZUZvcm1hdC5Db3JlLkhhc2gsXG4gIGFwcGVuZD86ICgpID0+IHZvaWRcbik6IHZvaWQge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICBvcChPcC5EeW5hbWljSGVscGVyKTtcbiAgaWYgKGFwcGVuZCkge1xuICAgIG9wKE9wLkZldGNoLCAkdjApO1xuICAgIGFwcGVuZCgpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICBvcChPcC5GZXRjaCwgJHYwKTtcbiAgfVxufVxuXG4vKipcbiAqIEV2YWx1YXRlIHN0YXRlbWVudHMgaW4gdGhlIGNvbnRleHQgb2YgbmV3IGR5bmFtaWMgc2NvcGUgZW50cmllcy4gTW92ZSBlbnRyaWVzIGZyb20gdGhlXG4gKiBzdGFjayBpbnRvIG5hbWVkIGVudHJpZXMgaW4gdGhlIGR5bmFtaWMgc2NvcGUsIHRoZW4gZXZhbHVhdGUgdGhlIHN0YXRlbWVudHMsIHRoZW4gcG9wXG4gKiB0aGUgZHluYW1pYyBzY29wZVxuICpcbiAqIEBwYXJhbSBuYW1lcyBhIGxpc3Qgb2YgZHluYW1pYyBzY29wZSBuYW1lc1xuICogQHBhcmFtIGJsb2NrIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbGlzdCBvZiBzdGF0ZW1lbnRzIHRvIGV2YWx1YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEeW5hbWljU2NvcGUob3A6IFB1c2hTdGF0ZW1lbnRPcCwgbmFtZXM6IHN0cmluZ1tdLCBibG9jazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICBvcChPcC5QdXNoRHluYW1pY1Njb3BlKTtcbiAgb3AoT3AuQmluZER5bmFtaWNTY29wZSwgbmFtZXMpO1xuICBibG9jaygpO1xuICBvcChPcC5Qb3BEeW5hbWljU2NvcGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ3VycnkoXG4gIG9wOiBQdXNoRXhwcmVzc2lvbk9wLFxuICB0eXBlOiBDdXJyaWVkVHlwZSxcbiAgZGVmaW5pdGlvbjogV2lyZUZvcm1hdC5FeHByZXNzaW9uLFxuICBwb3NpdGlvbmFsOiBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zLFxuICBuYW1lZDogV2lyZUZvcm1hdC5Db3JlLkhhc2hcbik6IHZvaWQge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgb3AoT3AuQ2FwdHVyZUFyZ3MpO1xuICBleHByKG9wLCBkZWZpbml0aW9uKTtcbiAgb3AoT3AuQ3VycnksIHR5cGUsIGlzU3RyaWN0TW9kZSgpKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

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

let propertyPath = path ? [name, ...path].join('.') : name;
(0, _globalContext.deprecate)(`The \`${propertyPath}\` property path was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
(0, _globalContext.deprecate)(`The \`${propertyPath}\` property path was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
id: 'this-property-fallback'

@@ -119,3 +119,3 @@ });

, (op, expr) => {
// <Foo @arg={{baz}}>
// <div id={{baz}}>
op(1010

@@ -131,3 +131,3 @@ /* ResolveLocal */

ifFallback: (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'

@@ -145,2 +145,34 @@ });

});
EXPRESSIONS.add(99
/* GetFreeAsDeprecatedHelperHeadOrThisFallback */
, (op, expr) => {
// <Foo @bar={{baz}}>
op(1010
/* ResolveLocal */
, expr[1], _name => {
op(1006
/* ResolveOptionalHelper */
, expr, {
ifHelper: (handle, name, moduleName) => {
(0, _globalContext.assert)(expr[2] && expr[2].length === 1, '[BUG] Missing argument name');
let arg = expr[2][0];
(0, _globalContext.deprecate)(`The \`${name}\` helper was used in the \`${moduleName}\` template as \`${arg}={{${name}}}\`. ` + `This is ambigious between wanting the \`${arg}\` argument to be the \`${name}\` helper itself, ` + `or the result of invoking the \`${name}\` helper (current behavior). ` + `This implicit invocation behavior has been deprecated.\n\n` + `Instead, please explicitly invoke the helper with parenthesis, i.e. \`${arg}={{(${name})}}\`.\n\n` + `Note: the parenthesis are only required in this exact scenario where an ambiguity is present – where ` + `\`${name}\` referes to a global helper (as opposed to a local variable), AND ` + `the \`${name}\` helper invocation does not take any arguments, AND ` + `this occurs in a named argument position of a component invocation.\n\n` + `We expect this combination to be quite rare, as most helpers require at least one argument. ` + `There is no need to refactor helper invocations in cases where this deprecation was not triggered.`, false, {
id: 'argument-less-helper-paren-less-invocation'
});
(0, _vm2.Call)(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}
});
});
});

@@ -226,2 +258,2 @@ function withPath(op, path) {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxF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QUNBLGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0Esa0JBQUksRUFBSixFQUFBLE1BQUE7QUFDQSxrQkFBSSxFQUFKLEVBQUEsU0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBTEYsQ0FBQTtBQVFBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUEsRUFBQSxFQUFLLEdBQUwsS0FBSyxDQUFMLEtBQWtCO0FBQ2pELGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMkMsQ0FBQSxFQUFBLEVBQUssR0FBTCxVQUFLLENBQUwsS0FBdUI7QUFDaEUsa0JBQUksRUFBSixFQUFBLFVBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxDQUFBLEVBQUEsRUFBSyxHQUFMLFVBQUssQ0FBTCxLQUF1QjtBQUN0RCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLDBCQUFVLEVBQVYsRUFBVSxVQUFWLEVBQVUsSUFBVixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsT0FBRSxDQUFGO0FBTEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4cHJlc3Npb25TZXhwT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2Rlcyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdjAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBkZXByZWNhdGUgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCBmcmVlVmFyLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZnJlZVZhciwgKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgcHJvcGVydHlQYXRoID0gcGF0aCA/IFtuYW1lLCAuLi5wYXRoXS5qb2luKCcuJykgOiBuYW1lO1xuXG4gICAgICBkZXByZWNhdGUoXG4gICAgICAgIGBUaGUgXFxgJHtwcm9wZXJ0eVBhdGh9XFxgIHByb3BlcnR5IHBhdGggd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBhcmc9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjazogKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIHRlbXBsYXRlIGZvciB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCBjb21wb25lbnQgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxF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ZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

, value[1], (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'

@@ -545,2 +545,2 @@ });

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENB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Q0FBNEMsQ0FBckMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb21wb25lbnQsXG4gIENvbnRlbnRUeXBlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgU3RhdGVtZW50U2V4cE9wY29kZSxcbiAgV2VsbEtub3duQXR0ck5hbWUsXG4gIFdlbGxLbm93blRhZ05hbWUsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJGZwLCAkc3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9jayxcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIFlpZWxkQmxvY2ssXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmltcG9ydCB7XG4gIEludm9rZUNvbXBvbmVudCxcbiAgSW52b2tlRHluYW1pY0NvbXBvbmVudCxcbiAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50LFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoQ2FzZXMsIFJlcGxheWFibGUsIFJlcGxheWFibGVJZiB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29uZGl0aW9uYWwnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBDb21waWxlUG9zaXRpb25hbCwgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7XG4gIENhbGwsXG4gIENhbGxEeW5hbWljLFxuICBEeW5hbWljU2NvcGUsXG4gIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgZXZhbFN5bWJvbHNPcGVyYW5kLCBsYWJlbE9wZXJhbmQsIHN0ZGxpYk9wZXJhbmQgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9vcGVyYW5kcyc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4vY29tcGlsZXJzJztcbmltcG9ydCB7XG4gIGlzR2V0RnJlZUNvbXBvbmVudCxcbiAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIsXG4gIGlzR2V0RnJlZU1vZGlmaWVyLFxuICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgbmFtZWRCbG9ja3MgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURU1FTlRTID0gbmV3IENvbXBpbGVyczxQdXNoU3RhdGVtZW50T3AsIFN0YXRlbWVudFNleHBPcGNvZGU+KCk7XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVBdHRyTmFtZShhdHRyTmFtZTogc3RyaW5nIHwgV2VsbEtub3duQXR0ck5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIGF0dHJOYW1lID09PSAnc3RyaW5nJyA/IGF0dHJOYW1lIDogSU5GTEFURV9BVFRSX1RBQkxFW2F0dHJOYW1lXTtcbn1cblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tbWVudCwgKG9wLCBzZXhwKSA9PiBvcChPcC5Db21tZW50LCBzZXhwWzFdKSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5DbG9zZUVsZW1lbnQsIChvcCkgPT4gb3AoT3AuQ2xvc2VFbGVtZW50KSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5GbHVzaEVsZW1lbnQsIChvcCkgPT4gb3AoT3AuRmx1c2hFbGVtZW50KSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk1vZGlmaWVyLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlTW9kaWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgICBvcChPcC5Nb2RpZmllciwgaGFuZGxlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgb3AoT3AuRHluYW1pY01vZGlmaWVyKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdEeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50V2l0aFNwbGF0LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuUHV0Q29tcG9uZW50T3BlcmF0aW9ucyk7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnQsIChvcCwgWywgZXhwciwgZWxlbWVudEJsb2NrLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlLCB0aGUgY29tcG9uZW50IG5hbWUgd2FzIGFuIGV4cHJlc3Npb24sIHNvIHJlc29sdmUgdGhlIGV4cHJlc3Npb25cbiAgICAvLyBhbmQgaW52b2tlIGl0IGFzIGEgZHluYW1pYyBjb21wb25lbnRcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MsIHRydWUsIHRydWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuUGFydGlhbCwgKG9wLCBbLCBuYW1lLCBldmFsSW5mb10pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIG5hbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuSW52b2tlUGFydGlhbCwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKTtcbiAgICAgIG9wKE9wLlBvcFNjb3BlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjayhfbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgdmFsdWVbMV0sIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiBhIHRlbXBsYXRlIGZvciB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCBjb21wb25lbnQgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENB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Q0FBNEMsQ0FBckMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb21wb25lbnQsXG4gIENvbnRlbnRUeXBlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgU3RhdGVtZW50U2V4cE9wY29kZSxcbiAgV2VsbEtub3duQXR0ck5hbWUsXG4gIFdlbGxLbm93blRhZ05hbWUsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJGZwLCAkc3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9jayxcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIFlpZWxkQmxvY2ssXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmltcG9ydCB7XG4gIEludm9rZUNvbXBvbmVudCxcbiAgSW52b2tlRHluYW1pY0NvbXBvbmVudCxcbiAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50LFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoQ2FzZXMsIFJlcGxheWFibGUsIFJlcGxheWFibGVJZiB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29uZGl0aW9uYWwnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBDb21waWxlUG9zaXRpb25hbCwgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7XG4gIENhbGwsXG4gIENhbGxEeW5hbWljLFxuICBEeW5hbWljU2NvcGUsXG4gIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgZXZhbFN5bWJvbHNPcGVyYW5kLCBsYWJlbE9wZXJhbmQsIHN0ZGxpYk9wZXJhbmQgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9vcGVyYW5kcyc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4vY29tcGlsZXJzJztcbmltcG9ydCB7XG4gIGlzR2V0RnJlZUNvbXBvbmVudCxcbiAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIsXG4gIGlzR2V0RnJlZU1vZGlmaWVyLFxuICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgbmFtZWRCbG9ja3MgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURU1FTlRTID0gbmV3IENvbXBpbGVyczxQdXNoU3RhdGVtZW50T3AsIFN0YXRlbWVudFNleHBPcGNvZGU+KCk7XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVBdHRyTmFtZShhdHRyTmFtZTogc3RyaW5nIHwgV2VsbEtub3duQXR0ck5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIGF0dHJOYW1lID09PSAnc3RyaW5nJyA/IGF0dHJOYW1lIDogSU5GTEFURV9BVFRSX1RBQkxFW2F0dHJOYW1lXTtcbn1cblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tbWVudCwgKG9wLCBzZXhwKSA9PiBvcChPcC5Db21tZW50LCBzZXhwWzFdKSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5DbG9zZUVsZW1lbnQsIChvcCkgPT4gb3AoT3AuQ2xvc2VFbGVtZW50KSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5GbHVzaEVsZW1lbnQsIChvcCkgPT4gb3AoT3AuRmx1c2hFbGVtZW50KSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk1vZGlmaWVyLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlTW9kaWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgICBvcChPcC5Nb2RpZmllciwgaGFuZGxlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgb3AoT3AuRHluYW1pY01vZGlmaWVyKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdEeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50V2l0aFNwbGF0LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuUHV0Q29tcG9uZW50T3BlcmF0aW9ucyk7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnQsIChvcCwgWywgZXhwciwgZWxlbWVudEJsb2NrLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlLCB0aGUgY29tcG9uZW50IG5hbWUgd2FzIGFuIGV4cHJlc3Npb24sIHNvIHJlc29sdmUgdGhlIGV4cHJlc3Npb25cbiAgICAvLyBhbmQgaW52b2tlIGl0IGFzIGEgZHluYW1pYyBjb21wb25lbnRcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MsIHRydWUsIHRydWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuUGFydGlhbCwgKG9wLCBbLCBuYW1lLCBldmFsSW5mb10pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIG5hbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuSW52b2tlUGFydGlhbCwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKTtcbiAgICAgIG9wKE9wLlBvcFNjb3BlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjayhfbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgdmFsdWVbMV0sIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh2YWx1ZVswXSA9PT0gU2V4cE9wY29kZXMuQ2FsbCkge1xuICAgIGxldCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0gPSB2YWx1ZTtcblxuICAgIGlmIChpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByZXNzaW9uKSkge1xuICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsIGV4cHJlc3Npb24sIHtcbiAgICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgU3dpdGNoQ2FzZXMoXG4gICAgICAgIG9wLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgb3AoT3AuRHluYW1pY0NvbnRlbnRUeXBlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKHdoZW4pID0+IHtcbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkNvbXBvbmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgb3AoT3AuUmVzb2x2ZUN1cnJpZWRDb21wb25lbnQpO1xuICAgICAgICAgICAgb3AoT3AuUHVzaER5bmFtaWNDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICAgICAgICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQob3AsIHtcbiAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICBlbGVtZW50QmxvY2s6IG51bGwsXG4gICAgICAgICAgICAgIHBvc2l0aW9uYWwsXG4gICAgICAgICAgICAgIG5hbWVkLFxuICAgICAgICAgICAgICBhdE5hbWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmxvY2tzOiBuYW1lZEJsb2NrcyhudWxsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5IZWxwZXIsICgpID0+IHtcbiAgICAgICAgICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdBcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgndHJ1c3RpbmctYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5CbG9jaywgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbkVsZW1lbnQsIChvcCwgWywgYmxvY2ssIGd1aWQsIGRlc3RpbmF0aW9uLCBpbnNlcnRCZWZvcmVdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGd1aWQpO1xuXG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHIob3AsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIGRlc3RpbmF0aW9uKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDQ7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLlB1c2hSZW1vdGVFbGVtZW50KTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgICBvcChPcC5Qb3BSZW1vdGVFbGVtZW50KTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSWYsIChvcCwgWywgY29uZGl0aW9uLCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBjb25kaXRpb24pO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSxcblxuICAgIGludmVyc2VcbiAgICAgID8gKCkgPT4ge1xuICAgICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRWFjaCwgKG9wLCBbLCB2YWx1ZSwga2V5LCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGUoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGV4cHIob3AsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuRW50ZXJMaXN0LCBsYWJlbE9wZXJhbmQoJ0JPRFknKSwgbGFiZWxPcGVyYW5kKCdFTFNFJykpO1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgICBvcChNYWNoaW5lT3AuUmV0dXJuVG8sIGxhYmVsT3BlcmFuZCgnSVRFUicpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdJVEVSJyk7XG4gICAgICBvcChPcC5JdGVyYXRlLCBsYWJlbE9wZXJhbmQoJ0JSRUFLJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JPRFknKTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMik7XG4gICAgICBvcChPcC5Qb3AsIDIpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCUkVBSycpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIG9wKE9wLkV4aXRMaXN0KTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnRUxTRScpO1xuXG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoLCAob3AsIFssIHZhbHVlLCBibG9jaywgaW52ZXJzZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMSk7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTGV0LCAob3AsIFssIHBvc2l0aW9uYWwsIGJsb2NrXSkgPT4ge1xuICBsZXQgY291bnQgPSBDb21waWxlUG9zaXRpb25hbChvcCwgcG9zaXRpb25hbCk7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgY291bnQpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGhEeW5hbWljVmFycywgKG9wLCBbLCBuYW1lZCwgYmxvY2tdKSA9PiB7XG4gIGlmIChuYW1lZCkge1xuICAgIGxldCBbbmFtZXMsIGV4cHJlc3Npb25zXSA9IG5hbWVkO1xuXG4gICAgQ29tcGlsZVBvc2l0aW9uYWwob3AsIGV4cHJlc3Npb25zKTtcbiAgICBEeW5hbWljU2NvcGUob3AsIG5hbWVzLCAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbnZva2VDb21wb25lbnQsIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuZnVuY3Rpb24gaGFzaFRvQXJncyhoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwpOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwge1xuICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIGxldCBuYW1lcyA9IGhhc2hbMF0ubWFwKChrZXkpID0+IGBAJHtrZXl9YCk7XG4gIHJldHVybiBbbmFtZXMgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLCBoYXNoWzFdXTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -35,2 +35,7 @@ import { DEBUG } from '@glimmer/env';

);
export function isGetFreeDeprecatedHelper(opcode) {
return Array.isArray(opcode) && opcode[0] === 99
/* GetFreeAsDeprecatedHelperHeadOrThisFallback */
;
}
export const isGetFreeOptionalComponentOrHelper = makeResolutionTypeVerifier(34

@@ -243,3 +248,3 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

}]) {
(false && assert(isGetFreeOptionalHelper(expr), 'Attempted to resolve a helper with incorrect opcode'));
(false && assert(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode'));
let {

@@ -255,3 +260,3 @@ upvars,

} else {
ifHelper(constants.helper(helper, name));
ifHelper(constants.helper(helper, name), name, meta.moduleName);
}

@@ -345,2 +350,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFPLE1BQU0sa0NBQWtDLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJFOztBQVNQLFNBQVMs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LDBCQUEwQixJQUFJLGdFQUM1QixJQUFJLENBQUMsTUFBTCxDQUFhLElBQUksQ0FBQyxDQUFELENBQWpCLENBQ0YsRUFISSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQUMsTUFBVixDQUFpQixNQUFqQixFQUEwQixJQUExQixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oXG4gICAgICBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIgPT09IG51bGwpIHtcbiAgICBpZkZhbGxiYWNrKG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFNLFNBQVUseUJBQVYsQ0FDSixNQURJLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFDLE9BQU4sQ0FB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QUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUQsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxtQkFBVCxDQUE2QixJQUE3QixDQUFiOztBQUVBLE1BQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxJQUF4QixFQUE4QjtBQUM1QjtBQUNBO0FBQ0EsVUFBTSxJQUFJLEtBQUosQ0FDSiwwQkFBMEIsSUFBSSxnRUFDNUIsSUFBSSxDQUFDLE1BQUwsQ0FBYSxJQUFJLENBQUMsQ0FBRCxDQUFqQixDQUNGLEVBSEksQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFDLE1BQVYsQ0FBaUIsTUFBakIsRUFBMEIsSUFBMUIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKFxuICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRQYXRoRnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjayB7XG4gIHJldHVybiAoXG4gICAgQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZVswXSA9PT0gU2V4cE9wY29kZXMuR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuICApO1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuaW50ZXJmYWNlIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIGV4dGVuZHMgQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgb3duZXI6IE93bmVyO1xuICB1cHZhcnM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YTogQ29udGFpbmluZ01ldGFkYXRhKTogUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAoIW1ldGEudXB2YXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIGZyZWUgdmFycyB3ZXJlIGZvdW5kJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEub3duZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gb3duZXIgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgaXQgd2FzIGJlaW5nIHJlc29sdmVkIGZyb20nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiA8Rm9vLz5cbiAqIDxGb28+PC9Gb28+XG4gKiA8Rm9vIEBhcmc9e3t0cnVlfX0gLz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVDb21wb25lbnRPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVDb21wb25lbnQoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKERFQlVHICYmIGV4cHJbMF0gPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihcbiAgICAgIGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJylcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50LCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiAoaGVscGVyKVxuICogKGhlbHBlciBhcmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aGVuKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICdoZWxwZXInKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lciEpITtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogPGRpdiB7e21vZGlmaWVyfX0vPlxuICogPGRpdiB7e21vZGlmaWVyIGFyZ319Lz5cbiAqIDxGb28ge3ttb2RpZmllcn19Lz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZU1vZGlmaWVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlTW9kaWZpZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluTW9kaWZpZXIobmFtZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IGl0IHdhcyBub3QgaW4gc2NvcGU6ICR7bmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyISwgbmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBNb2RpZmllcihuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBtb2RpZmllciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7Y29tcG9uZW50LW9yLWhlbHBlciBhcmd9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyIH1dOiBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QsIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGVpdGhlciBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBpdCBkaWQgbm90IGhhdmUgYSBjb21wb25lbnQgbWFuYWdlciBvciBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWZIZWxwZXIoZXhwZWN0KGhlbHBlciwgJ0JVRzogaGVscGVyIG11c3QgZXhpc3QnKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgICAgICAgZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICAgICAgICByZXNvbHZlcixcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uc3RhbnRzLFxuICAgICAgICAnY29tcG9uZW50IG9yIGhlbHBlcidcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIDxGb28gQGFyZz17e2hlbHBlcn19PlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZIZWxwZXIsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbEhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyKGV4cHIpIHx8IGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSwgbmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -1,2 +0,2 @@

import { $v0 } from '@glimmer/vm';
import { $fp, $v0 } from '@glimmer/vm';
import { encodeImmediate, isSmallInt } from '@glimmer/util';

@@ -67,5 +67,2 @@ import { SimpleArgs } from './shared';

export function CallDynamic(op, positional, named, append) {
op(35
/* Load */
, $v0);
op(0

@@ -75,5 +72,8 @@ /* PushFrame */

SimpleArgs(op, positional, named, false);
op(33
/* Dup */
, $fp, 1);
op(107
/* DynamicHelper */
, $v0);
);

@@ -84,3 +84,3 @@ if (append) {

, $v0);
append === null || append === void 0 ? void 0 : append();
append();
op(1

@@ -138,2 +138,2 @@ /* PopFrame */

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEdBQVQsUUFBb0IsYUFBcEI7QUFTQSxTQUFTLGVBQVQsRUFBMEIsVUFBMUIsUUFBNEMsZUFBNUM7QUFDQSxTQUFTLFVBQVQsUUFBMkIsVUFBM0I7QUFFQSxTQUFTLFlBQVQsRUFBdUIsa0JBQXZCLFFBQWlELGFBQWpEO0FBQ0EsU0FBUyxJQUFULFFBQXFCLFFBQXJCO0FBVUE7Ozs7O0FBSUEsT0FBTSxTQUFVLHNCQUFWLENBQWlDLEVBQWpDLEVBQXVELEtBQXZELEVBQXVFO0FBQzNFLEVBQUEsYUFBYSxDQUFDLEVBQUQsRUFBSyxLQUFMLENBQWI7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNEO0FBRUQ7Ozs7OztBQUtBLE9BQU0sU0FBVSxhQUFWLENBQXdCLEVBQXhCLEVBQThDLFNBQTlDLEVBQWtFO0FBQ3RFLE1BQUksQ0FBQyxHQUFtQyxTQUF4Qzs7QUFFQSxNQUFJLE9BQU8sQ0FBUCxLQUFhLFFBQWpCLEVBQTJCO0FBQ3pCLElBQUEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFELENBQVYsR0FBZ0IsZUFBZSxDQUFDLENBQUQsQ0FBL0IsR0FBcUMsa0JBQWtCLENBQUMsQ0FBRCxDQUEzRDtBQUNEOztBQUVELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFlLENBQWYsQ0FBRjtBQUNEO0FBRUQ7Ozs7Ozs7OztBQVFBLE9BQU0sU0FBVSxJQUFWLENBQ0osRUFESSxFQUVKLE1BRkksRUFHSixVQUhJLEVBSUosS0FKSSxFQUl1QjtBQUUzQixFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsVUFBVSxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLEtBQXhCLENBQVY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxNQUFaLENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFXLEdBQVgsQ0FBRjtBQUNEO0FBRUQ7Ozs7Ozs7O0FBT0EsT0FBTSxTQUFVLFdBQVYsQ0FDSixFQURJLEVBRUosVUFGSSxFQUdKLEtBSEksRUFJSixNQUpJLEVBSWU7QUFFbkIsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVUsR0FBVixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQyxFQUFELEVBQUssVUFBTCxFQUFpQixLQUFqQixFQUF3QixLQUF4QixDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQW1CLEdBQW5CLENBQUY7O0FBQ0EsTUFBSSxNQUFKLEVBQVk7QUFDVixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBVyxHQUFYLENBQUY7QUFDQSxJQUFBLE1BQU0sS0FBQSxJQUFOLElBQUEsTUFBTSxLQUFBLEtBQUEsQ0FBTixHQUFNLEtBQUEsQ0FBTixHQUFBLE1BQU0sRUFBTjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0QsR0FKRCxNQUlPO0FBQ0wsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBVyxHQUFYLENBQUY7QUFDRDtBQUNGO0FBRUQ7Ozs7Ozs7OztBQVFBLE9BQU0sU0FBVSxZQUFWLENBQXVCLEVBQXZCLEVBQTRDLEtBQTVDLEVBQTZELEtBQTdELEVBQThFO0FBQ2xGLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXNCLEtBQXRCLENBQUY7QUFDQSxFQUFBLEtBQUs7QUFDTCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNEO0FBRUQsT0FBTSxTQUFVLEtBQVYsQ0FDSixFQURJLEVBRUosSUFGSSxFQUdKLFVBSEksRUFJSixVQUpJLEVBS0osS0FMSSxFQUt1QjtBQUUzQixFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsVUFBVSxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLEtBQXhCLENBQVY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxVQUFMLENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxJQUFYLEVBQWlCLFlBQVksRUFBN0IsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVcsR0FBWCxDQUFGO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAkdjAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBPcHRpb24sXG4gIE9wLFxuICBNYWNoaW5lT3AsXG4gIFdpcmVGb3JtYXQsXG4gIE5vblNtYWxsSW50T3BlcmFuZCxcbiAgQ3VycmllZFR5cGUsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZW5jb2RlSW1tZWRpYXRlLCBpc1NtYWxsSW50IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi9zaGFyZWQnO1xuaW1wb3J0IHsgUHVzaEV4cHJlc3Npb25PcCwgUHVzaFN0YXRlbWVudE9wIH0gZnJvbSAnLi4vLi4vc3ludGF4L2NvbXBpbGVycyc7XG5pbXBvcnQgeyBpc1N0cmljdE1vZGUsIG5vblNtYWxsSW50T3BlcmFuZCB9IGZyb20gJy4uL29wZXJhbmRzJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuL2V4cHInO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmUgPSB1bmRlZmluZWQgfCBudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBDb21waWxlSGVscGVyIHtcbiAgaGFuZGxlOiBudW1iZXI7XG4gIHBvc2l0aW9uYWw6IE9wdGlvbjxXaXJlRm9ybWF0LkNvcmUuUGFyYW1zPjtcbiAgbmFtZWQ6IFdpcmVGb3JtYXQuQ29yZS5IYXNoO1xufVxuXG4vKipcbiAqIFB1c2ggYSByZWZlcmVuY2Ugb250byB0aGUgc3RhY2sgY29ycmVzcG9uZGluZyB0byBhIHN0YXRpY2FsbHkga25vd24gcHJpbWl0aXZlXG4gKiBAcGFyYW0gdmFsdWUgQSBKYXZhU2NyaXB0IHByaW1pdGl2ZSAodW5kZWZpbmVkLCBudWxsLCBib29sZWFuLCBudW1iZXIgb3Igc3RyaW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcDogUHVzaEV4cHJlc3Npb25PcCwgdmFsdWU6IFByaW1pdGl2ZSk6IHZvaWQge1xuICBQdXNoUHJpbWl0aXZlKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLlByaW1pdGl2ZVJlZmVyZW5jZSk7XG59XG5cbi8qKlxuICogUHVzaCBhbiBlbmNvZGVkIHJlcHJlc2VudGF0aW9uIG9mIGEgSmF2YVNjcmlwdCBwcmltaXRpdmUgb24gdGhlIHN0YWNrXG4gKlxuICogQHBhcmFtIHZhbHVlIEEgSmF2YVNjcmlwdCBwcmltaXRpdmUgKHVuZGVmaW5lZCwgbnVsbCwgYm9vbGVhbiwgbnVtYmVyIG9yIHN0cmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFB1c2hQcmltaXRpdmUob3A6IFB1c2hFeHByZXNzaW9uT3AsIHByaW1pdGl2ZTogUHJpbWl0aXZlKTogdm9pZCB7XG4gIGxldCBwOiBQcmltaXRpdmUgfCBOb25TbWFsbEludE9wZXJhbmQgPSBwcmltaXRpdmU7XG5cbiAgaWYgKHR5cGVvZiBwID09PSAnbnVtYmVyJykge1xuICAgIHAgPSBpc1NtYWxsSW50KHApID8gZW5jb2RlSW1tZWRpYXRlKHApIDogbm9uU21hbGxJbnRPcGVyYW5kKHApO1xuICB9XG5cbiAgb3AoT3AuUHJpbWl0aXZlLCBwKTtcbn1cblxuLyoqXG4gKiBJbnZva2UgYSBmb3JlaWduIGZ1bmN0aW9uIChhIFwiaGVscGVyXCIpIGJhc2VkIG9uIGEgc3RhdGljYWxseSBrbm93biBoYW5kbGVcbiAqXG4gKiBAcGFyYW0gb3AgVGhlIG9wIGNyZWF0aW9uIGZ1bmN0aW9uXG4gKiBAcGFyYW0gaGFuZGxlIEEgaGFuZGxlXG4gKiBAcGFyYW0gcG9zaXRpb25hbCBBbiBvcHRpb25hbCBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIGNvbXBpbGVcbiAqIEBwYXJhbSBuYW1lZCBBbiBvcHRpb25hbCBsaXN0IG9mIG5hbWVkIGFyZ3VtZW50cyAobmFtZSArIGV4cHJlc3Npb24pIHRvIGNvbXBpbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGwoXG4gIG9wOiBQdXNoRXhwcmVzc2lvbk9wLFxuICBoYW5kbGU6IG51bWJlcixcbiAgcG9zaXRpb25hbDogV2lyZUZvcm1hdC5Db3JlLlBhcmFtcyxcbiAgbmFtZWQ6IFdpcmVGb3JtYXQuQ29yZS5IYXNoXG4pOiB2b2lkIHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gIG9wKE9wLkhlbHBlciwgaGFuZGxlKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59XG5cbi8qKlxuICogSW52b2tlIGEgZm9yZWlnbiBmdW5jdGlvbiAoYSBcImhlbHBlclwiKSBiYXNlZCBvbiBhIGR5bmFtaWNhbGx5IGxvYWRlZCBkZWZpbml0aW9uXG4gKlxuICogQHBhcmFtIG9wIFRoZSBvcCBjcmVhdGlvbiBmdW5jdGlvblxuICogQHBhcmFtIHBvc2l0aW9uYWwgQW4gb3B0aW9uYWwgbGlzdCBvZiBleHByZXNzaW9ucyB0byBjb21waWxlXG4gKiBAcGFyYW0gbmFtZWQgQW4gb3B0aW9uYWwgbGlzdCBvZiBuYW1lZCBhcmd1bWVudHMgKG5hbWUgKyBleHByZXNzaW9uKSB0byBjb21waWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDYWxsRHluYW1pYyhcbiAgb3A6IFB1c2hFeHByZXNzaW9uT3AsXG4gIHBvc2l0aW9uYWw6IFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMsXG4gIG5hbWVkOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCxcbiAgYXBwZW5kPzogKCkgPT4gdm9pZFxuKTogdm9pZCB7XG4gIG9wKE9wLkxvYWQsICR2MCk7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICBvcChPcC5EeW5hbWljSGVscGVyLCAkdjApO1xuICBpZiAoYXBwZW5kKSB7XG4gICAgb3AoT3AuRmV0Y2gsICR2MCk7XG4gICAgYXBwZW5kPy4oKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgb3AoT3AuRmV0Y2gsICR2MCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFdmFsdWF0ZSBzdGF0ZW1lbnRzIGluIHRoZSBjb250ZXh0IG9mIG5ldyBkeW5hbWljIHNjb3BlIGVudHJpZXMuIE1vdmUgZW50cmllcyBmcm9tIHRoZVxuICogc3RhY2sgaW50byBuYW1lZCBlbnRyaWVzIGluIHRoZSBkeW5hbWljIHNjb3BlLCB0aGVuIGV2YWx1YXRlIHRoZSBzdGF0ZW1lbnRzLCB0aGVuIHBvcFxuICogdGhlIGR5bmFtaWMgc2NvcGVcbiAqXG4gKiBAcGFyYW0gbmFtZXMgYSBsaXN0IG9mIGR5bmFtaWMgc2NvcGUgbmFtZXNcbiAqIEBwYXJhbSBibG9jayBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGxpc3Qgb2Ygc3RhdGVtZW50cyB0byBldmFsdWF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gRHluYW1pY1Njb3BlKG9wOiBQdXNoU3RhdGVtZW50T3AsIG5hbWVzOiBzdHJpbmdbXSwgYmxvY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgb3AoT3AuUHVzaER5bmFtaWNTY29wZSk7XG4gIG9wKE9wLkJpbmREeW5hbWljU2NvcGUsIG5hbWVzKTtcbiAgYmxvY2soKTtcbiAgb3AoT3AuUG9wRHluYW1pY1Njb3BlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEN1cnJ5KFxuICBvcDogUHVzaEV4cHJlc3Npb25PcCxcbiAgdHlwZTogQ3VycmllZFR5cGUsXG4gIGRlZmluaXRpb246IFdpcmVGb3JtYXQuRXhwcmVzc2lvbixcbiAgcG9zaXRpb25hbDogV2lyZUZvcm1hdC5Db3JlLlBhcmFtcyxcbiAgbmFtZWQ6IFdpcmVGb3JtYXQuQ29yZS5IYXNoXG4pOiB2b2lkIHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gIG9wKE9wLkNhcHR1cmVBcmdzKTtcbiAgZXhwcihvcCwgZGVmaW5pdGlvbik7XG4gIG9wKE9wLkN1cnJ5LCB0eXBlLCBpc1N0cmljdE1vZGUoKSk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEdBQVQsRUFBYyxHQUFkLFFBQXlCLGFBQXpCO0FBU0EsU0FBUyxlQUFULEVBQTBCLFVBQTFCLFFBQTRDLGVBQTVDO0FBQ0EsU0FBUyxVQUFULFFBQTJCLFVBQTNCO0FBRUEsU0FBUyxZQUFULEVBQXVCLGtCQUF2QixRQUFpRCxhQUFqRDtBQUNBLFNBQVMsSUFBVCxRQUFxQixRQUFyQjtBQVVBOzs7OztBQUlBLE9BQU0sU0FBVSxzQkFBVixDQUFpQyxFQUFqQyxFQUF1RCxLQUF2RCxFQUF1RTtBQUMzRSxFQUFBLGFBQWEsQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFiO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRDtBQUVEOzs7Ozs7QUFLQSxPQUFNLFNBQVUsYUFBVixDQUF3QixFQUF4QixFQUE4QyxTQUE5QyxFQUFrRTtBQUN0RSxNQUFJLENBQUMsR0FBbUMsU0FBeEM7O0FBRUEsTUFBSSxPQUFPLENBQVAsS0FBYSxRQUFqQixFQUEyQjtBQUN6QixJQUFBLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBRCxDQUFWLEdBQWdCLGVBQWUsQ0FBQyxDQUFELENBQS9CLEdBQXFDLGtCQUFrQixDQUFDLENBQUQsQ0FBM0Q7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBZSxDQUFmLENBQUY7QUFDRDtBQUVEOzs7Ozs7Ozs7QUFRQSxPQUFNLFNBQVUsSUFBVixDQUNKLEVBREksRUFFSixNQUZJLEVBR0osVUFISSxFQUlKLEtBSkksRUFJdUI7QUFFM0IsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQyxFQUFELEVBQUssVUFBTCxFQUFpQixLQUFqQixFQUF3QixLQUF4QixDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksTUFBWixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxHQUFYLENBQUY7QUFDRDtBQUVEOzs7Ozs7OztBQU9BLE9BQU0sU0FBVSxXQUFWLENBQ0osRUFESSxFQUVKLFVBRkksRUFHSixLQUhJLEVBSUosTUFKSSxFQUllO0FBRW5CLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxVQUFVLENBQUMsRUFBRCxFQUFLLFVBQUwsRUFBaUIsS0FBakIsRUFBd0IsS0FBeEIsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFTLEdBQVQsRUFBYyxDQUFkLENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjs7QUFDQSxNQUFJLE1BQUosRUFBWTtBQUNWLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFXLEdBQVgsQ0FBRjtBQUNBLElBQUEsTUFBTTtBQUNOLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0QsR0FKRCxNQUlPO0FBQ0wsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBVyxHQUFYLENBQUY7QUFDRDtBQUNGO0FBRUQ7Ozs7Ozs7OztBQVFBLE9BQU0sU0FBVSxZQUFWLENBQXVCLEVBQXZCLEVBQTRDLEtBQTVDLEVBQTZELEtBQTdELEVBQThFO0FBQ2xGLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXNCLEtBQXRCLENBQUY7QUFDQSxFQUFBLEtBQUs7QUFDTCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNEO0FBRUQsT0FBTSxTQUFVLEtBQVYsQ0FDSixFQURJLEVBRUosSUFGSSxFQUdKLFVBSEksRUFJSixVQUpJLEVBS0osS0FMSSxFQUt1QjtBQUUzQixFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsVUFBVSxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLEtBQXhCLENBQVY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxVQUFMLENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxJQUFYLEVBQWlCLFlBQVksRUFBN0IsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVcsR0FBWCxDQUFGO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAkZnAsICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7XG4gIE9wdGlvbixcbiAgT3AsXG4gIE1hY2hpbmVPcCxcbiAgV2lyZUZvcm1hdCxcbiAgTm9uU21hbGxJbnRPcGVyYW5kLFxuICBDdXJyaWVkVHlwZSxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBlbmNvZGVJbW1lZGlhdGUsIGlzU21hbGxJbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IFNpbXBsZUFyZ3MgfSBmcm9tICcuL3NoYXJlZCc7XG5pbXBvcnQgeyBQdXNoRXhwcmVzc2lvbk9wLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuLi8uLi9zeW50YXgvY29tcGlsZXJzJztcbmltcG9ydCB7IGlzU3RyaWN0TW9kZSwgbm9uU21hbGxJbnRPcGVyYW5kIH0gZnJvbSAnLi4vb3BlcmFuZHMnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4vZXhwcic7XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHVuZGVmaW5lZCB8IG51bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBpbGVIZWxwZXIge1xuICBoYW5kbGU6IG51bWJlcjtcbiAgcG9zaXRpb25hbDogT3B0aW9uPFdpcmVGb3JtYXQuQ29yZS5QYXJhbXM+O1xuICBuYW1lZDogV2lyZUZvcm1hdC5Db3JlLkhhc2g7XG59XG5cbi8qKlxuICogUHVzaCBhIHJlZmVyZW5jZSBvbnRvIHRoZSBzdGFjayBjb3JyZXNwb25kaW5nIHRvIGEgc3RhdGljYWxseSBrbm93biBwcmltaXRpdmVcbiAqIEBwYXJhbSB2YWx1ZSBBIEphdmFTY3JpcHQgcHJpbWl0aXZlICh1bmRlZmluZWQsIG51bGwsIGJvb2xlYW4sIG51bWJlciBvciBzdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCB2YWx1ZTogUHJpbWl0aXZlKTogdm9pZCB7XG4gIFB1c2hQcmltaXRpdmUob3AsIHZhbHVlKTtcbiAgb3AoT3AuUHJpbWl0aXZlUmVmZXJlbmNlKTtcbn1cblxuLyoqXG4gKiBQdXNoIGFuIGVuY29kZWQgcmVwcmVzZW50YXRpb24gb2YgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZSBvbiB0aGUgc3RhY2tcbiAqXG4gKiBAcGFyYW0gdmFsdWUgQSBKYXZhU2NyaXB0IHByaW1pdGl2ZSAodW5kZWZpbmVkLCBudWxsLCBib29sZWFuLCBudW1iZXIgb3Igc3RyaW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gUHVzaFByaW1pdGl2ZShvcDogUHVzaEV4cHJlc3Npb25PcCwgcHJpbWl0aXZlOiBQcmltaXRpdmUpOiB2b2lkIHtcbiAgbGV0IHA6IFByaW1pdGl2ZSB8IE5vblNtYWxsSW50T3BlcmFuZCA9IHByaW1pdGl2ZTtcblxuICBpZiAodHlwZW9mIHAgPT09ICdudW1iZXInKSB7XG4gICAgcCA9IGlzU21hbGxJbnQocCkgPyBlbmNvZGVJbW1lZGlhdGUocCkgOiBub25TbWFsbEludE9wZXJhbmQocCk7XG4gIH1cblxuICBvcChPcC5QcmltaXRpdmUsIHApO1xufVxuXG4vKipcbiAqIEludm9rZSBhIGZvcmVpZ24gZnVuY3Rpb24gKGEgXCJoZWxwZXJcIikgYmFzZWQgb24gYSBzdGF0aWNhbGx5IGtub3duIGhhbmRsZVxuICpcbiAqIEBwYXJhbSBvcCBUaGUgb3AgY3JlYXRpb24gZnVuY3Rpb25cbiAqIEBwYXJhbSBoYW5kbGUgQSBoYW5kbGVcbiAqIEBwYXJhbSBwb3NpdGlvbmFsIEFuIG9wdGlvbmFsIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gY29tcGlsZVxuICogQHBhcmFtIG5hbWVkIEFuIG9wdGlvbmFsIGxpc3Qgb2YgbmFtZWQgYXJndW1lbnRzIChuYW1lICsgZXhwcmVzc2lvbikgdG8gY29tcGlsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2FsbChcbiAgb3A6IFB1c2hFeHByZXNzaW9uT3AsXG4gIGhhbmRsZTogbnVtYmVyLFxuICBwb3NpdGlvbmFsOiBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zLFxuICBuYW1lZDogV2lyZUZvcm1hdC5Db3JlLkhhc2hcbik6IHZvaWQge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgb3AoT3AuSGVscGVyLCBoYW5kbGUpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn1cblxuLyoqXG4gKiBJbnZva2UgYSBmb3JlaWduIGZ1bmN0aW9uIChhIFwiaGVscGVyXCIpIGJhc2VkIG9uIGEgZHluYW1pY2FsbHkgbG9hZGVkIGRlZmluaXRpb25cbiAqXG4gKiBAcGFyYW0gb3AgVGhlIG9wIGNyZWF0aW9uIGZ1bmN0aW9uXG4gKiBAcGFyYW0gcG9zaXRpb25hbCBBbiBvcHRpb25hbCBsaXN0IG9mIGV4cHJlc3Npb25zIHRvIGNvbXBpbGVcbiAqIEBwYXJhbSBuYW1lZCBBbiBvcHRpb25hbCBsaXN0IG9mIG5hbWVkIGFyZ3VtZW50cyAobmFtZSArIGV4cHJlc3Npb24pIHRvIGNvbXBpbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGxEeW5hbWljKFxuICBvcDogUHVzaEV4cHJlc3Npb25PcCxcbiAgcG9zaXRpb25hbDogV2lyZUZvcm1hdC5Db3JlLlBhcmFtcyxcbiAgbmFtZWQ6IFdpcmVGb3JtYXQuQ29yZS5IYXNoLFxuICBhcHBlbmQ/OiAoKSA9PiB2b2lkXG4pOiB2b2lkIHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgb3AoT3AuRHluYW1pY0hlbHBlcik7XG4gIGlmIChhcHBlbmQpIHtcbiAgICBvcChPcC5GZXRjaCwgJHYwKTtcbiAgICBhcHBlbmQoKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgb3AoT3AuRmV0Y2gsICR2MCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFdmFsdWF0ZSBzdGF0ZW1lbnRzIGluIHRoZSBjb250ZXh0IG9mIG5ldyBkeW5hbWljIHNjb3BlIGVudHJpZXMuIE1vdmUgZW50cmllcyBmcm9tIHRoZVxuICogc3RhY2sgaW50byBuYW1lZCBlbnRyaWVzIGluIHRoZSBkeW5hbWljIHNjb3BlLCB0aGVuIGV2YWx1YXRlIHRoZSBzdGF0ZW1lbnRzLCB0aGVuIHBvcFxuICogdGhlIGR5bmFtaWMgc2NvcGVcbiAqXG4gKiBAcGFyYW0gbmFtZXMgYSBsaXN0IG9mIGR5bmFtaWMgc2NvcGUgbmFtZXNcbiAqIEBwYXJhbSBibG9jayBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGxpc3Qgb2Ygc3RhdGVtZW50cyB0byBldmFsdWF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gRHluYW1pY1Njb3BlKG9wOiBQdXNoU3RhdGVtZW50T3AsIG5hbWVzOiBzdHJpbmdbXSwgYmxvY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgb3AoT3AuUHVzaER5bmFtaWNTY29wZSk7XG4gIG9wKE9wLkJpbmREeW5hbWljU2NvcGUsIG5hbWVzKTtcbiAgYmxvY2soKTtcbiAgb3AoT3AuUG9wRHluYW1pY1Njb3BlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEN1cnJ5KFxuICBvcDogUHVzaEV4cHJlc3Npb25PcCxcbiAgdHlwZTogQ3VycmllZFR5cGUsXG4gIGRlZmluaXRpb246IFdpcmVGb3JtYXQuRXhwcmVzc2lvbixcbiAgcG9zaXRpb25hbDogV2lyZUZvcm1hdC5Db3JlLlBhcmFtcyxcbiAgbmFtZWQ6IFdpcmVGb3JtYXQuQ29yZS5IYXNoXG4pOiB2b2lkIHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gIG9wKE9wLkNhcHR1cmVBcmdzKTtcbiAgZXhwcihvcCwgZGVmaW5pdGlvbik7XG4gIG9wKE9wLkN1cnJ5LCB0eXBlLCBpc1N0cmljdE1vZGUoKSk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
import { $v0 } from '@glimmer/vm';
import { deprecate } from '@glimmer/global-context';
import { assert, deprecate } from '@glimmer/global-context';
import { expr } from '../opcode-builder/helpers/expr';

@@ -76,3 +76,3 @@ import { isGetFreeHelper } from '../opcode-builder/helpers/resolution';

let propertyPath = path ? [name, ...path].join('.') : name;
deprecate(`The \`${propertyPath}\` property path was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
deprecate(`The \`${propertyPath}\` property path was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
id: 'this-property-fallback'

@@ -103,3 +103,3 @@ });

, (op, expr) => {
// <Foo @arg={{baz}}>
// <div id={{baz}}>
op(1010

@@ -115,3 +115,3 @@ /* ResolveLocal */

ifFallback: (name, moduleName) => {
deprecate(`The \`${name}\` property was used in the template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'

@@ -129,2 +129,34 @@ });

});
EXPRESSIONS.add(99
/* GetFreeAsDeprecatedHelperHeadOrThisFallback */
, (op, expr) => {
// <Foo @bar={{baz}}>
op(1010
/* ResolveLocal */
, expr[1], _name => {
op(1006
/* ResolveOptionalHelper */
, expr, {
ifHelper: (handle, name, moduleName) => {
assert(expr[2] && expr[2].length === 1, '[BUG] Missing argument name');
let arg = expr[2][0];
deprecate(`The \`${name}\` helper was used in the \`${moduleName}\` template as \`${arg}={{${name}}}\`. ` + `This is ambigious between wanting the \`${arg}\` argument to be the \`${name}\` helper itself, ` + `or the result of invoking the \`${name}\` helper (current behavior). ` + `This implicit invocation behavior has been deprecated.\n\n` + `Instead, please explicitly invoke the helper with parenthesis, i.e. \`${arg}={{(${name})}}\`.\n\n` + `Note: the parenthesis are only required in this exact scenario where an ambiguity is present – where ` + `\`${name}\` referes to a global helper (as opposed to a local variable), AND ` + `the \`${name}\` helper invocation does not take any arguments, AND ` + `this occurs in a named argument position of a component invocation.\n\n` + `We expect this combination to be quite rare, as most helpers require at least one argument. ` + `There is no need to refactor helper invocations in cases where this deprecation was not triggered.`, false, {
id: 'argument-less-helper-paren-less-invocation'
});
Call(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}
});
});
});

@@ -210,2 +242,2 @@ function withPath(op, path) {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsU0FBVCxRQUEwQix5QkFBMUI7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxlQUFULFFBQWdDLHNDQUFoQztBQUNBLFNBQVMsVUFBVCxRQUEyQixrQ0FBM0I7QUFDQSxTQUFTLElBQVQsRUFBZSxXQUFmLEVBQTRCLEtBQTVCLEVBQW1DLHNCQUFuQyxRQUFpRSw4QkFBakU7QUFDQSxTQUFTLFNBQVQsUUFBNEMsYUFBNUM7QUFDQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFFQSxPQUFPLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBSixFQUFwQjtBQUVQLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQW9DLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ3BELE9BQUssSUFBSSxJQUFULElBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxJQUFMLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQUMsTUFBbEIsQ0FBRjtBQUNELENBTkQ7QUFRQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLENBQUwsS0FBMEM7QUFDMUUsTUFBSSxlQUFlLENBQUMsVUFBRCxDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBMEMsVUFBMUMsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFhLFVBQWIsRUFBeUIs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QUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBaUMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQyxFQUFELEVBQUssVUFBTCxFQUFpQixJQUFqQixFQUF1QixLQUF2QixDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFXLEdBQVgsQ0FBRjtBQUNELENBTkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeHByZXNzaW9uU2V4cE9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIGEgdGVtcGxhdGUgZm9yIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIGNvbXBvbmVudCB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtwcm9wZXJ0eVBhdGh9fX1gLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgfSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPEZvbyBAYXJnPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZnVuY3Rpb24gd2l0aFBhdGgob3A6IFB1c2hFeHByZXNzaW9uT3AsIHBhdGg/OiBzdHJpbmdbXSkge1xuICBpZiAocGF0aCA9PT0gdW5kZWZpbmVkIHx8IHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIHBhdGhbaV0pO1xuICB9XG59XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5VbmRlZmluZWQsIChvcCkgPT4gUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKSk7XG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2ssIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2spO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9ja1BhcmFtcywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5TcHJlYWRCbG9jayk7XG4gIG9wKE9wLkNvbXBpbGVCbG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrUGFyYW1zKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSWZJbmxpbmUsIChvcCwgWywgY29uZGl0aW9uLCB0cnV0aHksIGZhbHN5XSkgPT4ge1xuICAvLyBQdXNoIGluIHJldmVyc2Ugb3JkZXJcbiAgZXhwcihvcCwgZmFsc3kpO1xuICBleHByKG9wLCB0cnV0aHkpO1xuICBleHByKG9wLCBjb25kaXRpb24pO1xuICBvcChPcC5JZklubGluZSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLk5vdCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Ob3QpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXREeW5hbWljVmFyLCAob3AsIFssIGV4cHJlc3Npb25dKSA9PiB7XG4gIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICBvcChPcC5HZXREeW5hbWljVmFyKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTG9nLCAob3AsIFssIHBvc2l0aW9uYWxdKSA9PiB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBudWxsLCBmYWxzZSk7XG4gIG9wKE9wLkxvZyk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsTUFBVCxFQUFpQixTQUFqQixRQUFrQyx5QkFBbEM7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxlQUFULFFBQWdDLHNDQUFoQztBQUNBLFNBQVMsVUFBVCxRQUEyQixrQ0FBM0I7QUFDQSxTQUFTLElBQVQsRUFBZSxXQUFmLEVBQTRCLEtBQTVCLEVBQW1DLHNCQUFuQyxRQUFpRSw4QkFBakU7QUFDQSxTQUFTLFNBQVQsUUFBNEMsYUFBNUM7QUFDQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFFQSxPQUFPLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBSixFQUFwQjtBQUVQLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQW9DLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ3BELE9BQUssSUFBSSxJQUFULElBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxJQUFMLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQUMsTUFBbEIsQ0FBRjtBQUNELENBTkQ7QUFRQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLENBQUwsS0FBMEM7QUFDMUUsTUFBSSxlQUFlLENBQUMsVUFBRCxDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBMEMsVUFBMUMsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFh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O0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRCxDQUhEO0FBS0EsV0FBVyxDQUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBMkMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDaEUsRUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFVBQUwsQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0QsQ0FIRDtBQUtBLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsVUFBSCxDQUFMLEtBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxVQUFVLENBQUMsRUFBRCxFQUFLLFVBQUwsRUFBaUIsSUFBakIsRUFBdUIsS0FBdkIsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxHQUFYLENBQUY7QUFDRCxDQU5EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -233,3 +233,3 @@ import { deprecate } from '@glimmer/global-context';

, value[1], (name, moduleName) => {
deprecate(`The \`${name}\` property was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'

@@ -520,2 +520,2 @@ });

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxTQUFULFFBQTBCLHlCQUExQjtBQWNBLFNBQVMsR0FBVCxFQUFjLEdBQWQsUUFBeUIsYUFBekI7QUFDQSxTQUNFLGlCQURGLEVBRUUsMEJBRkYsRUFHRSxVQUhGLFFBSU8sa0NBSlA7QUFLQSxTQUNFLGVBREYsRUFFRSxzQkFGRixFQUdFLHdCQUhGLFFBSU8sc0NBSlA7QUFLQSxTQUFTLFdBQVQsRUFBc0IsVUFBdEIsRUFBa0MsWUFBbEMsUUFBc0QsdUNBQXREO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGdDQUFyQjtBQUNBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsa0NBQTlDO0FBQ0EsU0FDRSxJQURGLEVBRUUsV0FGRixFQUdFLFlBSEYsRUFJRSxzQkFKRixRQUtPLDhCQUxQO0FBTUEsU0FBUyxrQkFBVCxFQUE2QixZQUE3QixFQUEyQyxhQUEzQyxRQUFnRSw0QkFBaEU7QUFDQSxTQUFTLFNBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUNFLGtCQURGLEVBRUUsMEJBRkYsRUFHRSxpQkFIRixFQUlFLGtDQUpGLFFBS08sc0NBTFA7QUFNQSxTQUFTLFdBQVQsUUFBNEIsVUFBNUI7QUFFQSxPQUFPLE1BQU0sVUFBVSxHQUFHLElBQUksU0FBSixFQUFuQjtBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUMsT0FBRCxFQUFVLElBQVYsRUFBZ0IsT0FBaEIsRUFBeUIsTUFBekIsRUFBaUMsTUFBakMsRUFBeUMsT0FBekMsRUFBa0QsTUFBbEQsQ0FGSjtBQUdBLE1BQU0saUJBQWlCLEdBRW5CLENBQUMsS0FBRCxFQUFRLE1BQVIsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsQ0FGSjtBQUlBLE9BQU0sU0FBVSxjQUFWLENBQXlCLE9BQXpCLEVBQTJEO0FBQy9ELFNBQU8s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LFNBQUQsSUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsVUFBVSxDQUFDLEtBQUQsQ0FBNUMsRUFBcUQsTUFBckQsQ0FBZjtBQUNELEtBRkMsQ0FBRjtBQUdELEdBSkQsTUFJTztBQUNMLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEOztBQVVBLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBSyxJQUFiLEVBQW1CLE9BQU8sSUFBUDtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsR0FBUixDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQUcsRUFBNUIsQ0FBWjtBQUNBLFNBQU8sQ0FBQyxLQUFELEVBQWlDLElBQUksQ0FBQyxDQUFELENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHZhbHVlWzBdID09PSBTZXhwT3Bjb2Rlcy5DYWxsKSB7XG4gICAgbGV0IFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlciwgZXhwcmVzc2lvbiwge1xuICAgICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBTd2l0Y2hDYXNlcyhcbiAgICAgICAgb3AsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICAgICAgICBvcChPcC5EeW5hbWljQ29udGVudFR5cGUpO1xuICAgICAgICB9LFxuICAgICAgICAod2hlbikgPT4ge1xuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuQ29tcG9uZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBvcChPcC5SZXNvbHZlQ3VycmllZENvbXBvbmVudCk7XG4gICAgICAgICAgICBvcChPcC5QdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgIEludm9rZU5vblN0YXRpY0NvbXBvbmVudChvcCwge1xuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgICAgICAgIGVsZW1lbnRCbG9jazogbnVsbCxcbiAgICAgICAgICAgICAgcG9zaXRpb25hbCxcbiAgICAgICAgICAgICAgbmFtZWQsXG4gICAgICAgICAgICAgIGF0TmFtZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBibG9ja3M6IG5hbWVkQmxvY2tzKG51bGwpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkhlbHBlciwgKCkgPT4ge1xuICAgICAgICAgICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0FwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCd0cnVzdGluZy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkJsb2NrLCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkluRWxlbWVudCwgKG9wLCBbLCBibG9jaywgZ3VpZCwgZGVzdGluYXRpb24sIGluc2VydEJlZm9yZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgZ3VpZCk7XG5cbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcihvcCwgaW5zZXJ0QmVmb3JlKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgZGVzdGluYXRpb24pO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gNDtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuUHVzaFJlbW90ZUVsZW1lbnQpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICAgIG9wKE9wLlBvcFJlbW90ZUVsZW1lbnQpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JZiwgKG9wLCBbLCBjb25kaXRpb24sIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9LFxuXG4gICAgaW52ZXJzZVxuICAgICAgPyAoKSA9PiB7XG4gICAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5FYWNoLCAob3AsIFssIHZhbHVlLCBrZXksIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZShcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZXhwcihvcCwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5FbnRlckxpc3QsIGxhYmVsT3BlcmFuZCgnQk9EWScpLCBsYWJlbE9wZXJhbmQoJ0VMU0UnKSk7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5SZXR1cm5UbywgbGFiZWxPcGVyYW5kKCdJVEVSJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0lURVInKTtcbiAgICAgIG9wKE9wLkl0ZXJhdGUsIGxhYmVsT3BlcmFuZCgnQlJFQUsnKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQk9EWScpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAyKTtcbiAgICAgIG9wKE9wLlBvcCwgMik7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JSRUFLJyk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgb3AoT3AuRXhpdExpc3QpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdFTFNFJyk7XG5cbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGgsIChvcCwgWywgdmFsdWUsIGJsb2NrLCBpbnZlcnNlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAxKTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5MZXQsIChvcCwgWywgcG9zaXRpb25hbCwgYmxvY2tdKSA9PiB7XG4gIGxldCBjb3VudCA9IENvbXBpbGVQb3NpdGlvbmFsKG9wLCBwb3NpdGlvbmFsKTtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCBjb3VudCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aER5bmFtaWNWYXJzLCAob3AsIFssIG5hbWVkLCBibG9ja10pID0+IHtcbiAgaWYgKG5hbWVkKSB7XG4gICAgbGV0IFtuYW1lcywgZXhwcmVzc2lvbnNdID0gbmFtZWQ7XG5cbiAgICBDb21waWxlUG9zaXRpb25hbChvcCwgZXhwcmVzc2lvbnMpO1xuICAgIER5bmFtaWNTY29wZShvcCwgbmFtZXMsICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkludm9rZUNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBoYXNoVG9BcmdzKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCB7XG4gIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgbGV0IG5hbWVzID0gaGFzaFswXS5tYXAoKGtleSkgPT4gYEAke2tleX1gKTtcbiAgcmV0dXJuIFtuYW1lcyBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sIGhhc2hbMV1dO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxTQUFULFFBQTBCLHlCQUExQjtBQWNBLFNBQVMsR0FBVCxFQUFjLEdBQWQsUUFBeUIsYUFBekI7QUFDQSxTQUNFLGlCQURGLEVBRUUsMEJBRkYsRUFHRSxVQUhGLFFBSU8sa0NBSlA7QUFLQSxTQUNFLGVBREYsRUFFRSxzQkFGRixFQUdFLHdCQUhGLFFBSU8sc0NBSlA7QUFLQSxTQUFTLFdBQVQsRUFBc0IsVUFBdEIsRUFBa0MsWUFBbEMsUUFBc0QsdUNBQXREO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGdDQUFyQjtBQUNBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsa0NBQTlDO0FBQ0EsU0FDRSxJQURGLEVBRUUsV0FGRixFQUdFLFlBSEYsRUFJRSxzQkFKRixRQUtPLDhCQUxQO0FBTUEsU0FBUyxrQkFBVCxFQUE2QixZQUE3QixFQUEyQyxhQUEzQyxRQUFnRSw0QkFBaEU7QUFDQSxTQUFTLFNBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUNFLGtCQURGLEVBRUUsMEJBRkYsRUFHRSxpQkFIRixFQUlFLGtDQUpGLFFBS08sc0NBTFA7QUFNQSxTQUFTLFdBQVQsUUFBNEIsVUFBNUI7QUFFQSxPQUFPLE1BQU0sVUFBVSxHQUFHLElBQUksU0FBSixFQUFuQjtBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUMsT0FBRCxFQUFVLElBQVYsRUFBZ0IsT0FBaEIsRUFBeUIsTUFBekIsRUFBaUMsTUFBakMsRUFBeUMsT0FBekMsRUFBa0QsTUFBbEQsQ0FGSjtBQUdBLE1BQU0saUJBQWlCLEdBRW5CLENBQUMsS0FBRCxFQUFRLE1BQVIsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsQ0FGSjtBQUlBLE9BQU0sU0FBVSxjQUFWLENBQXlCLE9BQXpCLEVBQTJEO0FBQy9ELFNBQU8sT0FBTyxPQUFQLEtBQW1CLFFBQW5CLEdBQThCLE9BQTlCLEdBQXdDLGlCQUFpQixDQUFDLE9BQUQsQ0FBaEU7QUFDRDtBQUVELE9BQU0sU0FBVSxlQUFWLENBQTBCLFFBQTFCLEVBQThEO0FBQ2xFLFNBQU8sT0FBTyxRQUFQLEtBQW9CLFFBQXBCLEdBQStCLFFBQS9CLEdBQTBDLGtCQUFrQixDQUFDLFFBQUQsQ0FBbkU7QUFDRDtBQUVELFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQW9DLENBQUMsRUFBRCxFQUFLLElBQUwsS0FBYyxFQUFFLENBQUE7QUFBQTtBQUFBLEVBQWEsSUFBSSxDQUFDLENBQUQsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENBQW5EO0FBRUEsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBcUMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILEVBQWUsVUFBZixFQUEyQixLQUEzQixDQUFMLEtBQTBDO0FBQzdFLE1BQUksaUJBQWlCLENBQUMsVUFBRCxDQUFyQixFQUFtQztBQUNqQyxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBNEMsVUFBNUMsRUFBeUQsTUFBRCxJQUFtQjtBQUMzRSxNQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsT0FBRjtBQUNBLE1BQUEsVUFBVSxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLEtBQXhCLENBQVY7QUFDQSxNQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsUUFBYyxNQUFkLENBQUY7QUFDQSxNQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsT0FBRjtBQUNELEtBTEMsQ0FBRjtBQU1ELEdBUEQsTUFPTztBQUNMLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxVQUFMLENBQUo7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNBLElBQUEsVUFBVSxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLEtBQXhCLENBQVY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBUyxHQUFULEVBQWMsQ0FBZCxDQUFGO0FBQ0EsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNEO0FBQ0YsQ0FoQkQ7QUFrQkEsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBdUMsQ0FBQyxFQUFELEVBQUssR0FBRyxJQUFILEVBQVMsS0FBVCxFQUFnQixTQUFoQixDQUFMLEtBQW1DO0FBQ3hFLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFnQixlQUFlLENBQUMsSUFBRCxDQUEvQixFQUF1QyxLQUF2QyxFQUF3RCxTQUFTLEtBQUEsSUFBVCxJQUFBLFNBQVMsS0FBQSxLQUFBLENBQVQsR0FBQSxTQUFBLEdBQWEsSUFBckUsQ0FBRjtBQUNELENBRkQ7QUFJQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUFnRCxDQUFDLEVBQUQsRUFBSyxHQUFHLElBQUgsRUFBUyxLQUFULEVBQWdCLFNBQWhCLENBQUwsS0FBbUM7QUFDakYsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXlCLGVBQWUsQ0FBQyxJQUFELENBQXhDLEVBQWdELEtBQWhELEVBQWlFLFNBQVMsS0FBQSxJQUFULElBQUEsU0FBUyxLQUFBLEtBQUEsQ0FBVCxHQUFBLFNBQUEsR0FBYSxJQUE5RSxDQUFGO0FBQ0QsQ0FGRDtBQUlBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQXdDLENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLEtBQVQsRUFBZ0IsU0FBaEIsQ0FBTCxLQUFtQztBQUN6RSxFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWlCLGVBQWUsQ0FBQyxJQUFELENBQWhDLEVBQXdDLEtBQXhDLEVBQStDLFNBQVMsS0FBQSxJQUFULElBQUEsU0FBUyxLQUFBLEtBQUEsQ0FBVCxHQUFBLFNBQUEsR0FBYSxJQUE1RCxDQUFGO0FBQ0QsQ0FIRDtBQUtBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWdELENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLEtBQVQsRUFBZ0IsU0FBaEIsQ0FBTCxLQUFtQztBQUNqRixFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWlCLGVBQWUsQ0FBQyxJQUFELENBQWhDLEVBQXdDLElBQXhDLEVBQThDLFNBQVMsS0FBQSxJQUFULElBQUEsU0FBUyxLQUFBLEtBQUEsQ0FBVCxHQUFBLFNBQUEsR0FBYSxJQUEzRCxDQUFGO0FBQ0QsQ0FIRDtBQUtBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQTBDLENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLEtBQVQsRUFBZ0IsU0FBaEIsQ0FBTCxLQUFtQztBQUMzRSxFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQW1CLGVBQWUsQ0FBQyxJQUFELENBQWxDLEVBQTBDLEtBQTFDLEVBQWlELFNBQVMsS0FBQSxJQUFULElBQUEsU0FBUyxLQUFBLEtBQUEsQ0FBVCxHQUFBLFNBQUEsR0FBYSxJQUE5RCxDQUFGO0FBQ0QsQ0FIRDtBQUtBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWtELENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLEtBQVQsRUFBZ0IsU0FBaEIsQ0FBTCxLQUFtQztBQUNuRixFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQW1CLGVBQWUsQ0FBQyxJQUFELENBQWxDLEVBQTBDLElBQTFDLEVBQWdELFNBQVMsS0FBQSxJQUFULElBQUEsU0FBUyxLQUFBLEtBQUEsQ0FBVCxHQUFBLFNBQUEsR0FBYSxJQUE3RCxDQUFGO0FBQ0QsQ0FIRDtBQUtBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQXdDLENBQUMsRUFBRCxFQUFLLEdBQUcsR0FBSCxDQUFMLEtBQWdCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFpQixjQUFjLENBQUMsR0FBRCxDQUEvQixDQUFGO0FBQ0QsQ0FGRDtBQUlBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWlELENBQUMsRUFBRCxFQUFLLEdBQUcsR0FBSCxDQUFMLEtBQWdCO0FBQy9ELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWlCLGNBQWMsQ0FBQyxHQUFELENBQS9CLENBQUY7QUFDRCxDQUhEO0FBS0EsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBc0MsQ0FBQyxFQUFELEVBQUssR0FBRyxJQUFILEVBQVMsWUFBVCxFQUF1QixLQUF2QixFQUE4QixNQUE5QixDQUFMLEtBQThDO0FBQ2xGLE1BQUksa0JBQWtCLENBQUMsSUFBRCxDQUF0QixFQUE4QjtBQUM1QixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBNkMsSUFBN0MsRUFBb0QsU0FBRCxJQUFvQztBQUN2RixNQUFBLGVBQWUsQ0FBQyxFQUFELEVBQUssU0FBTCxFQUFnQixZQUFoQixFQUE4QixJQUE5QixFQUFvQyxLQUFwQyxFQUEyQyxNQUEzQyxDQUFmO0FBQ0QsS0FGQyxDQUFGO0FBR0QsR0FKRCxNQUlPO0FBQ0w7QUFDQTtBQUNBLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxZQUFYLEVBQXlCLElBQXpCLEVBQStCLEtBQS9CLEVBQXNDLE1BQXRDLEVBQThDLElBQTlDLEVBQW9ELElBQXBELENBQXRCO0FBQ0Q7QUFDRixDQVZEO0FBWUEsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBb0MsQ0FBQyxFQUFELEVBQUssR0FBRyxJQUFILEVBQVMsUUFBVCxDQUFMLEtBQTJCO0FBQzdELEVBQUEsWUFBWSxDQUNWLEVBRFUsRUFFVixNQUFLO0FBQ0gsSUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLElBQUwsQ0FBSjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFTLEdBQVQsRUFBYyxDQUFkLENBQUY7QUFFQSxXQUFPLENBQVA7QUFDRCxHQVBTLEVBU1YsTUFBSztBQUNILElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFtQixrQkFBa0IsRUFBckMsRUFBeUMsUUFBekMsQ0FBRjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0EsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDRCxHQWJTLENBQVo7QUFlRCxDQWhCRDtBQWtCQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLEVBQUgsRUFBTyxNQUFQLENBQUwsS0FBd0IsVUFBVSxDQUFDLEVBQUQsRUFBSyxFQUFMLEVBQVMsTUFBVCxDQUFwRTtBQUVBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQXNDLENBQUMsRUFBRCxFQUFLLEdBQUcsRUFBSCxDQUFMLEtBQWdCLFVBQVUsQ0FBQyxFQUFELEVBQUssRUFBTCxFQUFTLElBQVQsQ0FBaEU7QUFFQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUFxQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFFBQUgsQ0FBTCxLQUNuQyxFQUFFLENBQUE7QUFBQTtBQUFBLEVBQWMsa0JBQWtCLEVBQWhDLEVBQW9DLFFBQXBDLENBREo7QUFJQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUFtQyxDQUFDLEVBQUQsRUFBSyxHQUFHLEtBQUgsQ0FBTCxLQUFrQjtBQUNuRDtBQUNBLE1BQUksQ0FBQyxLQUFLLENBQUMsT0FBTixDQUFjLEtBQWQsQ0FBTCxFQUEyQjtBQUN6QixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBVSxLQUFLLEtBQUssSUFBVixJQUFrQixLQUFLLEtBQUssU0FBNUIsR0FBd0MsRUFBeEMsR0FBNkMsTUFBTSxDQUFDLEtBQUQsQ0FBN0QsQ0FBRjtBQUNELEdBRkQsTUFFTyxJQUFJLGtDQUFrQyxDQUFDLEtBQUQsQ0FBdEMsRUFBK0M7QUFDcEQsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQTZELEtBQTdELEVBQW9FO0FBQ3BFLE1BQUEsV0FBVyxDQUFDLFNBQUQsRUFBZ0M7QUFDekMsUUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsSUFBdEIsRUFBNEIsSUFBNUIsRUFBa0MsSUFBbEMsQ0FBZjtBQUNELE9BSG1FOztBQUtwRSxNQUFBLFFBQVEsQ0FBQyxNQUFELEVBQWU7QUFDckIsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFNBQUY7QUFDQSxRQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsQ0FBSjtBQUNBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxVQUF5QixhQUFhLENBQUMsNkJBQUQsQ0FBdEMsQ0FBRjtBQUNBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxTQUFGO0FBQ0QsT0FWbUU7O0FBWXBFLE1BQUEsT0FBTyxDQUFDLE1BQUQsRUFBZTtBQUNwQixRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsU0FBRjtBQUNBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxVQUF1QixNQUF2QixDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQXlCLGFBQWEsQ0FBQyw2QkFBRCxDQUF0QyxDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFNBQUY7QUFDRCxPQWpCbUU7O0FBbUJwRSxNQUFBLFVBQVUsQ0FBQyxLQUFELEVBQWM7QUFDdEIsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFNBQUY7QUFDQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBeUMsS0FBSyxDQUFDLENBQUQsQ0FBOUMsRUFBbUQsQ0FBQyxJQUFELEVBQWUsVUFBZixLQUFxQztBQUN4RixVQUFBLFNBQVMsQ0FDUCxTQUFTLElBQUksaUNBQWlDLFVBQVUsa0tBQWtLLElBQUksSUFEdk4sRUFFUCxLQUZPLEVBR1A7QUFDRSxZQUFBLEVBQUUsRUFBRTtBQUROLFdBSE8sQ0FBVDtBQVFBLFVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxZQUFpQixDQUFqQixDQUFGO0FBQ0EsVUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFlBQWlCLElBQWpCLENBQUY7QUFDRCxTQVhDLENBQUY7QUFZQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBeUIsYUFBYSxDQUFDLGlCQUFELENBQXRDLENBQUY7QUFDQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsU0FBRjtBQUNEOztBQW5DbUUsS0FBcEUsQ0FBRjtBQXFDRCxHQXRDTSxNQXNDQSxJQUFJLEtBQUssQ0FBQyxDQUFELENBQUwsS0FBUTtBQUFBO0FBQVosSUFBbUM7QUFDeEMsVUFBSSxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLElBQW9DLEtBQXhDOztBQUVBLFVBQUksMEJBQTBCLENBQUMsVUFBRCxDQUE5QixFQUE0QztBQUMxQyxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBcUQsVUFBckQsRUFBaUU7QUFDakUsVUFBQSxXQUFXLENBQUMsU0FBRCxFQUFnQztBQUN6QyxZQUFBLGVBQWUsQ0FBQyxFQUFELEVBQUssU0FBTCxFQUFnQixJQUFoQixFQUFzQixVQUF0QixFQUFrQyxVQUFVLENBQUMsS0FBRCxDQUE1QyxFQUFxRCxJQUFyRCxDQUFmO0FBQ0QsV0FIZ0U7O0FBSWpFLFVBQUEsUUFBUSxDQUFDLE1BQUQsRUFBZTtBQUNyQixZQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsYUFBRjtBQUNBLFlBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxNQUFMLEVBQWEsVUFBYixFQUF5QixLQUF6QixDQUFKO0FBQ0EsWUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLGNBQXlCLGFBQWEsQ0FBQyw2QkFBRCxDQUF0QyxDQUFGO0FBQ0EsWUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLGFBQUY7QUFDRDs7QUFUZ0UsU0FBakUsQ0FBRjtBQVdELE9BWkQsTUFZTztBQUNMLFFBQUEsV0FBVyxDQUNULEVBRFMsRUFFVCxNQUFLO0FBQ0gsVUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFVBQUwsQ0FBSjtBQUNBLFVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxXQUFGO0FBQ0QsU0FMUSxFQU1SLElBQUQsSUFBUztBQUNQLFVBQUEsSUFBSSxDQUFBO0FBQUE7QUFBQSxZQUF3QixNQUFLO0FBQy9CLFlBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxhQUFGO0FBQ0EsWUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLGFBQUY7QUFDQSxZQUFBLHdCQUF3QixDQUFDLEVBQUQsRUFBSztBQUMzQixjQUFBLFlBQVksRUFBRSxJQURhO0FBRTNCLGNBQUEsWUFBWSxFQUFFLElBRmE7QUFHM0IsY0FBQSxVQUgyQjtBQUkzQixjQUFBLEtBSjJCO0FBSzNCLGNBQUEsT0FBTyxFQUFFLEtBTGtCO0FBTTNCLGNBQUEsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFEO0FBTlEsYUFBTCxDQUF4QjtBQVFELFdBWEcsQ0FBSjtBQWFBLFVBQUEsSUFBSSxDQUFBO0FBQUE7QUFBQSxZQUFxQixNQUFLO0FBQzVCLFlBQUEsV0FBVyxDQUFDLEVBQUQsRUFBSyxVQUFMLEVBQWlCLEtBQWpCLEVBQXdCLE1BQUs7QUFDdEMsY0FBQSxFQUFFLENBQUE7QUFBQTtBQUFBLGdCQUF5QixhQUFhLENBQUMsNkJBQUQsQ0FBdEMsQ0FBRjtBQUNELGFBRlUsQ0FBWDtBQUdELFdBSkcsQ0FBSjtBQUtELFNBekJRLENBQVg7QUEyQkQ7QUFDRixLQTVDTSxNQTRDQTtBQUNMLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0EsSUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLEtBQUwsQ0FBSjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUF5QixhQUFhLENBQUMsaUJBQUQsQ0FBdEMsQ0FBRjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0Q7QUFDRixDQTVGRDtBQThGQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUEyQyxDQUFDLEVBQUQsRUFBSyxHQUFHLEtBQUgsQ0FBTCxLQUFrQjtBQUMzRCxNQUFJLENBQUMsS0FBSyxDQUFDLE9BQU4sQ0FBYyxLQUFkLENBQUwsRUFBMkI7QUFDekIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQVUsS0FBSyxLQUFLLElBQVYsSUFBa0IsS0FBSyxLQUFLLFNBQTVCLEdBQXdDLEVBQXhDLEdBQTZDLE1BQU0sQ0FBQyxLQUFELENBQTdELENBQUY7QUFDRCxHQUZELE1BRU87QUFDTCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNBLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxLQUFMLENBQUo7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBeUIsYUFBYSxDQUFDLGlCQUFELENBQXRDLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNEO0FBQ0YsQ0FURDtBQVdBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWtDLENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLFVBQVQsRUFBcUIsS0FBckIsRUFBNEIsTUFBNUIsQ0FBTCxLQUE0QztBQUM1RSxNQUFJLGtCQUFrQixDQUFDLElBQUQsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQTZDLElBQTdDLEVBQW9ELFNBQUQsSUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsVUFBVSxDQUFDLEtBQUQsQ0FBNUMsRUFBcUQsTUFBckQsQ0FBZjtBQUNELEtBRkMsQ0FBRjtBQUdELEdBSkQsTUFJTztBQUNMLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEO0FBVUEsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBc0MsQ0FBQyxFQUFELEVBQUssR0FBRyxLQUFILEVBQVUsSUFBVixFQUFnQixXQUFoQixFQUE2QixZQUE3QixDQUFMLEtBQW1EO0FBQ3ZGLEVBQUEsWUFBWSxDQUNWLEVBRFUsRUFHVixNQUFLO0FBQ0gsSUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLElBQUwsQ0FBSjs7QUFFQSxRQUFJLFlBQVksS0FBSyxTQUFyQixFQUFnQztBQUM5QixNQUFBLHNCQUFzQixDQUFDLEVBQUQsRUFBSyxTQUFMLENBQXRCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsTUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFlBQUwsQ0FBSjtBQUNEOztBQUVELElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxXQUFMLENBQUo7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBUyxHQUFULEVBQWMsQ0FBZCxDQUFGO0FBRUEsV0FBTyxDQUFQO0FBQ0QsR0FoQlMsRUFrQlYsTUFBSztBQUNILElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0EsSUFBQSxpQkFBaUIsQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFqQjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0QsR0F0QlMsQ0FBWjtBQXdCRCxDQXpCRDtBQTJCQSxVQUFVLENBQUMsR0FBWCxDQUFjO0FBQUE7QUFBZCxFQUErQixDQUFDLEVBQUQsRUFBSyxHQUFHLFNBQUgsRUFBYyxLQUFkLEVBQXFCLE9BQXJCLENBQUwsS0FDN0IsWUFBWSxDQUNWLEVBRFUsRUFFVixNQUFLO0FBQ0gsRUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFNBQUwsQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBRUEsU0FBTyxDQUFQO0FBQ0QsQ0FQUyxFQVNWLE1BQUs7QUFDSCxFQUFBLGlCQUFpQixDQUFDLEVBQUQsRUFBSyxLQUFMLENBQWpCO0FBQ0QsQ0FYUyxFQWFWLE9BQU8sR0FDSCxNQUFLO0FBQ0gsRUFBQSxpQkFBaUIsQ0FBQyxFQUFELEVBQUssT0FBTCxDQUFqQjtBQUNELENBSEUsR0FJSCxTQWpCTSxDQURkO0FBc0JBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxFQUFVLEdBQVYsRUFBZSxLQUFmLEVBQXNCLE9BQXRCLENBQUwsS0FDL0IsVUFBVSxDQUNSLEVBRFEsRUFHUixNQUFLO0FBQ0gsTUFBSSxHQUFKLEVBQVM7QUFDUCxJQUFBLElBQUksQ0FBQyxFQUFELEVBQUssR0FBTCxDQUFKO0FBQ0QsR0FGRCxNQUVPO0FBQ0wsSUFBQSxzQkFBc0IsQ0FBQyxFQUFELEVBQUssSUFBTCxDQUF0QjtBQUNEOztBQUVELEVBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxLQUFMLENBQUo7QUFFQSxTQUFPLENBQVA7QUFDRCxDQWJPLEVBZVIsTUFBSztBQUNILEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFlLFlBQVksQ0FBQyxNQUFELENBQTNCLEVBQXFDLFlBQVksQ0FBQyxNQUFELENBQWpELENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFTLEdBQVQsRUFBYyxDQUFkLENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBcUIsWUFBWSxDQUFDLE1BQUQsQ0FBakMsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUErQixNQUEvQixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWEsWUFBWSxDQUFDLE9BQUQsQ0FBekIsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUErQixNQUEvQixDQUFGO0FBQ0EsRUFBQSwwQkFBMEIsQ0FBQyxFQUFELEVBQUssS0FBTCxFQUFZLENBQVosQ0FBMUI7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBUyxDQUFULENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBaUIsWUFBWSxDQUFDLFNBQUQsQ0FBN0IsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUErQixPQUEvQixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFpQixZQUFZLENBQUMsU0FBRCxDQUE3QixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQStCLE1BQS9CLENBQUY7O0FBRUEsTUFBSSxPQUFKLEVBQWE7QUFDWCxJQUFBLGlCQUFpQixDQUFDLEVBQUQsRUFBSyxPQUFMLENBQWpCO0FBQ0Q7QUFDRixDQW5DTyxDQURaO0FBd0NBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxFQUFVLEtBQVYsRUFBaUIsT0FBakIsQ0FBTCxLQUFrQztBQUNqRSxFQUFBLFlBQVksQ0FDVixFQURVLEVBR1YsTUFBSztBQUNILElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxLQUFMLENBQUo7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBUyxHQUFULEVBQWMsQ0FBZCxDQUFGO0FBQ0EsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFFQSxXQUFPLENBQVA7QUFDRCxHQVRTLEVBV1YsTUFBSztBQUNILElBQUEsMEJBQTBCLENBQUMsRUFBRCxFQUFLLEtBQUwsRUFBWSxDQUFaLENBQTFCO0FBQ0QsR0FiUyxFQWVWLE1BQUs7QUFDSCxRQUFJLE9BQUosRUFBYTtBQUNYLE1BQUEsaUJBQWlCLENBQUMsRUFBRCxFQUFLLE9BQUwsQ0FBakI7QUFDRDtBQUNGLEdBbkJTLENBQVo7QUFxQkQsQ0F0QkQ7QUF3QkEsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBZ0MsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILEVBQWUsS0FBZixDQUFMLEtBQThCO0FBQzVELE1BQUksS0FBSyxHQUFHLGlCQUFpQixDQUFDLEVBQUQsRUFBSyxVQUFMLENBQTdCO0FBQ0EsRUFBQSwwQkFBMEIsQ0FBQyxFQUFELEVBQUssS0FBTCxFQUFZLEtBQVosQ0FBMUI7QUFDRCxDQUhEO0FBS0EsVUFBVSxDQUFDLEdBQVgsQ0FBYztBQUFBO0FBQWQsRUFBNEMsQ0FBQyxFQUFELEVBQUssR0FBRyxLQUFILEVBQVUsS0FBVixDQUFMLEtBQXlCO0FBQ25FLE1BQUksS0FBSixFQUFXO0FBQ1QsUUFBSSxDQUFDLEtBQUQsRUFBUSxXQUFSLElBQXVCLEtBQTNCO0FBRUEsSUFBQSxpQkFBaUIsQ0FBQyxFQUFELEVBQUssV0FBTCxDQUFqQjtBQUNBLElBQUEsWUFBWSxDQUFDLEVBQUQsRUFBSyxLQUFMLEVBQVksTUFBSztBQUMzQixNQUFBLGlCQUFpQixDQUFDLEVBQUQsRUFBSyxLQUFMLENBQWpCO0FBQ0QsS0FGVyxDQUFaO0FBR0QsR0FQRCxNQU9PO0FBQ0wsSUFBQSxpQkFBaUIsQ0FBQyxFQUFELEVBQUssS0FBTCxDQUFqQjtBQUNEO0FBQ0YsQ0FYRDtBQWFBLFVBQVUsQ0FBQyxHQUFYLENBQWM7QUFBQTtBQUFkLEVBQTRDLENBQUMsRUFBRCxFQUFLLEdBQUcsSUFBSCxFQUFTLFVBQVQsRUFBcUIsS0FBckIsRUFBNEIsTUFBNUIsQ0FBTCxLQUE0QztBQUN0RixNQUFJLGtCQUFrQixDQUFDLElBQUQsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQTZDLElBQTdDLEVBQW9ELFNBQUQsSUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsVUFBVSxDQUFDLEtBQUQsQ0FBNUMsRUFBcUQsTUFBckQsQ0FBZjtBQUNELEtBRkMsQ0FBRjtBQUdELEdBSkQsTUFJTztBQUNMLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEOztBQVVBLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBSyxJQUFiLEVBQW1CLE9BQU8sSUFBUDtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsR0FBUixDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQUcsRUFBNUIsQ0FBWjtBQUNBLFNBQU8sQ0FBQyxLQUFELEVBQWlDLElBQUksQ0FBQyxDQUFELENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgdGVtcGxhdGUgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
import { CompileTimeConstants, CompileTimeResolver, ContainingMetadata, Expressions, ResolveComponentOp, ResolveComponentOrHelperOp, ResolveHelperOp, ResolveModifierOp, ResolveOptionalComponentOrHelperOp, ResolveOptionalHelperOp, ResolutionTimeConstants } from '@glimmer/interfaces';
export declare const isGetFreeComponent: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeModifier: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeComponentOrHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeOptionalHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeOptionalComponentOrHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeComponent: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeModifier: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeComponentOrHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare const isGetFreeOptionalHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
export declare function isGetFreeDeprecatedHelper(opcode: Expressions.Expression): opcode is Expressions.GetPathFreeAsDeprecatedHelperHeadOrThisFallback;
export declare const isGetFreeOptionalComponentOrHelper: (opcode: Expressions.Expression) => opcode is Expressions.GetTemplateSymbol | Expressions.GetStrictFree | Expressions.GetFreeAsFallback | Expressions.GetFreeAsComponentOrHelperHeadOrThisFallback | Expressions.GetFreeAsComponentOrHelperHead | Expressions.GetFreeAsHelperHeadOrThisFallback | Expressions.GetFreeAsDeprecatedHelperHeadOrThisFallback | Expressions.GetFreeAsHelperHead | Expressions.GetFreeAsModifierHead | Expressions.GetFreeAsComponentHead;
/**

@@ -9,0 +10,0 @@ * <Foo/>

import { SexpOpcodes } from '@glimmer/interfaces';
import { Compilers, PushExpressionOp } from './compilers';
export declare const EXPRESSIONS: Compilers<PushExpressionOp, SexpOpcodes.Undefined | SexpOpcodes.Call | SexpOpcodes.Concat | SexpOpcodes.GetSymbol | SexpOpcodes.GetTemplateSymbol | SexpOpcodes.GetStrictFree | SexpOpcodes.GetFreeAsFallback | SexpOpcodes.GetFreeAsComponentOrHelperHeadOrThisFallback | SexpOpcodes.GetFreeAsComponentOrHelperHead | SexpOpcodes.GetFreeAsHelperHeadOrThisFallback | SexpOpcodes.GetFreeAsHelperHead | SexpOpcodes.GetFreeAsModifierHead | SexpOpcodes.GetFreeAsComponentHead | SexpOpcodes.HasBlock | SexpOpcodes.HasBlockParams | SexpOpcodes.Curry | SexpOpcodes.Not | SexpOpcodes.IfInline | SexpOpcodes.GetDynamicVar | SexpOpcodes.Log>;
export declare const EXPRESSIONS: Compilers<PushExpressionOp, SexpOpcodes.Undefined | SexpOpcodes.Call | SexpOpcodes.Concat | SexpOpcodes.GetSymbol | SexpOpcodes.GetTemplateSymbol | SexpOpcodes.GetStrictFree | SexpOpcodes.GetFreeAsFallback | SexpOpcodes.GetFreeAsComponentOrHelperHeadOrThisFallback | SexpOpcodes.GetFreeAsComponentOrHelperHead | SexpOpcodes.GetFreeAsHelperHeadOrThisFallback | SexpOpcodes.GetFreeAsDeprecatedHelperHeadOrThisFallback | SexpOpcodes.GetFreeAsHelperHead | SexpOpcodes.GetFreeAsModifierHead | SexpOpcodes.GetFreeAsComponentHead | SexpOpcodes.HasBlock | SexpOpcodes.HasBlockParams | SexpOpcodes.Curry | SexpOpcodes.Not | SexpOpcodes.IfInline | SexpOpcodes.GetDynamicVar | SexpOpcodes.Log>;
//# sourceMappingURL=expressions.d.ts.map
{
"name": "@glimmer/opcode-compiler",
"version": "0.77.6",
"version": "0.78.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/opcode-compiler",
"dependencies": {
"@glimmer/env": "0.1.7",
"@glimmer/util": "0.77.6",
"@glimmer/wire-format": "0.77.6",
"@glimmer/interfaces": "0.77.6",
"@glimmer/vm": "0.77.6",
"@glimmer/encoder": "0.77.6",
"@glimmer/reference": "0.77.6"
"@glimmer/util": "0.78.0",
"@glimmer/wire-format": "0.78.0",
"@glimmer/interfaces": "0.78.0",
"@glimmer/vm": "0.78.0",
"@glimmer/encoder": "0.78.0",
"@glimmer/reference": "0.78.0"
},
"devDependencies": {
"@glimmer/debug": "0.77.6",
"@glimmer/local-debug-flags": "0.77.6"
"@glimmer/debug": "0.78.0",
"@glimmer/local-debug-flags": "0.78.0"
},

@@ -18,0 +18,0 @@ "main": "dist/commonjs/es2017/index.js",

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

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc