Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@glimmer/opcode-compiler

Package Overview
Dependencies
Maintainers
11
Versions
243
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/opcode-compiler - npm Package Compare versions

Comparing version 0.32.3 to 0.32.4

66

dist/commonjs/es2017/index.js

@@ -34,53 +34,2 @@ 'use strict';

var _lazy = require('./lib/lazy');
Object.keys(_lazy).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _lazy[key];
}
});
});
var _compile = require('./lib/compile');
Object.keys(_compile).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _compile[key];
}
});
});
var _compiler = require('./lib/compiler');
Object.keys(_compiler).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _compiler[key];
}
});
});
var _compilableTemplate = require('./lib/compilable-template');
Object.defineProperty(exports, 'CompilableBlock', {
enumerable: true,
get: function () {
return _compilableTemplate.CompilableBlock;
}
});
Object.defineProperty(exports, 'CompilableProgram', {
enumerable: true,
get: function () {
return _compilableTemplate.CompilableProgram;
}
});
var _opcodeBuilder = require('./lib/opcode-builder');

@@ -106,6 +55,6 @@

});
Object.defineProperty(exports, 'StdOpcodeBuilder', {
Object.defineProperty(exports, 'SimpleOpcodeBuilder', {
enumerable: true,
get: function () {
return _opcodeBuilder.StdOpcodeBuilder;
return _opcodeBuilder.SimpleOpcodeBuilder;
}

@@ -132,2 +81,11 @@ });

var _compilableTemplate = require('./lib/compilable-template');
Object.defineProperty(exports, 'CompilableTemplate', {
enumerable: true,
get: function () {
return _interopRequireDefault(_compilableTemplate).default;
}
});
var _debug = require('./lib/debug');

@@ -164,2 +122,2 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxBQUFjLEFBQWtCLEFBQUMsQUFFakMsQUFBTzs7Ozs7Ozs7Ozs7Ozs7O21CQUNMLEFBQVc7Ozs7OzttQkFFWCxBQUFNLEFBQ1AsQUFBTSxBQUFjLEFBQUM7Ozs7OztBQUV0QixBQUFjLEFBQVksQUFBQzs7Ozs7Ozs7Ozs7O0FBQzNCLEFBQWMsQUFBZSxBQUFDOzs7Ozs7Ozs7Ozs7QUFDOUIsQUFBYyxBQUFnQixBQUFDLEFBRS9CLEFBQU87Ozs7Ozs7Ozs7Ozs7OzsrQkFDTCxBQUFlOzs7Ozs7K0JBQ2YsQUFBaUIsQUFDbEIsQUFBTSxBQUEyQixBQUFDLEFBRW5DLEFBQU87Ozs7Ozs7OzswQkFDTCxBQUFpQjs7Ozs7OzBCQUNqQixBQUFrQjs7Ozs7OzBCQUNsQixBQUFhOzs7Ozs7MEJBRWIsQUFBZ0IsQUFDakIsQUFBTSxBQUFzQixBQUFDLEFBRTlCLEFBQU87Ozs7Ozs7Ozs0QkFBRSxBQUFpQixBQUFFLEFBQU0sQUFBd0IsQUFBQyxBQUUzRCxBQUFPOzs7Ozs7Ozs7NkNBQ0wsQUFBTyxBQUFJLEFBQWUsQUFFM0IsQUFBTSxBQUFnQixBQUFDLEFBRXhCLEFBQU87Ozs7Ozs7OztrQkFDTCxBQUFLOzs7Ozs7a0JBQ0wsQUFBVTs7Ozs7O2tCQUNWLEFBQVMsQUFDVixBQUFNLEFBQWEsQUFBQyxBQUVyQixBQUFPOzs7Ozs7Ozs7NkJBQ0wsQUFBYyxBQUNmLEFBQU0sQUFBeUIsQUFBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMnO1xuXG5leHBvcnQge1xuICBBVFRSU19CTE9DSyxcbiAgQ29tcGlsZU9wdGlvbnMsXG4gIE1hY3Jvc1xufSBmcm9tICcuL2xpYi9zeW50YXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXp5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcGlsZXInO1xuXG5leHBvcnQge1xuICBDb21waWxhYmxlQmxvY2ssXG4gIENvbXBpbGFibGVQcm9ncmFtXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBMYXp5T3Bjb2RlQnVpbGRlcixcbiAgRWFnZXJPcGNvZGVCdWlsZGVyLFxuICBPcGNvZGVCdWlsZGVyLFxuICBPcGNvZGVCdWlsZGVyQ29uc3RydWN0b3IsXG4gIFN0ZE9wY29kZUJ1aWxkZXIsXG59IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyJztcblxuZXhwb3J0IHsgUGFydGlhbERlZmluaXRpb24gfSBmcm9tICcuL2xpYi9wYXJ0aWFsLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyB0ZW1wbGF0ZUZhY3RvcnksXG4gIFRlbXBsYXRlRmFjdG9yeVxufSBmcm9tICcuL2xpYi90ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlYnVnLFxuICBkZWJ1Z1NsaWNlLFxuICBsb2dPcGNvZGVcbn0gZnJvbSAnLi9saWIvZGVidWcnO1xuXG5leHBvcnQge1xuICBXcmFwcGVkQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvd3JhcHBlZC1jb21wb25lbnQnO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxBQUFjLEFBQWtCLEFBQUMsQUFFakMsQUFBTzs7Ozs7Ozs7Ozs7Ozs7O21CQUNMLEFBQVc7Ozs7OzttQkFFWCxBQUFNLEFBRVAsQUFBTSxBQUFjLEFBQUMsQUFFdEIsQUFBTzs7Ozs7Ozs7OzBCQUVMLEFBQWlCOzs7Ozs7MEJBQ2pCLEFBQWtCOzs7Ozs7MEJBQ2xCLEFBQWE7Ozs7OzswQkFFYixBQUFtQixBQUNwQixBQUFNLEFBQXNCLEFBQUMsQUFFOUIsQUFBTzs7Ozs7Ozs7OzRCQUFFLEFBQWlCLEFBQUUsQUFBTSxBQUF3QixBQUFDLEFBRTNELEFBQU87Ozs7Ozs7Ozs2Q0FDTCxBQUFPLEFBQUksQUFBZSxBQUUzQixBQUFNLEFBQWdCLEFBQUMsQUFFeEIsQUFBTzs7Ozs7Ozs7O3VEQUNMLEFBQU8sQUFBSSxBQUFrQixBQUM5QixBQUFNLEFBQTJCLEFBQUMsQUFFbkMsQUFBTzs7Ozs7Ozs7O2tCQUNMLEFBQUs7Ozs7OztrQkFDTCxBQUFVOzs7Ozs7a0JBQ1YsQUFBUyxBQUNWLEFBQU0sQUFBYSxBQUFDLEFBRXJCLEFBQU87Ozs7Ozs7Ozs2QkFDTCxBQUFjLEFBQ2YsQUFBTSxBQUF5QixBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7XG4gIEFUVFJTX0JMT0NLLFxuICBDb21waWxlT3B0aW9ucyxcbiAgTWFjcm9zLFxuICBUZW1wbGF0ZU9wdGlvbnNcbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0IHtcbiAgQ29tcGlsZVRpbWVMb29rdXAsXG4gIExhenlPcGNvZGVCdWlsZGVyLFxuICBFYWdlck9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXJDb25zdHJ1Y3RvcixcbiAgU2ltcGxlT3Bjb2RlQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbiB9IGZyb20gJy4vbGliL3BhcnRpYWwtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHRlbXBsYXRlRmFjdG9yeSxcbiAgVGVtcGxhdGVGYWN0b3J5XG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBDb21waWxhYmxlVGVtcGxhdGUsXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==

66

dist/commonjs/es2017/lib/compilable-template.js

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

"use strict";
'use strict';

@@ -6,31 +6,24 @@ Object.defineProperty(exports, "__esModule", {

});
exports.PLACEHOLDER_HANDLE = undefined;
var _debug = require('./debug');
var _syntax = require('./syntax');
const PLACEHOLDER_HANDLE = exports.PLACEHOLDER_HANDLE = -1;
class CompilableProgram {
constructor(compiler, layout) {
this.compiler = compiler;
this.layout = layout;
class CompilableTemplateImpl {
constructor(statements, containingLayout, options, symbolTable) {
this.statements = statements;
this.containingLayout = containingLayout;
this.options = options;
this.symbolTable = symbolTable;
this.compiled = null;
this.statementCompiler = (0, _syntax.statementCompiler)();
}
get symbolTable() {
return this.layout.block;
static topLevel(block, options) {
return new CompilableTemplateImpl(block.statements, { block, referrer: options.referrer }, options, { hasEval: block.hasEval, symbols: block.symbols });
}
compile() {
if (this.compiled !== null) return this.compiled;
this.compiled = PLACEHOLDER_HANDLE;
let { block: { statements } } = this.layout;
return this.compiled = this.compiler.add(statements, this.layout);
}
}
exports.CompilableProgram = CompilableProgram;
class CompilableBlock {
constructor(compiler, parsed) {
this.compiler = compiler;
this.parsed = parsed;
this.compiled = null;
}
get symbolTable() {
return this.parsed.block;
}
compile() {
if (this.compiled !== null) return this.compiled;
compile(stdLib) {
let { compiled } = this;
if (compiled !== null) return compiled;
// Track that compilation has started but not yet finished by temporarily

@@ -41,7 +34,20 @@ // using a placeholder handle. In eager compilation mode, where compile()

this.compiled = PLACEHOLDER_HANDLE;
let { block: { statements }, containingLayout } = this.parsed;
return this.compiled = this.compiler.add(statements, containingLayout);
let { options, statements, containingLayout } = this;
let { referrer } = containingLayout;
let { program, resolver, macros, asPartial, Builder } = options;
let builder = new Builder(program, resolver, referrer, macros, containingLayout, asPartial, stdLib);
for (let i = 0; i < statements.length; i++) {
this.statementCompiler.compile(statements[i], builder);
}
let handle = builder.commit(program.heap, containingLayout.block.symbols.length);
if (false) {
let { heap } = program;
let start = heap.getaddr(handle);
let end = start + heap.sizeof(handle);
(0, _debug.debugSlice)(program, start, end);
}
return this.compiled = handle;
}
}
exports.CompilableBlock = CompilableBlock;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVlPLE1BQU0sQUFBa0Isa0RBQUcsQ0FBQyxBQUFDLEFBQUMsQUFFckMsQUFBTTs7Z0JBSVEsQUFBMEIsVUFDMUIsQUFBeUIsUUFEekI7YUFBUSxXQUFSLEFBQVEsQUFBa0IsQUFDMUI7YUFBTSxTQUpWLEFBSUksQUFBTSxBQUFtQjthQUpyQixXQUFtQixBQUFJLEFBQUMsQUFLckMsQUFBQztBQUVKO1FBQUksQUFBVyxjQUNiLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxPQUFDLEFBQUssQUFBQyxBQUMzQixBQUFDO0FBRUQsQUFBTztjQUNMLEFBQUUsQUFBQztZQUFDLEFBQUksS0FBQyxBQUFRLGFBQUssQUFBSSxBQUFDLE1BQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFRLEFBQUMsQUFFakQsQUFBSTthQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDLEFBRW5DO1lBQUksRUFBRSxBQUFLLE9BQUUsRUFBRSxBQUFVLEFBQUUsQUFBRSxpQkFBRyxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBRTVDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBUSxXQUFHLEFBQUksS0FBQyxBQUFRLFNBQUMsQUFBRyxJQUFDLEFBQVUsWUFBRSxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBQUMsQUFDcEUsQUFBQyxBQUNGO0FBRUQsQUFBTTtBQXBCSjs7O2dCQXdCVSxBQUEwQixVQUMxQixBQUF3QixRQUR4QjthQUFRLFdBQVIsQUFBUSxBQUFrQixBQUMxQjthQUFNLFNBSlIsQUFJRSxBQUFNLEFBQWtCO2FBSmxCLFdBQW1CLEFBQUksQUFBQyxBQUtyQyxBQUFDO0FBRUo7UUFBSSxBQUFXLGNBQ2IsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBSyxBQUFDLEFBQzNCLEFBQUM7QUFFRCxBQUFPO2NBQ0wsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQVEsYUFBSyxBQUFJLEFBQUMsTUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQVEsQUFBQyxBQUVqRCxBQUF5RTtBQUN6RSxBQUF5RTtBQUN6RSxBQUE0RTtBQUM1RSxBQUFvRDtBQUNwRCxBQUFJO2FBQUMsQUFBUSxXQUFHLEFBQWtCLEFBQUMsQUFFbkM7WUFBSSxFQUFFLEFBQUssT0FBRSxFQUFFLEFBQVUsQUFBRSxjQUFFLEFBQWdCLEFBQUUscUJBQUcsQUFBSSxLQUFDLEFBQU0sQUFBQyxBQUU5RCxBQUFNO2VBQUMsQUFBSSxLQUFDLEFBQVEsV0FBRyxBQUFJLEtBQUMsQUFBUSxTQUFDLEFBQUcsSUFBQyxBQUFVLFlBQUUsQUFBZ0IsQUFBQyxBQUFDLEFBQ3pFLEFBQUMsQUFDRjs7QUF0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxhYmxlVGVtcGxhdGUsXG4gIFByb2dyYW1TeW1ib2xUYWJsZSxcbiAgQ29tcGlsYWJsZVByb2dyYW0gYXMgSUNvbXBpbGFibGVQcm9ncmFtLFxuICBPcHRpb24sXG4gIExheW91dFdpdGhDb250ZXh0LFxuICBPcGFxdWUsXG4gIENvbXBpbGVyLFxuICBCbG9ja1N5bWJvbFRhYmxlLFxuICBCbG9ja1dpdGhDb250ZXh0XG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCBjbGFzcyBDb21waWxhYmxlUHJvZ3JhbSBpbXBsZW1lbnRzIElDb21waWxhYmxlUHJvZ3JhbSB7XG4gIHByaXZhdGUgY29tcGlsZWQ6IE9wdGlvbjxudW1iZXI+ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY29tcGlsZXI6IENvbXBpbGVyPE9wYXF1ZT4sXG4gICAgcHJvdGVjdGVkIGxheW91dDogTGF5b3V0V2l0aENvbnRleHRcbiAgKSB7fVxuXG4gIGdldCBzeW1ib2xUYWJsZSgpOiBQcm9ncmFtU3ltYm9sVGFibGUge1xuICAgIHJldHVybiB0aGlzLmxheW91dC5ibG9jaztcbiAgfVxuXG4gIGNvbXBpbGUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5jb21waWxlZCAhPT0gbnVsbCkgcmV0dXJuIHRoaXMuY29tcGlsZWQ7XG5cbiAgICB0aGlzLmNvbXBpbGVkID0gUExBQ0VIT0xERVJfSEFORExFO1xuXG4gICAgbGV0IHsgYmxvY2s6IHsgc3RhdGVtZW50cyB9IH0gPSB0aGlzLmxheW91dDtcblxuICAgIHJldHVybiB0aGlzLmNvbXBpbGVkID0gdGhpcy5jb21waWxlci5hZGQoc3RhdGVtZW50cywgdGhpcy5sYXlvdXQpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21waWxhYmxlQmxvY2sgaW1wbGVtZW50cyBDb21waWxhYmxlVGVtcGxhdGU8QmxvY2tTeW1ib2xUYWJsZT4ge1xuICBwcml2YXRlIGNvbXBpbGVkOiBPcHRpb248bnVtYmVyPiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXI8T3BhcXVlPixcbiAgICBwcml2YXRlIHBhcnNlZDogQmxvY2tXaXRoQ29udGV4dFxuICApIHt9XG5cbiAgZ2V0IHN5bWJvbFRhYmxlKCk6IEJsb2NrU3ltYm9sVGFibGUge1xuICAgIHJldHVybiB0aGlzLnBhcnNlZC5ibG9jaztcbiAgfVxuXG4gIGNvbXBpbGUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5jb21waWxlZCAhPT0gbnVsbCkgcmV0dXJuIHRoaXMuY29tcGlsZWQ7XG5cbiAgICAvLyBUcmFjayB0aGF0IGNvbXBpbGF0aW9uIGhhcyBzdGFydGVkIGJ1dCBub3QgeWV0IGZpbmlzaGVkIGJ5IHRlbXBvcmFyaWx5XG4gICAgLy8gdXNpbmcgYSBwbGFjZWhvbGRlciBoYW5kbGUuIEluIGVhZ2VyIGNvbXBpbGF0aW9uIG1vZGUsIHdoZXJlIGNvbXBpbGUoKVxuICAgIC8vIG1heSBiZSBjYWxsZWQgcmVjdXJzaXZlbHksIHdlIHVzZSB0aGlzIGFzIGEgc2lnbmFsIHRoYXQgdGhlIGhhbmRsZSBjYW5ub3RcbiAgICAvLyBiZSBrbm93biBzeW5jaHJvbm91c2x5IGFuZCBtdXN0IGJlIGxpbmtlZCBsYXppbHkuXG4gICAgdGhpcy5jb21waWxlZCA9IFBMQUNFSE9MREVSX0hBTkRMRTtcblxuICAgIGxldCB7IGJsb2NrOiB7IHN0YXRlbWVudHMgfSwgY29udGFpbmluZ0xheW91dCB9ID0gdGhpcy5wYXJzZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb21waWxlZCA9IHRoaXMuY29tcGlsZXIuYWRkKHN0YXRlbWVudHMsIGNvbnRhaW5pbmdMYXlvdXQpO1xuICB9XG59XG4iXX0=
exports.default = CompilableTemplateImpl;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBU0EsQUFBTyxBQUFFLEFBQVUsQUFBRSxBQUFNLEFBQVMsQUFBQzs7QUFFckMsQUFBTyxBQUFrQixBQUFpQixBQUFhLEFBQU0sQUFBVSxBQUFDLEFBRXhFLEFBQU07O0FBQUMsTUFBTSxBQUFrQixrREFBRyxDQUFDLEFBQUMsQUFBQyxBQUVyQyxBQUFNLEFBQUMsQUFBTzs7Z0JBY1EsQUFBdUIsWUFBVSxBQUE4QixrQkFBVSxBQUFxQyxTQUFTLEFBQXdCLGFBQS9JO2FBQVUsYUFBVixBQUFVLEFBQWEsQUFBVTthQUFnQixtQkFBaEIsQUFBZ0IsQUFBYyxBQUFVO2FBQU8sVUFBUCxBQUFPLEFBQThCLEFBQVM7YUFBVyxjQUo5SSxBQUltSSxBQUFXLEFBQWE7YUFKbkosV0FBbUIsQUFBSSxBQUFDLEFBS3RDLEFBQUk7YUFBQyxBQUFpQixvQkFBRyxBQUFpQixBQUFFLEFBQUMsQUFDL0MsQUFBQztBQWZELEFBQU07V0FBQyxBQUFRLFNBQWUsQUFBOEIsT0FBRSxBQUFxQyxTQUNqRyxBQUFNO2VBQUMsSUFBSSxBQUFzQix1QkFDL0IsQUFBSyxNQUFDLEFBQVUsWUFDaEIsRUFBRSxBQUFLLE9BQUUsQUFBUSxVQUFFLEFBQU8sUUFBQyxBQUFRLEFBQUUsWUFDckMsQUFBTyxTQUNQLEVBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLFNBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLEFBQUUsQUFDbkQsQUFBQyxBQUNKLEFBQUM7QUFVRCxBQUFPO1lBQUMsQUFBZSxRQUNyQjtZQUFJLEVBQUUsQUFBUSxBQUFFLGFBQUcsQUFBSSxBQUFDLEFBQ3hCLEFBQUUsQUFBQztZQUFDLEFBQVEsYUFBSyxBQUFJLEFBQUMsTUFBQyxBQUFNLE9BQUMsQUFBUSxBQUFDLEFBRXZDLEFBQXlFO0FBQ3pFLEFBQXlFO0FBQ3pFLEFBQTRFO0FBQzVFLEFBQW9EO0FBQ3BELEFBQUk7YUFBQyxBQUFRLFdBQUcsQUFBa0IsQUFBQyxBQUVuQztZQUFJLEVBQUUsQUFBTyxTQUFFLEFBQVUsWUFBRSxBQUFnQixBQUFFLHFCQUFHLEFBQUksQUFBQyxBQUNyRDtZQUFJLEVBQUUsQUFBUSxBQUFFLGFBQUcsQUFBZ0IsQUFBQyxBQUNwQztZQUFJLEVBQUUsQUFBTyxTQUFFLEFBQVEsVUFBRSxBQUFNLFFBQUUsQUFBUyxXQUFFLEFBQU8sQUFBRSxZQUFHLEFBQU8sQUFBQyxBQUVoRTtZQUFJLEFBQU8sVUFBRyxJQUFJLEFBQU8sUUFBQyxBQUFPLFNBQUUsQUFBUSxVQUFFLEFBQVEsVUFBRSxBQUFNLFFBQUUsQUFBZ0Isa0JBQUUsQUFBUyxXQUFFLEFBQU0sQUFBQyxBQUFDLEFBRXBHLEFBQUcsQUFBQzthQUFDLElBQUksQUFBQyxJQUFHLEFBQUMsR0FBRSxBQUFDLElBQUcsQUFBVSxXQUFDLEFBQU0sUUFBRSxBQUFDLEFBQUUsS0FBRSxBQUFDLEFBQzNDLEFBQUk7aUJBQUMsQUFBaUIsa0JBQUMsQUFBTyxRQUFDLEFBQVUsV0FBQyxBQUFDLEFBQUMsSUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN6RCxBQUFDO0FBRUQ7WUFBSSxBQUFNLFNBQUcsQUFBTyxRQUFDLEFBQU0sT0FBQyxBQUFPLFFBQUMsQUFBSSxNQUFFLEFBQWdCLGlCQUFDLEFBQUssTUFBQyxBQUFPLFFBQUMsQUFBTSxBQUFDLEFBQUMsQUFFakYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDO21CQUFDLEFBQUMsQUFDVjtnQkFBSSxFQUFFLEFBQUksQUFBRSxTQUFHLEFBQU8sQUFBQyxBQUN2QjtnQkFBSSxBQUFLLFFBQUcsQUFBSSxLQUFDLEFBQU8sUUFBQyxBQUFNLEFBQUMsQUFBQyxBQUNqQztnQkFBSSxBQUFHLE1BQUcsQUFBSyxRQUFHLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBTSxBQUFDLEFBQUMsQUFFdEMsQUFBVTttQ0FBQyxBQUFPLFNBQUUsQUFBSyxPQUFFLEFBQUcsQUFBQyxBQUFDLEFBQ2xDLEFBQUM7QUFFRCxBQUFNLEFBQUM7ZUFBQyxBQUFJLEtBQUMsQUFBUSxXQUFHLEFBQU0sQUFBQyxBQUFDLEFBQ2xDLEFBQUMsQUFDRjs7QUFwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxhYmxlVGVtcGxhdGUsXG4gIFNURExpYixcbiAgUHJvZ3JhbVN5bWJvbFRhYmxlLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgT3B0aW9uXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RhdGVtZW50LCBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3MnO1xuaW1wb3J0IHsgZGVidWdTbGljZSB9IGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IHsgUGFyc2VkTGF5b3V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbXBpbGVPcHRpb25zLCBzdGF0ZW1lbnRDb21waWxlciwgQ29tcGlsZXJzIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBpbGFibGVUZW1wbGF0ZUltcGw8U3ltYm9sVGFibGUsIFRlbXBsYXRlTWV0YT4gaW1wbGVtZW50cyBDb21waWxhYmxlVGVtcGxhdGU8U3ltYm9sVGFibGU+IHtcbiAgc3RhdGljIHRvcExldmVsPFRlbXBsYXRlTWV0YT4oYmxvY2s6IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLCBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+KTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIHJldHVybiBuZXcgQ29tcGlsYWJsZVRlbXBsYXRlSW1wbDxQcm9ncmFtU3ltYm9sVGFibGUsIFRlbXBsYXRlTWV0YT4oXG4gICAgICBibG9jay5zdGF0ZW1lbnRzLFxuICAgICAgeyBibG9jaywgcmVmZXJyZXI6IG9wdGlvbnMucmVmZXJyZXIgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB7IGhhc0V2YWw6IGJsb2NrLmhhc0V2YWwsIHN5bWJvbHM6IGJsb2NrLnN5bWJvbHMgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbXBpbGVkOiBPcHRpb248bnVtYmVyPiA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdGF0ZW1lbnRDb21waWxlcjogQ29tcGlsZXJzPFN0YXRlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXSwgcHJpdmF0ZSBjb250YWluaW5nTGF5b3V0OiBQYXJzZWRMYXlvdXQsIHByaXZhdGUgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiwgcHVibGljIHN5bWJvbFRhYmxlOiBTeW1ib2xUYWJsZSkge1xuICAgIHRoaXMuc3RhdGVtZW50Q29tcGlsZXIgPSBzdGF0ZW1lbnRDb21waWxlcigpO1xuICB9XG5cbiAgY29tcGlsZShzdGRMaWI/OiBTVERMaWIpOiBudW1iZXIge1xuICAgIGxldCB7IGNvbXBpbGVkIH0gPSB0aGlzO1xuICAgIGlmIChjb21waWxlZCAhPT0gbnVsbCkgcmV0dXJuIGNvbXBpbGVkO1xuXG4gICAgLy8gVHJhY2sgdGhhdCBjb21waWxhdGlvbiBoYXMgc3RhcnRlZCBidXQgbm90IHlldCBmaW5pc2hlZCBieSB0ZW1wb3JhcmlseVxuICAgIC8vIHVzaW5nIGEgcGxhY2Vob2xkZXIgaGFuZGxlLiBJbiBlYWdlciBjb21waWxhdGlvbiBtb2RlLCB3aGVyZSBjb21waWxlKClcbiAgICAvLyBtYXkgYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5LCB3ZSB1c2UgdGhpcyBhcyBhIHNpZ25hbCB0aGF0IHRoZSBoYW5kbGUgY2Fubm90XG4gICAgLy8gYmUga25vd24gc3luY2hyb25vdXNseSBhbmQgbXVzdCBiZSBsaW5rZWQgbGF6aWx5LlxuICAgIHRoaXMuY29tcGlsZWQgPSBQTEFDRUhPTERFUl9IQU5ETEU7XG5cbiAgICBsZXQgeyBvcHRpb25zLCBzdGF0ZW1lbnRzLCBjb250YWluaW5nTGF5b3V0IH0gPSB0aGlzO1xuICAgIGxldCB7IHJlZmVycmVyIH0gPSBjb250YWluaW5nTGF5b3V0O1xuICAgIGxldCB7IHByb2dyYW0sIHJlc29sdmVyLCBtYWNyb3MsIGFzUGFydGlhbCwgQnVpbGRlciB9ID0gb3B0aW9ucztcblxuICAgIGxldCBidWlsZGVyID0gbmV3IEJ1aWxkZXIocHJvZ3JhbSwgcmVzb2x2ZXIsIHJlZmVycmVyLCBtYWNyb3MsIGNvbnRhaW5pbmdMYXlvdXQsIGFzUGFydGlhbCwgc3RkTGliKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5zdGF0ZW1lbnRDb21waWxlci5jb21waWxlKHN0YXRlbWVudHNbaV0sIGJ1aWxkZXIpO1xuICAgIH1cblxuICAgIGxldCBoYW5kbGUgPSBidWlsZGVyLmNvbW1pdChwcm9ncmFtLmhlYXAsIGNvbnRhaW5pbmdMYXlvdXQuYmxvY2suc3ltYm9scy5sZW5ndGgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgeyBoZWFwIH0gPSBwcm9ncmFtO1xuICAgICAgbGV0IHN0YXJ0ID0gaGVhcC5nZXRhZGRyKGhhbmRsZSk7XG4gICAgICBsZXQgZW5kID0gc3RhcnQgKyBoZWFwLnNpemVvZihoYW5kbGUpO1xuXG4gICAgICBkZWJ1Z1NsaWNlKHByb2dyYW0sIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5jb21waWxlZCA9IGhhbmRsZSk7XG4gIH1cbn1cbiJdfQ==

@@ -22,3 +22,3 @@ 'use strict';

let { type, op1, op2, op3, size } = program.opcode(i);
let [name, params] = debug(i, constants, type, op1, op2, op3);
let [name, params] = debug(constants, type, op1, op2, op3);
console.log(`${i}. ${logOpcode(name, params)}`);

@@ -61,3 +61,3 @@ _size = size;

}
function debug(pos, c, op, ...operands) {
function debug(c, op, ...operands) {
let metadata = null;

@@ -71,5 +71,2 @@ if (!metadata) {

switch (operand.type) {
case 'to':
out[operand.name] = pos + op;
break;
case 'i32':

@@ -141,2 +138,2 @@ case 'symbol':

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU9BLEFBQU8sQUFBRSxBQUFRLEFBQU0sQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDLEFBQ3JELEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQUksQUFBRSxBQUFNLEFBQWUsQUFBQyxBQWlCbEQsQUFBTTs7b0JBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDO2VBQUMsQUFBQyxBQUNWLEFBQStCO0FBQy9CO1lBQUksRUFBRSxBQUFTLEFBQUUsY0FBRyxBQUFPLEFBQUMsQUFFM0IsQUFBZTtnQkFBQyxBQUFLLEFBQUMsV0FBSyxBQUFLLFNBQUksQUFBRyxBQUFFLE9BQUUsQUFBYSxBQUFDLEFBQUMsQUFFM0Q7WUFBSSxBQUFLLFFBQUcsQUFBQyxBQUFDLEFBQ2QsQUFBRyxBQUFDO2FBQUMsSUFBSSxBQUFDLElBQUMsQUFBSyxPQUFFLEFBQUMsSUFBQyxBQUFHLEtBQUUsQUFBQyxJQUFHLEFBQUMsSUFBRyxBQUFLLE9BQUUsQUFBQyxBQUN2QztnQkFBSSxFQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFJLEFBQUUsU0FBRyxBQUFPLFFBQUMsQUFBTSxPQUFDLEFBQUMsQUFBQyxBQUFDLEFBQ3REO2dCQUFJLENBQUMsQUFBSSxNQUFFLEFBQU0sQUFBQyxVQUFHLEFBQUssTUFBQyxBQUFDLEdBQUUsQUFBeUQsV0FBRSxBQUFJLE1BQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFHLEFBQUMsQUFBQyxBQUM5RyxBQUFPO29CQUFDLEFBQUcsQUFBQyxPQUFHLEFBQUMs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QUFDcEM7QUFDRTtrQkFBTSxBQUFXLEFBQUUsQUFBQyxBQUN4QixBQUFDLEFBQ0gsQUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIE9wdGlvbixcbiAgT3BhcXVlLFxuICBSZWNhc3Rcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNRVRBREFUQSwgT3AsIFJlZ2lzdGVyIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyB1bnJlYWNoYWJsZSwgZGljdCB9IGZyb20gXCJAZ2xpbW1lci91dGlsXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQGdsaW1tZXIvZGVidWdcIjtcbmltcG9ydCB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tIFwiQGdsaW1tZXIvcHJvZ3JhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBudW1iZXI7XG4gIGdldFN0cmluZyh2YWx1ZTogbnVtYmVyKTogc3RyaW5nO1xuICBnZXRTdHJpbmdBcnJheSh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW107XG4gIGdldEFycmF5KHZhbHVlOiBudW1iZXIpOiBudW1iZXJbXTtcbiAgZ2V0U2VyaWFsaXphYmxlPFQ+KHM6IG51bWJlcik6IFQ7XG4gIHJlc29sdmVIYW5kbGU8VD4oczogbnVtYmVyKTogVDtcbn1cblxuaW50ZXJmYWNlIExhenlEZWJ1Z0NvbnN0YW50cyB7XG4gIGdldE90aGVyPFQ+KHM6IG51bWJlcik6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1Z1NsaWNlKHByb2dyYW06IENvbXBpbGVUaW1lUHJvZ3JhbSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tY29uc29sZSAqL1xuICAgIGxldCB7IGNvbnN0YW50cyB9ID0gcHJvZ3JhbTtcblxuICAgIChjb25zb2xlIGFzIGFueSkuZ3JvdXAoYCVjJHtzdGFydH06JHtlbmR9YCwgJ2NvbG9yOiAjOTk5Jyk7XG5cbiAgICBsZXQgX3NpemUgPSAwO1xuICAgIGZvciAobGV0IGk9c3RhcnQ7IGk8ZW5kOyBpID0gaSArIF9zaXplKSB7XG4gICAgICBsZXQgeyB0eXBlLCBvcDEsIG9wMiwgb3AzLCBzaXplIH0gPSBwcm9ncmFtLm9wY29kZShpKTtcbiAgICAgIGxldCBbbmFtZSwgcGFyYW1zXSA9IGRlYnVnKGksIGNvbnN0YW50cyBhcyBSZWNhc3Q8Q29tcGlsZVRpbWVDb25zdGFudHMsIERlYnVnQ29uc3RhbnRzPiwgdHlwZSwgb3AxLCBvcDIsIG9wMyk7XG4gICAgICBjb25zb2xlLmxvZyhgJHtpfS4gJHtsb2dPcGNvZGUobmFtZSwgcGFyYW1zKX1gKTtcbiAgICAgIF9zaXplID0gc2l6ZTtcbiAgICB9XG4gICAgcHJvZ3JhbS5vcGNvZGUoLV9zaXplKTtcbiAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1jb25zb2xlICovXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ09wY29kZSh0eXBlOiBzdHJpbmcsIHBhcmFtczogT3B0aW9uPE9iamVjdD4pOiBzdHJpbmcgfCB2b2lkIHtcbiAgbGV0IG91dCA9IHR5cGU7XG5cbiAgaWYgKHBhcmFtcykge1xuICAgIGxldCBhcmdzID0gT2JqZWN0LmtleXMocGFyYW1zKS5tYXAocCA9PiBgICR7cH09JHtqc29uKHBhcmFtc1twXSl9YCkuam9pbignJyk7XG4gICAgb3V0ICs9IGFyZ3M7XG4gIH1cbiAgcmV0dXJuIGAoJHtvdXR9KWA7XG59XG5cbmZ1bmN0aW9uIGpzb24ocGFyYW06IE9wYXF1ZSkge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAodHlwZW9mIHBhcmFtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gJzxmdW5jdGlvbj4nO1xuICAgIH1cblxuICAgIGxldCBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIHJldHVybiAnPG9iamVjdD4nO1xuICAgIH1cblxuICAgIGlmIChzdHJpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cblxuICAgIGxldCBkZWJ1ZyA9IEpTT04ucGFyc2Uoc3RyaW5nKTtcbiAgICBpZiAodHlwZW9mIGRlYnVnID09PSAnb2JqZWN0JyAmJiBkZWJ1ZyAhPT0gbnVsbCAmJiBkZWJ1Zy5HbGltbWVyRGVidWcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRlYnVnLkdsaW1tZXJEZWJ1ZztcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1Zyhwb3M6IG51bWJlciwgYzogRGVidWdDb25zdGFudHMsIG9wOiBPcCwgLi4ub3BlcmFuZHM6IG51bWJlcltdKTogW3N0cmluZywgb2JqZWN0XSB7XG4gIGxldCBtZXRhZGF0YSA9IE1FVEFEQVRBW29wXTtcblxuICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgdGhyb3cgdW5yZWFjaGFibGUoYE1pc3NpbmcgT3Bjb2RlIE1ldGFkYXRhIGZvciAke29wfWApO1xuICB9XG5cbiAgbGV0IG91dCA9IGRpY3Q8T3BhcXVlPigpO1xuXG4gIG1ldGFkYXRhLm9wcy5mb3JFYWNoKChvcGVyYW5kLCBpbmRleCkgPT4ge1xuICAgIGxldCBvcCA9IG9wZXJhbmRzW2luZGV4XTtcblxuICAgIHN3aXRjaCAob3BlcmFuZC50eXBlKSB7XG4gICAgICBjYXNlICd0byc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gcG9zICsgb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaTMyJzpcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICBjYXNlICdibG9jayc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGFuZGxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLnJlc29sdmVIYW5kbGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmcob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbi1zdHInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IG9wID8gYy5nZXRTdHJpbmcob3ApIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHItYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U3RyaW5nQXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldEFycmF5KG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib29sJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSAhIW9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ByaW1pdGl2ZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gZGVjb2RlUHJpbWl0aXZlKG9wLCBjKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWdpc3Rlcic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gUmVnaXN0ZXJbb3BdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlcmlhbGl6YWJsZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTZXJpYWxpemFibGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xhenktY29uc3RhbnQnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IChjIGFzIFJlY2FzdDxEZWJ1Z0NvbnN0YW50cywgTGF6eURlYnVnQ29uc3RhbnRzPikuZ2V0T3RoZXIob3ApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBbbWV0YWRhdGEubmFtZSwgb3V0XTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlUHJpbWl0aXZlKHByaW1pdGl2ZTogbnVtYmVyLCBjb25zdGFudHM6IERlYnVnQ29uc3RhbnRzKTogUHJpbWl0aXZlIHtcbiAgbGV0IGZsYWcgPSBwcmltaXRpdmUgJiA3OyAvLyAxMTFcbiAgbGV0IHZhbHVlID0gcHJpbWl0aXZlID4+IDM7XG5cbiAgc3dpdGNoIChmbGFnKSB7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5VTUJFUjpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuRkxPQVQ6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLlNUUklORzpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0U3RyaW5nKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuQk9PTEVBTl9PUl9WT0lEOlxuICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBmYWxzZTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY2FzZSAyOiByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSAzOiByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5ORUdBVElWRTpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgdW5yZWFjaGFibGUoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU9BLEFBQU8sQUFBRSxBQUFRLEFBQU0sQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDLEFBQ3JELEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQUksQUFBRSxBQUFNLEFBQWUsQUFBQyxBQWlCbEQsQUFBTTs7b0JBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDO2VBQUMsQUFBQyxBQUNWLEFBQStCO0FBQy9CO1lBQUksRUFBRSxBQUFTLEFBQUUsY0FBRyxBQUFPLEFBQUMsQUFFM0IsQUFBZTtnQkFBQyxBQUFLLEFBQUMsV0FBSyxBQUFLLFNBQUksQUFBRyxBQUFFLE9BQUUsQUFBYSxBQUFDLEFBQUMsQUFFM0Q7WUFBSSxBQUFLLFFBQUcsQUFBQyxBQUFDLEFBQ2QsQUFBRyxBQUFDO2FBQUMsSUFBSSxBQUFDLElBQUMsQUFBSyxPQUFFLEFBQUMsSUFBQyxBQUFHLEtBQUUsQUFBQyxJQUFHLEFBQUMsSUFBRyxBQUFLLE9BQUUsQUFBQyxBQUN2QztnQkFBSSxFQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFJLEFBQUUsU0FBRyxBQUFPLFFBQUMsQUFBTSxPQUFDLEFBQUMsQUFBQyxBQUFDLEFBQ3REO2dCQUFJLENBQUMsQUFBSSxNQUFFLEFBQU0sQUFBQyxVQUFHLEFBQUssTUFBQyxBQUF5RCxXQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsQUFBQyxBQUFDLEFBQzNHLEFBQU87b0JBQUMsQUFBRyxBQUFDLE9BQUcsQUFBQyxNQUFLLEFBQVMs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bGVUaW1lQ29uc3RhbnRzLFxuICBPcHRpb24sXG4gIE9wYXF1ZSxcbiAgUmVjYXN0XG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUVUQURBVEEsIE9wLCBSZWdpc3RlciB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3MnO1xuaW1wb3J0IHsgdW5yZWFjaGFibGUsIGRpY3QgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkBnbGltbWVyL2RlYnVnXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIkBnbGltbWVyL3Byb2dyYW1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZWJ1Z0NvbnN0YW50cyB7XG4gIGdldE51bWJlcih2YWx1ZTogbnVtYmVyKTogbnVtYmVyO1xuICBnZXRTdHJpbmcodmFsdWU6IG51bWJlcik6IHN0cmluZztcbiAgZ2V0U3RyaW5nQXJyYXkodmFsdWU6IG51bWJlcik6IHN0cmluZ1tdO1xuICBnZXRBcnJheSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyW107XG4gIGdldFNlcmlhbGl6YWJsZTxUPihzOiBudW1iZXIpOiBUO1xuICByZXNvbHZlSGFuZGxlPFQ+KHM6IG51bWJlcik6IFQ7XG59XG5cbmludGVyZmFjZSBMYXp5RGVidWdDb25zdGFudHMge1xuICBnZXRPdGhlcjxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWdTbGljZShwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW0sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XG4gIGlmIChERUJVRykge1xuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWNvbnNvbGUgKi9cbiAgICBsZXQgeyBjb25zdGFudHMgfSA9IHByb2dyYW07XG5cbiAgICAoY29uc29sZSBhcyBhbnkpLmdyb3VwKGAlYyR7c3RhcnR9OiR7ZW5kfWAsICdjb2xvcjogIzk5OScpO1xuXG4gICAgbGV0IF9zaXplID0gMDtcbiAgICBmb3IgKGxldCBpPXN0YXJ0OyBpPGVuZDsgaSA9IGkgKyBfc2l6ZSkge1xuICAgICAgbGV0IHsgdHlwZSwgb3AxLCBvcDIsIG9wMywgc2l6ZSB9ID0gcHJvZ3JhbS5vcGNvZGUoaSk7XG4gICAgICBsZXQgW25hbWUsIHBhcmFtc10gPSBkZWJ1Zyhjb25zdGFudHMgYXMgUmVjYXN0PENvbXBpbGVUaW1lQ29uc3RhbnRzLCBEZWJ1Z0NvbnN0YW50cz4sIHR5cGUsIG9wMSwgb3AyLCBvcDMpO1xuICAgICAgY29uc29sZS5sb2coYCR7aX0uICR7bG9nT3Bjb2RlKG5hbWUsIHBhcmFtcyl9YCk7XG4gICAgICBfc2l6ZSA9IHNpemU7XG4gICAgfVxuICAgIHByb2dyYW0ub3Bjb2RlKC1fc2l6ZSk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tY29uc29sZSAqL1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dPcGNvZGUodHlwZTogc3RyaW5nLCBwYXJhbXM6IE9wdGlvbjxPYmplY3Q+KTogc3RyaW5nIHwgdm9pZCB7XG4gIGxldCBvdXQgPSB0eXBlO1xuXG4gIGlmIChwYXJhbXMpIHtcbiAgICBsZXQgYXJncyA9IE9iamVjdC5rZXlzKHBhcmFtcykubWFwKHAgPT4gYCAke3B9PSR7anNvbihwYXJhbXNbcF0pfWApLmpvaW4oJycpO1xuICAgIG91dCArPSBhcmdzO1xuICB9XG4gIHJldHVybiBgKCR7b3V0fSlgO1xufVxuXG5mdW5jdGlvbiBqc29uKHBhcmFtOiBPcGFxdWUpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuICc8ZnVuY3Rpb24+JztcbiAgICB9XG5cbiAgICBsZXQgc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICBzdHJpbmcgPSBKU09OLnN0cmluZ2lmeShwYXJhbSk7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICByZXR1cm4gJzxvYmplY3Q+JztcbiAgICB9XG5cbiAgICBpZiAoc3RyaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG5cbiAgICBsZXQgZGVidWcgPSBKU09OLnBhcnNlKHN0cmluZyk7XG4gICAgaWYgKHR5cGVvZiBkZWJ1ZyA9PT0gJ29iamVjdCcgJiYgZGVidWcgIT09IG51bGwgJiYgZGVidWcuR2xpbW1lckRlYnVnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBkZWJ1Zy5HbGltbWVyRGVidWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWcoYzogRGVidWdDb25zdGFudHMsIG9wOiBPcCwgLi4ub3BlcmFuZHM6IG51bWJlcltdKTogW3N0cmluZywgb2JqZWN0XSB7XG4gIGxldCBtZXRhZGF0YSA9IE1FVEFEQVRBW29wXTtcblxuICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgdGhyb3cgdW5yZWFjaGFibGUoYE1pc3NpbmcgT3Bjb2RlIE1ldGFkYXRhIGZvciAke29wfWApO1xuICB9XG5cbiAgbGV0IG91dCA9IGRpY3Q8T3BhcXVlPigpO1xuXG4gIG1ldGFkYXRhLm9wcy5mb3JFYWNoKChvcGVyYW5kLCBpbmRleCkgPT4ge1xuICAgIGxldCBvcCA9IG9wZXJhbmRzW2luZGV4XTtcblxuICAgIHN3aXRjaCAob3BlcmFuZC50eXBlKSB7XG4gICAgICBjYXNlICdpMzInOlxuICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIGNhc2UgJ2Jsb2NrJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoYW5kbGUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMucmVzb2x2ZUhhbmRsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFN0cmluZyhvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uLXN0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3AgPyBjLmdldFN0cmluZyhvcCkgOiBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ci1hcnJheSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmdBcnJheShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0QXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Jvb2wnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9ICEhb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJpbWl0aXZlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBkZWNvZGVQcmltaXRpdmUob3AsIGMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlZ2lzdGVyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBSZWdpc3RlcltvcF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VyaWFsaXphYmxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFNlcmlhbGl6YWJsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGF6eS1jb25zdGFudCc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gKGMgYXMgUmVjYXN0PERlYnVnQ29uc3RhbnRzLCBMYXp5RGVidWdDb25zdGFudHM+KS5nZXRPdGhlcihvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIFttZXRhZGF0YS5uYW1lLCBvdXRdO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVQcmltaXRpdmUocHJpbWl0aXZlOiBudW1iZXIsIGNvbnN0YW50czogRGVidWdDb25zdGFudHMpOiBQcmltaXRpdmUge1xuICBsZXQgZmxhZyA9IHByaW1pdGl2ZSAmIDc7IC8vIDExMVxuICBsZXQgdmFsdWUgPSBwcmltaXRpdmUgPj4gMztcblxuICBzd2l0Y2ggKGZsYWcpIHtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuTlVNQkVSOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5GTE9BVDpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuU1RSSU5HOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXRTdHJpbmcodmFsdWUpO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5CT09MRUFOX09SX1ZPSUQ6XG4gICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlIDE6IHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIDI6IHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDM6IHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5FR0FUSVZFOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXROdW1iZXIodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyB1bnJlYWNoYWJsZSgpO1xuICB9XG59XG4iXX0=

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

const PLACEHOLDER_HANDLE = exports.PLACEHOLDER_HANDLE = -1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW1CTyxNQUFNLEFBQWtCLGtEQUFHLENBQUMsQUFBQyxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3B0aW9uLFxuICBDb21waWxhYmxlQmxvY2ssXG4gIENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvcmUgfSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBNYWNyb3MgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJSZXNvbHZlcjxMb2NhdG9yPiB7XG4gIGdldENhcGFiaWxpdGllcyhsb2NhdG9yOiBMb2NhdG9yKTogQ29tcG9uZW50Q2FwYWJpbGl0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhZ2VyQ29tcGlsYXRpb25PcHRpb25zPExvY2F0b3IsIFIgZXh0ZW5kcyBFYWdlclJlc29sdmVyPExvY2F0b3I+PiB7XG4gIHJlc29sdmVyOiBSO1xuICBwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW07XG4gIG1hY3JvczogTWFjcm9zO1xufVxuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHVuZGVmaW5lZCB8IG51bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRBcmdzID0gW0NvcmUuUGFyYW1zLCBDb3JlLkhhc2gsIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+LCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QnVpbGRlciB7XG4gIHN0YXRpYyhkZWZpbml0aW9uOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpOiB2b2lkO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9CTyxNQUFNLEFBQWtCLGtEQUFHLENBQUMsQUFBQyxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3BhcXVlLFxuICBPcHRpb24sXG4gIENvbXBpbGFibGVCbG9jayxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzLFxuICBDb21waWxlVGltZVByb2dyYW0sXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZSwgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2sgfSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBNYWNyb3MgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJSZXNvbHZlcjxMb2NhdG9yPiB7XG4gIGdldENhcGFiaWxpdGllcyhsb2NhdG9yOiBMb2NhdG9yKTogQ29tcG9uZW50Q2FwYWJpbGl0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhZ2VyQ29tcGlsYXRpb25PcHRpb25zPFRlbXBsYXRlTWV0YSwgUiBleHRlbmRzIEVhZ2VyUmVzb2x2ZXI8VGVtcGxhdGVNZXRhPj4ge1xuICByZXNvbHZlcjogUjtcbiAgcHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtO1xuICBtYWNyb3M6IE1hY3Jvcztcbn1cblxuZXhwb3J0IGNvbnN0IFBMQUNFSE9MREVSX0hBTkRMRSA9IC0xO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmUgPSB1bmRlZmluZWQgfCBudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50QXJncyA9IFtDb3JlLlBhcmFtcywgQ29yZS5IYXNoLCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPiwgT3B0aW9uPENvbXBpbGFibGVCbG9jaz5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEJ1aWxkZXIge1xuICBzdGF0aWMoZGVmaW5pdGlvbjogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRMYXlvdXQ8VGVtcGxhdGVNZXRhID0gT3BhcXVlPiB7XG4gIGlkPzogT3B0aW9uPHN0cmluZz47XG4gIGJsb2NrOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaztcbiAgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcbn1cbiJdfQ==

@@ -7,2 +7,3 @@ 'use strict';

exports.default = templateFactory;
exports.compilable = compilable;

@@ -13,4 +14,8 @@ var _util = require('@glimmer/util');

var _compilableTemplate2 = _interopRequireDefault(_compilableTemplate);
var _wrappedComponent = require('./wrapped-component');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
let clientId = 0;

@@ -20,3 +25,3 @@ function templateFactory({ id: templateId, meta, block }) {

let id = templateId || `client-${clientId++}`;
let create = (compiler, envMeta) => {
let create = (options, envMeta) => {
let newMeta = envMeta ? (0, _util.assign)({}, envMeta, meta) : meta;

@@ -26,3 +31,3 @@ if (!parsedBlock) {

}
return new TemplateImpl(compiler, { id, block: parsedBlock, referrer: newMeta });
return new TemplateImpl(options, { id, block: parsedBlock, referrer: newMeta });
};

@@ -32,4 +37,4 @@ return { id, meta, create };

class TemplateImpl {
constructor(compiler, parsedLayout) {
this.compiler = compiler;
constructor(options, parsedLayout) {
this.options = options;
this.parsedLayout = parsedLayout;

@@ -42,2 +47,3 @@ this.layout = null;

this.hasEval = block.hasEval;
this.statements = block.statements;
this.referrer = parsedLayout.referrer;

@@ -48,13 +54,23 @@ this.id = parsedLayout.id || `client-${clientId++}`;

if (this.layout) return this.layout;
return this.layout = new _compilableTemplate.CompilableProgram(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
return this.layout = compilable(this.parsedLayout, this.options, false);
}
asPartial() {
if (this.partial) return this.partial;
return this.layout = new _compilableTemplate.CompilableProgram(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: true }));
return this.partial = compilable(this.parsedLayout, this.options, true);
}
asWrappedLayout() {
if (this.wrappedLayout) return this.wrappedLayout;
return this.wrappedLayout = new _wrappedComponent.WrappedBuilder(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
let compileOptions = (0, _util.assign)({}, this.options, {
asPartial: false,
referrer: this.referrer
});
return this.wrappedLayout = new _wrappedComponent.WrappedBuilder(compileOptions, this.parsedLayout);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxBQUFPLEFBQUUsQUFBTSxBQUFFLEFBQU0sQUFBZSxBQUFDOztBQUt2QyxBQUFPLEFBQUUsQUFBaUIsQUFBSSxBQUF5QixBQUFFLEFBQU0sQUFBdUIsQUFBQzs7QUFDdkYsQUFBTyxBQUFFLEFBQWMsQUFBRSxBQUFNLEFBQXFCLEFBQUM7O0FBZ0NyRCxJQUFJLEFBQVEsV0FBRyxBQUFDLEFBQUMsQUFTakIsQUFBTSxBQUFDLEFBQU87eUJBQTBCLEVBQUUsQUFBRSxJQUFFLEFBQVUsWUFBRSxBQUFJLE1BQUUsQUFBSyxBQUF3QyxTQUMzRztRQUFJLEFBQW9DLEFBQUMsQUFDekM7UUFBSSxBQUFFLEtBQUcsQUFBVSxBQUFJLHdCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsVUFDOUM7UUFBSSxBQUFNLFNBQUcsQ0FBQyxBQUE4QixVQUFFLEFBQVksWUFDeEQ7WUFBSSxBQUFPLFVBQUcsQUFBTyxVQUFHLEFBQU0sa0JBQUMsQUFBRSxJQUFFLEFBQU8sU0FBRSxBQUFJLEFBQUMsUUFBRyxBQUFJLEFBQUMsQUFDekQsQUFBRSxBQUFDO1lBQUMsQ0FBQyxBQUFXLEFBQUMsYUFBQyxBQUFDLEFBQ2pCLEFBQVc7MEJBQUcsQUFBSSxLQUFDLEFBQUssTUFBQyxBQUFLLEFBQUMsQUFBQyxBQUNsQyxBQUFDO0FBQ0QsQUFBTTtlQUFDLElBQUksQUFBWSxhQUFDLEFBQVEsVUFBRSxFQUFFLEFBQUUsSUFBRSxBQUFLLE9BQUUsQUFBVyxhQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUcsQUFBQyxBQUFDLEFBQ3BGLEFBQUMsQUFBQztBQUNGLEFBQU07V0FBQyxFQUFFLEFBQUUsSUFBRSxBQUFJLE1BQUUsQUFBTSxBQUFFLEFBQUMsQUFDOUIsQUFBQzs7QUFFRDtnQkFTc0IsQUFBK0IsVUFBVSxBQUEyRSxjQUFwSDthQUFRLFdBQVIsQUFBUSxBQUF1QixBQUFVO2FBQVksZUFSakUsQUFRcUQsQUFBWSxBQUErRDthQVIxSCxTQUE4QixBQUFJLEFBQUMsQUFDekM7YUFBTyxVQUE4QixBQUFJLEFBQUMsQUFDMUM7YUFBYSxnQkFBOEIsQUFBSSxBQUFDLEFBT3REO1lBQUksRUFBRSxBQUFLLEFBQUUsVUFBRyxBQUFZLEFBQUMsQUFDN0IsQUFBSTthQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDLEFBQzdCLEFBQUk7YUFBQyxBQUFPLFVBQUcsQUFBSyxNQUFDLEFBQU8sQUFBQyxBQUM3QixBQUFJO2FBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUMsQUFDdEMsQUFBSTthQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGdCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsQUFDdEQsVUFBQztBQUVELEFBQVE7ZUFDTixBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLFFBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFNLEFBQUMsQUFDcEMsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFNLFNBQUcsQUFBSSxBQUF5QiwwQ0FBQyxBQUFJLEtBQUMsQUFBUSw0QkFBTyxBQUFJLEtBQUMsQUFBWSxnQkFBRSxBQUFTLFdBQUUsQUFBSyxBQUFHLEFBQUMsQUFDaEgsQUFBQztBQUVELEFBQVM7Z0JBQ1AsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQU8sQUFBQyxTQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLEFBQ3RDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxTQUFHLEFBQUksQUFBeUIsMENBQUMsQUFBSSxLQUFDLEFBQVEsNEJBQU8sQUFBSSxLQUFDLEFBQVksZ0JBQUUsQUFBUyxXQUFFLEFBQUksQUFBRyxBQUFDLEFBQy9HLEFBQUM7QUFFRCxBQUFlO3NCQUNiLEFBQUUsQUFBQztZQUFDLEFBQUksS0FBQyxBQUFhLEFBQUMsZUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQWEsQUFBQyxBQUNsRCxBQUFNO2VBQUMsQUFBSSxLQUFDLEFBQWEsZ0JBQUcsQUFBSSxBQUFjLHFDQUFDLEFBQUksS0FBQyxBQUFRLDRCQUFPLEFBQUksS0FBQyxBQUFZLGdCQUFFLEFBQVMsV0FBRSxBQUFLLEFBQUcsQUFBQyxBQUM1RyxBQUFDLEFBQ0Y7O0FBdEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGlsYWJsZVByb2dyYW0sIFRlbXBsYXRlLCBPcGFxdWUsIE9wdGlvbiwgTGF5b3V0V2l0aENvbnRleHQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2ssXG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2tcbn0gZnJvbSAnQGdsaW1tZXIvd2lyZS1mb3JtYXQnO1xuaW1wb3J0IHsgQ29tcGlsYWJsZVByb2dyYW0gYXMgQ29tcGlsYWJsZVByb2dyYW1JbnN0YW5jZSB9IGZyb20gJy4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBXcmFwcGVkQnVpbGRlciB9IGZyb20gXCIuL3dyYXBwZWQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBMYXp5Q29tcGlsZXIgfSBmcm9tIFwiQGdsaW1tZXIvb3Bjb2RlLWNvbXBpbGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVGYWN0b3J5PExvY2F0b3I+IHtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGlkZW50aWZpZXIsIGlmIHByZWNvbXBpbGVkIHdpbGwgYmUgdGhlIGlkIG9mIHRoZVxuICAgKiBwcmVjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBpbGUgdGltZSBtZXRhLlxuICAgKi9cbiAgbWV0YTogTG9jYXRvcjtcblxuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICovXG4gIGNyZWF0ZShlbnY6IExhenlDb21waWxlcjxMb2NhdG9yPik6IFRlbXBsYXRlPExvY2F0b3I+O1xuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IG1ldGEgZW52aXJvbm1lbnQgc3BlY2lmaWMgaW5qZWN0aW9ucyBpbnRvIG1ldGFcbiAgICovXG4gIGNyZWF0ZTxVPihlbnY6IExhenlDb21waWxlcjxMb2NhdG9yPiwgbWV0YTogVSk6IFRlbXBsYXRlPExvY2F0b3IgJiBVPjtcbn1cblxubGV0IGNsaWVudElkID0gMDtcblxuLyoqXG4gKiBXcmFwcyBhIHRlbXBsYXRlIGpzIGluIGEgdGVtcGxhdGUgbW9kdWxlIHRvIGNoYW5nZSBpdCBpbnRvIGEgZmFjdG9yeVxuICogdGhhdCBoYW5kbGVzIGxhenkgcGFyc2luZyB0aGUgdGVtcGxhdGUgYW5kIHRvIGNyZWF0ZSBwZXIgZW52IHNpbmdsZXRvbnNcbiAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PExvY2F0b3I+KHNlcmlhbGl6ZWRUZW1wbGF0ZTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxMb2NhdG9yPik6IFRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yPjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yLCBVPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8TG9jYXRvcj4pOiBUZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvciAmIFU+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5KHsgaWQ6IHRlbXBsYXRlSWQsIG1ldGEsIGJsb2NrIH06IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8YW55Pik6IFRlbXBsYXRlRmFjdG9yeTx7fT4ge1xuICBsZXQgcGFyc2VkQmxvY2s6IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrO1xuICBsZXQgaWQgPSB0ZW1wbGF0ZUlkIHx8IGBjbGllbnQtJHtjbGllbnRJZCsrfWA7XG4gIGxldCBjcmVhdGUgPSAoY29tcGlsZXI6IExhenlDb21waWxlcjxPcGFxdWU+LCBlbnZNZXRhPzoge30pID0+IHtcbiAgICBsZXQgbmV3TWV0YSA9IGVudk1ldGEgPyBhc3NpZ24oe30sIGVudk1ldGEsIG1ldGEpIDogbWV0YTtcbiAgICBpZiAoIXBhcnNlZEJsb2NrKSB7XG4gICAgICBwYXJzZWRCbG9jayA9IEpTT04ucGFyc2UoYmxvY2spO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlSW1wbChjb21waWxlciwgeyBpZCwgYmxvY2s6IHBhcnNlZEJsb2NrLCByZWZlcnJlcjogbmV3TWV0YSwgfSk7XG4gIH07XG4gIHJldHVybiB7IGlkLCBtZXRhLCBjcmVhdGUgfTtcbn1cblxuY2xhc3MgVGVtcGxhdGVJbXBsPExvY2F0b3IgPSBPcGFxdWU+IGltcGxlbWVudHMgVGVtcGxhdGU8TG9jYXRvcj4ge1xuICBwcml2YXRlIGxheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgcGFydGlhbDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgd3JhcHBlZExheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXTtcbiAgcHVibGljIGhhc0V2YWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVmZXJyZXI6IExvY2F0b3I7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21waWxlcjogTGF6eUNvbXBpbGVyPExvY2F0b3I+LCBwcml2YXRlIHBhcnNlZExheW91dDogUGljazxMYXlvdXRXaXRoQ29udGV4dDxMb2NhdG9yPiwgJ2lkJyB8ICdibG9jaycgfCAncmVmZXJyZXInPikge1xuICAgIGxldCB7IGJsb2NrIH0gPSBwYXJzZWRMYXlvdXQ7XG4gICAgdGhpcy5zeW1ib2xzID0gYmxvY2suc3ltYm9scztcbiAgICB0aGlzLmhhc0V2YWwgPSBibG9jay5oYXNFdmFsO1xuICAgIHRoaXMucmVmZXJyZXIgPSBwYXJzZWRMYXlvdXQucmVmZXJyZXI7XG4gICAgdGhpcy5pZCA9IHBhcnNlZExheW91dC5pZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICB9XG5cbiAgYXNMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLmxheW91dCkgcmV0dXJuIHRoaXMubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9IG5ldyBDb21waWxhYmxlUHJvZ3JhbUluc3RhbmNlKHRoaXMuY29tcGlsZXIsIHsgLi4udGhpcy5wYXJzZWRMYXlvdXQsIGFzUGFydGlhbDogZmFsc2UgfSk7XG4gIH1cblxuICBhc1BhcnRpYWwoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLnBhcnRpYWwpIHJldHVybiB0aGlzLnBhcnRpYWw7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID0gbmV3IENvbXBpbGFibGVQcm9ncmFtSW5zdGFuY2UodGhpcy5jb21waWxlciwgeyAuLi50aGlzLnBhcnNlZExheW91dCwgYXNQYXJ0aWFsOiB0cnVlIH0pO1xuICB9XG5cbiAgYXNXcmFwcGVkTGF5b3V0KCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy53cmFwcGVkTGF5b3V0KSByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0O1xuICAgIHJldHVybiB0aGlzLndyYXBwZWRMYXlvdXQgPSBuZXcgV3JhcHBlZEJ1aWxkZXIodGhpcy5jb21waWxlciwgeyAuLi50aGlzLnBhcnNlZExheW91dCwgYXNQYXJ0aWFsOiBmYWxzZSB9KTtcbiAgfVxufVxuIl19
function compilable(layout, options, asPartial) {
let { block, referrer } = layout;
let { hasEval, symbols } = block;
let compileOptions = (0, _util.assign)({}, options, { asPartial, referrer });
return new _compilableTemplate2.default(block.statements, layout, compileOptions, { referrer, hasEval, symbols });
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsQUFBTyxBQUFFLEFBQU0sQUFBRSxBQUFNLEFBQWUsQUFBQzs7QUFNdkMsQUFBTyxBQUFrQixBQUFNLEFBQXVCLEFBQUM7Ozs7QUFFdkQsQUFBTyxBQUFFLEFBQWMsQUFBRSxBQUFNLEFBQXFCLEFBQUM7Ozs7QUFnQ3JELElBQUksQUFBUSxXQUFHLEFBQUMsQUFBQyxBQVNqQixBQUFNLEFBQUMsQUFBTzt5QkFBMEIsRUFBRSxBQUFFLElBQUUsQUFBVSxZQUFFLEFBQUksTUFBRSxBQUFLLEFBQXdDLFNBQzNHO1FBQUksQUFBb0MsQUFBQyxBQUN6QztRQUFJLEFBQUUsS0FBRyxBQUFVLEFBQUksd0JBQVUsQUFBUSxBQUFFLEFBQUUsQUFBQyxVQUM5QztRQUFJLEFBQU0sU0FBRyxDQUFDLEFBQWdDLFNBQUUsQUFBWSxZQUMxRDtZQUFJLEFBQU8sVUFBRyxBQUFPLFVBQUcsQUFBTSxrQkFBQyxBQUFFLElBQUUsQUFBTyxTQUFFLEFBQUksQUFBQyxRQUFHLEFBQUksQUFBQyxBQUN6RCxBQUFFLEFBQUM7WUFBQyxDQUFDLEFBQVcsQUFBQyxhQUFDLEFBQUMsQUFDakIsQUFBVzswQkFBRyxBQUFJLEtBQUMsQUFBSyxNQUFDLEFBQUssQUFBQyxBQUFDLEFBQ2xDLEFBQUM7QUFDRCxBQUFNO2VBQUMsSUFBSSxBQUFZLGFBQUMsQUFBTyxTQUFFLEVBQUUsQUFBRSxJQUFFLEFBQUssT0FBRSxBQUFXLGFBQUUsQUFBUSxVQUFFLEFBQU8sQUFBRSxBQUFDLEFBQUMsQUFDbEYsQUFBQyxBQUFDO0FBQ0YsQUFBTTtXQUFDLEVBQUUsQUFBRSxJQUFFLEFBQUksTUFBRSxBQUFNLEFBQUUsQUFBQyxBQUM5QixBQUFDOztBQUVEO2dCQVVzQixBQUFzQyxTQUFVLEFBQXdDLGNBQXhGO2FBQU8sVUFBUCxBQUFPLEFBQStCLEFBQVU7YUFBWSxlQVR4RSxBQVM0RCxBQUFZLEFBQTRCO2FBVDlGLFNBQThCLEFBQUksQUFBQyxBQUN6QzthQUFPLFVBQThCLEFBQUksQUFBQyxBQUMxQzthQUFhLGdCQUE4QixBQUFJLEFBQUMsQUFRdEQ7WUFBSSxFQUFFLEFBQUssQUFBRSxVQUFHLEFBQVksQUFBQyxBQUM3QixBQUFJO2FBQUMsQUFBTyxVQUFHLEFBQUssTUFBQyxBQUFPLEFBQUMsQUFDN0IsQUFBSTthQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDLEFBQzdCLEFBQUk7YUFBQyxBQUFVLGFBQUcsQUFBSyxNQUFDLEFBQVUsQUFBQyxBQUNuQyxBQUFJO2FBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUMsQUFDdEMsQUFBSTthQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGdCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsQUFDdEQsVUFBQztBQUVELEFBQVE7ZUFDTixBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLFFBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFNLEFBQUMsQUFDcEMsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFNLFNBQUcsQUFBVSxXQUFDLEFBQUksS0FBQyxBQUFZLGNBQUUsQUFBSSxLQUFDLEFBQU8sU0FBRSxBQUFLLEFBQUMsQUFBQyxBQUMxRSxBQUFDO0FBRUQsQUFBUztnQkFDUCxBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLFNBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFPLEFBQUMsQUFDdEMsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFPLFVBQUcsQUFBVSxXQUFDLEFBQUksS0FBQyxBQUFZLGNBQUUsQUFBSSxLQUFDLEFBQU8sU0FBRSxBQUFJLEFBQUMsQUFBQyxBQUMxRSxBQUFDO0FBRUQsQUFBZTtzQkFDYixBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBYSxBQUFDLGVBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFhLEFBQUMsQUFDbEQ7WUFBSSxBQUFjLG1DQUF3QyxBQUFFLElBQUUsQUFBSSxLQUFDLEFBQU87dUJBQzdELEFBQUssQUFDaEIsQUFBUTtzQkFBRSxBQUFJLEtBRm1DLEFBQU0sQUFBbUIsQUFFM0QsQUFBUSxBQUN4QixBQUFDLEFBQUMsQUFDSCxBQUFNO0FBSEosQUFBUztlQUdKLEFBQUksS0FBQyxBQUFhLGdCQUFHLEFBQUksQUFBYyxxQ0FBQyxBQUFjLGdCQUFFLEFBQUksS0FBQyxBQUFZLEFBQUMsQUFBQyxBQUNwRixBQUFDLEFBQ0Y7QUFFRCxBQUFNO0FBN0JKO29CQTZCdUMsQUFBa0MsUUFBRSxBQUFnQyxTQUFFLEFBQWtCLFdBQy9IO1FBQUksRUFBRSxBQUFLLE9BQUUsQUFBUSxBQUFFLGFBQUcsQUFBTSxBQUFDLEFBQ2pDO1FBQUksRUFBRSxBQUFPLFNBQUUsQUFBTyxBQUFFLFlBQUcsQUFBSyxBQUFDLEFBQ2pDO1FBQUksQUFBYyxpQkFBRyxBQUFNLGtCQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsRUFBRSxBQUFTLFdBQUUsQUFBUSxBQUFFLEFBQUMsQUFBQyxBQUVsRSxBQUFNO1dBQUMsQUFBSSxBQUFrQixpQ0FBQyxBQUFLLE1BQUMsQUFBVSxZQUFFLEFBQU0sUUFBRSxBQUFjLGdCQUFFLEVBQUUsQUFBUSxVQUFFLEFBQU8sU0FBRSxBQUFPLEFBQUUsQUFBQyxBQUFDLEFBQzFHLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSwgVGVtcGxhdGUsIE9wYXF1ZSwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrLFxuICBTdGF0ZW1lbnRcbn0gZnJvbSAnQGdsaW1tZXIvd2lyZS1mb3JtYXQnO1xuaW1wb3J0IENvbXBpbGFibGVUZW1wbGF0ZSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUGFyc2VkTGF5b3V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFdyYXBwZWRCdWlsZGVyIH0gZnJvbSBcIi4vd3JhcHBlZC1jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbXBpbGVPcHRpb25zLCBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zeW50YXhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPiB7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpZGVudGlmaWVyLCBpZiBwcmVjb21waWxlZCB3aWxsIGJlIHRoZSBpZCBvZiB0aGVcbiAgICogcHJlY29tcGlsZWQgdGVtcGxhdGUuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21waWxlIHRpbWUgbWV0YS5cbiAgICovXG4gIG1ldGE6IFRlbXBsYXRlTWV0YTtcblxuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICovXG4gIGNyZWF0ZShlbnY6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+KTogVGVtcGxhdGU8VGVtcGxhdGVNZXRhPjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHNwZWNpZmljIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW52aXJvbm1lbnR9IGVudiBnbGltbWVyIEVudmlyb25tZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhIGVudmlyb25tZW50IHNwZWNpZmljIGluamVjdGlvbnMgaW50byBtZXRhXG4gICAqL1xuICBjcmVhdGU8VT4oZW52OiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgbWV0YTogVSk6IFRlbXBsYXRlPFRlbXBsYXRlTWV0YSAmIFU+O1xufVxuXG5sZXQgY2xpZW50SWQgPSAwO1xuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUganMgaW4gYSB0ZW1wbGF0ZSBtb2R1bGUgdG8gY2hhbmdlIGl0IGludG8gYSBmYWN0b3J5XG4gKiB0aGF0IGhhbmRsZXMgbGF6eSBwYXJzaW5nIHRoZSB0ZW1wbGF0ZSBhbmQgdG8gY3JlYXRlIHBlciBlbnYgc2luZ2xldG9uc1xuICogb2YgdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8VGVtcGxhdGVNZXRhPik6IFRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGE+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PFRlbXBsYXRlTWV0YSwgVT4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPFRlbXBsYXRlTWV0YT4pOiBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhICYgVT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3RvcnkoeyBpZDogdGVtcGxhdGVJZCwgbWV0YSwgYmxvY2sgfTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxhbnk+KTogVGVtcGxhdGVGYWN0b3J5PHt9PiB7XG4gIGxldCBwYXJzZWRCbG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2s7XG4gIGxldCBpZCA9IHRlbXBsYXRlSWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgbGV0IGNyZWF0ZSA9IChvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgZW52TWV0YT86IHt9KSA9PiB7XG4gICAgbGV0IG5ld01ldGEgPSBlbnZNZXRhID8gYXNzaWduKHt9LCBlbnZNZXRhLCBtZXRhKSA6IG1ldGE7XG4gICAgaWYgKCFwYXJzZWRCbG9jaykge1xuICAgICAgcGFyc2VkQmxvY2sgPSBKU09OLnBhcnNlKGJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUltcGwob3B0aW9ucywgeyBpZCwgYmxvY2s6IHBhcnNlZEJsb2NrLCByZWZlcnJlcjogbmV3TWV0YSB9KTtcbiAgfTtcbiAgcmV0dXJuIHsgaWQsIG1ldGEsIGNyZWF0ZSB9O1xufVxuXG5jbGFzcyBUZW1wbGF0ZUltcGw8VGVtcGxhdGVNZXRhID0gT3BhcXVlPiBpbXBsZW1lbnRzIFRlbXBsYXRlPFRlbXBsYXRlTWV0YT4ge1xuICBwcml2YXRlIGxheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgcGFydGlhbDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgd3JhcHBlZExheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXTtcbiAgcHVibGljIGhhc0V2YWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcbiAgcHJpdmF0ZSBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uczxUZW1wbGF0ZU1ldGE+LCBwcml2YXRlIHBhcnNlZExheW91dDogUGFyc2VkTGF5b3V0PFRlbXBsYXRlTWV0YT4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gcGFyc2VkTGF5b3V0O1xuICAgIHRoaXMuc3ltYm9scyA9IGJsb2NrLnN5bWJvbHM7XG4gICAgdGhpcy5oYXNFdmFsID0gYmxvY2suaGFzRXZhbDtcbiAgICB0aGlzLnN0YXRlbWVudHMgPSBibG9jay5zdGF0ZW1lbnRzO1xuICAgIHRoaXMucmVmZXJyZXIgPSBwYXJzZWRMYXlvdXQucmVmZXJyZXI7XG4gICAgdGhpcy5pZCA9IHBhcnNlZExheW91dC5pZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICB9XG5cbiAgYXNMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLmxheW91dCkgcmV0dXJuIHRoaXMubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9IGNvbXBpbGFibGUodGhpcy5wYXJzZWRMYXlvdXQsIHRoaXMub3B0aW9ucywgZmFsc2UpO1xuICB9XG5cbiAgYXNQYXJ0aWFsKCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy5wYXJ0aWFsKSByZXR1cm4gdGhpcy5wYXJ0aWFsO1xuICAgIHJldHVybiB0aGlzLnBhcnRpYWwgPSBjb21waWxhYmxlKHRoaXMucGFyc2VkTGF5b3V0LCB0aGlzLm9wdGlvbnMsIHRydWUpO1xuICB9XG5cbiAgYXNXcmFwcGVkTGF5b3V0KCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy53cmFwcGVkTGF5b3V0KSByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0O1xuICAgIGxldCBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiA9IGFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBhc1BhcnRpYWw6IGZhbHNlLFxuICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXJcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0ID0gbmV3IFdyYXBwZWRCdWlsZGVyKGNvbXBpbGVPcHRpb25zLCB0aGlzLnBhcnNlZExheW91dCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGFibGU8VGVtcGxhdGVNZXRhPihsYXlvdXQ6IFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGE+LCBvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgYXNQYXJ0aWFsOiBib29sZWFuKSB7XG4gIGxldCB7IGJsb2NrLCByZWZlcnJlciB9ID0gbGF5b3V0O1xuICBsZXQgeyBoYXNFdmFsLCBzeW1ib2xzIH0gPSBibG9jaztcbiAgbGV0IGNvbXBpbGVPcHRpb25zID0gYXNzaWduKHt9LCBvcHRpb25zLCB7IGFzUGFydGlhbCwgcmVmZXJyZXIgfSk7XG5cbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGUoYmxvY2suc3RhdGVtZW50cywgbGF5b3V0LCBjb21waWxlT3B0aW9ucywgeyByZWZlcnJlciwgaGFzRXZhbCwgc3ltYm9scyB9KTtcbn1cbiJdfQ==

@@ -10,6 +10,8 @@ 'use strict';

var _compiler = require('./compiler');
var _compilableTemplate = require('./compilable-template');
var _compilableTemplate2 = _interopRequireDefault(_compilableTemplate);
var _debug = require('./debug');
var _syntax = require('./syntax');

@@ -19,5 +21,7 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class WrappedBuilder {
constructor(compiler, layout) {
this.compiler = compiler;
constructor(options, layout) {
this.options = options;
this.layout = layout;

@@ -58,4 +62,6 @@ let { block } = layout;

// Exit
let { compiler, layout } = this;
let b = compiler.builderFor(layout);
let { options, layout, referrer } = this;
let { program, resolver, macros, asPartial } = options;
let { Builder } = options;
let b = new Builder(program, resolver, referrer, macros, layout, asPartial);
b.startLabels();

@@ -74,3 +80,3 @@ b.fetch(_vm.Register.s1);

b.label('BODY');
b.invokeStaticBlock(blockFor(layout, compiler));
b.invokeStaticBlock(blockFor(layout, this.options));
b.fetch(_vm.Register.s1);

@@ -82,5 +88,8 @@ b.jumpUnless('END');

b.stopLabels();
let handle = b.commit();
let handle = b.commit(options.program.heap, layout.block.symbols.length);
if (false) {
(0, _compiler.debug)(compiler, handle);
let { program, program: { heap } } = options;
let start = heap.getaddr(handle);
let end = start + heap.sizeof(handle);
(0, _debug.debugSlice)(program, start, end);
}

@@ -91,10 +100,5 @@ return handle;

exports.WrappedBuilder = WrappedBuilder;
function blockFor(layout, compiler) {
return new _compilableTemplate.CompilableBlock(compiler, {
block: {
statements: layout.block.statements,
parameters: _util.EMPTY_ARRAY
},
containingLayout: layout
});
function blockFor(layout, options) {
let { block, referrer } = layout;
return new _compilableTemplate2.default(block.statements, layout, options, { referrer, parameters: _util.EMPTY_ARRAY });
}

@@ -108,7 +112,9 @@ class ComponentBuilder {

let { builder } = this;
let { resolver } = builder;
if (handle !== null) {
let { capabilities, compilable } = builder.compiler.resolveLayoutForHandle(handle);
if (compilable) {
let capabilities = resolver.getCapabilities(handle);
if (capabilities.dynamicLayout === false) {
let layout = resolver.getLayout(handle);
builder.pushComponentDefinition(handle);
builder.invokeStaticComponent(capabilities, compilable, null, params, hash, false, _default, inverse);
builder.invokeStaticComponent(capabilities, layout, null, params, hash, false, _default, inverse);
} else {

@@ -122,2 +128,2 @@ builder.pushComponentDefinition(handle);

exports.ComponentBuilder = ComponentBuilder;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFPLEFBQUUsQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDOztBQVF2QyxBQUFPLEFBQUUsQUFBSyxBQUF1QixBQUFNLEFBQVksQUFBQzs7QUFDeEQsQUFBTyxBQUFFLEFBQWUsQUFBSSxBQUF1QixBQUFFLEFBQU0sQUFBdUIsQUFBQzs7QUFFbkYsQUFBTyxBQUFFLEFBQVcsQUFBRSxBQUFNLEFBQVUsQUFBQyxBQUV2QyxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxBQUFFLEFBQVcsQUFBRSxBQUFNLEFBQWUsQUFBQyxBQUU1QyxBQUFNOzs7Z0JBR2dCLEFBQTBDLFVBQVUsQUFBa0MsUUFBdEY7YUFBUSxXQUFSLEFBQVEsQUFBa0MsQUFBVTthQUFNLFNBQU4sQUFBTSxBQUE0QixBQUN4RztZQUFJLEVBQUUsQUFBSyxBQUFFLFVBQUcsQUFBTSxBQUFDLEFBRXZCLEFBQUk7YUFBQyxBQUFXO3FCQUNMLEFBQUssTUFBQyxBQUFPLEFBQ3RCLEFBQU87cUJBQUUsQUFBSyxNQUFDLEFBQU8sUUFBQyxBQUFNLE9BRlosQUFFYSxBQUFDLEFBQVcsQUFBQyxBQUFDLEFBQzdDLEFBQUMsQUFDSixBQUFDO0FBSEcsQUFBTztBQUtYLEFBQU87Y0FDTCxBQUFpQjtBQUNqQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBMEI7QUFDMUIsQUFBcUM7QUFDckMsQUFBMEI7QUFDMUIsQUFBK0I7QUFDL0IsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQStCO0FBQy9CLEFBQTJCO0FBQzNCLEFBQWM7QUFDZCxBQUF5QjtBQUN6QixBQUFzQjtBQUN0QixBQUFjO0FBQ2Qs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QXNCLHVCQUFDLEFBQU0sQUFBQyxBQUFDLEFBRW5GLEFBQUUsQUFBQztnQkFBQyxBQUFVLEFBQUMsWUFBQyxBQUFDLEFBQ2YsQUFBTzt3QkFBQyxBQUF1Qix3QkFBQyxBQUFNLEFBQUMsQUFBQyxBQUN4QyxBQUFPO3dCQUFDLEFBQXFCLHNCQUFDLEFBQVksY0FBRSxBQUFVLFlBQUUsQUFBSSxNQUFFLEFBQU0sUUFBRSxBQUFJLE1BQUUsQUFBSyxPQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN4RyxBQUFDLEFBQUMsQUFBSTttQkFBQyxBQUFDLEFBQ04sQUFBTzt3QkFBQyxBQUF1Qix3QkFBQyxBQUFNLEFBQUMsQUFBQyxBQUN4QyxBQUFPO3dCQUFDLEFBQWUsZ0JBQUMsQUFBSSxNQUFFLEFBQU0sUUFBRSxBQUFJLE1BQUUsQUFBSyxPQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN4RSxBQUFDLEFBQ0g7QUFBQyxBQUNIO0FBQUMsQUFDRjs7QUFsQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWdpc3RlciB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IFByb2dyYW1TeW1ib2xUYWJsZSwgQ29tcGlsYWJsZVByb2dyYW0sIENvbXBpbGFibGVCbG9jaywgTGF5b3V0V2l0aENvbnRleHQsIENvbXBpbGVyLCBSZWNhc3QgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50QXJncyxcbiAgQ29tcG9uZW50QnVpbGRlciBhcyBJQ29tcG9uZW50QnVpbGRlclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBkZWJ1ZywgQW55QWJzdHJhY3RDb21waWxlciB9IGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IHsgQ29tcGlsYWJsZUJsb2NrIGFzIENvbXBpbGFibGVCbG9ja0luc3RhbmNlIH0gZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IE9wY29kZUJ1aWxkZXIgfSBmcm9tICcuL29wY29kZS1idWlsZGVyJztcbmltcG9ydCB7IEFUVFJTX0JMT0NLIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5pbXBvcnQgeyBERUJVRyB9IGZyb20gXCJAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFnc1wiO1xuaW1wb3J0IHsgRU1QVFlfQVJSQVkgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgV3JhcHBlZEJ1aWxkZXI8TG9jYXRvcj4gaW1wbGVtZW50cyBDb21waWxhYmxlUHJvZ3JhbSB7XG4gIHB1YmxpYyBzeW1ib2xUYWJsZTogUHJvZ3JhbVN5bWJvbFRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyPE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4+LCBwcml2YXRlIGxheW91dDogTGF5b3V0V2l0aENvbnRleHQ8TG9jYXRvcj4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gbGF5b3V0O1xuXG4gICAgdGhpcy5zeW1ib2xUYWJsZSA9IHtcbiAgICAgIGhhc0V2YWw6IGJsb2NrLmhhc0V2YWwsXG4gICAgICBzeW1ib2xzOiBibG9jay5zeW1ib2xzLmNvbmNhdChbQVRUUlNfQkxPQ0tdKVxuICAgIH07XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgLy89PT09PT09PURZTkFNSUNcbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEJPRFkpXG4gICAgLy8gICAgICAgIE9wZW5EeW5hbWljUHJpbWl0aXZlRWxlbWVudFxuICAgIC8vICAgICAgICBEaWRDcmVhdGVFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmF0dHIgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBGbHVzaEVsZW1lbnRcbiAgICAvLyBCT0RZOiAgTm9vcFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEVORClcbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gRU5EOiAgIE5vb3BcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcbiAgICAvL1xuICAgIC8vPT09PT09PT1TVEFUSUNcbiAgICAvLyAgICAgICAgT3BlblByaW1pdGl2ZUVsZW1lbnRPcGNvZGVcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmJvZHkgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBDbG9zZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcblxuICAgIGxldCB7IGNvbXBpbGVyLCBsYXlvdXQgfSA9IHRoaXM7XG4gICAgbGV0IGIgPSBjb21waWxlci5idWlsZGVyRm9yKGxheW91dCk7XG5cbiAgICBiLnN0YXJ0TGFiZWxzKCk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuZ2V0Q29tcG9uZW50VGFnTmFtZShSZWdpc3Rlci5zMCk7XG4gICAgYi5wcmltaXRpdmVSZWZlcmVuY2UoKTtcblxuICAgIGIuZHVwKCk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuanVtcFVubGVzcygnQk9EWScpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5wdXRDb21wb25lbnRPcGVyYXRpb25zKCk7XG4gICAgYi5vcGVuRHluYW1pY0VsZW1lbnQoKTtcbiAgICBiLmRpZENyZWF0ZUVsZW1lbnQoUmVnaXN0ZXIuczApO1xuICAgIGIuZmx1c2hFbGVtZW50KCk7XG5cbiAgICBiLmxhYmVsKCdCT0RZJyk7XG5cbiAgICBiLmludm9rZVN0YXRpY0Jsb2NrKGJsb2NrRm9yKGxheW91dCwgY29tcGlsZXIpKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIuanVtcFVubGVzcygnRU5EJyk7XG4gICAgYi5jbG9zZUVsZW1lbnQoKTtcblxuICAgIGIubGFiZWwoJ0VORCcpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLnN0b3BMYWJlbHMoKTtcblxuICAgIGxldCBoYW5kbGUgPSBiLmNvbW1pdCgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBkZWJ1Zyhjb21waWxlciBhcyBSZWNhc3Q8Q29tcGlsZXI8T3Bjb2RlQnVpbGRlcjxMb2NhdG9yPj4sIEFueUFic3RyYWN0Q29tcGlsZXI+LCBoYW5kbGUpO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmxvY2tGb3I8TG9jYXRvcj4obGF5b3V0OiBMYXlvdXRXaXRoQ29udGV4dCwgY29tcGlsZXI6IENvbXBpbGVyPE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4+KTogQ29tcGlsYWJsZUJsb2NrIHtcbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlQmxvY2tJbnN0YW5jZShjb21waWxlciwge1xuICAgIGJsb2NrOiB7XG4gICAgICBzdGF0ZW1lbnRzOiBsYXlvdXQuYmxvY2suc3RhdGVtZW50cyxcbiAgICAgIHBhcmFtZXRlcnM6IEVNUFRZX0FSUkFZXG4gICAgfSxcbiAgICBjb250YWluaW5nTGF5b3V0OiBsYXlvdXRcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRCdWlsZGVyPExvY2F0b3I+IGltcGxlbWVudHMgSUNvbXBvbmVudEJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1aWxkZXI6IE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4pIHt9XG5cbiAgc3RhdGljKGhhbmRsZTogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKSB7XG4gICAgbGV0IFtwYXJhbXMsIGhhc2gsIF9kZWZhdWx0LCBpbnZlcnNlXSA9IGFyZ3M7XG4gICAgbGV0IHsgYnVpbGRlciB9ID0gdGhpcztcblxuICAgIGlmIChoYW5kbGUgIT09IG51bGwpIHtcbiAgICAgIGxldCB7IGNhcGFiaWxpdGllcywgY29tcGlsYWJsZSB9ID0gYnVpbGRlci5jb21waWxlci5yZXNvbHZlTGF5b3V0Rm9ySGFuZGxlKGhhbmRsZSk7XG5cbiAgICAgIGlmIChjb21waWxhYmxlKSB7XG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VTdGF0aWNDb21wb25lbnQoY2FwYWJpbGl0aWVzLCBjb21waWxhYmxlLCBudWxsLCBwYXJhbXMsIGhhc2gsIGZhbHNlLCBfZGVmYXVsdCwgaW52ZXJzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWlsZGVyLnB1c2hDb21wb25lbnREZWZpbml0aW9uKGhhbmRsZSk7XG4gICAgICAgIGJ1aWxkZXIuaW52b2tlQ29tcG9uZW50KG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFPLEFBQUUsQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDOztBQVV2QyxBQUFPLEFBQWtCLEFBQU0sQUFBdUIsQUFBQzs7OztBQUN2RCxBQUFPLEFBQUUsQUFBVSxBQUFFLEFBQU0sQUFBUyxBQUFDOztBQUVyQyxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQU0sQUFBVSxBQUFDLEFBRXZDLEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQU0sQUFBZSxBQUFDLEFBRTVDLEFBQU07Ozs7O2dCQUllLEFBQXFDLFNBQVUsQUFBa0MsUUFBakY7YUFBTyxVQUFQLEFBQU8sQUFBOEIsQUFBVTthQUFNLFNBQU4sQUFBTSxBQUE0QixBQUNsRztZQUFJLEVBQUUsQUFBSyxBQUFFLFVBQUcsQUFBTSxBQUFDLEFBRXZCLEFBQUk7YUFBQyxBQUFXO3FCQUNMLEFBQUssTUFBQyxBQUFPLEFBQ3RCLEFBQU87cUJBQUUsQUFBSyxNQUFDLEFBQU8sUUFBQyxBQUFNLE9BRlosQUFFYSxBQUFDLEFBQVcsQUFBQyxBQUFDLEFBQzdDLEFBQUMsQUFDSixBQUFDO0FBSEcsQUFBTztBQUtYLEFBQU87Y0FDTCxBQUFpQjtBQUNqQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBMEI7QUFDMUIsQUFBcUM7QUFDckMsQUFBMEI7QUFDMUIsQUFBK0I7QUFDL0IsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQStCO0FBQy9CLEFBQTJCO0FBQzNCLEFBQWM7QUFDZCxBQUF5QjtBQUN6QixBQUFzQjtBQUN0QixBQUFjO0FBQ2QsQUFBeUI7QUFDekIsQUFBYztB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QUFBTyxBQUFDLEFBQUMsQUFDeEUsQUFBQyxBQUNIO0FBQUMsQUFDSDtBQUFDLEFBQ0Y7O0FBckJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBQcm9ncmFtU3ltYm9sVGFibGUsIENvbXBpbGFibGVQcm9ncmFtLCBDb21waWxhYmxlQmxvY2sgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50QXJncyxcbiAgQ29tcG9uZW50QnVpbGRlciBhcyBJQ29tcG9uZW50QnVpbGRlcixcbiAgUGFyc2VkTGF5b3V0XG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLi9zeW50YXgnO1xuaW1wb3J0IENvbXBpbGFibGVUZW1wbGF0ZSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgZGVidWdTbGljZSB9IGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IHsgT3Bjb2RlQnVpbGRlciB9IGZyb20gJy4vb3Bjb2RlLWJ1aWxkZXInO1xuaW1wb3J0IHsgQVRUUlNfQkxPQ0sgfSBmcm9tICcuL3N5bnRheCc7XG5cbmltcG9ydCB7IERFQlVHIH0gZnJvbSBcIkBnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzXCI7XG5pbXBvcnQgeyBFTVBUWV9BUlJBWSB9IGZyb20gXCJAZ2xpbW1lci91dGlsXCI7XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVkQnVpbGRlcjxUZW1wbGF0ZU1ldGE+IGltcGxlbWVudHMgQ29tcGlsYWJsZVByb2dyYW0ge1xuICBwdWJsaWMgc3ltYm9sVGFibGU6IFByb2dyYW1TeW1ib2xUYWJsZTtcbiAgcHJpdmF0ZSByZWZlcnJlcjogVGVtcGxhdGVNZXRhO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+LCBwcml2YXRlIGxheW91dDogUGFyc2VkTGF5b3V0PFRlbXBsYXRlTWV0YT4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gbGF5b3V0O1xuXG4gICAgdGhpcy5zeW1ib2xUYWJsZSA9IHtcbiAgICAgIGhhc0V2YWw6IGJsb2NrLmhhc0V2YWwsXG4gICAgICBzeW1ib2xzOiBibG9jay5zeW1ib2xzLmNvbmNhdChbQVRUUlNfQkxPQ0tdKVxuICAgIH07XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgLy89PT09PT09PURZTkFNSUNcbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEJPRFkpXG4gICAgLy8gICAgICAgIE9wZW5EeW5hbWljUHJpbWl0aXZlRWxlbWVudFxuICAgIC8vICAgICAgICBEaWRDcmVhdGVFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmF0dHIgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBGbHVzaEVsZW1lbnRcbiAgICAvLyBCT0RZOiAgTm9vcFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEVORClcbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gRU5EOiAgIE5vb3BcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcbiAgICAvL1xuICAgIC8vPT09PT09PT1TVEFUSUNcbiAgICAvLyAgICAgICAgT3BlblByaW1pdGl2ZUVsZW1lbnRPcGNvZGVcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmJvZHkgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBDbG9zZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcblxuICAgIGxldCB7IG9wdGlvbnMsIGxheW91dCwgcmVmZXJyZXIgfSA9IHRoaXM7XG4gICAgbGV0IHsgcHJvZ3JhbSwgcmVzb2x2ZXIsIG1hY3JvcywgYXNQYXJ0aWFsIH0gPSBvcHRpb25zO1xuICAgIGxldCB7IEJ1aWxkZXIgfSA9IG9wdGlvbnM7XG5cbiAgICBsZXQgYiA9IG5ldyBCdWlsZGVyKHByb2dyYW0sIHJlc29sdmVyLCByZWZlcnJlciwgbWFjcm9zLCBsYXlvdXQsIGFzUGFydGlhbCk7XG5cbiAgICBiLnN0YXJ0TGFiZWxzKCk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuZ2V0Q29tcG9uZW50VGFnTmFtZShSZWdpc3Rlci5zMCk7XG4gICAgYi5wcmltaXRpdmVSZWZlcmVuY2UoKTtcblxuICAgIGIuZHVwKCk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuanVtcFVubGVzcygnQk9EWScpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5wdXRDb21wb25lbnRPcGVyYXRpb25zKCk7XG4gICAgYi5vcGVuRHluYW1pY0VsZW1lbnQoKTtcbiAgICBiLmRpZENyZWF0ZUVsZW1lbnQoUmVnaXN0ZXIuczApO1xuICAgIGIuZmx1c2hFbGVtZW50KCk7XG5cbiAgICBiLmxhYmVsKCdCT0RZJyk7XG5cbiAgICBiLmludm9rZVN0YXRpY0Jsb2NrKGJsb2NrRm9yKGxheW91dCwgdGhpcy5vcHRpb25zKSk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcbiAgICBiLmp1bXBVbmxlc3MoJ0VORCcpO1xuICAgIGIuY2xvc2VFbGVtZW50KCk7XG5cbiAgICBiLmxhYmVsKCdFTkQnKTtcbiAgICBiLmxvYWQoUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5zdG9wTGFiZWxzKCk7XG5cbiAgICBsZXQgaGFuZGxlID0gYi5jb21taXQob3B0aW9ucy5wcm9ncmFtLmhlYXAsIGxheW91dC5ibG9jay5zeW1ib2xzLmxlbmd0aCk7XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIGxldCB7IHByb2dyYW0sIHByb2dyYW06IHsgaGVhcCB9IH0gPSBvcHRpb25zO1xuICAgICAgbGV0IHN0YXJ0ID0gaGVhcC5nZXRhZGRyKGhhbmRsZSk7XG4gICAgICBsZXQgZW5kID0gc3RhcnQgKyBoZWFwLnNpemVvZihoYW5kbGUpO1xuICAgICAgZGVidWdTbGljZShwcm9ncmFtLCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJsb2NrRm9yPFRlbXBsYXRlTWV0YT4obGF5b3V0OiBQYXJzZWRMYXlvdXQsIG9wdGlvbnM6IENvbXBpbGVPcHRpb25zPFRlbXBsYXRlTWV0YT4pOiBDb21waWxhYmxlQmxvY2sge1xuICBsZXQgeyBibG9jaywgcmVmZXJyZXIgfSA9IGxheW91dDtcblxuICByZXR1cm4gbmV3IENvbXBpbGFibGVUZW1wbGF0ZShibG9jay5zdGF0ZW1lbnRzLCBsYXlvdXQsIG9wdGlvbnMsIHsgcmVmZXJyZXIsIHBhcmFtZXRlcnM6IEVNUFRZX0FSUkFZIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QnVpbGRlcjxUZW1wbGF0ZU1ldGE+IGltcGxlbWVudHMgSUNvbXBvbmVudEJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1aWxkZXI6IE9wY29kZUJ1aWxkZXI8VGVtcGxhdGVNZXRhPikge31cblxuICBzdGF0aWMoaGFuZGxlOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpIHtcbiAgICBsZXQgW3BhcmFtcywgaGFzaCwgX2RlZmF1bHQsIGludmVyc2VdID0gYXJncztcbiAgICBsZXQgeyBidWlsZGVyIH0gPSB0aGlzO1xuICAgIGxldCB7IHJlc29sdmVyIH0gPSBidWlsZGVyO1xuXG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgbGV0IGNhcGFiaWxpdGllcyA9IHJlc29sdmVyLmdldENhcGFiaWxpdGllcyhoYW5kbGUpO1xuXG4gICAgICBpZiAoY2FwYWJpbGl0aWVzLmR5bmFtaWNMYXlvdXQgPT09IGZhbHNlKSB7XG4gICAgICAgIGxldCBsYXlvdXQgPSByZXNvbHZlci5nZXRMYXlvdXQoaGFuZGxlKSE7XG5cbiAgICAgICAgYnVpbGRlci5wdXNoQ29tcG9uZW50RGVmaW5pdGlvbihoYW5kbGUpO1xuICAgICAgICBidWlsZGVyLmludm9rZVN0YXRpY0NvbXBvbmVudChjYXBhYmlsaXRpZXMsIGxheW91dCwgbnVsbCwgcGFyYW1zLCBoYXNoLCBmYWxzZSwgX2RlZmF1bHQsIGludmVyc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVpbGRlci5wdXNoQ29tcG9uZW50RGVmaW5pdGlvbihoYW5kbGUpO1xuICAgICAgICBidWlsZGVyLmludm9rZUNvbXBvbmVudChudWxsLCBwYXJhbXMsIGhhc2gsIGZhbHNlLCBfZGVmYXVsdCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=

@@ -34,53 +34,2 @@ 'use strict';

var _lazy = require('./lib/lazy');
Object.keys(_lazy).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _lazy[key];
}
});
});
var _compile = require('./lib/compile');
Object.keys(_compile).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _compile[key];
}
});
});
var _compiler = require('./lib/compiler');
Object.keys(_compiler).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _compiler[key];
}
});
});
var _compilableTemplate = require('./lib/compilable-template');
Object.defineProperty(exports, 'CompilableBlock', {
enumerable: true,
get: function () {
return _compilableTemplate.CompilableBlock;
}
});
Object.defineProperty(exports, 'CompilableProgram', {
enumerable: true,
get: function () {
return _compilableTemplate.CompilableProgram;
}
});
var _opcodeBuilder = require('./lib/opcode-builder');

@@ -106,6 +55,6 @@

});
Object.defineProperty(exports, 'StdOpcodeBuilder', {
Object.defineProperty(exports, 'SimpleOpcodeBuilder', {
enumerable: true,
get: function () {
return _opcodeBuilder.StdOpcodeBuilder;
return _opcodeBuilder.SimpleOpcodeBuilder;
}

@@ -132,2 +81,11 @@ });

var _compilableTemplate = require('./lib/compilable-template');
Object.defineProperty(exports, 'CompilableTemplate', {
enumerable: true,
get: function () {
return _interopRequireDefault(_compilableTemplate).default;
}
});
var _debug = require('./lib/debug');

@@ -164,2 +122,2 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxBQUFjLEFBQWtCLEFBQUMsQUFFakMsQUFBTzs7Ozs7Ozs7Ozs7Ozs7O21CQUNMLEFBQVc7Ozs7OzttQkFFWCxBQUFNLEFBQ1AsQUFBTSxBQUFjLEFBQUM7Ozs7OztBQUV0QixBQUFjLEFBQVksQUFBQzs7Ozs7Ozs7Ozs7O0FBQzNCLEFBQWMsQUFBZSxBQUFDOzs7Ozs7Ozs7Ozs7QUFDOUIsQUFBYyxBQUFnQixBQUFDLEFBRS9CLEFBQU87Ozs7Ozs7Ozs7Ozs7OzsrQkFDTCxBQUFlOzs7Ozs7K0JBQ2YsQUFBaUIsQUFDbEIsQUFBTSxBQUEyQixBQUFDLEFBRW5DLEFBQU87Ozs7Ozs7OzswQkFDTCxBQUFpQjs7Ozs7OzBCQUNqQixBQUFrQjs7Ozs7OzBCQUNsQixBQUFhOzs7Ozs7MEJBRWIsQUFBZ0IsQUFDakIsQUFBTSxBQUFzQixBQUFDLEFBRTlCLEFBQU87Ozs7Ozs7Ozs0QkFBRSxBQUFpQixBQUFFLEFBQU0sQUFBd0IsQUFBQyxBQUUzRCxBQUFPOzs7Ozs7Ozs7NkNBQ0wsQUFBTyxBQUFJLEFBQWUsQUFFM0IsQUFBTSxBQUFnQixBQUFDLEFBRXhCLEFBQU87Ozs7Ozs7OztrQkFDTCxBQUFLOzs7Ozs7a0JBQ0wsQUFBVTs7Ozs7O2tCQUNWLEFBQVMsQUFDVixBQUFNLEFBQWEsQUFBQyxBQUVyQixBQUFPOzs7Ozs7Ozs7NkJBQ0wsQUFBYyxBQUNmLEFBQU0sQUFBeUIsQUFBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMnO1xuXG5leHBvcnQge1xuICBBVFRSU19CTE9DSyxcbiAgQ29tcGlsZU9wdGlvbnMsXG4gIE1hY3Jvc1xufSBmcm9tICcuL2xpYi9zeW50YXgnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXp5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcGlsZXInO1xuXG5leHBvcnQge1xuICBDb21waWxhYmxlQmxvY2ssXG4gIENvbXBpbGFibGVQcm9ncmFtXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBMYXp5T3Bjb2RlQnVpbGRlcixcbiAgRWFnZXJPcGNvZGVCdWlsZGVyLFxuICBPcGNvZGVCdWlsZGVyLFxuICBPcGNvZGVCdWlsZGVyQ29uc3RydWN0b3IsXG4gIFN0ZE9wY29kZUJ1aWxkZXIsXG59IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyJztcblxuZXhwb3J0IHsgUGFydGlhbERlZmluaXRpb24gfSBmcm9tICcuL2xpYi9wYXJ0aWFsLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyB0ZW1wbGF0ZUZhY3RvcnksXG4gIFRlbXBsYXRlRmFjdG9yeVxufSBmcm9tICcuL2xpYi90ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlYnVnLFxuICBkZWJ1Z1NsaWNlLFxuICBsb2dPcGNvZGVcbn0gZnJvbSAnLi9saWIvZGVidWcnO1xuXG5leHBvcnQge1xuICBXcmFwcGVkQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvd3JhcHBlZC1jb21wb25lbnQnO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxBQUFjLEFBQWtCLEFBQUMsQUFFakMsQUFBTzs7Ozs7Ozs7Ozs7Ozs7O21CQUNMLEFBQVc7Ozs7OzttQkFFWCxBQUFNLEFBRVAsQUFBTSxBQUFjLEFBQUMsQUFFdEIsQUFBTzs7Ozs7Ozs7OzBCQUVMLEFBQWlCOzs7Ozs7MEJBQ2pCLEFBQWtCOzs7Ozs7MEJBQ2xCLEFBQWE7Ozs7OzswQkFFYixBQUFtQixBQUNwQixBQUFNLEFBQXNCLEFBQUMsQUFFOUIsQUFBTzs7Ozs7Ozs7OzRCQUFFLEFBQWlCLEFBQUUsQUFBTSxBQUF3QixBQUFDLEFBRTNELEFBQU87Ozs7Ozs7Ozs2Q0FDTCxBQUFPLEFBQUksQUFBZSxBQUUzQixBQUFNLEFBQWdCLEFBQUMsQUFFeEIsQUFBTzs7Ozs7Ozs7O3VEQUNMLEFBQU8sQUFBSSxBQUFrQixBQUM5QixBQUFNLEFBQTJCLEFBQUMsQUFFbkMsQUFBTzs7Ozs7Ozs7O2tCQUNMLEFBQUs7Ozs7OztrQkFDTCxBQUFVOzs7Ozs7a0JBQ1YsQUFBUyxBQUNWLEFBQU0sQUFBYSxBQUFDLEFBRXJCLEFBQU87Ozs7Ozs7Ozs2QkFDTCxBQUFjLEFBQ2YsQUFBTSxBQUF5QixBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7XG4gIEFUVFJTX0JMT0NLLFxuICBDb21waWxlT3B0aW9ucyxcbiAgTWFjcm9zLFxuICBUZW1wbGF0ZU9wdGlvbnNcbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0IHtcbiAgQ29tcGlsZVRpbWVMb29rdXAsXG4gIExhenlPcGNvZGVCdWlsZGVyLFxuICBFYWdlck9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXJDb25zdHJ1Y3RvcixcbiAgU2ltcGxlT3Bjb2RlQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbiB9IGZyb20gJy4vbGliL3BhcnRpYWwtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHRlbXBsYXRlRmFjdG9yeSxcbiAgVGVtcGxhdGVGYWN0b3J5XG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBDb21waWxhYmxlVGVtcGxhdGUsXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==

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

"use strict";
'use strict';

@@ -6,12 +6,8 @@ Object.defineProperty(exports, "__esModule", {

});
var _createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);
}
}return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;
};
}();
exports.PLACEHOLDER_HANDLE = undefined;
var _debug = require('./debug');
var _syntax = require('./syntax');
function _classCallCheck(instance, Constructor) {

@@ -24,39 +20,23 @@ if (!(instance instanceof Constructor)) {

var PLACEHOLDER_HANDLE = exports.PLACEHOLDER_HANDLE = -1;
var CompilableProgram = exports.CompilableProgram = function () {
function CompilableProgram(compiler, layout) {
_classCallCheck(this, CompilableProgram);
this.compiler = compiler;
this.layout = layout;
var CompilableTemplateImpl = function () {
function CompilableTemplateImpl(statements, containingLayout, options, symbolTable) {
_classCallCheck(this, CompilableTemplateImpl);
this.statements = statements;
this.containingLayout = containingLayout;
this.options = options;
this.symbolTable = symbolTable;
this.compiled = null;
this.statementCompiler = (0, _syntax.statementCompiler)();
}
CompilableProgram.prototype.compile = function compile() {
if (this.compiled !== null) return this.compiled;
this.compiled = PLACEHOLDER_HANDLE;
var statements = this.layout.block.statements;
return this.compiled = this.compiler.add(statements, this.layout);
CompilableTemplateImpl.topLevel = function topLevel(block, options) {
return new CompilableTemplateImpl(block.statements, { block: block, referrer: options.referrer }, options, { hasEval: block.hasEval, symbols: block.symbols });
};
_createClass(CompilableProgram, [{
key: "symbolTable",
get: function get() {
return this.layout.block;
}
}]);
CompilableTemplateImpl.prototype.compile = function compile(stdLib) {
var compiled = this.compiled;
return CompilableProgram;
}();
var CompilableBlock = exports.CompilableBlock = function () {
function CompilableBlock(compiler, parsed) {
_classCallCheck(this, CompilableBlock);
this.compiler = compiler;
this.parsed = parsed;
this.compiled = null;
}
CompilableBlock.prototype.compile = function compile() {
if (this.compiled !== null) return this.compiled;
if (compiled !== null) return compiled;
// Track that compilation has started but not yet finished by temporarily

@@ -67,18 +47,31 @@ // using a placeholder handle. In eager compilation mode, where compile()

this.compiled = PLACEHOLDER_HANDLE;
var _parsed = this.parsed,
statements = _parsed.block.statements,
containingLayout = _parsed.containingLayout;
var options = this.options,
statements = this.statements,
containingLayout = this.containingLayout;
var referrer = containingLayout.referrer;
var program = options.program,
resolver = options.resolver,
macros = options.macros,
asPartial = options.asPartial,
Builder = options.Builder;
return this.compiled = this.compiler.add(statements, containingLayout);
};
var builder = new Builder(program, resolver, referrer, macros, containingLayout, asPartial, stdLib);
for (var i = 0; i < statements.length; i++) {
this.statementCompiler.compile(statements[i], builder);
}
var handle = builder.commit(program.heap, containingLayout.block.symbols.length);
if (false) {
var heap = program.heap;
_createClass(CompilableBlock, [{
key: "symbolTable",
get: function get() {
return this.parsed.block;
var start = heap.getaddr(handle);
var end = start + heap.sizeof(handle);
(0, _debug.debugSlice)(program, start, end);
}
}]);
return this.compiled = handle;
};
return CompilableBlock;
return CompilableTemplateImpl;
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsQUFBTTs7QUFBQyxJQUFNLEFBQWtCLGtEQUFHLENBQUMsQUFBQyxBQUFDLEFBRXJDLEFBQU07SUFHSjsrQkFDWSxBQUEwQixVQUMxQixBQUF5QixRQUR6Qjs7O2FBQVEsV0FBUixBQUFRLEFBQWtCLEFBQzFCO2FBQU0sU0FKVixBQUlJLEFBQU0sQUFBbUI7YUFKckIsV0FBbUIsQUFBSSxBQUFDLEFBS3JDLEFBQUMsQUFFSixBQUFJLEFBQVc7Ozs7WUFLVCxBQUFJLEtBQUMsQUFBUSxhQUFLLEFBQUksQUFBQyxNQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBUSxBQUFDLEFBRWpELEFBQUk7YUFBQyxBQUFRLFdBQUcsQUFBa0IsQUFBQyxBQUVuQyxBQUFJLEFBSkosQUFBRSxBQUFDO1lBSVksQUFBVSxBQUFFLEFBQUUsYUFBRyxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBRTVDLEFBQU0sT0FGQSxBQUFLLEFBQUU7O2VBRU4sQUFBSSxLQUFDLEFBQVEsV0FBRyxBQUFJLEtBQUMsQUFBUSxTQUFDLEFBQUcsSUFBQyxBQUFVLFlBQUUsQUFBSSxLQUFDLEFBQU0sQUFBQyxBQUFDLEFBQ3BFLEFBQUMsQUFDRjs7Ozs7NEJBWkcsQUFBTTttQkFBQyxBQUFJLEtBQUMsQUFBTSxPQUFDLEFBQUssQUFBQyxBQUMzQixBQUFDLEFBRUQsQUFBTzs7Ozs7QUFXVCxBQUFNO0lBR0o7NkJBQ1UsQUFBMEIsVUFDMUIsQUFBd0IsUUFEeEI7OzthQUFRLFdBQVIsQUFBUSxBQUFrQixBQUMxQjthQUFNLFNBSlIsQUFJRSxBQUFNLEFBQWtCO2FBSmxCLFdBQW1CLEFBQUksQUFBQyxBQUtyQyxBQUFDLEFBRUosQUFBSSxBQUFXOzs7O1lBS1QsQUFBSSxLQUFDLEFBQVEsYUFBSyxBQUFJLEFBQUMsTUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQVEsQUFBQyxBQUVqRCxBQUF5RSxBQUN6RSxBQUF5RTtBQUN6RSxBQUE0RTtBQUM1RSxBQUFvRDtBQUNwRCxBQUFJOzthQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDLEFBRW5DLEFBQUksQUFSSixBQUFFLEFBQUM7c0JBUStDLEFBQUksS0FBQyxBQUFNLEFBQUMsQUFFOUQsQUFBTTtZQUZTLEFBQVUsQUFBRSxxQkFBckIsQUFBSyxBQUFFO1lBQWdCLEFBQWdCLEFBQUU7O2VBRXhDLEFBQUksS0FBQyxBQUFRLFdBQUcsQUFBSSxLQUFDLEFBQVEsU0FBQyxBQUFHLElBQUMsQUFBVSxZQUFFLEFBQWdCLEFBQUMsQUFBQyxBQUN6RSxBQUFDLEFBQ0Y7Ozs7OzRCQWhCRyxBQUFNO21CQUFDLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBSyxBQUFDLEFBQzNCLEFBQUMsQUFFRCxBQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsYWJsZVRlbXBsYXRlLFxuICBQcm9ncmFtU3ltYm9sVGFibGUsXG4gIENvbXBpbGFibGVQcm9ncmFtIGFzIElDb21waWxhYmxlUHJvZ3JhbSxcbiAgT3B0aW9uLFxuICBMYXlvdXRXaXRoQ29udGV4dCxcbiAgT3BhcXVlLFxuICBDb21waWxlcixcbiAgQmxvY2tTeW1ib2xUYWJsZSxcbiAgQmxvY2tXaXRoQ29udGV4dFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFBMQUNFSE9MREVSX0hBTkRMRSA9IC0xO1xuXG5leHBvcnQgY2xhc3MgQ29tcGlsYWJsZVByb2dyYW0gaW1wbGVtZW50cyBJQ29tcGlsYWJsZVByb2dyYW0ge1xuICBwcml2YXRlIGNvbXBpbGVkOiBPcHRpb248bnVtYmVyPiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNvbXBpbGVyOiBDb21waWxlcjxPcGFxdWU+LFxuICAgIHByb3RlY3RlZCBsYXlvdXQ6IExheW91dFdpdGhDb250ZXh0XG4gICkge31cblxuICBnZXQgc3ltYm9sVGFibGUoKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQuYmxvY2s7XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuY29tcGlsZWQgIT09IG51bGwpIHJldHVybiB0aGlzLmNvbXBpbGVkO1xuXG4gICAgdGhpcy5jb21waWxlZCA9IFBMQUNFSE9MREVSX0hBTkRMRTtcblxuICAgIGxldCB7IGJsb2NrOiB7IHN0YXRlbWVudHMgfSB9ID0gdGhpcy5sYXlvdXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb21waWxlZCA9IHRoaXMuY29tcGlsZXIuYWRkKHN0YXRlbWVudHMsIHRoaXMubGF5b3V0KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcGlsYWJsZUJsb2NrIGltcGxlbWVudHMgQ29tcGlsYWJsZVRlbXBsYXRlPEJsb2NrU3ltYm9sVGFibGU+IHtcbiAgcHJpdmF0ZSBjb21waWxlZDogT3B0aW9uPG51bWJlcj4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyPE9wYXF1ZT4sXG4gICAgcHJpdmF0ZSBwYXJzZWQ6IEJsb2NrV2l0aENvbnRleHRcbiAgKSB7fVxuXG4gIGdldCBzeW1ib2xUYWJsZSgpOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZWQuYmxvY2s7XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuY29tcGlsZWQgIT09IG51bGwpIHJldHVybiB0aGlzLmNvbXBpbGVkO1xuXG4gICAgLy8gVHJhY2sgdGhhdCBjb21waWxhdGlvbiBoYXMgc3RhcnRlZCBidXQgbm90IHlldCBmaW5pc2hlZCBieSB0ZW1wb3JhcmlseVxuICAgIC8vIHVzaW5nIGEgcGxhY2Vob2xkZXIgaGFuZGxlLiBJbiBlYWdlciBjb21waWxhdGlvbiBtb2RlLCB3aGVyZSBjb21waWxlKClcbiAgICAvLyBtYXkgYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5LCB3ZSB1c2UgdGhpcyBhcyBhIHNpZ25hbCB0aGF0IHRoZSBoYW5kbGUgY2Fubm90XG4gICAgLy8gYmUga25vd24gc3luY2hyb25vdXNseSBhbmQgbXVzdCBiZSBsaW5rZWQgbGF6aWx5LlxuICAgIHRoaXMuY29tcGlsZWQgPSBQTEFDRUhPTERFUl9IQU5ETEU7XG5cbiAgICBsZXQgeyBibG9jazogeyBzdGF0ZW1lbnRzIH0sIGNvbnRhaW5pbmdMYXlvdXQgfSA9IHRoaXMucGFyc2VkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZWQgPSB0aGlzLmNvbXBpbGVyLmFkZChzdGF0ZW1lbnRzLCBjb250YWluaW5nTGF5b3V0KTtcbiAgfVxufVxuIl19
exports.default = CompilableTemplateImpl;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBU0EsQUFBTyxBQUFFLEFBQVUsQUFBRSxBQUFNLEFBQVMsQUFBQzs7QUFFckMsQUFBTyxBQUFrQixBQUFpQixBQUFhLEFBQU0sQUFBVSxBQUFDLEFBRXhFLEFBQU07Ozs7Ozs7O0FBQUMsSUFBTSxBQUFrQixrREFBRyxDQUFDLEFBQUMsQUFBQyxBQUVyQyxBQUFNLEFBQUMsQUFBTzs7SUFjWjtvQ0FBb0IsQUFBdUIsWUFBVSxBQUE4QixrQkFBVSxBQUFxQyxTQUFTLEFBQXdCLGFBQS9JOzs7YUFBVSxhQUFWLEFBQVUsQUFBYSxBQUFVO2FBQWdCLG1CQUFoQixBQUFnQixBQUFjLEFBQVU7YUFBTyxVQUFQLEFBQU8sQUFBOEIsQUFBUzthQUFXLGNBSjlJLEFBSW1JLEFBQVcsQUFBYTthQUpuSixXQUFtQixBQUFJLEFBQUMsQUFLdEMsQUFBSTthQUFDLEFBQWlCLG9CQUFHLEFBQWlCLEFBQUUsQUFBQyxBQUMvQyxBQUFDLEFBZkQsQUFBTTs7OzJCQUFDLEFBQVEsNkJBQWUsQUFBOEIsT0FBRSxBQUFxQyxTQUNqRyxBQUFNO2VBQUMsSUFBSSxBQUFzQix1QkFDL0IsQUFBSyxNQUFDLEFBQVUsWUFDaEIsRUFBRSxBQUFLLGNBQUUsQUFBUSxVQUFFLEFBQU8sUUFBQyxBQUFRLEFBQUUsWUFDckMsQUFBTyxTQUNQLEVBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLFNBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLEFBQUUsQUFDbkQsQUFBQyxBQUNKLEFBQUMsQUFVRCxBQUFPOzs7Z0VBQUMsQUFBZSxRQUNyQixBQUFJO1lBQUUsQUFBUSxBQUFFLFdBQUcsQUFBSSxBQUFDLEFBQ3hCLEFBQUUsQUFBQzs7WUFBQyxBQUFRLGFBQUssQUFBSSxBQUFDLE1BQUMsQUFBTSxPQUFDLEFBQVEsQUFBQyxBQUV2QyxBQUF5RSxBQUN6RSxBQUF5RTtBQUN6RSxBQUE0RTtBQUM1RSxBQUFvRDtBQUNwRCxBQUFJOzthQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDLEFBRW5DLEFBQUk7WUFBRSxBQUFPLFVBQW1DLEFBQUksQUFBQyxBQUNyRCxBQUFJO1lBRFcsQUFBVTtZQUFFLEFBQWdCLEFBQUU7WUFDdkMsQUFBUSxBQUFFLFdBQUcsQUFBZ0IsQUFBQyxBQUNwQyxBQUFJO1lBQUUsQUFBTztZQUFFLEFBQVE7WUFBRSxBQUFNLFNBQXlCLEFBQU8sQUFBQyxBQUVoRTtZQUZpQyxBQUFTO1lBQUUsQUFBTyxBQUFFOztZQUVqRCxBQUFPLFVBQUcsSUFBSSxBQUFPLFFBQUMsQUFBTyxTQUFFLEFBQVEsVUFBRSxBQUFRLFVBQUUsQUFBTSxRQUFFLEFBQWdCLGtCQUFFLEFBQVMsV0FBRSxBQUFNLEFBQUMsQUFBQyxBQUVwRyxBQUFHLEFBQUM7YUFBQyxJQUFJLEFBQUMsSUFBRyxBQUFDLEdBQUUsQUFBQyxJQUFHLEFBQVUsV0FBQyxBQUFNLFFBQUUsQUFBQyxBQUFFLEtBQUUsQUFBQyxBQUMzQyxBQUFJO2lCQUFDLEFBQWlCLGtCQUFDLEFBQU8sUUFBQyxBQUFVLFdBQUMsQUFBQyxBQUFDLElBQUUsQUFBTyxBQUFDLEFBQUMsQUFDekQsQUFBQyxBQUVEOztZQUFJLEFBQU0sU0FBRyxBQUFPLFFBQUMsQUFBTSxPQUFDLEFBQU8sUUFBQyxBQUFJLE1BQUUsQUFBZ0IsaUJBQUMsQUFBSyxNQUFDLEFBQU8sUUFBQyxBQUFNLEFBQUMsQUFBQyxBQUVqRixBQUFFLEFBQUMsQUFBQyxBQUFLLEFBQUM7bUJBQUMsQUFBQyxBQUNWLEFBQUk7Z0JBQUUsQUFBSSxBQUFFLE9BQUcsQUFBTyxBQUFDLEFBQ3ZCOztnQkFBSSxBQUFLLFFBQUcsQUFBSSxLQUFDLEFBQU8sUUFBQyxBQUFNLEFBQUMsQUFBQyxBQUNqQztnQkFBSSxBQUFHLE1BQUcsQUFBSyxRQUFHLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBTSxBQUFDLEFBQUMsQUFFdEMsQUFBVTttQ0FBQyxBQUFPLFNBQUUsQUFBSyxPQUFFLEFBQUcsQUFBQyxBQUFDLEFBQ2xDLEFBQUMsQUFFRCxBQUFNLEFBQUM7O2VBQUMsQUFBSSxLQUFDLEFBQVEsV0FBRyxBQUFNLEFBQUMsQUFBQyxBQUNsQyxBQUFDLEFBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxhYmxlVGVtcGxhdGUsXG4gIFNURExpYixcbiAgUHJvZ3JhbVN5bWJvbFRhYmxlLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgT3B0aW9uXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RhdGVtZW50LCBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3MnO1xuaW1wb3J0IHsgZGVidWdTbGljZSB9IGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IHsgUGFyc2VkTGF5b3V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbXBpbGVPcHRpb25zLCBzdGF0ZW1lbnRDb21waWxlciwgQ29tcGlsZXJzIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbXBpbGFibGVUZW1wbGF0ZUltcGw8U3ltYm9sVGFibGUsIFRlbXBsYXRlTWV0YT4gaW1wbGVtZW50cyBDb21waWxhYmxlVGVtcGxhdGU8U3ltYm9sVGFibGU+IHtcbiAgc3RhdGljIHRvcExldmVsPFRlbXBsYXRlTWV0YT4oYmxvY2s6IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLCBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+KTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIHJldHVybiBuZXcgQ29tcGlsYWJsZVRlbXBsYXRlSW1wbDxQcm9ncmFtU3ltYm9sVGFibGUsIFRlbXBsYXRlTWV0YT4oXG4gICAgICBibG9jay5zdGF0ZW1lbnRzLFxuICAgICAgeyBibG9jaywgcmVmZXJyZXI6IG9wdGlvbnMucmVmZXJyZXIgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB7IGhhc0V2YWw6IGJsb2NrLmhhc0V2YWwsIHN5bWJvbHM6IGJsb2NrLnN5bWJvbHMgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbXBpbGVkOiBPcHRpb248bnVtYmVyPiA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdGF0ZW1lbnRDb21waWxlcjogQ29tcGlsZXJzPFN0YXRlbWVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXSwgcHJpdmF0ZSBjb250YWluaW5nTGF5b3V0OiBQYXJzZWRMYXlvdXQsIHByaXZhdGUgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiwgcHVibGljIHN5bWJvbFRhYmxlOiBTeW1ib2xUYWJsZSkge1xuICAgIHRoaXMuc3RhdGVtZW50Q29tcGlsZXIgPSBzdGF0ZW1lbnRDb21waWxlcigpO1xuICB9XG5cbiAgY29tcGlsZShzdGRMaWI/OiBTVERMaWIpOiBudW1iZXIge1xuICAgIGxldCB7IGNvbXBpbGVkIH0gPSB0aGlzO1xuICAgIGlmIChjb21waWxlZCAhPT0gbnVsbCkgcmV0dXJuIGNvbXBpbGVkO1xuXG4gICAgLy8gVHJhY2sgdGhhdCBjb21waWxhdGlvbiBoYXMgc3RhcnRlZCBidXQgbm90IHlldCBmaW5pc2hlZCBieSB0ZW1wb3JhcmlseVxuICAgIC8vIHVzaW5nIGEgcGxhY2Vob2xkZXIgaGFuZGxlLiBJbiBlYWdlciBjb21waWxhdGlvbiBtb2RlLCB3aGVyZSBjb21waWxlKClcbiAgICAvLyBtYXkgYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5LCB3ZSB1c2UgdGhpcyBhcyBhIHNpZ25hbCB0aGF0IHRoZSBoYW5kbGUgY2Fubm90XG4gICAgLy8gYmUga25vd24gc3luY2hyb25vdXNseSBhbmQgbXVzdCBiZSBsaW5rZWQgbGF6aWx5LlxuICAgIHRoaXMuY29tcGlsZWQgPSBQTEFDRUhPTERFUl9IQU5ETEU7XG5cbiAgICBsZXQgeyBvcHRpb25zLCBzdGF0ZW1lbnRzLCBjb250YWluaW5nTGF5b3V0IH0gPSB0aGlzO1xuICAgIGxldCB7IHJlZmVycmVyIH0gPSBjb250YWluaW5nTGF5b3V0O1xuICAgIGxldCB7IHByb2dyYW0sIHJlc29sdmVyLCBtYWNyb3MsIGFzUGFydGlhbCwgQnVpbGRlciB9ID0gb3B0aW9ucztcblxuICAgIGxldCBidWlsZGVyID0gbmV3IEJ1aWxkZXIocHJvZ3JhbSwgcmVzb2x2ZXIsIHJlZmVycmVyLCBtYWNyb3MsIGNvbnRhaW5pbmdMYXlvdXQsIGFzUGFydGlhbCwgc3RkTGliKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5zdGF0ZW1lbnRDb21waWxlci5jb21waWxlKHN0YXRlbWVudHNbaV0sIGJ1aWxkZXIpO1xuICAgIH1cblxuICAgIGxldCBoYW5kbGUgPSBidWlsZGVyLmNvbW1pdChwcm9ncmFtLmhlYXAsIGNvbnRhaW5pbmdMYXlvdXQuYmxvY2suc3ltYm9scy5sZW5ndGgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgeyBoZWFwIH0gPSBwcm9ncmFtO1xuICAgICAgbGV0IHN0YXJ0ID0gaGVhcC5nZXRhZGRyKGhhbmRsZSk7XG4gICAgICBsZXQgZW5kID0gc3RhcnQgKyBoZWFwLnNpemVvZihoYW5kbGUpO1xuXG4gICAgICBkZWJ1Z1NsaWNlKHByb2dyYW0sIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5jb21waWxlZCA9IGhhbmRsZSk7XG4gIH1cbn1cbiJdfQ==

@@ -29,3 +29,3 @@ 'use strict';

var _debug = debug(i, constants, type, op1, op2, op3),
var _debug = debug(constants, type, op1, op2, op3),
name = _debug[0],

@@ -73,5 +73,5 @@ params = _debug[1];

}
function debug(pos, c, op) {
for (var _len = arguments.length, operands = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
operands[_key - 3] = arguments[_key];
function debug(c, op) {
for (var _len = arguments.length, operands = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
operands[_key - 2] = arguments[_key];
}

@@ -87,5 +87,2 @@

switch (operand.type) {
case 'to':
out[operand.name] = pos + op;
break;
case 'i32':

@@ -157,2 +154,2 @@ case 'symbol':

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU9BLEFBQU8sQUFBRSxBQUFRLEFBQU0sQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDLEFBQ3JELEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQUksQUFBRSxBQUFNLEFBQWUsQUFBQyxBQWlCbEQsQUFBTTs7b0JBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDO2VBRVIsQUFBSTtBQUZLLEFBQUMsQUFDVixBQUErQjtZQUN6QixBQUFTLEFBQUUsWUFBRyxBQUFPLEFBQUMsQUFFM0IsQUFBZTs7Z0JBQUMsQUFBSyxBQUFDLGFBQUssQUFBSyxjQUFJLEFBQUcsQUFBRSxLQUFFLEFBQWEsQUFBQyxBQUFDLEFBRTNEO1lBQUksQUFBSyxRQUFHLEFBQUMsQUFBQyxBQUNkLEFBQUcsQUFBQzthQUFDLElBQUksQUFBQyxJQUFDLEFBQUssT0FBRSxBQUFDLElBQUMsQUFBRyxLQUFFLEFBQUMsSUFBRyxBQUFDLElBQUcsQUFBSyxPQUFFLEFBQUMsQUFDdkMsQUFBSTtrQ0FBZ0MsQUFBTyxRQUFDLEFBQU0sT0FBQyxBQUFDLEFBQUMsQUFBQyxBQUN0RCxBQUFJO2dCQURFLEFBQUk7Z0JBQUUsQUFBRztnQkFBRSxBQUFHO2dCQUFFLEFBQUc7Z0JBQUUsQUFBSSxBQUFFOzt5QkFDWixBQUFLLE1BQUMsQUFBQyxHQUFFLEFBQXlELFdBQUUsQUFBSSxNQUFFLEFBQUcsS0FBRSxBQUFHLEtBQUUsQUFBRyxBQUFDLEFBQUMsQUFDOUcsQUFBTztnQkFERixBQUFJO2dCQUFFLEFBQU0sQUFBQzs7b0JBQ1YsQUFBRyxBQUFDLElBQUcsQUFBQyxXQUFLLEFBQVMsVUFBQyxBQUFJLE1BQUUsQUFBTSxBQUFDLEFBQUUsQUFBQyxBQUFDLEFBQ2hELEFBQUs7b0JBQUcsQUFBSSxBQUFDLEFBQ2YsQUFBQyxBQUNELEFBQU87O2dCQUFDLEFBQU0sT0FBQyxDQUFDLEFBQUssQUFBQyxBQUFDLEFBQ3ZCLEFBQU87Z0JBQUMsQUFBUSxBQUFFLEFBQUMsQUFDbkIsQUFBOEIsQUFDaEMsQUFBQyxBQUNIO0FBQUM7O0FBRUQsQUFBTTttQkFBb0IsQUFBWSxNQUFFLEFBQXNCLFFBQzVEO1FBQUksQUFBRyxNQUFHLEFBQUksQUFBQyxBQUVmLEFBQUUsQUFBQztRQUFDLEFBQU0sQUFBQyxRQUFDLEFBQUMsQUFDWDtZQUFJLEFBQUksY0FBVSxBQUFJLEtBQUMsQUFBTSxBQUFDLFFBQUMsQUFBRyxpQkFBQyxBQUFDLEFBQUk7eUJBQUksQUFBQyxVQUFJLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBQyxBQUFDLEFBQUMsQUFBRSxBQUFDO0FBQXhELEFBQU0sV0FBbUQsQUFBSSxLQUFDLEFBQUUsQUFBQyxBQUFDLEFBQzdFLEFBQUc7ZUFBSSxBQUFJLEFBQUMsQUFDZCxBQUFDLEFBQ0QsQUFBTSxBQUFDOztpQkFBSSxBQUFHLEFBQUcsQUFBQyxBQUNwQixBQUFDOztBQUVELGNBQWMsQUFBYSxPQUN6QixBQUFFLEFBQUMsQUFBQyxBQUFLLEFBQUM7ZUFBQyxBQUFDLEFBQ1YsQUFBRSxBQUFDO1lBQUMsT0FBTyxBQUFLLFVBQUssQUFBVSxBQUFDLFlBQUMsQUFBQyxBQUNoQyxBQUFNO21CQUFDLEFBQVksQUFBQyxBQUN0QixBQUFDLEFBRUQ7O1lBQUksQUFBTSxBQUFDLEFBQ1g7WUFBSSxBQUFDLEFBQ0gsQUFBTTtxQkFBRyxBQUFJLEtBQUMsQUFBUyxVQUFDLEFBQUssQUFBQyxBQUFDLEFBQ2pDLEFBQUM7VUFBQyxBQUFLLE9BQUMsQUFBQyxBQUFDLEdBQUMsQUFBQyxBQUNWLEFBQU07bUJBQUMsQUFBVSxBQUFDLEFBQ3BCLEFBQUMsQUFFRCxBQUFFLEFBQUM7O1lBQUMsQUFBTSxXQUFLLEFBQVMsQUFBQyxXQUFDLEFBQUMsQUFDekIsQUFBTTttQkFBQyxBQUFXLEFBQUMsQUFDckIsQUFBQyxBQUVEOztZQUFJLEFBQUssVUFBRyxBQUFJLEtBQUMsQUFBSyxNQUFDLEFBQU0sQUFBQyxBQUFDLEFBQy9CLEFBQUUsQUFBQztZQUFDLE9BQU8sQUFBSyxZQUFLLEFBQVEsWUFBSSxBQUFLLFlBQUssQUFBSSxRQUFJLEFBQUssUUFBQyxBQUFZLGlCQUFLLEFBQVMsQUFBQyxXQUFDLEFBQUMsQUFDcEYsQUFBTTttQkFBQyxBQUFLLFFBQUMsQUFBWSxBQUFDLEFBQzVCLEFBQUMsQUFFRCxBQUFNOztlQUFDLEFBQU0sQUFBQyxBQUNoQixBQUFDLEFBQ0gsQUFBQzs7QUFFRCxBQUFNO2VBQWdCLEFBQVcsS0FBRSxBQUFpQixHQUFFLEFBQU0sQUFBRSxJQUM1RDtnSEFEK0QsQUFBa0I7Ozs7UUFDN0UsQUFBUSxBQUFHLEFBQVEsQUFBQyxBQUFFLEFBQUMsQUFBQyxXQUU1QixBQUFFLEFBQUM7UUFBQyxDQUFDLEFBQVEsQUFBQyxVQUFDLEFBQUMsQUFDZDtjQUFNLEFBQVcsQUFBQyx3REFBK0IsQUFBRSxBQUFFLEFBQUMsQUFBQyxBQUN6RCxBQUFDLEFBRUQ7O1FBQUksQUFBRyxNQUFHLEFBQUksQUFBVSxBQUFDLEFBRXpCLEFBQVE7YUFBQyxBQUFHLElBQUMsQUFBTyxRQUFDLFVBQUMsQUFBTyxTQUFFLEFBQUssT0FDbEM7WUFBSSxBQUFFLEtBQUcsQUFBUSxTQUFDLEFBQUssQUFBQyxBQUFDLEFBRXpCLEFBQU0sQUFBQztnQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLEFBQUMsQUFBQyxBQUNyQjtpQkFBSyxBQUFJLEFBQ1AsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBRyxNQUFHLEFBQUUsQUFBQyxBQUM3QixBQUFLLEFBQUMsQUFDUjs7aUJBQUssQUFBSyxBQUFDLEFBQ1g7aUJBQUssQUFBUSxBQUFDLEFBQ2Q7aUJBQUssQUFBTyxBQUNWLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUUsQUFBQyxBQUN2QixBQUFLLEFBQUMsQUFDUjs7aUJBQUssQUFBUSxBQUNYLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFhLGNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDeEMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQUssQUFDUixBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxBQUFDLEVBQUMsQUFBUyxVQUFDLEFBQUUsQUFBQyxBQUFDLEFBQ3BDLEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFZLEFBQ2YsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBRSxLQUFHLEFBQUMsRUFBQyxBQUFTLFVBQUMsQUFBRSxBQUFDLE1BQUcsQUFBSSxBQUFDLEFBQ2hELEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQWMsZUFBQyxBQUFFLEFBQUMsQUFBQyxBQUN6QyxBQUFLLEFBQUMsQUFDUjs7aUJBQUssQUFBTyxBQUNWLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFRLFNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDbkMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQU0sQUFDVCxBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxDQUFDLENBQUMsQUFBRSxBQUFDLEFBQ3pCLEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBZSxnQkFBQyxBQUFFLElBQUUsQUFBQyxBQUFDLEFBQUMsQUFDM0MsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQVUsQUFDYixBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxBQUFRLGFBQUMsQUFBRSxBQUFDLEFBQUMsQUFDakMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQWMsQUFDakIsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQWUsZ0JBQUMsQUFBRSxBQUFDLEFBQUMsQUFDMUMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQWUsQUFDbEIsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUksQUFBZ0QsRUFBQyxBQUFRLFNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDbkYsQUFBSyxBQUFDLEFBQ1YsQUFBQyxBQUNILEFBQUMsQUFBQyxBQUFDO0FBRUgsQUFBTTs7O1dBQUMsQ0FBQyxBQUFRLFNBQUMsQUFBSSxNQUFFLEFBQUcsQUFBQyxBQUFDLEFBQzlCLEFBQUM7O0FBRUQseUJBQXlCLEFBQWlCLFdBQUUsQUFBeUI7UUFDL0QsQUFBSSxPQUFHLEFBQVMsWUFBRyxBQUFDLEFBQUMsQUFBekIsR0FBMEIsQUFBTSxBQUNoQztRQUFJLEFBQUssUUFBRyxBQUFTLGFBQUksQUFBQyxBQUFDLEFBRTNCLEFBQU0sQUFBQztZQUFDLEFBQUksQUFBQyxBQUFDLEFBQUMsQUFDYjtlQUNFLEFBQU07bUJBQUMsQUFBSyxBQUFDLEFBQ2Y7ZUFDRSxBQUFNO21CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDcEM7ZUFDRSxBQUFNO21CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDcEM7ZUFDRSxBQUFNLEFBQUM7b0JBQUMsQUFBSyxBQUFDLEFBQUMsQUFBQyxBQUNkO3FCQUFLLEFBQUMsQUFBRSxBQUFNOzJCQUFDLEFBQUssQUFBQyxBQUNyQjtxQkFBSyxBQUFDLEFBQUUsQUFBTTsyQkFBQyxBQUFJLEFBQUMsQUFDcEI7cUJBQUssQUFBQyxBQUFFLEFBQU07MkJBQUMsQUFBSSxBQUFDLEFBQ3BCO3FCQUFLLEFBQUMsQUFBRSxBQUFNOzJCQUFDLEFBQVMsQUFBQyxBQUMzQixBQUFDLEFBQ0g7O2VBQ0UsQUFBTTttQkFBQyxBQUFTLFVBQUMsQUFBUyxVQUFDLEFBQUssQUFBQyxBQUFDLEFBQ3BDLEFBQ0U7O2tCQUFNLEFBQVcsQUFBRSxBQUFDLEFBQ3hCLEFBQUMsQUFDSCxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3B0aW9uLFxuICBPcGFxdWUsXG4gIFJlY2FzdFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1FVEFEQVRBLCBPcCwgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IHVucmVhY2hhYmxlLCBkaWN0IH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAZ2xpbW1lci9kZWJ1Z1wiO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAZ2xpbW1lci9wcm9ncmFtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdDb25zdGFudHMge1xuICBnZXROdW1iZXIodmFsdWU6IG51bWJlcik6IG51bWJlcjtcbiAgZ2V0U3RyaW5nKHZhbHVlOiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldFN0cmluZ0FycmF5KHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXTtcbiAgZ2V0QXJyYXkodmFsdWU6IG51bWJlcik6IG51bWJlcltdO1xuICBnZXRTZXJpYWxpemFibGU8VD4oczogbnVtYmVyKTogVDtcbiAgcmVzb2x2ZUhhbmRsZTxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5pbnRlcmZhY2UgTGF6eURlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0T3RoZXI8VD4oczogbnVtYmVyKTogVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnU2xpY2UocHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICBpZiAoREVCVUcpIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlICovXG4gICAgbGV0IHsgY29uc3RhbnRzIH0gPSBwcm9ncmFtO1xuXG4gICAgKGNvbnNvbGUgYXMgYW55KS5ncm91cChgJWMke3N0YXJ0fToke2VuZH1gLCAnY29sb3I6ICM5OTknKTtcblxuICAgIGxldCBfc2l6ZSA9IDA7XG4gICAgZm9yIChsZXQgaT1zdGFydDsgaTxlbmQ7IGkgPSBpICsgX3NpemUpIHtcbiAgICAgIGxldCB7IHR5cGUsIG9wMSwgb3AyLCBvcDMsIHNpemUgfSA9IHByb2dyYW0ub3Bjb2RlKGkpO1xuICAgICAgbGV0IFtuYW1lLCBwYXJhbXNdID0gZGVidWcoaSwgY29uc3RhbnRzIGFzIFJlY2FzdDxDb21waWxlVGltZUNvbnN0YW50cywgRGVidWdDb25zdGFudHM+LCB0eXBlLCBvcDEsIG9wMiwgb3AzKTtcbiAgICAgIGNvbnNvbGUubG9nKGAke2l9LiAke2xvZ09wY29kZShuYW1lLCBwYXJhbXMpfWApO1xuICAgICAgX3NpemUgPSBzaXplO1xuICAgIH1cbiAgICBwcm9ncmFtLm9wY29kZSgtX3NpemUpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWNvbnNvbGUgKi9cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nT3Bjb2RlKHR5cGU6IHN0cmluZywgcGFyYW1zOiBPcHRpb248T2JqZWN0Pik6IHN0cmluZyB8IHZvaWQge1xuICBsZXQgb3V0ID0gdHlwZTtcblxuICBpZiAocGFyYW1zKSB7XG4gICAgbGV0IGFyZ3MgPSBPYmplY3Qua2V5cyhwYXJhbXMpLm1hcChwID0+IGAgJHtwfT0ke2pzb24ocGFyYW1zW3BdKX1gKS5qb2luKCcnKTtcbiAgICBvdXQgKz0gYXJncztcbiAgfVxuICByZXR1cm4gYCgke291dH0pYDtcbn1cblxuZnVuY3Rpb24ganNvbihwYXJhbTogT3BhcXVlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAnPGZ1bmN0aW9uPic7XG4gICAgfVxuXG4gICAgbGV0IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocGFyYW0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgcmV0dXJuICc8b2JqZWN0Pic7XG4gICAgfVxuXG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgbGV0IGRlYnVnID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIGlmICh0eXBlb2YgZGVidWcgPT09ICdvYmplY3QnICYmIGRlYnVnICE9PSBudWxsICYmIGRlYnVnLkdsaW1tZXJEZWJ1ZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGVidWcuR2xpbW1lckRlYnVnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKHBvczogbnVtYmVyLCBjOiBEZWJ1Z0NvbnN0YW50cywgb3A6IE9wLCAuLi5vcGVyYW5kczogbnVtYmVyW10pOiBbc3RyaW5nLCBvYmplY3RdIHtcbiAgbGV0IG1ldGFkYXRhID0gTUVUQURBVEFbb3BdO1xuXG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyB1bnJlYWNoYWJsZShgTWlzc2luZyBPcGNvZGUgTWV0YWRhdGEgZm9yICR7b3B9YCk7XG4gIH1cblxuICBsZXQgb3V0ID0gZGljdDxPcGFxdWU+KCk7XG5cbiAgbWV0YWRhdGEub3BzLmZvckVhY2goKG9wZXJhbmQsIGluZGV4KSA9PiB7XG4gICAgbGV0IG9wID0gb3BlcmFuZHNbaW5kZXhdO1xuXG4gICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBwb3MgKyBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpMzInOlxuICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIGNhc2UgJ2Jsb2NrJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoYW5kbGUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMucmVzb2x2ZUhhbmRsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFN0cmluZyhvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uLXN0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3AgPyBjLmdldFN0cmluZyhvcCkgOiBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ci1hcnJheSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmdBcnJheShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0QXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Jvb2wnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9ICEhb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJpbWl0aXZlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBkZWNvZGVQcmltaXRpdmUob3AsIGMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlZ2lzdGVyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBSZWdpc3RlcltvcF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VyaWFsaXphYmxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFNlcmlhbGl6YWJsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGF6eS1jb25zdGFudCc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gKGMgYXMgUmVjYXN0PERlYnVnQ29uc3RhbnRzLCBMYXp5RGVidWdDb25zdGFudHM+KS5nZXRPdGhlcihvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIFttZXRhZGF0YS5uYW1lLCBvdXRdO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVQcmltaXRpdmUocHJpbWl0aXZlOiBudW1iZXIsIGNvbnN0YW50czogRGVidWdDb25zdGFudHMpOiBQcmltaXRpdmUge1xuICBsZXQgZmxhZyA9IHByaW1pdGl2ZSAmIDc7IC8vIDExMVxuICBsZXQgdmFsdWUgPSBwcmltaXRpdmUgPj4gMztcblxuICBzd2l0Y2ggKGZsYWcpIHtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuTlVNQkVSOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5GTE9BVDpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuU1RSSU5HOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXRTdHJpbmcodmFsdWUpO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5CT09MRUFOX09SX1ZPSUQ6XG4gICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlIDE6IHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIDI6IHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDM6IHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5FR0FUSVZFOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXROdW1iZXIodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyB1bnJlYWNoYWJsZSgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU9BLEFBQU8sQUFBRSxBQUFRLEFBQU0sQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDLEFBQ3JELEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQUksQUFBRSxBQUFNLEFBQWUsQUFBQyxBQWlCbEQsQUFBTTs7b0JBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDO2VBRVIsQUFBSTtBQUZLLEFBQUMsQUFDVixBQUErQjtZQUN6QixBQUFTLEFBQUUsWUFBRyxBQUFPLEFBQUMsQUFFM0IsQUFBZTs7Z0JBQUMsQUFBSyxBQUFDLGFBQUssQUFBSyxjQUFJLEFBQUcsQUFBRSxLQUFFLEFBQWEsQUFBQyxBQUFDLEFBRTNEO1lBQUksQUFBSyxRQUFHLEFBQUMsQUFBQyxBQUNkLEFBQUcsQUFBQzthQUFDLElBQUksQUFBQyxJQUFDLEFBQUssT0FBRSxBQUFDLElBQUMsQUFBRyxLQUFFLEFBQUMsSUFBRyxBQUFDLElBQUcsQUFBSyxPQUFFLEFBQUMsQUFDdkMsQUFBSTtrQ0FBZ0MsQUFBTyxRQUFDLEFBQU0sT0FBQyxBQUFDLEFBQUMsQUFBQyxBQUN0RCxBQUFJO2dCQURFLEFBQUk7Z0JBQUUsQUFBRztnQkFBRSxBQUFHO2dCQUFFLEFBQUc7Z0JBQUUsQUFBSSxBQUFFOzt5QkFDWixBQUFLLE1BQUMsQUFBeUQsV0FBRSxBQUFJLE1BQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFHLEFBQUMsQUFBQyxBQUMzRyxBQUFPO2dCQURGLEFBQUk7Z0JBQUUsQUFBTSxBQUFDOztvQkFDVixBQUFHLEFBQUMsSUFBRyxBQUFDLFdBQUssQUFBUyxVQUFDLEFBQUksTUFBRSxBQUFNLEFBQUMsQUFBRSxBQUFDLEFBQUMsQUFDaEQsQUFBSztvQkFBRyxBQUFJLEFBQUMsQUFDZixBQUFDLEFBQ0QsQUFBTzs7Z0JBQUMsQUFBTSxPQUFDLENBQUMsQUFBSyxBQUFDLEFBQUMsQUFDdkIsQUFBTztnQkFBQyxBQUFRLEFBQUUsQUFBQyxBQUNuQixBQUE4QixBQUNoQyxBQUFDLEFBQ0g7QUFBQzs7QUFFRCxBQUFNO21CQUFvQixBQUFZLE1BQUUsQUFBc0IsUUFDNUQ7UUFBSSxBQUFHLE1BQUcsQUFBSSxBQUFDLEFBRWYsQUFBRSxBQUFDO1FBQUMsQUFBTSxBQUFDLFFBQUMsQUFBQyxBQUNYO1lBQUksQUFBSSxjQUFVLEFBQUksS0FBQyxBQUFNLEFBQUMsUUFBQyxBQUFHLGlCQUFDLEFBQUMsQUFBSTt5QkFBSSxBQUFDLFVBQUksQUFBSSxLQUFDLEFBQU0sT0FBQyxBQUFDLEFBQUMsQUFBQyxBQUFFLEFBQUM7QUFBeEQsQUFBTSxXQUFtRCxBQUFJLEtBQUMsQUFBRSxBQUFDLEFBQUMsQUFDN0UsQUFBRztlQUFJLEFBQUksQUFBQyxBQUNkLEFBQUMsQUFDRCxBQUFNLEFBQUM7O2lCQUFJLEFBQUcsQUFBRyxBQUFDLEFBQ3BCLEFBQUM7O0FBRUQsY0FBYyxBQUFhLE9BQ3pCLEFBQUUsQUFBQyxBQUFDLEFBQUssQUFBQztlQUFDLEFBQUMsQUFDVixBQUFFLEFBQUM7WUFBQyxPQUFPLEFBQUssVUFBSyxBQUFVLEFBQUMsWUFBQyxBQUFDLEFBQ2hDLEFBQU07bUJBQUMsQUFBWSxBQUFDLEFBQ3RCLEFBQUMsQUFFRDs7WUFBSSxBQUFNLEFBQUMsQUFDWDtZQUFJLEFBQUMsQUFDSCxBQUFNO3FCQUFHLEFBQUksS0FBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDakMsQUFBQztVQUFDLEFBQUssT0FBQyxBQUFDLEFBQUMsR0FBQyxBQUFDLEFBQ1YsQUFBTTttQkFBQyxBQUFVLEFBQUMsQUFDcEIsQUFBQyxBQUVELEFBQUUsQUFBQzs7WUFBQyxBQUFNLFdBQUssQUFBUyxBQUFDLFdBQUMsQUFBQyxBQUN6QixBQUFNO21CQUFDLEFBQVcsQUFBQyxBQUNyQixBQUFDLEFBRUQ7O1lBQUksQUFBSyxVQUFHLEFBQUksS0FBQyxBQUFLLE1BQUMsQUFBTSxBQUFDLEFBQUMsQUFDL0IsQUFBRSxBQUFDO1lBQUMsT0FBTyxBQUFLLFlBQUssQUFBUSxZQUFJLEFBQUssWUFBSyxBQUFJLFFBQUksQUFBSyxRQUFDLEFBQVksaUJBQUssQUFBUyxBQUFDLFdBQUMsQUFBQyxBQUNwRixBQUFNO21CQUFDLEFBQUssUUFBQyxBQUFZLEFBQUMsQUFDNUIsQUFBQyxBQUVELEFBQU07O2VBQUMsQUFBTSxBQUFDLEFBQ2hCLEFBQUMsQUFDSCxBQUFDOztBQUVELEFBQU07ZUFBZ0IsQUFBaUIsR0FBRSxBQUFNLEFBQUUsSUFDL0M7Z0hBRGtELEFBQWtCOzs7O1FBQ2hFLEFBQVEsQUFBRyxBQUFRLEFBQUMsQUFBRSxBQUFDLEFBQUMsV0FFNUIsQUFBRSxBQUFDO1FBQUMsQ0FBQyxBQUFRLEFBQUMsVUFBQyxBQUFDLEFBQ2Q7Y0FBTSxBQUFXLEFBQUMsd0RBQStCLEFBQUUsQUFBRSxBQUFDLEFBQUMsQUFDekQsQUFBQyxBQUVEOztRQUFJLEFBQUcsTUFBRyxBQUFJLEFBQVUsQUFBQyxBQUV6QixBQUFRO2FBQUMsQUFBRyxJQUFDLEFBQU8sUUFBQyxVQUFDLEFBQU8sU0FBRSxBQUFLLE9BQ2xDO1lBQUksQUFBRSxLQUFHLEFBQVEsU0FBQyxBQUFLLEFBQUMsQUFBQyxBQUV6QixBQUFNLEFBQUM7Z0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxBQUFDLEFBQUMsQUFDckI7aUJBQUssQUFBSyxBQUFDLEFBQ1g7aUJBQUssQUFBUSxBQUFDLEFBQ2Q7aUJBQUssQUFBTyxBQUNWLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUUsQUFBQyxBQUN2QixBQUFLLEFBQUMsQUFDUjs7aUJBQUssQUFBUSxBQUNYLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFhLGNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDeEMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQUssQUFDUixBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxBQUFDLEVBQUMsQUFBUyxVQUFDLEFBQUUsQUFBQyxBQUFDLEFBQ3BDLEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFZLEFBQ2YsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBRSxLQUFHLEFBQUMsRUFBQyxBQUFTLFVBQUMsQUFBRSxBQUFDLE1BQUcsQUFBSSxBQUFDLEFBQ2hELEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQWMsZUFBQyxBQUFFLEFBQUMsQUFBQyxBQUN6QyxBQUFLLEFBQUMsQUFDUjs7aUJBQUssQUFBTyxBQUNWLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFRLFNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDbkMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQU0sQUFDVCxBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxDQUFDLENBQUMsQUFBRSxBQUFDLEFBQ3pCLEFBQUssQUFBQyxBQUNSOztpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBZSxnQkFBQyxBQUFFLElBQUUsQUFBQyxBQUFDLEFBQUMsQUFDM0MsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQVUsQUFDYixBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxBQUFRLGFBQUMsQUFBRSxBQUFDLEFBQUMsQUFDakMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQWMsQUFDakIsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQWUsZ0JBQUMsQUFBRSxBQUFDLEFBQUMsQUFDMUMsQUFBSyxBQUFDLEFBQ1I7O2lCQUFLLEFBQWUsQUFDbEIsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUksQUFBZ0QsRUFBQyxBQUFRLFNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDbkYsQUFBSyxBQUFDLEFBQ1YsQUFBQyxBQUNILEFBQUMsQUFBQyxBQUFDO0FBRUgsQUFBTTs7O1dBQUMsQ0FBQyxBQUFRLFNBQUMsQUFBSSxNQUFFLEFBQUcsQUFBQyxBQUFDLEFBQzlCLEFBQUM7O0FBRUQseUJBQXlCLEFBQWlCLFdBQUUsQUFBeUI7UUFDL0QsQUFBSSxPQUFHLEFBQVMsWUFBRyxBQUFDLEFBQUMsQUFBekIsR0FBMEIsQUFBTSxBQUNoQztRQUFJLEFBQUssUUFBRyxBQUFTLGFBQUksQUFBQyxBQUFDLEFBRTNCLEFBQU0sQUFBQztZQUFDLEFBQUksQUFBQyxBQUFDLEFBQUMsQUFDYjtlQUNFLEFBQU07bUJBQUMsQUFBSyxBQUFDLEFBQ2Y7ZUFDRSxBQUFNO21CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDcEM7ZUFDRSxBQUFNO21CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDcEM7ZUFDRSxBQUFNLEFBQUM7b0JBQUMsQUFBSyxBQUFDLEFBQUMsQUFBQyxBQUNkO3FCQUFLLEFBQUMsQUFBRSxBQUFNOzJCQUFDLEFBQUssQUFBQyxBQUNyQjtxQkFBSyxBQUFDLEFBQUUsQUFBTTsyQkFBQyxBQUFJLEFBQUMsQUFDcEI7cUJBQUssQUFBQyxBQUFFLEFBQU07MkJBQUMsQUFBSSxBQUFDLEFBQ3BCO3FCQUFLLEFBQUMsQUFBRSxBQUFNOzJCQUFDLEFBQVMsQUFBQyxBQUMzQixBQUFDLEFBQ0g7O2VBQ0UsQUFBTTttQkFBQyxBQUFTLFVBQUMsQUFBUyxVQUFDLEFBQUssQUFBQyxBQUFDLEFBQ3BDLEFBQ0U7O2tCQUFNLEFBQVcsQUFBRSxBQUFDLEFBQ3hCLEFBQUMsQUFDSCxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3B0aW9uLFxuICBPcGFxdWUsXG4gIFJlY2FzdFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1FVEFEQVRBLCBPcCwgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IHVucmVhY2hhYmxlLCBkaWN0IH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAZ2xpbW1lci9kZWJ1Z1wiO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAZ2xpbW1lci9wcm9ncmFtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdDb25zdGFudHMge1xuICBnZXROdW1iZXIodmFsdWU6IG51bWJlcik6IG51bWJlcjtcbiAgZ2V0U3RyaW5nKHZhbHVlOiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldFN0cmluZ0FycmF5KHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXTtcbiAgZ2V0QXJyYXkodmFsdWU6IG51bWJlcik6IG51bWJlcltdO1xuICBnZXRTZXJpYWxpemFibGU8VD4oczogbnVtYmVyKTogVDtcbiAgcmVzb2x2ZUhhbmRsZTxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5pbnRlcmZhY2UgTGF6eURlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0T3RoZXI8VD4oczogbnVtYmVyKTogVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnU2xpY2UocHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICBpZiAoREVCVUcpIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlICovXG4gICAgbGV0IHsgY29uc3RhbnRzIH0gPSBwcm9ncmFtO1xuXG4gICAgKGNvbnNvbGUgYXMgYW55KS5ncm91cChgJWMke3N0YXJ0fToke2VuZH1gLCAnY29sb3I6ICM5OTknKTtcblxuICAgIGxldCBfc2l6ZSA9IDA7XG4gICAgZm9yIChsZXQgaT1zdGFydDsgaTxlbmQ7IGkgPSBpICsgX3NpemUpIHtcbiAgICAgIGxldCB7IHR5cGUsIG9wMSwgb3AyLCBvcDMsIHNpemUgfSA9IHByb2dyYW0ub3Bjb2RlKGkpO1xuICAgICAgbGV0IFtuYW1lLCBwYXJhbXNdID0gZGVidWcoY29uc3RhbnRzIGFzIFJlY2FzdDxDb21waWxlVGltZUNvbnN0YW50cywgRGVidWdDb25zdGFudHM+LCB0eXBlLCBvcDEsIG9wMiwgb3AzKTtcbiAgICAgIGNvbnNvbGUubG9nKGAke2l9LiAke2xvZ09wY29kZShuYW1lLCBwYXJhbXMpfWApO1xuICAgICAgX3NpemUgPSBzaXplO1xuICAgIH1cbiAgICBwcm9ncmFtLm9wY29kZSgtX3NpemUpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWNvbnNvbGUgKi9cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nT3Bjb2RlKHR5cGU6IHN0cmluZywgcGFyYW1zOiBPcHRpb248T2JqZWN0Pik6IHN0cmluZyB8IHZvaWQge1xuICBsZXQgb3V0ID0gdHlwZTtcblxuICBpZiAocGFyYW1zKSB7XG4gICAgbGV0IGFyZ3MgPSBPYmplY3Qua2V5cyhwYXJhbXMpLm1hcChwID0+IGAgJHtwfT0ke2pzb24ocGFyYW1zW3BdKX1gKS5qb2luKCcnKTtcbiAgICBvdXQgKz0gYXJncztcbiAgfVxuICByZXR1cm4gYCgke291dH0pYDtcbn1cblxuZnVuY3Rpb24ganNvbihwYXJhbTogT3BhcXVlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAnPGZ1bmN0aW9uPic7XG4gICAgfVxuXG4gICAgbGV0IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocGFyYW0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgcmV0dXJuICc8b2JqZWN0Pic7XG4gICAgfVxuXG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgbGV0IGRlYnVnID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIGlmICh0eXBlb2YgZGVidWcgPT09ICdvYmplY3QnICYmIGRlYnVnICE9PSBudWxsICYmIGRlYnVnLkdsaW1tZXJEZWJ1ZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGVidWcuR2xpbW1lckRlYnVnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKGM6IERlYnVnQ29uc3RhbnRzLCBvcDogT3AsIC4uLm9wZXJhbmRzOiBudW1iZXJbXSk6IFtzdHJpbmcsIG9iamVjdF0ge1xuICBsZXQgbWV0YWRhdGEgPSBNRVRBREFUQVtvcF07XG5cbiAgaWYgKCFtZXRhZGF0YSkge1xuICAgIHRocm93IHVucmVhY2hhYmxlKGBNaXNzaW5nIE9wY29kZSBNZXRhZGF0YSBmb3IgJHtvcH1gKTtcbiAgfVxuXG4gIGxldCBvdXQgPSBkaWN0PE9wYXF1ZT4oKTtcblxuICBtZXRhZGF0YS5vcHMuZm9yRWFjaCgob3BlcmFuZCwgaW5kZXgpID0+IHtcbiAgICBsZXQgb3AgPSBvcGVyYW5kc1tpbmRleF07XG5cbiAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgY2FzZSAnaTMyJzpcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICBjYXNlICdibG9jayc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGFuZGxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLnJlc29sdmVIYW5kbGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmcob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbi1zdHInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IG9wID8gYy5nZXRTdHJpbmcob3ApIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHItYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U3RyaW5nQXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldEFycmF5KG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib29sJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSAhIW9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ByaW1pdGl2ZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gZGVjb2RlUHJpbWl0aXZlKG9wLCBjKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWdpc3Rlcic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gUmVnaXN0ZXJbb3BdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlcmlhbGl6YWJsZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTZXJpYWxpemFibGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xhenktY29uc3RhbnQnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IChjIGFzIFJlY2FzdDxEZWJ1Z0NvbnN0YW50cywgTGF6eURlYnVnQ29uc3RhbnRzPikuZ2V0T3RoZXIob3ApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBbbWV0YWRhdGEubmFtZSwgb3V0XTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlUHJpbWl0aXZlKHByaW1pdGl2ZTogbnVtYmVyLCBjb25zdGFudHM6IERlYnVnQ29uc3RhbnRzKTogUHJpbWl0aXZlIHtcbiAgbGV0IGZsYWcgPSBwcmltaXRpdmUgJiA3OyAvLyAxMTFcbiAgbGV0IHZhbHVlID0gcHJpbWl0aXZlID4+IDM7XG5cbiAgc3dpdGNoIChmbGFnKSB7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5VTUJFUjpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuRkxPQVQ6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLlNUUklORzpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0U3RyaW5nKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuQk9PTEVBTl9PUl9WT0lEOlxuICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBmYWxzZTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY2FzZSAyOiByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSAzOiByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5ORUdBVElWRTpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgdW5yZWFjaGFibGUoKTtcbiAgfVxufVxuIl19

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

var PLACEHOLDER_HANDLE = exports.PLACEHOLDER_HANDLE = -1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW1CTyxJQUFNLEFBQWtCLGtEQUFHLENBQUMsQUFBQyxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3B0aW9uLFxuICBDb21waWxhYmxlQmxvY2ssXG4gIENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvcmUgfSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBNYWNyb3MgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJSZXNvbHZlcjxMb2NhdG9yPiB7XG4gIGdldENhcGFiaWxpdGllcyhsb2NhdG9yOiBMb2NhdG9yKTogQ29tcG9uZW50Q2FwYWJpbGl0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhZ2VyQ29tcGlsYXRpb25PcHRpb25zPExvY2F0b3IsIFIgZXh0ZW5kcyBFYWdlclJlc29sdmVyPExvY2F0b3I+PiB7XG4gIHJlc29sdmVyOiBSO1xuICBwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW07XG4gIG1hY3JvczogTWFjcm9zO1xufVxuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHVuZGVmaW5lZCB8IG51bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRBcmdzID0gW0NvcmUuUGFyYW1zLCBDb3JlLkhhc2gsIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+LCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QnVpbGRlciB7XG4gIHN0YXRpYyhkZWZpbml0aW9uOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpOiB2b2lkO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9CTyxJQUFNLEFBQWtCLGtEQUFHLENBQUMsQUFBQyxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3BhcXVlLFxuICBPcHRpb24sXG4gIENvbXBpbGFibGVCbG9jayxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzLFxuICBDb21waWxlVGltZVByb2dyYW0sXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZSwgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2sgfSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBNYWNyb3MgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJSZXNvbHZlcjxMb2NhdG9yPiB7XG4gIGdldENhcGFiaWxpdGllcyhsb2NhdG9yOiBMb2NhdG9yKTogQ29tcG9uZW50Q2FwYWJpbGl0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhZ2VyQ29tcGlsYXRpb25PcHRpb25zPFRlbXBsYXRlTWV0YSwgUiBleHRlbmRzIEVhZ2VyUmVzb2x2ZXI8VGVtcGxhdGVNZXRhPj4ge1xuICByZXNvbHZlcjogUjtcbiAgcHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtO1xuICBtYWNyb3M6IE1hY3Jvcztcbn1cblxuZXhwb3J0IGNvbnN0IFBMQUNFSE9MREVSX0hBTkRMRSA9IC0xO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmUgPSB1bmRlZmluZWQgfCBudWxsIHwgYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50QXJncyA9IFtDb3JlLlBhcmFtcywgQ29yZS5IYXNoLCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPiwgT3B0aW9uPENvbXBpbGFibGVCbG9jaz5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEJ1aWxkZXIge1xuICBzdGF0aWMoZGVmaW5pdGlvbjogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRMYXlvdXQ8VGVtcGxhdGVNZXRhID0gT3BhcXVlPiB7XG4gIGlkPzogT3B0aW9uPHN0cmluZz47XG4gIGJsb2NrOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaztcbiAgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcbn1cbiJdfQ==

@@ -7,2 +7,3 @@ 'use strict';

exports.default = templateFactory;
exports.compilable = compilable;

@@ -13,4 +14,8 @@ var _util = require('@glimmer/util');

var _compilableTemplate2 = _interopRequireDefault(_compilableTemplate);
var _wrappedComponent = require('./wrapped-component');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) {

@@ -30,3 +35,3 @@ if (!(instance instanceof Constructor)) {

var id = templateId || 'client-' + clientId++;
var create = function create(compiler, envMeta) {
var create = function create(options, envMeta) {
var newMeta = envMeta ? (0, _util.assign)({}, envMeta, meta) : meta;

@@ -36,3 +41,3 @@ if (!parsedBlock) {

}
return new TemplateImpl(compiler, { id: id, block: parsedBlock, referrer: newMeta });
return new TemplateImpl(options, { id: id, block: parsedBlock, referrer: newMeta });
};

@@ -43,6 +48,6 @@ return { id: id, meta: meta, create: create };

var TemplateImpl = function () {
function TemplateImpl(compiler, parsedLayout) {
function TemplateImpl(options, parsedLayout) {
_classCallCheck(this, TemplateImpl);
this.compiler = compiler;
this.options = options;
this.parsedLayout = parsedLayout;

@@ -56,2 +61,3 @@ this.layout = null;

this.hasEval = block.hasEval;
this.statements = block.statements;
this.referrer = parsedLayout.referrer;

@@ -63,3 +69,3 @@ this.id = parsedLayout.id || 'client-' + clientId++;

if (this.layout) return this.layout;
return this.layout = new _compilableTemplate.CompilableProgram(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
return this.layout = compilable(this.parsedLayout, this.options, false);
};

@@ -69,3 +75,3 @@

if (this.partial) return this.partial;
return this.layout = new _compilableTemplate.CompilableProgram(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: true }));
return this.partial = compilable(this.parsedLayout, this.options, true);
};

@@ -75,3 +81,7 @@

if (this.wrappedLayout) return this.wrappedLayout;
return this.wrappedLayout = new _wrappedComponent.WrappedBuilder(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
var compileOptions = (0, _util.assign)({}, this.options, {
asPartial: false,
referrer: this.referrer
});
return this.wrappedLayout = new _wrappedComponent.WrappedBuilder(compileOptions, this.parsedLayout);
};

@@ -81,2 +91,12 @@

}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxBQUFPLEFBQUUsQUFBTSxBQUFFLEFBQU0sQUFBZSxBQUFDOztBQUt2QyxBQUFPLEFBQUUsQUFBaUIsQUFBSSxBQUF5QixBQUFFLEFBQU0sQUFBdUIsQUFBQzs7QUFDdkYsQUFBTyxBQUFFLEFBQWMsQUFBRSxBQUFNLEFBQXFCLEFBQUM7Ozs7Ozs7O0FBZ0NyRCxJQUFJLEFBQVEsV0FBRyxBQUFDLEFBQUMsQUFTakIsQUFBTSxBQUFDLEFBQU87U0FBMEIsc0JBQ3RDO1FBRDRDLEFBQVUsa0JBQWQsQUFBRTtRQUFjLEFBQUk7UUFBRSxBQUFLLEFBQXdDOztRQUN2RyxBQUFvQyxBQUFDLEFBQ3pDO1FBQUksQUFBRSxLQUFHLEFBQVUsQUFBSSwwQkFBVSxBQUFRLEFBQUUsQUFBRSxBQUFDLEFBQzlDO1FBQUksQUFBTSxTQUFHLGdCQUFDLEFBQThCLFVBQUUsQUFBWSxTQUN4RDtZQUFJLEFBQU8sVUFBRyxBQUFPLFVBQUcsQUFBTSxrQkFBQyxBQUFFLElBQUUsQUFBTyxTQUFFLEFBQUksQUFBQyxRQUFHLEFBQUksQUFBQyxBQUN6RCxBQUFFLEFBQUM7WUFBQyxDQUFDLEFBQVcsQUFBQyxhQUFDLEFBQUMsQUFDakIsQUFBVzswQkFBRyxBQUFJLEtBQUMsQUFBSyxNQUFDLEFBQUssQUFBQyxBQUFDLEFBQ2xDLEFBQUMsQUFDRCxBQUFNOztlQUFDLElBQUksQUFBWSxhQUFDLEFBQVEsVUFBRSxFQUFFLEFBQUUsUUFBRSxBQUFLLE9BQUUsQUFBVyxhQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUcsQUFBQyxBQUFDLEFBQ3BGLEFBQUMsQUFBQyxBQUNGLEFBQU07O1dBQUMsRUFBRSxBQUFFLFFBQUUsQUFBSSxZQUFFLEFBQU0sQUFBRSxBQUFDLEFBQzlCLEFBQUMsUUFFRDs7O0lBU0U7MEJBQW9CLEFBQStCLFVBQVUsQUFBMkUsY0FBcEg7OzthQUFRLFdBQVIsQUFBUSxBQUF1QixBQUFVO2FBQVksZUFSakUsQUFRcUQsQUFBWSxBQUErRDthQVIxSCxTQUE4QixBQUFJLEFBQUMsQUFDekM7YUFBTyxVQUE4QixBQUFJLEFBQUMsQUFDMUM7YUFBYSxnQkFBOEIsQUFBSSxBQUFDLEFBT3RELEFBQUk7WUFBRSxBQUFLLEFBQUUsUUFBRyxBQUFZLEFBQUMsQUFDN0IsQUFBSTs7YUFBQyxBQUFPLFVBQUcsQUFBSyxNQUFDLEFBQU8sQUFBQyxBQUM3QixBQUFJO2FBQUMsQUFBTyxVQUFHLEFBQUssTUFBQyxBQUFPLEFBQUMsQUFDN0IsQUFBSTthQUFDLEFBQVEsV0FBRyxBQUFZLGFBQUMsQUFBUSxBQUFDLEFBQ3RDLEFBQUk7YUFBQyxBQUFFLEtBQUcsQUFBWSxhQUFDLEFBQUUsQUFBSSxrQkFBVSxBQUFRLEFBQUUsQUFBRSxBQUFDLEFBQ3RELEFBQUMsQUFFRCxBQUFROzs7MERBQ04sQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQU0sQUFBQyxRQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBQ3BDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxTQUFHLEFBQUksQUFBeUIsMENBQUMsQUFBSSxLQUFDLEFBQVEsNEJBQU8sQUFBSSxLQUFDLEFBQVksZ0JBQUUsQUFBUyxXQUFFLEFBQUssQUFBRyxBQUFDLEFBQ2hILEFBQUMsQUFFRCxBQUFTOzs7NERBQ1AsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQU8sQUFBQyxTQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLEFBQ3RDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxTQUFHLEFBQUksQUFBeUIsMENBQUMsQUFBSSxLQUFDLEFBQVEsNEJBQU8sQUFBSSxLQUFDLEFBQVksZ0JBQUUsQUFBUyxXQUFFLEFBQUksQUFBRyxBQUFDLEFBQy9HLEFBQUMsQUFFRCxBQUFlOzs7d0VBQ2IsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQWEsQUFBQyxlQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBYSxBQUFDLEFBQ2xELEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBYSxnQkFBRyxBQUFJLEFBQWMscUNBQUMsQUFBSSxLQUFDLEFBQVEsNEJBQU8sQUFBSSxLQUFDLEFBQVksZ0JBQUUsQUFBUyxXQUFFLEFBQUssQUFBRyxBQUFDLEFBQzVHLEFBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBpbGFibGVQcm9ncmFtLCBUZW1wbGF0ZSwgT3BhcXVlLCBPcHRpb24sIExheW91dFdpdGhDb250ZXh0IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrXG59IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IENvbXBpbGFibGVQcm9ncmFtIGFzIENvbXBpbGFibGVQcm9ncmFtSW5zdGFuY2UgfSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tIFwiLi93cmFwcGVkLWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTGF6eUNvbXBpbGVyIH0gZnJvbSBcIkBnbGltbWVyL29wY29kZS1jb21waWxlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yPiB7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpZGVudGlmaWVyLCBpZiBwcmVjb21waWxlZCB3aWxsIGJlIHRoZSBpZCBvZiB0aGVcbiAgICogcHJlY29tcGlsZWQgdGVtcGxhdGUuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21waWxlIHRpbWUgbWV0YS5cbiAgICovXG4gIG1ldGE6IExvY2F0b3I7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHNwZWNpZmljIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW52aXJvbm1lbnR9IGVudiBnbGltbWVyIEVudmlyb25tZW50XG4gICAqL1xuICBjcmVhdGUoZW52OiBMYXp5Q29tcGlsZXI8TG9jYXRvcj4pOiBUZW1wbGF0ZTxMb2NhdG9yPjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHNwZWNpZmljIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW52aXJvbm1lbnR9IGVudiBnbGltbWVyIEVudmlyb25tZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhIGVudmlyb25tZW50IHNwZWNpZmljIGluamVjdGlvbnMgaW50byBtZXRhXG4gICAqL1xuICBjcmVhdGU8VT4oZW52OiBMYXp5Q29tcGlsZXI8TG9jYXRvcj4sIG1ldGE6IFUpOiBUZW1wbGF0ZTxMb2NhdG9yICYgVT47XG59XG5cbmxldCBjbGllbnRJZCA9IDA7XG5cbi8qKlxuICogV3JhcHMgYSB0ZW1wbGF0ZSBqcyBpbiBhIHRlbXBsYXRlIG1vZHVsZSB0byBjaGFuZ2UgaXQgaW50byBhIGZhY3RvcnlcbiAqIHRoYXQgaGFuZGxlcyBsYXp5IHBhcnNpbmcgdGhlIHRlbXBsYXRlIGFuZCB0byBjcmVhdGUgcGVyIGVudiBzaW5nbGV0b25zXG4gKiBvZiB0aGUgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8TG9jYXRvcj4pOiBUZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvcj47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvciwgVT4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPExvY2F0b3I+KTogVGVtcGxhdGVGYWN0b3J5PExvY2F0b3IgJiBVPjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRlbXBsYXRlRmFjdG9yeSh7IGlkOiB0ZW1wbGF0ZUlkLCBtZXRhLCBibG9jayB9OiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPGFueT4pOiBUZW1wbGF0ZUZhY3Rvcnk8e30+IHtcbiAgbGV0IHBhcnNlZEJsb2NrOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaztcbiAgbGV0IGlkID0gdGVtcGxhdGVJZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICBsZXQgY3JlYXRlID0gKGNvbXBpbGVyOiBMYXp5Q29tcGlsZXI8T3BhcXVlPiwgZW52TWV0YT86IHt9KSA9PiB7XG4gICAgbGV0IG5ld01ldGEgPSBlbnZNZXRhID8gYXNzaWduKHt9LCBlbnZNZXRhLCBtZXRhKSA6IG1ldGE7XG4gICAgaWYgKCFwYXJzZWRCbG9jaykge1xuICAgICAgcGFyc2VkQmxvY2sgPSBKU09OLnBhcnNlKGJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUltcGwoY29tcGlsZXIsIHsgaWQsIGJsb2NrOiBwYXJzZWRCbG9jaywgcmVmZXJyZXI6IG5ld01ldGEsIH0pO1xuICB9O1xuICByZXR1cm4geyBpZCwgbWV0YSwgY3JlYXRlIH07XG59XG5cbmNsYXNzIFRlbXBsYXRlSW1wbDxMb2NhdG9yID0gT3BhcXVlPiBpbXBsZW1lbnRzIFRlbXBsYXRlPExvY2F0b3I+IHtcbiAgcHJpdmF0ZSBsYXlvdXQ6IE9wdGlvbjxDb21waWxhYmxlUHJvZ3JhbT4gPSBudWxsO1xuICBwcml2YXRlIHBhcnRpYWw6IE9wdGlvbjxDb21waWxhYmxlUHJvZ3JhbT4gPSBudWxsO1xuICBwcml2YXRlIHdyYXBwZWRMYXlvdXQ6IE9wdGlvbjxDb21waWxhYmxlUHJvZ3JhbT4gPSBudWxsO1xuICBwdWJsaWMgc3ltYm9sczogc3RyaW5nW107XG4gIHB1YmxpYyBoYXNFdmFsOiBib29sZWFuO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlZmVycmVyOiBMb2NhdG9yO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IExhenlDb21waWxlcjxMb2NhdG9yPiwgcHJpdmF0ZSBwYXJzZWRMYXlvdXQ6IFBpY2s8TGF5b3V0V2l0aENvbnRleHQ8TG9jYXRvcj4sICdpZCcgfCAnYmxvY2snIHwgJ3JlZmVycmVyJz4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gcGFyc2VkTGF5b3V0O1xuICAgIHRoaXMuc3ltYm9scyA9IGJsb2NrLnN5bWJvbHM7XG4gICAgdGhpcy5oYXNFdmFsID0gYmxvY2suaGFzRXZhbDtcbiAgICB0aGlzLnJlZmVycmVyID0gcGFyc2VkTGF5b3V0LnJlZmVycmVyO1xuICAgIHRoaXMuaWQgPSBwYXJzZWRMYXlvdXQuaWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgfVxuXG4gIGFzTGF5b3V0KCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy5sYXlvdXQpIHJldHVybiB0aGlzLmxheW91dDtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQgPSBuZXcgQ29tcGlsYWJsZVByb2dyYW1JbnN0YW5jZSh0aGlzLmNvbXBpbGVyLCB7IC4uLnRoaXMucGFyc2VkTGF5b3V0LCBhc1BhcnRpYWw6IGZhbHNlIH0pO1xuICB9XG5cbiAgYXNQYXJ0aWFsKCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy5wYXJ0aWFsKSByZXR1cm4gdGhpcy5wYXJ0aWFsO1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9IG5ldyBDb21waWxhYmxlUHJvZ3JhbUluc3RhbmNlKHRoaXMuY29tcGlsZXIsIHsgLi4udGhpcy5wYXJzZWRMYXlvdXQsIGFzUGFydGlhbDogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzV3JhcHBlZExheW91dCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMud3JhcHBlZExheW91dCkgcmV0dXJuIHRoaXMud3JhcHBlZExheW91dDtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0ID0gbmV3IFdyYXBwZWRCdWlsZGVyKHRoaXMuY29tcGlsZXIsIHsgLi4udGhpcy5wYXJzZWRMYXlvdXQsIGFzUGFydGlhbDogZmFsc2UgfSk7XG4gIH1cbn1cbiJdfQ==
function compilable(layout, options, asPartial) {
var block = layout.block,
referrer = layout.referrer;
var hasEval = block.hasEval,
symbols = block.symbols;
var compileOptions = (0, _util.assign)({}, options, { asPartial: asPartial, referrer: referrer });
return new _compilableTemplate2.default(block.statements, layout, compileOptions, { referrer: referrer, hasEval: hasEval, symbols: symbols });
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsQUFBTyxBQUFFLEFBQU0sQUFBRSxBQUFNLEFBQWUsQUFBQzs7QUFNdkMsQUFBTyxBQUFrQixBQUFNLEFBQXVCLEFBQUM7Ozs7QUFFdkQsQUFBTyxBQUFFLEFBQWMsQUFBRSxBQUFNLEFBQXFCLEFBQUM7Ozs7Ozs7Ozs7QUFnQ3JELElBQUksQUFBUSxXQUFHLEFBQUMsQUFBQyxBQVNqQixBQUFNLEFBQUMsQUFBTztTQUEwQixzQkFDdEM7UUFENEMsQUFBVSxrQkFBZCxBQUFFO1FBQWMsQUFBSTtRQUFFLEFBQUssQUFBd0M7O1FBQ3ZHLEFBQW9DLEFBQUMsQUFDekM7UUFBSSxBQUFFLEtBQUcsQUFBVSxBQUFJLDBCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsQUFDOUM7UUFBSSxBQUFNLFNBQUcsZ0JBQUMsQUFBZ0MsU0FBRSxBQUFZLFNBQzFEO1lBQUksQUFBTyxVQUFHLEFBQU8sVUFBRyxBQUFNLGtCQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsQUFBSSxBQUFDLFFBQUcsQUFBSSxBQUFDLEFBQ3pELEFBQUUsQUFBQztZQUFDLENBQUMsQUFBVyxBQUFDLGFBQUMsQUFBQyxBQUNqQixBQUFXOzBCQUFHLEFBQUksS0FBQyxBQUFLLE1BQUMsQUFBSyxBQUFDLEFBQUMsQUFDbEMsQUFBQyxBQUNELEFBQU07O2VBQUMsSUFBSSxBQUFZLGFBQUMsQUFBTyxTQUFFLEVBQUUsQUFBRSxRQUFFLEFBQUssT0FBRSxBQUFXLGFBQUUsQUFBUSxVQUFFLEFBQU8sQUFBRSxBQUFDLEFBQUMsQUFDbEYsQUFBQyxBQUFDLEFBQ0YsQUFBTTs7V0FBQyxFQUFFLEFBQUUsUUFBRSxBQUFJLFlBQUUsQUFBTSxBQUFFLEFBQUMsQUFDOUIsQUFBQyxRQUVEOzs7SUFVRTswQkFBb0IsQUFBc0MsU0FBVSxBQUF3QyxjQUF4Rjs7O2FBQU8sVUFBUCxBQUFPLEFBQStCLEFBQVU7YUFBWSxlQVR4RSxBQVM0RCxBQUFZLEFBQTRCO2FBVDlGLFNBQThCLEFBQUksQUFBQyxBQUN6QzthQUFPLFVBQThCLEFBQUksQUFBQyxBQUMxQzthQUFhLGdCQUE4QixBQUFJLEFBQUMsQUFRdEQsQUFBSTtZQUFFLEFBQUssQUFBRSxRQUFHLEFBQVksQUFBQyxBQUM3QixBQUFJOzthQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDLEFBQzdCLEFBQUk7YUFBQyxBQUFPLFVBQUcsQUFBSyxNQUFDLEFBQU8sQUFBQyxBQUM3QixBQUFJO2FBQUMsQUFBVSxhQUFHLEFBQUssTUFBQyxBQUFVLEFBQUMsQUFDbkMsQUFBSTthQUFDLEFBQVEsV0FBRyxBQUFZLGFBQUMsQUFBUSxBQUFDLEFBQ3RDLEFBQUk7YUFBQyxBQUFFLEtBQUcsQUFBWSxhQUFDLEFBQUUsQUFBSSxrQkFBVSxBQUFRLEFBQUUsQUFBRSxBQUFDLEFBQ3RELEFBQUMsQUFFRCxBQUFROzs7MERBQ04sQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQU0sQUFBQyxRQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBQ3BDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxTQUFHLEFBQVUsV0FBQyxBQUFJLEtBQUMsQUFBWSxjQUFFLEFBQUksS0FBQyxBQUFPLFNBQUUsQUFBSyxBQUFDLEFBQUMsQUFDMUUsQUFBQyxBQUVELEFBQVM7Ozs0REFDUCxBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLFNBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFPLEFBQUMsQUFDdEMsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFPLFVBQUcsQUFBVSxXQUFDLEFBQUksS0FBQyxBQUFZLGNBQUUsQUFBSSxLQUFDLEFBQU8sU0FBRSxBQUFJLEFBQUMsQUFBQyxBQUMxRSxBQUFDLEFBRUQsQUFBZTs7O3dFQUNiLEFBQUUsQUFBQztZQUFDLEFBQUksS0FBQyxBQUFhLEFBQUMsZUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQWEsQUFBQyxBQUNsRDtZQUFJLEFBQWMsbUNBQXdDLEFBQUUsSUFBRSxBQUFJLEtBQUMsQUFBTzt1QkFDN0QsQUFBSyxBQUNoQixBQUFRO3NCQUFFLEFBQUksS0FGbUMsQUFBTSxBQUFtQixBQUUzRCxBQUFRLEFBQ3hCLEFBQUMsQUFBQyxBQUNILEFBQU0sQUFISixBQUFTOztlQUdKLEFBQUksS0FBQyxBQUFhLGdCQUFHLEFBQUksQUFBYyxxQ0FBQyxBQUFjLGdCQUFFLEFBQUksS0FBQyxBQUFZLEFBQUMsQUFBQyxBQUNwRixBQUFDLEFBQ0Y7Ozs7QUFFRCxBQUFNOztvQkFBbUMsQUFBa0MsUUFBRSxBQUFnQyxTQUFFLEFBQWtCLFdBQy9ILEFBQUk7UUFBRSxBQUFLLFFBQWUsQUFBTSxBQUFDLEFBQ2pDLEFBQUk7UUFEUyxBQUFRLEFBQUU7UUFDakIsQUFBTyxVQUFjLEFBQUssQUFBQyxBQUNqQztRQURlLEFBQU8sQUFBRTs7UUFDcEIsQUFBYyxpQkFBRyxBQUFNLGtCQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsRUFBRSxBQUFTLHNCQUFFLEFBQVEsQUFBRSxBQUFDLEFBQUMsQUFFbEUsQUFBTTtXQUFDLEFBQUksQUFBa0IsaUNBQUMsQUFBSyxNQUFDLEFBQVUsWUFBRSxBQUFNLFFBQUUsQUFBYyxnQkFBRSxFQUFFLEFBQVEsb0JBQUUsQUFBTyxrQkFBRSxBQUFPLEFBQUUsQUFBQyxBQUFDLEFBQzFHLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSwgVGVtcGxhdGUsIE9wYXF1ZSwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrLFxuICBTdGF0ZW1lbnRcbn0gZnJvbSAnQGdsaW1tZXIvd2lyZS1mb3JtYXQnO1xuaW1wb3J0IENvbXBpbGFibGVUZW1wbGF0ZSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUGFyc2VkTGF5b3V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFdyYXBwZWRCdWlsZGVyIH0gZnJvbSBcIi4vd3JhcHBlZC1jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbXBpbGVPcHRpb25zLCBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zeW50YXhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPiB7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpZGVudGlmaWVyLCBpZiBwcmVjb21waWxlZCB3aWxsIGJlIHRoZSBpZCBvZiB0aGVcbiAgICogcHJlY29tcGlsZWQgdGVtcGxhdGUuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21waWxlIHRpbWUgbWV0YS5cbiAgICovXG4gIG1ldGE6IFRlbXBsYXRlTWV0YTtcblxuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICovXG4gIGNyZWF0ZShlbnY6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+KTogVGVtcGxhdGU8VGVtcGxhdGVNZXRhPjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHNwZWNpZmljIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW52aXJvbm1lbnR9IGVudiBnbGltbWVyIEVudmlyb25tZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhIGVudmlyb25tZW50IHNwZWNpZmljIGluamVjdGlvbnMgaW50byBtZXRhXG4gICAqL1xuICBjcmVhdGU8VT4oZW52OiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgbWV0YTogVSk6IFRlbXBsYXRlPFRlbXBsYXRlTWV0YSAmIFU+O1xufVxuXG5sZXQgY2xpZW50SWQgPSAwO1xuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUganMgaW4gYSB0ZW1wbGF0ZSBtb2R1bGUgdG8gY2hhbmdlIGl0IGludG8gYSBmYWN0b3J5XG4gKiB0aGF0IGhhbmRsZXMgbGF6eSBwYXJzaW5nIHRoZSB0ZW1wbGF0ZSBhbmQgdG8gY3JlYXRlIHBlciBlbnYgc2luZ2xldG9uc1xuICogb2YgdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8VGVtcGxhdGVNZXRhPik6IFRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGE+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PFRlbXBsYXRlTWV0YSwgVT4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPFRlbXBsYXRlTWV0YT4pOiBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhICYgVT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3RvcnkoeyBpZDogdGVtcGxhdGVJZCwgbWV0YSwgYmxvY2sgfTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxhbnk+KTogVGVtcGxhdGVGYWN0b3J5PHt9PiB7XG4gIGxldCBwYXJzZWRCbG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2s7XG4gIGxldCBpZCA9IHRlbXBsYXRlSWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgbGV0IGNyZWF0ZSA9IChvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgZW52TWV0YT86IHt9KSA9PiB7XG4gICAgbGV0IG5ld01ldGEgPSBlbnZNZXRhID8gYXNzaWduKHt9LCBlbnZNZXRhLCBtZXRhKSA6IG1ldGE7XG4gICAgaWYgKCFwYXJzZWRCbG9jaykge1xuICAgICAgcGFyc2VkQmxvY2sgPSBKU09OLnBhcnNlKGJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUltcGwob3B0aW9ucywgeyBpZCwgYmxvY2s6IHBhcnNlZEJsb2NrLCByZWZlcnJlcjogbmV3TWV0YSB9KTtcbiAgfTtcbiAgcmV0dXJuIHsgaWQsIG1ldGEsIGNyZWF0ZSB9O1xufVxuXG5jbGFzcyBUZW1wbGF0ZUltcGw8VGVtcGxhdGVNZXRhID0gT3BhcXVlPiBpbXBsZW1lbnRzIFRlbXBsYXRlPFRlbXBsYXRlTWV0YT4ge1xuICBwcml2YXRlIGxheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgcGFydGlhbDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgd3JhcHBlZExheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXTtcbiAgcHVibGljIGhhc0V2YWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcbiAgcHJpdmF0ZSBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uczxUZW1wbGF0ZU1ldGE+LCBwcml2YXRlIHBhcnNlZExheW91dDogUGFyc2VkTGF5b3V0PFRlbXBsYXRlTWV0YT4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gcGFyc2VkTGF5b3V0O1xuICAgIHRoaXMuc3ltYm9scyA9IGJsb2NrLnN5bWJvbHM7XG4gICAgdGhpcy5oYXNFdmFsID0gYmxvY2suaGFzRXZhbDtcbiAgICB0aGlzLnN0YXRlbWVudHMgPSBibG9jay5zdGF0ZW1lbnRzO1xuICAgIHRoaXMucmVmZXJyZXIgPSBwYXJzZWRMYXlvdXQucmVmZXJyZXI7XG4gICAgdGhpcy5pZCA9IHBhcnNlZExheW91dC5pZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICB9XG5cbiAgYXNMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLmxheW91dCkgcmV0dXJuIHRoaXMubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9IGNvbXBpbGFibGUodGhpcy5wYXJzZWRMYXlvdXQsIHRoaXMub3B0aW9ucywgZmFsc2UpO1xuICB9XG5cbiAgYXNQYXJ0aWFsKCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy5wYXJ0aWFsKSByZXR1cm4gdGhpcy5wYXJ0aWFsO1xuICAgIHJldHVybiB0aGlzLnBhcnRpYWwgPSBjb21waWxhYmxlKHRoaXMucGFyc2VkTGF5b3V0LCB0aGlzLm9wdGlvbnMsIHRydWUpO1xuICB9XG5cbiAgYXNXcmFwcGVkTGF5b3V0KCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy53cmFwcGVkTGF5b3V0KSByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0O1xuICAgIGxldCBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiA9IGFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBhc1BhcnRpYWw6IGZhbHNlLFxuICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXJcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0ID0gbmV3IFdyYXBwZWRCdWlsZGVyKGNvbXBpbGVPcHRpb25zLCB0aGlzLnBhcnNlZExheW91dCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGFibGU8VGVtcGxhdGVNZXRhPihsYXlvdXQ6IFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGE+LCBvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgYXNQYXJ0aWFsOiBib29sZWFuKSB7XG4gIGxldCB7IGJsb2NrLCByZWZlcnJlciB9ID0gbGF5b3V0O1xuICBsZXQgeyBoYXNFdmFsLCBzeW1ib2xzIH0gPSBibG9jaztcbiAgbGV0IGNvbXBpbGVPcHRpb25zID0gYXNzaWduKHt9LCBvcHRpb25zLCB7IGFzUGFydGlhbCwgcmVmZXJyZXIgfSk7XG5cbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGUoYmxvY2suc3RhdGVtZW50cywgbGF5b3V0LCBjb21waWxlT3B0aW9ucywgeyByZWZlcnJlciwgaGFzRXZhbCwgc3ltYm9scyB9KTtcbn1cbiJdfQ==

@@ -10,6 +10,8 @@ 'use strict';

var _compiler = require('./compiler');
var _compilableTemplate = require('./compilable-template');
var _compilableTemplate2 = _interopRequireDefault(_compilableTemplate);
var _debug = require('./debug');
var _syntax = require('./syntax');

@@ -19,2 +21,4 @@

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) {

@@ -27,6 +31,6 @@ if (!(instance instanceof Constructor)) {

var WrappedBuilder = exports.WrappedBuilder = function () {
function WrappedBuilder(compiler, layout) {
function WrappedBuilder(options, layout) {
_classCallCheck(this, WrappedBuilder);
this.compiler = compiler;
this.options = options;
this.layout = layout;

@@ -69,6 +73,12 @@ var block = layout.block;

// Exit
var compiler = this.compiler,
layout = this.layout;
var options = this.options,
layout = this.layout,
referrer = this.referrer;
var program = options.program,
resolver = options.resolver,
macros = options.macros,
asPartial = options.asPartial;
var Builder = options.Builder;
var b = compiler.builderFor(layout);
var b = new Builder(program, resolver, referrer, macros, layout, asPartial);
b.startLabels();

@@ -87,3 +97,3 @@ b.fetch(_vm.Register.s1);

b.label('BODY');
b.invokeStaticBlock(blockFor(layout, compiler));
b.invokeStaticBlock(blockFor(layout, this.options));
b.fetch(_vm.Register.s1);

@@ -95,5 +105,10 @@ b.jumpUnless('END');

b.stopLabels();
var handle = b.commit();
var handle = b.commit(options.program.heap, layout.block.symbols.length);
if (false) {
(0, _compiler.debug)(compiler, handle);
var _program = options.program,
heap = options.program.heap;
var start = heap.getaddr(handle);
var end = start + heap.sizeof(handle);
(0, _debug.debugSlice)(_program, start, end);
}

@@ -105,10 +120,7 @@ return handle;

}();
function blockFor(layout, compiler) {
return new _compilableTemplate.CompilableBlock(compiler, {
block: {
statements: layout.block.statements,
parameters: _util.EMPTY_ARRAY
},
containingLayout: layout
});
function blockFor(layout, options) {
var block = layout.block,
referrer = layout.referrer;
return new _compilableTemplate2.default(block.statements, layout, options, { referrer: referrer, parameters: _util.EMPTY_ARRAY });
}

@@ -128,11 +140,10 @@ var ComponentBuilder = exports.ComponentBuilder = function () {

var builder = this.builder;
var resolver = builder.resolver;
if (handle !== null) {
var _builder$compiler$res = builder.compiler.resolveLayoutForHandle(handle),
capabilities = _builder$compiler$res.capabilities,
compilable = _builder$compiler$res.compilable;
if (compilable) {
var capabilities = resolver.getCapabilities(handle);
if (capabilities.dynamicLayout === false) {
var layout = resolver.getLayout(handle);
builder.pushComponentDefinition(handle);
builder.invokeStaticComponent(capabilities, compilable, null, params, hash, false, _default, inverse);
builder.invokeStaticComponent(capabilities, layout, null, params, hash, false, _default, inverse);
} else {

@@ -147,2 +158,2 @@ builder.pushComponentDefinition(handle);

}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFPLEFBQUUsQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDOztBQVF2QyxBQUFPLEFBQUUsQUFBSyxBQUF1QixBQUFNLEFBQVksQUFBQzs7QUFDeEQsQUFBTyxBQUFFLEFBQWUsQUFBSSxBQUF1QixBQUFFLEFBQU0sQUFBdUIsQUFBQzs7QUFFbkYsQUFBTyxBQUFFLEFBQVcsQUFBRSxBQUFNLEFBQVUsQUFBQyxBQUV2QyxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxBQUFFLEFBQVcsQUFBRSxBQUFNLEFBQWUsQUFBQyxBQUU1QyxBQUFNOzs7Ozs7OztJQUdKOzRCQUFvQixBQUEwQyxVQUFVLEFBQWtDLFFBQXRGOzs7YUFBUSxXQUFSLEFBQVEsQUFBa0MsQUFBVTthQUFNLFNBQU4sQUFBTSxBQUE0QixBQUN4RyxBQUFJO1lBQUUsQUFBSyxBQUFFLFFBQUcsQUFBTSxBQUFDLEFBRXZCLEFBQUk7O2FBQUMsQUFBVztxQkFDTCxBQUFLLE1BQUMsQUFBTyxBQUN0QixBQUFPO3FCQUFFLEFBQUssTUFBQyxBQUFPLFFBQUMsQUFBTSxPQUZaLEFBQ2pCLEFBQU8sQUFDdUIsQUFBQyxBQUFXLEFBQUMsQUFBQyxBQUM3QyxBQUFDLEFBQ0osQUFBQyxBQUVELEFBQU87Ozs7MERBRUwsQUFBMkI7QUFDM0IsQUFBYztBQUNkLEFBQTBCO0FBQzFCLEFBQXFDO0FBQ3JDLEFBQTBCO0FBQzFCLEFBQStCO0FBQy9CLEFBQXNCO0FBQ3RCLEFBQWM7QUFDZCxBQUErQjtBQUMvQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBeUI7QUFDekIsQUFBc0I7QUFDdEIsQUFB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QUFDLEFBQXNCLHVCQUFDLEFBQU0sQUFBQyxBQUFDLEFBRW5GLEFBQUUsQUFBQztnQkFGRyxBQUFZO2dCQUFFLEFBQVUsQUFBRTs7Z0JBRTVCLEFBQVUsQUFBQyxZQUFDLEFBQUMsQUFDZixBQUFPO3dCQUFDLEFBQXVCLHdCQUFDLEFBQU0sQUFBQyxBQUFDLEFBQ3hDLEFBQU87d0JBQUMsQUFBcUIsc0JBQUMsQUFBWSxjQUFFLEFBQVUsWUFBRSxBQUFJLE1BQUUsQUFBTSxRQUFFLEFBQUksTUFBRSxBQUFLLE9BQUUsQUFBUSxVQUFFLEFBQU8sQUFBQyxBQUFDLEFBQ3hHLEFBQUMsQUFBQyxBQUFJO21CQUFDLEFBQUMsQUFDTixBQUFPO3dCQUFDLEFBQXVCLHdCQUFDLEFBQU0sQUFBQyxBQUFDLEFBQ3hDLEFBQU87d0JBQUMsQUFBZSxnQkFBQyxBQUFJLE1BQUUsQUFBTSxRQUFFLEFBQUksTUFBRSxBQUFLLE9BQUUsQUFBUSxVQUFFLEFBQU8sQUFBQyxBQUFDLEFBQ3hFLEFBQUMsQUFDSCxBQUFDLEFBQ0g7QUFBQyxBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBQcm9ncmFtU3ltYm9sVGFibGUsIENvbXBpbGFibGVQcm9ncmFtLCBDb21waWxhYmxlQmxvY2ssIExheW91dFdpdGhDb250ZXh0LCBDb21waWxlciwgUmVjYXN0IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudEFyZ3MsXG4gIENvbXBvbmVudEJ1aWxkZXIgYXMgSUNvbXBvbmVudEJ1aWxkZXJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgZGVidWcsIEFueUFic3RyYWN0Q29tcGlsZXIgfSBmcm9tICcuL2NvbXBpbGVyJztcbmltcG9ydCB7IENvbXBpbGFibGVCbG9jayBhcyBDb21waWxhYmxlQmxvY2tJbnN0YW5jZSB9IGZyb20gJy4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBPcGNvZGVCdWlsZGVyIH0gZnJvbSAnLi9vcGNvZGUtYnVpbGRlcic7XG5pbXBvcnQgeyBBVFRSU19CTE9DSyB9IGZyb20gJy4vc3ludGF4JztcblxuaW1wb3J0IHsgREVCVUcgfSBmcm9tIFwiQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3NcIjtcbmltcG9ydCB7IEVNUFRZX0FSUkFZIH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcblxuZXhwb3J0IGNsYXNzIFdyYXBwZWRCdWlsZGVyPExvY2F0b3I+IGltcGxlbWVudHMgQ29tcGlsYWJsZVByb2dyYW0ge1xuICBwdWJsaWMgc3ltYm9sVGFibGU6IFByb2dyYW1TeW1ib2xUYWJsZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlcjxPcGNvZGVCdWlsZGVyPExvY2F0b3I+PiwgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFdpdGhDb250ZXh0PExvY2F0b3I+KSB7XG4gICAgbGV0IHsgYmxvY2sgfSA9IGxheW91dDtcblxuICAgIHRoaXMuc3ltYm9sVGFibGUgPSB7XG4gICAgICBoYXNFdmFsOiBibG9jay5oYXNFdmFsLFxuICAgICAgc3ltYm9sczogYmxvY2suc3ltYm9scy5jb25jYXQoW0FUVFJTX0JMT0NLXSlcbiAgICB9O1xuICB9XG5cbiAgY29tcGlsZSgpOiBudW1iZXIge1xuICAgIC8vPT09PT09PT1EWU5BTUlDXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhCT0RZKVxuICAgIC8vICAgICAgICBPcGVuRHluYW1pY1ByaW1pdGl2ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gQk9EWTogIE5vb3BcbiAgICAvLyAgICAgICAgLi4uYm9keSBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhFTkQpXG4gICAgLy8gICAgICAgIENsb3NlRWxlbWVudFxuICAgIC8vIEVORDogICBOb29wXG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG4gICAgLy9cbiAgICAvLz09PT09PT09U1RBVElDXG4gICAgLy8gICAgICAgIE9wZW5QcmltaXRpdmVFbGVtZW50T3Bjb2RlXG4gICAgLy8gICAgICAgIERpZENyZWF0ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYXR0ciBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIEZsdXNoRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG5cbiAgICBsZXQgeyBjb21waWxlciwgbGF5b3V0IH0gPSB0aGlzO1xuICAgIGxldCBiID0gY29tcGlsZXIuYnVpbGRlckZvcihsYXlvdXQpO1xuXG4gICAgYi5zdGFydExhYmVscygpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmdldENvbXBvbmVudFRhZ05hbWUoUmVnaXN0ZXIuczApO1xuICAgIGIucHJpbWl0aXZlUmVmZXJlbmNlKCk7XG5cbiAgICBiLmR1cCgpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmp1bXBVbmxlc3MoJ0JPRFknKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIucHV0Q29tcG9uZW50T3BlcmF0aW9ucygpO1xuICAgIGIub3BlbkR5bmFtaWNFbGVtZW50KCk7XG4gICAgYi5kaWRDcmVhdGVFbGVtZW50KFJlZ2lzdGVyLnMwKTtcbiAgICBiLmZsdXNoRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnQk9EWScpO1xuXG4gICAgYi5pbnZva2VTdGF0aWNCbG9jayhibG9ja0ZvcihsYXlvdXQsIGNvbXBpbGVyKSk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcbiAgICBiLmp1bXBVbmxlc3MoJ0VORCcpO1xuICAgIGIuY2xvc2VFbGVtZW50KCk7XG5cbiAgICBiLmxhYmVsKCdFTkQnKTtcbiAgICBiLmxvYWQoUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5zdG9wTGFiZWxzKCk7XG5cbiAgICBsZXQgaGFuZGxlID0gYi5jb21taXQoKTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgZGVidWcoY29tcGlsZXIgYXMgUmVjYXN0PENvbXBpbGVyPE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4+LCBBbnlBYnN0cmFjdENvbXBpbGVyPiwgaGFuZGxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFuZGxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJsb2NrRm9yPExvY2F0b3I+KGxheW91dDogTGF5b3V0V2l0aENvbnRleHQsIGNvbXBpbGVyOiBDb21waWxlcjxPcGNvZGVCdWlsZGVyPExvY2F0b3I+Pik6IENvbXBpbGFibGVCbG9jayB7XG4gIHJldHVybiBuZXcgQ29tcGlsYWJsZUJsb2NrSW5zdGFuY2UoY29tcGlsZXIsIHtcbiAgICBibG9jazoge1xuICAgICAgc3RhdGVtZW50czogbGF5b3V0LmJsb2NrLnN0YXRlbWVudHMsXG4gICAgICBwYXJhbWV0ZXJzOiBFTVBUWV9BUlJBWVxuICAgIH0sXG4gICAgY29udGFpbmluZ0xheW91dDogbGF5b3V0XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QnVpbGRlcjxMb2NhdG9yPiBpbXBsZW1lbnRzIElDb21wb25lbnRCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBidWlsZGVyOiBPcGNvZGVCdWlsZGVyPExvY2F0b3I+KSB7fVxuXG4gIHN0YXRpYyhoYW5kbGU6IG51bWJlciwgYXJnczogQ29tcG9uZW50QXJncykge1xuICAgIGxldCBbcGFyYW1zLCBoYXNoLCBfZGVmYXVsdCwgaW52ZXJzZV0gPSBhcmdzO1xuICAgIGxldCB7IGJ1aWxkZXIgfSA9IHRoaXM7XG5cbiAgICBpZiAoaGFuZGxlICE9PSBudWxsKSB7XG4gICAgICBsZXQgeyBjYXBhYmlsaXRpZXMsIGNvbXBpbGFibGUgfSA9IGJ1aWxkZXIuY29tcGlsZXIucmVzb2x2ZUxheW91dEZvckhhbmRsZShoYW5kbGUpO1xuXG4gICAgICBpZiAoY29tcGlsYWJsZSkge1xuICAgICAgICBidWlsZGVyLnB1c2hDb21wb25lbnREZWZpbml0aW9uKGhhbmRsZSk7XG4gICAgICAgIGJ1aWxkZXIuaW52b2tlU3RhdGljQ29tcG9uZW50KGNhcGFiaWxpdGllcywgY29tcGlsYWJsZSwgbnVsbCwgcGFyYW1zLCBoYXNoLCBmYWxzZSwgX2RlZmF1bHQsIGludmVyc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVpbGRlci5wdXNoQ29tcG9uZW50RGVmaW5pdGlvbihoYW5kbGUpO1xuICAgICAgICBidWlsZGVyLmludm9rZUNvbXBvbmVudChudWxsLCBwYXJhbXMsIGhhc2gsIGZhbHNlLCBfZGVmYXVsdCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFPLEFBQUUsQUFBUSxBQUFFLEFBQU0sQUFBYSxBQUFDOztBQVV2QyxBQUFPLEFBQWtCLEFBQU0sQUFBdUIsQUFBQzs7OztBQUN2RCxBQUFPLEFBQUUsQUFBVSxBQUFFLEFBQU0sQUFBUyxBQUFDOztBQUVyQyxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQU0sQUFBVSxBQUFDLEFBRXZDLEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLEFBQUUsQUFBVyxBQUFFLEFBQU0sQUFBZSxBQUFDLEFBRTVDLEFBQU07Ozs7Ozs7Ozs7SUFJSjs0QkFBbUIsQUFBcUMsU0FBVSxBQUFrQyxRQUFqRjs7O2FBQU8sVUFBUCxBQUFPLEFBQThCLEFBQVU7YUFBTSxTQUFOLEFBQU0sQUFBNEIsQUFDbEcsQUFBSTtZQUFFLEFBQUssQUFBRSxRQUFHLEFBQU0sQUFBQyxBQUV2QixBQUFJOzthQUFDLEFBQVc7cUJBQ0wsQUFBSyxNQUFDLEFBQU8sQUFDdEIsQUFBTztxQkFBRSxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sT0FBQyxBQUZiLEFBRWMsQUFBVyxBQUFDLEFBQUMsQUFDN0MsQUFBQyxBQUNKLEFBQUMsQUFIRyxBQUFPLEFBS1gsQUFBTzs7OzswREFFTCxBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBMEI7QUFDMUIsQUFBcUM7QUFDckMsQUFBMEI7QUFDMUIsQUFBK0I7QUFDL0IsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQStCO0FBQy9CLEFBQTJCO0FBQzNCLEFBQWM7QUFDZCxBQUF5QjtBQUN6QixBQUFzQjtBQUN0QixBQUFjO0FBQ2QsQUFBeUI7QUFDekIs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QUFNLFFBQUUsQUFBSSxNQUFFLEFBQUssT0FBRSxBQUFRLFVBQUUsQUFBTyxBQUFDLEFBQUMsQUFDeEUsQUFBQyxBQUNILEFBQUMsQUFDSDtBQUFDLEFBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWdpc3RlciB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IFByb2dyYW1TeW1ib2xUYWJsZSwgQ29tcGlsYWJsZVByb2dyYW0sIENvbXBpbGFibGVCbG9jayB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnRBcmdzLFxuICBDb21wb25lbnRCdWlsZGVyIGFzIElDb21wb25lbnRCdWlsZGVyLFxuICBQYXJzZWRMYXlvdXRcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQ29tcGlsZU9wdGlvbnMgfSBmcm9tICcuL3N5bnRheCc7XG5pbXBvcnQgQ29tcGlsYWJsZVRlbXBsYXRlIGZyb20gJy4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBkZWJ1Z1NsaWNlIH0gZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgeyBPcGNvZGVCdWlsZGVyIH0gZnJvbSAnLi9vcGNvZGUtYnVpbGRlcic7XG5pbXBvcnQgeyBBVFRSU19CTE9DSyB9IGZyb20gJy4vc3ludGF4JztcblxuaW1wb3J0IHsgREVCVUcgfSBmcm9tIFwiQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3NcIjtcbmltcG9ydCB7IEVNUFRZX0FSUkFZIH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcblxuZXhwb3J0IGNsYXNzIFdyYXBwZWRCdWlsZGVyPFRlbXBsYXRlTWV0YT4gaW1wbGVtZW50cyBDb21waWxhYmxlUHJvZ3JhbSB7XG4gIHB1YmxpYyBzeW1ib2xUYWJsZTogUHJvZ3JhbVN5bWJvbFRhYmxlO1xuICBwcml2YXRlIHJlZmVycmVyOiBUZW1wbGF0ZU1ldGE7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IENvbXBpbGVPcHRpb25zPFRlbXBsYXRlTWV0YT4sIHByaXZhdGUgbGF5b3V0OiBQYXJzZWRMYXlvdXQ8VGVtcGxhdGVNZXRhPikge1xuICAgIGxldCB7IGJsb2NrIH0gPSBsYXlvdXQ7XG5cbiAgICB0aGlzLnN5bWJvbFRhYmxlID0ge1xuICAgICAgaGFzRXZhbDogYmxvY2suaGFzRXZhbCxcbiAgICAgIHN5bWJvbHM6IGJsb2NrLnN5bWJvbHMuY29uY2F0KFtBVFRSU19CTE9DS10pXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBpbGUoKTogbnVtYmVyIHtcbiAgICAvLz09PT09PT09RFlOQU1JQ1xuICAgIC8vICAgICAgICBQdXRWYWx1ZShUYWdFeHByKVxuICAgIC8vICAgICAgICBUZXN0XG4gICAgLy8gICAgICAgIEp1bXBVbmxlc3MoQk9EWSlcbiAgICAvLyAgICAgICAgT3BlbkR5bmFtaWNQcmltaXRpdmVFbGVtZW50XG4gICAgLy8gICAgICAgIERpZENyZWF0ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYXR0ciBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIEZsdXNoRWxlbWVudFxuICAgIC8vIEJPRFk6ICBOb29wXG4gICAgLy8gICAgICAgIC4uLmJvZHkgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBQdXRWYWx1ZShUYWdFeHByKVxuICAgIC8vICAgICAgICBUZXN0XG4gICAgLy8gICAgICAgIEp1bXBVbmxlc3MoRU5EKVxuICAgIC8vICAgICAgICBDbG9zZUVsZW1lbnRcbiAgICAvLyBFTkQ6ICAgTm9vcFxuICAgIC8vICAgICAgICBEaWRSZW5kZXJMYXlvdXRcbiAgICAvLyAgICAgICAgRXhpdFxuICAgIC8vXG4gICAgLy89PT09PT09PVNUQVRJQ1xuICAgIC8vICAgICAgICBPcGVuUHJpbWl0aXZlRWxlbWVudE9wY29kZVxuICAgIC8vICAgICAgICBEaWRDcmVhdGVFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmF0dHIgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBGbHVzaEVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYm9keSBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIENsb3NlRWxlbWVudFxuICAgIC8vICAgICAgICBEaWRSZW5kZXJMYXlvdXRcbiAgICAvLyAgICAgICAgRXhpdFxuXG4gICAgbGV0IHsgb3B0aW9ucywgbGF5b3V0LCByZWZlcnJlciB9ID0gdGhpcztcbiAgICBsZXQgeyBwcm9ncmFtLCByZXNvbHZlciwgbWFjcm9zLCBhc1BhcnRpYWwgfSA9IG9wdGlvbnM7XG4gICAgbGV0IHsgQnVpbGRlciB9ID0gb3B0aW9ucztcblxuICAgIGxldCBiID0gbmV3IEJ1aWxkZXIocHJvZ3JhbSwgcmVzb2x2ZXIsIHJlZmVycmVyLCBtYWNyb3MsIGxheW91dCwgYXNQYXJ0aWFsKTtcblxuICAgIGIuc3RhcnRMYWJlbHMoKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5nZXRDb21wb25lbnRUYWdOYW1lKFJlZ2lzdGVyLnMwKTtcbiAgICBiLnByaW1pdGl2ZVJlZmVyZW5jZSgpO1xuXG4gICAgYi5kdXAoKTtcbiAgICBiLmxvYWQoUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5qdW1wVW5sZXNzKCdCT0RZJyk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcbiAgICBiLnB1dENvbXBvbmVudE9wZXJhdGlvbnMoKTtcbiAgICBiLm9wZW5EeW5hbWljRWxlbWVudCgpO1xuICAgIGIuZGlkQ3JlYXRlRWxlbWVudChSZWdpc3Rlci5zMCk7XG4gICAgYi5mbHVzaEVsZW1lbnQoKTtcblxuICAgIGIubGFiZWwoJ0JPRFknKTtcblxuICAgIGIuaW52b2tlU3RhdGljQmxvY2soYmxvY2tGb3IobGF5b3V0LCB0aGlzLm9wdGlvbnMpKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIuanVtcFVubGVzcygnRU5EJyk7XG4gICAgYi5jbG9zZUVsZW1lbnQoKTtcblxuICAgIGIubGFiZWwoJ0VORCcpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLnN0b3BMYWJlbHMoKTtcblxuICAgIGxldCBoYW5kbGUgPSBiLmNvbW1pdChvcHRpb25zLnByb2dyYW0uaGVhcCwgbGF5b3V0LmJsb2NrLnN5bWJvbHMubGVuZ3RoKTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHsgcHJvZ3JhbSwgcHJvZ3JhbTogeyBoZWFwIH0gfSA9IG9wdGlvbnM7XG4gICAgICBsZXQgc3RhcnQgPSBoZWFwLmdldGFkZHIoaGFuZGxlKTtcbiAgICAgIGxldCBlbmQgPSBzdGFydCArIGhlYXAuc2l6ZW9mKGhhbmRsZSk7XG4gICAgICBkZWJ1Z1NsaWNlKHByb2dyYW0sIHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmxvY2tGb3I8VGVtcGxhdGVNZXRhPihsYXlvdXQ6IFBhcnNlZExheW91dCwgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPik6IENvbXBpbGFibGVCbG9jayB7XG4gIGxldCB7IGJsb2NrLCByZWZlcnJlciB9ID0gbGF5b3V0O1xuXG4gIHJldHVybiBuZXcgQ29tcGlsYWJsZVRlbXBsYXRlKGJsb2NrLnN0YXRlbWVudHMsIGxheW91dCwgb3B0aW9ucywgeyByZWZlcnJlciwgcGFyYW1ldGVyczogRU1QVFlfQVJSQVkgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRCdWlsZGVyPFRlbXBsYXRlTWV0YT4gaW1wbGVtZW50cyBJQ29tcG9uZW50QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnVpbGRlcjogT3Bjb2RlQnVpbGRlcjxUZW1wbGF0ZU1ldGE+KSB7fVxuXG4gIHN0YXRpYyhoYW5kbGU6IG51bWJlciwgYXJnczogQ29tcG9uZW50QXJncykge1xuICAgIGxldCBbcGFyYW1zLCBoYXNoLCBfZGVmYXVsdCwgaW52ZXJzZV0gPSBhcmdzO1xuICAgIGxldCB7IGJ1aWxkZXIgfSA9IHRoaXM7XG4gICAgbGV0IHsgcmVzb2x2ZXIgfSA9IGJ1aWxkZXI7XG5cbiAgICBpZiAoaGFuZGxlICE9PSBudWxsKSB7XG4gICAgICBsZXQgY2FwYWJpbGl0aWVzID0gcmVzb2x2ZXIuZ2V0Q2FwYWJpbGl0aWVzKGhhbmRsZSk7XG5cbiAgICAgIGlmIChjYXBhYmlsaXRpZXMuZHluYW1pY0xheW91dCA9PT0gZmFsc2UpIHtcbiAgICAgICAgbGV0IGxheW91dCA9IHJlc29sdmVyLmdldExheW91dChoYW5kbGUpITtcblxuICAgICAgICBidWlsZGVyLnB1c2hDb21wb25lbnREZWZpbml0aW9uKGhhbmRsZSk7XG4gICAgICAgIGJ1aWxkZXIuaW52b2tlU3RhdGljQ29tcG9uZW50KGNhcGFiaWxpdGllcywgbGF5b3V0LCBudWxsLCBwYXJhbXMsIGhhc2gsIGZhbHNlLCBfZGVmYXVsdCwgaW52ZXJzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWlsZGVyLnB1c2hDb21wb25lbnREZWZpbml0aW9uKGhhbmRsZSk7XG4gICAgICAgIGJ1aWxkZXIuaW52b2tlQ29tcG9uZW50KG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
export * from './lib/interfaces';
export { ATTRS_BLOCK, Macros } from './lib/syntax';
export * from './lib/lazy';
export * from './lib/compile';
export * from './lib/compiler';
export { CompilableBlock, CompilableProgram } from './lib/compilable-template';
export { LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, StdOpcodeBuilder } from './lib/opcode-builder';
export { LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, SimpleOpcodeBuilder } from './lib/opcode-builder';
export { PartialDefinition } from './lib/partial-template';
export { default as templateFactory } from './lib/template';
export { default as CompilableTemplate } from './lib/compilable-template';
export { debug, debugSlice, logOpcode } from './lib/debug';
export { WrappedBuilder } from './lib/wrapped-component';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxBQUFrQixBQUFDO0FBRWpDLEFBQU8sU0FDTCxBQUFXLGFBRVgsQUFBTSxBQUNQLGNBQU0sQUFBYyxBQUFDO0FBRXRCLGNBQWMsQUFBWSxBQUFDO0FBQzNCLGNBQWMsQUFBZSxBQUFDO0FBQzlCLGNBQWMsQUFBZ0IsQUFBQztBQUUvQixBQUFPLFNBQ0wsQUFBZSxpQkFDZixBQUFpQixBQUNsQix5QkFBTSxBQUEyQixBQUFDO0FBRW5DLEFBQU8sU0FDTCxBQUFpQixtQkFDakIsQUFBa0Isb0JBQ2xCLEFBQWEsZUFFYixBQUFnQixBQUNqQix3QkFBTSxBQUFzQixBQUFDO0FBRTlCLEFBQU8sU0FBRSxBQUFpQixBQUFFLHlCQUFNLEFBQXdCLEFBQUM7QUFFM0QsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFlLEFBRTNCLHVCQUFNLEFBQWdCLEFBQUM7QUFFeEIsQUFBTyxTQUNMLEFBQUssT0FDTCxBQUFVLFlBQ1YsQUFBUyxBQUNWLGlCQUFNLEFBQWEsQUFBQztBQUVyQixBQUFPLFNBQ0wsQUFBYyxBQUNmLHNCQUFNLEFBQXlCLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHtcbiAgQVRUUlNfQkxPQ0ssXG4gIENvbXBpbGVPcHRpb25zLFxuICBNYWNyb3Ncbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF6eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21waWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBpbGVyJztcblxuZXhwb3J0IHtcbiAgQ29tcGlsYWJsZUJsb2NrLFxuICBDb21waWxhYmxlUHJvZ3JhbVxufSBmcm9tICcuL2xpYi9jb21waWxhYmxlLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgTGF6eU9wY29kZUJ1aWxkZXIsXG4gIEVhZ2VyT3Bjb2RlQnVpbGRlcixcbiAgT3Bjb2RlQnVpbGRlcixcbiAgT3Bjb2RlQnVpbGRlckNvbnN0cnVjdG9yLFxuICBTdGRPcGNvZGVCdWlsZGVyLFxufSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlcic7XG5cbmV4cG9ydCB7IFBhcnRpYWxEZWZpbml0aW9uIH0gZnJvbSAnLi9saWIvcGFydGlhbC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICBUZW1wbGF0ZUZhY3Rvcnlcbn0gZnJvbSAnLi9saWIvdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxBQUFrQixBQUFDO0FBRWpDLEFBQU8sU0FDTCxBQUFXLGFBRVgsQUFBTSxBQUVQLGNBQU0sQUFBYyxBQUFDO0FBRXRCLEFBQU8sU0FFTCxBQUFpQixtQkFDakIsQUFBa0Isb0JBQ2xCLEFBQWEsZUFFYixBQUFtQixBQUNwQiwyQkFBTSxBQUFzQixBQUFDO0FBRTlCLEFBQU8sU0FBRSxBQUFpQixBQUFFLHlCQUFNLEFBQXdCLEFBQUM7QUFFM0QsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFlLEFBRTNCLHVCQUFNLEFBQWdCLEFBQUM7QUFFeEIsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFrQixBQUM5QiwwQkFBTSxBQUEyQixBQUFDO0FBRW5DLEFBQU8sU0FDTCxBQUFLLE9BQ0wsQUFBVSxZQUNWLEFBQVMsQUFDVixpQkFBTSxBQUFhLEFBQUM7QUFFckIsQUFBTyxTQUNMLEFBQWMsQUFDZixzQkFBTSxBQUF5QixBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7XG4gIEFUVFJTX0JMT0NLLFxuICBDb21waWxlT3B0aW9ucyxcbiAgTWFjcm9zLFxuICBUZW1wbGF0ZU9wdGlvbnNcbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0IHtcbiAgQ29tcGlsZVRpbWVMb29rdXAsXG4gIExhenlPcGNvZGVCdWlsZGVyLFxuICBFYWdlck9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXJDb25zdHJ1Y3RvcixcbiAgU2ltcGxlT3Bjb2RlQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbiB9IGZyb20gJy4vbGliL3BhcnRpYWwtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHRlbXBsYXRlRmFjdG9yeSxcbiAgVGVtcGxhdGVGYWN0b3J5XG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBDb21waWxhYmxlVGVtcGxhdGUsXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==

@@ -0,29 +1,20 @@

import { debugSlice } from './debug';
import { statementCompiler } from './syntax';
export const PLACEHOLDER_HANDLE = -1;
export class CompilableProgram {
constructor(compiler, layout) {
this.compiler = compiler;
this.layout = layout;
export default class CompilableTemplateImpl {
constructor(statements, containingLayout, options, symbolTable) {
this.statements = statements;
this.containingLayout = containingLayout;
this.options = options;
this.symbolTable = symbolTable;
this.compiled = null;
this.statementCompiler = statementCompiler();
}
get symbolTable() {
return this.layout.block;
static topLevel(block, options) {
return new CompilableTemplateImpl(block.statements, { block, referrer: options.referrer }, options, { hasEval: block.hasEval, symbols: block.symbols });
}
compile() {
if (this.compiled !== null) return this.compiled;
this.compiled = PLACEHOLDER_HANDLE;
let { block: { statements } } = this.layout;
return this.compiled = this.compiler.add(statements, this.layout);
}
}
export class CompilableBlock {
constructor(compiler, parsed) {
this.compiler = compiler;
this.parsed = parsed;
this.compiled = null;
}
get symbolTable() {
return this.parsed.block;
}
compile() {
if (this.compiled !== null) return this.compiled;
compile(stdLib) {
let { compiled } = this;
if (compiled !== null) return compiled;
// Track that compilation has started but not yet finished by temporarily

@@ -34,6 +25,19 @@ // using a placeholder handle. In eager compilation mode, where compile()

this.compiled = PLACEHOLDER_HANDLE;
let { block: { statements }, containingLayout } = this.parsed;
return this.compiled = this.compiler.add(statements, containingLayout);
let { options, statements, containingLayout } = this;
let { referrer } = containingLayout;
let { program, resolver, macros, asPartial, Builder } = options;
let builder = new Builder(program, resolver, referrer, macros, containingLayout, asPartial, stdLib);
for (let i = 0; i < statements.length; i++) {
this.statementCompiler.compile(statements[i], builder);
}
let handle = builder.commit(program.heap, containingLayout.block.symbols.length);
if (false) {
let { heap } = program;
let start = heap.getaddr(handle);
let end = start + heap.sizeof(handle);
debugSlice(program, start, end);
}
return this.compiled = handle;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxBQUFNLE9BQUMsTUFBTSxBQUFrQixxQkFBRyxDQUFDLEFBQUMsQUFBQztBQUVyQyxBQUFNO0FBR0osZ0JBQ1ksQUFBMEIsVUFDMUIsQUFBeUI7QUFEekIsYUFBUSxXQUFSLEFBQVEsQUFBa0I7QUFDMUIsYUFBTSxTQUFOLEFBQU0sQUFBbUI7QUFKN0IsYUFBUSxXQUFtQixBQUFJLEFBQUMsQUFLckM7QUFBQztBQUVKLFFBQUksQUFBVztBQUNiLEFBQU0sZUFBQyxBQUFJLEtBQUMsQUFBTSxPQUFDLEFBQUssQUFBQyxBQUMzQjtBQUFDO0FBRUQsQUFBTztBQUNMLEFBQUUsQUFBQyxZQUFDLEFBQUksS0FBQyxBQUFRLGFBQUssQUFBSSxBQUFDLE1BQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFRLEFBQUM7QUFFakQsQUFBSSxhQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDO0FBRW5DLFlBQUksRUFBRSxBQUFLLE9BQUUsRUFBRSxBQUFVLEFBQUUsQUFBRSxpQkFBRyxBQUFJLEtBQUMsQUFBTSxBQUFDO0FBRTVDLEFBQU0sZUFBQyxBQUFJLEtBQUMsQUFBUSxXQUFHLEFBQUksS0FBQyxBQUFRLFNBQUMsQUFBRyxJQUFDLEFBQVUsWUFBRSxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBQUMsQUFDcEU7QUFBQyxBQUNGOztBQUVELEFBQU07QUFHSixnQkFDVSxBQUEwQixVQUMxQixBQUF3QjtBQUR4QixhQUFRLFdBQVIsQUFBUSxBQUFrQjtBQUMxQixhQUFNLFNBQU4sQUFBTSxBQUFrQjtBQUoxQixhQUFRLFdBQW1CLEFBQUksQUFBQyxBQUtyQztBQUFDO0FBRUosUUFBSSxBQUFXO0FBQ2IsQUFBTSxlQUFDLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBSyxBQUFDLEFBQzNCO0FBQUM7QUFFRCxBQUFPO0FBQ0wsQUFBRSxBQUFDLFlBQUMsQUFBSSxLQUFDLEFBQVEsYUFBSyxBQUFJLEFBQUMsTUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQVEsQUFBQztBQUVqRCxBQUF5RTtBQUN6RSxBQUF5RTtBQUN6RSxBQUE0RTtBQUM1RSxBQUFvRDtBQUNwRCxBQUFJLGFBQUMsQUFBUSxXQUFHLEFBQWtCLEFBQUM7QUFFbkMsWUFBSSxFQUFFLEFBQUssT0FBRSxFQUFFLEFBQVUsQUFBRSxjQUFFLEFBQWdCLEFBQUUscUJBQUcsQUFBSSxLQUFDLEFBQU0sQUFBQztBQUU5RCxBQUFNLGVBQUMsQUFBSSxLQUFDLEFBQVEsV0FBRyxBQUFJLEtBQUMsQUFBUSxTQUFDLEFBQUcsSUFBQyxBQUFVLFlBQUUsQUFBZ0IsQUFBQyxBQUFDLEFBQ3pFO0FBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGFibGVUZW1wbGF0ZSxcbiAgUHJvZ3JhbVN5bWJvbFRhYmxlLFxuICBDb21waWxhYmxlUHJvZ3JhbSBhcyBJQ29tcGlsYWJsZVByb2dyYW0sXG4gIE9wdGlvbixcbiAgTGF5b3V0V2l0aENvbnRleHQsXG4gIE9wYXF1ZSxcbiAgQ29tcGlsZXIsXG4gIEJsb2NrU3ltYm9sVGFibGUsXG4gIEJsb2NrV2l0aENvbnRleHRcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9IQU5ETEUgPSAtMTtcblxuZXhwb3J0IGNsYXNzIENvbXBpbGFibGVQcm9ncmFtIGltcGxlbWVudHMgSUNvbXBpbGFibGVQcm9ncmFtIHtcbiAgcHJpdmF0ZSBjb21waWxlZDogT3B0aW9uPG51bWJlcj4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjb21waWxlcjogQ29tcGlsZXI8T3BhcXVlPixcbiAgICBwcm90ZWN0ZWQgbGF5b3V0OiBMYXlvdXRXaXRoQ29udGV4dFxuICApIHt9XG5cbiAgZ2V0IHN5bWJvbFRhYmxlKCk6IFByb2dyYW1TeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0LmJsb2NrO1xuICB9XG5cbiAgY29tcGlsZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmNvbXBpbGVkICE9PSBudWxsKSByZXR1cm4gdGhpcy5jb21waWxlZDtcblxuICAgIHRoaXMuY29tcGlsZWQgPSBQTEFDRUhPTERFUl9IQU5ETEU7XG5cbiAgICBsZXQgeyBibG9jazogeyBzdGF0ZW1lbnRzIH0gfSA9IHRoaXMubGF5b3V0O1xuXG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZWQgPSB0aGlzLmNvbXBpbGVyLmFkZChzdGF0ZW1lbnRzLCB0aGlzLmxheW91dCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbXBpbGFibGVCbG9jayBpbXBsZW1lbnRzIENvbXBpbGFibGVUZW1wbGF0ZTxCbG9ja1N5bWJvbFRhYmxlPiB7XG4gIHByaXZhdGUgY29tcGlsZWQ6IE9wdGlvbjxudW1iZXI+ID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlcjxPcGFxdWU+LFxuICAgIHByaXZhdGUgcGFyc2VkOiBCbG9ja1dpdGhDb250ZXh0XG4gICkge31cblxuICBnZXQgc3ltYm9sVGFibGUoKTogQmxvY2tTeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VkLmJsb2NrO1xuICB9XG5cbiAgY29tcGlsZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmNvbXBpbGVkICE9PSBudWxsKSByZXR1cm4gdGhpcy5jb21waWxlZDtcblxuICAgIC8vIFRyYWNrIHRoYXQgY29tcGlsYXRpb24gaGFzIHN0YXJ0ZWQgYnV0IG5vdCB5ZXQgZmluaXNoZWQgYnkgdGVtcG9yYXJpbHlcbiAgICAvLyB1c2luZyBhIHBsYWNlaG9sZGVyIGhhbmRsZS4gSW4gZWFnZXIgY29tcGlsYXRpb24gbW9kZSwgd2hlcmUgY29tcGlsZSgpXG4gICAgLy8gbWF5IGJlIGNhbGxlZCByZWN1cnNpdmVseSwgd2UgdXNlIHRoaXMgYXMgYSBzaWduYWwgdGhhdCB0aGUgaGFuZGxlIGNhbm5vdFxuICAgIC8vIGJlIGtub3duIHN5bmNocm9ub3VzbHkgYW5kIG11c3QgYmUgbGlua2VkIGxhemlseS5cbiAgICB0aGlzLmNvbXBpbGVkID0gUExBQ0VIT0xERVJfSEFORExFO1xuXG4gICAgbGV0IHsgYmxvY2s6IHsgc3RhdGVtZW50cyB9LCBjb250YWluaW5nTGF5b3V0IH0gPSB0aGlzLnBhcnNlZDtcblxuICAgIHJldHVybiB0aGlzLmNvbXBpbGVkID0gdGhpcy5jb21waWxlci5hZGQoc3RhdGVtZW50cywgY29udGFpbmluZ0xheW91dCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBU0EsQUFBTyxTQUFFLEFBQVUsQUFBRSxrQkFBTSxBQUFTLEFBQUM7QUFFckMsQUFBTyxTQUFrQixBQUFpQixBQUFhLHlCQUFNLEFBQVUsQUFBQztBQUV4RSxBQUFNLE9BQUMsTUFBTSxBQUFrQixxQkFBRyxDQUFDLEFBQUMsQUFBQztBQUVyQyxBQUFNLEFBQUMsQUFBTztBQWNaLGdCQUFvQixBQUF1QixZQUFVLEFBQThCLGtCQUFVLEFBQXFDLFNBQVMsQUFBd0I7QUFBL0ksYUFBVSxhQUFWLEFBQVUsQUFBYTtBQUFVLGFBQWdCLG1CQUFoQixBQUFnQixBQUFjO0FBQVUsYUFBTyxVQUFQLEFBQU8sQUFBOEI7QUFBUyxhQUFXLGNBQVgsQUFBVyxBQUFhO0FBSjNKLGFBQVEsV0FBbUIsQUFBSSxBQUFDO0FBS3RDLEFBQUksYUFBQyxBQUFpQixvQkFBRyxBQUFpQixBQUFFLEFBQUMsQUFDL0M7QUFBQztBQWZELEFBQU0sV0FBQyxBQUFRLFNBQWUsQUFBOEIsT0FBRSxBQUFxQztBQUNqRyxBQUFNLGVBQUMsSUFBSSxBQUFzQix1QkFDL0IsQUFBSyxNQUFDLEFBQVUsWUFDaEIsRUFBRSxBQUFLLE9BQUUsQUFBUSxVQUFFLEFBQU8sUUFBQyxBQUFRLEFBQUUsWUFDckMsQUFBTyxTQUNQLEVBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLFNBQUUsQUFBTyxTQUFFLEFBQUssTUFBQyxBQUFPLEFBQUUsQUFDbkQsQUFBQyxBQUNKO0FBQUM7QUFVRCxBQUFPLFlBQUMsQUFBZTtBQUNyQixZQUFJLEVBQUUsQUFBUSxBQUFFLGFBQUcsQUFBSSxBQUFDO0FBQ3hCLEFBQUUsQUFBQyxZQUFDLEFBQVEsYUFBSyxBQUFJLEFBQUMsTUFBQyxBQUFNLE9BQUMsQUFBUSxBQUFDO0FBRXZDLEFBQXlFO0FBQ3pFLEFBQXlFO0FBQ3pFLEFBQTRFO0FBQzVFLEFBQW9EO0FBQ3BELEFBQUksYUFBQyxBQUFRLFdBQUcsQUFBa0IsQUFBQztBQUVuQyxZQUFJLEVBQUUsQUFBTyxTQUFFLEFBQVUsWUFBRSxBQUFnQixBQUFFLHFCQUFHLEFBQUksQUFBQztBQUNyRCxZQUFJLEVBQUUsQUFBUSxBQUFFLGFBQUcsQUFBZ0IsQUFBQztBQUNwQyxZQUFJLEVBQUUsQUFBTyxTQUFFLEFBQVEsVUFBRSxBQUFNLFFBQUUsQUFBUyxXQUFFLEFBQU8sQUFBRSxZQUFHLEFBQU8sQUFBQztBQUVoRSxZQUFJLEFBQU8sVUFBRyxJQUFJLEFBQU8sUUFBQyxBQUFPLFNBQUUsQUFBUSxVQUFFLEFBQVEsVUFBRSxBQUFNLFFBQUUsQUFBZ0Isa0JBQUUsQUFBUyxXQUFFLEFBQU0sQUFBQyxBQUFDO0FBRXBHLEFBQUcsQUFBQyxhQUFDLElBQUksQUFBQyxJQUFHLEFBQUMsR0FBRSxBQUFDLElBQUcsQUFBVSxXQUFDLEFBQU0sUUFBRSxBQUFDLEFBQUUsS0FBRSxBQUFDO0FBQzNDLEFBQUksaUJBQUMsQUFBaUIsa0JBQUMsQUFBTyxRQUFDLEFBQVUsV0FBQyxBQUFDLEFBQUMsSUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN6RDtBQUFDO0FBRUQsWUFBSSxBQUFNLFNBQUcsQUFBTyxRQUFDLEFBQU0sT0FBQyxBQUFPLFFBQUMsQUFBSSxNQUFFLEFBQWdCLGlCQUFDLEFBQUssTUFBQyxBQUFPLFFBQUMsQUFBTSxBQUFDLEFBQUM7QUFFakYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDLG1CQUFDLEFBQUM7QUFDVixnQkFBSSxFQUFFLEFBQUksQUFBRSxTQUFHLEFBQU8sQUFBQztBQUN2QixnQkFBSSxBQUFLLFFBQUcsQUFBSSxLQUFDLEFBQU8sUUFBQyxBQUFNLEFBQUMsQUFBQztBQUNqQyxnQkFBSSxBQUFHLE1BQUcsQUFBSyxRQUFHLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBTSxBQUFDLEFBQUM7QUFFdEMsQUFBVSx1QkFBQyxBQUFPLFNBQUUsQUFBSyxPQUFFLEFBQUcsQUFBQyxBQUFDLEFBQ2xDO0FBQUM7QUFFRCxBQUFNLEFBQUMsZUFBQyxBQUFJLEtBQUMsQUFBUSxXQUFHLEFBQU0sQUFBQyxBQUFDLEFBQ2xDO0FBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGFibGVUZW1wbGF0ZSxcbiAgU1RETGliLFxuICBQcm9ncmFtU3ltYm9sVGFibGUsXG4gIENvbXBpbGFibGVQcm9ncmFtLFxuICBPcHRpb25cbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdGF0ZW1lbnQsIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrIH0gZnJvbSAnQGdsaW1tZXIvd2lyZS1mb3JtYXQnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyBkZWJ1Z1NsaWNlIH0gZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgeyBQYXJzZWRMYXlvdXQgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29tcGlsZU9wdGlvbnMsIHN0YXRlbWVudENvbXBpbGVyLCBDb21waWxlcnMgfSBmcm9tICcuL3N5bnRheCc7XG5cbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9IQU5ETEUgPSAtMTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tcGlsYWJsZVRlbXBsYXRlSW1wbDxTeW1ib2xUYWJsZSwgVGVtcGxhdGVNZXRhPiBpbXBsZW1lbnRzIENvbXBpbGFibGVUZW1wbGF0ZTxTeW1ib2xUYWJsZT4ge1xuICBzdGF0aWMgdG9wTGV2ZWw8VGVtcGxhdGVNZXRhPihibG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2ssIG9wdGlvbnM6IENvbXBpbGVPcHRpb25zPFRlbXBsYXRlTWV0YT4pOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGVJbXBsPFByb2dyYW1TeW1ib2xUYWJsZSwgVGVtcGxhdGVNZXRhPihcbiAgICAgIGJsb2NrLnN0YXRlbWVudHMsXG4gICAgICB7IGJsb2NrLCByZWZlcnJlcjogb3B0aW9ucy5yZWZlcnJlciB9LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHsgaGFzRXZhbDogYmxvY2suaGFzRXZhbCwgc3ltYm9sczogYmxvY2suc3ltYm9scyB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGlsZWQ6IE9wdGlvbjxudW1iZXI+ID0gbnVsbDtcblxuICBwcml2YXRlIHN0YXRlbWVudENvbXBpbGVyOiBDb21waWxlcnM8U3RhdGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YXRlbWVudHM6IFN0YXRlbWVudFtdLCBwcml2YXRlIGNvbnRhaW5pbmdMYXlvdXQ6IFBhcnNlZExheW91dCwgcHJpdmF0ZSBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+LCBwdWJsaWMgc3ltYm9sVGFibGU6IFN5bWJvbFRhYmxlKSB7XG4gICAgdGhpcy5zdGF0ZW1lbnRDb21waWxlciA9IHN0YXRlbWVudENvbXBpbGVyKCk7XG4gIH1cblxuICBjb21waWxlKHN0ZExpYj86IFNURExpYik6IG51bWJlciB7XG4gICAgbGV0IHsgY29tcGlsZWQgfSA9IHRoaXM7XG4gICAgaWYgKGNvbXBpbGVkICE9PSBudWxsKSByZXR1cm4gY29tcGlsZWQ7XG5cbiAgICAvLyBUcmFjayB0aGF0IGNvbXBpbGF0aW9uIGhhcyBzdGFydGVkIGJ1dCBub3QgeWV0IGZpbmlzaGVkIGJ5IHRlbXBvcmFyaWx5XG4gICAgLy8gdXNpbmcgYSBwbGFjZWhvbGRlciBoYW5kbGUuIEluIGVhZ2VyIGNvbXBpbGF0aW9uIG1vZGUsIHdoZXJlIGNvbXBpbGUoKVxuICAgIC8vIG1heSBiZSBjYWxsZWQgcmVjdXJzaXZlbHksIHdlIHVzZSB0aGlzIGFzIGEgc2lnbmFsIHRoYXQgdGhlIGhhbmRsZSBjYW5ub3RcbiAgICAvLyBiZSBrbm93biBzeW5jaHJvbm91c2x5IGFuZCBtdXN0IGJlIGxpbmtlZCBsYXppbHkuXG4gICAgdGhpcy5jb21waWxlZCA9IFBMQUNFSE9MREVSX0hBTkRMRTtcblxuICAgIGxldCB7IG9wdGlvbnMsIHN0YXRlbWVudHMsIGNvbnRhaW5pbmdMYXlvdXQgfSA9IHRoaXM7XG4gICAgbGV0IHsgcmVmZXJyZXIgfSA9IGNvbnRhaW5pbmdMYXlvdXQ7XG4gICAgbGV0IHsgcHJvZ3JhbSwgcmVzb2x2ZXIsIG1hY3JvcywgYXNQYXJ0aWFsLCBCdWlsZGVyIH0gPSBvcHRpb25zO1xuXG4gICAgbGV0IGJ1aWxkZXIgPSBuZXcgQnVpbGRlcihwcm9ncmFtLCByZXNvbHZlciwgcmVmZXJyZXIsIG1hY3JvcywgY29udGFpbmluZ0xheW91dCwgYXNQYXJ0aWFsLCBzdGRMaWIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0ZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnN0YXRlbWVudENvbXBpbGVyLmNvbXBpbGUoc3RhdGVtZW50c1tpXSwgYnVpbGRlcik7XG4gICAgfVxuXG4gICAgbGV0IGhhbmRsZSA9IGJ1aWxkZXIuY29tbWl0KHByb2dyYW0uaGVhcCwgY29udGFpbmluZ0xheW91dC5ibG9jay5zeW1ib2xzLmxlbmd0aCk7XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIGxldCB7IGhlYXAgfSA9IHByb2dyYW07XG4gICAgICBsZXQgc3RhcnQgPSBoZWFwLmdldGFkZHIoaGFuZGxlKTtcbiAgICAgIGxldCBlbmQgPSBzdGFydCArIGhlYXAuc2l6ZW9mKGhhbmRsZSk7XG5cbiAgICAgIGRlYnVnU2xpY2UocHJvZ3JhbSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmNvbXBpbGVkID0gaGFuZGxlKTtcbiAgfVxufVxuIl19

@@ -12,3 +12,3 @@ import { Register } from '@glimmer/vm';

let { type, op1, op2, op3, size } = program.opcode(i);
let [name, params] = debug(i, constants, type, op1, op2, op3);
let [name, params] = debug(constants, type, op1, op2, op3);
console.log(`${i}. ${logOpcode(name, params)}`);

@@ -51,3 +51,3 @@ _size = size;

}
export function debug(pos, c, op, ...operands) {
export function debug(c, op, ...operands) {
let metadata = null;

@@ -61,5 +61,2 @@ if (!metadata) {

switch (operand.type) {
case 'to':
out[operand.name] = pos + op;
break;
case 'i32':

@@ -131,2 +128,2 @@ case 'symbol':

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEFBQU8sQUFBRSxBQUFRLFNBQU0sQUFBUSxBQUFFLGdCQUFNLEFBQWEsQUFBQyxBQUNyRCxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsYUFBRSxBQUFJLEFBQUUsWUFBTSxBQUFlLEFBQUM7QUFpQmxELEFBQU0sMkJBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVc7QUFDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDLGVBQUMsQUFBQztBQUNWLEFBQStCO0FBQy9CLFlBQUksRUFBRSxBQUFTLEFBQUUsY0FBRyxBQUFPLEFBQUM7QUFFM0IsQUFBZSxnQkFBQyxBQUFLLEFBQUMsV0FBSyxBQUFLLFNBQUksQUFBRyxHQUFFLElBQUUsQUFBYSxBQUFDLEFBQUM7QUFFM0QsWUFBSSxBQUFLLFFBQUcsQUFBQyxBQUFDO0FBQ2QsQUFBRyxBQUFDLGFBQUMsSUFBSSxBQUFDLElBQUMsQUFBSyxPQUFFLEFBQUMsSUFBQyxBQUFHLEtBQUUsQUFBQyxJQUFHLEFBQUMsSUFBRyxBQUFLLE9BQUUsQUFBQztBQUN2QyxnQkFBSSxFQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFJLEFBQUUsU0FBRyxBQUFPLFFBQUMsQUFBTSxPQUFDLEFBQUMsQUFBQyxBQUFDO0FBQ3RELGdCQUFJLENBQUMsQUFBSSxNQUFFLEFBQU0sQUFBQyxVQUFHLEFBQUssTUFBQyxBQUFDLEdBQUUsQUFBeUQsV0FBRSxBQUFJLE1BQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFHLEFBQUMsQUFBQztBQUM5RyxBQUFPLG9CQUFDLEFBQUcsQUFBQyxPQUFHLEFBQUMsTUFBSyxBQUFT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QkFBTSxBQUFXLEFBQUUsQUFBQyxBQUN4QixBQUFDLEFBQ0g7O0FBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxlVGltZVByb2dyYW0sXG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBPcHRpb24sXG4gIE9wYXF1ZSxcbiAgUmVjYXN0XG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTUVUQURBVEEsIE9wLCBSZWdpc3RlciB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3MnO1xuaW1wb3J0IHsgdW5yZWFjaGFibGUsIGRpY3QgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkBnbGltbWVyL2RlYnVnXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIkBnbGltbWVyL3Byb2dyYW1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZWJ1Z0NvbnN0YW50cyB7XG4gIGdldE51bWJlcih2YWx1ZTogbnVtYmVyKTogbnVtYmVyO1xuICBnZXRTdHJpbmcodmFsdWU6IG51bWJlcik6IHN0cmluZztcbiAgZ2V0U3RyaW5nQXJyYXkodmFsdWU6IG51bWJlcik6IHN0cmluZ1tdO1xuICBnZXRBcnJheSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyW107XG4gIGdldFNlcmlhbGl6YWJsZTxUPihzOiBudW1iZXIpOiBUO1xuICByZXNvbHZlSGFuZGxlPFQ+KHM6IG51bWJlcik6IFQ7XG59XG5cbmludGVyZmFjZSBMYXp5RGVidWdDb25zdGFudHMge1xuICBnZXRPdGhlcjxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWdTbGljZShwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW0sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XG4gIGlmIChERUJVRykge1xuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWNvbnNvbGUgKi9cbiAgICBsZXQgeyBjb25zdGFudHMgfSA9IHByb2dyYW07XG5cbiAgICAoY29uc29sZSBhcyBhbnkpLmdyb3VwKGAlYyR7c3RhcnR9OiR7ZW5kfWAsICdjb2xvcjogIzk5OScpO1xuXG4gICAgbGV0IF9zaXplID0gMDtcbiAgICBmb3IgKGxldCBpPXN0YXJ0OyBpPGVuZDsgaSA9IGkgKyBfc2l6ZSkge1xuICAgICAgbGV0IHsgdHlwZSwgb3AxLCBvcDIsIG9wMywgc2l6ZSB9ID0gcHJvZ3JhbS5vcGNvZGUoaSk7XG4gICAgICBsZXQgW25hbWUsIHBhcmFtc10gPSBkZWJ1ZyhpLCBjb25zdGFudHMgYXMgUmVjYXN0PENvbXBpbGVUaW1lQ29uc3RhbnRzLCBEZWJ1Z0NvbnN0YW50cz4sIHR5cGUsIG9wMSwgb3AyLCBvcDMpO1xuICAgICAgY29uc29sZS5sb2coYCR7aX0uICR7bG9nT3Bjb2RlKG5hbWUsIHBhcmFtcyl9YCk7XG4gICAgICBfc2l6ZSA9IHNpemU7XG4gICAgfVxuICAgIHByb2dyYW0ub3Bjb2RlKC1fc2l6ZSk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tY29uc29sZSAqL1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dPcGNvZGUodHlwZTogc3RyaW5nLCBwYXJhbXM6IE9wdGlvbjxPYmplY3Q+KTogc3RyaW5nIHwgdm9pZCB7XG4gIGxldCBvdXQgPSB0eXBlO1xuXG4gIGlmIChwYXJhbXMpIHtcbiAgICBsZXQgYXJncyA9IE9iamVjdC5rZXlzKHBhcmFtcykubWFwKHAgPT4gYCAke3B9PSR7anNvbihwYXJhbXNbcF0pfWApLmpvaW4oJycpO1xuICAgIG91dCArPSBhcmdzO1xuICB9XG4gIHJldHVybiBgKCR7b3V0fSlgO1xufVxuXG5mdW5jdGlvbiBqc29uKHBhcmFtOiBPcGFxdWUpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuICc8ZnVuY3Rpb24+JztcbiAgICB9XG5cbiAgICBsZXQgc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICBzdHJpbmcgPSBKU09OLnN0cmluZ2lmeShwYXJhbSk7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICByZXR1cm4gJzxvYmplY3Q+JztcbiAgICB9XG5cbiAgICBpZiAoc3RyaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG5cbiAgICBsZXQgZGVidWcgPSBKU09OLnBhcnNlKHN0cmluZyk7XG4gICAgaWYgKHR5cGVvZiBkZWJ1ZyA9PT0gJ29iamVjdCcgJiYgZGVidWcgIT09IG51bGwgJiYgZGVidWcuR2xpbW1lckRlYnVnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBkZWJ1Zy5HbGltbWVyRGVidWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWcocG9zOiBudW1iZXIsIGM6IERlYnVnQ29uc3RhbnRzLCBvcDogT3AsIC4uLm9wZXJhbmRzOiBudW1iZXJbXSk6IFtzdHJpbmcsIG9iamVjdF0ge1xuICBsZXQgbWV0YWRhdGEgPSBNRVRBREFUQVtvcF07XG5cbiAgaWYgKCFtZXRhZGF0YSkge1xuICAgIHRocm93IHVucmVhY2hhYmxlKGBNaXNzaW5nIE9wY29kZSBNZXRhZGF0YSBmb3IgJHtvcH1gKTtcbiAgfVxuXG4gIGxldCBvdXQgPSBkaWN0PE9wYXF1ZT4oKTtcblxuICBtZXRhZGF0YS5vcHMuZm9yRWFjaCgob3BlcmFuZCwgaW5kZXgpID0+IHtcbiAgICBsZXQgb3AgPSBvcGVyYW5kc1tpbmRleF07XG5cbiAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgY2FzZSAndG8nOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IHBvcyArIG9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2kzMic6XG4gICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgY2FzZSAnYmxvY2snOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IG9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhbmRsZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5yZXNvbHZlSGFuZGxlKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U3RyaW5nKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcHRpb24tc3RyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBvcCA/IGMuZ2V0U3RyaW5nKG9wKSA6IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyLWFycmF5JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFN0cmluZ0FycmF5KG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRBcnJheShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm9vbCc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gISFvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcmltaXRpdmUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGRlY29kZVByaW1pdGl2ZShvcCwgYyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVnaXN0ZXInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IFJlZ2lzdGVyW29wXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXJpYWxpemFibGUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U2VyaWFsaXphYmxlKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsYXp5LWNvbnN0YW50JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSAoYyBhcyBSZWNhc3Q8RGVidWdDb25zdGFudHMsIExhenlEZWJ1Z0NvbnN0YW50cz4pLmdldE90aGVyKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gW21ldGFkYXRhLm5hbWUsIG91dF07XG59XG5cbmZ1bmN0aW9uIGRlY29kZVByaW1pdGl2ZShwcmltaXRpdmU6IG51bWJlciwgY29uc3RhbnRzOiBEZWJ1Z0NvbnN0YW50cyk6IFByaW1pdGl2ZSB7XG4gIGxldCBmbGFnID0gcHJpbWl0aXZlICYgNzsgLy8gMTExXG4gIGxldCB2YWx1ZSA9IHByaW1pdGl2ZSA+PiAzO1xuXG4gIHN3aXRjaCAoZmxhZykge1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5OVU1CRVI6XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLkZMT0FUOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXROdW1iZXIodmFsdWUpO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5TVFJJTkc6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldFN0cmluZyh2YWx1ZSk7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLkJPT0xFQU5fT1JfVk9JRDpcbiAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgY2FzZSAwOiByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNhc2UgMTogcmV0dXJuIHRydWU7XG4gICAgICAgIGNhc2UgMjogcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMzogcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuTkVHQVRJVkU6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IHVucmVhY2hhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEFBQU8sQUFBRSxBQUFRLFNBQU0sQUFBUSxBQUFFLGdCQUFNLEFBQWEsQUFBQyxBQUNyRCxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsYUFBRSxBQUFJLEFBQUUsWUFBTSxBQUFlLEFBQUM7QUFpQmxELEFBQU0sMkJBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVc7QUFDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDLGVBQUMsQUFBQztBQUNWLEFBQStCO0FBQy9CLFlBQUksRUFBRSxBQUFTLEFBQUUsY0FBRyxBQUFPLEFBQUM7QUFFM0IsQUFBZSxnQkFBQyxBQUFLLEFBQUMsV0FBSyxBQUFLLFNBQUksQUFBRyxHQUFFLElBQUUsQUFBYSxBQUFDLEFBQUM7QUFFM0QsWUFBSSxBQUFLLFFBQUcsQUFBQyxBQUFDO0FBQ2QsQUFBRyxBQUFDLGFBQUMsSUFBSSxBQUFDLElBQUMsQUFBSyxPQUFFLEFBQUMsSUFBQyxBQUFHLEtBQUUsQUFBQyxJQUFHLEFBQUMsSUFBRyxBQUFLLE9BQUUsQUFBQztBQUN2QyxnQkFBSSxFQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsS0FBRSxBQUFJLEFBQUUsU0FBRyxBQUFPLFFBQUMsQUFBTSxPQUFDLEFBQUMsQUFBQyxBQUFDO0FBQ3RELGdCQUFJLENBQUMsQUFBSSxNQUFFLEFBQU0sQUFBQyxVQUFHLEFBQUssTUFBQyxBQUF5RCxXQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsQUFBQyxBQUFDO0FBQzNHLEFBQU8sb0JBQUMsQUFBRyxBQUFDLE9BQUcsQUFBQyxNQUFLLEFBQVMsVUFBQyxBQUFJ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QUcsb0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFJLEFBQWdELEVBQUMsQUFBUSxTQUFDLEFBQUUsQUFBQyxBQUFDO0FBQ25GLEFBQUssQUFBQyxBQUNWLEFBQUMsQUFDSDs7QUFBQyxBQUFDLEFBQUM7QUFFSCxBQUFNLFdBQUMsQ0FBQyxBQUFRLFNBQUMsQUFBSSxNQUFFLEFBQUcsQUFBQyxBQUFDLEFBQzlCO0FBQUM7QUFFRCx5QkFBeUIsQUFBaUIsV0FBRSxBQUF5QjtBQUNuRSxRQUFJLEFBQUksT0FBRyxBQUFTLFlBQUcsQUFBQyxBQUFDLEdBQUMsQUFBTTtBQUNoQyxRQUFJLEFBQUssUUFBRyxBQUFTLGFBQUksQUFBQyxBQUFDO0FBRTNCLEFBQU0sQUFBQyxZQUFDLEFBQUksQUFBQyxBQUFDLEFBQUM7QUFDYjtBQUNFLEFBQU0sbUJBQUMsQUFBSyxBQUFDO0FBQ2Y7QUFDRSxBQUFNLG1CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUM7QUFDcEM7QUFDRSxBQUFNLG1CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUM7QUFDcEM7QUFDRSxBQUFNLEFBQUMsb0JBQUMsQUFBSyxBQUFDLEFBQUMsQUFBQztBQUNkLHFCQUFLLEFBQUM7QUFBRSxBQUFNLDJCQUFDLEFBQUssQUFBQztBQUNyQixxQkFBSyxBQUFDO0FBQUUsQUFBTSwyQkFBQyxBQUFJLEFBQUM7QUFDcEIscUJBQUssQUFBQztBQUFFLEFBQU0sMkJBQUMsQUFBSSxBQUFDO0FBQ3BCLHFCQUFLLEFBQUM7QUFBRSxBQUFNLDJCQUFDLEFBQVMsQUFBQyxBQUMzQixBQUFDOztBQUNIO0FBQ0UsQUFBTSxtQkFBQyxBQUFTLFVBQUMsQUFBUyxVQUFDLEFBQUssQUFBQyxBQUFDO0FBQ3BDO0FBQ0Usa0JBQU0sQUFBVyxBQUFFLEFBQUMsQUFDeEIsQUFBQyxBQUNIOztBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3B0aW9uLFxuICBPcGFxdWUsXG4gIFJlY2FzdFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1FVEFEQVRBLCBPcCwgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IHVucmVhY2hhYmxlLCBkaWN0IH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAZ2xpbW1lci9kZWJ1Z1wiO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAZ2xpbW1lci9wcm9ncmFtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdDb25zdGFudHMge1xuICBnZXROdW1iZXIodmFsdWU6IG51bWJlcik6IG51bWJlcjtcbiAgZ2V0U3RyaW5nKHZhbHVlOiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldFN0cmluZ0FycmF5KHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXTtcbiAgZ2V0QXJyYXkodmFsdWU6IG51bWJlcik6IG51bWJlcltdO1xuICBnZXRTZXJpYWxpemFibGU8VD4oczogbnVtYmVyKTogVDtcbiAgcmVzb2x2ZUhhbmRsZTxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5pbnRlcmZhY2UgTGF6eURlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0T3RoZXI8VD4oczogbnVtYmVyKTogVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnU2xpY2UocHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICBpZiAoREVCVUcpIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlICovXG4gICAgbGV0IHsgY29uc3RhbnRzIH0gPSBwcm9ncmFtO1xuXG4gICAgKGNvbnNvbGUgYXMgYW55KS5ncm91cChgJWMke3N0YXJ0fToke2VuZH1gLCAnY29sb3I6ICM5OTknKTtcblxuICAgIGxldCBfc2l6ZSA9IDA7XG4gICAgZm9yIChsZXQgaT1zdGFydDsgaTxlbmQ7IGkgPSBpICsgX3NpemUpIHtcbiAgICAgIGxldCB7IHR5cGUsIG9wMSwgb3AyLCBvcDMsIHNpemUgfSA9IHByb2dyYW0ub3Bjb2RlKGkpO1xuICAgICAgbGV0IFtuYW1lLCBwYXJhbXNdID0gZGVidWcoY29uc3RhbnRzIGFzIFJlY2FzdDxDb21waWxlVGltZUNvbnN0YW50cywgRGVidWdDb25zdGFudHM+LCB0eXBlLCBvcDEsIG9wMiwgb3AzKTtcbiAgICAgIGNvbnNvbGUubG9nKGAke2l9LiAke2xvZ09wY29kZShuYW1lLCBwYXJhbXMpfWApO1xuICAgICAgX3NpemUgPSBzaXplO1xuICAgIH1cbiAgICBwcm9ncmFtLm9wY29kZSgtX3NpemUpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWNvbnNvbGUgKi9cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nT3Bjb2RlKHR5cGU6IHN0cmluZywgcGFyYW1zOiBPcHRpb248T2JqZWN0Pik6IHN0cmluZyB8IHZvaWQge1xuICBsZXQgb3V0ID0gdHlwZTtcblxuICBpZiAocGFyYW1zKSB7XG4gICAgbGV0IGFyZ3MgPSBPYmplY3Qua2V5cyhwYXJhbXMpLm1hcChwID0+IGAgJHtwfT0ke2pzb24ocGFyYW1zW3BdKX1gKS5qb2luKCcnKTtcbiAgICBvdXQgKz0gYXJncztcbiAgfVxuICByZXR1cm4gYCgke291dH0pYDtcbn1cblxuZnVuY3Rpb24ganNvbihwYXJhbTogT3BhcXVlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAnPGZ1bmN0aW9uPic7XG4gICAgfVxuXG4gICAgbGV0IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocGFyYW0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgcmV0dXJuICc8b2JqZWN0Pic7XG4gICAgfVxuXG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgbGV0IGRlYnVnID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIGlmICh0eXBlb2YgZGVidWcgPT09ICdvYmplY3QnICYmIGRlYnVnICE9PSBudWxsICYmIGRlYnVnLkdsaW1tZXJEZWJ1ZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGVidWcuR2xpbW1lckRlYnVnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKGM6IERlYnVnQ29uc3RhbnRzLCBvcDogT3AsIC4uLm9wZXJhbmRzOiBudW1iZXJbXSk6IFtzdHJpbmcsIG9iamVjdF0ge1xuICBsZXQgbWV0YWRhdGEgPSBNRVRBREFUQVtvcF07XG5cbiAgaWYgKCFtZXRhZGF0YSkge1xuICAgIHRocm93IHVucmVhY2hhYmxlKGBNaXNzaW5nIE9wY29kZSBNZXRhZGF0YSBmb3IgJHtvcH1gKTtcbiAgfVxuXG4gIGxldCBvdXQgPSBkaWN0PE9wYXF1ZT4oKTtcblxuICBtZXRhZGF0YS5vcHMuZm9yRWFjaCgob3BlcmFuZCwgaW5kZXgpID0+IHtcbiAgICBsZXQgb3AgPSBvcGVyYW5kc1tpbmRleF07XG5cbiAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgY2FzZSAnaTMyJzpcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICBjYXNlICdibG9jayc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGFuZGxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLnJlc29sdmVIYW5kbGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmcob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbi1zdHInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IG9wID8gYy5nZXRTdHJpbmcob3ApIDogbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHItYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U3RyaW5nQXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldEFycmF5KG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib29sJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSAhIW9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ByaW1pdGl2ZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gZGVjb2RlUHJpbWl0aXZlKG9wLCBjKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyZWdpc3Rlcic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gUmVnaXN0ZXJbb3BdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlcmlhbGl6YWJsZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTZXJpYWxpemFibGUob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xhenktY29uc3RhbnQnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IChjIGFzIFJlY2FzdDxEZWJ1Z0NvbnN0YW50cywgTGF6eURlYnVnQ29uc3RhbnRzPikuZ2V0T3RoZXIob3ApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBbbWV0YWRhdGEubmFtZSwgb3V0XTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlUHJpbWl0aXZlKHByaW1pdGl2ZTogbnVtYmVyLCBjb25zdGFudHM6IERlYnVnQ29uc3RhbnRzKTogUHJpbWl0aXZlIHtcbiAgbGV0IGZsYWcgPSBwcmltaXRpdmUgJiA3OyAvLyAxMTFcbiAgbGV0IHZhbHVlID0gcHJpbWl0aXZlID4+IDM7XG5cbiAgc3dpdGNoIChmbGFnKSB7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5VTUJFUjpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuRkxPQVQ6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLlNUUklORzpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0U3RyaW5nKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuQk9PTEVBTl9PUl9WT0lEOlxuICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBmYWxzZTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY2FzZSAyOiByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSAzOiByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5ORUdBVElWRTpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgdW5yZWFjaGFibGUoKTtcbiAgfVxufVxuIl19
export const PLACEHOLDER_HANDLE = -1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsQUFBTSxPQUFDLE1BQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPcHRpb24sXG4gIENvbXBpbGFibGVCbG9jayxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzLFxuICBDb21waWxlVGltZVByb2dyYW0sXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZSB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IE1hY3JvcyB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGludGVyZmFjZSBFYWdlclJlc29sdmVyPExvY2F0b3I+IHtcbiAgZ2V0Q2FwYWJpbGl0aWVzKGxvY2F0b3I6IExvY2F0b3IpOiBDb21wb25lbnRDYXBhYmlsaXRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJDb21waWxhdGlvbk9wdGlvbnM8TG9jYXRvciwgUiBleHRlbmRzIEVhZ2VyUmVzb2x2ZXI8TG9jYXRvcj4+IHtcbiAgcmVzb2x2ZXI6IFI7XG4gIHByb2dyYW06IENvbXBpbGVUaW1lUHJvZ3JhbTtcbiAgbWFjcm9zOiBNYWNyb3M7XG59XG5cbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9IQU5ETEUgPSAtMTtcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gdW5kZWZpbmVkIHwgbnVsbCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudEFyZ3MgPSBbQ29yZS5QYXJhbXMsIENvcmUuSGFzaCwgT3B0aW9uPENvbXBpbGFibGVCbG9jaz4sIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+XTtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRCdWlsZGVyIHtcbiAgc3RhdGljKGRlZmluaXRpb246IG51bWJlciwgYXJnczogQ29tcG9uZW50QXJncyk6IHZvaWQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsQUFBTSxPQUFDLE1BQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPcGFxdWUsXG4gIE9wdGlvbixcbiAgQ29tcGlsYWJsZUJsb2NrLFxuICBDb21wb25lbnRDYXBhYmlsaXRpZXMsXG4gIENvbXBpbGVUaW1lUHJvZ3JhbSxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3JlLCBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IE1hY3JvcyB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGludGVyZmFjZSBFYWdlclJlc29sdmVyPExvY2F0b3I+IHtcbiAgZ2V0Q2FwYWJpbGl0aWVzKGxvY2F0b3I6IExvY2F0b3IpOiBDb21wb25lbnRDYXBhYmlsaXRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJDb21waWxhdGlvbk9wdGlvbnM8VGVtcGxhdGVNZXRhLCBSIGV4dGVuZHMgRWFnZXJSZXNvbHZlcjxUZW1wbGF0ZU1ldGE+PiB7XG4gIHJlc29sdmVyOiBSO1xuICBwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW07XG4gIG1hY3JvczogTWFjcm9zO1xufVxuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHVuZGVmaW5lZCB8IG51bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRBcmdzID0gW0NvcmUuUGFyYW1zLCBDb3JlLkhhc2gsIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+LCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QnVpbGRlciB7XG4gIHN0YXRpYyhkZWZpbml0aW9uOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGEgPSBPcGFxdWU+IHtcbiAgaWQ/OiBPcHRpb248c3RyaW5nPjtcbiAgYmxvY2s6IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrO1xuICByZWZlcnJlcjogVGVtcGxhdGVNZXRhO1xufVxuIl19
import { assign } from '@glimmer/util';
import { CompilableProgram as CompilableProgramInstance } from './compilable-template';
import CompilableTemplate from './compilable-template';
import { WrappedBuilder } from "./wrapped-component";

@@ -8,3 +8,3 @@ let clientId = 0;

let id = templateId || `client-${clientId++}`;
let create = (compiler, envMeta) => {
let create = (options, envMeta) => {
let newMeta = envMeta ? assign({}, envMeta, meta) : meta;

@@ -14,3 +14,3 @@ if (!parsedBlock) {

}
return new TemplateImpl(compiler, { id, block: parsedBlock, referrer: newMeta });
return new TemplateImpl(options, { id, block: parsedBlock, referrer: newMeta });
};

@@ -20,4 +20,4 @@ return { id, meta, create };

class TemplateImpl {
constructor(compiler, parsedLayout) {
this.compiler = compiler;
constructor(options, parsedLayout) {
this.options = options;
this.parsedLayout = parsedLayout;

@@ -30,2 +30,3 @@ this.layout = null;

this.hasEval = block.hasEval;
this.statements = block.statements;
this.referrer = parsedLayout.referrer;

@@ -36,13 +37,23 @@ this.id = parsedLayout.id || `client-${clientId++}`;

if (this.layout) return this.layout;
return this.layout = new CompilableProgramInstance(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
return this.layout = compilable(this.parsedLayout, this.options, false);
}
asPartial() {
if (this.partial) return this.partial;
return this.layout = new CompilableProgramInstance(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: true }));
return this.partial = compilable(this.parsedLayout, this.options, true);
}
asWrappedLayout() {
if (this.wrappedLayout) return this.wrappedLayout;
return this.wrappedLayout = new WrappedBuilder(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
let compileOptions = assign({}, this.options, {
asPartial: false,
referrer: this.referrer
});
return this.wrappedLayout = new WrappedBuilder(compileOptions, this.parsedLayout);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLEFBQU8sU0FBRSxBQUFNLEFBQUUsY0FBTSxBQUFlLEFBQUM7QUFLdkMsQUFBTyxTQUFFLEFBQWlCLHFCQUFJLEFBQXlCLEFBQUUsaUNBQU0sQUFBdUIsQUFBQztBQUN2RixBQUFPLFNBQUUsQUFBYyxBQUFFLHNCQUFNLEFBQXFCLEFBQUM7QUFnQ3JELElBQUksQUFBUSxXQUFHLEFBQUMsQUFBQztBQVNqQixBQUFNLEFBQUMsQUFBTyx3Q0FBMEIsRUFBRSxBQUFFLElBQUUsQUFBVSxZQUFFLEFBQUksTUFBRSxBQUFLLEFBQXdDO0FBQzNHLFFBQUksQUFBb0MsQUFBQztBQUN6QyxRQUFJLEFBQUUsS0FBRyxBQUFVLEFBQUksd0JBQVUsQUFBUSxBQUFFLFVBQUUsQUFBQztBQUM5QyxRQUFJLEFBQU0sU0FBRyxDQUFDLEFBQThCLFVBQUUsQUFBWTtBQUN4RCxZQUFJLEFBQU8sVUFBRyxBQUFPLFVBQUcsQUFBTSxPQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsQUFBSSxBQUFDLFFBQUcsQUFBSSxBQUFDO0FBQ3pELEFBQUUsQUFBQyxZQUFDLENBQUMsQUFBVyxBQUFDLGFBQUMsQUFBQztBQUNqQixBQUFXLDBCQUFHLEFBQUksS0FBQyxBQUFLLE1BQUMsQUFBSyxBQUFDLEFBQUMsQUFDbEM7QUFBQztBQUNELEFBQU0sZUFBQyxJQUFJLEFBQVksYUFBQyxBQUFRLFVBQUUsRUFBRSxBQUFFLElBQUUsQUFBSyxPQUFFLEFBQVcsYUFBRSxBQUFRLFVBQUUsQUFBTyxBQUFHLEFBQUMsQUFBQyxBQUNwRjtBQUFDLEFBQUM7QUFDRixBQUFNLFdBQUMsRUFBRSxBQUFFLElBQUUsQUFBSSxNQUFFLEFBQU0sQUFBRSxBQUFDLEFBQzlCO0FBQUM7QUFFRDtBQVNFLGdCQUFvQixBQUErQixVQUFVLEFBQTJFO0FBQXBILGFBQVEsV0FBUixBQUFRLEFBQXVCO0FBQVUsYUFBWSxlQUFaLEFBQVksQUFBK0Q7QUFSaEksYUFBTSxTQUE4QixBQUFJLEFBQUM7QUFDekMsYUFBTyxVQUE4QixBQUFJLEFBQUM7QUFDMUMsYUFBYSxnQkFBOEIsQUFBSSxBQUFDO0FBT3RELFlBQUksRUFBRSxBQUFLLEFBQUUsVUFBRyxBQUFZLEFBQUM7QUFDN0IsQUFBSSxhQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDO0FBQzdCLEFBQUksYUFBQyxBQUFPLFVBQUcsQUFBSyxNQUFDLEFBQU8sQUFBQztBQUM3QixBQUFJLGFBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUM7QUFDdEMsQUFBSSxhQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGdCQUFVLEFBQVEsQUFBRSxVQUFFLEFBQUMsQUFDdEQ7QUFBQztBQUVELEFBQVE7QUFDTixBQUFFLEFBQUMsWUFBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLFFBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFNLEFBQUM7QUFDcEMsQUFBTSxlQUFDLEFBQUksS0FBQyxBQUFNLFNBQUcsSUFBSSxBQUF5QiwwQkFBQyxBQUFJLEtBQUMsQUFBUSw0QkFBTyxBQUFJLEtBQUMsQUFBWSxnQkFBRSxBQUFTLFdBQUUsQUFBSyxBQUFHLEFBQUMsQUFDaEg7QUFBQztBQUVELEFBQVM7QUFDUCxBQUFFLEFBQUMsWUFBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLFNBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFPLEFBQUM7QUFDdEMsQUFBTSxlQUFDLEFBQUksS0FBQyxBQUFNLFNBQUcsSUFBSSxBQUF5QiwwQkFBQyxBQUFJLEtBQUMsQUFBUSw0QkFBTyxBQUFJLEtBQUMsQUFBWSxnQkFBRSxBQUFTLFdBQUUsQUFBSSxBQUFHLEFBQUMsQUFDL0c7QUFBQztBQUVELEFBQWU7QUFDYixBQUFFLEFBQUMsWUFBQyxBQUFJLEtBQUMsQUFBYSxBQUFDLGVBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFhLEFBQUM7QUFDbEQsQUFBTSxlQUFDLEFBQUksS0FBQyxBQUFhLGdCQUFHLElBQUksQUFBYyxlQUFDLEFBQUksS0FBQyxBQUFRLDRCQUFPLEFBQUksS0FBQyxBQUFZLGdCQUFFLEFBQVMsV0FBRSxBQUFLLEFBQUcsQUFBQyxBQUM1RztBQUFDLEFBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSwgVGVtcGxhdGUsIE9wYXF1ZSwgT3B0aW9uLCBMYXlvdXRXaXRoQ29udGV4dCB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9ja1xufSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSBhcyBDb21waWxhYmxlUHJvZ3JhbUluc3RhbmNlIH0gZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IFdyYXBwZWRCdWlsZGVyIH0gZnJvbSBcIi4vd3JhcHBlZC1jb21wb25lbnRcIjtcbmltcG9ydCB7IExhenlDb21waWxlciB9IGZyb20gXCJAZ2xpbW1lci9vcGNvZGUtY29tcGlsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvcj4ge1xuICAvKipcbiAgICogVGVtcGxhdGUgaWRlbnRpZmllciwgaWYgcHJlY29tcGlsZWQgd2lsbCBiZSB0aGUgaWQgb2YgdGhlXG4gICAqIHByZWNvbXBpbGVkIHRlbXBsYXRlLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcGlsZSB0aW1lIG1ldGEuXG4gICAqL1xuICBtZXRhOiBMb2NhdG9yO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNyZWF0ZSBhbiBlbnZpcm9ubWVudCBzcGVjaWZpYyBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogb2YgdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnYgZ2xpbW1lciBFbnZpcm9ubWVudFxuICAgKi9cbiAgY3JlYXRlKGVudjogTGF6eUNvbXBpbGVyPExvY2F0b3I+KTogVGVtcGxhdGU8TG9jYXRvcj47XG4gIC8qKlxuICAgKiBVc2VkIHRvIGNyZWF0ZSBhbiBlbnZpcm9ubWVudCBzcGVjaWZpYyBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogb2YgdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnYgZ2xpbW1lciBFbnZpcm9ubWVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gbWV0YSBlbnZpcm9ubWVudCBzcGVjaWZpYyBpbmplY3Rpb25zIGludG8gbWV0YVxuICAgKi9cbiAgY3JlYXRlPFU+KGVudjogTGF6eUNvbXBpbGVyPExvY2F0b3I+LCBtZXRhOiBVKTogVGVtcGxhdGU8TG9jYXRvciAmIFU+O1xufVxuXG5sZXQgY2xpZW50SWQgPSAwO1xuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUganMgaW4gYSB0ZW1wbGF0ZSBtb2R1bGUgdG8gY2hhbmdlIGl0IGludG8gYSBmYWN0b3J5XG4gKiB0aGF0IGhhbmRsZXMgbGF6eSBwYXJzaW5nIHRoZSB0ZW1wbGF0ZSBhbmQgdG8gY3JlYXRlIHBlciBlbnYgc2luZ2xldG9uc1xuICogb2YgdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvcj4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPExvY2F0b3I+KTogVGVtcGxhdGVGYWN0b3J5PExvY2F0b3I+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PExvY2F0b3IsIFU+KHNlcmlhbGl6ZWRUZW1wbGF0ZTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxMb2NhdG9yPik6IFRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yICYgVT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3RvcnkoeyBpZDogdGVtcGxhdGVJZCwgbWV0YSwgYmxvY2sgfTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxhbnk+KTogVGVtcGxhdGVGYWN0b3J5PHt9PiB7XG4gIGxldCBwYXJzZWRCbG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2s7XG4gIGxldCBpZCA9IHRlbXBsYXRlSWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgbGV0IGNyZWF0ZSA9IChjb21waWxlcjogTGF6eUNvbXBpbGVyPE9wYXF1ZT4sIGVudk1ldGE/OiB7fSkgPT4ge1xuICAgIGxldCBuZXdNZXRhID0gZW52TWV0YSA/IGFzc2lnbih7fSwgZW52TWV0YSwgbWV0YSkgOiBtZXRhO1xuICAgIGlmICghcGFyc2VkQmxvY2spIHtcbiAgICAgIHBhcnNlZEJsb2NrID0gSlNPTi5wYXJzZShibG9jayk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVGVtcGxhdGVJbXBsKGNvbXBpbGVyLCB7IGlkLCBibG9jazogcGFyc2VkQmxvY2ssIHJlZmVycmVyOiBuZXdNZXRhLCB9KTtcbiAgfTtcbiAgcmV0dXJuIHsgaWQsIG1ldGEsIGNyZWF0ZSB9O1xufVxuXG5jbGFzcyBUZW1wbGF0ZUltcGw8TG9jYXRvciA9IE9wYXF1ZT4gaW1wbGVtZW50cyBUZW1wbGF0ZTxMb2NhdG9yPiB7XG4gIHByaXZhdGUgbGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSBwYXJ0aWFsOiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSB3cmFwcGVkTGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgaGFzRXZhbDogYm9vbGVhbjtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWZlcnJlcjogTG9jYXRvcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBMYXp5Q29tcGlsZXI8TG9jYXRvcj4sIHByaXZhdGUgcGFyc2VkTGF5b3V0OiBQaWNrPExheW91dFdpdGhDb250ZXh0PExvY2F0b3I+LCAnaWQnIHwgJ2Jsb2NrJyB8ICdyZWZlcnJlcic+KSB7XG4gICAgbGV0IHsgYmxvY2sgfSA9IHBhcnNlZExheW91dDtcbiAgICB0aGlzLnN5bWJvbHMgPSBibG9jay5zeW1ib2xzO1xuICAgIHRoaXMuaGFzRXZhbCA9IGJsb2NrLmhhc0V2YWw7XG4gICAgdGhpcy5yZWZlcnJlciA9IHBhcnNlZExheW91dC5yZWZlcnJlcjtcbiAgICB0aGlzLmlkID0gcGFyc2VkTGF5b3V0LmlkIHx8IGBjbGllbnQtJHtjbGllbnRJZCsrfWA7XG4gIH1cblxuICBhc0xheW91dCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMubGF5b3V0KSByZXR1cm4gdGhpcy5sYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID0gbmV3IENvbXBpbGFibGVQcm9ncmFtSW5zdGFuY2UodGhpcy5jb21waWxlciwgeyAuLi50aGlzLnBhcnNlZExheW91dCwgYXNQYXJ0aWFsOiBmYWxzZSB9KTtcbiAgfVxuXG4gIGFzUGFydGlhbCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMucGFydGlhbCkgcmV0dXJuIHRoaXMucGFydGlhbDtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQgPSBuZXcgQ29tcGlsYWJsZVByb2dyYW1JbnN0YW5jZSh0aGlzLmNvbXBpbGVyLCB7IC4uLnRoaXMucGFyc2VkTGF5b3V0LCBhc1BhcnRpYWw6IHRydWUgfSk7XG4gIH1cblxuICBhc1dyYXBwZWRMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLndyYXBwZWRMYXlvdXQpIHJldHVybiB0aGlzLndyYXBwZWRMYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXMud3JhcHBlZExheW91dCA9IG5ldyBXcmFwcGVkQnVpbGRlcih0aGlzLmNvbXBpbGVyLCB7IC4uLnRoaXMucGFyc2VkTGF5b3V0LCBhc1BhcnRpYWw6IGZhbHNlIH0pO1xuICB9XG59XG4iXX0=
export function compilable(layout, options, asPartial) {
let { block, referrer } = layout;
let { hasEval, symbols } = block;
let compileOptions = assign({}, options, { asPartial, referrer });
return new CompilableTemplate(block.statements, layout, compileOptions, { referrer, hasEval, symbols });
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLEFBQU8sU0FBRSxBQUFNLEFBQUUsY0FBTSxBQUFlLEFBQUM7QUFNdkMsT0FBTyxBQUFrQix3QkFBTSxBQUF1QixBQUFDO0FBRXZELEFBQU8sU0FBRSxBQUFjLEFBQUUsc0JBQU0sQUFBcUIsQUFBQztBQWdDckQsSUFBSSxBQUFRLFdBQUcsQUFBQyxBQUFDO0FBU2pCLEFBQU0sQUFBQyxBQUFPLHdDQUEwQixFQUFFLEFBQUUsSUFBRSxBQUFVLFlBQUUsQUFBSSxNQUFFLEFBQUssQUFBd0M7QUFDM0csUUFBSSxBQUFvQyxBQUFDO0FBQ3pDLFFBQUksQUFBRSxLQUFHLEFBQVUsQUFBSSx3QkFBVSxBQUFRLEFBQUUsVUFBRSxBQUFDO0FBQzlDLFFBQUksQUFBTSxTQUFHLENBQUMsQUFBZ0MsU0FBRSxBQUFZO0FBQzFELFlBQUksQUFBTyxVQUFHLEFBQU8sVUFBRyxBQUFNLE9BQUMsQUFBRSxJQUFFLEFBQU8sU0FBRSxBQUFJLEFBQUMsUUFBRyxBQUFJLEFBQUM7QUFDekQsQUFBRSxBQUFDLFlBQUMsQ0FBQyxBQUFXLEFBQUMsYUFBQyxBQUFDO0FBQ2pCLEFBQVcsMEJBQUcsQUFBSSxLQUFDLEFBQUssTUFBQyxBQUFLLEFBQUMsQUFBQyxBQUNsQztBQUFDO0FBQ0QsQUFBTSxlQUFDLElBQUksQUFBWSxhQUFDLEFBQU8sU0FBRSxFQUFFLEFBQUUsSUFBRSxBQUFLLE9BQUUsQUFBVyxhQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUUsQUFBQyxBQUFDLEFBQ2xGO0FBQUMsQUFBQztBQUNGLEFBQU0sV0FBQyxFQUFFLEFBQUUsSUFBRSxBQUFJLE1BQUUsQUFBTSxBQUFFLEFBQUMsQUFDOUI7QUFBQztBQUVEO0FBVUUsZ0JBQW9CLEFBQXNDLFNBQVUsQUFBd0M7QUFBeEYsYUFBTyxVQUFQLEFBQU8sQUFBK0I7QUFBVSxhQUFZLGVBQVosQUFBWSxBQUE0QjtBQVRwRyxhQUFNLFNBQThCLEFBQUksQUFBQztBQUN6QyxhQUFPLFVBQThCLEFBQUksQUFBQztBQUMxQyxhQUFhLGdCQUE4QixBQUFJLEFBQUM7QUFRdEQsWUFBSSxFQUFFLEFBQUssQUFBRSxVQUFHLEFBQVksQUFBQztBQUM3QixBQUFJLGFBQUMsQUFBTyxVQUFHLEFBQUssTUFBQyxBQUFPLEFBQUM7QUFDN0IsQUFBSSxhQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDO0FBQzdCLEFBQUksYUFBQyxBQUFVLGFBQUcsQUFBSyxNQUFDLEFBQVUsQUFBQztBQUNuQyxBQUFJLGFBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUM7QUFDdEMsQUFBSSxhQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGdCQUFVLEFBQVEsQUFBRSxVQUFFLEFBQUMsQUFDdEQ7QUFBQztBQUVELEFBQVE7QUFDTixBQUFFLEFBQUMsWUFBQyxBQUFJLEtBQUMsQUFBTSxBQUFDLFFBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFNLEFBQUM7QUFDcEMsQUFBTSxlQUFDLEFBQUksS0FBQyxBQUFNLFNBQUcsQUFBVSxXQUFDLEFBQUksS0FBQyxBQUFZLGNBQUUsQUFBSSxLQUFDLEFBQU8sU0FBRSxBQUFLLEFBQUMsQUFBQyxBQUMxRTtBQUFDO0FBRUQsQUFBUztBQUNQLEFBQUUsQUFBQyxZQUFDLEFBQUksS0FBQyxBQUFPLEFBQUMsU0FBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQU8sQUFBQztBQUN0QyxBQUFNLGVBQUMsQUFBSSxLQUFDLEFBQU8sVUFBRyxBQUFVLFdBQUMsQUFBSSxLQUFDLEFBQVksY0FBRSxBQUFJLEtBQUMsQUFBTyxTQUFFLEFBQUksQUFBQyxBQUFDLEFBQzFFO0FBQUM7QUFFRCxBQUFlO0FBQ2IsQUFBRSxBQUFDLFlBQUMsQUFBSSxLQUFDLEFBQWEsQUFBQyxlQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBYSxBQUFDO0FBQ2xELFlBQUksQUFBYyx3QkFBd0MsQUFBRSxJQUFFLEFBQUksS0FBQyxBQUFPO0FBQ3hFLEFBQVMsdUJBQUUsQUFBSztBQUNoQixBQUFRLHNCQUFFLEFBQUksS0FBQyxBQUFRLEFBQ3hCLEFBQUMsQUFBQztBQUh5RSxTQUF6QixBQUFNO0FBSXpELEFBQU0sZUFBQyxBQUFJLEtBQUMsQUFBYSxnQkFBRyxJQUFJLEFBQWMsZUFBQyxBQUFjLGdCQUFFLEFBQUksS0FBQyxBQUFZLEFBQUMsQUFBQyxBQUNwRjtBQUFDLEFBQ0Y7O0FBRUQsQUFBTSwyQkFBbUMsQUFBa0MsUUFBRSxBQUFnQyxTQUFFLEFBQWtCO0FBQy9ILFFBQUksRUFBRSxBQUFLLE9BQUUsQUFBUSxBQUFFLGFBQUcsQUFBTSxBQUFDO0FBQ2pDLFFBQUksRUFBRSxBQUFPLFNBQUUsQUFBTyxBQUFFLFlBQUcsQUFBSyxBQUFDO0FBQ2pDLFFBQUksQUFBYyxpQkFBRyxBQUFNLE9BQUMsQUFBRSxJQUFFLEFBQU8sU0FBRSxFQUFFLEFBQVMsV0FBRSxBQUFRLEFBQUUsQUFBQyxBQUFDO0FBRWxFLEFBQU0sV0FBQyxJQUFJLEFBQWtCLG1CQUFDLEFBQUssTUFBQyxBQUFVLFlBQUUsQUFBTSxRQUFFLEFBQWMsZ0JBQUUsRUFBRSxBQUFRLFVBQUUsQUFBTyxTQUFFLEFBQU8sQUFBRSxBQUFDLEFBQUMsQUFDMUc7QUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBpbGFibGVQcm9ncmFtLCBUZW1wbGF0ZSwgT3BhcXVlLCBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2ssXG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2ssXG4gIFN0YXRlbWVudFxufSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgQ29tcGlsYWJsZVRlbXBsYXRlIGZyb20gJy4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBQYXJzZWRMYXlvdXQgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tIFwiLi93cmFwcGVkLWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ29tcGlsZU9wdGlvbnMsIFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuL3N5bnRheFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGE+IHtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGlkZW50aWZpZXIsIGlmIHByZWNvbXBpbGVkIHdpbGwgYmUgdGhlIGlkIG9mIHRoZVxuICAgKiBwcmVjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBpbGUgdGltZSBtZXRhLlxuICAgKi9cbiAgbWV0YTogVGVtcGxhdGVNZXRhO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNyZWF0ZSBhbiBlbnZpcm9ubWVudCBzcGVjaWZpYyBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogb2YgdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnYgZ2xpbW1lciBFbnZpcm9ubWVudFxuICAgKi9cbiAgY3JlYXRlKGVudjogVGVtcGxhdGVPcHRpb25zPE9wYXF1ZT4pOiBUZW1wbGF0ZTxUZW1wbGF0ZU1ldGE+O1xuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IG1ldGEgZW52aXJvbm1lbnQgc3BlY2lmaWMgaW5qZWN0aW9ucyBpbnRvIG1ldGFcbiAgICovXG4gIGNyZWF0ZTxVPihlbnY6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+LCBtZXRhOiBVKTogVGVtcGxhdGU8VGVtcGxhdGVNZXRhICYgVT47XG59XG5cbmxldCBjbGllbnRJZCA9IDA7XG5cbi8qKlxuICogV3JhcHMgYSB0ZW1wbGF0ZSBqcyBpbiBhIHRlbXBsYXRlIG1vZHVsZSB0byBjaGFuZ2UgaXQgaW50byBhIGZhY3RvcnlcbiAqIHRoYXQgaGFuZGxlcyBsYXp5IHBhcnNpbmcgdGhlIHRlbXBsYXRlIGFuZCB0byBjcmVhdGUgcGVyIGVudiBzaW5nbGV0b25zXG4gKiBvZiB0aGUgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGE+KHNlcmlhbGl6ZWRUZW1wbGF0ZTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxUZW1wbGF0ZU1ldGE+KTogVGVtcGxhdGVGYWN0b3J5PFRlbXBsYXRlTWV0YT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhLCBVPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8VGVtcGxhdGVNZXRhPik6IFRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGEgJiBVPjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRlbXBsYXRlRmFjdG9yeSh7IGlkOiB0ZW1wbGF0ZUlkLCBtZXRhLCBibG9jayB9OiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPGFueT4pOiBUZW1wbGF0ZUZhY3Rvcnk8e30+IHtcbiAgbGV0IHBhcnNlZEJsb2NrOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaztcbiAgbGV0IGlkID0gdGVtcGxhdGVJZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICBsZXQgY3JlYXRlID0gKG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+LCBlbnZNZXRhPzoge30pID0+IHtcbiAgICBsZXQgbmV3TWV0YSA9IGVudk1ldGEgPyBhc3NpZ24oe30sIGVudk1ldGEsIG1ldGEpIDogbWV0YTtcbiAgICBpZiAoIXBhcnNlZEJsb2NrKSB7XG4gICAgICBwYXJzZWRCbG9jayA9IEpTT04ucGFyc2UoYmxvY2spO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlSW1wbChvcHRpb25zLCB7IGlkLCBibG9jazogcGFyc2VkQmxvY2ssIHJlZmVycmVyOiBuZXdNZXRhIH0pO1xuICB9O1xuICByZXR1cm4geyBpZCwgbWV0YSwgY3JlYXRlIH07XG59XG5cbmNsYXNzIFRlbXBsYXRlSW1wbDxUZW1wbGF0ZU1ldGEgPSBPcGFxdWU+IGltcGxlbWVudHMgVGVtcGxhdGU8VGVtcGxhdGVNZXRhPiB7XG4gIHByaXZhdGUgbGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSBwYXJ0aWFsOiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSB3cmFwcGVkTGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgaGFzRXZhbDogYm9vbGVhbjtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWZlcnJlcjogVGVtcGxhdGVNZXRhO1xuICBwcml2YXRlIHN0YXRlbWVudHM6IFN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogVGVtcGxhdGVPcHRpb25zPFRlbXBsYXRlTWV0YT4sIHByaXZhdGUgcGFyc2VkTGF5b3V0OiBQYXJzZWRMYXlvdXQ8VGVtcGxhdGVNZXRhPikge1xuICAgIGxldCB7IGJsb2NrIH0gPSBwYXJzZWRMYXlvdXQ7XG4gICAgdGhpcy5zeW1ib2xzID0gYmxvY2suc3ltYm9scztcbiAgICB0aGlzLmhhc0V2YWwgPSBibG9jay5oYXNFdmFsO1xuICAgIHRoaXMuc3RhdGVtZW50cyA9IGJsb2NrLnN0YXRlbWVudHM7XG4gICAgdGhpcy5yZWZlcnJlciA9IHBhcnNlZExheW91dC5yZWZlcnJlcjtcbiAgICB0aGlzLmlkID0gcGFyc2VkTGF5b3V0LmlkIHx8IGBjbGllbnQtJHtjbGllbnRJZCsrfWA7XG4gIH1cblxuICBhc0xheW91dCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMubGF5b3V0KSByZXR1cm4gdGhpcy5sYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID0gY29tcGlsYWJsZSh0aGlzLnBhcnNlZExheW91dCwgdGhpcy5vcHRpb25zLCBmYWxzZSk7XG4gIH1cblxuICBhc1BhcnRpYWwoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLnBhcnRpYWwpIHJldHVybiB0aGlzLnBhcnRpYWw7XG4gICAgcmV0dXJuIHRoaXMucGFydGlhbCA9IGNvbXBpbGFibGUodGhpcy5wYXJzZWRMYXlvdXQsIHRoaXMub3B0aW9ucywgdHJ1ZSk7XG4gIH1cblxuICBhc1dyYXBwZWRMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLndyYXBwZWRMYXlvdXQpIHJldHVybiB0aGlzLndyYXBwZWRMYXlvdXQ7XG4gICAgbGV0IGNvbXBpbGVPcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+ID0gYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIHtcbiAgICAgIGFzUGFydGlhbDogZmFsc2UsXG4gICAgICByZWZlcnJlcjogdGhpcy5yZWZlcnJlclxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLndyYXBwZWRMYXlvdXQgPSBuZXcgV3JhcHBlZEJ1aWxkZXIoY29tcGlsZU9wdGlvbnMsIHRoaXMucGFyc2VkTGF5b3V0KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsYWJsZTxUZW1wbGF0ZU1ldGE+KGxheW91dDogUGFyc2VkTGF5b3V0PFRlbXBsYXRlTWV0YT4sIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+LCBhc1BhcnRpYWw6IGJvb2xlYW4pIHtcbiAgbGV0IHsgYmxvY2ssIHJlZmVycmVyIH0gPSBsYXlvdXQ7XG4gIGxldCB7IGhhc0V2YWwsIHN5bWJvbHMgfSA9IGJsb2NrO1xuICBsZXQgY29tcGlsZU9wdGlvbnMgPSBhc3NpZ24oe30sIG9wdGlvbnMsIHsgYXNQYXJ0aWFsLCByZWZlcnJlciB9KTtcblxuICByZXR1cm4gbmV3IENvbXBpbGFibGVUZW1wbGF0ZShibG9jay5zdGF0ZW1lbnRzLCBsYXlvdXQsIGNvbXBpbGVPcHRpb25zLCB7IHJlZmVycmVyLCBoYXNFdmFsLCBzeW1ib2xzIH0pO1xufVxuIl19
import { Register } from '@glimmer/vm';
import { debug } from './compiler';
import { CompilableBlock as CompilableBlockInstance } from './compilable-template';
import CompilableTemplate from './compilable-template';
import { debugSlice } from './debug';
import { ATTRS_BLOCK } from './syntax';

@@ -8,4 +8,4 @@

export class WrappedBuilder {
constructor(compiler, layout) {
this.compiler = compiler;
constructor(options, layout) {
this.options = options;
this.layout = layout;

@@ -46,4 +46,6 @@ let { block } = layout;

// Exit
let { compiler, layout } = this;
let b = compiler.builderFor(layout);
let { options, layout, referrer } = this;
let { program, resolver, macros, asPartial } = options;
let { Builder } = options;
let b = new Builder(program, resolver, referrer, macros, layout, asPartial);
b.startLabels();

@@ -62,3 +64,3 @@ b.fetch(Register.s1);

b.label('BODY');
b.invokeStaticBlock(blockFor(layout, compiler));
b.invokeStaticBlock(blockFor(layout, this.options));
b.fetch(Register.s1);

@@ -70,5 +72,8 @@ b.jumpUnless('END');

b.stopLabels();
let handle = b.commit();
let handle = b.commit(options.program.heap, layout.block.symbols.length);
if (false) {
debug(compiler, handle);
let { program, program: { heap } } = options;
let start = heap.getaddr(handle);
let end = start + heap.sizeof(handle);
debugSlice(program, start, end);
}

@@ -78,10 +83,5 @@ return handle;

}
function blockFor(layout, compiler) {
return new CompilableBlockInstance(compiler, {
block: {
statements: layout.block.statements,
parameters: EMPTY_ARRAY
},
containingLayout: layout
});
function blockFor(layout, options) {
let { block, referrer } = layout;
return new CompilableTemplate(block.statements, layout, options, { referrer, parameters: EMPTY_ARRAY });
}

@@ -95,7 +95,9 @@ export class ComponentBuilder {

let { builder } = this;
let { resolver } = builder;
if (handle !== null) {
let { capabilities, compilable } = builder.compiler.resolveLayoutForHandle(handle);
if (compilable) {
let capabilities = resolver.getCapabilities(handle);
if (capabilities.dynamicLayout === false) {
let layout = resolver.getLayout(handle);
builder.pushComponentDefinition(handle);
builder.invokeStaticComponent(capabilities, compilable, null, params, hash, false, _default, inverse);
builder.invokeStaticComponent(capabilities, layout, null, params, hash, false, _default, inverse);
} else {

@@ -108,2 +110,2 @@ builder.pushComponentDefinition(handle);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEFBQU8sU0FBRSxBQUFRLEFBQUUsZ0JBQU0sQUFBYSxBQUFDO0FBUXZDLEFBQU8sU0FBRSxBQUFLLEFBQXVCLGFBQU0sQUFBWSxBQUFDO0FBQ3hELEFBQU8sU0FBRSxBQUFlLG1CQUFJLEFBQXVCLEFBQUUsK0JBQU0sQUFBdUIsQUFBQztBQUVuRixBQUFPLFNBQUUsQUFBVyxBQUFFLG1CQUFNLEFBQVUsQUFBQyxBQUV2QyxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsQUFBRSxtQkFBTSxBQUFlLEFBQUM7QUFFNUMsQUFBTTtBQUdKLGdCQUFvQixBQUEwQyxVQUFVLEFBQWtDO0FBQXRGLGFBQVEsV0FBUixBQUFRLEFBQWtDO0FBQVUsYUFBTSxTQUFOLEFBQU0sQUFBNEI7QUFDeEcsWUFBSSxFQUFFLEFBQUssQUFBRSxVQUFHLEFBQU0sQUFBQztBQUV2QixBQUFJLGFBQUMsQUFBVztBQUNkLEFBQU8scUJBQUUsQUFBSyxNQUFDLEFBQU87QUFDdEIsQUFBTyxxQkFBRSxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sT0FBQyxDQUFDLEFBQVcsQUFBQyxBQUFDLEFBQzdDLEFBQUMsQUFDSjtBQUpxQjtBQUlwQjtBQUVELEFBQU87QUFDTCxBQUFpQjtBQUNqQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBMEI7QUFDMUIsQUFBcUM7QUFDckMsQUFBMEI7QUFDMUIsQUFBK0I7QUFDL0IsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQStCO0FBQy9CLEFBQTJCO0FBQzNCLEFBQWM7QUFDZCxBQUF5QjtBQUN6QixBQUFzQjtBQUN0QixBQUFjO0FBQ2Qs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QUFDLEFBQU0sQUFBQyxBQUFDO0FBRW5GLEFBQUUsQUFBQyxnQkFBQyxBQUFVLEFBQUMsWUFBQyxBQUFDO0FBQ2YsQUFBTyx3QkFBQyxBQUF1Qix3QkFBQyxBQUFNLEFBQUMsQUFBQztBQUN4QyxBQUFPLHdCQUFDLEFBQXFCLHNCQUFDLEFBQVksY0FBRSxBQUFVLFlBQUUsQUFBSSxNQUFFLEFBQU0sUUFBRSxBQUFJLE1BQUUsQUFBSyxPQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN4RztBQUFDLEFBQUMsQUFBSSxtQkFBQyxBQUFDO0FBQ04sQUFBTyx3QkFBQyxBQUF1Qix3QkFBQyxBQUFNLEFBQUMsQUFBQztBQUN4QyxBQUFPLHdCQUFDLEFBQWUsZ0JBQUMsQUFBSSxNQUFFLEFBQU0sUUFBRSxBQUFJLE1BQUUsQUFBSyxPQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN4RTtBQUFDLEFBQ0g7QUFBQyxBQUNIO0FBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZ2lzdGVyIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgUHJvZ3JhbVN5bWJvbFRhYmxlLCBDb21waWxhYmxlUHJvZ3JhbSwgQ29tcGlsYWJsZUJsb2NrLCBMYXlvdXRXaXRoQ29udGV4dCwgQ29tcGlsZXIsIFJlY2FzdCB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnRBcmdzLFxuICBDb21wb25lbnRCdWlsZGVyIGFzIElDb21wb25lbnRCdWlsZGVyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IGRlYnVnLCBBbnlBYnN0cmFjdENvbXBpbGVyIH0gZnJvbSAnLi9jb21waWxlcic7XG5pbXBvcnQgeyBDb21waWxhYmxlQmxvY2sgYXMgQ29tcGlsYWJsZUJsb2NrSW5zdGFuY2UgfSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgT3Bjb2RlQnVpbGRlciB9IGZyb20gJy4vb3Bjb2RlLWJ1aWxkZXInO1xuaW1wb3J0IHsgQVRUUlNfQkxPQ0sgfSBmcm9tICcuL3N5bnRheCc7XG5cbmltcG9ydCB7IERFQlVHIH0gZnJvbSBcIkBnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzXCI7XG5pbXBvcnQgeyBFTVBUWV9BUlJBWSB9IGZyb20gXCJAZ2xpbW1lci91dGlsXCI7XG5cbmV4cG9ydCBjbGFzcyBXcmFwcGVkQnVpbGRlcjxMb2NhdG9yPiBpbXBsZW1lbnRzIENvbXBpbGFibGVQcm9ncmFtIHtcbiAgcHVibGljIHN5bWJvbFRhYmxlOiBQcm9ncmFtU3ltYm9sVGFibGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXI8T3Bjb2RlQnVpbGRlcjxMb2NhdG9yPj4sIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRXaXRoQ29udGV4dDxMb2NhdG9yPikge1xuICAgIGxldCB7IGJsb2NrIH0gPSBsYXlvdXQ7XG5cbiAgICB0aGlzLnN5bWJvbFRhYmxlID0ge1xuICAgICAgaGFzRXZhbDogYmxvY2suaGFzRXZhbCxcbiAgICAgIHN5bWJvbHM6IGJsb2NrLnN5bWJvbHMuY29uY2F0KFtBVFRSU19CTE9DS10pXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBpbGUoKTogbnVtYmVyIHtcbiAgICAvLz09PT09PT09RFlOQU1JQ1xuICAgIC8vICAgICAgICBQdXRWYWx1ZShUYWdFeHByKVxuICAgIC8vICAgICAgICBUZXN0XG4gICAgLy8gICAgICAgIEp1bXBVbmxlc3MoQk9EWSlcbiAgICAvLyAgICAgICAgT3BlbkR5bmFtaWNQcmltaXRpdmVFbGVtZW50XG4gICAgLy8gICAgICAgIERpZENyZWF0ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYXR0ciBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIEZsdXNoRWxlbWVudFxuICAgIC8vIEJPRFk6ICBOb29wXG4gICAgLy8gICAgICAgIC4uLmJvZHkgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBQdXRWYWx1ZShUYWdFeHByKVxuICAgIC8vICAgICAgICBUZXN0XG4gICAgLy8gICAgICAgIEp1bXBVbmxlc3MoRU5EKVxuICAgIC8vICAgICAgICBDbG9zZUVsZW1lbnRcbiAgICAvLyBFTkQ6ICAgTm9vcFxuICAgIC8vICAgICAgICBEaWRSZW5kZXJMYXlvdXRcbiAgICAvLyAgICAgICAgRXhpdFxuICAgIC8vXG4gICAgLy89PT09PT09PVNUQVRJQ1xuICAgIC8vICAgICAgICBPcGVuUHJpbWl0aXZlRWxlbWVudE9wY29kZVxuICAgIC8vICAgICAgICBEaWRDcmVhdGVFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmF0dHIgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBGbHVzaEVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYm9keSBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIENsb3NlRWxlbWVudFxuICAgIC8vICAgICAgICBEaWRSZW5kZXJMYXlvdXRcbiAgICAvLyAgICAgICAgRXhpdFxuXG4gICAgbGV0IHsgY29tcGlsZXIsIGxheW91dCB9ID0gdGhpcztcbiAgICBsZXQgYiA9IGNvbXBpbGVyLmJ1aWxkZXJGb3IobGF5b3V0KTtcblxuICAgIGIuc3RhcnRMYWJlbHMoKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5nZXRDb21wb25lbnRUYWdOYW1lKFJlZ2lzdGVyLnMwKTtcbiAgICBiLnByaW1pdGl2ZVJlZmVyZW5jZSgpO1xuXG4gICAgYi5kdXAoKTtcbiAgICBiLmxvYWQoUmVnaXN0ZXIuczEpO1xuXG4gICAgYi5qdW1wVW5sZXNzKCdCT0RZJyk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcbiAgICBiLnB1dENvbXBvbmVudE9wZXJhdGlvbnMoKTtcbiAgICBiLm9wZW5EeW5hbWljRWxlbWVudCgpO1xuICAgIGIuZGlkQ3JlYXRlRWxlbWVudChSZWdpc3Rlci5zMCk7XG4gICAgYi5mbHVzaEVsZW1lbnQoKTtcblxuICAgIGIubGFiZWwoJ0JPRFknKTtcblxuICAgIGIuaW52b2tlU3RhdGljQmxvY2soYmxvY2tGb3IobGF5b3V0LCBjb21waWxlcikpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5qdW1wVW5sZXNzKCdFTkQnKTtcbiAgICBiLmNsb3NlRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnRU5EJyk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuc3RvcExhYmVscygpO1xuXG4gICAgbGV0IGhhbmRsZSA9IGIuY29tbWl0KCk7XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIGRlYnVnKGNvbXBpbGVyIGFzIFJlY2FzdDxDb21waWxlcjxPcGNvZGVCdWlsZGVyPExvY2F0b3I+PiwgQW55QWJzdHJhY3RDb21waWxlcj4sIGhhbmRsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhbmRsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBibG9ja0ZvcjxMb2NhdG9yPihsYXlvdXQ6IExheW91dFdpdGhDb250ZXh0LCBjb21waWxlcjogQ29tcGlsZXI8T3Bjb2RlQnVpbGRlcjxMb2NhdG9yPj4pOiBDb21waWxhYmxlQmxvY2sge1xuICByZXR1cm4gbmV3IENvbXBpbGFibGVCbG9ja0luc3RhbmNlKGNvbXBpbGVyLCB7XG4gICAgYmxvY2s6IHtcbiAgICAgIHN0YXRlbWVudHM6IGxheW91dC5ibG9jay5zdGF0ZW1lbnRzLFxuICAgICAgcGFyYW1ldGVyczogRU1QVFlfQVJSQVlcbiAgICB9LFxuICAgIGNvbnRhaW5pbmdMYXlvdXQ6IGxheW91dFxuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEJ1aWxkZXI8TG9jYXRvcj4gaW1wbGVtZW50cyBJQ29tcG9uZW50QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnVpbGRlcjogT3Bjb2RlQnVpbGRlcjxMb2NhdG9yPikge31cblxuICBzdGF0aWMoaGFuZGxlOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpIHtcbiAgICBsZXQgW3BhcmFtcywgaGFzaCwgX2RlZmF1bHQsIGludmVyc2VdID0gYXJncztcbiAgICBsZXQgeyBidWlsZGVyIH0gPSB0aGlzO1xuXG4gICAgaWYgKGhhbmRsZSAhPT0gbnVsbCkge1xuICAgICAgbGV0IHsgY2FwYWJpbGl0aWVzLCBjb21waWxhYmxlIH0gPSBidWlsZGVyLmNvbXBpbGVyLnJlc29sdmVMYXlvdXRGb3JIYW5kbGUoaGFuZGxlKTtcblxuICAgICAgaWYgKGNvbXBpbGFibGUpIHtcbiAgICAgICAgYnVpbGRlci5wdXNoQ29tcG9uZW50RGVmaW5pdGlvbihoYW5kbGUpO1xuICAgICAgICBidWlsZGVyLmludm9rZVN0YXRpY0NvbXBvbmVudChjYXBhYmlsaXRpZXMsIGNvbXBpbGFibGUsIG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VDb21wb25lbnQobnVsbCwgcGFyYW1zLCBoYXNoLCBmYWxzZSwgX2RlZmF1bHQsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLEFBQU8sU0FBRSxBQUFRLEFBQUUsZ0JBQU0sQUFBYSxBQUFDO0FBVXZDLE9BQU8sQUFBa0Isd0JBQU0sQUFBdUIsQUFBQztBQUN2RCxBQUFPLFNBQUUsQUFBVSxBQUFFLGtCQUFNLEFBQVMsQUFBQztBQUVyQyxBQUFPLFNBQUUsQUFBVyxBQUFFLG1CQUFNLEFBQVUsQUFBQyxBQUV2QyxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsQUFBRSxtQkFBTSxBQUFlLEFBQUM7QUFFNUMsQUFBTTtBQUlKLGdCQUFtQixBQUFxQyxTQUFVLEFBQWtDO0FBQWpGLGFBQU8sVUFBUCxBQUFPLEFBQThCO0FBQVUsYUFBTSxTQUFOLEFBQU0sQUFBNEI7QUFDbEcsWUFBSSxFQUFFLEFBQUssQUFBRSxVQUFHLEFBQU0sQUFBQztBQUV2QixBQUFJLGFBQUMsQUFBVztBQUNkLEFBQU8scUJBQUUsQUFBSyxNQUFDLEFBQU87QUFDdEIsQUFBTyxxQkFBRSxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sT0FBQyxDQUFDLEFBQVcsQUFBQyxBQUFDLEFBQzdDLEFBQUMsQUFDSjtBQUpxQjtBQUlwQjtBQUVELEFBQU87QUFDTCxBQUFpQjtBQUNqQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBMEI7QUFDMUIsQUFBcUM7QUFDckMsQUFBMEI7QUFDMUIsQUFBK0I7QUFDL0IsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQStCO0FBQy9CLEFBQTJCO0FBQzNCLEFBQWM7QUFDZCxBQUF5QjtBQUN6QixBQUFzQjtBQUN0QixBQUFjO0FBQ2QsQUFBeUI7QUFDekIsQUFBYztBQUNk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QUMsQUFBQyxBQUN4RTtBQUFDLEFBQ0g7QUFBQyxBQUNIO0FBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZ2lzdGVyIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgUHJvZ3JhbVN5bWJvbFRhYmxlLCBDb21waWxhYmxlUHJvZ3JhbSwgQ29tcGlsYWJsZUJsb2NrIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudEFyZ3MsXG4gIENvbXBvbmVudEJ1aWxkZXIgYXMgSUNvbXBvbmVudEJ1aWxkZXIsXG4gIFBhcnNlZExheW91dFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBDb21waWxlT3B0aW9ucyB9IGZyb20gJy4vc3ludGF4JztcbmltcG9ydCBDb21waWxhYmxlVGVtcGxhdGUgZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IGRlYnVnU2xpY2UgfSBmcm9tICcuL2RlYnVnJztcbmltcG9ydCB7IE9wY29kZUJ1aWxkZXIgfSBmcm9tICcuL29wY29kZS1idWlsZGVyJztcbmltcG9ydCB7IEFUVFJTX0JMT0NLIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5pbXBvcnQgeyBERUJVRyB9IGZyb20gXCJAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFnc1wiO1xuaW1wb3J0IHsgRU1QVFlfQVJSQVkgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgV3JhcHBlZEJ1aWxkZXI8VGVtcGxhdGVNZXRhPiBpbXBsZW1lbnRzIENvbXBpbGFibGVQcm9ncmFtIHtcbiAgcHVibGljIHN5bWJvbFRhYmxlOiBQcm9ncmFtU3ltYm9sVGFibGU7XG4gIHByaXZhdGUgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiwgcHJpdmF0ZSBsYXlvdXQ6IFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGE+KSB7XG4gICAgbGV0IHsgYmxvY2sgfSA9IGxheW91dDtcblxuICAgIHRoaXMuc3ltYm9sVGFibGUgPSB7XG4gICAgICBoYXNFdmFsOiBibG9jay5oYXNFdmFsLFxuICAgICAgc3ltYm9sczogYmxvY2suc3ltYm9scy5jb25jYXQoW0FUVFJTX0JMT0NLXSlcbiAgICB9O1xuICB9XG5cbiAgY29tcGlsZSgpOiBudW1iZXIge1xuICAgIC8vPT09PT09PT1EWU5BTUlDXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhCT0RZKVxuICAgIC8vICAgICAgICBPcGVuRHluYW1pY1ByaW1pdGl2ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gQk9EWTogIE5vb3BcbiAgICAvLyAgICAgICAgLi4uYm9keSBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhFTkQpXG4gICAgLy8gICAgICAgIENsb3NlRWxlbWVudFxuICAgIC8vIEVORDogICBOb29wXG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG4gICAgLy9cbiAgICAvLz09PT09PT09U1RBVElDXG4gICAgLy8gICAgICAgIE9wZW5QcmltaXRpdmVFbGVtZW50T3Bjb2RlXG4gICAgLy8gICAgICAgIERpZENyZWF0ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYXR0ciBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIEZsdXNoRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG5cbiAgICBsZXQgeyBvcHRpb25zLCBsYXlvdXQsIHJlZmVycmVyIH0gPSB0aGlzO1xuICAgIGxldCB7IHByb2dyYW0sIHJlc29sdmVyLCBtYWNyb3MsIGFzUGFydGlhbCB9ID0gb3B0aW9ucztcbiAgICBsZXQgeyBCdWlsZGVyIH0gPSBvcHRpb25zO1xuXG4gICAgbGV0IGIgPSBuZXcgQnVpbGRlcihwcm9ncmFtLCByZXNvbHZlciwgcmVmZXJyZXIsIG1hY3JvcywgbGF5b3V0LCBhc1BhcnRpYWwpO1xuXG4gICAgYi5zdGFydExhYmVscygpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmdldENvbXBvbmVudFRhZ05hbWUoUmVnaXN0ZXIuczApO1xuICAgIGIucHJpbWl0aXZlUmVmZXJlbmNlKCk7XG5cbiAgICBiLmR1cCgpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmp1bXBVbmxlc3MoJ0JPRFknKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIucHV0Q29tcG9uZW50T3BlcmF0aW9ucygpO1xuICAgIGIub3BlbkR5bmFtaWNFbGVtZW50KCk7XG4gICAgYi5kaWRDcmVhdGVFbGVtZW50KFJlZ2lzdGVyLnMwKTtcbiAgICBiLmZsdXNoRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnQk9EWScpO1xuXG4gICAgYi5pbnZva2VTdGF0aWNCbG9jayhibG9ja0ZvcihsYXlvdXQsIHRoaXMub3B0aW9ucykpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5qdW1wVW5sZXNzKCdFTkQnKTtcbiAgICBiLmNsb3NlRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnRU5EJyk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuc3RvcExhYmVscygpO1xuXG4gICAgbGV0IGhhbmRsZSA9IGIuY29tbWl0KG9wdGlvbnMucHJvZ3JhbS5oZWFwLCBsYXlvdXQuYmxvY2suc3ltYm9scy5sZW5ndGgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgeyBwcm9ncmFtLCBwcm9ncmFtOiB7IGhlYXAgfSB9ID0gb3B0aW9ucztcbiAgICAgIGxldCBzdGFydCA9IGhlYXAuZ2V0YWRkcihoYW5kbGUpO1xuICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgaGVhcC5zaXplb2YoaGFuZGxlKTtcbiAgICAgIGRlYnVnU2xpY2UocHJvZ3JhbSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhbmRsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBibG9ja0ZvcjxUZW1wbGF0ZU1ldGE+KGxheW91dDogUGFyc2VkTGF5b3V0LCBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+KTogQ29tcGlsYWJsZUJsb2NrIHtcbiAgbGV0IHsgYmxvY2ssIHJlZmVycmVyIH0gPSBsYXlvdXQ7XG5cbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGUoYmxvY2suc3RhdGVtZW50cywgbGF5b3V0LCBvcHRpb25zLCB7IHJlZmVycmVyLCBwYXJhbWV0ZXJzOiBFTVBUWV9BUlJBWSB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEJ1aWxkZXI8VGVtcGxhdGVNZXRhPiBpbXBsZW1lbnRzIElDb21wb25lbnRCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBidWlsZGVyOiBPcGNvZGVCdWlsZGVyPFRlbXBsYXRlTWV0YT4pIHt9XG5cbiAgc3RhdGljKGhhbmRsZTogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKSB7XG4gICAgbGV0IFtwYXJhbXMsIGhhc2gsIF9kZWZhdWx0LCBpbnZlcnNlXSA9IGFyZ3M7XG4gICAgbGV0IHsgYnVpbGRlciB9ID0gdGhpcztcbiAgICBsZXQgeyByZXNvbHZlciB9ID0gYnVpbGRlcjtcblxuICAgIGlmIChoYW5kbGUgIT09IG51bGwpIHtcbiAgICAgIGxldCBjYXBhYmlsaXRpZXMgPSByZXNvbHZlci5nZXRDYXBhYmlsaXRpZXMoaGFuZGxlKTtcblxuICAgICAgaWYgKGNhcGFiaWxpdGllcy5keW5hbWljTGF5b3V0ID09PSBmYWxzZSkge1xuICAgICAgICBsZXQgbGF5b3V0ID0gcmVzb2x2ZXIuZ2V0TGF5b3V0KGhhbmRsZSkhO1xuXG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VTdGF0aWNDb21wb25lbnQoY2FwYWJpbGl0aWVzLCBsYXlvdXQsIG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VDb21wb25lbnQobnVsbCwgcGFyYW1zLCBoYXNoLCBmYWxzZSwgX2RlZmF1bHQsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
export * from './lib/interfaces';
export { ATTRS_BLOCK, Macros } from './lib/syntax';
export * from './lib/lazy';
export * from './lib/compile';
export * from './lib/compiler';
export { CompilableBlock, CompilableProgram } from './lib/compilable-template';
export { LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, StdOpcodeBuilder } from './lib/opcode-builder';
export { LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, SimpleOpcodeBuilder } from './lib/opcode-builder';
export { PartialDefinition } from './lib/partial-template';
export { default as templateFactory } from './lib/template';
export { default as CompilableTemplate } from './lib/compilable-template';
export { debug, debugSlice, logOpcode } from './lib/debug';
export { WrappedBuilder } from './lib/wrapped-component';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxBQUFrQixBQUFDO0FBRWpDLEFBQU8sU0FDTCxBQUFXLGFBRVgsQUFBTSxBQUNQLGNBQU0sQUFBYyxBQUFDO0FBRXRCLGNBQWMsQUFBWSxBQUFDO0FBQzNCLGNBQWMsQUFBZSxBQUFDO0FBQzlCLGNBQWMsQUFBZ0IsQUFBQztBQUUvQixBQUFPLFNBQ0wsQUFBZSxpQkFDZixBQUFpQixBQUNsQix5QkFBTSxBQUEyQixBQUFDO0FBRW5DLEFBQU8sU0FDTCxBQUFpQixtQkFDakIsQUFBa0Isb0JBQ2xCLEFBQWEsZUFFYixBQUFnQixBQUNqQix3QkFBTSxBQUFzQixBQUFDO0FBRTlCLEFBQU8sU0FBRSxBQUFpQixBQUFFLHlCQUFNLEFBQXdCLEFBQUM7QUFFM0QsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFlLEFBRTNCLHVCQUFNLEFBQWdCLEFBQUM7QUFFeEIsQUFBTyxTQUNMLEFBQUssT0FDTCxBQUFVLFlBQ1YsQUFBUyxBQUNWLGlCQUFNLEFBQWEsQUFBQztBQUVyQixBQUFPLFNBQ0wsQUFBYyxBQUNmLHNCQUFNLEFBQXlCLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHtcbiAgQVRUUlNfQkxPQ0ssXG4gIENvbXBpbGVPcHRpb25zLFxuICBNYWNyb3Ncbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF6eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21waWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBpbGVyJztcblxuZXhwb3J0IHtcbiAgQ29tcGlsYWJsZUJsb2NrLFxuICBDb21waWxhYmxlUHJvZ3JhbVxufSBmcm9tICcuL2xpYi9jb21waWxhYmxlLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgTGF6eU9wY29kZUJ1aWxkZXIsXG4gIEVhZ2VyT3Bjb2RlQnVpbGRlcixcbiAgT3Bjb2RlQnVpbGRlcixcbiAgT3Bjb2RlQnVpbGRlckNvbnN0cnVjdG9yLFxuICBTdGRPcGNvZGVCdWlsZGVyLFxufSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlcic7XG5cbmV4cG9ydCB7IFBhcnRpYWxEZWZpbml0aW9uIH0gZnJvbSAnLi9saWIvcGFydGlhbC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICBUZW1wbGF0ZUZhY3Rvcnlcbn0gZnJvbSAnLi9saWIvdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxBQUFrQixBQUFDO0FBRWpDLEFBQU8sU0FDTCxBQUFXLGFBRVgsQUFBTSxBQUVQLGNBQU0sQUFBYyxBQUFDO0FBRXRCLEFBQU8sU0FFTCxBQUFpQixtQkFDakIsQUFBa0Isb0JBQ2xCLEFBQWEsZUFFYixBQUFtQixBQUNwQiwyQkFBTSxBQUFzQixBQUFDO0FBRTlCLEFBQU8sU0FBRSxBQUFpQixBQUFFLHlCQUFNLEFBQXdCLEFBQUM7QUFFM0QsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFlLEFBRTNCLHVCQUFNLEFBQWdCLEFBQUM7QUFFeEIsQUFBTyxTQUNMLEFBQU8sV0FBSSxBQUFrQixBQUM5QiwwQkFBTSxBQUEyQixBQUFDO0FBRW5DLEFBQU8sU0FDTCxBQUFLLE9BQ0wsQUFBVSxZQUNWLEFBQVMsQUFDVixpQkFBTSxBQUFhLEFBQUM7QUFFckIsQUFBTyxTQUNMLEFBQWMsQUFDZixzQkFBTSxBQUF5QixBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7XG4gIEFUVFJTX0JMT0NLLFxuICBDb21waWxlT3B0aW9ucyxcbiAgTWFjcm9zLFxuICBUZW1wbGF0ZU9wdGlvbnNcbn0gZnJvbSAnLi9saWIvc3ludGF4JztcblxuZXhwb3J0IHtcbiAgQ29tcGlsZVRpbWVMb29rdXAsXG4gIExhenlPcGNvZGVCdWlsZGVyLFxuICBFYWdlck9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXIsXG4gIE9wY29kZUJ1aWxkZXJDb25zdHJ1Y3RvcixcbiAgU2ltcGxlT3Bjb2RlQnVpbGRlcixcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbiB9IGZyb20gJy4vbGliL3BhcnRpYWwtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIHRlbXBsYXRlRmFjdG9yeSxcbiAgVGVtcGxhdGVGYWN0b3J5XG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBDb21waWxhYmxlVGVtcGxhdGUsXG59IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQge1xuICBkZWJ1ZyxcbiAgZGVidWdTbGljZSxcbiAgbG9nT3Bjb2RlXG59IGZyb20gJy4vbGliL2RlYnVnJztcblxuZXhwb3J0IHtcbiAgV3JhcHBlZEJ1aWxkZXIsXG59IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcbiJdfQ==

@@ -1,43 +0,27 @@

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import { debugSlice } from './debug';
import { statementCompiler } from './syntax';
export var PLACEHOLDER_HANDLE = -1;
export var CompilableProgram = function () {
function CompilableProgram(compiler, layout) {
_classCallCheck(this, CompilableProgram);
this.compiler = compiler;
this.layout = layout;
var CompilableTemplateImpl = function () {
function CompilableTemplateImpl(statements, containingLayout, options, symbolTable) {
_classCallCheck(this, CompilableTemplateImpl);
this.statements = statements;
this.containingLayout = containingLayout;
this.options = options;
this.symbolTable = symbolTable;
this.compiled = null;
this.statementCompiler = statementCompiler();
}
CompilableProgram.prototype.compile = function compile() {
if (this.compiled !== null) return this.compiled;
this.compiled = PLACEHOLDER_HANDLE;
var statements = this.layout.block.statements;
return this.compiled = this.compiler.add(statements, this.layout);
CompilableTemplateImpl.topLevel = function topLevel(block, options) {
return new CompilableTemplateImpl(block.statements, { block: block, referrer: options.referrer }, options, { hasEval: block.hasEval, symbols: block.symbols });
};
_createClass(CompilableProgram, [{
key: "symbolTable",
get: function get() {
return this.layout.block;
}
}]);
CompilableTemplateImpl.prototype.compile = function compile(stdLib) {
var compiled = this.compiled;
return CompilableProgram;
}();
export var CompilableBlock = function () {
function CompilableBlock(compiler, parsed) {
_classCallCheck(this, CompilableBlock);
this.compiler = compiler;
this.parsed = parsed;
this.compiled = null;
}
CompilableBlock.prototype.compile = function compile() {
if (this.compiled !== null) return this.compiled;
if (compiled !== null) return compiled;
// Track that compilation has started but not yet finished by temporarily

@@ -48,18 +32,31 @@ // using a placeholder handle. In eager compilation mode, where compile()

this.compiled = PLACEHOLDER_HANDLE;
var _parsed = this.parsed,
statements = _parsed.block.statements,
containingLayout = _parsed.containingLayout;
var options = this.options,
statements = this.statements,
containingLayout = this.containingLayout;
var referrer = containingLayout.referrer;
var program = options.program,
resolver = options.resolver,
macros = options.macros,
asPartial = options.asPartial,
Builder = options.Builder;
return this.compiled = this.compiler.add(statements, containingLayout);
};
var builder = new Builder(program, resolver, referrer, macros, containingLayout, asPartial, stdLib);
for (var i = 0; i < statements.length; i++) {
this.statementCompiler.compile(statements[i], builder);
}
var handle = builder.commit(program.heap, containingLayout.block.symbols.length);
if (false) {
var heap = program.heap;
_createClass(CompilableBlock, [{
key: "symbolTable",
get: function get() {
return this.parsed.block;
var start = heap.getaddr(handle);
var end = start + heap.sizeof(handle);
debugSlice(program, start, end);
}
}]);
return this.compiled = handle;
};
return CompilableBlock;
return CompilableTemplateImpl;
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBWUEsQUFBTSxPQUFDLElBQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUM7QUFFckMsQUFBTSxXQUdKOytCQUNZLEFBQTBCLFVBQzFCLEFBQXlCO0FBRHpCOzthQUFRLFdBQVIsQUFBUSxBQUFrQixBQUMxQjthQUFNLFNBSlYsQUFJSSxBQUFNLEFBQW1CO2FBSnJCLFdBQW1CLEFBQUksQUFBQyxBQUtyQyxBQUFDO0FBRUosQUFBSSxBQUFXOzs7WUFLVCxBQUFJLEtBQUMsQUFBUSxhQUFLLEFBQUksQUFBQyxNQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBUSxBQUFDLEFBRWpELEFBQUk7YUFBQyxBQUFRLFdBQUcsQUFBa0IsQUFBQyxBQUVuQyxBQUFJO0FBSkosQUFBRSxBQUFDLFlBSVksQUFBVSxBQUFFLEFBQUUsYUFBRyxBQUFJLEtBQUMsQUFBTSxBQUFDLEFBRTVDLEFBQU0sT0FGQSxBQUFLLEFBQUU7O2VBRU4sQUFBSSxLQUFDLEFBQVEsV0FBRyxBQUFJLEtBQUMsQUFBUSxTQUFDLEFBQUcsSUFBQyxBQUFVLFlBQUUsQUFBSSxLQUFDLEFBQU0sQUFBQyxBQUFDLEFBQ3BFLEFBQUMsQUFDRjs7Ozs7NEJBWkcsQUFBTTttQkFBQyxBQUFJLEtBQUMsQUFBTSxPQUFDLEFBQUssQUFBQyxBQUMzQixBQUFDO0FBRUQsQUFBTzs7Ozs7QUFXVCxBQUFNLFdBR0o7NkJBQ1UsQUFBMEIsVUFDMUIsQUFBd0I7QUFEeEI7O2FBQVEsV0FBUixBQUFRLEFBQWtCLEFBQzFCO2FBQU0sU0FKUixBQUlFLEFBQU0sQUFBa0I7YUFKbEIsV0FBbUIsQUFBSSxBQUFDLEFBS3JDLEFBQUM7QUFFSixBQUFJLEFBQVc7OztZQUtULEFBQUksS0FBQyxBQUFRLGFBQUssQUFBSSxBQUFDLE1BQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFRLEFBQUMsQUFFakQsQUFBeUU7QUFDekUsQUFBeUU7QUFDekUsQUFBNEU7QUFDNUUsQUFBb0Q7QUFDcEQsQUFBSTthQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDLEFBRW5DLEFBQUk7QUFSSixBQUFFLEFBQUMsc0JBUStDLEFBQUksS0FBQyxBQUFNLEFBQUMsQUFFOUQsQUFBTTtZQUZTLEFBQVUsQUFBRSxxQkFBckIsQUFBSyxBQUFFO1lBQWdCLEFBQWdCLEFBQUU7O2VBRXhDLEFBQUksS0FBQyxBQUFRLFdBQUcsQUFBSSxLQUFDLEFBQVEsU0FBQyxBQUFHLElBQUMsQUFBVSxZQUFFLEFBQWdCLEFBQUMsQUFBQyxBQUN6RSxBQUFDLEFBQ0Y7Ozs7OzRCQWhCRyxBQUFNO21CQUFDLEFBQUksS0FBQyxBQUFNLE9BQUMsQUFBSyxBQUFDLEFBQzNCLEFBQUM7QUFFRCxBQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsYWJsZVRlbXBsYXRlLFxuICBQcm9ncmFtU3ltYm9sVGFibGUsXG4gIENvbXBpbGFibGVQcm9ncmFtIGFzIElDb21waWxhYmxlUHJvZ3JhbSxcbiAgT3B0aW9uLFxuICBMYXlvdXRXaXRoQ29udGV4dCxcbiAgT3BhcXVlLFxuICBDb21waWxlcixcbiAgQmxvY2tTeW1ib2xUYWJsZSxcbiAgQmxvY2tXaXRoQ29udGV4dFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFBMQUNFSE9MREVSX0hBTkRMRSA9IC0xO1xuXG5leHBvcnQgY2xhc3MgQ29tcGlsYWJsZVByb2dyYW0gaW1wbGVtZW50cyBJQ29tcGlsYWJsZVByb2dyYW0ge1xuICBwcml2YXRlIGNvbXBpbGVkOiBPcHRpb248bnVtYmVyPiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNvbXBpbGVyOiBDb21waWxlcjxPcGFxdWU+LFxuICAgIHByb3RlY3RlZCBsYXlvdXQ6IExheW91dFdpdGhDb250ZXh0XG4gICkge31cblxuICBnZXQgc3ltYm9sVGFibGUoKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQuYmxvY2s7XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuY29tcGlsZWQgIT09IG51bGwpIHJldHVybiB0aGlzLmNvbXBpbGVkO1xuXG4gICAgdGhpcy5jb21waWxlZCA9IFBMQUNFSE9MREVSX0hBTkRMRTtcblxuICAgIGxldCB7IGJsb2NrOiB7IHN0YXRlbWVudHMgfSB9ID0gdGhpcy5sYXlvdXQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb21waWxlZCA9IHRoaXMuY29tcGlsZXIuYWRkKHN0YXRlbWVudHMsIHRoaXMubGF5b3V0KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcGlsYWJsZUJsb2NrIGltcGxlbWVudHMgQ29tcGlsYWJsZVRlbXBsYXRlPEJsb2NrU3ltYm9sVGFibGU+IHtcbiAgcHJpdmF0ZSBjb21waWxlZDogT3B0aW9uPG51bWJlcj4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyPE9wYXF1ZT4sXG4gICAgcHJpdmF0ZSBwYXJzZWQ6IEJsb2NrV2l0aENvbnRleHRcbiAgKSB7fVxuXG4gIGdldCBzeW1ib2xUYWJsZSgpOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZWQuYmxvY2s7XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuY29tcGlsZWQgIT09IG51bGwpIHJldHVybiB0aGlzLmNvbXBpbGVkO1xuXG4gICAgLy8gVHJhY2sgdGhhdCBjb21waWxhdGlvbiBoYXMgc3RhcnRlZCBidXQgbm90IHlldCBmaW5pc2hlZCBieSB0ZW1wb3JhcmlseVxuICAgIC8vIHVzaW5nIGEgcGxhY2Vob2xkZXIgaGFuZGxlLiBJbiBlYWdlciBjb21waWxhdGlvbiBtb2RlLCB3aGVyZSBjb21waWxlKClcbiAgICAvLyBtYXkgYmUgY2FsbGVkIHJlY3Vyc2l2ZWx5LCB3ZSB1c2UgdGhpcyBhcyBhIHNpZ25hbCB0aGF0IHRoZSBoYW5kbGUgY2Fubm90XG4gICAgLy8gYmUga25vd24gc3luY2hyb25vdXNseSBhbmQgbXVzdCBiZSBsaW5rZWQgbGF6aWx5LlxuICAgIHRoaXMuY29tcGlsZWQgPSBQTEFDRUhPTERFUl9IQU5ETEU7XG5cbiAgICBsZXQgeyBibG9jazogeyBzdGF0ZW1lbnRzIH0sIGNvbnRhaW5pbmdMYXlvdXQgfSA9IHRoaXMucGFyc2VkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZWQgPSB0aGlzLmNvbXBpbGVyLmFkZChzdGF0ZW1lbnRzLCBjb250YWluaW5nTGF5b3V0KTtcbiAgfVxufVxuIl19
export default CompilableTemplateImpl;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYWJsZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLEFBQU8sU0FBRSxBQUFVLEFBQUUsa0JBQU0sQUFBUyxBQUFDO0FBRXJDLEFBQU8sU0FBa0IsQUFBaUIsQUFBYSx5QkFBTSxBQUFVLEFBQUM7QUFFeEUsQUFBTSxPQUFDLElBQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUMsQUFFckMsQUFBTSxBQUFDLEFBQU87O0lBY1o7b0NBQW9CLEFBQXVCLFlBQVUsQUFBOEIsa0JBQVUsQUFBcUMsU0FBUyxBQUF3QjtBQUEvSTs7YUFBVSxhQUFWLEFBQVUsQUFBYSxBQUFVO2FBQWdCLG1CQUFoQixBQUFnQixBQUFjLEFBQVU7YUFBTyxVQUFQLEFBQU8sQUFBOEIsQUFBUzthQUFXLGNBSjlJLEFBSW1JLEFBQVcsQUFBYTthQUpuSixXQUFtQixBQUFJLEFBQUMsQUFLdEMsQUFBSTthQUFDLEFBQWlCLG9CQUFHLEFBQWlCLEFBQUUsQUFBQyxBQUMvQyxBQUFDO0FBZkQsQUFBTTs7MkJBQUMsQUFBUSw2QkFBZSxBQUE4QixPQUFFLEFBQXFDLFNBQ2pHLEFBQU07ZUFBQyxJQUFJLEFBQXNCLHVCQUMvQixBQUFLLE1BQUMsQUFBVSxZQUNoQixFQUFFLEFBQUssY0FBRSxBQUFRLFVBQUUsQUFBTyxRQUFDLEFBQVEsQUFBRSxZQUNyQyxBQUFPLFNBQ1AsRUFBRSxBQUFPLFNBQUUsQUFBSyxNQUFDLEFBQU8sU0FBRSxBQUFPLFNBQUUsQUFBSyxNQUFDLEFBQU8sQUFBRSxBQUNuRCxBQUFDLEFBQ0osQUFBQztBQVVELEFBQU87O2dFQUFDLEFBQWU7QUFDckIsQUFBSSxZQUFFLEFBQVEsQUFBRSxXQUFHLEFBQUksQUFBQyxBQUN4QixBQUFFLEFBQUM7O1lBQUMsQUFBUSxhQUFLLEFBQUksQUFBQyxNQUFDLEFBQU0sT0FBQyxBQUFRLEFBQUMsQUFFdkMsQUFBeUU7QUFDekUsQUFBeUU7QUFDekUsQUFBNEU7QUFDNUUsQUFBb0Q7QUFDcEQsQUFBSTthQUFDLEFBQVEsV0FBRyxBQUFrQixBQUFDLEFBRW5DLEFBQUk7WUFBRSxBQUFPLFVBQW1DLEFBQUksQUFBQyxBQUNyRCxBQUFJO1lBRFcsQUFBVTtZQUFFLEFBQWdCLEFBQUU7WUFDdkMsQUFBUSxBQUFFLFdBQUcsQUFBZ0IsQUFBQyxBQUNwQyxBQUFJO1lBQUUsQUFBTztZQUFFLEFBQVE7WUFBRSxBQUFNLFNBQXlCLEFBQU8sQUFBQyxBQUVoRTtZQUZpQyxBQUFTO1lBQUUsQUFBTyxBQUFFOztZQUVqRCxBQUFPLFVBQUcsSUFBSSxBQUFPLFFBQUMsQUFBTyxTQUFFLEFBQVEsVUFBRSxBQUFRLFVBQUUsQUFBTSxRQUFFLEFBQWdCLGtCQUFFLEFBQVMsV0FBRSxBQUFNLEFBQUMsQUFBQyxBQUVwRyxBQUFHLEFBQUM7YUFBQyxJQUFJLEFBQUMsSUFBRyxBQUFDLEdBQUUsQUFBQyxJQUFHLEFBQVUsV0FBQyxBQUFNLFFBQUUsQUFBQyxBQUFFLEtBQUUsQUFBQyxBQUMzQyxBQUFJO2lCQUFDLEFBQWlCLGtCQUFDLEFBQU8sUUFBQyxBQUFVLFdBQUMsQUFBQyxBQUFDLElBQUUsQUFBTyxBQUFDLEFBQUMsQUFDekQsQUFBQztBQUVEO1lBQUksQUFBTSxTQUFHLEFBQU8sUUFBQyxBQUFNLE9BQUMsQUFBTyxRQUFDLEFBQUksTUFBRSxBQUFnQixpQkFBQyxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sQUFBQyxBQUFDLEFBRWpGLEFBQUUsQUFBQyxBQUFDLEFBQUssQUFBQzs7QUFBQyxBQUFDLEFBQ1YsQUFBSSxnQkFBRSxBQUFJLEFBQUUsT0FBRyxBQUFPLEFBQUMsQUFDdkI7O2dCQUFJLEFBQUssUUFBRyxBQUFJLEtBQUMsQUFBTyxRQUFDLEFBQU0sQUFBQyxBQUFDLEFBQ2pDO2dCQUFJLEFBQUcsTUFBRyxBQUFLLFFBQUcsQUFBSSxLQUFDLEFBQU0sT0FBQyxBQUFNLEFBQUMsQUFBQyxBQUV0QyxBQUFVO3VCQUFDLEFBQU8sU0FBRSxBQUFLLE9BQUUsQUFBRyxBQUFDLEFBQUMsQUFDbEMsQUFBQztBQUVELEFBQU0sQUFBQztlQUFDLEFBQUksS0FBQyxBQUFRLFdBQUcsQUFBTSxBQUFDLEFBQUMsQUFDbEMsQUFBQyxBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsYWJsZVRlbXBsYXRlLFxuICBTVERMaWIsXG4gIFByb2dyYW1TeW1ib2xUYWJsZSxcbiAgQ29tcGlsYWJsZVByb2dyYW0sXG4gIE9wdGlvblxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlbWVudCwgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2sgfSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IGRlYnVnU2xpY2UgfSBmcm9tICcuL2RlYnVnJztcbmltcG9ydCB7IFBhcnNlZExheW91dCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21waWxlT3B0aW9ucywgc3RhdGVtZW50Q29tcGlsZXIsIENvbXBpbGVycyB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGNvbnN0IFBMQUNFSE9MREVSX0hBTkRMRSA9IC0xO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21waWxhYmxlVGVtcGxhdGVJbXBsPFN5bWJvbFRhYmxlLCBUZW1wbGF0ZU1ldGE+IGltcGxlbWVudHMgQ29tcGlsYWJsZVRlbXBsYXRlPFN5bWJvbFRhYmxlPiB7XG4gIHN0YXRpYyB0b3BMZXZlbDxUZW1wbGF0ZU1ldGE+KGJsb2NrOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaywgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPik6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICByZXR1cm4gbmV3IENvbXBpbGFibGVUZW1wbGF0ZUltcGw8UHJvZ3JhbVN5bWJvbFRhYmxlLCBUZW1wbGF0ZU1ldGE+KFxuICAgICAgYmxvY2suc3RhdGVtZW50cyxcbiAgICAgIHsgYmxvY2ssIHJlZmVycmVyOiBvcHRpb25zLnJlZmVycmVyIH0sXG4gICAgICBvcHRpb25zLFxuICAgICAgeyBoYXNFdmFsOiBibG9jay5oYXNFdmFsLCBzeW1ib2xzOiBibG9jay5zeW1ib2xzIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21waWxlZDogT3B0aW9uPG51bWJlcj4gPSBudWxsO1xuXG4gIHByaXZhdGUgc3RhdGVtZW50Q29tcGlsZXI6IENvbXBpbGVyczxTdGF0ZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RhdGVtZW50czogU3RhdGVtZW50W10sIHByaXZhdGUgY29udGFpbmluZ0xheW91dDogUGFyc2VkTGF5b3V0LCBwcml2YXRlIG9wdGlvbnM6IENvbXBpbGVPcHRpb25zPFRlbXBsYXRlTWV0YT4sIHB1YmxpYyBzeW1ib2xUYWJsZTogU3ltYm9sVGFibGUpIHtcbiAgICB0aGlzLnN0YXRlbWVudENvbXBpbGVyID0gc3RhdGVtZW50Q29tcGlsZXIoKTtcbiAgfVxuXG4gIGNvbXBpbGUoc3RkTGliPzogU1RETGliKTogbnVtYmVyIHtcbiAgICBsZXQgeyBjb21waWxlZCB9ID0gdGhpcztcbiAgICBpZiAoY29tcGlsZWQgIT09IG51bGwpIHJldHVybiBjb21waWxlZDtcblxuICAgIC8vIFRyYWNrIHRoYXQgY29tcGlsYXRpb24gaGFzIHN0YXJ0ZWQgYnV0IG5vdCB5ZXQgZmluaXNoZWQgYnkgdGVtcG9yYXJpbHlcbiAgICAvLyB1c2luZyBhIHBsYWNlaG9sZGVyIGhhbmRsZS4gSW4gZWFnZXIgY29tcGlsYXRpb24gbW9kZSwgd2hlcmUgY29tcGlsZSgpXG4gICAgLy8gbWF5IGJlIGNhbGxlZCByZWN1cnNpdmVseSwgd2UgdXNlIHRoaXMgYXMgYSBzaWduYWwgdGhhdCB0aGUgaGFuZGxlIGNhbm5vdFxuICAgIC8vIGJlIGtub3duIHN5bmNocm9ub3VzbHkgYW5kIG11c3QgYmUgbGlua2VkIGxhemlseS5cbiAgICB0aGlzLmNvbXBpbGVkID0gUExBQ0VIT0xERVJfSEFORExFO1xuXG4gICAgbGV0IHsgb3B0aW9ucywgc3RhdGVtZW50cywgY29udGFpbmluZ0xheW91dCB9ID0gdGhpcztcbiAgICBsZXQgeyByZWZlcnJlciB9ID0gY29udGFpbmluZ0xheW91dDtcbiAgICBsZXQgeyBwcm9ncmFtLCByZXNvbHZlciwgbWFjcm9zLCBhc1BhcnRpYWwsIEJ1aWxkZXIgfSA9IG9wdGlvbnM7XG5cbiAgICBsZXQgYnVpbGRlciA9IG5ldyBCdWlsZGVyKHByb2dyYW0sIHJlc29sdmVyLCByZWZlcnJlciwgbWFjcm9zLCBjb250YWluaW5nTGF5b3V0LCBhc1BhcnRpYWwsIHN0ZExpYik7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXRlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuc3RhdGVtZW50Q29tcGlsZXIuY29tcGlsZShzdGF0ZW1lbnRzW2ldLCBidWlsZGVyKTtcbiAgICB9XG5cbiAgICBsZXQgaGFuZGxlID0gYnVpbGRlci5jb21taXQocHJvZ3JhbS5oZWFwLCBjb250YWluaW5nTGF5b3V0LmJsb2NrLnN5bWJvbHMubGVuZ3RoKTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHsgaGVhcCB9ID0gcHJvZ3JhbTtcbiAgICAgIGxldCBzdGFydCA9IGhlYXAuZ2V0YWRkcihoYW5kbGUpO1xuICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgaGVhcC5zaXplb2YoaGFuZGxlKTtcblxuICAgICAgZGVidWdTbGljZShwcm9ncmFtLCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuY29tcGlsZWQgPSBoYW5kbGUpO1xuICB9XG59XG4iXX0=

@@ -19,3 +19,3 @@ import { Register } from '@glimmer/vm';

var _debug = debug(i, constants, type, op1, op2, op3),
var _debug = debug(constants, type, op1, op2, op3),
name = _debug[0],

@@ -63,5 +63,5 @@ params = _debug[1];

}
export function debug(pos, c, op) {
for (var _len = arguments.length, operands = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
operands[_key - 3] = arguments[_key];
export function debug(c, op) {
for (var _len = arguments.length, operands = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
operands[_key - 2] = arguments[_key];
}

@@ -77,5 +77,2 @@

switch (operand.type) {
case 'to':
out[operand.name] = pos + op;
break;
case 'i32':

@@ -147,2 +144,2 @@ case 'symbol':

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEFBQU8sQUFBRSxBQUFRLFNBQU0sQUFBUSxBQUFFLGdCQUFNLEFBQWEsQUFBQyxBQUNyRCxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsYUFBRSxBQUFJLEFBQUUsWUFBTSxBQUFlLEFBQUM7QUFpQmxELEFBQU0sMkJBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDOztBQUVSLEFBQUk7QUFGSyxBQUFDLEFBQ1YsQUFBK0IsWUFDekIsQUFBUyxBQUFFLFlBQUcsQUFBTyxBQUFDLEFBRTNCLEFBQWU7O2dCQUFDLEFBQUssQUFBQyxhQUFLLEFBQUssY0FBSSxBQUFHLEFBQUUsS0FBRSxBQUFhLEFBQUMsQUFBQyxBQUUzRDtZQUFJLEFBQUssUUFBRyxBQUFDLEFBQUMsQUFDZCxBQUFHLEFBQUM7YUFBQyxJQUFJLEFBQUMsSUFBQyxBQUFLLE9BQUUsQUFBQyxJQUFDLEFBQUcsS0FBRSxBQUFDLElBQUcsQUFBQyxJQUFHLEFBQUs7QUFBRSxBQUFDLEFBQ3ZDLEFBQUksa0NBQWdDLEFBQU8sUUFBQyxBQUFNLE9BQUMsQUFBQyxBQUFDLEFBQUMsQUFDdEQsQUFBSTtnQkFERSxBQUFJO2dCQUFFLEFBQUc7Z0JBQUUsQUFBRztnQkFBRSxBQUFHO2dCQUFFLEFBQUksQUFBRTs7eUJBQ1osQUFBSyxNQUFDLEFBQUMsR0FBRSxBQUF5RCxXQUFFLEFBQUksTUFBRSxBQUFHLEtBQUUsQUFBRyxLQUFFLEFBQUcsQUFBQyxBQUFDLEFBQzlHLEFBQU87Z0JBREYsQUFBSTtnQkFBRSxBQUFNLEFBQUM7O29CQUNWLEFBQUcsQUFBQyxJQUFHLEFB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QUFLLEFBQUMsQUFBQyxBQUNwQztBQUNFO2tCQUFNLEFBQVcsQUFBRSxBQUFDLEFBQ3hCLEFBQUMsQUFDSCxBQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3B0aW9uLFxuICBPcGFxdWUsXG4gIFJlY2FzdFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1FVEFEQVRBLCBPcCwgUmVnaXN0ZXIgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IHVucmVhY2hhYmxlLCBkaWN0IH0gZnJvbSBcIkBnbGltbWVyL3V0aWxcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAZ2xpbW1lci9kZWJ1Z1wiO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAZ2xpbW1lci9wcm9ncmFtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdDb25zdGFudHMge1xuICBnZXROdW1iZXIodmFsdWU6IG51bWJlcik6IG51bWJlcjtcbiAgZ2V0U3RyaW5nKHZhbHVlOiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldFN0cmluZ0FycmF5KHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXTtcbiAgZ2V0QXJyYXkodmFsdWU6IG51bWJlcik6IG51bWJlcltdO1xuICBnZXRTZXJpYWxpemFibGU8VD4oczogbnVtYmVyKTogVDtcbiAgcmVzb2x2ZUhhbmRsZTxUPihzOiBudW1iZXIpOiBUO1xufVxuXG5pbnRlcmZhY2UgTGF6eURlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0T3RoZXI8VD4oczogbnVtYmVyKTogVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnU2xpY2UocHJvZ3JhbTogQ29tcGlsZVRpbWVQcm9ncmFtLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICBpZiAoREVCVUcpIHtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlICovXG4gICAgbGV0IHsgY29uc3RhbnRzIH0gPSBwcm9ncmFtO1xuXG4gICAgKGNvbnNvbGUgYXMgYW55KS5ncm91cChgJWMke3N0YXJ0fToke2VuZH1gLCAnY29sb3I6ICM5OTknKTtcblxuICAgIGxldCBfc2l6ZSA9IDA7XG4gICAgZm9yIChsZXQgaT1zdGFydDsgaTxlbmQ7IGkgPSBpICsgX3NpemUpIHtcbiAgICAgIGxldCB7IHR5cGUsIG9wMSwgb3AyLCBvcDMsIHNpemUgfSA9IHByb2dyYW0ub3Bjb2RlKGkpO1xuICAgICAgbGV0IFtuYW1lLCBwYXJhbXNdID0gZGVidWcoaSwgY29uc3RhbnRzIGFzIFJlY2FzdDxDb21waWxlVGltZUNvbnN0YW50cywgRGVidWdDb25zdGFudHM+LCB0eXBlLCBvcDEsIG9wMiwgb3AzKTtcbiAgICAgIGNvbnNvbGUubG9nKGAke2l9LiAke2xvZ09wY29kZShuYW1lLCBwYXJhbXMpfWApO1xuICAgICAgX3NpemUgPSBzaXplO1xuICAgIH1cbiAgICBwcm9ncmFtLm9wY29kZSgtX3NpemUpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWNvbnNvbGUgKi9cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nT3Bjb2RlKHR5cGU6IHN0cmluZywgcGFyYW1zOiBPcHRpb248T2JqZWN0Pik6IHN0cmluZyB8IHZvaWQge1xuICBsZXQgb3V0ID0gdHlwZTtcblxuICBpZiAocGFyYW1zKSB7XG4gICAgbGV0IGFyZ3MgPSBPYmplY3Qua2V5cyhwYXJhbXMpLm1hcChwID0+IGAgJHtwfT0ke2pzb24ocGFyYW1zW3BdKX1gKS5qb2luKCcnKTtcbiAgICBvdXQgKz0gYXJncztcbiAgfVxuICByZXR1cm4gYCgke291dH0pYDtcbn1cblxuZnVuY3Rpb24ganNvbihwYXJhbTogT3BhcXVlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAnPGZ1bmN0aW9uPic7XG4gICAgfVxuXG4gICAgbGV0IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocGFyYW0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgcmV0dXJuICc8b2JqZWN0Pic7XG4gICAgfVxuXG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgbGV0IGRlYnVnID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIGlmICh0eXBlb2YgZGVidWcgPT09ICdvYmplY3QnICYmIGRlYnVnICE9PSBudWxsICYmIGRlYnVnLkdsaW1tZXJEZWJ1ZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGVidWcuR2xpbW1lckRlYnVnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKHBvczogbnVtYmVyLCBjOiBEZWJ1Z0NvbnN0YW50cywgb3A6IE9wLCAuLi5vcGVyYW5kczogbnVtYmVyW10pOiBbc3RyaW5nLCBvYmplY3RdIHtcbiAgbGV0IG1ldGFkYXRhID0gTUVUQURBVEFbb3BdO1xuXG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyB1bnJlYWNoYWJsZShgTWlzc2luZyBPcGNvZGUgTWV0YWRhdGEgZm9yICR7b3B9YCk7XG4gIH1cblxuICBsZXQgb3V0ID0gZGljdDxPcGFxdWU+KCk7XG5cbiAgbWV0YWRhdGEub3BzLmZvckVhY2goKG9wZXJhbmQsIGluZGV4KSA9PiB7XG4gICAgbGV0IG9wID0gb3BlcmFuZHNbaW5kZXhdO1xuXG4gICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBwb3MgKyBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpMzInOlxuICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgIGNhc2UgJ2Jsb2NrJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoYW5kbGUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMucmVzb2x2ZUhhbmRsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFN0cmluZyhvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uLXN0cic6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gb3AgPyBjLmdldFN0cmluZyhvcCkgOiBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0ci1hcnJheSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRTdHJpbmdBcnJheShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0QXJyYXkob3ApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Jvb2wnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9ICEhb3A7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJpbWl0aXZlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBkZWNvZGVQcmltaXRpdmUob3AsIGMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlZ2lzdGVyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBSZWdpc3RlcltvcF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VyaWFsaXphYmxlJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFNlcmlhbGl6YWJsZShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGF6eS1jb25zdGFudCc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gKGMgYXMgUmVjYXN0PERlYnVnQ29uc3RhbnRzLCBMYXp5RGVidWdDb25zdGFudHM+KS5nZXRPdGhlcihvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIFttZXRhZGF0YS5uYW1lLCBvdXRdO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVQcmltaXRpdmUocHJpbWl0aXZlOiBudW1iZXIsIGNvbnN0YW50czogRGVidWdDb25zdGFudHMpOiBQcmltaXRpdmUge1xuICBsZXQgZmxhZyA9IHByaW1pdGl2ZSAmIDc7IC8vIDExMVxuICBsZXQgdmFsdWUgPSBwcmltaXRpdmUgPj4gMztcblxuICBzd2l0Y2ggKGZsYWcpIHtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuTlVNQkVSOlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5GTE9BVDpcbiAgICAgIHJldHVybiBjb25zdGFudHMuZ2V0TnVtYmVyKHZhbHVlKTtcbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuU1RSSU5HOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXRTdHJpbmcodmFsdWUpO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5CT09MRUFOX09SX1ZPSUQ6XG4gICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlIDE6IHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIDI6IHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDM6IHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLk5FR0FUSVZFOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXROdW1iZXIodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyB1bnJlYWNoYWJsZSgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLEFBQU8sQUFBRSxBQUFRLFNBQU0sQUFBUSxBQUFFLGdCQUFNLEFBQWEsQUFBQyxBQUNyRCxBQUFPLEFBQUUsQUFBSyxBQUFFLEFBQU0sQUFBNEIsQUFBQzs7QUFDbkQsQUFBTyxTQUFFLEFBQVcsYUFBRSxBQUFJLEFBQUUsWUFBTSxBQUFlLEFBQUM7QUFpQmxELEFBQU0sMkJBQXFCLEFBQTJCLFNBQUUsQUFBYSxPQUFFLEFBQVcsS0FDaEYsQUFBRSxBQUFDLEFBQUMsQUFBSyxBQUFDOztBQUVSLEFBQUk7QUFGSyxBQUFDLEFBQ1YsQUFBK0IsWUFDekIsQUFBUyxBQUFFLFlBQUcsQUFBTyxBQUFDLEFBRTNCLEFBQWU7O2dCQUFDLEFBQUssQUFBQyxhQUFLLEFBQUssY0FBSSxBQUFHLEFBQUUsS0FBRSxBQUFhLEFBQUMsQUFBQyxBQUUzRDtZQUFJLEFBQUssUUFBRyxBQUFDLEFBQUMsQUFDZCxBQUFHLEFBQUM7YUFBQyxJQUFJLEFBQUMsSUFBQyxBQUFLLE9BQUUsQUFBQyxJQUFDLEFBQUcsS0FBRSxBQUFDLElBQUcsQUFBQyxJQUFHLEFBQUs7QUFBRSxBQUFDLEFBQ3ZDLEFBQUksa0NBQWdDLEFBQU8sUUFBQyxBQUFNLE9BQUMsQUFBQyxBQUFDLEFBQUMsQUFDdEQsQUFBSTtnQkFERSxBQUFJO2dCQUFFLEFBQUc7Z0JBQUUsQUFBRztnQkFBRSxBQUFHO2dCQUFFLEFBQUksQUFBRTs7eUJBQ1osQUFBSyxNQUFDLEFBQXlELFdBQUUsQUFBSSxNQUFFLEFBQUcsS0FBRSxBQUFHLEtBQUUsQUFBRyxBQUFDLEFBQUMsQUFDM0csQUFBTztnQkFERixBQUFJO2dCQUFFLEFBQU0sQUFBQzs7b0JBQ1YsQUFBRyxBQUFDLElBQUcsQUFBQyxXQUFLLEFBQVMsVUFBQyxBQUFJLE1BQUUsQUFBTSxBQUFDLEFBQUUsQUFBQyxBQUFDLEFBQ2hELEFBQUs7b0JBQUcsQUFBSSxBQUFDLEFBQ2YsQUFBQztBQUNELEFBQU87Z0JBQUMsQUFBTSxPQUFDLENBQUMsQUFBSyxBQUFDLEFBQUMsQUFDdkIsQUFBTztnQkFBQyxBQUFRLEFBQUUsQUFBQyxBQUNuQixBQUE4QixBQUNoQztBQUFDLEFBQ0g7QUFBQzs7QUFFRCxBQUFNLDBCQUFvQixBQUFZLE1BQUUsQUFBc0IsUUFDNUQ7UUFBSSxBQUFHLE1BQUcsQUFBSSxBQUFDLEFBRWYsQUFBRSxBQUFDO1FBQUMsQUFBTSxBQUFDLFFBQUMsQUFBQyxBQUNYO1lBQUksQUFBSSxjQUFVLEFBQUksS0FBQyxBQUFNLEFBQUMsUUFBQyxBQUFHO0FBQUMsQUFBQyxBQUFJLHlCQUFJLEFBQUMsVUFBSSxBQUFJLEtBQUMsQUFBTSxPQUFDLEFBQUMsQUFBQyxBQUFDLEFBQUUsQUFBQztTQUF4RCxBQUFNLEVBQW1ELEFBQUksS0FBQyxBQUFFLEFBQUMsQUFBQyxBQUM3RSxBQUFHO2VBQUksQUFBSSxBQUFDLEFBQ2QsQUFBQztBQUNELEFBQU0sQUFBQztpQkFBSSxBQUFHLEFBQUcsQUFBQyxBQUNwQixBQUFDOztBQUVELGNBQWMsQUFBYSxPQUN6QixBQUFFLEFBQUMsQUFBQyxBQUFLLEFBQUM7ZUFBQyxBQUFDLEFBQ1YsQUFBRSxBQUFDO1lBQUMsT0FBTyxBQUFLLFVBQUssQUFBVSxBQUFDLFlBQUMsQUFBQyxBQUNoQyxBQUFNO21CQUFDLEFBQVksQUFBQyxBQUN0QixBQUFDO0FBRUQ7WUFBSSxBQUFNLEFBQUMsQUFDWDtZQUFJLEFBQUMsQUFDSCxBQUFNO3FCQUFHLEFBQUksS0FBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDakMsQUFBQztVQUFDLEFBQUssT0FBQyxBQUFDLEFBQUMsR0FBQyxBQUFDLEFBQ1YsQUFBTTttQkFBQyxBQUFVLEFBQUMsQUFDcEIsQUFBQztBQUVELEFBQUUsQUFBQztZQUFDLEFBQU0sV0FBSyxBQUFTLEFBQUMsV0FBQyxBQUFDLEFBQ3pCLEFBQU07bUJBQUMsQUFBVyxBQUFDLEFBQ3JCLEFBQUM7QUFFRDtZQUFJLEFBQUssVUFBRyxBQUFJLEtBQUMsQUFBSyxNQUFDLEFBQU0sQUFBQyxBQUFDLEFBQy9CLEFBQUUsQUFBQztZQUFDLE9BQU8sQUFBSyxZQUFLLEFBQVEsWUFBSSxBQUFLLFlBQUssQUFBSSxRQUFJLEFBQUssUUFBQyxBQUFZLGlCQUFLLEFBQVMsQUFBQyxXQUFDLEFBQUMsQUFDcEYsQUFBTTttQkFBQyxBQUFLLFFBQUMsQUFBWSxBQUFDLEFBQzVCLEFBQUM7QUFFRCxBQUFNO2VBQUMsQUFBTSxBQUFDLEFBQ2hCLEFBQUMsQUFDSDtBQUFDOztBQUVELEFBQU0sc0JBQWdCLEFBQWlCLEdBQUUsQUFBTSxBQUFFO0FBQy9DO0FBRGtELEFBQWtCOzs7UUFDaEUsQUFBUSxBQUFHLEFBQVEsQUFBQyxBQUFFLEFBQUMsQUFBQyxXQUU1QixBQUFFLEFBQUM7UUFBQyxDQUFDLEFBQVEsQUFBQyxVQUFDLEFBQUMsQUFDZDtjQUFNLEFBQVcsQUFBQyw2Q0FBK0IsQUFBRSxBQUFFLEFBQUMsQUFBQyxBQUN6RCxBQUFDO0FBRUQ7UUFBSSxBQUFHLE1BQUcsQUFBSSxBQUFVLEFBQUMsQUFFekIsQUFBUTthQUFDLEFBQUcsSUFBQyxBQUFPLFFBQUMsVUFBQyxBQUFPLFNBQUUsQUFBSyxPQUNsQztZQUFJLEFBQUUsS0FBRyxBQUFRLFNBQUMsQUFBSyxBQUFDLEFBQUMsQUFFekIsQUFBTSxBQUFDO2dCQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsQUFBQyxBQUFDLEFBQ3JCO2lCQUFLLEFBQUssQUFBQyxBQUNYO2lCQUFLLEFBQVEsQUFBQyxBQUNkO2lCQUFLLEFBQU8sQUFDVixBQUFHO29CQUFDLEFBQU8sUUFBQyxBQUFJLEFBQUMsUUFBRyxBQUFFLEFBQUMsQUFDdkIsQUFBSyxBQUFDO0FBQ1I7aUJBQUssQUFBUSxBQUNYLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFhLGNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDeEMsQUFBSyxBQUFDO0FBQ1I7aUJBQUssQUFBSyxBQUNSLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFTLFVBQUMsQUFBRSxBQUFDLEFBQUMsQUFDcEMsQUFBSyxBQUFDO0FBQ1I7aUJBQUssQUFBWSxBQUNmLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUUsS0FBRyxBQUFDLEVBQUMsQUFBUyxVQUFDLEFBQUUsQUFBQyxNQUFHLEFBQUksQUFBQyxBQUNoRCxBQUFLLEFBQUM7QUFDUjtpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQWMsZUFBQyxBQUFFLEFBQUMsQUFBQyxBQUN6QyxBQUFLLEFBQUM7QUFDUjtpQkFBSyxBQUFPLEFBQ1YsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBQyxFQUFDLEFBQVEsU0FBQyxBQUFFLEFBQUMsQUFBQyxBQUNuQyxBQUFLLEFBQUM7QUFDUjtpQkFBSyxBQUFNLEFBQ1QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQ0FBQyxDQUFDLEFBQUUsQUFBQyxBQUN6QixBQUFLLEFBQUM7QUFDUjtpQkFBSyxBQUFXLEFBQ2QsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUcsQUFBZSxnQkFBQyxBQUFFLElBQUUsQUFBQyxBQUFDLEFBQUMsQUFDM0MsQUFBSyxBQUFDO0FBQ1I7aUJBQUssQUFBVSxBQUNiLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQVEsU0FBQyxBQUFFLEFBQUMsQUFBQyxBQUNqQyxBQUFLLEFBQUM7QUFDUjtpQkFBSyxBQUFjLEFBQ2pCLEFBQUc7b0JBQUMsQUFBTyxRQUFDLEFBQUksQUFBQyxRQUFHLEFBQUMsRUFBQyxBQUFlLGdCQUFDLEFBQUUsQUFBQyxBQUFDLEFBQzFDLEFBQUssQUFBQztBQUNSO2lCQUFLLEFBQWUsQUFDbEIsQUFBRztvQkFBQyxBQUFPLFFBQUMsQUFBSSxBQUFDLFFBQUksQUFBZ0QsRUFBQyxBQUFRLFNBQUMsQUFBRSxBQUFDLEFBQUMsQUFDbkYsQUFBSyxBQUFDLEFBQ1YsQUFBQyxBQUNIO0FBQUMsQUFBQyxBQUFDOztBQUVILEFBQU07V0FBQyxDQUFDLEFBQVEsU0FBQyxBQUFJLE1BQUUsQUFBRyxBQUFDLEFBQUMsQUFDOUIsQUFBQzs7QUFFRCx5QkFBeUIsQUFBaUIsV0FBRSxBQUF5QjtRQUMvRCxBQUFJLE9BQUcsQUFBUyxZQUFHLEFBQUMsQUFBQyxFQUF6QixDQUEwQixBQUFNLEFBQ2hDO1FBQUksQUFBSyxRQUFHLEFBQVMsYUFBSSxBQUFDLEFBQUMsQUFFM0IsQUFBTSxBQUFDO1lBQUMsQUFBSSxBQUFDLEFBQUMsQUFBQyxBQUNiO2VBQ0UsQUFBTTttQkFBQyxBQUFLLEFBQUMsQUFDZjtlQUNFLEFBQU07bUJBQUMsQUFBUyxVQUFDLEFBQVMsVUFBQyxBQUFLLEFBQUMsQUFBQyxBQUNwQztlQUNFLEFBQU07bUJBQUMsQUFBUyxVQUFDLEFBQVMsVUFBQyxBQUFLLEFBQUMsQUFBQyxBQUNwQztlQUNFLEFBQU0sQUFBQztvQkFBQyxBQUFLLEFBQUMsQUFBQyxBQUFDLEFBQ2Q7cUJBQUssQUFBQyxBQUFFLEFBQU07MkJBQUMsQUFBSyxBQUFDLEFBQ3JCO3FCQUFLLEFBQUMsQUFBRSxBQUFNOzJCQUFDLEFBQUksQUFBQyxBQUNwQjtxQkFBSyxBQUFDLEFBQUUsQUFBTTsyQkFBQyxBQUFJLEFBQUMsQUFDcEI7cUJBQUssQUFBQyxBQUFFLEFBQU07MkJBQUMsQUFBUyxBQUFDLEFBQzNCLEFBQUMsQUFDSDs7ZUFDRSxBQUFNO21CQUFDLEFBQVMsVUFBQyxBQUFTLFVBQUMsQUFBSyxBQUFDLEFBQUMsQUFDcEM7QUFDRTtrQkFBTSxBQUFXLEFBQUUsQUFBQyxBQUN4QixBQUFDLEFBQ0gsQUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIE9wdGlvbixcbiAgT3BhcXVlLFxuICBSZWNhc3Rcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNRVRBREFUQSwgT3AsIFJlZ2lzdGVyIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyB1bnJlYWNoYWJsZSwgZGljdCB9IGZyb20gXCJAZ2xpbW1lci91dGlsXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQGdsaW1tZXIvZGVidWdcIjtcbmltcG9ydCB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tIFwiQGdsaW1tZXIvcHJvZ3JhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnQ29uc3RhbnRzIHtcbiAgZ2V0TnVtYmVyKHZhbHVlOiBudW1iZXIpOiBudW1iZXI7XG4gIGdldFN0cmluZyh2YWx1ZTogbnVtYmVyKTogc3RyaW5nO1xuICBnZXRTdHJpbmdBcnJheSh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW107XG4gIGdldEFycmF5KHZhbHVlOiBudW1iZXIpOiBudW1iZXJbXTtcbiAgZ2V0U2VyaWFsaXphYmxlPFQ+KHM6IG51bWJlcik6IFQ7XG4gIHJlc29sdmVIYW5kbGU8VD4oczogbnVtYmVyKTogVDtcbn1cblxuaW50ZXJmYWNlIExhenlEZWJ1Z0NvbnN0YW50cyB7XG4gIGdldE90aGVyPFQ+KHM6IG51bWJlcik6IFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1Z1NsaWNlKHByb2dyYW06IENvbXBpbGVUaW1lUHJvZ3JhbSwgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tY29uc29sZSAqL1xuICAgIGxldCB7IGNvbnN0YW50cyB9ID0gcHJvZ3JhbTtcblxuICAgIChjb25zb2xlIGFzIGFueSkuZ3JvdXAoYCVjJHtzdGFydH06JHtlbmR9YCwgJ2NvbG9yOiAjOTk5Jyk7XG5cbiAgICBsZXQgX3NpemUgPSAwO1xuICAgIGZvciAobGV0IGk9c3RhcnQ7IGk8ZW5kOyBpID0gaSArIF9zaXplKSB7XG4gICAgICBsZXQgeyB0eXBlLCBvcDEsIG9wMiwgb3AzLCBzaXplIH0gPSBwcm9ncmFtLm9wY29kZShpKTtcbiAgICAgIGxldCBbbmFtZSwgcGFyYW1zXSA9IGRlYnVnKGNvbnN0YW50cyBhcyBSZWNhc3Q8Q29tcGlsZVRpbWVDb25zdGFudHMsIERlYnVnQ29uc3RhbnRzPiwgdHlwZSwgb3AxLCBvcDIsIG9wMyk7XG4gICAgICBjb25zb2xlLmxvZyhgJHtpfS4gJHtsb2dPcGNvZGUobmFtZSwgcGFyYW1zKX1gKTtcbiAgICAgIF9zaXplID0gc2l6ZTtcbiAgICB9XG4gICAgcHJvZ3JhbS5vcGNvZGUoLV9zaXplKTtcbiAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1jb25zb2xlICovXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ09wY29kZSh0eXBlOiBzdHJpbmcsIHBhcmFtczogT3B0aW9uPE9iamVjdD4pOiBzdHJpbmcgfCB2b2lkIHtcbiAgbGV0IG91dCA9IHR5cGU7XG5cbiAgaWYgKHBhcmFtcykge1xuICAgIGxldCBhcmdzID0gT2JqZWN0LmtleXMocGFyYW1zKS5tYXAocCA9PiBgICR7cH09JHtqc29uKHBhcmFtc1twXSl9YCkuam9pbignJyk7XG4gICAgb3V0ICs9IGFyZ3M7XG4gIH1cbiAgcmV0dXJuIGAoJHtvdXR9KWA7XG59XG5cbmZ1bmN0aW9uIGpzb24ocGFyYW06IE9wYXF1ZSkge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAodHlwZW9mIHBhcmFtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gJzxmdW5jdGlvbj4nO1xuICAgIH1cblxuICAgIGxldCBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIHJldHVybiAnPG9iamVjdD4nO1xuICAgIH1cblxuICAgIGlmIChzdHJpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICAgIH1cblxuICAgIGxldCBkZWJ1ZyA9IEpTT04ucGFyc2Uoc3RyaW5nKTtcbiAgICBpZiAodHlwZW9mIGRlYnVnID09PSAnb2JqZWN0JyAmJiBkZWJ1ZyAhPT0gbnVsbCAmJiBkZWJ1Zy5HbGltbWVyRGVidWcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRlYnVnLkdsaW1tZXJEZWJ1ZztcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZyhjOiBEZWJ1Z0NvbnN0YW50cywgb3A6IE9wLCAuLi5vcGVyYW5kczogbnVtYmVyW10pOiBbc3RyaW5nLCBvYmplY3RdIHtcbiAgbGV0IG1ldGFkYXRhID0gTUVUQURBVEFbb3BdO1xuXG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyB1bnJlYWNoYWJsZShgTWlzc2luZyBPcGNvZGUgTWV0YWRhdGEgZm9yICR7b3B9YCk7XG4gIH1cblxuICBsZXQgb3V0ID0gZGljdDxPcGFxdWU+KCk7XG5cbiAgbWV0YWRhdGEub3BzLmZvckVhY2goKG9wZXJhbmQsIGluZGV4KSA9PiB7XG4gICAgbGV0IG9wID0gb3BlcmFuZHNbaW5kZXhdO1xuXG4gICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2kzMic6XG4gICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgY2FzZSAnYmxvY2snOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IG9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhbmRsZSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5yZXNvbHZlSGFuZGxlKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdHInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U3RyaW5nKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcHRpb24tc3RyJzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBvcCA/IGMuZ2V0U3RyaW5nKG9wKSA6IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3RyLWFycmF5JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSBjLmdldFN0cmluZ0FycmF5KG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gYy5nZXRBcnJheShvcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm9vbCc6XG4gICAgICAgIG91dFtvcGVyYW5kLm5hbWVdID0gISFvcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwcmltaXRpdmUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGRlY29kZVByaW1pdGl2ZShvcCwgYyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVnaXN0ZXInOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IFJlZ2lzdGVyW29wXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXJpYWxpemFibGUnOlxuICAgICAgICBvdXRbb3BlcmFuZC5uYW1lXSA9IGMuZ2V0U2VyaWFsaXphYmxlKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsYXp5LWNvbnN0YW50JzpcbiAgICAgICAgb3V0W29wZXJhbmQubmFtZV0gPSAoYyBhcyBSZWNhc3Q8RGVidWdDb25zdGFudHMsIExhenlEZWJ1Z0NvbnN0YW50cz4pLmdldE90aGVyKG9wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gW21ldGFkYXRhLm5hbWUsIG91dF07XG59XG5cbmZ1bmN0aW9uIGRlY29kZVByaW1pdGl2ZShwcmltaXRpdmU6IG51bWJlciwgY29uc3RhbnRzOiBEZWJ1Z0NvbnN0YW50cyk6IFByaW1pdGl2ZSB7XG4gIGxldCBmbGFnID0gcHJpbWl0aXZlICYgNzsgLy8gMTExXG4gIGxldCB2YWx1ZSA9IHByaW1pdGl2ZSA+PiAzO1xuXG4gIHN3aXRjaCAoZmxhZykge1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5OVU1CRVI6XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLkZMT0FUOlxuICAgICAgcmV0dXJuIGNvbnN0YW50cy5nZXROdW1iZXIodmFsdWUpO1xuICAgIGNhc2UgUHJpbWl0aXZlVHlwZS5TVFJJTkc6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldFN0cmluZyh2YWx1ZSk7XG4gICAgY2FzZSBQcmltaXRpdmVUeXBlLkJPT0xFQU5fT1JfVk9JRDpcbiAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgY2FzZSAwOiByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNhc2UgMTogcmV0dXJuIHRydWU7XG4gICAgICAgIGNhc2UgMjogcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMzogcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICBjYXNlIFByaW1pdGl2ZVR5cGUuTkVHQVRJVkU6XG4gICAgICByZXR1cm4gY29uc3RhbnRzLmdldE51bWJlcih2YWx1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IHVucmVhY2hhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
export var PLACEHOLDER_HANDLE = -1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsQUFBTSxPQUFDLElBQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPcHRpb24sXG4gIENvbXBpbGFibGVCbG9jayxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzLFxuICBDb21waWxlVGltZVByb2dyYW0sXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29yZSB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IE1hY3JvcyB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGludGVyZmFjZSBFYWdlclJlc29sdmVyPExvY2F0b3I+IHtcbiAgZ2V0Q2FwYWJpbGl0aWVzKGxvY2F0b3I6IExvY2F0b3IpOiBDb21wb25lbnRDYXBhYmlsaXRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJDb21waWxhdGlvbk9wdGlvbnM8TG9jYXRvciwgUiBleHRlbmRzIEVhZ2VyUmVzb2x2ZXI8TG9jYXRvcj4+IHtcbiAgcmVzb2x2ZXI6IFI7XG4gIHByb2dyYW06IENvbXBpbGVUaW1lUHJvZ3JhbTtcbiAgbWFjcm9zOiBNYWNyb3M7XG59XG5cbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9IQU5ETEUgPSAtMTtcblxuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gdW5kZWZpbmVkIHwgbnVsbCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudEFyZ3MgPSBbQ29yZS5QYXJhbXMsIENvcmUuSGFzaCwgT3B0aW9uPENvbXBpbGFibGVCbG9jaz4sIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+XTtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRCdWlsZGVyIHtcbiAgc3RhdGljKGRlZmluaXRpb246IG51bWJlciwgYXJnczogQ29tcG9uZW50QXJncyk6IHZvaWQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsQUFBTSxPQUFDLElBQU0sQUFBa0IscUJBQUcsQ0FBQyxBQUFDLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPcGFxdWUsXG4gIE9wdGlvbixcbiAgQ29tcGlsYWJsZUJsb2NrLFxuICBDb21wb25lbnRDYXBhYmlsaXRpZXMsXG4gIENvbXBpbGVUaW1lUHJvZ3JhbSxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb3JlLCBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayB9IGZyb20gJ0BnbGltbWVyL3dpcmUtZm9ybWF0JztcbmltcG9ydCB7IE1hY3JvcyB9IGZyb20gJy4vc3ludGF4JztcblxuZXhwb3J0IGludGVyZmFjZSBFYWdlclJlc29sdmVyPExvY2F0b3I+IHtcbiAgZ2V0Q2FwYWJpbGl0aWVzKGxvY2F0b3I6IExvY2F0b3IpOiBDb21wb25lbnRDYXBhYmlsaXRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFnZXJDb21waWxhdGlvbk9wdGlvbnM8VGVtcGxhdGVNZXRhLCBSIGV4dGVuZHMgRWFnZXJSZXNvbHZlcjxUZW1wbGF0ZU1ldGE+PiB7XG4gIHJlc29sdmVyOiBSO1xuICBwcm9ncmFtOiBDb21waWxlVGltZVByb2dyYW07XG4gIG1hY3JvczogTWFjcm9zO1xufVxuXG5leHBvcnQgY29uc3QgUExBQ0VIT0xERVJfSEFORExFID0gLTE7XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IHVuZGVmaW5lZCB8IG51bGwgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDb21wb25lbnRBcmdzID0gW0NvcmUuUGFyYW1zLCBDb3JlLkhhc2gsIE9wdGlvbjxDb21waWxhYmxlQmxvY2s+LCBPcHRpb248Q29tcGlsYWJsZUJsb2NrPl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QnVpbGRlciB7XG4gIHN0YXRpYyhkZWZpbml0aW9uOiBudW1iZXIsIGFyZ3M6IENvbXBvbmVudEFyZ3MpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGEgPSBPcGFxdWU+IHtcbiAgaWQ/OiBPcHRpb248c3RyaW5nPjtcbiAgYmxvY2s6IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrO1xuICByZWZlcnJlcjogVGVtcGxhdGVNZXRhO1xufVxuIl19
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import { assign } from '@glimmer/util';
import { CompilableProgram as CompilableProgramInstance } from './compilable-template';
import CompilableTemplate from './compilable-template';
import { WrappedBuilder } from "./wrapped-component";

@@ -14,3 +14,3 @@ var clientId = 0;

var id = templateId || 'client-' + clientId++;
var create = function create(compiler, envMeta) {
var create = function create(options, envMeta) {
var newMeta = envMeta ? assign({}, envMeta, meta) : meta;

@@ -20,3 +20,3 @@ if (!parsedBlock) {

}
return new TemplateImpl(compiler, { id: id, block: parsedBlock, referrer: newMeta });
return new TemplateImpl(options, { id: id, block: parsedBlock, referrer: newMeta });
};

@@ -27,6 +27,6 @@ return { id: id, meta: meta, create: create };

var TemplateImpl = function () {
function TemplateImpl(compiler, parsedLayout) {
function TemplateImpl(options, parsedLayout) {
_classCallCheck(this, TemplateImpl);
this.compiler = compiler;
this.options = options;
this.parsedLayout = parsedLayout;

@@ -40,2 +40,3 @@ this.layout = null;

this.hasEval = block.hasEval;
this.statements = block.statements;
this.referrer = parsedLayout.referrer;

@@ -47,3 +48,3 @@ this.id = parsedLayout.id || 'client-' + clientId++;

if (this.layout) return this.layout;
return this.layout = new CompilableProgramInstance(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
return this.layout = compilable(this.parsedLayout, this.options, false);
};

@@ -53,3 +54,3 @@

if (this.partial) return this.partial;
return this.layout = new CompilableProgramInstance(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: true }));
return this.partial = compilable(this.parsedLayout, this.options, true);
};

@@ -59,3 +60,7 @@

if (this.wrappedLayout) return this.wrappedLayout;
return this.wrappedLayout = new WrappedBuilder(this.compiler, Object.assign({}, this.parsedLayout, { asPartial: false }));
var compileOptions = assign({}, this.options, {
asPartial: false,
referrer: this.referrer
});
return this.wrappedLayout = new WrappedBuilder(compileOptions, this.parsedLayout);
};

@@ -65,2 +70,12 @@

}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsQUFBTyxTQUFFLEFBQU0sQUFBRSxjQUFNLEFBQWUsQUFBQztBQUt2QyxBQUFPLFNBQUUsQUFBaUIscUJBQUksQUFBeUIsQUFBRSxpQ0FBTSxBQUF1QixBQUFDO0FBQ3ZGLEFBQU8sU0FBRSxBQUFjLEFBQUUsc0JBQU0sQUFBcUIsQUFBQztBQWdDckQsSUFBSSxBQUFRLFdBQUcsQUFBQyxBQUFDO0FBU2pCLEFBQU0sQUFBQyxBQUFPLHdCQUEwQjtBQUN0QyxRQUQ0QyxBQUFVLGtCQUFkLEFBQUU7UUFBYyxBQUFJO1FBQUUsQUFBSyxBQUF3Qzs7UUFDdkcsQUFBb0MsQUFBQyxBQUN6QztRQUFJLEFBQUUsS0FBRyxBQUFVLEFBQUksMEJBQVUsQUFBUSxBQUFFLEFBQUUsQUFBQyxBQUM5QztRQUFJLEFBQU0sU0FBRyxnQkFBQyxBQUE4QixVQUFFLEFBQVksU0FDeEQ7WUFBSSxBQUFPLFVBQUcsQUFBTyxVQUFHLEFBQU0sT0FBQyxBQUFFLElBQUUsQUFBTyxTQUFFLEFBQUksQUFBQyxRQUFHLEFBQUksQUFBQyxBQUN6RCxBQUFFLEFBQUM7WUFBQyxDQUFDLEFBQVcsQUFBQyxhQUFDLEFBQUMsQUFDakIsQUFBVzswQkFBRyxBQUFJLEtBQUMsQUFBSyxNQUFDLEFBQUssQUFBQyxBQUFDLEFBQ2xDLEFBQUM7QUFDRCxBQUFNO2VBQUMsSUFBSSxBQUFZLGFBQUMsQUFBUSxVQUFFLEVBQUUsQUFBRSxRQUFFLEFBQUssT0FBRSxBQUFXLGFBQUUsQUFBUSxVQUFFLEFBQU8sQUFBRyxBQUFDLEFBQUMsQUFDcEYsQUFBQyxBQUFDO0FBQ0YsQUFBTTtXQUFDLEVBQUUsQUFBRSxRQUFFLEFBQUksWUFBRSxBQUFNLEFBQUUsQUFBQyxBQUM5QixBQUFDO0FBRUQ7O0lBU0U7MEJBQW9CLEFBQStCLFVBQVUsQUFBMkU7QUFBcEg7O2FBQVEsV0FBUixBQUFRLEFBQXVCLEFBQVU7YUFBWSxlQVJqRSxBQVFxRCxBQUFZLEFBQStEO2FBUjFILFNBQThCLEFBQUksQUFBQyxBQUN6QzthQUFPLFVBQThCLEFBQUksQUFBQyxBQUMxQzthQUFhLGdCQUE4QixBQUFJLEFBQUMsQUFPdEQsQUFBSTtZQUFFLEFBQUssQUFBRSxRQUFHLEFBQVksQUFBQyxBQUM3QixBQUFJOzthQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDLEFBQzdCLEFBQUk7YUFBQyxBQUFPLFVBQUcsQUFBSyxNQUFDLEFBQU8sQUFBQyxBQUM3QixBQUFJO2FBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUMsQUFDdEMsQUFBSTthQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGtCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsQUFDdEQsQUFBQztBQUVELEFBQVE7OzBEQUNOLEFBQUUsQUFBQztZQUFDLEFBQUksS0FBQyxBQUFNLEFBQUMsUUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQU0sQUFBQyxBQUNwQyxBQUFNO2VBQUMsQUFBSSxLQUFDLEFBQU0sU0FBRyxJQUFJLEFBQXlCLDBCQUFDLEFBQUksS0FBQyxBQUFRLDRCQUFPLEFBQUksS0FBQyxBQUFZLGdCQUFFLEFBQVMsV0FBRSxBQUFLLEFBQUcsQUFBQyxBQUNoSCxBQUFDO0FBRUQsQUFBUzs7NERBQ1AsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQU8sQUFBQyxTQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLEFBQ3RDLEFBQU07ZUFBQyxBQUFJLEtBQUMsQUFBTSxTQUFHLElBQUksQUFBeUIsMEJBQUMsQUFBSSxLQUFDLEFBQVEsNEJBQU8sQUFBSSxLQUFDLEFBQVksZ0JBQUUsQUFBUyxXQUFFLEFBQUksQUFBRyxBQUFDLEFBQy9HLEFBQUM7QUFFRCxBQUFlOzt3RUFDYixBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBYSxBQUFDLGVBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFhLEFBQUMsQUFDbEQsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFhLGdCQUFHLElBQUksQUFBYyxlQUFDLEFBQUksS0FBQyxBQUFRLDRCQUFPLEFBQUksS0FBQyxBQUFZLGdCQUFFLEFBQVMsV0FBRSxBQUFLLEFBQUcsQUFBQyxBQUM1RyxBQUFDLEFBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSwgVGVtcGxhdGUsIE9wYXF1ZSwgT3B0aW9uLCBMYXlvdXRXaXRoQ29udGV4dCB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9ja1xufSBmcm9tICdAZ2xpbW1lci93aXJlLWZvcm1hdCc7XG5pbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSBhcyBDb21waWxhYmxlUHJvZ3JhbUluc3RhbmNlIH0gZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IFdyYXBwZWRCdWlsZGVyIH0gZnJvbSBcIi4vd3JhcHBlZC1jb21wb25lbnRcIjtcbmltcG9ydCB7IExhenlDb21waWxlciB9IGZyb20gXCJAZ2xpbW1lci9vcGNvZGUtY29tcGlsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvcj4ge1xuICAvKipcbiAgICogVGVtcGxhdGUgaWRlbnRpZmllciwgaWYgcHJlY29tcGlsZWQgd2lsbCBiZSB0aGUgaWQgb2YgdGhlXG4gICAqIHByZWNvbXBpbGVkIHRlbXBsYXRlLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcGlsZSB0aW1lIG1ldGEuXG4gICAqL1xuICBtZXRhOiBMb2NhdG9yO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNyZWF0ZSBhbiBlbnZpcm9ubWVudCBzcGVjaWZpYyBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogb2YgdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnYgZ2xpbW1lciBFbnZpcm9ubWVudFxuICAgKi9cbiAgY3JlYXRlKGVudjogTGF6eUNvbXBpbGVyPExvY2F0b3I+KTogVGVtcGxhdGU8TG9jYXRvcj47XG4gIC8qKlxuICAgKiBVc2VkIHRvIGNyZWF0ZSBhbiBlbnZpcm9ubWVudCBzcGVjaWZpYyBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogb2YgdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnYgZ2xpbW1lciBFbnZpcm9ubWVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gbWV0YSBlbnZpcm9ubWVudCBzcGVjaWZpYyBpbmplY3Rpb25zIGludG8gbWV0YVxuICAgKi9cbiAgY3JlYXRlPFU+KGVudjogTGF6eUNvbXBpbGVyPExvY2F0b3I+LCBtZXRhOiBVKTogVGVtcGxhdGU8TG9jYXRvciAmIFU+O1xufVxuXG5sZXQgY2xpZW50SWQgPSAwO1xuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUganMgaW4gYSB0ZW1wbGF0ZSBtb2R1bGUgdG8gY2hhbmdlIGl0IGludG8gYSBmYWN0b3J5XG4gKiB0aGF0IGhhbmRsZXMgbGF6eSBwYXJzaW5nIHRoZSB0ZW1wbGF0ZSBhbmQgdG8gY3JlYXRlIHBlciBlbnYgc2luZ2xldG9uc1xuICogb2YgdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8TG9jYXRvcj4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPExvY2F0b3I+KTogVGVtcGxhdGVGYWN0b3J5PExvY2F0b3I+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PExvY2F0b3IsIFU+KHNlcmlhbGl6ZWRUZW1wbGF0ZTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxMb2NhdG9yPik6IFRlbXBsYXRlRmFjdG9yeTxMb2NhdG9yICYgVT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3RvcnkoeyBpZDogdGVtcGxhdGVJZCwgbWV0YSwgYmxvY2sgfTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxhbnk+KTogVGVtcGxhdGVGYWN0b3J5PHt9PiB7XG4gIGxldCBwYXJzZWRCbG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2s7XG4gIGxldCBpZCA9IHRlbXBsYXRlSWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgbGV0IGNyZWF0ZSA9IChjb21waWxlcjogTGF6eUNvbXBpbGVyPE9wYXF1ZT4sIGVudk1ldGE/OiB7fSkgPT4ge1xuICAgIGxldCBuZXdNZXRhID0gZW52TWV0YSA/IGFzc2lnbih7fSwgZW52TWV0YSwgbWV0YSkgOiBtZXRhO1xuICAgIGlmICghcGFyc2VkQmxvY2spIHtcbiAgICAgIHBhcnNlZEJsb2NrID0gSlNPTi5wYXJzZShibG9jayk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVGVtcGxhdGVJbXBsKGNvbXBpbGVyLCB7IGlkLCBibG9jazogcGFyc2VkQmxvY2ssIHJlZmVycmVyOiBuZXdNZXRhLCB9KTtcbiAgfTtcbiAgcmV0dXJuIHsgaWQsIG1ldGEsIGNyZWF0ZSB9O1xufVxuXG5jbGFzcyBUZW1wbGF0ZUltcGw8TG9jYXRvciA9IE9wYXF1ZT4gaW1wbGVtZW50cyBUZW1wbGF0ZTxMb2NhdG9yPiB7XG4gIHByaXZhdGUgbGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSBwYXJ0aWFsOiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHJpdmF0ZSB3cmFwcGVkTGF5b3V0OiBPcHRpb248Q29tcGlsYWJsZVByb2dyYW0+ID0gbnVsbDtcbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgaGFzRXZhbDogYm9vbGVhbjtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWZlcnJlcjogTG9jYXRvcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBMYXp5Q29tcGlsZXI8TG9jYXRvcj4sIHByaXZhdGUgcGFyc2VkTGF5b3V0OiBQaWNrPExheW91dFdpdGhDb250ZXh0PExvY2F0b3I+LCAnaWQnIHwgJ2Jsb2NrJyB8ICdyZWZlcnJlcic+KSB7XG4gICAgbGV0IHsgYmxvY2sgfSA9IHBhcnNlZExheW91dDtcbiAgICB0aGlzLnN5bWJvbHMgPSBibG9jay5zeW1ib2xzO1xuICAgIHRoaXMuaGFzRXZhbCA9IGJsb2NrLmhhc0V2YWw7XG4gICAgdGhpcy5yZWZlcnJlciA9IHBhcnNlZExheW91dC5yZWZlcnJlcjtcbiAgICB0aGlzLmlkID0gcGFyc2VkTGF5b3V0LmlkIHx8IGBjbGllbnQtJHtjbGllbnRJZCsrfWA7XG4gIH1cblxuICBhc0xheW91dCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMubGF5b3V0KSByZXR1cm4gdGhpcy5sYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID0gbmV3IENvbXBpbGFibGVQcm9ncmFtSW5zdGFuY2UodGhpcy5jb21waWxlciwgeyAuLi50aGlzLnBhcnNlZExheW91dCwgYXNQYXJ0aWFsOiBmYWxzZSB9KTtcbiAgfVxuXG4gIGFzUGFydGlhbCgpOiBDb21waWxhYmxlUHJvZ3JhbSB7XG4gICAgaWYgKHRoaXMucGFydGlhbCkgcmV0dXJuIHRoaXMucGFydGlhbDtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQgPSBuZXcgQ29tcGlsYWJsZVByb2dyYW1JbnN0YW5jZSh0aGlzLmNvbXBpbGVyLCB7IC4uLnRoaXMucGFyc2VkTGF5b3V0LCBhc1BhcnRpYWw6IHRydWUgfSk7XG4gIH1cblxuICBhc1dyYXBwZWRMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLndyYXBwZWRMYXlvdXQpIHJldHVybiB0aGlzLndyYXBwZWRMYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXMud3JhcHBlZExheW91dCA9IG5ldyBXcmFwcGVkQnVpbGRlcih0aGlzLmNvbXBpbGVyLCB7IC4uLnRoaXMucGFyc2VkTGF5b3V0LCBhc1BhcnRpYWw6IGZhbHNlIH0pO1xuICB9XG59XG4iXX0=
export function compilable(layout, options, asPartial) {
var block = layout.block,
referrer = layout.referrer;
var hasEval = block.hasEval,
symbols = block.symbols;
var compileOptions = assign({}, options, { asPartial: asPartial, referrer: referrer });
return new CompilableTemplate(block.statements, layout, compileOptions, { referrer: referrer, hasEval: hasEval, symbols: symbols });
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsQUFBTyxTQUFFLEFBQU0sQUFBRSxjQUFNLEFBQWUsQUFBQztBQU12QyxPQUFPLEFBQWtCLHdCQUFNLEFBQXVCLEFBQUM7QUFFdkQsQUFBTyxTQUFFLEFBQWMsQUFBRSxzQkFBTSxBQUFxQixBQUFDO0FBZ0NyRCxJQUFJLEFBQVEsV0FBRyxBQUFDLEFBQUM7QUFTakIsQUFBTSxBQUFDLEFBQU8sd0JBQTBCO0FBQ3RDLFFBRDRDLEFBQVUsa0JBQWQsQUFBRTtRQUFjLEFBQUk7UUFBRSxBQUFLLEFBQXdDOztRQUN2RyxBQUFvQyxBQUFDLEFBQ3pDO1FBQUksQUFBRSxLQUFHLEFBQVUsQUFBSSwwQkFBVSxBQUFRLEFBQUUsQUFBRSxBQUFDLEFBQzlDO1FBQUksQUFBTSxTQUFHLGdCQUFDLEFBQWdDLFNBQUUsQUFBWSxTQUMxRDtZQUFJLEFBQU8sVUFBRyxBQUFPLFVBQUcsQUFBTSxPQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsQUFBSSxBQUFDLFFBQUcsQUFBSSxBQUFDLEFBQ3pELEFBQUUsQUFBQztZQUFDLENBQUMsQUFBVyxBQUFDLGFBQUMsQUFBQyxBQUNqQixBQUFXOzBCQUFHLEFBQUksS0FBQyxBQUFLLE1BQUMsQUFBSyxBQUFDLEFBQUMsQUFDbEMsQUFBQztBQUNELEFBQU07ZUFBQyxJQUFJLEFBQVksYUFBQyxBQUFPLFNBQUUsRUFBRSxBQUFFLFFBQUUsQUFBSyxPQUFFLEFBQVcsYUFBRSxBQUFRLFVBQUUsQUFBTyxBQUFFLEFBQUMsQUFBQyxBQUNsRixBQUFDLEFBQUM7QUFDRixBQUFNO1dBQUMsRUFBRSxBQUFFLFFBQUUsQUFBSSxZQUFFLEFBQU0sQUFBRSxBQUFDLEFBQzlCLEFBQUM7QUFFRDs7SUFVRTswQkFBb0IsQUFBc0MsU0FBVSxBQUF3QztBQUF4Rjs7YUFBTyxVQUFQLEFBQU8sQUFBK0IsQUFBVTthQUFZLGVBVHhFLEFBUzRELEFBQVksQUFBNEI7YUFUOUYsU0FBOEIsQUFBSSxBQUFDLEFBQ3pDO2FBQU8sVUFBOEIsQUFBSSxBQUFDLEFBQzFDO2FBQWEsZ0JBQThCLEFBQUksQUFBQyxBQVF0RCxBQUFJO1lBQUUsQUFBSyxBQUFFLFFBQUcsQUFBWSxBQUFDLEFBQzdCLEFBQUk7O2FBQUMsQUFBTyxVQUFHLEFBQUssTUFBQyxBQUFPLEFBQUMsQUFDN0IsQUFBSTthQUFDLEFBQU8sVUFBRyxBQUFLLE1BQUMsQUFBTyxBQUFDLEFBQzdCLEFBQUk7YUFBQyxBQUFVLGFBQUcsQUFBSyxNQUFDLEFBQVUsQUFBQyxBQUNuQyxBQUFJO2FBQUMsQUFBUSxXQUFHLEFBQVksYUFBQyxBQUFRLEFBQUMsQUFDdEMsQUFBSTthQUFDLEFBQUUsS0FBRyxBQUFZLGFBQUMsQUFBRSxBQUFJLGtCQUFVLEFBQVEsQUFBRSxBQUFFLEFBQUMsQUFDdEQsQUFBQztBQUVELEFBQVE7OzBEQUNOLEFBQUUsQUFBQztZQUFDLEFBQUksS0FBQyxBQUFNLEFBQUMsUUFBQyxBQUFNLE9BQUMsQUFBSSxLQUFDLEFBQU0sQUFBQyxBQUNwQyxBQUFNO2VBQUMsQUFBSSxLQUFDLEFBQU0sU0FBRyxBQUFVLFdBQUMsQUFBSSxLQUFDLEFBQVksY0FBRSxBQUFJLEtBQUMsQUFBTyxTQUFFLEFBQUssQUFBQyxBQUFDLEFBQzFFLEFBQUM7QUFFRCxBQUFTOzs0REFDUCxBQUFFLEFBQUM7WUFBQyxBQUFJLEtBQUMsQUFBTyxBQUFDLFNBQUMsQUFBTSxPQUFDLEFBQUksS0FBQyxBQUFPLEFBQUMsQUFDdEMsQUFBTTtlQUFDLEFBQUksS0FBQyxBQUFPLFVBQUcsQUFBVSxXQUFDLEFBQUksS0FBQyxBQUFZLGNBQUUsQUFBSSxLQUFDLEFBQU8sU0FBRSxBQUFJLEFBQUMsQUFBQyxBQUMxRSxBQUFDO0FBRUQsQUFBZTs7d0VBQ2IsQUFBRSxBQUFDO1lBQUMsQUFBSSxLQUFDLEFBQWEsQUFBQyxlQUFDLEFBQU0sT0FBQyxBQUFJLEtBQUMsQUFBYSxBQUFDLEFBQ2xEO1lBQUksQUFBYyx3QkFBd0MsQUFBRSxJQUFFLEFBQUksS0FBQyxBQUFPO3VCQUM3RCxBQUFLLEFBQ2hCLEFBQVE7c0JBQUUsQUFBSSxLQUZtQyxBQUFNLEFBQW1CLEFBRTNELEFBQVEsQUFDeEIsQUFBQyxBQUFDLEFBQ0gsQUFBTTtBQUhKLEFBQVM7ZUFHSixBQUFJLEtBQUMsQUFBYSxnQkFBRyxJQUFJLEFBQWMsZUFBQyxBQUFjLGdCQUFFLEFBQUksS0FBQyxBQUFZLEFBQUMsQUFBQyxBQUNwRixBQUFDLEFBQ0Y7Ozs7OztBQUVELEFBQU0sMkJBQW1DLEFBQWtDLFFBQUUsQUFBZ0MsU0FBRSxBQUFrQjtBQUMvSCxBQUFJLFFBQUUsQUFBSyxRQUFlLEFBQU0sQUFBQyxBQUNqQyxBQUFJO1FBRFMsQUFBUSxBQUFFO1FBQ2pCLEFBQU8sVUFBYyxBQUFLLEFBQUMsQUFDakM7UUFEZSxBQUFPLEFBQUU7O1FBQ3BCLEFBQWMsaUJBQUcsQUFBTSxPQUFDLEFBQUUsSUFBRSxBQUFPLFNBQUUsRUFBRSxBQUFTLHNCQUFFLEFBQVEsQUFBRSxBQUFDLEFBQUMsQUFFbEUsQUFBTTtXQUFDLElBQUksQUFBa0IsbUJBQUMsQUFBSyxNQUFDLEFBQVUsWUFBRSxBQUFNLFFBQUUsQUFBYyxnQkFBRSxFQUFFLEFBQVEsb0JBQUUsQUFBTyxrQkFBRSxBQUFPLEFBQUUsQUFBQyxBQUFDLEFBQzFHLEFBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21waWxhYmxlUHJvZ3JhbSwgVGVtcGxhdGUsIE9wYXF1ZSwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrLFxuICBTdGF0ZW1lbnRcbn0gZnJvbSAnQGdsaW1tZXIvd2lyZS1mb3JtYXQnO1xuaW1wb3J0IENvbXBpbGFibGVUZW1wbGF0ZSBmcm9tICcuL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUGFyc2VkTGF5b3V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFdyYXBwZWRCdWlsZGVyIH0gZnJvbSBcIi4vd3JhcHBlZC1jb21wb25lbnRcIjtcbmltcG9ydCB7IENvbXBpbGVPcHRpb25zLCBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zeW50YXhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPiB7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBpZGVudGlmaWVyLCBpZiBwcmVjb21waWxlZCB3aWxsIGJlIHRoZSBpZCBvZiB0aGVcbiAgICogcHJlY29tcGlsZWQgdGVtcGxhdGUuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21waWxlIHRpbWUgbWV0YS5cbiAgICovXG4gIG1ldGE6IFRlbXBsYXRlTWV0YTtcblxuICAvKipcbiAgICogVXNlZCB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgc3BlY2lmaWMgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbnZpcm9ubWVudH0gZW52IGdsaW1tZXIgRW52aXJvbm1lbnRcbiAgICovXG4gIGNyZWF0ZShlbnY6IFRlbXBsYXRlT3B0aW9uczxPcGFxdWU+KTogVGVtcGxhdGU8VGVtcGxhdGVNZXRhPjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHNwZWNpZmljIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW52aXJvbm1lbnR9IGVudiBnbGltbWVyIEVudmlyb25tZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhIGVudmlyb25tZW50IHNwZWNpZmljIGluamVjdGlvbnMgaW50byBtZXRhXG4gICAqL1xuICBjcmVhdGU8VT4oZW52OiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgbWV0YTogVSk6IFRlbXBsYXRlPFRlbXBsYXRlTWV0YSAmIFU+O1xufVxuXG5sZXQgY2xpZW50SWQgPSAwO1xuXG4vKipcbiAqIFdyYXBzIGEgdGVtcGxhdGUganMgaW4gYSB0ZW1wbGF0ZSBtb2R1bGUgdG8gY2hhbmdlIGl0IGludG8gYSBmYWN0b3J5XG4gKiB0aGF0IGhhbmRsZXMgbGF6eSBwYXJzaW5nIHRoZSB0ZW1wbGF0ZSBhbmQgdG8gY3JlYXRlIHBlciBlbnYgc2luZ2xldG9uc1xuICogb2YgdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhPihzZXJpYWxpemVkVGVtcGxhdGU6IFNlcmlhbGl6ZWRUZW1wbGF0ZVdpdGhMYXp5QmxvY2s8VGVtcGxhdGVNZXRhPik6IFRlbXBsYXRlRmFjdG9yeTxUZW1wbGF0ZU1ldGE+O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGVtcGxhdGVGYWN0b3J5PFRlbXBsYXRlTWV0YSwgVT4oc2VyaWFsaXplZFRlbXBsYXRlOiBTZXJpYWxpemVkVGVtcGxhdGVXaXRoTGF6eUJsb2NrPFRlbXBsYXRlTWV0YT4pOiBUZW1wbGF0ZUZhY3Rvcnk8VGVtcGxhdGVNZXRhICYgVT47XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZW1wbGF0ZUZhY3RvcnkoeyBpZDogdGVtcGxhdGVJZCwgbWV0YSwgYmxvY2sgfTogU2VyaWFsaXplZFRlbXBsYXRlV2l0aExhenlCbG9jazxhbnk+KTogVGVtcGxhdGVGYWN0b3J5PHt9PiB7XG4gIGxldCBwYXJzZWRCbG9jazogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2s7XG4gIGxldCBpZCA9IHRlbXBsYXRlSWQgfHwgYGNsaWVudC0ke2NsaWVudElkKyt9YDtcbiAgbGV0IGNyZWF0ZSA9IChvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgZW52TWV0YT86IHt9KSA9PiB7XG4gICAgbGV0IG5ld01ldGEgPSBlbnZNZXRhID8gYXNzaWduKHt9LCBlbnZNZXRhLCBtZXRhKSA6IG1ldGE7XG4gICAgaWYgKCFwYXJzZWRCbG9jaykge1xuICAgICAgcGFyc2VkQmxvY2sgPSBKU09OLnBhcnNlKGJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUltcGwob3B0aW9ucywgeyBpZCwgYmxvY2s6IHBhcnNlZEJsb2NrLCByZWZlcnJlcjogbmV3TWV0YSB9KTtcbiAgfTtcbiAgcmV0dXJuIHsgaWQsIG1ldGEsIGNyZWF0ZSB9O1xufVxuXG5jbGFzcyBUZW1wbGF0ZUltcGw8VGVtcGxhdGVNZXRhID0gT3BhcXVlPiBpbXBsZW1lbnRzIFRlbXBsYXRlPFRlbXBsYXRlTWV0YT4ge1xuICBwcml2YXRlIGxheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgcGFydGlhbDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHByaXZhdGUgd3JhcHBlZExheW91dDogT3B0aW9uPENvbXBpbGFibGVQcm9ncmFtPiA9IG51bGw7XG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXTtcbiAgcHVibGljIGhhc0V2YWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcbiAgcHJpdmF0ZSBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uczxUZW1wbGF0ZU1ldGE+LCBwcml2YXRlIHBhcnNlZExheW91dDogUGFyc2VkTGF5b3V0PFRlbXBsYXRlTWV0YT4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gcGFyc2VkTGF5b3V0O1xuICAgIHRoaXMuc3ltYm9scyA9IGJsb2NrLnN5bWJvbHM7XG4gICAgdGhpcy5oYXNFdmFsID0gYmxvY2suaGFzRXZhbDtcbiAgICB0aGlzLnN0YXRlbWVudHMgPSBibG9jay5zdGF0ZW1lbnRzO1xuICAgIHRoaXMucmVmZXJyZXIgPSBwYXJzZWRMYXlvdXQucmVmZXJyZXI7XG4gICAgdGhpcy5pZCA9IHBhcnNlZExheW91dC5pZCB8fCBgY2xpZW50LSR7Y2xpZW50SWQrK31gO1xuICB9XG5cbiAgYXNMYXlvdXQoKTogQ29tcGlsYWJsZVByb2dyYW0ge1xuICAgIGlmICh0aGlzLmxheW91dCkgcmV0dXJuIHRoaXMubGF5b3V0O1xuICAgIHJldHVybiB0aGlzLmxheW91dCA9IGNvbXBpbGFibGUodGhpcy5wYXJzZWRMYXlvdXQsIHRoaXMub3B0aW9ucywgZmFsc2UpO1xuICB9XG5cbiAgYXNQYXJ0aWFsKCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy5wYXJ0aWFsKSByZXR1cm4gdGhpcy5wYXJ0aWFsO1xuICAgIHJldHVybiB0aGlzLnBhcnRpYWwgPSBjb21waWxhYmxlKHRoaXMucGFyc2VkTGF5b3V0LCB0aGlzLm9wdGlvbnMsIHRydWUpO1xuICB9XG5cbiAgYXNXcmFwcGVkTGF5b3V0KCk6IENvbXBpbGFibGVQcm9ncmFtIHtcbiAgICBpZiAodGhpcy53cmFwcGVkTGF5b3V0KSByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0O1xuICAgIGxldCBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiA9IGFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBhc1BhcnRpYWw6IGZhbHNlLFxuICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXJcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVkTGF5b3V0ID0gbmV3IFdyYXBwZWRCdWlsZGVyKGNvbXBpbGVPcHRpb25zLCB0aGlzLnBhcnNlZExheW91dCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGFibGU8VGVtcGxhdGVNZXRhPihsYXlvdXQ6IFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGE+LCBvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnM8T3BhcXVlPiwgYXNQYXJ0aWFsOiBib29sZWFuKSB7XG4gIGxldCB7IGJsb2NrLCByZWZlcnJlciB9ID0gbGF5b3V0O1xuICBsZXQgeyBoYXNFdmFsLCBzeW1ib2xzIH0gPSBibG9jaztcbiAgbGV0IGNvbXBpbGVPcHRpb25zID0gYXNzaWduKHt9LCBvcHRpb25zLCB7IGFzUGFydGlhbCwgcmVmZXJyZXIgfSk7XG5cbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGUoYmxvY2suc3RhdGVtZW50cywgbGF5b3V0LCBjb21waWxlT3B0aW9ucywgeyByZWZlcnJlciwgaGFzRXZhbCwgc3ltYm9scyB9KTtcbn1cbiJdfQ==
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import { Register } from '@glimmer/vm';
import { debug } from './compiler';
import { CompilableBlock as CompilableBlockInstance } from './compilable-template';
import CompilableTemplate from './compilable-template';
import { debugSlice } from './debug';
import { ATTRS_BLOCK } from './syntax';

@@ -10,6 +10,6 @@

export var WrappedBuilder = function () {
function WrappedBuilder(compiler, layout) {
function WrappedBuilder(options, layout) {
_classCallCheck(this, WrappedBuilder);
this.compiler = compiler;
this.options = options;
this.layout = layout;

@@ -52,6 +52,12 @@ var block = layout.block;

// Exit
var compiler = this.compiler,
layout = this.layout;
var options = this.options,
layout = this.layout,
referrer = this.referrer;
var program = options.program,
resolver = options.resolver,
macros = options.macros,
asPartial = options.asPartial;
var Builder = options.Builder;
var b = compiler.builderFor(layout);
var b = new Builder(program, resolver, referrer, macros, layout, asPartial);
b.startLabels();

@@ -70,3 +76,3 @@ b.fetch(Register.s1);

b.label('BODY');
b.invokeStaticBlock(blockFor(layout, compiler));
b.invokeStaticBlock(blockFor(layout, this.options));
b.fetch(Register.s1);

@@ -78,5 +84,10 @@ b.jumpUnless('END');

b.stopLabels();
var handle = b.commit();
var handle = b.commit(options.program.heap, layout.block.symbols.length);
if (false) {
debug(compiler, handle);
var _program = options.program,
heap = options.program.heap;
var start = heap.getaddr(handle);
var end = start + heap.sizeof(handle);
debugSlice(_program, start, end);
}

@@ -88,10 +99,7 @@ return handle;

}();
function blockFor(layout, compiler) {
return new CompilableBlockInstance(compiler, {
block: {
statements: layout.block.statements,
parameters: EMPTY_ARRAY
},
containingLayout: layout
});
function blockFor(layout, options) {
var block = layout.block,
referrer = layout.referrer;
return new CompilableTemplate(block.statements, layout, options, { referrer: referrer, parameters: EMPTY_ARRAY });
}

@@ -111,11 +119,10 @@ export var ComponentBuilder = function () {

var builder = this.builder;
var resolver = builder.resolver;
if (handle !== null) {
var _builder$compiler$res = builder.compiler.resolveLayoutForHandle(handle),
capabilities = _builder$compiler$res.capabilities,
compilable = _builder$compiler$res.compilable;
if (compilable) {
var capabilities = resolver.getCapabilities(handle);
if (capabilities.dynamicLayout === false) {
var layout = resolver.getLayout(handle);
builder.pushComponentDefinition(handle);
builder.invokeStaticComponent(capabilities, compilable, null, params, hash, false, _default, inverse);
builder.invokeStaticComponent(capabilities, layout, null, params, hash, false, _default, inverse);
} else {

@@ -130,2 +137,2 @@ builder.pushComponentDefinition(handle);

}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQUFBTyxTQUFFLEFBQVEsQUFBRSxnQkFBTSxBQUFhLEFBQUM7QUFRdkMsQUFBTyxTQUFFLEFBQUssQUFBdUIsYUFBTSxBQUFZLEFBQUM7QUFDeEQsQUFBTyxTQUFFLEFBQWUsbUJBQUksQUFBdUIsQUFBRSwrQkFBTSxBQUF1QixBQUFDO0FBRW5GLEFBQU8sU0FBRSxBQUFXLEFBQUUsbUJBQU0sQUFBVSxBQUFDLEFBRXZDLEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLFNBQUUsQUFBVyxBQUFFLG1CQUFNLEFBQWUsQUFBQztBQUU1QyxBQUFNLFdBR0o7NEJBQW9CLEFBQTBDLFVBQVUsQUFBa0M7QUFBdEY7O2FBQVEsV0FBUixBQUFRLEFBQWtDLEFBQVU7YUFBTSxTQUFOLEFBQU0sQUFBNEIsQUFDeEcsQUFBSTtZQUFFLEFBQUssQUFBRSxRQUFHLEFBQU0sQUFBQyxBQUV2QixBQUFJOzthQUFDLEFBQVc7cUJBQ0wsQUFBSyxNQUFDLEFBQU8sQUFDdEIsQUFBTztxQkFBRSxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sT0FBQyxDQUZiLEFBRWMsQUFBVyxBQUFDLEFBQUMsQUFDN0MsQUFBQyxBQUNKLEFBQUM7QUFIRyxBQUFPO0FBS1gsQUFBTzs7O0FBRUwsQUFBMkI7QUFDM0IsQUFBYztBQUNkLEFBQTBCO0FBQzFCLEFBQXFDO0FBQ3JDLEFBQTBCO0FBQzFCLEFBQStCO0FBQy9CLEFBQXNCO0FBQ3RCLEFBQWM7QUFDZCxBQUErQjtBQUMvQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBeUI7QUFDekIsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQXlCO0FB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TSxBQUFDLEFBQUMsQUFFbkYsQUFBRSxBQUFDO2dCQUZHLEFBQVk7Z0JBQUUsQUFBVSxBQUFFOztnQkFFNUIsQUFBVSxBQUFDLFlBQUMsQUFBQyxBQUNmLEFBQU87d0JBQUMsQUFBdUIsd0JBQUMsQUFBTSxBQUFDLEFBQUMsQUFDeEMsQUFBTzt3QkFBQyxBQUFxQixzQkFBQyxBQUFZLGNBQUUsQUFBVSxZQUFFLEFBQUksTUFBRSxBQUFNLFFBQUUsQUFBSSxNQUFFLEFBQUssT0FBRSxBQUFRLFVBQUUsQUFBTyxBQUFDLEFBQUMsQUFDeEcsQUFBQyxBQUFDLEFBQUk7bUJBQUMsQUFBQyxBQUNOLEFBQU87d0JBQUMsQUFBdUIsd0JBQUMsQUFBTSxBQUFDLEFBQUMsQUFDeEMsQUFBTzt3QkFBQyxBQUFlLGdCQUFDLEFBQUksTUFBRSxBQUFNLFFBQUUsQUFBSSxNQUFFLEFBQUssT0FBRSxBQUFRLFVBQUUsQUFBTyxBQUFDLEFBQUMsQUFDeEUsQUFBQyxBQUNIO0FBQUMsQUFDSDtBQUFDLEFBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWdpc3RlciB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IFByb2dyYW1TeW1ib2xUYWJsZSwgQ29tcGlsYWJsZVByb2dyYW0sIENvbXBpbGFibGVCbG9jaywgTGF5b3V0V2l0aENvbnRleHQsIENvbXBpbGVyLCBSZWNhc3QgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50QXJncyxcbiAgQ29tcG9uZW50QnVpbGRlciBhcyBJQ29tcG9uZW50QnVpbGRlclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBkZWJ1ZywgQW55QWJzdHJhY3RDb21waWxlciB9IGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IHsgQ29tcGlsYWJsZUJsb2NrIGFzIENvbXBpbGFibGVCbG9ja0luc3RhbmNlIH0gZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IE9wY29kZUJ1aWxkZXIgfSBmcm9tICcuL29wY29kZS1idWlsZGVyJztcbmltcG9ydCB7IEFUVFJTX0JMT0NLIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5pbXBvcnQgeyBERUJVRyB9IGZyb20gXCJAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFnc1wiO1xuaW1wb3J0IHsgRU1QVFlfQVJSQVkgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgV3JhcHBlZEJ1aWxkZXI8TG9jYXRvcj4gaW1wbGVtZW50cyBDb21waWxhYmxlUHJvZ3JhbSB7XG4gIHB1YmxpYyBzeW1ib2xUYWJsZTogUHJvZ3JhbVN5bWJvbFRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyPE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4+LCBwcml2YXRlIGxheW91dDogTGF5b3V0V2l0aENvbnRleHQ8TG9jYXRvcj4pIHtcbiAgICBsZXQgeyBibG9jayB9ID0gbGF5b3V0O1xuXG4gICAgdGhpcy5zeW1ib2xUYWJsZSA9IHtcbiAgICAgIGhhc0V2YWw6IGJsb2NrLmhhc0V2YWwsXG4gICAgICBzeW1ib2xzOiBibG9jay5zeW1ib2xzLmNvbmNhdChbQVRUUlNfQkxPQ0tdKVxuICAgIH07XG4gIH1cblxuICBjb21waWxlKCk6IG51bWJlciB7XG4gICAgLy89PT09PT09PURZTkFNSUNcbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEJPRFkpXG4gICAgLy8gICAgICAgIE9wZW5EeW5hbWljUHJpbWl0aXZlRWxlbWVudFxuICAgIC8vICAgICAgICBEaWRDcmVhdGVFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmF0dHIgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBGbHVzaEVsZW1lbnRcbiAgICAvLyBCT0RZOiAgTm9vcFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgUHV0VmFsdWUoVGFnRXhwcilcbiAgICAvLyAgICAgICAgVGVzdFxuICAgIC8vICAgICAgICBKdW1wVW5sZXNzKEVORClcbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gRU5EOiAgIE5vb3BcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcbiAgICAvL1xuICAgIC8vPT09PT09PT1TVEFUSUNcbiAgICAvLyAgICAgICAgT3BlblByaW1pdGl2ZUVsZW1lbnRPcGNvZGVcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gICAgICAgIC4uLmJvZHkgc3RhdGVtZW50cy4uLlxuICAgIC8vICAgICAgICBDbG9zZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkUmVuZGVyTGF5b3V0XG4gICAgLy8gICAgICAgIEV4aXRcblxuICAgIGxldCB7IGNvbXBpbGVyLCBsYXlvdXQgfSA9IHRoaXM7XG4gICAgbGV0IGIgPSBjb21waWxlci5idWlsZGVyRm9yKGxheW91dCk7XG5cbiAgICBiLnN0YXJ0TGFiZWxzKCk7XG5cbiAgICBiLmZldGNoKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuZ2V0Q29tcG9uZW50VGFnTmFtZShSZWdpc3Rlci5zMCk7XG4gICAgYi5wcmltaXRpdmVSZWZlcmVuY2UoKTtcblxuICAgIGIuZHVwKCk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuanVtcFVubGVzcygnQk9EWScpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5wdXRDb21wb25lbnRPcGVyYXRpb25zKCk7XG4gICAgYi5vcGVuRHluYW1pY0VsZW1lbnQoKTtcbiAgICBiLmRpZENyZWF0ZUVsZW1lbnQoUmVnaXN0ZXIuczApO1xuICAgIGIuZmx1c2hFbGVtZW50KCk7XG5cbiAgICBiLmxhYmVsKCdCT0RZJyk7XG5cbiAgICBiLmludm9rZVN0YXRpY0Jsb2NrKGJsb2NrRm9yKGxheW91dCwgY29tcGlsZXIpKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIuanVtcFVubGVzcygnRU5EJyk7XG4gICAgYi5jbG9zZUVsZW1lbnQoKTtcblxuICAgIGIubGFiZWwoJ0VORCcpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLnN0b3BMYWJlbHMoKTtcblxuICAgIGxldCBoYW5kbGUgPSBiLmNvbW1pdCgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBkZWJ1Zyhjb21waWxlciBhcyBSZWNhc3Q8Q29tcGlsZXI8T3Bjb2RlQnVpbGRlcjxMb2NhdG9yPj4sIEFueUFic3RyYWN0Q29tcGlsZXI+LCBoYW5kbGUpO1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmxvY2tGb3I8TG9jYXRvcj4obGF5b3V0OiBMYXlvdXRXaXRoQ29udGV4dCwgY29tcGlsZXI6IENvbXBpbGVyPE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4+KTogQ29tcGlsYWJsZUJsb2NrIHtcbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlQmxvY2tJbnN0YW5jZShjb21waWxlciwge1xuICAgIGJsb2NrOiB7XG4gICAgICBzdGF0ZW1lbnRzOiBsYXlvdXQuYmxvY2suc3RhdGVtZW50cyxcbiAgICAgIHBhcmFtZXRlcnM6IEVNUFRZX0FSUkFZXG4gICAgfSxcbiAgICBjb250YWluaW5nTGF5b3V0OiBsYXlvdXRcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRCdWlsZGVyPExvY2F0b3I+IGltcGxlbWVudHMgSUNvbXBvbmVudEJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1aWxkZXI6IE9wY29kZUJ1aWxkZXI8TG9jYXRvcj4pIHt9XG5cbiAgc3RhdGljKGhhbmRsZTogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKSB7XG4gICAgbGV0IFtwYXJhbXMsIGhhc2gsIF9kZWZhdWx0LCBpbnZlcnNlXSA9IGFyZ3M7XG4gICAgbGV0IHsgYnVpbGRlciB9ID0gdGhpcztcblxuICAgIGlmIChoYW5kbGUgIT09IG51bGwpIHtcbiAgICAgIGxldCB7IGNhcGFiaWxpdGllcywgY29tcGlsYWJsZSB9ID0gYnVpbGRlci5jb21waWxlci5yZXNvbHZlTGF5b3V0Rm9ySGFuZGxlKGhhbmRsZSk7XG5cbiAgICAgIGlmIChjb21waWxhYmxlKSB7XG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VTdGF0aWNDb21wb25lbnQoY2FwYWJpbGl0aWVzLCBjb21waWxhYmxlLCBudWxsLCBwYXJhbXMsIGhhc2gsIGZhbHNlLCBfZGVmYXVsdCwgaW52ZXJzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWlsZGVyLnB1c2hDb21wb25lbnREZWZpbml0aW9uKGhhbmRsZSk7XG4gICAgICAgIGJ1aWxkZXIuaW52b2tlQ29tcG9uZW50KG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9vcGNvZGUtY29tcGlsZXIvbGliL3dyYXBwZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQUFBTyxTQUFFLEFBQVEsQUFBRSxnQkFBTSxBQUFhLEFBQUM7QUFVdkMsT0FBTyxBQUFrQix3QkFBTSxBQUF1QixBQUFDO0FBQ3ZELEFBQU8sU0FBRSxBQUFVLEFBQUUsa0JBQU0sQUFBUyxBQUFDO0FBRXJDLEFBQU8sU0FBRSxBQUFXLEFBQUUsbUJBQU0sQUFBVSxBQUFDLEFBRXZDLEFBQU8sQUFBRSxBQUFLLEFBQUUsQUFBTSxBQUE0QixBQUFDOztBQUNuRCxBQUFPLFNBQUUsQUFBVyxBQUFFLG1CQUFNLEFBQWUsQUFBQztBQUU1QyxBQUFNLFdBSUo7NEJBQW1CLEFBQXFDLFNBQVUsQUFBa0M7QUFBakY7O2FBQU8sVUFBUCxBQUFPLEFBQThCLEFBQVU7YUFBTSxTQUFOLEFBQU0sQUFBNEIsQUFDbEcsQUFBSTtZQUFFLEFBQUssQUFBRSxRQUFHLEFBQU0sQUFBQyxBQUV2QixBQUFJOzthQUFDLEFBQVc7cUJBQ0wsQUFBSyxNQUFDLEFBQU8sQUFDdEIsQUFBTztxQkFBRSxBQUFLLE1BQUMsQUFBTyxRQUFDLEFBQU0sT0FBQyxDQUZiLEFBRWMsQUFBVyxBQUFDLEFBQUMsQUFDN0MsQUFBQyxBQUNKLEFBQUM7QUFIRyxBQUFPO0FBS1gsQUFBTzs7O0FBRUwsQUFBMkI7QUFDM0IsQUFBYztBQUNkLEFBQTBCO0FBQzFCLEFBQXFDO0FBQ3JDLEFBQTBCO0FBQzFCLEFBQStCO0FBQy9CLEFBQXNCO0FBQ3RCLEFBQWM7QUFDZCxBQUErQjtBQUMvQixBQUEyQjtBQUMzQixBQUFjO0FBQ2QsQUFBeUI7QUFDekIsQUFBc0I7QUFDdEIsQUFBYztBQUNkLEFBQXlCO0FBQ3pCLEFBQWM7QUFDZCxBQUFFO0FB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QUFBSyxPQUFFLEFBQVEsVUFBRSxBQUFPLEFBQUMsQUFBQyxBQUN4RSxBQUFDLEFBQ0g7QUFBQyxBQUNIO0FBQUMsQUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZ2lzdGVyIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgUHJvZ3JhbVN5bWJvbFRhYmxlLCBDb21waWxhYmxlUHJvZ3JhbSwgQ29tcGlsYWJsZUJsb2NrIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudEFyZ3MsXG4gIENvbXBvbmVudEJ1aWxkZXIgYXMgSUNvbXBvbmVudEJ1aWxkZXIsXG4gIFBhcnNlZExheW91dFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBDb21waWxlT3B0aW9ucyB9IGZyb20gJy4vc3ludGF4JztcbmltcG9ydCBDb21waWxhYmxlVGVtcGxhdGUgZnJvbSAnLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IGRlYnVnU2xpY2UgfSBmcm9tICcuL2RlYnVnJztcbmltcG9ydCB7IE9wY29kZUJ1aWxkZXIgfSBmcm9tICcuL29wY29kZS1idWlsZGVyJztcbmltcG9ydCB7IEFUVFJTX0JMT0NLIH0gZnJvbSAnLi9zeW50YXgnO1xuXG5pbXBvcnQgeyBERUJVRyB9IGZyb20gXCJAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFnc1wiO1xuaW1wb3J0IHsgRU1QVFlfQVJSQVkgfSBmcm9tIFwiQGdsaW1tZXIvdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgV3JhcHBlZEJ1aWxkZXI8VGVtcGxhdGVNZXRhPiBpbXBsZW1lbnRzIENvbXBpbGFibGVQcm9ncmFtIHtcbiAgcHVibGljIHN5bWJvbFRhYmxlOiBQcm9ncmFtU3ltYm9sVGFibGU7XG4gIHByaXZhdGUgcmVmZXJyZXI6IFRlbXBsYXRlTWV0YTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogQ29tcGlsZU9wdGlvbnM8VGVtcGxhdGVNZXRhPiwgcHJpdmF0ZSBsYXlvdXQ6IFBhcnNlZExheW91dDxUZW1wbGF0ZU1ldGE+KSB7XG4gICAgbGV0IHsgYmxvY2sgfSA9IGxheW91dDtcblxuICAgIHRoaXMuc3ltYm9sVGFibGUgPSB7XG4gICAgICBoYXNFdmFsOiBibG9jay5oYXNFdmFsLFxuICAgICAgc3ltYm9sczogYmxvY2suc3ltYm9scy5jb25jYXQoW0FUVFJTX0JMT0NLXSlcbiAgICB9O1xuICB9XG5cbiAgY29tcGlsZSgpOiBudW1iZXIge1xuICAgIC8vPT09PT09PT1EWU5BTUlDXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhCT0RZKVxuICAgIC8vICAgICAgICBPcGVuRHluYW1pY1ByaW1pdGl2ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgRGlkQ3JlYXRlRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5hdHRyIHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgRmx1c2hFbGVtZW50XG4gICAgLy8gQk9EWTogIE5vb3BcbiAgICAvLyAgICAgICAgLi4uYm9keSBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIFB1dFZhbHVlKFRhZ0V4cHIpXG4gICAgLy8gICAgICAgIFRlc3RcbiAgICAvLyAgICAgICAgSnVtcFVubGVzcyhFTkQpXG4gICAgLy8gICAgICAgIENsb3NlRWxlbWVudFxuICAgIC8vIEVORDogICBOb29wXG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG4gICAgLy9cbiAgICAvLz09PT09PT09U1RBVElDXG4gICAgLy8gICAgICAgIE9wZW5QcmltaXRpdmVFbGVtZW50T3Bjb2RlXG4gICAgLy8gICAgICAgIERpZENyZWF0ZUVsZW1lbnRcbiAgICAvLyAgICAgICAgLi4uYXR0ciBzdGF0ZW1lbnRzLi4uXG4gICAgLy8gICAgICAgIEZsdXNoRWxlbWVudFxuICAgIC8vICAgICAgICAuLi5ib2R5IHN0YXRlbWVudHMuLi5cbiAgICAvLyAgICAgICAgQ2xvc2VFbGVtZW50XG4gICAgLy8gICAgICAgIERpZFJlbmRlckxheW91dFxuICAgIC8vICAgICAgICBFeGl0XG5cbiAgICBsZXQgeyBvcHRpb25zLCBsYXlvdXQsIHJlZmVycmVyIH0gPSB0aGlzO1xuICAgIGxldCB7IHByb2dyYW0sIHJlc29sdmVyLCBtYWNyb3MsIGFzUGFydGlhbCB9ID0gb3B0aW9ucztcbiAgICBsZXQgeyBCdWlsZGVyIH0gPSBvcHRpb25zO1xuXG4gICAgbGV0IGIgPSBuZXcgQnVpbGRlcihwcm9ncmFtLCByZXNvbHZlciwgcmVmZXJyZXIsIG1hY3JvcywgbGF5b3V0LCBhc1BhcnRpYWwpO1xuXG4gICAgYi5zdGFydExhYmVscygpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmdldENvbXBvbmVudFRhZ05hbWUoUmVnaXN0ZXIuczApO1xuICAgIGIucHJpbWl0aXZlUmVmZXJlbmNlKCk7XG5cbiAgICBiLmR1cCgpO1xuICAgIGIubG9hZChSZWdpc3Rlci5zMSk7XG5cbiAgICBiLmp1bXBVbmxlc3MoJ0JPRFknKTtcblxuICAgIGIuZmV0Y2goUmVnaXN0ZXIuczEpO1xuICAgIGIucHV0Q29tcG9uZW50T3BlcmF0aW9ucygpO1xuICAgIGIub3BlbkR5bmFtaWNFbGVtZW50KCk7XG4gICAgYi5kaWRDcmVhdGVFbGVtZW50KFJlZ2lzdGVyLnMwKTtcbiAgICBiLmZsdXNoRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnQk9EWScpO1xuXG4gICAgYi5pbnZva2VTdGF0aWNCbG9jayhibG9ja0ZvcihsYXlvdXQsIHRoaXMub3B0aW9ucykpO1xuXG4gICAgYi5mZXRjaChSZWdpc3Rlci5zMSk7XG4gICAgYi5qdW1wVW5sZXNzKCdFTkQnKTtcbiAgICBiLmNsb3NlRWxlbWVudCgpO1xuXG4gICAgYi5sYWJlbCgnRU5EJyk7XG4gICAgYi5sb2FkKFJlZ2lzdGVyLnMxKTtcblxuICAgIGIuc3RvcExhYmVscygpO1xuXG4gICAgbGV0IGhhbmRsZSA9IGIuY29tbWl0KG9wdGlvbnMucHJvZ3JhbS5oZWFwLCBsYXlvdXQuYmxvY2suc3ltYm9scy5sZW5ndGgpO1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgeyBwcm9ncmFtLCBwcm9ncmFtOiB7IGhlYXAgfSB9ID0gb3B0aW9ucztcbiAgICAgIGxldCBzdGFydCA9IGhlYXAuZ2V0YWRkcihoYW5kbGUpO1xuICAgICAgbGV0IGVuZCA9IHN0YXJ0ICsgaGVhcC5zaXplb2YoaGFuZGxlKTtcbiAgICAgIGRlYnVnU2xpY2UocHJvZ3JhbSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhbmRsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBibG9ja0ZvcjxUZW1wbGF0ZU1ldGE+KGxheW91dDogUGFyc2VkTGF5b3V0LCBvcHRpb25zOiBDb21waWxlT3B0aW9uczxUZW1wbGF0ZU1ldGE+KTogQ29tcGlsYWJsZUJsb2NrIHtcbiAgbGV0IHsgYmxvY2ssIHJlZmVycmVyIH0gPSBsYXlvdXQ7XG5cbiAgcmV0dXJuIG5ldyBDb21waWxhYmxlVGVtcGxhdGUoYmxvY2suc3RhdGVtZW50cywgbGF5b3V0LCBvcHRpb25zLCB7IHJlZmVycmVyLCBwYXJhbWV0ZXJzOiBFTVBUWV9BUlJBWSB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudEJ1aWxkZXI8VGVtcGxhdGVNZXRhPiBpbXBsZW1lbnRzIElDb21wb25lbnRCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBidWlsZGVyOiBPcGNvZGVCdWlsZGVyPFRlbXBsYXRlTWV0YT4pIHt9XG5cbiAgc3RhdGljKGhhbmRsZTogbnVtYmVyLCBhcmdzOiBDb21wb25lbnRBcmdzKSB7XG4gICAgbGV0IFtwYXJhbXMsIGhhc2gsIF9kZWZhdWx0LCBpbnZlcnNlXSA9IGFyZ3M7XG4gICAgbGV0IHsgYnVpbGRlciB9ID0gdGhpcztcbiAgICBsZXQgeyByZXNvbHZlciB9ID0gYnVpbGRlcjtcblxuICAgIGlmIChoYW5kbGUgIT09IG51bGwpIHtcbiAgICAgIGxldCBjYXBhYmlsaXRpZXMgPSByZXNvbHZlci5nZXRDYXBhYmlsaXRpZXMoaGFuZGxlKTtcblxuICAgICAgaWYgKGNhcGFiaWxpdGllcy5keW5hbWljTGF5b3V0ID09PSBmYWxzZSkge1xuICAgICAgICBsZXQgbGF5b3V0ID0gcmVzb2x2ZXIuZ2V0TGF5b3V0KGhhbmRsZSkhO1xuXG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VTdGF0aWNDb21wb25lbnQoY2FwYWJpbGl0aWVzLCBsYXlvdXQsIG51bGwsIHBhcmFtcywgaGFzaCwgZmFsc2UsIF9kZWZhdWx0LCBpbnZlcnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1aWxkZXIucHVzaENvbXBvbmVudERlZmluaXRpb24oaGFuZGxlKTtcbiAgICAgICAgYnVpbGRlci5pbnZva2VDb21wb25lbnQobnVsbCwgcGFyYW1zLCBoYXNoLCBmYWxzZSwgX2RlZmF1bHQsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
export * from './lib/interfaces';
export { ATTRS_BLOCK, CompileOptions, Macros } from './lib/syntax';
export * from './lib/lazy';
export * from './lib/compile';
export * from './lib/compiler';
export { CompilableBlock, CompilableProgram } from './lib/compilable-template';
export { LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, OpcodeBuilderConstructor, StdOpcodeBuilder } from './lib/opcode-builder';
export { ATTRS_BLOCK, CompileOptions, Macros, TemplateOptions } from './lib/syntax';
export { CompileTimeLookup, LazyOpcodeBuilder, EagerOpcodeBuilder, OpcodeBuilder, OpcodeBuilderConstructor, SimpleOpcodeBuilder } from './lib/opcode-builder';
export { PartialDefinition } from './lib/partial-template';
export { default as templateFactory, TemplateFactory } from './lib/template';
export { default as CompilableTemplate } from './lib/compilable-template';
export { debug, debugSlice, logOpcode } from './lib/debug';
export { WrappedBuilder } from './lib/wrapped-component';

@@ -1,18 +0,16 @@

import { CompilableTemplate, ProgramSymbolTable, CompilableProgram as ICompilableProgram, LayoutWithContext, Opaque, Compiler, BlockSymbolTable, BlockWithContext } from '@glimmer/interfaces';
import { CompilableTemplate, STDLib, CompilableProgram } from '@glimmer/interfaces';
import { Statement, SerializedTemplateBlock } from '@glimmer/wire-format';
import { ParsedLayout } from './interfaces';
import { CompileOptions } from './syntax';
export declare const PLACEHOLDER_HANDLE = -1;
export declare class CompilableProgram implements ICompilableProgram {
protected compiler: Compiler<Opaque>;
protected layout: LayoutWithContext;
export default class CompilableTemplateImpl<SymbolTable, TemplateMeta> implements CompilableTemplate<SymbolTable> {
private statements;
private containingLayout;
private options;
symbolTable: SymbolTable;
static topLevel<TemplateMeta>(block: SerializedTemplateBlock, options: CompileOptions<TemplateMeta>): CompilableProgram;
private compiled;
constructor(compiler: Compiler<Opaque>, layout: LayoutWithContext);
readonly symbolTable: ProgramSymbolTable;
compile(): number;
private statementCompiler;
constructor(statements: Statement[], containingLayout: ParsedLayout, options: CompileOptions<TemplateMeta>, symbolTable: SymbolTable);
compile(stdLib?: STDLib): number;
}
export declare class CompilableBlock implements CompilableTemplate<BlockSymbolTable> {
private compiler;
private parsed;
private compiled;
constructor(compiler: Compiler<Opaque>, parsed: BlockWithContext);
readonly symbolTable: BlockSymbolTable;
compile(): number;
}

@@ -13,2 +13,2 @@ import { CompileTimeProgram, Option } from '@glimmer/interfaces';

export declare function logOpcode(type: string, params: Option<Object>): string | void;
export declare function debug(pos: number, c: DebugConstants, op: Op, ...operands: number[]): [string, object];
export declare function debug(c: DebugConstants, op: Op, ...operands: number[]): [string, object];

@@ -1,3 +0,3 @@

import { Option, CompilableBlock, ComponentCapabilities, CompileTimeProgram } from '@glimmer/interfaces';
import { Core } from '@glimmer/wire-format';
import { Opaque, Option, CompilableBlock, ComponentCapabilities, CompileTimeProgram } from '@glimmer/interfaces';
import { Core, SerializedTemplateBlock } from '@glimmer/wire-format';
import { Macros } from './syntax';

@@ -7,3 +7,3 @@ export interface EagerResolver<Locator> {

}
export interface EagerCompilationOptions<Locator, R extends EagerResolver<Locator>> {
export interface EagerCompilationOptions<TemplateMeta, R extends EagerResolver<TemplateMeta>> {
resolver: R;

@@ -19,1 +19,6 @@ program: CompileTimeProgram;

}
export interface ParsedLayout<TemplateMeta = Opaque> {
id?: Option<string>;
block: SerializedTemplateBlock;
referrer: TemplateMeta;
}

@@ -1,9 +0,18 @@

import { Opaque, Option, VMHandle, ComponentCapabilities, CompilableTemplate, CompilableBlock, CompilableProgram, CompileTimeConstants, CompileTimeLazyConstants, STDLib, SymbolTable, Compiler, LayoutWithContext } from "@glimmer/interfaces";
import { Opaque, Option, VMHandle, ComponentCapabilities, CompilableTemplate, CompilableBlock, CompilableProgram, CompileTimeConstants, CompileTimeProgram, CompileTimeLazyConstants, CompileTimeHeap, STDLib, SymbolTable } from "@glimmer/interfaces";
import { Op, Register } from '@glimmer/vm';
import * as WireFormat from '@glimmer/wire-format';
import { SerializedInlineBlock } from "@glimmer/wire-format";
import { Primitive } from './interfaces';
import { Primitive, ParsedLayout } from './interfaces';
import { Macros } from './syntax';
import { ComponentBuilder } from './wrapped-component';
import { InstructionEncoder, Operand } from "@glimmer/encoder";
export declare type Label = string;
export interface CompileTimeLookup<TemplateMeta> {
getCapabilities(handle: number): ComponentCapabilities;
getLayout(handle: number): Option<CompilableProgram>;
lookupHelper(name: string, referrer: TemplateMeta): Option<number>;
lookupModifier(name: string, referrer: TemplateMeta): Option<number>;
lookupComponentDefinition(name: string, referrer: TemplateMeta): Option<number>;
lookupPartial(name: string, referrer: TemplateMeta): Option<number>;
}
export interface Blocks {

@@ -15,11 +24,6 @@ main: Option<CompilableBlock>;

export interface OpcodeBuilderConstructor {
new <Locator>(compiler: Compiler, containingLayout: LayoutWithContext): OpcodeBuilder<Locator>;
new <TemplateMeta>(program: CompileTimeProgram, lookup: CompileTimeLookup<TemplateMeta>, meta: Opaque, macros: Macros, containingLayout: ParsedLayout, asPartial: boolean, stdLib?: STDLib): OpcodeBuilder<TemplateMeta>;
}
export declare class StdOpcodeBuilder {
protected size: number;
static build(compiler: Compiler, callback: (builder: StdOpcodeBuilder) => void): number;
export declare class SimpleOpcodeBuilder {
protected encoder: InstructionEncoder;
compiler: Compiler<this>;
private labelsStack;
constructor(compiler: Compiler, size?: number);
push(name: Op): void;

@@ -33,12 +37,7 @@ push(name: Op, arg1: Operand): void;

pushMachine(name: Op, arg1: Operand, arg2: Operand, arg3: Operand): void;
commit(): number;
commit(heap: CompileTimeHeap, scopeSize: number): number;
reserve(name: Op): void;
reserveWithOperand(name: Op, operand: number): void;
reserveMachine(name: Op): void;
main(): void;
appendHTML(): void;
appendSafeHTML(): void;
appendDocumentFragment(): void;
appendNode(): void;
appendText(): void;
dynamicContent(): void;
beginComponentTransaction(): void;

@@ -71,13 +70,42 @@ commitComponentTransaction(): void;

protected readonly nextPos: number;
compileInline(sexp: WireFormat.Statements.Append): true | ["expr", WireFormat.Expressions.Expression];
compileBlock(name: string, params: WireFormat.Core.Params, hash: WireFormat.Core.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>): void;
}
export declare type VMHandlePlaceholder = [number, () => VMHandle];
export declare abstract class OpcodeBuilder<Locator> extends SimpleOpcodeBuilder {
program: CompileTimeProgram;
resolver: CompileTimeLookup<Locator>;
referrer: Locator;
macros: Macros;
containingLayout: ParsedLayout;
asPartial: boolean;
protected stdLib: STDLib | undefined;
constants: CompileTimeConstants;
component: ComponentBuilder<Locator>;
private expressionCompiler;
private labelsStack;
private isComponentAttrs;
constructor(program: CompileTimeProgram, resolver: CompileTimeLookup<Locator>, referrer: Locator, macros: Macros, containingLayout: ParsedLayout, asPartial: boolean, stdLib?: STDLib | undefined);
label(name: string): void;
setComponentAttrs(enabled: boolean): void;
expr(expression: WireFormat.Expression): void;
pushArgs(names: string[], flags: number): void;
private readonly labels;
startLabels(): void;
stopLabels(): void;
pushComponentDefinition(handle: number): void;
pushCurriedComponent(): void;
pushDynamicComponentInstance(): void;
resolveDynamicComponent(referrer: Locator): void;
staticComponentHelper(tag: string, hash: WireFormat.Core.Hash, template: Option<CompilableBlock>): boolean;
invokePartial(referrer: Locator, symbols: string[], evalInfo: number[]): void;
resolveMaybeLocal(name: string): void;
debugger(symbols: string[], evalInfo: number[]): void;
text(text: string): void;
openPrimitiveElement(tag: string): void;
openDynamicElement(): void;
flushElement(): void;
closeElement(): void;
staticAttr(_name: string, _namespace: Option<string>, _value: string): void;
dynamicAttr(_name: string, _namespace: Option<string>, trusting: boolean): void;
comment(_comment: string): void;
modifier(locator: Locator, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>): void;
putIterator(): void;

@@ -90,4 +118,6 @@ enterList(start: string): void;

getVariable(symbol: number): void;
getProperty(key: string): void;
getBlock(symbol: number): void;
hasBlock(symbol: number): void;
hasBlockParams(to: number): void;
concat(size: number): void;

@@ -99,4 +129,8 @@ load(register: Register): void;

returnTo(label: string): void;
primitive(_primitive: Primitive): void;
sizeImmediate(shifted: number, primitive: number): number;
pushPrimitiveReference(primitive: Primitive): void;
primitiveReference(): void;
reifyU32(): void;
helper(helper: Locator, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>): void;
bindDynamicScope(_names: string[]): void;
enter(args: number): void;

@@ -108,21 +142,19 @@ exit(): void;

jumpUnless(target: string): void;
jumpEq(value: number, target: string): void;
assertSame(): void;
pushEmptyArgs(): void;
stdAppend(trusting: boolean): void;
string(_string: string): number;
protected names(_names: string[]): number;
protected symbols(symbols: number[]): number;
inlineBlock(block: SerializedInlineBlock): CompilableBlock;
evalSymbols(): Option<string[]>;
compileParams(params: Option<WireFormat.Core.Params>): number;
compileArgs(params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>, blocks: Option<Blocks>, synthetic: boolean): void;
invokeStaticBlock(block: CompilableBlock, callerCount?: number): void;
builtInGuardedAppend(): void;
guardedAppend(expression: WireFormat.Expression, trusting: boolean): void;
yield(to: number, params: Option<WireFormat.Core.Params>): void;
populateLayout(state: number): void;
invokeBareComponent(): void;
invokeComponent(attrs: Option<CompilableBlock>, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>, layout?: CompilableProgram): void;
invokeStaticComponent(capabilities: ComponentCapabilities, layout: CompilableProgram, attrs: Option<CompilableBlock>, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>): void;
dynamicComponent(definition: WireFormat.Expression, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>): void;
isComponent(): void;
contentType(): void;
pushBlockScope(): void;
}
export declare type VMHandlePlaceholder = [number, () => VMHandle];
export declare abstract class OpcodeBuilder<Locator = Opaque> extends StdOpcodeBuilder {
containingLayout: LayoutWithContext<Locator>;
constants: CompileTimeConstants;
stdLib: STDLib;
component: ComponentBuilder<Locator>;
private expressionCompiler;
private isComponentAttrs;
constructor(compiler: Compiler, containingLayout: LayoutWithContext<Locator>);
curryComponent(definition: WireFormat.Expression, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean): void;
abstract pushBlock(block: Option<CompilableBlock>): void;

@@ -133,45 +165,9 @@ abstract resolveBlock(): void;

abstract resolveLayout(): void;
readonly referrer: Locator;
setComponentAttrs(enabled: boolean): void;
expr(expression: WireFormat.Expression): void;
pushArgs(names: string[], flags: number): void;
pushSymbolTable(table: Option<SymbolTable>): void;
pushBlockScope(): void;
pushYieldableBlock(block: Option<CompilableBlock>): void;
curryComponent(definition: WireFormat.Expression, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean): void;
pushSymbolTable(table: Option<SymbolTable>): void;
invokeComponent(attrs: Option<CompilableBlock>, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>, layout?: CompilableProgram): void;
invokeStaticComponent(capabilities: ComponentCapabilities, layout: CompilableProgram, attrs: Option<CompilableBlock>, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>): void;
dynamicComponent(definition: WireFormat.Expression, params: Option<WireFormat.Core.Params>, hash: WireFormat.Core.Hash, synthetic: boolean, block: Option<CompilableBlock>, inverse?: Option<CompilableBlock>): void;
yield(to: number, params: Option<WireFormat.Core.Params>): void;
guardedAppend(expression: WireFormat.Expression, trusting: boolean): void;
invokeStaticBlock(block: CompilableBlock, callerCount?: number): void;
string(_string: string): number;
protected names(_names: string[]): number;
protected symbols(symbols: number[]): number;
primitive(_primitive: Primitive): void;
sizeImmediate(shifted: number, primitive: number): number;
pushPrimitiveReference(primitive: Primitive): void;
pushComponentDefinition(handle: number): void;
resolveDynamicComponent(referrer: Locator): void;
staticComponentHelper(tag: string, hash: WireFormat.Core.Hash, template: Option<CompilableBlock>): boolean;
invokePartial(referrer: Locator, symbols: string[], evalInfo: number[]): void;
resolveMaybeLocal(name: string): void;
debugger(symbols: string[], evalInfo: number[]): void;
text(text: string): void;
openPrimitiveElement(tag: string): void;
modifier(locator: Locator, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>): void;
comment(_comment: string): void;
dynamicAttr(_name: string, _namespace: Option<string>, trusting: boolean): void;
staticAttr(_name: string, _namespace: Option<string>, _value: string): void;
hasBlockParams(to: number): void;
getProperty(key: string): void;
helper(helper: Locator, params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>): void;
bindDynamicScope(_names: string[]): void;
inlineBlock(block: SerializedInlineBlock): CompilableBlock;
evalSymbols(): Option<string[]>;
compileParams(params: Option<WireFormat.Core.Params>): number;
compileArgs(params: Option<WireFormat.Core.Params>, hash: Option<WireFormat.Core.Hash>, blocks: Option<Blocks>, synthetic: boolean): void;
template(block: Option<WireFormat.SerializedInlineBlock>): Option<CompilableBlock>;
}
export default OpcodeBuilder;
export declare class LazyOpcodeBuilder<Locator> extends OpcodeBuilder<Locator> {
export declare class LazyOpcodeBuilder<TemplateMeta> extends OpcodeBuilder<TemplateMeta> {
constants: CompileTimeLazyConstants;

@@ -186,3 +182,3 @@ pushBlock(block: Option<CompilableBlock>): void;

}
export declare class EagerOpcodeBuilder<Locator> extends OpcodeBuilder<Locator> {
export declare class EagerOpcodeBuilder<TemplateMeta> extends OpcodeBuilder<TemplateMeta> {
pushBlock(block: Option<CompilableBlock>): void;

@@ -189,0 +185,0 @@ resolveBlock(): void;

@@ -1,4 +0,4 @@

import { CompilableBlock, Option, Opaque, Compiler } from '@glimmer/interfaces';
import { CompilableBlock, CompileTimeProgram, Option } from '@glimmer/interfaces';
import * as WireFormat from '@glimmer/wire-format';
import OpcodeBuilder from "./opcode-builder";
import OpcodeBuilder, { CompileTimeLookup, OpcodeBuilderConstructor } from "./opcode-builder";
import S = WireFormat.Statements;

@@ -8,5 +8,5 @@ import E = WireFormat.Expressions;

export declare type TupleSyntax = WireFormat.Statement | WireFormat.TupleExpression;
export declare type CompilerFunction<T extends TupleSyntax> = ((sexp: T, builder: OpcodeBuilder<Opaque>) => void);
export declare type CompilerFunction<T extends TupleSyntax, TemplateMeta> = ((sexp: T, builder: OpcodeBuilder<TemplateMeta>) => void);
export declare const ATTRS_BLOCK = "&attrs";
export declare class Compilers<Syntax extends TupleSyntax> {
export declare class Compilers<T extends TupleSyntax> {
private offset;

@@ -16,6 +16,6 @@ private names;

constructor(offset?: number);
add<T extends Syntax>(name: number, func: (sexp: T, builder: OpcodeBuilder<Opaque>) => void): void;
compile(sexp: Syntax, builder: OpcodeBuilder<Opaque>): void;
add<TemplateMeta>(name: number, func: CompilerFunction<T, TemplateMeta>): void;
compile<TemplateMeta>(sexp: T, builder: OpcodeBuilder<TemplateMeta>): void;
}
export declare function statementCompiler(): Compilers<WireFormat.Statement>;
export declare function statementCompiler(): Compilers<S.Statement>;
export declare function expressionCompiler(): Compilers<E.TupleExpression>;

@@ -27,4 +27,4 @@ export declare class Macros {

}
export declare type BlockMacro<Locator> = (params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<Locator>) => void;
export declare type MissingBlockMacro<Locator> = (name: string, params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<Locator>) => void;
export declare type BlockMacro<TemplateMeta> = (params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<TemplateMeta>) => void;
export declare type MissingBlockMacro<TemplateMeta> = (name: string, params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<TemplateMeta>) => void;
export declare class Blocks {

@@ -34,8 +34,8 @@ private names;

private missing;
add<Locator>(name: string, func: BlockMacro<Locator>): void;
addMissing<Locator>(func: MissingBlockMacro<Locator>): void;
compile<Locator>(name: string, params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<Locator>): void;
add<TemplateMeta>(name: string, func: BlockMacro<TemplateMeta>): void;
addMissing<TemplateMeta>(func: MissingBlockMacro<TemplateMeta>): void;
compile<TemplateMeta>(name: string, params: C.Params, hash: C.Hash, template: Option<CompilableBlock>, inverse: Option<CompilableBlock>, builder: OpcodeBuilder<TemplateMeta>): void;
}
export declare type AppendSyntax = S.Append;
export declare type AppendMacro<Locator> = (name: string, params: Option<C.Params>, hash: Option<C.Hash>, builder: OpcodeBuilder<Locator>) => ['expr', WireFormat.Expression] | true | false;
export declare type AppendMacro<TemplateMeta> = (name: string, params: Option<C.Params>, hash: Option<C.Hash>, builder: OpcodeBuilder<TemplateMeta>) => ['expr', WireFormat.Expression] | true | false;
export declare class Inlines {

@@ -45,5 +45,5 @@ private names;

private missing;
add<Locator>(name: string, func: AppendMacro<Locator>): void;
addMissing<Locator>(func: AppendMacro<Locator>): void;
compile<Locator>(sexp: AppendSyntax, builder: OpcodeBuilder<Locator>): ['expr', WireFormat.Expression] | true;
add<TemplateMeta>(name: string, func: AppendMacro<TemplateMeta>): void;
addMissing<TemplateMeta>(func: AppendMacro<TemplateMeta>): void;
compile<TemplateMeta>(sexp: AppendSyntax, builder: OpcodeBuilder<TemplateMeta>): ['expr', WireFormat.Expression] | true;
}

@@ -54,6 +54,11 @@ export declare function populateBuiltins(blocks?: Blocks, inlines?: Inlines): {

};
export interface CompileOptions<Locator, Builder = Opaque> {
compiler: Compiler<Builder>;
export interface TemplateOptions<TemplateMeta> {
program: CompileTimeProgram;
macros: Macros;
Builder: OpcodeBuilderConstructor;
resolver: CompileTimeLookup<TemplateMeta>;
}
export interface CompileOptions<TemplateMeta> extends TemplateOptions<TemplateMeta> {
asPartial: boolean;
referrer: Locator;
referrer: TemplateMeta;
}

@@ -1,5 +0,7 @@

import { Template } from '@glimmer/interfaces';
import { Template, Opaque } from '@glimmer/interfaces';
import { SerializedTemplateWithLazyBlock } from '@glimmer/wire-format';
import { LazyCompiler } from "@glimmer/opcode-compiler";
export interface TemplateFactory<Locator> {
import CompilableTemplate from './compilable-template';
import { ParsedLayout } from './interfaces';
import { TemplateOptions } from "./syntax";
export interface TemplateFactory<TemplateMeta> {
/**

@@ -13,3 +15,3 @@ * Template identifier, if precompiled will be the id of the

*/
meta: Locator;
meta: TemplateMeta;
/**

@@ -21,3 +23,3 @@ * Used to create an environment specific singleton instance

*/
create(env: LazyCompiler<Locator>): Template<Locator>;
create(env: TemplateOptions<Opaque>): Template<TemplateMeta>;
/**

@@ -30,3 +32,3 @@ * Used to create an environment specific singleton instance

*/
create<U>(env: LazyCompiler<Locator>, meta: U): Template<Locator & U>;
create<U>(env: TemplateOptions<Opaque>, meta: U): Template<TemplateMeta & U>;
}

@@ -38,3 +40,8 @@ /**

*/
export default function templateFactory<Locator>(serializedTemplate: SerializedTemplateWithLazyBlock<Locator>): TemplateFactory<Locator>;
export default function templateFactory<Locator, U>(serializedTemplate: SerializedTemplateWithLazyBlock<Locator>): TemplateFactory<Locator & U>;
export default function templateFactory<TemplateMeta>(serializedTemplate: SerializedTemplateWithLazyBlock<TemplateMeta>): TemplateFactory<TemplateMeta>;
export default function templateFactory<TemplateMeta, U>(serializedTemplate: SerializedTemplateWithLazyBlock<TemplateMeta>): TemplateFactory<TemplateMeta & U>;
export declare function compilable<TemplateMeta>(layout: ParsedLayout<TemplateMeta>, options: TemplateOptions<Opaque>, asPartial: boolean): CompilableTemplate<{
referrer: TemplateMeta;
hasEval: boolean;
symbols: string[];
}, Opaque>;

@@ -1,15 +0,17 @@

import { ProgramSymbolTable, CompilableProgram, LayoutWithContext, Compiler } from '@glimmer/interfaces';
import { ComponentArgs, ComponentBuilder as IComponentBuilder } from './interfaces';
import { ProgramSymbolTable, CompilableProgram } from '@glimmer/interfaces';
import { ComponentArgs, ComponentBuilder as IComponentBuilder, ParsedLayout } from './interfaces';
import { CompileOptions } from './syntax';
import { OpcodeBuilder } from './opcode-builder';
export declare class WrappedBuilder<Locator> implements CompilableProgram {
private compiler;
export declare class WrappedBuilder<TemplateMeta> implements CompilableProgram {
options: CompileOptions<TemplateMeta>;
private layout;
symbolTable: ProgramSymbolTable;
constructor(compiler: Compiler<OpcodeBuilder<Locator>>, layout: LayoutWithContext<Locator>);
private referrer;
constructor(options: CompileOptions<TemplateMeta>, layout: ParsedLayout<TemplateMeta>);
compile(): number;
}
export declare class ComponentBuilder<Locator> implements IComponentBuilder {
export declare class ComponentBuilder<TemplateMeta> implements IComponentBuilder {
private builder;
constructor(builder: OpcodeBuilder<Locator>);
constructor(builder: OpcodeBuilder<TemplateMeta>);
static(handle: number, args: ComponentArgs): void;
}
{
"name": "@glimmer/opcode-compiler",
"version": "0.32.3",
"version": "0.32.4",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/opcode-compiler",
"dependencies": {
"@glimmer/util": "^0.32.3",
"@glimmer/wire-format": "^0.32.3",
"@glimmer/interfaces": "^0.32.3",
"@glimmer/program": "^0.32.3",
"@glimmer/vm": "^0.32.3",
"@glimmer/encoder": "^0.32.3",
"@glimmer/reference": "^0.32.3"
"@glimmer/util": "^0.32.4",
"@glimmer/wire-format": "^0.32.4",
"@glimmer/interfaces": "^0.32.4",
"@glimmer/program": "^0.32.4",
"@glimmer/vm": "^0.32.4",
"@glimmer/encoder": "^0.32.4",
"@glimmer/reference": "^0.32.4"
},
"devDependencies": {
"@glimmer/local-debug-flags": "^0.32.3",
"@glimmer/local-debug-flags": "^0.32.4",
"typescript": "^2.2.0"

@@ -17,0 +17,0 @@ },

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

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

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

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

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

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

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

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

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc