diff --git a/packages/ext-webpack-plugin/dist/pluginUtil.js b/packages/ext-webpack-plugin/dist/pluginUtil.js index 94fbfd3..b03d96d 100644 --- a/packages/ext-webpack-plugin/dist/pluginUtil.js +++ b/packages/ext-webpack-plugin/dist/pluginUtil.js @@ -884,9 +884,9 @@ function smartFlowPing(packageJsonPath, appJsonPath) { } const scriptType = process.env.npm_lifecycle_event; let triggerevent = 'build'; - if (scriptType === 'dev') { + if (scriptType === 'dev' || scriptType === 'dev:desktop') { triggerevent = `npm start`; - } else if (scriptType === 'build') { + } else if (scriptType === 'build' || scriptType === 'build:desktop') { triggerevent = `npm run build`; } else { triggerevent = `null`; @@ -910,4 +910,4 @@ function smartFlowPing(packageJsonPath, appJsonPath) { }); }); } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJldHVybiIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsImNhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsIl9jb25zdHJ1Y3RvciIsImluaXRpYWxPcHRpb25zIiwiZnMiLCJyZXF1aXJlIiwidmFycyIsIm9wdGlvbnMiLCJmcmFtZXdvcmsiLCJwbHVnaW5FcnJvcnMiLCJyZXN1bHQiLCJ0cmVlc2hha2UiLCJ2ZXJib3NlIiwidmFsaWRhdGVPcHRpb25zIiwiX2dldFZhbGlkYXRlT3B0aW9ucyIsInJjIiwiZXhpc3RzU3luYyIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlU3luYyIsIl9nZXREZWZhdWx0T3B0aW9ucyIsIl9nZXREZWZhdWx0VmFycyIsInBsdWdpbk5hbWUiLCJhcHAiLCJfZ2V0QXBwIiwidGVzdGluZyIsImxvZ3YiLCJlbnZpcm9ubWVudCIsImNtZG9wdHMiLCJpbmNsdWRlcyIsInByb2R1Y3Rpb24iLCJicm93c2VyIiwid2F0Y2giLCJidWlsZEVudmlyb25tZW50IiwibG9nIiwiX2dldFZlcnNpb25zIiwiaW50ZWxsaXNoYWtlIiwiYnVpbGRzdGVwIiwiX3RvUHJvZCIsImNvbmZpZ09iaiIsInRvU3RyaW5nIiwiX3RoaXNDb21waWxhdGlvbiIsImNvbXBpbGVyIiwiY29tcGlsYXRpb24iLCJzY3JpcHQiLCJydW5TY3JpcHQiLCJfY29tcGlsYXRpb24iLCJleHRDb21wb25lbnRzIiwiX2dldEFsbENvbXBvbmVudHMiLCJob29rcyIsInN1Y2NlZWRNb2R1bGUiLCJ0YXAiLCJtb2R1bGUiLCJyZXNvdXJjZSIsIm1hdGNoIiwiX3NvdXJjZSIsIl92YWx1ZSIsInRvTG93ZXJDYXNlIiwiZGVwcyIsIl9leHRyYWN0RnJvbVNvdXJjZSIsImNvbnNvbGUiLCJmaW5pc2hNb2R1bGVzIiwibW9kdWxlcyIsIl93cml0ZUZpbGVzVG9Qcm9kRm9sZGVyIiwiaW5qZWN0IiwiaHRtbFdlYnBhY2tQbHVnaW5CZWZvcmVIdG1sR2VuZXJhdGlvbiIsImRhdGEiLCJwYXRoIiwianNQYXRoIiwiam9pbiIsImV4dFBhdGgiLCJjc3NQYXRoIiwiYXNzZXRzIiwianMiLCJ1bnNoaWZ0IiwiY3NzIiwiX2FmdGVyQ29tcGlsZSIsIl9lbWl0IiwiX3giLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfZW1pdDIiLCJfY2FsbGVlIiwiY2FsbGJhY2siLCJlbWl0Iiwib3V0cHV0UGF0aCIsImNvbW1hbmQiLCJwYXJtcyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJkZXZTZXJ2ZXIiLCJjb250ZW50QmFzZSIsIl9wcmVwYXJlRm9yQnVpbGQiLCJyZWJ1aWxkIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJwcm9maWxlIiwiZWxlbWVudCIsInNwbGljZSIsImluZGV4T2YiLCJ3YXRjaFN0YXJ0ZWQiLCJfYnVpbGRFeHRCdW5kbGUiLCJ0MCIsIl9kb25lIiwic3RhdHMiLCJlcnJvcnMiLCJjaGFsayIsInJlZCIsIl90b0RldiIsImJyb3dzZXJDb3VudCIsInVybCIsInBvcnQiLCJvcG4iLCJvdXRwdXQiLCJwYWNrYWdlcyIsInRvb2xraXQiLCJ0aGVtZSIsInJpbXJhZiIsIm1rZGlycCIsImZzeCIsImZpcnN0VGltZSIsInN5bmMiLCJidWlsZFhNTCIsImNyZWF0ZUFwcEpzb24iLCJjcmVhdGVXb3Jrc3BhY2VKc29uIiwiY3JlYXRlSlNET01FbnZpcm9ubWVudCIsIndyaXRlRmlsZVN5bmMiLCJwcm9jZXNzIiwiY3dkIiwiZnJvbVBhdGgiLCJ0b1BhdGgiLCJjb3B5U3luYyIsInJlcGxhY2UiLCJmcm9tUmVzb3VyY2VzIiwidG9SZXNvdXJjZXMiLCJpbmRleCIsIm1hbmlmZXN0IiwiYnVuZGxlRGlyIiwidHJpbSIsInNlbmNoYSIsIm9uQnVpbGREb25lIiwib3B0cyIsInNpbGVudCIsInN0ZGlvIiwiZW5jb2RpbmciLCJfZXhlY3V0ZUFzeW5jIiwicmVhc29uIiwiX3g2IiwiX3g3IiwiX3g4IiwiX3g5IiwiX3gxMCIsIl94MTEiLCJfeDEyIiwiX2V4ZWN1dGVBc3luYzIiLCJfY2FsbGVlMiIsIkRFRkFVTFRfU1VCU1RSUyIsInN1YnN0cmluZ3MiLCJjcm9zc1NwYXduIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwic3RyaW5naWZ5IiwiY2hpbGQiLCJvbiIsImNvZGUiLCJzaWduYWwiLCJzdGRvdXQiLCJzdHIiLCJzb21lIiwic3RkZXJyIiwic3RySmF2YU9wdHMiLCJzY3JpcHRQYXRoIiwiY2hpbGRQcm9jZXNzIiwiaW52b2tlZCIsImZvcmsiLCJleGVjQXJndiIsIl90b1h0eXBlIiwicHJlZml4IiwicGxhdGZvcm0iLCJncmVlbiIsImZyYW1ld29ya05hbWUiLCJmcmFtZXdvcmtJbmZvIiwicGx1Z2luVmVyc2lvbiIsImV4dFZlcnNpb24iLCJlZGl0aW9uIiwiY21kVmVyc2lvbiIsIndlYnBhY2tWZXJzaW9uIiwicGx1Z2luUGF0aCIsInBsdWdpblBrZyIsInZlcnNpb24iLCJfcmVzb2x2ZWQiLCJ3ZWJwYWNrUGF0aCIsIndlYnBhY2tQa2ciLCJleHRQa2ciLCJjbWRQYXRoIiwiY21kUGtnIiwidmVyc2lvbl9mdWxsIiwiZnJhbWV3b3JrUGF0aCIsImZyYW1ld29ya1BrZyIsImZyYW1ld29ya1ZlcnNpb24iLCJtZXNzYWdlIiwiY3Vyc29yVG8iLCJjbGVhckxpbmUiLCJ3cml0ZSIsImxvZ2giLCJzbWFydEZsb3dQaW5nIiwicGFja2FnZUpzb25QYXRoIiwiYXBwSnNvblBhdGgiLCJleGVjIiwicmVhZEZpbGUiLCJlcnJQYWNrYWdlIiwiZGF0YVBhY2thZ2UiLCJwYWNrYWdlSnNvbiIsImVyckFwcCIsImRhdGFBcHAiLCJhcHBKc29uIiwicmVxdWlyZXNBcnJheSIsInJlcXVpcmVzIiwibW9kaWZpZWRTdHJpbmciLCJob21lRGlyZWN0b3J5IiwiZW52IiwiSE9NRSIsIlVTRVJQUk9GSUxFIiwicmVsYXRpdmVGaWxlUGF0aCIsImZpbGVQYXRoIiwicmVnaXN0cnlSZWdleCIsInJlZ2lzdHJ5VXJsIiwibnBtX2NvbmZpZ19yZWdpc3RyeSIsInVzZXJuYW1lIiwiYWRkaXRpb25hbExpY2Vuc2VJbmZvIiwibGljZW5zZWRGZWF0dXJlIiwic2NyaXB0VHlwZSIsIm5wbV9saWZlY3ljbGVfZXZlbnQiLCJ0cmlnZ2VyZXZlbnQiLCJsaWNlbnNlaW5mbyIsImphclBhdGgiLCJfX2Rpcm5hbWUiLCJmZWF0dXJlc1VzZWQiLCJlbmNyeXB0ZWRMaWNlbnNlIiwiYnRvYSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5VdGlsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2NvbnN0cnVjdG9yKGluaXRpYWxPcHRpb25zKSB7XG4gIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKVxuICB2YXIgdmFycyA9IHt9XG4gIHZhciBvcHRpb25zID0ge31cbiAgdHJ5IHtcbiAgICBpZiAoaW5pdGlhbE9wdGlvbnMuZnJhbWV3b3JrID09IHVuZGVmaW5lZCkge1xuICAgICAgdmFycy5wbHVnaW5FcnJvcnMgPSBbXVxuICAgICAgdmFycy5wbHVnaW5FcnJvcnMucHVzaCgnd2VicGFjayBjb25maWc6IGZyYW1ld29yayBwYXJhbWV0ZXIgb24gZXh0LXdlYnBhY2stcGx1Z2luIGlzIG5vdCBkZWZpbmVkIC0gdmFsdWVzOiByZWFjdCwgYW5ndWxhciwgZXh0anMsIHdlYi1jb21wb25lbnRzJylcbiAgICAgIHZhciByZXN1bHQgPSB7IHZhcnM6IHZhcnMgfTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHZhciBmcmFtZXdvcmsgPSBpbml0aWFsT3B0aW9ucy5mcmFtZXdvcmtcbiAgICB2YXIgdHJlZXNoYWtlID0gaW5pdGlhbE9wdGlvbnMudHJlZXNoYWtlXG4gICAgdmFyIHZlcmJvc2UgPSBpbml0aWFsT3B0aW9ucy52ZXJib3NlXG5cbiAgICBjb25zdCB2YWxpZGF0ZU9wdGlvbnMgPSByZXF1aXJlKCdzY2hlbWEtdXRpbHMnKVxuICAgIHZhbGlkYXRlT3B0aW9ucyhfZ2V0VmFsaWRhdGVPcHRpb25zKCksIGluaXRpYWxPcHRpb25zLCAnJylcblxuICAgIGNvbnN0IHJjID0gKGZzLmV4aXN0c1N5bmMoYC5leHQtJHtmcmFtZXdvcmt9cmNgKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhgLmV4dC0ke2ZyYW1ld29ya31yY2AsICd1dGYtOCcpKSB8fCB7fSlcbiAgICBvcHRpb25zID0geyAuLi5fZ2V0RGVmYXVsdE9wdGlvbnMoKSwgLi4uaW5pdGlhbE9wdGlvbnMsIC4uLnJjIH1cblxuICAgIHZhcnMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0RGVmYXVsdFZhcnMoKVxuICAgIHZhcnMucGx1Z2luTmFtZSA9ICdleHQtd2VicGFjay1wbHVnaW4nXG4gICAgdmFycy5hcHAgPSBfZ2V0QXBwKClcbiAgICB2YXIgcGx1Z2luTmFtZSA9IHZhcnMucGx1Z2luTmFtZVxuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhcnMudGVzdGluZyA9IGZhbHNlXG5cbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfY29uc3RydWN0b3InKVxuICAgIGxvZ3YodmVyYm9zZSwgYHBsdWdpbk5hbWUgLSAke3BsdWdpbk5hbWV9YClcbiAgICBsb2d2KHZlcmJvc2UsIGBhcHAgLSAke2FwcH1gKVxuXG4gICAgaWYgKG9wdGlvbnMuZW52aXJvbm1lbnQgPT0gJ3Byb2R1Y3Rpb24nIHx8XG4gICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS1wcm9kdWN0aW9uJykgfHxcbiAgICAgICAgb3B0aW9ucy5jbWRvcHRzLmluY2x1ZGVzKCctcHInKSB8fFxuICAgICAgICBvcHRpb25zLmNtZG9wdHMuaW5jbHVkZXMoJy0tZW52aXJvbm1lbnQ9cHJvZHVjdGlvbicpIHx8XG4gICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLWU9cHJvZHVjdGlvbicpXG4gICAgICApIHtcbiAgICAgIHZhcnMucHJvZHVjdGlvbiA9IHRydWU7XG4gICAgICBvcHRpb25zLmJyb3dzZXIgPSAnbm8nO1xuICAgICAgb3B0aW9ucy53YXRjaCA9ICdubyc7XG4gICAgICBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPSAncHJvZHVjdGlvbic7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmNtZG9wdHMgJiYgKG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS10ZXN0aW5nJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLXRlJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS1lbnZpcm9ubWVudD10ZXN0aW5nJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLWU9dGVzdGluZycpKVxuICAgICkge1xuICAgICAgdmFycy5wcm9kdWN0aW9uID0gZmFsc2U7XG4gICAgICB2YXJzLnRlc3RpbmcgPSB0cnVlO1xuICAgICAgb3B0aW9ucy5icm93c2VyID0gJ25vJztcbiAgICAgIG9wdGlvbnMud2F0Y2ggPSAnbm8nO1xuICAgICAgb3B0aW9ucy5idWlsZEVudmlyb25tZW50ID0gJ3Rlc3RpbmcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPSAnZGV2ZWxvcG1lbnQnO1xuICAgICAgdmFycy5wcm9kdWN0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbG9nKGFwcCwgX2dldFZlcnNpb25zKHBsdWdpbk5hbWUsIGZyYW1ld29yaykpXG5cbiAgICAvL21qZyBhZGRlZCBmb3IgYW5ndWxhciBjbGkgYnVpbGRcbiAgICBpZiAoZnJhbWV3b3JrID09ICdhbmd1bGFyJyAmJlxuICAgICAgICBvcHRpb25zLmludGVsbGlzaGFrZSA9PSAnbm8nICYmXG4gICAgICAgIHZhcnMucHJvZHVjdGlvbiA9PSB0cnVlXG4gICAgICAgICYmIHRyZWVzaGFrZSA9PSAneWVzJykge1xuICAgICAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAxJztcbiAgICAgICAgICAgIGxvZyhhcHAsICdTdGFydGluZyBwcm9kdWN0aW9uIGJ1aWxkIGZvciAnICsgZnJhbWV3b3JrKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChmcmFtZXdvcmsgPT0gJ3JlYWN0JyB8fCBmcmFtZXdvcmsgPT0gJ2V4dGpzJyB8fCBmcmFtZXdvcmsgPT0gJ3dlYi1jb21wb25lbnRzJykge1xuICAgICAgaWYgKHZhcnMucHJvZHVjdGlvbiA9PSB0cnVlKSB7XG4gICAgICAgIHZhcnMuYnVpbGRzdGVwID0gJzEgb2YgMSdcbiAgICAgICAgbG9nKGFwcCwgJ1N0YXJ0aW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICcgKyBmcmFtZXdvcmspXG4gICAgICB9XG4gICAgICBlbHNlIGlmKHZhcnMudGVzdGluZyA9PSB0cnVlKXtcbiAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAxJ1xuICAgICAgICBsb2coYXBwLCAnU3RhcnRpbmcgdGVzdGluZyBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXJzLmJ1aWxkc3RlcCA9ICcxIG9mIDEnXG4gICAgICAgIGxvZyhhcHAsICdTdGFydGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodmFycy5wcm9kdWN0aW9uID09IHRydWUpIHtcbiAgICAgIGlmICh0cmVlc2hha2UgPT0gJ3llcycpIHtcbiAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAyJ1xuICAgICAgICBsb2coYXBwLCAnU3RhcnRpbmcgcHJvZHVjdGlvbiBidWlsZCBmb3IgJyArIGZyYW1ld29yayArICcgLSAnICsgdmFycy5idWlsZHN0ZXApXG4gICAgICAgIHJlcXVpcmUoYC4vJHtmcmFtZXdvcmt9VXRpbGApLl90b1Byb2QodmFycywgb3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXJzLmJ1aWxkc3RlcCA9ICcyIG9mIDInXG4gICAgICAgIGxvZyhhcHAsICdDb250aW51aW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICcgKyBmcmFtZXdvcmsgKyAnIC0gJyArIHZhcnMuYnVpbGRzdGVwKVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhcnMuYnVpbGRzdGVwID0gJzEgb2YgMSdcbiAgICAgIGxvZyhhcHAsICdTdGFydGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICB9XG4gICAgbG9ndih2ZXJib3NlLCAnQnVpbGRpbmcgZm9yICcgKyBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgKyAnLCAnICsgJ3RyZWVzaGFrZSBpcyAnICsgb3B0aW9ucy50cmVlc2hha2UrICcsICcgKyAnaW50ZWxsaXNoYWtlIGlzICcgKyBvcHRpb25zLmludGVsbGlzaGFrZSlcblxuICAgIHZhciBjb25maWdPYmogPSB7IHZhcnM6IHZhcnMsIG9wdGlvbnM6IG9wdGlvbnMgfTtcbiAgICByZXR1cm4gY29uZmlnT2JqO1xuICB9XG4gIGNhdGNoIChlKSB7XG4gICAgdGhyb3cgJ19jb25zdHJ1Y3RvcjogJyArIGUudG9TdHJpbmcoKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF90aGlzQ29tcGlsYXRpb24oY29tcGlsZXIsIGNvbXBpbGF0aW9uLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFwcCA9IHZhcnMuYXBwXG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfdGhpc0NvbXBpbGF0aW9uJylcbiAgICBsb2d2KHZlcmJvc2UsIGBvcHRpb25zLnNjcmlwdDogJHtvcHRpb25zLnNjcmlwdCB9YClcbiAgICBsb2d2KHZlcmJvc2UsIGBidWlsZHN0ZXA6ICR7dmFycy5idWlsZHN0ZXB9YClcblxuICAgIGlmICh2YXJzLmJ1aWxkc3RlcCA9PT0gJzEgb2YgMScgfHwgdmFycy5idWlsZHN0ZXAgPT09ICcxIG9mIDInKSB7XG4gICAgICBpZiAob3B0aW9ucy5zY3JpcHQgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuc2NyaXB0ICE9IG51bGwgJiYgb3B0aW9ucy5zY3JpcHQgIT0gJycpIHtcbiAgICAgICAgbG9nKGFwcCwgYFN0YXJ0ZWQgcnVubmluZyAke29wdGlvbnMuc2NyaXB0fWApXG4gICAgICAgIHJ1blNjcmlwdChvcHRpb25zLnNjcmlwdCwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nKGFwcCwgYEZpbmlzaGVkIHJ1bm5pbmcgJHtvcHRpb25zLnNjcmlwdH1gKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHRocm93ICdfdGhpc0NvbXBpbGF0aW9uOiAnICsgZS50b1N0cmluZygpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2NvbXBpbGF0aW9uKGNvbXBpbGVyLCBjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucykge1xuICB0cnkge1xuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhciB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlXG4gICAgdmFyIGZyYW1ld29yayA9IG9wdGlvbnMuZnJhbWV3b3JrXG4gICAgbG9ndih2ZXJib3NlLCAnRlVOQ1RJT04gX2NvbXBpbGF0aW9uJylcblxuICAgIGlmIChmcmFtZXdvcmsgIT0gJ2V4dGpzJykge1xuICAgICAgaWYgKG9wdGlvbnMudHJlZXNoYWtlID09PSAneWVzJyAmJiBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgZXh0Q29tcG9uZW50cyA9IFtdO1xuXG4gICAgICAgIC8vbWpnIGZvciAxIHN0ZXAgYnVpbGRcbiAgICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnICYmIGZyYW1ld29yayA9PT0gJ2FuZ3VsYXInICYmIG9wdGlvbnMuaW50ZWxsaXNoYWtlID09ICdubycpIHtcbiAgICAgICAgICAgIGV4dENvbXBvbmVudHMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0QWxsQ29tcG9uZW50cyh2YXJzLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YXJzLmJ1aWxkc3RlcCA9PSAnMSBvZiAyJyB8fCAodmFycy5idWlsZHN0ZXAgPT0gJzEgb2YgMScgJiYgZnJhbWV3b3JrID09PSAnd2ViLWNvbXBvbmVudHMnKSkge1xuICAgICAgICAgIGV4dENvbXBvbmVudHMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0QWxsQ29tcG9uZW50cyh2YXJzLCBvcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLnN1Y2NlZWRNb2R1bGUudGFwKGBleHQtc3VjY2VlZC1tb2R1bGVgLCBtb2R1bGUgPT4ge1xuICAgICAgICAgIGlmIChtb2R1bGUucmVzb3VyY2UgJiYgIW1vZHVsZS5yZXNvdXJjZS5tYXRjaCgvbm9kZV9tb2R1bGVzLykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZHVsZS5yZXNvdXJjZS5tYXRjaCgvXFwuaHRtbCQvKSAhPSBudWxsXG4gICAgICAgICAgICAgICAgJiYgbW9kdWxlLl9zb3VyY2UuX3ZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RvY3R5cGUgaHRtbCcpID09IGZhbHNlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcnMuZGVwcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih2YXJzLmRlcHMgfHwgW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWlyZShgLi8ke2ZyYW1ld29ya31VdGlsYCkuX2V4dHJhY3RGcm9tU291cmNlKG1vZHVsZSwgb3B0aW9ucywgY29tcGlsYXRpb24sIGV4dENvbXBvbmVudHMpXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcnMuZGVwcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih2YXJzLmRlcHMgfHwgW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWlyZShgLi8ke2ZyYW1ld29ya31VdGlsYCkuX2V4dHJhY3RGcm9tU291cmNlKG1vZHVsZSwgb3B0aW9ucywgY29tcGlsYXRpb24sIGV4dENvbXBvbmVudHMpXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDInKSB7XG4gICAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLmZpbmlzaE1vZHVsZXMudGFwKGBleHQtZmluaXNoLW1vZHVsZXNgLCBtb2R1bGVzID0+IHtcbiAgICAgICAgICByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fd3JpdGVGaWxlc1RvUHJvZEZvbGRlcih2YXJzLCBvcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnIHx8IHZhcnMuYnVpbGRzdGVwID09ICcyIG9mIDInKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmluamVjdCA9PT0gJ3llcycpIHtcbiAgICAgICAgICBpZihjb21waWxhdGlvbi5ob29rcy5odG1sV2VicGFja1BsdWdpbkJlZm9yZUh0bWxHZW5lcmF0aW9uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29tcGlsYXRpb24uaG9va3MuaHRtbFdlYnBhY2tQbHVnaW5CZWZvcmVIdG1sR2VuZXJhdGlvbi50YXAoYGV4dC1odG1sLWdlbmVyYXRpb25gLChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJylcbiAgICAgICAgICAgICAgdmFyIGpzUGF0aCA9IHBhdGguam9pbih2YXJzLmV4dFBhdGgsICdleHQuanMnKVxuICAgICAgICAgICAgICB2YXIgY3NzUGF0aCA9IHBhdGguam9pbih2YXJzLmV4dFBhdGgsICdleHQuY3NzJylcbiAgICAgICAgICAgICAgLy92YXIganNQYXRoID0gdmFycy5leHRQYXRoICsgJy8nICsgICdleHQuanMnO1xuICAgICAgICAgICAgICAvL3ZhciBjc3NQYXRoID0gdmFycy5leHRQYXRoICsgJy8nICsgJ2V4dC5jc3MnO1xuICAgICAgICAgICAgICBkYXRhLmFzc2V0cy5qcy51bnNoaWZ0KGpzUGF0aClcbiAgICAgICAgICAgICAgZGF0YS5hc3NldHMuY3NzLnVuc2hpZnQoY3NzUGF0aClcbiAgICAgICAgICAgICAgbG9nKGFwcCwgYEFkZGluZyAke2pzUGF0aH0gYW5kICR7Y3NzUGF0aH0gdG8gaW5kZXguaHRtbGApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYXRjaChlKSB7XG4gICAgdGhyb3cgJ19jb21waWxhdGlvbjogJyArIGUudG9TdHJpbmcoKVxuLy8gICAgbG9ndihvcHRpb25zLnZlcmJvc2UsZSlcbi8vICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKCdfY29tcGlsYXRpb246ICcgKyBlKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9hZnRlckNvbXBpbGUoY29tcGlsZXIsIGNvbXBpbGF0aW9uLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFwcCA9IHZhcnMuYXBwXG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfYWZ0ZXJDb21waWxlJylcbiAgICBpZiAoZnJhbWV3b3JrID09ICdleHRqcycpIHtcbiAgICAgIHJlcXVpcmUoYC4vZXh0anNVdGlsYCkuX2FmdGVyQ29tcGlsZShjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucylcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfYWZ0ZXJDb21waWxlIG5vdCBydW4nKVxuICAgIH1cbiAgfVxuICBjYXRjaChlKSB7XG4gICAgdGhyb3cgJ19hZnRlckNvbXBpbGU6ICcgKyBlLnRvU3RyaW5nKClcbiAgfVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfZW1pdChjb21waWxlciwgY29tcGlsYXRpb24sIHZhcnMsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhciB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlXG4gICAgdmFyIGVtaXQgPSBvcHRpb25zLmVtaXRcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICB2YXJzLmNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9lbWl0JylcbiAgICBpZiAoZW1pdCA9PSAneWVzJykge1xuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnIHx8IHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDInKSB7XG4gICAgICAgIGxldCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKGNvbXBpbGVyLm91dHB1dFBhdGgsdmFycy5leHRQYXRoKVxuICAgICAgICBpZiAoY29tcGlsZXIub3V0cHV0UGF0aCA9PT0gJy8nICYmIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgb3V0cHV0UGF0aCA9IHBhdGguam9pbihjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5jb250ZW50QmFzZSwgb3V0cHV0UGF0aClcbiAgICAgICAgfVxuICAgICAgICBsb2d2KHZlcmJvc2UsJ291dHB1dFBhdGg6ICcgKyBvdXRwdXRQYXRoKVxuICAgICAgICBsb2d2KHZlcmJvc2UsJ2ZyYW1ld29yazogJyArIGZyYW1ld29yaylcbiAgICAgICAgaWYgKGZyYW1ld29yayAhPSAnZXh0anMnKSB7XG4gICAgICAgICAgX3ByZXBhcmVGb3JCdWlsZChhcHAsIHZhcnMsIG9wdGlvbnMsIG91dHB1dFBhdGgsIGNvbXBpbGF0aW9uKVxuICAgICAgICB9XG4gICAgICAgIHZhciBjb21tYW5kID0gJydcbiAgICAgICAgaWYgKG9wdGlvbnMud2F0Y2ggPT0gJ3llcycgJiYgdmFycy5wcm9kdWN0aW9uID09IGZhbHNlKVxuICAgICAgICAgIHtjb21tYW5kID0gJ3dhdGNoJ31cbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtjb21tYW5kID0gJ2J1aWxkJ31cbiAgICAgICAgaWYgKHZhcnMucmVidWlsZCA9PSB0cnVlKSB7XG4gICAgICAgICAgdmFyIHBhcm1zID0gW11cbiAgICAgICAgICBpZighQXJyYXkuaXNBcnJheShvcHRpb25zLmNtZG9wdHMpKXtcbiAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cyA9IG9wdGlvbnMuY21kb3B0cy5zcGxpdCgnICcpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRpb25zLnByb2ZpbGUgPT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMucHJvZmlsZSA9PSAnJyB8fCBvcHRpb25zLnByb2ZpbGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGNvbW1hbmQgPT0gJ2J1aWxkJylcbiAgICAgICAgICAgICAgeyBwYXJtcyA9IFsnYXBwJywgY29tbWFuZCwgb3B0aW9ucy5idWlsZEVudmlyb25tZW50XSB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHsgcGFybXMgPSBbJ2FwcCcsIGNvbW1hbmQsICctLXdlYi1zZXJ2ZXInLCAnZmFsc2UnLCBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnRdIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCA9PSAnYnVpbGQnKVxuICAgICAgICAgICAgICB7cGFybXMgPSBbJ2FwcCcsIGNvbW1hbmQsIG9wdGlvbnMucHJvZmlsZSwgb3B0aW9ucy5idWlsZEVudmlyb25tZW50XX1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAge3Bhcm1zID0gWydhcHAnLCBjb21tYW5kLCAnLS13ZWItc2VydmVyJywgJ2ZhbHNlJywgb3B0aW9ucy5wcm9maWxlLCBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnRdfVxuICAgICAgICAgIH1cbiAgICAgICAgICBvcHRpb25zLmNtZG9wdHMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50KXtcbiAgICAgICAgICAgICAgcGFybXMuc3BsaWNlKHBhcm1zLmluZGV4T2YoY29tbWFuZCkrMSwgMCwgZWxlbWVudCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAvLyBpZiAodmFycy53YXRjaFN0YXJ0ZWQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAvLyAgIGF3YWl0IF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucylcbiAgICAgICAgICAvLyAgIHZhcnMud2F0Y2hTdGFydGVkID0gdHJ1ZVxuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBpZiAodmFycy53YXRjaFN0YXJ0ZWQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGF3YWl0IF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucylcbiAgICAgICAgICAgIGlmIChjb21tYW5kID09ICd3YXRjaCcpIHtcbiAgICAgICAgICAgICAgdmFycy53YXRjaFN0YXJ0ZWQgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFycy5jYWxsYmFjaygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vbWpnXG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9tamdcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGxvZ3YodmVyYm9zZSwnTk9UIHJ1bm5pbmcgZW1pdCcpXG4gICAgICAgIHZhcnMuY2FsbGJhY2soKVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGxvZ3YodmVyYm9zZSwnZW1pdCBpcyBubycpXG4gICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHZhcnMuY2FsbGJhY2soKVxuICAgIHRocm93ICdfZW1pdDogJyArIGUudG9TdHJpbmcoKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9kb25lKHN0YXRzLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9kb25lJylcbiAgICBpZiAoc3RhdHMuY29tcGlsYXRpb24uZXJyb3JzICYmIHN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycy5sZW5ndGgpIC8vICYmIHByb2Nlc3MuYXJndi5pbmRleE9mKCctLXdhdGNoJykgPT0gLTEpXG4gICAge1xuICAgICAgdmFyIGNoYWxrID0gcmVxdWlyZSgnY2hhbGsnKTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZCgnKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJykpO1xuICAgICAgY29uc29sZS5sb2coc3RhdHMuY29tcGlsYXRpb24uZXJyb3JzWzBdKTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZCgnKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJykpO1xuICAgICAgLy9wcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuXG4gICAgLy9tamcgcmVmYWN0b3JcbiAgICBpZiAodmFycy5wcm9kdWN0aW9uID09IHRydWUgJiYgb3B0aW9ucy50cmVlc2hha2UgPT0gJ25vJyAmJiBmcmFtZXdvcmsgPT0gJ2FuZ3VsYXInKSB7XG4gICAgICByZXF1aXJlKGAuLyR7b3B0aW9ucy5mcmFtZXdvcmt9VXRpbGApLl90b0Rldih2YXJzLCBvcHRpb25zKVxuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYob3B0aW9ucy5icm93c2VyID09ICd5ZXMnICYmIG9wdGlvbnMud2F0Y2ggPT0gJ3llcycgJiYgdmFycy5wcm9kdWN0aW9uID09IGZhbHNlKSB7XG4gICAgICAgIGlmICh2YXJzLmJyb3dzZXJDb3VudCA9PSAwKSB7XG4gICAgICAgICAgdmFyIHVybCA9ICdodHRwOi8vbG9jYWxob3N0OicgKyBvcHRpb25zLnBvcnRcbiAgICAgICAgICByZXF1aXJlKCcuL3BsdWdpblV0aWwnKS5sb2codmFycy5hcHAsIGBPcGVuaW5nIGJyb3dzZXIgYXQgJHt1cmx9YClcbiAgICAgICAgICB2YXJzLmJyb3dzZXJDb3VudCsrXG4gICAgICAgICAgY29uc3Qgb3BuID0gcmVxdWlyZSgnb3BuJylcbiAgICAgICAgICBvcG4odXJsKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cbiAgICBpZiAodmFycy5idWlsZHN0ZXAgPT0gJzEgb2YgMScpIHtcbiAgICAgIGlmICh2YXJzLnByb2R1Y3Rpb24gPT0gdHJ1ZSkge1xuICAgICAgICByZXF1aXJlKCcuL3BsdWdpblV0aWwnKS5sb2codmFycy5hcHAsIGBFbmRpbmcgcHJvZHVjdGlvbiBidWlsZCBmb3IgJHtmcmFtZXdvcmt9YClcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhcnMudGVzdGluZyA9PSB0cnVlKSB7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyB0ZXN0aW5nIGJ1aWxkIGZvciAke2ZyYW1ld29ya31gKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJHtmcmFtZXdvcmt9YClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcyIG9mIDInKSB7XG4gICAgICBpZih2YXJzLnRlc3RpbmcgPT0gdHJ1ZSl7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyB0ZXN0aW5nIGJ1aWxkIGZvciAke2ZyYW1ld29ya31gKVxuICAgICAgfVxuICAgICAgcmVxdWlyZSgnLi9wbHVnaW5VdGlsJykubG9nKHZhcnMuYXBwLCBgRW5kaW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICR7ZnJhbWV3b3JrfWApXG4gICAgfVxuICB9XG4gIGNhdGNoKGUpIHtcbi8vICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZ3Yob3B0aW9ucy52ZXJib3NlLGUpXG4gICAgdGhyb3cgJ19kb25lOiAnICsgZS50b1N0cmluZygpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX3ByZXBhcmVGb3JCdWlsZChhcHAsIHZhcnMsIG9wdGlvbnMsIG91dHB1dCwgY29tcGlsYXRpb24pIHtcbiAgdHJ5IHtcbiAgICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICAgIHZhciBwYWNrYWdlcyA9IG9wdGlvbnMucGFja2FnZXNcbiAgICB2YXIgdG9vbGtpdCA9IG9wdGlvbnMudG9vbGtpdFxuICAgIHZhciB0aGVtZSA9IG9wdGlvbnMudGhlbWVcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9wcmVwYXJlRm9yQnVpbGQnKVxuICAgIGNvbnN0IHJpbXJhZiA9IHJlcXVpcmUoJ3JpbXJhZicpXG4gICAgY29uc3QgbWtkaXJwID0gcmVxdWlyZSgnbWtkaXJwJylcbiAgICBjb25zdCBmc3ggPSByZXF1aXJlKCdmcy1leHRyYScpXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpXG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuICAgIHRoZW1lID0gdGhlbWUgfHwgKHRvb2xraXQgPT09ICdjbGFzc2ljJyA/ICd0aGVtZS10cml0b24nIDogJ3RoZW1lLW1hdGVyaWFsJylcbiAgICBsb2d2KHZlcmJvc2UsJ2ZpcnN0VGltZTogJyArIHZhcnMuZmlyc3RUaW1lKVxuICAgIGlmICh2YXJzLmZpcnN0VGltZSkge1xuICAgICAgcmltcmFmLnN5bmMob3V0cHV0KVxuICAgICAgbWtkaXJwLnN5bmMob3V0cHV0KVxuICAgICAgY29uc3QgYnVpbGRYTUwgPSByZXF1aXJlKCcuL2FydGlmYWN0cycpLmJ1aWxkWE1MXG4gICAgICBjb25zdCBjcmVhdGVBcHBKc29uID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVBcHBKc29uXG4gICAgICBjb25zdCBjcmVhdGVXb3Jrc3BhY2VKc29uID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVXb3Jrc3BhY2VKc29uXG4gICAgICBjb25zdCBjcmVhdGVKU0RPTUVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVKU0RPTUVudmlyb25tZW50XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICdidWlsZC54bWwnKSwgYnVpbGRYTUwodmFycy5wcm9kdWN0aW9uLCBvcHRpb25zLCBvdXRwdXQpLCAndXRmOCcpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICdhcHAuanNvbicpLCBjcmVhdGVBcHBKc29uKHRoZW1lLCBwYWNrYWdlcywgdG9vbGtpdCwgb3B0aW9ucywgb3V0cHV0KSwgJ3V0ZjgnKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ob3V0cHV0LCAnanNkb20tZW52aXJvbm1lbnQuanMnKSwgY3JlYXRlSlNET01FbnZpcm9ubWVudChvcHRpb25zLCBvdXRwdXQpLCAndXRmOCcpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICd3b3Jrc3BhY2UuanNvbicpLCBjcmVhdGVXb3Jrc3BhY2VKc29uKG9wdGlvbnMsIG91dHB1dCksICd1dGY4JylcbiAgICAgIHZhciBmcmFtZXdvcmsgPSB2YXJzLmZyYW1ld29yaztcbiAgICAgIC8vYmVjYXVzZSBvZiBhIHByb2JsZW0gd2l0aCBjb2xvcnBpY2tlclxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksYGV4dC0ke2ZyYW1ld29ya30vdXgvYCkpKSB7XG4gICAgICAgIHZhciBmcm9tUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBgZXh0LSR7ZnJhbWV3b3JrfS91eC9gKVxuICAgICAgICB2YXIgdG9QYXRoID0gcGF0aC5qb2luKG91dHB1dCwgJ3V4JylcbiAgICAgICAgZnN4LmNvcHlTeW5jKGZyb21QYXRoLCB0b1BhdGgpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICh1eCkgJyArIGZyb21QYXRoLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpICsgJyB0bzogJyArIHRvUGF0aC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKSlcbiAgICAgIH1cbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLGBleHQtJHtmcmFtZXdvcmt9L3BhY2thZ2VzL2ApKSkge1xuICAgICAgICB2YXIgZnJvbVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYGV4dC0ke2ZyYW1ld29ya30vcGFja2FnZXMvYClcbiAgICAgICAgdmFyIHRvUGF0aCA9IHBhdGguam9pbihvdXRwdXQsICdwYWNrYWdlcycpXG4gICAgICAgIGZzeC5jb3B5U3luYyhmcm9tUGF0aCwgdG9QYXRoKVxuICAgICAgICBsb2coYXBwLCAnQ29weWluZyAnICsgZnJvbVBhdGgucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykgKyAnIHRvOiAnICsgdG9QYXRoLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpKVxuICAgICAgfVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksYGV4dC0ke2ZyYW1ld29ya30vb3ZlcnJpZGVzL2ApKSkge1xuICAgICAgICB2YXIgZnJvbVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYGV4dC0ke2ZyYW1ld29ya30vb3ZlcnJpZGVzL2ApXG4gICAgICAgIHZhciB0b1BhdGggPSBwYXRoLmpvaW4ob3V0cHV0LCAnb3ZlcnJpZGVzJylcbiAgICAgICAgZnN4LmNvcHlTeW5jKGZyb21QYXRoLCB0b1BhdGgpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICcgKyBmcm9tUGF0aC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKSArICcgdG86ICcgKyB0b1BhdGgucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykpXG4gICAgICB9XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwncmVzb3VyY2VzLycpKSkge1xuICAgICAgICB2YXIgZnJvbVJlc291cmNlcyA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAncmVzb3VyY2VzLycpXG4gICAgICAgIHZhciB0b1Jlc291cmNlcyA9IHBhdGguam9pbihvdXRwdXQsICcuLi9yZXNvdXJjZXMnKVxuICAgICAgICBmc3guY29weVN5bmMoZnJvbVJlc291cmNlcywgdG9SZXNvdXJjZXMpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICcgKyBmcm9tUmVzb3VyY2VzLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpICsgJyB0bzogJyArIHRvUmVzb3VyY2VzLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpKVxuICAgICAgfVxuICAgIH1cbiAgICB2YXJzLmZpcnN0VGltZSA9IGZhbHNlXG4gICAgdmFyIGpzID0gJydcbiAgICBpZiAodmFycy5wcm9kdWN0aW9uKSB7XG4gICAgICB2YXJzLmRlcHMgPSB2YXJzLmRlcHMuZmlsdGVyKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCl7IHJldHVybiB2YXJzLmRlcHMuaW5kZXhPZih2YWx1ZSkgPT0gaW5kZXggfSk7XG4gICAgICBqcyA9IHZhcnMuZGVwcy5qb2luKCc7XFxuJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAganMgPSBgRXh0LnJlcXVpcmUoW1wiRXh0LipcIixcIkV4dC5kYXRhLlRyZWVTdG9yZVwiXSlgXG4gICAgfVxuICAgIGpzID0gYEV4dC5yZXF1aXJlKFtcIkV4dC4qXCIsXCJFeHQuZGF0YS5UcmVlU3RvcmVcIl0pYDsgLy9mb3Igbm93XG4gICAgaWYgKHZhcnMubWFuaWZlc3QgPT09IG51bGwgfHwganMgIT09IHZhcnMubWFuaWZlc3QpIHtcbiAgICAgIHZhcnMubWFuaWZlc3QgPSBqcyArICc7XFxuRXh0LnJlcXVpcmUoW1wiRXh0LmxheW91dC4qXCJdKTtcXG4nO1xuICAgICAgY29uc3QgbWFuaWZlc3QgPSBwYXRoLmpvaW4ob3V0cHV0LCAnbWFuaWZlc3QuanMnKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhtYW5pZmVzdCwgdmFycy5tYW5pZmVzdCwgJ3V0ZjgnKVxuICAgICAgdmFycy5yZWJ1aWxkID0gdHJ1ZVxuICAgICAgdmFyIGJ1bmRsZURpciA9IG91dHB1dC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKVxuICAgICAgaWYgKGJ1bmRsZURpci50cmltKCkgPT0gJycpIHtidW5kbGVEaXIgPSAnLi8nfVxuICAgICAgbG9nKGFwcCwgJ0J1aWxkaW5nIEV4dCBidW5kbGUgYXQ6ICcgKyBidW5kbGVEaXIpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFycy5yZWJ1aWxkID0gZmFsc2VcbiAgICAgIGxvZyhhcHAsICdFeHQgcmVidWlsZCBOT1QgbmVlZGVkJylcbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZ3Yob3B0aW9ucy52ZXJib3NlLGUpXG4gICAgY29tcGlsYXRpb24uZXJyb3JzLnB1c2goJ19wcmVwYXJlRm9yQnVpbGQ6ICcgKyBlKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucykge1xuICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJylcbiAgbG9ndih2ZXJib3NlLCdGVU5DVElPTiBfYnVpbGRFeHRCdW5kbGUnKVxuICBsZXQgc2VuY2hhOyB0cnkgeyBzZW5jaGEgPSByZXF1aXJlKCdAc2VuY2hhL2NtZCcpIH0gY2F0Y2ggKGUpIHsgc2VuY2hhID0gJ3NlbmNoYScgfVxuICBpZiAoZnMuZXhpc3RzU3luYyhzZW5jaGEpKSB7XG4gICAgbG9ndih2ZXJib3NlLCdzZW5jaGEgZm9sZGVyIGV4aXN0cycpXG4gIH1cbiAgZWxzZSB7XG4gICAgbG9ndih2ZXJib3NlLCdzZW5jaGEgZm9sZGVyIERPRVMgTk9UIGV4aXN0JylcbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQnVpbGREb25lID0gKCkgPT4ge1xuICAgICAgbG9ndih2ZXJib3NlLCdvbkJ1aWxkRG9uZScpXG4gICAgICByZXNvbHZlKClcbiAgICB9XG4gICAgdmFyIG9wdHMgPSB7IGN3ZDogb3V0cHV0UGF0aCwgc2lsZW50OiB0cnVlLCBzdGRpbzogJ3BpcGUnLCBlbmNvZGluZzogJ3V0Zi04J31cbiAgICBfZXhlY3V0ZUFzeW5jKGFwcCwgc2VuY2hhLCBwYXJtcywgb3B0cywgY29tcGlsYXRpb24sIHZhcnMsIG9wdGlvbnMpLnRoZW4gKFxuICAgICAgZnVuY3Rpb24oKSB7IG9uQnVpbGREb25lKCkgfSxcbiAgICAgIGZ1bmN0aW9uKHJlYXNvbikgeyByZWplY3QocmVhc29uKSB9XG4gICAgKVxuICB9KVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfZXhlY3V0ZUFzeW5jIChhcHAsIGNvbW1hbmQsIHBhcm1zLCBvcHRzLCBjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucykge1xuICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgLy9jb25zdCBERUZBVUxUX1NVQlNUUlMgPSBbJ1tJTkZdIExvYWRpbmcnLCAnW0lORl0gUHJvY2Vzc2luZycsICdbTE9HXSBGYXNoaW9uIGJ1aWxkIGNvbXBsZXRlJywgJ1tFUlJdJywgJ1tXUk5dJywgXCJbSU5GXSBTZXJ2ZXJcIiwgXCJbSU5GXSBXcml0aW5nXCIsIFwiW0lORl0gTG9hZGluZyBCdWlsZFwiLCBcIltJTkZdIFdhaXRpbmdcIiwgXCJbTE9HXSBGYXNoaW9uIHdhaXRpbmdcIl07XG4gIGNvbnN0IERFRkFVTFRfU1VCU1RSUyA9IFtcIltJTkZdIHhTZXJ2ZXJcIiwgJ1tJTkZdIExvYWRpbmcnLCAnW0lORl0gQXBwZW5kJywgJ1tJTkZdIFByb2Nlc3NpbmcnLCAnW0lORl0gUHJvY2Vzc2luZyBCdWlsZCcsICdbTE9HXSBGYXNoaW9uIGJ1aWxkIGNvbXBsZXRlJywgJ1tFUlJdJywgJ1tXUk5dJywgXCJbSU5GXSBXcml0aW5nXCIsIFwiW0lORl0gTG9hZGluZyBCdWlsZFwiLCBcIltJTkZdIFdhaXRpbmdcIiwgXCJbTE9HXSBGYXNoaW9uIHdhaXRpbmdcIl07XG4gIHZhciBzdWJzdHJpbmdzID0gREVGQVVMVF9TVUJTVFJTXG4gIHZhciBjaGFsayA9IHJlcXVpcmUoJ2NoYWxrJylcbiAgY29uc3QgY3Jvc3NTcGF3biA9IHJlcXVpcmUoJ2Nyb3NzLXNwYXduLXdpdGgta2lsbCcpXG4gIGxvZ3YodmVyYm9zZSwgJ0ZVTkNUSU9OIF9leGVjdXRlQXN5bmMnKVxuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgbG9ndih2ZXJib3NlLGBjb21tYW5kIC0gJHtjb21tYW5kfWApXG4gICAgbG9ndih2ZXJib3NlLCBgcGFybXMgLSAke3Bhcm1zfWApXG4gICAgbG9ndih2ZXJib3NlLCBgb3B0cyAtICR7SlNPTi5zdHJpbmdpZnkob3B0cyl9YClcbiAgICB2YXJzLmNoaWxkID0gY3Jvc3NTcGF3bihjb21tYW5kLCBwYXJtcywgb3B0cylcblxuICAgIHZhcnMuY2hpbGQub24oJ2Nsb3NlJywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgbG9ndih2ZXJib3NlLCBgb24gY2xvc2U6IGAgKyBjb2RlKVxuICAgICAgaWYoY29kZSA9PT0gMCkgeyByZXNvbHZlKDApIH1cbiAgICAgIGVsc2UgeyBjb21waWxhdGlvbi5lcnJvcnMucHVzaCggbmV3IEVycm9yKGNvZGUpICk7IHJlc29sdmUoMCkgfVxuICAgIH0pXG4gICAgdmFycy5jaGlsZC5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIGxvZ3YodmVyYm9zZSwgYG9uIGVycm9yYClcbiAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGVycm9yKVxuICAgICAgcmVzb2x2ZSgwKVxuICAgIH0pXG4gICAgdmFycy5jaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgdmFyIHN0ciA9IGRhdGEudG9TdHJpbmcoKS5yZXBsYWNlKC9cXHI/XFxufFxcci9nLCBcIiBcIikudHJpbSgpXG4gICAgICBsb2d2KHZlcmJvc2UsIGAke3N0cn1gKVxuICAgICAgLy9pZiAoZGF0YSAmJiBkYXRhLnRvU3RyaW5nKCkubWF0Y2goL0Zhc2hpb24gd2FpdGluZyBmb3IgY2hhbmdlc1xcLlxcLlxcLi8pKSB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLnRvU3RyaW5nKCkubWF0Y2goL2FpdGluZyBmb3IgY2hhbmdlc1xcLlxcLlxcLi8pKSB7XG5cbi8vICAgICAgICAgICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4vLyAgICAgICAgICAgdmFyIGZpbGVuYW1lID0gcHJvY2Vzcy5jd2QoKSArIHZhcnMudG91Y2hGaWxlO1xuLy8gICAgICAgICAgIHRyeSB7XG4vLyAgICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuLy8gICAgICAgICAgICAgdmFyIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUpO1xuLy8gICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgJy8vJyArIGQsICd1dGY4Jyk7XG4vLyAgICAgICAgICAgICBsb2d2KGFwcCwgYHRvdWNoaW5nICR7ZmlsZW5hbWV9YCk7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICAgIGNhdGNoKGUpIHtcbi8vICAgICAgICAgICAgIGxvZ3YoYXBwLCBgTk9UIHRvdWNoaW5nICR7ZmlsZW5hbWV9YCk7XG4vLyAgICAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKFwiW0lORl1cIiwgXCJcIilcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoXCJbTE9HXVwiLCBcIlwiKVxuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykudHJpbSgpXG4gICAgICAgIGlmIChzdHIuaW5jbHVkZXMoXCJbRVJSXVwiKSkge1xuICAgICAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGFwcCArIHN0ci5yZXBsYWNlKC9eXFxbRVJSXFxdIC9naSwgJycpKTtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShcIltFUlJdXCIsIGAke2NoYWxrLnJlZChcIltFUlJdXCIpfWApXG4gICAgICAgIH1cbiAgICAgICAgbG9nKGFwcCwgc3RyKVxuXG4gICAgICAgIHZhcnMuY2FsbGJhY2soKVxuICAgICAgICByZXNvbHZlKDApXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKHN1YnN0cmluZ3Muc29tZShmdW5jdGlvbih2KSB7IHJldHVybiBkYXRhLmluZGV4T2YodikgPj0gMDsgfSkpIHtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShcIltJTkZdXCIsIFwiXCIpXG4gICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoXCJbTE9HXVwiLCBcIlwiKVxuICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKS50cmltKClcbiAgICAgICAgICBpZiAoc3RyLmluY2x1ZGVzKFwiW0VSUl1cIikpIHtcbiAgICAgICAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGFwcCArIHN0ci5yZXBsYWNlKC9eXFxbRVJSXFxdIC9naSwgJycpKTtcbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKFwiW0VSUl1cIiwgYCR7Y2hhbGsucmVkKFwiW0VSUl1cIil9YClcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nKGFwcCwgc3RyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICB2YXJzLmNoaWxkLnN0ZGVyci5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICBsb2d2KG9wdGlvbnMsIGBlcnJvciBvbiBjbG9zZTogYCArIGRhdGEpXG4gICAgICB2YXIgc3RyID0gZGF0YS50b1N0cmluZygpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csIFwiIFwiKS50cmltKClcbiAgICAgIHZhciBzdHJKYXZhT3B0cyA9IFwiUGlja2VkIHVwIF9KQVZBX09QVElPTlNcIjtcbiAgICAgIHZhciBpbmNsdWRlcyA9IHN0ci5pbmNsdWRlcyhzdHJKYXZhT3B0cylcbiAgICAgIGlmICghaW5jbHVkZXMpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCR7YXBwfSAke2NoYWxrLnJlZChcIltFUlJdXCIpfSAke3N0cn1gKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5cbi8vKioqKioqKioqKlxuZnVuY3Rpb24gcnVuU2NyaXB0KHNjcmlwdFBhdGgsIGNhbGxiYWNrKSB7XG4gIHZhciBjaGlsZFByb2Nlc3MgPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7XG4gIC8vIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBjYWxsYmFjayBoYXMgYmVlbiBpbnZva2VkIHRvIHByZXZlbnQgbXVsdGlwbGUgaW52b2NhdGlvbnNcbiAgdmFyIGludm9rZWQgPSBmYWxzZTtcbiAgdmFyIHByb2Nlc3MgPSBjaGlsZFByb2Nlc3MuZm9yayhzY3JpcHRQYXRoLCBbXSwgeyBleGVjQXJndiA6IFsnLS1pbnNwZWN0PTAnXSB9KTtcbiAgLy8gbGlzdGVuIGZvciBlcnJvcnMgYXMgdGhleSBtYXkgcHJldmVudCB0aGUgZXhpdCBldmVudCBmcm9tIGZpcmluZ1xuICBwcm9jZXNzLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICBpZiAoaW52b2tlZCkgcmV0dXJuO1xuICAgIGludm9rZWQgPSB0cnVlO1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH0pO1xuICAvLyBleGVjdXRlIHRoZSBjYWxsYmFjayBvbmNlIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCBydW5uaW5nXG4gIHByb2Nlc3Mub24oJ2V4aXQnLCBmdW5jdGlvbiAoY29kZSkge1xuICAgIGlmIChpbnZva2VkKSByZXR1cm47XG4gICAgaW52b2tlZCA9IHRydWU7XG4gICAgdmFyIGVyciA9IGNvZGUgPT09IDAgPyBudWxsIDogbmV3IEVycm9yKCdleGl0IGNvZGUgJyArIGNvZGUpO1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH0pO1xufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBfdG9YdHlwZShzdHIpIHtcbiAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywgJy0nKVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBfZ2V0QXBwKCkge1xuICB2YXIgY2hhbGsgPSByZXF1aXJlKCdjaGFsaycpXG4gIHZhciBwcmVmaXggPSBgYFxuICBjb25zdCBwbGF0Zm9ybSA9IHJlcXVpcmUoJ29zJykucGxhdGZvcm0oKVxuICBpZiAocGxhdGZvcm0gPT0gJ2RhcndpbicpIHsgcHJlZml4ID0gYOKEuSDvvaJleHTvvaM6YCB9XG4gIGVsc2UgeyBwcmVmaXggPSBgaSBbZXh0XTpgIH1cbiAgcmV0dXJuIGAke2NoYWxrLmdyZWVuKHByZWZpeCl9IGBcbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2dldFZlcnNpb25zKHBsdWdpbk5hbWUsIGZyYW1ld29ya05hbWUpIHtcbnRyeSB7XG4gIGNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJylcbiAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpXG4gIHZhciB2ID0ge31cbiAgdmFyIGZyYW1ld29ya0luZm8gPSAnbi9hJ1xuXG4gIHYucGx1Z2luVmVyc2lvbiA9ICduL2EnO1xuICB2LmV4dFZlcnNpb24gPSAnbi9hJztcbiAgdi5lZGl0aW9uID0gJ24vYSc7XG4gIHYuY21kVmVyc2lvbiA9ICduL2EnO1xuICB2LndlYnBhY2tWZXJzaW9uID0gJ24vYSc7XG5cbiAgdmFyIHBsdWdpblBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwnbm9kZV9tb2R1bGVzL0BzZW5jaGEnLCBwbHVnaW5OYW1lKVxuICB2YXIgcGx1Z2luUGtnID0gKGZzLmV4aXN0c1N5bmMocGx1Z2luUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBsdWdpblBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICB2LnBsdWdpblZlcnNpb24gPSBwbHVnaW5Qa2cudmVyc2lvblxuICB2Ll9yZXNvbHZlZCA9IHBsdWdpblBrZy5fcmVzb2x2ZWRcbiAgaWYgKHYuX3Jlc29sdmVkID09IHVuZGVmaW5lZCkge1xuICAgIHYuZWRpdGlvbiA9IGBDb21tZXJjaWFsYFxuICB9XG4gIGVsc2Uge1xuICAgIGlmICgtMSA9PSB2Ll9yZXNvbHZlZC5pbmRleE9mKCdjb21tdW5pdHknKSkge1xuICAgICAgdi5lZGl0aW9uID0gYENvbW1lcmNpYWxgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdi5lZGl0aW9uID0gYENvbW11bml0eWBcbiAgICB9XG4gIH1cbiAgdmFyIHdlYnBhY2tQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksJ25vZGVfbW9kdWxlcy93ZWJwYWNrJylcbiAgdmFyIHdlYnBhY2tQa2cgPSAoZnMuZXhpc3RzU3luYyh3ZWJwYWNrUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHdlYnBhY2tQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgdi53ZWJwYWNrVmVyc2lvbiA9IHdlYnBhY2tQa2cudmVyc2lvblxuICB2YXIgZXh0UGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCdub2RlX21vZHVsZXMvQHNlbmNoYS9leHQnKVxuICB2YXIgZXh0UGtnID0gKGZzLmV4aXN0c1N5bmMoZXh0UGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGV4dFBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICB2LmV4dFZlcnNpb24gPSBleHRQa2cuc2VuY2hhLnZlcnNpb25cbiAgdmFyIGNtZFBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSxgbm9kZV9tb2R1bGVzL0BzZW5jaGEvY21kYClcbiAgdmFyIGNtZFBrZyA9IChmcy5leGlzdHNTeW5jKGNtZFBhdGgrJy9wYWNrYWdlLmpzb24nKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjbWRQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgdi5jbWRWZXJzaW9uID0gY21kUGtnLnZlcnNpb25fZnVsbFxuICBpZiAodi5jbWRWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgIHZhciBjbWRQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksYG5vZGVfbW9kdWxlcy9Ac2VuY2hhLyR7cGx1Z2luTmFtZX0vbm9kZV9tb2R1bGVzL0BzZW5jaGEvY21kYClcbiAgICB2YXIgY21kUGtnID0gKGZzLmV4aXN0c1N5bmMoY21kUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNtZFBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICAgIHYuY21kVmVyc2lvbiA9IGNtZFBrZy52ZXJzaW9uX2Z1bGxcbiAgfVxuXG4gICBpZiAoZnJhbWV3b3JrTmFtZSAhPSB1bmRlZmluZWQgJiYgZnJhbWV3b3JrTmFtZSAhPSAnZXh0anMnKSB7XG4gICAgdmFyIGZyYW1ld29ya1BhdGggPSAnJ1xuICAgIGlmIChmcmFtZXdvcmtOYW1lID09ICdyZWFjdCcpIHtcbiAgICAgIGZyYW1ld29ya1BhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwnbm9kZV9tb2R1bGVzL3JlYWN0JylcbiAgICB9XG4gICAgaWYgKGZyYW1ld29ya05hbWUgPT0gJ2FuZ3VsYXInKSB7XG4gICAgICBmcmFtZXdvcmtQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksJ25vZGVfbW9kdWxlcy9AYW5ndWxhci9jb3JlJylcbiAgICB9XG4gICAgdmFyIGZyYW1ld29ya1BrZyA9IChmcy5leGlzdHNTeW5jKGZyYW1ld29ya1BhdGgrJy9wYWNrYWdlLmpzb24nKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmcmFtZXdvcmtQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgICB2LmZyYW1ld29ya1ZlcnNpb24gPSBmcmFtZXdvcmtQa2cudmVyc2lvblxuICAgIGlmICh2LmZyYW1ld29ya1ZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmcmFtZXdvcmtJbmZvID0gJywgJyArIGZyYW1ld29ya05hbWVcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmcmFtZXdvcmtJbmZvID0gJywgJyArIGZyYW1ld29ya05hbWUgKyAnIHYnICsgdi5mcmFtZXdvcmtWZXJzaW9uXG4gICAgfVxuICB9XG4gIHJldHVybiAnZXh0LXdlYnBhY2stcGx1Z2luIHYnICsgdi5wbHVnaW5WZXJzaW9uICsgJywgRXh0IEpTIHYnICsgdi5leHRWZXJzaW9uICsgJyAnICsgdi5lZGl0aW9uICsgJyBFZGl0aW9uLCBTZW5jaGEgQ21kIHYnICsgdi5jbWRWZXJzaW9uICsgJywgd2VicGFjayB2JyArIHYud2VicGFja1ZlcnNpb24gKyBmcmFtZXdvcmtJbmZvXG5cbn1cbmNhdGNoIChlKSB7XG4gIHJldHVybiAnZXh0LXdlYnBhY2stcGx1Z2luIHYnICsgdi5wbHVnaW5WZXJzaW9uICsgJywgRXh0IEpTIHYnICsgdi5leHRWZXJzaW9uICsgJyAnICsgdi5lZGl0aW9uICsgJyBFZGl0aW9uLCBTZW5jaGEgQ21kIHYnICsgdi5jbWRWZXJzaW9uICsgJywgd2VicGFjayB2JyArIHYud2VicGFja1ZlcnNpb24gKyBmcmFtZXdvcmtJbmZvXG59XG5cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gbG9nKGFwcCxtZXNzYWdlKSB7XG4gIHZhciBzID0gYXBwICsgbWVzc2FnZVxuICByZXF1aXJlKCdyZWFkbGluZScpLmN1cnNvclRvKHByb2Nlc3Muc3Rkb3V0LCAwKVxuICB0cnkge3Byb2Nlc3Muc3Rkb3V0LmNsZWFyTGluZSgpfWNhdGNoKGUpIHt9XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHMpO3Byb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBsb2doKGFwcCxtZXNzYWdlKSB7XG4gIHZhciBoID0gZmFsc2VcbiAgdmFyIHMgPSBhcHAgKyBtZXNzYWdlXG4gIGlmIChoID09IHRydWUpIHtcbiAgICByZXF1aXJlKCdyZWFkbGluZScpLmN1cnNvclRvKHByb2Nlc3Muc3Rkb3V0LCAwKVxuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzLnN0ZG91dC5jbGVhckxpbmUoKVxuICAgIH1cbiAgICBjYXRjaChlKSB7fVxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHMpXG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoJ1xcbicpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gbG9ndih2ZXJib3NlLCBzKSB7XG4gIGlmICh2ZXJib3NlID09ICd5ZXMnKSB7XG4gICAgcmVxdWlyZSgncmVhZGxpbmUnKS5jdXJzb3JUbyhwcm9jZXNzLnN0ZG91dCwgMClcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5zdGRvdXQuY2xlYXJMaW5lKClcbiAgICB9XG4gICAgY2F0Y2goZSkge31cbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgLXZlcmJvc2U6ICR7c31gKVxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKVxuICB9XG59XG5cbmZ1bmN0aW9uIF9nZXRWYWxpZGF0ZU9wdGlvbnMoKSB7XG4gIHJldHVybiB7XG4gICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgIFwiZnJhbWV3b3JrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidG9vbGtpdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRoZW1lXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiZW1pdFwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwic2NyaXB0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwicG9ydFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJpbnRlZ2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJwYWNrYWdlc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIiwgXCJhcnJheVwiXVxuICAgICAgfSxcbiAgICAgIFwicHJvZmlsZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgJ2RldmVsb3BtZW50JyBvciAncHJvZHVjdGlvbicgc3RyaW5nIHZhbHVlXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRyZWVzaGFrZVwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYnJvd3NlclwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwid2F0Y2hcIjoge1xuICAgICAgICBcImVycm9yTWVzc2FnZVwiOiBcInNob3VsZCBiZSAneWVzJyBvciAnbm8nIHN0cmluZyB2YWx1ZSAoTk9UIHRydWUgb3IgZmFsc2UpXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInZlcmJvc2VcIjoge1xuICAgICAgICBcImVycm9yTWVzc2FnZVwiOiBcInNob3VsZCBiZSAneWVzJyBvciAnbm8nIHN0cmluZyB2YWx1ZSAoTk9UIHRydWUgb3IgZmFsc2UpXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImluamVjdFwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW50ZWxsaXNoYWtlXCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgJ3llcycgb3IgJ25vJyBzdHJpbmcgdmFsdWUgKE5PVCB0cnVlIG9yIGZhbHNlKVwiLFxuICAgICAgICBcInR5cGVcIjogW1wic3RyaW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJjbWRvcHRzXCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgYSBzZW5jaGEgY21kIG9wdGlvbiBvciBhcmd1bWVudCBzdHJpbmdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiLCBcImFycmF5XCJdXG4gICAgICB9XG4gICAgfSxcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gIH07XG59XG5cblxuZnVuY3Rpb24gX2dldERlZmF1bHRPcHRpb25zKCkge1xuICByZXR1cm4ge1xuICAgIGZyYW1ld29yazogJ2V4dGpzJyxcbiAgICB0b29sa2l0OiAnbW9kZXJuJyxcbiAgICB0aGVtZTogJ3RoZW1lLW1hdGVyaWFsJyxcbiAgICBlbWl0OiAneWVzJyxcbiAgICBzY3JpcHQ6IG51bGwsXG4gICAgcG9ydDogMTk2MixcbiAgICBwYWNrYWdlczogW10sXG5cbiAgICBwcm9maWxlOiAnJyxcbiAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICB0cmVlc2hha2U6ICdubycsXG4gICAgYnJvd3NlcjogJ3llcycsXG4gICAgd2F0Y2g6ICd5ZXMnLFxuICAgIHZlcmJvc2U6ICdubycsXG4gICAgaW5qZWN0OiAneWVzJyxcbiAgICBpbnRlbGxpc2hha2U6ICd5ZXMnLFxuICAgIGNtZG9wdHM6ICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNtYXJ0Rmxvd1BpbmcocGFja2FnZUpzb25QYXRoLCBhcHBKc29uUGF0aCkge1xuICBjb25zdCB7IGV4ZWMgfSA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbiAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbiAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuXG4gIGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnLCAoZXJyUGFja2FnZSwgZGF0YVBhY2thZ2UpID0+IHtcbiAgICBpZiAoZXJyUGFja2FnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShkYXRhUGFja2FnZSk7XG5cbiAgICBmcy5yZWFkRmlsZShhcHBKc29uUGF0aCwgJ3V0ZjgnLCAoZXJyQXBwLCBkYXRhQXBwKSA9PiB7XG4gICAgICBpZiAoZXJyQXBwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwSnNvbiA9IEpTT04ucGFyc2UoZGF0YUFwcCk7XG4gICAgICBjb25zdCByZXF1aXJlc0FycmF5ID0gYXBwSnNvbi5yZXF1aXJlczsvLyBBc3N1bWluZyBhcHBKc29uLnJlcXVpcmVzIGlzIGFuIGFycmF5XG5cbiAgICAgIC8vIENvbnZlcnQgdGhlIGFycmF5IHRvIGEgc3RyaW5nXG4gICAgICBjb25zdCBtb2RpZmllZFN0cmluZyA9IHJlcXVpcmVzQXJyYXlbMF0ucmVwbGFjZSgvW1xcW1xcXSddKy9nLCAnJyk7XG5cbiAgICAgIGNvbnN0IGhvbWVEaXJlY3RvcnkgPSBwcm9jZXNzLmVudi5IT01FIHx8IHByb2Nlc3MuZW52LlVTRVJQUk9GSUxFO1xuXG4gICAgICAvLyBTcGVjaWZ5IHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIGhvbWUgZGlyZWN0b3J5IHRvIHlvdXIgZmlsZVxuICAgICAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9ICcubnBtcmMnO1xuXG4gICAgICAvLyBDb21iaW5lIHRoZSBob21lIGRpcmVjdG9yeSBhbmQgcmVsYXRpdmUgZmlsZSBwYXRoIHRvIGdldCB0aGUgZ2VuZXJhbGl6ZWQgZmlsZSBwYXRoXG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihob21lRGlyZWN0b3J5LCByZWxhdGl2ZUZpbGVQYXRoKTtcblxuICAgICAgZnMucmVhZEZpbGUoZmlsZVBhdGgsICd1dGY4JywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgcmVhZGluZyBmaWxlOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWdpc3RyeVJlZ2V4ID0gL0BzZW5jaGE6cmVnaXN0cnk9KC4rKS87XG5cbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgcmVnaXN0cnkgVVJMIHVzaW5nIHRoZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLm1hdGNoKHJlZ2lzdHJ5UmVnZXgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgbWF0Y2ggaXMgZm91bmRcbiAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICAgICAgY29uc3QgcmVnaXN0cnlVcmwgPSBtYXRjaFsxXTtcbiAgICAgICAgICAvLyBVc2UgbnBtLWNvbmZpZyB0byBzZXQgdGhlIHJlZ2lzdHJ5IHRlbXBvcmFyaWx5IGZvciB0aGUgY3VycmVudCBwcm9jZXNzXG4gICAgICAgICAgcHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19yZWdpc3RyeSA9IHJlZ2lzdHJ5VXJsO1xuXG4gICAgICAgICAgLy8gUnVuIHRoZSBucG0gd2hvYW1pIGNvbW1hbmRcbiAgICAgICAgICBleGVjKGBucG0gLS1yZWdpc3RyeSAke3JlZ2lzdHJ5VXJsfSB3aG9hbWlgLCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1c2VybmFtZSA9IGAke3N0ZG91dC50cmltKCkucmVwbGFjZSgnLi4nLCAnQCcpfWA7XG5cbiAgICAgICAgICAgIGxldCBhZGRpdGlvbmFsTGljZW5zZUluZm8gPSAnJztcbiAgICAgICAgICAgICAgbGV0IGxpY2Vuc2VkRmVhdHVyZSA9ICcnO1xuICAgICAgICAgICAgICBpZih1c2VybmFtZSE9bnVsbCl7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbExpY2Vuc2VJbmZvID0gJ1RoaXMgdmVyc2lvbiBvZiBTZW5jaGEgRXh0LWdlbiBpcyBsaWNlbnNlZCBjb21tZXJjaWFsbHknXG4gICAgICAgICAgICAgICAgbGljZW5zZWRGZWF0dXJlID0gJ0xFR0FMJ1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsTGljZW5zZUluZm8gPSAnVGhpcyB2ZXJzaW9uIG9mIFNlbmNoYSBFeHQtZ2VuIGlzIG5vdCBsaWNlbnNlZCBjb21tZXJjaWFsbHknXG4gICAgICAgICAgICAgICAgbGljZW5zZWRGZWF0dXJlICA9ICdVTkxJQ0VOU0VEJ1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdFR5cGUgPSBwcm9jZXNzLmVudi5ucG1fbGlmZWN5Y2xlX2V2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyZXZlbnQgPSAnYnVpbGQnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdFR5cGUgPT09ICdkZXYnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyZXZlbnQgPSBgbnBtIHN0YXJ0YDtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNjcmlwdFR5cGUgPT09ICdidWlsZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJldmVudCA9IGBucG0gcnVuIGJ1aWxkYDtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcmV2ZW50ID0gYG51bGxgO1xuICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGljZW5zZWluZm8gPSBgXCJsaWNlbnNlPUNvbW1lcmNpYWwsIGZyYW1ld29yaz1FWFRKUywgTGljZW5zZSBDb250ZW50IFRleHQ9U2VuY2hhIFJhcGlkRXh0SlMtSmF2YVNjcmlwdCBMaWJyYXJ5IENvcHlyaWdodCwgU2VuY2hhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gbGljZW5zaW5nQHNlbmNoYS5jb20gb3B0aW9uczpodHRwOi8vd3d3LnNlbmNoYS5jb20vbGljZW5zZSBsaWNlbnNlOiBodHRwOi8vd3d3LnNlbmNoYS5jb20vbGVnYWwvc2VuY2hhLXNvZnR3YXJlLWxpY2Vuc2UtYWdyZWVtZW50IENvbW1lcmNpYWwgTGljZW5zZS4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVNlbmNoYSBSYXBpZEV4dEpTIGlzIGxpY2Vuc2VkIGNvbW1lcmNpYWxseS4gU2VlIGh0dHA6Ly93d3cuc2VuY2hhLmNvbS9sZWdhbC9zZW5jaGEtc29mdHdhcmUtbGljZW5zZS1hZ3JlZW1lbnQgZm9yIGxpY2Vuc2UgdGVybXMuQmV0YSBMaWNlbnNlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIElmIHRoaXMgaXMgYSBCZXRhIHZlcnNpb24gLCB1c2UgaXMgcGVybWl0dGVkIGZvciBpbnRlcm5hbCBldmFsdWF0aW9uIGFuZCByZXZpZXcgcHVycG9zZXMgYW5kIG5vdCB1c2UgZm9yIHByb2R1Y3Rpb24gcHVycG9zZXMuIFNlZSBodHRwOi8vd3d3LnNlbmNoYS5jb20vbGVnYWwvc2VuY2hhLXNvZnR3YXJlLWxpY2Vuc2UtYWdyZWVtZW50IChCZXRhIExpY2Vuc2UpIGZvciBsaWNlbnNlIHRlcm1zLiAgVGhpcmQgUGFydHkgQ29udGVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVRoZSBmb2xsb3dpbmcgdGhpcmQgcGFydHkgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgd2l0aCBSYXBpZEV4dEpTIGFuZCBpcyBwcm92aWRlZCB1bmRlciBvdGhlciBsaWNlbnNlcyBhbmQvb3IgaGFzIHNvdXJjZSBhdmFpbGFibGUgZnJvbSBvdGhlciBsb2NhdGlvbnMuIExpYnJhcnk6IFlVSSAwLjYgKEJTRCBMaWNlbnNlZCkgZm9yIGRyYWctYW5kLWRyb3AgY29kZS4gTG9jYXRpb246IGh0dHA6Ly9kZXZlbG9wZXIueWFob28uY29tL3l1aSBMaWNlbnNlOiBodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95dWkvbGljZW5zZS5odG1sIChCU0QgMy1DbGF1c2UgTGljZW5zZSkgTGlicmFyeTogSlNPTiBwYXJzZXIgTG9jYXRpb246IGh0dHA6Ly93d3cuSlNPTi5vcmcvanMuaHRtbCBMaWNlbnNlOiBodHRwOi8vd3d3Lmpzb24ub3JnL2xpY2Vuc2UuaHRtbCAoTUlUIExpY2Vuc2UpIExpYnJhcnk6IGZsZXhpYmxlLWpzLWZvcm1hdHRpbmcgTG9jYXRpb246IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9mbGV4aWJsZS1qcy1mb3JtYXR0aW5nLyBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCAoTUlUIExpY2Vuc2UpIExpYnJhcnk6IHNwYXJrbGluZS5qcyBMb2NhdGlvbjogaHR0cDovL29tbmlwb3RlbnQubmV0L2pxdWVyeS5zcGFya2xpbmUgTGljZW5zZSAgaHR0cDovL29tbmlwb3RlbnQubmV0L2pxdWVyeS5zcGFya2xpbmUgKEJTRCAzLUNsYXVzZSBMaWNlbnNlKSBMaWJyYXJ5OiBEZWZ0SlMgTG9jYXRpb246IGh0dHA6Ly9kZWZ0anMub3JnLyBMaWNlbnNlOiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCAoTUlUIExpY2Vuc2UpIExpYnJhcnk6IE9wZW4tU2FucyBMb2NhdGlvbjogaHR0cDovL3d3dy5mb250c3F1aXJyZWwuY29tL2ZvbnRzL29wZW4tc2FucyBMaWNlbnNlOiAgaHR0cDovL3d3dy5mb250c3F1aXJyZWwuY29tL2ZvbnRzL29wZW4tc2FucyAoQXBhY2hlIDIuMCBMaWNlbnNlKSBFeGFtcGxlczogTGlicmFyeTogU2lsayBJY29ucyBMb2NhdGlvbjogaHR0cDovL3d3dy5mYW1mYW1mYW0uY29tL2xhYi9pY29ucy9zaWxrLyBMaWNlbnNlOiBodHRwOi8vd3d3LmZhbWZhbWZhbS5jb20vbGFiL2ljb25zL3NpbGsvIChDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uIDIuNSBMaWNlbnNlKSBMaWJyYXJ5OiBGb250IEF3ZXNvbWUgQ1NTIExvY2F0aW9uOiBodHRwOi8vZm9udGF3ZXNvbWUuaW8vIExpY2Vuc2U6IGh0dHA6Ly9mb250YXdlc29tZS5pby8zLjIuMS9saWNlbnNlLyAoTUlUKSBMaWJyYXJ5OiBNYXRlcmlhbCBEZXNpZ24gSWNvbnMgTG9jYXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbWF0ZXJpYWwtZGVzaWduLWljb25zIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbWF0ZXJpYWwtZGVzaWduLWljb25zL2Jsb2IvbWFzdGVyL0xJQ0VOU0UgKEFwYWNoZSkgVEhJUyBTT0ZUV0FSRSBJUyBESVNUUklCVVRFRCAnQVMtSVMnIFdJVEhPVVQgQU5ZIFdBUlJBTlRJRVMsIENPTkRJVElPTlMgQU5EIFJFUFJFU0VOVEFUSU9OUyBXSEVUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgTUVSQ0hBTlRBQkxFIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBEVVJBQklMSVRZLCBOT04tSU5GUklOR0VNRU5ULCBQRVJGT1JNQU5DRSBBTkQgVEhPU0UgQVJJU0lORyBCWSBTVEFUVVRFIE9SIEZST00gQ1VTVE9NIE9SIFVTQUdFIE9GIFRSQURFIE9SIENPVVJTRSBPRiBERUFMSU5HLiAsIG1lc3NhZ2U9VGhpcyB2ZXJzaW9uIG9mIFNlbmNoYSBSYXBpZEV4dEpTIGlzIGxpY2Vuc2VkIGNvbW1lcmNpYWxseSBcImA7XG4gICAgICAgICAgICBjb25zdCBqYXJQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3Jlc291cmNlcycsICd1dGlscy5qYXInKTtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzVXNlZCA9IGBleHQtZ2VuLCAke21vZGlmaWVkU3RyaW5nfWA7XG5cbiAgICAgICAgICAgIGNvbnN0IGVuY3J5cHRlZExpY2Vuc2UgPSBidG9hKGxpY2Vuc2VpbmZvKTtcblxuICAgICAgICAgICAgICBjb25zdCBjb21tYW5kID0gYGphdmEgLWphciAke2phclBhdGh9IGAgK1xuICAgICAgICAgICAgICAgICBgLXByb2R1Y3QgZXh0LWdlbiAtcHJvZHVjdFZlcnNpb24gJHtwYWNrYWdlSnNvbi52ZXJzaW9ufSBgICtcbiAgICAgICAgICAgICAgICAgYC1ldmVudFR5cGUgTEVHQUwgLXRyaWdnZXIgJHt0cmlnZ2VyZXZlbnR9IGAgK1xuICAgICAgICAgICAgICAgICBgLWxpY2Vuc2VkVG8gJHt1c2VybmFtZX0gYCArXG4gICAgICAgICAgICAgICAgIGAtY3VzdG9tMiBpc1ZhbGlkPXRydWUgLWN1c3RvbTMgaXNUcmlhbD1mYWxzZSAtY3VzdG9tNCBpc0V4cGlyZWQ9ZmFsc2UgLW1vZGUgcmFwaWQgYCArXG4gICAgICAgICAgICAgICAgIGAtdmFsaWRMaWNlbnNlSW5mbyAke2VuY3J5cHRlZExpY2Vuc2V9IC1mZWF0dXJlc1VzZWQgJHtmZWF0dXJlc1VzZWR9IC1saWNlbnNlZEZlYXR1cmUgJHtsaWNlbnNlZEZlYXR1cmV9IC1waXJhY3lMaWNlbnNlSW5mbyAke2FkZGl0aW9uYWxMaWNlbnNlSW5mb31gO1xuXG4gICAgICAgICAgICBleGVjKGNvbW1hbmQsIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzdGRlcnIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxDQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsQ0FBQWpCLENB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInJldHVybiIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsImNhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsIl9jb25zdHJ1Y3RvciIsImluaXRpYWxPcHRpb25zIiwiZnMiLCJyZXF1aXJlIiwidmFycyIsIm9wdGlvbnMiLCJmcmFtZXdvcmsiLCJwbHVnaW5FcnJvcnMiLCJyZXN1bHQiLCJ0cmVlc2hha2UiLCJ2ZXJib3NlIiwidmFsaWRhdGVPcHRpb25zIiwiX2dldFZhbGlkYXRlT3B0aW9ucyIsInJjIiwiZXhpc3RzU3luYyIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlU3luYyIsIl9nZXREZWZhdWx0T3B0aW9ucyIsIl9nZXREZWZhdWx0VmFycyIsInBsdWdpbk5hbWUiLCJhcHAiLCJfZ2V0QXBwIiwidGVzdGluZyIsImxvZ3YiLCJlbnZpcm9ubWVudCIsImNtZG9wdHMiLCJpbmNsdWRlcyIsInByb2R1Y3Rpb24iLCJicm93c2VyIiwid2F0Y2giLCJidWlsZEVudmlyb25tZW50IiwibG9nIiwiX2dldFZlcnNpb25zIiwiaW50ZWxsaXNoYWtlIiwiYnVpbGRzdGVwIiwiX3RvUHJvZCIsImNvbmZpZ09iaiIsInRvU3RyaW5nIiwiX3RoaXNDb21waWxhdGlvbiIsImNvbXBpbGVyIiwiY29tcGlsYXRpb24iLCJzY3JpcHQiLCJydW5TY3JpcHQiLCJfY29tcGlsYXRpb24iLCJleHRDb21wb25lbnRzIiwiX2dldEFsbENvbXBvbmVudHMiLCJob29rcyIsInN1Y2NlZWRNb2R1bGUiLCJ0YXAiLCJtb2R1bGUiLCJyZXNvdXJjZSIsIm1hdGNoIiwiX3NvdXJjZSIsIl92YWx1ZSIsInRvTG93ZXJDYXNlIiwiZGVwcyIsIl9leHRyYWN0RnJvbVNvdXJjZSIsImNvbnNvbGUiLCJmaW5pc2hNb2R1bGVzIiwibW9kdWxlcyIsIl93cml0ZUZpbGVzVG9Qcm9kRm9sZGVyIiwiaW5qZWN0IiwiaHRtbFdlYnBhY2tQbHVnaW5CZWZvcmVIdG1sR2VuZXJhdGlvbiIsImRhdGEiLCJwYXRoIiwianNQYXRoIiwiam9pbiIsImV4dFBhdGgiLCJjc3NQYXRoIiwiYXNzZXRzIiwianMiLCJ1bnNoaWZ0IiwiY3NzIiwiX2FmdGVyQ29tcGlsZSIsIl9lbWl0IiwiX3giLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfZW1pdDIiLCJfY2FsbGVlIiwiY2FsbGJhY2siLCJlbWl0Iiwib3V0cHV0UGF0aCIsImNvbW1hbmQiLCJwYXJtcyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJkZXZTZXJ2ZXIiLCJjb250ZW50QmFzZSIsIl9wcmVwYXJlRm9yQnVpbGQiLCJyZWJ1aWxkIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJwcm9maWxlIiwiZWxlbWVudCIsInNwbGljZSIsImluZGV4T2YiLCJ3YXRjaFN0YXJ0ZWQiLCJfYnVpbGRFeHRCdW5kbGUiLCJ0MCIsIl9kb25lIiwic3RhdHMiLCJlcnJvcnMiLCJjaGFsayIsInJlZCIsIl90b0RldiIsImJyb3dzZXJDb3VudCIsInVybCIsInBvcnQiLCJvcG4iLCJvdXRwdXQiLCJwYWNrYWdlcyIsInRvb2xraXQiLCJ0aGVtZSIsInJpbXJhZiIsIm1rZGlycCIsImZzeCIsImZpcnN0VGltZSIsInN5bmMiLCJidWlsZFhNTCIsImNyZWF0ZUFwcEpzb24iLCJjcmVhdGVXb3Jrc3BhY2VKc29uIiwiY3JlYXRlSlNET01FbnZpcm9ubWVudCIsIndyaXRlRmlsZVN5bmMiLCJwcm9jZXNzIiwiY3dkIiwiZnJvbVBhdGgiLCJ0b1BhdGgiLCJjb3B5U3luYyIsInJlcGxhY2UiLCJmcm9tUmVzb3VyY2VzIiwidG9SZXNvdXJjZXMiLCJpbmRleCIsIm1hbmlmZXN0IiwiYnVuZGxlRGlyIiwidHJpbSIsInNlbmNoYSIsIm9uQnVpbGREb25lIiwib3B0cyIsInNpbGVudCIsInN0ZGlvIiwiZW5jb2RpbmciLCJfZXhlY3V0ZUFzeW5jIiwicmVhc29uIiwiX3g2IiwiX3g3IiwiX3g4IiwiX3g5IiwiX3gxMCIsIl94MTEiLCJfeDEyIiwiX2V4ZWN1dGVBc3luYzIiLCJfY2FsbGVlMiIsIkRFRkFVTFRfU1VCU1RSUyIsInN1YnN0cmluZ3MiLCJjcm9zc1NwYXduIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwic3RyaW5naWZ5IiwiY2hpbGQiLCJvbiIsImNvZGUiLCJzaWduYWwiLCJzdGRvdXQiLCJzdHIiLCJzb21lIiwic3RkZXJyIiwic3RySmF2YU9wdHMiLCJzY3JpcHRQYXRoIiwiY2hpbGRQcm9jZXNzIiwiaW52b2tlZCIsImZvcmsiLCJleGVjQXJndiIsIl90b1h0eXBlIiwicHJlZml4IiwicGxhdGZvcm0iLCJncmVlbiIsImZyYW1ld29ya05hbWUiLCJmcmFtZXdvcmtJbmZvIiwicGx1Z2luVmVyc2lvbiIsImV4dFZlcnNpb24iLCJlZGl0aW9uIiwiY21kVmVyc2lvbiIsIndlYnBhY2tWZXJzaW9uIiwicGx1Z2luUGF0aCIsInBsdWdpblBrZyIsInZlcnNpb24iLCJfcmVzb2x2ZWQiLCJ3ZWJwYWNrUGF0aCIsIndlYnBhY2tQa2ciLCJleHRQa2ciLCJjbWRQYXRoIiwiY21kUGtnIiwidmVyc2lvbl9mdWxsIiwiZnJhbWV3b3JrUGF0aCIsImZyYW1ld29ya1BrZyIsImZyYW1ld29ya1ZlcnNpb24iLCJtZXNzYWdlIiwiY3Vyc29yVG8iLCJjbGVhckxpbmUiLCJ3cml0ZSIsImxvZ2giLCJzbWFydEZsb3dQaW5nIiwicGFja2FnZUpzb25QYXRoIiwiYXBwSnNvblBhdGgiLCJleGVjIiwicmVhZEZpbGUiLCJlcnJQYWNrYWdlIiwiZGF0YVBhY2thZ2UiLCJwYWNrYWdlSnNvbiIsImVyckFwcCIsImRhdGFBcHAiLCJhcHBKc29uIiwicmVxdWlyZXNBcnJheSIsInJlcXVpcmVzIiwibW9kaWZpZWRTdHJpbmciLCJob21lRGlyZWN0b3J5IiwiZW52IiwiSE9NRSIsIlVTRVJQUk9GSUxFIiwicmVsYXRpdmVGaWxlUGF0aCIsImZpbGVQYXRoIiwicmVnaXN0cnlSZWdleCIsInJlZ2lzdHJ5VXJsIiwibnBtX2NvbmZpZ19yZWdpc3RyeSIsInVzZXJuYW1lIiwiYWRkaXRpb25hbExpY2Vuc2VJbmZvIiwibGljZW5zZWRGZWF0dXJlIiwic2NyaXB0VHlwZSIsIm5wbV9saWZlY3ljbGVfZXZlbnQiLCJ0cmlnZ2VyZXZlbnQiLCJsaWNlbnNlaW5mbyIsImphclBhdGgiLCJfX2Rpcm5hbWUiLCJmZWF0dXJlc1VzZWQiLCJlbmNyeXB0ZWRMaWNlbnNlIiwiYnRvYSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW5VdGlsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2NvbnN0cnVjdG9yKGluaXRpYWxPcHRpb25zKSB7XG4gIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKVxuICB2YXIgdmFycyA9IHt9XG4gIHZhciBvcHRpb25zID0ge31cbiAgdHJ5IHtcbiAgICBpZiAoaW5pdGlhbE9wdGlvbnMuZnJhbWV3b3JrID09IHVuZGVmaW5lZCkge1xuICAgICAgdmFycy5wbHVnaW5FcnJvcnMgPSBbXVxuICAgICAgdmFycy5wbHVnaW5FcnJvcnMucHVzaCgnd2VicGFjayBjb25maWc6IGZyYW1ld29yayBwYXJhbWV0ZXIgb24gZXh0LXdlYnBhY2stcGx1Z2luIGlzIG5vdCBkZWZpbmVkIC0gdmFsdWVzOiByZWFjdCwgYW5ndWxhciwgZXh0anMsIHdlYi1jb21wb25lbnRzJylcbiAgICAgIHZhciByZXN1bHQgPSB7IHZhcnM6IHZhcnMgfTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHZhciBmcmFtZXdvcmsgPSBpbml0aWFsT3B0aW9ucy5mcmFtZXdvcmtcbiAgICB2YXIgdHJlZXNoYWtlID0gaW5pdGlhbE9wdGlvbnMudHJlZXNoYWtlXG4gICAgdmFyIHZlcmJvc2UgPSBpbml0aWFsT3B0aW9ucy52ZXJib3NlXG5cbiAgICBjb25zdCB2YWxpZGF0ZU9wdGlvbnMgPSByZXF1aXJlKCdzY2hlbWEtdXRpbHMnKVxuICAgIHZhbGlkYXRlT3B0aW9ucyhfZ2V0VmFsaWRhdGVPcHRpb25zKCksIGluaXRpYWxPcHRpb25zLCAnJylcblxuICAgIGNvbnN0IHJjID0gKGZzLmV4aXN0c1N5bmMoYC5leHQtJHtmcmFtZXdvcmt9cmNgKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhgLmV4dC0ke2ZyYW1ld29ya31yY2AsICd1dGYtOCcpKSB8fCB7fSlcbiAgICBvcHRpb25zID0geyAuLi5fZ2V0RGVmYXVsdE9wdGlvbnMoKSwgLi4uaW5pdGlhbE9wdGlvbnMsIC4uLnJjIH1cblxuICAgIHZhcnMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0RGVmYXVsdFZhcnMoKVxuICAgIHZhcnMucGx1Z2luTmFtZSA9ICdleHQtd2VicGFjay1wbHVnaW4nXG4gICAgdmFycy5hcHAgPSBfZ2V0QXBwKClcbiAgICB2YXIgcGx1Z2luTmFtZSA9IHZhcnMucGx1Z2luTmFtZVxuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhcnMudGVzdGluZyA9IGZhbHNlXG5cbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfY29uc3RydWN0b3InKVxuICAgIGxvZ3YodmVyYm9zZSwgYHBsdWdpbk5hbWUgLSAke3BsdWdpbk5hbWV9YClcbiAgICBsb2d2KHZlcmJvc2UsIGBhcHAgLSAke2FwcH1gKVxuXG4gICAgaWYgKG9wdGlvbnMuZW52aXJvbm1lbnQgPT0gJ3Byb2R1Y3Rpb24nIHx8XG4gICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS1wcm9kdWN0aW9uJykgfHxcbiAgICAgICAgb3B0aW9ucy5jbWRvcHRzLmluY2x1ZGVzKCctcHInKSB8fFxuICAgICAgICBvcHRpb25zLmNtZG9wdHMuaW5jbHVkZXMoJy0tZW52aXJvbm1lbnQ9cHJvZHVjdGlvbicpIHx8XG4gICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLWU9cHJvZHVjdGlvbicpXG4gICAgICApIHtcbiAgICAgIHZhcnMucHJvZHVjdGlvbiA9IHRydWU7XG4gICAgICBvcHRpb25zLmJyb3dzZXIgPSAnbm8nO1xuICAgICAgb3B0aW9ucy53YXRjaCA9ICdubyc7XG4gICAgICBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPSAncHJvZHVjdGlvbic7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmNtZG9wdHMgJiYgKG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS10ZXN0aW5nJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLXRlJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLS1lbnZpcm9ubWVudD10ZXN0aW5nJykgfHxcbiAgICAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cy5pbmNsdWRlcygnLWU9dGVzdGluZycpKVxuICAgICkge1xuICAgICAgdmFycy5wcm9kdWN0aW9uID0gZmFsc2U7XG4gICAgICB2YXJzLnRlc3RpbmcgPSB0cnVlO1xuICAgICAgb3B0aW9ucy5icm93c2VyID0gJ25vJztcbiAgICAgIG9wdGlvbnMud2F0Y2ggPSAnbm8nO1xuICAgICAgb3B0aW9ucy5idWlsZEVudmlyb25tZW50ID0gJ3Rlc3RpbmcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPSAnZGV2ZWxvcG1lbnQnO1xuICAgICAgdmFycy5wcm9kdWN0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgbG9nKGFwcCwgX2dldFZlcnNpb25zKHBsdWdpbk5hbWUsIGZyYW1ld29yaykpXG5cbiAgICAvL21qZyBhZGRlZCBmb3IgYW5ndWxhciBjbGkgYnVpbGRcbiAgICBpZiAoZnJhbWV3b3JrID09ICdhbmd1bGFyJyAmJlxuICAgICAgICBvcHRpb25zLmludGVsbGlzaGFrZSA9PSAnbm8nICYmXG4gICAgICAgIHZhcnMucHJvZHVjdGlvbiA9PSB0cnVlXG4gICAgICAgICYmIHRyZWVzaGFrZSA9PSAneWVzJykge1xuICAgICAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAxJztcbiAgICAgICAgICAgIGxvZyhhcHAsICdTdGFydGluZyBwcm9kdWN0aW9uIGJ1aWxkIGZvciAnICsgZnJhbWV3b3JrKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChmcmFtZXdvcmsgPT0gJ3JlYWN0JyB8fCBmcmFtZXdvcmsgPT0gJ2V4dGpzJyB8fCBmcmFtZXdvcmsgPT0gJ3dlYi1jb21wb25lbnRzJykge1xuICAgICAgaWYgKHZhcnMucHJvZHVjdGlvbiA9PSB0cnVlKSB7XG4gICAgICAgIHZhcnMuYnVpbGRzdGVwID0gJzEgb2YgMSdcbiAgICAgICAgbG9nKGFwcCwgJ1N0YXJ0aW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICcgKyBmcmFtZXdvcmspXG4gICAgICB9XG4gICAgICBlbHNlIGlmKHZhcnMudGVzdGluZyA9PSB0cnVlKXtcbiAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAxJ1xuICAgICAgICBsb2coYXBwLCAnU3RhcnRpbmcgdGVzdGluZyBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXJzLmJ1aWxkc3RlcCA9ICcxIG9mIDEnXG4gICAgICAgIGxvZyhhcHAsICdTdGFydGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodmFycy5wcm9kdWN0aW9uID09IHRydWUpIHtcbiAgICAgIGlmICh0cmVlc2hha2UgPT0gJ3llcycpIHtcbiAgICAgICAgdmFycy5idWlsZHN0ZXAgPSAnMSBvZiAyJ1xuICAgICAgICBsb2coYXBwLCAnU3RhcnRpbmcgcHJvZHVjdGlvbiBidWlsZCBmb3IgJyArIGZyYW1ld29yayArICcgLSAnICsgdmFycy5idWlsZHN0ZXApXG4gICAgICAgIHJlcXVpcmUoYC4vJHtmcmFtZXdvcmt9VXRpbGApLl90b1Byb2QodmFycywgb3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXJzLmJ1aWxkc3RlcCA9ICcyIG9mIDInXG4gICAgICAgIGxvZyhhcHAsICdDb250aW51aW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICcgKyBmcmFtZXdvcmsgKyAnIC0gJyArIHZhcnMuYnVpbGRzdGVwKVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhcnMuYnVpbGRzdGVwID0gJzEgb2YgMSdcbiAgICAgIGxvZyhhcHAsICdTdGFydGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJyArIGZyYW1ld29yaylcbiAgICB9XG4gICAgbG9ndih2ZXJib3NlLCAnQnVpbGRpbmcgZm9yICcgKyBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgKyAnLCAnICsgJ3RyZWVzaGFrZSBpcyAnICsgb3B0aW9ucy50cmVlc2hha2UrICcsICcgKyAnaW50ZWxsaXNoYWtlIGlzICcgKyBvcHRpb25zLmludGVsbGlzaGFrZSlcblxuICAgIHZhciBjb25maWdPYmogPSB7IHZhcnM6IHZhcnMsIG9wdGlvbnM6IG9wdGlvbnMgfTtcbiAgICByZXR1cm4gY29uZmlnT2JqO1xuICB9XG4gIGNhdGNoIChlKSB7XG4gICAgdGhyb3cgJ19jb25zdHJ1Y3RvcjogJyArIGUudG9TdHJpbmcoKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF90aGlzQ29tcGlsYXRpb24oY29tcGlsZXIsIGNvbXBpbGF0aW9uLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFwcCA9IHZhcnMuYXBwXG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfdGhpc0NvbXBpbGF0aW9uJylcbiAgICBsb2d2KHZlcmJvc2UsIGBvcHRpb25zLnNjcmlwdDogJHtvcHRpb25zLnNjcmlwdCB9YClcbiAgICBsb2d2KHZlcmJvc2UsIGBidWlsZHN0ZXA6ICR7dmFycy5idWlsZHN0ZXB9YClcblxuICAgIGlmICh2YXJzLmJ1aWxkc3RlcCA9PT0gJzEgb2YgMScgfHwgdmFycy5idWlsZHN0ZXAgPT09ICcxIG9mIDInKSB7XG4gICAgICBpZiAob3B0aW9ucy5zY3JpcHQgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuc2NyaXB0ICE9IG51bGwgJiYgb3B0aW9ucy5zY3JpcHQgIT0gJycpIHtcbiAgICAgICAgbG9nKGFwcCwgYFN0YXJ0ZWQgcnVubmluZyAke29wdGlvbnMuc2NyaXB0fWApXG4gICAgICAgIHJ1blNjcmlwdChvcHRpb25zLnNjcmlwdCwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nKGFwcCwgYEZpbmlzaGVkIHJ1bm5pbmcgJHtvcHRpb25zLnNjcmlwdH1gKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHRocm93ICdfdGhpc0NvbXBpbGF0aW9uOiAnICsgZS50b1N0cmluZygpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2NvbXBpbGF0aW9uKGNvbXBpbGVyLCBjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucykge1xuICB0cnkge1xuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhciB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlXG4gICAgdmFyIGZyYW1ld29yayA9IG9wdGlvbnMuZnJhbWV3b3JrXG4gICAgbG9ndih2ZXJib3NlLCAnRlVOQ1RJT04gX2NvbXBpbGF0aW9uJylcblxuICAgIGlmIChmcmFtZXdvcmsgIT0gJ2V4dGpzJykge1xuICAgICAgaWYgKG9wdGlvbnMudHJlZXNoYWtlID09PSAneWVzJyAmJiBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnQgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgZXh0Q29tcG9uZW50cyA9IFtdO1xuXG4gICAgICAgIC8vbWpnIGZvciAxIHN0ZXAgYnVpbGRcbiAgICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnICYmIGZyYW1ld29yayA9PT0gJ2FuZ3VsYXInICYmIG9wdGlvbnMuaW50ZWxsaXNoYWtlID09ICdubycpIHtcbiAgICAgICAgICAgIGV4dENvbXBvbmVudHMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0QWxsQ29tcG9uZW50cyh2YXJzLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YXJzLmJ1aWxkc3RlcCA9PSAnMSBvZiAyJyB8fCAodmFycy5idWlsZHN0ZXAgPT0gJzEgb2YgMScgJiYgZnJhbWV3b3JrID09PSAnd2ViLWNvbXBvbmVudHMnKSkge1xuICAgICAgICAgIGV4dENvbXBvbmVudHMgPSByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fZ2V0QWxsQ29tcG9uZW50cyh2YXJzLCBvcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLnN1Y2NlZWRNb2R1bGUudGFwKGBleHQtc3VjY2VlZC1tb2R1bGVgLCBtb2R1bGUgPT4ge1xuICAgICAgICAgIGlmIChtb2R1bGUucmVzb3VyY2UgJiYgIW1vZHVsZS5yZXNvdXJjZS5tYXRjaCgvbm9kZV9tb2R1bGVzLykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vZHVsZS5yZXNvdXJjZS5tYXRjaCgvXFwuaHRtbCQvKSAhPSBudWxsXG4gICAgICAgICAgICAgICAgJiYgbW9kdWxlLl9zb3VyY2UuX3ZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2RvY3R5cGUgaHRtbCcpID09IGZhbHNlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcnMuZGVwcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih2YXJzLmRlcHMgfHwgW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWlyZShgLi8ke2ZyYW1ld29ya31VdGlsYCkuX2V4dHJhY3RGcm9tU291cmNlKG1vZHVsZSwgb3B0aW9ucywgY29tcGlsYXRpb24sIGV4dENvbXBvbmVudHMpXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhcnMuZGVwcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih2YXJzLmRlcHMgfHwgW10pLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVxdWlyZShgLi8ke2ZyYW1ld29ya31VdGlsYCkuX2V4dHJhY3RGcm9tU291cmNlKG1vZHVsZSwgb3B0aW9ucywgY29tcGlsYXRpb24sIGV4dENvbXBvbmVudHMpXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDInKSB7XG4gICAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLmZpbmlzaE1vZHVsZXMudGFwKGBleHQtZmluaXNoLW1vZHVsZXNgLCBtb2R1bGVzID0+IHtcbiAgICAgICAgICByZXF1aXJlKGAuLyR7ZnJhbWV3b3JrfVV0aWxgKS5fd3JpdGVGaWxlc1RvUHJvZEZvbGRlcih2YXJzLCBvcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnIHx8IHZhcnMuYnVpbGRzdGVwID09ICcyIG9mIDInKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmluamVjdCA9PT0gJ3llcycpIHtcbiAgICAgICAgICBpZihjb21waWxhdGlvbi5ob29rcy5odG1sV2VicGFja1BsdWdpbkJlZm9yZUh0bWxHZW5lcmF0aW9uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29tcGlsYXRpb24uaG9va3MuaHRtbFdlYnBhY2tQbHVnaW5CZWZvcmVIdG1sR2VuZXJhdGlvbi50YXAoYGV4dC1odG1sLWdlbmVyYXRpb25gLChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJylcbiAgICAgICAgICAgICAgdmFyIGpzUGF0aCA9IHBhdGguam9pbih2YXJzLmV4dFBhdGgsICdleHQuanMnKVxuICAgICAgICAgICAgICB2YXIgY3NzUGF0aCA9IHBhdGguam9pbih2YXJzLmV4dFBhdGgsICdleHQuY3NzJylcbiAgICAgICAgICAgICAgLy92YXIganNQYXRoID0gdmFycy5leHRQYXRoICsgJy8nICsgICdleHQuanMnO1xuICAgICAgICAgICAgICAvL3ZhciBjc3NQYXRoID0gdmFycy5leHRQYXRoICsgJy8nICsgJ2V4dC5jc3MnO1xuICAgICAgICAgICAgICBkYXRhLmFzc2V0cy5qcy51bnNoaWZ0KGpzUGF0aClcbiAgICAgICAgICAgICAgZGF0YS5hc3NldHMuY3NzLnVuc2hpZnQoY3NzUGF0aClcbiAgICAgICAgICAgICAgbG9nKGFwcCwgYEFkZGluZyAke2pzUGF0aH0gYW5kICR7Y3NzUGF0aH0gdG8gaW5kZXguaHRtbGApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYXRjaChlKSB7XG4gICAgdGhyb3cgJ19jb21waWxhdGlvbjogJyArIGUudG9TdHJpbmcoKVxuLy8gICAgbG9ndihvcHRpb25zLnZlcmJvc2UsZSlcbi8vICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKCdfY29tcGlsYXRpb246ICcgKyBlKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9hZnRlckNvbXBpbGUoY29tcGlsZXIsIGNvbXBpbGF0aW9uLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFwcCA9IHZhcnMuYXBwXG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfYWZ0ZXJDb21waWxlJylcbiAgICBpZiAoZnJhbWV3b3JrID09ICdleHRqcycpIHtcbiAgICAgIHJlcXVpcmUoYC4vZXh0anNVdGlsYCkuX2FmdGVyQ29tcGlsZShjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucylcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBsb2d2KHZlcmJvc2UsICdGVU5DVElPTiBfYWZ0ZXJDb21waWxlIG5vdCBydW4nKVxuICAgIH1cbiAgfVxuICBjYXRjaChlKSB7XG4gICAgdGhyb3cgJ19hZnRlckNvbXBpbGU6ICcgKyBlLnRvU3RyaW5nKClcbiAgfVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfZW1pdChjb21waWxlciwgY29tcGlsYXRpb24sIHZhcnMsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuICAgIHZhciBhcHAgPSB2YXJzLmFwcFxuICAgIHZhciB2ZXJib3NlID0gb3B0aW9ucy52ZXJib3NlXG4gICAgdmFyIGVtaXQgPSBvcHRpb25zLmVtaXRcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICB2YXJzLmNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9lbWl0JylcbiAgICBpZiAoZW1pdCA9PSAneWVzJykge1xuICAgICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDEnIHx8IHZhcnMuYnVpbGRzdGVwID09ICcxIG9mIDInKSB7XG4gICAgICAgIGxldCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKGNvbXBpbGVyLm91dHB1dFBhdGgsdmFycy5leHRQYXRoKVxuICAgICAgICBpZiAoY29tcGlsZXIub3V0cHV0UGF0aCA9PT0gJy8nICYmIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgb3V0cHV0UGF0aCA9IHBhdGguam9pbihjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5jb250ZW50QmFzZSwgb3V0cHV0UGF0aClcbiAgICAgICAgfVxuICAgICAgICBsb2d2KHZlcmJvc2UsJ291dHB1dFBhdGg6ICcgKyBvdXRwdXRQYXRoKVxuICAgICAgICBsb2d2KHZlcmJvc2UsJ2ZyYW1ld29yazogJyArIGZyYW1ld29yaylcbiAgICAgICAgaWYgKGZyYW1ld29yayAhPSAnZXh0anMnKSB7XG4gICAgICAgICAgX3ByZXBhcmVGb3JCdWlsZChhcHAsIHZhcnMsIG9wdGlvbnMsIG91dHB1dFBhdGgsIGNvbXBpbGF0aW9uKVxuICAgICAgICB9XG4gICAgICAgIHZhciBjb21tYW5kID0gJydcbiAgICAgICAgaWYgKG9wdGlvbnMud2F0Y2ggPT0gJ3llcycgJiYgdmFycy5wcm9kdWN0aW9uID09IGZhbHNlKVxuICAgICAgICAgIHtjb21tYW5kID0gJ3dhdGNoJ31cbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtjb21tYW5kID0gJ2J1aWxkJ31cbiAgICAgICAgaWYgKHZhcnMucmVidWlsZCA9PSB0cnVlKSB7XG4gICAgICAgICAgdmFyIHBhcm1zID0gW11cbiAgICAgICAgICBpZighQXJyYXkuaXNBcnJheShvcHRpb25zLmNtZG9wdHMpKXtcbiAgICAgICAgICAgIG9wdGlvbnMuY21kb3B0cyA9IG9wdGlvbnMuY21kb3B0cy5zcGxpdCgnICcpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRpb25zLnByb2ZpbGUgPT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMucHJvZmlsZSA9PSAnJyB8fCBvcHRpb25zLnByb2ZpbGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGNvbW1hbmQgPT0gJ2J1aWxkJylcbiAgICAgICAgICAgICAgeyBwYXJtcyA9IFsnYXBwJywgY29tbWFuZCwgb3B0aW9ucy5idWlsZEVudmlyb25tZW50XSB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHsgcGFybXMgPSBbJ2FwcCcsIGNvbW1hbmQsICctLXdlYi1zZXJ2ZXInLCAnZmFsc2UnLCBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnRdIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCA9PSAnYnVpbGQnKVxuICAgICAgICAgICAgICB7cGFybXMgPSBbJ2FwcCcsIGNvbW1hbmQsIG9wdGlvbnMucHJvZmlsZSwgb3B0aW9ucy5idWlsZEVudmlyb25tZW50XX1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAge3Bhcm1zID0gWydhcHAnLCBjb21tYW5kLCAnLS13ZWItc2VydmVyJywgJ2ZhbHNlJywgb3B0aW9ucy5wcm9maWxlLCBvcHRpb25zLmJ1aWxkRW52aXJvbm1lbnRdfVxuICAgICAgICAgIH1cbiAgICAgICAgICBvcHRpb25zLmNtZG9wdHMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50KXtcbiAgICAgICAgICAgICAgcGFybXMuc3BsaWNlKHBhcm1zLmluZGV4T2YoY29tbWFuZCkrMSwgMCwgZWxlbWVudCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAvLyBpZiAodmFycy53YXRjaFN0YXJ0ZWQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAvLyAgIGF3YWl0IF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucylcbiAgICAgICAgICAvLyAgIHZhcnMud2F0Y2hTdGFydGVkID0gdHJ1ZVxuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBpZiAodmFycy53YXRjaFN0YXJ0ZWQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGF3YWl0IF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucylcbiAgICAgICAgICAgIGlmIChjb21tYW5kID09ICd3YXRjaCcpIHtcbiAgICAgICAgICAgICAgdmFycy53YXRjaFN0YXJ0ZWQgPSB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFycy5jYWxsYmFjaygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vbWpnXG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9tamdcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGxvZ3YodmVyYm9zZSwnTk9UIHJ1bm5pbmcgZW1pdCcpXG4gICAgICAgIHZhcnMuY2FsbGJhY2soKVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGxvZ3YodmVyYm9zZSwnZW1pdCBpcyBubycpXG4gICAgICB2YXJzLmNhbGxiYWNrKClcbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHZhcnMuY2FsbGJhY2soKVxuICAgIHRocm93ICdfZW1pdDogJyArIGUudG9TdHJpbmcoKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9kb25lKHN0YXRzLCB2YXJzLCBvcHRpb25zKSB7XG4gIHRyeSB7XG4gICAgdmFyIHZlcmJvc2UgPSBvcHRpb25zLnZlcmJvc2VcbiAgICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9kb25lJylcbiAgICBpZiAoc3RhdHMuY29tcGlsYXRpb24uZXJyb3JzICYmIHN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycy5sZW5ndGgpIC8vICYmIHByb2Nlc3MuYXJndi5pbmRleE9mKCctLXdhdGNoJykgPT0gLTEpXG4gICAge1xuICAgICAgdmFyIGNoYWxrID0gcmVxdWlyZSgnY2hhbGsnKTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZCgnKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJykpO1xuICAgICAgY29uc29sZS5sb2coc3RhdHMuY29tcGlsYXRpb24uZXJyb3JzWzBdKTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZCgnKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJykpO1xuICAgICAgLy9wcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuXG4gICAgLy9tamcgcmVmYWN0b3JcbiAgICBpZiAodmFycy5wcm9kdWN0aW9uID09IHRydWUgJiYgb3B0aW9ucy50cmVlc2hha2UgPT0gJ25vJyAmJiBmcmFtZXdvcmsgPT0gJ2FuZ3VsYXInKSB7XG4gICAgICByZXF1aXJlKGAuLyR7b3B0aW9ucy5mcmFtZXdvcmt9VXRpbGApLl90b0Rldih2YXJzLCBvcHRpb25zKVxuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYob3B0aW9ucy5icm93c2VyID09ICd5ZXMnICYmIG9wdGlvbnMud2F0Y2ggPT0gJ3llcycgJiYgdmFycy5wcm9kdWN0aW9uID09IGZhbHNlKSB7XG4gICAgICAgIGlmICh2YXJzLmJyb3dzZXJDb3VudCA9PSAwKSB7XG4gICAgICAgICAgdmFyIHVybCA9ICdodHRwOi8vbG9jYWxob3N0OicgKyBvcHRpb25zLnBvcnRcbiAgICAgICAgICByZXF1aXJlKCcuL3BsdWdpblV0aWwnKS5sb2codmFycy5hcHAsIGBPcGVuaW5nIGJyb3dzZXIgYXQgJHt1cmx9YClcbiAgICAgICAgICB2YXJzLmJyb3dzZXJDb3VudCsrXG4gICAgICAgICAgY29uc3Qgb3BuID0gcmVxdWlyZSgnb3BuJylcbiAgICAgICAgICBvcG4odXJsKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cbiAgICBpZiAodmFycy5idWlsZHN0ZXAgPT0gJzEgb2YgMScpIHtcbiAgICAgIGlmICh2YXJzLnByb2R1Y3Rpb24gPT0gdHJ1ZSkge1xuICAgICAgICByZXF1aXJlKCcuL3BsdWdpblV0aWwnKS5sb2codmFycy5hcHAsIGBFbmRpbmcgcHJvZHVjdGlvbiBidWlsZCBmb3IgJHtmcmFtZXdvcmt9YClcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhcnMudGVzdGluZyA9PSB0cnVlKSB7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyB0ZXN0aW5nIGJ1aWxkIGZvciAke2ZyYW1ld29ya31gKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyBkZXZlbG9wbWVudCBidWlsZCBmb3IgJHtmcmFtZXdvcmt9YClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhcnMuYnVpbGRzdGVwID09ICcyIG9mIDInKSB7XG4gICAgICBpZih2YXJzLnRlc3RpbmcgPT0gdHJ1ZSl7XG4gICAgICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZyh2YXJzLmFwcCwgYEVuZGluZyB0ZXN0aW5nIGJ1aWxkIGZvciAke2ZyYW1ld29ya31gKVxuICAgICAgfVxuICAgICAgcmVxdWlyZSgnLi9wbHVnaW5VdGlsJykubG9nKHZhcnMuYXBwLCBgRW5kaW5nIHByb2R1Y3Rpb24gYnVpbGQgZm9yICR7ZnJhbWV3b3JrfWApXG4gICAgfVxuICB9XG4gIGNhdGNoKGUpIHtcbi8vICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZ3Yob3B0aW9ucy52ZXJib3NlLGUpXG4gICAgdGhyb3cgJ19kb25lOiAnICsgZS50b1N0cmluZygpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX3ByZXBhcmVGb3JCdWlsZChhcHAsIHZhcnMsIG9wdGlvbnMsIG91dHB1dCwgY29tcGlsYXRpb24pIHtcbiAgdHJ5IHtcbiAgICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICAgIHZhciBwYWNrYWdlcyA9IG9wdGlvbnMucGFja2FnZXNcbiAgICB2YXIgdG9vbGtpdCA9IG9wdGlvbnMudG9vbGtpdFxuICAgIHZhciB0aGVtZSA9IG9wdGlvbnMudGhlbWVcbiAgICBsb2d2KHZlcmJvc2UsJ0ZVTkNUSU9OIF9wcmVwYXJlRm9yQnVpbGQnKVxuICAgIGNvbnN0IHJpbXJhZiA9IHJlcXVpcmUoJ3JpbXJhZicpXG4gICAgY29uc3QgbWtkaXJwID0gcmVxdWlyZSgnbWtkaXJwJylcbiAgICBjb25zdCBmc3ggPSByZXF1aXJlKCdmcy1leHRyYScpXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpXG4gICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuICAgIHRoZW1lID0gdGhlbWUgfHwgKHRvb2xraXQgPT09ICdjbGFzc2ljJyA/ICd0aGVtZS10cml0b24nIDogJ3RoZW1lLW1hdGVyaWFsJylcbiAgICBsb2d2KHZlcmJvc2UsJ2ZpcnN0VGltZTogJyArIHZhcnMuZmlyc3RUaW1lKVxuICAgIGlmICh2YXJzLmZpcnN0VGltZSkge1xuICAgICAgcmltcmFmLnN5bmMob3V0cHV0KVxuICAgICAgbWtkaXJwLnN5bmMob3V0cHV0KVxuICAgICAgY29uc3QgYnVpbGRYTUwgPSByZXF1aXJlKCcuL2FydGlmYWN0cycpLmJ1aWxkWE1MXG4gICAgICBjb25zdCBjcmVhdGVBcHBKc29uID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVBcHBKc29uXG4gICAgICBjb25zdCBjcmVhdGVXb3Jrc3BhY2VKc29uID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVXb3Jrc3BhY2VKc29uXG4gICAgICBjb25zdCBjcmVhdGVKU0RPTUVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9hcnRpZmFjdHMnKS5jcmVhdGVKU0RPTUVudmlyb25tZW50XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICdidWlsZC54bWwnKSwgYnVpbGRYTUwodmFycy5wcm9kdWN0aW9uLCBvcHRpb25zLCBvdXRwdXQpLCAndXRmOCcpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICdhcHAuanNvbicpLCBjcmVhdGVBcHBKc29uKHRoZW1lLCBwYWNrYWdlcywgdG9vbGtpdCwgb3B0aW9ucywgb3V0cHV0KSwgJ3V0ZjgnKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ob3V0cHV0LCAnanNkb20tZW52aXJvbm1lbnQuanMnKSwgY3JlYXRlSlNET01FbnZpcm9ubWVudChvcHRpb25zLCBvdXRwdXQpLCAndXRmOCcpXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRwdXQsICd3b3Jrc3BhY2UuanNvbicpLCBjcmVhdGVXb3Jrc3BhY2VKc29uKG9wdGlvbnMsIG91dHB1dCksICd1dGY4JylcbiAgICAgIHZhciBmcmFtZXdvcmsgPSB2YXJzLmZyYW1ld29yaztcbiAgICAgIC8vYmVjYXVzZSBvZiBhIHByb2JsZW0gd2l0aCBjb2xvcnBpY2tlclxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksYGV4dC0ke2ZyYW1ld29ya30vdXgvYCkpKSB7XG4gICAgICAgIHZhciBmcm9tUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBgZXh0LSR7ZnJhbWV3b3JrfS91eC9gKVxuICAgICAgICB2YXIgdG9QYXRoID0gcGF0aC5qb2luKG91dHB1dCwgJ3V4JylcbiAgICAgICAgZnN4LmNvcHlTeW5jKGZyb21QYXRoLCB0b1BhdGgpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICh1eCkgJyArIGZyb21QYXRoLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpICsgJyB0bzogJyArIHRvUGF0aC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKSlcbiAgICAgIH1cbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLGBleHQtJHtmcmFtZXdvcmt9L3BhY2thZ2VzL2ApKSkge1xuICAgICAgICB2YXIgZnJvbVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYGV4dC0ke2ZyYW1ld29ya30vcGFja2FnZXMvYClcbiAgICAgICAgdmFyIHRvUGF0aCA9IHBhdGguam9pbihvdXRwdXQsICdwYWNrYWdlcycpXG4gICAgICAgIGZzeC5jb3B5U3luYyhmcm9tUGF0aCwgdG9QYXRoKVxuICAgICAgICBsb2coYXBwLCAnQ29weWluZyAnICsgZnJvbVBhdGgucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykgKyAnIHRvOiAnICsgdG9QYXRoLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpKVxuICAgICAgfVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksYGV4dC0ke2ZyYW1ld29ya30vb3ZlcnJpZGVzL2ApKSkge1xuICAgICAgICB2YXIgZnJvbVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYGV4dC0ke2ZyYW1ld29ya30vb3ZlcnJpZGVzL2ApXG4gICAgICAgIHZhciB0b1BhdGggPSBwYXRoLmpvaW4ob3V0cHV0LCAnb3ZlcnJpZGVzJylcbiAgICAgICAgZnN4LmNvcHlTeW5jKGZyb21QYXRoLCB0b1BhdGgpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICcgKyBmcm9tUGF0aC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKSArICcgdG86ICcgKyB0b1BhdGgucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykpXG4gICAgICB9XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwncmVzb3VyY2VzLycpKSkge1xuICAgICAgICB2YXIgZnJvbVJlc291cmNlcyA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAncmVzb3VyY2VzLycpXG4gICAgICAgIHZhciB0b1Jlc291cmNlcyA9IHBhdGguam9pbihvdXRwdXQsICcuLi9yZXNvdXJjZXMnKVxuICAgICAgICBmc3guY29weVN5bmMoZnJvbVJlc291cmNlcywgdG9SZXNvdXJjZXMpXG4gICAgICAgIGxvZyhhcHAsICdDb3B5aW5nICcgKyBmcm9tUmVzb3VyY2VzLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpICsgJyB0bzogJyArIHRvUmVzb3VyY2VzLnJlcGxhY2UocHJvY2Vzcy5jd2QoKSwgJycpKVxuICAgICAgfVxuICAgIH1cbiAgICB2YXJzLmZpcnN0VGltZSA9IGZhbHNlXG4gICAgdmFyIGpzID0gJydcbiAgICBpZiAodmFycy5wcm9kdWN0aW9uKSB7XG4gICAgICB2YXJzLmRlcHMgPSB2YXJzLmRlcHMuZmlsdGVyKGZ1bmN0aW9uKHZhbHVlLCBpbmRleCl7IHJldHVybiB2YXJzLmRlcHMuaW5kZXhPZih2YWx1ZSkgPT0gaW5kZXggfSk7XG4gICAgICBqcyA9IHZhcnMuZGVwcy5qb2luKCc7XFxuJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAganMgPSBgRXh0LnJlcXVpcmUoW1wiRXh0LipcIixcIkV4dC5kYXRhLlRyZWVTdG9yZVwiXSlgXG4gICAgfVxuICAgIGpzID0gYEV4dC5yZXF1aXJlKFtcIkV4dC4qXCIsXCJFeHQuZGF0YS5UcmVlU3RvcmVcIl0pYDsgLy9mb3Igbm93XG4gICAgaWYgKHZhcnMubWFuaWZlc3QgPT09IG51bGwgfHwganMgIT09IHZhcnMubWFuaWZlc3QpIHtcbiAgICAgIHZhcnMubWFuaWZlc3QgPSBqcyArICc7XFxuRXh0LnJlcXVpcmUoW1wiRXh0LmxheW91dC4qXCJdKTtcXG4nO1xuICAgICAgY29uc3QgbWFuaWZlc3QgPSBwYXRoLmpvaW4ob3V0cHV0LCAnbWFuaWZlc3QuanMnKVxuICAgICAgZnMud3JpdGVGaWxlU3luYyhtYW5pZmVzdCwgdmFycy5tYW5pZmVzdCwgJ3V0ZjgnKVxuICAgICAgdmFycy5yZWJ1aWxkID0gdHJ1ZVxuICAgICAgdmFyIGJ1bmRsZURpciA9IG91dHB1dC5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKVxuICAgICAgaWYgKGJ1bmRsZURpci50cmltKCkgPT0gJycpIHtidW5kbGVEaXIgPSAnLi8nfVxuICAgICAgbG9nKGFwcCwgJ0J1aWxkaW5nIEV4dCBidW5kbGUgYXQ6ICcgKyBidW5kbGVEaXIpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFycy5yZWJ1aWxkID0gZmFsc2VcbiAgICAgIGxvZyhhcHAsICdFeHQgcmVidWlsZCBOT1QgbmVlZGVkJylcbiAgICB9XG4gIH1cbiAgY2F0Y2goZSkge1xuICAgIHJlcXVpcmUoJy4vcGx1Z2luVXRpbCcpLmxvZ3Yob3B0aW9ucy52ZXJib3NlLGUpXG4gICAgY29tcGlsYXRpb24uZXJyb3JzLnB1c2goJ19wcmVwYXJlRm9yQnVpbGQ6ICcgKyBlKVxuICB9XG59XG5cbi8vKioqKioqKioqKlxuZXhwb3J0IGZ1bmN0aW9uIF9idWlsZEV4dEJ1bmRsZShhcHAsIGNvbXBpbGF0aW9uLCBvdXRwdXRQYXRoLCBwYXJtcywgdmFycywgb3B0aW9ucykge1xuICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJylcbiAgbG9ndih2ZXJib3NlLCdGVU5DVElPTiBfYnVpbGRFeHRCdW5kbGUnKVxuICBsZXQgc2VuY2hhOyB0cnkgeyBzZW5jaGEgPSByZXF1aXJlKCdAc2VuY2hhL2NtZCcpIH0gY2F0Y2ggKGUpIHsgc2VuY2hhID0gJ3NlbmNoYScgfVxuICBpZiAoZnMuZXhpc3RzU3luYyhzZW5jaGEpKSB7XG4gICAgbG9ndih2ZXJib3NlLCdzZW5jaGEgZm9sZGVyIGV4aXN0cycpXG4gIH1cbiAgZWxzZSB7XG4gICAgbG9ndih2ZXJib3NlLCdzZW5jaGEgZm9sZGVyIERPRVMgTk9UIGV4aXN0JylcbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQnVpbGREb25lID0gKCkgPT4ge1xuICAgICAgbG9ndih2ZXJib3NlLCdvbkJ1aWxkRG9uZScpXG4gICAgICByZXNvbHZlKClcbiAgICB9XG4gICAgdmFyIG9wdHMgPSB7IGN3ZDogb3V0cHV0UGF0aCwgc2lsZW50OiB0cnVlLCBzdGRpbzogJ3BpcGUnLCBlbmNvZGluZzogJ3V0Zi04J31cbiAgICBfZXhlY3V0ZUFzeW5jKGFwcCwgc2VuY2hhLCBwYXJtcywgb3B0cywgY29tcGlsYXRpb24sIHZhcnMsIG9wdGlvbnMpLnRoZW4gKFxuICAgICAgZnVuY3Rpb24oKSB7IG9uQnVpbGREb25lKCkgfSxcbiAgICAgIGZ1bmN0aW9uKHJlYXNvbikgeyByZWplY3QocmVhc29uKSB9XG4gICAgKVxuICB9KVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBfZXhlY3V0ZUFzeW5jIChhcHAsIGNvbW1hbmQsIHBhcm1zLCBvcHRzLCBjb21waWxhdGlvbiwgdmFycywgb3B0aW9ucykge1xuICB2YXIgdmVyYm9zZSA9IG9wdGlvbnMudmVyYm9zZVxuICB2YXIgZnJhbWV3b3JrID0gb3B0aW9ucy5mcmFtZXdvcmtcbiAgLy9jb25zdCBERUZBVUxUX1NVQlNUUlMgPSBbJ1tJTkZdIExvYWRpbmcnLCAnW0lORl0gUHJvY2Vzc2luZycsICdbTE9HXSBGYXNoaW9uIGJ1aWxkIGNvbXBsZXRlJywgJ1tFUlJdJywgJ1tXUk5dJywgXCJbSU5GXSBTZXJ2ZXJcIiwgXCJbSU5GXSBXcml0aW5nXCIsIFwiW0lORl0gTG9hZGluZyBCdWlsZFwiLCBcIltJTkZdIFdhaXRpbmdcIiwgXCJbTE9HXSBGYXNoaW9uIHdhaXRpbmdcIl07XG4gIGNvbnN0IERFRkFVTFRfU1VCU1RSUyA9IFtcIltJTkZdIHhTZXJ2ZXJcIiwgJ1tJTkZdIExvYWRpbmcnLCAnW0lORl0gQXBwZW5kJywgJ1tJTkZdIFByb2Nlc3NpbmcnLCAnW0lORl0gUHJvY2Vzc2luZyBCdWlsZCcsICdbTE9HXSBGYXNoaW9uIGJ1aWxkIGNvbXBsZXRlJywgJ1tFUlJdJywgJ1tXUk5dJywgXCJbSU5GXSBXcml0aW5nXCIsIFwiW0lORl0gTG9hZGluZyBCdWlsZFwiLCBcIltJTkZdIFdhaXRpbmdcIiwgXCJbTE9HXSBGYXNoaW9uIHdhaXRpbmdcIl07XG4gIHZhciBzdWJzdHJpbmdzID0gREVGQVVMVF9TVUJTVFJTXG4gIHZhciBjaGFsayA9IHJlcXVpcmUoJ2NoYWxrJylcbiAgY29uc3QgY3Jvc3NTcGF3biA9IHJlcXVpcmUoJ2Nyb3NzLXNwYXduLXdpdGgta2lsbCcpXG4gIGxvZ3YodmVyYm9zZSwgJ0ZVTkNUSU9OIF9leGVjdXRlQXN5bmMnKVxuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgbG9ndih2ZXJib3NlLGBjb21tYW5kIC0gJHtjb21tYW5kfWApXG4gICAgbG9ndih2ZXJib3NlLCBgcGFybXMgLSAke3Bhcm1zfWApXG4gICAgbG9ndih2ZXJib3NlLCBgb3B0cyAtICR7SlNPTi5zdHJpbmdpZnkob3B0cyl9YClcbiAgICB2YXJzLmNoaWxkID0gY3Jvc3NTcGF3bihjb21tYW5kLCBwYXJtcywgb3B0cylcblxuICAgIHZhcnMuY2hpbGQub24oJ2Nsb3NlJywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgbG9ndih2ZXJib3NlLCBgb24gY2xvc2U6IGAgKyBjb2RlKVxuICAgICAgaWYoY29kZSA9PT0gMCkgeyByZXNvbHZlKDApIH1cbiAgICAgIGVsc2UgeyBjb21waWxhdGlvbi5lcnJvcnMucHVzaCggbmV3IEVycm9yKGNvZGUpICk7IHJlc29sdmUoMCkgfVxuICAgIH0pXG4gICAgdmFycy5jaGlsZC5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIGxvZ3YodmVyYm9zZSwgYG9uIGVycm9yYClcbiAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGVycm9yKVxuICAgICAgcmVzb2x2ZSgwKVxuICAgIH0pXG4gICAgdmFycy5jaGlsZC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgdmFyIHN0ciA9IGRhdGEudG9TdHJpbmcoKS5yZXBsYWNlKC9cXHI/XFxufFxcci9nLCBcIiBcIikudHJpbSgpXG4gICAgICBsb2d2KHZlcmJvc2UsIGAke3N0cn1gKVxuICAgICAgLy9pZiAoZGF0YSAmJiBkYXRhLnRvU3RyaW5nKCkubWF0Y2goL0Zhc2hpb24gd2FpdGluZyBmb3IgY2hhbmdlc1xcLlxcLlxcLi8pKSB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLnRvU3RyaW5nKCkubWF0Y2goL2FpdGluZyBmb3IgY2hhbmdlc1xcLlxcLlxcLi8pKSB7XG5cbi8vICAgICAgICAgICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4vLyAgICAgICAgICAgdmFyIGZpbGVuYW1lID0gcHJvY2Vzcy5jd2QoKSArIHZhcnMudG91Y2hGaWxlO1xuLy8gICAgICAgICAgIHRyeSB7XG4vLyAgICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuLy8gICAgICAgICAgICAgdmFyIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUpO1xuLy8gICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgJy8vJyArIGQsICd1dGY4Jyk7XG4vLyAgICAgICAgICAgICBsb2d2KGFwcCwgYHRvdWNoaW5nICR7ZmlsZW5hbWV9YCk7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICAgIGNhdGNoKGUpIHtcbi8vICAgICAgICAgICAgIGxvZ3YoYXBwLCBgTk9UIHRvdWNoaW5nICR7ZmlsZW5hbWV9YCk7XG4vLyAgICAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKFwiW0lORl1cIiwgXCJcIilcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoXCJbTE9HXVwiLCBcIlwiKVxuICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJykudHJpbSgpXG4gICAgICAgIGlmIChzdHIuaW5jbHVkZXMoXCJbRVJSXVwiKSkge1xuICAgICAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGFwcCArIHN0ci5yZXBsYWNlKC9eXFxbRVJSXFxdIC9naSwgJycpKTtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShcIltFUlJdXCIsIGAke2NoYWxrLnJlZChcIltFUlJdXCIpfWApXG4gICAgICAgIH1cbiAgICAgICAgbG9nKGFwcCwgc3RyKVxuXG4gICAgICAgIHZhcnMuY2FsbGJhY2soKVxuICAgICAgICByZXNvbHZlKDApXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKHN1YnN0cmluZ3Muc29tZShmdW5jdGlvbih2KSB7IHJldHVybiBkYXRhLmluZGV4T2YodikgPj0gMDsgfSkpIHtcbiAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShcIltJTkZdXCIsIFwiXCIpXG4gICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoXCJbTE9HXVwiLCBcIlwiKVxuICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKS50cmltKClcbiAgICAgICAgICBpZiAoc3RyLmluY2x1ZGVzKFwiW0VSUl1cIikpIHtcbiAgICAgICAgICAgIGNvbXBpbGF0aW9uLmVycm9ycy5wdXNoKGFwcCArIHN0ci5yZXBsYWNlKC9eXFxbRVJSXFxdIC9naSwgJycpKTtcbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKFwiW0VSUl1cIiwgYCR7Y2hhbGsucmVkKFwiW0VSUl1cIil9YClcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nKGFwcCwgc3RyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICB2YXJzLmNoaWxkLnN0ZGVyci5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICBsb2d2KG9wdGlvbnMsIGBlcnJvciBvbiBjbG9zZTogYCArIGRhdGEpXG4gICAgICB2YXIgc3RyID0gZGF0YS50b1N0cmluZygpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csIFwiIFwiKS50cmltKClcbiAgICAgIHZhciBzdHJKYXZhT3B0cyA9IFwiUGlja2VkIHVwIF9KQVZBX09QVElPTlNcIjtcbiAgICAgIHZhciBpbmNsdWRlcyA9IHN0ci5pbmNsdWRlcyhzdHJKYXZhT3B0cylcbiAgICAgIGlmICghaW5jbHVkZXMpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCR7YXBwfSAke2NoYWxrLnJlZChcIltFUlJdXCIpfSAke3N0cn1gKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5cbi8vKioqKioqKioqKlxuZnVuY3Rpb24gcnVuU2NyaXB0KHNjcmlwdFBhdGgsIGNhbGxiYWNrKSB7XG4gIHZhciBjaGlsZFByb2Nlc3MgPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7XG4gIC8vIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBjYWxsYmFjayBoYXMgYmVlbiBpbnZva2VkIHRvIHByZXZlbnQgbXVsdGlwbGUgaW52b2NhdGlvbnNcbiAgdmFyIGludm9rZWQgPSBmYWxzZTtcbiAgdmFyIHByb2Nlc3MgPSBjaGlsZFByb2Nlc3MuZm9yayhzY3JpcHRQYXRoLCBbXSwgeyBleGVjQXJndiA6IFsnLS1pbnNwZWN0PTAnXSB9KTtcbiAgLy8gbGlzdGVuIGZvciBlcnJvcnMgYXMgdGhleSBtYXkgcHJldmVudCB0aGUgZXhpdCBldmVudCBmcm9tIGZpcmluZ1xuICBwcm9jZXNzLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICBpZiAoaW52b2tlZCkgcmV0dXJuO1xuICAgIGludm9rZWQgPSB0cnVlO1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH0pO1xuICAvLyBleGVjdXRlIHRoZSBjYWxsYmFjayBvbmNlIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCBydW5uaW5nXG4gIHByb2Nlc3Mub24oJ2V4aXQnLCBmdW5jdGlvbiAoY29kZSkge1xuICAgIGlmIChpbnZva2VkKSByZXR1cm47XG4gICAgaW52b2tlZCA9IHRydWU7XG4gICAgdmFyIGVyciA9IGNvZGUgPT09IDAgPyBudWxsIDogbmV3IEVycm9yKCdleGl0IGNvZGUgJyArIGNvZGUpO1xuICAgIGNhbGxiYWNrKGVycik7XG4gIH0pO1xufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBfdG9YdHlwZShzdHIpIHtcbiAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywgJy0nKVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBfZ2V0QXBwKCkge1xuICB2YXIgY2hhbGsgPSByZXF1aXJlKCdjaGFsaycpXG4gIHZhciBwcmVmaXggPSBgYFxuICBjb25zdCBwbGF0Zm9ybSA9IHJlcXVpcmUoJ29zJykucGxhdGZvcm0oKVxuICBpZiAocGxhdGZvcm0gPT0gJ2RhcndpbicpIHsgcHJlZml4ID0gYOKEuSDvvaJleHTvvaM6YCB9XG4gIGVsc2UgeyBwcmVmaXggPSBgaSBbZXh0XTpgIH1cbiAgcmV0dXJuIGAke2NoYWxrLmdyZWVuKHByZWZpeCl9IGBcbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gX2dldFZlcnNpb25zKHBsdWdpbk5hbWUsIGZyYW1ld29ya05hbWUpIHtcbnRyeSB7XG4gIGNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJylcbiAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpXG4gIHZhciB2ID0ge31cbiAgdmFyIGZyYW1ld29ya0luZm8gPSAnbi9hJ1xuXG4gIHYucGx1Z2luVmVyc2lvbiA9ICduL2EnO1xuICB2LmV4dFZlcnNpb24gPSAnbi9hJztcbiAgdi5lZGl0aW9uID0gJ24vYSc7XG4gIHYuY21kVmVyc2lvbiA9ICduL2EnO1xuICB2LndlYnBhY2tWZXJzaW9uID0gJ24vYSc7XG5cbiAgdmFyIHBsdWdpblBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwnbm9kZV9tb2R1bGVzL0BzZW5jaGEnLCBwbHVnaW5OYW1lKVxuICB2YXIgcGx1Z2luUGtnID0gKGZzLmV4aXN0c1N5bmMocGx1Z2luUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBsdWdpblBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICB2LnBsdWdpblZlcnNpb24gPSBwbHVnaW5Qa2cudmVyc2lvblxuICB2Ll9yZXNvbHZlZCA9IHBsdWdpblBrZy5fcmVzb2x2ZWRcbiAgaWYgKHYuX3Jlc29sdmVkID09IHVuZGVmaW5lZCkge1xuICAgIHYuZWRpdGlvbiA9IGBDb21tZXJjaWFsYFxuICB9XG4gIGVsc2Uge1xuICAgIGlmICgtMSA9PSB2Ll9yZXNvbHZlZC5pbmRleE9mKCdjb21tdW5pdHknKSkge1xuICAgICAgdi5lZGl0aW9uID0gYENvbW1lcmNpYWxgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdi5lZGl0aW9uID0gYENvbW11bml0eWBcbiAgICB9XG4gIH1cbiAgdmFyIHdlYnBhY2tQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksJ25vZGVfbW9kdWxlcy93ZWJwYWNrJylcbiAgdmFyIHdlYnBhY2tQa2cgPSAoZnMuZXhpc3RzU3luYyh3ZWJwYWNrUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHdlYnBhY2tQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgdi53ZWJwYWNrVmVyc2lvbiA9IHdlYnBhY2tQa2cudmVyc2lvblxuICB2YXIgZXh0UGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCdub2RlX21vZHVsZXMvQHNlbmNoYS9leHQnKVxuICB2YXIgZXh0UGtnID0gKGZzLmV4aXN0c1N5bmMoZXh0UGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGV4dFBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICB2LmV4dFZlcnNpb24gPSBleHRQa2cuc2VuY2hhLnZlcnNpb25cbiAgdmFyIGNtZFBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSxgbm9kZV9tb2R1bGVzL0BzZW5jaGEvY21kYClcbiAgdmFyIGNtZFBrZyA9IChmcy5leGlzdHNTeW5jKGNtZFBhdGgrJy9wYWNrYWdlLmpzb24nKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjbWRQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgdi5jbWRWZXJzaW9uID0gY21kUGtnLnZlcnNpb25fZnVsbFxuICBpZiAodi5jbWRWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgIHZhciBjbWRQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksYG5vZGVfbW9kdWxlcy9Ac2VuY2hhLyR7cGx1Z2luTmFtZX0vbm9kZV9tb2R1bGVzL0BzZW5jaGEvY21kYClcbiAgICB2YXIgY21kUGtnID0gKGZzLmV4aXN0c1N5bmMoY21kUGF0aCsnL3BhY2thZ2UuanNvbicpICYmIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNtZFBhdGgrJy9wYWNrYWdlLmpzb24nLCAndXRmLTgnKSkgfHwge30pO1xuICAgIHYuY21kVmVyc2lvbiA9IGNtZFBrZy52ZXJzaW9uX2Z1bGxcbiAgfVxuXG4gICBpZiAoZnJhbWV3b3JrTmFtZSAhPSB1bmRlZmluZWQgJiYgZnJhbWV3b3JrTmFtZSAhPSAnZXh0anMnKSB7XG4gICAgdmFyIGZyYW1ld29ya1BhdGggPSAnJ1xuICAgIGlmIChmcmFtZXdvcmtOYW1lID09ICdyZWFjdCcpIHtcbiAgICAgIGZyYW1ld29ya1BhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwnbm9kZV9tb2R1bGVzL3JlYWN0JylcbiAgICB9XG4gICAgaWYgKGZyYW1ld29ya05hbWUgPT0gJ2FuZ3VsYXInKSB7XG4gICAgICBmcmFtZXdvcmtQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksJ25vZGVfbW9kdWxlcy9AYW5ndWxhci9jb3JlJylcbiAgICB9XG4gICAgdmFyIGZyYW1ld29ya1BrZyA9IChmcy5leGlzdHNTeW5jKGZyYW1ld29ya1BhdGgrJy9wYWNrYWdlLmpzb24nKSAmJiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmcmFtZXdvcmtQYXRoKycvcGFja2FnZS5qc29uJywgJ3V0Zi04JykpIHx8IHt9KTtcbiAgICB2LmZyYW1ld29ya1ZlcnNpb24gPSBmcmFtZXdvcmtQa2cudmVyc2lvblxuICAgIGlmICh2LmZyYW1ld29ya1ZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmcmFtZXdvcmtJbmZvID0gJywgJyArIGZyYW1ld29ya05hbWVcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmcmFtZXdvcmtJbmZvID0gJywgJyArIGZyYW1ld29ya05hbWUgKyAnIHYnICsgdi5mcmFtZXdvcmtWZXJzaW9uXG4gICAgfVxuICB9XG4gIHJldHVybiAnZXh0LXdlYnBhY2stcGx1Z2luIHYnICsgdi5wbHVnaW5WZXJzaW9uICsgJywgRXh0IEpTIHYnICsgdi5leHRWZXJzaW9uICsgJyAnICsgdi5lZGl0aW9uICsgJyBFZGl0aW9uLCBTZW5jaGEgQ21kIHYnICsgdi5jbWRWZXJzaW9uICsgJywgd2VicGFjayB2JyArIHYud2VicGFja1ZlcnNpb24gKyBmcmFtZXdvcmtJbmZvXG5cbn1cbmNhdGNoIChlKSB7XG4gIHJldHVybiAnZXh0LXdlYnBhY2stcGx1Z2luIHYnICsgdi5wbHVnaW5WZXJzaW9uICsgJywgRXh0IEpTIHYnICsgdi5leHRWZXJzaW9uICsgJyAnICsgdi5lZGl0aW9uICsgJyBFZGl0aW9uLCBTZW5jaGEgQ21kIHYnICsgdi5jbWRWZXJzaW9uICsgJywgd2VicGFjayB2JyArIHYud2VicGFja1ZlcnNpb24gKyBmcmFtZXdvcmtJbmZvXG59XG5cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gbG9nKGFwcCxtZXNzYWdlKSB7XG4gIHZhciBzID0gYXBwICsgbWVzc2FnZVxuICByZXF1aXJlKCdyZWFkbGluZScpLmN1cnNvclRvKHByb2Nlc3Muc3Rkb3V0LCAwKVxuICB0cnkge3Byb2Nlc3Muc3Rkb3V0LmNsZWFyTGluZSgpfWNhdGNoKGUpIHt9XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHMpO3Byb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKVxufVxuXG4vLyoqKioqKioqKipcbmV4cG9ydCBmdW5jdGlvbiBsb2doKGFwcCxtZXNzYWdlKSB7XG4gIHZhciBoID0gZmFsc2VcbiAgdmFyIHMgPSBhcHAgKyBtZXNzYWdlXG4gIGlmIChoID09IHRydWUpIHtcbiAgICByZXF1aXJlKCdyZWFkbGluZScpLmN1cnNvclRvKHByb2Nlc3Muc3Rkb3V0LCAwKVxuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzLnN0ZG91dC5jbGVhckxpbmUoKVxuICAgIH1cbiAgICBjYXRjaChlKSB7fVxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHMpXG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoJ1xcbicpXG4gIH1cbn1cblxuLy8qKioqKioqKioqXG5leHBvcnQgZnVuY3Rpb24gbG9ndih2ZXJib3NlLCBzKSB7XG4gIGlmICh2ZXJib3NlID09ICd5ZXMnKSB7XG4gICAgcmVxdWlyZSgncmVhZGxpbmUnKS5jdXJzb3JUbyhwcm9jZXNzLnN0ZG91dCwgMClcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5zdGRvdXQuY2xlYXJMaW5lKClcbiAgICB9XG4gICAgY2F0Y2goZSkge31cbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgLXZlcmJvc2U6ICR7c31gKVxuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKVxuICB9XG59XG5cbmZ1bmN0aW9uIF9nZXRWYWxpZGF0ZU9wdGlvbnMoKSB7XG4gIHJldHVybiB7XG4gICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgIFwiZnJhbWV3b3JrXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwidG9vbGtpdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRoZW1lXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiZW1pdFwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwic2NyaXB0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwicG9ydFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJpbnRlZ2VyXCJdXG4gICAgICB9LFxuICAgICAgXCJwYWNrYWdlc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIiwgXCJhcnJheVwiXVxuICAgICAgfSxcbiAgICAgIFwicHJvZmlsZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgJ2RldmVsb3BtZW50JyBvciAncHJvZHVjdGlvbicgc3RyaW5nIHZhbHVlXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInRyZWVzaGFrZVwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiYnJvd3NlclwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwid2F0Y2hcIjoge1xuICAgICAgICBcImVycm9yTWVzc2FnZVwiOiBcInNob3VsZCBiZSAneWVzJyBvciAnbm8nIHN0cmluZyB2YWx1ZSAoTk9UIHRydWUgb3IgZmFsc2UpXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcInZlcmJvc2VcIjoge1xuICAgICAgICBcImVycm9yTWVzc2FnZVwiOiBcInNob3VsZCBiZSAneWVzJyBvciAnbm8nIHN0cmluZyB2YWx1ZSAoTk9UIHRydWUgb3IgZmFsc2UpXCIsXG4gICAgICAgIFwidHlwZVwiOiBbXCJzdHJpbmdcIl1cbiAgICAgIH0sXG4gICAgICBcImluamVjdFwiOiB7XG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IFwic2hvdWxkIGJlICd5ZXMnIG9yICdubycgc3RyaW5nIHZhbHVlIChOT1QgdHJ1ZSBvciBmYWxzZSlcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiXVxuICAgICAgfSxcbiAgICAgIFwiaW50ZWxsaXNoYWtlXCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgJ3llcycgb3IgJ25vJyBzdHJpbmcgdmFsdWUgKE5PVCB0cnVlIG9yIGZhbHNlKVwiLFxuICAgICAgICBcInR5cGVcIjogW1wic3RyaW5nXCJdXG4gICAgICB9LFxuICAgICAgXCJjbWRvcHRzXCI6IHtcbiAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjogXCJzaG91bGQgYmUgYSBzZW5jaGEgY21kIG9wdGlvbiBvciBhcmd1bWVudCBzdHJpbmdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFtcInN0cmluZ1wiLCBcImFycmF5XCJdXG4gICAgICB9XG4gICAgfSxcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlXG4gIH07XG59XG5cblxuZnVuY3Rpb24gX2dldERlZmF1bHRPcHRpb25zKCkge1xuICByZXR1cm4ge1xuICAgIGZyYW1ld29yazogJ2V4dGpzJyxcbiAgICB0b29sa2l0OiAnbW9kZXJuJyxcbiAgICB0aGVtZTogJ3RoZW1lLW1hdGVyaWFsJyxcbiAgICBlbWl0OiAneWVzJyxcbiAgICBzY3JpcHQ6IG51bGwsXG4gICAgcG9ydDogMTk2MixcbiAgICBwYWNrYWdlczogW10sXG5cbiAgICBwcm9maWxlOiAnJyxcbiAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICB0cmVlc2hha2U6ICdubycsXG4gICAgYnJvd3NlcjogJ3llcycsXG4gICAgd2F0Y2g6ICd5ZXMnLFxuICAgIHZlcmJvc2U6ICdubycsXG4gICAgaW5qZWN0OiAneWVzJyxcbiAgICBpbnRlbGxpc2hha2U6ICd5ZXMnLFxuICAgIGNtZG9wdHM6ICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNtYXJ0Rmxvd1BpbmcocGFja2FnZUpzb25QYXRoLCBhcHBKc29uUGF0aCkge1xuICBjb25zdCB7IGV4ZWMgfSA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbiAgY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbiAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuXG4gIGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnLCAoZXJyUGFja2FnZSwgZGF0YVBhY2thZ2UpID0+IHtcbiAgICBpZiAoZXJyUGFja2FnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShkYXRhUGFja2FnZSk7XG5cbiAgICBmcy5yZWFkRmlsZShhcHBKc29uUGF0aCwgJ3V0ZjgnLCAoZXJyQXBwLCBkYXRhQXBwKSA9PiB7XG4gICAgICBpZiAoZXJyQXBwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXBwSnNvbiA9IEpTT04ucGFyc2UoZGF0YUFwcCk7XG4gICAgICBjb25zdCByZXF1aXJlc0FycmF5ID0gYXBwSnNvbi5yZXF1aXJlczsvLyBBc3N1bWluZyBhcHBKc29uLnJlcXVpcmVzIGlzIGFuIGFycmF5XG5cbiAgICAgIC8vIENvbnZlcnQgdGhlIGFycmF5IHRvIGEgc3RyaW5nXG4gICAgICBjb25zdCBtb2RpZmllZFN0cmluZyA9IHJlcXVpcmVzQXJyYXlbMF0ucmVwbGFjZSgvW1xcW1xcXSddKy9nLCAnJyk7XG5cbiAgICAgIGNvbnN0IGhvbWVEaXJlY3RvcnkgPSBwcm9jZXNzLmVudi5IT01FIHx8IHByb2Nlc3MuZW52LlVTRVJQUk9GSUxFO1xuXG4gICAgICAvLyBTcGVjaWZ5IHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIGhvbWUgZGlyZWN0b3J5IHRvIHlvdXIgZmlsZVxuICAgICAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9ICcubnBtcmMnO1xuXG4gICAgICAvLyBDb21iaW5lIHRoZSBob21lIGRpcmVjdG9yeSBhbmQgcmVsYXRpdmUgZmlsZSBwYXRoIHRvIGdldCB0aGUgZ2VuZXJhbGl6ZWQgZmlsZSBwYXRoXG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihob21lRGlyZWN0b3J5LCByZWxhdGl2ZUZpbGVQYXRoKTtcblxuICAgICAgZnMucmVhZEZpbGUoZmlsZVBhdGgsICd1dGY4JywgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgcmVhZGluZyBmaWxlOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWdpc3RyeVJlZ2V4ID0gL0BzZW5jaGE6cmVnaXN0cnk9KC4rKS87XG5cbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgcmVnaXN0cnkgVVJMIHVzaW5nIHRoZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgY29uc3QgbWF0Y2ggPSBkYXRhLm1hdGNoKHJlZ2lzdHJ5UmVnZXgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgbWF0Y2ggaXMgZm91bmRcbiAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICAgICAgY29uc3QgcmVnaXN0cnlVcmwgPSBtYXRjaFsxXTtcbiAgICAgICAgICAvLyBVc2UgbnBtLWNvbmZpZyB0byBzZXQgdGhlIHJlZ2lzdHJ5IHRlbXBvcmFyaWx5IGZvciB0aGUgY3VycmVudCBwcm9jZXNzXG4gICAgICAgICAgcHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19yZWdpc3RyeSA9IHJlZ2lzdHJ5VXJsO1xuXG4gICAgICAgICAgLy8gUnVuIHRoZSBucG0gd2hvYW1pIGNvbW1hbmRcbiAgICAgICAgICBleGVjKGBucG0gLS1yZWdpc3RyeSAke3JlZ2lzdHJ5VXJsfSB3aG9hbWlgLCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1c2VybmFtZSA9IGAke3N0ZG91dC50cmltKCkucmVwbGFjZSgnLi4nLCAnQCcpfWA7XG5cbiAgICAgICAgICAgIGxldCBhZGRpdGlvbmFsTGljZW5zZUluZm8gPSAnJztcbiAgICAgICAgICAgICAgbGV0IGxpY2Vuc2VkRmVhdHVyZSA9ICcnO1xuICAgICAgICAgICAgICBpZih1c2VybmFtZSE9bnVsbCl7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbExpY2Vuc2VJbmZvID0gJ1RoaXMgdmVyc2lvbiBvZiBTZW5jaGEgRXh0LWdlbiBpcyBsaWNlbnNlZCBjb21tZXJjaWFsbHknXG4gICAgICAgICAgICAgICAgbGljZW5zZWRGZWF0dXJlID0gJ0xFR0FMJ1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsTGljZW5zZUluZm8gPSAnVGhpcyB2ZXJzaW9uIG9mIFNlbmNoYSBFeHQtZ2VuIGlzIG5vdCBsaWNlbnNlZCBjb21tZXJjaWFsbHknXG4gICAgICAgICAgICAgICAgbGljZW5zZWRGZWF0dXJlICA9ICdVTkxJQ0VOU0VEJ1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdFR5cGUgPSBwcm9jZXNzLmVudi5ucG1fbGlmZWN5Y2xlX2V2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyZXZlbnQgPSAnYnVpbGQnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdFR5cGUgPT09ICdkZXYnIHx8IHNjcmlwdFR5cGUgPT09ICdkZXY6ZGVza3RvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJldmVudCA9IGBucG0gc3RhcnRgO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PT0gJ2J1aWxkJyB8fCBzY3JpcHRUeXBlID09PSAnYnVpbGQ6ZGVza3RvcCcgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyZXZlbnQgPSBgbnBtIHJ1biBidWlsZGA7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJldmVudCA9IGBudWxsYDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpY2Vuc2VpbmZvID0gYFwibGljZW5zZT1Db21tZXJjaWFsLCBmcmFtZXdvcms9RVhUSlMsIExpY2Vuc2UgQ29udGVudCBUZXh0PVNlbmNoYSBSYXBpZEV4dEpTLUphdmFTY3JpcHQgTGlicmFyeSBDb3B5cmlnaHQsIFNlbmNoYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIGxpY2Vuc2luZ0BzZW5jaGEuY29tIG9wdGlvbnM6aHR0cDovL3d3dy5zZW5jaGEuY29tL2xpY2Vuc2UgbGljZW5zZTogaHR0cDovL3d3dy5zZW5jaGEuY29tL2xlZ2FsL3NlbmNoYS1zb2Z0d2FyZS1saWNlbnNlLWFncmVlbWVudCBDb21tZXJjaWFsIExpY2Vuc2UuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TZW5jaGEgUmFwaWRFeHRKUyBpcyBsaWNlbnNlZCBjb21tZXJjaWFsbHkuIFNlZSBodHRwOi8vd3d3LnNlbmNoYS5jb20vbGVnYWwvc2VuY2hhLXNvZnR3YXJlLWxpY2Vuc2UtYWdyZWVtZW50IGZvciBsaWNlbnNlIHRlcm1zLkJldGEgTGljZW5zZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJZiB0aGlzIGlzIGEgQmV0YSB2ZXJzaW9uICwgdXNlIGlzIHBlcm1pdHRlZCBmb3IgaW50ZXJuYWwgZXZhbHVhdGlvbiBhbmQgcmV2aWV3IHB1cnBvc2VzIGFuZCBub3QgdXNlIGZvciBwcm9kdWN0aW9uIHB1cnBvc2VzLiBTZWUgaHR0cDovL3d3dy5zZW5jaGEuY29tL2xlZ2FsL3NlbmNoYS1zb2Z0d2FyZS1saWNlbnNlLWFncmVlbWVudCAoQmV0YSBMaWNlbnNlKSBmb3IgbGljZW5zZSB0ZXJtcy4gIFRoaXJkIFBhcnR5IENvbnRlbnQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1UaGUgZm9sbG93aW5nIHRoaXJkIHBhcnR5IHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIHdpdGggUmFwaWRFeHRKUyBhbmQgaXMgcHJvdmlkZWQgdW5kZXIgb3RoZXIgbGljZW5zZXMgYW5kL29yIGhhcyBzb3VyY2UgYXZhaWxhYmxlIGZyb20gb3RoZXIgbG9jYXRpb25zLiBMaWJyYXJ5OiBZVUkgMC42IChCU0QgTGljZW5zZWQpIGZvciBkcmFnLWFuZC1kcm9wIGNvZGUuIExvY2F0aW9uOiBodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95dWkgTGljZW5zZTogaHR0cDovL2RldmVsb3Blci55YWhvby5jb20veXVpL2xpY2Vuc2UuaHRtbCAoQlNEIDMtQ2xhdXNlIExpY2Vuc2UpIExpYnJhcnk6IEpTT04gcGFyc2VyIExvY2F0aW9uOiBodHRwOi8vd3d3LkpTT04ub3JnL2pzLmh0bWwgTGljZW5zZTogaHR0cDovL3d3dy5qc29uLm9yZy9saWNlbnNlLmh0bWwgKE1JVCBMaWNlbnNlKSBMaWJyYXJ5OiBmbGV4aWJsZS1qcy1mb3JtYXR0aW5nIExvY2F0aW9uOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZmxleGlibGUtanMtZm9ybWF0dGluZy8gTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAgKE1JVCBMaWNlbnNlKSBMaWJyYXJ5OiBzcGFya2xpbmUuanMgTG9jYXRpb246IGh0dHA6Ly9vbW5pcG90ZW50Lm5ldC9qcXVlcnkuc3BhcmtsaW5lIExpY2Vuc2UgIGh0dHA6Ly9vbW5pcG90ZW50Lm5ldC9qcXVlcnkuc3BhcmtsaW5lIChCU0QgMy1DbGF1c2UgTGljZW5zZSkgTGlicmFyeTogRGVmdEpTIExvY2F0aW9uOiBodHRwOi8vZGVmdGpzLm9yZy8gTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAgKE1JVCBMaWNlbnNlKSBMaWJyYXJ5OiBPcGVuLVNhbnMgTG9jYXRpb246IGh0dHA6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250cy9vcGVuLXNhbnMgTGljZW5zZTogIGh0dHA6Ly93d3cuZm9udHNxdWlycmVsLmNvbS9mb250cy9vcGVuLXNhbnMgKEFwYWNoZSAyLjAgTGljZW5zZSkgRXhhbXBsZXM6IExpYnJhcnk6IFNpbGsgSWNvbnMgTG9jYXRpb246IGh0dHA6Ly93d3cuZmFtZmFtZmFtLmNvbS9sYWIvaWNvbnMvc2lsay8gTGljZW5zZTogaHR0cDovL3d3dy5mYW1mYW1mYW0uY29tL2xhYi9pY29ucy9zaWxrLyAoQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAyLjUgTGljZW5zZSkgTGlicmFyeTogRm9udCBBd2Vzb21lIENTUyBMb2NhdGlvbjogaHR0cDovL2ZvbnRhd2Vzb21lLmlvLyBMaWNlbnNlOiBodHRwOi8vZm9udGF3ZXNvbWUuaW8vMy4yLjEvbGljZW5zZS8gKE1JVCkgTGlicmFyeTogTWF0ZXJpYWwgRGVzaWduIEljb25zIExvY2F0aW9uOiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL21hdGVyaWFsLWRlc2lnbi1pY29ucyBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL21hdGVyaWFsLWRlc2lnbi1pY29ucy9ibG9iL21hc3Rlci9MSUNFTlNFIChBcGFjaGUpIFRISVMgU09GVFdBUkUgSVMgRElTVFJJQlVURUQgJ0FTLUlTJyBXSVRIT1VUIEFOWSBXQVJSQU5USUVTLCBDT05ESVRJT05TIEFORCBSRVBSRVNFTlRBVElPTlMgV0hFVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gVEhFIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIE1FUkNIQU5UQUJMRSBRVUFMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgRFVSQUJJTElUWSwgTk9OLUlORlJJTkdFTUVOVCwgUEVSRk9STUFOQ0UgQU5EIFRIT1NFIEFSSVNJTkcgQlkgU1RBVFVURSBPUiBGUk9NIENVU1RPTSBPUiBVU0FHRSBPRiBUUkFERSBPUiBDT1VSU0UgT0YgREVBTElORy4gLCBtZXNzYWdlPVRoaXMgdmVyc2lvbiBvZiBTZW5jaGEgUmFwaWRFeHRKUyBpcyBsaWNlbnNlZCBjb21tZXJjaWFsbHkgXCJgO1xuICAgICAgICAgICAgY29uc3QgamFyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdyZXNvdXJjZXMnLCAndXRpbHMuamFyJyk7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlc1VzZWQgPSBgZXh0LWdlbiwgJHttb2RpZmllZFN0cmluZ31gO1xuXG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWRMaWNlbnNlID0gYnRvYShsaWNlbnNlaW5mbyk7XG5cbiAgICAgICAgICAgICAgY29uc3QgY29tbWFuZCA9IGBqYXZhIC1qYXIgJHtqYXJQYXRofSBgICtcbiAgICAgICAgICAgICAgICAgYC1wcm9kdWN0IGV4dC1nZW4gLXByb2R1Y3RWZXJzaW9uICR7cGFja2FnZUpzb24udmVyc2lvbn0gYCArXG4gICAgICAgICAgICAgICAgIGAtZXZlbnRUeXBlIExFR0FMIC10cmlnZ2VyICR7dHJpZ2dlcmV2ZW50fSBgICtcbiAgICAgICAgICAgICAgICAgYC1saWNlbnNlZFRvICR7dXNlcm5hbWV9IGAgK1xuICAgICAgICAgICAgICAgICBgLWN1c3RvbTIgaXNWYWxpZD10cnVlIC1jdXN0b20zIGlzVHJpYWw9ZmFsc2UgLWN1c3RvbTQgaXNFeHBpcmVkPWZhbHNlIC1tb2RlIHJhcGlkIGAgK1xuICAgICAgICAgICAgICAgICBgLXZhbGlkTGljZW5zZUluZm8gJHtlbmNyeXB0ZWRMaWNlbnNlfSAtZmVhdHVyZXNVc2VkICR7ZmVhdHVyZXNVc2VkfSAtbGljZW5zZWRGZWF0dXJlICR7bGljZW5zZWRGZWF0dXJlfSAtcGlyYWN5TGljZW5zZUluZm8gJHthZGRpdGlvbmFsTGljZW5zZUluZm99YDtcblxuICAgICAgICAgICAgZXhlYyhjb21tYW5kLCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoc3RkZXJyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsQ0FBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixD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 \ No newline at end of file diff --git a/packages/ext-webpack-plugin/src/pluginUtil.js b/packages/ext-webpack-plugin/src/pluginUtil.js index d9045c1..ee30cd4 100644 --- a/packages/ext-webpack-plugin/src/pluginUtil.js +++ b/packages/ext-webpack-plugin/src/pluginUtil.js @@ -854,9 +854,9 @@ export function smartFlowPing(packageJsonPath, appJsonPath) { const scriptType = process.env.npm_lifecycle_event; let triggerevent = 'build'; - if (scriptType === 'dev') { + if (scriptType === 'dev' || scriptType === 'dev:desktop') { triggerevent = `npm start`; - } else if (scriptType === 'build') { + } else if (scriptType === 'build' || scriptType === 'build:desktop' ) { triggerevent = `npm run build`; } else { triggerevent = `null`;