Socket
Socket
Sign inDemoInstall

@glimmer/manager

Package Overview
Dependencies
Maintainers
12
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/manager - npm Package Compare versions

Comparing version 0.71.1 to 0.71.2

12

dist/commonjs/es2017/lib/internal/index.js

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

function getInternalModifierManager(definition) {
function getInternalModifierManager(definition, isOptional) {
if (_env.DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -68,4 +68,8 @@ throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);

if (_env.DEBUG && manager === undefined) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
if (manager === undefined) {
if (isOptional === true) {
return null;
} else if (_env.DEBUG) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
}
}

@@ -132,2 +136,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFFQSxNQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBRUEsTUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBN0IsY0FBQTs7QUFFQSxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFHVTtBQUVSLE1BQUksZUFBVSxPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBeEMsSUFBQSxLQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSxDQUNKLDBIQUEwSCx5QkFBYyxHQUFkLENBRDVILEVBQU0sQ0FBTjtBQUtEOztBQUVELE1BQUksY0FBUyxHQUFHLENBQUgsR0FBQSxDQUFiLEdBQWEsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUEsS0FBQSxDQUNKLHNKQUFzSix5QkFBYyxHQUFkLENBRHhKLEVBQU0sQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFD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QVYsS0FBUCxTQUFBO0FBQ0Q7O0FBRUssU0FBQSwwQkFBQSxDQUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIGRlZmluaXRpb25cbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsSGVscGVyTWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgT3duZXI+KFxuICBtYW5hZ2VyOiBDdXN0b21IZWxwZXJNYW5hZ2VyPE8+IHwgSGVscGVyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBoZWxwZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gSGVscGVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGhlbHBlciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgaGVscGVyLCBidXQgdGhlcmUgd2Fzbid0IGEgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBmYWN0b3J5LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGNvbXBvbmVudCwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBDb21wb25lbnQgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgY29tcG9uZW50IG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBjb21wb25lbnQsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBjb21wb25lbnQgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFFQSxNQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBRUEsTUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBN0IsY0FBQTs7QUFFQSxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFHVTtBQUVSLE1BQUksZUFBVSxPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBeEMsSUFBQSxLQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSxDQUNKLDBIQUEwSCx5QkFBYyxHQUFkLENBRDVILEVBQU0sQ0FBTjtBQUtEOztBQUVELE1BQUksY0FBUyxHQUFHLENBQUgsR0FBQSxDQUFiLEdBQWEsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUEsS0FBQSxDQUNKLHNKQUFzSix5QkFBYyxHQUFkLENBRHhKLEVBQU0sQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFD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LEtBQVAsU0FBQTtBQUNEOztBQUVLLFNBQUEsd0JBQUEsQ0FBQSxVQUFBLEVBQXFEO0FBQ3pELFNBQU8sVUFBVSxDQUFBLGVBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0Q7O0FBRUssU0FBQSwwQkFBQSxDQUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXI8VCBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIE93bmVyPihcbiAgbWFuYWdlcjogQ3VzdG9tSGVscGVyTWFuYWdlcjxPPiB8IEhlbHBlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgbWFuYWdlciwgZGVmaW5pdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgaGVscGVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIEhlbHBlciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBoZWxwZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGhlbHBlciwgYnV0IHRoZXJlIHdhc24ndCBhIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZmFjdG9yeSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBjb21wb25lbnQsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gQ29tcG9uZW50IGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGNvbXBvbmVudCBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgY29tcG9uZW50LCBidXQgdGhlcmUgd2Fzbid0IGEgY29tcG9uZW50IG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

function getInternalModifierManager(definition) {
function getInternalModifierManager(definition, isOptional) {
if (_env.DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -68,4 +68,8 @@ throw new Error("Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: " + definition);

if (_env.DEBUG && manager === undefined) {
throw new Error("Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: " + (0, _util.debugToString)(definition));
if (manager === undefined) {
if (isOptional === true) {
return null;
} else if (_env.DEBUG) {
throw new Error("Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: " + (0, _util.debugToString)(definition));
}
}

@@ -132,2 +136,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQWVBLElBQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFFQSxJQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBRUEsSUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEIsQyxDQUVBOztBQUVBLElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBN0IsY0FBQTs7QUFFQSxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFHVTtBQUVSLE1BQUksZUFBVSxPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBeEMsSUFBQSxLQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSxDQUFBLDRIQUNzSCx5QkFENUgsR0FDNEgsQ0FEdEgsQ0FBTjtBQUtEOztBQUVELE1BQUksY0FBUyxHQUFHLENBQUgsR0FBQSxDQUFiLEdBQWEsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUEsS0FBQSxDQUFBLHdKQUNrSix5QkFEeEosR0FDd0osQ0FEbEosQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFFBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFDekIsYUFB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QUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIGRlZmluaXRpb25cbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsSGVscGVyTWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgT3duZXI+KFxuICBtYW5hZ2VyOiBDdXN0b21IZWxwZXJNYW5hZ2VyPE8+IHwgSGVscGVyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBoZWxwZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gSGVscGVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGhlbHBlciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgaGVscGVyLCBidXQgdGhlcmUgd2Fzbid0IGEgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBmYWN0b3J5LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGNvbXBvbmVudCwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBDb21wb25lbnQgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgY29tcG9uZW50IG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBjb21wb25lbnQsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBjb21wb25lbnQgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQWVBLElBQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFFQSxJQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBRUEsSUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEIsQyxDQUVBOztBQUVBLElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBN0IsY0FBQTs7QUFFQSxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFHVTtBQUVSLE1BQUksZUFBVSxPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBeEMsSUFBQSxLQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSxDQUFBLDRIQUNzSCx5QkFENUgsR0FDNEgsQ0FEdEgsQ0FBTjtBQUtEOztBQUVELE1BQUksY0FBUyxHQUFHLENBQUgsR0FBQSxDQUFiLEdBQWEsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUEsS0FBQSxDQUFBLHdKQUNrSix5QkFEeEosR0FDd0osQ0FEbEosQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFFBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFDekIsYUFB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QSxVQUFBLEVBQXFEO0FBQ3pELFNBQU8sVUFBVSxDQUFBLGVBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0Q7O0FBRUssU0FBQSwwQkFBQSxDQUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXI8VCBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIE93bmVyPihcbiAgbWFuYWdlcjogQ3VzdG9tSGVscGVyTWFuYWdlcjxPPiB8IEhlbHBlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgbWFuYWdlciwgZGVmaW5pdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgaGVscGVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIEhlbHBlciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBoZWxwZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGhlbHBlciwgYnV0IHRoZXJlIHdhc24ndCBhIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZmFjdG9yeSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBjb21wb25lbnQsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gQ29tcG9uZW50IGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGNvbXBvbmVudCBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgY29tcG9uZW50LCBidXQgdGhlcmUgd2Fzbid0IGEgY29tcG9uZW50IG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -42,3 +42,3 @@ import { DEBUG } from '@glimmer/env';

}
export function getInternalModifierManager(definition) {
export function getInternalModifierManager(definition, isOptional) {
if (DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -50,4 +50,8 @@ throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);

if (DEBUG && manager === undefined) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${debugToString(definition)}`);
if (manager === undefined) {
if (isOptional === true) {
return null;
} else if (DEBUG) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${debugToString(definition)}`);
}
}

@@ -107,2 +111,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsYUFBVCxRQUF3QyxlQUF4QztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFKLEVBQTNCO0FBRUEsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE9BQUosRUFBMUI7QUFFQSxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQUosRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUE5Qjs7QUFFQSxTQUFTLFVBQVQsQ0FDRSxHQURGLEVBRUUsT0FGRixFQUdFLEdBSEYsRUFHVTtBQUVSLE1BQUksS0FBSyxLQUFLLE9BQU8sR0FBUCxLQUFlLFFBQWYsSUFBMkIsR0FBRyxLQUFLLElBQXhDLENBQUwsSUFBc0QsT0FBTyxHQUFQLEtBQWUsVUFBekUsRUFBcUY7QUFDbkYsVUFBTSxJQUFJLEtBQUosQ0FDSiwwSEFBMEgsYUFBYyxDQUN0SSxHQURzSSxDQUV2SSxFQUhHLENBQU47QUFLRDs7QUFFRCxNQUFJLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBSixDQUFRLEdBQVIsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUksS0FBSixDQUNKLHNKQUFzSixhQUFjLENBQ2xLLEdBRGtLLENBRW5LLEVBSEcsQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFDLEdBQUosQ0FBUSxHQUFSLEVBQWEsT0FBYjtBQUNBLFNBQU8sR0FBUDtBQUNEOztBQUVELFNBQVMsVUFBVCxDQUNFLEdBREYsRUFFRSxHQUZGLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBRyxHQUFkOztBQUNBLFNBQU8sT0FBTyxLQUFLLFNBQVosSUFBeUIsT0FBTyxLQUFLLElBQTVDLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFKLENBQVEs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MkJBQVYsQ0FBc0MsVUFBdEMsRUFBd0Q7QUFDNUQsU0FBTyxVQUFVLENBQUMsa0JBQUQsRUFBcUIsVUFBckIsQ0FBVixLQUErQyxTQUF0RDtBQUNEO0FBRUQsT0FBTSxTQUFVLHdCQUFWLENBQW1DLFVBQW5DLEVBQXFEO0FBQ3pELFNBQU8sVUFBVSxDQUFDLGVBQUQsRUFBa0IsVUFBbEIsQ0FBVixLQUE0QyxTQUFuRDtBQUNEO0FBRUQsT0FBTSxTQUFVLDBCQUFWLENBQXFDLFVBQXJDLEVBQXVEO0FBQzNELFNBQU8sVUFBVSxDQUFDLGlCQUFELEVBQW9CLFVBQXBCLENBQVYsS0FBOEMsU0FBckQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcsIF9XZWFrU2V0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBIZWxwZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUhlbHBlck1hbmFnZXIgfSBmcm9tICcuLi9wdWJsaWMvaGVscGVyJztcblxudHlwZSBJbnRlcm5hbE1hbmFnZXIgPVxuICB8IEludGVybmFsQ29tcG9uZW50TWFuYWdlclxuICB8IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyXG4gIHwgQ3VzdG9tSGVscGVyTWFuYWdlclxuICB8IEhlbHBlcjtcblxuY29uc3QgQ09NUE9ORU5UX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI+KCk7XG5cbmNvbnN0IE1PRElGSUVSX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcj4oKTtcblxuY29uc3QgSEVMUEVSX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyPigpO1xuXG4vLy8vLy8vLy8vL1xuXG5jb25zdCBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuZnVuY3Rpb24gc2V0TWFuYWdlcjxEZWYgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBvYmplY3Q+LFxuICBtYW5hZ2VyOiBvYmplY3QsXG4gIG9iajogRGVmXG4pOiBEZWYge1xuICBpZiAoREVCVUcgJiYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gc2V0IGEgbWFuYWdlciBvbiBhIG5vbi1vYmplY3QgdmFsdWUuIE1hbmFnZXJzIGNhbiBvbmx5IGJlIGFzc29jaWF0ZWQgd2l0aCBvYmplY3RzIG9yIGZ1bmN0aW9ucy4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBtYXAuaGFzKG9iaikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCB0aGUgc2FtZSB0eXBlIG9mIG1hbmFnZXIgbXVsdGlwbGUgdGltZXMgb24gYSB2YWx1ZS4gWW91IGNhbiBvbmx5IGFzc29jaWF0ZSBvbmUgbWFuYWdlciBvZiBlYWNoIHR5cGUgd2l0aCBhIGdpdmVuIHZhbHVlLiBWYWx1ZSB3YXMgJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgb2JqXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgbWFwLnNldChvYmosIG1hbmFnZXIpO1xuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBnZXRNYW5hZ2VyPE0gZXh0ZW5kcyBJbnRlcm5hbE1hbmFnZXI+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBNPixcbiAgb2JqOiBvYmplY3Rcbik6IE0gfCB1bmRlZmluZWQge1xuICBsZXQgcG9pbnRlciA9IG9iajtcbiAgd2hpbGUgKHBvaW50ZXIgIT09IHVuZGVmaW5lZCAmJiBwb2ludGVyICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWFuYWdlciA9IG1hcC5nZXQocG9pbnRlcik7XG5cbiAgICBpZiAobWFuYWdlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICB9XG5cbiAgICBwb2ludGVyID0gZ2V0UHJvdG90eXBlT2YocG9pbnRlcik7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIG1hbmFnZXIsIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIG1vZGlmaWVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIE1vZGlmaWVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIG1vZGlmaWVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKERFQlVHICYmIG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIG1vZGlmaWVyLCBidXQgdGhlcmUgd2Fzbid0IGEgbW9kaWZpZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgZGVmaW5pdGlvblxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBPd25lcj4oXG4gIG1hbmFnZXI6IEN1c3RvbUhlbHBlck1hbmFnZXI8Tz4gfCBIZWxwZXIsXG4gIGRlZmluaXRpb246IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIG1hbmFnZXIsIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGhlbHBlciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBIZWxwZXIgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgaGVscGVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBoZWxwZXIsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGZhY3RvcnksIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgY29tcG9uZW50LCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIENvbXBvbmVudCBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBjb21wb25lbnQgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGNvbXBvbmVudCwgYnV0IHRoZXJlIHdhc24ndCBhIGNvbXBvbmVudCBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG4vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsYUFBVCxRQUF3QyxlQUF4QztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFKLEVBQTNCO0FBRUEsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE9BQUosRUFBMUI7QUFFQSxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQUosRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUE5Qjs7QUFFQSxTQUFTLFVBQVQsQ0FDRSxHQURGLEVBRUUsT0FGRixFQUdFLEdBSEYsRUFHVTtBQUVSLE1BQUksS0FBSyxLQUFLLE9BQU8sR0FBUCxLQUFlLFFBQWYsSUFBMkIsR0FBRyxLQUFLLElBQXhDLENBQUwsSUFBc0QsT0FBTyxHQUFQLEtBQWUsVUFBekUsRUFBcUY7QUFDbkYsVUFBTSxJQUFJLEtBQUosQ0FDSiwwSEFBMEgsYUFBYyxDQUN0SSxHQURzSSxDQUV2SSxFQUhHLENBQU47QUFLRDs7QUFFRCxNQUFJLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBSixDQUFRLEdBQVIsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUksS0FBSixDQUNKLHNKQUFzSixhQUFjLENBQ2xLLEdBRGtLLENBRW5LLEVBSEcsQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFDLEdBQUosQ0FBUSxHQUFSLEVBQWEsT0FBYjtBQUNBLFNBQU8sR0FBUDtBQUNEOztBQUVELFNBQVMsVUFBVCxDQUNFLEdBREYsRUFFRSxHQUZGLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBRyxHQUFkOztBQUNBLFNBQU8sT0FBTyxLQUFLLFNBQVosSUFBeUIsT0FBTyxLQUFLLElBQTVDLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFKLENBQVEs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Q0FDdkksVUFEdUksQ0FFeEksRUFIRyxDQUFOO0FBS0Q7QUFDRjs7QUFFRCxTQUFPLE9BQVA7QUFDRCxDLENBRUQ7O0FBRUEsT0FBTSxTQUFVLDJCQUFWLENBQXNDLFVBQXRDLEVBQXdEO0FBQzVELFNBQU8sVUFBVSxDQUFDLGtCQUFELEVBQXFCLFVBQXJCLENBQVYsS0FBK0MsU0FBdEQ7QUFDRDtBQUVELE9BQU0sU0FBVSx3QkFBVixDQUFtQyxVQUFuQyxFQUFxRDtBQUN6RCxTQUFPLFVBQVUsQ0FBQyxlQUFELEVBQWtCLFVBQWxCLENBQVYsS0FBNEMsU0FBbkQ7QUFDRDtBQUVELE9BQU0sU0FBVSwwQkFBVixDQUFxQyxVQUFyQyxFQUF1RDtBQUMzRCxTQUFPLFVBQVUsQ0FBQyxpQkFBRCxFQUFvQixVQUFwQixDQUFWLEtBQThDLFNBQXJEO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXI8VCBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIE93bmVyPihcbiAgbWFuYWdlcjogQ3VzdG9tSGVscGVyTWFuYWdlcjxPPiB8IEhlbHBlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgbWFuYWdlciwgZGVmaW5pdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgaGVscGVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIEhlbHBlciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBoZWxwZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGhlbHBlciwgYnV0IHRoZXJlIHdhc24ndCBhIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZmFjdG9yeSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBjb21wb25lbnQsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gQ29tcG9uZW50IGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGNvbXBvbmVudCBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgY29tcG9uZW50LCBidXQgdGhlcmUgd2Fzbid0IGEgY29tcG9uZW50IG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -42,3 +42,3 @@ import { DEBUG } from '@glimmer/env';

}
export function getInternalModifierManager(definition) {
export function getInternalModifierManager(definition, isOptional) {
if (DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -50,4 +50,8 @@ throw new Error("Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: " + definition);

if (DEBUG && manager === undefined) {
throw new Error("Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: " + debugToString(definition));
if (manager === undefined) {
if (isOptional === true) {
return null;
} else if (DEBUG) {
throw new Error("Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: " + debugToString(definition));
}
}

@@ -107,2 +111,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFDQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBZUEsSUFBTSxrQkFBa0IsR0FBRyxJQUEzQixPQUEyQixFQUEzQjtBQUVBLElBQU0saUJBQWlCLEdBQUcsSUFBMUIsT0FBMEIsRUFBMUI7QUFFQSxJQUFNLGVBQWUsR0FBRyxJQUF4QixPQUF3QixFQUF4QixDLENBRUE7O0FBRUEsSUFBTSxjQUFjLEdBQUcsTUFBTSxDQUE3QixjQUFBOztBQUVBLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxPQUFBLEVBQUEsR0FBQSxFQUdVO0FBRVIsTUFBSSxLQUFLLEtBQUssT0FBQSxHQUFBLEtBQUEsUUFBQSxJQUEyQixHQUFHLEtBQXhDLElBQUssQ0FBTCxJQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSw2SEFDc0gsYUFBYyxDQUQxSSxHQUMwSSxDQURwSSxDQUFOO0FBS0Q7O0FBRUQsTUFBSSxLQUFLLElBQUksR0FBRyxDQUFILEdBQUEsQ0FBYixHQUFhLENBQWIsRUFBMkI7QUFDekIsVUFBTSxJQUFBLEtBQUEseUpBQ2tKLGFBQWMsQ0FEdEssR0FDc0ssQ0FEaEssQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFFBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFDekIsYUFBQSxPQUFBO0FBQ0Q7O0FBRUQsSUFBQSxPQUFPLEdBQUcsY0FBYyxDQUF4QixPQUF3QixDQUF4QjtBQUNEOztBQUVELFNBQUEsU0FBQTtFQUdGOzs7QUFFQSxPQUFNLFNBQUEsMEJBQUEsQ0FBQSxPQUFBLEVBQUEsVUFBQSxFQUVTO0FBRWIsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBQSxPQUFBLEVBQWpCLFVBQWlCLENBQWpCO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsMEJBQUEsQ0FBQSxVQUFBLEVBQXVEO0FBQzNELE1BQ0UsS0FBSyxJQUNMLE9BQUEsVUFBQSxLQURBLFVBQUEsS0FFQyxPQUFBLFVBQUEsS0FBQSxRQUFBLElBQWtDLFVBQVUsS0FIL0MsSUFDRSxDQURGLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSwwTEFBTixVQUFNLENBQU47QUFHRDs7QUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUEsaUJBQUEsRUFBMUIsVUFBMEIsQ0FBMUI7O0FBRUEsTUFBSSxLQUFLLElBQUksT0FBTyxLQUFwQixTQUFBLEVBQW9DO0FBQ2xDLFVBQU0sSUFBQSxLQUFBLDRIQUNxSCxhQUFjLENBRHpJLFVBQ3lJLENBRG5JLENBQU47QUFLRDs7QUFFRCxTQUFBLE9BQUE7QUFDRDtBQUVELE9BQU0sU0FBQSx3QkFBQSxDQUFBLE9BQUEsRUFBQSxVQUFBLEVBRVM7QUFFYixTQUFPLFVBQVUsQ0FBQSxlQUFBLEVBQUEsT0FBQSxFQUFqQixVQUFpQixDQUFqQjtBQUNEO0FBT0QsT0FBTSxTQUFBLHdCQUFBLENBQUEsVUFBQSxFQUFBLFVBQUEsRUFFeUI7QUFFN0IsTUFDRSxLQUFLLElBQ0wsT0FBQSxVQUFBLEtBREEsVUFBQSxLQUVDLE9BQUEsVUFBQSxLQUFBLFFBQUEsSUFBa0MsVUFBVSxLQUgvQyxJQUNFLENBREYsRUFJRTtBQUNBLFVBQU0sSUFBQSxLQUFBLG9MQUFOLFVBQU0sQ0FBTjtBQUdEOztBQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQSxlQUFBLEVBQTFCLFVBQTBCLENBQTFCOztBQUVBLE1BQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFDekIsUUFBSSxVQUFVLEtBQWQsSUFBQSxFQUF5QjtBQUN2QixhQUFBLElBQUE7QUFERixLQUFBLE1BRU8sSUFBQSxLQUFBLEVBQVc7QUFDaEIsWUFBTSxJQUFBLEtBQUEsd0hBQ2lILGFBQWMsQ0FEckksVUFDcUksQ0FEL0gsQ0FBTjtBQUtEO0FBQ0Y7O0FBRUQsU0FBQSxPQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsMkJBQUEsQ0FBQSxPQUFBLEVBQUEsR0FBQSxFQUVFO0FBRU4sU0FBTyxVQUFVLENBQUEsa0JBQUEsRUFBQSxPQUFBLEVBQWpCLEdBQWlCLENBQWpCO0FBQ0Q7QUFPRCxPQUFNLFNBQUEsMkJBQUEsQ0FBQSxVQUFBLEVBQUEsVUFBQSxFQUV5QjtBQUU3QixNQUNFLEtBQUssSUFDTCxPQUFBLFVBQUEsS0FEQSxVQUFBLEtBRUMsT0FBQSxVQUFBLEtBQUEsUUFBQSxJQUFrQyxVQUFVLEtBSC9DLElBQ0UsQ0FERixFQUlFO0FBQ0EsVUFBTSxJQUFBLEtBQUEsNkxBQU4sVUFBTSxDQUFOO0FBR0Q7O0FBRUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFBLGtCQUFBLEVBQTFCLFVBQTBCLENBQTFCOztBQUVBLE1BQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFDekIsUUFBSSxVQUFVLEtBQWQsSUFBQSxFQUF5QjtBQUN2QixhQUFBLElBQUE7QUFERixLQUFBLE1BRU8sSUFBQSxLQUFBLEVBQVc7QUFDaEIsWUFBTSxJQUFBLEtBQUEsOEhBQ3VILGFBQWMsQ0FEM0ksVUFDMkksQ0FEckksQ0FBTjtBQUtEO0FBQ0Y7O0FBRUQsU0FBQSxPQUFBO0VBR0Y7O0FBRUEsT0FBTSxTQUFBLDJCQUFBLENBQUEsVUFBQSxFQUF3RDtBQUM1RCxTQUFPLFVBQVUsQ0FBQSxrQkFBQSxFQUFWLFVBQVUsQ0FBVixLQUFQLFNBQUE7QUFDRDtBQUVELE9BQU0sU0FBQSx3QkFBQSxDQUFBLFVBQUEsRUFBcUQ7QUFDekQsU0FBTyxVQUFVLENBQUEsZUFBQSxFQUFWLFVBQVUsQ0FBVixLQUFQLFNBQUE7QUFDRDtBQUVELE9BQU0sU0FBQSwwQkFBQSxDQUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIGRlZmluaXRpb25cbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsSGVscGVyTWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgT3duZXI+KFxuICBtYW5hZ2VyOiBDdXN0b21IZWxwZXJNYW5hZ2VyPE8+IHwgSGVscGVyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBoZWxwZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gSGVscGVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGhlbHBlciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgaGVscGVyLCBidXQgdGhlcmUgd2Fzbid0IGEgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBmYWN0b3J5LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGNvbXBvbmVudCwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBDb21wb25lbnQgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgY29tcG9uZW50IG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBjb21wb25lbnQsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBjb21wb25lbnQgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFDQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBZUEsSUFBTSxrQkFBa0IsR0FBRyxJQUEzQixPQUEyQixFQUEzQjtBQUVBLElBQU0saUJBQWlCLEdBQUcsSUFBMUIsT0FBMEIsRUFBMUI7QUFFQSxJQUFNLGVBQWUsR0FBRyxJQUF4QixPQUF3QixFQUF4QixDLENBRUE7O0FBRUEsSUFBTSxjQUFjLEdBQUcsTUFBTSxDQUE3QixjQUFBOztBQUVBLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxPQUFBLEVBQUEsR0FBQSxFQUdVO0FBRVIsTUFBSSxLQUFLLEtBQUssT0FBQSxHQUFBLEtBQUEsUUFBQSxJQUEyQixHQUFHLEtBQXhDLElBQUssQ0FBTCxJQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSw2SEFDc0gsYUFBYyxDQUQxSSxHQUMwSSxDQURwSSxDQUFOO0FBS0Q7O0FBRUQsTUFBSSxLQUFLLElBQUksR0FBRyxDQUFILEdBQUEsQ0FBYixHQUFhLENBQWIsRUFBMkI7QUFDekIsVUFBTSxJQUFBLEtBQUEseUpBQ2tKLGFBQWMsQ0FEdEssR0FDc0ssQ0FEaEssQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFFBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVB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LENBQUEsa0JBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsd0JBQUEsQ0FBQSxVQUFBLEVBQXFEO0FBQ3pELFNBQU8sVUFBVSxDQUFBLGVBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsMEJBQUEsQ0FBQSxVQUFBLEVBQXVEO0FBQzNELFNBQU8sVUFBVSxDQUFBLGlCQUFBLEVBQVYsVUFBVSxDQUFWLEtBQVAsU0FBQTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgZGVidWdUb1N0cmluZywgX1dlYWtTZXQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIEhlbHBlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ3VzdG9tSGVscGVyTWFuYWdlciB9IGZyb20gJy4uL3B1YmxpYy9oZWxwZXInO1xuXG50eXBlIEludGVybmFsTWFuYWdlciA9XG4gIHwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyXG4gIHwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXJcbiAgfCBDdXN0b21IZWxwZXJNYW5hZ2VyXG4gIHwgSGVscGVyO1xuXG5jb25zdCBDT01QT05FTlRfTUFOQUdFUlMgPSBuZXcgV2Vha01hcDxvYmplY3QsIEludGVybmFsQ29tcG9uZW50TWFuYWdlcj4oKTtcblxuY29uc3QgTU9ESUZJRVJfTUFOQUdFUlMgPSBuZXcgV2Vha01hcDxvYmplY3QsIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPigpO1xuXG5jb25zdCBIRUxQRVJfTUFOQUdFUlMgPSBuZXcgV2Vha01hcDxvYmplY3QsIEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXI+KCk7XG5cbi8vLy8vLy8vLy8vXG5cbmNvbnN0IGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG5mdW5jdGlvbiBzZXRNYW5hZ2VyPERlZiBleHRlbmRzIG9iamVjdD4oXG4gIG1hcDogV2Vha01hcDxvYmplY3QsIG9iamVjdD4sXG4gIG1hbmFnZXI6IG9iamVjdCxcbiAgb2JqOiBEZWZcbik6IERlZiB7XG4gIGlmIChERUJVRyAmJiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSAmJiB0eXBlb2Ygb2JqICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgYSBtYW5hZ2VyIG9uIGEgbm9uLW9iamVjdCB2YWx1ZS4gTWFuYWdlcnMgY2FuIG9ubHkgYmUgYXNzb2NpYXRlZCB3aXRoIG9iamVjdHMgb3IgZnVuY3Rpb25zLiBWYWx1ZSB3YXMgJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgb2JqXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG1hcC5oYXMob2JqKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gc2V0IHRoZSBzYW1lIHR5cGUgb2YgbWFuYWdlciBtdWx0aXBsZSB0aW1lcyBvbiBhIHZhbHVlLiBZb3UgY2FuIG9ubHkgYXNzb2NpYXRlIG9uZSBtYW5hZ2VyIG9mIGVhY2ggdHlwZSB3aXRoIGEgZ2l2ZW4gdmFsdWUuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBtYXAuc2V0KG9iaiwgbWFuYWdlcik7XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmFnZXI8TSBleHRlbmRzIEludGVybmFsTWFuYWdlcj4oXG4gIG1hcDogV2Vha01hcDxvYmplY3QsIE0+LFxuICBvYmo6IG9iamVjdFxuKTogTSB8IHVuZGVmaW5lZCB7XG4gIGxldCBwb2ludGVyID0gb2JqO1xuICB3aGlsZSAocG9pbnRlciAhPT0gdW5kZWZpbmVkICYmIHBvaW50ZXIgIT09IG51bGwpIHtcbiAgICBjb25zdCBtYW5hZ2VyID0gbWFwLmdldChwb2ludGVyKTtcblxuICAgIGlmIChtYW5hZ2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBtYW5hZ2VyO1xuICAgIH1cblxuICAgIHBvaW50ZXIgPSBnZXRQcm90b3R5cGVPZihwb2ludGVyKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFuYWdlcjogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIGRlZmluaXRpb246IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgbWFuYWdlciwgZGVmaW5pdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgbW9kaWZpZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gTW9kaWZpZXIgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgbW9kaWZpZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgbW9kaWZpZXIsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBPd25lcj4oXG4gIG1hbmFnZXI6IEN1c3RvbUhlbHBlck1hbmFnZXI8Tz4gfCBIZWxwZXIsXG4gIGRlZmluaXRpb246IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIG1hbmFnZXIsIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGhlbHBlciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBIZWxwZXIgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgaGVscGVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBoZWxwZXIsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGZhY3RvcnksIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgY29tcG9uZW50LCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIENvbXBvbmVudCBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBjb21wb25lbnQgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGNvbXBvbmVudCwgYnV0IHRoZXJlIHdhc24ndCBhIGNvbXBvbmVudCBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG4vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -5,2 +5,3 @@ import { InternalComponentManager, InternalModifierManager, Helper, Owner } from '@glimmer/interfaces';

export declare function getInternalModifierManager(definition: object): InternalModifierManager;
export declare function getInternalModifierManager(definition: object, isOptional: true | undefined): InternalModifierManager | null;
export declare function setInternalHelperManager<T extends object, O extends Owner>(manager: CustomHelperManager<O> | Helper, definition: T): T;

@@ -7,0 +8,0 @@ export declare function getInternalHelperManager(definition: object): CustomHelperManager | Helper;

{
"name": "@glimmer/manager",
"version": "0.71.1",
"version": "0.71.2",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/program",
"dependencies": {
"@glimmer/env": "0.1.7",
"@glimmer/interfaces": "0.71.1",
"@glimmer/destroyable": "0.71.1",
"@glimmer/reference": "0.71.1",
"@glimmer/validator": "0.71.1",
"@glimmer/util": "0.71.1"
"@glimmer/interfaces": "0.71.2",
"@glimmer/destroyable": "0.71.2",
"@glimmer/reference": "0.71.2",
"@glimmer/validator": "0.71.2",
"@glimmer/util": "0.71.2"
},

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

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc