@tricoteuses/assemblee 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/loaders.js
CHANGED
|
@@ -100,7 +100,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
100
100
|
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = new RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
|
|
101
101
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
102
102
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } /// Load data from files
|
|
103
|
-
var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(\x2D.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)\x2DN(\d+))$/, {
|
|
103
|
+
var documentUidRegex = /*#__PURE__*/_wrapRegExp(/^((ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(AN|CG|SN)(R\d+)[LS](\d+)(B|BTA|BTC|TAP)(\d+)(\x2D.*)?)|((MION)(AN|SN)(R\d+)[LS](\d+)\x2DN(\d+))$/, {
|
|
104
104
|
documentType: 2,
|
|
105
105
|
chambre: 3,
|
|
106
106
|
republique: 4,
|
|
@@ -2189,4 +2189,4 @@ function pathFromUid(dataDir, uid, dataRegexp) {
|
|
|
2189
2189
|
_fsExtra["default"].ensureDirSync(numeroMilliersDir);
|
|
2190
2190
|
return _path["default"].join(numeroMilliersDir, uid);
|
|
2191
2191
|
}
|
|
2192
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwic3RlcCIsIl9lMiIsIm1pbkxlbiIsInRvU3RyaW5nIiwidGVzdCIsImxlbiIsImFycjIiLCJfd3JhcFJlZ0V4cCIsIkJhYmVsUmVnRXhwIiwiUmVnRXhwIiwiV2Vha01hcCIsInNldCIsImdldCIsIl9zZXRQcm90b3R5cGVPZiIsImJ1aWxkR3JvdXBzIiwicmVkdWNlIiwiX2luaGVyaXRzIiwiZXhlYyIsImdyb3VwcyIsImluZGljZXMiLCJyZXBsYWNlIiwiam9pbiIsImFyZ3VtZW50cyIsImFwcGx5Iiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiYmluZCIsImRvY3VtZW50VWlkUmVnZXgiLCJkb2N1bWVudFR5cGUiLCJjaGFtYnJlIiwicmVwdWJsaXF1ZSIsImxlZ2lzbGF0dXJlIiwiZXRhdCIsIm51bWVybyIsImRvY3VtZW50VHlwZTIiLCJjaGFtYnJlMiIsInJlcHVibGlxdWUyIiwibGVnaXNsYXR1cmUyIiwibnVtZXJvMiIsImRvc3NpZXJVaWRSZWdleCIsInJldW5pb25VaWRSZWdleCIsInNjcnV0aW5VaWRSZWdleCIsIml0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyIsImRhdGFEaXIiLCJfcmVmIiwidW5kZWZpbmVkIiwiX3JlZiRub1ZhbGlkYXRpb24iLCJub1ZhbGlkYXRpb24iLCJfcmVmJGxvZyIsImxvZyIsIl9jYWxsZWUiLCJhY3RldXJzVWlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkYXRhc2V0IiwiZGF0YXNldERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJhY3RldXJTcGxpdFBhdGgiLCJhY3RldXJGaWxlbmFtZSIsImFjdGV1ckZpbGVQYXRoIiwiYWN0ZXVySnNvbiIsImFjdGV1ciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJTZXQiLCJkYXRhc2V0cyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJpZ25vcmVGb3JXZWIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsInBhdGgiLCJmaWxlbmFtZSIsIndhbGtEaXIiLCJlbmRzV2l0aCIsImNvbmNhdCIsImNvbnNvbGUiLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwiQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQiLCJ0b0FjdGV1ciIsImhhcyIsInVpZCIsImFkZCIsImRhdGFzZXRMZWdpc2xhdHVyZSIsInQwIiwidDEiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX3JlZjIiLCJfcmVmMiRub1ZhbGlkYXRpb24iLCJfcmVmMiRsb2ciLCJfY2FsbGVlMiIsImFtZW5kZW1lbnRzVWlkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiYW1lbmRlbWVudEpzb24iLCJhbWVuZGVtZW50IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYW1lbmRlbWVudHMiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIl9yZWYzIiwiX3JlZjMkbm9WYWxpZGF0aW9uIiwiX3JlZjMkbG9nIiwiX2NhbGxlZTMiLCJkb2N1bWVudHNVaWQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJkb2N1bWVudCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfcmVmNCIsIl9yZWY0JG5vVmFsaWRhdGlvbiIsIl9yZWY0JGxvZyIsIl9jYWxsZWU0IiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlc1VpZCIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCIsImRvc3NpZXJQYXJsZW1lbnRhaXJlSnNvbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIml0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyIsIl9yZWY1IiwiX3JlZjUkbm9WYWxpZGF0aW9uIiwiX3JlZjUkbG9nIiwiX2NhbGxlZTUiLCJvcmdhbmVzVWlkIiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lRmlsZVBhdGgiLCJvcmdhbmVKc29uIiwib3JnYW5lIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX3JlZjYiLCJfcmVmNiRub1ZhbGlkYXRpb24iLCJfcmVmNiRsb2ciLCJfY2FsbGVlNiIsInJldW5pb25zVWlkIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25GaWxlUGF0aCIsInJldW5pb25Kc29uIiwicmV1bmlvbiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfcmVmNyIsIl9yZWY3JG5vVmFsaWRhdGlvbiIsIl9yZWY3JGxvZyIsIl9jYWxsZWU3Iiwic2NydXRpbnNVaWQiLCJfaXRlcmF0b3IxMyIsIl9zdGVwMTMiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJzY3J1dGluIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9yZWY4IiwiX3JlZjgkbm9WYWxpZGF0aW9uIiwiX3JlZjgkbG9nIiwiX2NhbGxlZTgiLCJxdWVzdGlvbnNVaWQiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJxdWVzdGlvblNwbGl0UGF0aCIsInF1ZXN0aW9uRmlsZW5hbWUiLCJxdWVzdGlvbkZpbGVQYXRoIiwicXVlc3Rpb25Kc29uIiwicXVlc3Rpb24iLCJfY2FsbGVlOCQiLCJfY29udGV4dDgiLCJxdWVzdGlvbnMiLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyIsIl9yZWY5IiwiX3JlZjkkbm9WYWxpZGF0aW9uIiwiX3JlZjkkbG9nIiwiX2NhbGxlZTkiLCJjb21wdGVzUmVuZHVzVWlkIiwiX2l0ZXJhdG9yMTciLCJfc3RlcDE3IiwiX2l0ZXJhdG9yMTgiLCJfc3RlcDE4IiwiY29tcHRlUmVuZHVTcGxpdFBhdGgiLCJjb21wdGVSZW5kdUZpbGVuYW1lIiwiY29tcHRlUmVuZHVGaWxlUGF0aCIsImNvbXB0ZVJlbmR1SnNvbiIsImNvbXB0ZVJlbmR1IiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImVuYWJsZWREYXRhc2V0cyIsIl9yZWYxMCIsIl9yZWYxMCRsb2ciLCJhY3RldXJCeVVpZCIsIm9yZ2FuZUJ5VWlkIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IyMiIsIl9zdGVwMjIiLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMjQiLCJwb2ludHNPZGoiLCJfc3RlcDI0IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IyNSIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAyNSIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjI2IiwiX3N0ZXAyNiIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsImRvc3NpZXJTcGxpdFBhdGgiLCJkb3NzaWVyRmlsZW5hbWUiLCJkb3NzaWVyRmlsZVBhdGgiLCJkb3NzaWVySnNvbiIsImRvc3NpZXIiLCJ0aXRyZURvc3NpZXIiLCJzZW5hdENoZW1pbiIsInRpdHJlQ2hlbWluIiwicGhvdG9CeVVpZCIsIlBob3RvcyIsImpzb25GaWxlUGF0aCIsIlNlaXplIiwiZXhpc3RzU3luYyIsImpzb24iLCJhc3NpZ24iLCJzY3J1dGluQnlVaWQiLCJTY3J1dGlucyIsIl9pdGVyYXRvcjMxIiwiX3N0ZXAzMSIsIl9pdGVyYXRvcjMyIiwiX3N0ZXAzMiIsInF1ZXN0aW9uQnlVaWQiLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3IzMyIsIl9zdGVwMzMiLCJfaXRlcmF0b3IzNCIsIl9zdGVwMzQiLCJjb21wdGVSZW5kdUJ5VWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IzNSIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJjb21wdGVSZW5kdVBhdGgiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIl9yZWYxMSIsIl9yZWYxMSRsb2ciLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IzOCIsImFjdGV1cnMiLCJfc3RlcDM4IiwiX2l0ZXJhdG9yMzkiLCJvcmdhbmVzIiwiX3N0ZXAzOSIsIl9pdGVyYXRvcjQwIiwiX3N0ZXA0MCIsInRvQWdlbmRhcyIsIl9pdGVyYXRvcjQxIiwicmV1bmlvbnMiLCJfc3RlcDQxIiwiX2l0ZXJhdG9yNDIiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJfc3RlcDQzIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwidG9BbWVuZGVtZW50cyIsIl9pdGVyYXRvcjQ1IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJfc3RlcDQ1IiwidGV4dGVMZWdpc2xhdGlmIiwiX2l0ZXJhdG9yNDYiLCJfc3RlcDQ2IiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwidG9Eb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwiX2l0ZXJhdG9yNDkiLCJkb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX3N0ZXA0OSIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsInRvU2NydXRpbnMiLCJfaXRlcmF0b3I1MSIsIl9zdGVwNTEiLCJfaXRlcmF0b3I1MiIsIl9zdGVwNTIiLCJ0b1F1ZXN0aW9ucyIsIl9pdGVyYXRvcjUzIiwiX3N0ZXA1MyIsIl9pdGVyYXRvcjU0IiwiX3N0ZXA1NCIsImNvbXB0ZXNSZW5kdXMiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJfaXRlcmF0b3I1NSIsIl9zdGVwNTUiLCJsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlIiwiZm9ybWF0cyIsImRvY3VtZW50c0RpciIsImRvY3VtZW50RGlyIiwicGF0aEZyb21Eb2N1bWVudFVpZCIsImluZGV4UGF0aCIsInBhdGhFeGlzdHNTeW5jIiwiaW5kZXgiLCJyZWFkSnNvblN5bmMiLCJfaXRlcmF0b3I1NiIsIl9zdGVwNTYiLCJfaW5kZXgkZm9ybWF0IiwiZm9ybWF0IiwiX2l0ZXJhdG9yNTciLCJfc3RlcDU3IiwiX3N0ZXA1NyR2YWx1ZSIsInVybCIsImxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzIiwiX3JlZjEyIiwiX3JlZjEyJGxvZyIsImxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMiLCJfcmVmMTMiLCJfcmVmMTMkbG9nIiwiX2dyb3VwcyRkb2N1bWVudFR5cGUiLCJfZ3JvdXBzJGNoYW1icmUiLCJfZ3JvdXBzJHJlcHVibGlxdWUiLCJfZ3JvdXBzJGxlZ2lzbGF0dXJlIiwiX2dyb3VwcyRudW1lcm8iLCJtYXRjaCIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiY2hhbWJyZURpciIsInJlcHVibGlxdWVEaXIiLCJsZWdpc2xhdHVyZURpciIsImVuc3VyZURpclN5bmMiLCJldGF0RGlyIiwic3Vic3RyaW5nIiwibnVtZXJvTWlsbGllcnNEaXIiLCJwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkIiwiZG9zc2llcnNEaXIiLCJwYXRoRnJvbVJldW5pb25VaWQiLCJyZXVuaW9uc0RpciIsInNlc3Npb25EaXIiLCJpZERpciIsIm51bWVyb01pbGxpb25zRGlyIiwicGF0aEZyb21TY3J1dGluVWlkIiwic2NydXRpbnNEaXIiLCJwYXRoRnJvbVVpZCIsImRhdGFSZWdleHAiXSwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gTG9hZCBkYXRhIGZyb20gZmlsZXNcblxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEZpbGVzSW5kZXggfSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LFxuICBPcmdhbmUsXG4gIFBob3RvLFxufSBmcm9tIFwiLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzQ29udmVydCwgUmV1bmlvbiB9IGZyb20gXCIuL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCB9IGZyb20gXCIuL3VybHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEge1xuICByZWFkb25seSBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfVxuICByZWFkb25seSBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9XG4gIHJlYWRvbmx5IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9XG4gIHJlYWRvbmx5IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9XG4gIHJlYWRvbmx5IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxuICByZWFkb25seSByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH1cbiAgcmVhZG9ubHkgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH1cbiAgcmVhZG9ubHkgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9XG4gIHJlYWRvbmx5IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfVxufVxuXG5jb25zdCBkb2N1bWVudFVpZFJlZ2V4ID1cbiAgL14oKD88ZG9jdW1lbnRUeXBlPkFDSU58QUxDTnxBVkNFfEFWSVN8REVDTHxFVERJfExFVFR8TUVTU3xNSU9OfFBJT058UE5SRXxQUkpMfFJBUFB8UklORnxSSU9OKSg/PGNoYW1icmU+QU58U04pKD88cmVwdWJsaXF1ZT5SXFxkKylbTFNdKD88bGVnaXNsYXR1cmU+XFxkKykoPzxldGF0PkJ8QlRBfEJUQ3xUQVApKD88bnVtZXJvPlxcZCspKC0uKik/KXwoKD88ZG9jdW1lbnRUeXBlMj5NSU9OKSg/PGNoYW1icmUyPkFOfFNOKSg/PHJlcHVibGlxdWUyPlJcXGQrKVtMU10oPzxsZWdpc2xhdHVyZTI+XFxkKyktTig/PG51bWVybzI+XFxkKykpJC9cbmNvbnN0IGRvc3NpZXJVaWRSZWdleCA9IC9eREwoUlxcZCspKExcXGQrKU4oXFxkKykkL1xuY29uc3QgcmV1bmlvblVpZFJlZ2V4ID1cbiAgL15SVShBTnxDR3xTTikoUlxcZCspKExcXGQrKShbQVNdXFxkezR9KShJREN8SURGTD98SURTKShcXGQrKSQvXG5jb25zdCBzY3J1dGluVWlkUmVnZXggPSAvXlZUQU4oUlxcZCspKExcXGQrKVYoXFxkKykkL1xuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBhY3RldXI6IEFjdGV1cjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgYWN0ZXVyc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgYWN0ZXVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiYWN0ZXVyc1wiXSkpIHtcbiAgICAgIGNvbnN0IGFjdGV1ckZpbGVuYW1lID0gYWN0ZXVyU3BsaXRQYXRoW2FjdGV1clNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YWN0ZXVyRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGV1ckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhY3RldXJGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGFjdGV1cjogQWN0ZXVyO1xuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGFjdGV1ciA9IEpTT04ucGFyc2UoYWN0ZXVySnNvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgfVxuICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgIGlmIChhY3RldXJzVWlkLmhhcyhhY3RldXIudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWN0ZXVyc1VpZC5hZGQoYWN0ZXVyLnVpZClcbiAgICAgIHlpZWxkIHsgYWN0ZXVyLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQW1lbmRlbWVudHMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IG5vVmFsaWRhdGlvbiA9IGZhbHNlLCBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYW1lbmRlbWVudDogQW1lbmRlbWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgYW1lbmRlbWVudHNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFhbWVuZGVtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmFtZW5kZW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFtZW5kZW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQ7XG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgYW1lbmRlbWVudCA9IEpTT04ucGFyc2UoYW1lbmRlbWVudEpzb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW1lbmRlbWVudCA9IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQoYW1lbmRlbWVudEpzb24pXG4gICAgICB9XG4gICAgICBpZiAoYW1lbmRlbWVudHNVaWQuaGFzKGFtZW5kZW1lbnQudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYW1lbmRlbWVudHNVaWQuYWRkKGFtZW5kZW1lbnQudWlkKVxuICAgICAgeWllbGQgeyBhbWVuZGVtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgZG9jdW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFkb2N1bWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9jdW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGRvY3VtZW50OiBEb2N1bWVudFxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGRvY3VtZW50ID0gSlNPTi5wYXJzZShkb2N1bWVudEpzb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudCA9IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9jdW1lbnQoZG9jdW1lbnRKc29uKVxuICAgICAgfVxuICAgICAgaWYgKGRvY3VtZW50c1VpZC5oYXMoZG9jdW1lbnQudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgZG9jdW1lbnRzVWlkLmFkZChkb2N1bWVudC51aWQpXG4gICAgICB5aWVsZCB7IGRvY3VtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9zc2llcnNQYXJsZW1lbnRhaXJlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGRvc3NpZXJzUGFybGVtZW50YWlyZXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1xuICAgICAgXCJkb3NzaWVyc1wiLFxuICAgIF0pKSB7XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lID1cbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhc2V0RGlyLFxuICAgICAgICAuLi5kb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgbGV0IGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlID0gSlNPTi5wYXJzZShkb3NzaWVyUGFybGVtZW50YWlyZUpzb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZSA9XG4gICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVKc29uLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmhhcyhkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmFkZChkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpXG4gICAgICB5aWVsZCB7IGRvc3NpZXJQYXJsZW1lbnRhaXJlLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBvcmdhbmU6IE9yZ2FuZTsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3Qgb3JnYW5lc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3Qgb3JnYW5lU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wib3JnYW5lc1wiXSkpIHtcbiAgICAgIGNvbnN0IG9yZ2FuZUZpbGVuYW1lID0gb3JnYW5lU3BsaXRQYXRoW29yZ2FuZVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7b3JnYW5lRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yZ2FuZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhvcmdhbmVGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IG9yZ2FuZTogT3JnYW5lXG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgb3JnYW5lID0gSlNPTi5wYXJzZShvcmdhbmVKc29uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JnYW5lID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUob3JnYW5lSnNvbilcbiAgICAgIH1cbiAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwib3JnYW5lXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICBpZiAob3JnYW5lc1VpZC5oYXMob3JnYW5lLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG9yZ2FuZXNVaWQuYWRkKG9yZ2FuZS51aWQpXG4gICAgICB5aWVsZCB7IG9yZ2FuZSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHJldW5pb246IFJldW5pb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHJldW5pb25zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCByZXVuaW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IHJldW5pb25GaWxlbmFtZSA9IHJldW5pb25TcGxpdFBhdGhbcmV1bmlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cmV1bmlvbkZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCByZXVuaW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHJldW5pb25GaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgcmV1bmlvbjogUmV1bmlvblxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIHJldW5pb24gPSBKU09OLnBhcnNlKHJldW5pb25Kc29uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV1bmlvbiA9IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbihyZXVuaW9uSnNvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHJldW5pb25zVWlkLmhhcyhyZXVuaW9uLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHJldW5pb25zVWlkLmFkZChyZXVuaW9uLnVpZClcbiAgICAgIHlpZWxkIHsgcmV1bmlvbiwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVNjcnV0aW5zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHNjcnV0aW46IFNjcnV0aW47IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHNjcnV0aW5zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBzY3J1dGluRmlsZW5hbWUgPSBzY3J1dGluU3BsaXRQYXRoW3NjcnV0aW5TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3NjcnV0aW5GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3Qgc2NydXRpbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzY3J1dGluRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIFxuICAgICAgbGV0IHNjcnV0aW46IFNjcnV0aW5cbiAgICAgIGlmKG5vVmFsaWRhdGlvbikge1xuICAgICAgICBzY3J1dGluID0gSlNPTi5wYXJzZShzY3J1dGluSnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcnV0aW4gPSBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluKHNjcnV0aW5Kc29uKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2NydXRpbnNVaWQuaGFzKHNjcnV0aW4udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgc2NydXRpbnNVaWQuYWRkKHNjcnV0aW4udWlkKVxuICAgICAgeWllbGQgeyBzY3J1dGluLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUXVlc3Rpb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHF1ZXN0aW9uOiBRdWVzdGlvbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgcXVlc3Rpb25zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZW5hbWUgPSBxdWVzdGlvblNwbGl0UGF0aFtxdWVzdGlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cXVlc3Rpb25GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgcXVlc3Rpb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocXVlc3Rpb25GaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgcXVlc3Rpb246IFF1ZXN0aW9uXG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgcXVlc3Rpb24gPSBKU09OLnBhcnNlKHF1ZXN0aW9uSnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uKHF1ZXN0aW9uSnNvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHF1ZXN0aW9uc1VpZC5oYXMocXVlc3Rpb24udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcXVlc3Rpb25zVWlkLmFkZChxdWVzdGlvbi51aWQpXG4gICAgICB5aWVsZCB7IHF1ZXN0aW9uLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGNvbXB0ZXNSZW5kdXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC54bWwkLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZW5hbWUgPVxuICAgICAgICBjb21wdGVSZW5kdVNwbGl0UGF0aFtjb21wdGVSZW5kdVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7Y29tcHRlUmVuZHVGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1XG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgY29tcHRlUmVuZHUgPSBKU09OLnBhcnNlKGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICB9XG4gICAgICBpZiAoY29tcHRlc1JlbmR1c1VpZC5oYXMoY29tcHRlUmVuZHUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29tcHRlc1JlbmR1c1VpZC5hZGQoY29tcHRlUmVuZHUudWlkKVxuICAgICAgeWllbGQgeyBjb21wdGVSZW5kdSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIHNwbGl0IGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IFVzZSBpdGVyTG9hZC4uLiBpdGVyYXRvcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YShcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhY3RldXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJhY3RldXJzXCJdKSkge1xuICAgICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFjdGV1ckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke29yZ2FuZUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmV1bmlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCByZXVuaW9uID0gQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25Kc29uKVxuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYW1lbmRlbWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlbmFtZSA9IGRvY3VtZW50U3BsaXRQYXRoW2RvY3VtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9jdW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvY3VtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb2N1bWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb3NzaWVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVuYW1lID0gZG9zc2llclNwbGl0UGF0aFtkb3NzaWVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9zc2llckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb3NzaWVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvc3NpZXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9zc2llciA9XG4gICAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShkb3NzaWVySnNvbilcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNjcnV0aW5GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4oc2NydXRpbkpzb24pXG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhxdWVzdGlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbihxdWVzdGlvbkpzb24pXG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlbmFtZSA9IGNvbXB0ZVJlbmR1UGF0aFtjb21wdGVSZW5kdVBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtjb21wdGVSZW5kdUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHUgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1KGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gYmlnIG1vbm9seXRpYyBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBBc3NlbWJsw6llIG5hdGlvbmFsZSBvcGVuIGRhdGEgbm8gbW9yZSB1c2VzIG1vbm9seXRpYyBmaWxlcy5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1ciBvZiBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBhY3RldXJzRXRPcmdhbmVzLm9yZ2FuZXMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFnZW5kYXMgPSBBZ2VuZGFzQ29udmVydC50b0FnZW5kYXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50cyhqc29uKVxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50IG9mIHRleHRlTGVnaXNsYXRpZi5hbWVuZGVtZW50cykge1xuICAgICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnMgPVxuICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnQgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXIgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyc1BhcmxlbWVudGFpcmVzKSB7XG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAgY29uc3QgcGhvdG9CeVVpZCA9IHt9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuU2VpemUgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHNjcnV0aW5zID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbnMoanNvbilcbiAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBzY3J1dGlucy5zY3J1dGlucykge1xuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZXNSZW5kdXMgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZXNSZW5kdXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHUgb2YgY29tcHRlc1JlbmR1cy5jb21wdGVzUmVuZHVzKSB7XG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkIGluZm9zIG9mIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvbiBvZiBhIGRvY3VtZW50IGZyb20gZmlsZSBzeXN0ZW1cbiAqXG4gKiBAcGFyYW0gZGF0YURpclxuICogQHBhcmFtIHVpZCBVSUQgb2YgYSBkb2N1bWVudCBvciBhIGRpdmlzaW9uXG4gKiBAcGFyYW0gZm9ybWF0cyByZXF1ZXN0ZWQgZm9ybWF0cyBvZiB0aGUgZG9jdW1lbnQgaW4gZGVjcmVhc2luZyBwcmVmZXJlbmNlIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuICBmb3JtYXRzOiBEb2N1bWVudFVybEZvcm1hdFtdLFxuKTpcbiAgfCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0XG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICAgIHVybDogc3RyaW5nXG4gICAgfVxuICB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRvY3VtZW50c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCB1aWQpXG4gIGNvbnN0IGluZGV4UGF0aCA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJpbmRleC5qc29uXCIpXG4gIGlmICghZnMucGF0aEV4aXN0c1N5bmMoaW5kZXhQYXRoKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICBjb25zdCBpbmRleCA9IGZzLnJlYWRKc29uU3luYyhpbmRleFBhdGgpIGFzIERvY3VtZW50RmlsZXNJbmRleFxuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgZm9yIChjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSBvZiBpbmRleFtmb3JtYXRdID8/IFtdKSB7XG4gICAgICBpZiAoZmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZm9ybWF0LCBwYXRoOiBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIGZpbGVuYW1lKSwgdXJsIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc0RlcHV0ZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICB9YCxcbiAgICBcImRlcHV0ZXMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc1NlbmF0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHVpZC5tYXRjaChkb2N1bWVudFVpZFJlZ2V4KVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIGRvY3VtZW50IFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBncm91cHMgPSBtYXRjaCEuZ3JvdXBzIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgY29uc3QgZG9jdW1lbnRUeXBlID0gcGF0aC5qb2luKFxuICAgIGRvY3VtZW50c0RpcixcbiAgICBncm91cHMuZG9jdW1lbnRUeXBlID8/IGdyb3Vwcy5kb2N1bWVudFR5cGUyLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oZG9jdW1lbnRUeXBlLCBncm91cHMuY2hhbWJyZSA/PyBncm91cHMuY2hhbWJyZTIpXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oXG4gICAgY2hhbWJyZURpcixcbiAgICBncm91cHMucmVwdWJsaXF1ZSA/PyBncm91cHMucmVwdWJsaXF1ZTIsXG4gIClcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4oXG4gICAgcmVwdWJsaXF1ZURpcixcbiAgICBncm91cHMubGVnaXNsYXR1cmUgPz8gZ3JvdXBzLmxlZ2lzbGF0dXJlMixcbiAgKVxuICBjb25zdCBldGF0ID0gZ3JvdXBzLmV0YXRcbiAgaWYgKGV0YXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGZzLmVuc3VyZURpclN5bmMobGVnaXNsYXR1cmVEaXIpXG4gICAgcmV0dXJuIHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgdWlkKVxuICB9XG4gIGNvbnN0IGV0YXREaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIGV0YXQpXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgKGdyb3Vwcy5udW1lcm8gPz8gZ3JvdXBzLm51bWVybzIpXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGV0YXREaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQoXG4gIGRvc3NpZXJzRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBkb3NzaWVyVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgZG9zc2llciBwYXJsZW1lbnRhaXJlIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGRvc3NpZXJzRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tUmV1bmlvblVpZChyZXVuaW9uc0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gcmV1bmlvblVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIHJldW5pb24gVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4ocmV1bmlvbnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihjaGFtYnJlRGlyLCBtYXRjaCFbMl0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVszXSlcbiAgY29uc3Qgc2Vzc2lvbkRpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbWF0Y2ghWzRdKVxuICBjb25zdCBpZERpciA9IHBhdGguam9pbihzZXNzaW9uRGlyLCBtYXRjaCFbNV0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMDAwMFwiICsgbWF0Y2ghWzZdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDkpXG4gIGNvbnN0IG51bWVyb01pbGxpb25zRGlyID0gcGF0aC5qb2luKGlkRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihudW1lcm9NaWxsaW9uc0RpciwgbnVtZXJvLnN1YnN0cmluZygzLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21TY3J1dGluVWlkKHNjcnV0aW5zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBzY3J1dGluVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igc2NydXRpbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihzY3J1dGluc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbMl0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzNdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbi8vIEdldCBzdGFuZGFyZCBwYXRoIGZvciBvYmplY3Qgd2l0aCB1aWQgOiByZXB1YmxpcXVlID4gbGVnaXNsYXR1cmUgPiBncm91cCBvYmplY3RzIGJ5IHRob3VzYW5kc1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tVWlkKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuICBkYXRhUmVnZXhwOiBSZWdFeHAsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IGRhdGFSZWdleHAuZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igb2JqZWN0IHdpdGggVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgbWF0Y2ghWzFdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbMl0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzNdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssbUJBQUEsR0FBQUwsT0FBQTtBQU1BLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLHFCQUFBLEdBQUFSLE9BQUE7QUFLQSxJ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
|
|
2192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwic3RlcCIsIl9lMiIsIm1pbkxlbiIsInRvU3RyaW5nIiwidGVzdCIsImxlbiIsImFycjIiLCJfd3JhcFJlZ0V4cCIsIkJhYmVsUmVnRXhwIiwiUmVnRXhwIiwiV2Vha01hcCIsInNldCIsImdldCIsIl9zZXRQcm90b3R5cGVPZiIsImJ1aWxkR3JvdXBzIiwicmVkdWNlIiwiX2luaGVyaXRzIiwiZXhlYyIsImdyb3VwcyIsImluZGljZXMiLCJyZXBsYWNlIiwiam9pbiIsImFyZ3VtZW50cyIsImFwcGx5Iiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiYmluZCIsImRvY3VtZW50VWlkUmVnZXgiLCJkb2N1bWVudFR5cGUiLCJjaGFtYnJlIiwicmVwdWJsaXF1ZSIsImxlZ2lzbGF0dXJlIiwiZXRhdCIsIm51bWVybyIsImRvY3VtZW50VHlwZTIiLCJjaGFtYnJlMiIsInJlcHVibGlxdWUyIiwibGVnaXNsYXR1cmUyIiwibnVtZXJvMiIsImRvc3NpZXJVaWRSZWdleCIsInJldW5pb25VaWRSZWdleCIsInNjcnV0aW5VaWRSZWdleCIsIml0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyIsImRhdGFEaXIiLCJfcmVmIiwidW5kZWZpbmVkIiwiX3JlZiRub1ZhbGlkYXRpb24iLCJub1ZhbGlkYXRpb24iLCJfcmVmJGxvZyIsImxvZyIsIl9jYWxsZWUiLCJhY3RldXJzVWlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJkYXRhc2V0IiwiZGF0YXNldERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJhY3RldXJTcGxpdFBhdGgiLCJhY3RldXJGaWxlbmFtZSIsImFjdGV1ckZpbGVQYXRoIiwiYWN0ZXVySnNvbiIsImFjdGV1ciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJTZXQiLCJkYXRhc2V0cyIsImFjdGV1cnNFdE9yZ2FuZXMiLCJpZ25vcmVGb3JXZWIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsInBhdGgiLCJmaWxlbmFtZSIsIndhbGtEaXIiLCJlbmRzV2l0aCIsImNvbmNhdCIsImNvbnNvbGUiLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwiQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQiLCJ0b0FjdGV1ciIsImhhcyIsInVpZCIsImFkZCIsImRhdGFzZXRMZWdpc2xhdHVyZSIsInQwIiwidDEiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX3JlZjIiLCJfcmVmMiRub1ZhbGlkYXRpb24iLCJfcmVmMiRsb2ciLCJfY2FsbGVlMiIsImFtZW5kZW1lbnRzVWlkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiYW1lbmRlbWVudEpzb24iLCJhbWVuZGVtZW50IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYW1lbmRlbWVudHMiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIl9yZWYzIiwiX3JlZjMkbm9WYWxpZGF0aW9uIiwiX3JlZjMkbG9nIiwiX2NhbGxlZTMiLCJkb2N1bWVudHNVaWQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJkb2N1bWVudCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfcmVmNCIsIl9yZWY0JG5vVmFsaWRhdGlvbiIsIl9yZWY0JGxvZyIsIl9jYWxsZWU0IiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlc1VpZCIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCIsImRvc3NpZXJQYXJsZW1lbnRhaXJlSnNvbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIml0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyIsIl9yZWY1IiwiX3JlZjUkbm9WYWxpZGF0aW9uIiwiX3JlZjUkbG9nIiwiX2NhbGxlZTUiLCJvcmdhbmVzVWlkIiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lRmlsZVBhdGgiLCJvcmdhbmVKc29uIiwib3JnYW5lIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX3JlZjYiLCJfcmVmNiRub1ZhbGlkYXRpb24iLCJfcmVmNiRsb2ciLCJfY2FsbGVlNiIsInJldW5pb25zVWlkIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25GaWxlUGF0aCIsInJldW5pb25Kc29uIiwicmV1bmlvbiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfcmVmNyIsIl9yZWY3JG5vVmFsaWRhdGlvbiIsIl9yZWY3JGxvZyIsIl9jYWxsZWU3Iiwic2NydXRpbnNVaWQiLCJfaXRlcmF0b3IxMyIsIl9zdGVwMTMiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJzY3J1dGluIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9yZWY4IiwiX3JlZjgkbm9WYWxpZGF0aW9uIiwiX3JlZjgkbG9nIiwiX2NhbGxlZTgiLCJxdWVzdGlvbnNVaWQiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJxdWVzdGlvblNwbGl0UGF0aCIsInF1ZXN0aW9uRmlsZW5hbWUiLCJxdWVzdGlvbkZpbGVQYXRoIiwicXVlc3Rpb25Kc29uIiwicXVlc3Rpb24iLCJfY2FsbGVlOCQiLCJfY29udGV4dDgiLCJxdWVzdGlvbnMiLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyIsIl9yZWY5IiwiX3JlZjkkbm9WYWxpZGF0aW9uIiwiX3JlZjkkbG9nIiwiX2NhbGxlZTkiLCJjb21wdGVzUmVuZHVzVWlkIiwiX2l0ZXJhdG9yMTciLCJfc3RlcDE3IiwiX2l0ZXJhdG9yMTgiLCJfc3RlcDE4IiwiY29tcHRlUmVuZHVTcGxpdFBhdGgiLCJjb21wdGVSZW5kdUZpbGVuYW1lIiwiY29tcHRlUmVuZHVGaWxlUGF0aCIsImNvbXB0ZVJlbmR1SnNvbiIsImNvbXB0ZVJlbmR1IiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImVuYWJsZWREYXRhc2V0cyIsIl9yZWYxMCIsIl9yZWYxMCRsb2ciLCJhY3RldXJCeVVpZCIsIm9yZ2FuZUJ5VWlkIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IyMiIsIl9zdGVwMjIiLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMjQiLCJwb2ludHNPZGoiLCJfc3RlcDI0IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IyNSIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAyNSIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjI2IiwiX3N0ZXAyNiIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsImRvc3NpZXJTcGxpdFBhdGgiLCJkb3NzaWVyRmlsZW5hbWUiLCJkb3NzaWVyRmlsZVBhdGgiLCJkb3NzaWVySnNvbiIsImRvc3NpZXIiLCJ0aXRyZURvc3NpZXIiLCJzZW5hdENoZW1pbiIsInRpdHJlQ2hlbWluIiwicGhvdG9CeVVpZCIsIlBob3RvcyIsImpzb25GaWxlUGF0aCIsIlNlaXplIiwiZXhpc3RzU3luYyIsImpzb24iLCJhc3NpZ24iLCJzY3J1dGluQnlVaWQiLCJTY3J1dGlucyIsIl9pdGVyYXRvcjMxIiwiX3N0ZXAzMSIsIl9pdGVyYXRvcjMyIiwiX3N0ZXAzMiIsInF1ZXN0aW9uQnlVaWQiLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3IzMyIsIl9zdGVwMzMiLCJfaXRlcmF0b3IzNCIsIl9zdGVwMzQiLCJjb21wdGVSZW5kdUJ5VWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IzNSIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJjb21wdGVSZW5kdVBhdGgiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIl9yZWYxMSIsIl9yZWYxMSRsb2ciLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IzOCIsImFjdGV1cnMiLCJfc3RlcDM4IiwiX2l0ZXJhdG9yMzkiLCJvcmdhbmVzIiwiX3N0ZXAzOSIsIl9pdGVyYXRvcjQwIiwiX3N0ZXA0MCIsInRvQWdlbmRhcyIsIl9pdGVyYXRvcjQxIiwicmV1bmlvbnMiLCJfc3RlcDQxIiwiX2l0ZXJhdG9yNDIiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJfc3RlcDQzIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwidG9BbWVuZGVtZW50cyIsIl9pdGVyYXRvcjQ1IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJfc3RlcDQ1IiwidGV4dGVMZWdpc2xhdGlmIiwiX2l0ZXJhdG9yNDYiLCJfc3RlcDQ2IiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwidG9Eb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwiX2l0ZXJhdG9yNDkiLCJkb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX3N0ZXA0OSIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsInRvU2NydXRpbnMiLCJfaXRlcmF0b3I1MSIsIl9zdGVwNTEiLCJfaXRlcmF0b3I1MiIsIl9zdGVwNTIiLCJ0b1F1ZXN0aW9ucyIsIl9pdGVyYXRvcjUzIiwiX3N0ZXA1MyIsIl9pdGVyYXRvcjU0IiwiX3N0ZXA1NCIsImNvbXB0ZXNSZW5kdXMiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJfaXRlcmF0b3I1NSIsIl9zdGVwNTUiLCJsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlIiwiZm9ybWF0cyIsImRvY3VtZW50c0RpciIsImRvY3VtZW50RGlyIiwicGF0aEZyb21Eb2N1bWVudFVpZCIsImluZGV4UGF0aCIsInBhdGhFeGlzdHNTeW5jIiwiaW5kZXgiLCJyZWFkSnNvblN5bmMiLCJfaXRlcmF0b3I1NiIsIl9zdGVwNTYiLCJfaW5kZXgkZm9ybWF0IiwiZm9ybWF0IiwiX2l0ZXJhdG9yNTciLCJfc3RlcDU3IiwiX3N0ZXA1NyR2YWx1ZSIsInVybCIsImxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzIiwiX3JlZjEyIiwiX3JlZjEyJGxvZyIsImxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMiLCJfcmVmMTMiLCJfcmVmMTMkbG9nIiwiX2dyb3VwcyRkb2N1bWVudFR5cGUiLCJfZ3JvdXBzJGNoYW1icmUiLCJfZ3JvdXBzJHJlcHVibGlxdWUiLCJfZ3JvdXBzJGxlZ2lzbGF0dXJlIiwiX2dyb3VwcyRudW1lcm8iLCJtYXRjaCIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiY2hhbWJyZURpciIsInJlcHVibGlxdWVEaXIiLCJsZWdpc2xhdHVyZURpciIsImVuc3VyZURpclN5bmMiLCJldGF0RGlyIiwic3Vic3RyaW5nIiwibnVtZXJvTWlsbGllcnNEaXIiLCJwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkIiwiZG9zc2llcnNEaXIiLCJwYXRoRnJvbVJldW5pb25VaWQiLCJyZXVuaW9uc0RpciIsInNlc3Npb25EaXIiLCJpZERpciIsIm51bWVyb01pbGxpb25zRGlyIiwicGF0aEZyb21TY3J1dGluVWlkIiwic2NydXRpbnNEaXIiLCJwYXRoRnJvbVVpZCIsImRhdGFSZWdleHAiXSwic291cmNlcyI6WyIuLi9zcmMvbG9hZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gTG9hZCBkYXRhIGZyb20gZmlsZXNcblxuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBkYXRhc2V0cywgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEZpbGVzSW5kZXggfSBmcm9tIFwiLi9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5leHBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb252ZXJ0IGFzIEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LFxuICBPcmdhbmUsXG4gIFBob3RvLFxufSBmcm9tIFwiLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBBZ2VuZGFzQ29udmVydCwgUmV1bmlvbiB9IGZyb20gXCIuL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgU2NydXRpbnNDb252ZXJ0LCBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCB9IGZyb20gXCIuL3VybHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEge1xuICByZWFkb25seSBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfVxuICByZWFkb25seSBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9XG4gIHJlYWRvbmx5IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9XG4gIHJlYWRvbmx5IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9XG4gIHJlYWRvbmx5IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxuICByZWFkb25seSByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH1cbiAgcmVhZG9ubHkgcmV1bmlvbnNCeURvc3NpZXJVaWQ6IHsgW2Rvc3NpZXJVaWQ6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHNjcnV0aW5CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBTY3J1dGluIH1cbiAgcmVhZG9ubHkgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9XG4gIHJlYWRvbmx5IGNvbXB0ZVJlbmR1QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQ29tcHRlUmVuZHUgfVxufVxuXG5jb25zdCBkb2N1bWVudFVpZFJlZ2V4ID1cbiAgL14oKD88ZG9jdW1lbnRUeXBlPkFDSU58QUxDTnxBVkNFfEFWSVN8REVDTHxFVERJfExFVFR8TUVTU3xNSU9OfFBJT058UE5SRXxQUkpMfFJBUFB8UklORnxSSU9OKSg/PGNoYW1icmU+QU58Q0d8U04pKD88cmVwdWJsaXF1ZT5SXFxkKylbTFNdKD88bGVnaXNsYXR1cmU+XFxkKykoPzxldGF0PkJ8QlRBfEJUQ3xUQVApKD88bnVtZXJvPlxcZCspKC0uKik/KXwoKD88ZG9jdW1lbnRUeXBlMj5NSU9OKSg/PGNoYW1icmUyPkFOfFNOKSg/PHJlcHVibGlxdWUyPlJcXGQrKVtMU10oPzxsZWdpc2xhdHVyZTI+XFxkKyktTig/PG51bWVybzI+XFxkKykpJC9cbmNvbnN0IGRvc3NpZXJVaWRSZWdleCA9IC9eREwoUlxcZCspKExcXGQrKU4oXFxkKykkL1xuY29uc3QgcmV1bmlvblVpZFJlZ2V4ID1cbiAgL15SVShBTnxDR3xTTikoUlxcZCspKExcXGQrKShbQVNdXFxkezR9KShJREN8SURGTD98SURTKShcXGQrKSQvXG5jb25zdCBzY3J1dGluVWlkUmVnZXggPSAvXlZUQU4oUlxcZCspKExcXGQrKVYoXFxkKykkL1xuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQWN0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBhY3RldXI6IEFjdGV1cjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgYWN0ZXVyc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgYWN0ZXVyU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wiYWN0ZXVyc1wiXSkpIHtcbiAgICAgIGNvbnN0IGFjdGV1ckZpbGVuYW1lID0gYWN0ZXVyU3BsaXRQYXRoW2FjdGV1clNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YWN0ZXVyRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGV1ckpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhY3RldXJGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGFjdGV1cjogQWN0ZXVyO1xuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGFjdGV1ciA9IEpTT04ucGFyc2UoYWN0ZXVySnNvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgfVxuICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgIGlmIChhY3RldXJzVWlkLmhhcyhhY3RldXIudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWN0ZXVyc1VpZC5hZGQoYWN0ZXVyLnVpZClcbiAgICAgIHlpZWxkIHsgYWN0ZXVyLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQW1lbmRlbWVudHMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IG5vVmFsaWRhdGlvbiA9IGZhbHNlLCBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYW1lbmRlbWVudDogQW1lbmRlbWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgYW1lbmRlbWVudHNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFhbWVuZGVtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmFtZW5kZW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFtZW5kZW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQ7XG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgYW1lbmRlbWVudCA9IEpTT04ucGFyc2UoYW1lbmRlbWVudEpzb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW1lbmRlbWVudCA9IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQoYW1lbmRlbWVudEpzb24pXG4gICAgICB9XG4gICAgICBpZiAoYW1lbmRlbWVudHNVaWQuaGFzKGFtZW5kZW1lbnQudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYW1lbmRlbWVudHNVaWQuYWRkKGFtZW5kZW1lbnQudWlkKVxuICAgICAgeWllbGQgeyBhbWVuZGVtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgZG9jdW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFkb2N1bWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9jdW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IGRvY3VtZW50OiBEb2N1bWVudFxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGRvY3VtZW50ID0gSlNPTi5wYXJzZShkb2N1bWVudEpzb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudCA9IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9jdW1lbnQoZG9jdW1lbnRKc29uKVxuICAgICAgfVxuICAgICAgaWYgKGRvY3VtZW50c1VpZC5oYXMoZG9jdW1lbnQudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgZG9jdW1lbnRzVWlkLmFkZChkb2N1bWVudC51aWQpXG4gICAgICB5aWVsZCB7IGRvY3VtZW50LCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlRG9zc2llcnNQYXJsZW1lbnRhaXJlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGRvc3NpZXJzUGFybGVtZW50YWlyZXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1xuICAgICAgXCJkb3NzaWVyc1wiLFxuICAgIF0pKSB7XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lID1cbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhc2V0RGlyLFxuICAgICAgICAuLi5kb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgbGV0IGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlID0gSlNPTi5wYXJzZShkb3NzaWVyUGFybGVtZW50YWlyZUpzb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZSA9XG4gICAgICAgIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVKc29uLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmhhcyhkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmFkZChkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpXG4gICAgICB5aWVsZCB7IGRvc3NpZXJQYXJsZW1lbnRhaXJlLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBvcmdhbmU6IE9yZ2FuZTsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3Qgb3JnYW5lc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3Qgb3JnYW5lU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1wib3JnYW5lc1wiXSkpIHtcbiAgICAgIGNvbnN0IG9yZ2FuZUZpbGVuYW1lID0gb3JnYW5lU3BsaXRQYXRoW29yZ2FuZVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7b3JnYW5lRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yZ2FuZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhvcmdhbmVGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgbGV0IG9yZ2FuZTogT3JnYW5lXG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgb3JnYW5lID0gSlNPTi5wYXJzZShvcmdhbmVKc29uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JnYW5lID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUob3JnYW5lSnNvbilcbiAgICAgIH1cbiAgICAgIC8vIEtlZXAgdGhlIGZpcnN0IGV4aXN0aW5nIFwib3JnYW5lXCIsIGJlY2F1c2UgdGhlIGZpcnN0IHdyYXBwZXIgaXMgdGhlIG1vc3QgY29tcGxldGUuXG4gICAgICBpZiAob3JnYW5lc1VpZC5oYXMob3JnYW5lLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG9yZ2FuZXNVaWQuYWRkKG9yZ2FuZS51aWQpXG4gICAgICB5aWVsZCB7IG9yZ2FuZSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHJldW5pb246IFJldW5pb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHJldW5pb25zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCByZXVuaW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IHJldW5pb25GaWxlbmFtZSA9IHJldW5pb25TcGxpdFBhdGhbcmV1bmlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cmV1bmlvbkZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCByZXVuaW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHJldW5pb25GaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgcmV1bmlvbjogUmV1bmlvblxuICAgICAgaWYobm9WYWxpZGF0aW9uKSB7XG4gICAgICAgIHJldW5pb24gPSBKU09OLnBhcnNlKHJldW5pb25Kc29uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV1bmlvbiA9IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbihyZXVuaW9uSnNvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHJldW5pb25zVWlkLmhhcyhyZXVuaW9uLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHJldW5pb25zVWlkLmFkZChyZXVuaW9uLnVpZClcbiAgICAgIHlpZWxkIHsgcmV1bmlvbiwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZVNjcnV0aW5zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHNjcnV0aW46IFNjcnV0aW47IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHNjcnV0aW5zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBzY3J1dGluRmlsZW5hbWUgPSBzY3J1dGluU3BsaXRQYXRoW3NjcnV0aW5TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3NjcnV0aW5GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3Qgc2NydXRpbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzY3J1dGluRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIFxuICAgICAgbGV0IHNjcnV0aW46IFNjcnV0aW5cbiAgICAgIGlmKG5vVmFsaWRhdGlvbikge1xuICAgICAgICBzY3J1dGluID0gSlNPTi5wYXJzZShzY3J1dGluSnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcnV0aW4gPSBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluKHNjcnV0aW5Kc29uKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2NydXRpbnNVaWQuaGFzKHNjcnV0aW4udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgc2NydXRpbnNVaWQuYWRkKHNjcnV0aW4udWlkKVxuICAgICAgeWllbGQgeyBzY3J1dGluLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUXVlc3Rpb25zKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBub1ZhbGlkYXRpb24gPSBmYWxzZSwgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IHF1ZXN0aW9uOiBRdWVzdGlvbjsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgcXVlc3Rpb25zVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZW5hbWUgPSBxdWVzdGlvblNwbGl0UGF0aFtxdWVzdGlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7cXVlc3Rpb25GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgcXVlc3Rpb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocXVlc3Rpb25GaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgcXVlc3Rpb246IFF1ZXN0aW9uXG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgcXVlc3Rpb24gPSBKU09OLnBhcnNlKHF1ZXN0aW9uSnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uKHF1ZXN0aW9uSnNvbilcbiAgICAgIH1cblxuICAgICAgaWYgKHF1ZXN0aW9uc1VpZC5oYXMocXVlc3Rpb24udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcXVlc3Rpb25zVWlkLmFkZChxdWVzdGlvbi51aWQpXG4gICAgICB5aWVsZCB7IHF1ZXN0aW9uLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbm9WYWxpZGF0aW9uID0gZmFsc2UsIGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGNvbXB0ZXNSZW5kdXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC54bWwkLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1U3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZW5hbWUgPVxuICAgICAgICBjb21wdGVSZW5kdVNwbGl0UGF0aFtjb21wdGVSZW5kdVNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7Y29tcHRlUmVuZHVGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuXG4gICAgICBsZXQgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1XG4gICAgICBpZihub1ZhbGlkYXRpb24pIHtcbiAgICAgICAgY29tcHRlUmVuZHUgPSBKU09OLnBhcnNlKGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICB9XG4gICAgICBpZiAoY29tcHRlc1JlbmR1c1VpZC5oYXMoY29tcHRlUmVuZHUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29tcHRlc1JlbmR1c1VpZC5hZGQoY29tcHRlUmVuZHUudWlkKVxuICAgICAgeWllbGQgeyBjb21wdGVSZW5kdSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIHNwbGl0IGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IFVzZSBpdGVyTG9hZC4uLiBpdGVyYXRvcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YShcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhY3RldXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJhY3RldXJzXCJdKSkge1xuICAgICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFjdGV1ckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke29yZ2FuZUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmV1bmlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCByZXVuaW9uID0gQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25Kc29uKVxuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYW1lbmRlbWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlbmFtZSA9IGRvY3VtZW50U3BsaXRQYXRoW2RvY3VtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9jdW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvY3VtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb2N1bWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb3NzaWVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVuYW1lID0gZG9zc2llclNwbGl0UGF0aFtkb3NzaWVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9zc2llckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb3NzaWVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvc3NpZXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9zc2llciA9XG4gICAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShkb3NzaWVySnNvbilcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNjcnV0aW5GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4oc2NydXRpbkpzb24pXG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhxdWVzdGlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbihxdWVzdGlvbkpzb24pXG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlbmFtZSA9IGNvbXB0ZVJlbmR1UGF0aFtjb21wdGVSZW5kdVBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtjb21wdGVSZW5kdUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHUgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1KGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gYmlnIG1vbm9seXRpYyBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBBc3NlbWJsw6llIG5hdGlvbmFsZSBvcGVuIGRhdGEgbm8gbW9yZSB1c2VzIG1vbm9seXRpYyBmaWxlcy5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1ciBvZiBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBhY3RldXJzRXRPcmdhbmVzLm9yZ2FuZXMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFnZW5kYXMgPSBBZ2VuZGFzQ29udmVydC50b0FnZW5kYXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50cyhqc29uKVxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50IG9mIHRleHRlTGVnaXNsYXRpZi5hbWVuZGVtZW50cykge1xuICAgICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnMgPVxuICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnQgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXIgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyc1BhcmxlbWVudGFpcmVzKSB7XG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAgY29uc3QgcGhvdG9CeVVpZCA9IHt9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuU2VpemUgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHNjcnV0aW5zID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbnMoanNvbilcbiAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBzY3J1dGlucy5zY3J1dGlucykge1xuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZXNSZW5kdXMgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZXNSZW5kdXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHUgb2YgY29tcHRlc1JlbmR1cy5jb21wdGVzUmVuZHVzKSB7XG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkIGluZm9zIG9mIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvbiBvZiBhIGRvY3VtZW50IGZyb20gZmlsZSBzeXN0ZW1cbiAqXG4gKiBAcGFyYW0gZGF0YURpclxuICogQHBhcmFtIHVpZCBVSUQgb2YgYSBkb2N1bWVudCBvciBhIGRpdmlzaW9uXG4gKiBAcGFyYW0gZm9ybWF0cyByZXF1ZXN0ZWQgZm9ybWF0cyBvZiB0aGUgZG9jdW1lbnQgaW4gZGVjcmVhc2luZyBwcmVmZXJlbmNlIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuICBmb3JtYXRzOiBEb2N1bWVudFVybEZvcm1hdFtdLFxuKTpcbiAgfCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0XG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICAgIHVybDogc3RyaW5nXG4gICAgfVxuICB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRvY3VtZW50c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBcIkRvY3VtZW50c1wiKVxuICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCB1aWQpXG4gIGNvbnN0IGluZGV4UGF0aCA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJpbmRleC5qc29uXCIpXG4gIGlmICghZnMucGF0aEV4aXN0c1N5bmMoaW5kZXhQYXRoKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICBjb25zdCBpbmRleCA9IGZzLnJlYWRKc29uU3luYyhpbmRleFBhdGgpIGFzIERvY3VtZW50RmlsZXNJbmRleFxuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgZm9yIChjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSBvZiBpbmRleFtmb3JtYXRdID8/IFtdKSB7XG4gICAgICBpZiAoZmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZm9ybWF0LCBwYXRoOiBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIGZpbGVuYW1lKSwgdXJsIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc0RlcHV0ZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAvLyBUT0RPOiBIYW5kbGUgTGVnaXNsYXR1cmUuQWxsLlxuICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICB9YCxcbiAgICBcImRlcHV0ZXMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFzc2VtYmxlZVBob3Rvc1NlbmF0ZXVycyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSB7XG4gIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgXCJzZW5hdGV1cnMuanNvblwiLFxuICApXG4gIGlmIChsb2cpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICB9XG4gIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb24pIGFzIHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb2N1bWVudFVpZChkb2N1bWVudHNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHVpZC5tYXRjaChkb2N1bWVudFVpZFJlZ2V4KVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIGRvY3VtZW50IFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBncm91cHMgPSBtYXRjaCEuZ3JvdXBzIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgY29uc3QgZG9jdW1lbnRUeXBlID0gcGF0aC5qb2luKFxuICAgIGRvY3VtZW50c0RpcixcbiAgICBncm91cHMuZG9jdW1lbnRUeXBlID8/IGdyb3Vwcy5kb2N1bWVudFR5cGUyLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oZG9jdW1lbnRUeXBlLCBncm91cHMuY2hhbWJyZSA/PyBncm91cHMuY2hhbWJyZTIpXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oXG4gICAgY2hhbWJyZURpcixcbiAgICBncm91cHMucmVwdWJsaXF1ZSA/PyBncm91cHMucmVwdWJsaXF1ZTIsXG4gIClcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4oXG4gICAgcmVwdWJsaXF1ZURpcixcbiAgICBncm91cHMubGVnaXNsYXR1cmUgPz8gZ3JvdXBzLmxlZ2lzbGF0dXJlMixcbiAgKVxuICBjb25zdCBldGF0ID0gZ3JvdXBzLmV0YXRcbiAgaWYgKGV0YXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGZzLmVuc3VyZURpclN5bmMobGVnaXNsYXR1cmVEaXIpXG4gICAgcmV0dXJuIHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgdWlkKVxuICB9XG4gIGNvbnN0IGV0YXREaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIGV0YXQpXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgKGdyb3Vwcy5udW1lcm8gPz8gZ3JvdXBzLm51bWVybzIpXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGV0YXREaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQoXG4gIGRvc3NpZXJzRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBkb3NzaWVyVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgZG9zc2llciBwYXJsZW1lbnRhaXJlIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGRvc3NpZXJzRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cmluZyhudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHJpbmcoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tUmV1bmlvblVpZChyZXVuaW9uc0Rpcjogc3RyaW5nLCB1aWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gcmV1bmlvblVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIHJldW5pb24gVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4ocmV1bmlvbnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihjaGFtYnJlRGlyLCBtYXRjaCFbMl0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVszXSlcbiAgY29uc3Qgc2Vzc2lvbkRpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbWF0Y2ghWzRdKVxuICBjb25zdCBpZERpciA9IHBhdGguam9pbihzZXNzaW9uRGlyLCBtYXRjaCFbNV0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMDAwMFwiICsgbWF0Y2ghWzZdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDkpXG4gIGNvbnN0IG51bWVyb01pbGxpb25zRGlyID0gcGF0aC5qb2luKGlkRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihudW1lcm9NaWxsaW9uc0RpciwgbnVtZXJvLnN1YnN0cmluZygzLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21TY3J1dGluVWlkKHNjcnV0aW5zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBzY3J1dGluVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igc2NydXRpbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihzY3J1dGluc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbMl0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzNdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbi8vIEdldCBzdGFuZGFyZCBwYXRoIGZvciBvYmplY3Qgd2l0aCB1aWQgOiByZXB1YmxpcXVlID4gbGVnaXNsYXR1cmUgPiBncm91cCBvYmplY3RzIGJ5IHRob3VzYW5kc1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tVWlkKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIHVpZDogc3RyaW5nLFxuICBkYXRhUmVnZXhwOiBSZWdFeHAsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IGRhdGFSZWdleHAuZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3Igb2JqZWN0IHdpdGggVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgbWF0Y2ghWzFdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbMl0pXG4gIGxldCBudW1lcm8gPSBcIjAwMDAwMFwiICsgbWF0Y2ghWzNdXG4gIG51bWVybyA9IG51bWVyby5zdWJzdHJpbmcobnVtZXJvLmxlbmd0aCAtIDYpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBudW1lcm8uc3Vic3RyaW5nKDAsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssbUJBQUEsR0FBQUwsT0FBQTtBQU1BLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLHFCQUFBLEdBQUFSLE9BQUE7QUFL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
|