New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@glimmer/application-test-helpers

Package Overview
Dependencies
Maintainers
11
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/application-test-helpers - npm Package Compare versions

Comparing version 0.14.0-alpha.13 to 1.0.0-beta.1

23

dist/commonjs/es2017/src/app-builder.js

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

var _component = require("@glimmer/component");
var _util = require("@glimmer/util");

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

this.options = options;
this.modules[`component-manager:/${this.rootName}/component-managers/main`] = this.options.ComponentManager;
this.template('Main', '<div />');

@@ -135,3 +132,3 @@ this.helper('action', _application.buildAction, true);

h: handle,
table: template.symbolTable
sT: template.symbolTable
};

@@ -225,2 +222,15 @@ });

exports.AppBuilder = AppBuilder;
const CAPABILITIES = {
createInstance: true,
dynamicLayout: false,
dynamicTag: false,
wrapped: false,
prepareArgs: false,
createArgs: true,
attributeHook: false,
elementHook: false,
updateHook: true,
createCaller: false,
dynamicScope: true
};

@@ -245,3 +255,3 @@ class CompilerDelegate {

getComponentCapabilities() {
return _component.CAPABILITIES;
return CAPABILITIES;
}

@@ -282,3 +292,2 @@

options.loader = options.loader || 'runtime-compiler';
options.ComponentManager = options.ComponentManager || _component.ComponentManager;
options.ApplicationClass = options.ApplicationClass || TestApplication;

@@ -289,2 +298,2 @@ return new AppBuilder(options.appName, options);

exports.buildApp = buildApp;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7QUFDQTs7QUFDQTs7OztBQVVBOztBQUNBOztBQUNBOztBQUVBOztBQUdBOztBQUVBOzs7Ozs7QUFlTSxNQUFPLGVBQVAsU0FBK0IscUJBQS9CLENBQTBDOztRQUFuQyxlLEdBQUEsZTs7QUFxQmIsU0FBUyxVQUFULENBQW9CLE1BQXBCLEVBQW9DLElBQXBDLEVBQWdEO0FBQzlDLFNBQU87QUFDTCxJQUFBLElBQUksRUFBRSxVQUREO0FBRUwsSUFBQSxNQUZLO0FBR0wsSUFBQSxJQUhLO0FBSUwsSUFBQSxJQUFJLEVBQUU7QUFDSixNQUFBLE1BREk7QUFFSixNQUFBO0FBRkk7QUFKRCxHQUFQO0FBU0Q7O0FBRUssTUFBTyxVQUFQLENBQWlCO0FBTXJCLEVBQUEsV0FBQSxDQUFZLElBQVosRUFBMEIsT0FBMUIsRUFBdUQ7QUFKdkQsU0FBQSxPQUFBLEdBQXlCLEVBQXpCO0FBQ0EsU0FBQSxTQUFBLEdBQTBCLEVBQTFCO0FBSUUsU0FBSyxRQUFMLEdBQWdCLElBQWhCO0FBQ0EsU0FBSyxPQUFMLEdBQWUsT0FBZjtBQUNBLFNBQUssT0FBTCxDQUNFLHNCQUFzQixLQUFLLFFBQVEsMEJBRHJDLElBRUksS0FBSyxPQUFMLENBQWEsZ0JBRmpCO0FBR0EsU0FBSyxRQUFMLENBQWMsTUFBZCxFQUFzQixTQUF0QjtBQUNBLFNBQUssTUFBTCxDQUFZLFFBQVosRUFBc0Isd0JBQXRCLEVBQW1DLElBQW5DO0FBQ0Q7O0FBRUQsRUFBQSxRQUFRLENBQUMsSUFBRCxFQUFlLFFBQWYsRUFBK0I7QUFDckMsc0JBQ0UsSUFBSSxDQUFDLE1BQUwsQ0FBWSxDQUFaLE1BQW1CLElBQUksQ0FBQyxNQUFMLENBQVksQ0FBWixFQUFlLFdBQWYsRUFEckIsRUFFRSxpREFG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QSxHQUFnQyxFQUE3RSxFQUErRTtBQUM3RSxFQUFBLE9BQU8sQ0FBQyxPQUFSLEdBQWtCLE9BQU8sQ0FBQyxPQUFSLElBQW1CLFVBQXJDO0FBQ0EsRUFBQSxPQUFPLENBQUMsTUFBUixHQUFpQixPQUFPLENBQUMsTUFBUixJQUFrQixrQkFBbkM7QUFDQSxFQUFBLE9BQU8sQ0FBQyxnQkFBUixHQUEyQixPQUFPLENBQUMsZ0JBQVIsSUFBNEIsMkJBQXZEO0FBQ0EsRUFBQSxPQUFPLENBQUMsZ0JBQVIsR0FDRSxPQUFPLENBQUMsZ0JBQVIsSUFBNkIsZUFEL0I7QUFHQSxTQUFPLElBQUksVUFBSixDQUFlLE9BQU8sQ0FBQyxPQUF2QixFQUFnQyxPQUFoQyxDQUFQO0FBQ0Q7O1FBRVEsUSxHQUFBLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb2x2ZXIsIHsgQmFzaWNNb2R1bGVSZWdpc3RyeSwgUmVzb2x2ZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnQGdsaW1tZXIvcmVzb2x2ZXInO1xuaW1wb3J0IHsgRGljdCwgTW9kdWxlTG9jYXRvciwgVGVtcGxhdGVMb2NhdG9yIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbiBmcm9tICcuL2RlZmF1bHQtcmVzb2x2ZXItY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBwcmVjb21waWxlIH0gZnJvbSAnLi9jb21waWxlcic7XG5pbXBvcnQgQXBwbGljYXRpb24sIHtcbiAgQXBwbGljYXRpb25Db25zdHJ1Y3RvcixcbiAgQnl0ZWNvZGVMb2FkZXIsXG4gIERPTUJ1aWxkZXIsXG4gIExvYWRlcixcbiAgUnVudGltZUNvbXBpbGVyTG9hZGVyLFxuICBTeW5jUmVuZGVyZXIsXG4gIE1vZHVsZVR5cGVzLFxuICBJTlRFUk5BTF9EWU5BTUlDX1NDT1BFXG59IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvbXBvbmVudE1hbmFnZXIsIENBUEFCSUxJVElFUyB9IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEJ1bmRsZUNvbXBpbGVyLCBDb21waWxlckRlbGVnYXRlIGFzIElDb21waWxlckRlbGVnYXRlIH0gZnJvbSAnQGdsaW1tZXIvYnVuZGxlLWNvbXBpbGVyJztcbmltcG9ydCB7IGJ1aWxkQWN0aW9uLCBtYWluVGVtcGxhdGUgfSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBjb21waWxhYmxlIH0gZnJvbSAnQGdsaW1tZXIvb3Bjb2RlLWNvbXBpbGVyJztcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vc3JjL2xvYWRlcnMvYnl0ZWNvZGUvbG9hZGVyJztcbmltcG9ydCB7IFNpbXBsZURvY3VtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IFNTUkFwcGxpY2F0aW9uIH0gZnJvbSAnQGdsaW1tZXIvc3NyJztcblxuaW1wb3J0IGRpZFJlbmRlciBmcm9tICcuL2RpZC1yZW5kZXInO1xuaW1wb3J0IEhUTUxTZXJpYWxpemVyIGZyb20gJ0BzaW1wbGUtZG9tL3NlcmlhbGl6ZXInO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbi9zcmMvYmFzZS1hcHBsaWNhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlck9wdGlvbnM8VD4ge1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICBsb2FkZXI/OiBzdHJpbmc7XG4gIEFwcGxpY2F0aW9uQ2xhc3M/OiBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+O1xuICBDb21wb25lbnRNYW5hZ2VyPzogYW55OyAvLyBUT0RPIC0gdHlwaW5nXG4gIHJlc29sdmVyQ29uZmlndXJhdGlvbj86IFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgZG9jdW1lbnQ/OiBTaW1wbGVEb2N1bWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRGYWN0b3J5IHt9XG5cbmV4cG9ydCBjbGFzcyBUZXN0QXBwbGljYXRpb24gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7XG4gIHJvb3RFbGVtZW50OiBFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJUZW1wbGF0ZU1ldGEge1xuICBzcGVjaWZpZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEhlbHBlckZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBpc0ZhY3Rvcnk/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJvb3ROYW1lPzogc3RyaW5nO1xuICByZXNvbHZlcj86IFJlc29sdmVyO1xuICBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlbmRlcmVyPzogUmVuZGVyZXI7XG4gIHNlcmlhbGl6ZXI/OiBIVE1MU2VyaWFsaXplcjtcbiAgW0lOVEVSTkFMX0RZTkFNSUNfU0NPUEVdPzogRGljdDx1bmtub3duPjtcbn1cblxuZnVuY3Rpb24gbG9jYXRvckZvcihtb2R1bGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogVGVtcGxhdGVMb2NhdG9yPE1vZHVsZUxvY2F0b3I+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAndGVtcGxhdGUnLFxuICAgIG1vZHVsZSxcbiAgICBuYW1lLFxuICAgIG1ldGE6IHtcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcEJ1aWxkZXI8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ge1xuICByb290TmFtZTogc3RyaW5nO1xuICBtb2R1bGVzOiBEaWN0PHVua25vd24+ID0ge307XG4gIHRlbXBsYXRlczogRGljdDxzdHJpbmc+ID0ge307XG4gIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLnJvb3ROYW1lID0gbmFtZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMubW9kdWxlc1tcbiAgICAgIGBjb21wb25lbnQtbWFuYWdlcjovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnQtbWFuYWdlcnMvbWFpbmBcbiAgICBdID0gdGhpcy5vcHRpb25zLkNvbXBvbmVudE1hbmFnZXI7XG4gICAgdGhpcy50ZW1wbGF0ZSgnTWFpbicsICc8ZGl2IC8+Jyk7XG4gICAgdGhpcy5oZWxwZXIoJ2FjdGlvbicsIGJ1aWxkQWN0aW9uLCB0cnVlKTtcbiAgfVxuXG4gIHRlbXBsYXRlKG5hbWU6IHN0cmluZywgdGVtcGxhdGU6IHN0cmluZykge1xuICAgIGFzc2VydChcbiAgICAgIG5hbWUuY2hhckF0KDApID09PSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgJ3RlbXBsYXRlIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyJ1xuICAgICk7XG5cbiAgICBsZXQgc3BlY2lmaWVyID0gYHRlbXBsYXRlOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBwcmVjb21waWxlKHRlbXBsYXRlLCB7IG1ldGE6IHsgc3BlY2lmaWVyIH0gfSk7XG4gICAgdGhpcy50ZW1wbGF0ZXNbc3BlY2lmaWVyXSA9IHRlbXBsYXRlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tcG9uZW50KG5hbWU6IHN0cmluZywgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgY29tcG9uZW50Oi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBjb21wb25lbnRGYWN0b3J5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaGVscGVyKG5hbWU6IHN0cmluZywgaGVscGVyRnVuYzogSGVscGVyRnVuY3Rpb24sIGlzRmFjdG9yeSA9IGZhbHNlKSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGBoZWxwZXI6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICBoZWxwZXJGdW5jLmlzRmFjdG9yeSA9IGlzRmFjdG9yeTtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IGhlbHBlckZ1bmM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSZXNvbHZlcigpOiBSZXNvbHZlciB7XG4gICAgbGV0IHJlc29sdmVyQ29uZmlndXJhdGlvbiA9IHRoaXMub3B0aW9ucy5yZXNvbHZlckNvbmZpZ3VyYXRpb24gfHwgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgICByZXNvbHZlckNvbmZpZ3VyYXRpb24uYXBwID0gcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCB8fCB7XG4gICAgICBuYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgfTtcblxuICAgIGxldCByZWdpc3RyeSA9IG5ldyBCYXNpY01vZHVsZVJlZ2lzdHJ5KHRoaXMubW9kdWxlcyk7XG4gICAgcmV0dXJuIG5ldyBSZXNvbHZlcihyZXNvbHZlckNvbmZpZ3VyYXRpb24sIHJlZ2lzdHJ5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJ1bnRpbWVDb21waWxlckxvYWRlcigpOiBMb2FkZXIge1xuICAgIHJldHVybiBuZXcgUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRCeXRlY29kZUxvYWRlcihyZXNvbHZlcjogUmVzb2x2ZXIpIHtcbiAgICBsZXQgZGVsZWdhdGUgPSBuZXcgQ29tcGlsZXJEZWxlZ2F0ZShyZXNvbHZlcik7XG4gICAgbGV0IGNvbXBpbGVyID0gbmV3IEJ1bmRsZUNvbXBpbGVyKGRlbGVnYXRlKTtcblxuICAgIGxldCBtYWluTG9jYXRvciA9IGxvY2F0b3JGb3IoJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZScsICdkZWZhdWx0Jyk7XG4gICAgbWFpbkxvY2F0b3IubWV0YS5tb2R1bGUgPSAndGVtcGxhdGU6bWFpblRlbXBsYXRlJztcblxuICAgIGxldCBibG9jayA9IEpTT04ucGFyc2UobWFpblRlbXBsYXRlLmJsb2NrKTtcbiAgICBsZXQgY29tcGlsYWJsZVRlbXBsYXRlID0gY29tcGlsYWJsZSh7XG4gICAgICBibG9jayxcbiAgICAgIHJlZmVycmVyOiBtYWluTG9jYXRvci5tZXRhLFxuICAgIH0pO1xuXG4gICAgY29tcGlsZXIuYWRkQ29tcGlsYWJsZVRlbXBsYXRlKG1haW5Mb2NhdG9yLCBjb21waWxhYmxlVGVtcGxhdGUpO1xuXG4gICAgZm9yIChsZXQgbW9kdWxlIGluIHRoaXMudGVtcGxhdGVzKSB7XG4gICAgICBjb21waWxlci5hZGRUZW1wbGF0ZVNvdXJjZShsb2NhdG9yRm9yKG1vZHVsZSwgJ2RlZmF1bHQnKSwgdGhpcy50ZW1wbGF0ZXNbbW9kdWxlXSk7XG4gICAgfVxuXG4gICAgbGV0IHsgaGVhcCwgcG9vbCwgdGFibGUgfSA9IGNvbXBpbGVyLmNvbXBpbGUoKTtcblxuICAgIGxldCByZXNvbHZlclRhYmxlOiB1bmtub3duW10gPSBbXTtcblxuICAgIGxldCBtZXRhOiBEaWN0PE1ldGFkYXRhPiA9IHt9O1xuXG4gICAgdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZm9yRWFjaCgodm1IYW5kbGUsIGxvY2F0b3IpID0+IHtcbiAgICAgIGxldCBoYW5kbGUgPSB0YWJsZS5ieU1vZHVsZUxvY2F0b3IuZ2V0KGxvY2F0b3IpO1xuICAgICAgbGV0IHRlbXBsYXRlID0gY29tcGlsZXIuZ2V0VGVtcGxhdGUobG9jYXRvcik7XG5cbiAgICAgIG1ldGFbbG9jYXRvci5tb2R1bGVdID0ge1xuICAgICAgICB2OiB2bUhhbmRsZSxcbiAgICAgICAgaDogaGFuZGxlLFxuICAgICAgICB0YWJsZTogdGVtcGxhdGUuc3ltYm9sVGFibGUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGFibGUuYnlIYW5kbGUuZm9yRWFjaCgobG9jYXRvciwgaGFuZGxlKSA9PiB7XG4gICAgICBsZXQgbW9kdWxlID0gbG9jYXRvci5tb2R1bGUucmVwbGFjZSgndGVtcGxhdGU6LycsICdjb21wb25lbnQ6LycpO1xuICAgICAgaWYgKHRoaXMubW9kdWxlc1ttb2R1bGVdKSB7XG4gICAgICAgIGlmIChtb2R1bGUuaW5kZXhPZignaGVscGVyOicpID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlVHlwZSA9ICh0aGlzLm1vZHVsZXNbbW9kdWxlXSBhcyBIZWxwZXJGdW5jdGlvbikuaXNGYWN0b3J5ID8gTW9kdWxlVHlwZXMuSEVMUEVSX0ZBQ1RPUlkgOiBNb2R1bGVUeXBlcy5IRUxQRVI7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gW21vZHVsZVR5cGUsIHRoaXMubW9kdWxlc1ttb2R1bGVdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSB0aGlzLm1vZHVsZXNbbW9kdWxlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGJ5dGVjb2RlID0gaGVhcC5idWZmZXI7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBwcmVmaXg6ICcnLFxuICAgICAgbWFpbkVudHJ5OiB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5nZXQobWFpbkxvY2F0b3IpLFxuICAgICAgcG9vbCxcbiAgICAgIHRhYmxlOiByZXNvbHZlclRhYmxlLFxuICAgICAgbWV0YSxcbiAgICAgIGhlYXA6IHtcbiAgICAgICAgdGFibGU6IGhlYXAudGFibGUsXG4gICAgICAgIGhhbmRsZTogaGVhcC5oYW5kbGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJ5dGVjb2RlTG9hZGVyKHsgYnl0ZWNvZGUsIGRhdGEgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRMb2FkZXIocmVzb2x2ZXIpOiBMb2FkZXIge1xuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvYWRlcikge1xuICAgICAgY2FzZSAncnVudGltZS1jb21waWxlcic6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gICAgICBjYXNlICdieXRlY29kZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbG9hZGVyICR7dGhpcy5vcHRpb25zLmxvYWRlcn1gKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lOiBzdHJpbmcsIGRhdGE6IERpY3Q8dW5rbm93bj4sIG9wdGlvbnM/OiBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIHJldHVybiBTU1JBcHBsaWNhdGlvbi5yZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lLCBkYXRhLCB7XG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJlc29sdmVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXI6IG5ldyBTeW5jUmVuZGVyZXIoKSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJvb3QoKTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlcjogTG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICBsZXQgZG9jOiBEb2N1bWVudCA9ICh0aGlzLm9wdGlvbnMuZG9jdW1lbnQgYXMgRG9jdW1lbnQpIHx8IGRvY3VtZW50O1xuICAgIGxldCBlbGVtZW50ID0gZG9jLmJvZHk7XG4gICAgbGV0IGJ1aWxkZXIgPSBuZXcgRE9NQnVpbGRlcih7IGVsZW1lbnQgfSk7XG4gICAgbGV0IHJlbmRlcmVyID0gbmV3IFN5bmNSZW5kZXJlcigpO1xuXG4gICAgbGV0IGFwcCA9IG5ldyB0aGlzLm9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyh7XG4gICAgICByZXNvbHZlcixcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcixcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgZG9jdW1lbnQ6IHRoaXMub3B0aW9ucy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGxldCByb290RWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBhcHAucm9vdEVsZW1lbnQgPSByb290RWxlbWVudDtcbiAgICBhcHAucmVuZGVyQ29tcG9uZW50KCdNYWluJywgcm9vdEVsZW1lbnQpO1xuICAgIGFwcC5ib290KCk7XG5cbiAgICBhd2FpdCBkaWRSZW5kZXIoYXBwKTtcblxuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cblxuY2xhc3MgQ29tcGlsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRzIElDb21waWxlckRlbGVnYXRlPE1vZHVsZUxvY2F0b3I+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlc29sdmVyOiBSZXNvbHZlcikge31cblxuICBoYXNDb21wb25lbnRJblNjb3BlKG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgfVxuXG4gIHJlc29sdmVDb21wb25lbnQobmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIGxldCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYHRlbXBsYXRlOiR7bmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50Q2FwYWJpbGl0aWVzKCkge1xuICAgIHJldHVybiBDQVBBQklMSVRJRVM7XG4gIH1cblxuICBoYXNIZWxwZXJJblNjb3BlKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlSGVscGVyKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gICAgcmV0dXJuIHsgbW9kdWxlOiByZXNvbHZlZCwgbmFtZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICBoYXNQYXJ0aWFsSW5TY29wZShwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWxOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaGFzTW9kaWZpZXJJblNjb3BlKG1vZGlmaWVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVNb2RpZmllcihtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRBcHA8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ob3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4gPSB7fSk6IEFwcEJ1aWxkZXI8VD4ge1xuICBvcHRpb25zLmFwcE5hbWUgPSBvcHRpb25zLmFwcE5hbWUgfHwgJ3Rlc3QtYXBwJztcbiAgb3B0aW9ucy5sb2FkZXIgPSBvcHRpb25zLmxvYWRlciB8fCAncnVudGltZS1jb21waWxlcic7XG4gIG9wdGlvbnMuQ29tcG9uZW50TWFuYWdlciA9IG9wdGlvbnMuQ29tcG9uZW50TWFuYWdlciB8fCBDb21wb25lbnRNYW5hZ2VyO1xuICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgPVxuICAgIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyB8fCAoVGVzdEFwcGxpY2F0aW9uIGFzIEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD4pO1xuXG4gIHJldHVybiBuZXcgQXBwQnVpbGRlcihvcHRpb25zLmFwcE5hbWUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBidWlsZEFwcCB9O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7QUFDQTs7QUFDQTs7OztBQVVBOztBQUNBOztBQUVBOztBQUdBOztBQUVBOzs7Ozs7QUFhTSxNQUFPLGVBQVAsU0FBK0IscUJBQS9CLENBQTBDOztRQUFuQyxlLEdBQUEsZTs7QUFxQmIsU0FBUyxVQUFULENBQW9CLE1BQXBCLEVBQW9DLElBQXBDLEVBQWdEO0FBQzlDLFNBQU87QUFDTCxJQUFBLElBQUksRUFBRSxVQUREO0FBRUwsSUFBQSxNQUZLO0FBR0wsSUFBQSxJQUhLO0FBSUwsSUFBQSxJQUFJLEVBQUU7QUFDSixNQUFBLE1BREk7QUFFSixNQUFBO0FBRkk7QUFKRCxHQUFQO0FBU0Q7O0FBRUssTUFBTyxVQUFQLENBQWlCO0FBTXJCLEVBQUEsV0FBQSxDQUFZLElBQVosRUFBMEIsT0FBMUIsRUFBdUQ7QUFKdkQsU0FBQSxPQUFBLEdBQXlCLEVBQXpCO0FBQ0EsU0FBQSxTQUFBLEdBQTBCLEVBQTFCO0FBSUUsU0FBSyxRQUFMLEdBQWdCLElBQWhCO0FBQ0EsU0FBSyxPQUFMLEdBQWUsT0FBZjtBQUNBLFNBQUssUUFBTCxDQUFjLE1BQWQsRUFBc0IsU0FBdEI7QUFDQSxTQUFLLE1BQUwsQ0FBWSxRQUFaLEVBQXNCLHdCQUF0QixFQUFtQyxJQUFuQztBQUNEOztBQUVELEVBQUEsUUFBUSxDQUFDLElBQUQsRUFBZSxRQUFmLEVBQStCO0FBQ3JDLHNCQUNFLElBQUksQ0FBQyxNQUFMLENBQVksQ0FBWixNQUFtQixJQUFJLENBQUMsTUFBTCxDQUFZLENBQVosRUFBZSxXQUFmLEVBRHJCLEVBRUUsaURBRkY7QUFLQSxRQUFJLFNBQVMsR0FBRyxhQUFhLEtBQUssUUFBUSxlQUFlLElBQUksRUFBN0Q7QUFDQSxTQUFLLE9BQUwsQ0FBYSxTQUFi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LFVBQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTjtBQUNEOztBQUVELEVBQUEsa0JBQWtCLENBQUMsWUFBRCxFQUF1QixRQUF2QixFQUE4QztBQUM5RCxVQUFNLElBQUksS0FBSixDQUFVLHlCQUFWLENBQU47QUFDRDs7QUFFRCxFQUFBLGVBQWUsQ0FBQyxZQUFELEVBQXVCLFFBQXZCLEVBQThDO0FBQzNELFVBQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTjtBQUNEOztBQXZDbUI7O0FBMEN0QixTQUFTLFFBQVQsQ0FBNkMsT0FBQSxHQUFnQyxFQUE3RSxFQUErRTtBQUM3RSxFQUFBLE9BQU8sQ0FBQyxPQUFSLEdBQWtCLE9BQU8sQ0FBQyxPQUFSLElBQW1CLFVBQXJDO0FBQ0EsRUFBQSxPQUFPLENBQUMsTUFBUixHQUFpQixPQUFPLENBQUMsTUFBUixJQUFrQixrQkFBbkM7QUFDQSxFQUFBLE9BQU8sQ0FBQyxnQkFBUixHQUNFLE9BQU8sQ0FBQyxnQkFBUixJQUE2QixlQUQvQjtBQUdBLFNBQU8sSUFBSSxVQUFKLENBQWUsT0FBTyxDQUFDLE9BQXZCLEVBQWdDLE9BQWhDLENBQVA7QUFDRDs7UUFFUSxRLEdBQUEsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZXNvbHZlciwgeyBCYXNpY01vZHVsZVJlZ2lzdHJ5LCBSZXNvbHZlckNvbmZpZ3VyYXRpb24gfSBmcm9tICdAZ2xpbW1lci9yZXNvbHZlcic7XG5pbXBvcnQgeyBEaWN0LCBNb2R1bGVMb2NhdG9yLCBUZW1wbGF0ZUxvY2F0b3IsIENvbXBvbmVudENhcGFiaWxpdGllcyB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IGRlZmF1bHRSZXNvbHZlckNvbmZpZ3VyYXRpb24gZnJvbSAnLi9kZWZhdWx0LXJlc29sdmVyLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgcHJlY29tcGlsZSB9IGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uLCB7XG4gIEFwcGxpY2F0aW9uQ29uc3RydWN0b3IsXG4gIEJ5dGVjb2RlTG9hZGVyLFxuICBET01CdWlsZGVyLFxuICBMb2FkZXIsXG4gIFJ1bnRpbWVDb21waWxlckxvYWRlcixcbiAgU3luY1JlbmRlcmVyLFxuICBNb2R1bGVUeXBlcyxcbiAgSU5URVJOQUxfRFlOQU1JQ19TQ09QRVxufSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEJ1bmRsZUNvbXBpbGVyLCBDb21waWxlckRlbGVnYXRlIGFzIElDb21waWxlckRlbGVnYXRlIH0gZnJvbSAnQGdsaW1tZXIvYnVuZGxlLWNvbXBpbGVyJztcbmltcG9ydCB7IGJ1aWxkQWN0aW9uLCBtYWluVGVtcGxhdGUsIFJlbmRlcmVyLCBCeXRlY29kZU1ldGFkYXRhIH0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgY29tcGlsYWJsZSB9IGZyb20gJ0BnbGltbWVyL29wY29kZS1jb21waWxlcic7XG5pbXBvcnQgeyBTaW1wbGVEb2N1bWVudCB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5pbXBvcnQgSFRNTFNlcmlhbGl6ZXIgZnJvbSAnQHNpbXBsZS1kb20vc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTU1JBcHBsaWNhdGlvbiB9IGZyb20gJ0BnbGltbWVyL3Nzcic7XG5cbmltcG9ydCBkaWRSZW5kZXIgZnJvbSAnLi9kaWQtcmVuZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBCdWlsZGVyT3B0aW9uczxUPiB7XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIGxvYWRlcj86IHN0cmluZztcbiAgQXBwbGljYXRpb25DbGFzcz86IEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD47XG4gIENvbXBvbmVudE1hbmFnZXI/OiBhbnk7IC8vIFRPRE8gLSB0eXBpbmdcbiAgcmVzb2x2ZXJDb25maWd1cmF0aW9uPzogUmVzb2x2ZXJDb25maWd1cmF0aW9uO1xuICBkb2N1bWVudD86IFNpbXBsZURvY3VtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEZhY3Rvcnkge31cblxuZXhwb3J0IGNsYXNzIFRlc3RBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uIHtcbiAgcm9vdEVsZW1lbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlclRlbXBsYXRlTWV0YSB7XG4gIHNwZWNpZmllcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSGVscGVyRnVuY3Rpb24gZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIGlzRmFjdG9yeT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zIHtcbiAgcm9vdE5hbWU/OiBzdHJpbmc7XG4gIHJlc29sdmVyPzogUmVzb2x2ZXI7XG4gIGxvYWRlcj86IExvYWRlcjtcbiAgcmVuZGVyZXI/OiBSZW5kZXJlcjtcbiAgc2VyaWFsaXplcj86IEhUTUxTZXJpYWxpemVyO1xuICBbSU5URVJOQUxfRFlOQU1JQ19TQ09QRV0/OiBEaWN0PHVua25vd24+O1xufVxuXG5mdW5jdGlvbiBsb2NhdG9yRm9yKG1vZHVsZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBUZW1wbGF0ZUxvY2F0b3I8TW9kdWxlTG9jYXRvcj4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0ZW1wbGF0ZScsXG4gICAgbW9kdWxlLFxuICAgIG5hbWUsXG4gICAgbWV0YToge1xuICAgICAgbW9kdWxlLFxuICAgICAgbmFtZSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQXBwQnVpbGRlcjxUIGV4dGVuZHMgVGVzdEFwcGxpY2F0aW9uPiB7XG4gIHJvb3ROYW1lOiBzdHJpbmc7XG4gIG1vZHVsZXM6IERpY3Q8dW5rbm93bj4gPSB7fTtcbiAgdGVtcGxhdGVzOiBEaWN0PHN0cmluZz4gPSB7fTtcbiAgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD47XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPikge1xuICAgIHRoaXMucm9vdE5hbWUgPSBuYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy50ZW1wbGF0ZSgnTWFpbicsICc8ZGl2IC8+Jyk7XG4gICAgdGhpcy5oZWxwZXIoJ2FjdGlvbicsIGJ1aWxkQWN0aW9uLCB0cnVlKTtcbiAgfVxuXG4gIHRlbXBsYXRlKG5hbWU6IHN0cmluZywgdGVtcGxhdGU6IHN0cmluZykge1xuICAgIGFzc2VydChcbiAgICAgIG5hbWUuY2hhckF0KDApID09PSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgJ3RlbXBsYXRlIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyJ1xuICAgICk7XG5cbiAgICBsZXQgc3BlY2lmaWVyID0gYHRlbXBsYXRlOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBwcmVjb21waWxlKHRlbXBsYXRlLCB7IG1ldGE6IHsgc3BlY2lmaWVyIH0gfSk7XG4gICAgdGhpcy50ZW1wbGF0ZXNbc3BlY2lmaWVyXSA9IHRlbXBsYXRlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tcG9uZW50KG5hbWU6IHN0cmluZywgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgY29tcG9uZW50Oi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBjb21wb25lbnRGYWN0b3J5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaGVscGVyKG5hbWU6IHN0cmluZywgaGVscGVyRnVuYzogSGVscGVyRnVuY3Rpb24sIGlzRmFjdG9yeSA9IGZhbHNlKSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGBoZWxwZXI6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICBoZWxwZXJGdW5jLmlzRmFjdG9yeSA9IGlzRmFjdG9yeTtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IGhlbHBlckZ1bmM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSZXNvbHZlcigpOiBSZXNvbHZlciB7XG4gICAgbGV0IHJlc29sdmVyQ29uZmlndXJhdGlvbiA9IHRoaXMub3B0aW9ucy5yZXNvbHZlckNvbmZpZ3VyYXRpb24gfHwgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgICByZXNvbHZlckNvbmZpZ3VyYXRpb24uYXBwID0gcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCB8fCB7XG4gICAgICBuYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgfTtcblxuICAgIGxldCByZWdpc3RyeSA9IG5ldyBCYXNpY01vZHVsZVJlZ2lzdHJ5KHRoaXMubW9kdWxlcyk7XG4gICAgcmV0dXJuIG5ldyBSZXNvbHZlcihyZXNvbHZlckNvbmZpZ3VyYXRpb24sIHJlZ2lzdHJ5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJ1bnRpbWVDb21waWxlckxvYWRlcigpOiBMb2FkZXIge1xuICAgIHJldHVybiBuZXcgUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRCeXRlY29kZUxvYWRlcihyZXNvbHZlcjogUmVzb2x2ZXIpIHtcbiAgICBsZXQgZGVsZWdhdGUgPSBuZXcgQ29tcGlsZXJEZWxlZ2F0ZShyZXNvbHZlcik7XG4gICAgbGV0IGNvbXBpbGVyID0gbmV3IEJ1bmRsZUNvbXBpbGVyKGRlbGVnYXRlKTtcblxuICAgIGxldCBtYWluTG9jYXRvciA9IGxvY2F0b3JGb3IoJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZScsICdkZWZhdWx0Jyk7XG4gICAgbWFpbkxvY2F0b3IubWV0YS5tb2R1bGUgPSAndGVtcGxhdGU6bWFpblRlbXBsYXRlJztcblxuICAgIGxldCBibG9jayA9IEpTT04ucGFyc2UobWFpblRlbXBsYXRlLmJsb2NrKTtcbiAgICBsZXQgY29tcGlsYWJsZVRlbXBsYXRlID0gY29tcGlsYWJsZSh7XG4gICAgICBibG9jayxcbiAgICAgIHJlZmVycmVyOiBtYWluTG9jYXRvci5tZXRhLFxuICAgIH0pO1xuXG4gICAgY29tcGlsZXIuYWRkQ29tcGlsYWJsZVRlbXBsYXRlKG1haW5Mb2NhdG9yLCBjb21waWxhYmxlVGVtcGxhdGUpO1xuXG4gICAgZm9yIChsZXQgbW9kdWxlIGluIHRoaXMudGVtcGxhdGVzKSB7XG4gICAgICBjb21waWxlci5hZGRUZW1wbGF0ZVNvdXJjZShsb2NhdG9yRm9yKG1vZHVsZSwgJ2RlZmF1bHQnKSwgdGhpcy50ZW1wbGF0ZXNbbW9kdWxlXSk7XG4gICAgfVxuXG4gICAgbGV0IHsgaGVhcCwgcG9vbCwgdGFibGUgfSA9IGNvbXBpbGVyLmNvbXBpbGUoKTtcblxuICAgIGxldCByZXNvbHZlclRhYmxlOiB1bmtub3duW10gPSBbXTtcblxuICAgIGxldCBtZXRhOiBEaWN0PEJ5dGVjb2RlTWV0YWRhdGE+ID0ge307XG5cbiAgICB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5mb3JFYWNoKCh2bUhhbmRsZSwgbG9jYXRvcikgPT4ge1xuICAgICAgbGV0IGhhbmRsZSA9IHRhYmxlLmJ5TW9kdWxlTG9jYXRvci5nZXQobG9jYXRvcik7XG4gICAgICBsZXQgdGVtcGxhdGUgPSBjb21waWxlci5nZXRUZW1wbGF0ZShsb2NhdG9yKTtcblxuICAgICAgbWV0YVtsb2NhdG9yLm1vZHVsZV0gPSB7XG4gICAgICAgIHY6IHZtSGFuZGxlLFxuICAgICAgICBoOiBoYW5kbGUsXG4gICAgICAgIHNUOiB0ZW1wbGF0ZS5zeW1ib2xUYWJsZSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0YWJsZS5ieUhhbmRsZS5mb3JFYWNoKChsb2NhdG9yLCBoYW5kbGUpID0+IHtcbiAgICAgIGxldCBtb2R1bGUgPSBsb2NhdG9yLm1vZHVsZS5yZXBsYWNlKCd0ZW1wbGF0ZTovJywgJ2NvbXBvbmVudDovJyk7XG4gICAgICBpZiAodGhpcy5tb2R1bGVzW21vZHVsZV0pIHtcbiAgICAgICAgaWYgKG1vZHVsZS5pbmRleE9mKCdoZWxwZXI6JykgPT09IDApIHtcbiAgICAgICAgICBjb25zdCBtb2R1bGVUeXBlID0gKHRoaXMubW9kdWxlc1ttb2R1bGVdIGFzIEhlbHBlckZ1bmN0aW9uKS5pc0ZhY3RvcnkgPyBNb2R1bGVUeXBlcy5IRUxQRVJfRkFDVE9SWSA6IE1vZHVsZVR5cGVzLkhFTFBFUjtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSBbbW9kdWxlVHlwZSwgdGhpcy5tb2R1bGVzW21vZHVsZV1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmVyVGFibGVbaGFuZGxlXSA9IHRoaXMubW9kdWxlc1ttb2R1bGVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgYnl0ZWNvZGUgPSBoZWFwLmJ1ZmZlcjtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIHByZWZpeDogJycsXG4gICAgICBtYWluRW50cnk6IHRhYmxlLnZtSGFuZGxlQnlNb2R1bGVMb2NhdG9yLmdldChtYWluTG9jYXRvciksXG4gICAgICBwb29sLFxuICAgICAgdGFibGU6IHJlc29sdmVyVGFibGUsXG4gICAgICBtZXRhLFxuICAgICAgaGVhcDoge1xuICAgICAgICB0YWJsZTogaGVhcC50YWJsZSxcbiAgICAgICAgaGFuZGxlOiBoZWFwLmhhbmRsZSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQnl0ZWNvZGVMb2FkZXIoeyBieXRlY29kZSwgZGF0YSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZExvYWRlcihyZXNvbHZlcik6IExvYWRlciB7XG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnMubG9hZGVyKSB7XG4gICAgICBjYXNlICdydW50aW1lLWNvbXBpbGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTtcbiAgICAgIGNhc2UgJ2J5dGVjb2RlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRCeXRlY29kZUxvYWRlcihyZXNvbHZlcik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBsb2FkZXIgJHt0aGlzLm9wdGlvbnMubG9hZGVyfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlclRvU3RyaW5nKGNvbXBvbmVudE5hbWU6IHN0cmluZywgZGF0YTogRGljdDx1bmtub3duPiwgb3B0aW9ucz86IFRlc3RTU1JBcHBsaWNhdGlvbk9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlciA9IHRoaXMuYnVpbGRMb2FkZXIocmVzb2x2ZXIpO1xuXG4gICAgcmV0dXJuIFNTUkFwcGxpY2F0aW9uLnJlbmRlclRvU3RyaW5nKGNvbXBvbmVudE5hbWUsIGRhdGEsIHtcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgcmVzb2x2ZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcjogbmV3IFN5bmNSZW5kZXJlcigpLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYm9vdCgpOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgcmVzb2x2ZXIgPSB0aGlzLmJ1aWxkUmVzb2x2ZXIoKTtcbiAgICBsZXQgbG9hZGVyOiBMb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIGxldCBkb2M6IERvY3VtZW50ID0gKHRoaXMub3B0aW9ucy5kb2N1bWVudCBhcyBEb2N1bWVudCkgfHwgZG9jdW1lbnQ7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2MuYm9keTtcbiAgICBsZXQgYnVpbGRlciA9IG5ldyBET01CdWlsZGVyKHsgZWxlbWVudCB9KTtcbiAgICBsZXQgcmVuZGVyZXIgPSBuZXcgU3luY1JlbmRlcmVyKCk7XG5cbiAgICBsZXQgYXBwID0gbmV3IHRoaXMub3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzKHtcbiAgICAgIHJlc29sdmVyLFxuICAgICAgYnVpbGRlcixcbiAgICAgIGxvYWRlcixcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICBkb2N1bWVudDogdGhpcy5vcHRpb25zLmRvY3VtZW50LFxuICAgIH0pO1xuXG4gICAgbGV0IHJvb3RFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGFwcC5yb290RWxlbWVudCA9IHJvb3RFbGVtZW50O1xuICAgIGFwcC5yZW5kZXJDb21wb25lbnQoJ01haW4nLCByb290RWxlbWVudCk7XG4gICAgYXBwLmJvb3QoKTtcblxuICAgIGF3YWl0IGRpZFJlbmRlcihhcHApO1xuXG4gICAgcmV0dXJuIGFwcDtcbiAgfVxufVxuXG5jb25zdCBDQVBBQklMSVRJRVM6IENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHByZXBhcmVBcmdzOiBmYWxzZSxcbiAgY3JlYXRlQXJnczogdHJ1ZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiB0cnVlLFxufTtcblxuY2xhc3MgQ29tcGlsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRzIElDb21waWxlckRlbGVnYXRlPE1vZHVsZUxvY2F0b3I+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlc29sdmVyOiBSZXNvbHZlcikge31cblxuICBoYXNDb21wb25lbnRJblNjb3BlKG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgfVxuXG4gIHJlc29sdmVDb21wb25lbnQobmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIGxldCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYHRlbXBsYXRlOiR7bmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50Q2FwYWJpbGl0aWVzKCkge1xuICAgIHJldHVybiBDQVBBQklMSVRJRVM7XG4gIH1cblxuICBoYXNIZWxwZXJJblNjb3BlKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlSGVscGVyKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gICAgcmV0dXJuIHsgbW9kdWxlOiByZXNvbHZlZCwgbmFtZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICBoYXNQYXJ0aWFsSW5TY29wZShwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWxOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaGFzTW9kaWZpZXJJblNjb3BlKG1vZGlmaWVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVNb2RpZmllcihtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRBcHA8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ob3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4gPSB7fSk6IEFwcEJ1aWxkZXI8VD4ge1xuICBvcHRpb25zLmFwcE5hbWUgPSBvcHRpb25zLmFwcE5hbWUgfHwgJ3Rlc3QtYXBwJztcbiAgb3B0aW9ucy5sb2FkZXIgPSBvcHRpb25zLmxvYWRlciB8fCAncnVudGltZS1jb21waWxlcic7XG4gIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyA9XG4gICAgb3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzIHx8IChUZXN0QXBwbGljYXRpb24gYXMgQXBwbGljYXRpb25Db25zdHJ1Y3RvcjxUPik7XG5cbiAgcmV0dXJuIG5ldyBBcHBCdWlsZGVyKG9wdGlvbnMuYXBwTmFtZSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB7IGJ1aWxkQXBwIH07XG4iXSwic291cmNlUm9vdCI6IiJ9

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

var _component = require("@glimmer/component");
var _util = require("@glimmer/util");

@@ -129,3 +127,2 @@

this.options = options;
this.modules["component-manager:/" + this.rootName + "/component-managers/main"] = this.options.ComponentManager;
this.template('Main', '<div />');

@@ -211,3 +208,3 @@ this.helper('action', _application.buildAction, true);

h: handle,
table: template.symbolTable
sT: template.symbolTable
};

@@ -311,2 +308,16 @@ });

var CAPABILITIES = {
createInstance: true,
dynamicLayout: false,
dynamicTag: false,
wrapped: false,
prepareArgs: false,
createArgs: true,
attributeHook: false,
elementHook: false,
updateHook: true,
createCaller: false,
dynamicScope: true
};
var CompilerDelegate =

@@ -334,3 +345,3 @@ /*#__PURE__*/

_proto2.getComponentCapabilities = function getComponentCapabilities() {
return _component.CAPABILITIES;
return CAPABILITIES;
};

@@ -376,3 +387,2 @@

options.loader = options.loader || 'runtime-compiler';
options.ComponentManager = options.ComponentManager || _component.ComponentManager;
options.ApplicationClass = options.ApplicationClass || TestApplication;

@@ -383,2 +393,2 @@ return new AppBuilder(options.appName, options);

exports.buildApp = buildApp;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7QUFDQTs7QUFDQTs7OztBQVVBOztBQUNBOztBQUNBOztBQUVBOztBQUdBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBYSxlQUFiO0FBQUE7QUFBQSxRQUFhLGVBQWIsR0FBQSxVQUFBLFlBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLGVBQUEsRUFBQSxZQUFBLENBQUE7O0FBQUEsV0FBQSxlQUFBLEdBQUE7QUFBQSxXQUFBLFlBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsS0FBQSxJQUFBO0FBQUE7O0FBQUEsU0FBQSxlQUFBO0FBQUEsQ0FBQSxDQUFBLHFCQUFBLENBQUE7O0FBcUJBLFNBQUEsVUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQWdEO0FBQzlDLFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxNQUFNLEVBRkQsTUFBQTtBQUdMLElBQUEsSUFBSSxFQUhDLElBQUE7QUFJTCxJQUFBLElBQUksRUFBRTtBQUNKLE1BQUEsTUFBTSxFQURGLE1BQUE7QUFFSixNQUFBLElBQUksRUFBSjtBQUZJO0FBSkQsR0FBUDtBQVNEOztBQUVELElBQWEsVUFBYjtBQUFBO0FBQUEsUUFBYSxVQUFiLEdBQUEsWUFBQTtBQU1FLFdBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxPQUFBLEVBQXVEO0FBSnZELFNBQUEsT0FBQSxHQUFBLEVBQUE7QUFDQSxTQUFBLFNBQUEsR0FBQSxFQUFBO0FBSUUsU0FBQSxRQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLE9BQUEsQ0FBQSx3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U0FBQSxlQUFBLENBQUEsWUFBQSxFQUFBLFFBQUEsRUFBNkQ7QUFDM0QsVUFBTSxJQUFBLEtBQUEsQ0FBTix5QkFBTSxDQUFOOzs7Ozs7QUFJSixTQUFBLFFBQUEsQ0FBQSxPQUFBLEVBQStFO0FBQUEsTUFBbEMsT0FBa0MsS0FBQSxLQUFBLENBQUEsRUFBQTtBQUFsQyxJQUFBLE9BQWtDLEdBQUYsRUFBaEM7QUFBa0M7O0FBQzdFLEVBQUEsT0FBTyxDQUFQLE9BQUEsR0FBa0IsT0FBTyxDQUFQLE9BQUEsSUFBbEIsVUFBQTtBQUNBLEVBQUEsT0FBTyxDQUFQLE1BQUEsR0FBaUIsT0FBTyxDQUFQLE1BQUEsSUFBakIsa0JBQUE7QUFDQSxFQUFBLE9BQU8sQ0FBUCxnQkFBQSxHQUEyQixPQUFPLENBQVAsZ0JBQUEsSUFBM0IsMkJBQUE7QUFDQSxFQUFBLE9BQU8sQ0FBUCxnQkFBQSxHQUNFLE9BQU8sQ0FBUCxnQkFBQSxJQURGLGVBQUE7QUFHQSxTQUFPLElBQUEsVUFBQSxDQUFlLE9BQU8sQ0FBdEIsT0FBQSxFQUFQLE9BQU8sQ0FBUDtBQUNEOztRQUVELFEsR0FBQSxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlc29sdmVyLCB7IEJhc2ljTW9kdWxlUmVnaXN0cnksIFJlc29sdmVyQ29uZmlndXJhdGlvbiB9IGZyb20gJ0BnbGltbWVyL3Jlc29sdmVyJztcbmltcG9ydCB7IERpY3QsIE1vZHVsZUxvY2F0b3IsIFRlbXBsYXRlTG9jYXRvciB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IGRlZmF1bHRSZXNvbHZlckNvbmZpZ3VyYXRpb24gZnJvbSAnLi9kZWZhdWx0LXJlc29sdmVyLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgcHJlY29tcGlsZSB9IGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uLCB7XG4gIEFwcGxpY2F0aW9uQ29uc3RydWN0b3IsXG4gIEJ5dGVjb2RlTG9hZGVyLFxuICBET01CdWlsZGVyLFxuICBMb2FkZXIsXG4gIFJ1bnRpbWVDb21waWxlckxvYWRlcixcbiAgU3luY1JlbmRlcmVyLFxuICBNb2R1bGVUeXBlcyxcbiAgSU5URVJOQUxfRFlOQU1JQ19TQ09QRVxufSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnRNYW5hZ2VyLCBDQVBBQklMSVRJRVMgfSBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBCdW5kbGVDb21waWxlciwgQ29tcGlsZXJEZWxlZ2F0ZSBhcyBJQ29tcGlsZXJEZWxlZ2F0ZSB9IGZyb20gJ0BnbGltbWVyL2J1bmRsZS1jb21waWxlcic7XG5pbXBvcnQgeyBidWlsZEFjdGlvbiwgbWFpblRlbXBsYXRlIH0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgY29tcGlsYWJsZSB9IGZyb20gJ0BnbGltbWVyL29wY29kZS1jb21waWxlcic7XG5pbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL3NyYy9sb2FkZXJzL2J5dGVjb2RlL2xvYWRlcic7XG5pbXBvcnQgeyBTaW1wbGVEb2N1bWVudCB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBTU1JBcHBsaWNhdGlvbiB9IGZyb20gJ0BnbGltbWVyL3Nzcic7XG5cbmltcG9ydCBkaWRSZW5kZXIgZnJvbSAnLi9kaWQtcmVuZGVyJztcbmltcG9ydCBIVE1MU2VyaWFsaXplciBmcm9tICdAc2ltcGxlLWRvbS9zZXJpYWxpemVyJztcbmltcG9ydCB7IFJlbmRlcmVyIH0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24vc3JjL2Jhc2UtYXBwbGljYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJPcHRpb25zPFQ+IHtcbiAgYXBwTmFtZT86IHN0cmluZztcbiAgbG9hZGVyPzogc3RyaW5nO1xuICBBcHBsaWNhdGlvbkNsYXNzPzogQXBwbGljYXRpb25Db25zdHJ1Y3RvcjxUPjtcbiAgQ29tcG9uZW50TWFuYWdlcj86IGFueTsgLy8gVE9ETyAtIHR5cGluZ1xuICByZXNvbHZlckNvbmZpZ3VyYXRpb24/OiBSZXNvbHZlckNvbmZpZ3VyYXRpb247XG4gIGRvY3VtZW50PzogU2ltcGxlRG9jdW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RmFjdG9yeSB7fVxuXG5leHBvcnQgY2xhc3MgVGVzdEFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb24ge1xuICByb290RWxlbWVudDogRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBCdWlsZGVyVGVtcGxhdGVNZXRhIHtcbiAgc3BlY2lmaWVyOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBIZWxwZXJGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgaXNGYWN0b3J5PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFRlc3RTU1JBcHBsaWNhdGlvbk9wdGlvbnMge1xuICByb290TmFtZT86IHN0cmluZztcbiAgcmVzb2x2ZXI/OiBSZXNvbHZlcjtcbiAgbG9hZGVyPzogTG9hZGVyO1xuICByZW5kZXJlcj86IFJlbmRlcmVyO1xuICBzZXJpYWxpemVyPzogSFRNTFNlcmlhbGl6ZXI7XG4gIFtJTlRFUk5BTF9EWU5BTUlDX1NDT1BFXT86IERpY3Q8dW5rbm93bj47XG59XG5cbmZ1bmN0aW9uIGxvY2F0b3JGb3IobW9kdWxlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFRlbXBsYXRlTG9jYXRvcjxNb2R1bGVMb2NhdG9yPiB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ3RlbXBsYXRlJyxcbiAgICBtb2R1bGUsXG4gICAgbmFtZSxcbiAgICBtZXRhOiB7XG4gICAgICBtb2R1bGUsXG4gICAgICBuYW1lLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBCdWlsZGVyPFQgZXh0ZW5kcyBUZXN0QXBwbGljYXRpb24+IHtcbiAgcm9vdE5hbWU6IHN0cmluZztcbiAgbW9kdWxlczogRGljdDx1bmtub3duPiA9IHt9O1xuICB0ZW1wbGF0ZXM6IERpY3Q8c3RyaW5nPiA9IHt9O1xuICBvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPjtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+KSB7XG4gICAgdGhpcy5yb290TmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLm1vZHVsZXNbXG4gICAgICBgY29tcG9uZW50LW1hbmFnZXI6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50LW1hbmFnZXJzL21haW5gXG4gICAgXSA9IHRoaXMub3B0aW9ucy5Db21wb25lbnRNYW5hZ2VyO1xuICAgIHRoaXMudGVtcGxhdGUoJ01haW4nLCAnPGRpdiAvPicpO1xuICAgIHRoaXMuaGVscGVyKCdhY3Rpb24nLCBidWlsZEFjdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICB0ZW1wbGF0ZShuYW1lOiBzdHJpbmcsIHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lLmNoYXJBdCgwKSA9PT0gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSxcbiAgICAgICd0ZW1wbGF0ZSBuYW1lcyBtdXN0IHN0YXJ0IHdpdGggYSBjYXBpdGFsIGxldHRlcidcbiAgICApO1xuXG4gICAgbGV0IHNwZWNpZmllciA9IGB0ZW1wbGF0ZTovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gcHJlY29tcGlsZSh0ZW1wbGF0ZSwgeyBtZXRhOiB7IHNwZWNpZmllciB9IH0pO1xuICAgIHRoaXMudGVtcGxhdGVzW3NwZWNpZmllcl0gPSB0ZW1wbGF0ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnkpIHtcbiAgICBsZXQgc3BlY2lmaWVyID0gYGNvbXBvbmVudDovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gY29tcG9uZW50RmFjdG9yeTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGhlbHBlcihuYW1lOiBzdHJpbmcsIGhlbHBlckZ1bmM6IEhlbHBlckZ1bmN0aW9uLCBpc0ZhY3RvcnkgPSBmYWxzZSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgaGVscGVyOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgaGVscGVyRnVuYy5pc0ZhY3RvcnkgPSBpc0ZhY3Rvcnk7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBoZWxwZXJGdW5jO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUmVzb2x2ZXIoKTogUmVzb2x2ZXIge1xuICAgIGxldCByZXNvbHZlckNvbmZpZ3VyYXRpb24gPSB0aGlzLm9wdGlvbnMucmVzb2x2ZXJDb25maWd1cmF0aW9uIHx8IGRlZmF1bHRSZXNvbHZlckNvbmZpZ3VyYXRpb247XG4gICAgcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCA9IHJlc29sdmVyQ29uZmlndXJhdGlvbi5hcHAgfHwge1xuICAgICAgbmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgIH07XG5cbiAgICBsZXQgcmVnaXN0cnkgPSBuZXcgQmFzaWNNb2R1bGVSZWdpc3RyeSh0aGlzLm1vZHVsZXMpO1xuICAgIHJldHVybiBuZXcgUmVzb2x2ZXIocmVzb2x2ZXJDb25maWd1cmF0aW9uLCByZWdpc3RyeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTogTG9hZGVyIHtcbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVDb21waWxlckxvYWRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXI6IFJlc29sdmVyKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gbmV3IENvbXBpbGVyRGVsZWdhdGUocmVzb2x2ZXIpO1xuICAgIGxldCBjb21waWxlciA9IG5ldyBCdW5kbGVDb21waWxlcihkZWxlZ2F0ZSk7XG5cbiAgICBsZXQgbWFpbkxvY2F0b3IgPSBsb2NhdG9yRm9yKCd0ZW1wbGF0ZTptYWluVGVtcGxhdGUnLCAnZGVmYXVsdCcpO1xuICAgIG1haW5Mb2NhdG9yLm1ldGEubW9kdWxlID0gJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZSc7XG5cbiAgICBsZXQgYmxvY2sgPSBKU09OLnBhcnNlKG1haW5UZW1wbGF0ZS5ibG9jayk7XG4gICAgbGV0IGNvbXBpbGFibGVUZW1wbGF0ZSA9IGNvbXBpbGFibGUoe1xuICAgICAgYmxvY2ssXG4gICAgICByZWZlcnJlcjogbWFpbkxvY2F0b3IubWV0YSxcbiAgICB9KTtcblxuICAgIGNvbXBpbGVyLmFkZENvbXBpbGFibGVUZW1wbGF0ZShtYWluTG9jYXRvciwgY29tcGlsYWJsZVRlbXBsYXRlKTtcblxuICAgIGZvciAobGV0IG1vZHVsZSBpbiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgY29tcGlsZXIuYWRkVGVtcGxhdGVTb3VyY2UobG9jYXRvckZvcihtb2R1bGUsICdkZWZhdWx0JyksIHRoaXMudGVtcGxhdGVzW21vZHVsZV0pO1xuICAgIH1cblxuICAgIGxldCB7IGhlYXAsIHBvb2wsIHRhYmxlIH0gPSBjb21waWxlci5jb21waWxlKCk7XG5cbiAgICBsZXQgcmVzb2x2ZXJUYWJsZTogdW5rbm93bltdID0gW107XG5cbiAgICBsZXQgbWV0YTogRGljdDxNZXRhZGF0YT4gPSB7fTtcblxuICAgIHRhYmxlLnZtSGFuZGxlQnlNb2R1bGVMb2NhdG9yLmZvckVhY2goKHZtSGFuZGxlLCBsb2NhdG9yKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlID0gdGFibGUuYnlNb2R1bGVMb2NhdG9yLmdldChsb2NhdG9yKTtcbiAgICAgIGxldCB0ZW1wbGF0ZSA9IGNvbXBpbGVyLmdldFRlbXBsYXRlKGxvY2F0b3IpO1xuXG4gICAgICBtZXRhW2xvY2F0b3IubW9kdWxlXSA9IHtcbiAgICAgICAgdjogdm1IYW5kbGUsXG4gICAgICAgIGg6IGhhbmRsZSxcbiAgICAgICAgdGFibGU6IHRlbXBsYXRlLnN5bWJvbFRhYmxlLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRhYmxlLmJ5SGFuZGxlLmZvckVhY2goKGxvY2F0b3IsIGhhbmRsZSkgPT4ge1xuICAgICAgbGV0IG1vZHVsZSA9IGxvY2F0b3IubW9kdWxlLnJlcGxhY2UoJ3RlbXBsYXRlOi8nLCAnY29tcG9uZW50Oi8nKTtcbiAgICAgIGlmICh0aGlzLm1vZHVsZXNbbW9kdWxlXSkge1xuICAgICAgICBpZiAobW9kdWxlLmluZGV4T2YoJ2hlbHBlcjonKSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZVR5cGUgPSAodGhpcy5tb2R1bGVzW21vZHVsZV0gYXMgSGVscGVyRnVuY3Rpb24pLmlzRmFjdG9yeSA/IE1vZHVsZVR5cGVzLkhFTFBFUl9GQUNUT1JZIDogTW9kdWxlVHlwZXMuSEVMUEVSO1xuICAgICAgICAgIHJlc29sdmVyVGFibGVbaGFuZGxlXSA9IFttb2R1bGVUeXBlLCB0aGlzLm1vZHVsZXNbbW9kdWxlXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gdGhpcy5tb2R1bGVzW21vZHVsZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBieXRlY29kZSA9IGhlYXAuYnVmZmVyO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgcHJlZml4OiAnJyxcbiAgICAgIG1haW5FbnRyeTogdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZ2V0KG1haW5Mb2NhdG9yKSxcbiAgICAgIHBvb2wsXG4gICAgICB0YWJsZTogcmVzb2x2ZXJUYWJsZSxcbiAgICAgIG1ldGEsXG4gICAgICBoZWFwOiB7XG4gICAgICAgIHRhYmxlOiBoZWFwLnRhYmxlLFxuICAgICAgICBoYW5kbGU6IGhlYXAuaGFuZGxlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBCeXRlY29kZUxvYWRlcih7IGJ5dGVjb2RlLCBkYXRhIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkTG9hZGVyKHJlc29sdmVyKTogTG9hZGVyIHtcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5sb2FkZXIpIHtcbiAgICAgIGNhc2UgJ3J1bnRpbWUtY29tcGlsZXInOlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFJ1bnRpbWVDb21waWxlckxvYWRlcigpO1xuICAgICAgY2FzZSAnYnl0ZWNvZGUnOlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZEJ5dGVjb2RlTG9hZGVyKHJlc29sdmVyKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGxvYWRlciAke3RoaXMub3B0aW9ucy5sb2FkZXJ9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyVG9TdHJpbmcoY29tcG9uZW50TmFtZTogc3RyaW5nLCBkYXRhOiBEaWN0PHVua25vd24+LCBvcHRpb25zPzogVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLmJ1aWxkUmVzb2x2ZXIoKTtcbiAgICBsZXQgbG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICByZXR1cm4gU1NSQXBwbGljYXRpb24ucmVuZGVyVG9TdHJpbmcoY29tcG9uZW50TmFtZSwgZGF0YSwge1xuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICByZXNvbHZlcixcbiAgICAgIGxvYWRlcixcbiAgICAgIHJlbmRlcmVyOiBuZXcgU3luY1JlbmRlcmVyKCksXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBib290KCk6IFByb21pc2U8VD4ge1xuICAgIGxldCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXI6IExvYWRlciA9IHRoaXMuYnVpbGRMb2FkZXIocmVzb2x2ZXIpO1xuXG4gICAgbGV0IGRvYzogRG9jdW1lbnQgPSAodGhpcy5vcHRpb25zLmRvY3VtZW50IGFzIERvY3VtZW50KSB8fCBkb2N1bWVudDtcbiAgICBsZXQgZWxlbWVudCA9IGRvYy5ib2R5O1xuICAgIGxldCBidWlsZGVyID0gbmV3IERPTUJ1aWxkZXIoeyBlbGVtZW50IH0pO1xuICAgIGxldCByZW5kZXJlciA9IG5ldyBTeW5jUmVuZGVyZXIoKTtcblxuICAgIGxldCBhcHAgPSBuZXcgdGhpcy5vcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3Moe1xuICAgICAgcmVzb2x2ZXIsXG4gICAgICBidWlsZGVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXIsXG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIGRvY3VtZW50OiB0aGlzLm9wdGlvbnMuZG9jdW1lbnQsXG4gICAgfSk7XG5cbiAgICBsZXQgcm9vdEVsZW1lbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYXBwLnJvb3RFbGVtZW50ID0gcm9vdEVsZW1lbnQ7XG4gICAgYXBwLnJlbmRlckNvbXBvbmVudCgnTWFpbicsIHJvb3RFbGVtZW50KTtcbiAgICBhcHAuYm9vdCgpO1xuXG4gICAgYXdhaXQgZGlkUmVuZGVyKGFwcCk7XG5cbiAgICByZXR1cm4gYXBwO1xuICB9XG59XG5cbmNsYXNzIENvbXBpbGVyRGVsZWdhdGUgaW1wbGVtZW50cyBJQ29tcGlsZXJEZWxlZ2F0ZTxNb2R1bGVMb2NhdG9yPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZXNvbHZlcjogUmVzb2x2ZXIpIHt9XG5cbiAgaGFzQ29tcG9uZW50SW5TY29wZShuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgdGVtcGxhdGU6JHtuYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlQ29tcG9uZW50KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgICByZXR1cm4geyBtb2R1bGU6IHJlc29sdmVkLCBuYW1lOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIGdldENvbXBvbmVudENhcGFiaWxpdGllcygpIHtcbiAgICByZXR1cm4gQ0FQQUJJTElUSUVTO1xuICB9XG5cbiAgaGFzSGVscGVySW5TY29wZShoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICB9XG5cbiAgcmVzb2x2ZUhlbHBlcihoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgbGV0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgaGFzUGFydGlhbEluU2NvcGUocGFydGlhbE5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlUGFydGlhbChwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGhhc01vZGlmaWVySW5TY29wZShtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlTW9kaWZpZXIobW9kaWZpZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXBwPFQgZXh0ZW5kcyBUZXN0QXBwbGljYXRpb24+KG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+ID0ge30pOiBBcHBCdWlsZGVyPFQ+IHtcbiAgb3B0aW9ucy5hcHBOYW1lID0gb3B0aW9ucy5hcHBOYW1lIHx8ICd0ZXN0LWFwcCc7XG4gIG9wdGlvbnMubG9hZGVyID0gb3B0aW9ucy5sb2FkZXIgfHwgJ3J1bnRpbWUtY29tcGlsZXInO1xuICBvcHRpb25zLkNvbXBvbmVudE1hbmFnZXIgPSBvcHRpb25zLkNvbXBvbmVudE1hbmFnZXIgfHwgQ29tcG9uZW50TWFuYWdlcjtcbiAgb3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzID1cbiAgICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgfHwgKFRlc3RBcHBsaWNhdGlvbiBhcyBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+KTtcblxuICByZXR1cm4gbmV3IEFwcEJ1aWxkZXIob3B0aW9ucy5hcHBOYW1lLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgYnVpbGRBcHAgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7QUFDQTs7QUFDQTs7OztBQVVBOztBQUNBOztBQUVBOztBQUdBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUEsSUFBYSxlQUFiO0FBQUE7QUFBQSxRQUFhLGVBQWIsR0FBQSxVQUFBLFlBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLGVBQUEsRUFBQSxZQUFBLENBQUE7O0FBQUEsV0FBQSxlQUFBLEdBQUE7QUFBQSxXQUFBLFlBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsS0FBQSxJQUFBO0FBQUE7O0FBQUEsU0FBQSxlQUFBO0FBQUEsQ0FBQSxDQUFBLHFCQUFBLENBQUE7O0FBcUJBLFNBQUEsVUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQWdEO0FBQzlDLFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxNQUFNLEVBRkQsTUFBQTtBQUdMLElBQUEsSUFBSSxFQUhDLElBQUE7QUFJTCxJQUFBLElBQUksRUFBRTtBQUNKLE1BQUEsTUFBTSxFQURGLE1BQUE7QUFFSixNQUFBLElBQUksRUFBSjtBQUZJO0FBSkQsR0FBUDtBQVNEOztBQUVELElBQWEsVUFBYjtBQUFBO0FBQUEsUUFBYSxVQUFiLEdBQUEsWUFBQTtBQU1FLFdBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxPQUFBLEVBQXVEO0FBSnZELFNBQUEsT0FBQSxHQUFBLEVBQUE7QUFDQSxTQUFBLFNBQUEsR0FBQSxFQUFBO0FBSUUsU0FBQSxRQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFFBQUEsQ0FBQSxNQUFBLEVB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QUFBLFFBQUEsRUFBOEQ7QUFDNUQsVUFBTSxJQUFBLEtBQUEsQ0FBTix5QkFBTSxDQUFOOzs7VUFHRixjLEdBQUEsU0FBQSxjQUFBLENBQUEsV0FBQSxFQUFBLFFBQUEsRUFBMkQ7QUFDekQsVUFBTSxJQUFBLEtBQUEsQ0FBTix5QkFBTSxDQUFOOzs7VUFHRixrQixHQUFBLFNBQUEsa0JBQUEsQ0FBQSxZQUFBLEVBQUEsUUFBQSxFQUFnRTtBQUM5RCxVQUFNLElBQUEsS0FBQSxDQUFOLHlCQUFNLENBQU47OztVQUdGLGUsR0FBQSxTQUFBLGVBQUEsQ0FBQSxZQUFBLEVBQUEsUUFBQSxFQUE2RDtBQUMzRCxVQUFNLElBQUEsS0FBQSxDQUFOLHlCQUFNLENBQU47Ozs7OztBQUlKLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFBK0U7QUFBQSxNQUFsQyxPQUFrQyxLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQWxDLElBQUEsT0FBa0MsR0FBRixFQUFoQztBQUFrQzs7QUFDN0UsRUFBQSxPQUFPLENBQVAsT0FBQSxHQUFrQixPQUFPLENBQVAsT0FBQSxJQUFsQixVQUFBO0FBQ0EsRUFBQSxPQUFPLENBQVAsTUFBQSxHQUFpQixPQUFPLENBQVAsTUFBQSxJQUFqQixrQkFBQTtBQUNBLEVBQUEsT0FBTyxDQUFQLGdCQUFBLEdBQ0UsT0FBTyxDQUFQLGdCQUFBLElBREYsZUFBQTtBQUdBLFNBQU8sSUFBQSxVQUFBLENBQWUsT0FBTyxDQUF0QixPQUFBLEVBQVAsT0FBTyxDQUFQO0FBQ0Q7O1FBRUQsUSxHQUFBLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb2x2ZXIsIHsgQmFzaWNNb2R1bGVSZWdpc3RyeSwgUmVzb2x2ZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnQGdsaW1tZXIvcmVzb2x2ZXInO1xuaW1wb3J0IHsgRGljdCwgTW9kdWxlTG9jYXRvciwgVGVtcGxhdGVMb2NhdG9yLCBDb21wb25lbnRDYXBhYmlsaXRpZXMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCBkZWZhdWx0UmVzb2x2ZXJDb25maWd1cmF0aW9uIGZyb20gJy4vZGVmYXVsdC1yZXNvbHZlci1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IHByZWNvbXBpbGUgfSBmcm9tICcuL2NvbXBpbGVyJztcbmltcG9ydCBBcHBsaWNhdGlvbiwge1xuICBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yLFxuICBCeXRlY29kZUxvYWRlcixcbiAgRE9NQnVpbGRlcixcbiAgTG9hZGVyLFxuICBSdW50aW1lQ29tcGlsZXJMb2FkZXIsXG4gIFN5bmNSZW5kZXJlcixcbiAgTW9kdWxlVHlwZXMsXG4gIElOVEVSTkFMX0RZTkFNSUNfU0NPUEVcbn0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBCdW5kbGVDb21waWxlciwgQ29tcGlsZXJEZWxlZ2F0ZSBhcyBJQ29tcGlsZXJEZWxlZ2F0ZSB9IGZyb20gJ0BnbGltbWVyL2J1bmRsZS1jb21waWxlcic7XG5pbXBvcnQgeyBidWlsZEFjdGlvbiwgbWFpblRlbXBsYXRlLCBSZW5kZXJlciwgQnl0ZWNvZGVNZXRhZGF0YSB9IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGUgfSBmcm9tICdAZ2xpbW1lci9vcGNvZGUtY29tcGlsZXInO1xuaW1wb3J0IHsgU2ltcGxlRG9jdW1lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IEhUTUxTZXJpYWxpemVyIGZyb20gJ0BzaW1wbGUtZG9tL3NlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU1NSQXBwbGljYXRpb24gfSBmcm9tICdAZ2xpbW1lci9zc3InO1xuXG5pbXBvcnQgZGlkUmVuZGVyIGZyb20gJy4vZGlkLXJlbmRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlck9wdGlvbnM8VD4ge1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICBsb2FkZXI/OiBzdHJpbmc7XG4gIEFwcGxpY2F0aW9uQ2xhc3M/OiBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+O1xuICBDb21wb25lbnRNYW5hZ2VyPzogYW55OyAvLyBUT0RPIC0gdHlwaW5nXG4gIHJlc29sdmVyQ29uZmlndXJhdGlvbj86IFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgZG9jdW1lbnQ/OiBTaW1wbGVEb2N1bWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRGYWN0b3J5IHt9XG5cbmV4cG9ydCBjbGFzcyBUZXN0QXBwbGljYXRpb24gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7XG4gIHJvb3RFbGVtZW50OiBFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJUZW1wbGF0ZU1ldGEge1xuICBzcGVjaWZpZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEhlbHBlckZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBpc0ZhY3Rvcnk/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJvb3ROYW1lPzogc3RyaW5nO1xuICByZXNvbHZlcj86IFJlc29sdmVyO1xuICBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlbmRlcmVyPzogUmVuZGVyZXI7XG4gIHNlcmlhbGl6ZXI/OiBIVE1MU2VyaWFsaXplcjtcbiAgW0lOVEVSTkFMX0RZTkFNSUNfU0NPUEVdPzogRGljdDx1bmtub3duPjtcbn1cblxuZnVuY3Rpb24gbG9jYXRvckZvcihtb2R1bGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogVGVtcGxhdGVMb2NhdG9yPE1vZHVsZUxvY2F0b3I+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAndGVtcGxhdGUnLFxuICAgIG1vZHVsZSxcbiAgICBuYW1lLFxuICAgIG1ldGE6IHtcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcEJ1aWxkZXI8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ge1xuICByb290TmFtZTogc3RyaW5nO1xuICBtb2R1bGVzOiBEaWN0PHVua25vd24+ID0ge307XG4gIHRlbXBsYXRlczogRGljdDxzdHJpbmc+ID0ge307XG4gIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLnJvb3ROYW1lID0gbmFtZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMudGVtcGxhdGUoJ01haW4nLCAnPGRpdiAvPicpO1xuICAgIHRoaXMuaGVscGVyKCdhY3Rpb24nLCBidWlsZEFjdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICB0ZW1wbGF0ZShuYW1lOiBzdHJpbmcsIHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lLmNoYXJBdCgwKSA9PT0gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSxcbiAgICAgICd0ZW1wbGF0ZSBuYW1lcyBtdXN0IHN0YXJ0IHdpdGggYSBjYXBpdGFsIGxldHRlcidcbiAgICApO1xuXG4gICAgbGV0IHNwZWNpZmllciA9IGB0ZW1wbGF0ZTovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gcHJlY29tcGlsZSh0ZW1wbGF0ZSwgeyBtZXRhOiB7IHNwZWNpZmllciB9IH0pO1xuICAgIHRoaXMudGVtcGxhdGVzW3NwZWNpZmllcl0gPSB0ZW1wbGF0ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnkpIHtcbiAgICBsZXQgc3BlY2lmaWVyID0gYGNvbXBvbmVudDovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gY29tcG9uZW50RmFjdG9yeTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGhlbHBlcihuYW1lOiBzdHJpbmcsIGhlbHBlckZ1bmM6IEhlbHBlckZ1bmN0aW9uLCBpc0ZhY3RvcnkgPSBmYWxzZSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgaGVscGVyOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgaGVscGVyRnVuYy5pc0ZhY3RvcnkgPSBpc0ZhY3Rvcnk7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBoZWxwZXJGdW5jO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUmVzb2x2ZXIoKTogUmVzb2x2ZXIge1xuICAgIGxldCByZXNvbHZlckNvbmZpZ3VyYXRpb24gPSB0aGlzLm9wdGlvbnMucmVzb2x2ZXJDb25maWd1cmF0aW9uIHx8IGRlZmF1bHRSZXNvbHZlckNvbmZpZ3VyYXRpb247XG4gICAgcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCA9IHJlc29sdmVyQ29uZmlndXJhdGlvbi5hcHAgfHwge1xuICAgICAgbmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgIH07XG5cbiAgICBsZXQgcmVnaXN0cnkgPSBuZXcgQmFzaWNNb2R1bGVSZWdpc3RyeSh0aGlzLm1vZHVsZXMpO1xuICAgIHJldHVybiBuZXcgUmVzb2x2ZXIocmVzb2x2ZXJDb25maWd1cmF0aW9uLCByZWdpc3RyeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTogTG9hZGVyIHtcbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVDb21waWxlckxvYWRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXI6IFJlc29sdmVyKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gbmV3IENvbXBpbGVyRGVsZWdhdGUocmVzb2x2ZXIpO1xuICAgIGxldCBjb21waWxlciA9IG5ldyBCdW5kbGVDb21waWxlcihkZWxlZ2F0ZSk7XG5cbiAgICBsZXQgbWFpbkxvY2F0b3IgPSBsb2NhdG9yRm9yKCd0ZW1wbGF0ZTptYWluVGVtcGxhdGUnLCAnZGVmYXVsdCcpO1xuICAgIG1haW5Mb2NhdG9yLm1ldGEubW9kdWxlID0gJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZSc7XG5cbiAgICBsZXQgYmxvY2sgPSBKU09OLnBhcnNlKG1haW5UZW1wbGF0ZS5ibG9jayk7XG4gICAgbGV0IGNvbXBpbGFibGVUZW1wbGF0ZSA9IGNvbXBpbGFibGUoe1xuICAgICAgYmxvY2ssXG4gICAgICByZWZlcnJlcjogbWFpbkxvY2F0b3IubWV0YSxcbiAgICB9KTtcblxuICAgIGNvbXBpbGVyLmFkZENvbXBpbGFibGVUZW1wbGF0ZShtYWluTG9jYXRvciwgY29tcGlsYWJsZVRlbXBsYXRlKTtcblxuICAgIGZvciAobGV0IG1vZHVsZSBpbiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgY29tcGlsZXIuYWRkVGVtcGxhdGVTb3VyY2UobG9jYXRvckZvcihtb2R1bGUsICdkZWZhdWx0JyksIHRoaXMudGVtcGxhdGVzW21vZHVsZV0pO1xuICAgIH1cblxuICAgIGxldCB7IGhlYXAsIHBvb2wsIHRhYmxlIH0gPSBjb21waWxlci5jb21waWxlKCk7XG5cbiAgICBsZXQgcmVzb2x2ZXJUYWJsZTogdW5rbm93bltdID0gW107XG5cbiAgICBsZXQgbWV0YTogRGljdDxCeXRlY29kZU1ldGFkYXRhPiA9IHt9O1xuXG4gICAgdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZm9yRWFjaCgodm1IYW5kbGUsIGxvY2F0b3IpID0+IHtcbiAgICAgIGxldCBoYW5kbGUgPSB0YWJsZS5ieU1vZHVsZUxvY2F0b3IuZ2V0KGxvY2F0b3IpO1xuICAgICAgbGV0IHRlbXBsYXRlID0gY29tcGlsZXIuZ2V0VGVtcGxhdGUobG9jYXRvcik7XG5cbiAgICAgIG1ldGFbbG9jYXRvci5tb2R1bGVdID0ge1xuICAgICAgICB2OiB2bUhhbmRsZSxcbiAgICAgICAgaDogaGFuZGxlLFxuICAgICAgICBzVDogdGVtcGxhdGUuc3ltYm9sVGFibGUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGFibGUuYnlIYW5kbGUuZm9yRWFjaCgobG9jYXRvciwgaGFuZGxlKSA9PiB7XG4gICAgICBsZXQgbW9kdWxlID0gbG9jYXRvci5tb2R1bGUucmVwbGFjZSgndGVtcGxhdGU6LycsICdjb21wb25lbnQ6LycpO1xuICAgICAgaWYgKHRoaXMubW9kdWxlc1ttb2R1bGVdKSB7XG4gICAgICAgIGlmIChtb2R1bGUuaW5kZXhPZignaGVscGVyOicpID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlVHlwZSA9ICh0aGlzLm1vZHVsZXNbbW9kdWxlXSBhcyBIZWxwZXJGdW5jdGlvbikuaXNGYWN0b3J5ID8gTW9kdWxlVHlwZXMuSEVMUEVSX0ZBQ1RPUlkgOiBNb2R1bGVUeXBlcy5IRUxQRVI7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gW21vZHVsZVR5cGUsIHRoaXMubW9kdWxlc1ttb2R1bGVdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSB0aGlzLm1vZHVsZXNbbW9kdWxlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGJ5dGVjb2RlID0gaGVhcC5idWZmZXI7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBwcmVmaXg6ICcnLFxuICAgICAgbWFpbkVudHJ5OiB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5nZXQobWFpbkxvY2F0b3IpLFxuICAgICAgcG9vbCxcbiAgICAgIHRhYmxlOiByZXNvbHZlclRhYmxlLFxuICAgICAgbWV0YSxcbiAgICAgIGhlYXA6IHtcbiAgICAgICAgdGFibGU6IGhlYXAudGFibGUsXG4gICAgICAgIGhhbmRsZTogaGVhcC5oYW5kbGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJ5dGVjb2RlTG9hZGVyKHsgYnl0ZWNvZGUsIGRhdGEgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRMb2FkZXIocmVzb2x2ZXIpOiBMb2FkZXIge1xuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvYWRlcikge1xuICAgICAgY2FzZSAncnVudGltZS1jb21waWxlcic6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gICAgICBjYXNlICdieXRlY29kZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbG9hZGVyICR7dGhpcy5vcHRpb25zLmxvYWRlcn1gKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lOiBzdHJpbmcsIGRhdGE6IERpY3Q8dW5rbm93bj4sIG9wdGlvbnM/OiBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIHJldHVybiBTU1JBcHBsaWNhdGlvbi5yZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lLCBkYXRhLCB7XG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJlc29sdmVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXI6IG5ldyBTeW5jUmVuZGVyZXIoKSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJvb3QoKTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlcjogTG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICBsZXQgZG9jOiBEb2N1bWVudCA9ICh0aGlzLm9wdGlvbnMuZG9jdW1lbnQgYXMgRG9jdW1lbnQpIHx8IGRvY3VtZW50O1xuICAgIGxldCBlbGVtZW50ID0gZG9jLmJvZHk7XG4gICAgbGV0IGJ1aWxkZXIgPSBuZXcgRE9NQnVpbGRlcih7IGVsZW1lbnQgfSk7XG4gICAgbGV0IHJlbmRlcmVyID0gbmV3IFN5bmNSZW5kZXJlcigpO1xuXG4gICAgbGV0IGFwcCA9IG5ldyB0aGlzLm9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyh7XG4gICAgICByZXNvbHZlcixcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcixcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgZG9jdW1lbnQ6IHRoaXMub3B0aW9ucy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGxldCByb290RWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBhcHAucm9vdEVsZW1lbnQgPSByb290RWxlbWVudDtcbiAgICBhcHAucmVuZGVyQ29tcG9uZW50KCdNYWluJywgcm9vdEVsZW1lbnQpO1xuICAgIGFwcC5ib290KCk7XG5cbiAgICBhd2FpdCBkaWRSZW5kZXIoYXBwKTtcblxuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cblxuY29uc3QgQ0FQQUJJTElUSUVTOiBDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGNyZWF0ZUluc3RhbmNlOiB0cnVlLFxuICBkeW5hbWljTGF5b3V0OiBmYWxzZSxcbiAgZHluYW1pY1RhZzogZmFsc2UsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICBwcmVwYXJlQXJnczogZmFsc2UsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIHVwZGF0ZUhvb2s6IHRydWUsXG4gIGNyZWF0ZUNhbGxlcjogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbn07XG5cbmNsYXNzIENvbXBpbGVyRGVsZWdhdGUgaW1wbGVtZW50cyBJQ29tcGlsZXJEZWxlZ2F0ZTxNb2R1bGVMb2NhdG9yPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZXNvbHZlcjogUmVzb2x2ZXIpIHt9XG5cbiAgaGFzQ29tcG9uZW50SW5TY29wZShuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgdGVtcGxhdGU6JHtuYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlQ29tcG9uZW50KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgICByZXR1cm4geyBtb2R1bGU6IHJlc29sdmVkLCBuYW1lOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIGdldENvbXBvbmVudENhcGFiaWxpdGllcygpIHtcbiAgICByZXR1cm4gQ0FQQUJJTElUSUVTO1xuICB9XG5cbiAgaGFzSGVscGVySW5TY29wZShoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICB9XG5cbiAgcmVzb2x2ZUhlbHBlcihoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgbGV0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgaGFzUGFydGlhbEluU2NvcGUocGFydGlhbE5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlUGFydGlhbChwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGhhc01vZGlmaWVySW5TY29wZShtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlTW9kaWZpZXIobW9kaWZpZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXBwPFQgZXh0ZW5kcyBUZXN0QXBwbGljYXRpb24+KG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+ID0ge30pOiBBcHBCdWlsZGVyPFQ+IHtcbiAgb3B0aW9ucy5hcHBOYW1lID0gb3B0aW9ucy5hcHBOYW1lIHx8ICd0ZXN0LWFwcCc7XG4gIG9wdGlvbnMubG9hZGVyID0gb3B0aW9ucy5sb2FkZXIgfHwgJ3J1bnRpbWUtY29tcGlsZXInO1xuICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgPVxuICAgIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyB8fCAoVGVzdEFwcGxpY2F0aW9uIGFzIEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD4pO1xuXG4gIHJldHVybiBuZXcgQXBwQnVpbGRlcihvcHRpb25zLmFwcE5hbWUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBidWlsZEFwcCB9O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -5,3 +5,2 @@ import Resolver, { BasicModuleRegistry } from '@glimmer/resolver';

import Application, { BytecodeLoader, DOMBuilder, RuntimeCompilerLoader, SyncRenderer, INTERNAL_DYNAMIC_SCOPE } from '@glimmer/application';
import { ComponentManager, CAPABILITIES } from '@glimmer/component';
import { assert } from '@glimmer/util';

@@ -32,3 +31,2 @@ import { BundleCompiler } from '@glimmer/bundle-compiler';

this.options = options;
this.modules[`component-manager:/${this.rootName}/component-managers/main`] = this.options.ComponentManager;
this.template('Main', '<div />');

@@ -90,3 +88,3 @@ this.helper('action', buildAction, true);

h: handle,
table: template.symbolTable,
sT: template.symbolTable,
};

@@ -159,2 +157,15 @@ });

}
const CAPABILITIES = {
createInstance: true,
dynamicLayout: false,
dynamicTag: false,
wrapped: false,
prepareArgs: false,
createArgs: true,
attributeHook: false,
elementHook: false,
updateHook: true,
createCaller: false,
dynamicScope: true,
};
class CompilerDelegate {

@@ -197,3 +208,2 @@ constructor(resolver) {

options.loader = options.loader || 'runtime-compiler';
options.ComponentManager = options.ComponentManager || ComponentManager;
options.ApplicationClass =

@@ -204,2 +214,2 @@ options.ApplicationClass || TestApplication;

export { buildApp };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9hcHBsaWNhdGlvbi10ZXN0LWhlbHBlcnMvc3JjL2FwcC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxFQUFFLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sbUJBQW1CLENBQUM7QUFFekYsT0FBTyw0QkFBNEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sV0FBVyxFQUFFLEVBRWxCLGNBQWMsRUFDZCxVQUFVLEVBRVYscUJBQXFCLEVBQ3JCLFlBQVksRUFFWixzQkFBc0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUF5QyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBZXJDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7Q0FFL0M7QUFtQkQsU0FBUyxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVk7SUFDOUMsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU07UUFDTixJQUFJO1FBQ0osSUFBSSxFQUFFO1lBQ0osTUFBTTtZQUNOLElBQUk7U0FDTDtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxP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LFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb2x2ZXIsIHsgQmFzaWNNb2R1bGVSZWdpc3RyeSwgUmVzb2x2ZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnQGdsaW1tZXIvcmVzb2x2ZXInO1xuaW1wb3J0IHsgRGljdCwgTW9kdWxlTG9jYXRvciwgVGVtcGxhdGVMb2NhdG9yIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbiBmcm9tICcuL2RlZmF1bHQtcmVzb2x2ZXItY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBwcmVjb21waWxlIH0gZnJvbSAnLi9jb21waWxlcic7XG5pbXBvcnQgQXBwbGljYXRpb24sIHtcbiAgQXBwbGljYXRpb25Db25zdHJ1Y3RvcixcbiAgQnl0ZWNvZGVMb2FkZXIsXG4gIERPTUJ1aWxkZXIsXG4gIExvYWRlcixcbiAgUnVudGltZUNvbXBpbGVyTG9hZGVyLFxuICBTeW5jUmVuZGVyZXIsXG4gIE1vZHVsZVR5cGVzLFxuICBJTlRFUk5BTF9EWU5BTUlDX1NDT1BFXG59IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IENvbXBvbmVudE1hbmFnZXIsIENBUEFCSUxJVElFUyB9IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEJ1bmRsZUNvbXBpbGVyLCBDb21waWxlckRlbGVnYXRlIGFzIElDb21waWxlckRlbGVnYXRlIH0gZnJvbSAnQGdsaW1tZXIvYnVuZGxlLWNvbXBpbGVyJztcbmltcG9ydCB7IGJ1aWxkQWN0aW9uLCBtYWluVGVtcGxhdGUgfSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBjb21waWxhYmxlIH0gZnJvbSAnQGdsaW1tZXIvb3Bjb2RlLWNvbXBpbGVyJztcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vc3JjL2xvYWRlcnMvYnl0ZWNvZGUvbG9hZGVyJztcbmltcG9ydCB7IFNpbXBsZURvY3VtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IFNTUkFwcGxpY2F0aW9uIH0gZnJvbSAnQGdsaW1tZXIvc3NyJztcblxuaW1wb3J0IGRpZFJlbmRlciBmcm9tICcuL2RpZC1yZW5kZXInO1xuaW1wb3J0IEhUTUxTZXJpYWxpemVyIGZyb20gJ0BzaW1wbGUtZG9tL3NlcmlhbGl6ZXInO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbi9zcmMvYmFzZS1hcHBsaWNhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlck9wdGlvbnM8VD4ge1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICBsb2FkZXI/OiBzdHJpbmc7XG4gIEFwcGxpY2F0aW9uQ2xhc3M/OiBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+O1xuICBDb21wb25lbnRNYW5hZ2VyPzogYW55OyAvLyBUT0RPIC0gdHlwaW5nXG4gIHJlc29sdmVyQ29uZmlndXJhdGlvbj86IFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgZG9jdW1lbnQ/OiBTaW1wbGVEb2N1bWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRGYWN0b3J5IHt9XG5cbmV4cG9ydCBjbGFzcyBUZXN0QXBwbGljYXRpb24gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7XG4gIHJvb3RFbGVtZW50OiBFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJUZW1wbGF0ZU1ldGEge1xuICBzcGVjaWZpZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEhlbHBlckZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBpc0ZhY3Rvcnk/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJvb3ROYW1lPzogc3RyaW5nO1xuICByZXNvbHZlcj86IFJlc29sdmVyO1xuICBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlbmRlcmVyPzogUmVuZGVyZXI7XG4gIHNlcmlhbGl6ZXI/OiBIVE1MU2VyaWFsaXplcjtcbiAgW0lOVEVSTkFMX0RZTkFNSUNfU0NPUEVdPzogRGljdDx1bmtub3duPjtcbn1cblxuZnVuY3Rpb24gbG9jYXRvckZvcihtb2R1bGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogVGVtcGxhdGVMb2NhdG9yPE1vZHVsZUxvY2F0b3I+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAndGVtcGxhdGUnLFxuICAgIG1vZHVsZSxcbiAgICBuYW1lLFxuICAgIG1ldGE6IHtcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcEJ1aWxkZXI8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ge1xuICByb290TmFtZTogc3RyaW5nO1xuICBtb2R1bGVzOiBEaWN0PHVua25vd24+ID0ge307XG4gIHRlbXBsYXRlczogRGljdDxzdHJpbmc+ID0ge307XG4gIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLnJvb3ROYW1lID0gbmFtZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMubW9kdWxlc1tcbiAgICAgIGBjb21wb25lbnQtbWFuYWdlcjovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnQtbWFuYWdlcnMvbWFpbmBcbiAgICBdID0gdGhpcy5vcHRpb25zLkNvbXBvbmVudE1hbmFnZXI7XG4gICAgdGhpcy50ZW1wbGF0ZSgnTWFpbicsICc8ZGl2IC8+Jyk7XG4gICAgdGhpcy5oZWxwZXIoJ2FjdGlvbicsIGJ1aWxkQWN0aW9uLCB0cnVlKTtcbiAgfVxuXG4gIHRlbXBsYXRlKG5hbWU6IHN0cmluZywgdGVtcGxhdGU6IHN0cmluZykge1xuICAgIGFzc2VydChcbiAgICAgIG5hbWUuY2hhckF0KDApID09PSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpLFxuICAgICAgJ3RlbXBsYXRlIG5hbWVzIG11c3Qgc3RhcnQgd2l0aCBhIGNhcGl0YWwgbGV0dGVyJ1xuICAgICk7XG5cbiAgICBsZXQgc3BlY2lmaWVyID0gYHRlbXBsYXRlOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBwcmVjb21waWxlKHRlbXBsYXRlLCB7IG1ldGE6IHsgc3BlY2lmaWVyIH0gfSk7XG4gICAgdGhpcy50ZW1wbGF0ZXNbc3BlY2lmaWVyXSA9IHRlbXBsYXRlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tcG9uZW50KG5hbWU6IHN0cmluZywgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgY29tcG9uZW50Oi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBjb21wb25lbnRGYWN0b3J5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaGVscGVyKG5hbWU6IHN0cmluZywgaGVscGVyRnVuYzogSGVscGVyRnVuY3Rpb24sIGlzRmFjdG9yeSA9IGZhbHNlKSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGBoZWxwZXI6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICBoZWxwZXJGdW5jLmlzRmFjdG9yeSA9IGlzRmFjdG9yeTtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IGhlbHBlckZ1bmM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSZXNvbHZlcigpOiBSZXNvbHZlciB7XG4gICAgbGV0IHJlc29sdmVyQ29uZmlndXJhdGlvbiA9IHRoaXMub3B0aW9ucy5yZXNvbHZlckNvbmZpZ3VyYXRpb24gfHwgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgICByZXNvbHZlckNvbmZpZ3VyYXRpb24uYXBwID0gcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCB8fCB7XG4gICAgICBuYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgfTtcblxuICAgIGxldCByZWdpc3RyeSA9IG5ldyBCYXNpY01vZHVsZVJlZ2lzdHJ5KHRoaXMubW9kdWxlcyk7XG4gICAgcmV0dXJuIG5ldyBSZXNvbHZlcihyZXNvbHZlckNvbmZpZ3VyYXRpb24sIHJlZ2lzdHJ5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJ1bnRpbWVDb21waWxlckxvYWRlcigpOiBMb2FkZXIge1xuICAgIHJldHVybiBuZXcgUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRCeXRlY29kZUxvYWRlcihyZXNvbHZlcjogUmVzb2x2ZXIpIHtcbiAgICBsZXQgZGVsZWdhdGUgPSBuZXcgQ29tcGlsZXJEZWxlZ2F0ZShyZXNvbHZlcik7XG4gICAgbGV0IGNvbXBpbGVyID0gbmV3IEJ1bmRsZUNvbXBpbGVyKGRlbGVnYXRlKTtcblxuICAgIGxldCBtYWluTG9jYXRvciA9IGxvY2F0b3JGb3IoJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZScsICdkZWZhdWx0Jyk7XG4gICAgbWFpbkxvY2F0b3IubWV0YS5tb2R1bGUgPSAndGVtcGxhdGU6bWFpblRlbXBsYXRlJztcblxuICAgIGxldCBibG9jayA9IEpTT04ucGFyc2UobWFpblRlbXBsYXRlLmJsb2NrKTtcbiAgICBsZXQgY29tcGlsYWJsZVRlbXBsYXRlID0gY29tcGlsYWJsZSh7XG4gICAgICBibG9jayxcbiAgICAgIHJlZmVycmVyOiBtYWluTG9jYXRvci5tZXRhLFxuICAgIH0pO1xuXG4gICAgY29tcGlsZXIuYWRkQ29tcGlsYWJsZVRlbXBsYXRlKG1haW5Mb2NhdG9yLCBjb21waWxhYmxlVGVtcGxhdGUpO1xuXG4gICAgZm9yIChsZXQgbW9kdWxlIGluIHRoaXMudGVtcGxhdGVzKSB7XG4gICAgICBjb21waWxlci5hZGRUZW1wbGF0ZVNvdXJjZShsb2NhdG9yRm9yKG1vZHVsZSwgJ2RlZmF1bHQnKSwgdGhpcy50ZW1wbGF0ZXNbbW9kdWxlXSk7XG4gICAgfVxuXG4gICAgbGV0IHsgaGVhcCwgcG9vbCwgdGFibGUgfSA9IGNvbXBpbGVyLmNvbXBpbGUoKTtcblxuICAgIGxldCByZXNvbHZlclRhYmxlOiB1bmtub3duW10gPSBbXTtcblxuICAgIGxldCBtZXRhOiBEaWN0PE1ldGFkYXRhPiA9IHt9O1xuXG4gICAgdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZm9yRWFjaCgodm1IYW5kbGUsIGxvY2F0b3IpID0+IHtcbiAgICAgIGxldCBoYW5kbGUgPSB0YWJsZS5ieU1vZHVsZUxvY2F0b3IuZ2V0KGxvY2F0b3IpO1xuICAgICAgbGV0IHRlbXBsYXRlID0gY29tcGlsZXIuZ2V0VGVtcGxhdGUobG9jYXRvcik7XG5cbiAgICAgIG1ldGFbbG9jYXRvci5tb2R1bGVdID0ge1xuICAgICAgICB2OiB2bUhhbmRsZSxcbiAgICAgICAgaDogaGFuZGxlLFxuICAgICAgICB0YWJsZTogdGVtcGxhdGUuc3ltYm9sVGFibGUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGFibGUuYnlIYW5kbGUuZm9yRWFjaCgobG9jYXRvciwgaGFuZGxlKSA9PiB7XG4gICAgICBsZXQgbW9kdWxlID0gbG9jYXRvci5tb2R1bGUucmVwbGFjZSgndGVtcGxhdGU6LycsICdjb21wb25lbnQ6LycpO1xuICAgICAgaWYgKHRoaXMubW9kdWxlc1ttb2R1bGVdKSB7XG4gICAgICAgIGlmIChtb2R1bGUuaW5kZXhPZignaGVscGVyOicpID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlVHlwZSA9ICh0aGlzLm1vZHVsZXNbbW9kdWxlXSBhcyBIZWxwZXJGdW5jdGlvbikuaXNGYWN0b3J5ID8gTW9kdWxlVHlwZXMuSEVMUEVSX0ZBQ1RPUlkgOiBNb2R1bGVUeXBlcy5IRUxQRVI7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gW21vZHVsZVR5cGUsIHRoaXMubW9kdWxlc1ttb2R1bGVdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSB0aGlzLm1vZHVsZXNbbW9kdWxlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGJ5dGVjb2RlID0gaGVhcC5idWZmZXI7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBwcmVmaXg6ICcnLFxuICAgICAgbWFpbkVudHJ5OiB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5nZXQobWFpbkxvY2F0b3IpLFxuICAgICAgcG9vbCxcbiAgICAgIHRhYmxlOiByZXNvbHZlclRhYmxlLFxuICAgICAgbWV0YSxcbiAgICAgIGhlYXA6IHtcbiAgICAgICAgdGFibGU6IGhlYXAudGFibGUsXG4gICAgICAgIGhhbmRsZTogaGVhcC5oYW5kbGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJ5dGVjb2RlTG9hZGVyKHsgYnl0ZWNvZGUsIGRhdGEgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRMb2FkZXIocmVzb2x2ZXIpOiBMb2FkZXIge1xuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvYWRlcikge1xuICAgICAgY2FzZSAncnVudGltZS1jb21waWxlcic6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gICAgICBjYXNlICdieXRlY29kZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbG9hZGVyICR7dGhpcy5vcHRpb25zLmxvYWRlcn1gKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lOiBzdHJpbmcsIGRhdGE6IERpY3Q8dW5rbm93bj4sIG9wdGlvbnM/OiBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIHJldHVybiBTU1JBcHBsaWNhdGlvbi5yZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lLCBkYXRhLCB7XG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJlc29sdmVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXI6IG5ldyBTeW5jUmVuZGVyZXIoKSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJvb3QoKTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlcjogTG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICBsZXQgZG9jOiBEb2N1bWVudCA9ICh0aGlzLm9wdGlvbnMuZG9jdW1lbnQgYXMgRG9jdW1lbnQpIHx8IGRvY3VtZW50O1xuICAgIGxldCBlbGVtZW50ID0gZG9jLmJvZHk7XG4gICAgbGV0IGJ1aWxkZXIgPSBuZXcgRE9NQnVpbGRlcih7IGVsZW1lbnQgfSk7XG4gICAgbGV0IHJlbmRlcmVyID0gbmV3IFN5bmNSZW5kZXJlcigpO1xuXG4gICAgbGV0IGFwcCA9IG5ldyB0aGlzLm9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyh7XG4gICAgICByZXNvbHZlcixcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcixcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgZG9jdW1lbnQ6IHRoaXMub3B0aW9ucy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGxldCByb290RWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBhcHAucm9vdEVsZW1lbnQgPSByb290RWxlbWVudDtcbiAgICBhcHAucmVuZGVyQ29tcG9uZW50KCdNYWluJywgcm9vdEVsZW1lbnQpO1xuICAgIGFwcC5ib290KCk7XG5cbiAgICBhd2FpdCBkaWRSZW5kZXIoYXBwKTtcblxuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cblxuY2xhc3MgQ29tcGlsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRzIElDb21waWxlckRlbGVnYXRlPE1vZHVsZUxvY2F0b3I+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlc29sdmVyOiBSZXNvbHZlcikge31cblxuICBoYXNDb21wb25lbnRJblNjb3BlKG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgfVxuXG4gIHJlc29sdmVDb21wb25lbnQobmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIGxldCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYHRlbXBsYXRlOiR7bmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50Q2FwYWJpbGl0aWVzKCkge1xuICAgIHJldHVybiBDQVBBQklMSVRJRVM7XG4gIH1cblxuICBoYXNIZWxwZXJJblNjb3BlKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlSGVscGVyKGhlbHBlck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGBoZWxwZXI6JHtoZWxwZXJOYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gICAgcmV0dXJuIHsgbW9kdWxlOiByZXNvbHZlZCwgbmFtZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICBoYXNQYXJ0aWFsSW5TY29wZShwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWxOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaGFzTW9kaWZpZXJJblNjb3BlKG1vZGlmaWVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHJlc29sdmVNb2RpZmllcihtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRBcHA8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ob3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4gPSB7fSk6IEFwcEJ1aWxkZXI8VD4ge1xuICBvcHRpb25zLmFwcE5hbWUgPSBvcHRpb25zLmFwcE5hbWUgfHwgJ3Rlc3QtYXBwJztcbiAgb3B0aW9ucy5sb2FkZXIgPSBvcHRpb25zLmxvYWRlciB8fCAncnVudGltZS1jb21waWxlcic7XG4gIG9wdGlvbnMuQ29tcG9uZW50TWFuYWdlciA9IG9wdGlvbnMuQ29tcG9uZW50TWFuYWdlciB8fCBDb21wb25lbnRNYW5hZ2VyO1xuICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgPVxuICAgIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyB8fCAoVGVzdEFwcGxpY2F0aW9uIGFzIEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD4pO1xuXG4gIHJldHVybiBuZXcgQXBwQnVpbGRlcihvcHRpb25zLmFwcE5hbWUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBidWlsZEFwcCB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9AZ2xpbW1lci9hcHBsaWNhdGlvbi10ZXN0LWhlbHBlcnMvc3JjL2FwcC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxFQUFFLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sbUJBQW1CLENBQUM7QUFFekYsT0FBTyw0QkFBNEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sV0FBVyxFQUFFLEVBRWxCLGNBQWMsRUFDZCxVQUFVLEVBRVYscUJBQXFCLEVBQ3JCLFlBQVksRUFFWixzQkFBc0IsRUFDdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQXlDLE1BQU0sMEJBQTBCLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQThCLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBYXJDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7Q0FFL0M7QUFtQkQsU0FBUyxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVk7SUFDOUMsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU07UUFDTixJQUFJO1FBQ0osSUFBSSxFQUFFO1lBQ0osTUFBTTtZQUNOLElBQUk7U0FDTDtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFNckIsWUFBWSxJQUFZLEVBQUUsT0FBNkI7UUFKdkQsWUFBTyxHQUFrQixF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T0FBTyxDQUFDLGdCQUFnQixJQUFLLGVBQTZDLENBQUM7SUFFN0UsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb2x2ZXIsIHsgQmFzaWNNb2R1bGVSZWdpc3RyeSwgUmVzb2x2ZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnQGdsaW1tZXIvcmVzb2x2ZXInO1xuaW1wb3J0IHsgRGljdCwgTW9kdWxlTG9jYXRvciwgVGVtcGxhdGVMb2NhdG9yLCBDb21wb25lbnRDYXBhYmlsaXRpZXMgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCBkZWZhdWx0UmVzb2x2ZXJDb25maWd1cmF0aW9uIGZyb20gJy4vZGVmYXVsdC1yZXNvbHZlci1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IHByZWNvbXBpbGUgfSBmcm9tICcuL2NvbXBpbGVyJztcbmltcG9ydCBBcHBsaWNhdGlvbiwge1xuICBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yLFxuICBCeXRlY29kZUxvYWRlcixcbiAgRE9NQnVpbGRlcixcbiAgTG9hZGVyLFxuICBSdW50aW1lQ29tcGlsZXJMb2FkZXIsXG4gIFN5bmNSZW5kZXJlcixcbiAgTW9kdWxlVHlwZXMsXG4gIElOVEVSTkFMX0RZTkFNSUNfU0NPUEVcbn0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBCdW5kbGVDb21waWxlciwgQ29tcGlsZXJEZWxlZ2F0ZSBhcyBJQ29tcGlsZXJEZWxlZ2F0ZSB9IGZyb20gJ0BnbGltbWVyL2J1bmRsZS1jb21waWxlcic7XG5pbXBvcnQgeyBidWlsZEFjdGlvbiwgbWFpblRlbXBsYXRlLCBSZW5kZXJlciwgQnl0ZWNvZGVNZXRhZGF0YSB9IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGUgfSBmcm9tICdAZ2xpbW1lci9vcGNvZGUtY29tcGlsZXInO1xuaW1wb3J0IHsgU2ltcGxlRG9jdW1lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IEhUTUxTZXJpYWxpemVyIGZyb20gJ0BzaW1wbGUtZG9tL3NlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU1NSQXBwbGljYXRpb24gfSBmcm9tICdAZ2xpbW1lci9zc3InO1xuXG5pbXBvcnQgZGlkUmVuZGVyIGZyb20gJy4vZGlkLXJlbmRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlck9wdGlvbnM8VD4ge1xuICBhcHBOYW1lPzogc3RyaW5nO1xuICBsb2FkZXI/OiBzdHJpbmc7XG4gIEFwcGxpY2F0aW9uQ2xhc3M/OiBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+O1xuICBDb21wb25lbnRNYW5hZ2VyPzogYW55OyAvLyBUT0RPIC0gdHlwaW5nXG4gIHJlc29sdmVyQ29uZmlndXJhdGlvbj86IFJlc29sdmVyQ29uZmlndXJhdGlvbjtcbiAgZG9jdW1lbnQ/OiBTaW1wbGVEb2N1bWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRGYWN0b3J5IHt9XG5cbmV4cG9ydCBjbGFzcyBUZXN0QXBwbGljYXRpb24gZXh0ZW5kcyBBcHBsaWNhdGlvbiB7XG4gIHJvb3RFbGVtZW50OiBFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJUZW1wbGF0ZU1ldGEge1xuICBzcGVjaWZpZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEhlbHBlckZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBpc0ZhY3Rvcnk/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJvb3ROYW1lPzogc3RyaW5nO1xuICByZXNvbHZlcj86IFJlc29sdmVyO1xuICBsb2FkZXI/OiBMb2FkZXI7XG4gIHJlbmRlcmVyPzogUmVuZGVyZXI7XG4gIHNlcmlhbGl6ZXI/OiBIVE1MU2VyaWFsaXplcjtcbiAgW0lOVEVSTkFMX0RZTkFNSUNfU0NPUEVdPzogRGljdDx1bmtub3duPjtcbn1cblxuZnVuY3Rpb24gbG9jYXRvckZvcihtb2R1bGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogVGVtcGxhdGVMb2NhdG9yPE1vZHVsZUxvY2F0b3I+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAndGVtcGxhdGUnLFxuICAgIG1vZHVsZSxcbiAgICBuYW1lLFxuICAgIG1ldGE6IHtcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcEJ1aWxkZXI8VCBleHRlbmRzIFRlc3RBcHBsaWNhdGlvbj4ge1xuICByb290TmFtZTogc3RyaW5nO1xuICBtb2R1bGVzOiBEaWN0PHVua25vd24+ID0ge307XG4gIHRlbXBsYXRlczogRGljdDxzdHJpbmc+ID0ge307XG4gIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD4pIHtcbiAgICB0aGlzLnJvb3ROYW1lID0gbmFtZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMudGVtcGxhdGUoJ01haW4nLCAnPGRpdiAvPicpO1xuICAgIHRoaXMuaGVscGVyKCdhY3Rpb24nLCBidWlsZEFjdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICB0ZW1wbGF0ZShuYW1lOiBzdHJpbmcsIHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICBhc3NlcnQoXG4gICAgICBuYW1lLmNoYXJBdCgwKSA9PT0gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSxcbiAgICAgICd0ZW1wbGF0ZSBuYW1lcyBtdXN0IHN0YXJ0IHdpdGggYSBjYXBpdGFsIGxldHRlcidcbiAgICApO1xuXG4gICAgbGV0IHNwZWNpZmllciA9IGB0ZW1wbGF0ZTovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gcHJlY29tcGlsZSh0ZW1wbGF0ZSwgeyBtZXRhOiB7IHNwZWNpZmllciB9IH0pO1xuICAgIHRoaXMudGVtcGxhdGVzW3NwZWNpZmllcl0gPSB0ZW1wbGF0ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnkpIHtcbiAgICBsZXQgc3BlY2lmaWVyID0gYGNvbXBvbmVudDovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gY29tcG9uZW50RmFjdG9yeTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGhlbHBlcihuYW1lOiBzdHJpbmcsIGhlbHBlckZ1bmM6IEhlbHBlckZ1bmN0aW9uLCBpc0ZhY3RvcnkgPSBmYWxzZSkge1xuICAgIGxldCBzcGVjaWZpZXIgPSBgaGVscGVyOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudHMvJHtuYW1lfWA7XG4gICAgaGVscGVyRnVuYy5pc0ZhY3RvcnkgPSBpc0ZhY3Rvcnk7XG4gICAgdGhpcy5tb2R1bGVzW3NwZWNpZmllcl0gPSBoZWxwZXJGdW5jO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUmVzb2x2ZXIoKTogUmVzb2x2ZXIge1xuICAgIGxldCByZXNvbHZlckNvbmZpZ3VyYXRpb24gPSB0aGlzLm9wdGlvbnMucmVzb2x2ZXJDb25maWd1cmF0aW9uIHx8IGRlZmF1bHRSZXNvbHZlckNvbmZpZ3VyYXRpb247XG4gICAgcmVzb2x2ZXJDb25maWd1cmF0aW9uLmFwcCA9IHJlc29sdmVyQ29uZmlndXJhdGlvbi5hcHAgfHwge1xuICAgICAgbmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgIH07XG5cbiAgICBsZXQgcmVnaXN0cnkgPSBuZXcgQmFzaWNNb2R1bGVSZWdpc3RyeSh0aGlzLm1vZHVsZXMpO1xuICAgIHJldHVybiBuZXcgUmVzb2x2ZXIocmVzb2x2ZXJDb25maWd1cmF0aW9uLCByZWdpc3RyeSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTogTG9hZGVyIHtcbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVDb21waWxlckxvYWRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXI6IFJlc29sdmVyKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gbmV3IENvbXBpbGVyRGVsZWdhdGUocmVzb2x2ZXIpO1xuICAgIGxldCBjb21waWxlciA9IG5ldyBCdW5kbGVDb21waWxlcihkZWxlZ2F0ZSk7XG5cbiAgICBsZXQgbWFpbkxvY2F0b3IgPSBsb2NhdG9yRm9yKCd0ZW1wbGF0ZTptYWluVGVtcGxhdGUnLCAnZGVmYXVsdCcpO1xuICAgIG1haW5Mb2NhdG9yLm1ldGEubW9kdWxlID0gJ3RlbXBsYXRlOm1haW5UZW1wbGF0ZSc7XG5cbiAgICBsZXQgYmxvY2sgPSBKU09OLnBhcnNlKG1haW5UZW1wbGF0ZS5ibG9jayk7XG4gICAgbGV0IGNvbXBpbGFibGVUZW1wbGF0ZSA9IGNvbXBpbGFibGUoe1xuICAgICAgYmxvY2ssXG4gICAgICByZWZlcnJlcjogbWFpbkxvY2F0b3IubWV0YSxcbiAgICB9KTtcblxuICAgIGNvbXBpbGVyLmFkZENvbXBpbGFibGVUZW1wbGF0ZShtYWluTG9jYXRvciwgY29tcGlsYWJsZVRlbXBsYXRlKTtcblxuICAgIGZvciAobGV0IG1vZHVsZSBpbiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgY29tcGlsZXIuYWRkVGVtcGxhdGVTb3VyY2UobG9jYXRvckZvcihtb2R1bGUsICdkZWZhdWx0JyksIHRoaXMudGVtcGxhdGVzW21vZHVsZV0pO1xuICAgIH1cblxuICAgIGxldCB7IGhlYXAsIHBvb2wsIHRhYmxlIH0gPSBjb21waWxlci5jb21waWxlKCk7XG5cbiAgICBsZXQgcmVzb2x2ZXJUYWJsZTogdW5rbm93bltdID0gW107XG5cbiAgICBsZXQgbWV0YTogRGljdDxCeXRlY29kZU1ldGFkYXRhPiA9IHt9O1xuXG4gICAgdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZm9yRWFjaCgodm1IYW5kbGUsIGxvY2F0b3IpID0+IHtcbiAgICAgIGxldCBoYW5kbGUgPSB0YWJsZS5ieU1vZHVsZUxvY2F0b3IuZ2V0KGxvY2F0b3IpO1xuICAgICAgbGV0IHRlbXBsYXRlID0gY29tcGlsZXIuZ2V0VGVtcGxhdGUobG9jYXRvcik7XG5cbiAgICAgIG1ldGFbbG9jYXRvci5tb2R1bGVdID0ge1xuICAgICAgICB2OiB2bUhhbmRsZSxcbiAgICAgICAgaDogaGFuZGxlLFxuICAgICAgICBzVDogdGVtcGxhdGUuc3ltYm9sVGFibGUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGFibGUuYnlIYW5kbGUuZm9yRWFjaCgobG9jYXRvciwgaGFuZGxlKSA9PiB7XG4gICAgICBsZXQgbW9kdWxlID0gbG9jYXRvci5tb2R1bGUucmVwbGFjZSgndGVtcGxhdGU6LycsICdjb21wb25lbnQ6LycpO1xuICAgICAgaWYgKHRoaXMubW9kdWxlc1ttb2R1bGVdKSB7XG4gICAgICAgIGlmIChtb2R1bGUuaW5kZXhPZignaGVscGVyOicpID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlVHlwZSA9ICh0aGlzLm1vZHVsZXNbbW9kdWxlXSBhcyBIZWxwZXJGdW5jdGlvbikuaXNGYWN0b3J5ID8gTW9kdWxlVHlwZXMuSEVMUEVSX0ZBQ1RPUlkgOiBNb2R1bGVUeXBlcy5IRUxQRVI7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gW21vZHVsZVR5cGUsIHRoaXMubW9kdWxlc1ttb2R1bGVdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSB0aGlzLm1vZHVsZXNbbW9kdWxlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGJ5dGVjb2RlID0gaGVhcC5idWZmZXI7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBwcmVmaXg6ICcnLFxuICAgICAgbWFpbkVudHJ5OiB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5nZXQobWFpbkxvY2F0b3IpLFxuICAgICAgcG9vbCxcbiAgICAgIHRhYmxlOiByZXNvbHZlclRhYmxlLFxuICAgICAgbWV0YSxcbiAgICAgIGhlYXA6IHtcbiAgICAgICAgdGFibGU6IGhlYXAudGFibGUsXG4gICAgICAgIGhhbmRsZTogaGVhcC5oYW5kbGUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJ5dGVjb2RlTG9hZGVyKHsgYnl0ZWNvZGUsIGRhdGEgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRMb2FkZXIocmVzb2x2ZXIpOiBMb2FkZXIge1xuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvYWRlcikge1xuICAgICAgY2FzZSAncnVudGltZS1jb21waWxlcic6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk7XG4gICAgICBjYXNlICdieXRlY29kZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkQnl0ZWNvZGVMb2FkZXIocmVzb2x2ZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgbG9hZGVyICR7dGhpcy5vcHRpb25zLmxvYWRlcn1gKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lOiBzdHJpbmcsIGRhdGE6IERpY3Q8dW5rbm93bj4sIG9wdGlvbnM/OiBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIHJldHVybiBTU1JBcHBsaWNhdGlvbi5yZW5kZXJUb1N0cmluZyhjb21wb25lbnROYW1lLCBkYXRhLCB7XG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIHJlc29sdmVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXI6IG5ldyBTeW5jUmVuZGVyZXIoKSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJvb3QoKTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlcjogTG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICBsZXQgZG9jOiBEb2N1bWVudCA9ICh0aGlzLm9wdGlvbnMuZG9jdW1lbnQgYXMgRG9jdW1lbnQpIHx8IGRvY3VtZW50O1xuICAgIGxldCBlbGVtZW50ID0gZG9jLmJvZHk7XG4gICAgbGV0IGJ1aWxkZXIgPSBuZXcgRE9NQnVpbGRlcih7IGVsZW1lbnQgfSk7XG4gICAgbGV0IHJlbmRlcmVyID0gbmV3IFN5bmNSZW5kZXJlcigpO1xuXG4gICAgbGV0IGFwcCA9IG5ldyB0aGlzLm9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyh7XG4gICAgICByZXNvbHZlcixcbiAgICAgIGJ1aWxkZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcixcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgZG9jdW1lbnQ6IHRoaXMub3B0aW9ucy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGxldCByb290RWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBhcHAucm9vdEVsZW1lbnQgPSByb290RWxlbWVudDtcbiAgICBhcHAucmVuZGVyQ29tcG9uZW50KCdNYWluJywgcm9vdEVsZW1lbnQpO1xuICAgIGFwcC5ib290KCk7XG5cbiAgICBhd2FpdCBkaWRSZW5kZXIoYXBwKTtcblxuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cblxuY29uc3QgQ0FQQUJJTElUSUVTOiBDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGNyZWF0ZUluc3RhbmNlOiB0cnVlLFxuICBkeW5hbWljTGF5b3V0OiBmYWxzZSxcbiAgZHluYW1pY1RhZzogZmFsc2UsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICBwcmVwYXJlQXJnczogZmFsc2UsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIHVwZGF0ZUhvb2s6IHRydWUsXG4gIGNyZWF0ZUNhbGxlcjogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbn07XG5cbmNsYXNzIENvbXBpbGVyRGVsZWdhdGUgaW1wbGVtZW50cyBJQ29tcGlsZXJEZWxlZ2F0ZTxNb2R1bGVMb2NhdG9yPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZXNvbHZlcjogUmVzb2x2ZXIpIHt9XG5cbiAgaGFzQ29tcG9uZW50SW5TY29wZShuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgdGVtcGxhdGU6JHtuYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gIH1cblxuICByZXNvbHZlQ29tcG9uZW50KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmVyLmlkZW50aWZ5KGB0ZW1wbGF0ZToke25hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgICByZXR1cm4geyBtb2R1bGU6IHJlc29sdmVkLCBuYW1lOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIGdldENvbXBvbmVudENhcGFiaWxpdGllcygpIHtcbiAgICByZXR1cm4gQ0FQQUJJTElUSUVTO1xuICB9XG5cbiAgaGFzSGVscGVySW5TY29wZShoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICB9XG5cbiAgcmVzb2x2ZUhlbHBlcihoZWxwZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgbGV0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlci5pZGVudGlmeShgaGVscGVyOiR7aGVscGVyTmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICAgIHJldHVybiB7IG1vZHVsZTogcmVzb2x2ZWQsIG5hbWU6ICdkZWZhdWx0JyB9O1xuICB9XG5cbiAgaGFzUGFydGlhbEluU2NvcGUocGFydGlhbE5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlUGFydGlhbChwYXJ0aWFsTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGhhc01vZGlmaWVySW5TY29wZShtb2RpZmllck5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICByZXNvbHZlTW9kaWZpZXIobW9kaWZpZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXBwPFQgZXh0ZW5kcyBUZXN0QXBwbGljYXRpb24+KG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+ID0ge30pOiBBcHBCdWlsZGVyPFQ+IHtcbiAgb3B0aW9ucy5hcHBOYW1lID0gb3B0aW9ucy5hcHBOYW1lIHx8ICd0ZXN0LWFwcCc7XG4gIG9wdGlvbnMubG9hZGVyID0gb3B0aW9ucy5sb2FkZXIgfHwgJ3J1bnRpbWUtY29tcGlsZXInO1xuICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgPVxuICAgIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyB8fCAoVGVzdEFwcGxpY2F0aW9uIGFzIEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD4pO1xuXG4gIHJldHVybiBuZXcgQXBwQnVpbGRlcihvcHRpb25zLmFwcE5hbWUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBidWlsZEFwcCB9O1xuIl19

@@ -13,3 +13,2 @@ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }

import Application, { BytecodeLoader, DOMBuilder, RuntimeCompilerLoader, SyncRenderer, INTERNAL_DYNAMIC_SCOPE } from '@glimmer/application';
import { ComponentManager, CAPABILITIES } from '@glimmer/component';
import { assert } from '@glimmer/util';

@@ -53,3 +52,2 @@ import { BundleCompiler } from '@glimmer/bundle-compiler';

this.options = options;
this.modules["component-manager:/" + this.rootName + "/component-managers/main"] = this.options.ComponentManager;
this.template('Main', '<div />');

@@ -135,3 +133,3 @@ this.helper('action', buildAction, true);

h: handle,
table: template.symbolTable
sT: template.symbolTable
};

@@ -234,2 +232,15 @@ });

}();
var CAPABILITIES = {
createInstance: true,
dynamicLayout: false,
dynamicTag: false,
wrapped: false,
prepareArgs: false,
createArgs: true,
attributeHook: false,
elementHook: false,
updateHook: true,
createCaller: false,
dynamicScope: true
};

@@ -299,3 +310,2 @@ var CompilerDelegate =

options.loader = options.loader || 'runtime-compiler';
options.ComponentManager = options.ComponentManager || ComponentManager;
options.ApplicationClass = options.ApplicationClass || TestApplication;

@@ -306,2 +316,2 @@ return new AppBuilder(options.appName, options);

export { buildApp };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPLFFBQVAsSUFBbUIsbUJBQW5CLFFBQXFFLG1CQUFyRTtBQUVBLE9BQU8sNEJBQVAsTUFBeUMsa0NBQXpDO0FBQ0EsU0FBUyxVQUFULFFBQTJCLFlBQTNCO0FBQ0EsT0FBTyxXQUFQLElBRUUsY0FGRixFQUdFLFVBSEYsRUFLRSxxQkFMRixFQU1FLFlBTkYsRUFRRSxzQkFSRixRQVNPLHNCQVRQO0FBVUEsU0FBUyxnQkFBVCxFQUEyQixZQUEzQixRQUErQyxvQkFBL0M7QUFDQSxTQUFTLE1BQVQsUUFBdUIsZUFBdkI7QUFDQSxTQUFTLGNBQVQsUUFBc0UsMEJBQXRFO0FBQ0EsU0FBUyxXQUFULEVBQXNCLFlBQXRCLFFBQTBDLHNCQUExQztBQUNBLFNBQVMsVUFBVCxRQUEyQiwwQkFBM0I7QUFHQSxTQUFTLGNBQVQsUUFBK0IsY0FBL0I7QUFFQSxPQUFPLFNBQVAsTUFBc0IsY0FBdEI7QUFlQSxXQUFhLGVBQWI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsRUFBcUMsV0FBckM7O0FBcUJBLFNBQVMsVUFBVCxDQUFvQixNQUFwQixFQUFvQyxJQUFwQyxFQUFnRDtBQUM5QyxTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBQUUsVUFERDtBQUVMLElBQUEsTUFBTSxFQUFOLE1BRks7QUFHTCxJQUFBLElBQUksRUFBSixJQUhLO0FBSUwsSUFBQSxJQUFJLEVBQUU7QUFDSixNQUFBLE1BQU0sRUFBTixNQURJO0FBRUosTUFBQSxJQUFJLEVBQUo7QUFGSTtBQUpELEdBQVA7QUFTRDs7QUFFRCxXQUFhLFVBQWI7QUFBQTtBQUFBO0FBTUUsc0JBQVksSUFBWixFQUEwQixPQUExQixFQUF1RDtBQUp2RCxTQUFBLE9BQUEsR0FBeUIsRUFBekI7QUFDQSxTQUFBLFNBQUEsR0FBMEIsRUFBMUI7QUFJRSxTQUFLLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxTQUFLLE9BQUwsR0FBZSxPQUFmO0FBQ0EsU0FBSyxPQUFMLHlCQUN3QixLQUFLLFFBRDdCLGlDQUVJLEtBQUssT0FBTCxDQUFhLGdCQUZqQjtBQUdBLFNBQUssUUFBTCxDQUFjLE1BQWQsRUFBc0IsU0FBdEI7QUFDQSxTQUFLLE1BQUwsQ0FBWSxRQUFaLEVBQXNCLFdBQXRCLEVBQW1DLElBQW5DO0FBQ0Q7O0FBZEg7O0FBQUEsU0FnQkUsUUFoQkYsR0FnQkUsa0JBQVMsSUFBVCxFQUF1QixTQUF2QixFQUF1QztBQUNyQyxJQUFBLE1BQU0sQ0FDSixJQUFJLENBQUMsTUFBTCxDQUFZLENBQVosTUFBbUIsSUFBSSxDQUFDLE1BQUwsQ0FBWSxDQUFaLEVBQWUsV0FBZixFQURmLEVBRUosaURBRkksQ0FBTjtBQUtBLFFBQUksU0FBUyxrQkFBZ0IsS0FBSyxRQUFyQixvQkFBNEMsSUFBekQ7QUFDQSxTQUFLLE9BQUwsQ0FBYSxTQUFiLElBQTBCLFVBQVUsQ0FBQyxTQUFELEVBQVc7QUFBRSxNQUFBLElBQUksRUFBRTtBQUFFLFFBQUEsU0FBUyxFQUFUO0FBQUY7QUFBUixLQUFYLENBQXBDO0FBQ0EsU0FBSyxTQUFMLENBQWUsU0FBZixJQUE0QixTQUE1QjtBQUNBLFdBQU8sSUFBUDtBQUNELEdBMUJIOztBQUFBLFNBNEJFLFNBNUJGLEdBNEJFLG1CQUFVLElBQVYsRUFBd0IsZ0JBQXhCLEVBQTBEO0FBQ3hELFFBQUksU0FBUyxtQkFBaUIsS0FBSyxRQUF0QixvQkFBNkMsSUFBMUQ7QUFDQSxTQUFLLE9BQUwsQ0FBYSxTQUFiLElBQTBCLGdCQUExQjtBQUNBLFdBQU8sSUFBUDtBQUNELEdBaENIOztBQUFBLFNBa0NFLE1BbENGLEdBa0NFLGdCQUFPLElBQVAsRUFBcUIsVUFBckIsRUFBaUQsU0FBakQsRUFBa0U7QUFBQSxRQUFqQixTQUFpQjtBQUFqQixNQUFBLFNBQWlCLEdBQUwsS0FBSztBQUFBOztBQUNoRSxRQUFJLFNBQVMsZ0JBQWMsS0FBSyxRQUFuQixvQkFBMEMsSUFBdkQ7QUFDQSxJQUFBLFVBQVUsQ0FBQyxTQUFYLEdBQXVCLFNBQXZCO0FBQ0EsU0FBSyxPQUFMLENBQWEsU0FBYixJQUEwQixVQUExQjtBQUNBLFdBQU8sSUFBUDtBQUNELEdBdkNIOztBQUFBLFNBeUNZLGFBekNaLEdBeUNZLHlCQUFhO0FBQ3JCLFFBQUkscUJBQXFCLEdBQUcsS0FBSyxPQUFMLENBQWEscUJBQWIsSUFBc0MsNEJBQWxFO0FBQ0EsSUFBQSxxQkFBcUIsQ0FBQyxHQUF0QixHQUE0QixxQkFBcUIsQ0FBQyxHQUF0QixJQUE2QjtBQUN2RCxNQUFBLElBQUksRUFBRSxLQUFLLFFBRDRDO0FBRXZELE1BQUEsUUFBUSxFQUFFLEtBQUs7QUFGd0MsS0FBekQ7QUFLQSxRQUFJLFFBQVEsR0FBRyxJQUFJLG1CQUFKLENBQXdCLEtBQUssT0FBN0IsQ0FBZjtBQUNBLFdBQU8sSUFBSSxRQUFKLENBQWEscUJBQWIsRUFBb0MsUUFBcEMsQ0FBUDtBQUNELEdBbERIOztBQUFBLFNBb0RZLDBCQXBEWixHQW9EWSxzQ0FBMEI7QUFDbEMsV0FBTyxJQUFJLHFCQUFKLEVBQVA7QUFDRCxHQXRESDs7QUFBQSxTQXdEWSxtQkF4RFosR0F3RFksNkJBQW9CLFFBQXBCLEVBQXNDO0FBQUE7O0FBQzlDLFFBQUksUUFBUSxHQUFHLElBQUksZ0JBQUosQ0FBcUIsUUFBckIsQ0FBZjtBQUNBLFFBQUksUUFBUSxHQUFHLElBQUksY0FBSixDQUFtQixRQUFuQixDQUFmO0FBRUEsUUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLHVCQUFELEVBQTBCLFNBQTFCLENBQTVCO0FBQ0EsSUFBQSxXQUFXLENBQUMsSUFBWixDQUFpQixNQUFqQixHQUEwQix1QkFBMUI7QUFFQSxRQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTCxDQUFXLFlBQVksQ0FBQyxLQUF4QixDQUFaO0FBQ0EsUUFBSSxrQkFBa0IsR0FBRyxVQUFVLENBQUM7QUFDbEMsTUFBQSxLQUFLLEVBQUwsS0FEa0M7QUFFbEMsTUFBQSxRQUFRLEVBQUUsV0FBVyxDQUFDO0FBRlksS0FBRCxDQUFuQztBQUtBLElBQUEsUUFBUSxDQUFDLHFCQUFULENBQStCLFdBQS9CLEVBQTRDLGtCQUE1Qzs7QUFFQSxTQUFLLElBQUksTUFBVCxJQUFtQixLQUFLLFNBQXhCLEVBQW1DO0FBQ2pDLE1BQUEsUUFBUSxDQUFDLGlCQUFULENBQTJCLFVBQVUsQ0FBQyxNQUFELEVBQVMsU0FBVCxDQUFyQyxFQUEwRCxLQUFLLFNBQUwsQ0FBZSxNQUFmLENBQTFEO0FBQ0Q7O0FBakI2Qyw0QkFtQmxCLFFBQVEsQ0FBQyxPQUFULEVBbkJrQjtBQUFBLFFBbUJ4QyxJQW5Cd0MscUJBbUJ4QyxJQW5Cd0M7QUFBQSxRQW1CbEMsSUFuQmtDLHFCQW1CbEMsSUFuQmtDO0FBQUEsUUFtQjVCLEtBbkI0QixxQkFtQjVCLEtBbkI0Qjs7QUFxQjlDLFFBQUksYUFBYSxHQUFjLEVBQS9CO0FBRUEsUUFBSSxJQUFJLEdBQW1CLEVBQTNCO0FBRUEsSUFBQSxLQUFLLENBQUMsdUJBQU4sQ0FBOEIsT0FBOUIsQ0FBc0MsVUFBQyxRQUFELEVBQVcsT0FBWCxFQUFzQjtBQUMxRCxVQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsZUFBTixDQUFzQixHQUF0QixDQUEwQixPQUExQixDQUFiO0FBQ0EsVUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVQsQ0FBcUIsT0FBckIsQ0FBZjtBQUVBLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFULENBQUosR0FBdUI7QUFDckIsUUFBQSxDQUFDLEVBQUUsUUFEa0I7QUFFckIsUUFBQSxDQUFDLEVBQUUsTUFGa0I7QUFHckIsUUFBQSxLQUFLLEVBQUUsUUFBUSxDQUFDO0FBSEssT0FBdkI7QUFLRCxLQVREO0FBV0EsSUFBQSxLQUFLLENBQUMsUUFBTixDQUFlLE9BQWYsQ0FBdUIsVUFBQyxPQUFELEVBQVUsTUFBVixFQUFvQjtBQUN6QyxVQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBUixDQUFlLE9BQWYsQ0FBdUIsWUFBdkIsRUFBcUMsYUFBckMsQ0FBYjs7QUFDQSxVQUFJLEtBQUksQ0FBQyxPQUFMLENBQWEsTUFBYixDQUFKLEVBQTBCO0FBQ3hCLFlBQUksTUFBTSxDQUFDLE9BQVAsQ0FBZSxTQUFmLE1BQThCLENBQWxDLEVBQXFDO0FBQ25DLGNBQU0sVUFBVSxHQUFJLEtBQUksQ0FBQyxPQUFMLENBQWEsTUFBYixFQUF3QyxTQUF4QyxHQUFtRDtBQUFBO0FBQW5ELFlBQWdGO0FBQUE7QUFBcEc7QUFDQSxVQUFBLGFBQWEsQ0FBQyxNQUFELENBQWIsR0FBd0IsQ0FBQyxVQUFELEVBQWEsS0FBSSxDQUFDLE9BQUwsQ0FBYSxNQUFiLENBQWIsQ0FBeEI7QUFDRCxTQUhELE1BR087QUFDTCxVQUFBLGFBQWEsQ0FBQyxNQUFELENBQWIsR0FBd0IsS0FBSSxDQUFDLE9BQUwsQ0FBYSxNQUFiLENBQXhCO0FBQ0Q7QUFDRjtBQUNGLEtBVkQ7QUFZQSxRQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBcEI7QUFDQSxRQUFJLElBQUksR0FBRztBQUNULE1BQUEsTUFBTSxFQUFFLEVBREM7QUFFVCxNQUFBLFNBQVMsRUFBRSxLQUFLLENBQUMsdUJBQU4sQ0FBOEIsR0FBOUIsQ0FBa0MsV0FBbEMsQ0FGRjtBQUdULE1BQUEsSUFBSSxFQUFKLElBSFM7QUFJVCxNQUFBLEtBQUssRUFBRSxhQUpFO0FBS1QsTUFBQSxJQUFJLEVBQUosSUFMUztBQU1ULE1BQUEsSUFBSSxFQUFFO0FBQ0osUUFBQSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBRFI7QUFFSixRQUFBLE1BQU0sRUFBRSxJQUFJLENBQUM7QUFGVDtBQU5HLEtBQVg7QUFZQSxXQUFPLElBQUksY0FBSixDQUFtQjtBQUFFLE1BQUEsUUFBUSxFQUFSLFFBQUY7QUFBWSxNQUFBLElBQUksRUFBSjtBQUFaLEtBQW5CLENBQVA7QUFDRCxHQXRISDs7QUFBQSxTQXdIWSxXQXhIWixHQXdIWSxxQkFBWSxRQUFaLEVBQW9CO0FBQzVCLFlBQVEsS0FBSyxPQUFMLENBQWEsTUFBckI7QUFDRSxXQUFLLGtCQUFMO0FBQ0UsZUFBTyxLQUFLLDBCQUFMLEVBQVA7O0FBQ0YsV0FBSyxVQUFMO0FBQ0UsZUFBTyxLQUFLLG1CQUFMLENBQXlCLFFBQXpCLENBQVA7O0FBQ0Y7QUFDRSxjQUFNLElBQUksS0FBSiwwQkFBaUMsS0FBSyxPQUFMLENBQWEsTUFBOUMsQ0FBTjtBQU5KO0FBUUQsR0FqSUg7O0FBQUEsU0FtSUUsY0FuSUYsR0FtSUUsd0JBQWUsYUFBZixFQUFzQyxJQUF0QyxFQUEyRCxPQUEzRCxFQUE4RjtBQUM1RixRQUFNLFFBQVEsR0FBRyxLQUFLLGFBQUwsRUFBakI7QUFDQSxRQUFJLE1BQU0sR0FBRyxLQUFLLFdBQUwsQ0FBaUIsUUFBakIsQ0FBYjtBQUVBLFdBQU8sY0FBYyxDQUFDLGNBQWYsQ0FBOEIsYUFBOUIsRUFBNkMsSUFBN0MsRUFBaUQsTUFBQSxDQUFBLE1BQUEsQ0FBQTtBQUN0RCxNQUFBLFFBQVEsRUFBRSxLQUFLLFFBRHVDO0FBRXRELE1BQUEsUUFBUSxFQUFSLFFBRnNEO0FBR3RELE1BQUEsTUFBTSxFQUFOLE1BSHNEO0FBSXRELE1BQUEsUUFBUSxFQUFFLElBQUksWUFBSjtBQUo0QyxLQUFBLEVBS25ELE9BTG1ELENBQWpELENBQVA7QUFPRCxHQTlJSDs7QUFBQSxTQWdKUSxJQWhKUjtBQUFBO0FBQUE7QUFBQSxrQ0FnSkUsYUFBVTtBQUNSLFVBQUksUUFBUSxHQUFHLEtBQUssYUFBTCxFQUFmO0FBQ0EsVUFBSSxNQUFNLEdBQVcsS0FBSyxXQUFMLENBQWlCLFFBQWpCLENBQXJCO0FBRUEsVUFBSSxHQUFHLEdBQWMsS0FBSyxPQUFMLENBQWEsUUFBYixJQUFzQyxRQUEzRDtBQUNBLFVBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFsQjtBQUNBLFVBQUksT0FBTyxHQUFHLElBQUksVUFBSixDQUFlO0FBQUUsUUFBQSxPQUFPLEVBQVA7QUFBRixPQUFmLENBQWQ7QUFDQSxVQUFJLFFBQVEsR0FBRyxJQUFJLFlBQUosRUFBZjtBQUVBLFVBQUksR0FBRyxHQUFHLElBQUksS0FBSyxPQUFMLENBQWEsZ0JBQWpCLENBQWtDO0FBQzFDLFFBQUEsUUFBUSxFQUFSLFFBRDBDO0FBRTFDLFFBQUEsT0FBTyxFQUFQLE9BRjBDO0FBRzFDLFFBQUEsTUFBTSxFQUFOLE1BSDBDO0FBSTFDLFFBQUEsUUFBUSxFQUFSLFFBSjBDO0FBSzFDLFFBQUEsUUFBUSxFQUFFLEtBQUssUUFMMkI7QUFNMUMsUUFBQSxRQUFRLEVBQUUsS0FBSyxPQUFMLENBQWE7QUFObUIsT0FBbEMsQ0FBVjtBQVNBLFVBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQyxhQUFKLENBQWtCLEtBQWxCLENBQWxCO0FBQ0EsTUFBQSxHQUFHLENBQUMsV0FBSixHQUFrQixXQUFsQjtBQUNBLE1BQUEsR0FBRyxDQUFDLGVBQUosQ0FBb0IsTUFBcEIsRUFBNEIsV0FBNUI7QUFDQSxNQUFBLEdBQUcsQ0FBQyxJQUFKO0FBRUEsWUFBTSxTQUFTLENBQUMsR0FBRCxDQUFmO0FBRUEsYUFBTyxHQUFQO0FBQ0QsS0ExS0g7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7SUE2S00sZ0I7OztBQUNKLDRCQUFzQixRQUF0QixFQUF3QztBQUFsQixTQUFBLFFBQUEsR0FBQSxRQUFBO0FBQXNCOzs7O1VBRTVDLG1CLEdBQUEsNkJBQW9CLElBQXBCLEVBQWtDLFFBQWxDLEVBQXlEO0FBQ3ZELFdBQU8sQ0FBQyxDQUFDLEtBQUssUUFBTCxDQUFjLFFBQWQsZUFBbUMsSUFBbkMsRUFBMkMsUUFBUSxDQUFDLE1BQXBELENBQVQ7QUFDRCxHOztVQUVELGdCLEdBQUEsMEJBQWlCLElBQWpCLEVBQStCLFFBQS9CLEVBQXNEO0FBQ3BELFFBQUksUUFBUSxHQUFHLEtBQUssUUFBTCxDQUFjLFFBQWQsZUFBbUMsSUFBbkMsRUFBMkMsUUFBUSxDQUFDLE1BQXBELENBQWY7QUFDQSxXQUFPO0FBQUUsTUFBQSxNQUFNLEVBQUUsUUFBVjtBQUFvQixNQUFBLElBQUksRUFBRTtBQUExQixLQUFQO0FBQ0QsRzs7VUFFRCx3QixHQUFBLG9DQUF3QjtBQUN0QixXQUFPLFlBQVA7QUFDRCxHOztVQUVELGdCLEdBQUEsMEJBQWlCLFVBQWpCLEVBQXFDLFFBQXJDLEVBQTREO0FBQzFELFdBQU8sQ0FBQyxDQUFDLEtBQUssUUFBTCxDQUFjLFFBQWQsYUFBaUMsVUFBakMsRUFBK0MsUUFBUSxDQUFDLE1BQXhELENBQVQ7QUFDRCxHOztVQUVELGEsR0FBQSx1QkFBYyxVQUFkLEVBQWtDLFFBQWxDLEVBQXlEO0FBQ3ZELFFBQUksUUFBUSxHQUFHLEtBQUssUUFBTCxDQUFjLFFBQWQsYUFBaUMsVUFBakMsRUFBK0MsUUFBUSxDQUFDLE1BQXhELENBQWY7QUFDQSxXQUFPO0FBQUUsTUFBQSxNQUFNLEVBQUUsUUFBVjtBQUFvQixNQUFBLElBQUksRUFBRTtBQUExQixLQUFQO0FBQ0QsRzs7VUFFRCxpQixHQUFBLDJCQUFrQixXQUFsQixFQUF1QyxRQUF2QyxFQUE4RDtBQUM1RCxVQUFNLElBQUksS0FBSixDQUFVLHlCQUFWLENBQU47QUFDRCxHOztVQUVELGMsR0FBQSx3QkFBZSxXQUFmLEVBQW9DLFFBQXBDLEVBQTJEO0FBQ3pELFVBQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTjtBQUNELEc7O1VBRUQsa0IsR0FBQSw0QkFBbUIsWUFBbkIsRUFBeUMsUUFBekMsRUFBZ0U7QUFDOUQsVUFBTSxJQUFJLEtBQUosQ0FBVSx5QkFBVixDQUFOO0FBQ0QsRzs7VUFFRCxlLEdBQUEseUJBQWdCLFlBQWhCLEVBQXNDLFFBQXRDLEVBQTZEO0FBQzNELFVBQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTjtBQUNELEc7Ozs7O0FBR0gsU0FBUyxRQUFULENBQTZDLE9BQTdDLEVBQStFO0FBQUEsTUFBbEMsT0FBa0M7QUFBbEMsSUFBQSxPQUFrQyxHQUFGLEVBQUU7QUFBQTs7QUFDN0UsRUFBQSxPQUFPLENBQUMsT0FBUixHQUFrQixPQUFPLENBQUMsT0FBUixJQUFtQixVQUFyQztBQUNBLEVBQUEsT0FBTyxDQUFDLE1BQVIsR0FBaUIsT0FBTyxDQUFDLE1BQVIsSUFBa0Isa0JBQW5DO0FBQ0EsRUFBQSxPQUFPLENBQUMsZ0JBQVIsR0FBMkIsT0FBTyxDQUFDLGdCQUFSLElBQTRCLGdCQUF2RDtBQUNBLEVBQUEsT0FBTyxDQUFDLGdCQUFSLEdBQ0UsT0FBTyxDQUFDLGdCQUFSLElBQTZCLGVBRC9CO0FBR0EsU0FBTyxJQUFJLFVBQUosQ0FBZSxPQUFPLENBQUMsT0FBdkIsRUFBZ0MsT0FBaEMsQ0FBUDtBQUNEOztBQUVELFNBQVMsUUFBVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZXNvbHZlciwgeyBCYXNpY01vZHVsZVJlZ2lzdHJ5LCBSZXNvbHZlckNvbmZpZ3VyYXRpb24gfSBmcm9tICdAZ2xpbW1lci9yZXNvbHZlcic7XG5pbXBvcnQgeyBEaWN0LCBNb2R1bGVMb2NhdG9yLCBUZW1wbGF0ZUxvY2F0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCBkZWZhdWx0UmVzb2x2ZXJDb25maWd1cmF0aW9uIGZyb20gJy4vZGVmYXVsdC1yZXNvbHZlci1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IHByZWNvbXBpbGUgfSBmcm9tICcuL2NvbXBpbGVyJztcbmltcG9ydCBBcHBsaWNhdGlvbiwge1xuICBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yLFxuICBCeXRlY29kZUxvYWRlcixcbiAgRE9NQnVpbGRlcixcbiAgTG9hZGVyLFxuICBSdW50aW1lQ29tcGlsZXJMb2FkZXIsXG4gIFN5bmNSZW5kZXJlcixcbiAgTW9kdWxlVHlwZXMsXG4gIElOVEVSTkFMX0RZTkFNSUNfU0NPUEVcbn0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFuYWdlciwgQ0FQQUJJTElUSUVTIH0gZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgQnVuZGxlQ29tcGlsZXIsIENvbXBpbGVyRGVsZWdhdGUgYXMgSUNvbXBpbGVyRGVsZWdhdGUgfSBmcm9tICdAZ2xpbW1lci9idW5kbGUtY29tcGlsZXInO1xuaW1wb3J0IHsgYnVpbGRBY3Rpb24sIG1haW5UZW1wbGF0ZSB9IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGUgfSBmcm9tICdAZ2xpbW1lci9vcGNvZGUtY29tcGlsZXInO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi9zcmMvbG9hZGVycy9ieXRlY29kZS9sb2FkZXInO1xuaW1wb3J0IHsgU2ltcGxlRG9jdW1lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU1NSQXBwbGljYXRpb24gfSBmcm9tICdAZ2xpbW1lci9zc3InO1xuXG5pbXBvcnQgZGlkUmVuZGVyIGZyb20gJy4vZGlkLXJlbmRlcic7XG5pbXBvcnQgSFRNTFNlcmlhbGl6ZXIgZnJvbSAnQHNpbXBsZS1kb20vc2VyaWFsaXplcic7XG5pbXBvcnQgeyBSZW5kZXJlciB9IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uL3NyYy9iYXNlLWFwcGxpY2F0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBcHBCdWlsZGVyT3B0aW9uczxUPiB7XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIGxvYWRlcj86IHN0cmluZztcbiAgQXBwbGljYXRpb25DbGFzcz86IEFwcGxpY2F0aW9uQ29uc3RydWN0b3I8VD47XG4gIENvbXBvbmVudE1hbmFnZXI/OiBhbnk7IC8vIFRPRE8gLSB0eXBpbmdcbiAgcmVzb2x2ZXJDb25maWd1cmF0aW9uPzogUmVzb2x2ZXJDb25maWd1cmF0aW9uO1xuICBkb2N1bWVudD86IFNpbXBsZURvY3VtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEZhY3Rvcnkge31cblxuZXhwb3J0IGNsYXNzIFRlc3RBcHBsaWNhdGlvbiBleHRlbmRzIEFwcGxpY2F0aW9uIHtcbiAgcm9vdEVsZW1lbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQnVpbGRlclRlbXBsYXRlTWV0YSB7XG4gIHNwZWNpZmllcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSGVscGVyRnVuY3Rpb24gZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIGlzRmFjdG9yeT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBUZXN0U1NSQXBwbGljYXRpb25PcHRpb25zIHtcbiAgcm9vdE5hbWU/OiBzdHJpbmc7XG4gIHJlc29sdmVyPzogUmVzb2x2ZXI7XG4gIGxvYWRlcj86IExvYWRlcjtcbiAgcmVuZGVyZXI/OiBSZW5kZXJlcjtcbiAgc2VyaWFsaXplcj86IEhUTUxTZXJpYWxpemVyO1xuICBbSU5URVJOQUxfRFlOQU1JQ19TQ09QRV0/OiBEaWN0PHVua25vd24+O1xufVxuXG5mdW5jdGlvbiBsb2NhdG9yRm9yKG1vZHVsZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBUZW1wbGF0ZUxvY2F0b3I8TW9kdWxlTG9jYXRvcj4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0ZW1wbGF0ZScsXG4gICAgbW9kdWxlLFxuICAgIG5hbWUsXG4gICAgbWV0YToge1xuICAgICAgbW9kdWxlLFxuICAgICAgbmFtZSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQXBwQnVpbGRlcjxUIGV4dGVuZHMgVGVzdEFwcGxpY2F0aW9uPiB7XG4gIHJvb3ROYW1lOiBzdHJpbmc7XG4gIG1vZHVsZXM6IERpY3Q8dW5rbm93bj4gPSB7fTtcbiAgdGVtcGxhdGVzOiBEaWN0PHN0cmluZz4gPSB7fTtcbiAgb3B0aW9uczogQXBwQnVpbGRlck9wdGlvbnM8VD47XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPikge1xuICAgIHRoaXMucm9vdE5hbWUgPSBuYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5tb2R1bGVzW1xuICAgICAgYGNvbXBvbmVudC1tYW5hZ2VyOi8ke3RoaXMucm9vdE5hbWV9L2NvbXBvbmVudC1tYW5hZ2Vycy9tYWluYFxuICAgIF0gPSB0aGlzLm9wdGlvbnMuQ29tcG9uZW50TWFuYWdlcjtcbiAgICB0aGlzLnRlbXBsYXRlKCdNYWluJywgJzxkaXYgLz4nKTtcbiAgICB0aGlzLmhlbHBlcignYWN0aW9uJywgYnVpbGRBY3Rpb24sIHRydWUpO1xuICB9XG5cbiAgdGVtcGxhdGUobmFtZTogc3RyaW5nLCB0ZW1wbGF0ZTogc3RyaW5nKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZS5jaGFyQXQoMCkgPT09IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCksXG4gICAgICAndGVtcGxhdGUgbmFtZXMgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXInXG4gICAgKTtcblxuICAgIGxldCBzcGVjaWZpZXIgPSBgdGVtcGxhdGU6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IHByZWNvbXBpbGUodGVtcGxhdGUsIHsgbWV0YTogeyBzcGVjaWZpZXIgfSB9KTtcbiAgICB0aGlzLnRlbXBsYXRlc1tzcGVjaWZpZXJdID0gdGVtcGxhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb21wb25lbnQobmFtZTogc3RyaW5nLCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5KSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGBjb21wb25lbnQ6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IGNvbXBvbmVudEZhY3Rvcnk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBoZWxwZXIobmFtZTogc3RyaW5nLCBoZWxwZXJGdW5jOiBIZWxwZXJGdW5jdGlvbiwgaXNGYWN0b3J5ID0gZmFsc2UpIHtcbiAgICBsZXQgc3BlY2lmaWVyID0gYGhlbHBlcjovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIGhlbHBlckZ1bmMuaXNGYWN0b3J5ID0gaXNGYWN0b3J5O1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gaGVscGVyRnVuYztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlc29sdmVyKCk6IFJlc29sdmVyIHtcbiAgICBsZXQgcmVzb2x2ZXJDb25maWd1cmF0aW9uID0gdGhpcy5vcHRpb25zLnJlc29sdmVyQ29uZmlndXJhdGlvbiB8fCBkZWZhdWx0UmVzb2x2ZXJDb25maWd1cmF0aW9uO1xuICAgIHJlc29sdmVyQ29uZmlndXJhdGlvbi5hcHAgPSByZXNvbHZlckNvbmZpZ3VyYXRpb24uYXBwIHx8IHtcbiAgICAgIG5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICB9O1xuXG4gICAgbGV0IHJlZ2lzdHJ5ID0gbmV3IEJhc2ljTW9kdWxlUmVnaXN0cnkodGhpcy5tb2R1bGVzKTtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVyKHJlc29sdmVyQ29uZmlndXJhdGlvbiwgcmVnaXN0cnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk6IExvYWRlciB7XG4gICAgcmV0dXJuIG5ldyBSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEJ5dGVjb2RlTG9hZGVyKHJlc29sdmVyOiBSZXNvbHZlcikge1xuICAgIGxldCBkZWxlZ2F0ZSA9IG5ldyBDb21waWxlckRlbGVnYXRlKHJlc29sdmVyKTtcbiAgICBsZXQgY29tcGlsZXIgPSBuZXcgQnVuZGxlQ29tcGlsZXIoZGVsZWdhdGUpO1xuXG4gICAgbGV0IG1haW5Mb2NhdG9yID0gbG9jYXRvckZvcigndGVtcGxhdGU6bWFpblRlbXBsYXRlJywgJ2RlZmF1bHQnKTtcbiAgICBtYWluTG9jYXRvci5tZXRhLm1vZHVsZSA9ICd0ZW1wbGF0ZTptYWluVGVtcGxhdGUnO1xuXG4gICAgbGV0IGJsb2NrID0gSlNPTi5wYXJzZShtYWluVGVtcGxhdGUuYmxvY2spO1xuICAgIGxldCBjb21waWxhYmxlVGVtcGxhdGUgPSBjb21waWxhYmxlKHtcbiAgICAgIGJsb2NrLFxuICAgICAgcmVmZXJyZXI6IG1haW5Mb2NhdG9yLm1ldGEsXG4gICAgfSk7XG5cbiAgICBjb21waWxlci5hZGRDb21waWxhYmxlVGVtcGxhdGUobWFpbkxvY2F0b3IsIGNvbXBpbGFibGVUZW1wbGF0ZSk7XG5cbiAgICBmb3IgKGxldCBtb2R1bGUgaW4gdGhpcy50ZW1wbGF0ZXMpIHtcbiAgICAgIGNvbXBpbGVyLmFkZFRlbXBsYXRlU291cmNlKGxvY2F0b3JGb3IobW9kdWxlLCAnZGVmYXVsdCcpLCB0aGlzLnRlbXBsYXRlc1ttb2R1bGVdKTtcbiAgICB9XG5cbiAgICBsZXQgeyBoZWFwLCBwb29sLCB0YWJsZSB9ID0gY29tcGlsZXIuY29tcGlsZSgpO1xuXG4gICAgbGV0IHJlc29sdmVyVGFibGU6IHVua25vd25bXSA9IFtdO1xuXG4gICAgbGV0IG1ldGE6IERpY3Q8TWV0YWRhdGE+ID0ge307XG5cbiAgICB0YWJsZS52bUhhbmRsZUJ5TW9kdWxlTG9jYXRvci5mb3JFYWNoKCh2bUhhbmRsZSwgbG9jYXRvcikgPT4ge1xuICAgICAgbGV0IGhhbmRsZSA9IHRhYmxlLmJ5TW9kdWxlTG9jYXRvci5nZXQobG9jYXRvcik7XG4gICAgICBsZXQgdGVtcGxhdGUgPSBjb21waWxlci5nZXRUZW1wbGF0ZShsb2NhdG9yKTtcblxuICAgICAgbWV0YVtsb2NhdG9yLm1vZHVsZV0gPSB7XG4gICAgICAgIHY6IHZtSGFuZGxlLFxuICAgICAgICBoOiBoYW5kbGUsXG4gICAgICAgIHRhYmxlOiB0ZW1wbGF0ZS5zeW1ib2xUYWJsZSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0YWJsZS5ieUhhbmRsZS5mb3JFYWNoKChsb2NhdG9yLCBoYW5kbGUpID0+IHtcbiAgICAgIGxldCBtb2R1bGUgPSBsb2NhdG9yLm1vZHVsZS5yZXBsYWNlKCd0ZW1wbGF0ZTovJywgJ2NvbXBvbmVudDovJyk7XG4gICAgICBpZiAodGhpcy5tb2R1bGVzW21vZHVsZV0pIHtcbiAgICAgICAgaWYgKG1vZHVsZS5pbmRleE9mKCdoZWxwZXI6JykgPT09IDApIHtcbiAgICAgICAgICBjb25zdCBtb2R1bGVUeXBlID0gKHRoaXMubW9kdWxlc1ttb2R1bGVdIGFzIEhlbHBlckZ1bmN0aW9uKS5pc0ZhY3RvcnkgPyBNb2R1bGVUeXBlcy5IRUxQRVJfRkFDVE9SWSA6IE1vZHVsZVR5cGVzLkhFTFBFUjtcbiAgICAgICAgICByZXNvbHZlclRhYmxlW2hhbmRsZV0gPSBbbW9kdWxlVHlwZSwgdGhpcy5tb2R1bGVzW21vZHVsZV1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmVyVGFibGVbaGFuZGxlXSA9IHRoaXMubW9kdWxlc1ttb2R1bGVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgYnl0ZWNvZGUgPSBoZWFwLmJ1ZmZlcjtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIHByZWZpeDogJycsXG4gICAgICBtYWluRW50cnk6IHRhYmxlLnZtSGFuZGxlQnlNb2R1bGVMb2NhdG9yLmdldChtYWluTG9jYXRvciksXG4gICAgICBwb29sLFxuICAgICAgdGFibGU6IHJlc29sdmVyVGFibGUsXG4gICAgICBtZXRhLFxuICAgICAgaGVhcDoge1xuICAgICAgICB0YWJsZTogaGVhcC50YWJsZSxcbiAgICAgICAgaGFuZGxlOiBoZWFwLmhhbmRsZSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQnl0ZWNvZGVMb2FkZXIoeyBieXRlY29kZSwgZGF0YSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZExvYWRlcihyZXNvbHZlcik6IExvYWRlciB7XG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnMubG9hZGVyKSB7XG4gICAgICBjYXNlICdydW50aW1lLWNvbXBpbGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTtcbiAgICAgIGNhc2UgJ2J5dGVjb2RlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRCeXRlY29kZUxvYWRlcihyZXNvbHZlcik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBsb2FkZXIgJHt0aGlzLm9wdGlvbnMubG9hZGVyfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlclRvU3RyaW5nKGNvbXBvbmVudE5hbWU6IHN0cmluZywgZGF0YTogRGljdDx1bmtub3duPiwgb3B0aW9ucz86IFRlc3RTU1JBcHBsaWNhdGlvbk9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5idWlsZFJlc29sdmVyKCk7XG4gICAgbGV0IGxvYWRlciA9IHRoaXMuYnVpbGRMb2FkZXIocmVzb2x2ZXIpO1xuXG4gICAgcmV0dXJuIFNTUkFwcGxpY2F0aW9uLnJlbmRlclRvU3RyaW5nKGNvbXBvbmVudE5hbWUsIGRhdGEsIHtcbiAgICAgIHJvb3ROYW1lOiB0aGlzLnJvb3ROYW1lLFxuICAgICAgcmVzb2x2ZXIsXG4gICAgICBsb2FkZXIsXG4gICAgICByZW5kZXJlcjogbmV3IFN5bmNSZW5kZXJlcigpLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYm9vdCgpOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgcmVzb2x2ZXIgPSB0aGlzLmJ1aWxkUmVzb2x2ZXIoKTtcbiAgICBsZXQgbG9hZGVyOiBMb2FkZXIgPSB0aGlzLmJ1aWxkTG9hZGVyKHJlc29sdmVyKTtcblxuICAgIGxldCBkb2M6IERvY3VtZW50ID0gKHRoaXMub3B0aW9ucy5kb2N1bWVudCBhcyBEb2N1bWVudCkgfHwgZG9jdW1lbnQ7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2MuYm9keTtcbiAgICBsZXQgYnVpbGRlciA9IG5ldyBET01CdWlsZGVyKHsgZWxlbWVudCB9KTtcbiAgICBsZXQgcmVuZGVyZXIgPSBuZXcgU3luY1JlbmRlcmVyKCk7XG5cbiAgICBsZXQgYXBwID0gbmV3IHRoaXMub3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzKHtcbiAgICAgIHJlc29sdmVyLFxuICAgICAgYnVpbGRlcixcbiAgICAgIGxvYWRlcixcbiAgICAgIHJlbmRlcmVyLFxuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICBkb2N1bWVudDogdGhpcy5vcHRpb25zLmRvY3VtZW50LFxuICAgIH0pO1xuXG4gICAgbGV0IHJvb3RFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGFwcC5yb290RWxlbWVudCA9IHJvb3RFbGVtZW50O1xuICAgIGFwcC5yZW5kZXJDb21wb25lbnQoJ01haW4nLCByb290RWxlbWVudCk7XG4gICAgYXBwLmJvb3QoKTtcblxuICAgIGF3YWl0IGRpZFJlbmRlcihhcHApO1xuXG4gICAgcmV0dXJuIGFwcDtcbiAgfVxufVxuXG5jbGFzcyBDb21waWxlckRlbGVnYXRlIGltcGxlbWVudHMgSUNvbXBpbGVyRGVsZWdhdGU8TW9kdWxlTG9jYXRvcj4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVzb2x2ZXI6IFJlc29sdmVyKSB7fVxuXG4gIGhhc0NvbXBvbmVudEluU2NvcGUobmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYHRlbXBsYXRlOiR7bmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICB9XG5cbiAgcmVzb2x2ZUNvbXBvbmVudChuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgbGV0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlci5pZGVudGlmeShgdGVtcGxhdGU6JHtuYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gICAgcmV0dXJuIHsgbW9kdWxlOiByZXNvbHZlZCwgbmFtZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICBnZXRDb21wb25lbnRDYXBhYmlsaXRpZXMoKSB7XG4gICAgcmV0dXJuIENBUEFCSUxJVElFUztcbiAgfVxuXG4gIGhhc0hlbHBlckluU2NvcGUoaGVscGVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYGhlbHBlcjoke2hlbHBlck5hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgfVxuXG4gIHJlc29sdmVIZWxwZXIoaGVscGVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIGxldCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYGhlbHBlcjoke2hlbHBlck5hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgICByZXR1cm4geyBtb2R1bGU6IHJlc29sdmVkLCBuYW1lOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIGhhc1BhcnRpYWxJblNjb3BlKHBhcnRpYWxOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcmVzb2x2ZVBhcnRpYWwocGFydGlhbE5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBoYXNNb2RpZmllckluU2NvcGUobW9kaWZpZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcmVzb2x2ZU1vZGlmaWVyKG1vZGlmaWVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEFwcDxUIGV4dGVuZHMgVGVzdEFwcGxpY2F0aW9uPihvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPiA9IHt9KTogQXBwQnVpbGRlcjxUPiB7XG4gIG9wdGlvbnMuYXBwTmFtZSA9IG9wdGlvbnMuYXBwTmFtZSB8fCAndGVzdC1hcHAnO1xuICBvcHRpb25zLmxvYWRlciA9IG9wdGlvbnMubG9hZGVyIHx8ICdydW50aW1lLWNvbXBpbGVyJztcbiAgb3B0aW9ucy5Db21wb25lbnRNYW5hZ2VyID0gb3B0aW9ucy5Db21wb25lbnRNYW5hZ2VyIHx8IENvbXBvbmVudE1hbmFnZXI7XG4gIG9wdGlvbnMuQXBwbGljYXRpb25DbGFzcyA9XG4gICAgb3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzIHx8IChUZXN0QXBwbGljYXRpb24gYXMgQXBwbGljYXRpb25Db25zdHJ1Y3RvcjxUPik7XG5cbiAgcmV0dXJuIG5ldyBBcHBCdWlsZGVyKG9wdGlvbnMuYXBwTmFtZSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB7IGJ1aWxkQXBwIH07XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2FwcGxpY2F0aW9uLXRlc3QtaGVscGVycy9zcmMvYXBwLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPLFFBQVAsSUFBbUIsbUJBQW5CLFFBQXFFLG1CQUFyRTtBQUVBLE9BQU8sNEJBQVAsTUFBeUMsa0NBQXpDO0FBQ0EsU0FBUyxVQUFULFFBQTJCLFlBQTNCO0FBQ0EsT0FBTyxXQUFQLElBRUUsY0FGRixFQUdFLFVBSEYsRUFLRSxxQkFMRixFQU1FLFlBTkYsRUFRRSxzQkFSRixRQVNPLHNCQVRQO0FBVUEsU0FBUyxNQUFULFFBQXVCLGVBQXZCO0FBQ0EsU0FBUyxjQUFULFFBQXNFLDBCQUF0RTtBQUNBLFNBQVMsV0FBVCxFQUFzQixZQUF0QixRQUFzRSxzQkFBdEU7QUFDQSxTQUFTLFVBQVQsUUFBMkIsMEJBQTNCO0FBR0EsU0FBUyxjQUFULFFBQStCLGNBQS9CO0FBRUEsT0FBTyxTQUFQLE1BQXNCLGNBQXRCO0FBYUEsV0FBYSxlQUFiO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLEVBQXFDLFdBQXJDOztBQXFCQSxTQUFTLFVBQVQsQ0FBb0IsTUFBcEIsRUFBb0MsSUFBcEMsRUFBZ0Q7QUFDOUMsU0FBTztBQUNMLElBQUEsSUFBSSxFQUFFLFVBREQ7QUFFTCxJQUFBLE1BQU0sRUFBTixNQUZLO0FBR0wsSUFBQSxJQUFJLEVBQUosSUFISztBQUlMLElBQUEsSUFBSSxFQUFFO0FBQ0osTUFBQSxNQUFNLEVBQU4sTUFESTtBQUVKLE1BQUEsSUFBSSxFQUFKO0FBRkk7QUFKRCxHQUFQO0FBU0Q7O0FBRUQsV0FBYSxVQUFiO0FBQUE7QUFBQTtBQU1FLHNCQUFZLElBQVosRUFBMEIsT0FBMUIsRUFBdUQ7QUFKdkQsU0FBQSxPQUFBLEdBQXlCLEVBQXpCO0FBQ0EsU0FBQSxTQUFBLEdBQTBCLEVBQTFCO0FBSUUsU0FBSyxRQUFM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SUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTjtBQUNELEc7Ozs7O0FBR0gsU0FBUyxRQUFULENBQTZDLE9BQTdDLEVBQStFO0FBQUEsTUFBbEMsT0FBa0M7QUFBbEMsSUFBQSxPQUFrQyxHQUFGLEVBQUU7QUFBQTs7QUFDN0UsRUFBQSxPQUFPLENBQUMsT0FBUixHQUFrQixPQUFPLENBQUMsT0FBUixJQUFtQixVQUFyQztBQUNBLEVBQUEsT0FBTyxDQUFDLE1BQVIsR0FBaUIsT0FBTyxDQUFDLE1BQVIsSUFBa0Isa0JBQW5DO0FBQ0EsRUFBQSxPQUFPLENBQUMsZ0JBQVIsR0FDRSxPQUFPLENBQUMsZ0JBQVIsSUFBNkIsZUFEL0I7QUFHQSxTQUFPLElBQUksVUFBSixDQUFlLE9BQU8sQ0FBQyxPQUF2QixFQUFnQyxPQUFoQyxDQUFQO0FBQ0Q7O0FBRUQsU0FBUyxRQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlc29sdmVyLCB7IEJhc2ljTW9kdWxlUmVnaXN0cnksIFJlc29sdmVyQ29uZmlndXJhdGlvbiB9IGZyb20gJ0BnbGltbWVyL3Jlc29sdmVyJztcbmltcG9ydCB7IERpY3QsIE1vZHVsZUxvY2F0b3IsIFRlbXBsYXRlTG9jYXRvciwgQ29tcG9uZW50Q2FwYWJpbGl0aWVzIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgZGVmYXVsdFJlc29sdmVyQ29uZmlndXJhdGlvbiBmcm9tICcuL2RlZmF1bHQtcmVzb2x2ZXItY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBwcmVjb21waWxlIH0gZnJvbSAnLi9jb21waWxlcic7XG5pbXBvcnQgQXBwbGljYXRpb24sIHtcbiAgQXBwbGljYXRpb25Db25zdHJ1Y3RvcixcbiAgQnl0ZWNvZGVMb2FkZXIsXG4gIERPTUJ1aWxkZXIsXG4gIExvYWRlcixcbiAgUnVudGltZUNvbXBpbGVyTG9hZGVyLFxuICBTeW5jUmVuZGVyZXIsXG4gIE1vZHVsZVR5cGVzLFxuICBJTlRFUk5BTF9EWU5BTUlDX1NDT1BFXG59IGZyb20gJ0BnbGltbWVyL2FwcGxpY2F0aW9uJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgQnVuZGxlQ29tcGlsZXIsIENvbXBpbGVyRGVsZWdhdGUgYXMgSUNvbXBpbGVyRGVsZWdhdGUgfSBmcm9tICdAZ2xpbW1lci9idW5kbGUtY29tcGlsZXInO1xuaW1wb3J0IHsgYnVpbGRBY3Rpb24sIG1haW5UZW1wbGF0ZSwgUmVuZGVyZXIsIEJ5dGVjb2RlTWV0YWRhdGEgfSBmcm9tICdAZ2xpbW1lci9hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBjb21waWxhYmxlIH0gZnJvbSAnQGdsaW1tZXIvb3Bjb2RlLWNvbXBpbGVyJztcbmltcG9ydCB7IFNpbXBsZURvY3VtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCBIVE1MU2VyaWFsaXplciBmcm9tICdAc2ltcGxlLWRvbS9zZXJpYWxpemVyJztcbmltcG9ydCB7IFNTUkFwcGxpY2F0aW9uIH0gZnJvbSAnQGdsaW1tZXIvc3NyJztcblxuaW1wb3J0IGRpZFJlbmRlciBmcm9tICcuL2RpZC1yZW5kZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcEJ1aWxkZXJPcHRpb25zPFQ+IHtcbiAgYXBwTmFtZT86IHN0cmluZztcbiAgbG9hZGVyPzogc3RyaW5nO1xuICBBcHBsaWNhdGlvbkNsYXNzPzogQXBwbGljYXRpb25Db25zdHJ1Y3RvcjxUPjtcbiAgQ29tcG9uZW50TWFuYWdlcj86IGFueTsgLy8gVE9ETyAtIHR5cGluZ1xuICByZXNvbHZlckNvbmZpZ3VyYXRpb24/OiBSZXNvbHZlckNvbmZpZ3VyYXRpb247XG4gIGRvY3VtZW50PzogU2ltcGxlRG9jdW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RmFjdG9yeSB7fVxuXG5leHBvcnQgY2xhc3MgVGVzdEFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb24ge1xuICByb290RWxlbWVudDogRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBCdWlsZGVyVGVtcGxhdGVNZXRhIHtcbiAgc3BlY2lmaWVyOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBIZWxwZXJGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcbiAgaXNGYWN0b3J5PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFRlc3RTU1JBcHBsaWNhdGlvbk9wdGlvbnMge1xuICByb290TmFtZT86IHN0cmluZztcbiAgcmVzb2x2ZXI/OiBSZXNvbHZlcjtcbiAgbG9hZGVyPzogTG9hZGVyO1xuICByZW5kZXJlcj86IFJlbmRlcmVyO1xuICBzZXJpYWxpemVyPzogSFRNTFNlcmlhbGl6ZXI7XG4gIFtJTlRFUk5BTF9EWU5BTUlDX1NDT1BFXT86IERpY3Q8dW5rbm93bj47XG59XG5cbmZ1bmN0aW9uIGxvY2F0b3JGb3IobW9kdWxlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFRlbXBsYXRlTG9jYXRvcjxNb2R1bGVMb2NhdG9yPiB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ3RlbXBsYXRlJyxcbiAgICBtb2R1bGUsXG4gICAgbmFtZSxcbiAgICBtZXRhOiB7XG4gICAgICBtb2R1bGUsXG4gICAgICBuYW1lLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBCdWlsZGVyPFQgZXh0ZW5kcyBUZXN0QXBwbGljYXRpb24+IHtcbiAgcm9vdE5hbWU6IHN0cmluZztcbiAgbW9kdWxlczogRGljdDx1bmtub3duPiA9IHt9O1xuICB0ZW1wbGF0ZXM6IERpY3Q8c3RyaW5nPiA9IHt9O1xuICBvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPjtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEFwcEJ1aWxkZXJPcHRpb25zPFQ+KSB7XG4gICAgdGhpcy5yb290TmFtZSA9IG5hbWU7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnRlbXBsYXRlKCdNYWluJywgJzxkaXYgLz4nKTtcbiAgICB0aGlzLmhlbHBlcignYWN0aW9uJywgYnVpbGRBY3Rpb24sIHRydWUpO1xuICB9XG5cbiAgdGVtcGxhdGUobmFtZTogc3RyaW5nLCB0ZW1wbGF0ZTogc3RyaW5nKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgbmFtZS5jaGFyQXQoMCkgPT09IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCksXG4gICAgICAndGVtcGxhdGUgbmFtZXMgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXInXG4gICAgKTtcblxuICAgIGxldCBzcGVjaWZpZXIgPSBgdGVtcGxhdGU6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IHByZWNvbXBpbGUodGVtcGxhdGUsIHsgbWV0YTogeyBzcGVjaWZpZXIgfSB9KTtcbiAgICB0aGlzLnRlbXBsYXRlc1tzcGVjaWZpZXJdID0gdGVtcGxhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb21wb25lbnQobmFtZTogc3RyaW5nLCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5KSB7XG4gICAgbGV0IHNwZWNpZmllciA9IGBjb21wb25lbnQ6LyR7dGhpcy5yb290TmFtZX0vY29tcG9uZW50cy8ke25hbWV9YDtcbiAgICB0aGlzLm1vZHVsZXNbc3BlY2lmaWVyXSA9IGNvbXBvbmVudEZhY3Rvcnk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBoZWxwZXIobmFtZTogc3RyaW5nLCBoZWxwZXJGdW5jOiBIZWxwZXJGdW5jdGlvbiwgaXNGYWN0b3J5ID0gZmFsc2UpIHtcbiAgICBsZXQgc3BlY2lmaWVyID0gYGhlbHBlcjovJHt0aGlzLnJvb3ROYW1lfS9jb21wb25lbnRzLyR7bmFtZX1gO1xuICAgIGhlbHBlckZ1bmMuaXNGYWN0b3J5ID0gaXNGYWN0b3J5O1xuICAgIHRoaXMubW9kdWxlc1tzcGVjaWZpZXJdID0gaGVscGVyRnVuYztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlc29sdmVyKCk6IFJlc29sdmVyIHtcbiAgICBsZXQgcmVzb2x2ZXJDb25maWd1cmF0aW9uID0gdGhpcy5vcHRpb25zLnJlc29sdmVyQ29uZmlndXJhdGlvbiB8fCBkZWZhdWx0UmVzb2x2ZXJDb25maWd1cmF0aW9uO1xuICAgIHJlc29sdmVyQ29uZmlndXJhdGlvbi5hcHAgPSByZXNvbHZlckNvbmZpZ3VyYXRpb24uYXBwIHx8IHtcbiAgICAgIG5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICB9O1xuXG4gICAgbGV0IHJlZ2lzdHJ5ID0gbmV3IEJhc2ljTW9kdWxlUmVnaXN0cnkodGhpcy5tb2R1bGVzKTtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVyKHJlc29sdmVyQ29uZmlndXJhdGlvbiwgcmVnaXN0cnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUnVudGltZUNvbXBpbGVyTG9hZGVyKCk6IExvYWRlciB7XG4gICAgcmV0dXJuIG5ldyBSdW50aW1lQ29tcGlsZXJMb2FkZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEJ5dGVjb2RlTG9hZGVyKHJlc29sdmVyOiBSZXNvbHZlcikge1xuICAgIGxldCBkZWxlZ2F0ZSA9IG5ldyBDb21waWxlckRlbGVnYXRlKHJlc29sdmVyKTtcbiAgICBsZXQgY29tcGlsZXIgPSBuZXcgQnVuZGxlQ29tcGlsZXIoZGVsZWdhdGUpO1xuXG4gICAgbGV0IG1haW5Mb2NhdG9yID0gbG9jYXRvckZvcigndGVtcGxhdGU6bWFpblRlbXBsYXRlJywgJ2RlZmF1bHQnKTtcbiAgICBtYWluTG9jYXRvci5tZXRhLm1vZHVsZSA9ICd0ZW1wbGF0ZTptYWluVGVtcGxhdGUnO1xuXG4gICAgbGV0IGJsb2NrID0gSlNPTi5wYXJzZShtYWluVGVtcGxhdGUuYmxvY2spO1xuICAgIGxldCBjb21waWxhYmxlVGVtcGxhdGUgPSBjb21waWxhYmxlKHtcbiAgICAgIGJsb2NrLFxuICAgICAgcmVmZXJyZXI6IG1haW5Mb2NhdG9yLm1ldGEsXG4gICAgfSk7XG5cbiAgICBjb21waWxlci5hZGRDb21waWxhYmxlVGVtcGxhdGUobWFpbkxvY2F0b3IsIGNvbXBpbGFibGVUZW1wbGF0ZSk7XG5cbiAgICBmb3IgKGxldCBtb2R1bGUgaW4gdGhpcy50ZW1wbGF0ZXMpIHtcbiAgICAgIGNvbXBpbGVyLmFkZFRlbXBsYXRlU291cmNlKGxvY2F0b3JGb3IobW9kdWxlLCAnZGVmYXVsdCcpLCB0aGlzLnRlbXBsYXRlc1ttb2R1bGVdKTtcbiAgICB9XG5cbiAgICBsZXQgeyBoZWFwLCBwb29sLCB0YWJsZSB9ID0gY29tcGlsZXIuY29tcGlsZSgpO1xuXG4gICAgbGV0IHJlc29sdmVyVGFibGU6IHVua25vd25bXSA9IFtdO1xuXG4gICAgbGV0IG1ldGE6IERpY3Q8Qnl0ZWNvZGVNZXRhZGF0YT4gPSB7fTtcblxuICAgIHRhYmxlLnZtSGFuZGxlQnlNb2R1bGVMb2NhdG9yLmZvckVhY2goKHZtSGFuZGxlLCBsb2NhdG9yKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlID0gdGFibGUuYnlNb2R1bGVMb2NhdG9yLmdldChsb2NhdG9yKTtcbiAgICAgIGxldCB0ZW1wbGF0ZSA9IGNvbXBpbGVyLmdldFRlbXBsYXRlKGxvY2F0b3IpO1xuXG4gICAgICBtZXRhW2xvY2F0b3IubW9kdWxlXSA9IHtcbiAgICAgICAgdjogdm1IYW5kbGUsXG4gICAgICAgIGg6IGhhbmRsZSxcbiAgICAgICAgc1Q6IHRlbXBsYXRlLnN5bWJvbFRhYmxlLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRhYmxlLmJ5SGFuZGxlLmZvckVhY2goKGxvY2F0b3IsIGhhbmRsZSkgPT4ge1xuICAgICAgbGV0IG1vZHVsZSA9IGxvY2F0b3IubW9kdWxlLnJlcGxhY2UoJ3RlbXBsYXRlOi8nLCAnY29tcG9uZW50Oi8nKTtcbiAgICAgIGlmICh0aGlzLm1vZHVsZXNbbW9kdWxlXSkge1xuICAgICAgICBpZiAobW9kdWxlLmluZGV4T2YoJ2hlbHBlcjonKSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZVR5cGUgPSAodGhpcy5tb2R1bGVzW21vZHVsZV0gYXMgSGVscGVyRnVuY3Rpb24pLmlzRmFjdG9yeSA/IE1vZHVsZVR5cGVzLkhFTFBFUl9GQUNUT1JZIDogTW9kdWxlVHlwZXMuSEVMUEVSO1xuICAgICAgICAgIHJlc29sdmVyVGFibGVbaGFuZGxlXSA9IFttb2R1bGVUeXBlLCB0aGlzLm1vZHVsZXNbbW9kdWxlXV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZXJUYWJsZVtoYW5kbGVdID0gdGhpcy5tb2R1bGVzW21vZHVsZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBieXRlY29kZSA9IGhlYXAuYnVmZmVyO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgcHJlZml4OiAnJyxcbiAgICAgIG1haW5FbnRyeTogdGFibGUudm1IYW5kbGVCeU1vZHVsZUxvY2F0b3IuZ2V0KG1haW5Mb2NhdG9yKSxcbiAgICAgIHBvb2wsXG4gICAgICB0YWJsZTogcmVzb2x2ZXJUYWJsZSxcbiAgICAgIG1ldGEsXG4gICAgICBoZWFwOiB7XG4gICAgICAgIHRhYmxlOiBoZWFwLnRhYmxlLFxuICAgICAgICBoYW5kbGU6IGhlYXAuaGFuZGxlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBCeXRlY29kZUxvYWRlcih7IGJ5dGVjb2RlLCBkYXRhIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkTG9hZGVyKHJlc29sdmVyKTogTG9hZGVyIHtcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5sb2FkZXIpIHtcbiAgICAgIGNhc2UgJ3J1bnRpbWUtY29tcGlsZXInOlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFJ1bnRpbWVDb21waWxlckxvYWRlcigpO1xuICAgICAgY2FzZSAnYnl0ZWNvZGUnOlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZEJ5dGVjb2RlTG9hZGVyKHJlc29sdmVyKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIGxvYWRlciAke3RoaXMub3B0aW9ucy5sb2FkZXJ9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyVG9TdHJpbmcoY29tcG9uZW50TmFtZTogc3RyaW5nLCBkYXRhOiBEaWN0PHVua25vd24+LCBvcHRpb25zPzogVGVzdFNTUkFwcGxpY2F0aW9uT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLmJ1aWxkUmVzb2x2ZXIoKTtcbiAgICBsZXQgbG9hZGVyID0gdGhpcy5idWlsZExvYWRlcihyZXNvbHZlcik7XG5cbiAgICByZXR1cm4gU1NSQXBwbGljYXRpb24ucmVuZGVyVG9TdHJpbmcoY29tcG9uZW50TmFtZSwgZGF0YSwge1xuICAgICAgcm9vdE5hbWU6IHRoaXMucm9vdE5hbWUsXG4gICAgICByZXNvbHZlcixcbiAgICAgIGxvYWRlcixcbiAgICAgIHJlbmRlcmVyOiBuZXcgU3luY1JlbmRlcmVyKCksXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBib290KCk6IFByb21pc2U8VD4ge1xuICAgIGxldCByZXNvbHZlciA9IHRoaXMuYnVpbGRSZXNvbHZlcigpO1xuICAgIGxldCBsb2FkZXI6IExvYWRlciA9IHRoaXMuYnVpbGRMb2FkZXIocmVzb2x2ZXIpO1xuXG4gICAgbGV0IGRvYzogRG9jdW1lbnQgPSAodGhpcy5vcHRpb25zLmRvY3VtZW50IGFzIERvY3VtZW50KSB8fCBkb2N1bWVudDtcbiAgICBsZXQgZWxlbWVudCA9IGRvYy5ib2R5O1xuICAgIGxldCBidWlsZGVyID0gbmV3IERPTUJ1aWxkZXIoeyBlbGVtZW50IH0pO1xuICAgIGxldCByZW5kZXJlciA9IG5ldyBTeW5jUmVuZGVyZXIoKTtcblxuICAgIGxldCBhcHAgPSBuZXcgdGhpcy5vcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3Moe1xuICAgICAgcmVzb2x2ZXIsXG4gICAgICBidWlsZGVyLFxuICAgICAgbG9hZGVyLFxuICAgICAgcmVuZGVyZXIsXG4gICAgICByb290TmFtZTogdGhpcy5yb290TmFtZSxcbiAgICAgIGRvY3VtZW50OiB0aGlzLm9wdGlvbnMuZG9jdW1lbnQsXG4gICAgfSk7XG5cbiAgICBsZXQgcm9vdEVsZW1lbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYXBwLnJvb3RFbGVtZW50ID0gcm9vdEVsZW1lbnQ7XG4gICAgYXBwLnJlbmRlckNvbXBvbmVudCgnTWFpbicsIHJvb3RFbGVtZW50KTtcbiAgICBhcHAuYm9vdCgpO1xuXG4gICAgYXdhaXQgZGlkUmVuZGVyKGFwcCk7XG5cbiAgICByZXR1cm4gYXBwO1xuICB9XG59XG5cbmNvbnN0IENBUEFCSUxJVElFUzogQ29tcG9uZW50Q2FwYWJpbGl0aWVzID0ge1xuICBjcmVhdGVJbnN0YW5jZTogdHJ1ZSxcbiAgZHluYW1pY0xheW91dDogZmFsc2UsXG4gIGR5bmFtaWNUYWc6IGZhbHNlLFxuICB3cmFwcGVkOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiB0cnVlLFxuICBhdHRyaWJ1dGVIb29rOiBmYWxzZSxcbiAgZWxlbWVudEhvb2s6IGZhbHNlLFxuICB1cGRhdGVIb29rOiB0cnVlLFxuICBjcmVhdGVDYWxsZXI6IGZhbHNlLFxuICBkeW5hbWljU2NvcGU6IHRydWUsXG59O1xuXG5jbGFzcyBDb21waWxlckRlbGVnYXRlIGltcGxlbWVudHMgSUNvbXBpbGVyRGVsZWdhdGU8TW9kdWxlTG9jYXRvcj4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVzb2x2ZXI6IFJlc29sdmVyKSB7fVxuXG4gIGhhc0NvbXBvbmVudEluU2NvcGUobmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYHRlbXBsYXRlOiR7bmFtZX1gLCByZWZlcnJlci5tb2R1bGUpO1xuICB9XG5cbiAgcmVzb2x2ZUNvbXBvbmVudChuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogTW9kdWxlTG9jYXRvciB7XG4gICAgbGV0IHJlc29sdmVkID0gdGhpcy5yZXNvbHZlci5pZGVudGlmeShgdGVtcGxhdGU6JHtuYW1lfWAsIHJlZmVycmVyLm1vZHVsZSk7XG4gICAgcmV0dXJuIHsgbW9kdWxlOiByZXNvbHZlZCwgbmFtZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICBnZXRDb21wb25lbnRDYXBhYmlsaXRpZXMoKSB7XG4gICAgcmV0dXJuIENBUEFCSUxJVElFUztcbiAgfVxuXG4gIGhhc0hlbHBlckluU2NvcGUoaGVscGVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYGhlbHBlcjoke2hlbHBlck5hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgfVxuXG4gIHJlc29sdmVIZWxwZXIoaGVscGVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIGxldCByZXNvbHZlZCA9IHRoaXMucmVzb2x2ZXIuaWRlbnRpZnkoYGhlbHBlcjoke2hlbHBlck5hbWV9YCwgcmVmZXJyZXIubW9kdWxlKTtcbiAgICByZXR1cm4geyBtb2R1bGU6IHJlc29sdmVkLCBuYW1lOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIGhhc1BhcnRpYWxJblNjb3BlKHBhcnRpYWxOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcmVzb2x2ZVBhcnRpYWwocGFydGlhbE5hbWU6IHN0cmluZywgcmVmZXJyZXI6IE1vZHVsZUxvY2F0b3IpOiBNb2R1bGVMb2NhdG9yIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBoYXNNb2RpZmllckluU2NvcGUobW9kaWZpZXJOYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBNb2R1bGVMb2NhdG9yKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcmVzb2x2ZU1vZGlmaWVyKG1vZGlmaWVyTmFtZTogc3RyaW5nLCByZWZlcnJlcjogTW9kdWxlTG9jYXRvcik6IE1vZHVsZUxvY2F0b3Ige1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEFwcDxUIGV4dGVuZHMgVGVzdEFwcGxpY2F0aW9uPihvcHRpb25zOiBBcHBCdWlsZGVyT3B0aW9uczxUPiA9IHt9KTogQXBwQnVpbGRlcjxUPiB7XG4gIG9wdGlvbnMuYXBwTmFtZSA9IG9wdGlvbnMuYXBwTmFtZSB8fCAndGVzdC1hcHAnO1xuICBvcHRpb25zLmxvYWRlciA9IG9wdGlvbnMubG9hZGVyIHx8ICdydW50aW1lLWNvbXBpbGVyJztcbiAgb3B0aW9ucy5BcHBsaWNhdGlvbkNsYXNzID1cbiAgICBvcHRpb25zLkFwcGxpY2F0aW9uQ2xhc3MgfHwgKFRlc3RBcHBsaWNhdGlvbiBhcyBBcHBsaWNhdGlvbkNvbnN0cnVjdG9yPFQ+KTtcblxuICByZXR1cm4gbmV3IEFwcEJ1aWxkZXIob3B0aW9ucy5hcHBOYW1lLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgYnVpbGRBcHAgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=
import Resolver, { ResolverConfiguration } from '@glimmer/resolver';
import { Dict } from '@glimmer/interfaces';
import Application, { ApplicationConstructor, BytecodeLoader, Loader, INTERNAL_DYNAMIC_SCOPE } from '@glimmer/application';
import { Renderer } from '@glimmer/application';
import { SimpleDocument } from '@simple-dom/interface';
import HTMLSerializer from '@simple-dom/serializer';
import { Renderer } from '@glimmer/application/src/base-application';
export interface AppBuilderOptions<T> {

@@ -8,0 +8,0 @@ appName?: string;

{
"name": "@glimmer/application-test-helpers",
"version": "0.14.0-alpha.13",
"version": "1.0.0-beta.1",
"description": "Test helpers for developing @glimmer/component and @glimmer/application",

@@ -18,12 +18,12 @@ "contributors": [

"dependencies": {
"@glimmer/compiler": "^0.41.0",
"@glimmer/compiler": "^0.42.0",
"@glimmer/di": "^0.1.9",
"@glimmer/env": "^0.1.7",
"@glimmer/interfaces": "^0.41.0",
"@glimmer/reference": "^0.41.0",
"@glimmer/interfaces": "^0.42.0",
"@glimmer/reference": "^0.42.0",
"@glimmer/resolver": "^0.3.0",
"@glimmer/runtime": "^0.41.0",
"@glimmer/util": "^0.41.0",
"@glimmer/wire-format": "^0.41.0"
"@glimmer/runtime": "^0.42.0",
"@glimmer/util": "^0.42.0",
"@glimmer/wire-format": "^0.42.0"
}
}
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