Socket
Socket
Sign inDemoInstall

@glimmer/syntax

Package Overview
Dependencies
Maintainers
12
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/syntax - npm Package Compare versions

Comparing version 0.73.1 to 0.73.2

21

dist/commonjs/es2017/lib/symbol-table.js

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

class SymbolTable {
static top(locals) {
return new ProgramSymbolTable(locals);
static top(locals, customizeComponentName) {
return new ProgramSymbolTable(locals, customizeComponentName);
}

@@ -45,5 +45,6 @@

class ProgramSymbolTable extends SymbolTable {
constructor(templateLocals) {
constructor(templateLocals, customizeComponentName) {
super();
this.templateLocals = templateLocals;
this.customizeComponentName = customizeComponentName;
this.symbols = [];

@@ -96,3 +97,9 @@ this.upvars = [];

allocateFree(name) {
allocateFree(name, resolution) {
if (resolution.resolution() === 39
/* GetFreeAsComponentHead */
) {
name = this.customizeComponentName(name);
}
let index = this.upvars.indexOf(name);

@@ -179,4 +186,4 @@

allocateFree(name) {
return this.parent.allocateFree(name);
allocateFree(name, resolution) {
return this.parent.allocateFree(name, resolution);
}

@@ -199,2 +206,2 @@

exports.BlockSymbolTable = BlockSymbolTable;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sTUFBQSxXQUFBLENBQTJCO0FBQy9CLFNBQUEsR0FBQSxDQUFBLE1BQUEsRUFBMkI7QUFDekIsV0FBTyxJQUFBLGtCQUFBLENBQVAsTUFBTyxDQUFQO0FBQ0Q7O0FBZUQsRUFBQSxLQUFLLENBQUEsTUFBQSxFQUFpQjtBQUNwQixRQUFJLE9BQU8sR0FBRyxNQUFNLENBQU4sR0FBQSxDQUFZLElBQUQsSUFBVSxLQUFBLFFBQUEsQ0FBbkMsSUFBbUMsQ0FBckIsQ0FBZDtBQUNBLFdBQU8sSUFBQSxnQkFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQVAsT0FBTyxDQUFQO0FBQ0Q7O0FBckI4Qjs7OztBQXdCM0IsTUFBQSxrQkFBQSxTQUFBLFdBQUEsQ0FBNkM7QUFDakQsRUFBQSxXQUFBLENBQUEsY0FBQSxFQUE0QztBQUMxQztBQURrQixTQUFBLGNBQUEsR0FBQSxjQUFBO0FBSWIsU0FBQSxPQUFBLEdBQUEsRUFBQTtBQUNBLFNBQUEsTUFBQSxHQUFBLEVBQUE7QUFFQyxTQUFBLElBQUEsR0FBQSxDQUFBO0FBQ0EsU0FBQSxLQUFBLEdBQUEsaUJBQUE7QUFDQSxTQUFBLE1BQUEsR0FBQSxpQkFBQTtBQUNBLFNBQUEsa0JBQUEsR0FBQSxFQUFBOztBQUVSLElBQUEsUUFBQSxDQUFBLEdBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQTtBQVZDOztBQVlELEVBQUEscUJBQXFCLEdBQUE7QUFDbkIsV0FBTyxLQUFQLGtCQUFBO0FBQ0Q7O0FBRUQsRUFBQSxVQUFVLEdBQUE7QUFDUixJQUFBLHNCQUFBLENBQUEsSUFBQSxFQUFBLFFBQUEsRUFBQSxJQUFBLENBQUE7QUFDRDs7QUFFRCxNQUFBLE9BQUEsR0FBVztBQUNULFdBQUEsc0JBQUEsQ0FBQSxJQUFBLEVB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Q0FBUDtBQUNEOztBQS9DOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlLCBEaWN0IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTeW1ib2xUYWJsZSB7XG4gIHN0YXRpYyB0b3AobG9jYWxzOiBzdHJpbmdbXSk6IFByb2dyYW1TeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIG5ldyBQcm9ncmFtU3ltYm9sVGFibGUobG9jYWxzKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICBhYnN0cmFjdCBnZXQobmFtZTogc3RyaW5nKTogW3N5bWJvbDogbnVtYmVyLCBpc1Jvb3Q6IGJvb2xlYW5dO1xuXG4gIGFic3RyYWN0IGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj47XG4gIGFic3RyYWN0IGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm87XG5cbiAgYWJzdHJhY3QgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgYWJzdHJhY3Qgc2V0SGFzRXZhbCgpOiB2b2lkO1xuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICBsZXQgc3ltYm9scyA9IGxvY2Fscy5tYXAoKG5hbWUpID0+IHRoaXMuYWxsb2NhdGUobmFtZSkpO1xuICAgIHJldHVybiBuZXcgQmxvY2tTeW1ib2xUYWJsZSh0aGlzLCBsb2NhbHMsIHN5bWJvbHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmFtU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgdXB2YXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2l6ZSA9IDE7XG4gIHByaXZhdGUgbmFtZWQgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBibG9ja3MgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSB1c2VkVGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdID0gW107XG5cbiAgI2hhc0V2YWwgPSBmYWxzZTtcblxuICBnZXRVc2VkVGVtcGxhdGVMb2NhbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnVzZWRUZW1wbGF0ZUxvY2FscztcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy4jaGFzRXZhbCA9IHRydWU7XG4gIH1cblxuICBnZXQgaGFzRXZhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaGFzRXZhbDtcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpICE9PSAtMTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBbaW5kZXgsIHRydWVdO1xuICAgIH1cblxuICAgIGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMubGVuZ3RoO1xuICAgIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzLnB1c2gobmFtZSk7XG4gICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICByZXR1cm4gZGljdCgpO1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBpbmRleCA9IHRoaXMudXB2YXJzLmluZGV4T2YobmFtZSk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVwdmFycy5sZW5ndGg7XG4gICAgdGhpcy51cHZhcnMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXTtcblxuICAgIGlmICghbmFtZWQpIHtcbiAgICAgIG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXSA9IHRoaXMuYWxsb2NhdGUobmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWVkO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmIChuYW1lID09PSAnaW52ZXJzZScpIHtcbiAgICAgIG5hbWUgPSAnZWxzZSc7XG4gICAgfVxuXG4gICAgbGV0IGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV07XG5cbiAgICBpZiAoIWJsb2NrKSB7XG4gICAgICBibG9jayA9IHRoaXMuYmxvY2tzW25hbWVdID0gdGhpcy5hbGxvY2F0ZShgJiR7bmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxvY2s7XG4gIH1cblxuICBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHRoaXMuc3ltYm9scy5wdXNoKGlkZW50aWZpZXIpO1xuICAgIHJldHVybiB0aGlzLnNpemUrKztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmxvY2tTeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IFN5bWJvbFRhYmxlLCBwdWJsaWMgc3ltYm9sczogc3RyaW5nW10sIHB1YmxpYyBzbG90czogbnVtYmVyW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9scztcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzLmluZGV4T2YobmFtZSkgIT09IC0xIHx8IHRoaXMucGFyZW50LmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IHNsb3QgPSB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKTtcbiAgICByZXR1cm4gc2xvdCA9PT0gLTEgPyB0aGlzLnBhcmVudC5nZXQobmFtZSkgOiBbdGhpcy5zbG90c1tzbG90XSwgZmFsc2VdO1xuICB9XG5cbiAgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPiB7XG4gICAgbGV0IGRpY3QgPSB0aGlzLnBhcmVudC5nZXRMb2NhbHNNYXAoKTtcbiAgICB0aGlzLnN5bWJvbHMuZm9yRWFjaCgoc3ltYm9sKSA9PiAoZGljdFtzeW1ib2xdID0gdGhpcy5nZXQoc3ltYm9sKVswXSkpO1xuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnQuc2V0SGFzRXZhbCgpO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlRnJlZShuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVOYW1lZChuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVCbG9jayhuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlKGlkZW50aWZpZXIpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSU0sTUFBQSxXQUFBLENBQTJCO0FBQy9CLFNBQUEsR0FBQSxDQUFBLE1BQUEsRUFBQSxzQkFBQSxFQUVtRDtBQUVqRCxXQUFPLElBQUEsa0JBQUEsQ0FBQSxNQUFBLEVBQVAsc0JBQU8sQ0FBUDtBQUNEOztBQWVELEVBQUEsS0FBSyxDQUFBLE1BQUEsRUFBaUI7QUFDcEIsUUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFOLEdBQUEsQ0FBWSxJQUFELElBQVUsS0FBQSxRQUFBLENBQW5DLElBQW1DLENBQXJCLENBQWQ7QUFDQSxXQUFPLElBQUEsZ0JBQUEsQ0FBQSxJQUFBLEVBQUEsTUFBQSxFQUFQLE9BQU8sQ0FBUDtBQUNEOztBQXhCOEI7Ozs7QUEyQjNCLE1BQUEsa0JBQUEsU0FBQSxXQUFBLENBQTZDO0FBQ2pELEVBQUEsV0FBQSxDQUFBLGNBQUEsRUFBQSxzQkFBQSxFQUUyRDtBQUV6RDtBQUhRLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFDQSxTQUFBLHNCQUFBLEdBQUEsc0JBQUE7QUFLSCxTQUFBLE9BQUEsR0FBQSxFQUFBO0FBQ0EsU0FBQSxNQUFBLEdBQUEsRUFBQTtBQUVDLFNBQUEsSUFBQSxHQUFBLENBQUE7QUFDQSxTQUFBLEtBQUEsR0FBQSxpQkFBQTtBQUNBLFNBQUEsTUFBQSxHQUFBLGlCQUFBO0FBQ0EsU0FBQSxrQkFBQSxHQUFBLEVBQUE7O0FBRVIsSUFBQSxRQUFBLENBQUEsR0FBQSxDQUFBLElBQUEsRUFBQSxLQUFBO0FBVkM7O0FBWUQsRUFBQSxxQkFBcUIsR0FBQTtBQUNuQixXQUFPLEtBQVAsa0JBQUE7QUFDRDs7QUFFRCxFQUFBLFVBQVUsR0FBQTtBQUNSLElBQUEsc0JBQUEsQ0FBQSxJQUFBLEVBQUEsUUFBQSxFQUFBLElBQUEsQ0FBQTtBQUNEOztBQUVELE1BQUEsT0FBQSxHQUFXO0FBQ1QsV0FBQSxzQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLENBQUE7QUFDRDs7QUFFRCxFQUFBLEdBQUcsQ0FBQSxJQUFBLEVBQWE7QUFDZCxXQUFPLEtBQUEsY0FBQSxDQUFBLE9BQUEsQ0FBQSxJQUFBLE1BQXNDLENBQTdDLENBQUE7QUFDRDs7QUFFRCxFQUFBLEdBQUcsQ0FBQSxJQUFBLEVBQWE7QUFDZCxRQUFJLEtBQUssR0FBRyxLQUFBLGtCQUFBLENBQUEsT0FBQSxDQUFaLElBQVksQ0FBWjs7QUFFQSxRQUFJLEtBQUssS0FBSyxDQUFkLENBQUEsRUFBa0I7QUFDaEIsYUFBTyxDQUFBLEtBQUEsRUFBUCxJQUFPLENBQVA7QUFDRDs7QUFFRCxJQUFBLEtBQUssR0FBRyxLQUFBLGtCQUFBLENBQVIsTUFBQTtBQUNBLFNBQUEsa0JBQUEsQ0FBQSxJQUFBLENBQUEsSUFBQTtBQUNBLFdBQU8sQ0FBQSxLQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxZQUFZLEdBQUE7QUFDVixXQUFBLGlCQUFBO0FBQ0Q7O0FBRUQsRUFBQSxXQUFXLEdBQUE7QUFDVCxRQUFJLE1BQU0sR0FBRyxLQUFiLFlBQWEsRUFBYjtBQUNBLFdBQU8sTUFBTSxDQUFOLElBQUEsQ0FBQSxNQUFBLEVBQUEsR0FBQSxDQUF5QixNQUFELElBQVksTUFBTSxDQUFqRCxNQUFpRCxDQUExQyxDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxZQUFZLENBQUEsSUFBQSxFQUFBLFVBQUEsRUFBa0Q7QUFDNUQsUUFBSSxVQUFVLENBQVYsVUFBQSxPQUF1QjtBQUFBO0FBQTNCLE1BQW9FO0FBQ2xFLFFBQUEsSUFBSSxHQUFHLEtBQUEsc0JBQUEsQ0FBUCxJQUFPLENBQVA7QUFDRDs7QUFFRCxRQUFJLEtBQUssR0FBRyxLQUFBLE1BQUEsQ0FBQSxPQUFBLENBQVosSUFBWSxDQUFaOztBQUVBLFFBQUksS0FBSyxLQUFLLENBQWQsQ0FBQSxFQUFrQjtBQUNoQixhQUFBLEtBQUE7QUFDRDs7QUFFRCxJQUFBLEtBQUssR0FBRyxLQUFBLE1BQUEsQ0FBUixNQUFBO0FBQ0EsU0FBQSxNQUFBLENBQUEsSUFBQSxDQUFBLElBQUE7QUFDQSxXQUFBLEtBQUE7QUFDRDs7QUFFRCxFQUFBLGFBQWEsQ0FBQSxJQUFBLEVBQWE7QUFDeEIsUUFBSSxLQUFLLEdBQUcsS0FBQSxLQUFBLENBQVosSUFBWSxDQUFaOztBQUVBLFFBQUksQ0FBSixLQUFBLEVBQVk7QUFDVixNQUFBLEtBQUssR0FBRyxLQUFBLEtBQUEsQ0FBQSxJQUFBLElBQW1CLEtBQUEsUUFBQSxDQUEzQixJQUEyQixDQUEzQjtBQUNEOztBQUVELFdBQUEsS0FBQTtBQUNEOztBQUVELEVBQUEsYUFBYSxDQUFBLElBQUEsRUFBYTtBQUN4QixRQUFJLElBQUksS0FBUixTQUFBLEVBQXdCO0FBQ3RCLE1BQUEsSUFBSSxHQUFKLE1BQUE7QUFDRDs7QUFFRCxRQUFJLEtBQUssR0FBRyxLQUFBLE1BQUEsQ0FBWixJQUFZLENBQVo7O0FBRUEsUUFBSSxDQUFKLEtBQUEsRUFBWTtBQUNWLE1BQUEsS0FBSyxHQUFHLEtBQUEsTUFBQSxDQUFBLElBQUEsSUFBb0IsS0FBQSxRQUFBLENBQWMsSUFBSSxJQUE5QyxFQUE0QixDQUE1QjtBQUNEOztBQUVELFdBQUEsS0FBQTtBQUNEOztBQUVELEVBQUEsUUFBUSxDQUFBLFVBQUEsRUFBbUI7QUFDekIsU0FBQSxPQUFBLENBQUEsSUFBQSxDQUFBLFVBQUE7QUFDQSxXQUFPLEtBQVAsSUFBTyxFQUFQO0FBQ0Q7O0FBbEdnRDs7Ozs7QUFxRzdDLE1BQUEsZ0JBQUEsU0FBQSxXQUFBLENBQTJDO0FBQy9DLEVBQUEsV0FBQSxDQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUF5RjtBQUN2RjtBQURrQixTQUFBLE1BQUEsR0FBQSxNQUFBO0FBQTRCLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFBMEIsU0FBQSxLQUFBLEdBQUEsS0FBQTtBQUV6RTs7QUFFRCxNQUFBLE1BQUEsR0FBVTtBQUNSLFdBQU8sS0FBUCxPQUFBO0FBQ0Q7O0FBRUQsRUFBQSxHQUFHLENBQUEsSUFBQSxFQUFhO0FBQ2QsV0FBTyxLQUFBLE9BQUEsQ0FBQSxPQUFBLENBQUEsSUFBQSxNQUErQixDQUEvQixDQUFBLElBQXFDLEtBQUEsTUFBQSxDQUFBLEdBQUEsQ0FBNUMsSUFBNEMsQ0FBNUM7QUFDRDs7QUFFRCxFQUFBLEdBQUcsQ0FBQSxJQUFBLEVBQWE7QUFDZCxRQUFJLElBQUksR0FBRyxLQUFBLE9BQUEsQ0FBQSxPQUFBLENBQVgsSUFBVyxDQUFYO0FBQ0EsV0FBTyxJQUFJLEtBQUssQ0FBVCxDQUFBLEdBQWMsS0FBQSxNQUFBLENBQUEsR0FBQSxDQUFkLElBQWMsQ0FBZCxHQUFzQyxDQUFDLEtBQUEsS0FBQSxDQUFELElBQUMsQ0FBRCxFQUE3QyxLQUE2QyxDQUE3QztBQUNEOztBQUVELEVBQUEsWUFBWSxHQUFBO0FBQ1YsUUFBSSxJQUFJLEdBQUcsS0FBQSxNQUFBLENBQVgsWUFBVyxFQUFYO0FBQ0EsU0FBQSxPQUFBLENBQUEsT0FBQSxDQUFzQixNQUFELElBQWEsSUFBSSxDQUFKLE1BQUksQ0FBSixHQUFlLEtBQUEsR0FBQSxDQUFBLE1BQUEsRUFBakQsQ0FBaUQsQ0FBakQ7QUFDQSxXQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLFdBQVcsR0FBQTtBQUNULFFBQUksTUFBTSxHQUFHLEtBQWIsWUFBYSxFQUFiO0FBQ0EsV0FBTyxNQUFNLENBQU4sSUFBQSxDQUFBLE1BQUEsRUFBQSxHQUFBLENBQXlCLE1BQUQsSUFBWSxNQUFNLENBQWpELE1BQWlELENBQTFDLENBQVA7QUFDRDs7QUFFRCxFQUFBLFVBQVUsR0FBQTtBQUNSLFNBQUEsTUFBQSxDQUFBLFVBQUE7QUFDRDs7QUFFRCxFQUFBLFlBQVksQ0FBQSxJQUFBLEVBQUEsVUFBQSxFQUFrRDtBQUM1RCxXQUFPLEtBQUEsTUFBQSxDQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQVAsVUFBTyxDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxhQUFhLENBQUEsSUFBQSxFQUFhO0FBQ3hCLFdBQU8sS0FBQSxNQUFBLENBQUEsYUFBQSxDQUFQLElBQU8sQ0FBUDtBQUNEOztBQUVELEVBQUEsYUFBYSxDQUFBLElBQUEsRUFBYTtBQUN4QixXQUFPLEtBQUEsTUFBQSxDQUFBLGFBQUEsQ0FBUCxJQUFPLENBQVA7QUFDRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQSxVQUFBLEVBQW1CO0FBQ3pCLFdBQU8sS0FBQSxNQUFBLENBQUEsUUFBQSxDQUFQLFVBQU8sQ0FBUDtBQUNEOztBQS9DOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlLCBEaWN0LCBTZXhwT3Bjb2RlcyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBBU1R2MiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN5bWJvbFRhYmxlIHtcbiAgc3RhdGljIHRvcChcbiAgICBsb2NhbHM6IHN0cmluZ1tdLFxuICAgIGN1c3RvbWl6ZUNvbXBvbmVudE5hbWU6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IFByb2dyYW1TeW1ib2xUYWJsZShsb2NhbHMsIGN1c3RvbWl6ZUNvbXBvbmVudE5hbWUpO1xuICB9XG5cbiAgYWJzdHJhY3QgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGdldChuYW1lOiBzdHJpbmcpOiBbc3ltYm9sOiBudW1iZXIsIGlzUm9vdDogYm9vbGVhbl07XG5cbiAgYWJzdHJhY3QgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPjtcbiAgYWJzdHJhY3QgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbztcblxuICBhYnN0cmFjdCBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nLCByZXNvbHV0aW9uOiBBU1R2Mi5GcmVlVmFyUmVzb2x1dGlvbik6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgYWJzdHJhY3Qgc2V0SGFzRXZhbCgpOiB2b2lkO1xuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICBsZXQgc3ltYm9scyA9IGxvY2Fscy5tYXAoKG5hbWUpID0+IHRoaXMuYWxsb2NhdGUobmFtZSkpO1xuICAgIHJldHVybiBuZXcgQmxvY2tTeW1ib2xUYWJsZSh0aGlzLCBsb2NhbHMsIHN5bWJvbHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmFtU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgY3VzdG9taXplQ29tcG9uZW50TmFtZTogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyB1cHZhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBzaXplID0gMTtcbiAgcHJpdmF0ZSBuYW1lZCA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIGJsb2NrcyA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHVzZWRUZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10gPSBbXTtcblxuICAjaGFzRXZhbCA9IGZhbHNlO1xuXG4gIGdldFVzZWRUZW1wbGF0ZUxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNoYXNFdmFsID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBoYXNFdmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNoYXNFdmFsO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTG9jYWxzLmluZGV4T2YobmFtZSkgIT09IC0xO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5sZW5ndGg7XG4gICAgdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gW2luZGV4LCB0cnVlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIHJldHVybiBkaWN0KCk7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZywgcmVzb2x1dGlvbjogQVNUdjIuRnJlZVZhclJlc29sdXRpb24pOiBudW1iZXIge1xuICAgIGlmIChyZXNvbHV0aW9uLnJlc29sdXRpb24oKSA9PT0gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCkge1xuICAgICAgbmFtZSA9IHRoaXMuY3VzdG9taXplQ29tcG9uZW50TmFtZShuYW1lKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSB0aGlzLnVwdmFycy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGluZGV4ID0gdGhpcy51cHZhcnMubGVuZ3RoO1xuICAgIHRoaXMudXB2YXJzLnB1c2gobmFtZSk7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBuYW1lZCA9IHRoaXMubmFtZWRbbmFtZV07XG5cbiAgICBpZiAoIW5hbWVkKSB7XG4gICAgICBuYW1lZCA9IHRoaXMubmFtZWRbbmFtZV0gPSB0aGlzLmFsbG9jYXRlKG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZDtcbiAgfVxuXG4gIGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBpZiAobmFtZSA9PT0gJ2ludmVyc2UnKSB7XG4gICAgICBuYW1lID0gJ2Vsc2UnO1xuICAgIH1cblxuICAgIGxldCBibG9jayA9IHRoaXMuYmxvY2tzW25hbWVdO1xuXG4gICAgaWYgKCFibG9jaykge1xuICAgICAgYmxvY2sgPSB0aGlzLmJsb2Nrc1tuYW1lXSA9IHRoaXMuYWxsb2NhdGUoYCYke25hbWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJsb2NrO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICB0aGlzLnN5bWJvbHMucHVzaChpZGVudGlmaWVyKTtcbiAgICByZXR1cm4gdGhpcy5zaXplKys7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJsb2NrU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBTeW1ib2xUYWJsZSwgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdLCBwdWJsaWMgc2xvdHM6IG51bWJlcltdKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBsb2NhbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbHM7XG4gIH1cblxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9scy5pbmRleE9mKG5hbWUpICE9PSAtMSB8fCB0aGlzLnBhcmVudC5oYXMobmFtZSk7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogW251bWJlciwgYm9vbGVhbl0ge1xuICAgIGxldCBzbG90ID0gdGhpcy5zeW1ib2xzLmluZGV4T2YobmFtZSk7XG4gICAgcmV0dXJuIHNsb3QgPT09IC0xID8gdGhpcy5wYXJlbnQuZ2V0KG5hbWUpIDogW3RoaXMuc2xvdHNbc2xvdF0sIGZhbHNlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIGxldCBkaWN0ID0gdGhpcy5wYXJlbnQuZ2V0TG9jYWxzTWFwKCk7XG4gICAgdGhpcy5zeW1ib2xzLmZvckVhY2goKHN5bWJvbCkgPT4gKGRpY3Rbc3ltYm9sXSA9IHRoaXMuZ2V0KHN5bWJvbClbMF0pKTtcbiAgICByZXR1cm4gZGljdDtcbiAgfVxuXG4gIGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm8ge1xuICAgIGxldCBsb2NhbHMgPSB0aGlzLmdldExvY2Fsc01hcCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhsb2NhbHMpLm1hcCgoc3ltYm9sKSA9PiBsb2NhbHNbc3ltYm9sXSk7XG4gIH1cblxuICBzZXRIYXNFdmFsKCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50LnNldEhhc0V2YWwoKTtcbiAgfVxuXG4gIGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcsIHJlc29sdXRpb246IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVGcmVlKG5hbWUsIHJlc29sdXRpb24pO1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZU5hbWVkKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZUJsb2NrKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGUoaWRlbnRpZmllcik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -214,7 +214,5 @@ "use strict";

let {
original: originalHead,
parts: headParts
original: originalHead
} = headToString(head);
let parts = [...headParts, ...tail];
let original = [...originalHead, ...parts].join('.');
let original = [...originalHead, ...tail].join('.');
return new _legacyInterop.PathExpressionImplV1(original, head, tail, loc);

@@ -360,2 +358,2 @@ }

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFNQTs7QUFFQSxNQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztBQU1BLE1BQUEsUUFBQSxDQUFjO0FBQ1osRUFBQSxHQUFHLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBNkI7QUFDOUIsV0FBTztBQUFBLE1BQUEsSUFBQTtBQUVMLE1BQUE7QUFGSyxLQUFQO0FBSUQ7O0FBRUQsRUFBQSxXQUFXLENBQUM7QUFBQSxJQUFBLElBQUE7QUFBQSxJQUFBLFdBQUE7QUFHVixJQUFBLE9BQU8sR0FIRyxLQUFBO0FBSVYsSUFBQTtBQUpVLEdBQUQsRUFVVjtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFBQSxNQUFBLE9BQUE7QUFLTCxNQUFBO0FBTEssS0FBUDtBQU9EOztBQUVELEVBQUEsUUFBUSxDQUFDO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxXQUFBO0FBR1AsSUFBQTtBQUhPLEdBQUQsRUFRUDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxNQUFBO0FBSkssS0FBUDtBQU1EOztBQUVELEVBQUEsUUFBUSxDQUFDO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxNQUFBO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxRQUFBO0FBQUEsSUFBQSxHQUFBO0FBTVAsSUFBQSxLQUFL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QUEsSUFBSSxFQUFOLGVBQUE7QUFBQSxNQUFBLEtBQUE7QUFBZ0MsTUFBQTtBQUFoQyxLQUFiLENBQVA7QUFDRDs7QUFwVlcsQyxDQWtZZDs7O0FBRUEsU0FBQSxZQUFBLENBQUEsSUFBQSxFQUEwQztBQUN4QyxVQUFRLElBQUksQ0FBWixJQUFBO0FBQ0UsU0FBQSxRQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7O0FBQ0YsU0FBQSxVQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFWLE1BQUE7QUFBb0IsUUFBQSxLQUFLLEVBQUU7QUFBM0IsT0FBUDs7QUFDRixTQUFBLFNBQUE7QUFDRSxhQUFPO0FBQUUsUUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFoQixJQUFBO0FBQXVCLFFBQUEsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFMLElBQUE7QUFBOUIsT0FBUDtBQU5KO0FBUUQ7O2VBRWMsSUFBZixRQUFlLEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0LCBPcHRpb24sIFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFBhcnNlck5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vcGFyc2VyJztcbmltcG9ydCB7IFNvdXJjZUxvY2F0aW9uIH0gZnJvbSAnLi4vc291cmNlL2xvY2F0aW9uJztcbmltcG9ydCB7IFNvdXJjZU9mZnNldCwgU291cmNlU3BhbiB9IGZyb20gJy4uL3NvdXJjZS9zcGFuJztcbmltcG9ydCAqIGFzIEFTVHYxIGZyb20gJy4vYXBpJztcbmltcG9ydCB7IFBhdGhFeHByZXNzaW9uSW1wbFYxIH0gZnJvbSAnLi9sZWdhY3ktaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfU1RSSVAgPSB7XG4gIGNsb3NlOiBmYWxzZSxcbiAgb3BlbjogZmFsc2UsXG59O1xuXG4vKipcbiAqIFRoZSBQYXJzZXIgQnVpbGRlciBkaWZmZXJlbnRpYXRlcyBmcm9tIHRoZSBwdWJsaWMgYnVpbGRlciBBUEkgYnk6XG4gKlxuICogMS4gT2ZmZXJpbmcgZmV3ZXIgZGlmZmVyZW50IHdheXMgdG8gaW5zdGFudGlhdGUgbm9kZXNcbiAqIDIuIE1hbmRhdGluZyBzb3VyY2UgbG9jYXRpb25zXG4gKi9cbmNsYXNzIEJ1aWxkZXJzIHtcbiAgcG9zKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbixcbiAgICB9O1xuICB9XG5cbiAgYmxvY2tJdHNlbGYoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgY2hhaW5lZCA9IGZhbHNlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgICBibG9ja1BhcmFtcz86IHN0cmluZ1tdO1xuICAgIGNoYWluZWQ/OiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrJyxcbiAgICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgICBjaGFpbmVkLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZW1wbGF0ZSh7XG4gICAgYm9keSxcbiAgICBibG9ja1BhcmFtcyxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZSh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICB0cnVzdGluZyxcbiAgICBsb2MsXG4gICAgc3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIHRydXN0aW5nOiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBzdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgZXNjYXBlZDogIXRydXN0aW5nLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICBsb2MsXG4gICAgICBzdHJpcDogc3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGRlZmF1bHRCbG9jayxcbiAgICBlbHNlQmxvY2sgPSBudWxsLFxuICAgIGxvYyxcbiAgICBvcGVuU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGludmVyc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gICAgY2xvc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBkZWZhdWx0QmxvY2s6IEFTVHYxLkJsb2NrO1xuICAgIGVsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5CbG9jaz47XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICAgIG9wZW5TdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgICBpbnZlcnNlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgY2xvc2VTdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICAgIHBhdGg6IHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgcHJvZ3JhbTogZGVmYXVsdEJsb2NrLFxuICAgICAgaW52ZXJzZTogZWxzZUJsb2NrLFxuICAgICAgbG9jOiBsb2MsXG4gICAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCxcbiAgICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwLFxuICAgICAgY2xvc2VTdHJpcDogY2xvc2VTdHJpcCxcbiAgICB9O1xuICB9XG5cbiAgY29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M6IFNvdXJjZU9mZnNldCk6IFBhcnNlck5vZGVCdWlsZGVyPEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlQ29tbWVudFN0YXRlbWVudCcsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGNvbmNhdChcbiAgICBwYXJ0czogUHJlc2VudEFycmF5PEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQ+LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQ29uY2F0U3RhdGVtZW50JyxcbiAgICAgIHBhcnRzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBlbGVtZW50KHtcbiAgICB0YWcsXG4gICAgc2VsZkNsb3NpbmcsXG4gICAgYXR0cnMsXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbW9kaWZpZXJzLFxuICAgIGNvbW1lbnRzLFxuICAgIGNoaWxkcmVuLFxuICAgIGxvYyxcbiAgfTogQnVpbGRFbGVtZW50T3B0aW9ucyk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0VsZW1lbnROb2RlJyxcbiAgICAgIHRhZyxcbiAgICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzIHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgICBjb21tZW50czogKGNvbW1lbnRzIGFzIEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFtdKSB8fCBbXSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudE1vZGlmaWVyKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGF0dHIoe1xuICAgIG5hbWUsXG4gICAgdmFsdWUsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5BdHRyTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZXh0KHsgY2hhcnMsIGxvYyB9OiB7IGNoYXJzOiBzdHJpbmc7IGxvYzogU291cmNlU3BhbiB9KTogQVNUdjEuVGV4dE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGV4dE5vZGUnLFxuICAgICAgY2hhcnMsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHNleHByKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgcGF0aCh7XG4gICAgaGVhZCxcbiAgICB0YWlsLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGhlYWQ6IEFTVHYxLlBhdGhIZWFkO1xuICAgIHRhaWw6IHN0cmluZ1tdO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHtcbiAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gICAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gICAgbGV0IG9yaWdpbmFsID0gWy4uLm9yaWdpbmFsSGVhZCwgLi4ucGFydHNdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFNQTs7QUFFQSxNQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztBQU1BLE1BQUEsUUFBQSxDQUFjO0FBQ1osRUFBQSxHQUFHLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBNkI7QUFDOUIsV0FBTztBQUFBLE1BQUEsSUFBQTtBQUVMLE1BQUE7QUFGSyxLQUFQO0FBSUQ7O0FBRUQsRUFBQSxXQUFXLENBQUM7QUFBQSxJQUFBLElBQUE7QUFBQSxJQUFBLFdBQUE7QUFHVixJQUFBLE9BQU8sR0FIRyxLQUFBO0FBSVYsSUFBQTtBQUpVLEdBQUQsRUFVVjtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFBQSxNQUFBLE9BQUE7QUFLTCxNQUFBO0FBTEssS0FBUDtBQU9EOztBQUVELEVBQUEsUUFBUSxDQUFDO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxXQUFBO0FBR1AsSUFBQTtBQUhPLEdBQUQsRUFRUDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxNQUFBO0FBSkssS0FBUDtBQU1EOztBQUVELEVBQUEsUUFBUSxDQUFDO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxNQUFBO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxRQUFBO0FBQUEsSUFBQSxHQUFBO0FBTVAsSUFBQSxLQUFL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QUVBLFNBQUEsWUFBQSxDQUFBLElBQUEsRUFBMEM7QUFDeEMsVUFBUSxJQUFJLENBQVosSUFBQTtBQUNFLFNBQUEsUUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQOztBQUNGLFNBQUEsVUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBVixNQUFBO0FBQW9CLFFBQUEsS0FBSyxFQUFFO0FBQTNCLE9BQVA7O0FBQ0YsU0FBQSxTQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7QUFOSjtBQVFEOztlQUVjLElBQWYsUUFBZSxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBQYXJzZXJOb2RlQnVpbGRlciB9IGZyb20gJy4uL3BhcnNlcic7XG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VPZmZzZXQsIFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX1NUUklQID0ge1xuICBjbG9zZTogZmFsc2UsXG4gIG9wZW46IGZhbHNlLFxufTtcblxuLyoqXG4gKiBUaGUgUGFyc2VyIEJ1aWxkZXIgZGlmZmVyZW50aWF0ZXMgZnJvbSB0aGUgcHVibGljIGJ1aWxkZXIgQVBJIGJ5OlxuICpcbiAqIDEuIE9mZmVyaW5nIGZld2VyIGRpZmZlcmVudCB3YXlzIHRvIGluc3RhbnRpYXRlIG5vZGVzXG4gKiAyLiBNYW5kYXRpbmcgc291cmNlIGxvY2F0aW9uc1xuICovXG5jbGFzcyBCdWlsZGVycyB7XG4gIHBvcyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrSXRzZWxmKHtcbiAgICBib2R5LFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIGNoYWluZWQgPSBmYWxzZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBjaGFpbmVkPzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5CbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9jaycsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgY2hhaW5lZCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGVtcGxhdGUoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdO1xuICAgIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuVGVtcGxhdGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgICAgYm9keTogYm9keSB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGUoe1xuICAgIHBhdGgsXG4gICAgcGFyYW1zLFxuICAgIGhhc2gsXG4gICAgdHJ1c3RpbmcsXG4gICAgbG9jLFxuICAgIHN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICB0cnVzdGluZzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gICAgc3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGVzY2FwZWQ6ICF0cnVzdGluZyxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBibG9jayh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBkZWZhdWx0QmxvY2ssXG4gICAgZWxzZUJsb2NrID0gbnVsbCxcbiAgICBsb2MsXG4gICAgb3BlblN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgICBpbnZlcnNlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGNsb3NlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBBU1R2MS5TdWJFeHByZXNzaW9uO1xuICAgIHBhcmFtczogQVNUdjEuRXhwcmVzc2lvbltdO1xuICAgIGhhc2g6IEFTVHYxLkhhc2g7XG4gICAgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgICBlbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuQmxvY2s+O1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBvcGVuU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgaW52ZXJzZVN0cmlwOiBBU1R2MS5TdHJpcEZsYWdzO1xuICAgIGNsb3NlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayxcbiAgICAgIGludmVyc2U6IGVsc2VCbG9jayxcbiAgICAgIGxvYzogbG9jLFxuICAgICAgb3BlblN0cmlwOiBvcGVuU3RyaXAsXG4gICAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VPZmZzZXQpOiBQYXJzZXJOb2RlQnVpbGRlcjxBU1R2MS5Db21tZW50U3RhdGVtZW50PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBjb25jYXQoXG4gICAgcGFydHM6IFByZXNlbnRBcnJheTxBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50PixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgICBwYXJ0cyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudCh7XG4gICAgdGFnLFxuICAgIHNlbGZDbG9zaW5nLFxuICAgIGF0dHJzLFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIG1vZGlmaWVycyxcbiAgICBjb21tZW50cyxcbiAgICBjaGlsZHJlbixcbiAgICBsb2MsXG4gIH06IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgICB0YWcsXG4gICAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnRNb2RpZmllcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdHRyKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuQXR0ck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGV4dCh7IGNoYXJzLCBsb2MgfTogeyBjaGFyczogc3RyaW5nOyBsb2M6IFNvdXJjZVNwYW4gfSk6IEFTVHYxLlRleHROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICAgIGNoYXJzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBzZXhwcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhdGgoe1xuICAgIGhlYWQsXG4gICAgdGFpbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBoZWFkOiBBU1R2MS5QYXRoSGVhZDtcbiAgICB0YWlsOiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICAgIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

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

SymbolTable.top = function top(locals) {
return new ProgramSymbolTable(locals);
SymbolTable.top = function top(locals, customizeComponentName) {
return new ProgramSymbolTable(locals, customizeComponentName);
};

@@ -86,3 +86,3 @@

function ProgramSymbolTable(templateLocals) {
function ProgramSymbolTable(templateLocals, customizeComponentName) {
var _this2;

@@ -92,2 +92,3 @@

_this2.templateLocals = templateLocals;
_this2.customizeComponentName = customizeComponentName;
_this2.symbols = [];

@@ -142,3 +143,9 @@ _this2.upvars = [];

_proto2.allocateFree = function allocateFree(name) {
_proto2.allocateFree = function allocateFree(name, resolution) {
if (resolution.resolution() === 39
/* GetFreeAsComponentHead */
) {
name = this.customizeComponentName(name);
}
var index = this.upvars.indexOf(name);

@@ -242,4 +249,4 @@

_proto3.allocateFree = function allocateFree(name) {
return this.parent.allocateFree(name);
_proto3.allocateFree = function allocateFree(name, resolution) {
return this.parent.allocateFree(name, resolution);
};

@@ -270,2 +277,2 @@

exports.BlockSymbolTable = BlockSymbolTable;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTSxXQUFOLEdBQUEsYUFBQSxZQUFBO0FBQUEsV0FBQSxXQUFBLEdBQUEsQ0FBQTs7QUFBQSxFQUFBLFdBQUEsQ0FBQSxHQUFBLEdBQ0UsU0FBQSxHQUFBLENBQUEsTUFBQSxFQUEyQjtBQUN6QixXQUFPLElBQUEsa0JBQUEsQ0FBUCxNQUFPLENBQVA7QUFGSixHQUFBOztBQUFBLE1BQUEsTUFBQSxHQUFBLFdBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLEtBQUEsR0FrQkUsU0FBQSxLQUFBLENBQUEsTUFBQSxFQUFzQjtBQUFBLFFBQUEsS0FBQSxHQUFBLElBQUE7O0FBQ3BCLFFBQUksT0FBTyxHQUFHLE1BQU0sQ0FBTixHQUFBLENBQVksVUFBRCxJQUFDLEVBQUQ7QUFBQSxhQUFVLEtBQUEsQ0FBQSxRQUFBLENBQW5DLElBQW1DLENBQVY7QUFBekIsS0FBYyxDQUFkO0FBQ0EsV0FBTyxJQUFBLGdCQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBUCxPQUFPLENBQVA7QUFwQkosR0FBQTs7QUFBQSxTQUFBLFdBQUE7QUFBQSxDQUFBLEVBQUE7Ozs7QUF3QkEsSUFBTSxrQkFBTixHQUFBLGFBQUEsVUFBQSxZQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSxrQkFBQSxFQUFBLFlBQUEsQ0FBQTs7QUFDRSxXQUFBLGtCQUFBLENBQUEsY0FBQSxFQUE0QztBQUFBLFFBQUEsTUFBQTs7QUFDMUMsSUFBQSxNQUFBLEdBQUEsWUFBQSxDQUFBLElBQUEsQ0FBQSxJQUFBLEtBQUEsSUFBQTtBQURrQixJQUFBLE1BQUEsQ0FBQSxjQUFBLEdBQUEsY0FBQTtBQUliLElBQUEsTUFB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QyxFQUFEO0FBQUEsYUFBWSxNQUFNLENBQWpELE1BQWlELENBQWxCO0FBQS9CLEtBQU8sQ0FBUDtBQTFCSixHQUFBOztBQUFBLEVBQUEsT0FBQSxDQUFBLFVBQUEsR0E2QkUsU0FBQSxVQUFBLEdBQVU7QUFDUixTQUFBLE1BQUEsQ0FBQSxVQUFBO0FBOUJKLEdBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsWUFBQSxHQWlDRSxTQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQXlCO0FBQ3ZCLFdBQU8sS0FBQSxNQUFBLENBQUEsWUFBQSxDQUFQLElBQU8sQ0FBUDtBQWxDSixHQUFBOztBQUFBLEVBQUEsT0FBQSxDQUFBLGFBQUEsR0FxQ0UsU0FBQSxhQUFBLENBQUEsSUFBQSxFQUEwQjtBQUN4QixXQUFPLEtBQUEsTUFBQSxDQUFBLGFBQUEsQ0FBUCxJQUFPLENBQVA7QUF0Q0osR0FBQTs7QUFBQSxFQUFBLE9BQUEsQ0FBQSxhQUFBLEdBeUNFLFNBQUEsYUFBQSxDQUFBLElBQUEsRUFBMEI7QUFDeEIsV0FBTyxLQUFBLE1BQUEsQ0FBQSxhQUFBLENBQVAsSUFBTyxDQUFQO0FBMUNKLEdBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsUUFBQSxHQTZDRSxTQUFBLFFBQUEsQ0FBQSxVQUFBLEVBQTJCO0FBQ3pCLFdBQU8sS0FBQSxNQUFBLENBQUEsUUFBQSxDQUFQLFVBQU8sQ0FBUDtBQTlDSixHQUFBOztBQUFBLEVBQUEsWUFBQSxDQUFBLGdCQUFBLEVBQUEsQ0FBQTtBQUFBLElBQUEsR0FBQSxFQUFBLFFBQUE7QUFBQSxJQUFBLEdBQUEsRUFBQSxTQUFBLEdBQUEsR0FLWTtBQUNSLGFBQU8sS0FBUCxPQUFBO0FBQ0Q7QUFQSCxHQUFBLENBQUEsQ0FBQTs7QUFBQSxTQUFBLGdCQUFBO0FBQUEsQ0FBQSxDQUFBLFdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmUsIERpY3QgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN5bWJvbFRhYmxlIHtcbiAgc3RhdGljIHRvcChsb2NhbHM6IHN0cmluZ1tdKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IFByb2dyYW1TeW1ib2xUYWJsZShsb2NhbHMpO1xuICB9XG5cbiAgYWJzdHJhY3QgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGdldChuYW1lOiBzdHJpbmcpOiBbc3ltYm9sOiBudW1iZXIsIGlzUm9vdDogYm9vbGVhbl07XG5cbiAgYWJzdHJhY3QgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPjtcbiAgYWJzdHJhY3QgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbztcblxuICBhYnN0cmFjdCBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlcjtcblxuICBhYnN0cmFjdCBzZXRIYXNFdmFsKCk6IHZvaWQ7XG5cbiAgY2hpbGQobG9jYWxzOiBzdHJpbmdbXSk6IEJsb2NrU3ltYm9sVGFibGUge1xuICAgIGxldCBzeW1ib2xzID0gbG9jYWxzLm1hcCgobmFtZSkgPT4gdGhpcy5hbGxvY2F0ZShuYW1lKSk7XG4gICAgcmV0dXJuIG5ldyBCbG9ja1N5bWJvbFRhYmxlKHRoaXMsIGxvY2Fscywgc3ltYm9scyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb2dyYW1TeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyB1cHZhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBzaXplID0gMTtcbiAgcHJpdmF0ZSBuYW1lZCA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIGJsb2NrcyA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHVzZWRUZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10gPSBbXTtcblxuICAjaGFzRXZhbCA9IGZhbHNlO1xuXG4gIGdldFVzZWRUZW1wbGF0ZUxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNoYXNFdmFsID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBoYXNFdmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNoYXNFdmFsO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTG9jYWxzLmluZGV4T2YobmFtZSkgIT09IC0xO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5sZW5ndGg7XG4gICAgdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gW2luZGV4LCB0cnVlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIHJldHVybiBkaWN0KCk7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy51cHZhcnMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBpbmRleCA9IHRoaXMudXB2YXJzLmxlbmd0aDtcbiAgICB0aGlzLnVwdmFycy5wdXNoKG5hbWUpO1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdO1xuXG4gICAgaWYgKCFuYW1lZCkge1xuICAgICAgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdID0gdGhpcy5hbGxvY2F0ZShuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZWQ7XG4gIH1cblxuICBhbGxvY2F0ZUJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKG5hbWUgPT09ICdpbnZlcnNlJykge1xuICAgICAgbmFtZSA9ICdlbHNlJztcbiAgICB9XG5cbiAgICBsZXQgYmxvY2sgPSB0aGlzLmJsb2Nrc1tuYW1lXTtcblxuICAgIGlmICghYmxvY2spIHtcbiAgICAgIGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV0gPSB0aGlzLmFsbG9jYXRlKGAmJHtuYW1lfWApO1xuICAgIH1cblxuICAgIHJldHVybiBibG9jaztcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdGhpcy5zeW1ib2xzLnB1c2goaWRlbnRpZmllcik7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSsrO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCbG9ja1N5bWJvbFRhYmxlIGV4dGVuZHMgU3ltYm9sVGFibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogU3ltYm9sVGFibGUsIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSwgcHVibGljIHNsb3RzOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgbG9jYWxzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKSAhPT0gLTEgfHwgdGhpcy5wYXJlbnQuaGFzKG5hbWUpO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgc2xvdCA9IHRoaXMuc3ltYm9scy5pbmRleE9mKG5hbWUpO1xuICAgIHJldHVybiBzbG90ID09PSAtMSA/IHRoaXMucGFyZW50LmdldChuYW1lKSA6IFt0aGlzLnNsb3RzW3Nsb3RdLCBmYWxzZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICBsZXQgZGljdCA9IHRoaXMucGFyZW50LmdldExvY2Fsc01hcCgpO1xuICAgIHRoaXMuc3ltYm9scy5mb3JFYWNoKChzeW1ib2wpID0+IChkaWN0W3N5bWJvbF0gPSB0aGlzLmdldChzeW1ib2wpWzBdKSk7XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudC5zZXRIYXNFdmFsKCk7XG4gIH1cblxuICBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVGcmVlKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZU5hbWVkKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZUJsb2NrKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGUoaWRlbnRpZmllcik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBTSxXQUFOLEdBQUEsYUFBQSxZQUFBO0FBQUEsV0FBQSxXQUFBLEdBQUEsQ0FBQTs7QUFBQSxFQUFBLFdBQUEsQ0FBQSxHQUFBLEdBQ0UsU0FBQSxHQUFBLENBQUEsTUFBQSxFQUFBLHNCQUFBLEVBRW1EO0FBRWpELFdBQU8sSUFBQSxrQkFBQSxDQUFBLE1BQUEsRUFBUCxzQkFBTyxDQUFQO0FBTEosR0FBQTs7QUFBQSxNQUFBLE1BQUEsR0FBQSxXQUFBLENBQUEsU0FBQTs7QUFBQSxFQUFBLE1BQUEsQ0FBQSxLQUFBLEdBcUJFLFNBQUEsS0FBQSxDQUFBLE1BQUEsRUFBc0I7QUFBQSxRQUFBLEtBQUEsR0FBQSxJQUFBOztBQUNwQixRQUFJLE9BQU8sR0FBRyxNQUFNLENBQU4sR0FBQSxDQUFZLFVBQUQsSUFBQyxFQUFEO0FBQUEsYUFBVSxLQUFBLENBQUEsUUFBQSxDQUFuQyxJQUFtQyxDQUFWO0FBQXpCLEtBQWMsQ0FBZDtBQUNBLFdBQU8sSUFBQSxnQkFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQVAsT0FBTyxDQUFQO0FBdkJKLEdBQUE7O0FBQUEsU0FBQSxXQUFBO0FBQUEsQ0FBQSxFQUFBOzs7O0FBMkJBLElBQU0sa0JBQU4sR0FBQSxhQUFBLFVBQUEsWUFBQSxFQUFBO0FBQUEsRUFBQSxjQUFBLENBQUEsa0JBQUEsRUFBQSxZQUFBLENBQUE7O0FBQ0UsV0FBQSxrQkFBQSxDQUFBLGNBQUEsRUFBQSxzQkFBQSxFQUUyRDtBQUFBLFFBQUEsTUFBQTs7QUFFekQsSUFBQSxNQUFBLEdBQUEsWUFBQSxDQUFBLElBQUEsQ0FBQSxJQUFBLEtBQUEsSUFBQTtBQUhRLElBQUEsTUFBQSxD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QUEsR0FLWTtBQUNSLGFBQU8sS0FBUCxPQUFBO0FBQ0Q7QUFQSCxHQUFBLENBQUEsQ0FBQTs7QUFBQSxTQUFBLGdCQUFBO0FBQUEsQ0FBQSxDQUFBLFdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmUsIERpY3QsIFNleHBPcGNvZGVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IEFTVHYyIH0gZnJvbSAnLi4nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3ltYm9sVGFibGUge1xuICBzdGF0aWMgdG9wKFxuICAgIGxvY2Fsczogc3RyaW5nW10sXG4gICAgY3VzdG9taXplQ29tcG9uZW50TmFtZTogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZ1xuICApOiBQcm9ncmFtU3ltYm9sVGFibGUge1xuICAgIHJldHVybiBuZXcgUHJvZ3JhbVN5bWJvbFRhYmxlKGxvY2FscywgY3VzdG9taXplQ29tcG9uZW50TmFtZSk7XG4gIH1cblxuICBhYnN0cmFjdCBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgZ2V0KG5hbWU6IHN0cmluZyk6IFtzeW1ib2w6IG51bWJlciwgaXNSb290OiBib29sZWFuXTtcblxuICBhYnN0cmFjdCBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+O1xuICBhYnN0cmFjdCBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvO1xuXG4gIGFic3RyYWN0IGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcsIHJlc29sdXRpb246IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlcjtcblxuICBhYnN0cmFjdCBzZXRIYXNFdmFsKCk6IHZvaWQ7XG5cbiAgY2hpbGQobG9jYWxzOiBzdHJpbmdbXSk6IEJsb2NrU3ltYm9sVGFibGUge1xuICAgIGxldCBzeW1ib2xzID0gbG9jYWxzLm1hcCgobmFtZSkgPT4gdGhpcy5hbGxvY2F0ZShuYW1lKSk7XG4gICAgcmV0dXJuIG5ldyBCbG9ja1N5bWJvbFRhYmxlKHRoaXMsIGxvY2Fscywgc3ltYm9scyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb2dyYW1TeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSBjdXN0b21pemVDb21wb25lbnROYW1lOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgc3ltYm9sczogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIHVwdmFyczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHNpemUgPSAxO1xuICBwcml2YXRlIG5hbWVkID0gZGljdDxudW1iZXI+KCk7XG4gIHByaXZhdGUgYmxvY2tzID0gZGljdDxudW1iZXI+KCk7XG4gIHByaXZhdGUgdXNlZFRlbXBsYXRlTG9jYWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICNoYXNFdmFsID0gZmFsc2U7XG5cbiAgZ2V0VXNlZFRlbXBsYXRlTG9jYWxzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHM7XG4gIH1cblxuICBzZXRIYXNFdmFsKCk6IHZvaWQge1xuICAgIHRoaXMuI2hhc0V2YWwgPSB0cnVlO1xuICB9XG5cbiAgZ2V0IGhhc0V2YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2hhc0V2YWw7XG4gIH1cblxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVMb2NhbHMuaW5kZXhPZihuYW1lKSAhPT0gLTE7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogW251bWJlciwgYm9vbGVhbl0ge1xuICAgIGxldCBpbmRleCA9IHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzLmluZGV4T2YobmFtZSk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICByZXR1cm4gW2luZGV4LCB0cnVlXTtcbiAgICB9XG5cbiAgICBpbmRleCA9IHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzLmxlbmd0aDtcbiAgICB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5wdXNoKG5hbWUpO1xuICAgIHJldHVybiBbaW5kZXgsIHRydWVdO1xuICB9XG5cbiAgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGRpY3QoKTtcbiAgfVxuXG4gIGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm8ge1xuICAgIGxldCBsb2NhbHMgPSB0aGlzLmdldExvY2Fsc01hcCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhsb2NhbHMpLm1hcCgoc3ltYm9sKSA9PiBsb2NhbHNbc3ltYm9sXSk7XG4gIH1cblxuICBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nLCByZXNvbHV0aW9uOiBBU1R2Mi5GcmVlVmFyUmVzb2x1dGlvbik6IG51bWJlciB7XG4gICAgaWYgKHJlc29sdXRpb24ucmVzb2x1dGlvbigpID09PSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKSB7XG4gICAgICBuYW1lID0gdGhpcy5jdXN0b21pemVDb21wb25lbnROYW1lKG5hbWUpO1xuICAgIH1cblxuICAgIGxldCBpbmRleCA9IHRoaXMudXB2YXJzLmluZGV4T2YobmFtZSk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVwdmFycy5sZW5ndGg7XG4gICAgdGhpcy51cHZhcnMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXTtcblxuICAgIGlmICghbmFtZWQpIHtcbiAgICAgIG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXSA9IHRoaXMuYWxsb2NhdGUobmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWVkO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmIChuYW1lID09PSAnaW52ZXJzZScpIHtcbiAgICAgIG5hbWUgPSAnZWxzZSc7XG4gICAgfVxuXG4gICAgbGV0IGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV07XG5cbiAgICBpZiAoIWJsb2NrKSB7XG4gICAgICBibG9jayA9IHRoaXMuYmxvY2tzW25hbWVdID0gdGhpcy5hbGxvY2F0ZShgJiR7bmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxvY2s7XG4gIH1cblxuICBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHRoaXMuc3ltYm9scy5wdXNoKGlkZW50aWZpZXIpO1xuICAgIHJldHVybiB0aGlzLnNpemUrKztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmxvY2tTeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IFN5bWJvbFRhYmxlLCBwdWJsaWMgc3ltYm9sczogc3RyaW5nW10sIHB1YmxpYyBzbG90czogbnVtYmVyW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9scztcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzLmluZGV4T2YobmFtZSkgIT09IC0xIHx8IHRoaXMucGFyZW50LmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IHNsb3QgPSB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKTtcbiAgICByZXR1cm4gc2xvdCA9PT0gLTEgPyB0aGlzLnBhcmVudC5nZXQobmFtZSkgOiBbdGhpcy5zbG90c1tzbG90XSwgZmFsc2VdO1xuICB9XG5cbiAgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPiB7XG4gICAgbGV0IGRpY3QgPSB0aGlzLnBhcmVudC5nZXRMb2NhbHNNYXAoKTtcbiAgICB0aGlzLnN5bWJvbHMuZm9yRWFjaCgoc3ltYm9sKSA9PiAoZGljdFtzeW1ib2xdID0gdGhpcy5nZXQoc3ltYm9sKVswXSkpO1xuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnQuc2V0SGFzRXZhbCgpO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZywgcmVzb2x1dGlvbjogQVNUdjIuRnJlZVZhclJlc29sdXRpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZUZyZWUobmFtZSwgcmVzb2x1dGlvbik7XG4gIH1cblxuICBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlTmFtZWQobmFtZSk7XG4gIH1cblxuICBhbGxvY2F0ZUJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlQmxvY2sobmFtZSk7XG4gIH1cblxuICBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZShpZGVudGlmaWVyKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -215,7 +215,5 @@ "use strict";

var _headToString = headToString(head),
originalHead = _headToString.original,
headParts = _headToString.parts;
originalHead = _headToString.original;
var parts = [].concat(headParts, tail);
var original = [].concat(originalHead, parts).join('.');
var original = [].concat(originalHead, tail).join('.');
return new _legacyInterop.PathExpressionImplV1(original, head, tail, loc);

@@ -370,2 +368,2 @@ };

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFNQTs7QUFFQSxJQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztJQU1BLFE7Ozs7O1NBQ0UsRyxHQUFBLFNBQUEsR0FBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQWdDO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBREssRUFBQSxJQUFBO0FBRUwsTUFBQSxNQUFBLEVBQUE7QUFGSyxLQUFQOzs7U0FNRixXLEdBQUEsU0FBQSxXQUFBLENBQUEsSUFBQSxFQVVDO0FBQUEsUUFWVyxJQVVYLEdBQUEsSUFBQSxDQVZXLElBVVg7QUFBQSxRQVZXLFdBVVgsR0FBQSxJQUFBLENBVlcsV0FVWDtBQUFBLFFBQUEsWUFBQSxHQUFBLElBQUEsQ0FQQyxPQU9EO0FBQUEsUUFQQyxPQU9ELEdBQUEsWUFBQSxLQUFBLEtBQUEsQ0FBQSxHQVZXLEtBVVgsR0FBQSxZQUFBO0FBQUEsUUFOQyxHQU1ELEdBQUEsSUFBQSxDQU5DLEdBTUQ7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsT0FBQTtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFGTCxFQUFBO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUhuQixFQUFBO0FBSUwsTUFBQSxPQUpLLEVBQUEsT0FBQTtBQUtMLE1BQUEsR0FBQSxFQUFBO0FBTEssS0FBUDs7O1NBU0YsUSxHQUFBLFNBQUEsUUFBQSxDQUFBLEtBQUEsRUFRQztBQUFBLFFBUlEsSUFRUixHQUFBLEtBQUEsQ0FSUSxJQVFSO0FBQUEsUUFSUSxXQVFSLEdBQUEsS0FBQSxDQVJRLFdBUVI7QUFBQSxRQUxDLEdBS0QsR0FBQSxLQUFBLENBTEMsR0FLRDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxNQUFBLEdBQUEsRUFBQTtBQUpLLEtBQVA7OztTQVFGLFEsR0FBQSxTQUFBLFFBQUEsQ0FBQSxLQUFBLEVBY0M7QUFBQSxRQWRRLElBY1IsR0FBQSxLQUFBLENBZFEsSUFjUjtBQUFBLFFBZFEsTUFjUixHQUFBLEtBQUEsQ0FkUSxNQWNSO0FBQUEsUUFkUSxJQWNSLEdBQUEsS0FBQSxDQWRRLElBY1I7QUFBQSxRQWRRLFFBY1IsR0FBQSxLQUFBLENBZFEsUUFjUjtBQUFBLFFBZFEsR0FjUixHQUFBLEtBQUEsQ0FkUSxHQWNSO0FBQUEsUUFBQSxXQUFBLEdBQUEsS0FBQSxDQVJDLEtBUUQ7QUFBQSxRQVJDLEtBUUQsR0FBQSxXQUFBLEtBQUEsS0FBQSxDQUFBLEdBUlMsYUFRVCxHQUFBLFdBQUE7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsbUJBQUE7QUFFTCxNQUFBLElBRkssRUFBQSxJQUFBO0FBR0wsTUFBQSxNQUhLLEVBQUEsTUFBQTtBQUlMLE1BQUEsSUFKSyxFQUFBLElBQUE7QUFLTCxNQUFBLE9BQU8sRUFBRSxDQUxKLFFBQUE7QUFNTCxNQUFBLFFBTkssRUFBQSxRQUFBO0FBT0wsTUFBQSxHQVBLLEVBQUEsR0FBQTtBQVFMLE1BQUEsS0FBSyxFQUFFLEtBQUssSUFBSTtBQUFFLFFBQUEsSUFBSSxFQUFOLEtBQUE7QUFBZSxRQUFBLEtBQUssRUFBRTtBQUF0QjtBQVJYLEtBQVA7OztTQVlGLEssR0FBQSxTQUFBLEtBQUEsQ0FBQSxLQUFBLEVBb0JDO0FBQUEsUUFwQkssSUFvQkwsR0FBQSxLQUFBLENBcEJLLElBb0JMO0FBQUEsUUFwQkssTUFvQkwsR0FBQSxLQUFBLENBcEJLLE1Bb0JMO0FBQUEsUUFwQkssSUFvQkwsR0FBQSxLQUFBLENBcEJLLElBb0JMO0FBQUEsUUFwQkssWUFvQkwsR0FBQSxLQUFBLENBcEJLLFlBb0JMO0FBQUEsUUFBQSxlQUFBLEdBQUEsS0FBQSxDQWZDLFNBZUQ7QUFBQSxRQWZDLFNBZUQsR0FBQSxlQUFBLEtBQUEsS0FBQSxDQUFBLEdBcEJLLElBb0JMLEdBQUEsZUFBQTtBQUFBLFFBcEJLLEdBb0JMLEdBQUEsS0FBQSxDQXBCSyxHQW9CTDtBQUFBLFFBQUEsZUFBQSxHQUFBLEtBQUEsQ0FiQyxTQWFEO0FBQUEsUUFiQyxTQWFELEdBQUEsZUFBQSxLQUFBLEtBQUEsQ0FBQSxHQXBCSyxhQW9CTCxHQUFBLGVBQUE7QUFBQSxRQUFBLGtCQUFBLEdBQUEsS0FBQSxDQVpDLFlBWUQ7QUFBQSxRQVpDLFlBWUQsR0FBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxHQXBCSyxhQW9CTCxHQUFBLGtCQUFBO0FBQUEsUUFBQSxnQkFBQSxHQUFBLEtBQUEsQ0FYQyxVQVdEO0FBQUEsUUFYQyxVQVdELEdBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsR0FYYyxhQVdkLEdBQUEsZ0JBQUE7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsZ0JBQUE7QUFFTCxNQUFBLElBQUksRUFGQyxJQUFBO0FBR0wsTUFBQSxNQUhLLEVBQUEsTUFBQTtBQUlMLE1BQUEsSUFKSyxFQUFBLElBQUE7QUFLTCxNQUFBLE9BQU8sRUFMRixZQUFBO0FBTUwsTUFBQSxPQUFPLEVBTkYsU0FBQTtBQU9MLE1BQUEsR0FBRyxFQVBFLEdBQUE7QUFRTCxNQUFBLFNBQVMsRUFSSixTQUFBO0FBU0wsTUFBQSxZQUFZLEVBVFAsWUFBQTtBQVVMLE1BQUEsVUFBVSxFQUFFO0FBVlAsS0FBUDs7O1NBY0YsTyxHQUFBLFNBQUEsT0FBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQXdDO0FBQ3RDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxrQkFBQTtBQUVMLE1BQUEsS0FBSyxFQUZBLEtBQUE7QUFHTCxNQUFBLEdBQUEsRUFBQTtBQUhLLEtBQVA7OztTQU9GLGUsR0FBQSxTQUFBLGVBQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUE4QztBQUM1QyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsMEJBQUE7QUFFTCxNQUFBLEtBQUssRUFGQSxLQUFBO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQOzs7U0FPRixNLEdBQUEsU0FBQSxNQUFBLENBQUEsS0FBQSxFQUFBLEdBQUEsRUFFaUI7QUFFZixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsaUJBQUE7QUFFTCxNQUFBLEtBRkssRUFBQSxLQUFBO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQOzs7U0FPRixPLEdBQUEsU0FBQSxPQUFBLENBQUEsS0FBQSxFQVNzQjtBQUFBLFFBVGQsR0FTYyxHQUFBLEtBQUEsQ0FUZCxHQVNjO0FBQUEsUUFUZCxXQVNjLEdBQUEsS0FBQSxDQVRkLFdBU2M7QUFBQSxRQVRkLEtBU2MsR0FBQSxLQUFBLENBVGQsS0FTYztBQUFBLFFBVGQsV0FTYyxHQUFBLEtBQUEsQ0FUZCxXQVNjO0FBQUEsUUFUZCxTQVNjLEdBQUEsS0FBQSxDQVRkLFNBU2M7QUFBQSxRQVRkLFFBU2MsR0FBQSxLQUFBLENBVGQsUUFTYztBQUFBLFFBVGQsUUFTYyxHQUFBLEtBQUEsQ0FUZCxRQVNjO0FBQUEsUUFEcEIsR0FDb0IsR0FBQSxLQUFBLENBRHBCLEdBQ29CO0FBQ3BCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxhQUFBO0FBRUwsTUFBQSxHQUZLLEVBQUEsR0FBQTtBQUdMLE1BQUEsV0FBVyxFQUhOLFdBQUE7QUFJTCxNQUFBLFVBQVUsRUFBRSxLQUFLLElBSlosRUFBQTtBQUtMLE1BQUEsV0FBVyxFQUFFLFdBQVcsSUFMbkIsRUFBQTtBQU1MLE1BQUEsU0FBUyxFQUFFLFNBQVMsSUFOZixFQUFBO0FBT0wsTUFBQSxRQUFRLEVBQUcsUUFBNkMsSUFQbkQsRUFBQTtBQVFMLE1BQUEsUUFBUSxFQUFFLFFBQVEsSUFSYixFQUFBO0FBU0wsTUFBQSxHQUFBLEVBQUE7QUFUSyxLQUFQOzs7U0FhRixlLEdBQUEsU0FBQSxlQUFBLENBQUEsS0FBQSxFQVVDO0FBQUEsUUFWZSxJQVVmLEdBQUEsS0FBQSxDQVZlLElBVWY7QUFBQSxRQVZlLE1BVWYsR0FBQSxLQUFBLENBVmUsTUFVZjtBQUFBLFFBVmUsSUFVZixHQUFBLEtBQUEsQ0FWZSxJQVVmO0FBQUEsUUFOQyxHQU1ELEdBQUEsS0FBQSxDQU5DLEdBTUQ7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsMEJBQUE7QUFFTCxNQUFBLElBRkssRUFBQSxJQUFBO0FBR0wsTUFBQSxNQUhLLEVBQUEsTUFBQTtBQUlMLE1BQUEsSUFKSyxFQUFBLElBQUE7QUFLTCxNQUFBLEdBQUEsRUFBQTtBQUxLLEtBQVA7OztTQVNGLEksR0FBQSxTQUFBLElBQUEsQ0FBQSxLQUFBLEVBUUM7QUFBQSxRQVJJLElBUUosR0FBQSxLQUFBLENBUkksSUFRSjtBQUFBLFFBUkksS0FRSixHQUFBLEtBQUEsQ0FSSSxLQVFKO0FBQUEsUUFMQyxHQUtELEdBQUEsS0FBQSxDQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsSUFBSSxFQUZDLElBQUE7QUFHTCxNQUFBLEtBQUssRUFIQSxLQUFBO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQOzs7U0FRRixJLEdBQUEsU0FBQSxJQUFBLENBQUEsS0FBQSxFQUF1RDtBQUFBLFFBQWxELEtBQWtELEdBQUEsS0FBQSxDQUFsRCxLQUFrRDtBQUFBLFFBQXpDLEdBQXlDLEdBQUEsS0FBQSxDQUF6QyxHQUF5QztBQUNyRCxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsS0FGSyxFQUFBLEtBQUE7QUFHTCxNQUFBLEdBQUEsRUFBQTtBQUhLLEtBQVA7OztTQU9GLEssR0FBQSxTQUFBLEtBQUEsQ0FBQSxLQUFBLEVBVUM7QUFBQSxRQVZLLElBVUwsR0FBQSxLQUFBLENBVkssSUFVTDtBQUFBLFFBVkssTUFVTCxHQUFBLEtBQUEsQ0FWSyxNQVVMO0FBQUEsUUFWSyxJQVVMLEdBQUEsS0FBQSxDQVZLLElBVUw7QUFBQSxRQU5DLEdBTUQsR0FBQSxLQUFBLENBTkMsR0FNRDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxlQUFBO0FBRUwsTUFBQSxJQUZLLEVBQUEsSUFBQTtBQUdMLE1BQUEsTUFISyxFQUFBLE1BQUE7QUFJTCxNQUFBLElBSkssRUFBQSxJQUFBO0FBS0wsTUFBQSxHQUFBLEVBQUE7QUFMSyxLQUFQOzs7U0FTRixJLEdBQUEsU0FBQSxJQUFBLENBQUEsTUFBQSxFQVFDO0FBQUEsUUFSSSxJQVFKLEdBQUEsTUFBQSxDQVJJLElBUUo7QUFBQSxRQVJJLElBUUosR0FBQSxNQUFBLENBUkksSUFRSjtBQUFBLFFBTEMsR0FLRCxHQUFBLE1BQUEsQ0FMQyxHQUtEOztBQUFBLFFBQUEsYUFBQSxHQUNvRCxZQUFZLENBRGhFLElBQ2dFLENBRGhFO0FBQUEsUUFDSyxZQURMLEdBQUEsYUFBQSxDQUFBLFFBQUE7QUFBQSxRQUNzQyxTQUR0QyxHQUFBLGFBQUEsQ0FBQSxLQUFBOztBQUVDLFFBQUksS0FBSyxHQUFBLEdBQUEsTUFBQSxDQUFBLFNBQUEsRUFBVCxJQUFTLENBQVQ7QUFDQSxRQUFJLFFBQVEsR0FBRyxHQUFBLE1BQUEsQ0FBQSxZQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsQ0FBZixHQUFlLENBQWY7QUFFQSxXQUFPLElBQUEsbUNBQUEsQ0FBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBUCxHQUFPLENBQVA7OztTQUdGLEksR0FBQSxTQUFBLElBQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUFrQztBQUNoQyxRQUFJLEtBQUksQ0FBSixDQUFJLENBQUosS0FBSixHQUFBLEVBQXFCO0FBQ25CLGFBQU8sS0FBQSxNQUFBLENBQUEsS0FBQSxFQUFQLEdBQU8sQ0FBUDtBQURGLEtBQUEsTUFFTyxJQUFJLEtBQUksS0FBUixNQUFBLEVBQXFCO0FBQzFCLGFBQU8sS0FBQSxNQUFBLEVBQVAsR0FBTyxDQUFQO0FBREssS0FBQSxNQUVBO0FBQ0wsYUFBTyxLQUFBLEtBQUEsRUFBQSxLQUFBLEVBQVAsR0FBTyxDQUFQO0FBQ0Q7OzttQkFHSCxTQUFBLEtBQUEsQ0FBQSxHQUFBLEVBQW9CO0FBQ2xCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsTUFBQSxHQUFBLEVBQUE7QUFGSyxLQUFQOzs7U0FNRixNLEdBQUEsU0FBQSxNQUFBLENBQUEsSUFBQSxFQUFBLEdBQUEsRUFBb0M7QUFDbEM7QUFEa0MsYUFFbEMsa0JBQU8sSUFBSSxDQUFKLENBQUksQ0FBSixLQUYyQixHQUVsQyxFQUZrQyx1REFFbEMsQ0FGa0M7QUFJbEMsV0FBTztBQUNMLE1BQUEsSUFBSSxFQURDLFFBQUE7QUFFTCxNQUFBLElBRkssRUFBQSxJQUFBO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQOzs7a0JBT0YsU0FBQSxJQUFBLENBQUEsSUFBQSxFQUFBLEdBQUEsRUFBaUM7QUFBQSxhQUMvQixrQkFBTyxJQUFJLEtBRG9CLE1BQy9CLEVBRCtCLG1FQUMvQixDQUQrQjtBQUFBLGFBRS9CLGtCQUNFLElBQUksQ0FBSixDQUFJLENBQUosS0FESSxHQUFOLEVBQU0scUNBQUEsSUFBQSxHQUFBLHVCQUFBLEdBRnlCLElBRXpCLEdBRnlCLFlBRS9CLENBRitCO0FBTy9CLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxTQUFBO0FBRUwsTUFBQSxJQUZLLEVBQUEsSUFBQTtBQUdMLE1BQUEsR0FBQSxFQUFBO0FBSEssS0FBUDs7O1NBT0YsSSxHQUFBLFNBQUEsSUFBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQTZDO0FBQzNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxNQUFBO0FBRUwsTUFBQSxLQUFLLEVBQUUsS0FBSyxJQUZQLEVBQUE7QUFHTCxNQUFBLEdBQUEsRUFBQTtBQUhLLEtBQVA7OztTQU9GLEksR0FBQSxTQUFBLElBQUEsQ0FBQSxNQUFBLEVBUUM7QUFBQSxRQVJJLEdBUUosR0FBQSxNQUFBLENBUkksR0FRSjtBQUFBLFFBUkksS0FRSixHQUFBLE1BQUEsQ0FSSSxLQVFKO0FBQUEsUUFMQyxHQUtELEdBQUEsTUFBQSxDQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsR0FBRyxFQUZFLEdBQUE7QUFHTCxNQUFBLEtBSEssRUFBQSxLQUFBO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQOzs7U0FRRixPLEdBQUEsU0FBQSxPQUFBLENBQUEsTUFBQSxFQVFDO0FBQUEsUUFSZ0MsSUFRaEMsR0FBQSxNQUFBLENBUmdDLElBUWhDO0FBQUEsUUFSZ0MsS0FRaEMsR0FBQSxNQUFBLENBUmdDLEtBUWhDO0FBQUEsUUFMQyxHQUtELEdBQUEsTUFBQSxDQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQURLLEVBQUEsSUFBQTtBQUVMLE1BQUEsS0FGSyxFQUFBLEtBQUE7QUFHTCxNQUFBLFFBQVEsRUFISCxLQUFBO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQOzs7U0FRRixTOzs7Ozs7Ozs7O0lBQUEsWUFBUztBQUNQLFdBQU8sS0FBQSxPQUFBLENBQWE7QUFBRSxNQUFBLElBQUksRUFBTixrQkFBQTtBQUE0QixNQUFBLEtBQUssRUFBRTtBQUFuQyxLQUFiLENBQVA7OzttQkFHRixTQUFBLEtBQUEsR0FBSTtBQUNGLFdBQU8sS0FBQSxPQUFBLENBQWE7QUFBRSxNQUFBLElBQUksRUFBTixhQUFBO0FBQXVCLE1BQUEsS0FBSyxFQUFFO0FBQTlCLEtBQWIsQ0FBUDs7O1NBR0YsTSxHQUFBLFNBQUEsTUFBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQXFDO0FBQ25DLFdBQU8sS0FBQSxPQUFBLENBQWE7QUFBRSxNQUFBLElBQUksRUFBTixlQUFBO0FBQXlCLE1BQUEsS0FBekIsRUFBQSxLQUFBO0FBQWdDLE1BQUEsR0FBQSxFQUFBO0FBQWhDLEtBQWIsQ0FBUDs7O3NCQUdGLFNBQUEsT0FBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQXVDO0FBQ3JDLFdBQU8sS0FBQSxPQUFBLENBQWE7QUFBRSxNQUFBLElBQUksRUFBTixnQkFBQTtBQUEwQixNQUFBLEtBQTFCLEVBQUEsS0FBQTtBQUFpQyxNQUFBLEdBQUEsRUFBQTtBQUFqQyxLQUFiLENBQVA7OztTQUdGLE0sR0FBQSxTQUFBLE1BQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUFxQztBQUNuQyxXQUFPLEtBQUEsT0FBQSxDQUFhO0FBQUUsTUFBQSxJQUFJLEVBQU4sZUFBQTtBQUF5QixNQUFBLEtBQXpCLEVBQUEsS0FBQTtBQUFnQyxNQUFBLEdBQUEsRUFBQTtBQUFoQyxLQUFiLENBQVA7Ozs7S0ErQ0o7OztBQUVBLFNBQUEsWUFBQSxDQUFBLElBQUEsRUFBMEM7QUFDeEMsVUFBUSxJQUFJLENBQVosSUFBQTtBQUNFLFNBQUEsUUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQOztBQUNGLFNBQUEsVUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQUYsRUFBQSxNQUFBO0FBQW9CLFFBQUEsS0FBSyxFQUFFO0FBQTNCLE9BQVA7O0FBQ0YsU0FBQSxTQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7QUFOSjtBQVFEOztlQUVjLElBQWYsUUFBZSxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBQYXJzZXJOb2RlQnVpbGRlciB9IGZyb20gJy4uL3BhcnNlcic7XG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VPZmZzZXQsIFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX1NUUklQID0ge1xuICBjbG9zZTogZmFsc2UsXG4gIG9wZW46IGZhbHNlLFxufTtcblxuLyoqXG4gKiBUaGUgUGFyc2VyIEJ1aWxkZXIgZGlmZmVyZW50aWF0ZXMgZnJvbSB0aGUgcHVibGljIGJ1aWxkZXIgQVBJIGJ5OlxuICpcbiAqIDEuIE9mZmVyaW5nIGZld2VyIGRpZmZlcmVudCB3YXlzIHRvIGluc3RhbnRpYXRlIG5vZGVzXG4gKiAyLiBNYW5kYXRpbmcgc291cmNlIGxvY2F0aW9uc1xuICovXG5jbGFzcyBCdWlsZGVycyB7XG4gIHBvcyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrSXRzZWxmKHtcbiAgICBib2R5LFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIGNoYWluZWQgPSBmYWxzZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBjaGFpbmVkPzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5CbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9jaycsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgY2hhaW5lZCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGVtcGxhdGUoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdO1xuICAgIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuVGVtcGxhdGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgICAgYm9keTogYm9keSB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGUoe1xuICAgIHBhdGgsXG4gICAgcGFyYW1zLFxuICAgIGhhc2gsXG4gICAgdHJ1c3RpbmcsXG4gICAgbG9jLFxuICAgIHN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICB0cnVzdGluZzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gICAgc3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGVzY2FwZWQ6ICF0cnVzdGluZyxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBibG9jayh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBkZWZhdWx0QmxvY2ssXG4gICAgZWxzZUJsb2NrID0gbnVsbCxcbiAgICBsb2MsXG4gICAgb3BlblN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgICBpbnZlcnNlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGNsb3NlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBBU1R2MS5TdWJFeHByZXNzaW9uO1xuICAgIHBhcmFtczogQVNUdjEuRXhwcmVzc2lvbltdO1xuICAgIGhhc2g6IEFTVHYxLkhhc2g7XG4gICAgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgICBlbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuQmxvY2s+O1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBvcGVuU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgaW52ZXJzZVN0cmlwOiBBU1R2MS5TdHJpcEZsYWdzO1xuICAgIGNsb3NlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayxcbiAgICAgIGludmVyc2U6IGVsc2VCbG9jayxcbiAgICAgIGxvYzogbG9jLFxuICAgICAgb3BlblN0cmlwOiBvcGVuU3RyaXAsXG4gICAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VPZmZzZXQpOiBQYXJzZXJOb2RlQnVpbGRlcjxBU1R2MS5Db21tZW50U3RhdGVtZW50PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBjb25jYXQoXG4gICAgcGFydHM6IFByZXNlbnRBcnJheTxBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50PixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgICBwYXJ0cyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudCh7XG4gICAgdGFnLFxuICAgIHNlbGZDbG9zaW5nLFxuICAgIGF0dHJzLFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIG1vZGlmaWVycyxcbiAgICBjb21tZW50cyxcbiAgICBjaGlsZHJlbixcbiAgICBsb2MsXG4gIH06IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgICB0YWcsXG4gICAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnRNb2RpZmllcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdHRyKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuQXR0ck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGV4dCh7IGNoYXJzLCBsb2MgfTogeyBjaGFyczogc3RyaW5nOyBsb2M6IFNvdXJjZVNwYW4gfSk6IEFTVHYxLlRleHROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICAgIGNoYXJzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBzZXhwcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhdGgoe1xuICAgIGhlYWQsXG4gICAgdGFpbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBoZWFkOiBBU1R2MS5QYXRoSGVhZDtcbiAgICB0YWlsOiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCwgcGFydHM6IGhlYWRQYXJ0cyB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICAgIGxldCBwYXJ0cyA9IFsuLi5oZWFkUGFydHMsIC4uLnRhaWxdO1xuICAgIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnBhcnRzXS5qb2luKCcuJyk7XG5cbiAgICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKG9yaWdpbmFsLCBoZWFkLCB0YWlsLCBsb2MpO1xuICB9XG5cbiAgaGVhZChoZWFkOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgICBpZiAoaGVhZFswXSA9PT0gJ0AnKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdE5hbWUoaGVhZCwgbG9jKTtcbiAgICB9IGVsc2UgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgICAgcmV0dXJuIHRoaXMudGhpcyhsb2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy52YXIoaGVhZCwgbG9jKTtcbiAgICB9XG4gIH1cblxuICB0aGlzKGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgYXROYW1lKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIC8vIHRoZSBgQGAgc2hvdWxkIGJlIGluY2x1ZGVkIHNvIHdlIGhhdmUgYSBjb21wbGV0ZSBzb3VyY2UgcmFuZ2VcbiAgICBhc3NlcnQobmFtZVswXSA9PT0gJ0AnLCBgY2FsbCBidWlsZGVycy5hdCgpIHdpdGggYSBzdHJpbmcgdGhhdCBzdGFydHMgd2l0aCAnQCdgKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHZhcihuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgICBhc3NlcnQobmFtZSAhPT0gJ3RoaXMnLCBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgKTtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgICBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgICBuYW1lLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBoYXNoKHBhaXJzOiBBU1R2MS5IYXNoUGFpcltdLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5IYXNoIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0hhc2gnLFxuICAgICAgcGFpcnM6IHBhaXJzIHx8IFtdLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBwYWlyKHtcbiAgICBrZXksXG4gICAgdmFsdWUsXG4gICAgbG9jLFxuICB9OiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuSGFzaFBhaXIge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaFBhaXInLFxuICAgICAga2V5OiBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4oe1xuICAgIHR5cGUsXG4gICAgdmFsdWUsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgdHlwZTogVFsndHlwZSddO1xuICAgIHZhbHVlOiBUWyd2YWx1ZSddO1xuICAgIGxvYz86IFNvdXJjZUxvY2F0aW9uO1xuICB9KTogVCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9yaWdpbmFsOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9IGFzIFQ7XG4gIH1cblxuICB1bmRlZmluZWQoKTogQVNUdjEuVW5kZWZpbmVkTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdVbmRlZmluZWRMaXRlcmFsJywgdmFsdWU6IHVuZGVmaW5lZCB9KTtcbiAgfVxuXG4gIG51bGwoKTogQVNUdjEuTnVsbExpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnTnVsbExpdGVyYWwnLCB2YWx1ZTogbnVsbCB9KTtcbiAgfVxuXG4gIHN0cmluZyh2YWx1ZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5TdHJpbmdMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1N0cmluZ0xpdGVyYWwnLCB2YWx1ZSwgbG9jIH0pO1xuICB9XG5cbiAgYm9vbGVhbih2YWx1ZTogYm9vbGVhbiwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuQm9vbGVhbkxpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnQm9vbGVhbkxpdGVyYWwnLCB2YWx1ZSwgbG9jIH0pO1xuICB9XG5cbiAgbnVtYmVyKHZhbHVlOiBudW1iZXIsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk51bWJlckxpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnTnVtYmVyTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cbn1cblxuLy8gTm9kZXNcblxuZXhwb3J0IHR5cGUgRWxlbWVudFBhcnRzID1cbiAgfCBbJ2F0dHJzJywgLi4uQXR0clNleHBbXV1cbiAgfCBbJ21vZGlmaWVycycsIC4uLk1vZGlmaWVyU2V4cFtdXVxuICB8IFsnYm9keScsIC4uLkFTVHYxLlN0YXRlbWVudFtdXVxuICB8IFsnY29tbWVudHMnLCAuLi5FbGVtZW50Q29tbWVudFtdXVxuICB8IFsnYXMnLCAuLi5zdHJpbmdbXV1cbiAgfCBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgUGF0aFNleHAgPSBzdHJpbmcgfCBbJ3BhdGgnLCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTW9kaWZpZXJTZXhwID1cbiAgfCBzdHJpbmdcbiAgfCBbUGF0aFNleHAsIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgRGljdDxBU1R2MS5FeHByZXNzaW9uPiwgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBBdHRyU2V4cCA9IFtzdHJpbmcsIEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddIHwgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIExvY1NleHAgPSBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbW1lbnQgPSBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQgfCBTb3VyY2VMb2NhdGlvbiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2V4cFZhbHVlID1cbiAgfCBzdHJpbmdcbiAgfCBBU1R2MS5FeHByZXNzaW9uW11cbiAgfCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+XG4gIHwgTG9jU2V4cFxuICB8IFBhdGhTZXhwXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxlbWVudE9wdGlvbnMge1xuICB0YWc6IHN0cmluZztcbiAgc2VsZkNsb3Npbmc6IGJvb2xlYW47XG4gIGF0dHJzOiBBU1R2MS5BdHRyTm9kZVtdO1xuICBtb2RpZmllcnM6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFtdO1xuICBjaGlsZHJlbjogQVNUdjEuU3RhdGVtZW50W107XG4gIGNvbW1lbnRzOiBFbGVtZW50Q29tbWVudFtdO1xuICBibG9ja1BhcmFtczogc3RyaW5nW107XG4gIGxvYzogU291cmNlU3Bhbjtcbn1cblxuLy8gRXhwcmVzc2lvbnNcblxuZnVuY3Rpb24gaGVhZFRvU3RyaW5nKGhlYWQ6IEFTVHYxLlBhdGhIZWFkKTogeyBvcmlnaW5hbDogc3RyaW5nOyBwYXJ0czogc3RyaW5nW10gfSB7XG4gIHN3aXRjaCAoaGVhZC50eXBlKSB7XG4gICAgY2FzZSAnQXRIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICAgIGNhc2UgJ1RoaXNIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBgdGhpc2AsIHBhcnRzOiBbXSB9O1xuICAgIGNhc2UgJ1ZhckhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEJ1aWxkZXJzKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFNQTs7QUFFQSxJQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztJQU1BLFE7Ozs7O1NBQ0UsRyxHQUFBLFNBQUEsR0FBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQWdDO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBREssRUFBQSxJQUFBO0FBRUwsTUFBQSxNQUFBLEVBQUE7QUFGSyxLQUFQOzs7U0FNRixXLEdBQUEsU0FBQSxXQUFBLENBQUEsSUFBQSxFQVVDO0FBQUEsUUFWVyxJQVVYLEdBQUEsSUFBQSxDQVZXLElBVVg7QUFBQSxRQVZXLFdBVVgsR0FBQSxJQUFBLENBVlcsV0FVWDtBQUFBLFFBQUEsWUFBQSxHQUFBLElBQUEsQ0FQQyxPQU9EO0FBQUEsUUFQQyxPQU9ELEdBQUEsWUFBQSxLQUFBLEtBQUEsQ0FBQSxHQVZXLEtBVVgsR0FBQSxZQUFBO0FBQUEsUUFOQyxHQU1ELEdBQUEsSUFBQSxDQU5DLEdBTUQ7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsT0FBQTtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFGTCxFQUFBO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUhuQixFQUFBO0FBSUwsTUFBQSxPQUpLLEVBQUEsT0FBQTtBQUtMLE1BQUEsR0FBQSxFQUFBO0FBTEssS0FBUDs7O1NBU0YsUSxHQUFBLFNBQUEsUUFBQSxDQUFBLEtBQUEsRUFRQztBQUFBLFFBUlEsSUFRUixHQUFBLEtBQUEsQ0FSUSxJQVFSO0FBQUEsUUFSUSxXQVFSLEdBQUEsS0FBQSxDQVJRLFdBUVI7QUFBQSxRQUxDLEdBS0QsR0FBQSxLQUFBLENBTEMsR0FLRDtBQUNDLFdB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QztBQUNuQyxXQUFPLEtBQUEsT0FBQSxDQUFhO0FBQUUsTUFBQSxJQUFJLEVBQU4sZUFBQTtBQUF5QixNQUFBLEtBQXpCLEVBQUEsS0FBQTtBQUFnQyxNQUFBLEdBQUEsRUFBQTtBQUFoQyxLQUFiLENBQVA7Ozs7S0ErQ0o7OztBQUVBLFNBQUEsWUFBQSxDQUFBLElBQUEsRUFBMEM7QUFDeEMsVUFBUSxJQUFJLENBQVosSUFBQTtBQUNFLFNBQUEsUUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQOztBQUNGLFNBQUEsVUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQUYsRUFBQSxNQUFBO0FBQW9CLFFBQUEsS0FBSyxFQUFFO0FBQTNCLE9BQVA7O0FBQ0YsU0FBQSxTQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7QUFOSjtBQVFEOztlQUVjLElBQWYsUUFBZSxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBQYXJzZXJOb2RlQnVpbGRlciB9IGZyb20gJy4uL3BhcnNlcic7XG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VPZmZzZXQsIFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX1NUUklQID0ge1xuICBjbG9zZTogZmFsc2UsXG4gIG9wZW46IGZhbHNlLFxufTtcblxuLyoqXG4gKiBUaGUgUGFyc2VyIEJ1aWxkZXIgZGlmZmVyZW50aWF0ZXMgZnJvbSB0aGUgcHVibGljIGJ1aWxkZXIgQVBJIGJ5OlxuICpcbiAqIDEuIE9mZmVyaW5nIGZld2VyIGRpZmZlcmVudCB3YXlzIHRvIGluc3RhbnRpYXRlIG5vZGVzXG4gKiAyLiBNYW5kYXRpbmcgc291cmNlIGxvY2F0aW9uc1xuICovXG5jbGFzcyBCdWlsZGVycyB7XG4gIHBvcyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrSXRzZWxmKHtcbiAgICBib2R5LFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIGNoYWluZWQgPSBmYWxzZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBjaGFpbmVkPzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5CbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9jaycsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgY2hhaW5lZCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGVtcGxhdGUoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdO1xuICAgIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuVGVtcGxhdGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgICAgYm9keTogYm9keSB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGUoe1xuICAgIHBhdGgsXG4gICAgcGFyYW1zLFxuICAgIGhhc2gsXG4gICAgdHJ1c3RpbmcsXG4gICAgbG9jLFxuICAgIHN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICB0cnVzdGluZzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gICAgc3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGVzY2FwZWQ6ICF0cnVzdGluZyxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBibG9jayh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBkZWZhdWx0QmxvY2ssXG4gICAgZWxzZUJsb2NrID0gbnVsbCxcbiAgICBsb2MsXG4gICAgb3BlblN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgICBpbnZlcnNlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGNsb3NlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBBU1R2MS5TdWJFeHByZXNzaW9uO1xuICAgIHBhcmFtczogQVNUdjEuRXhwcmVzc2lvbltdO1xuICAgIGhhc2g6IEFTVHYxLkhhc2g7XG4gICAgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgICBlbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuQmxvY2s+O1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBvcGVuU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgaW52ZXJzZVN0cmlwOiBBU1R2MS5TdHJpcEZsYWdzO1xuICAgIGNsb3NlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayxcbiAgICAgIGludmVyc2U6IGVsc2VCbG9jayxcbiAgICAgIGxvYzogbG9jLFxuICAgICAgb3BlblN0cmlwOiBvcGVuU3RyaXAsXG4gICAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VPZmZzZXQpOiBQYXJzZXJOb2RlQnVpbGRlcjxBU1R2MS5Db21tZW50U3RhdGVtZW50PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBjb25jYXQoXG4gICAgcGFydHM6IFByZXNlbnRBcnJheTxBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50PixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgICBwYXJ0cyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudCh7XG4gICAgdGFnLFxuICAgIHNlbGZDbG9zaW5nLFxuICAgIGF0dHJzLFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIG1vZGlmaWVycyxcbiAgICBjb21tZW50cyxcbiAgICBjaGlsZHJlbixcbiAgICBsb2MsXG4gIH06IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgICB0YWcsXG4gICAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnRNb2RpZmllcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdHRyKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuQXR0ck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGV4dCh7IGNoYXJzLCBsb2MgfTogeyBjaGFyczogc3RyaW5nOyBsb2M6IFNvdXJjZVNwYW4gfSk6IEFTVHYxLlRleHROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICAgIGNoYXJzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBzZXhwcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhdGgoe1xuICAgIGhlYWQsXG4gICAgdGFpbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBoZWFkOiBBU1R2MS5QYXRoSGVhZDtcbiAgICB0YWlsOiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICAgIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -22,4 +22,4 @@ var __classPrivateFieldSet = this && this.__classPrivateFieldSet || function (receiver, privateMap, value) {

export class SymbolTable {
static top(locals) {
return new ProgramSymbolTable(locals);
static top(locals, customizeComponentName) {
return new ProgramSymbolTable(locals, customizeComponentName);
}

@@ -34,5 +34,6 @@

export class ProgramSymbolTable extends SymbolTable {
constructor(templateLocals) {
constructor(templateLocals, customizeComponentName) {
super();
this.templateLocals = templateLocals;
this.customizeComponentName = customizeComponentName;
this.symbols = [];

@@ -85,3 +86,9 @@ this.upvars = [];

allocateFree(name) {
allocateFree(name, resolution) {
if (resolution.resolution() === 39
/* GetFreeAsComponentHead */
) {
name = this.customizeComponentName(name);
}
let index = this.upvars.indexOf(name);

@@ -165,4 +172,4 @@

allocateFree(name) {
return this.parent.allocateFree(name);
allocateFree(name, resolution) {
return this.parent.allocateFree(name, resolution);
}

@@ -183,2 +190,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxTQUFTLElBQVQsUUFBcUIsZUFBckI7QUFFQSxPQUFNLE1BQWdCLFdBQWhCLENBQTJCO0FBQy9CLFNBQU8sR0FBUCxDQUFXLE1BQVgsRUFBMkI7QUFDekIsV0FBTyxJQUFJLGtCQUFKLENBQXVCLE1BQXZCLENBQVA7QUFDRDs7QUFlRCxFQUFBLEtBQUssQ0FBQyxNQUFELEVBQWlCO0FBQ3BCLFFBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFQLENBQVksSUFBRCxJQUFVLEtBQUssUUFBTCxDQUFjLElBQWQsQ0FBckIsQ0FBZDtBQUNBLFdBQU8sSUFBSSxnQkFBSixDQUFxQixJQUFyQixFQUEyQixNQUEzQixFQUFtQyxPQUFuQyxDQUFQO0FBQ0Q7O0FBckI4QjtBQXdCakMsT0FBTSxNQUFPLGtCQUFQLFNBQWtDLFdBQWxDLENBQTZDO0FBQ2pELEVBQUEsV0FBQSxDQUFvQixjQUFwQixFQUE0QztBQUMxQztBQURrQixTQUFBLGNBQUEsR0FBQSxjQUFBO0FBSWIsU0FBQSxPQUFBLEdBQW9CLEVBQXBCO0FBQ0EsU0FBQSxNQUFBLEdBQW1CLEVBQW5CO0FBRUMsU0FBQSxJQUFBLEdBQU8sQ0FBUDtBQUNBLFNBQUEsS0FBQSxHQUFRLElBQUksRUFBWjtBQUNBLFNBQUEsTUFBQSxHQUFTLElBQUksRUFBYjtBQUNBLFNBQUEsa0JBQUEsR0FBK0IsRUFBL0I7O0FBRVIsSUFBQSxRQUFBLENBQUEsR0FBQSxDQUFBLElBQUEsRUFBVyxLQUFYO0FBVkM7O0FBWUQsRUFBQSxxQkFBcUIsR0FBQTtBQUNuQixXQUFPLEtBQUssa0JBQVo7QUFDRDs7QUFFRCxFQUFBLFVBQVUsR0FBQTtBQUNSLElBQUEsc0JBQUEsQ0FBQSxJQUFBLEVBQUksUUFBSixFQUFnQixJQUFoQixDQUFBO0FBQ0Q7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QTBCLElBQTFCLENBQVA7QUFDRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQyxVQUFELEVBQW1CO0FBQ3pCLFdBQU8sS0FBSyxNQUFMLENBQVksUUFBWixDQUFxQixVQUFyQixDQUFQO0FBQ0Q7O0FBL0M4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmUsIERpY3QgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN5bWJvbFRhYmxlIHtcbiAgc3RhdGljIHRvcChsb2NhbHM6IHN0cmluZ1tdKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IFByb2dyYW1TeW1ib2xUYWJsZShsb2NhbHMpO1xuICB9XG5cbiAgYWJzdHJhY3QgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGdldChuYW1lOiBzdHJpbmcpOiBbc3ltYm9sOiBudW1iZXIsIGlzUm9vdDogYm9vbGVhbl07XG5cbiAgYWJzdHJhY3QgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPjtcbiAgYWJzdHJhY3QgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbztcblxuICBhYnN0cmFjdCBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlcjtcblxuICBhYnN0cmFjdCBzZXRIYXNFdmFsKCk6IHZvaWQ7XG5cbiAgY2hpbGQobG9jYWxzOiBzdHJpbmdbXSk6IEJsb2NrU3ltYm9sVGFibGUge1xuICAgIGxldCBzeW1ib2xzID0gbG9jYWxzLm1hcCgobmFtZSkgPT4gdGhpcy5hbGxvY2F0ZShuYW1lKSk7XG4gICAgcmV0dXJuIG5ldyBCbG9ja1N5bWJvbFRhYmxlKHRoaXMsIGxvY2Fscywgc3ltYm9scyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb2dyYW1TeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyB1cHZhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBzaXplID0gMTtcbiAgcHJpdmF0ZSBuYW1lZCA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIGJsb2NrcyA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHVzZWRUZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10gPSBbXTtcblxuICAjaGFzRXZhbCA9IGZhbHNlO1xuXG4gIGdldFVzZWRUZW1wbGF0ZUxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNoYXNFdmFsID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBoYXNFdmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNoYXNFdmFsO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTG9jYWxzLmluZGV4T2YobmFtZSkgIT09IC0xO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5sZW5ndGg7XG4gICAgdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gW2luZGV4LCB0cnVlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIHJldHVybiBkaWN0KCk7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy51cHZhcnMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBpbmRleCA9IHRoaXMudXB2YXJzLmxlbmd0aDtcbiAgICB0aGlzLnVwdmFycy5wdXNoKG5hbWUpO1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdO1xuXG4gICAgaWYgKCFuYW1lZCkge1xuICAgICAgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdID0gdGhpcy5hbGxvY2F0ZShuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZWQ7XG4gIH1cblxuICBhbGxvY2F0ZUJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKG5hbWUgPT09ICdpbnZlcnNlJykge1xuICAgICAgbmFtZSA9ICdlbHNlJztcbiAgICB9XG5cbiAgICBsZXQgYmxvY2sgPSB0aGlzLmJsb2Nrc1tuYW1lXTtcblxuICAgIGlmICghYmxvY2spIHtcbiAgICAgIGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV0gPSB0aGlzLmFsbG9jYXRlKGAmJHtuYW1lfWApO1xuICAgIH1cblxuICAgIHJldHVybiBibG9jaztcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdGhpcy5zeW1ib2xzLnB1c2goaWRlbnRpZmllcik7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSsrO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCbG9ja1N5bWJvbFRhYmxlIGV4dGVuZHMgU3ltYm9sVGFibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogU3ltYm9sVGFibGUsIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSwgcHVibGljIHNsb3RzOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgbG9jYWxzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKSAhPT0gLTEgfHwgdGhpcy5wYXJlbnQuaGFzKG5hbWUpO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgc2xvdCA9IHRoaXMuc3ltYm9scy5pbmRleE9mKG5hbWUpO1xuICAgIHJldHVybiBzbG90ID09PSAtMSA/IHRoaXMucGFyZW50LmdldChuYW1lKSA6IFt0aGlzLnNsb3RzW3Nsb3RdLCBmYWxzZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICBsZXQgZGljdCA9IHRoaXMucGFyZW50LmdldExvY2Fsc01hcCgpO1xuICAgIHRoaXMuc3ltYm9scy5mb3JFYWNoKChzeW1ib2wpID0+IChkaWN0W3N5bWJvbF0gPSB0aGlzLmdldChzeW1ib2wpWzBdKSk7XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudC5zZXRIYXNFdmFsKCk7XG4gIH1cblxuICBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVGcmVlKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZU5hbWVkKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZUJsb2NrKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGUoaWRlbnRpZmllcik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxTQUFTLElBQVQsUUFBcUIsZUFBckI7QUFJQSxPQUFNLE1BQWdCLFdBQWhCLENBQTJCO0FBQy9CLFNBQU8sR0FBUCxDQUNFLE1BREYsRUFFRSxzQkFGRixFQUVtRDtBQUVqRCxXQUFPLElBQUksa0JBQUosQ0FBdUIsTUFBdkIsRUFBK0Isc0JBQS9CLENBQVA7QUFDRDs7QUFlRCxFQUFBLEtBQUssQ0FBQyxNQUFELEVBQWlCO0FBQ3BCLFFBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFQLENBQVksSUFBRCxJQUFVLEtBQUssUUFBTCxDQUFjLElBQWQsQ0FBckIsQ0FBZDtBQUNBLFdBQU8sSUFBSSxnQkFBSixDQUFxQixJQUFyQixFQUEyQixNQUEzQixFQUFtQyxPQUFuQyxDQUFQO0FBQ0Q7O0FBeEI4QjtBQTJCakMsT0FBTSxNQUFPLGtCQUFQLFNBQWtDLFdBQWxDLENBQTZDO0FBQ2pELEVBQUEsV0FBQSxDQUNVLGNBRFYsRUFFVSxzQkFGVixFQUUyRDtBQUV6RDtBQUhRLFNBQUEsY0FBQSxHQUFBLGNBQUE7QUFDQSxTQUFBLHNCQUFBLEdBQUEsc0JBQUE7QUFLSCxTQUFBLE9BQUEsR0FBb0IsRUFBcEI7QUFDQSxTQUFBLE1BQUEsR0FBbUIsRUFBbkI7QUFFQyxTQUFBLElBQUEsR0FBTyxDQUFQO0FBQ0EsU0FBQSxLQUFBLEdBQVEsSUFBSSxFQUFaO0FBQ0EsU0FBQSxNQUFBLEdBQVMsSUFBSSxFQUFiO0FBQ0EsU0FBQSxrQkFBQSxHQUErQixFQUEvQjs7QUFFUixJQUFBLFFBQUEsQ0FBQSxHQUFBLENBQUEsSUFBQSxFQUFXLEtBQVg7QUFWQzs7QUFZRCxFQUFBLHFCQUFxQixHQUFBO0FBQ25CLFdBQU8sS0FBSyxrQkFBWjtBQUNEOztBQUVELEVBQUEsVUFBVSxHQUFB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QUFMLENBQVksWUFBWixDQUF5QixJQUF6QixFQUErQixVQUEvQixDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxhQUFhLENBQUMsSUFBRCxFQUFhO0FBQ3hCLFdBQU8sS0FBSyxNQUFMLENBQVksYUFBWixDQUEwQixJQUExQixDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxhQUFhLENBQUMsSUFBRCxFQUFhO0FBQ3hCLFdBQU8sS0FBSyxNQUFMLENBQVksYUFBWixDQUEwQixJQUExQixDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxRQUFRLENBQUMsVUFBRCxFQUFtQjtBQUN6QixXQUFPLEtBQUssTUFBTCxDQUFZLFFBQVosQ0FBcUIsVUFBckIsQ0FBUDtBQUNEOztBQS9DOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlLCBEaWN0LCBTZXhwT3Bjb2RlcyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBBU1R2MiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN5bWJvbFRhYmxlIHtcbiAgc3RhdGljIHRvcChcbiAgICBsb2NhbHM6IHN0cmluZ1tdLFxuICAgIGN1c3RvbWl6ZUNvbXBvbmVudE5hbWU6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgKTogUHJvZ3JhbVN5bWJvbFRhYmxlIHtcbiAgICByZXR1cm4gbmV3IFByb2dyYW1TeW1ib2xUYWJsZShsb2NhbHMsIGN1c3RvbWl6ZUNvbXBvbmVudE5hbWUpO1xuICB9XG5cbiAgYWJzdHJhY3QgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGdldChuYW1lOiBzdHJpbmcpOiBbc3ltYm9sOiBudW1iZXIsIGlzUm9vdDogYm9vbGVhbl07XG5cbiAgYWJzdHJhY3QgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPjtcbiAgYWJzdHJhY3QgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbztcblxuICBhYnN0cmFjdCBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nLCByZXNvbHV0aW9uOiBBU1R2Mi5GcmVlVmFyUmVzb2x1dGlvbik6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgYWJzdHJhY3Qgc2V0SGFzRXZhbCgpOiB2b2lkO1xuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICBsZXQgc3ltYm9scyA9IGxvY2Fscy5tYXAoKG5hbWUpID0+IHRoaXMuYWxsb2NhdGUobmFtZSkpO1xuICAgIHJldHVybiBuZXcgQmxvY2tTeW1ib2xUYWJsZSh0aGlzLCBsb2NhbHMsIHN5bWJvbHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmFtU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgY3VzdG9taXplQ29tcG9uZW50TmFtZTogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyB1cHZhcnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBzaXplID0gMTtcbiAgcHJpdmF0ZSBuYW1lZCA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIGJsb2NrcyA9IGRpY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIHVzZWRUZW1wbGF0ZUxvY2Fsczogc3RyaW5nW10gPSBbXTtcblxuICAjaGFzRXZhbCA9IGZhbHNlO1xuXG4gIGdldFVzZWRUZW1wbGF0ZUxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLiNoYXNFdmFsID0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBoYXNFdmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNoYXNFdmFsO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlTG9jYWxzLmluZGV4T2YobmFtZSkgIT09IC0xO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVzZWRUZW1wbGF0ZUxvY2Fscy5sZW5ndGg7XG4gICAgdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gW2luZGV4LCB0cnVlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIHJldHVybiBkaWN0KCk7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZywgcmVzb2x1dGlvbjogQVNUdjIuRnJlZVZhclJlc29sdXRpb24pOiBudW1iZXIge1xuICAgIGlmIChyZXNvbHV0aW9uLnJlc29sdXRpb24oKSA9PT0gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCkge1xuICAgICAgbmFtZSA9IHRoaXMuY3VzdG9taXplQ29tcG9uZW50TmFtZShuYW1lKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSB0aGlzLnVwdmFycy5pbmRleE9mKG5hbWUpO1xuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGluZGV4ID0gdGhpcy51cHZhcnMubGVuZ3RoO1xuICAgIHRoaXMudXB2YXJzLnB1c2gobmFtZSk7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBuYW1lZCA9IHRoaXMubmFtZWRbbmFtZV07XG5cbiAgICBpZiAoIW5hbWVkKSB7XG4gICAgICBuYW1lZCA9IHRoaXMubmFtZWRbbmFtZV0gPSB0aGlzLmFsbG9jYXRlKG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZDtcbiAgfVxuXG4gIGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBpZiAobmFtZSA9PT0gJ2ludmVyc2UnKSB7XG4gICAgICBuYW1lID0gJ2Vsc2UnO1xuICAgIH1cblxuICAgIGxldCBibG9jayA9IHRoaXMuYmxvY2tzW25hbWVdO1xuXG4gICAgaWYgKCFibG9jaykge1xuICAgICAgYmxvY2sgPSB0aGlzLmJsb2Nrc1tuYW1lXSA9IHRoaXMuYWxsb2NhdGUoYCYke25hbWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJsb2NrO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICB0aGlzLnN5bWJvbHMucHVzaChpZGVudGlmaWVyKTtcbiAgICByZXR1cm4gdGhpcy5zaXplKys7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJsb2NrU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBTeW1ib2xUYWJsZSwgcHVibGljIHN5bWJvbHM6IHN0cmluZ1tdLCBwdWJsaWMgc2xvdHM6IG51bWJlcltdKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBsb2NhbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbHM7XG4gIH1cblxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9scy5pbmRleE9mKG5hbWUpICE9PSAtMSB8fCB0aGlzLnBhcmVudC5oYXMobmFtZSk7XG4gIH1cblxuICBnZXQobmFtZTogc3RyaW5nKTogW251bWJlciwgYm9vbGVhbl0ge1xuICAgIGxldCBzbG90ID0gdGhpcy5zeW1ib2xzLmluZGV4T2YobmFtZSk7XG4gICAgcmV0dXJuIHNsb3QgPT09IC0xID8gdGhpcy5wYXJlbnQuZ2V0KG5hbWUpIDogW3RoaXMuc2xvdHNbc2xvdF0sIGZhbHNlXTtcbiAgfVxuXG4gIGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj4ge1xuICAgIGxldCBkaWN0ID0gdGhpcy5wYXJlbnQuZ2V0TG9jYWxzTWFwKCk7XG4gICAgdGhpcy5zeW1ib2xzLmZvckVhY2goKHN5bWJvbCkgPT4gKGRpY3Rbc3ltYm9sXSA9IHRoaXMuZ2V0KHN5bWJvbClbMF0pKTtcbiAgICByZXR1cm4gZGljdDtcbiAgfVxuXG4gIGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm8ge1xuICAgIGxldCBsb2NhbHMgPSB0aGlzLmdldExvY2Fsc01hcCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhsb2NhbHMpLm1hcCgoc3ltYm9sKSA9PiBsb2NhbHNbc3ltYm9sXSk7XG4gIH1cblxuICBzZXRIYXNFdmFsKCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50LnNldEhhc0V2YWwoKTtcbiAgfVxuXG4gIGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcsIHJlc29sdXRpb246IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVGcmVlKG5hbWUsIHJlc29sdXRpb24pO1xuICB9XG5cbiAgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZU5hbWVkKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hbGxvY2F0ZUJsb2NrKG5hbWUpO1xuICB9XG5cbiAgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGUoaWRlbnRpZmllcik7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -205,7 +205,5 @@ import { assert } from '@glimmer/util';

let {
original: originalHead,
parts: headParts
original: originalHead
} = headToString(head);
let parts = [...headParts, ...tail];
let original = [...originalHead, ...parts].join('.');
let original = [...originalHead, ...tail].join('.');
return new PathExpressionImplV1(original, head, tail, loc);

@@ -349,2 +347,2 @@ }

export default new Builders();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQVMsTUFBVCxRQUF1QixlQUF2QjtBQU1BLFNBQVMsb0JBQVQsUUFBcUMsa0JBQXJDO0FBRUEsTUFBTSxhQUFhLEdBQUc7QUFDcEIsRUFBQSxLQUFLLEVBQUUsS0FEYTtBQUVwQixFQUFBLElBQUksRUFBRTtBQUZjLENBQXRCO0FBS0E7Ozs7Ozs7QUFNQSxNQUFNLFFBQU4sQ0FBYztBQUNaLEVBQUEsR0FBRyxDQUFDLElBQUQsRUFBZSxNQUFmLEVBQTZCO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBREs7QUFFTCxNQUFBO0FBRkssS0FBUDtBQUlEOztBQUVELEVBQUEsV0FBVyxDQUFDO0FBQ1YsSUFBQSxJQURVO0FBRVYsSUFBQSxXQUZVO0FBR1YsSUFBQSxPQUFPLEdBQUcsS0FIQTtBQUlWLElBQUE7QUFKVSxHQUFELEVBVVY7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsT0FERDtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFBSSxFQUZUO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBSHZCO0FBSUwsTUFBQSxPQUpLO0FBS0wsTUFBQTtBQUxLLEtBQVA7QUFPRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQztBQUNQLElBQUEsSUFETztBQUVQLElBQUEsV0FGTztBQUdQLElBQUE7QUFITyxHQUFELEVBUVA7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsVUFERDtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFBSSxFQUZUO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBSHZCO0FBSUwsTUFBQTtBQUpLLEtBQVA7QUFNRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQztBQUNQLElBQUEsSUFETztBQUVQLElBQUEsTUFGTztBQUdQLElBQUEsSUFITztBQUlQLElB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UDtBQUNEOztBQUVELEVBQUEsTUFBTSxDQUFDLEtBQUQsRUFBZ0IsR0FBaEIsRUFBK0I7QUFDbkMsV0FBTyxLQUFLLE9BQUwsQ0FBYTtBQUFFLE1BQUEsSUFBSSxFQUFFLGVBQVI7QUFBeUIsTUFBQSxLQUF6QjtBQUFnQyxNQUFBO0FBQWhDLEtBQWIsQ0FBUDtBQUNEOztBQXBWVyxDLENBa1lkOzs7QUFFQSxTQUFTLFlBQVQsQ0FBc0IsSUFBdEIsRUFBMEM7QUFDeEMsVUFBUSxJQUFJLENBQUMsSUFBYjtBQUNFLFNBQUssUUFBTDtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBakI7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBTjtBQUE5QixPQUFQOztBQUNGLFNBQUssVUFBTDtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxNQUFaO0FBQW9CLFFBQUEsS0FBSyxFQUFFO0FBQTNCLE9BQVA7O0FBQ0YsU0FBSyxTQUFMO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFqQjtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFOO0FBQTlCLE9BQVA7QUFOSjtBQVFEOztBQUVELGVBQWUsSUFBSSxRQUFKLEVBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0LCBPcHRpb24sIFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFBhcnNlck5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vcGFyc2VyJztcbmltcG9ydCB7IFNvdXJjZUxvY2F0aW9uIH0gZnJvbSAnLi4vc291cmNlL2xvY2F0aW9uJztcbmltcG9ydCB7IFNvdXJjZU9mZnNldCwgU291cmNlU3BhbiB9IGZyb20gJy4uL3NvdXJjZS9zcGFuJztcbmltcG9ydCAqIGFzIEFTVHYxIGZyb20gJy4vYXBpJztcbmltcG9ydCB7IFBhdGhFeHByZXNzaW9uSW1wbFYxIH0gZnJvbSAnLi9sZWdhY3ktaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfU1RSSVAgPSB7XG4gIGNsb3NlOiBmYWxzZSxcbiAgb3BlbjogZmFsc2UsXG59O1xuXG4vKipcbiAqIFRoZSBQYXJzZXIgQnVpbGRlciBkaWZmZXJlbnRpYXRlcyBmcm9tIHRoZSBwdWJsaWMgYnVpbGRlciBBUEkgYnk6XG4gKlxuICogMS4gT2ZmZXJpbmcgZmV3ZXIgZGlmZmVyZW50IHdheXMgdG8gaW5zdGFudGlhdGUgbm9kZXNcbiAqIDIuIE1hbmRhdGluZyBzb3VyY2UgbG9jYXRpb25zXG4gKi9cbmNsYXNzIEJ1aWxkZXJzIHtcbiAgcG9zKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbixcbiAgICB9O1xuICB9XG5cbiAgYmxvY2tJdHNlbGYoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgY2hhaW5lZCA9IGZhbHNlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgICBibG9ja1BhcmFtcz86IHN0cmluZ1tdO1xuICAgIGNoYWluZWQ/OiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrJyxcbiAgICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgICBjaGFpbmVkLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZW1wbGF0ZSh7XG4gICAgYm9keSxcbiAgICBibG9ja1BhcmFtcyxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZSh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICB0cnVzdGluZyxcbiAgICBsb2MsXG4gICAgc3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIHRydXN0aW5nOiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBzdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgZXNjYXBlZDogIXRydXN0aW5nLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICBsb2MsXG4gICAgICBzdHJpcDogc3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGRlZmF1bHRCbG9jayxcbiAgICBlbHNlQmxvY2sgPSBudWxsLFxuICAgIGxvYyxcbiAgICBvcGVuU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGludmVyc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gICAgY2xvc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBkZWZhdWx0QmxvY2s6IEFTVHYxLkJsb2NrO1xuICAgIGVsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5CbG9jaz47XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICAgIG9wZW5TdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgICBpbnZlcnNlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgY2xvc2VTdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICAgIHBhdGg6IHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgcHJvZ3JhbTogZGVmYXVsdEJsb2NrLFxuICAgICAgaW52ZXJzZTogZWxzZUJsb2NrLFxuICAgICAgbG9jOiBsb2MsXG4gICAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCxcbiAgICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwLFxuICAgICAgY2xvc2VTdHJpcDogY2xvc2VTdHJpcCxcbiAgICB9O1xuICB9XG5cbiAgY29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M6IFNvdXJjZU9mZnNldCk6IFBhcnNlck5vZGVCdWlsZGVyPEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlQ29tbWVudFN0YXRlbWVudCcsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGNvbmNhdChcbiAgICBwYXJ0czogUHJlc2VudEFycmF5PEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQ+LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQ29uY2F0U3RhdGVtZW50JyxcbiAgICAgIHBhcnRzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBlbGVtZW50KHtcbiAgICB0YWcsXG4gICAgc2VsZkNsb3NpbmcsXG4gICAgYXR0cnMsXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbW9kaWZpZXJzLFxuICAgIGNvbW1lbnRzLFxuICAgIGNoaWxkcmVuLFxuICAgIGxvYyxcbiAgfTogQnVpbGRFbGVtZW50T3B0aW9ucyk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0VsZW1lbnROb2RlJyxcbiAgICAgIHRhZyxcbiAgICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzIHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgICBjb21tZW50czogKGNvbW1lbnRzIGFzIEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFtdKSB8fCBbXSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudE1vZGlmaWVyKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGF0dHIoe1xuICAgIG5hbWUsXG4gICAgdmFsdWUsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5BdHRyTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZXh0KHsgY2hhcnMsIGxvYyB9OiB7IGNoYXJzOiBzdHJpbmc7IGxvYzogU291cmNlU3BhbiB9KTogQVNUdjEuVGV4dE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGV4dE5vZGUnLFxuICAgICAgY2hhcnMsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHNleHByKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgcGF0aCh7XG4gICAgaGVhZCxcbiAgICB0YWlsLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGhlYWQ6IEFTVHYxLlBhdGhIZWFkO1xuICAgIHRhaWw6IHN0cmluZ1tdO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHtcbiAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gICAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gICAgbGV0IG9yaWdpbmFsID0gWy4uLm9yaWdpbmFsSGVhZCwgLi4ucGFydHNdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQVMsTUFBVCxRQUF1QixlQUF2QjtBQU1BLFNBQVMsb0JBQVQsUUFBcUMsa0JBQXJDO0FBRUEsTUFBTSxhQUFhLEdBQUc7QUFDcEIsRUFBQSxLQUFLLEVBQUUsS0FEYTtBQUVwQixFQUFBLElBQUksRUFBRTtBQUZjLENBQXRCO0FBS0E7Ozs7Ozs7QUFNQSxNQUFNLFFBQU4sQ0FBYztBQUNaLEVBQUEsR0FBRyxDQUFDLElBQUQsRUFBZSxNQUFmLEVBQTZCO0FBQzlCLFdBQU87QUFDTCxNQUFBLElBREs7QUFFTCxNQUFBO0FBRkssS0FBUDtBQUlEOztBQUVELEVBQUEsV0FBVyxDQUFDO0FBQ1YsSUFBQSxJQURVO0FBRVYsSUFBQSxXQUZVO0FBR1YsSUFBQSxPQUFPLEdBQUcsS0FIQTtBQUlWLElBQUE7QUFKVSxHQUFELEVBVVY7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsT0FERDtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFBSSxFQUZUO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBSHZCO0FBSUwsTUFBQSxPQUpLO0FBS0wsTUFBQTtBQUxLLEtBQVA7QUFPRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQztBQUNQLElBQUEsSUFETztBQUVQLElBQUEsV0FGTztBQUdQLElBQUE7QUFITyxHQUFELEVBUVA7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBQUUsVUFERDtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFBSSxFQUZUO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUFJLEVBSHZCO0FBSUwsTUFBQTtBQUpLLEtBQVA7QUFNRDs7QUFFRCxFQUFBLFFBQVEsQ0FBQztBQUNQLElBQUEsSUFETztBQUVQLElBQUEsTUFGTztBQUdQLElBQUEsSUFITztBQUlQLElB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QUFBLElBQUksRUFBRSxlQUFSO0FBQXlCLE1BQUEsS0FBekI7QUFBZ0MsTUFBQTtBQUFoQyxLQUFiLENBQVA7QUFDRDs7QUFuVlcsQyxDQWlZZDs7O0FBRUEsU0FBUyxZQUFULENBQXNCLElBQXRCLEVBQTBDO0FBQ3hDLFVBQVEsSUFBSSxDQUFDLElBQWI7QUFDRSxTQUFLLFFBQUw7QUFDRSxhQUFPO0FBQUUsUUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQWpCO0FBQXVCLFFBQUEsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQU47QUFBOUIsT0FBUDs7QUFDRixTQUFLLFVBQUw7QUFDRSxhQUFPO0FBQUUsUUFBQSxRQUFRLEVBQUUsTUFBWjtBQUFvQixRQUFBLEtBQUssRUFBRTtBQUEzQixPQUFQOztBQUNGLFNBQUssU0FBTDtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBakI7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBTjtBQUE5QixPQUFQO0FBTko7QUFRRDs7QUFFRCxlQUFlLElBQUksUUFBSixFQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBQYXJzZXJOb2RlQnVpbGRlciB9IGZyb20gJy4uL3BhcnNlcic7XG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VPZmZzZXQsIFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX1NUUklQID0ge1xuICBjbG9zZTogZmFsc2UsXG4gIG9wZW46IGZhbHNlLFxufTtcblxuLyoqXG4gKiBUaGUgUGFyc2VyIEJ1aWxkZXIgZGlmZmVyZW50aWF0ZXMgZnJvbSB0aGUgcHVibGljIGJ1aWxkZXIgQVBJIGJ5OlxuICpcbiAqIDEuIE9mZmVyaW5nIGZld2VyIGRpZmZlcmVudCB3YXlzIHRvIGluc3RhbnRpYXRlIG5vZGVzXG4gKiAyLiBNYW5kYXRpbmcgc291cmNlIGxvY2F0aW9uc1xuICovXG5jbGFzcyBCdWlsZGVycyB7XG4gIHBvcyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrSXRzZWxmKHtcbiAgICBib2R5LFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIGNoYWluZWQgPSBmYWxzZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBjaGFpbmVkPzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5CbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9jaycsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgY2hhaW5lZCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGVtcGxhdGUoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdO1xuICAgIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuVGVtcGxhdGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgICAgYm9keTogYm9keSB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGUoe1xuICAgIHBhdGgsXG4gICAgcGFyYW1zLFxuICAgIGhhc2gsXG4gICAgdHJ1c3RpbmcsXG4gICAgbG9jLFxuICAgIHN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICB0cnVzdGluZzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gICAgc3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGVzY2FwZWQ6ICF0cnVzdGluZyxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBibG9jayh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBkZWZhdWx0QmxvY2ssXG4gICAgZWxzZUJsb2NrID0gbnVsbCxcbiAgICBsb2MsXG4gICAgb3BlblN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgICBpbnZlcnNlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGNsb3NlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBBU1R2MS5TdWJFeHByZXNzaW9uO1xuICAgIHBhcmFtczogQVNUdjEuRXhwcmVzc2lvbltdO1xuICAgIGhhc2g6IEFTVHYxLkhhc2g7XG4gICAgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgICBlbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuQmxvY2s+O1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBvcGVuU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgaW52ZXJzZVN0cmlwOiBBU1R2MS5TdHJpcEZsYWdzO1xuICAgIGNsb3NlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayxcbiAgICAgIGludmVyc2U6IGVsc2VCbG9jayxcbiAgICAgIGxvYzogbG9jLFxuICAgICAgb3BlblN0cmlwOiBvcGVuU3RyaXAsXG4gICAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VPZmZzZXQpOiBQYXJzZXJOb2RlQnVpbGRlcjxBU1R2MS5Db21tZW50U3RhdGVtZW50PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBjb25jYXQoXG4gICAgcGFydHM6IFByZXNlbnRBcnJheTxBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50PixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgICBwYXJ0cyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudCh7XG4gICAgdGFnLFxuICAgIHNlbGZDbG9zaW5nLFxuICAgIGF0dHJzLFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIG1vZGlmaWVycyxcbiAgICBjb21tZW50cyxcbiAgICBjaGlsZHJlbixcbiAgICBsb2MsXG4gIH06IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgICB0YWcsXG4gICAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnRNb2RpZmllcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdHRyKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuQXR0ck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGV4dCh7IGNoYXJzLCBsb2MgfTogeyBjaGFyczogc3RyaW5nOyBsb2M6IFNvdXJjZVNwYW4gfSk6IEFTVHYxLlRleHROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICAgIGNoYXJzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBzZXhwcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhdGgoe1xuICAgIGhlYWQsXG4gICAgdGFpbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBoZWFkOiBBU1R2MS5QYXRoSGVhZDtcbiAgICB0YWlsOiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICAgIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -32,4 +32,4 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

SymbolTable.top = function top(locals) {
return new ProgramSymbolTable(locals);
SymbolTable.top = function top(locals, customizeComponentName) {
return new ProgramSymbolTable(locals, customizeComponentName);
};

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

function ProgramSymbolTable(templateLocals) {
function ProgramSymbolTable(templateLocals, customizeComponentName) {
var _this2;

@@ -59,2 +59,3 @@

_this2.templateLocals = templateLocals;
_this2.customizeComponentName = customizeComponentName;
_this2.symbols = [];

@@ -109,3 +110,9 @@ _this2.upvars = [];

_proto2.allocateFree = function allocateFree(name) {
_proto2.allocateFree = function allocateFree(name, resolution) {
if (resolution.resolution() === 39
/* GetFreeAsComponentHead */
) {
name = this.customizeComponentName(name);
}
var index = this.upvars.indexOf(name);

@@ -206,4 +213,4 @@

_proto3.allocateFree = function allocateFree(name) {
return this.parent.allocateFree(name);
_proto3.allocateFree = function allocateFree(name, resolution) {
return this.parent.allocateFree(name, resolution);
};

@@ -232,2 +239,2 @@

}(SymbolTable);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLFNBQUEsSUFBQSxRQUFBLGVBQUE7QUFFQSxXQUFNLFdBQU47QUFBQTs7QUFBQSxjQUNFLEdBREYsR0FDRSxhQUFBLE1BQUEsRUFBMkI7QUFDekIsV0FBTyxJQUFBLGtCQUFBLENBQVAsTUFBTyxDQUFQO0FBQ0QsR0FISDs7QUFBQTs7QUFBQSxTQWtCRSxLQWxCRixHQWtCRSxlQUFLLE1BQUwsRUFBc0I7QUFBQTs7QUFDcEIsUUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFOLEdBQUEsQ0FBWSxVQUFBLElBQUQ7QUFBQSxhQUFVLEtBQUEsQ0FBQSxRQUFBLENBQW5DLElBQW1DLENBQVY7QUFBQSxLQUFYLENBQWQ7QUFDQSxXQUFPLElBQUEsZ0JBQUEsQ0FBQSxJQUFBLEVBQUEsTUFBQSxFQUFQLE9BQU8sQ0FBUDtBQUNELEdBckJIOztBQUFBO0FBQUE7QUF3QkEsV0FBTSxrQkFBTjtBQUFBOztBQUNFLDhCQUFBLGNBQUEsRUFBNEM7QUFBQTs7QUFDMUM7QUFEa0IsV0FBQSxjQUFBLEdBQUEsY0FBQTtBQUliLFdBQUEsT0FBQSxHQUFBLEVBQUE7QUFDQSxXQUFBLE1BQUEsR0FBQSxFQUFBO0FBRUMsV0FBQSxJQUFBLEdBQUEsQ0FBQTtBQUNBLFdBQUEsS0FBQSxHQUFRLElBQVIsRUFBQTtBQUNBLFdBQUEsTUFBQSxHQUFTLElBQVQsRUFBQTtBQUNBLFdBQUEsa0JBQUEsR0FBQSxFQUFBOztBQUVSLElBQUEsUUFBQSxDQUFBLEdBQUEsaUNBQUEsS0FBQTs7QUFaNEM7QUFFM0M7O0FBSEg7O0FBQUEsVUFlRSxxQkFmRixHQWVFLGlDQUFxQjtBQUNuQixXQUFPLEtBQVAsa0JBQUE7QUFDRCxHQWpCSDs7QUFBQSxVQW1CRSxVQW5CRixHQW1CRSxzQkFBVTtBQUNSLElB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O0FBQ0QsR0EvQkg7O0FBQUEsVUFpQ0UsWUFqQ0YsR0FpQ0Usc0JBQVksSUFBWixFQUF5QjtBQUN2QixXQUFPLEtBQUEsTUFBQSxDQUFBLFlBQUEsQ0FBUCxJQUFPLENBQVA7QUFDRCxHQW5DSDs7QUFBQSxVQXFDRSxhQXJDRixHQXFDRSx1QkFBYSxJQUFiLEVBQTBCO0FBQ3hCLFdBQU8sS0FBQSxNQUFBLENBQUEsYUFBQSxDQUFQLElBQU8sQ0FBUDtBQUNELEdBdkNIOztBQUFBLFVBeUNFLGFBekNGLEdBeUNFLHVCQUFhLElBQWIsRUFBMEI7QUFDeEIsV0FBTyxLQUFBLE1BQUEsQ0FBQSxhQUFBLENBQVAsSUFBTyxDQUFQO0FBQ0QsR0EzQ0g7O0FBQUEsVUE2Q0UsUUE3Q0YsR0E2Q0Usa0JBQVEsVUFBUixFQUEyQjtBQUN6QixXQUFPLEtBQUEsTUFBQSxDQUFBLFFBQUEsQ0FBUCxVQUFPLENBQVA7QUFDRCxHQS9DSDs7QUFBQTtBQUFBO0FBQUEsd0JBS1k7QUFDUixhQUFPLEtBQVAsT0FBQTtBQUNEO0FBUEg7O0FBQUE7QUFBQSxFQUFNLFdBQU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlLCBEaWN0IH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTeW1ib2xUYWJsZSB7XG4gIHN0YXRpYyB0b3AobG9jYWxzOiBzdHJpbmdbXSk6IFByb2dyYW1TeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIG5ldyBQcm9ncmFtU3ltYm9sVGFibGUobG9jYWxzKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICBhYnN0cmFjdCBnZXQobmFtZTogc3RyaW5nKTogW3N5bWJvbDogbnVtYmVyLCBpc1Jvb3Q6IGJvb2xlYW5dO1xuXG4gIGFic3RyYWN0IGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj47XG4gIGFic3RyYWN0IGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm87XG5cbiAgYWJzdHJhY3QgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGVOYW1lZChuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgYWJzdHJhY3Qgc2V0SGFzRXZhbCgpOiB2b2lkO1xuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBCbG9ja1N5bWJvbFRhYmxlIHtcbiAgICBsZXQgc3ltYm9scyA9IGxvY2Fscy5tYXAoKG5hbWUpID0+IHRoaXMuYWxsb2NhdGUobmFtZSkpO1xuICAgIHJldHVybiBuZXcgQmxvY2tTeW1ib2xUYWJsZSh0aGlzLCBsb2NhbHMsIHN5bWJvbHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmFtU3ltYm9sVGFibGUgZXh0ZW5kcyBTeW1ib2xUYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgdXB2YXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2l6ZSA9IDE7XG4gIHByaXZhdGUgbmFtZWQgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBibG9ja3MgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSB1c2VkVGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdID0gW107XG5cbiAgI2hhc0V2YWwgPSBmYWxzZTtcblxuICBnZXRVc2VkVGVtcGxhdGVMb2NhbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnVzZWRUZW1wbGF0ZUxvY2FscztcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy4jaGFzRXZhbCA9IHRydWU7XG4gIH1cblxuICBnZXQgaGFzRXZhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaGFzRXZhbDtcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpICE9PSAtMTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBbaW5kZXgsIHRydWVdO1xuICAgIH1cblxuICAgIGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMubGVuZ3RoO1xuICAgIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzLnB1c2gobmFtZSk7XG4gICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICByZXR1cm4gZGljdCgpO1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBpbmRleCA9IHRoaXMudXB2YXJzLmluZGV4T2YobmFtZSk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgaW5kZXggPSB0aGlzLnVwdmFycy5sZW5ndGg7XG4gICAgdGhpcy51cHZhcnMucHVzaChuYW1lKTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBhbGxvY2F0ZU5hbWVkKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXTtcblxuICAgIGlmICghbmFtZWQpIHtcbiAgICAgIG5hbWVkID0gdGhpcy5uYW1lZFtuYW1lXSA9IHRoaXMuYWxsb2NhdGUobmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWVkO1xuICB9XG5cbiAgYWxsb2NhdGVCbG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmIChuYW1lID09PSAnaW52ZXJzZScpIHtcbiAgICAgIG5hbWUgPSAnZWxzZSc7XG4gICAgfVxuXG4gICAgbGV0IGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV07XG5cbiAgICBpZiAoIWJsb2NrKSB7XG4gICAgICBibG9jayA9IHRoaXMuYmxvY2tzW25hbWVdID0gdGhpcy5hbGxvY2F0ZShgJiR7bmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxvY2s7XG4gIH1cblxuICBhbGxvY2F0ZShpZGVudGlmaWVyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHRoaXMuc3ltYm9scy5wdXNoKGlkZW50aWZpZXIpO1xuICAgIHJldHVybiB0aGlzLnNpemUrKztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmxvY2tTeW1ib2xUYWJsZSBleHRlbmRzIFN5bWJvbFRhYmxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IFN5bWJvbFRhYmxlLCBwdWJsaWMgc3ltYm9sczogc3RyaW5nW10sIHB1YmxpYyBzbG90czogbnVtYmVyW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0IGxvY2FscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ltYm9scztcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzLmluZGV4T2YobmFtZSkgIT09IC0xIHx8IHRoaXMucGFyZW50LmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IHNsb3QgPSB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKTtcbiAgICByZXR1cm4gc2xvdCA9PT0gLTEgPyB0aGlzLnBhcmVudC5nZXQobmFtZSkgOiBbdGhpcy5zbG90c1tzbG90XSwgZmFsc2VdO1xuICB9XG5cbiAgZ2V0TG9jYWxzTWFwKCk6IERpY3Q8bnVtYmVyPiB7XG4gICAgbGV0IGRpY3QgPSB0aGlzLnBhcmVudC5nZXRMb2NhbHNNYXAoKTtcbiAgICB0aGlzLnN5bWJvbHMuZm9yRWFjaCgoc3ltYm9sKSA9PiAoZGljdFtzeW1ib2xdID0gdGhpcy5nZXQoc3ltYm9sKVswXSkpO1xuICAgIHJldHVybiBkaWN0O1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnQuc2V0SGFzRXZhbCgpO1xuICB9XG5cbiAgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlRnJlZShuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVOYW1lZChuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVCbG9jayhuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlKGlkZW50aWZpZXIpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvc3ltYm9sLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLFNBQUEsSUFBQSxRQUFBLGVBQUE7QUFJQSxXQUFNLFdBQU47QUFBQTs7QUFBQSxjQUNFLEdBREYsR0FDRSxhQUFBLE1BQUEsRUFBQSxzQkFBQSxFQUVtRDtBQUVqRCxXQUFPLElBQUEsa0JBQUEsQ0FBQSxNQUFBLEVBQVAsc0JBQU8sQ0FBUDtBQUNELEdBTkg7O0FBQUE7O0FBQUEsU0FxQkUsS0FyQkYsR0FxQkUsZUFBSyxNQUFMLEVBQXNCO0FBQUE7O0FBQ3BCLFFBQUksT0FBTyxHQUFHLE1BQU0sQ0FBTixHQUFBLENBQVksVUFBQSxJQUFEO0FBQUEsYUFBVSxLQUFBLENBQUEsUUFBQSxDQUFuQyxJQUFtQyxDQUFWO0FBQUEsS0FBWCxDQUFkO0FBQ0EsV0FBTyxJQUFBLGdCQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBUCxPQUFPLENBQVA7QUFDRCxHQXhCSDs7QUFBQTtBQUFBO0FBMkJBLFdBQU0sa0JBQU47QUFBQTs7QUFDRSw4QkFBQSxjQUFBLEVBQUEsc0JBQUEsRUFFMkQ7QUFBQTs7QUFFekQ7QUFIUSxXQUFBLGNBQUEsR0FBQSxjQUFBO0FBQ0EsV0FBQSxzQkFBQSxHQUFBLHNCQUFBO0FBS0gsV0FBQSxPQUFBLEdBQUEsRUFBQTtBQUNBLFdBQUEsTUFBQSxHQUFBLEVBQUE7QUFFQyxXQUFBLElBQUEsR0FBQSxDQUFBO0FBQ0EsV0FBQSxLQUFBLEdBQVEsSUFBUixFQUFBO0FBQ0EsV0FBQSxNQUFBLEdBQVMsSUFBVCxFQUFBO0FBQ0EsV0FBQSxrQkFBQSxHQUFBLEVBQUE7O0FBRVIsSUFBQSxRQUFBLENBQUEsR0FBQSxpQ0FBQSxLQUFBOztBQWIyRDtBQUcxRDs7QUFOSDs7QUFBQSxVQWtCRSxxQkFsQkYsR0FrQkUsaUNBQXFCO0FBQ25CLFdB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Q0EsV0FBTyxNQUFNLENBQU4sSUFBQSxDQUFBLE1BQUEsRUFBQSxHQUFBLENBQXlCLFVBQUEsTUFBRDtBQUFBLGFBQVksTUFBTSxDQUFqRCxNQUFpRCxDQUFsQjtBQUFBLEtBQXhCLENBQVA7QUFDRCxHQTNCSDs7QUFBQSxVQTZCRSxVQTdCRixHQTZCRSxzQkFBVTtBQUNSLFNBQUEsTUFBQSxDQUFBLFVBQUE7QUFDRCxHQS9CSDs7QUFBQSxVQWlDRSxZQWpDRixHQWlDRSxzQkFBWSxJQUFaLEVBQVksVUFBWixFQUE4RDtBQUM1RCxXQUFPLEtBQUEsTUFBQSxDQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQVAsVUFBTyxDQUFQO0FBQ0QsR0FuQ0g7O0FBQUEsVUFxQ0UsYUFyQ0YsR0FxQ0UsdUJBQWEsSUFBYixFQUEwQjtBQUN4QixXQUFPLEtBQUEsTUFBQSxDQUFBLGFBQUEsQ0FBUCxJQUFPLENBQVA7QUFDRCxHQXZDSDs7QUFBQSxVQXlDRSxhQXpDRixHQXlDRSx1QkFBYSxJQUFiLEVBQTBCO0FBQ3hCLFdBQU8sS0FBQSxNQUFBLENBQUEsYUFBQSxDQUFQLElBQU8sQ0FBUDtBQUNELEdBM0NIOztBQUFBLFVBNkNFLFFBN0NGLEdBNkNFLGtCQUFRLFVBQVIsRUFBMkI7QUFDekIsV0FBTyxLQUFBLE1BQUEsQ0FBQSxRQUFBLENBQVAsVUFBTyxDQUFQO0FBQ0QsR0EvQ0g7O0FBQUE7QUFBQTtBQUFBLHdCQUtZO0FBQ1IsYUFBTyxLQUFQLE9BQUE7QUFDRDtBQVBIOztBQUFBO0FBQUEsRUFBTSxXQUFOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZSwgRGljdCwgU2V4cE9wY29kZXMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgQVNUdjIgfSBmcm9tICcuLic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTeW1ib2xUYWJsZSB7XG4gIHN0YXRpYyB0b3AoXG4gICAgbG9jYWxzOiBzdHJpbmdbXSxcbiAgICBjdXN0b21pemVDb21wb25lbnROYW1lOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nXG4gICk6IFByb2dyYW1TeW1ib2xUYWJsZSB7XG4gICAgcmV0dXJuIG5ldyBQcm9ncmFtU3ltYm9sVGFibGUobG9jYWxzLCBjdXN0b21pemVDb21wb25lbnROYW1lKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICBhYnN0cmFjdCBnZXQobmFtZTogc3RyaW5nKTogW3N5bWJvbDogbnVtYmVyLCBpc1Jvb3Q6IGJvb2xlYW5dO1xuXG4gIGFic3RyYWN0IGdldExvY2Fsc01hcCgpOiBEaWN0PG51bWJlcj47XG4gIGFic3RyYWN0IGdldEV2YWxJbmZvKCk6IENvcmUuRXZhbEluZm87XG5cbiAgYWJzdHJhY3QgYWxsb2NhdGVGcmVlKG5hbWU6IHN0cmluZywgcmVzb2x1dGlvbjogQVNUdjIuRnJlZVZhclJlc29sdXRpb24pOiBudW1iZXI7XG4gIGFic3RyYWN0IGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhYnN0cmFjdCBhbGxvY2F0ZUJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgYWJzdHJhY3QgYWxsb2NhdGUoaWRlbnRpZmllcjogc3RyaW5nKTogbnVtYmVyO1xuXG4gIGFic3RyYWN0IHNldEhhc0V2YWwoKTogdm9pZDtcblxuICBjaGlsZChsb2NhbHM6IHN0cmluZ1tdKTogQmxvY2tTeW1ib2xUYWJsZSB7XG4gICAgbGV0IHN5bWJvbHMgPSBsb2NhbHMubWFwKChuYW1lKSA9PiB0aGlzLmFsbG9jYXRlKG5hbWUpKTtcbiAgICByZXR1cm4gbmV3IEJsb2NrU3ltYm9sVGFibGUodGhpcywgbG9jYWxzLCBzeW1ib2xzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvZ3JhbVN5bWJvbFRhYmxlIGV4dGVuZHMgU3ltYm9sVGFibGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBsYXRlTG9jYWxzOiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIGN1c3RvbWl6ZUNvbXBvbmVudE5hbWU6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgdXB2YXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2l6ZSA9IDE7XG4gIHByaXZhdGUgbmFtZWQgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBibG9ja3MgPSBkaWN0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSB1c2VkVGVtcGxhdGVMb2NhbHM6IHN0cmluZ1tdID0gW107XG5cbiAgI2hhc0V2YWwgPSBmYWxzZTtcblxuICBnZXRVc2VkVGVtcGxhdGVMb2NhbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnVzZWRUZW1wbGF0ZUxvY2FscztcbiAgfVxuXG4gIHNldEhhc0V2YWwoKTogdm9pZCB7XG4gICAgdGhpcy4jaGFzRXZhbCA9IHRydWU7XG4gIH1cblxuICBnZXQgaGFzRXZhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaGFzRXZhbDtcbiAgfVxuXG4gIGhhcyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUxvY2Fscy5pbmRleE9mKG5hbWUpICE9PSAtMTtcbiAgfVxuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBbbnVtYmVyLCBib29sZWFuXSB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBbaW5kZXgsIHRydWVdO1xuICAgIH1cblxuICAgIGluZGV4ID0gdGhpcy51c2VkVGVtcGxhdGVMb2NhbHMubGVuZ3RoO1xuICAgIHRoaXMudXNlZFRlbXBsYXRlTG9jYWxzLnB1c2gobmFtZSk7XG4gICAgcmV0dXJuIFtpbmRleCwgdHJ1ZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICByZXR1cm4gZGljdCgpO1xuICB9XG5cbiAgZ2V0RXZhbEluZm8oKTogQ29yZS5FdmFsSW5mbyB7XG4gICAgbGV0IGxvY2FscyA9IHRoaXMuZ2V0TG9jYWxzTWFwKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGxvY2FscykubWFwKChzeW1ib2wpID0+IGxvY2Fsc1tzeW1ib2xdKTtcbiAgfVxuXG4gIGFsbG9jYXRlRnJlZShuYW1lOiBzdHJpbmcsIHJlc29sdXRpb246IEFTVHYyLkZyZWVWYXJSZXNvbHV0aW9uKTogbnVtYmVyIHtcbiAgICBpZiAocmVzb2x1dGlvbi5yZXNvbHV0aW9uKCkgPT09IFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpIHtcbiAgICAgIG5hbWUgPSB0aGlzLmN1c3RvbWl6ZUNvbXBvbmVudE5hbWUobmFtZSk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gdGhpcy51cHZhcnMuaW5kZXhPZihuYW1lKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBpbmRleCA9IHRoaXMudXB2YXJzLmxlbmd0aDtcbiAgICB0aGlzLnVwdmFycy5wdXNoKG5hbWUpO1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdO1xuXG4gICAgaWYgKCFuYW1lZCkge1xuICAgICAgbmFtZWQgPSB0aGlzLm5hbWVkW25hbWVdID0gdGhpcy5hbGxvY2F0ZShuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZWQ7XG4gIH1cblxuICBhbGxvY2F0ZUJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKG5hbWUgPT09ICdpbnZlcnNlJykge1xuICAgICAgbmFtZSA9ICdlbHNlJztcbiAgICB9XG5cbiAgICBsZXQgYmxvY2sgPSB0aGlzLmJsb2Nrc1tuYW1lXTtcblxuICAgIGlmICghYmxvY2spIHtcbiAgICAgIGJsb2NrID0gdGhpcy5ibG9ja3NbbmFtZV0gPSB0aGlzLmFsbG9jYXRlKGAmJHtuYW1lfWApO1xuICAgIH1cblxuICAgIHJldHVybiBibG9jaztcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgdGhpcy5zeW1ib2xzLnB1c2goaWRlbnRpZmllcik7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSsrO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCbG9ja1N5bWJvbFRhYmxlIGV4dGVuZHMgU3ltYm9sVGFibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogU3ltYm9sVGFibGUsIHB1YmxpYyBzeW1ib2xzOiBzdHJpbmdbXSwgcHVibGljIHNsb3RzOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgbG9jYWxzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2xzO1xuICB9XG5cbiAgaGFzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbHMuaW5kZXhPZihuYW1lKSAhPT0gLTEgfHwgdGhpcy5wYXJlbnQuaGFzKG5hbWUpO1xuICB9XG5cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IFtudW1iZXIsIGJvb2xlYW5dIHtcbiAgICBsZXQgc2xvdCA9IHRoaXMuc3ltYm9scy5pbmRleE9mKG5hbWUpO1xuICAgIHJldHVybiBzbG90ID09PSAtMSA/IHRoaXMucGFyZW50LmdldChuYW1lKSA6IFt0aGlzLnNsb3RzW3Nsb3RdLCBmYWxzZV07XG4gIH1cblxuICBnZXRMb2NhbHNNYXAoKTogRGljdDxudW1iZXI+IHtcbiAgICBsZXQgZGljdCA9IHRoaXMucGFyZW50LmdldExvY2Fsc01hcCgpO1xuICAgIHRoaXMuc3ltYm9scy5mb3JFYWNoKChzeW1ib2wpID0+IChkaWN0W3N5bWJvbF0gPSB0aGlzLmdldChzeW1ib2wpWzBdKSk7XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBnZXRFdmFsSW5mbygpOiBDb3JlLkV2YWxJbmZvIHtcbiAgICBsZXQgbG9jYWxzID0gdGhpcy5nZXRMb2NhbHNNYXAoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxzKS5tYXAoKHN5bWJvbCkgPT4gbG9jYWxzW3N5bWJvbF0pO1xuICB9XG5cbiAgc2V0SGFzRXZhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudC5zZXRIYXNFdmFsKCk7XG4gIH1cblxuICBhbGxvY2F0ZUZyZWUobmFtZTogc3RyaW5nLCByZXNvbHV0aW9uOiBBU1R2Mi5GcmVlVmFyUmVzb2x1dGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlRnJlZShuYW1lLCByZXNvbHV0aW9uKTtcbiAgfVxuXG4gIGFsbG9jYXRlTmFtZWQobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVOYW1lZChuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlQmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYWxsb2NhdGVCbG9jayhuYW1lKTtcbiAgfVxuXG4gIGFsbG9jYXRlKGlkZW50aWZpZXI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmFsbG9jYXRlKGlkZW50aWZpZXIpO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -206,7 +206,5 @@ import { assert } from '@glimmer/util';

var _headToString = headToString(head),
originalHead = _headToString.original,
headParts = _headToString.parts;
originalHead = _headToString.original;
var parts = [].concat(headParts, tail);
var original = [].concat(originalHead, parts).join('.');
var original = [].concat(originalHead, tail).join('.');
return new PathExpressionImplV1(original, head, tail, loc);

@@ -359,2 +357,2 @@ };

export default new Builders();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQUEsTUFBQSxRQUFBLGVBQUE7QUFNQSxTQUFBLG9CQUFBLFFBQUEsa0JBQUE7QUFFQSxJQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztJQU1BLFE7Ozs7O1NBQ0UsRyxHQUFBLGFBQUcsSUFBSCxFQUFHLE1BQUgsRUFBZ0M7QUFDOUIsV0FBTztBQUNMLE1BQUEsSUFESyxFQUNMLElBREs7QUFFTCxNQUFBLE1BQUEsRUFBQTtBQUZLLEtBQVA7QUFJRCxHOztTQUVELFcsR0FBQSwyQkFVQztBQUFBLFFBVlcsSUFVWCxRQVZXLElBVVg7QUFBQSxRQVZXLFdBVVgsUUFWVyxXQVVYO0FBQUEsNEJBUEMsT0FPRDtBQUFBLFFBUEMsT0FPRCw2QkFWVyxLQVVYO0FBQUEsUUFOQyxHQU1ELFFBTkMsR0FNRDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxNQUFBLE9BSkssRUFJTCxPQUpLO0FBS0wsTUFBQSxHQUFBLEVBQUE7QUFMSyxLQUFQO0FBT0QsRzs7U0FFRCxRLEdBQUEseUJBUUM7QUFBQSxRQVJRLElBUVIsU0FSUSxJQVFSO0FBQUEsUUFSUSxXQVFSLFNBUlEsV0FRUjtBQUFBLFFBTEMsR0FLRCxTQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFGTCxFQUFBO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUhuQixFQUFBO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQO0FBTUQsRzs7U0FFRCxRLEdBQUEseUJBY0M7QUFBQSxRQWRRLElBY1IsU0FkUSxJQWNSO0FBQUEsUUFkUSxNQWNSLFNBZFEsTUFjUjtBQUFBLFFBZFEsSUFjUixTQWRRLElBY1I7QUFBQSxRQWRRLFFBY1IsU0FkUSxRQWNSO0FBQUEsUUFkUSxHQWNSLFNBZFEsR0FjUjtBQUFBLDRCQVJDLEtBUUQ7QUFBQSxRQVJDLEtBUUQsNEJBUlMsYUFRVDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxtQkFBQTtBQUVMLE1BQUEsSUFGSyxFQUVMLElBRks7QUFHTCxNQUFBLE1BSEssRUFHTCxNQUhLO0FBSUwsTUFBQSxJQUpLLEVBSUwsSUFKSztBQUtMLE1BQUEsT0FBTyxFQUFFLENBTEosUUFBQTtBQU1MLE1BQUEsUUFOSyxFQU1MLFFBTks7QUFPTCxNQUFBLEdBUEssRUFPTCxHQVBLO0FBUUwsTUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsUUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLFFBQUEsS0FBSyxFQUFFO0FBQXRCO0FBUlgsS0FBUDtBQVVELEc7O1NBRUQsSyxHQUFBLHNCQW9CQztBQUFBLFFBcEJLLElBb0JMLFNBcEJLLElBb0JMO0FBQUEsUUFwQkssTUFvQkwsU0FwQkssTUFvQkw7QUFBQSxRQXBCSyxJQW9CTCxTQXBCSyxJQW9CTDtBQUFBLFFBcEJLLFlBb0JMLFNBcEJLLFlBb0JMO0FBQUEsZ0NBZkMsU0FlRDtBQUFBLFFBZkMsU0FlRCxnQ0FwQkssSUFvQkw7QUFBQSxRQXBCSyxHQW9CTCxTQXBCSyxHQW9CTDtBQUFBLGdDQWJDLFNBYUQ7QUFBQSxRQWJDLFNBYUQsZ0NBcEJLLGFBb0JMO0FBQUEsbUNBWkMsWUFZRDtBQUFBLFFBWkMsWUFZRCxtQ0FwQkssYUFvQkw7QUFBQSxpQ0FYQyxVQVdEO0FBQUEsUUFYQyxVQVdELGlDQVhjLGFBV2Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsZ0JBQUE7QUFFTCxNQUFBLElBQUksRUFGQyxJQUFBO0FBR0wsTUFBQSxNQUhLLEVBR0wsTUFISztBQUlMLE1BQUEsSUFKSyxFQUlMLElBSks7QUFLTCxNQUFBLE9BQU8sRUFMRixZQUFBO0FBTUwsTUFBQSxPQUFPLEVBTkYsU0FBQTtBQU9MLE1BQUEsR0FBRyxFQVBFLEdBQUE7QUFRTCxNQUFBLFNBQVMsRUFSSixTQUFBO0FBU0wsTUFBQSxZQUFZLEVBVFAsWUFBQTtBQVVMLE1BQUEsVUFBVSxFQUFFO0FBVlAsS0FBUDtBQVlELEc7O1NBRUQsTyxHQUFBLGlCQUFPLEtBQVAsRUFBTyxHQUFQLEVBQXdDO0FBQ3RDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxrQkFBQTtBQUVMLE1BQUEsS0FBSyxFQUZBLEtBQUE7QUFHTCxNQUFBLEdBQUEsRUFBQTtBQUhLLEtBQVA7QUFLRCxHOztTQUVELGUsR0FBQSx5QkFBZSxLQUFmLEVBQWUsR0FBZixFQUE4QztBQUM1QyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsMEJBQUE7QUFFTCxNQUFBLEtBQUssRUFGQSxLQUFBO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQO0FBS0QsRzs7U0FFRCxNLEdBQUEsZ0JBQU0sS0FBTixFQUFNLEdBQU4sRUFFaUI7QUFFZixXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsaUJBQUE7QUFFTCxNQUFBLEtBRkssRUFFTCxLQUZLO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQO0FBS0QsRzs7U0FFRCxPLEdBQUEsd0JBU3NCO0FBQUEsUUFUZCxHQVNjLFNBVGQsR0FTYztBQUFBLFFBVGQsV0FTYyxTQVRkLFdBU2M7QUFBQSxRQVRkLEtBU2MsU0FUZCxLQVNjO0FBQUEsUUFUZCxXQVNjLFNBVGQsV0FTYztBQUFBLFFBVGQsU0FTYyxTQVRkLFNBU2M7QUFBQSxRQVRkLFFBU2MsU0FUZCxRQVNjO0FBQUEsUUFUZCxRQVNjLFNBVGQsUUFTYztBQUFBLFFBRHBCLEdBQ29CLFNBRHBCLEdBQ29CO0FBQ3BCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxhQUFBO0FBRUwsTUFBQSxHQUZLLEVBRUwsR0FGSztBQUdMLE1BQUEsV0FBVyxFQUhOLFdBQUE7QUFJTCxNQUFBLFVBQVUsRUFBRSxLQUFLLElBSlosRUFBQTtBQUtMLE1BQUEsV0FBVyxFQUFFLFdBQVcsSUFMbkIsRUFBQTtBQU1MLE1BQUEsU0FBUyxFQUFFLFNBQVMsSUFOZixFQUFBO0FBT0wsTUFBQSxRQUFRLEVBQUcsUUFBNkMsSUFQbkQsRUFBQTtBQVFMLE1BQUEsUUFBUSxFQUFFLFFBQVEsSUFSYixFQUFBO0FBU0wsTUFBQSxHQUFBLEVBQUE7QUFUSyxLQUFQO0FBV0QsRzs7U0FFRCxlLEdBQUEsZ0NBVUM7QUFBQSxRQVZlLElBVWYsU0FWZSxJQVVmO0FBQUEsUUFWZSxNQVVmLFNBVmUsTUFVZjtBQUFBLFFBVmUsSUFVZixTQVZlLElBVWY7QUFBQSxRQU5DLEdBTUQsU0FOQyxHQU1EO0FBQ0MsV0FBTztBQUNMLE1BQUEsSUFBSSxFQURDLDBCQUFBO0FBRUwsTUFBQSxJQUZLLEVBRUwsSUFGSztBQUdMLE1BQUEsTUFISyxFQUdMLE1BSEs7QUFJTCxNQUFBLElBSkssRUFJTCxJQUpLO0FBS0wsTUFBQSxHQUFBLEVBQUE7QUFMSyxLQUFQO0FBT0QsRzs7U0FFRCxJLEdBQUEscUJBUUM7QUFBQSxRQVJJLElBUUosU0FSSSxJQVFKO0FBQUEsUUFSSSxLQVFKLFNBUkksS0FRSjtBQUFBLFFBTEMsR0FLRCxTQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsSUFBSSxFQUZDLElBQUE7QUFHTCxNQUFBLEtBQUssRUFIQSxLQUFBO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQO0FBTUQsRzs7U0FFRCxJLEdBQUEscUJBQXVEO0FBQUEsUUFBbEQsS0FBa0QsU0FBbEQsS0FBa0Q7QUFBQSxRQUF6QyxHQUF5QyxTQUF6QyxHQUF5QztBQUNyRCxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsS0FGSyxFQUVMLEtBRks7QUFHTCxNQUFBLEdBQUEsRUFBQTtBQUhLLEtBQVA7QUFLRCxHOztTQUVELEssR0FBQSxzQkFVQztBQUFBLFFBVkssSUFVTCxTQVZLLElBVUw7QUFBQSxRQVZLLE1BVUwsU0FWSyxNQVVMO0FBQUEsUUFWSyxJQVVMLFNBVkssSUFVTDtBQUFBLFFBTkMsR0FNRCxTQU5DLEdBTUQ7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsZUFBQTtBQUVMLE1BQUEsSUFGSyxFQUVMLElBRks7QUFHTCxNQUFBLE1BSEssRUFHTCxNQUhLO0FBSUwsTUFBQSxJQUpLLEVBSUwsSUFKSztBQUtMLE1BQUEsR0FBQSxFQUFBO0FBTEssS0FBUDtBQU9ELEc7O1NBRUQsSSxHQUFBLHNCQVFDO0FBQUEsUUFSSSxJQVFKLFVBUkksSUFRSjtBQUFBLFFBUkksSUFRSixVQVJJLElBUUo7QUFBQSxRQUxDLEdBS0QsVUFMQyxHQUtEOztBQUFBLHdCQUNvRCxZQUFZLENBQS9ELElBQStELENBRGhFO0FBQUEsUUFDSyxZQURMLGlCQUNPLFFBRFA7QUFBQSxRQUNzQyxTQUR0QyxpQkFDK0IsS0FEL0I7O0FBRUMsUUFBSSxLQUFLLGFBQUcsU0FBSCxFQUFULElBQVMsQ0FBVDtBQUNBLFFBQUksUUFBUSxHQUFHLFVBQUEsWUFBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLENBQWYsR0FBZSxDQUFmO0FBRUEsV0FBTyxJQUFBLG9CQUFBLENBQUEsUUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQVAsR0FBTyxDQUFQO0FBQ0QsRzs7U0FFRCxJLEdBQUEsY0FBSSxLQUFKLEVBQUksR0FBSixFQUFrQztBQUNoQyxRQUFJLEtBQUksQ0FBSixDQUFJLENBQUosS0FBSixHQUFBLEVBQXFCO0FBQ25CLGFBQU8sS0FBQSxNQUFBLENBQUEsS0FBQSxFQUFQLEdBQU8sQ0FBUDtBQURGLEtBQUEsTUFFTyxJQUFJLEtBQUksS0FBUixNQUFBLEVBQXFCO0FBQzFCLGFBQU8sYUFBUCxHQUFPLENBQVA7QUFESyxLQUFBLE1BRUE7QUFDTCxhQUFPLFlBQUEsS0FBQSxFQUFQLEdBQU8sQ0FBUDtBQUNEO0FBQ0YsRzs7bUJBRUQsZUFBSSxHQUFKLEVBQW9CO0FBQ2xCLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsTUFBQSxHQUFBLEVBQUE7QUFGSyxLQUFQO0FBSUQsRzs7U0FFRCxNLEdBQUEsZ0JBQU0sSUFBTixFQUFNLEdBQU4sRUFBb0M7QUFDbEM7QUFEa0MsYUFFbEMsTUFBTSxDQUFDLElBQUksQ0FBSixDQUFJLENBQUosS0FGMkIsR0FFNUIsMERBRjRCO0FBSWxDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxRQUFBO0FBRUwsTUFBQSxJQUZLLEVBRUwsSUFGSztBQUdMLE1BQUEsR0FBQSxFQUFBO0FBSEssS0FBUDtBQUtELEc7O2tCQUVELGNBQUcsSUFBSCxFQUFHLEdBQUgsRUFBaUM7QUFBQSxhQUMvQixNQUFNLENBQUMsSUFBSSxLQURvQixNQUN6QixzRUFEeUI7QUFBQSxhQUUvQixNQUFNLENBQ0osSUFBSSxDQUFKLENBQUksQ0FBSixLQURJLEdBQUEsdUNBRStCLElBRi9CLDZCQUZ5QixJQUV6QixnQkFGeUI7QUFPL0IsV0FBTztBQUNMLE1BQUEsSUFBSSxFQURDLFNBQUE7QUFFTCxNQUFBLElBRkssRUFFTCxJQUZLO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQO0FBS0QsRzs7U0FFRCxJLEdBQUEsY0FBSSxLQUFKLEVBQUksR0FBSixFQUE2QztBQUMzQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsTUFBQTtBQUVMLE1BQUEsS0FBSyxFQUFFLEtBQUssSUFGUCxFQUFBO0FBR0wsTUFBQSxHQUFBLEVBQUE7QUFISyxLQUFQO0FBS0QsRzs7U0FFRCxJLEdBQUEsc0JBUUM7QUFBQSxRQVJJLEdBUUosVUFSSSxHQVFKO0FBQUEsUUFSSSxLQVFKLFVBUkksS0FRSjtBQUFBLFFBTEMsR0FLRCxVQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsR0FBRyxFQUZFLEdBQUE7QUFHTCxNQUFBLEtBSEssRUFHTCxLQUhLO0FBSUwsTUFBQSxHQUFBLEVBQUE7QUFKSyxLQUFQO0FBTUQsRzs7U0FFRCxPLEdBQUEseUJBUUM7QUFBQSxRQVJnQyxJQVFoQyxVQVJnQyxJQVFoQztBQUFBLFFBUmdDLEtBUWhDLFVBUmdDLEtBUWhDO0FBQUEsUUFMQyxHQUtELFVBTEMsR0FLRDtBQUNDLFdBQU87QUFDTCxNQUFBLElBREssRUFDTCxJQURLO0FBRUwsTUFBQSxLQUZLLEVBRUwsS0FGSztBQUdMLE1BQUEsUUFBUSxFQUhILEtBQUE7QUFJTCxNQUFBLEdBQUEsRUFBQTtBQUpLLEtBQVA7QUFNRCxHOztTQUVELFM7Ozs7Ozs7Ozs7SUFBQSxZQUFTO0FBQ1AsV0FBTyxLQUFBLE9BQUEsQ0FBYTtBQUFFLE1BQUEsSUFBSSxFQUFOLGtCQUFBO0FBQTRCLE1BQUEsS0FBSyxFQUFFO0FBQW5DLEtBQWIsQ0FBUDtBQUNELEc7O21CQUVELGlCQUFJO0FBQ0YsV0FBTyxLQUFBLE9BQUEsQ0FBYTtBQUFFLE1BQUEsSUFBSSxFQUFOLGFBQUE7QUFBdUIsTUFBQSxLQUFLLEVBQUU7QUFBOUIsS0FBYixDQUFQO0FBQ0QsRzs7U0FFRCxNLEdBQUEsZ0JBQU0sS0FBTixFQUFNLEdBQU4sRUFBcUM7QUFDbkMsV0FBTyxLQUFBLE9BQUEsQ0FBYTtBQUFFLE1BQUEsSUFBSSxFQUFOLGVBQUE7QUFBeUIsTUFBQSxLQUF6QixFQUF5QixLQUF6QjtBQUFnQyxNQUFBLEdBQUEsRUFBQTtBQUFoQyxLQUFiLENBQVA7QUFDRCxHOztzQkFFRCxpQkFBTyxLQUFQLEVBQU8sR0FBUCxFQUF1QztBQUNyQyxXQUFPLEtBQUEsT0FBQSxDQUFhO0FBQUUsTUFBQSxJQUFJLEVBQU4sZ0JBQUE7QUFBMEIsTUFBQSxLQUExQixFQUEwQixLQUExQjtBQUFpQyxNQUFBLEdBQUEsRUFBQTtBQUFqQyxLQUFiLENBQVA7QUFDRCxHOztTQUVELE0sR0FBQSxnQkFBTSxLQUFOLEVBQU0sR0FBTixFQUFxQztBQUNuQyxXQUFPLEtBQUEsT0FBQSxDQUFhO0FBQUUsTUFBQSxJQUFJLEVBQU4sZUFBQTtBQUF5QixNQUFBLEtBQXpCLEVBQXlCLEtBQXpCO0FBQWdDLE1BQUEsR0FBQSxFQUFBO0FBQWhDLEtBQWIsQ0FBUDtBQUNELEc7OztLQThDSDs7O0FBRUEsU0FBQSxZQUFBLENBQUEsSUFBQSxFQUEwQztBQUN4QyxVQUFRLElBQUksQ0FBWixJQUFBO0FBQ0UsU0FBQSxRQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7O0FBQ0YsU0FBQSxVQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBRixRQUFBO0FBQW9CLFFBQUEsS0FBSyxFQUFFO0FBQTNCLE9BQVA7O0FBQ0YsU0FBQSxTQUFBO0FBQ0UsYUFBTztBQUFFLFFBQUEsUUFBUSxFQUFFLElBQUksQ0FBaEIsSUFBQTtBQUF1QixRQUFBLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBTCxJQUFBO0FBQTlCLE9BQVA7QUFOSjtBQVFEOztBQUVELGVBQWUsSUFBZixRQUFlLEVBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0LCBPcHRpb24sIFByZXNlbnRBcnJheSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFBhcnNlck5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vcGFyc2VyJztcbmltcG9ydCB7IFNvdXJjZUxvY2F0aW9uIH0gZnJvbSAnLi4vc291cmNlL2xvY2F0aW9uJztcbmltcG9ydCB7IFNvdXJjZU9mZnNldCwgU291cmNlU3BhbiB9IGZyb20gJy4uL3NvdXJjZS9zcGFuJztcbmltcG9ydCAqIGFzIEFTVHYxIGZyb20gJy4vYXBpJztcbmltcG9ydCB7IFBhdGhFeHByZXNzaW9uSW1wbFYxIH0gZnJvbSAnLi9sZWdhY3ktaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfU1RSSVAgPSB7XG4gIGNsb3NlOiBmYWxzZSxcbiAgb3BlbjogZmFsc2UsXG59O1xuXG4vKipcbiAqIFRoZSBQYXJzZXIgQnVpbGRlciBkaWZmZXJlbnRpYXRlcyBmcm9tIHRoZSBwdWJsaWMgYnVpbGRlciBBUEkgYnk6XG4gKlxuICogMS4gT2ZmZXJpbmcgZmV3ZXIgZGlmZmVyZW50IHdheXMgdG8gaW5zdGFudGlhdGUgbm9kZXNcbiAqIDIuIE1hbmRhdGluZyBzb3VyY2UgbG9jYXRpb25zXG4gKi9cbmNsYXNzIEJ1aWxkZXJzIHtcbiAgcG9zKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZSxcbiAgICAgIGNvbHVtbixcbiAgICB9O1xuICB9XG5cbiAgYmxvY2tJdHNlbGYoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgY2hhaW5lZCA9IGZhbHNlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgICBibG9ja1BhcmFtcz86IHN0cmluZ1tdO1xuICAgIGNoYWluZWQ/OiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkJsb2NrIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrJyxcbiAgICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgICBjaGFpbmVkLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZW1wbGF0ZSh7XG4gICAgYm9keSxcbiAgICBibG9ja1BhcmFtcyxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZSh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICB0cnVzdGluZyxcbiAgICBsb2MsXG4gICAgc3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIHRydXN0aW5nOiBib29sZWFuO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBzdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgZXNjYXBlZDogIXRydXN0aW5nLFxuICAgICAgdHJ1c3RpbmcsXG4gICAgICBsb2MsXG4gICAgICBzdHJpcDogc3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGRlZmF1bHRCbG9jayxcbiAgICBlbHNlQmxvY2sgPSBudWxsLFxuICAgIGxvYyxcbiAgICBvcGVuU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGludmVyc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gICAgY2xvc2VTdHJpcCA9IERFRkFVTFRfU1RSSVAsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBkZWZhdWx0QmxvY2s6IEFTVHYxLkJsb2NrO1xuICAgIGVsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5CbG9jaz47XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICAgIG9wZW5TdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgICBpbnZlcnNlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgY2xvc2VTdHJpcDogQVNUdjEuU3RyaXBGbGFncztcbiAgfSk6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICAgIHBhdGg6IHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgcHJvZ3JhbTogZGVmYXVsdEJsb2NrLFxuICAgICAgaW52ZXJzZTogZWxzZUJsb2NrLFxuICAgICAgbG9jOiBsb2MsXG4gICAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCxcbiAgICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwLFxuICAgICAgY2xvc2VTdHJpcDogY2xvc2VTdHJpcCxcbiAgICB9O1xuICB9XG5cbiAgY29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M6IFNvdXJjZU9mZnNldCk6IFBhcnNlck5vZGVCdWlsZGVyPEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBtdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ011c3RhY2hlQ29tbWVudFN0YXRlbWVudCcsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGNvbmNhdChcbiAgICBwYXJ0czogUHJlc2VudEFycmF5PEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQ+LFxuICAgIGxvYzogU291cmNlU3BhblxuICApOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQ29uY2F0U3RhdGVtZW50JyxcbiAgICAgIHBhcnRzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBlbGVtZW50KHtcbiAgICB0YWcsXG4gICAgc2VsZkNsb3NpbmcsXG4gICAgYXR0cnMsXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbW9kaWZpZXJzLFxuICAgIGNvbW1lbnRzLFxuICAgIGNoaWxkcmVuLFxuICAgIGxvYyxcbiAgfTogQnVpbGRFbGVtZW50T3B0aW9ucyk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0VsZW1lbnROb2RlJyxcbiAgICAgIHRhZyxcbiAgICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzIHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgICBjb21tZW50czogKGNvbW1lbnRzIGFzIEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFtdKSB8fCBbXSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudE1vZGlmaWVyKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGF0dHIoe1xuICAgIG5hbWUsXG4gICAgdmFsdWUsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5BdHRyTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICB0ZXh0KHsgY2hhcnMsIGxvYyB9OiB7IGNoYXJzOiBzdHJpbmc7IGxvYzogU291cmNlU3BhbiB9KTogQVNUdjEuVGV4dE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGV4dE5vZGUnLFxuICAgICAgY2hhcnMsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHNleHByKHtcbiAgICBwYXRoLFxuICAgIHBhcmFtcyxcbiAgICBoYXNoLFxuICAgIGxvYyxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgQVNUdjEuU3ViRXhwcmVzc2lvbjtcbiAgICBwYXJhbXM6IEFTVHYxLkV4cHJlc3Npb25bXTtcbiAgICBoYXNoOiBBU1R2MS5IYXNoO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgcGF0aCh7XG4gICAgaGVhZCxcbiAgICB0YWlsLFxuICAgIGxvYyxcbiAgfToge1xuICAgIGhlYWQ6IEFTVHYxLlBhdGhIZWFkO1xuICAgIHRhaWw6IHN0cmluZ1tdO1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgfSk6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHtcbiAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gICAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gICAgbGV0IG9yaWdpbmFsID0gWy4uLm9yaWdpbmFsSGVhZCwgLi4ucGFydHNdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcGFyc2VyLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQUEsTUFBQSxRQUFBLGVBQUE7QUFNQSxTQUFBLG9CQUFBLFFBQUEsa0JBQUE7QUFFQSxJQUFNLGFBQWEsR0FBRztBQUNwQixFQUFBLEtBQUssRUFEZSxLQUFBO0FBRXBCLEVBQUEsSUFBSSxFQUFFO0FBRmMsQ0FBdEI7QUFLQTs7Ozs7OztJQU1BLFE7Ozs7O1NBQ0UsRyxHQUFBLGFBQUcsSUFBSCxFQUFHLE1BQUgsRUFBZ0M7QUFDOUIsV0FBTztBQUNMLE1BQUEsSUFESyxFQUNMLElBREs7QUFFTCxNQUFBLE1BQUEsRUFBQTtBQUZLLEtBQVA7QUFJRCxHOztTQUVELFcsR0FBQSwyQkFVQztBQUFBLFFBVlcsSUFVWCxRQVZXLElBVVg7QUFBQSxRQVZXLFdBVVgsUUFWVyxXQVVYO0FBQUEsNEJBUEMsT0FPRDtBQUFBLFFBUEMsT0FPRCw2QkFWVyxLQVVYO0FBQUEsUUFOQyxHQU1ELFFBTkMsR0FNRDtBQUNDLFdBQU87QUFDTCxNQUFBLElBQUksRUFEQyxPQUFBO0FBRUwsTUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxNQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxNQUFBLE9BSkssRUFJTCxPQUpLO0FBS0wsTUFBQSxHQUFBLEVBQUE7QUFMSyxLQUFQO0FBT0QsRzs7U0FFRCxRLEdBQUEseUJBUUM7QUFBQSxRQVJRLElBUVIsU0FSUSxJQVFSO0FBQUEsUUFSUSxXQVFSLFNBUlEsV0FRUjtBQUFBLFFBTEMsR0FLRCxTQUxDLEdBS0Q7QUFDQyxXQUFPO0FBQ0wsTUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLE1BQUEsSUFBSSxFQUFFLElBQUksSUFGTCxFQUFBO0FBR0wsTUFBQSxXQUFXLEVBQUUsV0FBVyxJQUhuQixFQUFBO0FBSUwsTUFBQSxHQUFBLEVB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Q0g7OztBQUVBLFNBQUEsWUFBQSxDQUFBLElBQUEsRUFBMEM7QUFDeEMsVUFBUSxJQUFJLENBQVosSUFBQTtBQUNFLFNBQUEsUUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQOztBQUNGLFNBQUEsVUFBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQUYsUUFBQTtBQUFvQixRQUFBLEtBQUssRUFBRTtBQUEzQixPQUFQOztBQUNGLFNBQUEsU0FBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQO0FBTko7QUFRRDs7QUFFRCxlQUFlLElBQWYsUUFBZSxFQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uLCBQcmVzZW50QXJyYXkgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBQYXJzZXJOb2RlQnVpbGRlciB9IGZyb20gJy4uL3BhcnNlcic7XG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VPZmZzZXQsIFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX1NUUklQID0ge1xuICBjbG9zZTogZmFsc2UsXG4gIG9wZW46IGZhbHNlLFxufTtcblxuLyoqXG4gKiBUaGUgUGFyc2VyIEJ1aWxkZXIgZGlmZmVyZW50aWF0ZXMgZnJvbSB0aGUgcHVibGljIGJ1aWxkZXIgQVBJIGJ5OlxuICpcbiAqIDEuIE9mZmVyaW5nIGZld2VyIGRpZmZlcmVudCB3YXlzIHRvIGluc3RhbnRpYXRlIG5vZGVzXG4gKiAyLiBNYW5kYXRpbmcgc291cmNlIGxvY2F0aW9uc1xuICovXG5jbGFzcyBCdWlsZGVycyB7XG4gIHBvcyhsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmUsXG4gICAgICBjb2x1bW4sXG4gICAgfTtcbiAgfVxuXG4gIGJsb2NrSXRzZWxmKHtcbiAgICBib2R5LFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIGNoYWluZWQgPSBmYWxzZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBib2R5PzogQVNUdjEuU3RhdGVtZW50W107XG4gICAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgICBjaGFpbmVkPzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5CbG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9jaycsXG4gICAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgICAgY2hhaW5lZCxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGVtcGxhdGUoe1xuICAgIGJvZHksXG4gICAgYmxvY2tQYXJhbXMsXG4gICAgbG9jLFxuICB9OiB7XG4gICAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdO1xuICAgIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuVGVtcGxhdGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgICAgYm9keTogYm9keSB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGUoe1xuICAgIHBhdGgsXG4gICAgcGFyYW1zLFxuICAgIGhhc2gsXG4gICAgdHJ1c3RpbmcsXG4gICAgbG9jLFxuICAgIHN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgfToge1xuICAgIHBhdGg6IEFTVHYxLkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICB0cnVzdGluZzogYm9vbGVhbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gICAgc3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgICBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIGVzY2FwZWQ6ICF0cnVzdGluZyxcbiAgICAgIHRydXN0aW5nLFxuICAgICAgbG9jLFxuICAgICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBibG9jayh7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBkZWZhdWx0QmxvY2ssXG4gICAgZWxzZUJsb2NrID0gbnVsbCxcbiAgICBsb2MsXG4gICAgb3BlblN0cmlwID0gREVGQVVMVF9TVFJJUCxcbiAgICBpbnZlcnNlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICAgIGNsb3NlU3RyaXAgPSBERUZBVUxUX1NUUklQLFxuICB9OiB7XG4gICAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBBU1R2MS5TdWJFeHByZXNzaW9uO1xuICAgIHBhcmFtczogQVNUdjEuRXhwcmVzc2lvbltdO1xuICAgIGhhc2g6IEFTVHYxLkhhc2g7XG4gICAgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgICBlbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuQmxvY2s+O1xuICAgIGxvYzogU291cmNlU3BhbjtcbiAgICBvcGVuU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gICAgaW52ZXJzZVN0cmlwOiBBU1R2MS5TdHJpcEZsYWdzO1xuICAgIGNsb3NlU3RyaXA6IEFTVHYxLlN0cmlwRmxhZ3M7XG4gIH0pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgcGFyYW1zLFxuICAgICAgaGFzaCxcbiAgICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayxcbiAgICAgIGludmVyc2U6IGVsc2VCbG9jayxcbiAgICAgIGxvYzogbG9jLFxuICAgICAgb3BlblN0cmlwOiBvcGVuU3RyaXAsXG4gICAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jOiBTb3VyY2VPZmZzZXQpOiBQYXJzZXJOb2RlQnVpbGRlcjxBU1R2MS5Db21tZW50U3RhdGVtZW50PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgbXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBjb25jYXQoXG4gICAgcGFydHM6IFByZXNlbnRBcnJheTxBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50PixcbiAgICBsb2M6IFNvdXJjZVNwYW5cbiAgKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgICBwYXJ0cyxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgZWxlbWVudCh7XG4gICAgdGFnLFxuICAgIHNlbGZDbG9zaW5nLFxuICAgIGF0dHJzLFxuICAgIGJsb2NrUGFyYW1zLFxuICAgIG1vZGlmaWVycyxcbiAgICBjb21tZW50cyxcbiAgICBjaGlsZHJlbixcbiAgICBsb2MsXG4gIH06IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgICB0YWcsXG4gICAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGVsZW1lbnRNb2RpZmllcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICAgIHBhdGgsXG4gICAgICBwYXJhbXMsXG4gICAgICBoYXNoLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdHRyKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlLFxuICAgIGxvYyxcbiAgfToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ107XG4gICAgbG9jOiBTb3VyY2VTcGFuO1xuICB9KTogQVNUdjEuQXR0ck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdGV4dCh7IGNoYXJzLCBsb2MgfTogeyBjaGFyczogc3RyaW5nOyBsb2M6IFNvdXJjZVNwYW4gfSk6IEFTVHYxLlRleHROb2RlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICAgIGNoYXJzLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBzZXhwcih7XG4gICAgcGF0aCxcbiAgICBwYXJhbXMsXG4gICAgaGFzaCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IEFTVHYxLlN1YkV4cHJlc3Npb247XG4gICAgcGFyYW1zOiBBU1R2MS5FeHByZXNzaW9uW107XG4gICAgaGFzaDogQVNUdjEuSGFzaDtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgICAgcGF0aCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGhhc2gsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhdGgoe1xuICAgIGhlYWQsXG4gICAgdGFpbCxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBoZWFkOiBBU1R2MS5QYXRoSGVhZDtcbiAgICB0YWlsOiBzdHJpbmdbXTtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICAgIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGxvYyk7XG4gIH1cblxuICBoZWFkKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmF0TmFtZShoZWFkLCBsb2MpO1xuICAgIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGlzKGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZhcihoZWFkLCBsb2MpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMobG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBhdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5QYXRoSGVhZCB7XG4gICAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICAgIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZSxcbiAgICAgIGxvYyxcbiAgICB9O1xuICB9XG5cbiAgdmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuUGF0aEhlYWQge1xuICAgIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICAgIGFzc2VydChcbiAgICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWUsXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIGhhc2gocGFpcnM6IEFTVHYxLkhhc2hQYWlyW10sIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLkhhc2gge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnSGFzaCcsXG4gICAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgICBsb2MsXG4gICAgfTtcbiAgfVxuXG4gIHBhaXIoe1xuICAgIGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbjtcbiAgICBsb2M6IFNvdXJjZVNwYW47XG4gIH0pOiBBU1R2MS5IYXNoUGFpciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH07XG4gIH1cblxuICBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBsb2MsXG4gIH06IHtcbiAgICB0eXBlOiBUWyd0eXBlJ107XG4gICAgdmFsdWU6IFRbJ3ZhbHVlJ107XG4gICAgbG9jPzogU291cmNlTG9jYXRpb247XG4gIH0pOiBUIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgICAgbG9jLFxuICAgIH0gYXMgVDtcbiAgfVxuXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmFsKHsgdHlwZTogJ1VuZGVmaW5lZExpdGVyYWwnLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICB9XG5cbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdWxsTGl0ZXJhbCcsIHZhbHVlOiBudWxsIH0pO1xuICB9XG5cbiAgc3RyaW5nKHZhbHVlOiBzdHJpbmcsIGxvYzogU291cmNlU3Bhbik6IEFTVHYxLlN0cmluZ0xpdGVyYWwge1xuICAgIHJldHVybiB0aGlzLmxpdGVyYWwoeyB0eXBlOiAnU3RyaW5nTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBib29sZWFuKHZhbHVlOiBib29sZWFuLCBsb2M6IFNvdXJjZVNwYW4pOiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdCb29sZWFuTGl0ZXJhbCcsIHZhbHVlLCBsb2MgfSk7XG4gIH1cblxuICBudW1iZXIodmFsdWU6IG51bWJlciwgbG9jOiBTb3VyY2VTcGFuKTogQVNUdjEuTnVtYmVyTGl0ZXJhbCB7XG4gICAgcmV0dXJuIHRoaXMubGl0ZXJhbCh7IHR5cGU6ICdOdW1iZXJMaXRlcmFsJywgdmFsdWUsIGxvYyB9KTtcbiAgfVxufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIHRhZzogc3RyaW5nO1xuICBzZWxmQ2xvc2luZzogYm9vbGVhbjtcbiAgYXR0cnM6IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVyczogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuOiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM6IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zOiBzdHJpbmdbXTtcbiAgbG9jOiBTb3VyY2VTcGFuO1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQnVpbGRlcnMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
import { Core, Dict } from '@glimmer/interfaces';
import { ASTv2 } from '..';
export declare abstract class SymbolTable {
static top(locals: string[]): ProgramSymbolTable;
static top(locals: string[], customizeComponentName: (input: string) => string): ProgramSymbolTable;
abstract has(name: string): boolean;

@@ -8,3 +9,3 @@ abstract get(name: string): [symbol: number, isRoot: boolean];

abstract getEvalInfo(): Core.EvalInfo;
abstract allocateFree(name: string): number;
abstract allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
abstract allocateNamed(name: string): number;

@@ -19,3 +20,4 @@ abstract allocateBlock(name: string): number;

private templateLocals;
constructor(templateLocals: string[]);
private customizeComponentName;
constructor(templateLocals: string[], customizeComponentName: (input: string) => string);
symbols: string[];

@@ -34,3 +36,3 @@ upvars: string[];

getEvalInfo(): Core.EvalInfo;
allocateFree(name: string): number;
allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
allocateNamed(name: string): number;

@@ -51,3 +53,3 @@ allocateBlock(name: string): number;

setHasEval(): void;
allocateFree(name: string): number;
allocateFree(name: string, resolution: ASTv2.FreeVarResolution): number;
allocateNamed(name: string): number;

@@ -54,0 +56,0 @@ allocateBlock(name: string): number;

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

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

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

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

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc