Socket
Socket
Sign inDemoInstall

@glimmer/runtime

Package Overview
Dependencies
Maintainers
12
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/runtime - npm Package Compare versions

Comparing version 0.75.0 to 0.76.0

34

dist/commonjs/es2017/lib/compiled/opcodes/dom.js

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

if (!(0, _reference.isConstRef)(reference)) {
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute));
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env));
}

@@ -270,22 +270,20 @@ });

class UpdateDynamicAttributeOpcode extends _opcodes.UpdatingOpcode {
constructor(reference, attribute) {
constructor(reference, attribute, env) {
super();
this.reference = reference;
this.attribute = attribute;
this.type = 'patch-element';
this.lastValue = (0, _reference.valueForRef)(reference);
let initialized = false;
this.updateRef = (0, _reference.createComputeRef)(() => {
let value = (0, _reference.valueForRef)(reference);
if (initialized === true) {
attribute.update(value, env);
} else {
initialized = true;
}
});
(0, _reference.valueForRef)(this.updateRef);
}
evaluate(vm) {
let {
attribute,
reference,
lastValue
} = this;
let currentValue = (0, _reference.valueForRef)(reference);
if (currentValue !== lastValue) {
attribute.update(currentValue, vm.env);
this.lastValue = currentValue;
}
evaluate() {
(0, _reference.valueForRef)(this.updateRef);
}

@@ -296,2 +294,2 @@

exports.UpdateDynamicAttributeOpcode = UpdateDynamicAttributeOpcode;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFtQkE7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUF6QixJQUF5QixDQUF6QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStCLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ25ELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxhQUFBLENBQTRCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUE1QixJQUE0QixDQUE1QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXFCO0FBQ3RELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQTBCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUExQixHQUEwQixDQUExQjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTJDLEVBQUQsSUFBTztBQUMvQyxNQUFJLE9BQU8sR0FBUyw0QkFBa0IsRUFBRSxDQUFGLEtBQUEsQ0FBdEMsS0FBc0MsRUFBbEIsQ0FBcEI7QUFDQSxFQUFBLEVBQUUsQ0FBRixRQUFB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QVEsQ0FBQSxFQUFBLEVBQWU7QUFDckIsUUFBSTtBQUFBLE1BQUEsU0FBQTtBQUFBLE1BQUEsU0FBQTtBQUF3QixNQUFBO0FBQXhCLFFBQUosSUFBQTtBQUNBLFFBQUksWUFBWSxHQUFHLDRCQUFuQixTQUFtQixDQUFuQjs7QUFFQSxRQUFJLFlBQVksS0FBaEIsU0FBQSxFQUFnQztBQUM5QixNQUFBLFNBQVMsQ0FBVCxNQUFBLENBQUEsWUFBQSxFQUErQixFQUFFLENBQWpDLEdBQUE7QUFDQSxXQUFBLFNBQUEsR0FBQSxZQUFBO0FBQ0Q7QUFDRjs7QUFsQjZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiwgaXNDb25zdFJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBSZXZpc2lvbiwgVGFnLCB2YWx1ZUZvclRhZywgdmFsaWRhdGVUYWcsIGNvbnN1bWVUYWcgfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHtcbiAgY2hlY2ssXG4gIENoZWNrU3RyaW5nLFxuICBDaGVja0VsZW1lbnQsXG4gIENoZWNrT3B0aW9uLFxuICBDaGVja05vZGUsXG4gIENoZWNrTWF5YmUsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7XG4gIE9wLFxuICBPcHRpb24sXG4gIE1vZGlmaWVyRGVmaW5pdGlvbixcbiAgTW9kaWZpZXJJbnN0YW5jZSxcbiAgVk1Bcmd1bWVudHMsXG4gIE93bmVyLFxuICBDdXJyaWVkVHlwZSxcbiAgTW9kaWZpZXJEZWZpbml0aW9uU3RhdGUsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHQwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEludGVybmFsVk0gfSBmcm9tICcuLi8uLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgQ3VycmllZFZhbHVlLCBpc0N1cnJpZWRUeXBlLCByZXNvbHZlQ3VycmllZFZhbHVlIH0gZnJvbSAnLi4vLi4vY3VycmllZC12YWx1ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248TW9kaWZpZXJJbnN0YW5jZVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgobW9kaWZpZXIpID0+IHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZUluc3RhbGxNb2RpZmllcihtb2RpZmllcik7XG4gICAgICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gbW9kaWZpZXI7XG4gICAgICBsZXQgZCA9IG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoc3RhdGUpO1xuXG4gICAgICBpZiAoZCkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Nb2RpZmllciwgKHZtLCB7IG9wMTogaGFuZGxlIH0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBvd25lciA9IHZtLmdldE93bmVyKCk7XG4gIGxldCBhcmdzID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgZGVmaW5pdGlvbiA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNNb2RpZmllciwgKHZtKSA9PiB7XG4gIGlmICh2bS5lbnYuaXNJbnRlcmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgeyBzdGFjaywgW0NPTlNUQU5UU106IGNvbnN0YW50cyB9ID0gdm07XG4gIGxldCByZWYgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWYpO1xuICBsZXQgb3duZXI6IE93bmVyO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGhvc3REZWZpbml0aW9uOiBDdXJyaWVkVmFsdWUgfCBNb2RpZmllckRlZmluaXRpb25TdGF0ZTtcblxuICBpZiAoaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuTW9kaWZpZXIpKSB7XG4gICAgbGV0IFtjdXJyaWVkVmFsdWUsIGN1cnJpZWRPd25lcl0gPSByZXNvbHZlQ3VycmllZFZhbHVlKHZhbHVlLCBhcmdzKTtcbiAgICBob3N0RGVmaW5pdGlvbiA9IGN1cnJpZWRWYWx1ZTtcbiAgICBvd25lciA9IGN1cnJpZWRPd25lcjtcbiAgfSBlbHNlIHtcbiAgICBob3N0RGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgfVxuXG4gIGxldCBoYW5kbGUgPSBjb25zdGFudHMubW9kaWZpZXIoaG9zdERlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gIGlmIChERUJVRyAmJiBoYW5kbGUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRXhwZWN0ZWQgYSBkeW5hbWljIG1vZGlmaWVyIGRlZmluaXRpb24sIGJ1dCByZWNlaXZlZCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24gdGhhdCBkaWQgbm90IGhhdmUgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGR5bmFtaWMgaW52b2NhdGlvbiB3YXMgXFxge3ske1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfX19XFxgLCBhbmQgdGhlIGluY29ycmVjdCBkZWZpbml0aW9uIGlzIHRoZSB2YWx1ZSBhdCB0aGUgcGF0aCBcXGAke1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfVxcYCwgd2hpY2ggd2FzOiAke2RlYnVnVG9TdHJpbmchKGhvc3REZWZpbml0aW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGxldCBkZWZpbml0aW9uID0gY29uc3RhbnRzLmdldFZhbHVlPE1vZGlmaWVyRGVmaW5pdGlvbj4oXG4gICAgZXhwZWN0KGhhbmRsZSwgJ0JVRzogbW9kaWZpZXIgaGFuZGxlIGV4cGVjdGVkJylcbiAgKTtcblxuICBpbnZva2VNb2RpZmllcih2bSwgb3duZXIsIGFyZ3MsIGRlZmluaXRpb24pO1xufSk7XG5cbmZ1bmN0aW9uIGludm9rZU1vZGlmaWVyKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgb3duZXI6IE93bmVyLFxuICBhcmdzOiBWTUFyZ3VtZW50cyxcbiAgZGVmaW5pdGlvbjogTW9kaWZpZXJEZWZpbml0aW9uXG4pIHtcbiAgbGV0IHsgbWFuYWdlciB9ID0gZGVmaW5pdGlvbjtcblxuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcblxuICBsZXQgc3RhdGUgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBvd25lcixcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIGRlZmluaXRpb24uc3RhdGUsXG4gICAgYXJncyxcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdXBkYXRlT3BlcmF0aW9uc1xuICApO1xuXG4gIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZSA9IHtcbiAgICBtYW5hZ2VyLFxuICAgIHN0YXRlLFxuICAgIGRlZmluaXRpb24sXG4gIH07XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKGluc3RhbmNlKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcoc3RhdGUpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBpbnN0YW5jZSkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2RpZmllck9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAndXBkYXRlLW1vZGlmaWVyJztcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlZDogUmV2aXNpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhZzogVGFnLCBwcml2YXRlIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3RydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB0cnVzdGluZyA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8Ym9vbGVhbj4oX3RydXN0aW5nKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSkpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3BhdGNoLWVsZW1lbnQnO1xuXG4gIHB1YmxpYyBsYXN0VmFsdWU6IHVua25vd247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgcHJpdmF0ZSBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgYXR0cmlidXRlLCByZWZlcmVuY2UsIGxhc3RWYWx1ZSB9ID0gdGhpcztcbiAgICBsZXQgY3VycmVudFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgIGlmIChjdXJyZW50VmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgYXR0cmlidXRlLnVwZGF0ZShjdXJyZW50VmFsdWUsIHZtLmVudik7XG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFvQkE7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUF6QixJQUF5QixDQUF6QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStCLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ25ELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxhQUFBLENBQTRCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUE1QixJQUE0QixDQUE1QjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLENBQUEsRUFBQSxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXFCO0FBQ3RELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQTBCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUExQixHQUEwQixDQUExQjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTJDLEVBQUQsSUFBTztBQUMvQyxNQUFJLE9BQU8sR0FBUyw0QkFBa0IsRUFBRSxDQUFGLEtBQUEsQ0FBdEMsS0FBc0MsRUFBbEIsQ0FBcEI7QUFDQSxFQUFBLEVBQUUsQ0FBRixRQUFB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NEJBQVosU0FBWSxDQUFaOztBQUVBLFVBQUksV0FBVyxLQUFmLElBQUEsRUFBMEI7QUFDeEIsUUFBQSxTQUFTLENBQVQsTUFBQSxDQUFBLEtBQUEsRUFBQSxHQUFBO0FBREYsT0FBQSxNQUVPO0FBQ0wsUUFBQSxXQUFXLEdBQVgsSUFBQTtBQUNEO0FBUEgsS0FBaUIsQ0FBakI7QUFVQSxnQ0FBWSxLQUFaLFNBQUE7QUFDRDs7QUFFRCxFQUFBLFFBQVEsR0FBQTtBQUNOLGdDQUFZLEtBQVosU0FBQTtBQUNEOztBQXpCNkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZlcmVuY2UsIHZhbHVlRm9yUmVmLCBpc0NvbnN0UmVmLCBjcmVhdGVDb21wdXRlUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IFJldmlzaW9uLCBUYWcsIHZhbHVlRm9yVGFnLCB2YWxpZGF0ZVRhZywgY29uc3VtZVRhZyB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrRWxlbWVudCxcbiAgQ2hlY2tPcHRpb24sXG4gIENoZWNrTm9kZSxcbiAgQ2hlY2tNYXliZSxcbn0gZnJvbSAnQGdsaW1tZXIvZGVidWcnO1xuaW1wb3J0IHtcbiAgT3AsXG4gIE9wdGlvbixcbiAgTW9kaWZpZXJEZWZpbml0aW9uLFxuICBNb2RpZmllckluc3RhbmNlLFxuICBWTUFyZ3VtZW50cyxcbiAgT3duZXIsXG4gIEN1cnJpZWRUeXBlLFxuICBNb2RpZmllckRlZmluaXRpb25TdGF0ZSxcbiAgRW52aXJvbm1lbnQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHQwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEludGVybmFsVk0gfSBmcm9tICcuLi8uLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgQ3VycmllZFZhbHVlLCBpc0N1cnJpZWRUeXBlLCByZXNvbHZlQ3VycmllZFZhbHVlIH0gZnJvbSAnLi4vLi4vY3VycmllZC12YWx1ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248TW9kaWZpZXJJbnN0YW5jZVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgobW9kaWZpZXIpID0+IHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZUluc3RhbGxNb2RpZmllcihtb2RpZmllcik7XG4gICAgICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gbW9kaWZpZXI7XG4gICAgICBsZXQgZCA9IG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoc3RhdGUpO1xuXG4gICAgICBpZiAoZCkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Nb2RpZmllciwgKHZtLCB7IG9wMTogaGFuZGxlIH0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBvd25lciA9IHZtLmdldE93bmVyKCk7XG4gIGxldCBhcmdzID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgZGVmaW5pdGlvbiA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNNb2RpZmllciwgKHZtKSA9PiB7XG4gIGlmICh2bS5lbnYuaXNJbnRlcmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgeyBzdGFjaywgW0NPTlNUQU5UU106IGNvbnN0YW50cyB9ID0gdm07XG4gIGxldCByZWYgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWYpO1xuICBsZXQgb3duZXI6IE93bmVyO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGhvc3REZWZpbml0aW9uOiBDdXJyaWVkVmFsdWUgfCBNb2RpZmllckRlZmluaXRpb25TdGF0ZTtcblxuICBpZiAoaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuTW9kaWZpZXIpKSB7XG4gICAgbGV0IFtjdXJyaWVkVmFsdWUsIGN1cnJpZWRPd25lcl0gPSByZXNvbHZlQ3VycmllZFZhbHVlKHZhbHVlLCBhcmdzKTtcbiAgICBob3N0RGVmaW5pdGlvbiA9IGN1cnJpZWRWYWx1ZTtcbiAgICBvd25lciA9IGN1cnJpZWRPd25lcjtcbiAgfSBlbHNlIHtcbiAgICBob3N0RGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgfVxuXG4gIGxldCBoYW5kbGUgPSBjb25zdGFudHMubW9kaWZpZXIoaG9zdERlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gIGlmIChERUJVRyAmJiBoYW5kbGUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRXhwZWN0ZWQgYSBkeW5hbWljIG1vZGlmaWVyIGRlZmluaXRpb24sIGJ1dCByZWNlaXZlZCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24gdGhhdCBkaWQgbm90IGhhdmUgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGR5bmFtaWMgaW52b2NhdGlvbiB3YXMgXFxge3ske1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfX19XFxgLCBhbmQgdGhlIGluY29ycmVjdCBkZWZpbml0aW9uIGlzIHRoZSB2YWx1ZSBhdCB0aGUgcGF0aCBcXGAke1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfVxcYCwgd2hpY2ggd2FzOiAke2RlYnVnVG9TdHJpbmchKGhvc3REZWZpbml0aW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGxldCBkZWZpbml0aW9uID0gY29uc3RhbnRzLmdldFZhbHVlPE1vZGlmaWVyRGVmaW5pdGlvbj4oXG4gICAgZXhwZWN0KGhhbmRsZSwgJ0JVRzogbW9kaWZpZXIgaGFuZGxlIGV4cGVjdGVkJylcbiAgKTtcblxuICBpbnZva2VNb2RpZmllcih2bSwgb3duZXIsIGFyZ3MsIGRlZmluaXRpb24pO1xufSk7XG5cbmZ1bmN0aW9uIGludm9rZU1vZGlmaWVyKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgb3duZXI6IE93bmVyLFxuICBhcmdzOiBWTUFyZ3VtZW50cyxcbiAgZGVmaW5pdGlvbjogTW9kaWZpZXJEZWZpbml0aW9uXG4pIHtcbiAgbGV0IHsgbWFuYWdlciB9ID0gZGVmaW5pdGlvbjtcblxuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcblxuICBsZXQgc3RhdGUgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBvd25lcixcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIGRlZmluaXRpb24uc3RhdGUsXG4gICAgYXJncyxcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdXBkYXRlT3BlcmF0aW9uc1xuICApO1xuXG4gIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZSA9IHtcbiAgICBtYW5hZ2VyLFxuICAgIHN0YXRlLFxuICAgIGRlZmluaXRpb24sXG4gIH07XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKGluc3RhbmNlKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcoc3RhdGUpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBpbnN0YW5jZSkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2RpZmllck9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAndXBkYXRlLW1vZGlmaWVyJztcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlZDogUmV2aXNpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhZzogVGFnLCBwcml2YXRlIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3RydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB0cnVzdGluZyA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8Ym9vbGVhbj4oX3RydXN0aW5nKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSwgdm0uZW52KSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAncGF0Y2gtZWxlbWVudCc7XG5cbiAgcHJpdmF0ZSB1cGRhdGVSZWY6IFJlZmVyZW5jZTtcblxuICBjb25zdHJ1Y3RvcihyZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgYXR0cmlidXRlOiBEeW5hbWljQXR0cmlidXRlLCBlbnY6IEVudmlyb25tZW50KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGxldCBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgdGhpcy51cGRhdGVSZWYgPSBjcmVhdGVDb21wdXRlUmVmKCgpID0+IHtcbiAgICAgIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG5cbiAgICAgIGlmIChpbml0aWFsaXplZCA9PT0gdHJ1ZSkge1xuICAgICAgICBhdHRyaWJ1dGUudXBkYXRlKHZhbHVlLCBlbnYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFsdWVGb3JSZWYodGhpcy51cGRhdGVSZWYpO1xuICB9XG5cbiAgZXZhbHVhdGUoKSB7XG4gICAgdmFsdWVGb3JSZWYodGhpcy51cGRhdGVSZWYpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -12,2 +12,4 @@ "use strict";

var _util = require("@glimmer/util");
var _internalHelper = require("./internal-helper");

@@ -98,3 +100,3 @@

if (isObject(source)) {
if ((0, _util.isDict)(source)) {
return (0, _globalContext.getPath)(source, String((0, _reference.valueForRef)(pathRef)));

@@ -105,3 +107,3 @@ }

if (isObject(source)) {
if ((0, _util.isDict)(source)) {
return (0, _globalContext.setPath)(source, String((0, _reference.valueForRef)(pathRef)), value);

@@ -113,6 +115,2 @@ }

exports.default = _default;
function isObject(obj) {
return typeof obj === 'function' || typeof obj === 'object' && obj !== null;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUE2RWUsb0NBQWdCLElBQUQsSUFBc0I7QUFDbEQsTUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFKLFVBQUEsQ0FBQSxFQUFBLENBQWhCLENBQWdCLENBQWhCO0FBQ0EsTUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFKLFVBQUEsQ0FBQSxFQUFBLENBQWQsQ0FBYyxDQUFkO0FBRUEsU0FBTyxpQ0FDTCxNQUFLO0FBQ0gsUUFBSSxNQUFNLEdBQUcsNEJBQWIsU0FBYSxDQUFiOztBQUVBLFFBQUksUUFBUSxDQUFaLE1BQVksQ0FBWixFQUFzQjtBQUNwQixhQUFPLDRCQUFPLE1BQVAsRUFBZ0IsTUFBTSxDQUFDLDRCQUE5QixPQUE4QixDQUFELENBQXRCLENBQVA7QUFDRDtBQU5rQixHQUFoQixFQVFKLEtBQUQsSUFBVTtBQUNSLFFBQUksTUFBTSxHQUFHLDRCQUFiLFNBQWEsQ0FBYjs7QUFFQSxRQUFJLFFBQVEsQ0FBWixNQUFZLENBQVosRUFBc0I7QUFDcEIsYUFBTyw0QkFBTyxNQUFQLEVBQWdCLE1BQU0sQ0FBQyw0QkFBaEIsT0FBZ0IsQ0FBRCxDQUF0QixFQUFQLEtBQU8sQ0FBUDtBQUNEO0FBYmtCLEdBQWhCLEVBQVAsS0FBTyxDQUFQO0FBSkYsQ0FBZSxDOzs7O0FBdUJmLFNBQUEsUUFBQSxDQUFBLEdBQUEsRUFBOEI7QUFDNUIsU0FBTyxPQUFBLEdBQUEsS0FBQSxVQUFBLElBQThCLE9BQUEsR0FBQSxLQUFBLFFBQUEsSUFBMkIsR0FBRyxLQUFuRSxJQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYXRoLCBzZXRQYXRoIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgVk1Bcmd1bWVudHMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGludGVybmFsSGVscGVyIH0gZnJvbSAnLi9pbnRlcm5hbC1oZWxwZXInO1xuXG4vKipcbiAgRHluYW1pY2FsbHkgbG9vayB1cCBhIHByb3BlcnR5IG9uIGFuIG9iamVjdC4gVGhlIHNlY29uZCBhcmd1bWVudCB0byBge3tnZXR9fWBcbiAgc2hvdWxkIGhhdmUgYSBzdHJpbmcgdmFsdWUsIGFsdGhvdWdoIGl0IGNhbiBiZSBib3VuZC5cblxuICBGb3IgZXhhbXBsZSwgdGhlc2UgdHdvIHVzYWdlcyBhcmUgZXF1aXZhbGVudDpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG4gIH1cbiAgYGBgXG5cbiAgYGBgaGFuZGxlYmFyc1xuICB7e3RoaXMuZGV2ZWxvcGVyLm5hbWV9fVxuICB7e2dldCB0aGlzLmRldmVsb3BlciBcIm5hbWVcIn19XG4gIGBgYFxuXG4gIElmIHRoZXJlIHdlcmUgc2V2ZXJhbCBmYWN0cyBhYm91dCBhIHBlcnNvbiwgdGhlIGB7e2dldH19YCBoZWxwZXIgY2FuIGR5bmFtaWNhbGx5XG4gIHBpY2sgb25lOlxuXG4gIGBgYGFwcC90ZW1wbGF0ZXMvYXBwbGljYXRpb24uaGJzXG4gIDxEZXZlbG9wZXJEZXRhaWwgQGZhY3ROYW1lPVwibGFuZ3VhZ2VcIiAvPlxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIEBmYWN0TmFtZX19XG4gIGBgYFxuXG4gIEZvciBhIG1vcmUgY29tcGxleCBleGFtcGxlLCB0aGlzIHRlbXBsYXRlIHdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3aXRjaFxuICBiZXR3ZWVuIHNob3dpbmcgdGhlIHVzZXIncyBoZWlnaHQgYW5kIHdlaWdodCB3aXRoIGEgY2xpY2s6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICBpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG4gIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5cbiAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIEB0cmFja2VkIGRldmVsb3BlciA9IHtcbiAgICAgIG5hbWU6IFwiU2FuZGkgTWV0elwiLFxuICAgICAgbGFuZ3VhZ2U6IFwiUnVieVwiXG4gICAgfVxuXG4gICAgQHRyYWNrZWQgY3VycmVudEZhY3QgPSAnbmFtZSdcblxuICAgIHNob3dGYWN0ID0gKGZhY3QpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudEZhY3QgPSBmYWN0O1xuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIHRoaXMuY3VycmVudEZhY3R9fVxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBUaGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gYWxzbyByZXNwZWN0IG11dGFibGUgdmFsdWVzIGl0c2VsZi4gRm9yIGV4YW1wbGU6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICA8SW5wdXQgQHZhbHVlPXt7bXV0IChnZXQgdGhpcy5wZXJzb24gdGhpcy5jdXJyZW50RmFjdCl9fSAvPlxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBXb3VsZCBhbGxvdyB0aGUgdXNlciB0byBzd2FwIHdoYXQgZmFjdCBpcyBiZWluZyBkaXNwbGF5ZWQsIGFuZCBhbHNvIGVkaXRcbiAgdGhhdCBmYWN0IHZpYSBhIHR3by13YXkgbXV0YWJsZSBiaW5kaW5nLlxuXG4gIEBwdWJsaWNcbiAgQG1ldGhvZCBnZXRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgaW50ZXJuYWxIZWxwZXIoKGFyZ3M6IFZNQXJndW1lbnRzKSA9PiB7XG4gIGxldCBzb3VyY2VSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMCk7XG4gIGxldCBwYXRoUmVmID0gYXJncy5wb3NpdGlvbmFsLmF0KDEpO1xuXG4gIHJldHVybiBjcmVhdGVDb21wdXRlUmVmKFxuICAgICgpID0+IHtcbiAgICAgIGxldCBzb3VyY2UgPSB2YWx1ZUZvclJlZihzb3VyY2VSZWYpO1xuXG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gZ2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgKHZhbHVlKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNldFBhdGgoc291cmNlLCBTdHJpbmcodmFsdWVGb3JSZWYocGF0aFJlZikpLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAnZ2V0J1xuICApO1xufSk7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iajogdW5rbm93bik6IG9iaiBpcyBvYmplY3Qge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUE2RWUsb0NBQWdCLElBQUQsSUFBc0I7QUFDbEQsTUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFKLFVBQUEsQ0FBQSxFQUFBLENBQWhCLENBQWdCLENBQWhCO0FBQ0EsTUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFKLFVBQUEsQ0FBQSxFQUFBLENBQWQsQ0FBYyxDQUFkO0FBRUEsU0FBTyxpQ0FDTCxNQUFLO0FBQ0gsUUFBSSxNQUFNLEdBQUcsNEJBQWIsU0FBYSxDQUFiOztBQUVBLFFBQUksa0JBQUosTUFBSSxDQUFKLEVBQW9CO0FBQ2xCLGFBQU8sNEJBQU8sTUFBUCxFQUFnQixNQUFNLENBQUMsNEJBQTlCLE9BQThCLENBQUQsQ0FBdEIsQ0FBUDtBQUNEO0FBTmtCLEdBQWhCLEVBUUosS0FBRCxJQUFVO0FBQ1IsUUFBSSxNQUFNLEdBQUcsNEJBQWIsU0FBYSxDQUFiOztBQUVBLFFBQUksa0JBQUosTUFBSSxDQUFKLEVBQW9CO0FBQ2xCLGFBQU8sNEJBQU8sTUFBUCxFQUFnQixNQUFNLENBQUMsNEJBQWhCLE9BQWdCLENBQUQsQ0FBdEIsRUFBUCxLQUFPLENBQVA7QUFDRDtBQWJrQixHQUFoQixFQUFQLEtBQU8sQ0FBUDtBQUpGLENBQWUsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFBhdGgsIHNldFBhdGggfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBWTUFyZ3VtZW50cyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgaXNEaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBpbnRlcm5hbEhlbHBlciB9IGZyb20gJy4vaW50ZXJuYWwtaGVscGVyJztcblxuLyoqXG4gIER5bmFtaWNhbGx5IGxvb2sgdXAgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHt7Z2V0fX1gXG4gIHNob3VsZCBoYXZlIGEgc3RyaW5nIHZhbHVlLCBhbHRob3VnaCBpdCBjYW4gYmUgYm91bmQuXG5cbiAgRm9yIGV4YW1wbGUsIHRoZXNlIHR3byB1c2FnZXMgYXJlIGVxdWl2YWxlbnQ6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICBpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG4gIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5cbiAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIEB0cmFja2VkIGRldmVsb3BlciA9IHtcbiAgICAgIG5hbWU6IFwiU2FuZGkgTWV0elwiLFxuICAgICAgbGFuZ3VhZ2U6IFwiUnVieVwiXG4gICAgfVxuICB9XG4gIGBgYFxuXG4gIGBgYGhhbmRsZWJhcnNcbiAge3t0aGlzLmRldmVsb3Blci5uYW1lfX1cbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgXCJuYW1lXCJ9fVxuICBgYGBcblxuICBJZiB0aGVyZSB3ZXJlIHNldmVyYWwgZmFjdHMgYWJvdXQgYSBwZXJzb24sIHRoZSBge3tnZXR9fWAgaGVscGVyIGNhbiBkeW5hbWljYWxseVxuICBwaWNrIG9uZTpcblxuICBgYGBhcHAvdGVtcGxhdGVzL2FwcGxpY2F0aW9uLmhic1xuICA8RGV2ZWxvcGVyRGV0YWlsIEBmYWN0TmFtZT1cImxhbmd1YWdlXCIgLz5cbiAgYGBgXG5cbiAgYGBgaGFuZGxlYmFyc1xuICB7e2dldCB0aGlzLmRldmVsb3BlciBAZmFjdE5hbWV9fVxuICBgYGBcblxuICBGb3IgYSBtb3JlIGNvbXBsZXggZXhhbXBsZSwgdGhpcyB0ZW1wbGF0ZSB3b3VsZCBhbGxvdyB0aGUgdXNlciB0byBzd2l0Y2hcbiAgYmV0d2VlbiBzaG93aW5nIHRoZSB1c2VyJ3MgaGVpZ2h0IGFuZCB3ZWlnaHQgd2l0aCBhIGNsaWNrOlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuICBpbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG4gIGV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBAdHJhY2tlZCBkZXZlbG9wZXIgPSB7XG4gICAgICBuYW1lOiBcIlNhbmRpIE1ldHpcIixcbiAgICAgIGxhbmd1YWdlOiBcIlJ1YnlcIlxuICAgIH1cblxuICAgIEB0cmFja2VkIGN1cnJlbnRGYWN0ID0gJ25hbWUnXG5cbiAgICBzaG93RmFjdCA9IChmYWN0KSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRGYWN0ID0gZmFjdDtcbiAgICB9XG4gIH1cbiAgYGBgXG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICB7e2dldCB0aGlzLmRldmVsb3BlciB0aGlzLmN1cnJlbnRGYWN0fX1cblxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcIm5hbWVcIil9fT5TaG93IG5hbWU8L2J1dHRvbj5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJsYW5ndWFnZVwiKX19PlNob3cgbGFuZ3VhZ2U8L2J1dHRvbj5cbiAgYGBgXG5cbiAgVGhlIGB7e2dldH19YCBoZWxwZXIgY2FuIGFsc28gcmVzcGVjdCBtdXRhYmxlIHZhbHVlcyBpdHNlbGYuIEZvciBleGFtcGxlOlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgPElucHV0IEB2YWx1ZT17e211dCAoZ2V0IHRoaXMucGVyc29uIHRoaXMuY3VycmVudEZhY3QpfX0gLz5cblxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcIm5hbWVcIil9fT5TaG93IG5hbWU8L2J1dHRvbj5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJsYW5ndWFnZVwiKX19PlNob3cgbGFuZ3VhZ2U8L2J1dHRvbj5cbiAgYGBgXG5cbiAgV291bGQgYWxsb3cgdGhlIHVzZXIgdG8gc3dhcCB3aGF0IGZhY3QgaXMgYmVpbmcgZGlzcGxheWVkLCBhbmQgYWxzbyBlZGl0XG4gIHRoYXQgZmFjdCB2aWEgYSB0d28td2F5IG11dGFibGUgYmluZGluZy5cblxuICBAcHVibGljXG4gIEBtZXRob2QgZ2V0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGludGVybmFsSGVscGVyKChhcmdzOiBWTUFyZ3VtZW50cykgPT4ge1xuICBsZXQgc291cmNlUmVmID0gYXJncy5wb3NpdGlvbmFsLmF0KDApO1xuICBsZXQgcGF0aFJlZiA9IGFyZ3MucG9zaXRpb25hbC5hdCgxKTtcblxuICByZXR1cm4gY3JlYXRlQ29tcHV0ZVJlZihcbiAgICAoKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzRGljdChzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBnZXRQYXRoKHNvdXJjZSwgU3RyaW5nKHZhbHVlRm9yUmVmKHBhdGhSZWYpKSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAodmFsdWUpID0+IHtcbiAgICAgIGxldCBzb3VyY2UgPSB2YWx1ZUZvclJlZihzb3VyY2VSZWYpO1xuXG4gICAgICBpZiAoaXNEaWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNldFBhdGgoc291cmNlLCBTdHJpbmcodmFsdWVGb3JSZWYocGF0aFJlZikpLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAnZ2V0J1xuICApO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9

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

let reified = vm[_symbols.CONSTANTS].component(definition, false, owner);
let reified = vm[_symbols.CONSTANTS].component(definition, owner);

@@ -126,2 +126,2 @@ vm.pushFrame(); // Push blocks on to the stack, three stack values per block

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQUEsb0JBQUEsQ0FBMEI7QUFDeEIsRUFBQSxXQUFBLENBQUEsRUFBQSxFQUFrQztBQUFkLFNBQUEsRUFBQSxHQUFBLEVBQUE7QUFBa0I7O0FBQ3RDLEVBQUEsSUFBSSxHQUFBO0FBQ0YsV0FBTyxLQUFBLEVBQUEsQ0FBUCxJQUFPLEVBQVA7QUFDRDs7QUFFRCxFQUFBLElBQUksR0FBQTtBQUNGLFFBQUEsVUFBQSxFQUFXO0FBQ1QsYUFBTyx5Q0FBMEIsTUFBTSxLQUFBLEVBQUEsQ0FBUCxPQUFPLEVBQWhDLEVBQVAsb0JBQU8sQ0FBUDtBQURGLEtBQUEsTUFFTztBQUNMLGFBQU8sS0FBQSxFQUFBLENBQVAsT0FBTyxFQUFQO0FBQ0Q7QUFDRjs7QUFadUI7O0FBZXBCLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxRQUFBLEVBQWlFO0FBQ3JFLE1BQUEsTUFBQTtBQUVBLGtDQUFhLEdBQWIsRUFBbUIsTUFBTyxNQUFNLEdBQUcsUUFBUSxDQUEzQyxJQUFtQyxFQUFuQztBQUVBLFNBQUEsTUFBQTtBQUNEOztBQUVLLFNBQUEsVUFBQSxDQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsTUFBQSxFQU9KLFlBQUEsR0FBNkIsSUFQekIsdUJBT3lCLEVBUHpCLEVBTytDO0FBRW5ELE1BQUksTUFBTSxHQUFHLHdCQUFhLE1BQU0sQ0FBTixPQUFBLENBQTFCLE9BQTBCLENBQWIsQ0FBYjtBQUNBLE1BQUksVUFBVSxHQUFHLE1BQU0sQ0FBTixXQUFBLENBQUEsT0FBQSxDQUFqQixNQUFBOztBQUNBLE1BQUksRUFBRSxHQUFHLGdCQUFBLE9BQUEsQ0FBQSxPQUFBLEVB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S0FBQSxFQUFBLFVBQUEsRUFBaUMsaUJBQWlCLENBQXpFLElBQXlFLENBQWxELENBQXZCO0FBQ0Q7O0FBRUQsU0FBQSxpQkFBQSxDQUFBLE1BQUEsRUFBMEQ7QUFDeEQsUUFBTSxJQUFJLEdBQUcsK0JBQWMsTUFBZCxFQUFiLE1BQWEsQ0FBYjtBQUVBLFNBQU8sTUFBTSxDQUFOLElBQUEsQ0FBQSxNQUFBLEVBQUEsTUFBQSxDQUEyQixDQUFBLEdBQUEsRUFBQSxHQUFBLEtBQWE7QUFDN0MsSUFBQSxHQUFHLENBQUgsR0FBRyxDQUFILEdBQVcsNEJBQVcsSUFBWCxFQUFYLEdBQVcsQ0FBWDtBQUNBLFdBQUEsR0FBQTtBQUZLLEdBQUEsRUFBUCxFQUFPLENBQVA7QUFJRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIER5bmFtaWNTY29wZSxcbiAgRW52aXJvbm1lbnQsXG4gIFJlbmRlclJlc3VsdCxcbiAgUmljaEl0ZXJhdG9yUmVzdWx0LFxuICBUZW1wbGF0ZUl0ZXJhdG9yLFxuICBSdW50aW1lQ29udGV4dCxcbiAgRWxlbWVudEJ1aWxkZXIsXG4gIENvbXBpbGFibGVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjaGlsZFJlZkZvciwgY3JlYXRlQ29uc3RSZWYsIFJlZmVyZW5jZSB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBleHBlY3QsIHVud3JhcEhhbmRsZSB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgQVJHUywgQ09OU1RBTlRTIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCBWTSwgeyBJbnRlcm5hbFZNIH0gZnJvbSAnLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgRHluYW1pY1Njb3BlSW1wbCB9IGZyb20gJy4vc2NvcGUnO1xuaW1wb3J0IHsgaW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgcnVuSW5UcmFja2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcblxuY2xhc3MgVGVtcGxhdGVJdGVyYXRvckltcGwgaW1wbGVtZW50cyBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2bTogSW50ZXJuYWxWTSkge31cbiAgbmV4dCgpOiBSaWNoSXRlcmF0b3JSZXN1bHQ8bnVsbCwgUmVuZGVyUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMudm0ubmV4dCgpO1xuICB9XG5cbiAgc3luYygpOiBSZW5kZXJSZXN1bHQge1xuICAgIGlmIChERUJVRykge1xuICAgICAgcmV0dXJuIHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiEoKCkgPT4gdGhpcy52bS5leGVjdXRlKCksICctIFdoaWxlIHJlbmRlcmluZzonKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudm0uZXhlY3V0ZSgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyU3luYyhlbnY6IEVudmlyb25tZW50LCBpdGVyYXRvcjogVGVtcGxhdGVJdGVyYXRvcik6IFJlbmRlclJlc3VsdCB7XG4gIGxldCByZXN1bHQ6IFJlbmRlclJlc3VsdDtcblxuICBpblRyYW5zYWN0aW9uKGVudiwgKCkgPT4gKHJlc3VsdCA9IGl0ZXJhdG9yLnN5bmMoKSkpO1xuXG4gIHJldHVybiByZXN1bHQhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWFpbihcbiAgcnVudGltZTogUnVudGltZUNvbnRleHQsXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIHNlbGY6IFJlZmVyZW5jZSxcbiAgdHJlZUJ1aWxkZXI6IEVsZW1lbnRCdWlsZGVyLFxuICBsYXlvdXQ6IENvbXBpbGFibGVQcm9ncmFtLFxuICBkeW5hbWljU2NvcGU6IER5bmFtaWNTY29wZSA9IG5ldyBEeW5hbWljU2NvcGVJbXBsKClcbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICBsZXQgaGFuZGxlID0gdW53cmFwSGFuZGxlKGxheW91dC5jb21waWxlKGNvbnRleHQpKTtcbiAgbGV0IG51bVN5bWJvbHMgPSBsYXlvdXQuc3ltYm9sVGFibGUuc3ltYm9scy5sZW5ndGg7XG4gIGxldCB2bSA9IFZNLmluaXRpYWwocnVudGltZSwgY29udGV4dCwge1xuICAgIHNlbGYsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHRyZWVCdWlsZGVyLFxuICAgIGhhbmRsZSxcbiAgICBudW1TeW1ib2xzLFxuICAgIG93bmVyLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCh2bSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckludm9jYXRpb24oXG4gIHZtOiBJbnRlcm5hbFZNLFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBkZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT5cbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICAvLyBHZXQgYSBsaXN0IG9mIHR1cGxlcyBvZiBhcmd1bWVudCBuYW1lcyBhbmQgcmVmZXJlbmNlcywgbGlrZVxuICAvLyBbWyd0aXRsZScsIHJlZmVyZW5jZV0sIFsnbmFtZScsIHJlZmVyZW5jZV1dXG4gIGNvbnN0IGFyZ0xpc3QgPSBPYmplY3Qua2V5cyhhcmdzKS5tYXAoKGtleSkgPT4gW2tleSwgYXJnc1trZXldXSk7XG5cbiAgY29uc3QgYmxvY2tOYW1lcyA9IFsnbWFpbicsICdlbHNlJywgJ2F0dHJzJ107XG4gIC8vIFByZWZpeCBhcmd1bWVudCBuYW1lcyB3aXRoIGBAYCBzeW1ib2xcbiAgY29uc3QgYXJnTmFtZXMgPSBhcmdMaXN0Lm1hcCgoW25hbWVdKSA9PiBgQCR7bmFtZX1gKTtcblxuICBsZXQgcmVpZmllZCA9IHZtW0NPTlNUQU5UU10uY29tcG9uZW50KGRlZmluaXRpb24sIGZhbHNlLCBvd25lcik7XG5cbiAgdm0ucHVzaEZyYW1lKCk7XG5cbiAgLy8gUHVzaCBibG9ja3Mgb24gdG8gdGhlIHN0YWNrLCB0aHJlZSBzdGFjayB2YWx1ZXMgcGVyIGJsb2NrXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMyAqIGJsb2NrTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2bS5zdGFjay5wdXNoTnVsbCgpO1xuICB9XG5cbiAgdm0uc3RhY2sucHVzaE51bGwoKTtcblxuICAvLyBGb3IgZWFjaCBhcmd1bWVudCwgcHVzaCBpdHMgYmFja2luZyByZWZlcmVuY2Ugb24gdG8gdGhlIHN0YWNrXG4gIGFyZ0xpc3QuZm9yRWFjaCgoWywgcmVmZXJlbmNlXSkgPT4ge1xuICAgIHZtLnN0YWNrLnB1c2hKcyhyZWZlcmVuY2UpO1xuICB9KTtcblxuICAvLyBDb25maWd1cmUgVk0gYmFzZWQgb24gYmxvY2tzIGFuZCBhcmdzIGp1c3QgcHVzaGVkIG9uIHRvIHRoZSBzdGFjay5cbiAgdm1bQVJHU10uc2V0dXAodm0uc3RhY2ssIGFyZ05hbWVzLCBibG9ja05hbWVzLCAwLCB0cnVlKTtcblxuICBjb25zdCBjb21waWxhYmxlID0gZXhwZWN0KFxuICAgIHJlaWZpZWQuY29tcGlsYWJsZSxcbiAgICAnQlVHOiBFeHBlY3RlZCB0aGUgcm9vdCBjb21wb25lbnQgcmVuZGVyZWQgd2l0aCByZW5kZXJDb21wb25lbnQgdG8gaGF2ZSBhbiBhc3NvY2lhdGVkIHRlbXBsYXRlLCBzZXQgd2l0aCBzZXRDb21wb25lbnRUZW1wbGF0ZSdcbiAgKTtcbiAgY29uc3QgbGF5b3V0SGFuZGxlID0gdW53cmFwSGFuZGxlKGNvbXBpbGFibGUuY29tcGlsZShjb250ZXh0KSk7XG4gIGNvbnN0IGludm9jYXRpb24gPSB7IGhhbmRsZTogbGF5b3V0SGFuZGxlLCBzeW1ib2xUYWJsZTogY29tcGlsYWJsZS5zeW1ib2xUYWJsZSB9O1xuXG4gIC8vIE5lZWRlZCBmb3IgdGhlIE9wLk1haW4gb3Bjb2RlOiBhcmd1bWVudHMsIGNvbXBvbmVudCBpbnZvY2F0aW9uIG9iamVjdCwgYW5kXG4gIC8vIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICB2bS5zdGFjay5wdXNoSnModm1bQVJHU10pO1xuICB2bS5zdGFjay5wdXNoSnMoaW52b2NhdGlvbik7XG4gIHZtLnN0YWNrLnB1c2hKcyhyZWlmaWVkKTtcblxuICByZXR1cm4gbmV3IFRlbXBsYXRlSXRlcmF0b3JJbXBsKHZtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChcbiAgcnVudGltZTogUnVudGltZUNvbnRleHQsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBkeW5hbWljU2NvcGU6IER5bmFtaWNTY29wZSA9IG5ldyBEeW5hbWljU2NvcGVJbXBsKClcbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICBsZXQgdm0gPSBWTS5lbXB0eShcbiAgICBydW50aW1lLFxuICAgIHsgdHJlZUJ1aWxkZXIsIGhhbmRsZTogY29udGV4dC5zdGRsaWIubWFpbiwgZHluYW1pY1Njb3BlLCBvd25lciB9LFxuICAgIGNvbnRleHRcbiAgKTtcbiAgcmV0dXJuIHJlbmRlckludm9jYXRpb24odm0sIGNvbnRleHQsIG93bmVyLCBkZWZpbml0aW9uLCByZWNvcmRUb1JlZmVyZW5jZShhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIHJlY29yZFRvUmVmZXJlbmNlKHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+IHtcbiAgY29uc3Qgcm9vdCA9IGNyZWF0ZUNvbnN0UmVmKHJlY29yZCwgJ2FyZ3MnKTtcblxuICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgYWNjW2tleV0gPSBjaGlsZFJlZkZvcihyb290LCBrZXkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT4pO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQUEsb0JBQUEsQ0FBMEI7QUFDeEIsRUFBQSxXQUFBLENBQUEsRUFBQSxFQUFrQztBQUFkLFNBQUEsRUFBQSxHQUFBLEVBQUE7QUFBa0I7O0FBQ3RDLEVBQUEsSUFBSSxHQUFBO0FBQ0YsV0FBTyxLQUFBLEVBQUEsQ0FBUCxJQUFPLEVBQVA7QUFDRDs7QUFFRCxFQUFBLElBQUksR0FBQTtBQUNGLFFBQUEsVUFBQSxFQUFXO0FBQ1QsYUFBTyx5Q0FBMEIsTUFBTSxLQUFBLEVBQUEsQ0FBUCxPQUFPLEVBQWhDLEVBQVAsb0JBQU8sQ0FBUDtBQURGLEtBQUEsTUFFTztBQUNMLGFBQU8sS0FBQSxFQUFBLENBQVAsT0FBTyxFQUFQO0FBQ0Q7QUFDRjs7QUFadUI7O0FBZXBCLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxRQUFBLEVBQWlFO0FBQ3JFLE1BQUEsTUFBQTtBQUVBLGtDQUFhLEdBQWIsRUFBbUIsTUFBTyxNQUFNLEdBQUcsUUFBUSxDQUEzQyxJQUFtQyxFQUFuQztBQUVBLFNBQUEsTUFBQTtBQUNEOztBQUVLLFNBQUEsVUFBQSxDQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsTUFBQSxFQU9KLFlBQUEsR0FBNkIsSUFQekIsdUJBT3lCLEVBUHpCLEVBTytDO0FBRW5ELE1BQUksTUFBTSxHQUFHLHdCQUFhLE1BQU0sQ0FBTixPQUFBLENBQTFCLE9BQTBCLENBQWIsQ0FBYjtBQUNBLE1BQUksVUFBVSxHQUFHLE1BQU0sQ0FBTixXQUFBLENBQUEsT0FBQSxDQUFqQixNQUFBOztBQUNBLE1BQUksRUFBRSxHQUFHLGdCQUFBLE9BQUEsQ0FBQSxPQUFBLEVB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VUFBQSxFQUFpQyxpQkFBaUIsQ0FBekUsSUFBeUUsQ0FBbEQsQ0FBdkI7QUFDRDs7QUFFRCxTQUFBLGlCQUFBLENBQUEsTUFBQSxFQUEwRDtBQUN4RCxRQUFNLElBQUksR0FBRywrQkFBYyxNQUFkLEVBQWIsTUFBYSxDQUFiO0FBRUEsU0FBTyxNQUFNLENBQU4sSUFBQSxDQUFBLE1BQUEsRUFBQSxNQUFBLENBQTJCLENBQUEsR0FBQSxFQUFBLEdBQUEsS0FBYTtBQUM3QyxJQUFBLEdBQUcsQ0FBSCxHQUFHLENBQUgsR0FBVyw0QkFBVyxJQUFYLEVBQVgsR0FBVyxDQUFYO0FBQ0EsV0FBQSxHQUFBO0FBRkssR0FBQSxFQUFQLEVBQU8sQ0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHluYW1pY1Njb3BlLFxuICBFbnZpcm9ubWVudCxcbiAgUmVuZGVyUmVzdWx0LFxuICBSaWNoSXRlcmF0b3JSZXN1bHQsXG4gIFRlbXBsYXRlSXRlcmF0b3IsXG4gIFJ1bnRpbWVDb250ZXh0LFxuICBFbGVtZW50QnVpbGRlcixcbiAgQ29tcGlsYWJsZVByb2dyYW0sXG4gIENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNoaWxkUmVmRm9yLCBjcmVhdGVDb25zdFJlZiwgUmVmZXJlbmNlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGV4cGVjdCwgdW53cmFwSGFuZGxlIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBBUkdTLCBDT05TVEFOVFMgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IFZNLCB7IEludGVybmFsVk0gfSBmcm9tICcuL3ZtL2FwcGVuZCc7XG5pbXBvcnQgeyBEeW5hbWljU2NvcGVJbXBsIH0gZnJvbSAnLi9zY29wZSc7XG5pbXBvcnQgeyBpblRyYW5zYWN0aW9uIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24gfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuXG5jbGFzcyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCBpbXBsZW1lbnRzIFRlbXBsYXRlSXRlcmF0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZtOiBJbnRlcm5hbFZNKSB7fVxuICBuZXh0KCk6IFJpY2hJdGVyYXRvclJlc3VsdDxudWxsLCBSZW5kZXJSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy52bS5uZXh0KCk7XG4gIH1cblxuICBzeW5jKCk6IFJlbmRlclJlc3VsdCB7XG4gICAgaWYgKERFQlVHKSB7XG4gICAgICByZXR1cm4gcnVuSW5UcmFja2luZ1RyYW5zYWN0aW9uISgoKSA9PiB0aGlzLnZtLmV4ZWN1dGUoKSwgJy0gV2hpbGUgcmVuZGVyaW5nOicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy52bS5leGVjdXRlKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJTeW5jKGVudjogRW52aXJvbm1lbnQsIGl0ZXJhdG9yOiBUZW1wbGF0ZUl0ZXJhdG9yKTogUmVuZGVyUmVzdWx0IHtcbiAgbGV0IHJlc3VsdDogUmVuZGVyUmVzdWx0O1xuXG4gIGluVHJhbnNhY3Rpb24oZW52LCAoKSA9PiAocmVzdWx0ID0gaXRlcmF0b3Iuc3luYygpKSk7XG5cbiAgcmV0dXJuIHJlc3VsdCE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJNYWluKFxuICBydW50aW1lOiBSdW50aW1lQ29udGV4dCxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgc2VsZjogUmVmZXJlbmNlLFxuICB0cmVlQnVpbGRlcjogRWxlbWVudEJ1aWxkZXIsXG4gIGxheW91dDogQ29tcGlsYWJsZVByb2dyYW0sXG4gIGR5bmFtaWNTY29wZTogRHluYW1pY1Njb3BlID0gbmV3IER5bmFtaWNTY29wZUltcGwoKVxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIGxldCBoYW5kbGUgPSB1bndyYXBIYW5kbGUobGF5b3V0LmNvbXBpbGUoY29udGV4dCkpO1xuICBsZXQgbnVtU3ltYm9scyA9IGxheW91dC5zeW1ib2xUYWJsZS5zeW1ib2xzLmxlbmd0aDtcbiAgbGV0IHZtID0gVk0uaW5pdGlhbChydW50aW1lLCBjb250ZXh0LCB7XG4gICAgc2VsZixcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdHJlZUJ1aWxkZXIsXG4gICAgaGFuZGxlLFxuICAgIG51bVN5bWJvbHMsXG4gICAgb3duZXIsXG4gIH0pO1xuICByZXR1cm4gbmV3IFRlbXBsYXRlSXRlcmF0b3JJbXBsKHZtKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVySW52b2NhdGlvbihcbiAgdm06IEludGVybmFsVk0sXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgYXJnczogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPlxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIC8vIEdldCBhIGxpc3Qgb2YgdHVwbGVzIG9mIGFyZ3VtZW50IG5hbWVzIGFuZCByZWZlcmVuY2VzLCBsaWtlXG4gIC8vIFtbJ3RpdGxlJywgcmVmZXJlbmNlXSwgWyduYW1lJywgcmVmZXJlbmNlXV1cbiAgY29uc3QgYXJnTGlzdCA9IE9iamVjdC5rZXlzKGFyZ3MpLm1hcCgoa2V5KSA9PiBba2V5LCBhcmdzW2tleV1dKTtcblxuICBjb25zdCBibG9ja05hbWVzID0gWydtYWluJywgJ2Vsc2UnLCAnYXR0cnMnXTtcbiAgLy8gUHJlZml4IGFyZ3VtZW50IG5hbWVzIHdpdGggYEBgIHN5bWJvbFxuICBjb25zdCBhcmdOYW1lcyA9IGFyZ0xpc3QubWFwKChbbmFtZV0pID0+IGBAJHtuYW1lfWApO1xuXG4gIGxldCByZWlmaWVkID0gdm1bQ09OU1RBTlRTXS5jb21wb25lbnQoZGVmaW5pdGlvbiwgb3duZXIpO1xuXG4gIHZtLnB1c2hGcmFtZSgpO1xuXG4gIC8vIFB1c2ggYmxvY2tzIG9uIHRvIHRoZSBzdGFjaywgdGhyZWUgc3RhY2sgdmFsdWVzIHBlciBibG9ja1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDMgKiBibG9ja05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdm0uc3RhY2sucHVzaE51bGwoKTtcbiAgfVxuXG4gIHZtLnN0YWNrLnB1c2hOdWxsKCk7XG5cbiAgLy8gRm9yIGVhY2ggYXJndW1lbnQsIHB1c2ggaXRzIGJhY2tpbmcgcmVmZXJlbmNlIG9uIHRvIHRoZSBzdGFja1xuICBhcmdMaXN0LmZvckVhY2goKFssIHJlZmVyZW5jZV0pID0+IHtcbiAgICB2bS5zdGFjay5wdXNoSnMocmVmZXJlbmNlKTtcbiAgfSk7XG5cbiAgLy8gQ29uZmlndXJlIFZNIGJhc2VkIG9uIGJsb2NrcyBhbmQgYXJncyBqdXN0IHB1c2hlZCBvbiB0byB0aGUgc3RhY2suXG4gIHZtW0FSR1NdLnNldHVwKHZtLnN0YWNrLCBhcmdOYW1lcywgYmxvY2tOYW1lcywgMCwgdHJ1ZSk7XG5cbiAgY29uc3QgY29tcGlsYWJsZSA9IGV4cGVjdChcbiAgICByZWlmaWVkLmNvbXBpbGFibGUsXG4gICAgJ0JVRzogRXhwZWN0ZWQgdGhlIHJvb3QgY29tcG9uZW50IHJlbmRlcmVkIHdpdGggcmVuZGVyQ29tcG9uZW50IHRvIGhhdmUgYW4gYXNzb2NpYXRlZCB0ZW1wbGF0ZSwgc2V0IHdpdGggc2V0Q29tcG9uZW50VGVtcGxhdGUnXG4gICk7XG4gIGNvbnN0IGxheW91dEhhbmRsZSA9IHVud3JhcEhhbmRsZShjb21waWxhYmxlLmNvbXBpbGUoY29udGV4dCkpO1xuICBjb25zdCBpbnZvY2F0aW9uID0geyBoYW5kbGU6IGxheW91dEhhbmRsZSwgc3ltYm9sVGFibGU6IGNvbXBpbGFibGUuc3ltYm9sVGFibGUgfTtcblxuICAvLyBOZWVkZWQgZm9yIHRoZSBPcC5NYWluIG9wY29kZTogYXJndW1lbnRzLCBjb21wb25lbnQgaW52b2NhdGlvbiBvYmplY3QsIGFuZFxuICAvLyBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgdm0uc3RhY2sucHVzaEpzKHZtW0FSR1NdKTtcbiAgdm0uc3RhY2sucHVzaEpzKGludm9jYXRpb24pO1xuICB2bS5zdGFjay5wdXNoSnMocmVpZmllZCk7XG5cbiAgcmV0dXJuIG5ldyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCh2bSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb21wb25lbnQoXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICB0cmVlQnVpbGRlcjogRWxlbWVudEJ1aWxkZXIsXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IHZtID0gVk0uZW1wdHkoXG4gICAgcnVudGltZSxcbiAgICB7IHRyZWVCdWlsZGVyLCBoYW5kbGU6IGNvbnRleHQuc3RkbGliLm1haW4sIGR5bmFtaWNTY29wZSwgb3duZXIgfSxcbiAgICBjb250ZXh0XG4gICk7XG4gIHJldHVybiByZW5kZXJJbnZvY2F0aW9uKHZtLCBjb250ZXh0LCBvd25lciwgZGVmaW5pdGlvbiwgcmVjb3JkVG9SZWZlcmVuY2UoYXJncykpO1xufVxuXG5mdW5jdGlvbiByZWNvcmRUb1JlZmVyZW5jZShyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPiB7XG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVDb25zdFJlZihyZWNvcmQsICdhcmdzJyk7XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHJlY29yZCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGFjY1trZXldID0gY2hpbGRSZWZGb3Iocm9vdCwga2V5KTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+KTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

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

if (!(0, _reference.isConstRef)(reference)) {
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute));
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env));
}

@@ -279,10 +279,18 @@ });

function UpdateDynamicAttributeOpcode(reference, attribute) {
function UpdateDynamicAttributeOpcode(reference, attribute, env) {
var _this2;
_this2 = _UpdatingOpcode2.call(this) || this;
_this2.reference = reference;
_this2.attribute = attribute;
_this2.type = 'patch-element';
_this2.lastValue = (0, _reference.valueForRef)(reference);
var initialized = false;
_this2.updateRef = (0, _reference.createComputeRef)(function () {
var value = (0, _reference.valueForRef)(reference);
if (initialized === true) {
attribute.update(value, env);
} else {
initialized = true;
}
});
(0, _reference.valueForRef)(_this2.updateRef);
return _this2;

@@ -293,12 +301,4 @@ }

_proto2.evaluate = function evaluate(vm) {
var attribute = this.attribute,
reference = this.reference,
lastValue = this.lastValue;
var currentValue = (0, _reference.valueForRef)(reference);
if (currentValue !== lastValue) {
attribute.update(currentValue, vm.env);
this.lastValue = currentValue;
}
_proto2.evaluate = function evaluate() {
(0, _reference.valueForRef)(this.updateRef);
};

@@ -310,2 +310,2 @@

exports.UpdateDynamicAttributeOpcode = UpdateDynamicAttributeOpcode;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFtQkE7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBRUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLFVBQUEsRUFBQSxFQUFBLElBQUEsRUFBc0I7QUFBQSxNQUFWLElBQVUsR0FBQSxJQUFBLENBQWYsR0FBZTtBQUNoRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsVUFBQSxDQUF5QixFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBekIsSUFBeUIsQ0FBekI7QUFERixDQUFBOztBQUlBLHdCQUFBLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUErQixVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXNCO0FBQUEsTUFBVixJQUFVLEdBQUEsS0FBQSxDQUFmLEdBQWU7QUFDbkQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGFBQUEsQ0FBNEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTVCLElBQTRCLENBQTVCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUFxQjtBQUFBLE1BQVQsR0FBUyxHQUFBLEtBQUEsQ0FBZCxHQUFjO0FBQ3RELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQTBCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUExQixHQUEwQixDQUExQjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTJDLFVBQUQsRUFBQyxFQUFNO0FBQy9DLE1BQUksT0FBTyxHQUFTLDRCQUFrQixFQUFFLENBQUYsS0FBQSxDQUF0QyxL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QSxDQUFBLFFBQUEsR0FVRSxTQUFBLFFBQUEsQ0FBQSxFQUFBLEVBQXVCO0FBQUEsUUFDakIsU0FEaUIsR0FBQSxLQUFBLFNBQUE7QUFBQSxRQUNqQixTQURpQixHQUFBLEtBQUEsU0FBQTtBQUFBLFFBQ08sU0FEUCxHQUFBLEtBQUEsU0FBQTtBQUVyQixRQUFJLFlBQVksR0FBRyw0QkFBbkIsU0FBbUIsQ0FBbkI7O0FBRUEsUUFBSSxZQUFZLEtBQWhCLFNBQUEsRUFBZ0M7QUFDOUIsTUFBQSxTQUFTLENBQVQsTUFBQSxDQUFBLFlBQUEsRUFBK0IsRUFBRSxDQUFqQyxHQUFBO0FBQ0EsV0FBQSxTQUFBLEdBQUEsWUFBQTtBQUNEO0FBakJMLEdBQUE7O0FBQUEsU0FBQSw0QkFBQTtBQUFBLENBQUEsQ0FBQSx1QkFBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiwgaXNDb25zdFJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBSZXZpc2lvbiwgVGFnLCB2YWx1ZUZvclRhZywgdmFsaWRhdGVUYWcsIGNvbnN1bWVUYWcgfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHtcbiAgY2hlY2ssXG4gIENoZWNrU3RyaW5nLFxuICBDaGVja0VsZW1lbnQsXG4gIENoZWNrT3B0aW9uLFxuICBDaGVja05vZGUsXG4gIENoZWNrTWF5YmUsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7XG4gIE9wLFxuICBPcHRpb24sXG4gIE1vZGlmaWVyRGVmaW5pdGlvbixcbiAgTW9kaWZpZXJJbnN0YW5jZSxcbiAgVk1Bcmd1bWVudHMsXG4gIE93bmVyLFxuICBDdXJyaWVkVHlwZSxcbiAgTW9kaWZpZXJEZWZpbml0aW9uU3RhdGUsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHQwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEludGVybmFsVk0gfSBmcm9tICcuLi8uLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgQ3VycmllZFZhbHVlLCBpc0N1cnJpZWRUeXBlLCByZXNvbHZlQ3VycmllZFZhbHVlIH0gZnJvbSAnLi4vLi4vY3VycmllZC12YWx1ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248TW9kaWZpZXJJbnN0YW5jZVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgobW9kaWZpZXIpID0+IHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZUluc3RhbGxNb2RpZmllcihtb2RpZmllcik7XG4gICAgICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gbW9kaWZpZXI7XG4gICAgICBsZXQgZCA9IG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoc3RhdGUpO1xuXG4gICAgICBpZiAoZCkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Nb2RpZmllciwgKHZtLCB7IG9wMTogaGFuZGxlIH0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBvd25lciA9IHZtLmdldE93bmVyKCk7XG4gIGxldCBhcmdzID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgZGVmaW5pdGlvbiA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNNb2RpZmllciwgKHZtKSA9PiB7XG4gIGlmICh2bS5lbnYuaXNJbnRlcmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgeyBzdGFjaywgW0NPTlNUQU5UU106IGNvbnN0YW50cyB9ID0gdm07XG4gIGxldCByZWYgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWYpO1xuICBsZXQgb3duZXI6IE93bmVyO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGhvc3REZWZpbml0aW9uOiBDdXJyaWVkVmFsdWUgfCBNb2RpZmllckRlZmluaXRpb25TdGF0ZTtcblxuICBpZiAoaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuTW9kaWZpZXIpKSB7XG4gICAgbGV0IFtjdXJyaWVkVmFsdWUsIGN1cnJpZWRPd25lcl0gPSByZXNvbHZlQ3VycmllZFZhbHVlKHZhbHVlLCBhcmdzKTtcbiAgICBob3N0RGVmaW5pdGlvbiA9IGN1cnJpZWRWYWx1ZTtcbiAgICBvd25lciA9IGN1cnJpZWRPd25lcjtcbiAgfSBlbHNlIHtcbiAgICBob3N0RGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgfVxuXG4gIGxldCBoYW5kbGUgPSBjb25zdGFudHMubW9kaWZpZXIoaG9zdERlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gIGlmIChERUJVRyAmJiBoYW5kbGUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRXhwZWN0ZWQgYSBkeW5hbWljIG1vZGlmaWVyIGRlZmluaXRpb24sIGJ1dCByZWNlaXZlZCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24gdGhhdCBkaWQgbm90IGhhdmUgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGR5bmFtaWMgaW52b2NhdGlvbiB3YXMgXFxge3ske1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfX19XFxgLCBhbmQgdGhlIGluY29ycmVjdCBkZWZpbml0aW9uIGlzIHRoZSB2YWx1ZSBhdCB0aGUgcGF0aCBcXGAke1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfVxcYCwgd2hpY2ggd2FzOiAke2RlYnVnVG9TdHJpbmchKGhvc3REZWZpbml0aW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGxldCBkZWZpbml0aW9uID0gY29uc3RhbnRzLmdldFZhbHVlPE1vZGlmaWVyRGVmaW5pdGlvbj4oXG4gICAgZXhwZWN0KGhhbmRsZSwgJ0JVRzogbW9kaWZpZXIgaGFuZGxlIGV4cGVjdGVkJylcbiAgKTtcblxuICBpbnZva2VNb2RpZmllcih2bSwgb3duZXIsIGFyZ3MsIGRlZmluaXRpb24pO1xufSk7XG5cbmZ1bmN0aW9uIGludm9rZU1vZGlmaWVyKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgb3duZXI6IE93bmVyLFxuICBhcmdzOiBWTUFyZ3VtZW50cyxcbiAgZGVmaW5pdGlvbjogTW9kaWZpZXJEZWZpbml0aW9uXG4pIHtcbiAgbGV0IHsgbWFuYWdlciB9ID0gZGVmaW5pdGlvbjtcblxuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcblxuICBsZXQgc3RhdGUgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBvd25lcixcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIGRlZmluaXRpb24uc3RhdGUsXG4gICAgYXJncyxcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdXBkYXRlT3BlcmF0aW9uc1xuICApO1xuXG4gIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZSA9IHtcbiAgICBtYW5hZ2VyLFxuICAgIHN0YXRlLFxuICAgIGRlZmluaXRpb24sXG4gIH07XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKGluc3RhbmNlKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcoc3RhdGUpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBpbnN0YW5jZSkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2RpZmllck9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAndXBkYXRlLW1vZGlmaWVyJztcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlZDogUmV2aXNpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhZzogVGFnLCBwcml2YXRlIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3RydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB0cnVzdGluZyA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8Ym9vbGVhbj4oX3RydXN0aW5nKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSkpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3BhdGNoLWVsZW1lbnQnO1xuXG4gIHB1YmxpYyBsYXN0VmFsdWU6IHVua25vd247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgcHJpdmF0ZSBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgYXR0cmlidXRlLCByZWZlcmVuY2UsIGxhc3RWYWx1ZSB9ID0gdGhpcztcbiAgICBsZXQgY3VycmVudFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgIGlmIChjdXJyZW50VmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgYXR0cmlidXRlLnVwZGF0ZShjdXJyZW50VmFsdWUsIHZtLmVudik7XG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFvQkE7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBRUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTRCLFVBQUEsRUFBQSxFQUFBLElBQUEsRUFBc0I7QUFBQSxNQUFWLElBQVUsR0FBQSxJQUFBLENBQWYsR0FBZTtBQUNoRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsVUFBQSxDQUF5QixFQUFFLENBQUYsa0JBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBekIsSUFBeUIsQ0FBekI7QUFERixDQUFBOztBQUlBLHdCQUFBLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUErQixVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXNCO0FBQUEsTUFBVixJQUFVLEdBQUEsS0FBQSxDQUFmLEdBQWU7QUFDbkQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGFBQUEsQ0FBNEIsRUFBRSxDQUFGLGtCQUFFLENBQUYsQ0FBQSxRQUFBLENBQTVCLElBQTRCLENBQTVCO0FBREYsQ0FBQTs7QUFJQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUFxQjtBQUFBLE1BQVQsR0FBUyxHQUFBLEtBQUEsQ0FBZCxHQUFjO0FBQ3RELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQTBCLEVBQUUsQ0FBRixrQkFBRSxDQUFGLENBQUEsUUFBQSxDQUExQixHQUEwQixDQUExQjtBQURGLENBQUE7O0FBSUEsd0JBQUEsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQTJDLFVBQUQsRUFBQyxFQUFNO0FBQy9DLE1BQUksT0FBTyxHQUFTLDRCQUFrQixFQUFFLENBQUYsS0FBQSxDQUF0QyxL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QUFBLEtBQUEsRUFBQSxHQUFBO0FBREYsT0FBQSxNQUVPO0FBQ0wsUUFBQSxXQUFXLEdBQVgsSUFBQTtBQUNEO0FBUEgsS0FBaUIsQ0FBakI7QUFVQSxnQ0FBWSxNQUFBLENBQVosU0FBQTtBQWZzRixXQUFBLE1BQUE7QUFnQnZGOztBQXJCSCxNQUFBLE9BQUEsR0FBQSw0QkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsUUFBQSxHQXVCRSxTQUFBLFFBQUEsR0FBUTtBQUNOLGdDQUFZLEtBQVosU0FBQTtBQXhCSixHQUFBOztBQUFBLFNBQUEsNEJBQUE7QUFBQSxDQUFBLENBQUEsdUJBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGlzQ29uc3RSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQge1xuICBPcCxcbiAgT3B0aW9uLFxuICBNb2RpZmllckRlZmluaXRpb24sXG4gIE1vZGlmaWVySW5zdGFuY2UsXG4gIFZNQXJndW1lbnRzLFxuICBPd25lcixcbiAgQ3VycmllZFR5cGUsXG4gIE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlLFxuICBFbnZpcm9ubWVudCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdDAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBBUFBFTkRfT1BDT0RFUywgVXBkYXRpbmdPcGNvZGUgfSBmcm9tICcuLi8uLi9vcGNvZGVzJztcbmltcG9ydCB7IFVwZGF0aW5nVk0gfSBmcm9tICcuLi8uLi92bSc7XG5pbXBvcnQgeyBBc3NlcnQgfSBmcm9tICcuL3ZtJztcbmltcG9ydCB7IER5bmFtaWNBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi92bS9hdHRyaWJ1dGVzL2R5bmFtaWMnO1xuaW1wb3J0IHsgQ2hlY2tSZWZlcmVuY2UsIENoZWNrQXJndW1lbnRzLCBDaGVja09wZXJhdGlvbnMgfSBmcm9tICcuLy1kZWJ1Zy1zdHJpcCc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgSW50ZXJuYWxWTSB9IGZyb20gJy4uLy4uL3ZtL2FwcGVuZCc7XG5pbXBvcnQgeyBDdXJyaWVkVmFsdWUsIGlzQ3VycmllZFR5cGUsIHJlc29sdmVDdXJyaWVkVmFsdWUgfSBmcm9tICcuLi8uLi9jdXJyaWVkLXZhbHVlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxNb2RpZmllckluc3RhbmNlW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChtb2RpZmllcikgPT4ge1xuICAgICAgdm0uZW52LnNjaGVkdWxlSW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSBtb2RpZmllcjtcbiAgICAgIGxldCBkID0gbWFuYWdlci5nZXREZXN0cm95YWJsZShzdGF0ZSk7XG5cbiAgICAgIGlmIChkKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk1vZGlmaWVyLCAodm0sIHsgb3AxOiBoYW5kbGUgfSkgPT4ge1xuICBpZiAodm0uZW52LmlzSW50ZXJhY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCBkZWZpbml0aW9uID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxNb2RpZmllckRlZmluaXRpb24+KGhhbmRsZSk7XG5cbiAgaW52b2tlTW9kaWZpZXIodm0sIG93bmVyLCBhcmdzLCBkZWZpbml0aW9uKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY01vZGlmaWVyLCAodm0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCB7IHN0YWNrLCBbQ09OU1RBTlRTXTogY29uc3RhbnRzIH0gPSB2bTtcbiAgbGV0IHJlZiA9IGNoZWNrKHN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZik7XG4gIGxldCBvd25lcjogT3duZXI7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyAmJiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgaG9zdERlZmluaXRpb246IEN1cnJpZWRWYWx1ZSB8IE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlO1xuXG4gIGlmIChpc0N1cnJpZWRUeXBlKHZhbHVlLCBDdXJyaWVkVHlwZS5Nb2RpZmllcikpIHtcbiAgICBsZXQgW2N1cnJpZWRWYWx1ZSwgY3VycmllZE93bmVyXSA9IHJlc29sdmVDdXJyaWVkVmFsdWUodmFsdWUsIGFyZ3MpO1xuICAgIGhvc3REZWZpbml0aW9uID0gY3VycmllZFZhbHVlO1xuICAgIG93bmVyID0gY3VycmllZE93bmVyO1xuICB9IGVsc2Uge1xuICAgIGhvc3REZWZpbml0aW9uID0gdmFsdWU7XG4gICAgb3duZXIgPSB2bS5nZXRPd25lcigpO1xuICB9XG5cbiAgbGV0IGhhbmRsZSA9IGNvbnN0YW50cy5tb2RpZmllcihob3N0RGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgaWYgKERFQlVHICYmIGhhbmRsZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFeHBlY3RlZCBhIGR5bmFtaWMgbW9kaWZpZXIgZGVmaW5pdGlvbiwgYnV0IHJlY2VpdmVkIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0aGF0IGRpZCBub3QgaGF2ZSBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZHluYW1pYyBpbnZvY2F0aW9uIHdhcyBcXGB7eyR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9fX1cXGAsIGFuZCB0aGUgaW5jb3JyZWN0IGRlZmluaXRpb24gaXMgdGhlIHZhbHVlIGF0IHRoZSBwYXRoIFxcYCR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9XFxgLCB3aGljaCB3YXM6ICR7ZGVidWdUb1N0cmluZyEoaG9zdERlZmluaXRpb24pfWBcbiAgICApO1xuICB9XG5cbiAgbGV0IGRlZmluaXRpb24gPSBjb25zdGFudHMuZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihcbiAgICBleHBlY3QoaGFuZGxlLCAnQlVHOiBtb2RpZmllciBoYW5kbGUgZXhwZWN0ZWQnKVxuICApO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuZnVuY3Rpb24gaW52b2tlTW9kaWZpZXIoXG4gIHZtOiBJbnRlcm5hbFZNLFxuICBvd25lcjogT3duZXIsXG4gIGFyZ3M6IFZNQXJndW1lbnRzLFxuICBkZWZpbml0aW9uOiBNb2RpZmllckRlZmluaXRpb25cbikge1xuICBsZXQgeyBtYW5hZ2VyIH0gPSBkZWZpbml0aW9uO1xuXG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuXG4gIGxldCBzdGF0ZSA9IG1hbmFnZXIuY3JlYXRlKFxuICAgIG93bmVyLFxuICAgIGV4cGVjdChjb25zdHJ1Y3RpbmcsICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCB0aGUgZWxlbWVudCBpdCBhcHBsaWVzIHRvJyksXG4gICAgZGVmaW5pdGlvbi5zdGF0ZSxcbiAgICBhcmdzLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB1cGRhdGVPcGVyYXRpb25zXG4gICk7XG5cbiAgbGV0IGluc3RhbmNlOiBNb2RpZmllckluc3RhbmNlID0ge1xuICAgIG1hbmFnZXIsXG4gICAgc3RhdGUsXG4gICAgZGVmaW5pdGlvbixcbiAgfTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIoaW5zdGFuY2UpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhzdGF0ZSk7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIGluc3RhbmNlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZU1vZGlmaWVyT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICd1cGRhdGUtbW9kaWZpZXInO1xuICBwcml2YXRlIGxhc3RVcGRhdGVkOiBSZXZpc2lvbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFnOiBUYWcsIHByaXZhdGUgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBtb2RpZmllciwgdGFnLCBsYXN0VXBkYXRlZCB9ID0gdGhpcztcblxuICAgIGNvbnN1bWVUYWcodGFnKTtcblxuICAgIGlmICghdmFsaWRhdGVUYWcodGFnLCBsYXN0VXBkYXRlZCkpIHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZVVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICAgIH1cbiAgfVxufVxuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuU3RhdGljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3ZhbHVlLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB2YWx1ZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfdmFsdWUpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgdm0uZWxlbWVudHMoKS5zZXRTdGF0aWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHRydXN0aW5nID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxib29sZWFuPihfdHJ1c3RpbmcpO1xuICBsZXQgcmVmZXJlbmNlID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgbGV0IGF0dHJpYnV0ZSA9IHZtLmVsZW1lbnRzKCkuc2V0RHluYW1pY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlLCB2bS5lbnYpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwcml2YXRlIHVwZGF0ZVJlZjogUmVmZXJlbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUsIGVudjogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVJlZiA9IGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGluaXRpYWxpemVkID09PSB0cnVlKSB7XG4gICAgICAgIGF0dHJpYnV0ZS51cGRhdGUodmFsdWUsIGVudik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cblxuICBldmFsdWF0ZSgpIHtcbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -12,2 +12,4 @@ "use strict";

var _util = require("@glimmer/util");
var _internalHelper = require("./internal-helper");

@@ -98,3 +100,3 @@

if (isObject(source)) {
if ((0, _util.isDict)(source)) {
return (0, _globalContext.getPath)(source, String((0, _reference.valueForRef)(pathRef)));

@@ -105,3 +107,3 @@ }

if (isObject(source)) {
if ((0, _util.isDict)(source)) {
return (0, _globalContext.setPath)(source, String((0, _reference.valueForRef)(pathRef)), value);

@@ -113,6 +115,2 @@ }

exports.default = _default;
function isObject(obj) {
return typeof obj === 'function' || typeof obj === 'object' && obj !== null;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUE2RWUsb0NBQWdCLFVBQUQsSUFBQyxFQUFxQjtBQUNsRCxNQUFJLFNBQVMsR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBaEIsQ0FBZ0IsQ0FBaEI7QUFDQSxNQUFJLE9BQU8sR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBZCxDQUFjLENBQWQ7QUFFQSxTQUFPLGlDQUNMLFlBQUs7QUFDSCxRQUFJLE1BQU0sR0FBRyw0QkFBYixTQUFhLENBQWI7O0FBRUEsUUFBSSxRQUFRLENBQVosTUFBWSxDQUFaLEVBQXNCO0FBQ3BCLGFBQU8sNEJBQU8sTUFBUCxFQUFnQixNQUFNLENBQUMsNEJBQTlCLE9BQThCLENBQUQsQ0FBdEIsQ0FBUDtBQUNEO0FBTmtCLEdBQWhCLEVBUUosVUFBRCxLQUFDLEVBQVM7QUFDUixRQUFJLE1BQU0sR0FBRyw0QkFBYixTQUFhLENBQWI7O0FBRUEsUUFBSSxRQUFRLENBQVosTUFBWSxDQUFaLEVBQXNCO0FBQ3BCLGFBQU8sNEJBQU8sTUFBUCxFQUFnQixNQUFNLENBQUMsNEJBQWhCLE9BQWdCLENBQUQsQ0FBdEIsRUFBUCxLQUFPLENBQVA7QUFDRDtBQWJrQixHQUFoQixFQUFQLEtBQU8sQ0FBUDtBQUpGLENBQWUsQzs7OztBQXVCZixTQUFBLFFBQUEsQ0FBQSxHQUFBLEVBQThCO0FBQzVCLFNBQU8sT0FBQSxHQUFBLEtBQUEsVUFBQSxJQUE4QixPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBbkUsSUFBQTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UGF0aCwgc2V0UGF0aCB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7IFZNQXJndW1lbnRzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb21wdXRlUmVmLCB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBpbnRlcm5hbEhlbHBlciB9IGZyb20gJy4vaW50ZXJuYWwtaGVscGVyJztcblxuLyoqXG4gIER5bmFtaWNhbGx5IGxvb2sgdXAgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHt7Z2V0fX1gXG4gIHNob3VsZCBoYXZlIGEgc3RyaW5nIHZhbHVlLCBhbHRob3VnaCBpdCBjYW4gYmUgYm91bmQuXG5cbiAgRm9yIGV4YW1wbGUsIHRoZXNlIHR3byB1c2FnZXMgYXJlIGVxdWl2YWxlbnQ6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICBpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG4gIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5cbiAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIEB0cmFja2VkIGRldmVsb3BlciA9IHtcbiAgICAgIG5hbWU6IFwiU2FuZGkgTWV0elwiLFxuICAgICAgbGFuZ3VhZ2U6IFwiUnVieVwiXG4gICAgfVxuICB9XG4gIGBgYFxuXG4gIGBgYGhhbmRsZWJhcnNcbiAge3t0aGlzLmRldmVsb3Blci5uYW1lfX1cbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgXCJuYW1lXCJ9fVxuICBgYGBcblxuICBJZiB0aGVyZSB3ZXJlIHNldmVyYWwgZmFjdHMgYWJvdXQgYSBwZXJzb24sIHRoZSBge3tnZXR9fWAgaGVscGVyIGNhbiBkeW5hbWljYWxseVxuICBwaWNrIG9uZTpcblxuICBgYGBhcHAvdGVtcGxhdGVzL2FwcGxpY2F0aW9uLmhic1xuICA8RGV2ZWxvcGVyRGV0YWlsIEBmYWN0TmFtZT1cImxhbmd1YWdlXCIgLz5cbiAgYGBgXG5cbiAgYGBgaGFuZGxlYmFyc1xuICB7e2dldCB0aGlzLmRldmVsb3BlciBAZmFjdE5hbWV9fVxuICBgYGBcblxuICBGb3IgYSBtb3JlIGNvbXBsZXggZXhhbXBsZSwgdGhpcyB0ZW1wbGF0ZSB3b3VsZCBhbGxvdyB0aGUgdXNlciB0byBzd2l0Y2hcbiAgYmV0d2VlbiBzaG93aW5nIHRoZSB1c2VyJ3MgaGVpZ2h0IGFuZCB3ZWlnaHQgd2l0aCBhIGNsaWNrOlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuICBpbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG4gIGV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBAdHJhY2tlZCBkZXZlbG9wZXIgPSB7XG4gICAgICBuYW1lOiBcIlNhbmRpIE1ldHpcIixcbiAgICAgIGxhbmd1YWdlOiBcIlJ1YnlcIlxuICAgIH1cblxuICAgIEB0cmFja2VkIGN1cnJlbnRGYWN0ID0gJ25hbWUnXG5cbiAgICBzaG93RmFjdCA9IChmYWN0KSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRGYWN0ID0gZmFjdDtcbiAgICB9XG4gIH1cbiAgYGBgXG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICB7e2dldCB0aGlzLmRldmVsb3BlciB0aGlzLmN1cnJlbnRGYWN0fX1cblxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcIm5hbWVcIil9fT5TaG93IG5hbWU8L2J1dHRvbj5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJsYW5ndWFnZVwiKX19PlNob3cgbGFuZ3VhZ2U8L2J1dHRvbj5cbiAgYGBgXG5cbiAgVGhlIGB7e2dldH19YCBoZWxwZXIgY2FuIGFsc28gcmVzcGVjdCBtdXRhYmxlIHZhbHVlcyBpdHNlbGYuIEZvciBleGFtcGxlOlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgPElucHV0IEB2YWx1ZT17e211dCAoZ2V0IHRoaXMucGVyc29uIHRoaXMuY3VycmVudEZhY3QpfX0gLz5cblxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcIm5hbWVcIil9fT5TaG93IG5hbWU8L2J1dHRvbj5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJsYW5ndWFnZVwiKX19PlNob3cgbGFuZ3VhZ2U8L2J1dHRvbj5cbiAgYGBgXG5cbiAgV291bGQgYWxsb3cgdGhlIHVzZXIgdG8gc3dhcCB3aGF0IGZhY3QgaXMgYmVpbmcgZGlzcGxheWVkLCBhbmQgYWxzbyBlZGl0XG4gIHRoYXQgZmFjdCB2aWEgYSB0d28td2F5IG11dGFibGUgYmluZGluZy5cblxuICBAcHVibGljXG4gIEBtZXRob2QgZ2V0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGludGVybmFsSGVscGVyKChhcmdzOiBWTUFyZ3VtZW50cykgPT4ge1xuICBsZXQgc291cmNlUmVmID0gYXJncy5wb3NpdGlvbmFsLmF0KDApO1xuICBsZXQgcGF0aFJlZiA9IGFyZ3MucG9zaXRpb25hbC5hdCgxKTtcblxuICByZXR1cm4gY3JlYXRlQ29tcHV0ZVJlZihcbiAgICAoKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhdGgoc291cmNlLCBTdHJpbmcodmFsdWVGb3JSZWYocGF0aFJlZikpKTtcbiAgICAgIH1cbiAgICB9LFxuICAgICh2YWx1ZSkgPT4ge1xuICAgICAgbGV0IHNvdXJjZSA9IHZhbHVlRm9yUmVmKHNvdXJjZVJlZik7XG5cbiAgICAgIGlmIChpc09iamVjdChzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBzZXRQYXRoKHNvdXJjZSwgU3RyaW5nKHZhbHVlRm9yUmVmKHBhdGhSZWYpKSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgJ2dldCdcbiAgKTtcbn0pO1xuXG5mdW5jdGlvbiBpc09iamVjdChvYmo6IHVua25vd24pOiBvYmogaXMgb2JqZWN0IHtcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUE2RWUsb0NBQWdCLFVBQUQsSUFBQyxFQUFxQjtBQUNsRCxNQUFJLFNBQVMsR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBaEIsQ0FBZ0IsQ0FBaEI7QUFDQSxNQUFJLE9BQU8sR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBZCxDQUFjLENBQWQ7QUFFQSxTQUFPLGlDQUNMLFlBQUs7QUFDSCxRQUFJLE1BQU0sR0FBRyw0QkFBYixTQUFhLENBQWI7O0FBRUEsUUFBSSxrQkFBSixNQUFJLENBQUosRUFBb0I7QUFDbEIsYUFBTyw0QkFBTyxNQUFQLEVBQWdCLE1BQU0sQ0FBQyw0QkFBOUIsT0FBOEIsQ0FBRCxDQUF0QixDQUFQO0FBQ0Q7QUFOa0IsR0FBaEIsRUFRSixVQUFELEtBQUMsRUFBUztBQUNSLFFBQUksTUFBTSxHQUFHLDRCQUFiLFNBQWEsQ0FBYjs7QUFFQSxRQUFJLGtCQUFKLE1BQUksQ0FBSixFQUFvQjtBQUNsQixhQUFPLDRCQUFPLE1BQVAsRUFBZ0IsTUFBTSxDQUFDLDRCQUFoQixPQUFnQixDQUFELENBQXRCLEVBQVAsS0FBTyxDQUFQO0FBQ0Q7QUFia0IsR0FBaEIsRUFBUCxLQUFPLENBQVA7QUFKRixDQUFlLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYXRoLCBzZXRQYXRoIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgVk1Bcmd1bWVudHMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGlzRGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgaW50ZXJuYWxIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsLWhlbHBlcic7XG5cbi8qKlxuICBEeW5hbWljYWxseSBsb29rIHVwIGEgcHJvcGVydHkgb24gYW4gb2JqZWN0LiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGB7e2dldH19YFxuICBzaG91bGQgaGF2ZSBhIHN0cmluZyB2YWx1ZSwgYWx0aG91Z2ggaXQgY2FuIGJlIGJvdW5kLlxuXG4gIEZvciBleGFtcGxlLCB0aGVzZSB0d28gdXNhZ2VzIGFyZSBlcXVpdmFsZW50OlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuICBpbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG4gIGV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBAdHJhY2tlZCBkZXZlbG9wZXIgPSB7XG4gICAgICBuYW1lOiBcIlNhbmRpIE1ldHpcIixcbiAgICAgIGxhbmd1YWdlOiBcIlJ1YnlcIlxuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7dGhpcy5kZXZlbG9wZXIubmFtZX19XG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIFwibmFtZVwifX1cbiAgYGBgXG5cbiAgSWYgdGhlcmUgd2VyZSBzZXZlcmFsIGZhY3RzIGFib3V0IGEgcGVyc29uLCB0aGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gZHluYW1pY2FsbHlcbiAgcGljayBvbmU6XG5cbiAgYGBgYXBwL3RlbXBsYXRlcy9hcHBsaWNhdGlvbi5oYnNcbiAgPERldmVsb3BlckRldGFpbCBAZmFjdE5hbWU9XCJsYW5ndWFnZVwiIC8+XG4gIGBgYFxuXG4gIGBgYGhhbmRsZWJhcnNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgQGZhY3ROYW1lfX1cbiAgYGBgXG5cbiAgRm9yIGEgbW9yZSBjb21wbGV4IGV4YW1wbGUsIHRoaXMgdGVtcGxhdGUgd291bGQgYWxsb3cgdGhlIHVzZXIgdG8gc3dpdGNoXG4gIGJldHdlZW4gc2hvd2luZyB0aGUgdXNlcidzIGhlaWdodCBhbmQgd2VpZ2h0IHdpdGggYSBjbGljazpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG5cbiAgICBAdHJhY2tlZCBjdXJyZW50RmFjdCA9ICduYW1lJ1xuXG4gICAgc2hvd0ZhY3QgPSAoZmFjdCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50RmFjdCA9IGZhY3Q7XG4gICAgfVxuICB9XG4gIGBgYFxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgdGhpcy5jdXJyZW50RmFjdH19XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFRoZSBge3tnZXR9fWAgaGVscGVyIGNhbiBhbHNvIHJlc3BlY3QgbXV0YWJsZSB2YWx1ZXMgaXRzZWxmLiBGb3IgZXhhbXBsZTpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIDxJbnB1dCBAdmFsdWU9e3ttdXQgKGdldCB0aGlzLnBlcnNvbiB0aGlzLmN1cnJlbnRGYWN0KX19IC8+XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3YXAgd2hhdCBmYWN0IGlzIGJlaW5nIGRpc3BsYXllZCwgYW5kIGFsc28gZWRpdFxuICB0aGF0IGZhY3QgdmlhIGEgdHdvLXdheSBtdXRhYmxlIGJpbmRpbmcuXG5cbiAgQHB1YmxpY1xuICBAbWV0aG9kIGdldFxuICovXG5leHBvcnQgZGVmYXVsdCBpbnRlcm5hbEhlbHBlcigoYXJnczogVk1Bcmd1bWVudHMpID0+IHtcbiAgbGV0IHNvdXJjZVJlZiA9IGFyZ3MucG9zaXRpb25hbC5hdCgwKTtcbiAgbGV0IHBhdGhSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMSk7XG5cbiAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgKCkgPT4ge1xuICAgICAgbGV0IHNvdXJjZSA9IHZhbHVlRm9yUmVmKHNvdXJjZVJlZik7XG5cbiAgICAgIGlmIChpc0RpY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gZ2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgKHZhbHVlKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzRGljdChzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBzZXRQYXRoKHNvdXJjZSwgU3RyaW5nKHZhbHVlRm9yUmVmKHBhdGhSZWYpKSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgJ2dldCdcbiAgKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

var reified = vm[_symbols.CONSTANTS].component(definition, false, owner);
var reified = vm[_symbols.CONSTANTS].component(definition, owner);

@@ -153,2 +153,2 @@ vm.pushFrame(); // Push blocks on to the stack, three stack values per block

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztJQUVBLG9CO0FBQ0UsV0FBQSxvQkFBQSxDQUFBLEVBQUEsRUFBa0M7QUFBZCxTQUFBLEVBQUEsR0FBQSxFQUFBO0FBQWtCOzs7O1NBQ3RDLEksR0FBQSxTQUFBLElBQUEsR0FBSTtBQUNGLFdBQU8sS0FBQSxFQUFBLENBQVAsSUFBTyxFQUFQOzs7U0FHRixJLEdBQUEsU0FBQSxJQUFBLEdBQUk7QUFBQSxRQUFBLEtBQUEsR0FBQSxJQUFBOztBQUNGLFFBQUEsVUFBQSxFQUFXO0FBQ1QsYUFBTyx5Q0FBMEIsWUFBQTtBQUFBLGVBQU0sS0FBQSxDQUFBLEVBQUEsQ0FBUCxPQUFPLEVBQU47QUFBRCxPQUF6QixFQUFQLG9CQUFPLENBQVA7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLEtBQUEsRUFBQSxDQUFQLE9BQU8sRUFBUDtBQUNEOzs7Ozs7QUFJQyxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUFpRTtBQUNyRSxNQUFBLE1BQUE7QUFFQSxrQ0FBYSxHQUFiLEVBQW1CLFlBQUE7QUFBQSxXQUFPLE1BQU0sR0FBRyxRQUFRLENBQTNDLElBQW1DLEVBQWhCO0FBQW5CLEdBQUE7QUFFQSxTQUFBLE1BQUE7QUFDRDs7QUFFSyxTQUFBLFVBQUEsQ0FBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsV0FBQSxFQUFBLE1BQUEsRUFBQSxZQUFBLEVBTytDO0FBQUEsTUFBbkQsWUFBbUQsS0FBQSxLQUFBLENBQUEsRUFBQTtBQUFuRCxJQUFBLFlBQW1ELEdBQXRCLElBUHpCLHVCQU95QixFQUE3QjtBQUFtRDs7QUFFbkQsTUFBSSxNQUFNLEdBQUcsd0JBQWEsTUFBTSxDQUFOLE9BQUEs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QUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLFVBQUEsRUFBQSxJQUFBLEVBQUEsWUFBQSxFQU8rQztBQUFBLE1BRG5ELElBQ21ELEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFEbkQsSUFBQSxJQUNtRCxHQVAvQyxFQU1KO0FBQ21EOztBQUFBLE1BQW5ELFlBQW1ELEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFBbkQsSUFBQSxZQUFtRCxHQUF0QixJQVB6Qix1QkFPeUIsRUFBN0I7QUFBbUQ7O0FBRW5ELE1BQUksRUFBRSxHQUFHLGdCQUFBLEtBQUEsQ0FBQSxPQUFBLEVBRVA7QUFBRSxJQUFBLFdBQUYsRUFBQSxXQUFBO0FBQWUsSUFBQSxNQUFNLEVBQUUsT0FBTyxDQUFQLE1BQUEsQ0FBdkIsSUFBQTtBQUE0QyxJQUFBLFlBQTVDLEVBQUEsWUFBQTtBQUEwRCxJQUFBLEtBQUEsRUFBQTtBQUExRCxHQUZPLEVBQVQsT0FBUyxDQUFUOztBQUtBLFNBQU8sZ0JBQWdCLENBQUEsRUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFpQyxpQkFBaUIsQ0FBekUsSUFBeUUsQ0FBbEQsQ0FBdkI7QUFDRDs7QUFFRCxTQUFBLGlCQUFBLENBQUEsTUFBQSxFQUEwRDtBQUN4RCxNQUFNLElBQUksR0FBRywrQkFBYyxNQUFkLEVBQWIsTUFBYSxDQUFiO0FBRUEsU0FBTyxNQUFNLENBQU4sSUFBQSxDQUFBLE1BQUEsRUFBQSxNQUFBLENBQTJCLFVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBYTtBQUM3QyxJQUFBLEdBQUcsQ0FBSCxHQUFHLENBQUgsR0FBVyw0QkFBVyxJQUFYLEVBQVgsR0FBVyxDQUFYO0FBQ0EsV0FBQSxHQUFBO0FBRkssR0FBQSxFQUFQLEVBQU8sQ0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHluYW1pY1Njb3BlLFxuICBFbnZpcm9ubWVudCxcbiAgUmVuZGVyUmVzdWx0LFxuICBSaWNoSXRlcmF0b3JSZXN1bHQsXG4gIFRlbXBsYXRlSXRlcmF0b3IsXG4gIFJ1bnRpbWVDb250ZXh0LFxuICBFbGVtZW50QnVpbGRlcixcbiAgQ29tcGlsYWJsZVByb2dyYW0sXG4gIENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNoaWxkUmVmRm9yLCBjcmVhdGVDb25zdFJlZiwgUmVmZXJlbmNlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGV4cGVjdCwgdW53cmFwSGFuZGxlIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBBUkdTLCBDT05TVEFOVFMgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IFZNLCB7IEludGVybmFsVk0gfSBmcm9tICcuL3ZtL2FwcGVuZCc7XG5pbXBvcnQgeyBEeW5hbWljU2NvcGVJbXBsIH0gZnJvbSAnLi9zY29wZSc7XG5pbXBvcnQgeyBpblRyYW5zYWN0aW9uIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24gfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuXG5jbGFzcyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCBpbXBsZW1lbnRzIFRlbXBsYXRlSXRlcmF0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZtOiBJbnRlcm5hbFZNKSB7fVxuICBuZXh0KCk6IFJpY2hJdGVyYXRvclJlc3VsdDxudWxsLCBSZW5kZXJSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy52bS5uZXh0KCk7XG4gIH1cblxuICBzeW5jKCk6IFJlbmRlclJlc3VsdCB7XG4gICAgaWYgKERFQlVHKSB7XG4gICAgICByZXR1cm4gcnVuSW5UcmFja2luZ1RyYW5zYWN0aW9uISgoKSA9PiB0aGlzLnZtLmV4ZWN1dGUoKSwgJy0gV2hpbGUgcmVuZGVyaW5nOicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy52bS5leGVjdXRlKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJTeW5jKGVudjogRW52aXJvbm1lbnQsIGl0ZXJhdG9yOiBUZW1wbGF0ZUl0ZXJhdG9yKTogUmVuZGVyUmVzdWx0IHtcbiAgbGV0IHJlc3VsdDogUmVuZGVyUmVzdWx0O1xuXG4gIGluVHJhbnNhY3Rpb24oZW52LCAoKSA9PiAocmVzdWx0ID0gaXRlcmF0b3Iuc3luYygpKSk7XG5cbiAgcmV0dXJuIHJlc3VsdCE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJNYWluKFxuICBydW50aW1lOiBSdW50aW1lQ29udGV4dCxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgc2VsZjogUmVmZXJlbmNlLFxuICB0cmVlQnVpbGRlcjogRWxlbWVudEJ1aWxkZXIsXG4gIGxheW91dDogQ29tcGlsYWJsZVByb2dyYW0sXG4gIGR5bmFtaWNTY29wZTogRHluYW1pY1Njb3BlID0gbmV3IER5bmFtaWNTY29wZUltcGwoKVxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIGxldCBoYW5kbGUgPSB1bndyYXBIYW5kbGUobGF5b3V0LmNvbXBpbGUoY29udGV4dCkpO1xuICBsZXQgbnVtU3ltYm9scyA9IGxheW91dC5zeW1ib2xUYWJsZS5zeW1ib2xzLmxlbmd0aDtcbiAgbGV0IHZtID0gVk0uaW5pdGlhbChydW50aW1lLCBjb250ZXh0LCB7XG4gICAgc2VsZixcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdHJlZUJ1aWxkZXIsXG4gICAgaGFuZGxlLFxuICAgIG51bVN5bWJvbHMsXG4gICAgb3duZXIsXG4gIH0pO1xuICByZXR1cm4gbmV3IFRlbXBsYXRlSXRlcmF0b3JJbXBsKHZtKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVySW52b2NhdGlvbihcbiAgdm06IEludGVybmFsVk0sXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgYXJnczogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPlxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIC8vIEdldCBhIGxpc3Qgb2YgdHVwbGVzIG9mIGFyZ3VtZW50IG5hbWVzIGFuZCByZWZlcmVuY2VzLCBsaWtlXG4gIC8vIFtbJ3RpdGxlJywgcmVmZXJlbmNlXSwgWyduYW1lJywgcmVmZXJlbmNlXV1cbiAgY29uc3QgYXJnTGlzdCA9IE9iamVjdC5rZXlzKGFyZ3MpLm1hcCgoa2V5KSA9PiBba2V5LCBhcmdzW2tleV1dKTtcblxuICBjb25zdCBibG9ja05hbWVzID0gWydtYWluJywgJ2Vsc2UnLCAnYXR0cnMnXTtcbiAgLy8gUHJlZml4IGFyZ3VtZW50IG5hbWVzIHdpdGggYEBgIHN5bWJvbFxuICBjb25zdCBhcmdOYW1lcyA9IGFyZ0xpc3QubWFwKChbbmFtZV0pID0+IGBAJHtuYW1lfWApO1xuXG4gIGxldCByZWlmaWVkID0gdm1bQ09OU1RBTlRTXS5jb21wb25lbnQoZGVmaW5pdGlvbiwgZmFsc2UsIG93bmVyKTtcblxuICB2bS5wdXNoRnJhbWUoKTtcblxuICAvLyBQdXNoIGJsb2NrcyBvbiB0byB0aGUgc3RhY2ssIHRocmVlIHN0YWNrIHZhbHVlcyBwZXIgYmxvY2tcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAzICogYmxvY2tOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZtLnN0YWNrLnB1c2hOdWxsKCk7XG4gIH1cblxuICB2bS5zdGFjay5wdXNoTnVsbCgpO1xuXG4gIC8vIEZvciBlYWNoIGFyZ3VtZW50LCBwdXNoIGl0cyBiYWNraW5nIHJlZmVyZW5jZSBvbiB0byB0aGUgc3RhY2tcbiAgYXJnTGlzdC5mb3JFYWNoKChbLCByZWZlcmVuY2VdKSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaEpzKHJlZmVyZW5jZSk7XG4gIH0pO1xuXG4gIC8vIENvbmZpZ3VyZSBWTSBiYXNlZCBvbiBibG9ja3MgYW5kIGFyZ3MganVzdCBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLlxuICB2bVtBUkdTXS5zZXR1cCh2bS5zdGFjaywgYXJnTmFtZXMsIGJsb2NrTmFtZXMsIDAsIHRydWUpO1xuXG4gIGNvbnN0IGNvbXBpbGFibGUgPSBleHBlY3QoXG4gICAgcmVpZmllZC5jb21waWxhYmxlLFxuICAgICdCVUc6IEV4cGVjdGVkIHRoZSByb290IGNvbXBvbmVudCByZW5kZXJlZCB3aXRoIHJlbmRlckNvbXBvbmVudCB0byBoYXZlIGFuIGFzc29jaWF0ZWQgdGVtcGxhdGUsIHNldCB3aXRoIHNldENvbXBvbmVudFRlbXBsYXRlJ1xuICApO1xuICBjb25zdCBsYXlvdXRIYW5kbGUgPSB1bndyYXBIYW5kbGUoY29tcGlsYWJsZS5jb21waWxlKGNvbnRleHQpKTtcbiAgY29uc3QgaW52b2NhdGlvbiA9IHsgaGFuZGxlOiBsYXlvdXRIYW5kbGUsIHN5bWJvbFRhYmxlOiBjb21waWxhYmxlLnN5bWJvbFRhYmxlIH07XG5cbiAgLy8gTmVlZGVkIGZvciB0aGUgT3AuTWFpbiBvcGNvZGU6IGFyZ3VtZW50cywgY29tcG9uZW50IGludm9jYXRpb24gb2JqZWN0LCBhbmRcbiAgLy8gY29tcG9uZW50IGRlZmluaXRpb24uXG4gIHZtLnN0YWNrLnB1c2hKcyh2bVtBUkdTXSk7XG4gIHZtLnN0YWNrLnB1c2hKcyhpbnZvY2F0aW9uKTtcbiAgdm0uc3RhY2sucHVzaEpzKHJlaWZpZWQpO1xuXG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQ29tcG9uZW50KFxuICBydW50aW1lOiBSdW50aW1lQ29udGV4dCxcbiAgdHJlZUJ1aWxkZXI6IEVsZW1lbnRCdWlsZGVyLFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBkZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gIGR5bmFtaWNTY29wZTogRHluYW1pY1Njb3BlID0gbmV3IER5bmFtaWNTY29wZUltcGwoKVxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIGxldCB2bSA9IFZNLmVtcHR5KFxuICAgIHJ1bnRpbWUsXG4gICAgeyB0cmVlQnVpbGRlciwgaGFuZGxlOiBjb250ZXh0LnN0ZGxpYi5tYWluLCBkeW5hbWljU2NvcGUsIG93bmVyIH0sXG4gICAgY29udGV4dFxuICApO1xuICByZXR1cm4gcmVuZGVySW52b2NhdGlvbih2bSwgY29udGV4dCwgb3duZXIsIGRlZmluaXRpb24sIHJlY29yZFRvUmVmZXJlbmNlKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gcmVjb3JkVG9SZWZlcmVuY2UocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT4ge1xuICBjb25zdCByb290ID0gY3JlYXRlQ29uc3RSZWYocmVjb3JkLCAnYXJncycpO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhyZWNvcmQpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICBhY2Nba2V5XSA9IGNoaWxkUmVmRm9yKHJvb3QsIGtleSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPik7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztJQUVBLG9CO0FBQ0UsV0FBQSxvQkFBQSxDQUFBLEVBQUEsRUFBa0M7QUFBZCxTQUFBLEVBQUEsR0FBQSxFQUFBO0FBQWtCOzs7O1NBQ3RDLEksR0FBQSxTQUFBLElBQUEsR0FBSTtBQUNGLFdBQU8sS0FBQSxFQUFBLENBQVAsSUFBTyxFQUFQOzs7U0FHRixJLEdBQUEsU0FBQSxJQUFBLEdBQUk7QUFBQSxRQUFBLEtBQUEsR0FBQSxJQUFBOztBQUNGLFFBQUEsVUFBQSxFQUFXO0FBQ1QsYUFBTyx5Q0FBMEIsWUFBQTtBQUFBLGVBQU0sS0FBQSxDQUFBLEVBQUEsQ0FBUCxPQUFPLEVBQU47QUFBRCxPQUF6QixFQUFQLG9CQUFPLENBQVA7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLEtBQUEsRUFBQSxDQUFQLE9BQU8sRUFBUDtBQUNEOzs7Ozs7QUFJQyxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUFpRTtBQUNyRSxNQUFBLE1BQUE7QUFFQSxrQ0FBYSxHQUFiLEVBQW1CLFlBQUE7QUFBQSxXQUFPLE1BQU0sR0FBRyxRQUFRLENBQTNDLElBQW1DLEVBQWhCO0FBQW5CLEdBQUE7QUFFQSxTQUFBLE1BQUE7QUFDRDs7QUFFSyxTQUFBLFVBQUEsQ0FBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsV0FBQSxFQUFBLE1BQUEsRUFBQSxZQUFBLEVBTytDO0FBQUEsTUFBbkQsWUFBbUQsS0FBQSxLQUFBLENBQUEsRUFBQTtBQUFuRCxJQUFBLFlBQW1ELEdBQXRCLElBUHpCLHVCQU95QixFQUE3QjtBQUFtRDs7QUFFbkQsTUFBSSxNQUFNLEdBQUcsd0JBQWEsTUFBTSxDQUFOLE9BQUEs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QUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFBLElBQUEsRUFBQSxZQUFBLEVBTytDO0FBQUEsTUFEbkQsSUFDbUQsS0FBQSxLQUFBLENBQUEsRUFBQTtBQURuRCxJQUFBLElBQ21ELEdBUC9DLEVBTUo7QUFDbUQ7O0FBQUEsTUFBbkQsWUFBbUQsS0FBQSxLQUFBLENBQUEsRUFBQTtBQUFuRCxJQUFBLFlBQW1ELEdBQXRCLElBUHpCLHVCQU95QixFQUE3QjtBQUFtRDs7QUFFbkQsTUFBSSxFQUFFLEdBQUcsZ0JBQUEsS0FBQSxDQUFBLE9BQUEsRUFFUDtBQUFFLElBQUEsV0FBRixFQUFBLFdBQUE7QUFBZSxJQUFBLE1BQU0sRUFBRSxPQUFPLENBQVAsTUFBQSxDQUF2QixJQUFBO0FBQTRDLElBQUEsWUFBNUMsRUFBQSxZQUFBO0FBQTBELElBQUEsS0FBQSxFQUFBO0FBQTFELEdBRk8sRUFBVCxPQUFTLENBQVQ7O0FBS0EsU0FBTyxnQkFBZ0IsQ0FBQSxFQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxVQUFBLEVBQWlDLGlCQUFpQixDQUF6RSxJQUF5RSxDQUFsRCxDQUF2QjtBQUNEOztBQUVELFNBQUEsaUJBQUEsQ0FBQSxNQUFBLEVBQTBEO0FBQ3hELE1BQU0sSUFBSSxHQUFHLCtCQUFjLE1BQWQsRUFBYixNQUFhLENBQWI7QUFFQSxTQUFPLE1BQU0sQ0FBTixJQUFBLENBQUEsTUFBQSxFQUFBLE1BQUEsQ0FBMkIsVUFBQSxHQUFBLEVBQUEsR0FBQSxFQUFhO0FBQzdDLElBQUEsR0FBRyxDQUFILEdBQUcsQ0FBSCxHQUFXLDRCQUFXLElBQVgsRUFBWCxHQUFXLENBQVg7QUFDQSxXQUFBLEdBQUE7QUFGSyxHQUFBLEVBQVAsRUFBTyxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEeW5hbWljU2NvcGUsXG4gIEVudmlyb25tZW50LFxuICBSZW5kZXJSZXN1bHQsXG4gIFJpY2hJdGVyYXRvclJlc3VsdCxcbiAgVGVtcGxhdGVJdGVyYXRvcixcbiAgUnVudGltZUNvbnRleHQsXG4gIEVsZW1lbnRCdWlsZGVyLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2hpbGRSZWZGb3IsIGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZXhwZWN0LCB1bndyYXBIYW5kbGUgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEFSR1MsIENPTlNUQU5UUyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgVk0sIHsgSW50ZXJuYWxWTSB9IGZyb20gJy4vdm0vYXBwZW5kJztcbmltcG9ydCB7IER5bmFtaWNTY29wZUltcGwgfSBmcm9tICcuL3Njb3BlJztcbmltcG9ydCB7IGluVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5cbmNsYXNzIFRlbXBsYXRlSXRlcmF0b3JJbXBsIGltcGxlbWVudHMgVGVtcGxhdGVJdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdm06IEludGVybmFsVk0pIHt9XG4gIG5leHQoKTogUmljaEl0ZXJhdG9yUmVzdWx0PG51bGwsIFJlbmRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnZtLm5leHQoKTtcbiAgfVxuXG4gIHN5bmMoKTogUmVuZGVyUmVzdWx0IHtcbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIHJldHVybiBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24hKCgpID0+IHRoaXMudm0uZXhlY3V0ZSgpLCAnLSBXaGlsZSByZW5kZXJpbmc6Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclN5bmMoZW52OiBFbnZpcm9ubWVudCwgaXRlcmF0b3I6IFRlbXBsYXRlSXRlcmF0b3IpOiBSZW5kZXJSZXN1bHQge1xuICBsZXQgcmVzdWx0OiBSZW5kZXJSZXN1bHQ7XG5cbiAgaW5UcmFuc2FjdGlvbihlbnYsICgpID0+IChyZXN1bHQgPSBpdGVyYXRvci5zeW5jKCkpKTtcblxuICByZXR1cm4gcmVzdWx0ITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck1haW4oXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBzZWxmOiBSZWZlcmVuY2UsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgbGF5b3V0OiBDb21waWxhYmxlUHJvZ3JhbSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IGhhbmRsZSA9IHVud3JhcEhhbmRsZShsYXlvdXQuY29tcGlsZShjb250ZXh0KSk7XG4gIGxldCBudW1TeW1ib2xzID0gbGF5b3V0LnN5bWJvbFRhYmxlLnN5bWJvbHMubGVuZ3RoO1xuICBsZXQgdm0gPSBWTS5pbml0aWFsKHJ1bnRpbWUsIGNvbnRleHQsIHtcbiAgICBzZWxmLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB0cmVlQnVpbGRlcixcbiAgICBoYW5kbGUsXG4gICAgbnVtU3ltYm9scyxcbiAgICBvd25lcixcbiAgfSk7XG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5mdW5jdGlvbiByZW5kZXJJbnZvY2F0aW9uKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+XG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgLy8gR2V0IGEgbGlzdCBvZiB0dXBsZXMgb2YgYXJndW1lbnQgbmFtZXMgYW5kIHJlZmVyZW5jZXMsIGxpa2VcbiAgLy8gW1sndGl0bGUnLCByZWZlcmVuY2VdLCBbJ25hbWUnLCByZWZlcmVuY2VdXVxuICBjb25zdCBhcmdMaXN0ID0gT2JqZWN0LmtleXMoYXJncykubWFwKChrZXkpID0+IFtrZXksIGFyZ3Nba2V5XV0pO1xuXG4gIGNvbnN0IGJsb2NrTmFtZXMgPSBbJ21haW4nLCAnZWxzZScsICdhdHRycyddO1xuICAvLyBQcmVmaXggYXJndW1lbnQgbmFtZXMgd2l0aCBgQGAgc3ltYm9sXG4gIGNvbnN0IGFyZ05hbWVzID0gYXJnTGlzdC5tYXAoKFtuYW1lXSkgPT4gYEAke25hbWV9YCk7XG5cbiAgbGV0IHJlaWZpZWQgPSB2bVtDT05TVEFOVFNdLmNvbXBvbmVudChkZWZpbml0aW9uLCBvd25lcik7XG5cbiAgdm0ucHVzaEZyYW1lKCk7XG5cbiAgLy8gUHVzaCBibG9ja3Mgb24gdG8gdGhlIHN0YWNrLCB0aHJlZSBzdGFjayB2YWx1ZXMgcGVyIGJsb2NrXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMyAqIGJsb2NrTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2bS5zdGFjay5wdXNoTnVsbCgpO1xuICB9XG5cbiAgdm0uc3RhY2sucHVzaE51bGwoKTtcblxuICAvLyBGb3IgZWFjaCBhcmd1bWVudCwgcHVzaCBpdHMgYmFja2luZyByZWZlcmVuY2Ugb24gdG8gdGhlIHN0YWNrXG4gIGFyZ0xpc3QuZm9yRWFjaCgoWywgcmVmZXJlbmNlXSkgPT4ge1xuICAgIHZtLnN0YWNrLnB1c2hKcyhyZWZlcmVuY2UpO1xuICB9KTtcblxuICAvLyBDb25maWd1cmUgVk0gYmFzZWQgb24gYmxvY2tzIGFuZCBhcmdzIGp1c3QgcHVzaGVkIG9uIHRvIHRoZSBzdGFjay5cbiAgdm1bQVJHU10uc2V0dXAodm0uc3RhY2ssIGFyZ05hbWVzLCBibG9ja05hbWVzLCAwLCB0cnVlKTtcblxuICBjb25zdCBjb21waWxhYmxlID0gZXhwZWN0KFxuICAgIHJlaWZpZWQuY29tcGlsYWJsZSxcbiAgICAnQlVHOiBFeHBlY3RlZCB0aGUgcm9vdCBjb21wb25lbnQgcmVuZGVyZWQgd2l0aCByZW5kZXJDb21wb25lbnQgdG8gaGF2ZSBhbiBhc3NvY2lhdGVkIHRlbXBsYXRlLCBzZXQgd2l0aCBzZXRDb21wb25lbnRUZW1wbGF0ZSdcbiAgKTtcbiAgY29uc3QgbGF5b3V0SGFuZGxlID0gdW53cmFwSGFuZGxlKGNvbXBpbGFibGUuY29tcGlsZShjb250ZXh0KSk7XG4gIGNvbnN0IGludm9jYXRpb24gPSB7IGhhbmRsZTogbGF5b3V0SGFuZGxlLCBzeW1ib2xUYWJsZTogY29tcGlsYWJsZS5zeW1ib2xUYWJsZSB9O1xuXG4gIC8vIE5lZWRlZCBmb3IgdGhlIE9wLk1haW4gb3Bjb2RlOiBhcmd1bWVudHMsIGNvbXBvbmVudCBpbnZvY2F0aW9uIG9iamVjdCwgYW5kXG4gIC8vIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICB2bS5zdGFjay5wdXNoSnModm1bQVJHU10pO1xuICB2bS5zdGFjay5wdXNoSnMoaW52b2NhdGlvbik7XG4gIHZtLnN0YWNrLnB1c2hKcyhyZWlmaWVkKTtcblxuICByZXR1cm4gbmV3IFRlbXBsYXRlSXRlcmF0b3JJbXBsKHZtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChcbiAgcnVudGltZTogUnVudGltZUNvbnRleHQsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBkeW5hbWljU2NvcGU6IER5bmFtaWNTY29wZSA9IG5ldyBEeW5hbWljU2NvcGVJbXBsKClcbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICBsZXQgdm0gPSBWTS5lbXB0eShcbiAgICBydW50aW1lLFxuICAgIHsgdHJlZUJ1aWxkZXIsIGhhbmRsZTogY29udGV4dC5zdGRsaWIubWFpbiwgZHluYW1pY1Njb3BlLCBvd25lciB9LFxuICAgIGNvbnRleHRcbiAgKTtcbiAgcmV0dXJuIHJlbmRlckludm9jYXRpb24odm0sIGNvbnRleHQsIG93bmVyLCBkZWZpbml0aW9uLCByZWNvcmRUb1JlZmVyZW5jZShhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIHJlY29yZFRvUmVmZXJlbmNlKHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+IHtcbiAgY29uc3Qgcm9vdCA9IGNyZWF0ZUNvbnN0UmVmKHJlY29yZCwgJ2FyZ3MnKTtcblxuICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgYWNjW2tleV0gPSBjaGlsZFJlZkZvcihyb290LCBrZXkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT4pO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

import { valueForRef, isConstRef } from '@glimmer/reference';
import { valueForRef, isConstRef, createComputeRef } from '@glimmer/reference';
import { valueForTag, validateTag, consumeTag } from '@glimmer/validator';

@@ -229,29 +229,27 @@ import { $t0 } from '@glimmer/vm';

if (!isConstRef(reference)) {
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute));
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env));
}
});
export class UpdateDynamicAttributeOpcode extends UpdatingOpcode {
constructor(reference, attribute) {
constructor(reference, attribute, env) {
super();
this.reference = reference;
this.attribute = attribute;
this.type = 'patch-element';
this.lastValue = valueForRef(reference);
let initialized = false;
this.updateRef = createComputeRef(() => {
let value = valueForRef(reference);
if (initialized === true) {
attribute.update(value, env);
} else {
initialized = true;
}
});
valueForRef(this.updateRef);
}
evaluate(vm) {
let {
attribute,
reference,
lastValue
} = this;
let currentValue = valueForRef(reference);
if (currentValue !== lastValue) {
attribute.update(currentValue, vm.env);
this.lastValue = currentValue;
}
evaluate() {
valueForRef(this.updateRef);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQW9CLFdBQXBCLEVBQWlDLFVBQWpDLFFBQW1ELG9CQUFuRDtBQUNBLFNBQXdCLFdBQXhCLEVBQXFDLFdBQXJDLEVBQWtELFVBQWxELFFBQW9FLG9CQUFwRTtBQW1CQSxTQUFTLEdBQVQsUUFBb0IsYUFBcEI7QUFDQSxTQUFTLGNBQVQsRUFBeUIsY0FBekIsUUFBK0MsZUFBL0M7QUFFQSxTQUFTLE1BQVQsUUFBdUIsTUFBdkI7QUFHQSxTQUFTLFNBQVQsUUFBMEIsZUFBMUI7QUFDQSxTQUFTLGFBQVQsUUFBc0MsZUFBdEM7QUFFQSxTQUF1QixhQUF2QixFQUFzQyxtQkFBdEMsUUFBaUUscUJBQWpFO0FBQ0EsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBRUEsY0FBYyxDQUFDLEdBQWYsQ0FBa0I7QUFBQTtBQUFsQixFQUE0QixDQUFDLEVBQUQsRUFBSztBQUFFLEVBQUEsR0FBRyxFQUFFO0FBQVAsQ0FBTCxLQUFzQjtBQUNoRCxFQUFBLEVBQUUsQ0FBQyxRQUFILEdBQWMsVUFBZCxDQUF5QixFQUFFLENBQUMsU0FBRCxDQUFGLENBQWMsUUFBZCxDQUF1QixJQUF2QixDQUF6QjtBQUNELENBRkQ7QUFJQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQStCLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXNCO0FBQ25ELEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxhQUFkLENBQTRCLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQXVCLElBQXZCLENBQTVCO0FBQ0QsQ0FGRDtBQUlBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsQ0FBQyxFQUFELEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFB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R0FBRyxFQUFFLENBQUMsUUFBSCxHQUFjLG1CQUFkLENBQWtDLElBQWxDLEVBQXdDLEtBQXhDLEVBQStDLFFBQS9DLEVBQXlELFNBQXpELENBQWhCOztBQUVBLE1BQUksQ0FBQyxVQUFVLENBQUMsU0FBRCxDQUFmLEVBQTRCO0FBQzFCLElBQUEsRUFBRSxDQUFDLFVBQUgsQ0FBYyxJQUFJLDRCQUFKLENBQWlDLFNBQWpDLEVBQTRDLFNBQTVDLENBQWQ7QUFDRDtBQUNGLENBWkQ7QUFjQSxPQUFNLE1BQU8sNEJBQVAsU0FBNEMsY0FBNUMsQ0FBMEQ7QUFLOUQsRUFBQSxXQUFBLENBQW9CLFNBQXBCLEVBQTJELFNBQTNELEVBQXNGO0FBQ3BGO0FBRGtCLFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFBdUMsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUpwRCxTQUFBLElBQUEsR0FBTyxlQUFQO0FBTUwsU0FBSyxTQUFMLEdBQWlCLFdBQVcsQ0FBQyxTQUFELENBQTVCO0FBQ0Q7O0FBRUQsRUFBQSxRQUFRLENBQUMsRUFBRCxFQUFlO0FBQ3JCLFFBQUk7QUFBRSxNQUFBLFNBQUY7QUFBYSxNQUFBLFNBQWI7QUFBd0IsTUFBQTtBQUF4QixRQUFzQyxJQUExQztBQUNBLFFBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFELENBQTlCOztBQUVBLFFBQUksWUFBWSxLQUFLLFNBQXJCLEVBQWdDO0FBQzlCLE1BQUEsU0FBUyxDQUFDLE1BQVYsQ0FBaUIsWUFBakIsRUFBK0IsRUFBRSxDQUFDLEdBQWxDO0FBQ0EsV0FBSyxTQUFMLEdBQWlCLFlBQWpCO0FBQ0Q7QUFDRjs7QUFsQjZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiwgaXNDb25zdFJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBSZXZpc2lvbiwgVGFnLCB2YWx1ZUZvclRhZywgdmFsaWRhdGVUYWcsIGNvbnN1bWVUYWcgfSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHtcbiAgY2hlY2ssXG4gIENoZWNrU3RyaW5nLFxuICBDaGVja0VsZW1lbnQsXG4gIENoZWNrT3B0aW9uLFxuICBDaGVja05vZGUsXG4gIENoZWNrTWF5YmUsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7XG4gIE9wLFxuICBPcHRpb24sXG4gIE1vZGlmaWVyRGVmaW5pdGlvbixcbiAgTW9kaWZpZXJJbnN0YW5jZSxcbiAgVk1Bcmd1bWVudHMsXG4gIE93bmVyLFxuICBDdXJyaWVkVHlwZSxcbiAgTW9kaWZpZXJEZWZpbml0aW9uU3RhdGUsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHQwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgQVBQRU5EX09QQ09ERVMsIFVwZGF0aW5nT3Bjb2RlIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBVcGRhdGluZ1ZNIH0gZnJvbSAnLi4vLi4vdm0nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5pbXBvcnQgeyBEeW5hbWljQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdm0vYXR0cmlidXRlcy9keW5hbWljJztcbmltcG9ydCB7IENoZWNrUmVmZXJlbmNlLCBDaGVja0FyZ3VtZW50cywgQ2hlY2tPcGVyYXRpb25zIH0gZnJvbSAnLi8tZGVidWctc3RyaXAnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEludGVybmFsVk0gfSBmcm9tICcuLi8uLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgQ3VycmllZFZhbHVlLCBpc0N1cnJpZWRUeXBlLCByZXNvbHZlQ3VycmllZFZhbHVlIH0gZnJvbSAnLi4vLi4vY3VycmllZC12YWx1ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5UZXh0LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRUZXh0KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db21tZW50LCAodm0sIHsgb3AxOiB0ZXh0IH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5hcHBlbmRDb21tZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGV4dCkpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRWxlbWVudCwgKHZtLCB7IG9wMTogdGFnIH0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRhZykpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5PcGVuRHluYW1pY0VsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgdGFnTmFtZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKSksIENoZWNrU3RyaW5nKTtcbiAgdm0uZWxlbWVudHMoKS5vcGVuRWxlbWVudCh0YWdOYW1lKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUHVzaFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgZWxlbWVudFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGluc2VydEJlZm9yZVJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGd1aWRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IGVsZW1lbnQgPSBjaGVjayh2YWx1ZUZvclJlZihlbGVtZW50UmVmKSwgQ2hlY2tFbGVtZW50KTtcbiAgbGV0IGluc2VydEJlZm9yZSA9IGNoZWNrKHZhbHVlRm9yUmVmKGluc2VydEJlZm9yZVJlZiksIENoZWNrTWF5YmUoQ2hlY2tPcHRpb24oQ2hlY2tOb2RlKSkpO1xuICBsZXQgZ3VpZCA9IHZhbHVlRm9yUmVmKGd1aWRSZWYpIGFzIHN0cmluZztcblxuICBpZiAoIWlzQ29uc3RSZWYoZWxlbWVudFJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoZWxlbWVudFJlZikpO1xuICB9XG5cbiAgaWYgKGluc2VydEJlZm9yZSAhPT0gdW5kZWZpbmVkICYmICFpc0NvbnN0UmVmKGluc2VydEJlZm9yZVJlZikpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBBc3NlcnQoaW5zZXJ0QmVmb3JlUmVmKSk7XG4gIH1cblxuICBsZXQgYmxvY2sgPSB2bS5lbGVtZW50cygpLnB1c2hSZW1vdGVFbGVtZW50KGVsZW1lbnQsIGd1aWQsIGluc2VydEJlZm9yZSk7XG4gIGlmIChibG9jaykgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoYmxvY2spO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Qb3BSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgdm0uZWxlbWVudHMoKS5wb3BSZW1vdGVFbGVtZW50KCk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkZsdXNoRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBvcGVyYXRpb25zID0gY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpO1xuICBsZXQgbW9kaWZpZXJzOiBPcHRpb248TW9kaWZpZXJJbnN0YW5jZVtdPiA9IG51bGw7XG5cbiAgaWYgKG9wZXJhdGlvbnMpIHtcbiAgICBtb2RpZmllcnMgPSBvcGVyYXRpb25zLmZsdXNoKHZtKTtcbiAgICB2bS5sb2FkVmFsdWUoJHQwLCBudWxsKTtcbiAgfVxuXG4gIHZtLmVsZW1lbnRzKCkuZmx1c2hFbGVtZW50KG1vZGlmaWVycyk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNsb3NlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBtb2RpZmllcnMgPSB2bS5lbGVtZW50cygpLmNsb3NlRWxlbWVudCgpO1xuXG4gIGlmIChtb2RpZmllcnMpIHtcbiAgICBtb2RpZmllcnMuZm9yRWFjaCgobW9kaWZpZXIpID0+IHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZUluc3RhbGxNb2RpZmllcihtb2RpZmllcik7XG4gICAgICBsZXQgeyBtYW5hZ2VyLCBzdGF0ZSB9ID0gbW9kaWZpZXI7XG4gICAgICBsZXQgZCA9IG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoc3RhdGUpO1xuXG4gICAgICBpZiAoZCkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Nb2RpZmllciwgKHZtLCB7IG9wMTogaGFuZGxlIH0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBvd25lciA9IHZtLmdldE93bmVyKCk7XG4gIGxldCBhcmdzID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgZGVmaW5pdGlvbiA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihoYW5kbGUpO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNNb2RpZmllciwgKHZtKSA9PiB7XG4gIGlmICh2bS5lbnYuaXNJbnRlcmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgeyBzdGFjaywgW0NPTlNUQU5UU106IGNvbnN0YW50cyB9ID0gdm07XG4gIGxldCByZWYgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBhcmdzID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tBcmd1bWVudHMpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWYpO1xuICBsZXQgb3duZXI6IE93bmVyO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGhvc3REZWZpbml0aW9uOiBDdXJyaWVkVmFsdWUgfCBNb2RpZmllckRlZmluaXRpb25TdGF0ZTtcblxuICBpZiAoaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuTW9kaWZpZXIpKSB7XG4gICAgbGV0IFtjdXJyaWVkVmFsdWUsIGN1cnJpZWRPd25lcl0gPSByZXNvbHZlQ3VycmllZFZhbHVlKHZhbHVlLCBhcmdzKTtcbiAgICBob3N0RGVmaW5pdGlvbiA9IGN1cnJpZWRWYWx1ZTtcbiAgICBvd25lciA9IGN1cnJpZWRPd25lcjtcbiAgfSBlbHNlIHtcbiAgICBob3N0RGVmaW5pdGlvbiA9IHZhbHVlO1xuICAgIG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgfVxuXG4gIGxldCBoYW5kbGUgPSBjb25zdGFudHMubW9kaWZpZXIoaG9zdERlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gIGlmIChERUJVRyAmJiBoYW5kbGUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRXhwZWN0ZWQgYSBkeW5hbWljIG1vZGlmaWVyIGRlZmluaXRpb24sIGJ1dCByZWNlaXZlZCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24gdGhhdCBkaWQgbm90IGhhdmUgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIGR5bmFtaWMgaW52b2NhdGlvbiB3YXMgXFxge3ske1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfX19XFxgLCBhbmQgdGhlIGluY29ycmVjdCBkZWZpbml0aW9uIGlzIHRoZSB2YWx1ZSBhdCB0aGUgcGF0aCBcXGAke1xuICAgICAgICByZWYuZGVidWdMYWJlbFxuICAgICAgfVxcYCwgd2hpY2ggd2FzOiAke2RlYnVnVG9TdHJpbmchKGhvc3REZWZpbml0aW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGxldCBkZWZpbml0aW9uID0gY29uc3RhbnRzLmdldFZhbHVlPE1vZGlmaWVyRGVmaW5pdGlvbj4oXG4gICAgZXhwZWN0KGhhbmRsZSwgJ0JVRzogbW9kaWZpZXIgaGFuZGxlIGV4cGVjdGVkJylcbiAgKTtcblxuICBpbnZva2VNb2RpZmllcih2bSwgb3duZXIsIGFyZ3MsIGRlZmluaXRpb24pO1xufSk7XG5cbmZ1bmN0aW9uIGludm9rZU1vZGlmaWVyKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgb3duZXI6IE93bmVyLFxuICBhcmdzOiBWTUFyZ3VtZW50cyxcbiAgZGVmaW5pdGlvbjogTW9kaWZpZXJEZWZpbml0aW9uXG4pIHtcbiAgbGV0IHsgbWFuYWdlciB9ID0gZGVmaW5pdGlvbjtcblxuICBsZXQgeyBjb25zdHJ1Y3RpbmcsIHVwZGF0ZU9wZXJhdGlvbnMgfSA9IHZtLmVsZW1lbnRzKCk7XG4gIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcblxuICBsZXQgc3RhdGUgPSBtYW5hZ2VyLmNyZWF0ZShcbiAgICBvd25lcixcbiAgICBleHBlY3QoY29uc3RydWN0aW5nLCAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgdGhlIGVsZW1lbnQgaXQgYXBwbGllcyB0bycpLFxuICAgIGRlZmluaXRpb24uc3RhdGUsXG4gICAgYXJncyxcbiAgICBkeW5hbWljU2NvcGUsXG4gICAgdXBkYXRlT3BlcmF0aW9uc1xuICApO1xuXG4gIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZSA9IHtcbiAgICBtYW5hZ2VyLFxuICAgIHN0YXRlLFxuICAgIGRlZmluaXRpb24sXG4gIH07XG5cbiAgbGV0IG9wZXJhdGlvbnMgPSBleHBlY3QoXG4gICAgY2hlY2sodm0uZmV0Y2hWYWx1ZSgkdDApLCBDaGVja09wZXJhdGlvbnMpLFxuICAgICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCBvcGVyYXRpb25zIHRvIGFwcGVuZCB0bydcbiAgKTtcblxuICBvcGVyYXRpb25zLmFkZE1vZGlmaWVyKGluc3RhbmNlKTtcblxuICBsZXQgdGFnID0gbWFuYWdlci5nZXRUYWcoc3RhdGUpO1xuXG4gIGlmICh0YWcgIT09IG51bGwpIHtcbiAgICBjb25zdW1lVGFnKHRhZyk7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlTW9kaWZpZXJPcGNvZGUodGFnLCBpbnN0YW5jZSkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNb2RpZmllck9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgcHVibGljIHR5cGUgPSAndXBkYXRlLW1vZGlmaWVyJztcbiAgcHJpdmF0ZSBsYXN0VXBkYXRlZDogUmV2aXNpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhZzogVGFnLCBwcml2YXRlIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgbW9kaWZpZXIsIHRhZywgbGFzdFVwZGF0ZWQgfSA9IHRoaXM7XG5cbiAgICBjb25zdW1lVGFnKHRhZyk7XG5cbiAgICBpZiAoIXZhbGlkYXRlVGFnKHRhZywgbGFzdFVwZGF0ZWQpKSB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVVcGRhdGVNb2RpZmllcihtb2RpZmllcik7XG4gICAgICB0aGlzLmxhc3RVcGRhdGVkID0gdmFsdWVGb3JUYWcodGFnKTtcbiAgICB9XG4gIH1cbn1cblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlN0YXRpY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF92YWx1ZSwgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdmFsdWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX3ZhbHVlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIHZtLmVsZW1lbnRzKCkuc2V0U3RhdGljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3RydXN0aW5nLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB0cnVzdGluZyA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8Ym9vbGVhbj4oX3RydXN0aW5nKTtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IG5hbWVzcGFjZSA9IF9uYW1lc3BhY2UgPyB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWVzcGFjZSkgOiBudWxsO1xuXG4gIGxldCBhdHRyaWJ1dGUgPSB2bS5lbGVtZW50cygpLnNldER5bmFtaWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHRydXN0aW5nLCBuYW1lc3BhY2UpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlRHluYW1pY0F0dHJpYnV0ZU9wY29kZShyZWZlcmVuY2UsIGF0dHJpYnV0ZSkpO1xuICB9XG59KTtcblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3BhdGNoLWVsZW1lbnQnO1xuXG4gIHB1YmxpYyBsYXN0VmFsdWU6IHVua25vd247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPiwgcHJpdmF0ZSBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgfVxuXG4gIGV2YWx1YXRlKHZtOiBVcGRhdGluZ1ZNKSB7XG4gICAgbGV0IHsgYXR0cmlidXRlLCByZWZlcmVuY2UsIGxhc3RWYWx1ZSB9ID0gdGhpcztcbiAgICBsZXQgY3VycmVudFZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgIGlmIChjdXJyZW50VmFsdWUgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgYXR0cmlidXRlLnVwZGF0ZShjdXJyZW50VmFsdWUsIHZtLmVudik7XG4gICAgICB0aGlzLmxhc3RWYWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQW9CLFdBQXBCLEVBQWlDLFVBQWpDLEVBQTZDLGdCQUE3QyxRQUFxRSxvQkFBckU7QUFDQSxTQUF3QixXQUF4QixFQUFxQyxXQUFyQyxFQUFrRCxVQUFsRCxRQUFvRSxvQkFBcEU7QUFvQkEsU0FBUyxHQUFULFFBQW9CLGFBQXBCO0FBQ0EsU0FBUyxjQUFULEVBQXlCLGNBQXpCLFFBQStDLGVBQS9DO0FBRUEsU0FBUyxNQUFULFFBQXVCLE1BQXZCO0FBR0EsU0FBUyxTQUFULFFBQTBCLGVBQTFCO0FBQ0EsU0FBUyxhQUFULFFBQXNDLGVBQXRDO0FBRUEsU0FBdUIsYUFBdkIsRUFBc0MsbUJBQXRDLFFBQWlFLHFCQUFqRTtBQUNBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUVBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsQ0FBQyxFQUFELEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBc0I7QUFDaEQsRUFBQSxFQUFFLENBQUMsUUFBSCxHQUFjLFVBQWQsQ0FBeUIsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBekI7QUFDRCxDQUZEO0FBSUEsY0FBYyxDQUFDLEdBQWYsQ0FBa0I7QUFBQTtBQUFsQixFQUErQixDQUFDLEVBQUQsRUFBSztBQUFFLEVBQUEsR0FBRyxFQUFFO0FBQVAsQ0FBTCxLQUFzQjtBQUNuRCxFQUFBLEVBQUUsQ0FBQyxRQUFILEdBQWMsYUFBZCxDQUE0QixFQUFFLENBQUMsU0FBRCxDQUFGLENBQWMsUUFBZCxDQUF1QixJQUF2QixDQUE1QjtBQUNELENBRkQ7QUFJQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUU7QUFBUCxDQUFMLEtBQXFCO0FBQ3RELEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxXQUFkLENBQTBCLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQXVCLEdBQXZCLENBQTFCO0FBQ0QsQ0FGRDtBQUlBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBMkMsRUFBRCxJQUFPO0FBQy9DLE1BQUksT0FBTyxHQUFTLFdBQVcsQ0FBTyxFQUFFLENBQUMsS0FBSCxDQUFTLEtBQVQsRUFBUCxDQUEvQjtBQUNBLEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxXQUFkLENBQTBCLE9BQTFCO0FBQ0QsQ0FIRDtBQUtBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBMEMsRUFBRCxJQUFPO0FBQzlDLE1BQUksVUFBVSxHQUFTLEVBQUUsQ0FBQyxLQUFILENBQVMsS0FBVCxFQUF2QjtBQUNBLE1BQUksZUFBZSxHQUFTLEVBQUUsQ0FBQyxLQUFILENBQVMsS0FBVCxFQUE1QjtBQUNBLE1BQUksT0FBTyxHQUFTLEVBQUUsQ0FBQyxLQUFILENBQVMsS0FBVCxFQUFwQjtBQUVBLE1BQUksT0FBTyxHQUFTLFdBQVcsQ0FBQyxVQUFELENBQS9CO0FBQ0EsTUFBSSxZQUFZLEdBQVMsV0FBVyxDQUFDLGVBQUQsQ0FBcEM7QUFDQSxNQUFJLElBQUksR0FBRyxXQUFXLENBQUMsT0FBRCxDQUF0Qjs7QUFFQSxNQUFJLENBQUMsVUFBVSxDQUFDLFVBQUQsQ0FBZixFQUE2QjtBQUMzQixJQUFBLEVBQUUsQ0FBQyxVQUFILENBQWMsSUFBSSxNQUFKLENBQVcsVUFBWCxDQUFkO0FBQ0Q7O0FBRUQsTUFBSSxZQUFZLEtBQUssU0FBakIsSUFBOEIsQ0FBQyxVQUFVLENBQUMsZUFBRCxDQUE3QyxFQUFnRTtBQUM5RCxJQUFBLEVBQUUsQ0FBQyxVQUFILENBQWMsSUFBSSxNQUFKLENBQVcsZUFBWCxDQUFkO0FBQ0Q7O0FBRUQsTUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLFFBQUgsR0FBYyxpQkFBZCxDQUFnQyxPQUFoQyxFQUF5QyxJQUF6QyxFQUErQyxZQUEvQyxDQUFaO0FBQ0EsTUFBSSxLQUFKLEVBQVcsRUFBRSxDQUFDLG9CQUFILENBQXdCLEtBQXhCO0FBQ1osQ0FuQkQ7QUFxQkEsY0FBYyxDQUFDLEdBQWYsQ0FBa0I7QUFBQTtBQUFsQixFQUF5QyxFQUFELElBQU87QUFDN0MsRUFBQSxFQUFFLENBQUMsUUFBSCxHQUFjLGdCQUFkO0FBQ0QsQ0FGRDtBQUlBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBcUMsRUFBRCxJQUFPO0FBQ3pDLE1BQUksVUFBVSxHQUFTLEVBQUUsQ0FBQyxVQUFILENBQWMsR0FBZCxDQUF2QjtBQUNBLE1BQUksU0FBUyxHQUErQixJQUE1Qzs7QUFFQSxNQUFJLFVBQUosRUFBZ0I7QUFDZCxJQUFBLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBWCxDQUFpQixFQUFqQixDQUFaO0FBQ0EsSUFBQSxFQUFFLENBQUMsU0FBSCxDQUFhLEdBQWIsRUFBa0IsSUFBbEI7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQyxRQUFILEdBQWMsWUFBZCxDQUEyQixTQUEzQjtBQUNELENBVkQ7QUFZQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQXFDLEVBQUQsSUFBTztBQUN6QyxNQUFJLFNBQVMsR0FBRyxFQUFFLENBQUMsUUFBSCxHQUFjLFlBQWQsRUFBaEI7O0FBRUEsTUFBSSxTQUFKLEVBQWU7QUFDYixJQUFBLFNBQVMsQ0FBQyxPQUFWLENBQW1CLFFBQUQsSUFBYTtBQUM3QixNQUFBLEVBQUUsQ0FBQyxHQUFILENBQU8sdUJBQVAsQ0FBK0IsUUFBL0I7QUFDQSxVQUFJO0FBQUUsUUFBQSxPQUFGO0FBQVcsUUFBQTtBQUFYLFVBQXFCLFFBQXpCO0FBQ0EsVUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLGNBQVIsQ0FBdUIsS0FBdkIsQ0FBUjs7QUFFQSxVQUFJLENBQUosRUFBTztBQUNMLFFBQUEsRUFBRSxDQUFDLG9CQUFILENBQXdCLENBQXhCO0FBQ0Q7QUFDRixLQVJEO0FBU0Q7QUFDRixDQWREO0FBZ0JBLGNBQWMsQ0FBQyxHQUFmLENBQWtCO0FBQUE7QUFBbEIsRUFBZ0MsQ0FBQyxFQUFELEVBQUs7QUFBRSxFQUFBLEdBQUcsRUFBRTtBQUFQLENBQUwsS0FBd0I7QUFDdEQsTUFBSSxFQUFFLENBQUMsR0FBSCxDQUFPLGFBQVAsS0FBeUIsS0FBN0IsRUFBb0M7QUFDbEM7QUFDRDs7QUFFRCxNQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBSCxFQUFaO0FBQ0EsTUFBSSxJQUFJLEdBQVMsRUFBRSxDQUFDLEtBQUgsQ0FBUyxLQUFULEVBQWpCO0FBQ0EsTUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBMkMsTUFBM0MsQ0FBakI7QUFFQSxFQUFBLGNBQWMsQ0FBQyxFQUFELEVBQUssS0FBTCxFQUFZLElBQVosRUFBa0IsVUFBbEIsQ0FBZDtBQUNELENBVkQ7QUFZQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQXdDLEVBQUQsSUFBTztBQUM1QyxNQUFJLEVBQUUsQ0FBQyxHQUFILENBQU8sYUFBUCxLQUF5QixLQUE3QixFQUFvQztBQUNsQztBQUNEOztBQUVELE1BQUk7QUFBRSxJQUFBLEtBQUY7QUFBUyxLQUFDLFNBQUQsR0FBYTtBQUF0QixNQUFvQyxFQUF4QztBQUNBLE1BQUksR0FBRyxHQUFTLEtBQUssQ0FBQyxLQUFOLEVBQWhCO0FBQ0EsTUFBSSxJQUFJLEdBQVMsS0FBSyxDQUFDLEtBQU4sRUFBakI7QUFDQSxNQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRCxDQUF2QjtBQUNBLE1BQUksS0FBSjs7QUFFQSxNQUFJLE9BQU8sS0FBUCxLQUFpQixVQUFqQixLQUFnQyxPQUFPLEtBQVAsS0FBaUIsUUFBakIsSUFBNkIsS0FBSyxLQUFLLElBQXZFLENBQUosRUFBa0Y7QUFDaEY7QUFDRDs7QUFFRCxNQUFJLGNBQUo7O0FBRUEsTUFBSSxhQUFhLENBQUMsS0FBRCxFQUFNO0FBQUE7QUFBTixHQUFqQixFQUFnRDtBQUM5QyxRQUFJLENBQUMsWUFBRCxFQUFlLFlBQWYsSUFBK0IsbUJBQW1CLENBQUMsS0FBRCxFQUFRLElBQVIsQ0FBdEQ7QUFDQSxJQUFBLGNBQWMsR0FBRyxZQUFqQjtBQUNBLElBQUEsS0FBSyxHQUFHLFlBQVI7QUFDRCxHQUpELE1BSU87QUFDTCxJQUFBLGNBQWMsR0FBRyxLQUFqQjtBQUNBLElBQUEsS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFILEVBQVI7QUFDRDs7QUFFRCxNQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsUUFBVixDQUFtQixjQUFuQixFQUFtQyxJQUFuQyxFQUF5QyxJQUF6QyxDQUFiOztBQUVBLE1BQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxJQUF4QixFQUE4QjtBQUM1QixVQUFNLElBQUksS0FBSixDQUNKLHNLQUNFLEdBQUcsQ0FBQyxVQUNOLGlFQUNFLEdBQUcsQ0FBQyxVQUNOLGtCQUFrQixhQUFjLENBQUMsY0FBRCxDQUFnQixFQUw1QyxDQUFOO0FBT0Q7O0FBRUQsTUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVYsQ0FDUixNQURRLENBQWpCO0FBSUEsRUFBQSxjQUFjLENBQUMsRUFBRCxFQUFLLEtBQUwsRUFBWSxJQUFaLEVBQWtCLFVBQWxCLENBQWQ7QUFDRCxDQTNDRDs7QUE2Q0EsU0FBUyxjQUFULENBQ0UsRUFERixFQUVFLEtBRkYsRUFHRSxJQUhGLEVBSUUsVUFKRixFQUlnQztBQUU5QixNQUFJO0FBQUUsSUFBQTtBQUFGLE1BQWMsVUFBbEI7QUFFQSxNQUFJO0FBQUUsSUFBQSxZQUFGO0FBQWdCLElBQUE7QUFBaEIsTUFBcUMsRUFBRSxDQUFDLFFBQUgsRUFBekM7QUFDQSxNQUFJLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBSCxFQUFuQjtBQUVBLE1BQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFSLENBQ1YsS0FEVSxFQUVILFlBRkcsRUFHVixVQUFVLENBQUMsS0FIRCxFQUlWLElBSlUsRUFLVixZQUxVLEVBTVYsZ0JBTlUsQ0FBWjtBQVNBLE1BQUksUUFBUSxHQUFxQjtBQUMvQixJQUFBLE9BRCtCO0FBRS9CLElBQUEsS0FGK0I7QUFHL0IsSUFBQTtBQUgrQixHQUFqQztBQU1BLE1BQUksVUFBVSxHQUNOLEVBQUUsQ0FBQyxVQUFILENBQWMsR0FBZCxDQURSO0FBS0EsRUFBQSxVQUFVLENBQUMsV0FBWCxDQUF1QixRQUF2QjtBQUVBLE1BQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFSLENBQWUsS0FBZixDQUFWOztBQUVBLE1BQUksR0FBRyxLQUFLLElBQVosRUFBa0I7QUFDaEIsSUFBQSxVQUFVLENBQUMsR0FBRCxDQUFWO0FBQ0EsSUFBQSxFQUFFLENBQUMsVUFBSCxDQUFjLElBQUksb0JBQUosQ0FBeUIsR0FBekIsRUFBOEIsUUFBOUIsQ0FBZDtBQUNEO0FBQ0Y7O0FBRUQsT0FBTSxNQUFPLG9CQUFQLFNBQW9DLGNBQXBDLENBQWtEO0FBSXRELEVBQUEsV0FBQSxDQUFtQixHQUFuQixFQUFxQyxRQUFyQyxFQUErRDtBQUM3RDtBQURpQixTQUFBLEdBQUEsR0FBQSxHQUFBO0FBQWtCLFNBQUEsUUFBQSxHQUFBLFFBQUE7QUFIOUIsU0FBQSxJQUFBLEdBQU8saUJBQVA7QUFLTCxTQUFLLFdBQUwsR0FBbUIsV0FBVyxDQUFDLEdBQUQsQ0FBOUI7QUFDRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQyxFQUFELEVBQWU7QUFDckIsUUFBSTtBQUFFLE1BQUEsUUFBRjtBQUFZLE1BQUEsR0FBWjtBQUFpQixNQUFBO0FBQWpCLFFBQWlDLElBQXJDO0FBRUEsSUFBQSxVQUFVLENBQUMsR0FBRCxDQUFWOztBQUVBLFFBQUksQ0FBQyxXQUFXLENBQUMsR0FBRCxFQUFNLFdBQU4sQ0FBaEIsRUFBb0M7QUFDbEMsTUFBQSxFQUFFLENBQUMsR0FBSCxDQUFPLHNCQUFQLENBQThCLFFBQTlCO0FBQ0EsV0FBSyxXQUFMLEdBQW1CLFdBQVcsQ0FBQyxHQUFELENBQTlCO0FBQ0Q7QUFDRjs7QUFsQnFEO0FBcUJ4RCxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQWtDLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUUsS0FBUDtBQUFjLEVBQUEsR0FBRyxFQUFFLE1BQW5CO0FBQTJCLEVBQUEsR0FBRyxFQUFFO0FBQWhDLENBQUwsS0FBcUQ7QUFDckYsTUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBK0IsS0FBL0IsQ0FBWDtBQUNBLE1BQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQStCLE1BQS9CLENBQVo7QUFDQSxNQUFJLFNBQVMsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBK0IsVUFBL0IsQ0FBSCxHQUFnRCxJQUExRTtBQUVBLEVBQUEsRUFBRSxDQUFDLFFBQUgsR0FBYyxrQkFBZCxDQUFpQyxJQUFqQyxFQUF1QyxLQUF2QyxFQUE4QyxTQUE5QztBQUNELENBTkQ7QUFRQSxjQUFjLENBQUMsR0FBZixDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLENBQUMsRUFBRCxFQUFLO0FBQUUsRUFBQSxHQUFHLEVBQUUsS0FBUDtBQUFjLEVBQUEsR0FBRyxFQUFFLFNBQW5CO0FBQThCLEVBQUEsR0FBRyxFQUFFO0FBQW5DLENBQUwsS0FBd0Q7QUFDekYsTUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQUQsQ0FBRixDQUFjLFFBQWQsQ0FBK0IsS0FBL0IsQ0FBWDtBQUNBLE1BQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxTQUFELENBQUYsQ0FBYyxRQUFkLENBQWdDLFNBQWhDLENBQWY7QUFDQSxNQUFJLFNBQVMsR0FBUyxFQUFFLENBQUMsS0FBSCxDQUFTLEtBQVQsRUFBdEI7QUFDQSxNQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsU0FBRCxDQUF2QjtBQUNBLE1BQUksU0FBUyxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUMsU0FBRCxDQUFGLENBQWMsUUFBZCxDQUErQixVQUEvQixDQUFILEdBQWdELElBQTFFO0FBRUEsTUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLFFBQUgsR0FBYyxtQkFBZCxDQUFrQyxJQUFsQyxFQUF3QyxLQUF4QyxFQUErQyxRQUEvQyxFQUF5RCxTQUF6RCxDQUFoQjs7QUFFQSxNQUFJLENBQUMsVUFBVSxDQUFDLFNBQUQsQ0FBZixFQUE0QjtBQUMxQixJQUFBLEVBQUUsQ0FBQyxVQUFILENBQWMsSUFBSSw0QkFBSixDQUFpQyxTQUFqQyxFQUE0QyxTQUE1QyxFQUF1RCxFQUFFLENBQUMsR0FBMUQsQ0FBZDtBQUNEO0FBQ0YsQ0FaRDtBQWNBLE9BQU0sTUFBTyw0QkFBUCxTQUE0QyxjQUE1QyxDQUEwRDtBQUs5RCxFQUFBLFdBQUEsQ0FBWSxTQUFaLEVBQTJDLFNBQTNDLEVBQXdFLEdBQXhFLEVBQXdGO0FBQ3RGO0FBTEssU0FBQSxJQUFBLEdBQU8sZUFBUDtBQU9MLFFBQUksV0FBVyxHQUFHLEtBQWxCO0FBRUEsU0FBSyxTQUFMLEdBQWlCLGdCQUFnQixDQUFDLE1BQUs7QUFDckMsVUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsVUFBSSxXQUFXLEtBQUssSUFBcEIsRUFBMEI7QUFDeEIsUUFBQSxTQUFTLENBQUMsTUFBVixDQUFpQixLQUFqQixFQUF3QixHQUF4QjtBQUNELE9BRkQsTUFFTztBQUNMLFFBQUEsV0FBVyxHQUFHLElBQWQ7QUFDRDtBQUNGLEtBUmdDLENBQWpDO0FBVUEsSUFBQSxXQUFXLENBQUMsS0FBSyxTQUFOLENBQVg7QUFDRDs7QUFFRCxFQUFBLFFBQVEsR0FBQTtBQUNOLElBQUEsV0FBVyxDQUFDLEtBQUssU0FBTixDQUFYO0FBQ0Q7O0FBekI2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGlzQ29uc3RSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQge1xuICBPcCxcbiAgT3B0aW9uLFxuICBNb2RpZmllckRlZmluaXRpb24sXG4gIE1vZGlmaWVySW5zdGFuY2UsXG4gIFZNQXJndW1lbnRzLFxuICBPd25lcixcbiAgQ3VycmllZFR5cGUsXG4gIE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlLFxuICBFbnZpcm9ubWVudCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdDAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBBUFBFTkRfT1BDT0RFUywgVXBkYXRpbmdPcGNvZGUgfSBmcm9tICcuLi8uLi9vcGNvZGVzJztcbmltcG9ydCB7IFVwZGF0aW5nVk0gfSBmcm9tICcuLi8uLi92bSc7XG5pbXBvcnQgeyBBc3NlcnQgfSBmcm9tICcuL3ZtJztcbmltcG9ydCB7IER5bmFtaWNBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi92bS9hdHRyaWJ1dGVzL2R5bmFtaWMnO1xuaW1wb3J0IHsgQ2hlY2tSZWZlcmVuY2UsIENoZWNrQXJndW1lbnRzLCBDaGVja09wZXJhdGlvbnMgfSBmcm9tICcuLy1kZWJ1Zy1zdHJpcCc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgSW50ZXJuYWxWTSB9IGZyb20gJy4uLy4uL3ZtL2FwcGVuZCc7XG5pbXBvcnQgeyBDdXJyaWVkVmFsdWUsIGlzQ3VycmllZFR5cGUsIHJlc29sdmVDdXJyaWVkVmFsdWUgfSBmcm9tICcuLi8uLi9jdXJyaWVkLXZhbHVlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxNb2RpZmllckluc3RhbmNlW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChtb2RpZmllcikgPT4ge1xuICAgICAgdm0uZW52LnNjaGVkdWxlSW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSBtb2RpZmllcjtcbiAgICAgIGxldCBkID0gbWFuYWdlci5nZXREZXN0cm95YWJsZShzdGF0ZSk7XG5cbiAgICAgIGlmIChkKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk1vZGlmaWVyLCAodm0sIHsgb3AxOiBoYW5kbGUgfSkgPT4ge1xuICBpZiAodm0uZW52LmlzSW50ZXJhY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCBkZWZpbml0aW9uID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxNb2RpZmllckRlZmluaXRpb24+KGhhbmRsZSk7XG5cbiAgaW52b2tlTW9kaWZpZXIodm0sIG93bmVyLCBhcmdzLCBkZWZpbml0aW9uKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY01vZGlmaWVyLCAodm0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCB7IHN0YWNrLCBbQ09OU1RBTlRTXTogY29uc3RhbnRzIH0gPSB2bTtcbiAgbGV0IHJlZiA9IGNoZWNrKHN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZik7XG4gIGxldCBvd25lcjogT3duZXI7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyAmJiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgaG9zdERlZmluaXRpb246IEN1cnJpZWRWYWx1ZSB8IE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlO1xuXG4gIGlmIChpc0N1cnJpZWRUeXBlKHZhbHVlLCBDdXJyaWVkVHlwZS5Nb2RpZmllcikpIHtcbiAgICBsZXQgW2N1cnJpZWRWYWx1ZSwgY3VycmllZE93bmVyXSA9IHJlc29sdmVDdXJyaWVkVmFsdWUodmFsdWUsIGFyZ3MpO1xuICAgIGhvc3REZWZpbml0aW9uID0gY3VycmllZFZhbHVlO1xuICAgIG93bmVyID0gY3VycmllZE93bmVyO1xuICB9IGVsc2Uge1xuICAgIGhvc3REZWZpbml0aW9uID0gdmFsdWU7XG4gICAgb3duZXIgPSB2bS5nZXRPd25lcigpO1xuICB9XG5cbiAgbGV0IGhhbmRsZSA9IGNvbnN0YW50cy5tb2RpZmllcihob3N0RGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgaWYgKERFQlVHICYmIGhhbmRsZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFeHBlY3RlZCBhIGR5bmFtaWMgbW9kaWZpZXIgZGVmaW5pdGlvbiwgYnV0IHJlY2VpdmVkIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0aGF0IGRpZCBub3QgaGF2ZSBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZHluYW1pYyBpbnZvY2F0aW9uIHdhcyBcXGB7eyR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9fX1cXGAsIGFuZCB0aGUgaW5jb3JyZWN0IGRlZmluaXRpb24gaXMgdGhlIHZhbHVlIGF0IHRoZSBwYXRoIFxcYCR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9XFxgLCB3aGljaCB3YXM6ICR7ZGVidWdUb1N0cmluZyEoaG9zdERlZmluaXRpb24pfWBcbiAgICApO1xuICB9XG5cbiAgbGV0IGRlZmluaXRpb24gPSBjb25zdGFudHMuZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihcbiAgICBleHBlY3QoaGFuZGxlLCAnQlVHOiBtb2RpZmllciBoYW5kbGUgZXhwZWN0ZWQnKVxuICApO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuZnVuY3Rpb24gaW52b2tlTW9kaWZpZXIoXG4gIHZtOiBJbnRlcm5hbFZNLFxuICBvd25lcjogT3duZXIsXG4gIGFyZ3M6IFZNQXJndW1lbnRzLFxuICBkZWZpbml0aW9uOiBNb2RpZmllckRlZmluaXRpb25cbikge1xuICBsZXQgeyBtYW5hZ2VyIH0gPSBkZWZpbml0aW9uO1xuXG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuXG4gIGxldCBzdGF0ZSA9IG1hbmFnZXIuY3JlYXRlKFxuICAgIG93bmVyLFxuICAgIGV4cGVjdChjb25zdHJ1Y3RpbmcsICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCB0aGUgZWxlbWVudCBpdCBhcHBsaWVzIHRvJyksXG4gICAgZGVmaW5pdGlvbi5zdGF0ZSxcbiAgICBhcmdzLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB1cGRhdGVPcGVyYXRpb25zXG4gICk7XG5cbiAgbGV0IGluc3RhbmNlOiBNb2RpZmllckluc3RhbmNlID0ge1xuICAgIG1hbmFnZXIsXG4gICAgc3RhdGUsXG4gICAgZGVmaW5pdGlvbixcbiAgfTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIoaW5zdGFuY2UpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhzdGF0ZSk7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIGluc3RhbmNlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZU1vZGlmaWVyT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICd1cGRhdGUtbW9kaWZpZXInO1xuICBwcml2YXRlIGxhc3RVcGRhdGVkOiBSZXZpc2lvbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFnOiBUYWcsIHByaXZhdGUgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBtb2RpZmllciwgdGFnLCBsYXN0VXBkYXRlZCB9ID0gdGhpcztcblxuICAgIGNvbnN1bWVUYWcodGFnKTtcblxuICAgIGlmICghdmFsaWRhdGVUYWcodGFnLCBsYXN0VXBkYXRlZCkpIHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZVVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICAgIH1cbiAgfVxufVxuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuU3RhdGljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3ZhbHVlLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB2YWx1ZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfdmFsdWUpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgdm0uZWxlbWVudHMoKS5zZXRTdGF0aWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHRydXN0aW5nID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxib29sZWFuPihfdHJ1c3RpbmcpO1xuICBsZXQgcmVmZXJlbmNlID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgbGV0IGF0dHJpYnV0ZSA9IHZtLmVsZW1lbnRzKCkuc2V0RHluYW1pY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlLCB2bS5lbnYpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwcml2YXRlIHVwZGF0ZVJlZjogUmVmZXJlbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUsIGVudjogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVJlZiA9IGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGluaXRpYWxpemVkID09PSB0cnVlKSB7XG4gICAgICAgIGF0dHJpYnV0ZS51cGRhdGUodmFsdWUsIGVudik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cblxuICBldmFsdWF0ZSgpIHtcbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
import { getPath, setPath } from '@glimmer/global-context';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { isDict } from '@glimmer/util';
import { internalHelper } from './internal-helper';

@@ -88,3 +89,3 @@ /**

if (isObject(source)) {
if (isDict(source)) {
return getPath(source, String(valueForRef(pathRef)));

@@ -95,3 +96,3 @@ }

if (isObject(source)) {
if (isDict(source)) {
return setPath(source, String(valueForRef(pathRef)), value);

@@ -101,6 +102,2 @@ }

});
function isObject(obj) {
return typeof obj === 'function' || typeof obj === 'object' && obj !== null;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsT0FBVCxFQUFrQixPQUFsQixRQUFpQyx5QkFBakM7QUFFQSxTQUFTLGdCQUFULEVBQTJCLFdBQTNCLFFBQThDLG9CQUE5QztBQUNBLFNBQVMsY0FBVCxRQUErQixtQkFBL0I7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkVBLGVBQWUsY0FBYyxDQUFFLElBQUQsSUFBc0I7QUFDbEQsTUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQUwsQ0FBZ0IsRUFBaEIsQ0FBbUIsQ0FBbkIsQ0FBaEI7QUFDQSxNQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBTCxDQUFnQixFQUFoQixDQUFtQixDQUFuQixDQUFkO0FBRUEsU0FBTyxnQkFBZ0IsQ0FDckIsTUFBSztBQUNILFFBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFELENBQXhCOztBQUVBLFFBQUksUUFBUSxDQUFDLE1BQUQsQ0FBWixFQUFzQjtBQUNwQixhQUFPLE9BQU8sQ0FBQyxNQUFELEVBQVMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFELENBQVosQ0FBZixDQUFkO0FBQ0Q7QUFDRixHQVBvQixFQVFwQixLQUFELElBQVU7QUFDUixRQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBRCxDQUF4Qjs7QUFFQSxRQUFJLFFBQVEsQ0FBQyxNQUFELENBQVosRUFBc0I7QUFDcEIsYUFBTyxPQUFPLENBQUMsTUFBRCxFQUFTLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBRCxDQUFaLENBQWYsRUFBdUMsS0FBdkMsQ0FBZDtBQUNEO0FBQ0YsR0Fkb0IsRUFlckIsS0FmcUIsQ0FBdkI7QUFpQkQsQ0FyQjRCLENBQTdCOztBQXVCQSxTQUFTLFFBQVQsQ0FBa0IsR0FBbEIsRUFBOEI7QUFDNUIsU0FBTyxPQUFPLEdBQVAsS0FBZSxVQUFmLElBQThCLE9BQU8sR0FBUCxLQUFlLFFBQWYsSUFBMkIsR0FBRyxLQUFLLElBQXhFO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYXRoLCBzZXRQYXRoIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgVk1Bcmd1bWVudHMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGludGVybmFsSGVscGVyIH0gZnJvbSAnLi9pbnRlcm5hbC1oZWxwZXInO1xuXG4vKipcbiAgRHluYW1pY2FsbHkgbG9vayB1cCBhIHByb3BlcnR5IG9uIGFuIG9iamVjdC4gVGhlIHNlY29uZCBhcmd1bWVudCB0byBge3tnZXR9fWBcbiAgc2hvdWxkIGhhdmUgYSBzdHJpbmcgdmFsdWUsIGFsdGhvdWdoIGl0IGNhbiBiZSBib3VuZC5cblxuICBGb3IgZXhhbXBsZSwgdGhlc2UgdHdvIHVzYWdlcyBhcmUgZXF1aXZhbGVudDpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG4gIH1cbiAgYGBgXG5cbiAgYGBgaGFuZGxlYmFyc1xuICB7e3RoaXMuZGV2ZWxvcGVyLm5hbWV9fVxuICB7e2dldCB0aGlzLmRldmVsb3BlciBcIm5hbWVcIn19XG4gIGBgYFxuXG4gIElmIHRoZXJlIHdlcmUgc2V2ZXJhbCBmYWN0cyBhYm91dCBhIHBlcnNvbiwgdGhlIGB7e2dldH19YCBoZWxwZXIgY2FuIGR5bmFtaWNhbGx5XG4gIHBpY2sgb25lOlxuXG4gIGBgYGFwcC90ZW1wbGF0ZXMvYXBwbGljYXRpb24uaGJzXG4gIDxEZXZlbG9wZXJEZXRhaWwgQGZhY3ROYW1lPVwibGFuZ3VhZ2VcIiAvPlxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIEBmYWN0TmFtZX19XG4gIGBgYFxuXG4gIEZvciBhIG1vcmUgY29tcGxleCBleGFtcGxlLCB0aGlzIHRlbXBsYXRlIHdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3aXRjaFxuICBiZXR3ZWVuIHNob3dpbmcgdGhlIHVzZXIncyBoZWlnaHQgYW5kIHdlaWdodCB3aXRoIGEgY2xpY2s6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICBpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG4gIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5cbiAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIEB0cmFja2VkIGRldmVsb3BlciA9IHtcbiAgICAgIG5hbWU6IFwiU2FuZGkgTWV0elwiLFxuICAgICAgbGFuZ3VhZ2U6IFwiUnVieVwiXG4gICAgfVxuXG4gICAgQHRyYWNrZWQgY3VycmVudEZhY3QgPSAnbmFtZSdcblxuICAgIHNob3dGYWN0ID0gKGZhY3QpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudEZhY3QgPSBmYWN0O1xuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIHRoaXMuY3VycmVudEZhY3R9fVxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBUaGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gYWxzbyByZXNwZWN0IG11dGFibGUgdmFsdWVzIGl0c2VsZi4gRm9yIGV4YW1wbGU6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICA8SW5wdXQgQHZhbHVlPXt7bXV0IChnZXQgdGhpcy5wZXJzb24gdGhpcy5jdXJyZW50RmFjdCl9fSAvPlxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBXb3VsZCBhbGxvdyB0aGUgdXNlciB0byBzd2FwIHdoYXQgZmFjdCBpcyBiZWluZyBkaXNwbGF5ZWQsIGFuZCBhbHNvIGVkaXRcbiAgdGhhdCBmYWN0IHZpYSBhIHR3by13YXkgbXV0YWJsZSBiaW5kaW5nLlxuXG4gIEBwdWJsaWNcbiAgQG1ldGhvZCBnZXRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgaW50ZXJuYWxIZWxwZXIoKGFyZ3M6IFZNQXJndW1lbnRzKSA9PiB7XG4gIGxldCBzb3VyY2VSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMCk7XG4gIGxldCBwYXRoUmVmID0gYXJncy5wb3NpdGlvbmFsLmF0KDEpO1xuXG4gIHJldHVybiBjcmVhdGVDb21wdXRlUmVmKFxuICAgICgpID0+IHtcbiAgICAgIGxldCBzb3VyY2UgPSB2YWx1ZUZvclJlZihzb3VyY2VSZWYpO1xuXG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gZ2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgKHZhbHVlKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNldFBhdGgoc291cmNlLCBTdHJpbmcodmFsdWVGb3JSZWYocGF0aFJlZikpLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAnZ2V0J1xuICApO1xufSk7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KG9iajogdW5rbm93bik6IG9iaiBpcyBvYmplY3Qge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsT0FBVCxFQUFrQixPQUFsQixRQUFpQyx5QkFBakM7QUFFQSxTQUFTLGdCQUFULEVBQTJCLFdBQTNCLFFBQThDLG9CQUE5QztBQUNBLFNBQVMsTUFBVCxRQUF1QixlQUF2QjtBQUNBLFNBQVMsY0FBVCxRQUErQixtQkFBL0I7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkVBLGVBQWUsY0FBYyxDQUFFLElBQUQsSUFBc0I7QUFDbEQsTUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQUwsQ0FBZ0IsRUFBaEIsQ0FBbUIsQ0FBbkIsQ0FBaEI7QUFDQSxNQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBTCxDQUFnQixFQUFoQixDQUFtQixDQUFuQixDQUFkO0FBRUEsU0FBTyxnQkFBZ0IsQ0FDckIsTUFBSztBQUNILFFBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFELENBQXhCOztBQUVBLFFBQUksTUFBTSxDQUFDLE1BQUQsQ0FBVixFQUFvQjtBQUNsQixhQUFPLE9BQU8sQ0FBQyxNQUFELEVBQVMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFELENBQVosQ0FBZixDQUFkO0FBQ0Q7QUFDRixHQVBvQixFQVFwQixLQUFELElBQVU7QUFDUixRQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBRCxDQUF4Qjs7QUFFQSxRQUFJLE1BQU0sQ0FBQyxNQUFELENBQVYsRUFBb0I7QUFDbEIsYUFBTyxPQUFPLENBQUMsTUFBRCxFQUFTLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBRCxDQUFaLENBQWYsRUFBdUMsS0FBdkMsQ0FBZDtBQUNEO0FBQ0YsR0Fkb0IsRUFlckIsS0FmcUIsQ0FBdkI7QUFpQkQsQ0FyQjRCLENBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UGF0aCwgc2V0UGF0aCB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7IFZNQXJndW1lbnRzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb21wdXRlUmVmLCB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBpc0RpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IGludGVybmFsSGVscGVyIH0gZnJvbSAnLi9pbnRlcm5hbC1oZWxwZXInO1xuXG4vKipcbiAgRHluYW1pY2FsbHkgbG9vayB1cCBhIHByb3BlcnR5IG9uIGFuIG9iamVjdC4gVGhlIHNlY29uZCBhcmd1bWVudCB0byBge3tnZXR9fWBcbiAgc2hvdWxkIGhhdmUgYSBzdHJpbmcgdmFsdWUsIGFsdGhvdWdoIGl0IGNhbiBiZSBib3VuZC5cblxuICBGb3IgZXhhbXBsZSwgdGhlc2UgdHdvIHVzYWdlcyBhcmUgZXF1aXZhbGVudDpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG4gIH1cbiAgYGBgXG5cbiAgYGBgaGFuZGxlYmFyc1xuICB7e3RoaXMuZGV2ZWxvcGVyLm5hbWV9fVxuICB7e2dldCB0aGlzLmRldmVsb3BlciBcIm5hbWVcIn19XG4gIGBgYFxuXG4gIElmIHRoZXJlIHdlcmUgc2V2ZXJhbCBmYWN0cyBhYm91dCBhIHBlcnNvbiwgdGhlIGB7e2dldH19YCBoZWxwZXIgY2FuIGR5bmFtaWNhbGx5XG4gIHBpY2sgb25lOlxuXG4gIGBgYGFwcC90ZW1wbGF0ZXMvYXBwbGljYXRpb24uaGJzXG4gIDxEZXZlbG9wZXJEZXRhaWwgQGZhY3ROYW1lPVwibGFuZ3VhZ2VcIiAvPlxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIEBmYWN0TmFtZX19XG4gIGBgYFxuXG4gIEZvciBhIG1vcmUgY29tcGxleCBleGFtcGxlLCB0aGlzIHRlbXBsYXRlIHdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3aXRjaFxuICBiZXR3ZWVuIHNob3dpbmcgdGhlIHVzZXIncyBoZWlnaHQgYW5kIHdlaWdodCB3aXRoIGEgY2xpY2s6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICBpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG4gIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5cbiAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIEB0cmFja2VkIGRldmVsb3BlciA9IHtcbiAgICAgIG5hbWU6IFwiU2FuZGkgTWV0elwiLFxuICAgICAgbGFuZ3VhZ2U6IFwiUnVieVwiXG4gICAgfVxuXG4gICAgQHRyYWNrZWQgY3VycmVudEZhY3QgPSAnbmFtZSdcblxuICAgIHNob3dGYWN0ID0gKGZhY3QpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudEZhY3QgPSBmYWN0O1xuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIHRoaXMuY3VycmVudEZhY3R9fVxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBUaGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gYWxzbyByZXNwZWN0IG11dGFibGUgdmFsdWVzIGl0c2VsZi4gRm9yIGV4YW1wbGU6XG5cbiAgYGBgYXBwL2NvbXBvbmVudHMvZGV2ZWxvcGVyLWRldGFpbC5qc1xuICA8SW5wdXQgQHZhbHVlPXt7bXV0IChnZXQgdGhpcy5wZXJzb24gdGhpcy5jdXJyZW50RmFjdCl9fSAvPlxuXG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibmFtZVwiKX19PlNob3cgbmFtZTwvYnV0dG9uPlxuICA8YnV0dG9uIHt7b24gJ2NsaWNrJyAoZm4gdGhpcy5zaG93RmFjdCBcImxhbmd1YWdlXCIpfX0+U2hvdyBsYW5ndWFnZTwvYnV0dG9uPlxuICBgYGBcblxuICBXb3VsZCBhbGxvdyB0aGUgdXNlciB0byBzd2FwIHdoYXQgZmFjdCBpcyBiZWluZyBkaXNwbGF5ZWQsIGFuZCBhbHNvIGVkaXRcbiAgdGhhdCBmYWN0IHZpYSBhIHR3by13YXkgbXV0YWJsZSBiaW5kaW5nLlxuXG4gIEBwdWJsaWNcbiAgQG1ldGhvZCBnZXRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgaW50ZXJuYWxIZWxwZXIoKGFyZ3M6IFZNQXJndW1lbnRzKSA9PiB7XG4gIGxldCBzb3VyY2VSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMCk7XG4gIGxldCBwYXRoUmVmID0gYXJncy5wb3NpdGlvbmFsLmF0KDEpO1xuXG4gIHJldHVybiBjcmVhdGVDb21wdXRlUmVmKFxuICAgICgpID0+IHtcbiAgICAgIGxldCBzb3VyY2UgPSB2YWx1ZUZvclJlZihzb3VyY2VSZWYpO1xuXG4gICAgICBpZiAoaXNEaWN0KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhdGgoc291cmNlLCBTdHJpbmcodmFsdWVGb3JSZWYocGF0aFJlZikpKTtcbiAgICAgIH1cbiAgICB9LFxuICAgICh2YWx1ZSkgPT4ge1xuICAgICAgbGV0IHNvdXJjZSA9IHZhbHVlRm9yUmVmKHNvdXJjZVJlZik7XG5cbiAgICAgIGlmIChpc0RpY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gc2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgICdnZXQnXG4gICk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -55,3 +55,3 @@ import { childRefFor, createConstRef } from '@glimmer/reference';

const argNames = argList.map(([name]) => `@${name}`);
let reified = vm[CONSTANTS].component(definition, false, owner);
let reified = vm[CONSTANTS].component(definition, owner);
vm.pushFrame(); // Push blocks on to the stack, three stack values per block

@@ -101,2 +101,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxTQUFTLFdBQVQsRUFBc0IsY0FBdEIsUUFBdUQsb0JBQXZEO0FBQ0EsU0FBaUIsWUFBakIsUUFBcUMsZUFBckM7QUFDQSxTQUFTLElBQVQsRUFBZSxTQUFmLFFBQWdDLFdBQWhDO0FBQ0EsT0FBTyxFQUFQLE1BQStCLGFBQS9CO0FBQ0EsU0FBUyxnQkFBVCxRQUFpQyxTQUFqQztBQUNBLFNBQVMsYUFBVCxRQUE4QixlQUE5QjtBQUNBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsd0JBQVQsUUFBeUMsb0JBQXpDOztBQUVBLE1BQU0sb0JBQU4sQ0FBMEI7QUFDeEIsRUFBQSxXQUFBLENBQW9CLEVBQXBCLEVBQWtDO0FBQWQsU0FBQSxFQUFBLEdBQUEsRUFBQTtBQUFrQjs7QUFDdEMsRUFBQSxJQUFJLEdBQUE7QUFDRixXQUFPLEtBQUssRUFBTCxDQUFRLElBQVIsRUFBUDtBQUNEOztBQUVELEVBQUEsSUFBSSxHQUFBO0FBQ0YsUUFBSSxLQUFKLEVBQVc7QUFDVCxhQUFPLHdCQUF5QixDQUFDLE1BQU0sS0FBSyxFQUFMLENBQVEsT0FBUixFQUFQLEVBQTBCLG9CQUExQixDQUFoQztBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sS0FBSyxFQUFMLENBQVEsT0FBUixFQUFQO0FBQ0Q7QUFDRjs7QUFadUI7O0FBZTFCLE9BQU0sU0FBVSxVQUFWLENBQXFCLEdBQXJCLEVBQXVDLFFBQXZDLEVBQWlFO0FBQ3JFLE1BQUksTUFBSjtBQUVBLEVBQUEsYUFBYSxDQUFDLEdBQUQsRUFBTSxNQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBVCxFQUF0QixDQUFiO0FBRUEsU0FBTyxNQUFQO0FBQ0Q7QUFFRCxPQUFNLFNBQVUsVUFBVixDQUNKLE9BREksRUFFSixPQUZJLEVBR0osS0FISSxFQUlKLElBSkksRUFLSixX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LEdBQWdDLEVBTjVCLEVBT0osWUFBQSxHQUE2QixJQUFJLGdCQUFKLEVBUHpCLEVBTytDO0FBRW5ELE1BQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFILENBQ1AsT0FETyxFQUVQO0FBQUUsSUFBQSxXQUFGO0FBQWUsSUFBQSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQVIsQ0FBZSxJQUF0QztBQUE0QyxJQUFBLFlBQTVDO0FBQTBELElBQUE7QUFBMUQsR0FGTyxFQUdQLE9BSE8sQ0FBVDtBQUtBLFNBQU8sZ0JBQWdCLENBQUMsRUFBRCxFQUFLLE9BQUwsRUFBYyxLQUFkLEVBQXFCLFVBQXJCLEVBQWlDLGlCQUFpQixDQUFDLElBQUQsQ0FBbEQsQ0FBdkI7QUFDRDs7QUFFRCxTQUFTLGlCQUFULENBQTJCLE1BQTNCLEVBQTBEO0FBQ3hELFFBQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUEzQjtBQUVBLFNBQU8sTUFBTSxDQUFDLElBQVAsQ0FBWSxNQUFaLEVBQW9CLE1BQXBCLENBQTJCLENBQUMsR0FBRCxFQUFNLEdBQU4sS0FBYTtBQUM3QyxJQUFBLEdBQUcsQ0FBQyxHQUFELENBQUgsR0FBVyxXQUFXLENBQUMsSUFBRCxFQUFPLEdBQVAsQ0FBdEI7QUFDQSxXQUFPLEdBQVA7QUFDRCxHQUhNLEVBR0osRUFISSxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEeW5hbWljU2NvcGUsXG4gIEVudmlyb25tZW50LFxuICBSZW5kZXJSZXN1bHQsXG4gIFJpY2hJdGVyYXRvclJlc3VsdCxcbiAgVGVtcGxhdGVJdGVyYXRvcixcbiAgUnVudGltZUNvbnRleHQsXG4gIEVsZW1lbnRCdWlsZGVyLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2hpbGRSZWZGb3IsIGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZXhwZWN0LCB1bndyYXBIYW5kbGUgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEFSR1MsIENPTlNUQU5UUyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgVk0sIHsgSW50ZXJuYWxWTSB9IGZyb20gJy4vdm0vYXBwZW5kJztcbmltcG9ydCB7IER5bmFtaWNTY29wZUltcGwgfSBmcm9tICcuL3Njb3BlJztcbmltcG9ydCB7IGluVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5cbmNsYXNzIFRlbXBsYXRlSXRlcmF0b3JJbXBsIGltcGxlbWVudHMgVGVtcGxhdGVJdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdm06IEludGVybmFsVk0pIHt9XG4gIG5leHQoKTogUmljaEl0ZXJhdG9yUmVzdWx0PG51bGwsIFJlbmRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnZtLm5leHQoKTtcbiAgfVxuXG4gIHN5bmMoKTogUmVuZGVyUmVzdWx0IHtcbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIHJldHVybiBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24hKCgpID0+IHRoaXMudm0uZXhlY3V0ZSgpLCAnLSBXaGlsZSByZW5kZXJpbmc6Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclN5bmMoZW52OiBFbnZpcm9ubWVudCwgaXRlcmF0b3I6IFRlbXBsYXRlSXRlcmF0b3IpOiBSZW5kZXJSZXN1bHQge1xuICBsZXQgcmVzdWx0OiBSZW5kZXJSZXN1bHQ7XG5cbiAgaW5UcmFuc2FjdGlvbihlbnYsICgpID0+IChyZXN1bHQgPSBpdGVyYXRvci5zeW5jKCkpKTtcblxuICByZXR1cm4gcmVzdWx0ITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck1haW4oXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBzZWxmOiBSZWZlcmVuY2UsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgbGF5b3V0OiBDb21waWxhYmxlUHJvZ3JhbSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IGhhbmRsZSA9IHVud3JhcEhhbmRsZShsYXlvdXQuY29tcGlsZShjb250ZXh0KSk7XG4gIGxldCBudW1TeW1ib2xzID0gbGF5b3V0LnN5bWJvbFRhYmxlLnN5bWJvbHMubGVuZ3RoO1xuICBsZXQgdm0gPSBWTS5pbml0aWFsKHJ1bnRpbWUsIGNvbnRleHQsIHtcbiAgICBzZWxmLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB0cmVlQnVpbGRlcixcbiAgICBoYW5kbGUsXG4gICAgbnVtU3ltYm9scyxcbiAgICBvd25lcixcbiAgfSk7XG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5mdW5jdGlvbiByZW5kZXJJbnZvY2F0aW9uKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+XG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgLy8gR2V0IGEgbGlzdCBvZiB0dXBsZXMgb2YgYXJndW1lbnQgbmFtZXMgYW5kIHJlZmVyZW5jZXMsIGxpa2VcbiAgLy8gW1sndGl0bGUnLCByZWZlcmVuY2VdLCBbJ25hbWUnLCByZWZlcmVuY2VdXVxuICBjb25zdCBhcmdMaXN0ID0gT2JqZWN0LmtleXMoYXJncykubWFwKChrZXkpID0+IFtrZXksIGFyZ3Nba2V5XV0pO1xuXG4gIGNvbnN0IGJsb2NrTmFtZXMgPSBbJ21haW4nLCAnZWxzZScsICdhdHRycyddO1xuICAvLyBQcmVmaXggYXJndW1lbnQgbmFtZXMgd2l0aCBgQGAgc3ltYm9sXG4gIGNvbnN0IGFyZ05hbWVzID0gYXJnTGlzdC5tYXAoKFtuYW1lXSkgPT4gYEAke25hbWV9YCk7XG5cbiAgbGV0IHJlaWZpZWQgPSB2bVtDT05TVEFOVFNdLmNvbXBvbmVudChkZWZpbml0aW9uLCBmYWxzZSwgb3duZXIpO1xuXG4gIHZtLnB1c2hGcmFtZSgpO1xuXG4gIC8vIFB1c2ggYmxvY2tzIG9uIHRvIHRoZSBzdGFjaywgdGhyZWUgc3RhY2sgdmFsdWVzIHBlciBibG9ja1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDMgKiBibG9ja05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdm0uc3RhY2sucHVzaE51bGwoKTtcbiAgfVxuXG4gIHZtLnN0YWNrLnB1c2hOdWxsKCk7XG5cbiAgLy8gRm9yIGVhY2ggYXJndW1lbnQsIHB1c2ggaXRzIGJhY2tpbmcgcmVmZXJlbmNlIG9uIHRvIHRoZSBzdGFja1xuICBhcmdMaXN0LmZvckVhY2goKFssIHJlZmVyZW5jZV0pID0+IHtcbiAgICB2bS5zdGFjay5wdXNoSnMocmVmZXJlbmNlKTtcbiAgfSk7XG5cbiAgLy8gQ29uZmlndXJlIFZNIGJhc2VkIG9uIGJsb2NrcyBhbmQgYXJncyBqdXN0IHB1c2hlZCBvbiB0byB0aGUgc3RhY2suXG4gIHZtW0FSR1NdLnNldHVwKHZtLnN0YWNrLCBhcmdOYW1lcywgYmxvY2tOYW1lcywgMCwgdHJ1ZSk7XG5cbiAgY29uc3QgY29tcGlsYWJsZSA9IGV4cGVjdChcbiAgICByZWlmaWVkLmNvbXBpbGFibGUsXG4gICAgJ0JVRzogRXhwZWN0ZWQgdGhlIHJvb3QgY29tcG9uZW50IHJlbmRlcmVkIHdpdGggcmVuZGVyQ29tcG9uZW50IHRvIGhhdmUgYW4gYXNzb2NpYXRlZCB0ZW1wbGF0ZSwgc2V0IHdpdGggc2V0Q29tcG9uZW50VGVtcGxhdGUnXG4gICk7XG4gIGNvbnN0IGxheW91dEhhbmRsZSA9IHVud3JhcEhhbmRsZShjb21waWxhYmxlLmNvbXBpbGUoY29udGV4dCkpO1xuICBjb25zdCBpbnZvY2F0aW9uID0geyBoYW5kbGU6IGxheW91dEhhbmRsZSwgc3ltYm9sVGFibGU6IGNvbXBpbGFibGUuc3ltYm9sVGFibGUgfTtcblxuICAvLyBOZWVkZWQgZm9yIHRoZSBPcC5NYWluIG9wY29kZTogYXJndW1lbnRzLCBjb21wb25lbnQgaW52b2NhdGlvbiBvYmplY3QsIGFuZFxuICAvLyBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgdm0uc3RhY2sucHVzaEpzKHZtW0FSR1NdKTtcbiAgdm0uc3RhY2sucHVzaEpzKGludm9jYXRpb24pO1xuICB2bS5zdGFjay5wdXNoSnMocmVpZmllZCk7XG5cbiAgcmV0dXJuIG5ldyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCh2bSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb21wb25lbnQoXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICB0cmVlQnVpbGRlcjogRWxlbWVudEJ1aWxkZXIsXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IHZtID0gVk0uZW1wdHkoXG4gICAgcnVudGltZSxcbiAgICB7IHRyZWVCdWlsZGVyLCBoYW5kbGU6IGNvbnRleHQuc3RkbGliLm1haW4sIGR5bmFtaWNTY29wZSwgb3duZXIgfSxcbiAgICBjb250ZXh0XG4gICk7XG4gIHJldHVybiByZW5kZXJJbnZvY2F0aW9uKHZtLCBjb250ZXh0LCBvd25lciwgZGVmaW5pdGlvbiwgcmVjb3JkVG9SZWZlcmVuY2UoYXJncykpO1xufVxuXG5mdW5jdGlvbiByZWNvcmRUb1JlZmVyZW5jZShyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPiB7XG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVDb25zdFJlZihyZWNvcmQsICdhcmdzJyk7XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHJlY29yZCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGFjY1trZXldID0gY2hpbGRSZWZGb3Iocm9vdCwga2V5KTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+KTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxTQUFTLFdBQVQsRUFBc0IsY0FBdEIsUUFBdUQsb0JBQXZEO0FBQ0EsU0FBaUIsWUFBakIsUUFBcUMsZUFBckM7QUFDQSxTQUFTLElBQVQsRUFBZSxTQUFmLFFBQWdDLFdBQWhDO0FBQ0EsT0FBTyxFQUFQLE1BQStCLGFBQS9CO0FBQ0EsU0FBUyxnQkFBVCxRQUFpQyxTQUFqQztBQUNBLFNBQVMsYUFBVCxRQUE4QixlQUE5QjtBQUNBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsd0JBQVQsUUFBeUMsb0JBQXpDOztBQUVBLE1BQU0sb0JBQU4sQ0FBMEI7QUFDeEIsRUFBQSxXQUFBLENBQW9CLEVBQXBCLEVBQWtDO0FBQWQsU0FBQSxFQUFBLEdBQUEsRUFBQTtBQUFrQjs7QUFDdEMsRUFBQSxJQUFJLEdBQUE7QUFDRixXQUFPLEtBQUssRUFBTCxDQUFRLElBQVIsRUFBUDtBQUNEOztBQUVELEVBQUEsSUFBSSxHQUFBO0FBQ0YsUUFBSSxLQUFKLEVBQVc7QUFDVCxhQUFPLHdCQUF5QixDQUFDLE1BQU0sS0FBSyxFQUFMLENBQVEsT0FBUixFQUFQLEVBQTBCLG9CQUExQixDQUFoQztBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8sS0FBSyxFQUFMLENBQVEsT0FBUixFQUFQO0FBQ0Q7QUFDRjs7QUFadUI7O0FBZTFCLE9BQU0sU0FBVSxVQUFWLENBQXFCLEdBQXJCLEVBQXVDLFFBQXZDLEVBQWlFO0FBQ3JFLE1BQUksTUFBSjtBQUVBLEVBQUEsYUFBYSxDQUFDLEdBQUQsRUFBTSxNQUFPLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBVCxFQUF0QixDQUFiO0FBRUEsU0FBTyxNQUFQO0FBQ0Q7QUFFRCxPQUFNLFNBQVUsVUFBVixDQUNKLE9BREksRUFFSixPQUZJLEVBR0osS0FISSxFQUlKLElBSkksRUFLSixX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LEVBT0osWUFBQSxHQUE2QixJQUFJLGdCQUFKLEVBUHpCLEVBTytDO0FBRW5ELE1BQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFILENBQ1AsT0FETyxFQUVQO0FBQUUsSUFBQSxXQUFGO0FBQWUsSUFBQSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQVIsQ0FBZSxJQUF0QztBQUE0QyxJQUFBLFlBQTVDO0FBQTBELElBQUE7QUFBMUQsR0FGTyxFQUdQLE9BSE8sQ0FBVDtBQUtBLFNBQU8sZ0JBQWdCLENBQUMsRUFBRCxFQUFLLE9BQUwsRUFBYyxLQUFkLEVBQXFCLFVBQXJCLEVBQWlDLGlCQUFpQixDQUFDLElBQUQsQ0FBbEQsQ0FBdkI7QUFDRDs7QUFFRCxTQUFTLGlCQUFULENBQTJCLE1BQTNCLEVBQTBEO0FBQ3hELFFBQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUEzQjtBQUVBLFNBQU8sTUFBTSxDQUFDLElBQVAsQ0FBWSxNQUFaLEVBQW9CLE1BQXBCLENBQTJCLENBQUMsR0FBRCxFQUFNLEdBQU4sS0FBYTtBQUM3QyxJQUFBLEdBQUcsQ0FBQyxHQUFELENBQUgsR0FBVyxXQUFXLENBQUMsSUFBRCxFQUFPLEdBQVAsQ0FBdEI7QUFDQSxXQUFPLEdBQVA7QUFDRCxHQUhNLEVBR0osRUFISSxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEeW5hbWljU2NvcGUsXG4gIEVudmlyb25tZW50LFxuICBSZW5kZXJSZXN1bHQsXG4gIFJpY2hJdGVyYXRvclJlc3VsdCxcbiAgVGVtcGxhdGVJdGVyYXRvcixcbiAgUnVudGltZUNvbnRleHQsXG4gIEVsZW1lbnRCdWlsZGVyLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2hpbGRSZWZGb3IsIGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZXhwZWN0LCB1bndyYXBIYW5kbGUgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEFSR1MsIENPTlNUQU5UUyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgVk0sIHsgSW50ZXJuYWxWTSB9IGZyb20gJy4vdm0vYXBwZW5kJztcbmltcG9ydCB7IER5bmFtaWNTY29wZUltcGwgfSBmcm9tICcuL3Njb3BlJztcbmltcG9ydCB7IGluVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5cbmNsYXNzIFRlbXBsYXRlSXRlcmF0b3JJbXBsIGltcGxlbWVudHMgVGVtcGxhdGVJdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdm06IEludGVybmFsVk0pIHt9XG4gIG5leHQoKTogUmljaEl0ZXJhdG9yUmVzdWx0PG51bGwsIFJlbmRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnZtLm5leHQoKTtcbiAgfVxuXG4gIHN5bmMoKTogUmVuZGVyUmVzdWx0IHtcbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIHJldHVybiBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24hKCgpID0+IHRoaXMudm0uZXhlY3V0ZSgpLCAnLSBXaGlsZSByZW5kZXJpbmc6Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclN5bmMoZW52OiBFbnZpcm9ubWVudCwgaXRlcmF0b3I6IFRlbXBsYXRlSXRlcmF0b3IpOiBSZW5kZXJSZXN1bHQge1xuICBsZXQgcmVzdWx0OiBSZW5kZXJSZXN1bHQ7XG5cbiAgaW5UcmFuc2FjdGlvbihlbnYsICgpID0+IChyZXN1bHQgPSBpdGVyYXRvci5zeW5jKCkpKTtcblxuICByZXR1cm4gcmVzdWx0ITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck1haW4oXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBzZWxmOiBSZWZlcmVuY2UsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgbGF5b3V0OiBDb21waWxhYmxlUHJvZ3JhbSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IGhhbmRsZSA9IHVud3JhcEhhbmRsZShsYXlvdXQuY29tcGlsZShjb250ZXh0KSk7XG4gIGxldCBudW1TeW1ib2xzID0gbGF5b3V0LnN5bWJvbFRhYmxlLnN5bWJvbHMubGVuZ3RoO1xuICBsZXQgdm0gPSBWTS5pbml0aWFsKHJ1bnRpbWUsIGNvbnRleHQsIHtcbiAgICBzZWxmLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB0cmVlQnVpbGRlcixcbiAgICBoYW5kbGUsXG4gICAgbnVtU3ltYm9scyxcbiAgICBvd25lcixcbiAgfSk7XG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5mdW5jdGlvbiByZW5kZXJJbnZvY2F0aW9uKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+XG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgLy8gR2V0IGEgbGlzdCBvZiB0dXBsZXMgb2YgYXJndW1lbnQgbmFtZXMgYW5kIHJlZmVyZW5jZXMsIGxpa2VcbiAgLy8gW1sndGl0bGUnLCByZWZlcmVuY2VdLCBbJ25hbWUnLCByZWZlcmVuY2VdXVxuICBjb25zdCBhcmdMaXN0ID0gT2JqZWN0LmtleXMoYXJncykubWFwKChrZXkpID0+IFtrZXksIGFyZ3Nba2V5XV0pO1xuXG4gIGNvbnN0IGJsb2NrTmFtZXMgPSBbJ21haW4nLCAnZWxzZScsICdhdHRycyddO1xuICAvLyBQcmVmaXggYXJndW1lbnQgbmFtZXMgd2l0aCBgQGAgc3ltYm9sXG4gIGNvbnN0IGFyZ05hbWVzID0gYXJnTGlzdC5tYXAoKFtuYW1lXSkgPT4gYEAke25hbWV9YCk7XG5cbiAgbGV0IHJlaWZpZWQgPSB2bVtDT05TVEFOVFNdLmNvbXBvbmVudChkZWZpbml0aW9uLCBvd25lcik7XG5cbiAgdm0ucHVzaEZyYW1lKCk7XG5cbiAgLy8gUHVzaCBibG9ja3Mgb24gdG8gdGhlIHN0YWNrLCB0aHJlZSBzdGFjayB2YWx1ZXMgcGVyIGJsb2NrXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgMyAqIGJsb2NrTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2bS5zdGFjay5wdXNoTnVsbCgpO1xuICB9XG5cbiAgdm0uc3RhY2sucHVzaE51bGwoKTtcblxuICAvLyBGb3IgZWFjaCBhcmd1bWVudCwgcHVzaCBpdHMgYmFja2luZyByZWZlcmVuY2Ugb24gdG8gdGhlIHN0YWNrXG4gIGFyZ0xpc3QuZm9yRWFjaCgoWywgcmVmZXJlbmNlXSkgPT4ge1xuICAgIHZtLnN0YWNrLnB1c2hKcyhyZWZlcmVuY2UpO1xuICB9KTtcblxuICAvLyBDb25maWd1cmUgVk0gYmFzZWQgb24gYmxvY2tzIGFuZCBhcmdzIGp1c3QgcHVzaGVkIG9uIHRvIHRoZSBzdGFjay5cbiAgdm1bQVJHU10uc2V0dXAodm0uc3RhY2ssIGFyZ05hbWVzLCBibG9ja05hbWVzLCAwLCB0cnVlKTtcblxuICBjb25zdCBjb21waWxhYmxlID0gZXhwZWN0KFxuICAgIHJlaWZpZWQuY29tcGlsYWJsZSxcbiAgICAnQlVHOiBFeHBlY3RlZCB0aGUgcm9vdCBjb21wb25lbnQgcmVuZGVyZWQgd2l0aCByZW5kZXJDb21wb25lbnQgdG8gaGF2ZSBhbiBhc3NvY2lhdGVkIHRlbXBsYXRlLCBzZXQgd2l0aCBzZXRDb21wb25lbnRUZW1wbGF0ZSdcbiAgKTtcbiAgY29uc3QgbGF5b3V0SGFuZGxlID0gdW53cmFwSGFuZGxlKGNvbXBpbGFibGUuY29tcGlsZShjb250ZXh0KSk7XG4gIGNvbnN0IGludm9jYXRpb24gPSB7IGhhbmRsZTogbGF5b3V0SGFuZGxlLCBzeW1ib2xUYWJsZTogY29tcGlsYWJsZS5zeW1ib2xUYWJsZSB9O1xuXG4gIC8vIE5lZWRlZCBmb3IgdGhlIE9wLk1haW4gb3Bjb2RlOiBhcmd1bWVudHMsIGNvbXBvbmVudCBpbnZvY2F0aW9uIG9iamVjdCwgYW5kXG4gIC8vIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICB2bS5zdGFjay5wdXNoSnModm1bQVJHU10pO1xuICB2bS5zdGFjay5wdXNoSnMoaW52b2NhdGlvbik7XG4gIHZtLnN0YWNrLnB1c2hKcyhyZWlmaWVkKTtcblxuICByZXR1cm4gbmV3IFRlbXBsYXRlSXRlcmF0b3JJbXBsKHZtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChcbiAgcnVudGltZTogUnVudGltZUNvbnRleHQsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBkeW5hbWljU2NvcGU6IER5bmFtaWNTY29wZSA9IG5ldyBEeW5hbWljU2NvcGVJbXBsKClcbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICBsZXQgdm0gPSBWTS5lbXB0eShcbiAgICBydW50aW1lLFxuICAgIHsgdHJlZUJ1aWxkZXIsIGhhbmRsZTogY29udGV4dC5zdGRsaWIubWFpbiwgZHluYW1pY1Njb3BlLCBvd25lciB9LFxuICAgIGNvbnRleHRcbiAgKTtcbiAgcmV0dXJuIHJlbmRlckludm9jYXRpb24odm0sIGNvbnRleHQsIG93bmVyLCBkZWZpbml0aW9uLCByZWNvcmRUb1JlZmVyZW5jZShhcmdzKSk7XG59XG5cbmZ1bmN0aW9uIHJlY29yZFRvUmVmZXJlbmNlKHJlY29yZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+IHtcbiAgY29uc3Qgcm9vdCA9IGNyZWF0ZUNvbnN0UmVmKHJlY29yZCwgJ2FyZ3MnKTtcblxuICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgYWNjW2tleV0gPSBjaGlsZFJlZkZvcihyb290LCBrZXkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT4pO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
import { valueForRef, isConstRef } from '@glimmer/reference';
import { valueForRef, isConstRef, createComputeRef } from '@glimmer/reference';
import { valueForTag, validateTag, consumeTag } from '@glimmer/validator';

@@ -230,3 +230,3 @@ import { $t0 } from '@glimmer/vm';

if (!isConstRef(reference)) {
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute));
vm.updateWith(new UpdateDynamicAttributeOpcode(reference, attribute, vm.env));
}

@@ -237,10 +237,18 @@ });

function UpdateDynamicAttributeOpcode(reference, attribute) {
function UpdateDynamicAttributeOpcode(reference, attribute, env) {
var _this2;
_this2 = _UpdatingOpcode2.call(this) || this;
_this2.reference = reference;
_this2.attribute = attribute;
_this2.type = 'patch-element';
_this2.lastValue = valueForRef(reference);
var initialized = false;
_this2.updateRef = createComputeRef(function () {
var value = valueForRef(reference);
if (initialized === true) {
attribute.update(value, env);
} else {
initialized = true;
}
});
valueForRef(_this2.updateRef);
return _this2;

@@ -251,12 +259,4 @@ }

_proto2.evaluate = function evaluate(vm) {
var attribute = this.attribute,
reference = this.reference,
lastValue = this.lastValue;
var currentValue = valueForRef(reference);
if (currentValue !== lastValue) {
attribute.update(currentValue, vm.env);
this.lastValue = currentValue;
}
_proto2.evaluate = function evaluate() {
valueForRef(this.updateRef);
};

@@ -266,2 +266,2 @@

}(UpdatingOpcode);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBQSxXQUFBLEVBQUEsVUFBQSxRQUFBLG9CQUFBO0FBQ0EsU0FBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLFVBQUEsUUFBQSxvQkFBQTtBQW1CQSxTQUFBLEdBQUEsUUFBQSxhQUFBO0FBQ0EsU0FBQSxjQUFBLEVBQUEsY0FBQSxRQUFBLGVBQUE7QUFFQSxTQUFBLE1BQUEsUUFBQSxNQUFBO0FBR0EsU0FBQSxTQUFBLFFBQUEsZUFBQTtBQUNBLFNBQUEsYUFBQSxRQUFBLGVBQUE7QUFFQSxTQUFBLGFBQUEsRUFBQSxtQkFBQSxRQUFBLHFCQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUVBLGNBQWMsQ0FBZCxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBNEIsVUFBQSxFQUFBLFFBQXNCO0FBQUEsTUFBVixJQUFVLFFBQWYsR0FBZTtBQUNoRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsVUFBQSxDQUF5QixFQUFFLENBQUYsU0FBRSxDQUFGLENBQUEsUUFBQSxDQUF6QixJQUF5QixDQUF6QjtBQURGLENBQUE7QUFJQSxjQUFjLENBQWQsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQStCLFVBQUEsRUFBQSxTQUFzQjtBQUFBLE1BQVYsSUFBVSxTQUFmLEdBQWU7QUFDbkQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGFBQUEsQ0FBNEIsRUFBRSxDQUFGLFNBQUUsQ0FBRixDQUFBLFFBQUEsQ0FBNUIsSUFBNEIsQ0FBNUI7QUFERixDQUFBO0FBSUEsY0FBYyxDQUFkLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUFtQyxVQUFBLEVBQUEsU0FBcUI7QUFBQSxNQUFULEdBQVMsU0FBZCxHQUFjO0FBQ3RELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxXQUFBLENBQTBCLEVB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IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGlzQ29uc3RSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQge1xuICBPcCxcbiAgT3B0aW9uLFxuICBNb2RpZmllckRlZmluaXRpb24sXG4gIE1vZGlmaWVySW5zdGFuY2UsXG4gIFZNQXJndW1lbnRzLFxuICBPd25lcixcbiAgQ3VycmllZFR5cGUsXG4gIE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR0MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IHsgVXBkYXRpbmdWTSB9IGZyb20gJy4uLy4uL3ZtJztcbmltcG9ydCB7IEFzc2VydCB9IGZyb20gJy4vdm0nO1xuaW1wb3J0IHsgRHluYW1pY0F0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3ZtL2F0dHJpYnV0ZXMvZHluYW1pYyc7XG5pbXBvcnQgeyBDaGVja1JlZmVyZW5jZSwgQ2hlY2tBcmd1bWVudHMsIENoZWNrT3BlcmF0aW9ucyB9IGZyb20gJy4vLWRlYnVnLXN0cmlwJztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBJbnRlcm5hbFZNIH0gZnJvbSAnLi4vLi4vdm0vYXBwZW5kJztcbmltcG9ydCB7IEN1cnJpZWRWYWx1ZSwgaXNDdXJyaWVkVHlwZSwgcmVzb2x2ZUN1cnJpZWRWYWx1ZSB9IGZyb20gJy4uLy4uL2N1cnJpZWQtdmFsdWUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuVGV4dCwgKHZtLCB7IG9wMTogdGV4dCB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kVGV4dCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRleHQpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ29tbWVudCwgKHZtLCB7IG9wMTogdGV4dCB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kQ29tbWVudCh2bVtDT05TVEFOVFNdLmdldFZhbHVlKHRleHQpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuT3BlbkVsZW1lbnQsICh2bSwgeyBvcDE6IHRhZyB9KSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkub3BlbkVsZW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0YWcpKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuT3BlbkR5bmFtaWNFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IHRhZ05hbWUgPSBjaGVjayh2YWx1ZUZvclJlZihjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSkpLCBDaGVja1N0cmluZyk7XG4gIHZtLmVsZW1lbnRzKCkub3BlbkVsZW1lbnQodGFnTmFtZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlB1c2hSZW1vdGVFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IGVsZW1lbnRSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBpbnNlcnRCZWZvcmVSZWYgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCBndWlkUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuXG4gIGxldCBlbGVtZW50ID0gY2hlY2sodmFsdWVGb3JSZWYoZWxlbWVudFJlZiksIENoZWNrRWxlbWVudCk7XG4gIGxldCBpbnNlcnRCZWZvcmUgPSBjaGVjayh2YWx1ZUZvclJlZihpbnNlcnRCZWZvcmVSZWYpLCBDaGVja01heWJlKENoZWNrT3B0aW9uKENoZWNrTm9kZSkpKTtcbiAgbGV0IGd1aWQgPSB2YWx1ZUZvclJlZihndWlkUmVmKSBhcyBzdHJpbmc7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKGVsZW1lbnRSZWYpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgQXNzZXJ0KGVsZW1lbnRSZWYpKTtcbiAgfVxuXG4gIGlmIChpbnNlcnRCZWZvcmUgIT09IHVuZGVmaW5lZCAmJiAhaXNDb25zdFJlZihpbnNlcnRCZWZvcmVSZWYpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgQXNzZXJ0KGluc2VydEJlZm9yZVJlZikpO1xuICB9XG5cbiAgbGV0IGJsb2NrID0gdm0uZWxlbWVudHMoKS5wdXNoUmVtb3RlRWxlbWVudChlbGVtZW50LCBndWlkLCBpbnNlcnRCZWZvcmUpO1xuICBpZiAoYmxvY2spIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGJsb2NrKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuUG9wUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIHZtLmVsZW1lbnRzKCkucG9wUmVtb3RlRWxlbWVudCgpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5GbHVzaEVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgb3BlcmF0aW9ucyA9IGNoZWNrKHZtLmZldGNoVmFsdWUoJHQwKSwgQ2hlY2tPcGVyYXRpb25zKTtcbiAgbGV0IG1vZGlmaWVyczogT3B0aW9uPE1vZGlmaWVySW5zdGFuY2VbXT4gPSBudWxsO1xuXG4gIGlmIChvcGVyYXRpb25zKSB7XG4gICAgbW9kaWZpZXJzID0gb3BlcmF0aW9ucy5mbHVzaCh2bSk7XG4gICAgdm0ubG9hZFZhbHVlKCR0MCwgbnVsbCk7XG4gIH1cblxuICB2bS5lbGVtZW50cygpLmZsdXNoRWxlbWVudChtb2RpZmllcnMpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5DbG9zZUVsZW1lbnQsICh2bSkgPT4ge1xuICBsZXQgbW9kaWZpZXJzID0gdm0uZWxlbWVudHMoKS5jbG9zZUVsZW1lbnQoKTtcblxuICBpZiAobW9kaWZpZXJzKSB7XG4gICAgbW9kaWZpZXJzLmZvckVhY2goKG1vZGlmaWVyKSA9PiB7XG4gICAgICB2bS5lbnYuc2NoZWR1bGVJbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIpO1xuICAgICAgbGV0IHsgbWFuYWdlciwgc3RhdGUgfSA9IG1vZGlmaWVyO1xuICAgICAgbGV0IGQgPSBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKHN0YXRlKTtcblxuICAgICAgaWYgKGQpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUoZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuTW9kaWZpZXIsICh2bSwgeyBvcDE6IGhhbmRsZSB9KSA9PiB7XG4gIGlmICh2bS5lbnYuaXNJbnRlcmFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgb3duZXIgPSB2bS5nZXRPd25lcigpO1xuICBsZXQgYXJncyA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrQXJndW1lbnRzKTtcbiAgbGV0IGRlZmluaXRpb24gPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPE1vZGlmaWVyRGVmaW5pdGlvbj4oaGFuZGxlKTtcblxuICBpbnZva2VNb2RpZmllcih2bSwgb3duZXIsIGFyZ3MsIGRlZmluaXRpb24pO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5EeW5hbWljTW9kaWZpZXIsICh2bSkgPT4ge1xuICBpZiAodm0uZW52LmlzSW50ZXJhY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHsgc3RhY2ssIFtDT05TVEFOVFNdOiBjb25zdGFudHMgfSA9IHZtO1xuICBsZXQgcmVmID0gY2hlY2soc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgYXJncyA9IGNoZWNrKHN0YWNrLnBvcEpzKCksIENoZWNrQXJndW1lbnRzKTtcbiAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmKTtcbiAgbGV0IG93bmVyOiBPd25lcjtcblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnZnVuY3Rpb24nICYmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBob3N0RGVmaW5pdGlvbjogQ3VycmllZFZhbHVlIHwgTW9kaWZpZXJEZWZpbml0aW9uU3RhdGU7XG5cbiAgaWYgKGlzQ3VycmllZFR5cGUodmFsdWUsIEN1cnJpZWRUeXBlLk1vZGlmaWVyKSkge1xuICAgIGxldCBbY3VycmllZFZhbHVlLCBjdXJyaWVkT3duZXJdID0gcmVzb2x2ZUN1cnJpZWRWYWx1ZSh2YWx1ZSwgYXJncyk7XG4gICAgaG9zdERlZmluaXRpb24gPSBjdXJyaWVkVmFsdWU7XG4gICAgb3duZXIgPSBjdXJyaWVkT3duZXI7XG4gIH0gZWxzZSB7XG4gICAgaG9zdERlZmluaXRpb24gPSB2YWx1ZTtcbiAgICBvd25lciA9IHZtLmdldE93bmVyKCk7XG4gIH1cblxuICBsZXQgaGFuZGxlID0gY29uc3RhbnRzLm1vZGlmaWVyKGhvc3REZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICBpZiAoREVCVUcgJiYgaGFuZGxlID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEV4cGVjdGVkIGEgZHluYW1pYyBtb2RpZmllciBkZWZpbml0aW9uLCBidXQgcmVjZWl2ZWQgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uIHRoYXQgZGlkIG5vdCBoYXZlIGEgbW9kaWZpZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSBkeW5hbWljIGludm9jYXRpb24gd2FzIFxcYHt7JHtcbiAgICAgICAgcmVmLmRlYnVnTGFiZWxcbiAgICAgIH19fVxcYCwgYW5kIHRoZSBpbmNvcnJlY3QgZGVmaW5pdGlvbiBpcyB0aGUgdmFsdWUgYXQgdGhlIHBhdGggXFxgJHtcbiAgICAgICAgcmVmLmRlYnVnTGFiZWxcbiAgICAgIH1cXGAsIHdoaWNoIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShob3N0RGVmaW5pdGlvbil9YFxuICAgICk7XG4gIH1cblxuICBsZXQgZGVmaW5pdGlvbiA9IGNvbnN0YW50cy5nZXRWYWx1ZTxNb2RpZmllckRlZmluaXRpb24+KFxuICAgIGV4cGVjdChoYW5kbGUsICdCVUc6IG1vZGlmaWVyIGhhbmRsZSBleHBlY3RlZCcpXG4gICk7XG5cbiAgaW52b2tlTW9kaWZpZXIodm0sIG93bmVyLCBhcmdzLCBkZWZpbml0aW9uKTtcbn0pO1xuXG5mdW5jdGlvbiBpbnZva2VNb2RpZmllcihcbiAgdm06IEludGVybmFsVk0sXG4gIG93bmVyOiBPd25lcixcbiAgYXJnczogVk1Bcmd1bWVudHMsXG4gIGRlZmluaXRpb246IE1vZGlmaWVyRGVmaW5pdGlvblxuKSB7XG4gIGxldCB7IG1hbmFnZXIgfSA9IGRlZmluaXRpb247XG5cbiAgbGV0IHsgY29uc3RydWN0aW5nLCB1cGRhdGVPcGVyYXRpb25zIH0gPSB2bS5lbGVtZW50cygpO1xuICBsZXQgZHluYW1pY1Njb3BlID0gdm0uZHluYW1pY1Njb3BlKCk7XG5cbiAgbGV0IHN0YXRlID0gbWFuYWdlci5jcmVhdGUoXG4gICAgb3duZXIsXG4gICAgZXhwZWN0KGNvbnN0cnVjdGluZywgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIHRoZSBlbGVtZW50IGl0IGFwcGxpZXMgdG8nKSxcbiAgICBkZWZpbml0aW9uLnN0YXRlLFxuICAgIGFyZ3MsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHVwZGF0ZU9wZXJhdGlvbnNcbiAgKTtcblxuICBsZXQgaW5zdGFuY2U6IE1vZGlmaWVySW5zdGFuY2UgPSB7XG4gICAgbWFuYWdlcixcbiAgICBzdGF0ZSxcbiAgICBkZWZpbml0aW9uLFxuICB9O1xuXG4gIGxldCBvcGVyYXRpb25zID0gZXhwZWN0KFxuICAgIGNoZWNrKHZtLmZldGNoVmFsdWUoJHQwKSwgQ2hlY2tPcGVyYXRpb25zKSxcbiAgICAnQlVHOiBFbGVtZW50TW9kaWZpZXIgY291bGQgbm90IGZpbmQgb3BlcmF0aW9ucyB0byBhcHBlbmQgdG8nXG4gICk7XG5cbiAgb3BlcmF0aW9ucy5hZGRNb2RpZmllcihpbnN0YW5jZSk7XG5cbiAgbGV0IHRhZyA9IG1hbmFnZXIuZ2V0VGFnKHN0YXRlKTtcblxuICBpZiAodGFnICE9PSBudWxsKSB7XG4gICAgY29uc3VtZVRhZyh0YWcpO1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IFVwZGF0ZU1vZGlmaWVyT3Bjb2RlKHRhZywgaW5zdGFuY2UpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlTW9kaWZpZXJPcGNvZGUgZXh0ZW5kcyBVcGRhdGluZ09wY29kZSB7XG4gIHB1YmxpYyB0eXBlID0gJ3VwZGF0ZS1tb2RpZmllcic7XG4gIHByaXZhdGUgbGFzdFVwZGF0ZWQ6IFJldmlzaW9uO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YWc6IFRhZywgcHJpdmF0ZSBtb2RpZmllcjogTW9kaWZpZXJJbnN0YW5jZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gIH1cblxuICBldmFsdWF0ZSh2bTogVXBkYXRpbmdWTSkge1xuICAgIGxldCB7IG1vZGlmaWVyLCB0YWcsIGxhc3RVcGRhdGVkIH0gPSB0aGlzO1xuXG4gICAgY29uc3VtZVRhZyh0YWcpO1xuXG4gICAgaWYgKCF2YWxpZGF0ZVRhZyh0YWcsIGxhc3RVcGRhdGVkKSkge1xuICAgICAgdm0uZW52LnNjaGVkdWxlVXBkYXRlTW9kaWZpZXIobW9kaWZpZXIpO1xuICAgICAgdGhpcy5sYXN0VXBkYXRlZCA9IHZhbHVlRm9yVGFnKHRhZyk7XG4gICAgfVxuICB9XG59XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5TdGF0aWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdmFsdWUsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHZhbHVlID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF92YWx1ZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICB2bS5lbGVtZW50cygpLnNldFN0YXRpY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY0F0dHIsICh2bSwgeyBvcDE6IF9uYW1lLCBvcDI6IF90cnVzdGluZywgb3AzOiBfbmFtZXNwYWNlIH0pID0+IHtcbiAgbGV0IG5hbWUgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPHN0cmluZz4oX25hbWUpO1xuICBsZXQgdHJ1c3RpbmcgPSB2bVtDT05TVEFOVFNdLmdldFZhbHVlPGJvb2xlYW4+KF90cnVzdGluZyk7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja1JlZmVyZW5jZSk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG4gIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lc3BhY2UpIDogbnVsbDtcblxuICBsZXQgYXR0cmlidXRlID0gdm0uZWxlbWVudHMoKS5zZXREeW5hbWljQXR0cmlidXRlKG5hbWUsIHZhbHVlLCB0cnVzdGluZywgbmFtZXNwYWNlKTtcblxuICBpZiAoIWlzQ29uc3RSZWYocmVmZXJlbmNlKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IFVwZGF0ZUR5bmFtaWNBdHRyaWJ1dGVPcGNvZGUocmVmZXJlbmNlLCBhdHRyaWJ1dGUpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwdWJsaWMgbGFzdFZhbHVlOiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmZXJlbmNlOiBSZWZlcmVuY2U8dW5rbm93bj4sIHByaXZhdGUgYXR0cmlidXRlOiBEeW5hbWljQXR0cmlidXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG4gIH1cblxuICBldmFsdWF0ZSh2bTogVXBkYXRpbmdWTSkge1xuICAgIGxldCB7IGF0dHJpYnV0ZSwgcmVmZXJlbmNlLCBsYXN0VmFsdWUgfSA9IHRoaXM7XG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG5cbiAgICBpZiAoY3VycmVudFZhbHVlICE9PSBsYXN0VmFsdWUpIHtcbiAgICAgIGF0dHJpYnV0ZS51cGRhdGUoY3VycmVudFZhbHVlLCB2bS5lbnYpO1xuICAgICAgdGhpcy5sYXN0VmFsdWUgPSBjdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBQSxXQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLFdBQUEsRUFBQSxXQUFBLEVBQUEsVUFBQSxRQUFBLG9CQUFBO0FBb0JBLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLGNBQUEsRUFBQSxjQUFBLFFBQUEsZUFBQTtBQUVBLFNBQUEsTUFBQSxRQUFBLE1BQUE7QUFHQSxTQUFBLFNBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxhQUFBLFFBQUEsZUFBQTtBQUVBLFNBQUEsYUFBQSxFQUFBLG1CQUFBLFFBQUEscUJBQUE7QUFDQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBRUEsY0FBYyxDQUFkLEdBQUEsQ0FBa0I7QUFBQTtBQUFsQixFQUE0QixVQUFBLEVBQUEsUUFBc0I7QUFBQSxNQUFWLElBQVUsUUFBZixHQUFlO0FBQ2hELEVBQUEsRUFBRSxDQUFGLFFBQUEsR0FBQSxVQUFBLENBQXlCLEVBQUUsQ0FBRixTQUFFLENBQUYsQ0FBQSxRQUFBLENBQXpCLElBQXlCLENBQXpCO0FBREYsQ0FBQTtBQUlBLGNBQWMsQ0FBZCxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBK0IsVUFBQSxFQUFBLFNBQXNCO0FBQUEsTUFBVixJQUFVLFNBQWYsR0FBZTtBQUNuRCxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEsYUFBQSxDQUE0QixFQUFFLENBQUYsU0FBRSxDQUFGLENBQUEsUUFBQSxDQUE1QixJQUE0QixDQUE1QjtBQURGLENBQUE7QUFJQSxjQUFjLENBQWQsR0FBQSxDQUFrQjtBQUFBO0FBQWxCLEVBQW1DLFVBQUEsRUFBQSxTQUFxQjtBQUFBLE1BQVQsR0FBUyxTQUFkLEdBQWM7QUFDdEQsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLFdB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Q29uc3RSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgUmV2aXNpb24sIFRhZywgdmFsdWVGb3JUYWcsIHZhbGlkYXRlVGFnLCBjb25zdW1lVGFnIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gIGNoZWNrLFxuICBDaGVja1N0cmluZyxcbiAgQ2hlY2tFbGVtZW50LFxuICBDaGVja09wdGlvbixcbiAgQ2hlY2tOb2RlLFxuICBDaGVja01heWJlLFxufSBmcm9tICdAZ2xpbW1lci9kZWJ1Zyc7XG5pbXBvcnQge1xuICBPcCxcbiAgT3B0aW9uLFxuICBNb2RpZmllckRlZmluaXRpb24sXG4gIE1vZGlmaWVySW5zdGFuY2UsXG4gIFZNQXJndW1lbnRzLFxuICBPd25lcixcbiAgQ3VycmllZFR5cGUsXG4gIE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlLFxuICBFbnZpcm9ubWVudCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdDAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBBUFBFTkRfT1BDT0RFUywgVXBkYXRpbmdPcGNvZGUgfSBmcm9tICcuLi8uLi9vcGNvZGVzJztcbmltcG9ydCB7IFVwZGF0aW5nVk0gfSBmcm9tICcuLi8uLi92bSc7XG5pbXBvcnQgeyBBc3NlcnQgfSBmcm9tICcuL3ZtJztcbmltcG9ydCB7IER5bmFtaWNBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi92bS9hdHRyaWJ1dGVzL2R5bmFtaWMnO1xuaW1wb3J0IHsgQ2hlY2tSZWZlcmVuY2UsIENoZWNrQXJndW1lbnRzLCBDaGVja09wZXJhdGlvbnMgfSBmcm9tICcuLy1kZWJ1Zy1zdHJpcCc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgSW50ZXJuYWxWTSB9IGZyb20gJy4uLy4uL3ZtL2FwcGVuZCc7XG5pbXBvcnQgeyBDdXJyaWVkVmFsdWUsIGlzQ3VycmllZFR5cGUsIHJlc29sdmVDdXJyaWVkVmFsdWUgfSBmcm9tICcuLi8uLi9jdXJyaWVkLXZhbHVlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlRleHQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZFRleHQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkNvbW1lbnQsICh2bSwgeyBvcDE6IHRleHQgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLmFwcGVuZENvbW1lbnQodm1bQ09OU1RBTlRTXS5nZXRWYWx1ZSh0ZXh0KSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5FbGVtZW50LCAodm0sIHsgb3AxOiB0YWcgfSkgPT4ge1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHZtW0NPTlNUQU5UU10uZ2V0VmFsdWUodGFnKSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk9wZW5EeW5hbWljRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCB0YWdOYW1lID0gY2hlY2sodmFsdWVGb3JSZWYoY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpKSwgQ2hlY2tTdHJpbmcpO1xuICB2bS5lbGVtZW50cygpLm9wZW5FbGVtZW50KHRhZ05hbWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5QdXNoUmVtb3RlRWxlbWVudCwgKHZtKSA9PiB7XG4gIGxldCBlbGVtZW50UmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgaW5zZXJ0QmVmb3JlUmVmID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgZ3VpZFJlZiA9IGNoZWNrKHZtLnN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICBsZXQgZWxlbWVudCA9IGNoZWNrKHZhbHVlRm9yUmVmKGVsZW1lbnRSZWYpLCBDaGVja0VsZW1lbnQpO1xuICBsZXQgaW5zZXJ0QmVmb3JlID0gY2hlY2sodmFsdWVGb3JSZWYoaW5zZXJ0QmVmb3JlUmVmKSwgQ2hlY2tNYXliZShDaGVja09wdGlvbihDaGVja05vZGUpKSk7XG4gIGxldCBndWlkID0gdmFsdWVGb3JSZWYoZ3VpZFJlZikgYXMgc3RyaW5nO1xuXG4gIGlmICghaXNDb25zdFJlZihlbGVtZW50UmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChlbGVtZW50UmVmKSk7XG4gIH1cblxuICBpZiAoaW5zZXJ0QmVmb3JlICE9PSB1bmRlZmluZWQgJiYgIWlzQ29uc3RSZWYoaW5zZXJ0QmVmb3JlUmVmKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChpbnNlcnRCZWZvcmVSZWYpKTtcbiAgfVxuXG4gIGxldCBibG9jayA9IHZtLmVsZW1lbnRzKCkucHVzaFJlbW90ZUVsZW1lbnQoZWxlbWVudCwgZ3VpZCwgaW5zZXJ0QmVmb3JlKTtcbiAgaWYgKGJsb2NrKSB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShibG9jayk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLlBvcFJlbW90ZUVsZW1lbnQsICh2bSkgPT4ge1xuICB2bS5lbGVtZW50cygpLnBvcFJlbW90ZUVsZW1lbnQoKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRmx1c2hFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG9wZXJhdGlvbnMgPSBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyk7XG4gIGxldCBtb2RpZmllcnM6IE9wdGlvbjxNb2RpZmllckluc3RhbmNlW10+ID0gbnVsbDtcblxuICBpZiAob3BlcmF0aW9ucykge1xuICAgIG1vZGlmaWVycyA9IG9wZXJhdGlvbnMuZmx1c2godm0pO1xuICAgIHZtLmxvYWRWYWx1ZSgkdDAsIG51bGwpO1xuICB9XG5cbiAgdm0uZWxlbWVudHMoKS5mbHVzaEVsZW1lbnQobW9kaWZpZXJzKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQ2xvc2VFbGVtZW50LCAodm0pID0+IHtcbiAgbGV0IG1vZGlmaWVycyA9IHZtLmVsZW1lbnRzKCkuY2xvc2VFbGVtZW50KCk7XG5cbiAgaWYgKG1vZGlmaWVycykge1xuICAgIG1vZGlmaWVycy5mb3JFYWNoKChtb2RpZmllcikgPT4ge1xuICAgICAgdm0uZW52LnNjaGVkdWxlSW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIGxldCB7IG1hbmFnZXIsIHN0YXRlIH0gPSBtb2RpZmllcjtcbiAgICAgIGxldCBkID0gbWFuYWdlci5nZXREZXN0cm95YWJsZShzdGF0ZSk7XG5cbiAgICAgIGlmIChkKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLk1vZGlmaWVyLCAodm0sIHsgb3AxOiBoYW5kbGUgfSkgPT4ge1xuICBpZiAodm0uZW52LmlzSW50ZXJhY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayh2bS5zdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCBkZWZpbml0aW9uID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxNb2RpZmllckRlZmluaXRpb24+KGhhbmRsZSk7XG5cbiAgaW52b2tlTW9kaWZpZXIodm0sIG93bmVyLCBhcmdzLCBkZWZpbml0aW9uKTtcbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuRHluYW1pY01vZGlmaWVyLCAodm0pID0+IHtcbiAgaWYgKHZtLmVudi5pc0ludGVyYWN0aXZlID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCB7IHN0YWNrLCBbQ09OU1RBTlRTXTogY29uc3RhbnRzIH0gPSB2bTtcbiAgbGV0IHJlZiA9IGNoZWNrKHN0YWNrLnBvcEpzKCksIENoZWNrUmVmZXJlbmNlKTtcbiAgbGV0IGFyZ3MgPSBjaGVjayhzdGFjay5wb3BKcygpLCBDaGVja0FyZ3VtZW50cyk7XG4gIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHJlZik7XG4gIGxldCBvd25lcjogT3duZXI7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyAmJiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCB2YWx1ZSA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgaG9zdERlZmluaXRpb246IEN1cnJpZWRWYWx1ZSB8IE1vZGlmaWVyRGVmaW5pdGlvblN0YXRlO1xuXG4gIGlmIChpc0N1cnJpZWRUeXBlKHZhbHVlLCBDdXJyaWVkVHlwZS5Nb2RpZmllcikpIHtcbiAgICBsZXQgW2N1cnJpZWRWYWx1ZSwgY3VycmllZE93bmVyXSA9IHJlc29sdmVDdXJyaWVkVmFsdWUodmFsdWUsIGFyZ3MpO1xuICAgIGhvc3REZWZpbml0aW9uID0gY3VycmllZFZhbHVlO1xuICAgIG93bmVyID0gY3VycmllZE93bmVyO1xuICB9IGVsc2Uge1xuICAgIGhvc3REZWZpbml0aW9uID0gdmFsdWU7XG4gICAgb3duZXIgPSB2bS5nZXRPd25lcigpO1xuICB9XG5cbiAgbGV0IGhhbmRsZSA9IGNvbnN0YW50cy5tb2RpZmllcihob3N0RGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgaWYgKERFQlVHICYmIGhhbmRsZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBFeHBlY3RlZCBhIGR5bmFtaWMgbW9kaWZpZXIgZGVmaW5pdGlvbiwgYnV0IHJlY2VpdmVkIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0aGF0IGRpZCBub3QgaGF2ZSBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgZHluYW1pYyBpbnZvY2F0aW9uIHdhcyBcXGB7eyR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9fX1cXGAsIGFuZCB0aGUgaW5jb3JyZWN0IGRlZmluaXRpb24gaXMgdGhlIHZhbHVlIGF0IHRoZSBwYXRoIFxcYCR7XG4gICAgICAgIHJlZi5kZWJ1Z0xhYmVsXG4gICAgICB9XFxgLCB3aGljaCB3YXM6ICR7ZGVidWdUb1N0cmluZyEoaG9zdERlZmluaXRpb24pfWBcbiAgICApO1xuICB9XG5cbiAgbGV0IGRlZmluaXRpb24gPSBjb25zdGFudHMuZ2V0VmFsdWU8TW9kaWZpZXJEZWZpbml0aW9uPihcbiAgICBleHBlY3QoaGFuZGxlLCAnQlVHOiBtb2RpZmllciBoYW5kbGUgZXhwZWN0ZWQnKVxuICApO1xuXG4gIGludm9rZU1vZGlmaWVyKHZtLCBvd25lciwgYXJncywgZGVmaW5pdGlvbik7XG59KTtcblxuZnVuY3Rpb24gaW52b2tlTW9kaWZpZXIoXG4gIHZtOiBJbnRlcm5hbFZNLFxuICBvd25lcjogT3duZXIsXG4gIGFyZ3M6IFZNQXJndW1lbnRzLFxuICBkZWZpbml0aW9uOiBNb2RpZmllckRlZmluaXRpb25cbikge1xuICBsZXQgeyBtYW5hZ2VyIH0gPSBkZWZpbml0aW9uO1xuXG4gIGxldCB7IGNvbnN0cnVjdGluZywgdXBkYXRlT3BlcmF0aW9ucyB9ID0gdm0uZWxlbWVudHMoKTtcbiAgbGV0IGR5bmFtaWNTY29wZSA9IHZtLmR5bmFtaWNTY29wZSgpO1xuXG4gIGxldCBzdGF0ZSA9IG1hbmFnZXIuY3JlYXRlKFxuICAgIG93bmVyLFxuICAgIGV4cGVjdChjb25zdHJ1Y3RpbmcsICdCVUc6IEVsZW1lbnRNb2RpZmllciBjb3VsZCBub3QgZmluZCB0aGUgZWxlbWVudCBpdCBhcHBsaWVzIHRvJyksXG4gICAgZGVmaW5pdGlvbi5zdGF0ZSxcbiAgICBhcmdzLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB1cGRhdGVPcGVyYXRpb25zXG4gICk7XG5cbiAgbGV0IGluc3RhbmNlOiBNb2RpZmllckluc3RhbmNlID0ge1xuICAgIG1hbmFnZXIsXG4gICAgc3RhdGUsXG4gICAgZGVmaW5pdGlvbixcbiAgfTtcblxuICBsZXQgb3BlcmF0aW9ucyA9IGV4cGVjdChcbiAgICBjaGVjayh2bS5mZXRjaFZhbHVlKCR0MCksIENoZWNrT3BlcmF0aW9ucyksXG4gICAgJ0JVRzogRWxlbWVudE1vZGlmaWVyIGNvdWxkIG5vdCBmaW5kIG9wZXJhdGlvbnMgdG8gYXBwZW5kIHRvJ1xuICApO1xuXG4gIG9wZXJhdGlvbnMuYWRkTW9kaWZpZXIoaW5zdGFuY2UpO1xuXG4gIGxldCB0YWcgPSBtYW5hZ2VyLmdldFRhZyhzdGF0ZSk7XG5cbiAgaWYgKHRhZyAhPT0gbnVsbCkge1xuICAgIGNvbnN1bWVUYWcodGFnKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVNb2RpZmllck9wY29kZSh0YWcsIGluc3RhbmNlKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZU1vZGlmaWVyT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICd1cGRhdGUtbW9kaWZpZXInO1xuICBwcml2YXRlIGxhc3RVcGRhdGVkOiBSZXZpc2lvbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFnOiBUYWcsIHByaXZhdGUgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICB9XG5cbiAgZXZhbHVhdGUodm06IFVwZGF0aW5nVk0pIHtcbiAgICBsZXQgeyBtb2RpZmllciwgdGFnLCBsYXN0VXBkYXRlZCB9ID0gdGhpcztcblxuICAgIGNvbnN1bWVUYWcodGFnKTtcblxuICAgIGlmICghdmFsaWRhdGVUYWcodGFnLCBsYXN0VXBkYXRlZCkpIHtcbiAgICAgIHZtLmVudi5zY2hlZHVsZVVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyKTtcbiAgICAgIHRoaXMubGFzdFVwZGF0ZWQgPSB2YWx1ZUZvclRhZyh0YWcpO1xuICAgIH1cbiAgfVxufVxuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuU3RhdGljQXR0ciwgKHZtLCB7IG9wMTogX25hbWUsIG9wMjogX3ZhbHVlLCBvcDM6IF9uYW1lc3BhY2UgfSkgPT4ge1xuICBsZXQgbmFtZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZSk7XG4gIGxldCB2YWx1ZSA9IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfdmFsdWUpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgdm0uZWxlbWVudHMoKS5zZXRTdGF0aWNBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNBdHRyLCAodm0sIHsgb3AxOiBfbmFtZSwgb3AyOiBfdHJ1c3RpbmcsIG9wMzogX25hbWVzcGFjZSB9KSA9PiB7XG4gIGxldCBuYW1lID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxzdHJpbmc+KF9uYW1lKTtcbiAgbGV0IHRydXN0aW5nID0gdm1bQ09OU1RBTlRTXS5nZXRWYWx1ZTxib29sZWFuPihfdHJ1c3RpbmcpO1xuICBsZXQgcmVmZXJlbmNlID0gY2hlY2sodm0uc3RhY2sucG9wSnMoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZihyZWZlcmVuY2UpO1xuICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHZtW0NPTlNUQU5UU10uZ2V0VmFsdWU8c3RyaW5nPihfbmFtZXNwYWNlKSA6IG51bGw7XG5cbiAgbGV0IGF0dHJpYnV0ZSA9IHZtLmVsZW1lbnRzKCkuc2V0RHluYW1pY0F0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgdHJ1c3RpbmcsIG5hbWVzcGFjZSk7XG5cbiAgaWYgKCFpc0NvbnN0UmVmKHJlZmVyZW5jZSkpIHtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlKHJlZmVyZW5jZSwgYXR0cmlidXRlLCB2bS5lbnYpKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVEeW5hbWljQXR0cmlidXRlT3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICBwdWJsaWMgdHlwZSA9ICdwYXRjaC1lbGVtZW50JztcblxuICBwcml2YXRlIHVwZGF0ZVJlZjogUmVmZXJlbmNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LCBhdHRyaWJ1dGU6IER5bmFtaWNBdHRyaWJ1dGUsIGVudjogRW52aXJvbm1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnVwZGF0ZVJlZiA9IGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcblxuICAgICAgaWYgKGluaXRpYWxpemVkID09PSB0cnVlKSB7XG4gICAgICAgIGF0dHJpYnV0ZS51cGRhdGUodmFsdWUsIGVudik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cblxuICBldmFsdWF0ZSgpIHtcbiAgICB2YWx1ZUZvclJlZih0aGlzLnVwZGF0ZVJlZik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
import { getPath, setPath } from '@glimmer/global-context';
import { createComputeRef, valueForRef } from '@glimmer/reference';
import { isDict } from '@glimmer/util';
import { internalHelper } from './internal-helper';

@@ -88,3 +89,3 @@ /**

if (isObject(source)) {
if (isDict(source)) {
return getPath(source, String(valueForRef(pathRef)));

@@ -95,3 +96,3 @@ }

if (isObject(source)) {
if (isDict(source)) {
return setPath(source, String(valueForRef(pathRef)), value);

@@ -101,6 +102,2 @@ }

});
function isObject(obj) {
return typeof obj === 'function' || typeof obj === 'object' && obj !== null;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsT0FBQSxFQUFBLE9BQUEsUUFBQSx5QkFBQTtBQUVBLFNBQUEsZ0JBQUEsRUFBQSxXQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLGNBQUEsUUFBQSxtQkFBQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2RUEsZUFBZSxjQUFjLENBQUUsVUFBQSxJQUFELEVBQXNCO0FBQ2xELE1BQUksU0FBUyxHQUFHLElBQUksQ0FBSixVQUFBLENBQUEsRUFBQSxDQUFoQixDQUFnQixDQUFoQjtBQUNBLE1BQUksT0FBTyxHQUFHLElBQUksQ0FBSixVQUFBLENBQUEsRUFBQSxDQUFkLENBQWMsQ0FBZDtBQUVBLFNBQU8sZ0JBQWdCLENBQ3JCLFlBQUs7QUFDSCxRQUFJLE1BQU0sR0FBRyxXQUFXLENBQXhCLFNBQXdCLENBQXhCOztBQUVBLFFBQUksUUFBUSxDQUFaLE1BQVksQ0FBWixFQUFzQjtBQUNwQixhQUFPLE9BQU8sQ0FBQSxNQUFBLEVBQVMsTUFBTSxDQUFDLFdBQVcsQ0FBekMsT0FBeUMsQ0FBWixDQUFmLENBQWQ7QUFDRDtBQU5rQixHQUFBLEVBUXBCLFVBQUEsS0FBRCxFQUFVO0FBQ1IsUUFBSSxNQUFNLEdBQUcsV0FBVyxDQUF4QixTQUF3QixDQUF4Qjs7QUFFQSxRQUFJLFFBQVEsQ0FBWixNQUFZLENBQVosRUFBc0I7QUFDcEIsYUFBTyxPQUFPLENBQUEsTUFBQSxFQUFTLE1BQU0sQ0FBQyxXQUFXLENBQTNCLE9BQTJCLENBQVosQ0FBZixFQUFkLEtBQWMsQ0FBZDtBQUNEO0FBYmtCLEdBQUEsRUFBdkIsS0FBdUIsQ0FBdkI7QUFKRixDQUE2QixDQUE3Qjs7QUF1QkEsU0FBQSxRQUFBLENBQUEsR0FBQSxFQUE4QjtBQUM1QixTQUFPLE9BQUEsR0FBQSxLQUFBLFVBQUEsSUFBOEIsT0FBQSxHQUFBLEtBQUEsUUFBQSxJQUEyQixHQUFHLEtBQW5FLElBQUE7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFBhdGgsIHNldFBhdGggfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBWTUFyZ3VtZW50cyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgaW50ZXJuYWxIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsLWhlbHBlcic7XG5cbi8qKlxuICBEeW5hbWljYWxseSBsb29rIHVwIGEgcHJvcGVydHkgb24gYW4gb2JqZWN0LiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGB7e2dldH19YFxuICBzaG91bGQgaGF2ZSBhIHN0cmluZyB2YWx1ZSwgYWx0aG91Z2ggaXQgY2FuIGJlIGJvdW5kLlxuXG4gIEZvciBleGFtcGxlLCB0aGVzZSB0d28gdXNhZ2VzIGFyZSBlcXVpdmFsZW50OlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuICBpbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG4gIGV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBAdHJhY2tlZCBkZXZlbG9wZXIgPSB7XG4gICAgICBuYW1lOiBcIlNhbmRpIE1ldHpcIixcbiAgICAgIGxhbmd1YWdlOiBcIlJ1YnlcIlxuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7dGhpcy5kZXZlbG9wZXIubmFtZX19XG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIFwibmFtZVwifX1cbiAgYGBgXG5cbiAgSWYgdGhlcmUgd2VyZSBzZXZlcmFsIGZhY3RzIGFib3V0IGEgcGVyc29uLCB0aGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gZHluYW1pY2FsbHlcbiAgcGljayBvbmU6XG5cbiAgYGBgYXBwL3RlbXBsYXRlcy9hcHBsaWNhdGlvbi5oYnNcbiAgPERldmVsb3BlckRldGFpbCBAZmFjdE5hbWU9XCJsYW5ndWFnZVwiIC8+XG4gIGBgYFxuXG4gIGBgYGhhbmRsZWJhcnNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgQGZhY3ROYW1lfX1cbiAgYGBgXG5cbiAgRm9yIGEgbW9yZSBjb21wbGV4IGV4YW1wbGUsIHRoaXMgdGVtcGxhdGUgd291bGQgYWxsb3cgdGhlIHVzZXIgdG8gc3dpdGNoXG4gIGJldHdlZW4gc2hvd2luZyB0aGUgdXNlcidzIGhlaWdodCBhbmQgd2VpZ2h0IHdpdGggYSBjbGljazpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG5cbiAgICBAdHJhY2tlZCBjdXJyZW50RmFjdCA9ICduYW1lJ1xuXG4gICAgc2hvd0ZhY3QgPSAoZmFjdCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50RmFjdCA9IGZhY3Q7XG4gICAgfVxuICB9XG4gIGBgYFxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgdGhpcy5jdXJyZW50RmFjdH19XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFRoZSBge3tnZXR9fWAgaGVscGVyIGNhbiBhbHNvIHJlc3BlY3QgbXV0YWJsZSB2YWx1ZXMgaXRzZWxmLiBGb3IgZXhhbXBsZTpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIDxJbnB1dCBAdmFsdWU9e3ttdXQgKGdldCB0aGlzLnBlcnNvbiB0aGlzLmN1cnJlbnRGYWN0KX19IC8+XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3YXAgd2hhdCBmYWN0IGlzIGJlaW5nIGRpc3BsYXllZCwgYW5kIGFsc28gZWRpdFxuICB0aGF0IGZhY3QgdmlhIGEgdHdvLXdheSBtdXRhYmxlIGJpbmRpbmcuXG5cbiAgQHB1YmxpY1xuICBAbWV0aG9kIGdldFxuICovXG5leHBvcnQgZGVmYXVsdCBpbnRlcm5hbEhlbHBlcigoYXJnczogVk1Bcmd1bWVudHMpID0+IHtcbiAgbGV0IHNvdXJjZVJlZiA9IGFyZ3MucG9zaXRpb25hbC5hdCgwKTtcbiAgbGV0IHBhdGhSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMSk7XG5cbiAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgKCkgPT4ge1xuICAgICAgbGV0IHNvdXJjZSA9IHZhbHVlRm9yUmVmKHNvdXJjZVJlZik7XG5cbiAgICAgIGlmIChpc09iamVjdChzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBnZXRQYXRoKHNvdXJjZSwgU3RyaW5nKHZhbHVlRm9yUmVmKHBhdGhSZWYpKSk7XG4gICAgICB9XG4gICAgfSxcbiAgICAodmFsdWUpID0+IHtcbiAgICAgIGxldCBzb3VyY2UgPSB2YWx1ZUZvclJlZihzb3VyY2VSZWYpO1xuXG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gc2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgICdnZXQnXG4gICk7XG59KTtcblxuZnVuY3Rpb24gaXNPYmplY3Qob2JqOiB1bmtub3duKTogb2JqIGlzIG9iamVjdCB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2hlbHBlcnMvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsT0FBQSxFQUFBLE9BQUEsUUFBQSx5QkFBQTtBQUVBLFNBQUEsZ0JBQUEsRUFBQSxXQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLE1BQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxjQUFBLFFBQUEsbUJBQUE7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkVBLGVBQWUsY0FBYyxDQUFFLFVBQUEsSUFBRCxFQUFzQjtBQUNsRCxNQUFJLFNBQVMsR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBaEIsQ0FBZ0IsQ0FBaEI7QUFDQSxNQUFJLE9BQU8sR0FBRyxJQUFJLENBQUosVUFBQSxDQUFBLEVBQUEsQ0FBZCxDQUFjLENBQWQ7QUFFQSxTQUFPLGdCQUFnQixDQUNyQixZQUFLO0FBQ0gsUUFBSSxNQUFNLEdBQUcsV0FBVyxDQUF4QixTQUF3QixDQUF4Qjs7QUFFQSxRQUFJLE1BQU0sQ0FBVixNQUFVLENBQVYsRUFBb0I7QUFDbEIsYUFBTyxPQUFPLENBQUEsTUFBQSxFQUFTLE1BQU0sQ0FBQyxXQUFXLENBQXpDLE9BQXlDLENBQVosQ0FBZixDQUFkO0FBQ0Q7QUFOa0IsR0FBQSxFQVFwQixVQUFBLEtBQUQsRUFBVTtBQUNSLFFBQUksTUFBTSxHQUFHLFdBQVcsQ0FBeEIsU0FBd0IsQ0FBeEI7O0FBRUEsUUFBSSxNQUFNLENBQVYsTUFBVSxDQUFWLEVBQW9CO0FBQ2xCLGFBQU8sT0FBTyxDQUFBLE1BQUEsRUFBUyxNQUFNLENBQUMsV0FBVyxDQUEzQixPQUEyQixDQUFaLENBQWYsRUFBZCxLQUFjLENBQWQ7QUFDRDtBQWJrQixHQUFBLEVBQXZCLEtBQXVCLENBQXZCO0FBSkYsQ0FBNkIsQ0FBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQYXRoLCBzZXRQYXRoIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgVk1Bcmd1bWVudHMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGlzRGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgaW50ZXJuYWxIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsLWhlbHBlcic7XG5cbi8qKlxuICBEeW5hbWljYWxseSBsb29rIHVwIGEgcHJvcGVydHkgb24gYW4gb2JqZWN0LiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGB7e2dldH19YFxuICBzaG91bGQgaGF2ZSBhIHN0cmluZyB2YWx1ZSwgYWx0aG91Z2ggaXQgY2FuIGJlIGJvdW5kLlxuXG4gIEZvciBleGFtcGxlLCB0aGVzZSB0d28gdXNhZ2VzIGFyZSBlcXVpdmFsZW50OlxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAgaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuICBpbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG4gIGV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBAdHJhY2tlZCBkZXZlbG9wZXIgPSB7XG4gICAgICBuYW1lOiBcIlNhbmRpIE1ldHpcIixcbiAgICAgIGxhbmd1YWdlOiBcIlJ1YnlcIlxuICAgIH1cbiAgfVxuICBgYGBcblxuICBgYGBoYW5kbGViYXJzXG4gIHt7dGhpcy5kZXZlbG9wZXIubmFtZX19XG4gIHt7Z2V0IHRoaXMuZGV2ZWxvcGVyIFwibmFtZVwifX1cbiAgYGBgXG5cbiAgSWYgdGhlcmUgd2VyZSBzZXZlcmFsIGZhY3RzIGFib3V0IGEgcGVyc29uLCB0aGUgYHt7Z2V0fX1gIGhlbHBlciBjYW4gZHluYW1pY2FsbHlcbiAgcGljayBvbmU6XG5cbiAgYGBgYXBwL3RlbXBsYXRlcy9hcHBsaWNhdGlvbi5oYnNcbiAgPERldmVsb3BlckRldGFpbCBAZmFjdE5hbWU9XCJsYW5ndWFnZVwiIC8+XG4gIGBgYFxuXG4gIGBgYGhhbmRsZWJhcnNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgQGZhY3ROYW1lfX1cbiAgYGBgXG5cbiAgRm9yIGEgbW9yZSBjb21wbGV4IGV4YW1wbGUsIHRoaXMgdGVtcGxhdGUgd291bGQgYWxsb3cgdGhlIHVzZXIgdG8gc3dpdGNoXG4gIGJldHdlZW4gc2hvd2luZyB0aGUgdXNlcidzIGhlaWdodCBhbmQgd2VpZ2h0IHdpdGggYSBjbGljazpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIGltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbiAgaW1wb3J0IHsgdHJhY2tlZCB9IGZyb20gJ0BnbGltbWVyL3RyYWNraW5nJztcblxuICBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgQHRyYWNrZWQgZGV2ZWxvcGVyID0ge1xuICAgICAgbmFtZTogXCJTYW5kaSBNZXR6XCIsXG4gICAgICBsYW5ndWFnZTogXCJSdWJ5XCJcbiAgICB9XG5cbiAgICBAdHJhY2tlZCBjdXJyZW50RmFjdCA9ICduYW1lJ1xuXG4gICAgc2hvd0ZhY3QgPSAoZmFjdCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50RmFjdCA9IGZhY3Q7XG4gICAgfVxuICB9XG4gIGBgYFxuXG4gIGBgYGFwcC9jb21wb25lbnRzL2RldmVsb3Blci1kZXRhaWwuanNcbiAge3tnZXQgdGhpcy5kZXZlbG9wZXIgdGhpcy5jdXJyZW50RmFjdH19XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFRoZSBge3tnZXR9fWAgaGVscGVyIGNhbiBhbHNvIHJlc3BlY3QgbXV0YWJsZSB2YWx1ZXMgaXRzZWxmLiBGb3IgZXhhbXBsZTpcblxuICBgYGBhcHAvY29tcG9uZW50cy9kZXZlbG9wZXItZGV0YWlsLmpzXG4gIDxJbnB1dCBAdmFsdWU9e3ttdXQgKGdldCB0aGlzLnBlcnNvbiB0aGlzLmN1cnJlbnRGYWN0KX19IC8+XG5cbiAgPGJ1dHRvbiB7e29uICdjbGljaycgKGZuIHRoaXMuc2hvd0ZhY3QgXCJuYW1lXCIpfX0+U2hvdyBuYW1lPC9idXR0b24+XG4gIDxidXR0b24ge3tvbiAnY2xpY2snIChmbiB0aGlzLnNob3dGYWN0IFwibGFuZ3VhZ2VcIil9fT5TaG93IGxhbmd1YWdlPC9idXR0b24+XG4gIGBgYFxuXG4gIFdvdWxkIGFsbG93IHRoZSB1c2VyIHRvIHN3YXAgd2hhdCBmYWN0IGlzIGJlaW5nIGRpc3BsYXllZCwgYW5kIGFsc28gZWRpdFxuICB0aGF0IGZhY3QgdmlhIGEgdHdvLXdheSBtdXRhYmxlIGJpbmRpbmcuXG5cbiAgQHB1YmxpY1xuICBAbWV0aG9kIGdldFxuICovXG5leHBvcnQgZGVmYXVsdCBpbnRlcm5hbEhlbHBlcigoYXJnczogVk1Bcmd1bWVudHMpID0+IHtcbiAgbGV0IHNvdXJjZVJlZiA9IGFyZ3MucG9zaXRpb25hbC5hdCgwKTtcbiAgbGV0IHBhdGhSZWYgPSBhcmdzLnBvc2l0aW9uYWwuYXQoMSk7XG5cbiAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgKCkgPT4ge1xuICAgICAgbGV0IHNvdXJjZSA9IHZhbHVlRm9yUmVmKHNvdXJjZVJlZik7XG5cbiAgICAgIGlmIChpc0RpY3Qoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gZ2V0UGF0aChzb3VyY2UsIFN0cmluZyh2YWx1ZUZvclJlZihwYXRoUmVmKSkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgKHZhbHVlKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gdmFsdWVGb3JSZWYoc291cmNlUmVmKTtcblxuICAgICAgaWYgKGlzRGljdChzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBzZXRQYXRoKHNvdXJjZSwgU3RyaW5nKHZhbHVlRm9yUmVmKHBhdGhSZWYpKSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgJ2dldCdcbiAgKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -73,3 +73,3 @@ import { childRefFor, createConstRef } from '@glimmer/reference';

});
var reified = vm[CONSTANTS].component(definition, false, owner);
var reified = vm[CONSTANTS].component(definition, owner);
vm.pushFrame(); // Push blocks on to the stack, three stack values per block

@@ -128,2 +128,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxTQUFBLFdBQUEsRUFBQSxjQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLFlBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxJQUFBLEVBQUEsU0FBQSxRQUFBLFdBQUE7QUFDQSxPQUFBLEVBQUEsTUFBQSxhQUFBO0FBQ0EsU0FBQSxnQkFBQSxRQUFBLFNBQUE7QUFDQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUNBLFNBQUEsd0JBQUEsUUFBQSxvQkFBQTs7SUFFQSxvQjtBQUNFLGdDQUFBLEVBQUEsRUFBa0M7QUFBZCxTQUFBLEVBQUEsR0FBQSxFQUFBO0FBQWtCOzs7O1NBQ3RDLEksR0FBQSxnQkFBSTtBQUNGLFdBQU8sS0FBQSxFQUFBLENBQVAsSUFBTyxFQUFQO0FBQ0QsRzs7U0FFRCxJLEdBQUEsZ0JBQUk7QUFBQTs7QUFDRixRQUFBLEtBQUEsRUFBVztBQUNULGFBQU8sd0JBQXlCLENBQUM7QUFBQSxlQUFNLEtBQUEsQ0FBQSxFQUFBLENBQVAsT0FBTyxFQUFOO0FBQUEsT0FBRCxFQUFoQyxvQkFBZ0MsQ0FBaEM7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLEtBQUEsRUFBQSxDQUFQLE9BQU8sRUFBUDtBQUNEO0FBQ0YsRzs7Ozs7QUFHSCxPQUFNLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxRQUFBLEVBQWlFO0FBQ3JFLE1BQUEsTUFBQTtBQUVBLEVBQUEsYUFBYSxDQUFBLEdBQUEsRUFBTTtBQUFBLFdBQU8sTUFBTSxHQUFHLFFBQVEsQ0FBM0MsSUFBbUMsRUFBaEI7QUFBQSxHQUFOLENBQWI7QUFFQSxTQUFBLE1BQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxVQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLFdBQUEsRUFBQSxN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QkFBQSxDQUFQLEVBQU8sQ0FBUDtBQUNEOztBQUVELE9BQU0sU0FBQSxlQUFBLENBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLFVBQUEsRUFNSixJQU5JLEVBT0osWUFQSSxFQU8rQztBQUFBLE1BRG5ELElBQ21EO0FBRG5ELElBQUEsSUFDbUQsR0FQL0MsRUFPK0M7QUFBQTs7QUFBQSxNQUFuRCxZQUFtRDtBQUFuRCxJQUFBLFlBQW1ELEdBQXRCLElBUHpCLGdCQU95QixFQUFzQjtBQUFBOztBQUVuRCxNQUFJLEVBQUUsR0FBRyxFQUFFLENBQUYsS0FBQSxDQUFBLE9BQUEsRUFFUDtBQUFFLElBQUEsV0FBRixFQUFFLFdBQUY7QUFBZSxJQUFBLE1BQU0sRUFBRSxPQUFPLENBQVAsTUFBQSxDQUF2QixJQUFBO0FBQTRDLElBQUEsWUFBNUMsRUFBNEMsWUFBNUM7QUFBMEQsSUFBQSxLQUFBLEVBQUE7QUFBMUQsR0FGTyxFQUFULE9BQVMsQ0FBVDtBQUtBLFNBQU8sZ0JBQWdCLENBQUEsRUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFpQyxpQkFBaUIsQ0FBekUsSUFBeUUsQ0FBbEQsQ0FBdkI7QUFDRDs7QUFFRCxTQUFBLGlCQUFBLENBQUEsTUFBQSxFQUEwRDtBQUN4RCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUEsTUFBQSxFQUEzQixNQUEyQixDQUEzQjtBQUVBLFNBQU8sTUFBTSxDQUFOLElBQUEsQ0FBQSxNQUFBLEVBQUEsTUFBQSxDQUEyQixVQUFBLEdBQUEsRUFBQSxHQUFBLEVBQWE7QUFDN0MsSUFBQSxHQUFHLENBQUgsR0FBRyxDQUFILEdBQVcsV0FBVyxDQUFBLElBQUEsRUFBdEIsR0FBc0IsQ0FBdEI7QUFDQSxXQUFBLEdBQUE7QUFGSyxHQUFBLEVBQVAsRUFBTyxDQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEeW5hbWljU2NvcGUsXG4gIEVudmlyb25tZW50LFxuICBSZW5kZXJSZXN1bHQsXG4gIFJpY2hJdGVyYXRvclJlc3VsdCxcbiAgVGVtcGxhdGVJdGVyYXRvcixcbiAgUnVudGltZUNvbnRleHQsXG4gIEVsZW1lbnRCdWlsZGVyLFxuICBDb21waWxhYmxlUHJvZ3JhbSxcbiAgQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY2hpbGRSZWZGb3IsIGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZXhwZWN0LCB1bndyYXBIYW5kbGUgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEFSR1MsIENPTlNUQU5UUyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgVk0sIHsgSW50ZXJuYWxWTSB9IGZyb20gJy4vdm0vYXBwZW5kJztcbmltcG9ydCB7IER5bmFtaWNTY29wZUltcGwgfSBmcm9tICcuL3Njb3BlJztcbmltcG9ydCB7IGluVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Vudmlyb25tZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5cbmNsYXNzIFRlbXBsYXRlSXRlcmF0b3JJbXBsIGltcGxlbWVudHMgVGVtcGxhdGVJdGVyYXRvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdm06IEludGVybmFsVk0pIHt9XG4gIG5leHQoKTogUmljaEl0ZXJhdG9yUmVzdWx0PG51bGwsIFJlbmRlclJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnZtLm5leHQoKTtcbiAgfVxuXG4gIHN5bmMoKTogUmVuZGVyUmVzdWx0IHtcbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIHJldHVybiBydW5JblRyYWNraW5nVHJhbnNhY3Rpb24hKCgpID0+IHRoaXMudm0uZXhlY3V0ZSgpLCAnLSBXaGlsZSByZW5kZXJpbmc6Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclN5bmMoZW52OiBFbnZpcm9ubWVudCwgaXRlcmF0b3I6IFRlbXBsYXRlSXRlcmF0b3IpOiBSZW5kZXJSZXN1bHQge1xuICBsZXQgcmVzdWx0OiBSZW5kZXJSZXN1bHQ7XG5cbiAgaW5UcmFuc2FjdGlvbihlbnYsICgpID0+IChyZXN1bHQgPSBpdGVyYXRvci5zeW5jKCkpKTtcblxuICByZXR1cm4gcmVzdWx0ITtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck1haW4oXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBzZWxmOiBSZWZlcmVuY2UsXG4gIHRyZWVCdWlsZGVyOiBFbGVtZW50QnVpbGRlcixcbiAgbGF5b3V0OiBDb21waWxhYmxlUHJvZ3JhbSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IGhhbmRsZSA9IHVud3JhcEhhbmRsZShsYXlvdXQuY29tcGlsZShjb250ZXh0KSk7XG4gIGxldCBudW1TeW1ib2xzID0gbGF5b3V0LnN5bWJvbFRhYmxlLnN5bWJvbHMubGVuZ3RoO1xuICBsZXQgdm0gPSBWTS5pbml0aWFsKHJ1bnRpbWUsIGNvbnRleHQsIHtcbiAgICBzZWxmLFxuICAgIGR5bmFtaWNTY29wZSxcbiAgICB0cmVlQnVpbGRlcixcbiAgICBoYW5kbGUsXG4gICAgbnVtU3ltYm9scyxcbiAgICBvd25lcixcbiAgfSk7XG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5mdW5jdGlvbiByZW5kZXJJbnZvY2F0aW9uKFxuICB2bTogSW50ZXJuYWxWTSxcbiAgY29udGV4dDogQ29tcGlsZVRpbWVDb21waWxhdGlvbkNvbnRleHQsXG4gIG93bmVyOiBPd25lcixcbiAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+XG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgLy8gR2V0IGEgbGlzdCBvZiB0dXBsZXMgb2YgYXJndW1lbnQgbmFtZXMgYW5kIHJlZmVyZW5jZXMsIGxpa2VcbiAgLy8gW1sndGl0bGUnLCByZWZlcmVuY2VdLCBbJ25hbWUnLCByZWZlcmVuY2VdXVxuICBjb25zdCBhcmdMaXN0ID0gT2JqZWN0LmtleXMoYXJncykubWFwKChrZXkpID0+IFtrZXksIGFyZ3Nba2V5XV0pO1xuXG4gIGNvbnN0IGJsb2NrTmFtZXMgPSBbJ21haW4nLCAnZWxzZScsICdhdHRycyddO1xuICAvLyBQcmVmaXggYXJndW1lbnQgbmFtZXMgd2l0aCBgQGAgc3ltYm9sXG4gIGNvbnN0IGFyZ05hbWVzID0gYXJnTGlzdC5tYXAoKFtuYW1lXSkgPT4gYEAke25hbWV9YCk7XG5cbiAgbGV0IHJlaWZpZWQgPSB2bVtDT05TVEFOVFNdLmNvbXBvbmVudChkZWZpbml0aW9uLCBmYWxzZSwgb3duZXIpO1xuXG4gIHZtLnB1c2hGcmFtZSgpO1xuXG4gIC8vIFB1c2ggYmxvY2tzIG9uIHRvIHRoZSBzdGFjaywgdGhyZWUgc3RhY2sgdmFsdWVzIHBlciBibG9ja1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDMgKiBibG9ja05hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdm0uc3RhY2sucHVzaE51bGwoKTtcbiAgfVxuXG4gIHZtLnN0YWNrLnB1c2hOdWxsKCk7XG5cbiAgLy8gRm9yIGVhY2ggYXJndW1lbnQsIHB1c2ggaXRzIGJhY2tpbmcgcmVmZXJlbmNlIG9uIHRvIHRoZSBzdGFja1xuICBhcmdMaXN0LmZvckVhY2goKFssIHJlZmVyZW5jZV0pID0+IHtcbiAgICB2bS5zdGFjay5wdXNoSnMocmVmZXJlbmNlKTtcbiAgfSk7XG5cbiAgLy8gQ29uZmlndXJlIFZNIGJhc2VkIG9uIGJsb2NrcyBhbmQgYXJncyBqdXN0IHB1c2hlZCBvbiB0byB0aGUgc3RhY2suXG4gIHZtW0FSR1NdLnNldHVwKHZtLnN0YWNrLCBhcmdOYW1lcywgYmxvY2tOYW1lcywgMCwgdHJ1ZSk7XG5cbiAgY29uc3QgY29tcGlsYWJsZSA9IGV4cGVjdChcbiAgICByZWlmaWVkLmNvbXBpbGFibGUsXG4gICAgJ0JVRzogRXhwZWN0ZWQgdGhlIHJvb3QgY29tcG9uZW50IHJlbmRlcmVkIHdpdGggcmVuZGVyQ29tcG9uZW50IHRvIGhhdmUgYW4gYXNzb2NpYXRlZCB0ZW1wbGF0ZSwgc2V0IHdpdGggc2V0Q29tcG9uZW50VGVtcGxhdGUnXG4gICk7XG4gIGNvbnN0IGxheW91dEhhbmRsZSA9IHVud3JhcEhhbmRsZShjb21waWxhYmxlLmNvbXBpbGUoY29udGV4dCkpO1xuICBjb25zdCBpbnZvY2F0aW9uID0geyBoYW5kbGU6IGxheW91dEhhbmRsZSwgc3ltYm9sVGFibGU6IGNvbXBpbGFibGUuc3ltYm9sVGFibGUgfTtcblxuICAvLyBOZWVkZWQgZm9yIHRoZSBPcC5NYWluIG9wY29kZTogYXJndW1lbnRzLCBjb21wb25lbnQgaW52b2NhdGlvbiBvYmplY3QsIGFuZFxuICAvLyBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgdm0uc3RhY2sucHVzaEpzKHZtW0FSR1NdKTtcbiAgdm0uc3RhY2sucHVzaEpzKGludm9jYXRpb24pO1xuICB2bS5zdGFjay5wdXNoSnMocmVpZmllZCk7XG5cbiAgcmV0dXJuIG5ldyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCh2bSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb21wb25lbnQoXG4gIHJ1bnRpbWU6IFJ1bnRpbWVDb250ZXh0LFxuICB0cmVlQnVpbGRlcjogRWxlbWVudEJ1aWxkZXIsXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgZHluYW1pY1Njb3BlOiBEeW5hbWljU2NvcGUgPSBuZXcgRHluYW1pY1Njb3BlSW1wbCgpXG4pOiBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgbGV0IHZtID0gVk0uZW1wdHkoXG4gICAgcnVudGltZSxcbiAgICB7IHRyZWVCdWlsZGVyLCBoYW5kbGU6IGNvbnRleHQuc3RkbGliLm1haW4sIGR5bmFtaWNTY29wZSwgb3duZXIgfSxcbiAgICBjb250ZXh0XG4gICk7XG4gIHJldHVybiByZW5kZXJJbnZvY2F0aW9uKHZtLCBjb250ZXh0LCBvd25lciwgZGVmaW5pdGlvbiwgcmVjb3JkVG9SZWZlcmVuY2UoYXJncykpO1xufVxuXG5mdW5jdGlvbiByZWNvcmRUb1JlZmVyZW5jZShyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPiB7XG4gIGNvbnN0IHJvb3QgPSBjcmVhdGVDb25zdFJlZihyZWNvcmQsICdhcmdzJyk7XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHJlY29yZCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGFjY1trZXldID0gY2hpbGRSZWZGb3Iocm9vdCwga2V5KTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+KTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3JlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxTQUFBLFdBQUEsRUFBQSxjQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLFlBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxJQUFBLEVBQUEsU0FBQSxRQUFBLFdBQUE7QUFDQSxPQUFBLEVBQUEsTUFBQSxhQUFBO0FBQ0EsU0FBQSxnQkFBQSxRQUFBLFNBQUE7QUFDQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUNBLFNBQUEsd0JBQUEsUUFBQSxvQkFBQTs7SUFFQSxvQjtBQUNFLGdDQUFBLEVBQUEsRUFBa0M7QUFBZCxTQUFBLEVBQUEsR0FBQSxFQUFBO0FBQWtCOzs7O1NBQ3RDLEksR0FBQSxnQkFBSTtBQUNGLFdBQU8sS0FBQSxFQUFBLENBQVAsSUFBTyxFQUFQO0FBQ0QsRzs7U0FFRCxJLEdBQUEsZ0JBQUk7QUFBQTs7QUFDRixRQUFBLEtBQUEsRUFBVztBQUNULGFBQU8sd0JBQXlCLENBQUM7QUFBQSxlQUFNLEtBQUEsQ0FBQSxFQUFBLENBQVAsT0FBTyxFQUFOO0FBQUEsT0FBRCxFQUFoQyxvQkFBZ0MsQ0FBaEM7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLEtBQUEsRUFBQSxDQUFQLE9BQU8sRUFBUDtBQUNEO0FBQ0YsRzs7Ozs7QUFHSCxPQUFNLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxRQUFBLEVBQWlFO0FBQ3JFLE1BQUEsTUFBQTtBQUVBLEVBQUEsYUFBYSxDQUFBLEdBQUEsRUFBTTtBQUFBLFdBQU8sTUFBTSxHQUFHLFFBQVEsQ0FBM0MsSUFBbUMsRUFBaEI7QUFBQSxHQUFOLENBQWI7QUFFQSxTQUFBLE1BQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxVQUFBLENBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLFdBQUEsRUFBQSxN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RUFBTyxDQUFQO0FBQ0Q7O0FBRUQsT0FBTSxTQUFBLGVBQUEsQ0FBQSxPQUFBLEVBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQU1KLElBTkksRUFPSixZQVBJLEVBTytDO0FBQUEsTUFEbkQsSUFDbUQ7QUFEbkQsSUFBQSxJQUNtRCxHQVAvQyxFQU8rQztBQUFBOztBQUFBLE1BQW5ELFlBQW1EO0FBQW5ELElBQUEsWUFBbUQsR0FBdEIsSUFQekIsZ0JBT3lCLEVBQXNCO0FBQUE7O0FBRW5ELE1BQUksRUFBRSxHQUFHLEVBQUUsQ0FBRixLQUFBLENBQUEsT0FBQSxFQUVQO0FBQUUsSUFBQSxXQUFGLEVBQUUsV0FBRjtBQUFlLElBQUEsTUFBTSxFQUFFLE9BQU8sQ0FBUCxNQUFBLENBQXZCLElBQUE7QUFBNEMsSUFBQSxZQUE1QyxFQUE0QyxZQUE1QztBQUEwRCxJQUFBLEtBQUEsRUFBQTtBQUExRCxHQUZPLEVBQVQsT0FBUyxDQUFUO0FBS0EsU0FBTyxnQkFBZ0IsQ0FBQSxFQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxVQUFBLEVBQWlDLGlCQUFpQixDQUF6RSxJQUF5RSxDQUFsRCxDQUF2QjtBQUNEOztBQUVELFNBQUEsaUJBQUEsQ0FBQSxNQUFBLEVBQTBEO0FBQ3hELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQSxNQUFBLEVBQTNCLE1BQTJCLENBQTNCO0FBRUEsU0FBTyxNQUFNLENBQU4sSUFBQSxDQUFBLE1BQUEsRUFBQSxNQUFBLENBQTJCLFVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBYTtBQUM3QyxJQUFBLEdBQUcsQ0FBSCxHQUFHLENBQUgsR0FBVyxXQUFXLENBQUEsSUFBQSxFQUF0QixHQUFzQixDQUF0QjtBQUNBLFdBQUEsR0FBQTtBQUZLLEdBQUEsRUFBUCxFQUFPLENBQVA7QUFJRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIER5bmFtaWNTY29wZSxcbiAgRW52aXJvbm1lbnQsXG4gIFJlbmRlclJlc3VsdCxcbiAgUmljaEl0ZXJhdG9yUmVzdWx0LFxuICBUZW1wbGF0ZUl0ZXJhdG9yLFxuICBSdW50aW1lQ29udGV4dCxcbiAgRWxlbWVudEJ1aWxkZXIsXG4gIENvbXBpbGFibGVQcm9ncmFtLFxuICBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjaGlsZFJlZkZvciwgY3JlYXRlQ29uc3RSZWYsIFJlZmVyZW5jZSB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBleHBlY3QsIHVud3JhcEhhbmRsZSB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgQVJHUywgQ09OU1RBTlRTIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCBWTSwgeyBJbnRlcm5hbFZNIH0gZnJvbSAnLi92bS9hcHBlbmQnO1xuaW1wb3J0IHsgRHluYW1pY1Njb3BlSW1wbCB9IGZyb20gJy4vc2NvcGUnO1xuaW1wb3J0IHsgaW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgcnVuSW5UcmFja2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcblxuY2xhc3MgVGVtcGxhdGVJdGVyYXRvckltcGwgaW1wbGVtZW50cyBUZW1wbGF0ZUl0ZXJhdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2bTogSW50ZXJuYWxWTSkge31cbiAgbmV4dCgpOiBSaWNoSXRlcmF0b3JSZXN1bHQ8bnVsbCwgUmVuZGVyUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMudm0ubmV4dCgpO1xuICB9XG5cbiAgc3luYygpOiBSZW5kZXJSZXN1bHQge1xuICAgIGlmIChERUJVRykge1xuICAgICAgcmV0dXJuIHJ1bkluVHJhY2tpbmdUcmFuc2FjdGlvbiEoKCkgPT4gdGhpcy52bS5leGVjdXRlKCksICctIFdoaWxlIHJlbmRlcmluZzonKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudm0uZXhlY3V0ZSgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyU3luYyhlbnY6IEVudmlyb25tZW50LCBpdGVyYXRvcjogVGVtcGxhdGVJdGVyYXRvcik6IFJlbmRlclJlc3VsdCB7XG4gIGxldCByZXN1bHQ6IFJlbmRlclJlc3VsdDtcblxuICBpblRyYW5zYWN0aW9uKGVudiwgKCkgPT4gKHJlc3VsdCA9IGl0ZXJhdG9yLnN5bmMoKSkpO1xuXG4gIHJldHVybiByZXN1bHQhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTWFpbihcbiAgcnVudGltZTogUnVudGltZUNvbnRleHQsXG4gIGNvbnRleHQ6IENvbXBpbGVUaW1lQ29tcGlsYXRpb25Db250ZXh0LFxuICBvd25lcjogT3duZXIsXG4gIHNlbGY6IFJlZmVyZW5jZSxcbiAgdHJlZUJ1aWxkZXI6IEVsZW1lbnRCdWlsZGVyLFxuICBsYXlvdXQ6IENvbXBpbGFibGVQcm9ncmFtLFxuICBkeW5hbWljU2NvcGU6IER5bmFtaWNTY29wZSA9IG5ldyBEeW5hbWljU2NvcGVJbXBsKClcbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICBsZXQgaGFuZGxlID0gdW53cmFwSGFuZGxlKGxheW91dC5jb21waWxlKGNvbnRleHQpKTtcbiAgbGV0IG51bVN5bWJvbHMgPSBsYXlvdXQuc3ltYm9sVGFibGUuc3ltYm9scy5sZW5ndGg7XG4gIGxldCB2bSA9IFZNLmluaXRpYWwocnVudGltZSwgY29udGV4dCwge1xuICAgIHNlbGYsXG4gICAgZHluYW1pY1Njb3BlLFxuICAgIHRyZWVCdWlsZGVyLFxuICAgIGhhbmRsZSxcbiAgICBudW1TeW1ib2xzLFxuICAgIG93bmVyLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBUZW1wbGF0ZUl0ZXJhdG9ySW1wbCh2bSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckludm9jYXRpb24oXG4gIHZtOiBJbnRlcm5hbFZNLFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBkZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT5cbik6IFRlbXBsYXRlSXRlcmF0b3Ige1xuICAvLyBHZXQgYSBsaXN0IG9mIHR1cGxlcyBvZiBhcmd1bWVudCBuYW1lcyBhbmQgcmVmZXJlbmNlcywgbGlrZVxuICAvLyBbWyd0aXRsZScsIHJlZmVyZW5jZV0sIFsnbmFtZScsIHJlZmVyZW5jZV1dXG4gIGNvbnN0IGFyZ0xpc3QgPSBPYmplY3Qua2V5cyhhcmdzKS5tYXAoKGtleSkgPT4gW2tleSwgYXJnc1trZXldXSk7XG5cbiAgY29uc3QgYmxvY2tOYW1lcyA9IFsnbWFpbicsICdlbHNlJywgJ2F0dHJzJ107XG4gIC8vIFByZWZpeCBhcmd1bWVudCBuYW1lcyB3aXRoIGBAYCBzeW1ib2xcbiAgY29uc3QgYXJnTmFtZXMgPSBhcmdMaXN0Lm1hcCgoW25hbWVdKSA9PiBgQCR7bmFtZX1gKTtcblxuICBsZXQgcmVpZmllZCA9IHZtW0NPTlNUQU5UU10uY29tcG9uZW50KGRlZmluaXRpb24sIG93bmVyKTtcblxuICB2bS5wdXNoRnJhbWUoKTtcblxuICAvLyBQdXNoIGJsb2NrcyBvbiB0byB0aGUgc3RhY2ssIHRocmVlIHN0YWNrIHZhbHVlcyBwZXIgYmxvY2tcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAzICogYmxvY2tOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZtLnN0YWNrLnB1c2hOdWxsKCk7XG4gIH1cblxuICB2bS5zdGFjay5wdXNoTnVsbCgpO1xuXG4gIC8vIEZvciBlYWNoIGFyZ3VtZW50LCBwdXNoIGl0cyBiYWNraW5nIHJlZmVyZW5jZSBvbiB0byB0aGUgc3RhY2tcbiAgYXJnTGlzdC5mb3JFYWNoKChbLCByZWZlcmVuY2VdKSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaEpzKHJlZmVyZW5jZSk7XG4gIH0pO1xuXG4gIC8vIENvbmZpZ3VyZSBWTSBiYXNlZCBvbiBibG9ja3MgYW5kIGFyZ3MganVzdCBwdXNoZWQgb24gdG8gdGhlIHN0YWNrLlxuICB2bVtBUkdTXS5zZXR1cCh2bS5zdGFjaywgYXJnTmFtZXMsIGJsb2NrTmFtZXMsIDAsIHRydWUpO1xuXG4gIGNvbnN0IGNvbXBpbGFibGUgPSBleHBlY3QoXG4gICAgcmVpZmllZC5jb21waWxhYmxlLFxuICAgICdCVUc6IEV4cGVjdGVkIHRoZSByb290IGNvbXBvbmVudCByZW5kZXJlZCB3aXRoIHJlbmRlckNvbXBvbmVudCB0byBoYXZlIGFuIGFzc29jaWF0ZWQgdGVtcGxhdGUsIHNldCB3aXRoIHNldENvbXBvbmVudFRlbXBsYXRlJ1xuICApO1xuICBjb25zdCBsYXlvdXRIYW5kbGUgPSB1bndyYXBIYW5kbGUoY29tcGlsYWJsZS5jb21waWxlKGNvbnRleHQpKTtcbiAgY29uc3QgaW52b2NhdGlvbiA9IHsgaGFuZGxlOiBsYXlvdXRIYW5kbGUsIHN5bWJvbFRhYmxlOiBjb21waWxhYmxlLnN5bWJvbFRhYmxlIH07XG5cbiAgLy8gTmVlZGVkIGZvciB0aGUgT3AuTWFpbiBvcGNvZGU6IGFyZ3VtZW50cywgY29tcG9uZW50IGludm9jYXRpb24gb2JqZWN0LCBhbmRcbiAgLy8gY29tcG9uZW50IGRlZmluaXRpb24uXG4gIHZtLnN0YWNrLnB1c2hKcyh2bVtBUkdTXSk7XG4gIHZtLnN0YWNrLnB1c2hKcyhpbnZvY2F0aW9uKTtcbiAgdm0uc3RhY2sucHVzaEpzKHJlaWZpZWQpO1xuXG4gIHJldHVybiBuZXcgVGVtcGxhdGVJdGVyYXRvckltcGwodm0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQ29tcG9uZW50KFxuICBydW50aW1lOiBSdW50aW1lQ29udGV4dCxcbiAgdHJlZUJ1aWxkZXI6IEVsZW1lbnRCdWlsZGVyLFxuICBjb250ZXh0OiBDb21waWxlVGltZUNvbXBpbGF0aW9uQ29udGV4dCxcbiAgb3duZXI6IE93bmVyLFxuICBkZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gIGR5bmFtaWNTY29wZTogRHluYW1pY1Njb3BlID0gbmV3IER5bmFtaWNTY29wZUltcGwoKVxuKTogVGVtcGxhdGVJdGVyYXRvciB7XG4gIGxldCB2bSA9IFZNLmVtcHR5KFxuICAgIHJ1bnRpbWUsXG4gICAgeyB0cmVlQnVpbGRlciwgaGFuZGxlOiBjb250ZXh0LnN0ZGxpYi5tYWluLCBkeW5hbWljU2NvcGUsIG93bmVyIH0sXG4gICAgY29udGV4dFxuICApO1xuICByZXR1cm4gcmVuZGVySW52b2NhdGlvbih2bSwgY29udGV4dCwgb3duZXIsIGRlZmluaXRpb24sIHJlY29yZFRvUmVmZXJlbmNlKGFyZ3MpKTtcbn1cblxuZnVuY3Rpb24gcmVjb3JkVG9SZWZlcmVuY2UocmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIFJlZmVyZW5jZT4ge1xuICBjb25zdCByb290ID0gY3JlYXRlQ29uc3RSZWYocmVjb3JkLCAnYXJncycpO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhyZWNvcmQpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICBhY2Nba2V5XSA9IGNoaWxkUmVmRm9yKHJvb3QsIGtleSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPik7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
import { Reference } from '@glimmer/reference';
import { Tag } from '@glimmer/validator';
import { ModifierInstance } from '@glimmer/interfaces';
import { ModifierInstance, Environment } from '@glimmer/interfaces';
import { UpdatingOpcode } from '../../opcodes';

@@ -16,9 +16,7 @@ import { UpdatingVM } from '../../vm';

export declare class UpdateDynamicAttributeOpcode extends UpdatingOpcode {
private reference;
private attribute;
type: string;
lastValue: unknown;
constructor(reference: Reference<unknown>, attribute: DynamicAttribute);
evaluate(vm: UpdatingVM): void;
private updateRef;
constructor(reference: Reference<unknown>, attribute: DynamicAttribute, env: Environment);
evaluate(): void;
}
//# sourceMappingURL=dom.d.ts.map
{
"name": "@glimmer/runtime",
"version": "0.75.0",
"version": "0.76.0",
"description": "Minimal runtime needed to render Glimmer templates",

@@ -9,19 +9,19 @@ "repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/runtime",

"@glimmer/env": "0.1.7",
"@glimmer/global-context": "0.75.0",
"@glimmer/low-level": "0.75.0",
"@glimmer/util": "0.75.0",
"@glimmer/reference": "0.75.0",
"@glimmer/validator": "0.75.0",
"@glimmer/wire-format": "0.75.0",
"@glimmer/interfaces": "0.75.0",
"@glimmer/destroyable": "0.75.0",
"@glimmer/owner": "0.75.0",
"@glimmer/program": "0.75.0",
"@glimmer/vm": "0.75.0",
"@glimmer/global-context": "0.76.0",
"@glimmer/low-level": "0.76.0",
"@glimmer/util": "0.76.0",
"@glimmer/reference": "0.76.0",
"@glimmer/validator": "0.76.0",
"@glimmer/wire-format": "0.76.0",
"@glimmer/interfaces": "0.76.0",
"@glimmer/destroyable": "0.76.0",
"@glimmer/owner": "0.76.0",
"@glimmer/program": "0.76.0",
"@glimmer/vm": "0.76.0",
"@simple-dom/interface": "^1.4.0"
},
"devDependencies": {
"@glimmer/local-debug-flags": "0.75.0",
"@glimmer/opcode-compiler": "0.75.0",
"@glimmer/debug": "0.75.0",
"@glimmer/local-debug-flags": "0.76.0",
"@glimmer/opcode-compiler": "0.76.0",
"@glimmer/debug": "0.76.0",
"@types/qunit": "^2.9.0"

@@ -28,0 +28,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 not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc