@haventech/semotus
Advanced tools
Comparing version 4.0.0 to 4.1.0
@@ -108,4 +108,5 @@ "use strict"; | ||
var remoteValidator = defineProperty.serverValidation; | ||
var isPublic = !!defineProperty.public; | ||
return function (target, propertyName, descriptor) { | ||
descriptor.value = objectTemplate._setupFunction(propertyName, descriptor.value, defineProperty.on, defineProperty.validate, remoteValidator, defineProperty.target); | ||
descriptor.value = objectTemplate._setupFunction(propertyName, descriptor.value, defineProperty.on, defineProperty.validate, remoteValidator, isPublic, defineProperty.target); | ||
/* | ||
@@ -139,2 +140,2 @@ this function been marked as a server API either explicitly or by default. | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7O0FBR0g7O0dBRUc7QUFFSCx3QkFBd0I7QUFDeEIsMkVBQTJFO0FBQzNFLGdHQUFnRztBQUNoRyxTQUFnQixjQUFjLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNO0lBQ2xFLElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxjQUFjLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUM3QyxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUMsQ0FBRSxvQ0FBb0M7SUFFcEUsc0JBQXNCO0lBQ3RCLElBQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE1BQU07UUFDdkMsbUZBQW1GO1FBQ25GLDBCQUEwQjtRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFBO1NBQ3BDO2FBQU07WUFDSCxHQUFHLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEU7UUFFRCxvRUFBb0U7UUFDcEUsTUFBTSxDQUFDLGNBQWMsR0FBRyxVQUFVLFlBQVksRUFBRSxjQUFjO1lBQzFELElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtnQkFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUMxRCxZQUFZLEVBQ1osY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLEVBQUUsRUFDakIsY0FBYyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUNsRSxJQUFNLE9BQUssR0FBRyxjQUFjLENBQUMsS0FBSyxD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WSxDQUFDLElBQUksRUFBRSxPQUFPO0lBQy9CLElBQUksSUFBSSxZQUFZLEtBQUssSUFBSSxPQUFPLFlBQVksS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDeEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztLQUNOO1NBQU07UUFDSCxPQUFPLElBQUksQ0FBQztLQUNmO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXR0YWNoZXMgc3luY1N0YXRlcyBwcm9wcyB0byB0aGUgdGVtcGxhdGVcbiAqIElmIGEgY2xhc3MgaXMgZGVjb3JhdGVkIGxpa2UgQHN1cGVydHlwZUNsYXNzKHtzeW5jU3RhdGVzOiBbJ2ludGVybmFsJywgJ2hvbWUnXX0pLCBhbnkgaW5zdGFuY2VzIG9mIHRoYXQgY2xhc3NcbiAqIGluY2x1ZGluZyB0aG9zZSB0aGF0IGV4aXN0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFwcGxpY2F0aW9uLCBzaG91bGQgb25seSBiZSBzZW50IG92ZXIgd2hlbiB0aGUgY29udHJvbGxlciBzdGF0ZSBvblxuICogdGhlIHNlcnZlciBpbmRpY2F0ZXMgdGhhdCB0aGUgY29ycmVjdCBzeW5jU3RhdGUgKGlmIGFuZCBvbmx5IGlmIGNvbnRyb2xsZXIuc3luY1N0YXRlID0gJ2hvbWUnIG9yICdpbnRlcm5hbCcsIHRoZW4gYW5cbiAqIG9iamVjdCBvZiB0aGlzIGNsYXNzIHdpbGwgYmUgc2VudCwgb3RoZXJ3aXNlIHNlbW90dXMgd2lsbCByZWZyYWluIGZyb20gc2VuZGluZyBpdCBvdmVyKS4gVGhlIGNhdmVhdCwgaG93ZXZlciwgaXMgaWZcbiAqIHNlbW90dXMnIGNvbnRyb2xsZXIncyBzeW5jU3RhdGUgaXMgZGVmaW5lZCBhcyAnKicgdGhlbiB3ZSB3aWxsIGJ5IGRlZmF1bHQgc2VuZCBhbGwgdGVtcGxhdGVzIHVubGVzcyBzcGVjaWZpZWQgb3RoZXItXG4gKiB3aXNlICh0aGUgc2FtZSBhcyB0cmVhdGluZyBzeW5jU3RhdGU6IFsnKiddKVxuICpcbiAqL1xuXG5cbi8qKlxuICogQFRPRE86IFRoaXMgc2hvdWxkIGJlIGNvbnNvbGlkYXRlZCB3aXRoIFN1cGVydHlwZSdzIHZlcnNpb24gd2hlbiB3ZSBmaW5pc2ggY29udmVydGluZyB0byB0eXBlc2NyaXB0XG4gKi9cblxuLy8gQ29udGV4dCBTd2l0Y2ggQ2hhaW46XG4vLyAxc3QgcGFzczogU2Vtb3R1cyAoc0NsYXNzKSAtPiBTdXBlcnR5cGUgKHNDbGFzcykgLT4gU2Vtb3R1cyAocmV0dXJuIFJldClcbi8vIDJuZCBwYXNzOiBTZW1vdHVzIChzQ2xhc3MpIC0+IFNlbW90dXMgKGRlY29yYXRvcikgLT4gU3VwZXJ0eXBlIChldmFsIHJldCkgLT4gU2Vtb3R1cyAocmV0dXJuKVxuZXhwb3J0IGZ1bmN0aW9uIHN1cGVydHlwZUNsYXNzKG9iamVjdFRlbXBsYXRlLCBTdXBlcnR5cGVNb2R1bGUsIHRhcmdldCk6IGFueSB7XG4gICAgbGV0IHJldDtcbiAgICBsZXQgT2JqZWN0VGVtcGxhdGUgPSBTdXBlcnR5cGVNb2R1bGUuZGVmYXVsdDtcbiAgICBsZXQgc3luY1N0YXRlczogU3RyaW5nW10gPSBbXTsgIC8vIERlZmF1bHQgc3luY1N0YXRlcyB0byBlbXB0eSBhcnJheVxuXG4gICAgLy8gRGVjb3JhdG9yIHdvcmtlcmJlZVxuICAgIGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIGRlY29yYXRvcih0YXJnZXQpIHtcbiAgICAgICAgLy8gc2Vjb25kIHRpbWUgd2UgbXVzdCBjYWxsIHRoZSBmdW5jdGlvbiByZXR1cm5lZCB0aGUgZmlyc3QgdGltZSBiZWNhdXNlIGl0IGhhcyB0aGVcbiAgICAgICAgLy8gcHJvcGVydGllcyBhcyBhIGNsb3N1cmVcbiAgICAgICAgaWYgKHJldCkge1xuICAgICAgICAgICAgcmV0ID0gcmV0KHRhcmdldCwgb2JqZWN0VGVtcGxhdGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXQgPSBTdXBlcnR5cGVNb2R1bGUuc3VwZXJ0eXBlQ2xhc3ModGFyZ2V0LCBvYmplY3RUZW1wbGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWlubHkgZm9yIHBlcnNpc3RvciBwcm9wZXJ0aWVzIHRvIG1ha2Ugc3VyZSB0aGV5IGdldCB0cmFuc3BvcnRlZFxuICAgICAgICB0YXJnZXQuY3JlYXRlUHJvcGVydHkgPSBmdW5jdGlvbiAocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5LmJvZHkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlW3Byb3BlcnR5TmFtZV0gPSBvYmplY3RUZW1wbGF0ZS5fc2V0dXBGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5ib2R5LFxuICAgICAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5vbixcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkudmFsaWRhdGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLl9fYW1vcnBoaWNwcm9wc19fW3Byb3BlcnR5TmFtZV0gPSBkZWZpbmVQcm9wZXJ0eTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRlZmluZVByb3BlcnR5LnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGdldHRlciBhY3R1YWxseSBpbml0aWFsaXplcyB0aGUgcHJvcGVydHlcbiAgICAgICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS5nZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lU3BhY2VkUHJvcGVydHkgPSBgX18ke3Byb3BlcnR5TmFtZX1gO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpc1tuYW1lU3BhY2VkUHJvcGVydHldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2xvbmVUZW1wbGF0ZSA9IGRlZmluZVByb3BlcnR5Lm9mIHx8IGRlZmluZVByb3BlcnR5LnR5cGUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbbmFtZVNwYWNlZFByb3BlcnR5XSA9IE9iamVjdFRlbXBsYXRlLmNsb25lKHZhbHVlLCBjbG9uZVRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tuYW1lU3BhY2VkUHJvcGVydHldO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZWZpbmVQcm9wZXJ0aWVzID0ge307XG4gICAgICAgICAgICAgICAgb2JqZWN0VGVtcGxhdGUuX3NldHVwUHJvcGVydHkocHJvcGVydHlOYW1lLCBkZWZpbmVQcm9wZXJ0eSwgdW5kZWZpbmVkLCBkZWZpbmVQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQucHJvdG90eXBlLCBkZWZpbmVQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBc3NpZ25pbmcgc3luYyBzdGF0ZXMgZnJvbSBwcm9wIGRlZmluaXRpb24gb250byB0aGUgdGVtcGxhdGVcbiAgICAgICAgaWYgKHN5bmNTdGF0ZXMpIHtcbiAgICAgICAgICAgIHRhcmdldC5zeW5jU3RhdGVzID0gc3luY1N0YXRlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfTtcblxuICAgIC8vIENhbGxpbmcgdGhlIGRlY29yYXRvciBwcm9jZXNzb3Igd2l0aCB0aGUgYWN0dWFsIFRlbXBsYXRlICgybmQgdGltZSlcbiAgICBpZiAodGFyZ2V0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4gZGVjb3JhdG9yKHRhcmdldCk7XG4gICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdGFyZ2V0LnN5bmNTdGF0ZXMgJiYgdGFyZ2V0LnN5bmNTdGF0ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBzeW5jU3RhdGVzID0gdGFyZ2V0LnN5bmNTdGF0ZXM7XG4gICAgfSBlbHNlIGlmICh0YXJnZXQgJiYgdGFyZ2V0LnN5bmNTdGF0ZXMgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgU2Vtb3R1cyB3YXJuaW5nOiAke3RhcmdldC5zeW5jU3RhdGVzfSBpcyBub3QgYW4gYXJyYXkgdmFsdWUsIHNvIG5vdCBzZXR0aW5nIHVwIFN5bmNTdGF0ZXMgZm9yIHRoaXMgdGFyZ2V0OiAke3RhcmdldH1gKTtcbiAgICB9XG5cbiAgICAvLyBDYWxsZWQgZmlyc3QgdGltZSB3aXRoIHBhcmFtZXRlcnMgKHByb3AgZGVmaW5pdGlvbikgcmF0aGVyIHRoYW4gdGFyZ2V0ICh0ZW1wbGF0ZSlcbiAgICAvLyBjYWxsIHN1cGVydHlwZXMgc3VwZXJ0eXBlQ2xhc3MgZnVuY3Rpb24gd2hpY2ggd2lsbCByZXR1cm4gYSBmdW5jdGlvbiB0aGF0IG11c3QgYmVcbiAgICAvLyBjYWxsZWQgb24gdGhlIDJuZCBwYXNzIHdoZW4gd2UgaGF2ZSBhIHRhcmdldC4gVGhpcyBmdW5jdGlvbidzIGNsb3N1cmUgd2lsbCBhbHNvIGhhdmUgYSByZWYgdG8gdGhlIG9yaWdpbmFsIHByb3BlcnRpZXNcbiAgICByZXQgPSBTdXBlcnR5cGVNb2R1bGUuc3VwZXJ0eXBlQ2xhc3ModGFyZ2V0LCBvYmplY3RUZW1wbGF0ZSk7XG4gICAgcmV0dXJuIGRlY29yYXRvcjsgLy8gZGVjb3JhdG9yIHdpbGwgYmUgY2FsbGVkIDJuZCB0aW1lIHdpdGggcmV0IGFzIGEgY2xvc3VyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU3VwZXJ0eXBlKHRlbXBsYXRlLCBvYmplY3RUZW1wbGF0ZSwgU3VwZXJ0eXBlKSB7XG4gICAgcmV0dXJuIFN1cGVydHlwZS5jYWxsKHRlbXBsYXRlLCBvYmplY3RUZW1wbGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eShvYmplY3RUZW1wbGF0ZSwgU3VwZXJ0eXBlTW9kdWxlLCBwcm9wcywgdG9DbGllbnRSdWxlU2V0LCB0b1NlcnZlclJ1bGVTZXQpIHtcbiAgICBwcm9wcyA9IHByb3BzIHx8IHt9O1xuICAgIHByb3BzLnRvQ2xpZW50ID0gYXBwbHlSdWxlU2V0KHByb3BzLnRvQ2xpZW50LCB0b0NsaWVudFJ1bGVTZXQpO1xuICAgIHByb3BzLnRvU2VydmVyID0gYXBwbHlSdWxlU2V0KHByb3BzLnRvU2VydmVyLCB0b1NlcnZlclJ1bGVTZXQpO1xuICAgIGNvbnN0IGJhc2VEZWNvcmF0b3IgPSBTdXBlcnR5cGVNb2R1bGUucHJvcGVydHkocHJvcHMsIG9iamVjdFRlbXBsYXRlKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5KSB7XG4gICAgICAgIGJhc2VEZWNvcmF0b3IodGFyZ2V0LCB0YXJnZXRLZXkpO1xuICAgICAgICBjb25zdCBkZWZpbmVQcm9wZXJ0aWVzID0ge307XG4gICAgICAgIHByb3BzLmVudW1lcmFibGUgPSB0cnVlO1xuICAgICAgICBwcm9wcy53cml0YWJsZSA9IHRydWU7XG4gICAgICAgIG9iamVjdFRlbXBsYXRlLl9zZXR1cFByb3BlcnR5KHRhcmdldEtleSwgcHJvcHMsIHVuZGVmaW5lZCwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3RlKG9iamVjdFRlbXBsYXRlLCBkZWZpbmVQcm9wZXJ0eSkge1xuICAgIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHkgfHwge307XG5cbiAgICAvKlxuICAgICAgICBpZiB3ZSBoYXZlbid0IHN1cHBsaWVkIGEgY29uZmlndXJhdGlvbiBvYmplY3QgaW50byB0aGUgZGVjb3JhdG9yLFxuICAgICAgICAgZGVmYXVsdCB0aGUgcm9sZSBvZiB0aGlzIGZ1bmN0aW9uIHRvIGEgc2VydmVyIEFQSSBmdW5jdGlvblxuICAgICAqL1xuICAgIGlmICghZGVmaW5lUHJvcGVydHkub24pIHtcbiAgICAgICAgZGVmaW5lUHJvcGVydHkub24gPSAnc2VydmVyJztcbiAgICB9XG5cbiAgICAvLyBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gdmFsaWRhdGUgYW55IGNoYW5nZXMgZm9yIHJlbW90ZSBjYWxsc1xuICAgIGxldCByZW1vdGVWYWxpZGF0b3IgPSBkZWZpbmVQcm9wZXJ0eS5zZXJ2ZXJWYWxpZGF0aW9uO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikge1xuICAgICAgICBkZXNjcmlwdG9yLnZhbHVlID0gb2JqZWN0VGVtcGxhdGUuX3NldHVwRnVuY3Rpb24oXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLFxuICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkub24sXG4gICAgICAgICAgICBkZWZpbmVQcm9wZXJ0eS52YWxpZGF0ZSxcbiAgICAgICAgICAgIHJlbW90ZVZhbGlkYXRvcixcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnRhcmdldFxuICAgICAgICApO1xuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGJlZW4gbWFya2VkIGFzIGEgc2VydmVyIEFQSSBlaXRoZXIgZXhwbGljaXRseSBvciBieSBkZWZhdWx0LlxuICAgICAgICAgICAgc2V0IHRoZSBhcHByb3ByaWF0ZSBtZXRhZGF0YS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5vbiA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUuX19vbl9fID0gJ3NlcnZlcic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkudHlwZSkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZS5fX3JldHVybnNfXyA9IGRlZmluZVByb3BlcnR5LnR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5Lm9mKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc19fID0gZGVmaW5lUHJvcGVydHkub2Y7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc2FycmF5X18gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cblxuZnVuY3Rpb24gYXBwbHlSdWxlU2V0KHByb3AsIHJ1bGVTZXQpIHtcbiAgICBpZiAocHJvcCBpbnN0YW5jZW9mIEFycmF5ICYmIHJ1bGVTZXQgaW5zdGFuY2VvZiBBcnJheSAmJiBydWxlU2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHByb3Auc29tZShmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGVTZXQuaW5kZXhPZihyKSA+PSAwO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcHJvcDtcbiAgICB9XG59Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7O0FBR0g7O0dBRUc7QUFFSCx3QkFBd0I7QUFDeEIsMkVBQTJFO0FBQzNFLGdHQUFnRztBQUNoRyxTQUFnQixjQUFjLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNO0lBQ2xFLElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxjQUFjLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUM3QyxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUMsQ0FBRSxvQ0FBb0M7SUFFcEUsc0JBQXNCO0lBQ3RCLElBQU0sU0FBUyxHQUFHLFNBQVMsU0FBUyxDQUFDLE1BQU07UUFDdkMsbUZBQW1GO1FBQ25GLDBCQUEwQjtRQUMxQixJQUFJLEdBQUcsRUFBRTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFBO1NBQ3BDO2FBQU07WUFDSCxHQUFHLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEU7UUFFRCxvRUFBb0U7UUFDcEUsTUFBTSxDQUFDLGNBQWMsR0FBRyxVQUFVLFlBQVksRUFBRSxjQUFjO1lBQzFELElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtnQkFDckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUMxRCxZQUFZLEVBQ1osY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLEVBQUUsRUFDakIsY0FBYyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUNsRSxJQUFNLE9BQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUVuQywrQ0FBK0M7Z0JBQy9DLGNBQWMsQ0FBQyxHQUFHLEdBQUc7b0JBQ2pCLElBQUksa0JBQWtCLEdBQUcsT0FBSyxZQUFjLENBQUM7b0JBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTt3QkFDM0IsSUFBSSxhQUFhLEdBQUcsY0FBYyxDQUFDLEVBQUUsSUFBSSxjQUFjLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQzt3QkFDckUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7cUJBQ3pFO29CQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQztnQkFFRixJQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztnQkFDNUIsY0FBYyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2FBQy9EO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsK0RBQStEO1FBQy9ELElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDbEM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLHNFQUFzRTtJQUN0RSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDbEIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDNUI7U0FBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLFlBQVksS0FBSyxFQUFFO1FBQzFFLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0tBQ2xDO1NBQU0sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFvQixNQUFNLENBQUMsVUFBVSw4RUFBeUUsTUFBUSxDQUFDLENBQUM7S0FDeEk7SUFFRCxvRkFBb0Y7SUFDcEYsb0ZBQW9GO0lBQ3BGLHdIQUF3SDtJQUN4SCxHQUFHLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0QsT0FBTyxTQUFTLENBQUMsQ0FBQywwREFBMEQ7QUFDaEYsQ0FBQztBQW5FRCx3Q0FtRUM7QUFFRCxTQUFnQixTQUFTLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTO0lBQ3pELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxlQUFlO0lBQzdGLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDL0QsS0FBSyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMvRCxJQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RSxPQUFPLFVBQVUsTUFBTSxFQUFFLFNBQVM7UUFDOUIsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqQyxJQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM1QixLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QixLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QixjQUFjLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0UsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQztBQUNOLENBQUM7QUFiRCw0QkFhQztBQUdELFNBQWdCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsY0FBYztJQUNqRCxjQUFjLEdBQUcsY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUV0Qzs7O09BR0c7SUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRTtRQUNwQixjQUFjLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQztLQUNoQztJQUVELGlFQUFpRTtJQUNqRSxJQUFJLGVBQWUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7SUFDdEQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFFdkMsT0FBTyxVQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVTtRQUM3QyxVQUFVLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQzVDLFlBQVksRUFDWixVQUFVLENBQUMsS0FBSyxFQUNoQixjQUFjLENBQUMsRUFBRSxFQUNqQixjQUFjLENBQUMsUUFBUSxFQUN2QixlQUFlLEVBQ2YsUUFBUSxFQUNSLGNBQWMsQ0FBQyxNQUFNLENBQ3hCLENBQUM7UUFFRjs7O1dBR0c7UUFDSCxJQUFJLGNBQWMsQ0FBQyxFQUFFLEtBQUssUUFBUSxFQUFFO1lBQ2hDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztTQUN0QztRQUVELElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtZQUNyQixVQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDakQsVUFBVSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDNUM7SUFDTCxDQUFDLENBQUM7QUFDTixDQUFDO0FBMUNELHdCQTBDQztBQUFBLENBQUM7QUFHRixTQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTztJQUMvQixJQUFJLElBQUksWUFBWSxLQUFLLElBQUksT0FBTyxZQUFZLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7S0FDTjtTQUFNO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF0dGFjaGVzIHN5bmNTdGF0ZXMgcHJvcHMgdG8gdGhlIHRlbXBsYXRlXG4gKiBJZiBhIGNsYXNzIGlzIGRlY29yYXRlZCBsaWtlIEBzdXBlcnR5cGVDbGFzcyh7c3luY1N0YXRlczogWydpbnRlcm5hbCcsICdob21lJ119KSwgYW55IGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzXG4gKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBleGlzdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhcHBsaWNhdGlvbiwgc2hvdWxkIG9ubHkgYmUgc2VudCBvdmVyIHdoZW4gdGhlIGNvbnRyb2xsZXIgc3RhdGUgb25cbiAqIHRoZSBzZXJ2ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGNvcnJlY3Qgc3luY1N0YXRlIChpZiBhbmQgb25seSBpZiBjb250cm9sbGVyLnN5bmNTdGF0ZSA9ICdob21lJyBvciAnaW50ZXJuYWwnLCB0aGVuIGFuXG4gKiBvYmplY3Qgb2YgdGhpcyBjbGFzcyB3aWxsIGJlIHNlbnQsIG90aGVyd2lzZSBzZW1vdHVzIHdpbGwgcmVmcmFpbiBmcm9tIHNlbmRpbmcgaXQgb3ZlcikuIFRoZSBjYXZlYXQsIGhvd2V2ZXIsIGlzIGlmXG4gKiBzZW1vdHVzJyBjb250cm9sbGVyJ3Mgc3luY1N0YXRlIGlzIGRlZmluZWQgYXMgJyonIHRoZW4gd2Ugd2lsbCBieSBkZWZhdWx0IHNlbmQgYWxsIHRlbXBsYXRlcyB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyLVxuICogd2lzZSAodGhlIHNhbWUgYXMgdHJlYXRpbmcgc3luY1N0YXRlOiBbJyonXSlcbiAqXG4gKi9cblxuXG4vKipcbiAqIEBUT0RPOiBUaGlzIHNob3VsZCBiZSBjb25zb2xpZGF0ZWQgd2l0aCBTdXBlcnR5cGUncyB2ZXJzaW9uIHdoZW4gd2UgZmluaXNoIGNvbnZlcnRpbmcgdG8gdHlwZXNjcmlwdFxuICovXG5cbi8vIENvbnRleHQgU3dpdGNoIENoYWluOlxuLy8gMXN0IHBhc3M6IFNlbW90dXMgKHNDbGFzcykgLT4gU3VwZXJ0eXBlIChzQ2xhc3MpIC0+IFNlbW90dXMgKHJldHVybiBSZXQpXG4vLyAybmQgcGFzczogU2Vtb3R1cyAoc0NsYXNzKSAtPiBTZW1vdHVzIChkZWNvcmF0b3IpIC0+IFN1cGVydHlwZSAoZXZhbCByZXQpIC0+IFNlbW90dXMgKHJldHVybilcbmV4cG9ydCBmdW5jdGlvbiBzdXBlcnR5cGVDbGFzcyhvYmplY3RUZW1wbGF0ZSwgU3VwZXJ0eXBlTW9kdWxlLCB0YXJnZXQpOiBhbnkge1xuICAgIGxldCByZXQ7XG4gICAgbGV0IE9iamVjdFRlbXBsYXRlID0gU3VwZXJ0eXBlTW9kdWxlLmRlZmF1bHQ7XG4gICAgbGV0IHN5bmNTdGF0ZXM6IFN0cmluZ1tdID0gW107ICAvLyBEZWZhdWx0IHN5bmNTdGF0ZXMgdG8gZW1wdHkgYXJyYXlcblxuICAgIC8vIERlY29yYXRvciB3b3JrZXJiZWVcbiAgICBjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0KSB7XG4gICAgICAgIC8vIHNlY29uZCB0aW1lIHdlIG11c3QgY2FsbCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQgdGhlIGZpcnN0IHRpbWUgYmVjYXVzZSBpdCBoYXMgdGhlXG4gICAgICAgIC8vIHByb3BlcnRpZXMgYXMgYSBjbG9zdXJlXG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICAgIHJldCA9IHJldCh0YXJnZXQsIG9iamVjdFRlbXBsYXRlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0ID0gU3VwZXJ0eXBlTW9kdWxlLnN1cGVydHlwZUNsYXNzKHRhcmdldCwgb2JqZWN0VGVtcGxhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFpbmx5IGZvciBwZXJzaXN0b3IgcHJvcGVydGllcyB0byBtYWtlIHN1cmUgdGhleSBnZXQgdHJhbnNwb3J0ZWRcbiAgICAgICAgdGFyZ2V0LmNyZWF0ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5ib2R5KSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtwcm9wZXJ0eU5hbWVdID0gb2JqZWN0VGVtcGxhdGUuX3NldHVwRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkuYm9keSxcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkub24sXG4gICAgICAgICAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZS5fX2Ftb3JwaGljcHJvcHNfX1twcm9wZXJ0eU5hbWVdID0gZGVmaW5lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkZWZpbmVQcm9wZXJ0eS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXIgYWN0dWFsbHkgaW5pdGlhbGl6ZXMgdGhlIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZVNwYWNlZFByb3BlcnR5ID0gYF9fJHtwcm9wZXJ0eU5hbWV9YDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXNbbmFtZVNwYWNlZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsb25lVGVtcGxhdGUgPSBkZWZpbmVQcm9wZXJ0eS5vZiB8fCBkZWZpbmVQcm9wZXJ0eS50eXBlIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW25hbWVTcGFjZWRQcm9wZXJ0eV0gPSBPYmplY3RUZW1wbGF0ZS5jbG9uZSh2YWx1ZSwgY2xvbmVUZW1wbGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbbmFtZVNwYWNlZFByb3BlcnR5XTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZGVmaW5lUHJvcGVydGllcyA9IHt9O1xuICAgICAgICAgICAgICAgIG9iamVjdFRlbXBsYXRlLl9zZXR1cFByb3BlcnR5KHByb3BlcnR5TmFtZSwgZGVmaW5lUHJvcGVydHksIHVuZGVmaW5lZCwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LnByb3RvdHlwZSwgZGVmaW5lUHJvcGVydGllcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQXNzaWduaW5nIHN5bmMgc3RhdGVzIGZyb20gcHJvcCBkZWZpbml0aW9uIG9udG8gdGhlIHRlbXBsYXRlXG4gICAgICAgIGlmIChzeW5jU3RhdGVzKSB7XG4gICAgICAgICAgICB0YXJnZXQuc3luY1N0YXRlcyA9IHN5bmNTdGF0ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH07XG5cbiAgICAvLyBDYWxsaW5nIHRoZSBkZWNvcmF0b3IgcHJvY2Vzc29yIHdpdGggdGhlIGFjdHVhbCBUZW1wbGF0ZSAoMm5kIHRpbWUpXG4gICAgaWYgKHRhcmdldC5wcm90b3R5cGUpIHtcbiAgICAgICAgcmV0dXJuIGRlY29yYXRvcih0YXJnZXQpO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRhcmdldC5zeW5jU3RhdGVzICYmIHRhcmdldC5zeW5jU3RhdGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgc3luY1N0YXRlcyA9IHRhcmdldC5zeW5jU3RhdGVzO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0ICYmIHRhcmdldC5zeW5jU3RhdGVzICkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFNlbW90dXMgd2FybmluZzogJHt0YXJnZXQuc3luY1N0YXRlc30gaXMgbm90IGFuIGFycmF5IHZhbHVlLCBzbyBub3Qgc2V0dGluZyB1cCBTeW5jU3RhdGVzIGZvciB0aGlzIHRhcmdldDogJHt0YXJnZXR9YCk7XG4gICAgfVxuXG4gICAgLy8gQ2FsbGVkIGZpcnN0IHRpbWUgd2l0aCBwYXJhbWV0ZXJzIChwcm9wIGRlZmluaXRpb24pIHJhdGhlciB0aGFuIHRhcmdldCAodGVtcGxhdGUpXG4gICAgLy8gY2FsbCBzdXBlcnR5cGVzIHN1cGVydHlwZUNsYXNzIGZ1bmN0aW9uIHdoaWNoIHdpbGwgcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBtdXN0IGJlXG4gICAgLy8gY2FsbGVkIG9uIHRoZSAybmQgcGFzcyB3aGVuIHdlIGhhdmUgYSB0YXJnZXQuIFRoaXMgZnVuY3Rpb24ncyBjbG9zdXJlIHdpbGwgYWxzbyBoYXZlIGEgcmVmIHRvIHRoZSBvcmlnaW5hbCBwcm9wZXJ0aWVzXG4gICAgcmV0ID0gU3VwZXJ0eXBlTW9kdWxlLnN1cGVydHlwZUNsYXNzKHRhcmdldCwgb2JqZWN0VGVtcGxhdGUpO1xuICAgIHJldHVybiBkZWNvcmF0b3I7IC8vIGRlY29yYXRvciB3aWxsIGJlIGNhbGxlZCAybmQgdGltZSB3aXRoIHJldCBhcyBhIGNsb3N1cmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFN1cGVydHlwZSh0ZW1wbGF0ZSwgb2JqZWN0VGVtcGxhdGUsIFN1cGVydHlwZSkge1xuICAgIHJldHVybiBTdXBlcnR5cGUuY2FsbCh0ZW1wbGF0ZSwgb2JqZWN0VGVtcGxhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHkob2JqZWN0VGVtcGxhdGUsIFN1cGVydHlwZU1vZHVsZSwgcHJvcHMsIHRvQ2xpZW50UnVsZVNldCwgdG9TZXJ2ZXJSdWxlU2V0KSB7XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB7fTtcbiAgICBwcm9wcy50b0NsaWVudCA9IGFwcGx5UnVsZVNldChwcm9wcy50b0NsaWVudCwgdG9DbGllbnRSdWxlU2V0KTtcbiAgICBwcm9wcy50b1NlcnZlciA9IGFwcGx5UnVsZVNldChwcm9wcy50b1NlcnZlciwgdG9TZXJ2ZXJSdWxlU2V0KTtcbiAgICBjb25zdCBiYXNlRGVjb3JhdG9yID0gU3VwZXJ0eXBlTW9kdWxlLnByb3BlcnR5KHByb3BzLCBvYmplY3RUZW1wbGF0ZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHRhcmdldEtleSkge1xuICAgICAgICBiYXNlRGVjb3JhdG9yKHRhcmdldCwgdGFyZ2V0S2V5KTtcbiAgICAgICAgY29uc3QgZGVmaW5lUHJvcGVydGllcyA9IHt9O1xuICAgICAgICBwcm9wcy5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgcHJvcHMud3JpdGFibGUgPSB0cnVlO1xuICAgICAgICBvYmplY3RUZW1wbGF0ZS5fc2V0dXBQcm9wZXJ0eSh0YXJnZXRLZXksIHByb3BzLCB1bmRlZmluZWQsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIGRlZmluZVByb3BlcnRpZXMpO1xuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW90ZShvYmplY3RUZW1wbGF0ZSwgZGVmaW5lUHJvcGVydHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5IHx8IHt9O1xuXG4gICAgLypcbiAgICAgICAgaWYgd2UgaGF2ZW4ndCBzdXBwbGllZCBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGludG8gdGhlIGRlY29yYXRvcixcbiAgICAgICAgIGRlZmF1bHQgdGhlIHJvbGUgb2YgdGhpcyBmdW5jdGlvbiB0byBhIHNlcnZlciBBUEkgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBpZiAoIWRlZmluZVByb3BlcnR5Lm9uKSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5Lm9uID0gJ3NlcnZlcic7XG4gICAgfVxuXG4gICAgLy8gZnVuY3Rpb24gdGhhdCB3ZSBjYWxsIHRvIHZhbGlkYXRlIGFueSBjaGFuZ2VzIGZvciByZW1vdGUgY2FsbHNcbiAgICBsZXQgcmVtb3RlVmFsaWRhdG9yID0gZGVmaW5lUHJvcGVydHkuc2VydmVyVmFsaWRhdGlvbjtcbiAgICBsZXQgaXNQdWJsaWMgPSAhIWRlZmluZVByb3BlcnR5LnB1YmxpYztcblxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpIHtcbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IG9iamVjdFRlbXBsYXRlLl9zZXR1cEZ1bmN0aW9uKFxuICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZSxcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5Lm9uLFxuICAgICAgICAgICAgZGVmaW5lUHJvcGVydHkudmFsaWRhdGUsXG4gICAgICAgICAgICByZW1vdGVWYWxpZGF0b3IsXG4gICAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICAgIGRlZmluZVByb3BlcnR5LnRhcmdldFxuICAgICAgICApO1xuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGJlZW4gbWFya2VkIGFzIGEgc2VydmVyIEFQSSBlaXRoZXIgZXhwbGljaXRseSBvciBieSBkZWZhdWx0LlxuICAgICAgICAgICAgc2V0IHRoZSBhcHByb3ByaWF0ZSBtZXRhZGF0YS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChkZWZpbmVQcm9wZXJ0eS5vbiA9PT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsdWUuX19vbl9fID0gJ3NlcnZlcic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmaW5lUHJvcGVydHkudHlwZSkge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZS5fX3JldHVybnNfXyA9IGRlZmluZVByb3BlcnR5LnR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmluZVByb3BlcnR5Lm9mKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc19fID0gZGVmaW5lUHJvcGVydHkub2Y7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbHVlLl9fcmV0dXJuc2FycmF5X18gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cblxuZnVuY3Rpb24gYXBwbHlSdWxlU2V0KHByb3AsIHJ1bGVTZXQpIHtcbiAgICBpZiAocHJvcCBpbnN0YW5jZW9mIEFycmF5ICYmIHJ1bGVTZXQgaW5zdGFuY2VvZiBBcnJheSAmJiBydWxlU2V0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHByb3Auc29tZShmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGVTZXQuaW5kZXhPZihyKSA+PSAwO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcHJvcDtcbiAgICB9XG59Il19 |
@@ -118,3 +118,3 @@ "use strict"; | ||
function preCallHook(payload, forceupdate) { | ||
var semotus = payload.semotus, remoteCall = payload.remoteCall, callContext = payload.callContext, session = payload.session, subscriptionId = payload.subscriptionId, remoteCallId = payload.remoteCallId, restoreSessionCallback = payload.restoreSessionCallback; | ||
var semotus = payload.semotus, remoteCall = payload.remoteCall, session = payload.session, callContext = payload.callContext, HTTPObjs = payload.HTTPObjs; | ||
semotus.logger.info({ | ||
@@ -134,3 +134,5 @@ component: 'semotus', | ||
} | ||
return semotus.controller.preServerCall.call(semotus.controller, remoteCall.changes.length > 2, changes, callContext, forceupdate); | ||
var remoteObject = session.objects[remoteCall.id]; | ||
var isPublic = semotus.role === 'server' && remoteObject[remoteCall.name].remotePublic; | ||
return semotus.controller.preServerCall.call(semotus.controller, remoteCall.changes.length > 2, changes, callContext, forceupdate, remoteCall.name, remoteCall, isPublic, HTTPObjs); | ||
} | ||
@@ -262,10 +264,10 @@ else { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var semotus, remoteCall, callContext, hasChanges; | ||
var semotus, remoteCall, callContext, HTTPObjs, hasChanges; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
semotus = payload.semotus, remoteCall = payload.remoteCall, callContext = payload.callContext; | ||
semotus = payload.semotus, remoteCall = payload.remoteCall, callContext = payload.callContext, HTTPObjs = payload.HTTPObjs; | ||
if (!(semotus.controller && semotus.controller.postServerCall)) return [3 /*break*/, 2]; | ||
hasChanges = remoteCall.changes.length > 2; | ||
return [4 /*yield*/, semotus.controller.postServerCall.call(semotus.controller, hasChanges, callContext, semotus.changeString)]; | ||
return [4 /*yield*/, semotus.controller.postServerCall.call(semotus.controller, hasChanges, callContext, semotus.changeString, HTTPObjs)]; | ||
case 1: | ||
@@ -499,2 +501,2 @@ _a.sent(); | ||
exports.postCallErrorLog = postCallErrorLog; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXFEO0FBR3JEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBc0IsV0FBVyxDQUFDLE9BQTJCLEVBQUUsV0FBcUI7Ozs7Ozs7b0JBRzlELHFCQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUE7O29CQUFoRCxXQUFXLEdBQUcsU0FBa0MsQ0FBQztvQkFDakQscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBQTs7b0JBQXZDLFNBQXVDLENBQUM7b0JBQ3ZCLHFCQUFNLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFBOztvQkFBdkQsVUFBVSxHQUFHLFNBQTBDO29CQUM5QyxxQkFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUE7O29CQUF4RCxVQUFVLEdBQUcsU0FBMkMsQ0FBQztvQkFDMUMscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBQTs7b0JBQS9DLE1BQU0sR0FBRyxTQUFzQztvQkFDckQscUJBQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBQTs7b0JBQW5DLFNBQW1DLENBQUM7b0JBQ3BDLHFCQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUE7O29CQUF0QyxTQUFzQyxDQUFDOzs7O29CQUV2QyxxQkFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUcsQ0FBQyxFQUFBOztvQkFBbkMsU0FBbUMsQ0FBQzs7Ozs7O0NBRTNDO0FBYkQsa0NBYUM7QUFHRDs7OztHQUlHO0FBQ0gsU0FBZSxTQUFTLENBQUMsT0FBMkI7Ozs7WUFDekMsT0FBTyxHQUE0RixPQUFPLFFBQW5HLEVBQUUsVUFB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QUFPLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQUdEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBc0IsRUFBRSxXQUF3QjtJQUM1SCxJQUFJLE9BQU8sR0FBRztRQUNWLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsSUFBSSxFQUFFO1lBQ0YsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxtQkFBTyxDQUFDLFdBQVcsQ0FBQztZQUM5QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsT0FBTyxFQUFFLFNBQVM7U0FDckI7UUFDRCxRQUFRLEVBQUUsU0FBUztLQUN0QixDQUFDO0lBRUYsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFFNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0tBQ2xDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBcEJELDRDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVsYXksIGdldEVycm9yLCBsb2dUaW1lfSBmcm9tICcuL1V0aWxpdGllcyc7XG5pbXBvcnQge0NhbGxDb250ZXh0LCBQcm9jZXNzQ2FsbFBheWxvYWQsIFJlbW90ZUNhbGwsIFNlbW90dXMsIFNlc3Npb259IGZyb20gJy4vVHlwZXMnO1xuXG4vKipcbiAqIFdlIHByb2Nlc3MgdGhlIGNhbGwgdGhlIHJlbW90ZSBtZXRob2QgaW4gc3RhZ2VzIHN0YXJ0aW5nIGJ5IGxldHRpbmcgdGhlIGNvbnRyb2xsZXIgZXhhbWluZSB0aGVcbiAqIGNoYW5nZXMgKHByZUNhbGxIb29rKSBhbmQgZ2l2aW5nIGl0IGEgY2hhbmNlIHRvIHJlZnJlc2ggZGF0YSBpZiBpdCBuZWVkcyB0by4gIFRoZW4gd2UgYXBwbHkgYW55XG4gKiBjaGFuZ2VzIGluIHRoZSBtZXNzYWdlcyBhbmQgZ2l2ZSB0aGUgb2JqZWN0IG93bmluZyB0aGUgbWV0aG9kIGEgY2hhbmNlIHRvIHZhbGlkYXRlIHRoYXQgdGhlXG4gKiBjYWxsIGlzIHZhbGlkIGFuZCB0YWtlIGNhcmUgb2YgYW55IGF1dGhvcml6YXRpb24gY29uY2VybnMuICBGaW5hbGx5IHdlIGxldCB0aGUgY29udHJvbGxlciBwZXJmb3JtXG4gKiBhbnkgcG9zdC1jYWxsIHByb2Nlc3Npbmcgc3VjaCBhcyBjb21taXRpbmcgZGF0YSBhbmQgdGhlbiB3ZSBkZWFsIHdpdGggYSBmYWlsdXJlIG9yIHN1Y2Nlc3MuXG4gKlxuICogQHBhcmFtIHBheWxvYWRcbiAqIEBwYXJhbSB7dW5rbm93bn0gZm9yY2V1cGRhdGUgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzQ2FsbChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGZvcmNldXBkYXRlPzogYm9vbGVhbikge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgZm9yY2V1cGRhdGUgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoZm9yY2V1cGRhdGUpO1xuICAgICAgICBhd2FpdCBwcmVDYWxsSG9vayhwYXlsb2FkLCBmb3JjZXVwZGF0ZSk7XG4gICAgICAgIGxldCB2YWxpZGF0aW9uID0gYXdhaXQgYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsKHBheWxvYWQpO1xuICAgICAgICB2YWxpZGF0aW9uID0gYXdhaXQgY3VzdG9tVmFsaWRhdGlvbihwYXlsb2FkLCB2YWxpZGF0aW9uKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsbElmVmFsaWQocGF5bG9hZCwgdmFsaWRhdGlvbik7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsSG9vayhwYXlsb2FkLCByZXN1bHQpO1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbFN1Y2Nlc3MocGF5bG9hZCwgcmVzdWx0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxGYWlsdXJlKHBheWxvYWQsIGVycik7XG4gICAgfVxufVxuXG5cbi8qKlxuICogSWYgdGhlcmUgaXMgYW4gdXBkYXRlIGNvbmZsaWN0IHdlIHdhbnQgdG8gcmV0cnkgYWZ0ZXIgcmVzdG9yaW5nIHRoZSBzZXNzaW9uXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmV0cnlDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgaWYgKHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2spIHtcbiAgICAgICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9jZXNzQ2FsbChwYXlsb2FkLCB0cnVlKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hhdCBvYmplY3RzIGNoYW5nZWQgYW5kIHBhc3MgdGhpcyB0byB0aGUgcHJlU2VydmVyQ2FsbCBtZXRob2Qgb24gdGhlIGNvbnRyb2xsZXJcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICBmb3JjZXVwZGF0ZSB1bmtub3duXG4gKlxuICogQHJldHVybnMgIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcHJlQ2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBmb3JjZXVwZGF0ZT86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAncHJlU2VydmVyQ2FsbCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW90ZUNhbGwubmFtZVxuICAgICk7XG5cbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5wcmVTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGxldCBjaGFuZ2VzID0ge307XG5cbiAgICAgICAgZm9yICh2YXIgb2JqSWQgaW4gSlNPTi5wYXJzZShyZW1vdGVDYWxsLmNoYW5nZXMpKSB7XG4gICAgICAgICAgICBjaGFuZ2VzW3NlbW90dXMuX19kaWN0aW9uYXJ5X19bb2JqSWQucmVwbGFjZSgvW14tXSotLywgJycpLnJlcGxhY2UoLy0uKi8sICcnKV0uX19uYW1lX19dID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbC5jYWxsKFxuICAgICAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDIsXG4gICAgICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgICAgICBmb3JjZXVwZGF0ZVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBcHBseSBjaGFuZ2VzIGluIHRoZSBtZXNzYWdlIGFuZCB0aGVuIHZhbGlkYXRlIHRoZSBjYWxsLiAgVGhyb3cgXCJTeW5jIEVycm9yXCIgaWYgY2hhbmdlcyBjYW4ndCBiZSBhcHBsaWVkXG4gKlxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuZnVuY3Rpb24gYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ2FwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgbGV0IGNoYW5nZXMgPSBKU09OLnBhcnNlKHJlbW90ZUNhbGwuY2hhbmdlcyk7XG5cbiAgICBjb25zdCByZXMgPSBzZW1vdHVzLl9hcHBseUNoYW5nZXMoY2hhbmdlcywgc2Vtb3R1cy5yb2xlID09PSAnY2xpZW50Jywgc3Vic2NyaXB0aW9uSWQsIGNhbGxDb250ZXh0KTtcbiAgICBpZiAocmVzKSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvYmplY3QgZm9yIHJlbW90ZSBjYWxsICR7cmVtb3RlQ2FsbC5pZH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGZ1bmN0aW9uIGlzIHN1cHBvc2VkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmcm9tIGNsaWVudFxuICAgICAgICBpZiAob2JqLl9fcHJvdG9fX1tyZW1vdGVDYWxsLm5hbWVdLl9fb25fXyAhPT0gJ3NlcnZlcicpIHtcbiAgICAgICAgICAgIHRocm93ICdJbnZhbGlkIEZ1bmN0aW9uIENhbGw7IG5vdCBhbiBBUEkgZnVuY3Rpb24nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgb2JqLnZhbGlkYXRlU2VydmVyQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG9iai52YWxpZGF0ZVNlcnZlckNhbGwuY2FsbChvYmosIHJlbW90ZUNhbGwubmFtZSwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgJ1N5bmMgRXJyb3InO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBcHBseSBmdW5jdGlvbiBzcGVjaWZpYyBjdXN0b20gc2VydmVyU2lkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uc1xuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSBSZXN1bHQgb2YgcHJldmlvdXMgdmFsaWRhdGlvbiBzdGVwIChhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwpXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHBhc3NlZCBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBjdXN0b21WYWxpZGF0aW9uKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgaXNWYWxpZDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgbGV0IGxvZ2dlck9iamVjdCA9IHtcbiAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgYWN0aXZpdHk6ICdjdXN0b21WYWxpZGF0aW9uJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBsZXQgcmVtb3RlT2JqZWN0ID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhsb2dnZXJPYmplY3QsIHJlbW90ZUNhbGwubmFtZSk7XG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiByZW1vdGVPYmplY3RbcmVtb3RlQ2FsbC5uYW1lXS5zZXJ2ZXJWYWxpZGF0aW9uKSB7XG4gICAgICAgIGxldCBhcmdzID0gc2Vtb3R1cy5fZXh0cmFjdEFyZ3VtZW50cyhyZW1vdGVDYWxsKTtcbiAgICAgICAgYXJncy51bnNoaWZ0KHJlbW90ZU9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnNlcnZlclZhbGlkYXRpb24uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBjaGFuZ2VzIGNvdWxkIGJlIGFwcGxpZWQgYW5kIHRoZSB2YWxpZGF0aW9uIHdhcyBzdWNjZXNzZnVsIGNhbGwgdGhlIG1ldGhvZFxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzVmFsaWQgLSB0YWtlcyBhIGZsYWcgaWYgdGhlIGNhbGwgaXMgdmFsaWQgb3Igbm90LCBpZiBpdCBpcyB0aGVuIHdlIHByb2NlZWQgbm9ybWFsbHksXG4gKiBvdGhlcndpc2UsIHdlIHRocm93IGFuIGVycm9yIGFuZCBzdG9wIGV4ZWN1dGlvblxuICpcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge3Vua25vd259IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2FsbElmVmFsaWQocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nZ2VyT2JqZWN0ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICBhY3Rpdml0eTogJ2NhbGxJZlZhbGlkJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGwuaWRcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKGxvZ2dlck9iamVjdCwgcmVtb3RlQ2FsbC5uYW1lKTtcblxuICAgIGxldCBvYmogPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBpZiAoIW9ialtyZW1vdGVDYWxsLm5hbWVdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0LicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZCAmJiByZW1vdGVDYWxsICYmIHJlbW90ZUNhbGwubmFtZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVtb3RlQ2FsbC5uYW1lICsgJyByZWZ1c2VkJyk7XG4gICAgfVxuXG4gICAgbGV0IGFyZ3MgPSBzZW1vdHVzLl9leHRyYWN0QXJndW1lbnRzKHJlbW90ZUNhbGwpO1xuXG4gICAgcmV0dXJuIG9ialtyZW1vdGVDYWxsLm5hbWVdLmFwcGx5KG9iaiwgYXJncyk7XG59XG5cbi8qKlxuICogTGV0IHRoZSBjb250cm9sbGVyIGtub3cgdGhhdCB0aGUgbWV0aG9kIHdhcyBjb21wbGV0ZWQgYW5kIGdpdmUgaXQgYSBjaGFuY2UgdG8gY29tbWl0IGNoYW5nZXNcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICByZXR1cm5WYWx1ZSB1bmtub3duXG4gKlxuICogQHJldHVybnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxIb29rKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgcmV0dXJuVmFsdWUpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHR9ID0gcGF5bG9hZDtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZXM6IGJvb2xlYW4gPSByZW1vdGVDYWxsLmNoYW5nZXMubGVuZ3RoID4gMjtcbiAgICAgICAgYXdhaXQgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsLmNhbGwoc2Vtb3R1cy5jb250cm9sbGVyLCBoYXNDaGFuZ2VzLCBjYWxsQ29udGV4dCwgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbi8qKlxuICogUGFja2FnZSB1cCBhbnkgY2hhbmdlcyByZXN1bHRpbmcgZnJvbSB0aGUgZXhlY3V0aW9uIGFuZCBzZW5kIHRoZW0gYmFjayBpbiB0aGUgbWVzc2FnZSwgY2xlYXJpbmdcbiAqIG91ciBjaGFuZ2UgcXVldWUgdG8gYWNjdW11bGF0ZSBtb3JlIGNoYW5nZXMgZm9yIHRoZSBuZXh0IGNhbGxcbiAqXG4gKiBAcGFyYW0gc2Vtb3R1c1xuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSByZW1vdGVDYWxsSWRcbiAqIEBwYXJhbSB7dW5rbm93bn0gcmV0IHVua25vd25cbiAqL1xuZnVuY3Rpb24gcG9zdENhbGxTdWNjZXNzKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgcmV0KTogdm9pZCB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCByZW1vdGVDYWxsSWR9ID0gcGF5bG9hZDtcblxuICAgIHNlbW90dXMubG9nZ2VyLmluZm8oXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICAgICAgYWN0aXZpdHk6ICdwb3N0Q2FsbC5zdWNjZXNzJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgY2FsbFRpbWU6IGxvZ1RpbWUoY2FsbENvbnRleHQpLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW90ZUNhbGwubmFtZVxuICAgICk7XG5cbiAgICBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzLCBzZXNzaW9uLHtcbiAgICAgICAgdHlwZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgc3luYzogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IEpTT04uc3RyaW5naWZ5KHNlbW90dXMuX3RvVHJhbnNwb3J0KHJldCkpLFxuICAgICAgICBuYW1lOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbElkXG4gICAgfSk7XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGlkZW50aWZ5IGlmIHRoZXJlJ3MgYSBwb3N0U2VydmVyRXJyb3JIYW5kbGVyIGNhbGxiYWNrIG9uIHRoZSBiYXNlIGNvbnRyb2xsZXJcbiAqIElmIHRoZXJlIGlzLCB3ZSBleGVjdXRlIHRoZSBoYW5kbGVyLCBhbmQgaWYgd2UgY2F0Y2ggYW4gZXJyb3IgaW4gdGhlIGhhbmRsZXIsIHdlIHByb3BvZ2F0ZSBpdCB1cCB0byB0aGUgbG9nZ2VyLlxuICogQHBhcmFtIGxvZ2dlclxuICogQHBhcmFtIHsqfSBjb250cm9sbGVyXG4gKiBAcGFyYW0gdHlwZVxuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSByZW1vdGVDYWxsSWRcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICogQHBhcmFtIGNoYW5nZVN0cmluZ1xuICogQHBhcmFtIHNlc3Npb25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUVycm9ySGFuZGxlcihsb2dnZXIsIGNvbnRyb2xsZXI6IGFueSwgdHlwZSwgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgcmVtb3RlQ2FsbElkLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZywgc2Vzc2lvbjogU2Vzc2lvbikge1xuXG4gICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci5wb3N0U2VydmVyRXJyb3JIYW5kbGVyKSB7XG4gICAgICAgIGxldCBlcnJvclR5cGUgPSB0eXBlO1xuICAgICAgICBsZXQgZnVuY3Rpb25OYW1lID0gcmVtb3RlQ2FsbC5uYW1lO1xuICAgICAgICBsZXQgb2JqID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdKSB7XG4gICAgICAgICAgICBvYmogPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxvZ0JvZHkgPSB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsLmZhaWx1cmUnLFxuICAgICAgICAgICAgYWN0aXZpdHk6ICdwb3N0Q2FsbC5yZXNvbHZlRXJyb3JIYW5kbGVyJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNvbnRyb2xsZXIucG9zdFNlcnZlckVycm9ySGFuZGxlci5jYWxsKGNvbnRyb2xsZXIsIGVycm9yVHlwZSwgcmVtb3RlQ2FsbElkLCBvYmosIGZ1bmN0aW9uTmFtZSwgY2FsbENvbnRleHQsIGNoYW5nZVN0cmluZyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoZXJyb3IubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIGxvZ0JvZHkuZGF0YS5tZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ0JvZHkuZGF0YS5tZXNzYWdlID0gSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IobG9nQm9keSwgJ1VzZXIgZGVmaW5lZCBwb3N0U2VydmVyRXJyb3JIYW5kbGVyIHRocmV3IGFuIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogSGFuZGxlIGVycm9ycyBieSByZXR1cm5pbmcgYW4gYXByb3ByaWF0ZSBtZXNzYWdlLiAgSW4gYWxsIGNhc2VzIGNoYW5nZXMgc2VudCBiYWNrIHRob3VnaCB0aGV5XG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gY2FsbENvbnRleHRcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IGVyciB1bmtub3duXG4gKlxuICogQHJldHVybnMge3Vua25vd259IEEgUHJvbWlzZVxuICovXG5hc3luYyBmdW5jdGlvbiBwb3N0Q2FsbEZhaWx1cmUocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBlcnIpIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcblxuICAgIGxldCBsb2dTdHJpbmcgPSAnJztcblxuICAgIGxldCBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7fTtcblxuICAgIGxldCB1cGRhdGVDb25mbGljdFJldHJ5ID0gZmFsc2U7XG5cbiAgICBpZiAoZXJyID09PSAnU3luYyBFcnJvcicpIHtcbiAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnN5bmNFcnJvcicsIHVuZGVmaW5lZCwgJ2Vycm9yJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIHBhY2thZ2VDaGFuZ2VzUGF5bG9hZCA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdyZXNwb25zZScsXG4gICAgICAgICAgICBzeW5jOiBmYWxzZSxcbiAgICAgICAgICAgIGNoYW5nZXM6ICcnXG4gICAgICAgIH07XG4gICAgfSBlbHNlIGlmIChlcnIubWVzc2FnZSA9PSAnVXBkYXRlIENvbmZsaWN0Jykge1xuICAgICAgICAvLyBOb3QgdGhpcyBtYXkgYmUgY2F1Z2h0IGluIHRoZSB0cmFuc3BvcnQgKGUuZy4gQW1vcnBoaWMpIGFuZCByZXRyaWVkKVxuXG4gICAgICAgIC8vIGluY3JlbWVudCBjYWxsQ29udGV4dC5yZXRyaWVzIGFmdGVyIGNoZWNraW5nIGlmIDwgMy4gU2hvdWxkIHJldHJ5IDMgdGltZXMuXG4gICAgICAgIGlmIChjYWxsQ29udGV4dC5yZXRyaWVzKysgPCAzKSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwudXBkYXRlQ29uZmxpY3QnLCB1bmRlZmluZWQsICd3YXJuJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgICAgICB1cGRhdGVDb25mbGljdFJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXNzaWdubWVudCBpcyBvbmx5IHVzZWQgZm9yIHRoZSBlcnJvciBoYW5kbGVyXG4gICAgICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JldHJ5J1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC51cGRhdGVDb25mbGljdCcsIHVuZGVmaW5lZCwgJ2Vycm9yJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3JldHJ5JyxcbiAgICAgICAgICAgICAgICBzeW5jOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLmVycm9yJywgSlNPTi5zdHJpbmdpZnkoZXJyKSwgJ2luZm8nLCByZW1vdGVDYWxsLm5hbWUsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhY2spIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcgPSAnRXhjZXB0aW9uIGluICcgKyByZW1vdGVDYWxsLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlICsgKCcgJyArIGVyci5zdGFjayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ1N0cmluZyA9ICdFeGNlcHRpb24gaW4gJyArIHJlbW90ZUNhbGwubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5leGNlcHRpb24nLCBlcnIubWVzc2FnZSwgJ2Vycm9yJywgbG9nU3RyaW5nLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgc3luYzogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlOiBnZXRFcnJvcihlcnIpLFxuICAgICAgICAgICAgbmFtZTogcmVtb3RlQ2FsbC5uYW1lXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihwYWNrYWdlQ2hhbmdlc1BheWxvYWQsIHtyZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGxJZH0pO1xuXG4gICAgYXdhaXQgcmVzb2x2ZUVycm9ySGFuZGxlcihcbiAgICAgICAgc2Vtb3R1cy5sb2dnZXIsXG4gICAgICAgIHNlbW90dXMuY29udHJvbGxlcixcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQudHlwZSxcbiAgICAgICAgcmVtb3RlQ2FsbCxcbiAgICAgICAgcmVtb3RlQ2FsbElkLFxuICAgICAgICBjYWxsQ29udGV4dCxcbiAgICAgICAgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcsXG4gICAgICAgIHNlc3Npb25cbiAgICApO1xuXG4gICAgaWYgKHVwZGF0ZUNvbmZsaWN0UmV0cnkpIHtcbiAgICAgICAgYXdhaXQgZGVsYXkoY2FsbENvbnRleHQucmV0cmllcyAqIDEwMDApO1xuICAgICAgICByZXR1cm4gcmV0cnlDYWxsKHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzLCBzZXNzaW9uLCBwYWNrYWdlQ2hhbmdlc1BheWxvYWQpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWFsIHdpdGggY2hhbmdlcyBnb2luZyBiYWNrIHRvIHRoZSBjYWxsZXIgLSBBY3R1YWxseSBub3QgQXN5bmMhXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0ge3Vua25vd259IG1lc3NhZ2UgdW5rbm93blxuICovXG5mdW5jdGlvbiBwYWNrYWdlQ2hhbmdlcyhzZW1vdHVzOiBTZW1vdHVzLCBzZXNzaW9uOiBTZXNzaW9uLCBtZXNzYWdlKSB7XG4gICAgc2Vtb3R1cy5fY29udmVydEFycmF5UmVmZXJlbmNlc1RvQ2hhbmdlcygpO1xuICAgIG1lc3NhZ2UuY2hhbmdlcyA9IEpTT04uc3RyaW5naWZ5KHNlbW90dXMuZ2V0Q2hhbmdlcygpKTtcblxuICAgIGlmIChzZW1vdHVzLm1lbVNlc3Npb24gJiYgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMgJiYgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMuY2FsbFN0YXJ0VGltZSkge1xuICAgICAgICBzZW1vdHVzLm1lbVNlc3Npb24uc2Vtb3R1cy5jYWxsU3RhcnRUaW1lID0gMDtcbiAgICB9XG5cbiAgICAvLyBJbnNwZWN0IGEgY29weSBvZiB0aGUgbWVzc2FnZSBvbiB0aGUgc2VydmVyIG9ubHkgYmVmb3JlIHNlbnQgb3V0LiBPbmx5IGZvciBkZWJ1ZyBwdXJwb3Nlc1xuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLmluc3BlY3RNZXNzYWdlKSB7XG4gICAgICAgIHNlbW90dXMuY29udHJvbGxlci5pbnNwZWN0TWVzc2FnZShPYmplY3QuYXNzaWduKHt9LCBtZXNzYWdlKSk7XG4gICAgfVxuXG4gICAgc2Vzc2lvbi5zZW5kTWVzc2FnZShtZXNzYWdlKTtcbiAgICBzZW1vdHVzLl9kZWxldGVDaGFuZ2VzKCk7XG4gICAgc2Vtb3R1cy5fcHJvY2Vzc1F1ZXVlKCk7XG59XG5cblxuLyoqXG4gKiAgSGVscGVyIGZ1bmN0aW9uIHRvIGxvZyBhbW9ycGhpYyBlcnJvcnMuXG4gKiBAcGFyYW0geyp9IGxvZ2dlclxuICogQHBhcmFtIHsqfSBhY3Rpdml0eVxuICogQHBhcmFtIHsqfSBtZXNzYWdlXG4gKiBAcGFyYW0geyp9IGxvZ1R5cGVcbiAqIEBwYXJhbSB7Kn0gbG9nU3RyaW5nXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwb3N0Q2FsbEVycm9yTG9nKGxvZ2dlciwgYWN0aXZpdHksIG1lc3NhZ2UsIGxvZ1R5cGUsIGxvZ1N0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0KSB7XG4gICAgbGV0IGxvZ0JvZHkgPSB7XG4gICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbC5mYWlsdXJlJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgY2FsbFRpbWU6IGxvZ1RpbWUoY2FsbENvbnRleHQpLFxuICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHk6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBsb2dCb2R5LmFjdGl2aXR5ID0gYWN0aXZpdHk7XG5cbiAgICBpZiAobG9nZ2VyLmRhdGEpIHtcbiAgICAgICAgbG9nQm9keS5kYXRhLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIH1cblxuICAgIGxvZ2dlcltsb2dUeXBlXShsb2dCb2R5LCBsb2dTdHJpbmcpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvY2Vzc0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9Qcm9jZXNzQ2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXFEO0FBR3JEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBc0IsV0FBVyxDQUFDLE9BQTJCLEVBQUUsV0FBcUI7Ozs7Ozs7b0JBRzlELHFCQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUE7O29CQUFoRCxXQUFXLEdBQUcsU0FBa0MsQ0FBQztvQkFDakQscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBQTs7b0JBQXZDLFNBQXVDLENBQUM7b0JBQ3ZCLHFCQUFNLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFBOztvQkFBdkQsVUFBVSxHQUFHLFNBQTBDO29CQUM5QyxxQkFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUE7O29CQUF4RCxVQUFVLEdBQUcsU0FBMkMsQ0FBQztvQkFDMUMscUJBQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBQTs7b0JBQS9DLE1BQU0sR0FBRyxTQUFzQztvQkFDckQscUJBQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBQTs7b0JBQW5DLFNBQW1DLENBQUM7b0JBQ3BDLHFCQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUE7O29CQUF0QyxTQUFzQyxDQUFDOzs7O29CQUV2QyxxQkFBTSxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUcsQ0FBQyxFQUFBOztvQkFBbkMsU0FBbUMsQ0FBQzs7Ozs7O0NBRTNDO0FBYkQsa0NBYUM7QUFHRDs7OztHQUlHO0FBQ0gsU0FBZSxTQUFTLENBQUMsT0FBMkI7Ozs7WUFDekMsT0FBTyxHQUE0RixPQUFPLFFBQW5HLEVBQUUsVUFBVSxHQUFnRixPQUFPLFdBQXZGLEVBQUUsV0FBVyxHQUFtRSxPQUFPLFlBQTFFLEVBQUUsT0FBTyxHQUEwRCxPQUFPLFFBQWpFLEVBQUUsY0FBYyxHQUEwQyxPQUFPLGVBQWpELEVBQUUsWUFBWSxHQUE0QixPQUFPLGFBQW5DLEVBQUUsc0JBQXNCLEdBQUksT0FBTyx1QkFBWCxDQUFZO1lBRWxILElBQUksc0JBQXNCLEVBQUU7Z0JBQ3hCLHNCQUFzQixFQUFFLENBQUM7YUFDNUI7WUFFRCxzQkFBTyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFDOzs7Q0FDckM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxXQUFXLENBQUMsT0FBMkIsRUFBRSxXQUFxQjtJQUM1RCxJQUFBLHlCQUFPLEVBQUUsK0JBQVUsRUFBRSx5QkFBTyxFQUFFLGlDQUFXLEVBQUUsMkJBQVEsQ0FBWTtJQUN0RSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZjtRQUNJLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLElBQUksRUFBRTtZQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7U0FDaEM7S0FDSixFQUNELFVBQVUsQ0FBQyxJQUFJLENBQ2xCLENBQUM7SUFFRixJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUU7UUFDeEQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNuRztRQUVELElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBRXZGLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUN4QyxPQUFPLENBQUMsVUFBVSxFQUNsQixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzdCLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFVBQVUsQ0FBQyxJQUFJLEVBQ2YsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLENBQ1gsQ0FBQztLQUNMO1NBQU07UUFDSCxPQUFPLElBQUksQ0FBQztLQUNmO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLE9BQTJCO0lBQ3JELElBQUEseUJBQU8sRUFBRSwrQkFBVSxFQUFFLGlDQUFXLEVBQUUseUJBQU8sRUFBRSx1Q0FBYyxFQUFFLG1DQUFZLEVBQUUsdURBQXNCLENBQVk7SUFFbEgsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Y7UUFDSSxTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsYUFBYTtRQUNyQixRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRTtZQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1NBQzlCO0tBQ0osRUFDRCxVQUFVLENBQUMsSUFBSSxDQUNsQixDQUFDO0lBRUYsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFN0MsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25HLElBQUksR0FBRyxFQUFFO1FBQ0wsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXNDLFVBQVUsQ0FBQyxFQUFJLENBQUMsQ0FBQztTQUMxRTtRQUVELDhFQUE4RTtRQUM5RSxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDcEQsTUFBTSw0Q0FBNEMsQ0FBQztTQUN0RDtRQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLGtCQUFrQixFQUFFO1lBQ3JELE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztTQUN6RTtRQUVELE9BQU8sSUFBSSxDQUFDO0tBQ2Y7U0FBTTtRQUNILE1BQU0sWUFBWSxDQUFDO0tBQ3RCO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUEyQixFQUFFLE9BQWdCO0lBQzVELElBQUEseUJBQU8sRUFBRSwrQkFBVSxFQUFFLGlDQUFXLEVBQUUseUJBQU8sRUFBRSx1Q0FBYyxFQUFFLG1DQUFZLEVBQUUsdURBQXNCLENBQVk7SUFFbEgsSUFBSSxZQUFZLEdBQUc7UUFDZixTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsYUFBYTtRQUNyQixRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLElBQUksRUFBRTtZQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1NBQzlCO0tBQ0osQ0FBQztJQUVGLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWxELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO1NBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFO1FBQ3BGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTNCLE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzNFO1NBQU07UUFDSCxPQUFPLElBQUksQ0FBQztLQUNmO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFlLFdBQVcsQ0FBQyxPQUEyQixFQUFFLE9BQWdCOzs7O1lBQzdELE9BQU8sR0FBNEYsT0FBTyxRQUFuRyxFQUFFLFVBQVUsR0FBZ0YsT0FBTyxXQUF2RixFQUFFLFdBQVcsR0FBbUUsT0FBTyxZQUExRSxFQUFFLE9BQU8sR0FBMEQsT0FBTyxRQUFqRSxFQUFFLGNBQWMsR0FBMEMsT0FBTyxlQUFqRCxFQUFFLFlBQVksR0FBNEIsT0FBTyxhQUFuQyxFQUFFLHNCQUFzQixHQUFJLE9BQU8sdUJBQVgsQ0FBWTtZQUU5RyxZQUFZLEdBQUc7Z0JBQ2YsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixRQUFRLEVBQUUsYUFBYTtnQkFDdkIsSUFBSSxFQUFFO29CQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtvQkFDckIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO29CQUM3QixZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUU7aUJBQzlCO2FBQ0osQ0FBQztZQUVGLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0MsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXpDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUMsQ0FBQzthQUNsRTtZQUVELElBQUksQ0FBQyxPQUFPLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQzthQUNqRDtZQUVHLElBQUksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFakQsc0JBQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFDOzs7Q0FDaEQ7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZSxZQUFZLENBQUMsT0FBMkIsRUFBRSxXQUFXOzs7Ozs7b0JBQ3pELE9BQU8sR0FBdUMsT0FBTyxRQUE5QyxFQUFFLFVBQVUsR0FBMkIsT0FBTyxXQUFsQyxFQUFFLFdBQVcsR0FBYyxPQUFPLFlBQXJCLEVBQUUsUUFBUSxHQUFJLE9BQU8sU0FBWCxDQUFZO3lCQUV6RCxDQUFBLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUEsRUFBdkQsd0JBQXVEO29CQUNqRCxVQUFVLEdBQVksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUMxRCxxQkFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUE7O29CQUF6SCxTQUF5SCxDQUFDOzt3QkFFOUgsc0JBQU8sV0FBVyxFQUFDOzs7O0NBQ3RCO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxPQUEyQixFQUFFLEdBQUc7SUFDOUMsSUFBQSx5QkFBTyxFQUFFLCtCQUFVLEVBQUUsaUNBQVcsRUFBRSx5QkFBTyxFQUFFLG1DQUFZLENBQVk7SUFFMUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Y7UUFDSSxTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsYUFBYTtRQUNyQixRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLElBQUksRUFBRTtZQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsbUJBQU8sQ0FBQyxXQUFXLENBQUM7WUFDOUIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1NBQ2hDO0tBQ0osRUFDRCxVQUFVLENBQUMsSUFBSSxDQUNsQixDQUFDO0lBRUYsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUM7UUFDNUIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixZQUFZLEVBQUUsWUFBWTtLQUM3QixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFlLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxVQUFlLEVBQUUsSUFBSSxFQUFFLFVBQXNCLEVBQUUsWUFBWSxFQUFFLFdBQXdCLEVBQUUsWUFBWSxFQUFFLE9BQWdCOzs7Ozs7eUJBRXhKLENBQUEsVUFBVSxJQUFJLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQSxFQUEvQyx3QkFBK0M7b0JBQzNDLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ2pCLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO29CQUMvQixHQUFHLEdBQUcsU0FBUyxDQUFDO29CQUNwQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO3dCQUNoQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3hDO29CQUNHLE9BQU8sR0FBRzt3QkFDVixTQUFTLEVBQUUsU0FBUzt3QkFDcEIsTUFBTSxFQUFFLHFCQUFxQjt3QkFDN0IsUUFBUSxFQUFFLDhCQUE4Qjt3QkFDeEMsSUFBSSxFQUFFOzRCQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTs0QkFDckIsT0FBTyxFQUFFLFNBQVM7eUJBQ3JCO3FCQUNKLENBQUM7Ozs7b0JBR0UscUJBQU0sVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBQTs7b0JBQS9ILFNBQStILENBQUM7Ozs7b0JBRWhJLElBQUksT0FBSyxDQUFDLE9BQU8sRUFBRTt3QkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFLLENBQUMsT0FBTyxDQUFDO3dCQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDL0I7eUJBQU07d0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFLLENBQUMsQ0FBQztxQkFDaEQ7b0JBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQzs7Ozs7O0NBR3ZGO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWUsZUFBZSxDQUFDLE9BQTJCLEVBQUUsR0FBRzs7Ozs7O29CQUNwRCxPQUFPLEdBQTRGLE9BQU8sUUFBbkcsRUFBRSxVQUFVLEdBQWdGLE9BQU8sV0FBdkYsRUFBRSxXQUFXLEdBQW1FLE9BQU8sWUFBMUUsRUFBRSxPQUFPLEdBQTBELE9BQU8sUUFBakUsRUFBRSxjQUFjLEdBQTBDLE9BQU8sZUFBakQsRUFBRSxZQUFZLEdBQTRCLE9BQU8sYUFBbkMsRUFBRSxzQkFBc0IsR0FBSSxPQUFPLHVCQUFYLENBQVk7b0JBRTlHLFNBQVMsR0FBRyxFQUFFLENBQUM7b0JBRWYscUJBQXFCLEdBQUcsRUFBRSxDQUFDO29CQUUzQixtQkFBbUIsR0FBRyxLQUFLLENBQUM7b0JBRWhDLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRTt3QkFDdEIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUNySCxxQkFBcUIsR0FBRzs0QkFDcEIsSUFBSSxFQUFFLFVBQVU7NEJBQ2hCLElBQUksRUFBRSxLQUFLOzRCQUNYLE9BQU8sRUFBRSxFQUFFO3lCQUNkLENBQUM7cUJBQ0w7eUJBQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLGlCQUFpQixFQUFFO3dCQUN6Qyx1RUFBdUU7d0JBRXZFLDZFQUE2RTt3QkFDN0UsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUMzQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7NEJBQ3pILG1CQUFtQixHQUFHLElBQUksQ0FBQzs0QkFDM0IsOERBQThEOzRCQUM5RCxxQkFBcUIsR0FBRztnQ0FDcEIsSUFBSSxFQUFFLE9BQU87NkJBQ2hCLENBQUM7eUJBQ0w7NkJBQU07NEJBQ0gsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDOzRCQUMxSCxxQkFBcUIsR0FBRztnQ0FDcEIsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsSUFBSSxFQUFFLEtBQUs7NkJBQ2QsQ0FBQzt5QkFDTDtxQkFDSjt5QkFBTTt3QkFDSCxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLEVBQUU7NEJBQ3pCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7eUJBQzdIOzZCQUFNOzRCQUNILElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtnQ0FDWCxTQUFTLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDOzZCQUMzRjtpQ0FBTTtnQ0FDSCxTQUFTLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7NkJBQ3ZFOzRCQUVELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQzt5QkFDcEg7d0JBRUQscUJBQXFCLEdBQUc7NEJBQ3BCLElBQUksRUFBRSxPQUFPOzRCQUNiLElBQUksRUFBRSxJQUFJOzRCQUNWLEtBQUssRUFBRSxvQkFBUSxDQUFDLEdBQUcsQ0FBQzs0QkFDcEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO3lCQUN4QixDQUFDO3FCQUNMO29CQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztvQkFFbkUscUJBQU0sbUJBQW1CLENBQ3JCLE9BQU8sQ0FBQyxNQUFNLEVBQ2QsT0FBTyxDQUFDLFVBQVU7d0JBQ2xCLGFBQWE7d0JBQ2IscUJBQXFCLENBQUMsSUFBSSxFQUMxQixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLENBQUMsWUFBWSxFQUNwQixPQUFPLENBQ1YsRUFBQTs7b0JBVkQsU0FVQyxDQUFDO3lCQUVFLG1CQUFtQixFQUFuQix3QkFBbUI7b0JBQ25CLHFCQUFNLGlCQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBQTs7b0JBQXZDLFNBQXVDLENBQUM7b0JBQ3hDLHNCQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBQzt3QkFFMUIsc0JBQU8sY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLENBQUMsRUFBQzs7OztDQUV0RTtBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsY0FBYyxDQUFDLE9BQWdCLEVBQUUsT0FBZ0IsRUFBRSxPQUFPO0lBQy9ELE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzNDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUV2RCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQzlGLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7S0FDaEQ7SUFFRCw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1FBQ3pELE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDakU7SUFFRCxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQUdEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBc0IsRUFBRSxXQUF3QjtJQUM1SCxJQUFJLE9BQU8sR0FBRztRQUNWLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLE1BQU0sRUFBRSxxQkFBcUI7UUFDN0IsSUFBSSxFQUFFO1lBQ0YsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxtQkFBTyxDQUFDLFdBQVcsQ0FBQztZQUM5QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsT0FBTyxFQUFFLFNBQVM7U0FDckI7UUFDRCxRQUFRLEVBQUUsU0FBUztLQUN0QixDQUFDO0lBRUYsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFFNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0tBQ2xDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBcEJELDRDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVsYXksIGdldEVycm9yLCBsb2dUaW1lfSBmcm9tICcuL1V0aWxpdGllcyc7XG5pbXBvcnQge0NhbGxDb250ZXh0LCBQcm9jZXNzQ2FsbFBheWxvYWQsIFJlbW90ZUNhbGwsIFNlbW90dXMsIFNlc3Npb259IGZyb20gJy4vVHlwZXMnO1xuXG4vKipcbiAqIFdlIHByb2Nlc3MgdGhlIGNhbGwgdGhlIHJlbW90ZSBtZXRob2QgaW4gc3RhZ2VzIHN0YXJ0aW5nIGJ5IGxldHRpbmcgdGhlIGNvbnRyb2xsZXIgZXhhbWluZSB0aGVcbiAqIGNoYW5nZXMgKHByZUNhbGxIb29rKSBhbmQgZ2l2aW5nIGl0IGEgY2hhbmNlIHRvIHJlZnJlc2ggZGF0YSBpZiBpdCBuZWVkcyB0by4gIFRoZW4gd2UgYXBwbHkgYW55XG4gKiBjaGFuZ2VzIGluIHRoZSBtZXNzYWdlcyBhbmQgZ2l2ZSB0aGUgb2JqZWN0IG93bmluZyB0aGUgbWV0aG9kIGEgY2hhbmNlIHRvIHZhbGlkYXRlIHRoYXQgdGhlXG4gKiBjYWxsIGlzIHZhbGlkIGFuZCB0YWtlIGNhcmUgb2YgYW55IGF1dGhvcml6YXRpb24gY29uY2VybnMuICBGaW5hbGx5IHdlIGxldCB0aGUgY29udHJvbGxlciBwZXJmb3JtXG4gKiBhbnkgcG9zdC1jYWxsIHByb2Nlc3Npbmcgc3VjaCBhcyBjb21taXRpbmcgZGF0YSBhbmQgdGhlbiB3ZSBkZWFsIHdpdGggYSBmYWlsdXJlIG9yIHN1Y2Nlc3MuXG4gKlxuICogQHBhcmFtIHBheWxvYWRcbiAqIEBwYXJhbSB7dW5rbm93bn0gZm9yY2V1cGRhdGUgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSB1bmtub3duXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzQ2FsbChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGZvcmNldXBkYXRlPzogYm9vbGVhbikge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgZm9yY2V1cGRhdGUgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoZm9yY2V1cGRhdGUpO1xuICAgICAgICBhd2FpdCBwcmVDYWxsSG9vayhwYXlsb2FkLCBmb3JjZXVwZGF0ZSk7XG4gICAgICAgIGxldCB2YWxpZGF0aW9uID0gYXdhaXQgYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsKHBheWxvYWQpO1xuICAgICAgICB2YWxpZGF0aW9uID0gYXdhaXQgY3VzdG9tVmFsaWRhdGlvbihwYXlsb2FkLCB2YWxpZGF0aW9uKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsbElmVmFsaWQocGF5bG9hZCwgdmFsaWRhdGlvbik7XG4gICAgICAgIGF3YWl0IHBvc3RDYWxsSG9vayhwYXlsb2FkLCByZXN1bHQpO1xuICAgICAgICBhd2FpdCBwb3N0Q2FsbFN1Y2Nlc3MocGF5bG9hZCwgcmVzdWx0KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXdhaXQgcG9zdENhbGxGYWlsdXJlKHBheWxvYWQsIGVycik7XG4gICAgfVxufVxuXG5cbi8qKlxuICogSWYgdGhlcmUgaXMgYW4gdXBkYXRlIGNvbmZsaWN0IHdlIHdhbnQgdG8gcmV0cnkgYWZ0ZXIgcmVzdG9yaW5nIHRoZSBzZXNzaW9uXG4gKlxuICogQHJldHVybnMgeyp9IHVua25vd25cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmV0cnlDYWxsKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgc3Vic2NyaXB0aW9uSWQsIHJlbW90ZUNhbGxJZCwgcmVzdG9yZVNlc3Npb25DYWxsYmFja30gPSBwYXlsb2FkO1xuXG4gICAgaWYgKHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2spIHtcbiAgICAgICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9jZXNzQ2FsbChwYXlsb2FkLCB0cnVlKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hhdCBvYmplY3RzIGNoYW5nZWQgYW5kIHBhc3MgdGhpcyB0byB0aGUgcHJlU2VydmVyQ2FsbCBtZXRob2Qgb24gdGhlIGNvbnRyb2xsZXJcbiAqXG4gKiBAcGFyYW0gcGF5bG9hZFxuICogQHBhcmFtICBmb3JjZXVwZGF0ZSB1bmtub3duXG4gKlxuICogQHJldHVybnMgIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcHJlQ2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBmb3JjZXVwZGF0ZT86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgc2Vzc2lvbiwgY2FsbENvbnRleHQsIEhUVFBPYmpzfSA9IHBheWxvYWQ7XG4gICAgc2Vtb3R1cy5sb2dnZXIuaW5mbyhcbiAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgICAgICBhY3Rpdml0eTogJ3ByZVNlcnZlckNhbGwnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgaWYgKHNlbW90dXMuY29udHJvbGxlciAmJiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbCkge1xuICAgICAgICBsZXQgY2hhbmdlcyA9IHt9O1xuXG4gICAgICAgIGZvciAodmFyIG9iaklkIGluIEpTT04ucGFyc2UocmVtb3RlQ2FsbC5jaGFuZ2VzKSkge1xuICAgICAgICAgICAgY2hhbmdlc1tzZW1vdHVzLl9fZGljdGlvbmFyeV9fW29iaklkLnJlcGxhY2UoL1teLV0qLS8sICcnKS5yZXBsYWNlKC8tLiovLCAnJyldLl9fbmFtZV9fXSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVtb3RlT2JqZWN0ID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgICAgIGxldCBpc1B1YmxpYyA9IHNlbW90dXMucm9sZSA9PT0gJ3NlcnZlcicgJiYgcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0ucmVtb3RlUHVibGljO1xuXG4gICAgICAgIHJldHVybiBzZW1vdHVzLmNvbnRyb2xsZXIucHJlU2VydmVyQ2FsbC5jYWxsKFxuICAgICAgICAgICAgc2Vtb3R1cy5jb250cm9sbGVyLFxuICAgICAgICAgICAgcmVtb3RlQ2FsbC5jaGFuZ2VzLmxlbmd0aCA+IDIsXG4gICAgICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgICAgICBmb3JjZXVwZGF0ZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgICAgICBpc1B1YmxpYyxcbiAgICAgICAgICAgIEhUVFBPYmpzXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGNoYW5nZXMgaW4gdGhlIG1lc3NhZ2UgYW5kIHRoZW4gdmFsaWRhdGUgdGhlIGNhbGwuICBUaHJvdyBcIlN5bmMgRXJyb3JcIiBpZiBjaGFuZ2VzIGNhbid0IGJlIGFwcGxpZWRcbiAqXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5mdW5jdGlvbiBhcHBseUNoYW5nZXNBbmRWYWxpZGF0ZUNhbGwocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAnYXBwbHlDaGFuZ2VzQW5kVmFsaWRhdGVDYWxsJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IHJlbW90ZUNhbGwuc2VxdWVuY2UsXG4gICAgICAgICAgICAgICAgcmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsLmlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbW90ZUNhbGwubmFtZVxuICAgICk7XG5cbiAgICBsZXQgY2hhbmdlcyA9IEpTT04ucGFyc2UocmVtb3RlQ2FsbC5jaGFuZ2VzKTtcblxuICAgIGNvbnN0IHJlcyA9IHNlbW90dXMuX2FwcGx5Q2hhbmdlcyhjaGFuZ2VzLCBzZW1vdHVzLnJvbGUgPT09ICdjbGllbnQnLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpO1xuICAgIGlmIChyZXMpIHtcbiAgICAgICAgY29uc3Qgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuXG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIG9iamVjdCBmb3IgcmVtb3RlIGNhbGwgJHtyZW1vdGVDYWxsLmlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGZyb20gY2xpZW50XG4gICAgICAgIGlmIChvYmouX19wcm90b19fW3JlbW90ZUNhbGwubmFtZV0uX19vbl9fICE9PSAnc2VydmVyJykge1xuICAgICAgICAgICAgdGhyb3cgJ0ludmFsaWQgRnVuY3Rpb24gQ2FsbDsgbm90IGFuIEFQSSBmdW5jdGlvbic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2Vtb3R1cy5yb2xlID09PSAnc2VydmVyJyAmJiBvYmoudmFsaWRhdGVTZXJ2ZXJDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqLnZhbGlkYXRlU2VydmVyQ2FsbC5jYWxsKG9iaiwgcmVtb3RlQ2FsbC5uYW1lLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyAnU3luYyBFcnJvcic7XG4gICAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGZ1bmN0aW9uIHNwZWNpZmljIGN1c3RvbSBzZXJ2ZXJTaWRlIHZhbGlkYXRpb24gZnVuY3Rpb25zXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWYWxpZCAtIFJlc3VsdCBvZiBwcmV2aW91cyB2YWxpZGF0aW9uIHN0ZXAgKGFwcGx5Q2hhbmdlc0FuZFZhbGlkYXRlQ2FsbClcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgcGFzc2VkIGZ1bmN0aW9uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbVZhbGlkYXRpb24ocGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCBpc1ZhbGlkOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nZ2VyT2JqZWN0ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwnLFxuICAgICAgICBhY3Rpdml0eTogJ2N1c3RvbVZhbGlkYXRpb24nLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGxldCByZW1vdGVPYmplY3QgPSBzZXNzaW9uLm9iamVjdHNbcmVtb3RlQ2FsbC5pZF07XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKGxvZ2dlck9iamVjdCwgcmVtb3RlQ2FsbC5uYW1lKTtcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChzZW1vdHVzLnJvbGUgPT09ICdzZXJ2ZXInICYmIHJlbW90ZU9iamVjdFtyZW1vdGVDYWxsLm5hbWVdLnNlcnZlclZhbGlkYXRpb24pIHtcbiAgICAgICAgbGV0IGFyZ3MgPSBzZW1vdHVzLl9leHRyYWN0QXJndW1lbnRzKHJlbW90ZUNhbGwpO1xuICAgICAgICBhcmdzLnVuc2hpZnQocmVtb3RlT2JqZWN0KTtcblxuICAgICAgICByZXR1cm4gcmVtb3RlT2JqZWN0W3JlbW90ZUNhbGwubmFtZV0uc2VydmVyVmFsaWRhdGlvbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbi8qKlxuICogSWYgdGhlIGNoYW5nZXMgY291bGQgYmUgYXBwbGllZCBhbmQgdGhlIHZhbGlkYXRpb24gd2FzIHN1Y2Nlc3NmdWwgY2FsbCB0aGUgbWV0aG9kXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNWYWxpZCAtIHRha2VzIGEgZmxhZyBpZiB0aGUgY2FsbCBpcyB2YWxpZCBvciBub3QsIGlmIGl0IGlzIHRoZW4gd2UgcHJvY2VlZCBub3JtYWxseSxcbiAqIG90aGVyd2lzZSwgd2UgdGhyb3cgYW4gZXJyb3IgYW5kIHN0b3AgZXhlY3V0aW9uXG4gKlxuICogQHBhcmFtIHNlc3Npb25cbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcmV0dXJucyB7dW5rbm93bn0gdW5rbm93blxuICovXG5hc3luYyBmdW5jdGlvbiBjYWxsSWZWYWxpZChwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB7c2Vtb3R1cywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQsIHNlc3Npb24sIHN1YnNjcmlwdGlvbklkLCByZW1vdGVDYWxsSWQsIHJlc3RvcmVTZXNzaW9uQ2FsbGJhY2t9ID0gcGF5bG9hZDtcblxuICAgIGxldCBsb2dnZXJPYmplY3QgPSB7XG4gICAgICAgIGNvbXBvbmVudDogJ3NlbW90dXMnLFxuICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbCcsXG4gICAgICAgIGFjdGl2aXR5OiAnY2FsbElmVmFsaWQnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjYWxsOiByZW1vdGVDYWxsLm5hbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZSxcbiAgICAgICAgICAgIHJlbW90ZUNhbGxJZDogcmVtb3RlQ2FsbC5pZFxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHNlbW90dXMubG9nZ2VyLmluZm8obG9nZ2VyT2JqZWN0LCByZW1vdGVDYWxsLm5hbWUpO1xuXG4gICAgbGV0IG9iaiA9IHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXTtcblxuICAgIGlmICghb2JqW3JlbW90ZUNhbGwubmFtZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlbW90ZUNhbGwubmFtZSArICcgZnVuY3Rpb24gZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkICYmIHJlbW90ZUNhbGwgJiYgcmVtb3RlQ2FsbC5uYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZW1vdGVDYWxsLm5hbWUgKyAnIHJlZnVzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgYXJncyA9IHNlbW90dXMuX2V4dHJhY3RBcmd1bWVudHMocmVtb3RlQ2FsbCk7XG5cbiAgICByZXR1cm4gb2JqW3JlbW90ZUNhbGwubmFtZV0uYXBwbHkob2JqLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBMZXQgdGhlIGNvbnRyb2xsZXIga25vdyB0aGF0IHRoZSBtZXRob2Qgd2FzIGNvbXBsZXRlZCBhbmQgZ2l2ZSBpdCBhIGNoYW5jZSB0byBjb21taXQgY2hhbmdlc1xuICpcbiAqIEBwYXJhbSBwYXlsb2FkXG4gKiBAcGFyYW0gIHJldHVyblZhbHVlIHVua25vd25cbiAqXG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiBwb3N0Q2FsbEhvb2socGF5bG9hZDogUHJvY2Vzc0NhbGxQYXlsb2FkLCByZXR1cm5WYWx1ZSkge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgSFRUUE9ianN9ID0gcGF5bG9hZDtcblxuICAgIGlmIChzZW1vdHVzLmNvbnRyb2xsZXIgJiYgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsKSB7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZXM6IGJvb2xlYW4gPSByZW1vdGVDYWxsLmNoYW5nZXMubGVuZ3RoID4gMjtcbiAgICAgICAgYXdhaXQgc2Vtb3R1cy5jb250cm9sbGVyLnBvc3RTZXJ2ZXJDYWxsLmNhbGwoc2Vtb3R1cy5jb250cm9sbGVyLCBoYXNDaGFuZ2VzLCBjYWxsQ29udGV4dCwgc2Vtb3R1cy5jaGFuZ2VTdHJpbmcsIEhUVFBPYmpzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xufVxuXG4vKipcbiAqIFBhY2thZ2UgdXAgYW55IGNoYW5nZXMgcmVzdWx0aW5nIGZyb20gdGhlIGV4ZWN1dGlvbiBhbmQgc2VuZCB0aGVtIGJhY2sgaW4gdGhlIG1lc3NhZ2UsIGNsZWFyaW5nXG4gKiBvdXIgY2hhbmdlIHF1ZXVlIHRvIGFjY3VtdWxhdGUgbW9yZSBjaGFuZ2VzIGZvciB0aGUgbmV4dCBjYWxsXG4gKlxuICogQHBhcmFtIHNlbW90dXNcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbElkXG4gKiBAcGFyYW0ge3Vua25vd259IHJldCB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIHBvc3RDYWxsU3VjY2VzcyhwYXlsb2FkOiBQcm9jZXNzQ2FsbFBheWxvYWQsIHJldCk6IHZvaWQge1xuICAgIGNvbnN0IHtzZW1vdHVzLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCwgc2Vzc2lvbiwgcmVtb3RlQ2FsbElkfSA9IHBheWxvYWQ7XG5cbiAgICBzZW1vdHVzLmxvZ2dlci5pbmZvKFxuICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgICAgIG1vZHVsZTogJ3Byb2Nlc3NDYWxsJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwuc3VjY2VzcycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogcmVtb3RlQ2FsbC5zZXF1ZW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdGVDYWxsLm5hbWVcbiAgICApO1xuXG4gICAgcGFja2FnZUNoYW5nZXMoc2Vtb3R1cywgc2Vzc2lvbix7XG4gICAgICAgIHR5cGU6ICdyZXNwb25zZScsXG4gICAgICAgIHN5bmM6IHRydWUsXG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShzZW1vdHVzLl90b1RyYW5zcG9ydChyZXQpKSxcbiAgICAgICAgbmFtZTogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICByZW1vdGVDYWxsSWQ6IHJlbW90ZUNhbGxJZFxuICAgIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBpZGVudGlmeSBpZiB0aGVyZSdzIGEgcG9zdFNlcnZlckVycm9ySGFuZGxlciBjYWxsYmFjayBvbiB0aGUgYmFzZSBjb250cm9sbGVyXG4gKiBJZiB0aGVyZSBpcywgd2UgZXhlY3V0ZSB0aGUgaGFuZGxlciwgYW5kIGlmIHdlIGNhdGNoIGFuIGVycm9yIGluIHRoZSBoYW5kbGVyLCB3ZSBwcm9wb2dhdGUgaXQgdXAgdG8gdGhlIGxvZ2dlci5cbiAqIEBwYXJhbSBsb2dnZXJcbiAqIEBwYXJhbSB7Kn0gY29udHJvbGxlclxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSByZW1vdGVDYWxsXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbElkXG4gKiBAcGFyYW0gY2FsbENvbnRleHRcbiAqIEBwYXJhbSBjaGFuZ2VTdHJpbmdcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVFcnJvckhhbmRsZXIobG9nZ2VyLCBjb250cm9sbGVyOiBhbnksIHR5cGUsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIHJlbW90ZUNhbGxJZCwgY2FsbENvbnRleHQ6IENhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmcsIHNlc3Npb246IFNlc3Npb24pIHtcblxuICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXIucG9zdFNlcnZlckVycm9ySGFuZGxlcikge1xuICAgICAgICBsZXQgZXJyb3JUeXBlID0gdHlwZTtcbiAgICAgICAgbGV0IGZ1bmN0aW9uTmFtZSA9IHJlbW90ZUNhbGwubmFtZTtcbiAgICAgICAgbGV0IG9iaiA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNlc3Npb24ub2JqZWN0c1tyZW1vdGVDYWxsLmlkXSkge1xuICAgICAgICAgICAgb2JqID0gc2Vzc2lvbi5vYmplY3RzW3JlbW90ZUNhbGwuaWRdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsb2dCb2R5ID0ge1xuICAgICAgICAgICAgY29tcG9uZW50OiAnc2Vtb3R1cycsXG4gICAgICAgICAgICBtb2R1bGU6ICdwcm9jZXNzQ2FsbC5mYWlsdXJlJyxcbiAgICAgICAgICAgIGFjdGl2aXR5OiAncG9zdENhbGwucmVzb2x2ZUVycm9ySGFuZGxlcicsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FsbDogcmVtb3RlQ2FsbC5uYW1lLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjb250cm9sbGVyLnBvc3RTZXJ2ZXJFcnJvckhhbmRsZXIuY2FsbChjb250cm9sbGVyLCBlcnJvclR5cGUsIHJlbW90ZUNhbGxJZCwgb2JqLCBmdW5jdGlvbk5hbWUsIGNhbGxDb250ZXh0LCBjaGFuZ2VTdHJpbmcpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBsb2dCb2R5LmRhdGEubWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dCb2R5LmRhdGEubWVzc2FnZSA9IEpTT04uc3RyaW5naWZ5KGVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGxvZ0JvZHksICdVc2VyIGRlZmluZWQgcG9zdFNlcnZlckVycm9ySGFuZGxlciB0aHJldyBhbiBlcnJvcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEhhbmRsZSBlcnJvcnMgYnkgcmV0dXJuaW5nIGFuIGFwcm9wcmlhdGUgbWVzc2FnZS4gIEluIGFsbCBjYXNlcyBjaGFuZ2VzIHNlbnQgYmFjayB0aG91Z2ggdGhleVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gcmVtb3RlQ2FsbFxuICogQHBhcmFtIGNhbGxDb250ZXh0XG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBlcnIgdW5rbm93blxuICpcbiAqIEByZXR1cm5zIHt1bmtub3dufSBBIFByb21pc2VcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdENhbGxGYWlsdXJlKHBheWxvYWQ6IFByb2Nlc3NDYWxsUGF5bG9hZCwgZXJyKSB7XG4gICAgY29uc3Qge3NlbW90dXMsIHJlbW90ZUNhbGwsIGNhbGxDb250ZXh0LCBzZXNzaW9uLCBzdWJzY3JpcHRpb25JZCwgcmVtb3RlQ2FsbElkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrfSA9IHBheWxvYWQ7XG5cbiAgICBsZXQgbG9nU3RyaW5nID0gJyc7XG5cbiAgICBsZXQgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge307XG5cbiAgICBsZXQgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IGZhbHNlO1xuXG4gICAgaWYgKGVyciA9PT0gJ1N5bmMgRXJyb3InKSB7XG4gICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5zeW5jRXJyb3InLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICBwYWNrYWdlQ2hhbmdlc1BheWxvYWQgPSB7XG4gICAgICAgICAgICB0eXBlOiAncmVzcG9uc2UnLFxuICAgICAgICAgICAgc3luYzogZmFsc2UsXG4gICAgICAgICAgICBjaGFuZ2VzOiAnJ1xuICAgICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZXJyLm1lc3NhZ2UgPT0gJ1VwZGF0ZSBDb25mbGljdCcpIHtcbiAgICAgICAgLy8gTm90IHRoaXMgbWF5IGJlIGNhdWdodCBpbiB0aGUgdHJhbnNwb3J0IChlLmcuIEFtb3JwaGljKSBhbmQgcmV0cmllZClcblxuICAgICAgICAvLyBpbmNyZW1lbnQgY2FsbENvbnRleHQucmV0cmllcyBhZnRlciBjaGVja2luZyBpZiA8IDMuIFNob3VsZCByZXRyeSAzIHRpbWVzLlxuICAgICAgICBpZiAoY2FsbENvbnRleHQucmV0cmllcysrIDwgMykge1xuICAgICAgICAgICAgcG9zdENhbGxFcnJvckxvZyhzZW1vdHVzLmxvZ2dlciwgJ3Bvc3RDYWxsLnVwZGF0ZUNvbmZsaWN0JywgdW5kZWZpbmVkLCAnd2FybicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgdXBkYXRlQ29uZmxpY3RSZXRyeSA9IHRydWU7XG4gICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFzc2lnbm1lbnQgaXMgb25seSB1c2VkIGZvciB0aGUgZXJyb3IgaGFuZGxlclxuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeSdcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwudXBkYXRlQ29uZmxpY3QnLCB1bmRlZmluZWQsICdlcnJvcicsIHJlbW90ZUNhbGwubmFtZSwgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXRyeScsXG4gICAgICAgICAgICAgICAgc3luYzogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICAgIHBvc3RDYWxsRXJyb3JMb2coc2Vtb3R1cy5sb2dnZXIsICdwb3N0Q2FsbC5lcnJvcicsIEpTT04uc3RyaW5naWZ5KGVyciksICdpbmZvJywgcmVtb3RlQ2FsbC5uYW1lLCByZW1vdGVDYWxsLCBjYWxsQ29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXJyLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgbG9nU3RyaW5nID0gJ0V4Y2VwdGlvbiBpbiAnICsgcmVtb3RlQ2FsbC5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSArICgnICcgKyBlcnIuc3RhY2spO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcgPSAnRXhjZXB0aW9uIGluICcgKyByZW1vdGVDYWxsLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwb3N0Q2FsbEVycm9yTG9nKHNlbW90dXMubG9nZ2VyLCAncG9zdENhbGwuZXhjZXB0aW9uJywgZXJyLm1lc3NhZ2UsICdlcnJvcicsIGxvZ1N0cmluZywgcmVtb3RlQ2FsbCwgY2FsbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkID0ge1xuICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN5bmM6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogZ2V0RXJyb3IoZXJyKSxcbiAgICAgICAgICAgIG5hbWU6IHJlbW90ZUNhbGwubmFtZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFja2FnZUNoYW5nZXNQYXlsb2FkLCB7cmVtb3RlQ2FsbElkOiByZW1vdGVDYWxsSWR9KTtcblxuICAgIGF3YWl0IHJlc29sdmVFcnJvckhhbmRsZXIoXG4gICAgICAgIHNlbW90dXMubG9nZ2VyLFxuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIsXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcGFja2FnZUNoYW5nZXNQYXlsb2FkLnR5cGUsXG4gICAgICAgIHJlbW90ZUNhbGwsXG4gICAgICAgIHJlbW90ZUNhbGxJZCxcbiAgICAgICAgY2FsbENvbnRleHQsXG4gICAgICAgIHNlbW90dXMuY2hhbmdlU3RyaW5nLFxuICAgICAgICBzZXNzaW9uXG4gICAgKTtcblxuICAgIGlmICh1cGRhdGVDb25mbGljdFJldHJ5KSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KGNhbGxDb250ZXh0LnJldHJpZXMgKiAxMDAwKTtcbiAgICAgICAgcmV0dXJuIHJldHJ5Q2FsbChwYXlsb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFja2FnZUNoYW5nZXMoc2Vtb3R1cywgc2Vzc2lvbiwgcGFja2FnZUNoYW5nZXNQYXlsb2FkKTtcbiAgICB9XG59XG5cbi8qKlxuICogRGVhbCB3aXRoIGNoYW5nZXMgZ29pbmcgYmFjayB0byB0aGUgY2FsbGVyIC0gQWN0dWFsbHkgbm90IEFzeW5jIVxuICpcbiAqIEBwYXJhbSBzZW1vdHVzXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHt1bmtub3dufSBtZXNzYWdlIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcGFja2FnZUNoYW5nZXMoc2Vtb3R1czogU2Vtb3R1cywgc2Vzc2lvbjogU2Vzc2lvbiwgbWVzc2FnZSkge1xuICAgIHNlbW90dXMuX2NvbnZlcnRBcnJheVJlZmVyZW5jZXNUb0NoYW5nZXMoKTtcbiAgICBtZXNzYWdlLmNoYW5nZXMgPSBKU09OLnN0cmluZ2lmeShzZW1vdHVzLmdldENoYW5nZXMoKSk7XG5cbiAgICBpZiAoc2Vtb3R1cy5tZW1TZXNzaW9uICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzICYmIHNlbW90dXMubWVtU2Vzc2lvbi5zZW1vdHVzLmNhbGxTdGFydFRpbWUpIHtcbiAgICAgICAgc2Vtb3R1cy5tZW1TZXNzaW9uLnNlbW90dXMuY2FsbFN0YXJ0VGltZSA9IDA7XG4gICAgfVxuXG4gICAgLy8gSW5zcGVjdCBhIGNvcHkgb2YgdGhlIG1lc3NhZ2Ugb24gdGhlIHNlcnZlciBvbmx5IGJlZm9yZSBzZW50IG91dC4gT25seSBmb3IgZGVidWcgcHVycG9zZXNcbiAgICBpZiAoc2Vtb3R1cy5jb250cm9sbGVyICYmIHNlbW90dXMuY29udHJvbGxlci5pbnNwZWN0TWVzc2FnZSkge1xuICAgICAgICBzZW1vdHVzLmNvbnRyb2xsZXIuaW5zcGVjdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7fSwgbWVzc2FnZSkpO1xuICAgIH1cblxuICAgIHNlc3Npb24uc2VuZE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgc2Vtb3R1cy5fZGVsZXRlQ2hhbmdlcygpO1xuICAgIHNlbW90dXMuX3Byb2Nlc3NRdWV1ZSgpO1xufVxuXG5cbi8qKlxuICogIEhlbHBlciBmdW5jdGlvbiB0byBsb2cgYW1vcnBoaWMgZXJyb3JzLlxuICogQHBhcmFtIHsqfSBsb2dnZXJcbiAqIEBwYXJhbSB7Kn0gYWN0aXZpdHlcbiAqIEBwYXJhbSB7Kn0gbWVzc2FnZVxuICogQHBhcmFtIHsqfSBsb2dUeXBlXG4gKiBAcGFyYW0geyp9IGxvZ1N0cmluZ1xuICogQHBhcmFtIHJlbW90ZUNhbGxcbiAqIEBwYXJhbSBjYWxsQ29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9zdENhbGxFcnJvckxvZyhsb2dnZXIsIGFjdGl2aXR5LCBtZXNzYWdlLCBsb2dUeXBlLCBsb2dTdHJpbmcsIHJlbW90ZUNhbGw6IFJlbW90ZUNhbGwsIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dCkge1xuICAgIGxldCBsb2dCb2R5ID0ge1xuICAgICAgICBjb21wb25lbnQ6ICdzZW1vdHVzJyxcbiAgICAgICAgbW9kdWxlOiAncHJvY2Vzc0NhbGwuZmFpbHVyZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNhbGw6IHJlbW90ZUNhbGwubmFtZSxcbiAgICAgICAgICAgIGNhbGxUaW1lOiBsb2dUaW1lKGNhbGxDb250ZXh0KSxcbiAgICAgICAgICAgIHNlcXVlbmNlOiByZW1vdGVDYWxsLnNlcXVlbmNlLFxuICAgICAgICAgICAgbWVzc2FnZTogdW5kZWZpbmVkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgbG9nQm9keS5hY3Rpdml0eSA9IGFjdGl2aXR5O1xuXG4gICAgaWYgKGxvZ2dlci5kYXRhKSB7XG4gICAgICAgIGxvZ0JvZHkuZGF0YS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBsb2dnZXJbbG9nVHlwZV0obG9nQm9keSwgbG9nU3RyaW5nKTtcbn1cbiJdfQ== |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Change = 'change'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9UeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xufVxuXG4vKipcbiAqICBpZCBpcyB0aGUgaWQgb2YgdGhlIG9iamVjdCArICcvJyArIHByb3BlcnR5LlxuICogIEV4OiB0aGVyZSBhcmUgMSBTY2hvb2wgdG8gTWFueSBTdHVkZW50c1xuICpcbiAqICBTY2hvb2wge1xuICogICAgICBzdHVkZW50czogQXJyYXk8U3R1ZGVudHM+XG4gKiAgfVxuICpcbiAqICBJbiB0aGlzIGNhc2UsIG9uZSBlbnRyeSB3aXRoaW4gdGhpcyBBcnJheUdyb3VwIG1heSBiZSAnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl1cbiAqXG4gKiAgSWYgdGhhdCdzIGFsbCB0aGUgY2hhbmdlcyB0aGVuIHRoZSBBcnJheUdyb3VwIHdvdWxkIGJlIHsnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl19XG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5R3JvdXAgPSB7IFtpZDogc3RyaW5nXTogQXJyYXlDaGFuZ2VzIH07XG5cbi8qKlxuICogQW4gYXJyYXkgb2YgSWQgcmVmZXJlbmNlcyB0byBTdXBlcnR5cGUgT2JqZWN0cyBvciBwcmltaXRpdmUgdmFsdWVzXG4gKi9cbnR5cGUgQXJyYXlDaGFuZ2VzID0gQXJyYXk8YW55PjtcbmV4cG9ydCB0eXBlIENoYW5nZUdyb3VwID0geyBbb2JqSWQ6IHN0cmluZ106IFByb3BDaGFuZ2VzIH07XG50eXBlIFByb3BDaGFuZ2VzID0geyBbcHJvcDogc3RyaW5nXTogQ2hhbmdlcyB9O1xuXG4vLyBDaGFuZ2VzWzBdIGlzIG9sZFZhbHVlLCBDaGFuZ2VzWzFdIGlzIG5ld1ZhbHVlXG50eXBlIG9sZFZhbCA9IGFueTtcbnR5cGUgbmV3VmFsID0gYW55O1xudHlwZSBDaGFuZ2VzID0gW29sZFZhbCwgbmV3VmFsXVtdO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25zID0geyBba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfTtcblxuZXhwb3J0IHR5cGUgUmVtb3RlQ2FsbCA9IHtcbiAgICByZW1vdGVDYWxsSWQ6IGFueTtcbiAgICBpZDogYW55O1xuICAgIGNoYW5nZXM6IHN0cmluZzsgLy8gVGhlIHN0cmluZyBpcyBvZiB0eXBlIENoYW5nZUdyb3VwXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNlcXVlbmNlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGEgaGFuZGxlciB0aGF0IHdpbGwgb25seSBiZSB1c2VkIGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgcHVycG9zZXNcbiAgICAgKlxuICAgICAqIFdoZW4gdGhpcyBpcyB1c2VkLCBhbGxvd3MgdXMgdG8gaW5zcGVjdCB0aGUgbWVzc2FnZSBib2R5IGJlZm9yZSB3ZSBzZW5kIGl0IG91dCBpbiAncGFja2FnZUNoYW5nZXMnXG4gICAgICpcbiAgICAgKiBETyBOT1QgVVNFIFRISVMgSU4gUFJPRFVDVElPTiBDT0RFXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIGluc3BlY3RNZXNzYWdlPyhtZXNzYWdlKTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbW90dXMge1xuICAgIHNldFN5bmNTdGF0ZTogKHN0cikgPT4gdm9pZDtcbiAgICBzeW5jU3RhdGU6IHN0cmluZztcbiAgICBnZXRTeW5jU3RhdGU6ICgpID0+IGFueTtcbiAgICBtYXhDYWxsVGltZTogbnVtYmVyO1xuICAgIF9fZGljdGlvbmFyeV9fOiBhbnk7XG4gICAgbWVtU2Vzc2lvbjogeyBzZW1vdHVzOiB7IGNhbGxTdGFydFRpbWU6IG51bWJlciB9IH07XG4gICAgX2luamVjdEludG9UZW1wbGF0ZTogKHRlbXBsYXRlKSA9PiB2b2lkO1xuICAgIHNlcmlhbGl6ZUFuZEdhcmJhZ2VDb2xsZWN0OiAoKSA9PiBhbnk7XG4gICAgZ2V0TWVzc2FnZTogKHNlc3Npb25JZCwgZm9yY2VNZXNzYWdlKSA9PiBhbnk7XG4gICAgY2xlYXJQZW5kaW5nQ2FsbHM6IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgZ2V0Q2hhbmdlR3JvdXA6ICh0eXBlLCBzdWJzY3JpcHRpb25JZCkgPT4gQ2hhbmdlR3JvdXA7XG4gICAgZGVsZXRlQ2hhbmdlR3JvdXA6ICh0eXBlOiBhbnksIHN1YnNjcmlwdGlvbklkOiBhbnkpID0+IHZvaWQ7XG4gICAgZ2V0Q2hhbmdlU3RhdHVzOiAoKSA9PiBzdHJpbmc7XG4gICAgX3N0YXNoT2JqZWN0OiAob2JqLCB0ZW1wbGF0ZSkgPT4gYm9vbGVhbjtcbiAgICBzZXNzaW9uaXplOiAob2JqLCByZWZlcmVuY2luZ09iaikgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgX3NldHVwRnVuY3Rpb246IChwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUsIHJvbGUsIHZhbGlkYXRlLCBzZXJ2ZXJWYWxpZGF0aW9uLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBlbmFibGVTZW5kTWVzc2FnZTogKHZhbHVlLCBtZXNzYWdlQ2FsbGJhY2ssIHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBzeW5jU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICByZXN0b3JlU2Vzc2lvbjogKHNlc3Npb25JZCwgc2F2ZWRTZXNzaW9uOiBTYXZlZFNlc3Npb24sIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSkgPT4gYm9vbGVhbjtcbiAgICBzYXZlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gU2F2ZWRTZXNzaW9uO1xuICAgIHNldE1pbmltdW1TZXF1ZW5jZTogKG5leHRPYmpJZCkgPT4gdm9pZDtcbiAgICBkZWxldGVTZXNzaW9uOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGNyZWF0ZVNlc3Npb246IChyb2xlOiBhbnksIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkOiBhbnkpID0+IGFueTtcbiAgICBsb2c6IChsZXZlbCwgZGF0YSkgPT4gdm9pZDtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBtYXhDbGllbnRTZXF1ZW5jZTogbnVtYmVyO1xuICAgIGxvZ0xldmVsOiBudW1iZXI7XG4gICAgX19jb25mbGljdE1vZGVfXzogc3RyaW5nO1xuICAgIF9fY2hhbmdlVHJhY2tpbmdfXzogYm9vbGVhbjtcbiAgICBfdXNlR2V0dGVyc1NldHRlcnM6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBhbnk7XG4gICAgcm9sZTogYW55O1xuICAgIGN1cnJlbnRTZXNzaW9uOiBhbnk7XG4gICAgc2Vzc2lvbnM/OiBTZXNzaW9ucztcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U2Vzc2lvbklkOiBudW1iZXI7XG4gICAgY29udHJvbGxlcjogSVNlbW90dXNDb250cm9sbGVyO1xuICAgIGNoYW5nZVN0cmluZzogc3RyaW5nO1xuXG5cbiAgICBfZ2V0U2Vzc2lvbihfc2lkPzogYW55KTogU2Vzc2lvbjtcblxuICAgIHN1YnNjcmliZShyb2xlOiBhbnkpOiBudW1iZXI7XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb25JZDogYW55KTogdm9pZDtcblxuICAgIGdldENoYW5nZXMoc3Vic2NyaXB0aW9uSWQ/OiBhbnkpOiBDaGFuZ2VHcm91cDtcblxuICAgIF9kZWxldGVDaGFuZ2VzKCk6IHZvaWQ7XG5cbiAgICBnZXRQZW5kaW5nQ2FsbENvdW50KHNlc3Npb25JZDogYW55KTogYW55O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9UeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5pbXBvcnQge1JlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmV4cG9ydCB0eXBlIEhUVFBPYmpzID0ge3JlcXVlc3Q6IFJlcXVlc3QsIHJlc3BvbnNlOiBSZXNwb25zZX07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xuICAgIEhUVFBPYmpzPzogSFRUUE9ianM7XG59XG5cbi8qKlxuICogIGlkIGlzIHRoZSBpZCBvZiB0aGUgb2JqZWN0ICsgJy8nICsgcHJvcGVydHkuXG4gKiAgRXg6IHRoZXJlIGFyZSAxIFNjaG9vbCB0byBNYW55IFN0dWRlbnRzXG4gKlxuICogIFNjaG9vbCB7XG4gKiAgICAgIHN0dWRlbnRzOiBBcnJheTxTdHVkZW50cz5cbiAqICB9XG4gKlxuICogIEluIHRoaXMgY2FzZSwgb25lIGVudHJ5IHdpdGhpbiB0aGlzIEFycmF5R3JvdXAgbWF5IGJlICdzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXVxuICpcbiAqICBJZiB0aGF0J3MgYWxsIHRoZSBjaGFuZ2VzIHRoZW4gdGhlIEFycmF5R3JvdXAgd291bGQgYmUgeydzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXX1cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlHcm91cCA9IHsgW2lkOiBzdHJpbmddOiBBcnJheUNoYW5nZXMgfTtcblxuLyoqXG4gKiBBbiBhcnJheSBvZiBJZCByZWZlcmVuY2VzIHRvIFN1cGVydHlwZSBPYmplY3RzIG9yIHByaW1pdGl2ZSB2YWx1ZXNcbiAqL1xudHlwZSBBcnJheUNoYW5nZXMgPSBBcnJheTxhbnk+O1xuZXhwb3J0IHR5cGUgQ2hhbmdlR3JvdXAgPSB7IFtvYmpJZDogc3RyaW5nXTogUHJvcENoYW5nZXMgfTtcbnR5cGUgUHJvcENoYW5nZXMgPSB7IFtwcm9wOiBzdHJpbmddOiBDaGFuZ2VzIH07XG5cbi8vIENoYW5nZXNbMF0gaXMgb2xkVmFsdWUsIENoYW5nZXNbMV0gaXMgbmV3VmFsdWVcbnR5cGUgb2xkVmFsID0gYW55O1xudHlwZSBuZXdWYWwgPSBhbnk7XG50eXBlIENoYW5nZXMgPSBbb2xkVmFsLCBuZXdWYWxdW107XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbnMgPSB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9O1xuXG5leHBvcnQgdHlwZSBSZW1vdGVDYWxsID0ge1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIGlkOiBhbnk7XG4gICAgY2hhbmdlczogc3RyaW5nOyAvLyBUaGUgc3RyaW5nIGlzIG9mIHR5cGUgQ2hhbmdlR3JvdXBcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2VxdWVuY2U6IGFueTtcbiAgICB0eXBlOiBhbnk7XG4gICAgc3luYzogYW55O1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nLCBIVFRQT2Jqcz86IEhUVFBPYmpzKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lXG4gICAgICogQHBhcmFtIHJlbW90ZUNhbGxcbiAgICAgKiBAcGFyYW0gaXNQdWJsaWNcbiAgICAgKiBAcGFyYW0gSFRUUE9ianNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlOiB1bmRlZmluZWQgfCBib29sZWFuLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgaXNQdWJsaWM6IGJvb2xlYW4sIEhUVFBPYmpzPzogSFRUUE9ianMgKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSBoYW5kbGVyIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICAgICAqXG4gICAgICogV2hlbiB0aGlzIGlzIHVzZWQsIGFsbG93cyB1cyB0byBpbnNwZWN0IHRoZSBtZXNzYWdlIGJvZHkgYmVmb3JlIHdlIHNlbmQgaXQgb3V0IGluICdwYWNrYWdlQ2hhbmdlcydcbiAgICAgKlxuICAgICAqIERPIE5PVCBVU0UgVEhJUyBJTiBQUk9EVUNUSU9OIENPREVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgaW5zcGVjdE1lc3NhZ2U/KG1lc3NhZ2UpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vtb3R1cyB7XG4gICAgc2V0U3luY1N0YXRlOiAoc3RyKSA9PiB2b2lkO1xuICAgIHN5bmNTdGF0ZTogc3RyaW5nO1xuICAgIGdldFN5bmNTdGF0ZTogKCkgPT4gYW55O1xuICAgIG1heENhbGxUaW1lOiBudW1iZXI7XG4gICAgX19kaWN0aW9uYXJ5X186IGFueTtcbiAgICBtZW1TZXNzaW9uOiB7IHNlbW90dXM6IHsgY2FsbFN0YXJ0VGltZTogbnVtYmVyIH0gfTtcbiAgICBfaW5qZWN0SW50b1RlbXBsYXRlOiAodGVtcGxhdGUpID0+IHZvaWQ7XG4gICAgc2VyaWFsaXplQW5kR2FyYmFnZUNvbGxlY3Q6ICgpID0+IGFueTtcbiAgICBnZXRNZXNzYWdlOiAoc2Vzc2lvbklkLCBmb3JjZU1lc3NhZ2UpID0+IGFueTtcbiAgICBjbGVhclBlbmRpbmdDYWxsczogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VHcm91cDogKHR5cGUsIHN1YnNjcmlwdGlvbklkKSA9PiBDaGFuZ2VHcm91cDtcbiAgICBkZWxldGVDaGFuZ2VHcm91cDogKHR5cGU6IGFueSwgc3Vic2NyaXB0aW9uSWQ6IGFueSkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VTdGF0dXM6ICgpID0+IHN0cmluZztcbiAgICBfc3Rhc2hPYmplY3Q6IChvYmosIHRlbXBsYXRlKSA9PiBib29sZWFuO1xuICAgIHNlc3Npb25pemU6IChvYmosIHJlZmVyZW5jaW5nT2JqKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBfc2V0dXBGdW5jdGlvbjogKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSwgcm9sZSwgdmFsaWRhdGUsIHNlcnZlclZhbGlkYXRpb24sIGlzUHVibGljOiBib29sZWFuLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrLCByZXE/OiBSZXF1ZXN0LCByZXM/OiBSZXNwb25zZSkgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgZW5hYmxlU2VuZE1lc3NhZ2U6ICh2YWx1ZSwgbWVzc2FnZUNhbGxiYWNrLCBzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgc3luY1Nlc3Npb246IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgcmVzdG9yZVNlc3Npb246IChzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpID0+IGJvb2xlYW47XG4gICAgc2F2ZVNlc3Npb246IChzZXNzaW9uSWQpID0+IFNhdmVkU2Vzc2lvbjtcbiAgICBzZXRNaW5pbXVtU2VxdWVuY2U6IChuZXh0T2JqSWQpID0+IHZvaWQ7XG4gICAgZGVsZXRlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBjcmVhdGVTZXNzaW9uOiAocm9sZTogYW55LCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZDogYW55KSA9PiBhbnk7XG4gICAgbG9nOiAobGV2ZWwsIGRhdGEpID0+IHZvaWQ7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgbWF4Q2xpZW50U2VxdWVuY2U6IG51bWJlcjtcbiAgICBsb2dMZXZlbDogbnVtYmVyO1xuICAgIF9fY29uZmxpY3RNb2RlX186IHN0cmluZztcbiAgICBfX2NoYW5nZVRyYWNraW5nX186IGJvb2xlYW47XG4gICAgX3VzZUdldHRlcnNTZXR0ZXJzOiBib29sZWFuO1xuICAgIGxvZ2dlcjogYW55O1xuICAgIHJvbGU6IGFueTtcbiAgICBjdXJyZW50U2Vzc2lvbjogYW55O1xuICAgIHNlc3Npb25zPzogU2Vzc2lvbnM7XG4gICAgbmV4dFN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgbmV4dFNlc3Npb25JZDogbnVtYmVyO1xuICAgIGNvbnRyb2xsZXI6IElTZW1vdHVzQ29udHJvbGxlcjtcbiAgICBjaGFuZ2VTdHJpbmc6IHN0cmluZztcblxuXG4gICAgX2dldFNlc3Npb24oX3NpZD86IGFueSk6IFNlc3Npb247XG5cbiAgICBzdWJzY3JpYmUocm9sZTogYW55KTogbnVtYmVyO1xuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uSWQ6IGFueSk6IHZvaWQ7XG5cbiAgICBnZXRDaGFuZ2VzKHN1YnNjcmlwdGlvbklkPzogYW55KTogQ2hhbmdlR3JvdXA7XG5cbiAgICBfZGVsZXRlQ2hhbmdlcygpOiB2b2lkO1xuXG4gICAgZ2V0UGVuZGluZ0NhbGxDb3VudChzZXNzaW9uSWQ6IGFueSk6IGFueTtcbn1cbiJdfQ== |
@@ -0,1 +1,4 @@ | ||
## 4.1.0 | ||
* Added Semotus changes for `public: true` tag in remote decorator to help define public facing routes | ||
* Added ability for amorphic to pass in the request and response objects into semotus so it can pass them into the preserver and postServercall | ||
## 4.0.0 | ||
@@ -2,0 +5,0 @@ * Adding Sync State feature to limit object synchronization at stages in a session. See documentation in SyncStates.md |
{ | ||
"name": "@haventech/semotus", | ||
"version": "4.0.0", | ||
"version": "4.1.0", | ||
"description": "A subclass of supertype that synchronizes sets of objects.", | ||
@@ -42,4 +42,7 @@ "homepage": "https://github.com/haven-life/amorphic-framework", | ||
"@types/chai": "^3.4.34", | ||
"@types/express": "^4.17.11", | ||
"@types/mocha": "^2.2.39", | ||
"@types/node": "^7.10.14", | ||
"@types/node": "^14.14.37", | ||
"express": "^4.17.1", | ||
"mock-req-res": "^1.2.0", | ||
"chai": "3.x", | ||
@@ -46,0 +49,0 @@ "eslint": "3.7.x", |
@@ -122,2 +122,3 @@ /** | ||
let remoteValidator = defineProperty.serverValidation; | ||
let isPublic = !!defineProperty.public; | ||
@@ -131,2 +132,3 @@ return function (target, propertyName, descriptor) { | ||
remoteValidator, | ||
isPublic, | ||
defineProperty.target | ||
@@ -133,0 +135,0 @@ ); |
@@ -56,3 +56,3 @@ import {delay, getError, logTime} from './Utilities'; | ||
function preCallHook(payload: ProcessCallPayload, forceupdate?: boolean): boolean { | ||
const {semotus, remoteCall, callContext, session, subscriptionId, remoteCallId, restoreSessionCallback} = payload; | ||
const {semotus, remoteCall, session, callContext, HTTPObjs} = payload; | ||
semotus.logger.info( | ||
@@ -78,2 +78,6 @@ { | ||
let remoteObject = session.objects[remoteCall.id]; | ||
let isPublic = semotus.role === 'server' && remoteObject[remoteCall.name].remotePublic; | ||
return semotus.controller.preServerCall.call( | ||
@@ -84,3 +88,7 @@ semotus.controller, | ||
callContext, | ||
forceupdate | ||
forceupdate, | ||
remoteCall.name, | ||
remoteCall, | ||
isPublic, | ||
HTTPObjs | ||
); | ||
@@ -229,7 +237,7 @@ } else { | ||
async function postCallHook(payload: ProcessCallPayload, returnValue) { | ||
const {semotus, remoteCall, callContext} = payload; | ||
const {semotus, remoteCall, callContext, HTTPObjs} = payload; | ||
if (semotus.controller && semotus.controller.postServerCall) { | ||
const hasChanges: boolean = remoteCall.changes.length > 2; | ||
await semotus.controller.postServerCall.call(semotus.controller, hasChanges, callContext, semotus.changeString); | ||
await semotus.controller.postServerCall.call(semotus.controller, hasChanges, callContext, semotus.changeString, HTTPObjs); | ||
} | ||
@@ -236,0 +244,0 @@ return returnValue; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Change = 'change'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xufVxuXG4vKipcbiAqICBpZCBpcyB0aGUgaWQgb2YgdGhlIG9iamVjdCArICcvJyArIHByb3BlcnR5LlxuICogIEV4OiB0aGVyZSBhcmUgMSBTY2hvb2wgdG8gTWFueSBTdHVkZW50c1xuICpcbiAqICBTY2hvb2wge1xuICogICAgICBzdHVkZW50czogQXJyYXk8U3R1ZGVudHM+XG4gKiAgfVxuICpcbiAqICBJbiB0aGlzIGNhc2UsIG9uZSBlbnRyeSB3aXRoaW4gdGhpcyBBcnJheUdyb3VwIG1heSBiZSAnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl1cbiAqXG4gKiAgSWYgdGhhdCdzIGFsbCB0aGUgY2hhbmdlcyB0aGVuIHRoZSBBcnJheUdyb3VwIHdvdWxkIGJlIHsnc2VydmVyLVNjaG9vbC0xL3N0dWRlbnRzJzogW1wic2VydmVyLVN0dWRlbnQtM1wiLCBcInNlcnZlci1TdHVkZW50LTVcIl19XG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5R3JvdXAgPSB7IFtpZDogc3RyaW5nXTogQXJyYXlDaGFuZ2VzIH07XG5cbi8qKlxuICogQW4gYXJyYXkgb2YgSWQgcmVmZXJlbmNlcyB0byBTdXBlcnR5cGUgT2JqZWN0cyBvciBwcmltaXRpdmUgdmFsdWVzXG4gKi9cbnR5cGUgQXJyYXlDaGFuZ2VzID0gQXJyYXk8YW55PjtcbmV4cG9ydCB0eXBlIENoYW5nZUdyb3VwID0geyBbb2JqSWQ6IHN0cmluZ106IFByb3BDaGFuZ2VzIH07XG50eXBlIFByb3BDaGFuZ2VzID0geyBbcHJvcDogc3RyaW5nXTogQ2hhbmdlcyB9O1xuXG4vLyBDaGFuZ2VzWzBdIGlzIG9sZFZhbHVlLCBDaGFuZ2VzWzFdIGlzIG5ld1ZhbHVlXG50eXBlIG9sZFZhbCA9IGFueTtcbnR5cGUgbmV3VmFsID0gYW55O1xudHlwZSBDaGFuZ2VzID0gW29sZFZhbCwgbmV3VmFsXVtdO1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25zID0geyBba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfTtcblxuZXhwb3J0IHR5cGUgUmVtb3RlQ2FsbCA9IHtcbiAgICByZW1vdGVDYWxsSWQ6IGFueTtcbiAgICBpZDogYW55O1xuICAgIGNoYW5nZXM6IHN0cmluZzsgLy8gVGhlIHN0cmluZyBpcyBvZiB0eXBlIENoYW5nZUdyb3VwXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHNlcXVlbmNlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGEgaGFuZGxlciB0aGF0IHdpbGwgb25seSBiZSB1c2VkIGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgcHVycG9zZXNcbiAgICAgKlxuICAgICAqIFdoZW4gdGhpcyBpcyB1c2VkLCBhbGxvd3MgdXMgdG8gaW5zcGVjdCB0aGUgbWVzc2FnZSBib2R5IGJlZm9yZSB3ZSBzZW5kIGl0IG91dCBpbiAncGFja2FnZUNoYW5nZXMnXG4gICAgICpcbiAgICAgKiBETyBOT1QgVVNFIFRISVMgSU4gUFJPRFVDVElPTiBDT0RFXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZVxuICAgICAqL1xuICAgIGluc3BlY3RNZXNzYWdlPyhtZXNzYWdlKTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbW90dXMge1xuICAgIHNldFN5bmNTdGF0ZTogKHN0cikgPT4gdm9pZDtcbiAgICBzeW5jU3RhdGU6IHN0cmluZztcbiAgICBnZXRTeW5jU3RhdGU6ICgpID0+IGFueTtcbiAgICBtYXhDYWxsVGltZTogbnVtYmVyO1xuICAgIF9fZGljdGlvbmFyeV9fOiBhbnk7XG4gICAgbWVtU2Vzc2lvbjogeyBzZW1vdHVzOiB7IGNhbGxTdGFydFRpbWU6IG51bWJlciB9IH07XG4gICAgX2luamVjdEludG9UZW1wbGF0ZTogKHRlbXBsYXRlKSA9PiB2b2lkO1xuICAgIHNlcmlhbGl6ZUFuZEdhcmJhZ2VDb2xsZWN0OiAoKSA9PiBhbnk7XG4gICAgZ2V0TWVzc2FnZTogKHNlc3Npb25JZCwgZm9yY2VNZXNzYWdlKSA9PiBhbnk7XG4gICAgY2xlYXJQZW5kaW5nQ2FsbHM6IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgZ2V0Q2hhbmdlR3JvdXA6ICh0eXBlLCBzdWJzY3JpcHRpb25JZCkgPT4gQ2hhbmdlR3JvdXA7XG4gICAgZGVsZXRlQ2hhbmdlR3JvdXA6ICh0eXBlOiBhbnksIHN1YnNjcmlwdGlvbklkOiBhbnkpID0+IHZvaWQ7XG4gICAgZ2V0Q2hhbmdlU3RhdHVzOiAoKSA9PiBzdHJpbmc7XG4gICAgX3N0YXNoT2JqZWN0OiAob2JqLCB0ZW1wbGF0ZSkgPT4gYm9vbGVhbjtcbiAgICBzZXNzaW9uaXplOiAob2JqLCByZWZlcmVuY2luZ09iaikgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgX3NldHVwRnVuY3Rpb246IChwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUsIHJvbGUsIHZhbGlkYXRlLCBzZXJ2ZXJWYWxpZGF0aW9uLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBlbmFibGVTZW5kTWVzc2FnZTogKHZhbHVlLCBtZXNzYWdlQ2FsbGJhY2ssIHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBzeW5jU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICByZXN0b3JlU2Vzc2lvbjogKHNlc3Npb25JZCwgc2F2ZWRTZXNzaW9uOiBTYXZlZFNlc3Npb24sIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSkgPT4gYm9vbGVhbjtcbiAgICBzYXZlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gU2F2ZWRTZXNzaW9uO1xuICAgIHNldE1pbmltdW1TZXF1ZW5jZTogKG5leHRPYmpJZCkgPT4gdm9pZDtcbiAgICBkZWxldGVTZXNzaW9uOiAoc2Vzc2lvbklkKSA9PiB2b2lkO1xuICAgIGNyZWF0ZVNlc3Npb246IChyb2xlOiBhbnksIHNlbmRNZXNzYWdlOiBTZW5kTWVzc2FnZSwgc2Vzc2lvbklkOiBhbnkpID0+IGFueTtcbiAgICBsb2c6IChsZXZlbCwgZGF0YSkgPT4gdm9pZDtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBtYXhDbGllbnRTZXF1ZW5jZTogbnVtYmVyO1xuICAgIGxvZ0xldmVsOiBudW1iZXI7XG4gICAgX19jb25mbGljdE1vZGVfXzogc3RyaW5nO1xuICAgIF9fY2hhbmdlVHJhY2tpbmdfXzogYm9vbGVhbjtcbiAgICBfdXNlR2V0dGVyc1NldHRlcnM6IGJvb2xlYW47XG4gICAgbG9nZ2VyOiBhbnk7XG4gICAgcm9sZTogYW55O1xuICAgIGN1cnJlbnRTZXNzaW9uOiBhbnk7XG4gICAgc2Vzc2lvbnM/OiBTZXNzaW9ucztcbiAgICBuZXh0U3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICBuZXh0U2Vzc2lvbklkOiBudW1iZXI7XG4gICAgY29udHJvbGxlcjogSVNlbW90dXNDb250cm9sbGVyO1xuICAgIGNoYW5nZVN0cmluZzogc3RyaW5nO1xuXG5cbiAgICBfZ2V0U2Vzc2lvbihfc2lkPzogYW55KTogU2Vzc2lvbjtcblxuICAgIHN1YnNjcmliZShyb2xlOiBhbnkpOiBudW1iZXI7XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb25JZDogYW55KTogdm9pZDtcblxuICAgIGdldENoYW5nZXMoc3Vic2NyaXB0aW9uSWQ/OiBhbnkpOiBDaGFuZ2VHcm91cDtcblxuICAgIF9kZWxldGVDaGFuZ2VzKCk6IHZvaWQ7XG5cbiAgICBnZXRQZW5kaW5nQ2FsbENvdW50KHNlc3Npb25JZDogYW55KTogYW55O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFhLFFBQUEsTUFBTSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3VwZXJ0eXBlfSBmcm9tICdAaGF2ZW50ZWNoL3N1cGVydHlwZSc7XG5pbXBvcnQge1JlcXVlc3QsIFJlc3BvbnNlfSBmcm9tICdleHByZXNzJztcbmV4cG9ydCB0eXBlIEhUVFBPYmpzID0ge3JlcXVlc3Q6IFJlcXVlc3QsIHJlc3BvbnNlOiBSZXNwb25zZX07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgICByb2xlOiBzdHJpbmc7XG4gICAgbG9nOiB7XG4gICAgICAgIGFycmF5OiBBcnJheUdyb3VwO1xuICAgICAgICBhcnJheURpcnR5OiBBcnJheUdyb3VwO1xuICAgICAgICBjaGFuZ2U6IENoYW5nZUdyb3VwO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IENoYW5nZSA9ICdjaGFuZ2UnO1xuZXhwb3J0IHR5cGUgQXJyYXlUeXBlcyA9ICdhcnJheScgfCAnYXJyYXlEaXJ0eSc7XG5leHBvcnQgdHlwZSBFcnJvclR5cGUgPSAnZXJyb3InIHwgJ3JldHJ5JyB8ICdyZXNwb25zZSc7XG5cbmV4cG9ydCB0eXBlIENhbGxDb250ZXh0ID0geyByZXRyaWVzOiBudW1iZXI7IHN0YXJ0VGltZTogRGF0ZSB9O1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzQ2FsbFBheWxvYWQgPSB7XG4gICAgc2Vtb3R1czogU2Vtb3R1cztcbiAgICByZW1vdGVDYWxsOiBSZW1vdGVDYWxsO1xuICAgIGNhbGxDb250ZXh0OiBDYWxsQ29udGV4dDtcbiAgICBzZXNzaW9uOiBTZXNzaW9uO1xuICAgIHN1YnNjcmlwdGlvbklkOiBhbnk7XG4gICAgcmVtb3RlQ2FsbElkOiBhbnk7XG4gICAgcmVzdG9yZVNlc3Npb25DYWxsYmFjaz86IEZ1bmN0aW9uO1xuICAgIEhUVFBPYmpzPzogSFRUUE9ianM7XG59XG5cbi8qKlxuICogIGlkIGlzIHRoZSBpZCBvZiB0aGUgb2JqZWN0ICsgJy8nICsgcHJvcGVydHkuXG4gKiAgRXg6IHRoZXJlIGFyZSAxIFNjaG9vbCB0byBNYW55IFN0dWRlbnRzXG4gKlxuICogIFNjaG9vbCB7XG4gKiAgICAgIHN0dWRlbnRzOiBBcnJheTxTdHVkZW50cz5cbiAqICB9XG4gKlxuICogIEluIHRoaXMgY2FzZSwgb25lIGVudHJ5IHdpdGhpbiB0aGlzIEFycmF5R3JvdXAgbWF5IGJlICdzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXVxuICpcbiAqICBJZiB0aGF0J3MgYWxsIHRoZSBjaGFuZ2VzIHRoZW4gdGhlIEFycmF5R3JvdXAgd291bGQgYmUgeydzZXJ2ZXItU2Nob29sLTEvc3R1ZGVudHMnOiBbXCJzZXJ2ZXItU3R1ZGVudC0zXCIsIFwic2VydmVyLVN0dWRlbnQtNVwiXX1cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlHcm91cCA9IHsgW2lkOiBzdHJpbmddOiBBcnJheUNoYW5nZXMgfTtcblxuLyoqXG4gKiBBbiBhcnJheSBvZiBJZCByZWZlcmVuY2VzIHRvIFN1cGVydHlwZSBPYmplY3RzIG9yIHByaW1pdGl2ZSB2YWx1ZXNcbiAqL1xudHlwZSBBcnJheUNoYW5nZXMgPSBBcnJheTxhbnk+O1xuZXhwb3J0IHR5cGUgQ2hhbmdlR3JvdXAgPSB7IFtvYmpJZDogc3RyaW5nXTogUHJvcENoYW5nZXMgfTtcbnR5cGUgUHJvcENoYW5nZXMgPSB7IFtwcm9wOiBzdHJpbmddOiBDaGFuZ2VzIH07XG5cbi8vIENoYW5nZXNbMF0gaXMgb2xkVmFsdWUsIENoYW5nZXNbMV0gaXMgbmV3VmFsdWVcbnR5cGUgb2xkVmFsID0gYW55O1xudHlwZSBuZXdWYWwgPSBhbnk7XG50eXBlIENoYW5nZXMgPSBbb2xkVmFsLCBuZXdWYWxdW107XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbnMgPSB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9O1xuXG5leHBvcnQgdHlwZSBSZW1vdGVDYWxsID0ge1xuICAgIHJlbW90ZUNhbGxJZDogYW55O1xuICAgIGlkOiBhbnk7XG4gICAgY2hhbmdlczogc3RyaW5nOyAvLyBUaGUgc3RyaW5nIGlzIG9mIHR5cGUgQ2hhbmdlR3JvdXBcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2VxdWVuY2U6IGFueTtcbiAgICB0eXBlOiBhbnk7XG4gICAgc3luYzogYW55O1xuICAgIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNlc3Npb24gPSB7XG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9ucztcbiAgICBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2U7XG4gICAgc2VuZE1lc3NhZ2VFbmFibGVkOiBib29sZWFuO1xuICAgIHJlbW90ZUNhbGxzOiBBcnJheTxhbnk+O1xuICAgIHBlbmRpbmdSZW1vdGVDYWxsczogYW55O1xuICAgIG5leHRQZW5kaW5nUmVtb3RlQ2FsbElkOiBudW1iZXI7XG4gICAgbmV4dFNhdmVTZXNzaW9uSWQ6IG51bWJlcjtcbiAgICBzYXZlZFNlc3Npb25JZDogbnVtYmVyO1xuICAgIG5leHRTdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuICAgIG9iamVjdHM6IGFueTtcbiAgICBuZXh0T2JqSWQ6IG51bWJlcjtcbiAgICBkaXNwZW5zZU5leHRJZDogbnVsbDsgLy8gbm90IHVzZWQgYW55d2hlcmVcbn1cblxuXG5leHBvcnQgdHlwZSBTZXNzaW9ucyA9IHsgW3Nlc3Npb25JZDogbnVtYmVyXTogU2Vzc2lvbiB9O1xuXG5leHBvcnQgdHlwZSBTZW5kTWVzc2FnZSA9IChtZXNzYWdlOiBhbnkpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFNhdmVkU2Vzc2lvbiA9IHtcbiAgICByZXZpc2lvbjogbnVtYmVyO1xuICAgIGRhdGE6IHN0cmluZzsgLy8gU2VyaWFsaXplZCBTZXNzaW9uIGRhdGFcbiAgICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgICByZWZlcmVuY2VkOiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZWFibGVDbGFzcyBleHRlbmRzIFN1cGVydHlwZSB7XG4gICAgc3luY1N0YXRlczogQXJyYXk8c3RyaW5nPjtcbiAgICBfX3RvQ2xpZW50X186IGJvb2xlYW47XG4gICAgX190b1NlcnZlcl9fOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDaGFuZ2VTdHJpbmcgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xudHlwZSBQcmVTZXJ2ZXJDYWxsQ2hhbmdlcyA9IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuXG5leHBvcnQgdHlwZSBDb250cm9sbGVyU3luY1N0YXRlID0ge1xuICAgIHNjb3BlOiAnKycgfCAnKicgfCAnLSdcbiAgICBzdGF0ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNlbW90dXNDb250cm9sbGVyIHtcbiAgICBfX3RlbXBsYXRlX186IGFueTtcbiAgICBzeW5jU3RhdGU/OiBDb250cm9sbGVyU3luY1N0YXRlXG5cbiAgICAvKipcbiAgICAgKiBAc2VydmVyXG4gICAgICpcbiAgICAgKiBDYWxsYmFjayBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVtb3RlIGZ1bmN0aW9uIGNhbGwgKGp1c3QgdGhlIGFwcGxpY2F0aW9uIG9mIGNoYW5nZXMgYW5kIHRoZSBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIGNhbGwpXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHdlIGNhbid0IGVycm9yIG91dCBvbiB0aGlzIG9yIHN1YnNlcXVlbnQgc3RlcHMgb2YgYSByZW1vdGUgY2FsbC5cbiAgICAgKlxuICAgICAqIFdlIGNhbiB1dGlsaXplIHRoaXMgZnVuY3Rpb24gYXMgYSBnZW5lcmljIGZ1bmN0aW9uIGhhbmRsZXIgdG8gcnVuIGFmdGVyIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGNhbGxlZCBhIHJlbW90ZSBmdW5jdGlvbi5cbiAgICAgKiBPbmUgc3VjaCB1c2UgbWF5IGJlIHRvIHNlZSB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgYXBwbGllZCBmcm9tIHRoZSBjbGllbnRcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBTZWUgcmVtb3RlIGNhbGwgZG9jdW1lbnRhdGlvbiB0byBrbm93IHdoZXJlIHRoaXMgZXhlY3V0ZXMgaW4gdGhlIGxpZmVjeWNsZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBoYXNDaGFuZ2VzIC0gV2hldGhlciBvciBub3Qgd2UgaGF2ZSBhcHBsaWVkIGNsaWVudCBjaGFuZ2VzIG9udG8gdGhlIHNlcnZlcidzIG9iamVjdCBncmFwaFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Y2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICogQHBhcmFtIEhUVFBPYmpzXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJDYWxsPyhoYXNDaGFuZ2VzOiBib29sZWFuLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nLCBIVFRQT2Jqcz86IEhUVFBPYmpzKTogUHJvbWlzZTxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQHNlcnZlclxuICAgICAqXG4gICAgICogQ2FsbGJhY2sgdG8gaGFuZGxlIGVycm9ycyBvbiBhIHJlbW90ZSBjYWxsLlxuICAgICAqXG4gICAgICogRXhlY3V0ZXMgYWZ0ZXIgZXZlcnkgb3RoZXIgc3RlcCBpbiB0aGUgcmVtb3RlIGNhbGwgcGlwZWxpbmUgKHNlZSByZW1vdGUgY2FsbCBkb2N1bWVudGF0aW9uKVxuICAgICAqIGJ1dCBiZWZvcmUgcmV0cnlpbmcgdGhlIGNhbGwgKG9yIHBhY2thZ2luZyByZXNwb25zZSBhbmQgc2VuZGluZyBiYWNrIHRvIGNsaWVudClcbiAgICAgKlxuICAgICAqIE5PVEUgVEhBVCBUSEUgQ0hBTkdFU1RSSU5HIERPRVMgTk9UIElOQ0xVREUgQ0hBTkdFUyBET05FIFdJVEhJTiBUSEUgUkVNT1RFIEZVTkNUSU9OIENBTEwgSVRTRUxGLCBPTkxZIENIQU5HRVMgRlJPTSBUSEUgQ0xJRU5UXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0Vycm9yVHlwZX0gZXJyb3JUeXBlIC0gRXJyb3IgdHlwZSBhc3NvY2lhdGVkIChlcnJvciwgcmV0cnksIHJlc3BvbnNlKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZW1vdGVDYWxsSWQgLSBJZCBmb3IgcmVtb3RlIGNhbGxcbiAgICAgKiBAcGFyYW0ge2V4dGVuZHMgU3VwZXJ0eXBlfSByZW1vdGVPYmogLSBJbnN0YW5jZSBmb3Igd2hpY2ggdGhlIHJlbW90ZSBvYmplY3QgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciAtIEBUT0RPOiByZXZpc2l0IHdoZW4gd2UgY3JlYXRlIGEgcHJvcGVyIHJlbW90ZWFibGUgdHlwZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUgLSBOYW1lIG9mIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZFxuICAgICAqIEBwYXJhbSB7Q2FsbENvbnRleHR9IGNhbGxDb250ZXh0IC0gQ29udGV4dCAobnVtYmVyIG9mIHJldHJpZXMgZXRjKVxuICAgICAqIEBwYXJhbSB7Q2hhbmdlU3RyaW5nfSBjaGFuZ2VTdHJpbmcgLSBPYmplY3Qgb2YgQ2hhbmdlcyAtIEtleSBpcyBbQ2xhc3NOYW1lXS5bcHJvcGVydHlOYW1lXSwgVmFsdWUgaXMgW2NoYW5nZWRWYWx1ZV0gZXhhbXBsZTogeydDdXN0b21lci5taWRkbGVuYW1lJzogJ0thcmVuJ30sIFNlZSBhYm92ZSBub3RlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHBvc3RTZXJ2ZXJFcnJvckhhbmRsZXI/KGVycm9yVHlwZTogRXJyb3JUeXBlLCByZW1vdGVDYWxsSWQ6IG51bWJlciwgcmVtb3RlT2JqOiBTdXBlcnR5cGUsIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGNoYW5nZVN0cmluZzogQ2hhbmdlU3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIEBzZXJ2ZXJcbiAgICAgKlxuICAgICAqIENhbGxiYWNrIGJlZm9yZSBhIHJlbW90ZSBmdW5jdGlvbiBjYWxsICgxc3Qgc3RlcCBvZiBhIHJlbW90ZSBjYWxsKVxuICAgICAqXG4gICAgICogV2UgY2FuIHV0aWxpemUgdGhpcyBmdW5jdGlvbiBhcyBhIGdlbmVyaWMgZnVuY3Rpb24gaGFuZGxlciB0byBydW4gYmVmb3JlIHdlIGNhbGwgYVxuICAgICAqIHJlbW90ZSBmdW5jdGlvbiBvciBiZWZvcmUgd2UgYXBwbHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogV2UgY2FuIGFsc28gdXRpbGl6ZSB0aGlzIGZ1bmN0aW9uIHRvIGRvIGFueSBjb250ZXh0LXNwZWNpZmljIHByZXAgd29yayAvIGxvYWRpbmdcbiAgICAgKiBpZiB0aGlzIGEgc3Vic2VxdWVudCB0cnkgb2YgdGhpcyBmdW5jdGlvbiBkdWUgdG8gYW4gdXBkYXRlIGNvbmZsaWN0LlxuICAgICAqXG4gICAgICogU2VlIHJlbW90ZSBjYWxsIGRvY3VtZW50YXRpb24gdG8ga25vdyB3aGVyZSB0aGlzIGV4ZWN1dGVzIGluIHRoZSBsaWZlY3ljbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaGFzQ2hhbmdlcyAtIFdoZXRoZXIgb3Igbm90IHdlIGhhdmUgYXBwbGllZCBjbGllbnQgY2hhbmdlcyBvbnRvIHRoZSBzZXJ2ZXIncyBvYmplY3QgZ3JhcGhcbiAgICAgKiBAcGFyYW0ge1ByZVNlcnZlckNhbGxDaGFuZ2VzfSBjaGFuZ2VzIC0gRGljdGlvbmFyeSBvZiBPYmplY3RzIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgZnJvbSB0aGUgY2xpZW50XG4gICAgICogQHBhcmFtIHtDYWxsQ29udGV4dH0gY2FsbENvbnRleHQgLSBDb250ZXh0IChudW1iZXIgb2YgcmV0cmllcyBldGMpXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2VVcGRhdGVdIC0gT3B0aW9uYWwgcGFyYW1ldGVyIHBhc3NlZCBpbi4gVHJ1ZSBpZiB0aGlzIGlzIGEgcmV0cnkgb2YgdGhlIGNhbGwgYmFzZWQgb24gYW4gdXBkYXRlIGNvbmZsaWN0LiBGYWxzZSAvIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25OYW1lXG4gICAgICogQHBhcmFtIHJlbW90ZUNhbGxcbiAgICAgKiBAcGFyYW0gaXNQdWJsaWNcbiAgICAgKiBAcGFyYW0gSFRUUE9ianNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICAgKiBAbWVtYmVyb2YgQ29udHJvbGxlclxuICAgICAqL1xuICAgIHByZVNlcnZlckNhbGw/KGhhc0NoYW5nZXM6IGJvb2xlYW4sIGNoYW5nZXM6IFByZVNlcnZlckNhbGxDaGFuZ2VzLCBjYWxsQ29udGV4dDogQ2FsbENvbnRleHQsIGZvcmNlVXBkYXRlOiB1bmRlZmluZWQgfCBib29sZWFuLCBmdW5jdGlvbk5hbWU6IHN0cmluZywgcmVtb3RlQ2FsbDogUmVtb3RlQ2FsbCwgaXNQdWJsaWM6IGJvb2xlYW4sIEhUVFBPYmpzPzogSFRUUE9ianMgKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSBoYW5kbGVyIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3Nlc1xuICAgICAqXG4gICAgICogV2hlbiB0aGlzIGlzIHVzZWQsIGFsbG93cyB1cyB0byBpbnNwZWN0IHRoZSBtZXNzYWdlIGJvZHkgYmVmb3JlIHdlIHNlbmQgaXQgb3V0IGluICdwYWNrYWdlQ2hhbmdlcydcbiAgICAgKlxuICAgICAqIERPIE5PVCBVU0UgVEhJUyBJTiBQUk9EVUNUSU9OIENPREVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG4gICAgaW5zcGVjdE1lc3NhZ2U/KG1lc3NhZ2UpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vtb3R1cyB7XG4gICAgc2V0U3luY1N0YXRlOiAoc3RyKSA9PiB2b2lkO1xuICAgIHN5bmNTdGF0ZTogc3RyaW5nO1xuICAgIGdldFN5bmNTdGF0ZTogKCkgPT4gYW55O1xuICAgIG1heENhbGxUaW1lOiBudW1iZXI7XG4gICAgX19kaWN0aW9uYXJ5X186IGFueTtcbiAgICBtZW1TZXNzaW9uOiB7IHNlbW90dXM6IHsgY2FsbFN0YXJ0VGltZTogbnVtYmVyIH0gfTtcbiAgICBfaW5qZWN0SW50b1RlbXBsYXRlOiAodGVtcGxhdGUpID0+IHZvaWQ7XG4gICAgc2VyaWFsaXplQW5kR2FyYmFnZUNvbGxlY3Q6ICgpID0+IGFueTtcbiAgICBnZXRNZXNzYWdlOiAoc2Vzc2lvbklkLCBmb3JjZU1lc3NhZ2UpID0+IGFueTtcbiAgICBjbGVhclBlbmRpbmdDYWxsczogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VHcm91cDogKHR5cGUsIHN1YnNjcmlwdGlvbklkKSA9PiBDaGFuZ2VHcm91cDtcbiAgICBkZWxldGVDaGFuZ2VHcm91cDogKHR5cGU6IGFueSwgc3Vic2NyaXB0aW9uSWQ6IGFueSkgPT4gdm9pZDtcbiAgICBnZXRDaGFuZ2VTdGF0dXM6ICgpID0+IHN0cmluZztcbiAgICBfc3Rhc2hPYmplY3Q6IChvYmosIHRlbXBsYXRlKSA9PiBib29sZWFuO1xuICAgIHNlc3Npb25pemU6IChvYmosIHJlZmVyZW5jaW5nT2JqKSA9PiAodW5kZWZpbmVkIHwgYW55KTtcbiAgICBfc2V0dXBGdW5jdGlvbjogKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSwgcm9sZSwgdmFsaWRhdGUsIHNlcnZlclZhbGlkYXRpb24sIGlzUHVibGljOiBib29sZWFuLCB0ZW1wbGF0ZSkgPT4gKGFueSk7XG4gICAgX3NldHVwUHJvcGVydHk6IChwcm9wZXJ0eU5hbWUsIGRlZmluZVByb3BlcnR5LCBvYmplY3RQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0aWVzKSA9PiB2b2lkO1xuICAgIHdpdGhvdXRDaGFuZ2VUcmFja2luZzogKGNiKSA9PiB2b2lkO1xuICAgIF9jaGFuZ2VkVmFsdWU6IChvYmosIHByb3AsIHZhbHVlKSA9PiB2b2lkO1xuICAgIF9yZWZlcmVuY2VkQXJyYXk6IChvYmosIHByb3AsIGFycmF5UmVmLCBzZXNzaW9uSWQ/KSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0QXJyYXlSZWZlcmVuY2VzVG9DaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIE1hcmtDaGFuZ2VkQXJyYXlSZWZlcmVuY2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jb252ZXJ0VmFsdWU6ICh2YWx1ZSkgPT4gKGFueVtdIHwgbnVsbCk7XG4gICAgZ2V0T2JqZWN0OiAob2JqSWQsIHRlbXBsYXRlKSA9PiAoYW55IHwgbnVsbCk7XG4gICAgX2FwcGx5Q2hhbmdlczogKGNoYW5nZXMsIGZvcmNlLCBzdWJzY3JpcHRpb25JZCwgY2FsbENvbnRleHQpID0+IChudW1iZXIpO1xuICAgIF9hcHBseU9iamVjdENoYW5nZXM6IChjaGFuZ2VzLCByb2xsYmFjaywgb2JqLCBmb3JjZSkgPT4gKGJvb2xlYW4pO1xuICAgIF92YWxpZGF0ZVNlcnZlckluY29taW5nUHJvcGVydHk6IChvYmosIHByb3AsIGRlZmluZVByb3BlcnR5LCBuZXdWYWx1ZSkgPT4gKGJvb2xlYW4pO1xuICAgIF9hcHBseVByb3BlcnR5Q2hhbmdlOiAoY2hhbmdlcywgcm9sbGJhY2ssIG9iaiwgcHJvcCwgaXgsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgZm9yY2UpID0+IChib29sZWFuKTtcbiAgICBfcm9sbGJhY2s6IChyb2xsYmFjaykgPT4gdm9pZDtcbiAgICBfcm9sbGJhY2tDaGFuZ2VzOiAoKSA9PiB2b2lkO1xuICAgIF9jcmVhdGVFbXB0eU9iamVjdDogKHRlbXBsYXRlLCBvYmpJZCwgZGVmaW5lUHJvcGVydHksIGlzVHJhbnNpZW50KSA9PiBhbnk7XG4gICAgaW5qZWN0OiAodGVtcGxhdGUsIGluamVjdG9yKSA9PiB2b2lkO1xuICAgIF9xdWV1ZVJlbW90ZUNhbGw6IChvYmpJZCwgZnVuY3Rpb25OYW1lLCBkZWZlcnJlZCwgYXJncykgPT4gdm9pZDtcbiAgICBfcHJvY2Vzc1F1ZXVlOiAoKSA9PiB2b2lkO1xuICAgIF90b1RyYW5zcG9ydDogKG9iaikgPT4gYW55O1xuICAgIF9mcm9tVHJhbnNwb3J0OiAob2JqKSA9PiBhbnk7XG4gICAgX2V4dHJhY3RBcmd1bWVudHM6IChyZW1vdGVDYWxsKSA9PiBhbnk7XG4gICAgX3RyaW1BcnJheTogKGFycmF5KSA9PiB2b2lkO1xuICAgIF9kZWxldGVDaGFuZ2VHcm91cHM6ICh0eXBlKSA9PiB2b2lkO1xuICAgIF9nZXRTdWJzY3JpcHRpb25zOiAoc2Vzc2lvbklkPykgPT4gU3Vic2NyaXB0aW9ucyB8IG51bGw7XG4gICAgX2dldFN1YnNjcmlwdGlvbjogKHN1YnNjcmlwdGlvbklkPykgPT4gU3Vic2NyaXB0aW9uO1xuICAgIGNsZWFuUHJpdmF0ZVZhbHVlczogKHByb3AsIGxvZ1ZhbHVlLCBkZWZpbmVQcm9wZXJ0eSkgPT4gKHN0cmluZyB8IGFueSk7XG4gICAgUmVtb3RlYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBCaW5kYWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBQZXJzaXN0YWJsZTogKEJhc2UpID0+ICgpID0+IGFueTtcbiAgICBiaW5kRGVjb3JhdG9yczogKG9iamVjdFRlbXBsYXRlPykgPT4gdm9pZDtcbiAgICBwcm9jZXNzTWVzc2FnZTogKHJlbW90ZUNhbGwsIHN1YnNjcmlwdGlvbklkLCByZXN0b3JlU2Vzc2lvbkNhbGxiYWNrLCByZXE/OiBSZXF1ZXN0LCByZXM/OiBSZXNwb25zZSkgPT4gKHVuZGVmaW5lZCB8IGFueSk7XG4gICAgZW5hYmxlU2VuZE1lc3NhZ2U6ICh2YWx1ZSwgbWVzc2FnZUNhbGxiYWNrLCBzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgc3luY1Nlc3Npb246IChzZXNzaW9uSWQpID0+IHZvaWQ7XG4gICAgcmVzdG9yZVNlc3Npb246IChzZXNzaW9uSWQsIHNhdmVkU2Vzc2lvbjogU2F2ZWRTZXNzaW9uLCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UpID0+IGJvb2xlYW47XG4gICAgc2F2ZVNlc3Npb246IChzZXNzaW9uSWQpID0+IFNhdmVkU2Vzc2lvbjtcbiAgICBzZXRNaW5pbXVtU2VxdWVuY2U6IChuZXh0T2JqSWQpID0+IHZvaWQ7XG4gICAgZGVsZXRlU2Vzc2lvbjogKHNlc3Npb25JZCkgPT4gdm9pZDtcbiAgICBjcmVhdGVTZXNzaW9uOiAocm9sZTogYW55LCBzZW5kTWVzc2FnZTogU2VuZE1lc3NhZ2UsIHNlc3Npb25JZDogYW55KSA9PiBhbnk7XG4gICAgbG9nOiAobGV2ZWwsIGRhdGEpID0+IHZvaWQ7XG4gICAgbmV4dE9iaklkOiBudW1iZXI7XG4gICAgbWF4Q2xpZW50U2VxdWVuY2U6IG51bWJlcjtcbiAgICBsb2dMZXZlbDogbnVtYmVyO1xuICAgIF9fY29uZmxpY3RNb2RlX186IHN0cmluZztcbiAgICBfX2NoYW5nZVRyYWNraW5nX186IGJvb2xlYW47XG4gICAgX3VzZUdldHRlcnNTZXR0ZXJzOiBib29sZWFuO1xuICAgIGxvZ2dlcjogYW55O1xuICAgIHJvbGU6IGFueTtcbiAgICBjdXJyZW50U2Vzc2lvbjogYW55O1xuICAgIHNlc3Npb25zPzogU2Vzc2lvbnM7XG4gICAgbmV4dFN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgbmV4dFNlc3Npb25JZDogbnVtYmVyO1xuICAgIGNvbnRyb2xsZXI6IElTZW1vdHVzQ29udHJvbGxlcjtcbiAgICBjaGFuZ2VTdHJpbmc6IHN0cmluZztcblxuXG4gICAgX2dldFNlc3Npb24oX3NpZD86IGFueSk6IFNlc3Npb247XG5cbiAgICBzdWJzY3JpYmUocm9sZTogYW55KTogbnVtYmVyO1xuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uSWQ6IGFueSk6IHZvaWQ7XG5cbiAgICBnZXRDaGFuZ2VzKHN1YnNjcmlwdGlvbklkPzogYW55KTogQ2hhbmdlR3JvdXA7XG5cbiAgICBfZGVsZXRlQ2hhbmdlcygpOiB2b2lkO1xuXG4gICAgZ2V0UGVuZGluZ0NhbGxDb3VudChzZXNzaW9uSWQ6IGFueSk6IGFueTtcbn1cbiJdfQ== |
import {Supertype} from '@haventech/supertype'; | ||
import {Request, Response} from 'express'; | ||
export type HTTPObjs = {request: Request, response: Response}; | ||
@@ -26,2 +28,3 @@ export type Subscription = { | ||
restoreSessionCallback?: Function; | ||
HTTPObjs?: HTTPObjs; | ||
} | ||
@@ -63,2 +66,5 @@ | ||
sequence: any; | ||
type: any; | ||
sync: any; | ||
value: any; | ||
} | ||
@@ -127,2 +133,3 @@ | ||
* @param {changeString} changeString - Object of Changes - Key is [ClassName].[propertyName], Value is [changedValue] example: {'Customer.middlename': 'Karen'}, See above note | ||
* @param HTTPObjs | ||
* | ||
@@ -132,3 +139,3 @@ * @returns {Promise<void>} | ||
*/ | ||
postServerCall?(hasChanges: boolean, callContext: CallContext, changeString: ChangeString): Promise<any>; | ||
postServerCall?(hasChanges: boolean, callContext: CallContext, changeString: ChangeString, HTTPObjs?: HTTPObjs): Promise<any>; | ||
@@ -175,6 +182,10 @@ /** | ||
* | ||
* @param functionName | ||
* @param remoteCall | ||
* @param isPublic | ||
* @param HTTPObjs | ||
* @returns {Promise<void>} | ||
* @memberof Controller | ||
*/ | ||
preServerCall?(hasChanges: boolean, changes: PreServerCallChanges, callContext: CallContext, forceUpdate?: boolean): Promise<void>; | ||
preServerCall?(hasChanges: boolean, changes: PreServerCallChanges, callContext: CallContext, forceUpdate: undefined | boolean, functionName: string, remoteCall: RemoteCall, isPublic: boolean, HTTPObjs?: HTTPObjs ): Promise<void>; | ||
@@ -209,3 +220,3 @@ /** | ||
sessionize: (obj, referencingObj) => (undefined | any); | ||
_setupFunction: (propertyName, propertyValue, role, validate, serverValidation, template) => (any); | ||
_setupFunction: (propertyName, propertyValue, role, validate, serverValidation, isPublic: boolean, template) => (any); | ||
_setupProperty: (propertyName, defineProperty, objectProperties, defineProperties) => void; | ||
@@ -241,3 +252,3 @@ withoutChangeTracking: (cb) => void; | ||
bindDecorators: (objectTemplate?) => void; | ||
processMessage: (remoteCall, subscriptionId, restoreSessionCallback) => (undefined | any); | ||
processMessage: (remoteCall, subscriptionId, restoreSessionCallback, req?: Request, res?: Response) => (undefined | any); | ||
enableSendMessage: (value, messageCallback, sessionId) => void; | ||
@@ -244,0 +255,0 @@ syncSession: (sessionId) => void; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
979558
39
9868
15