@studiokloek/vite-config 0.8.4 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -264,6 +264,7 @@ function imageminPlugin(environment, options) {
264
264
  return viteImagemin({
265
265
  skipIfLarger: true,
266
266
  verbose: true,
267
+ root: path.join(path.resolve(cwd), 'public'),
267
268
  plugins: {
268
269
  jpg: [
269
270
  imageminMozjpeg({
@@ -544,4 +545,4 @@ async function kloekBuild(flags) {
544
545
  }
545
546
 
546
547
  export { kloekBuild, kloekDevelopment };
547
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcykge1xuICAgIGNvbnN0IHNldHRpbmdzID0ge307XG4gICAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgICAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzZXR0aW5ncztcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzKHBhY2thZ2VTZXR0aW5ncykge1xuICAgIC8vIE1lcmdlIHNldHRpbmdzXG4gICAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMocGFja2FnZVNldHRpbmdzLmdlbmVyaWMpO1xuICAgIGNvbnN0IHsgZ2VuZXJpYyB9ID0gcGFja2FnZVNldHRpbmdzO1xuICAgIGNvbnN0IGFsbFNldHRpbmdzID0ge1xuICAgICAgICBkZXZlbG9wbWVudDogZ2VuZXJpYyxcbiAgICAgICAgZ2FtZXM6IHt9LFxuICAgIH07XG4gICAgZm9yIChjb25zdCBnYW1lIG9mIHBhY2thZ2VTZXR0aW5ncy5nYW1lcyA/PyBbXSkge1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG4gICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgcGFnZSBhbHRpamQgZ2V6ZXQgaXNcbiAgICAgICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgICAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG4gICAgICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgICB9XG4gICAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKGZ1bGxGaWxlUGF0aCwgc2V0dGluZ3MpIHtcbiAgICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuICAgIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICAgIGxldCBmaWxlRGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKGZ1bGxGaWxlUGF0aCk7XG4gICAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuICAgIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgICAgIGZpbGVQYXRoID0gYCR7ZmlsZURpcmVjdG9yeX0vJHtmaWxlUGF0aH1gO1xuICAgIH1cbiAgICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2VUb1NlcnZlKGNvbmZpZywgc2V0dGluZ3MpIHtcbiAgICAvLyBIb2V2ZWVsIHBhZ2VzIHppam4gZXI/XG4gICAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcbiAgICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKGNvbmZpZy5idWlsZC5iYXNlUGF0aCwgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybCkge1xuICAgIGlmICghdXJsKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IHBhdGhuYW1lO1xuICAgIHRyeSB7XG4gICAgICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICAgIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICAgIGNvbnN0IGluZGV4ID0gcGF0aG5hbWUubGFzdEluZGV4T2YoJy8nKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcbiAgICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nYW1lLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IGlucHV0ID0ge307XG4gICAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICAgICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICAgIH1cbiAgICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgICBjb25zdCB2ZW5kb3JDaHVua3MgPSBbJ2ZpcmViYXNlJywgJ2xvZGFzaCcsICdnc2FwJywgJ3N0dWRpb2tsb2VrJ107XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IGZhbHNlLFxuICAgICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgICAgIG91dERpcjogJy4uL3B1YmxpYycsXG4gICAgICAgIGFzc2V0c0RpcjogJ2dlbmVyYXRlZCcsXG4gICAgICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICAgICAgbWFudWFsQ2h1bmtzKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCdub2RlX21vZHVsZXMvJylbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndmVuZG9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1idWlsZC5qcy5tYXAiLCJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoIH0gZnJvbSAndml0ZSc7XG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aCkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByZWFkRmlsZVN5bmMocGF0aCk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgLy9cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZXhwb3J0IGNvbnN0IGN3ZCA9IG5vcm1hbGl6ZVBhdGgocHJvY2Vzcy5jd2QoKSk7XG5leHBvcnQgKiBmcm9tICcuL2dhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZCc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJpbXBvcnQgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHZpdGVIYW5kbGViYXJzUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMnO1xuaW1wb3J0IHsgZ2V0UGFnZUlkRnJvbVVybCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihwYXJ0aWFsRGlyZWN0b3J5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICAgICAgcGFydGlhbERpcmVjdG9yeSxcbiAgICAgICAgaGVscGVyczoge1xuICAgICAgICAgICAganNvbjogKG9iamVjdCwgaW5kZW50ID0gMCkgPT4gSlNPTi5zdHJpbmdpZnkob2JqZWN0LCB1bmRlZmluZWQsIGluZGVudCksXG4gICAgICAgICAgICBjb25jYXQ6ICguLi5hcmd1bWVudHNfKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgICAgICAgIGVxOiAoYSwgYikgPT4gYSA9PT0gYixcbiAgICAgICAgICAgIG5lcTogKGEsIGIpID0+IGEgIT09IGIsXG4gICAgICAgICAgICBpc2RlZmluZWQ6ICh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdyZXNvbHZlLXJvb3QnKHApIHtcbiAgICAgICAgICAgICAgICAvLyBUaWpkZWxpamtlIGhhY2sgdm9vciBidWcgaW4gaGFuZGxlYmFycyBwbHVnaW5cbiAgICAgICAgICAgICAgICAvLyB6aWUgb29rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4bGFmcm9zY2lhL3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMvcHVsbC8xMjlcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IGAvJHtyZXNvbHZlZFBhdGh9YCA6IHJlc29sdmVkUGF0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQocGFnZVBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGdhbWVJZCA9IGdldFBhZ2VJZEZyb21VcmwocGFnZVBhdGgpO1xuICAgICAgICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGdhbWVzOiBvcHRpb25zLnNldHRpbmdzLmdhbWVzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPcCBiYXNpcyB2YW4gcGFkIGRhdGEgYmVwYWxlblxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zLnNldHRpbmdzLmdhbWVzW2dhbWVJZF07XG4gICAgICAgICAgICAvLyBQYWdpbmEgc2V0dGluZ3MgdGVydWdnZXZlblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFuZGxlYmFycy1wbHVnaW4uanMubWFwIiwiaW1wb3J0IHsgZXhpc3RzU3luYywgcHJvbWlzZXMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBjd2QsIGdldFBhZ2VJZEZyb21VcmwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCBQQUdFX1RFTVBMQVRFID0gJ3t7PiBnYW1lIGRhdGE9ZGF0YX19JztcbmNvbnN0IERFVkVMT1BNRU5UX1RFTVBMQVRFID0gJ3t7PiBkZXZlbG9wbWVudCBkYXRhPWRhdGF9fSc7XG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSB7XG4gICAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgICBpZiAoIWV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgIC8vIEFhbm1ha2VuXG4gICAgICAgIGF3YWl0IHByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgUEFHRV9URU1QTEFURSk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxQbHVnaW4oZ2FtZXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstaHRtbCcsXG4gICAgICAgIGVuZm9yY2U6ICdwcmUnLFxuICAgICAgICBhc3luYyBjb25maWcoX2NvbmZpZywgZW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChyZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgdGlqZGVucyBkZXZlbG9wbWVudCBkZSBwYWdpbmEgZ2UtcmVuZGVyZWQgdGVydWcgZ2VnZXZlbiB3b3JkdCB3b3JkdFxuICAgICAgICAgICAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoJy8nLCBhc3luYyAocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcmVxdWVzdD8udXJsID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFnZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGV2ZWxvcG1lbnQ/IGdlZWYgdGVydWcuLi5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKHVybCwgREVWRUxPUE1FTlRfVEVNUExBVEUsIHJlcXVlc3Qub3JpZ2luYWxVcmwpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChPYmplY3Qua2V5cyhnYW1lcykuaW5jbHVkZXMocGFnZUlkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmVzdGFhbmRlIGdhbWU/IHpvcmcgZXIgdm9vciBkYXQgZGUgdGVtcGxhdGUgZ2UtcmVuZGVyZWQgd29yZHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKHVybCwgUEFHRV9URU1QTEFURSwgcmVxdWVzdC5vcmlnaW5hbFVybCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmlrcyBnZXZvbmRlblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYWN0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwtcGx1Z2luLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBzdmVsdGUsIHZpdGVQcmVwcm9jZXNzIH0gZnJvbSAnQHN2ZWx0ZWpzL3ZpdGUtcGx1Z2luLXN2ZWx0ZSc7XG5pbXBvcnQgdHNjb25maWdQYXRoc1BsdWdpbiBmcm9tICd2aXRlLXRzY29uZmlnLXBhdGhzJztcbmltcG9ydCB7IGN3ZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGhhbmRsZWJhcnNQbHVnaW4gfSBmcm9tICcuL2xpYi9oYW5kbGViYXJzLXBsdWdpbic7XG5pbXBvcnQgeyBodG1sUGx1Z2luIH0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQbHVnaW5zKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBodG1sUGx1Z2luKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLFxuICAgICAgICAuLi5zdmVsdGUoe1xuICAgICAgICAgICAgcHJlcHJvY2Vzczogdml0ZVByZXByb2Nlc3MoKSxcbiAgICAgICAgICAgIG9ud2Fybih3YXJuaW5nLCB3YXJuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3YXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gTm8gYTExeSB3YXJuaW5ncy4uLlxuICAgICAgICAgICAgICAgIGlmICh3YXJuaW5nLmNvZGUuc3RhcnRzV2l0aCgnYTExeS0nKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4od2FybmluZyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICAgICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgICAgICAgIC8vIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICAgICAgICBsb29zZTogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGhhbmRsZWJhcnNQbHVnaW4ob3B0aW9ucy5jb25maWcuc2VydmUucGFydGlhbHMsIG9wdGlvbnMpLFxuICAgIF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlLmpzLm1hcCIsImltcG9ydCB2aXRlSW1hZ2VtaW4gZnJvbSAnQHZoZWVtc3RyYS92aXRlLXBsdWdpbi1pbWFnZW1pbic7XG4vLyBUaGUgbWluaWZpZXJzIHlvdSB3YW50IHRvIHVzZTpcbmltcG9ydCBpbWFnZW1pbk1vempwZWcgZnJvbSAnaW1hZ2VtaW4tbW96anBlZyc7XG5pbXBvcnQgaW1hZ2VtaW5QbmdRdWFudCBmcm9tICdpbWFnZW1pbi1wbmdxdWFudCc7XG5pbXBvcnQgaW1hZ2VtaW5PcHRpUG5nIGZyb20gJ2ltYWdlbWluLW9wdGlwbmcnO1xuZXhwb3J0IGZ1bmN0aW9uIGltYWdlbWluUGx1Z2luKGVudmlyb25tZW50LCBvcHRpb25zKSB7XG4gICAgaWYgKGVudmlyb25tZW50Lm1vZGUgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB2aXRlSW1hZ2VtaW4oe1xuICAgICAgICBza2lwSWZMYXJnZXI6IHRydWUsXG4gICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgICAgIGpwZzogW1xuICAgICAgICAgICAgICAgIGltYWdlbWluTW96anBlZyh7XG4gICAgICAgICAgICAgICAgICAgIHF1YWxpdHk6IG9wdGlvbnM/LmpwZWcgPz8gODAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwbmc6IFtcbiAgICAgICAgICAgICAgICBpbWFnZW1pblBuZ1F1YW50KHtcbiAgICAgICAgICAgICAgICAgICAgc3RyaXA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHNwZWVkOiAyLFxuICAgICAgICAgICAgICAgICAgICBkaXRoZXJpbmc6IDAuMjUsXG4gICAgICAgICAgICAgICAgICAgIHF1YWxpdHk6IG9wdGlvbnM/LnBuZyA/PyBbMC41LCAwLjddLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGltYWdlbWluT3B0aVBuZygpXG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICB9KTtcbn1cbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLXBsdWdpbi5qcy5tYXAiLCJmdW5jdGlvbiByZW5kZXJHYW1lTWFuaWZlc3QocGFnZUlkLCBzZXR0aW5ncywgY29uZmlnKSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB7XG4gICAgICAgIHNob3J0X25hbWU6IGAke3NldHRpbmdzLm1ldGEuYXBwdGl0bGV9YCxcbiAgICAgICAgbmFtZTogYCR7c2V0dGluZ3MubWV0YS50aXRsZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7c2V0dGluZ3MubWV0YS5kZXNjcmlwdGlvbn1gLFxuICAgICAgICBzY29wZTogYCR7Y29uZmlnLmJhc2V9JHtwYWdlSWR9Lmh0bWxgLFxuICAgICAgICBzdGFydF91cmw6IGAke2NvbmZpZy5iYXNlfSR7cGFnZUlkfS5odG1sYCxcbiAgICAgICAgZGlzcGxheTogJ2Z1bGxzY3JlZW4nLFxuICAgICAgICBvcmllbnRhdGlvbjogYCR7c2V0dGluZ3Mub3B0aW9ucy5vcmllbnRhdGlvbiA/PyAnbGFuZHNjYXBlJ31gLFxuICAgICAgICBpY29uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2Nocm9tZS10b3VjaC1pY29uLTE5MngxOTIucG5nYCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICAgICBzaXplczogJzE5MngxOTInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzcmM6IGAke2NvbmZpZy5iYXNlfW1ldGEvJHtzZXR0aW5ncy5pbmZvLmlkfS9pY29ucy9pY29uLnBuZ2AsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICAgICAgc2l6ZXM6ICcxMDI0eDEwMjQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgYmFja2dyb3VuZF9jb2xvcjogYCR7c2V0dGluZ3Mub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3J9YCxcbiAgICAgICAgdGhlbWVfY29sb3I6IGAke3NldHRpbmdzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yfWAsXG4gICAgfTtcbiAgICByZXR1cm4gYCR7SlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIG51bGwsIDIpfVxcbmA7XG59XG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3RQbHVnaW4oZ2FtZXMpIHtcbiAgICBsZXQgY29uZmlnO1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1rbG9lay1tYW5pZmVzdCcsXG4gICAgICAgIGVuZm9yY2U6ICdwb3N0JyxcbiAgICAgICAgYXBwbHk6ICdidWlsZCcsXG4gICAgICAgIGFzeW5jIGNvbmZpZ1Jlc29sdmVkKHJlc29sdmVkQ29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcgPSByZXNvbHZlZENvbmZpZztcbiAgICAgICAgfSxcbiAgICAgICAgZ2VuZXJhdGVCdW5kbGUoXywgYnVuZGxlKSB7XG4gICAgICAgICAgICAvLyBWb29yIGllZGVyZSBhcHAgZWVuIG1hbmlmZXN0IG1ha2VuOlxuICAgICAgICAgICAgZm9yIChjb25zdCBbcGFnZUlkLCBzZXR0aW5nc10gb2YgT2JqZWN0LmVudHJpZXMoZ2FtZXMpKSB7XG4gICAgICAgICAgICAgICAgYnVuZGxlW2Ake3BhZ2VJZH0ud2VibWFuaWZlc3RgXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmVlZHNDb2RlUmVmZXJlbmNlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Fzc2V0JyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpLFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogYCR7cGFnZUlkfS53ZWJtYW5pZmVzdGAsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIG5lZWRzQ29kZVJlZmVyZW5jZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiBcInNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTtcIixcbiAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWU6IGAke3BhZ2VJZH0tc2VydmljZXdvcmtlci5qc2AsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFuaWZlc3QtcGx1Z2luLmpzLm1hcCIsImltcG9ydCBsZWdhY3lQbHVnaW4gZnJvbSAnQHZpdGVqcy9wbHVnaW4tbGVnYWN5JztcbmltcG9ydCBiYW5uZXJQbHVnaW4gZnJvbSAndml0ZS1wbHVnaW4tYmFubmVyJztcbmltcG9ydCB7IGNyZWF0ZUh0bWxQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1odG1sJztcbmltcG9ydCB7IGltYWdlbWluUGx1Z2luIH0gZnJvbSAnLi9saWIvaW1hZ2UtcGx1Z2luJztcbmltcG9ydCB7IG1hbmlmZXN0UGx1Z2luIH0gZnJvbSAnLi9saWIvbWFuaWZlc3QtcGx1Z2luJztcbi8vIEJ1aWxkIHBsdWdpbnNcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBsdWdpbnMob3B0aW9ucykge1xuICAgIC8vIE5vIGJ1aWxkPyBubyBwbHVnaW5zLi5cbiAgICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudC5jb21tYW5kICE9PSAnYnVpbGQnKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGx1Z2lucyA9IFtdO1xuICAgIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5sZWdhY3kpIHtcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwYWdlIHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzXG4gICAgICAgIHBsdWdpbnMucHVzaCguLi5sZWdhY3lQbHVnaW4oe1xuICAgICAgICAgICAgdGFyZ2V0czogb3B0aW9ucy5jb25maWcuYnVpbGQuYnJvd3NlcnNsaXN0ID8/ICdkZWZhdWx0cycsXG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgY29uc3QgcGFnZXMgPSBPYmplY3Qua2V5cyhvcHRpb25zLnNldHRpbmdzLmdhbWVzKS5tYXAoKGdhbWVJZCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsZW5hbWU6IGAke2dhbWVJZH0uaHRtbGAsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICBwbHVnaW5zLnB1c2goXG4gICAgLy8gTWluaWZ5IGltYWdlIGFzc2V0c1xuICAgIGltYWdlbWluUGx1Z2luKG9wdGlvbnMuZW52aXJvbm1lbnQsIG9wdGlvbnMuY29uZmlnLmJ1aWxkLmltYWdlUXVhbGl0eSksIFxuICAgIC8vIE1ha2UgdGhlIGh0bWwgb3V0cHV0IHNtYWxsZXJcbiAgICAuLi5jcmVhdGVIdG1sUGx1Z2luKHsgbWluaWZ5OiB0cnVlLCBwYWdlcyB9KSwgXG4gICAgLy8gQWRkIGEgYmFubmVyIHRvIGdlbmVyYXRlZCBqcy9jc3NcbiAgICBiYW5uZXJQbHVnaW4oYFxuICAgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC5cblxuICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICBfICAgICAgICAgICAgX1xuICAgICAgICAvICApICAgICAgICAgICAgICB8ICBvICAgICAgICAgL3wgICAvIHwgfCAgICAgICAgICB8IHxcbiAgICAgICAgXFxcXF9fIF98XyAgICAgICAgIF9ffCAgICAgIF9fICAgICB8X18vICB8IHwgIF9fICAgXyAgfCB8XG4gICAgICAgICAgIFxcXFwgfCAgfCAgIHwgIC8gIHwgIHwgIC8gIFxcXFxfICAgfCBcXFxcICAgfC8gIC8gIFxcXFxffC8gIHwvXylcbiAgICAgICAoX19fLyB8Xy8gXFxcXF8vfF8vXFxcXF8vfF8vfF8vXFxcXF9fLyAgICB8ICBcXFxcXy98X18vXFxcXF9fLyB8X18vfCBcXFxcXy9cblxuICAgICAgICBDb25jZXB0LCBvbnR3ZXJwICYgb250d2lra2VsaW5nXG4gICAgICAgIGh0dHBzOi8vc3R1ZGlva2xvZWsubmxcblxuICAgICAgICBTdHVkaW8gS2xvZWsg4p2kIFBpeGlKUywgR1NBUCAmIGhvd2xlci5qc1xuXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgYCkpO1xuICAgIC8vIENyZWF0ZSBhIG1hbmlmZXN0IGFuZCBtaW5pbWFsIHdlYndvcmtlciBmb3IgZXZlcnkgZ2FtZVxuICAgIGlmIChvcHRpb25zLmNvbmZpZy5idWlsZC5tYW5pZmVzdCkge1xuICAgICAgICBwbHVnaW5zLnB1c2gobWFuaWZlc3RQbHVnaW4ob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpO1xuICAgIH1cbiAgICByZXR1cm4gcGx1Z2lucy5maWx0ZXIocGx1Z2luID0+IHBsdWdpbiAhPT0gdW5kZWZpbmVkKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1aWxkLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgZnVsbFJlbG9hZCBmcm9tICd2aXRlLXBsdWdpbi1mdWxsLXJlbG9hZCc7XG5pbXBvcnQgbWtjZXJ0IGZyb20gJ3ZpdGUtcGx1Z2luLW1rY2VydCc7XG5pbXBvcnQgY2hlY2tlciBmcm9tICd2aXRlLXBsdWdpbi1jaGVja2VyJztcbmltcG9ydCB7IGN3ZCB9IGZyb20gJy4uL3V0aWxzJztcbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZVBsdWdpbnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZnVsbFJlbG9hZChbJ3NjcmlwdC8qKi8qLnRzJywgJ3N2ZWx0ZS8qKi8qLnN2ZWx0ZSddLCB7XG4gICAgICAgICAgICByb290OiBwYXRoLmpvaW4ocGF0aC5yZXNvbHZlKGN3ZCksICdzb3VyY2UnKSxcbiAgICAgICAgICAgIGxvZzogdHJ1ZSxcbiAgICAgICAgICAgIGFsd2F5czogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIG1rY2VydCgpLFxuICAgICAgICBjaGVja2VyKHtcbiAgICAgICAgICAgIHR5cGVzY3JpcHQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgIF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZS5qcy5tYXAiLCJpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IGJhc2VQbHVnaW5zIH0gZnJvbSAnLi9wbHVnaW5zL2Jhc2UnO1xuaW1wb3J0IHsgYnVpbGRQbHVnaW5zIH0gZnJvbSAnLi9wbHVnaW5zL2J1aWxkJztcbmltcG9ydCB7IHNlcnZlUGx1Z2lucyB9IGZyb20gJy4vcGx1Z2lucy9zZXJ2ZSc7XG5pbXBvcnQgeyBjd2QsIGRlZmluZUJ1aWxkQ29uZmlnLCBnZXRQYWdlVG9TZXJ2ZSwgcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncywgcmVhZEpTT04sIH0gZnJvbSAnLi91dGlscyc7XG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWZpbmVLbG9la1ZpdGVDb25maWcoZW52aXJvbm1lbnQpIHtcbiAgICBjb25zdCBwa2cgPSByZWFkSlNPTihwYXRoLnJlc29sdmUoY3dkLCAncGFja2FnZS5qc29uJykpO1xuICAgIGNvbnN0IGtsb2VrQ29uZmlnID0gcGtnLnZpdGU7XG4gICAgY29uc3QgYnJvd3NlcnNsaXN0ID0gcGtnLmJyb3dzZXJzbGlzdDtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJyksXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICBzZXR0aW5nczogcGFyc2VQYWNrYWdlR2FtZXNTZXR0aW5ncyhwa2cuc2V0dGluZ3MpLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgIC4uLmtsb2VrQ29uZmlnLFxuICAgICAgICAgICAgYnVpbGQ6IHsgLi4ua2xvZWtDb25maWcuYnVpbGQsIGJyb3dzZXJzbGlzdCB9LFxuICAgICAgICAgICAgc2VydmU6IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsczogW1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGFydGlhbHMnKSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdwYXJ0aWFscycpLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICBsb2dMZXZlbDogJ2luZm8nLFxuICAgICAgICBiYXNlOiBrbG9la0NvbmZpZy5idWlsZC5iYXNlUGF0aCxcbiAgICAgICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgICAgICBlbnZEaXI6IHBhdGgucmVzb2x2ZShjd2QsICdlbnYnKSxcbiAgICAgICAgZW52UHJlZml4OiBbJ0tMT0VLXycsICdWSVRFXyddLFxuICAgICAgICBwdWJsaWNEaXI6ICdzdGF0aWMnLFxuICAgICAgICBkZWZpbmU6IHt9LFxuICAgICAgICBlc2J1aWxkOiB7XG4gICAgICAgICAgICBsZWdhbENvbW1lbnRzOiAnbm9uZScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgIGRlZHVwZTogW1xuICAgICAgICAgICAgICAgICdAc3R1ZGlva2xvZWsvdHMtY29yZS1saWInLFxuICAgICAgICAgICAgICAgICdAY2FwYWNpdG9yL2FwcCcsXG4gICAgICAgICAgICAgICAgJ0BjYXBhY2l0b3IvY29yZScsXG4gICAgICAgICAgICAgICAgJ0BjYXBhY2l0b3IvZGV2aWNlJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9uZXR3b3JrJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9zcGxhc2gtc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9zdGF0dXMtYmFyJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9wcmVmZXJlbmNlcycsXG4gICAgICAgICAgICAgICAgJ2Jvd3NlcicsXG4gICAgICAgICAgICAgICAgJ2ZvbnRmYWNlb2JzZXJ2ZXInLFxuICAgICAgICAgICAgICAgICdnc2FwJyxcbiAgICAgICAgICAgICAgICAnaG93bGVyJyxcbiAgICAgICAgICAgICAgICAnbG9kYXNoLWRlY29yYXRvcnMtZXNtJyxcbiAgICAgICAgICAgICAgICAnbG9kYXNoLWVzJyxcbiAgICAgICAgICAgICAgICAncGl4aS1zcGluZScsXG4gICAgICAgICAgICAgICAgJ3BpeGkuanMnLFxuICAgICAgICAgICAgICAgICdwdWJzdWItanMnLFxuICAgICAgICAgICAgICAgICdyYW5kb20tanMnLFxuICAgICAgICAgICAgICAgICdyZXNzJyxcbiAgICAgICAgICAgICAgICAnc2x1Z2lmeScsXG4gICAgICAgICAgICAgICAgJ3N1cGVyYWdlbnQnLFxuICAgICAgICAgICAgICAgICd0cy1ldmVudHMnLFxuICAgICAgICAgICAgICAgICd0cy1taXhlcicsXG4gICAgICAgICAgICAgICAgJ3RzbGliJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhbGlhczoge1xuICAgICAgICAgICAgICAgIGxvZGFzaDogJ2xvZGFzaC1lcycsXG4gICAgICAgICAgICAgICAgJ0BtZXRhJzogcGF0aC5yZXNvbHZlKGN3ZCwgJ3NvdXJjZScsICdzdGF0aWMnLCAnbWV0YScpLFxuICAgICAgICAgICAgICAgICdAZm9udHMnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdmb250cycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY3NzOiB7XG4gICAgICAgICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgc2Nzczoge1xuICAgICAgICAgICAgICAgICAgICBjaGFyc2V0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkaXRpb25hbERhdGE6IGBAY2hhcnNldCBcIlVURi04XCJgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbLi4uYmFzZVBsdWdpbnMob3B0aW9ucyldLFxuICAgIH07XG4gICAgc3dpdGNoIChlbnZpcm9ubWVudC5jb21tYW5kKSB7XG4gICAgICAgIGNhc2UgJ3NlcnZlJzpcbiAgICAgICAgICAgIGNvbmZpZy5zZXJ2ZXIgPSB7XG4gICAgICAgICAgICAgICAgaG9zdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb3JzOiBvcHRpb25zLmNvbmZpZy5kZXYuY29ycyA/PyB0cnVlLFxuICAgICAgICAgICAgICAgIGh0dHBzOiBvcHRpb25zLmNvbmZpZy5kZXYuaHR0cHMgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBvcGVuOiBnZXRQYWdlVG9TZXJ2ZShvcHRpb25zLmNvbmZpZywgb3B0aW9ucy5zZXR0aW5ncy5nYW1lcyksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgICAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgICAgICAgICAgLi4uc2VydmVQbHVnaW5zKCksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgICAgICAgIGNvbmZpZy5idWlsZCA9IGRlZmluZUJ1aWxkQ29uZmlnKG9wdGlvbnMpO1xuICAgICAgICAgICAgY29uZmlnLnBsdWdpbnMgPSBbXG4gICAgICAgICAgICAgICAgLi4uKGNvbmZpZy5wbHVnaW5zID8gY29uZmlnLnBsdWdpbnMgOiBbXSksXG4gICAgICAgICAgICAgICAgLi4uYnVpbGRQbHVnaW5zKG9wdGlvbnMpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uZmlnLmpzLm1hcCIsImltcG9ydCB7IGJ1aWxkLCBjcmVhdGVTZXJ2ZXIgfSBmcm9tICd2aXRlJztcbmltcG9ydCB7IGRlZmluZUtsb2VrVml0ZUNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0RldmVsb3BtZW50KGZsYWdzKSB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICAgICAgY29tbWFuZDogJ3NlcnZlJyxcbiAgICAgICAgbW9kZTogJ2RldmVsb3BtZW50JyxcbiAgICB9KTtcbiAgICAvLyBEaWZmZXJlbnQgbW9kZVxuICAgIGlmICh0eXBlb2YgZmxhZ3MubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uZmlnLm1vZGUgPSBmbGFncy5tb2RlO1xuICAgIH1cbiAgICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgICAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICAgIGF3YWl0IHNlcnZlci5saXN0ZW4oKTtcbiAgICBzZXJ2ZXIucHJpbnRVcmxzKCk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ga2xvZWtCdWlsZChmbGFncykge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGRlZmluZUtsb2VrVml0ZUNvbmZpZyh7XG4gICAgICAgIGNvbW1hbmQ6ICdidWlsZCcsXG4gICAgICAgIG1vZGU6ICdwcm9kdWN0aW9uJyxcbiAgICB9KTtcbiAgICAvLyBFbXB0eSBvdXQgdGhlIE91dHB1dCBkaXIgYmVmb3JlIGJ1aWxkaW5nP1xuICAgIGlmIChmbGFncy5lbXB0eU91dERpciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbmZpZy5idWlsZCA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5idWlsZCxcbiAgICAgICAgICAgIGVtcHR5T3V0RGlyOiBmbGFncy5lbXB0eU91dERpcixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLy8gRGlmZmVyZW50IGJhc2UgcGF0aFxuICAgIGlmICh0eXBlb2YgZmxhZ3MuYmFzZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uZmlnLmJhc2UgPSBmbGFncy5iYXNlO1xuICAgIH1cbiAgICAvLyBEaWZmZXJlbnQgbW9kZVxuICAgIGlmICh0eXBlb2YgZmxhZ3MubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uZmlnLm1vZGUgPSBmbGFncy5tb2RlO1xuICAgIH1cbiAgICBhd2FpdCBidWlsZCh7XG4gICAgICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxTQUFTLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0FBQ3JELElBQUksTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3hCO0FBQ0EsSUFBSSxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtBQUN0QyxRQUFRLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztBQUM3QixZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUNoQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUM3QixTQUFTLENBQUM7QUFDVixLQUFLO0FBQ0wsSUFBSSxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDO0FBQ00sU0FBUyx5QkFBeUIsQ0FBQyxlQUFlLEVBQUU7QUFDM0Q7QUFDQSxJQUFJLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGVBQWUsQ0FBQztBQUN4QyxJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQ3hCLFFBQVEsV0FBVyxFQUFFLE9BQU87QUFDNUIsUUFBUSxLQUFLLEVBQUUsRUFBRTtB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
548
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy9nYW1lLnRzIiwiLi4vc3JjL3V0aWxzL2J1aWxkLnRzIiwiLi4vc3JjL3V0aWxzL2luZGV4LnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2hhbmRsZWJhcnMtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvbGliL2h0bWwtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYmFzZS50cyIsIi4uL3NyYy9wbHVnaW5zL2xpYi9pbWFnZS1wbHVnaW4udHMiLCIuLi9zcmMvcGx1Z2lucy9saWIvbWFuaWZlc3QtcGx1Z2luLnRzIiwiLi4vc3JjL3BsdWdpbnMvYnVpbGQudHMiLCIuLi9zcmMvcGx1Z2lucy9zZXJ2ZS50cyIsIi4uL3NyYy9jb25maWcudHMiLCIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmZ1bmN0aW9uIG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcykge1xuICAgIGNvbnN0IHNldHRpbmdzID0ge307XG4gICAgLy8gQWxsZSBwcm9wcyBvcCDDqcOpbiBsZXZlbCBkaWVwIG1lcmdlblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgaW5mb1R5cGVzKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5XSA9IHtcbiAgICAgICAgICAgIC4uLmdlbmVyaWNbcHJvcGVydHldLFxuICAgICAgICAgICAgLi4uZ2FtZVtwcm9wZXJ0eV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzZXR0aW5ncztcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzKHBhY2thZ2VTZXR0aW5ncykge1xuICAgIC8vIE1lcmdlIHNldHRpbmdzXG4gICAgY29uc3QgaW5mb1R5cGVzID0gT2JqZWN0LmtleXMocGFja2FnZVNldHRpbmdzLmdlbmVyaWMpO1xuICAgIGNvbnN0IHsgZ2VuZXJpYyB9ID0gcGFja2FnZVNldHRpbmdzO1xuICAgIGNvbnN0IGFsbFNldHRpbmdzID0ge1xuICAgICAgICBkZXZlbG9wbWVudDogZ2VuZXJpYyxcbiAgICAgICAgZ2FtZXM6IHt9LFxuICAgIH07XG4gICAgZm9yIChjb25zdCBnYW1lIG9mIHBhY2thZ2VTZXR0aW5ncy5nYW1lcyA/PyBbXSkge1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IG1lcmdlR2FtZVNldHRpbmdzKGdlbmVyaWMsIGdhbWUsIGluZm9UeXBlcyk7XG4gICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgcGFnZSBhbHRpamQgZ2V6ZXQgaXNcbiAgICAgICAgY29uc3QgcGFnZUlkID0gc2V0dGluZ3MuaW5mby5wYWdlID8/IHNldHRpbmdzLmluZm8uaWQgPz8gJ3Vua25vd24nO1xuICAgICAgICBzZXR0aW5ncy5pbmZvLnBhZ2UgPSBwYWdlSWQ7XG4gICAgICAgIC8vIFNsYSBzZXR0aW5ncyBvcCBvbmRlciBwYWdlIGlkXG4gICAgICAgIGFsbFNldHRpbmdzLmdhbWVzW3BhZ2VJZF0gPSBzZXR0aW5ncztcbiAgICB9XG4gICAgcmV0dXJuIGFsbFNldHRpbmdzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUb0dhbWVEYXRhKGZ1bGxGaWxlUGF0aCwgc2V0dGluZ3MpIHtcbiAgICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAgICBsZXQgZmlsZVBhdGggPSBwYXRoLmJhc2VuYW1lKGZ1bGxGaWxlUGF0aCwgcGF0aC5leHRuYW1lKGZ1bGxGaWxlUGF0aCkpO1xuICAgIC8vIERldGVybWluZSBkaXIgJiByZW1vdmUgbGVhZGluZyBzbGFzaFxuICAgIGxldCBmaWxlRGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKGZ1bGxGaWxlUGF0aCk7XG4gICAgZmlsZURpcmVjdG9yeSA9IGZpbGVEaXJlY3RvcnkucmVwbGFjZSgvXlxcLysvZywgJycpO1xuICAgIGlmIChmaWxlRGlyZWN0b3J5KSB7XG4gICAgICAgIGZpbGVQYXRoID0gYCR7ZmlsZURpcmVjdG9yeX0vJHtmaWxlUGF0aH1gO1xuICAgIH1cbiAgICByZXR1cm4gc2V0dGluZ3NbZmlsZVBhdGhdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2VUb1NlcnZlKGNvbmZpZywgc2V0dGluZ3MpIHtcbiAgICAvLyBIb2V2ZWVsIHBhZ2VzIHppam4gZXI/XG4gICAgY29uc3QgcGFnZUlkcyA9IE9iamVjdC5rZXlzKHNldHRpbmdzKTtcbiAgICBjb25zdCBwYWdlID0gcGFnZUlkcy5sZW5ndGggPT09IDEgPyBwYWdlSWRzWzBdIDogJ2RldmVsb3BtZW50JztcbiAgICByZXR1cm4gcGF0aC5wb3NpeC5qb2luKGNvbmZpZy5idWlsZC5iYXNlUGF0aCwgYCR7cGFnZX0uaHRtbCR7Y29uZmlnLmRldi5zZXJ2ZVBhcmFtcyA/PyAnJ31gKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWdlSWRGcm9tVXJsKHVybCkge1xuICAgIGlmICghdXJsKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgbGV0IHBhdGhuYW1lO1xuICAgIHRyeSB7XG4gICAgICAgIHBhdGhuYW1lID0gbmV3IFVSTCh1cmwsICdodHRwczovL3N0dWRpb2tsb2VrLm5sJykucGF0aG5hbWU7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICAvLyBJZiByZXF1ZXN0IGlzIG5vdCBodG1sICwgZGlyZWN0bHkgcmV0dXJuIG5leHQoKVxuICAgIGlmICghcGF0aG5hbWUuZW5kc1dpdGgoJy5odG1sJykgJiYgcGF0aG5hbWUgIT09ICcvJykge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIFBhZ2luYSBpZCBvcHZyYWdlblxuICAgIGNvbnN0IGluZGV4ID0gcGF0aG5hbWUubGFzdEluZGV4T2YoJy8nKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IGluZGV4ID09PSAtMSA/IHBhdGhuYW1lIDogcGF0aG5hbWUuc2xpY2UoaW5kZXggKyAxKTtcbiAgICByZXR1cm4gZmlsZU5hbWUucmVwbGFjZSgnLmh0bWwnLCAnJyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nYW1lLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQnVpbGRDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IGlucHV0ID0ge307XG4gICAgZm9yIChjb25zdCBnYW1lSWQgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5zZXR0aW5ncy5nYW1lcykpIHtcbiAgICAgICAgaW5wdXRbZ2FtZUlkXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIGAke2dhbWVJZH0uaHRtbGApO1xuICAgIH1cbiAgICAvLyBMaWJzIGRpZSBhcGFydGUganMga3JpamdlbjpcbiAgICBjb25zdCB2ZW5kb3JDaHVua3MgPSBbJ2ZpcmViYXNlJywgJ2xvZGFzaCcsICdnc2FwJywgJ3N0dWRpb2tsb2VrJ107XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVwb3J0Q29tcHJlc3NlZFNpemU6IGZhbHNlLFxuICAgICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDEwMDAsXG4gICAgICAgIG91dERpcjogJy4uL3B1YmxpYycsXG4gICAgICAgIGFzc2V0c0RpcjogJ2dlbmVyYXRlZCcsXG4gICAgICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICAgICAgbWFudWFsQ2h1bmtzKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCdub2RlX21vZHVsZXMvJylbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2ZW5kb3JDaHVua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndmVuZG9yJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1idWlsZC5qcy5tYXAiLCJpbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgeyBub3JtYWxpemVQYXRoIH0gZnJvbSAndml0ZSc7XG5leHBvcnQgZnVuY3Rpb24gcmVhZEpTT04ocGF0aCkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByZWFkRmlsZVN5bmMocGF0aCk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgLy9cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZXhwb3J0IGNvbnN0IGN3ZCA9IG5vcm1hbGl6ZVBhdGgocHJvY2Vzcy5jd2QoKSk7XG5leHBvcnQgKiBmcm9tICcuL2dhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZCc7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJpbXBvcnQgb3MgZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHZpdGVIYW5kbGViYXJzUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMnO1xuaW1wb3J0IHsgZ2V0UGFnZUlkRnJvbVVybCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbi8vIEhlbHBlcnMgdm9vciBoYW5kbGViYXJzXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlYmFyc1BsdWdpbihwYXJ0aWFsRGlyZWN0b3J5LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHZpdGVIYW5kbGViYXJzUGx1Z2luKHtcbiAgICAgICAgcGFydGlhbERpcmVjdG9yeSxcbiAgICAgICAgaGVscGVyczoge1xuICAgICAgICAgICAganNvbjogKG9iamVjdCwgaW5kZW50ID0gMCkgPT4gSlNPTi5zdHJpbmdpZnkob2JqZWN0LCB1bmRlZmluZWQsIGluZGVudCksXG4gICAgICAgICAgICBjb25jYXQ6ICguLi5hcmd1bWVudHNfKSA9PiBhcmd1bWVudHNfLnNsaWNlKDAsIC0xKS5qb2luKCcnKSxcbiAgICAgICAgICAgIGVxOiAoYSwgYikgPT4gYSA9PT0gYixcbiAgICAgICAgICAgIG5lcTogKGEsIGIpID0+IGEgIT09IGIsXG4gICAgICAgICAgICBpc2RlZmluZWQ6ICh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICdyZXNvbHZlLXJvb3QnKHApIHtcbiAgICAgICAgICAgICAgICAvLyBUaWpkZWxpamtlIGhhY2sgdm9vciBidWcgaW4gaGFuZGxlYmFycyBwbHVnaW5cbiAgICAgICAgICAgICAgICAvLyB6aWUgb29rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4bGFmcm9zY2lhL3ZpdGUtcGx1Z2luLWhhbmRsZWJhcnMvcHVsbC8xMjlcbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3MucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJyA/IGAvJHtyZXNvbHZlZFBhdGh9YCA6IHJlc29sdmVkUGF0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRleHQocGFnZVBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGdhbWVJZCA9IGdldFBhZ2VJZEZyb21VcmwocGFnZVBhdGgpO1xuICAgICAgICAgICAgaWYgKCFnYW1lSWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2FtZUlkID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgLy8gUGFnaW5hIHNldHRpbmdzIHRlcnVnZ2V2ZW5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IG9wdGlvbnMuc2V0dGluZ3MuZGV2ZWxvcG1lbnQsXG4gICAgICAgICAgICAgICAgICAgIGdhbWVzOiBvcHRpb25zLnNldHRpbmdzLmdhbWVzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPcCBiYXNpcyB2YW4gcGFkIGRhdGEgYmVwYWxlblxuICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zLnNldHRpbmdzLmdhbWVzW2dhbWVJZF07XG4gICAgICAgICAgICAvLyBQYWdpbmEgc2V0dGluZ3MgdGVydWdnZXZlblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbnY6IG9wdGlvbnMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgZGF0YTogc2V0dGluZ3MgPz8ge30sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFuZGxlYmFycy1wbHVnaW4uanMubWFwIiwiaW1wb3J0IHsgZXhpc3RzU3luYywgcHJvbWlzZXMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBjd2QsIGdldFBhZ2VJZEZyb21VcmwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCBQQUdFX1RFTVBMQVRFID0gJ3t7PiBnYW1lIGRhdGE9ZGF0YX19JztcbmNvbnN0IERFVkVMT1BNRU5UX1RFTVBMQVRFID0gJ3t7PiBkZXZlbG9wbWVudCBkYXRhPWRhdGF9fSc7XG5hc3luYyBmdW5jdGlvbiByZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSB7XG4gICAgLy8gQmVzdGFhdCBkaWUgZmlsZSBub2cgbmlldD9cbiAgICBpZiAoIWV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgIC8vIEFhbm1ha2VuXG4gICAgICAgIGF3YWl0IHByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgUEFHRV9URU1QTEFURSk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxQbHVnaW4oZ2FtZXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAndml0ZS1wbHVnaW4ta2xvZWstaHRtbCcsXG4gICAgICAgIGVuZm9yY2U6ICdwcmUnLFxuICAgICAgICBhc3luYyBjb25maWcoX2NvbmZpZywgZW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIC8vIEJpaiBlZW4gYnVpbGQgbWFrZW4gd2UgdGlqZGVsaWprIGZpbGVzIGFhblxuICAgICAgICAgICAgaWYgKGVudmlyb25tZW50LmNvbW1hbmQgPT09ICdidWlsZCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWdlSWQgb2YgT2JqZWN0LmtleXMoZ2FtZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhZCBuYWFyIGZpbGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChyZW5kZXJUZW1wb3JhcnlGaWxlKGZpbGVQYXRoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFjdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb25maWd1cmVTZXJ2ZXIoc2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFpvcmcgZXIgdm9vciBkYXQgdGlqZGVucyBkZXZlbG9wbWVudCBkZSBwYWdpbmEgZ2UtcmVuZGVyZWQgdGVydWcgZ2VnZXZlbiB3b3JkdCB3b3JkdFxuICAgICAgICAgICAgICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoJy8nLCBhc3luYyAocmVxdWVzdCwgcmVzcG9uc2UsIG5leHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gcmVxdWVzdD8udXJsID8/ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlSWQgPSBnZXRQYWdlSWRGcm9tVXJsKHVybCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFnZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VJZCA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGV2ZWxvcG1lbnQ/IGdlZWYgdGVydWcuLi5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKHVybCwgREVWRUxPUE1FTlRfVEVNUExBVEUsIHJlcXVlc3Qub3JpZ2luYWxVcmwpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChPYmplY3Qua2V5cyhnYW1lcykuaW5jbHVkZXMocGFnZUlkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQmVzdGFhbmRlIGdhbWU/IHpvcmcgZXIgdm9vciBkYXQgZGUgdGVtcGxhdGUgZ2UtcmVuZGVyZWQgd29yZHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChhd2FpdCBzZXJ2ZXIudHJhbnNmb3JtSW5kZXhIdG1sKHVybCwgUEFHRV9URU1QTEFURSwgcmVxdWVzdC5vcmlnaW5hbFVybCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmlrcyBnZXZvbmRlblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgICAgICAgLy8gVmVyd2lqZGVyIGRlIGFhbmdlbWFha3RlIGZpbGVzXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2VJZCBvZiBPYmplY3Qua2V5cyhnYW1lcykpIHtcbiAgICAgICAgICAgICAgICAvLyBQYWQgbmFhciBmaWxlXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgYCR7cGFnZUlkfS5odG1sYCk7XG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2gocHJvbWlzZXMucm0oZmlsZVBhdGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoYWN0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwtcGx1Z2luLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBzdmVsdGUsIHZpdGVQcmVwcm9jZXNzIH0gZnJvbSAnQHN2ZWx0ZWpzL3ZpdGUtcGx1Z2luLXN2ZWx0ZSc7XG5pbXBvcnQgdHNjb25maWdQYXRoc1BsdWdpbiBmcm9tICd2aXRlLXRzY29uZmlnLXBhdGhzJztcbmltcG9ydCB7IGN3ZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGhhbmRsZWJhcnNQbHVnaW4gfSBmcm9tICcuL2xpYi9oYW5kbGViYXJzLXBsdWdpbic7XG5pbXBvcnQgeyBodG1sUGx1Z2luIH0gZnJvbSAnLi9saWIvaHRtbC1wbHVnaW4nO1xuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQbHVnaW5zKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBodG1sUGx1Z2luKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLFxuICAgICAgICAuLi5zdmVsdGUoe1xuICAgICAgICAgICAgcHJlcHJvY2Vzczogdml0ZVByZXByb2Nlc3MoKSxcbiAgICAgICAgICAgIG9ud2Fybih3YXJuaW5nLCB3YXJuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3YXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gTm8gYTExeSB3YXJuaW5ncy4uLlxuICAgICAgICAgICAgICAgIGlmICh3YXJuaW5nLmNvZGUuc3RhcnRzV2l0aCgnYTExeS0nKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4od2FybmluZyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgdHNjb25maWdQYXRoc1BsdWdpbih7XG4gICAgICAgICAgICByb290OiBwYXRoLnJlc29sdmUoY3dkKSxcbiAgICAgICAgICAgIC8vIGV4dGVuc2lvbnM6IFsnLnRzJywgJy5qc29uJ10sXG4gICAgICAgICAgICBsb29zZTogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICAgIGhhbmRsZWJhcnNQbHVnaW4ob3B0aW9ucy5jb25maWcuc2VydmUucGFydGlhbHMsIG9wdGlvbnMpLFxuICAgIF07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBjd2QgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgdml0ZUltYWdlbWluIGZyb20gJ0B2aGVlbXN0cmEvdml0ZS1wbHVnaW4taW1hZ2VtaW4nO1xuLy8gVGhlIG1pbmlmaWVycyB5b3Ugd2FudCB0byB1c2U6XG5pbXBvcnQgaW1hZ2VtaW5Nb3pqcGVnIGZyb20gJ2ltYWdlbWluLW1vempwZWcnO1xuaW1wb3J0IGltYWdlbWluUG5nUXVhbnQgZnJvbSAnaW1hZ2VtaW4tcG5ncXVhbnQnO1xuaW1wb3J0IGltYWdlbWluT3B0aVBuZyBmcm9tICdpbWFnZW1pbi1vcHRpcG5nJztcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZW1pblBsdWdpbihlbnZpcm9ubWVudCwgb3B0aW9ucykge1xuICAgIGlmIChlbnZpcm9ubWVudC5tb2RlICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdml0ZUltYWdlbWluKHtcbiAgICAgICAgc2tpcElmTGFyZ2VyOiB0cnVlLFxuICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICByb290OiBwYXRoLmpvaW4ocGF0aC5yZXNvbHZlKGN3ZCksICdwdWJsaWMnKSxcbiAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAganBnOiBbXG4gICAgICAgICAgICAgICAgaW1hZ2VtaW5Nb3pqcGVnKHtcbiAgICAgICAgICAgICAgICAgICAgcXVhbGl0eTogb3B0aW9ucz8uanBlZyA/PyA4MCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHBuZzogW1xuICAgICAgICAgICAgICAgIGltYWdlbWluUG5nUXVhbnQoe1xuICAgICAgICAgICAgICAgICAgICBzdHJpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDIsXG4gICAgICAgICAgICAgICAgICAgIGRpdGhlcmluZzogMC4yNSxcbiAgICAgICAgICAgICAgICAgICAgcXVhbGl0eTogb3B0aW9ucz8ucG5nID8/IFswLjUsIDAuN10sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaW1hZ2VtaW5PcHRpUG5nKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hZ2UtcGx1Z2luLmpzLm1hcCIsImZ1bmN0aW9uIHJlbmRlckdhbWVNYW5pZmVzdChwYWdlSWQsIHNldHRpbmdzLCBjb25maWcpIHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IHtcbiAgICAgICAgc2hvcnRfbmFtZTogYCR7c2V0dGluZ3MubWV0YS5hcHB0aXRsZX1gLFxuICAgICAgICBuYW1lOiBgJHtzZXR0aW5ncy5tZXRhLnRpdGxlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHtzZXR0aW5ncy5tZXRhLmRlc2NyaXB0aW9ufWAsXG4gICAgICAgIHNjb3BlOiBgJHtjb25maWcuYmFzZX0ke3BhZ2VJZH0uaHRtbGAsXG4gICAgICAgIHN0YXJ0X3VybDogYCR7Y29uZmlnLmJhc2V9JHtwYWdlSWR9Lmh0bWxgLFxuICAgICAgICBkaXNwbGF5OiAnZnVsbHNjcmVlbicsXG4gICAgICAgIG9yaWVudGF0aW9uOiBgJHtzZXR0aW5ncy5vcHRpb25zLm9yaWVudGF0aW9uID8/ICdsYW5kc2NhcGUnfWAsXG4gICAgICAgIGljb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3JjOiBgJHtjb25maWcuYmFzZX1tZXRhLyR7c2V0dGluZ3MuaW5mby5pZH0vaWNvbnMvY2hyb21lLXRvdWNoLWljb24tMTkyeDE5Mi5wbmdgLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICAgICAgICAgIHNpemVzOiAnMTkyeDE5MicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNyYzogYCR7Y29uZmlnLmJhc2V9bWV0YS8ke3NldHRpbmdzLmluZm8uaWR9L2ljb25zL2ljb24ucG5nYCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICAgICBzaXplczogJzEwMjR4MTAyNCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBiYWNrZ3JvdW5kX2NvbG9yOiBgJHtzZXR0aW5ncy5vcHRpb25zLmJhY2tncm91bmRDb2xvcn1gLFxuICAgICAgICB0aGVtZV9jb2xvcjogYCR7c2V0dGluZ3Mub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3J9YCxcbiAgICB9O1xuICAgIHJldHVybiBgJHtKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMil9XFxuYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtYW5pZmVzdFBsdWdpbihnYW1lcykge1xuICAgIGxldCBjb25maWc7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWtsb2VrLW1hbmlmZXN0JyxcbiAgICAgICAgZW5mb3JjZTogJ3Bvc3QnLFxuICAgICAgICBhcHBseTogJ2J1aWxkJyxcbiAgICAgICAgYXN5bmMgY29uZmlnUmVzb2x2ZWQocmVzb2x2ZWRDb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IHJlc29sdmVkQ29uZmlnO1xuICAgICAgICB9LFxuICAgICAgICBnZW5lcmF0ZUJ1bmRsZShfLCBidW5kbGUpIHtcbiAgICAgICAgICAgIC8vIFZvb3IgaWVkZXJlIGFwcCBlZW4gbWFuaWZlc3QgbWFrZW46XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtwYWdlSWQsIHNldHRpbmdzXSBvZiBPYmplY3QuZW50cmllcyhnYW1lcykpIHtcbiAgICAgICAgICAgICAgICBidW5kbGVbYCR7cGFnZUlkfS53ZWJtYW5pZmVzdGBdID0ge1xuICAgICAgICAgICAgICAgICAgICBuZWVkc0NvZGVSZWZlcmVuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXNzZXQnLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcmVuZGVyR2FtZU1hbmlmZXN0KHBhZ2VJZCwgc2V0dGluZ3MsIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBgJHtwYWdlSWR9LndlYm1hbmlmZXN0YCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJ1bmRsZVtgJHtwYWdlSWR9LXNlcnZpY2V3b3JrZXIuanNgXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmVlZHNDb2RlUmVmZXJlbmNlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Fzc2V0JyxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IFwic2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKCkgeyByZXR1cm47IH0pO1wiLFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogYCR7cGFnZUlkfS1zZXJ2aWNld29ya2VyLmpzYCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYW5pZmVzdC1wbHVnaW4uanMubWFwIiwiaW1wb3J0IGxlZ2FjeVBsdWdpbiBmcm9tICdAdml0ZWpzL3BsdWdpbi1sZWdhY3knO1xuaW1wb3J0IGJhbm5lclBsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1iYW5uZXInO1xuaW1wb3J0IHsgY3JlYXRlSHRtbFBsdWdpbiB9IGZyb20gJ3ZpdGUtcGx1Z2luLWh0bWwnO1xuaW1wb3J0IHsgaW1hZ2VtaW5QbHVnaW4gfSBmcm9tICcuL2xpYi9pbWFnZS1wbHVnaW4nO1xuaW1wb3J0IHsgbWFuaWZlc3RQbHVnaW4gfSBmcm9tICcuL2xpYi9tYW5pZmVzdC1wbHVnaW4nO1xuLy8gQnVpbGQgcGx1Z2luc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGx1Z2lucyhvcHRpb25zKSB7XG4gICAgLy8gTm8gYnVpbGQ/IG5vIHBsdWdpbnMuLlxuICAgIGlmIChvcHRpb25zLmVudmlyb25tZW50LmNvbW1hbmQgIT09ICdidWlsZCcpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLmxlZ2FjeSkge1xuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHBhZ2Ugd29ya3MgaW4gb2xkZXIgYnJvd3NlcnNcbiAgICAgICAgcGx1Z2lucy5wdXNoKC4uLmxlZ2FjeVBsdWdpbih7XG4gICAgICAgICAgICB0YXJnZXRzOiBvcHRpb25zLmNvbmZpZy5idWlsZC5icm93c2Vyc2xpc3QgPz8gJ2RlZmF1bHRzJyxcbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBjb25zdCBwYWdlcyA9IE9iamVjdC5rZXlzKG9wdGlvbnMuc2V0dGluZ3MuZ2FtZXMpLm1hcCgoZ2FtZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlbmFtZTogYCR7Z2FtZUlkfS5odG1sYCxcbiAgICAgICAgICAgIHRlbXBsYXRlOiBgJHtnYW1lSWR9Lmh0bWxgLFxuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHBsdWdpbnMucHVzaChcbiAgICAvLyBNaW5pZnkgaW1hZ2UgYXNzZXRzXG4gICAgaW1hZ2VtaW5QbHVnaW4ob3B0aW9ucy5lbnZpcm9ubWVudCwgb3B0aW9ucy5jb25maWcuYnVpbGQuaW1hZ2VRdWFsaXR5KSwgXG4gICAgLy8gTWFrZSB0aGUgaHRtbCBvdXRwdXQgc21hbGxlclxuICAgIC4uLmNyZWF0ZUh0bWxQbHVnaW4oeyBtaW5pZnk6IHRydWUsIHBhZ2VzIH0pLCBcbiAgICAvLyBBZGQgYSBiYW5uZXIgdG8gZ2VuZXJhdGVkIGpzL2Nzc1xuICAgIGJhbm5lclBsdWdpbihgXG4gICAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLlxuXG4gICAgICAgICBfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgIF8gICAgICAgICAgICBfXG4gICAgICAgIC8gICkgICAgICAgICAgICAgIHwgIG8gICAgICAgICAvfCAgIC8gfCB8ICAgICAgICAgIHwgfFxuICAgICAgICBcXFxcX18gX3xfICAgICAgICAgX198ICAgICAgX18gICAgIHxfXy8gIHwgfCAgX18gICBfICB8IHxcbiAgICAgICAgICAgXFxcXCB8ICB8ICAgfCAgLyAgfCAgfCAgLyAgXFxcXF8gICB8IFxcXFwgICB8LyAgLyAgXFxcXF98LyAgfC9fKVxuICAgICAgIChfX18vIHxfLyBcXFxcXy98Xy9cXFxcXy98Xy98Xy9cXFxcX18vICAgIHwgIFxcXFxfL3xfXy9cXFxcX18vIHxfXy98IFxcXFxfL1xuXG4gICAgICAgIENvbmNlcHQsIG9udHdlcnAgJiBvbnR3aWtrZWxpbmdcbiAgICAgICAgaHR0cHM6Ly9zdHVkaW9rbG9lay5ubFxuXG4gICAgICAgIFN0dWRpbyBLbG9layDinaQgUGl4aUpTLCBHU0FQICYgaG93bGVyLmpzXG5cbiAgICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuXG5cbiAgICBgKSk7XG4gICAgLy8gQ3JlYXRlIGEgbWFuaWZlc3QgYW5kIG1pbmltYWwgd2Vid29ya2VyIGZvciBldmVyeSBnYW1lXG4gICAgaWYgKG9wdGlvbnMuY29uZmlnLmJ1aWxkLm1hbmlmZXN0KSB7XG4gICAgICAgIHBsdWdpbnMucHVzaChtYW5pZmVzdFBsdWdpbihvcHRpb25zLnNldHRpbmdzLmdhbWVzKSk7XG4gICAgfVxuICAgIHJldHVybiBwbHVnaW5zLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luICE9PSB1bmRlZmluZWQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGQuanMubWFwIiwiaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCBmdWxsUmVsb2FkIGZyb20gJ3ZpdGUtcGx1Z2luLWZ1bGwtcmVsb2FkJztcbmltcG9ydCBta2NlcnQgZnJvbSAndml0ZS1wbHVnaW4tbWtjZXJ0JztcbmltcG9ydCBjaGVja2VyIGZyb20gJ3ZpdGUtcGx1Z2luLWNoZWNrZXInO1xuaW1wb3J0IHsgY3dkIH0gZnJvbSAnLi4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZlUGx1Z2lucygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBmdWxsUmVsb2FkKFsnc2NyaXB0LyoqLyoudHMnLCAnc3ZlbHRlLyoqLyouc3ZlbHRlJ10sIHtcbiAgICAgICAgICAgIHJvb3Q6IHBhdGguam9pbihwYXRoLnJlc29sdmUoY3dkKSwgJ3NvdXJjZScpLFxuICAgICAgICAgICAgbG9nOiB0cnVlLFxuICAgICAgICAgICAgYWx3YXlzOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICAgbWtjZXJ0KCksXG4gICAgICAgIGNoZWNrZXIoe1xuICAgICAgICAgICAgdHlwZXNjcmlwdDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgXTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlLmpzLm1hcCIsImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgYmFzZVBsdWdpbnMgfSBmcm9tICcuL3BsdWdpbnMvYmFzZSc7XG5pbXBvcnQgeyBidWlsZFBsdWdpbnMgfSBmcm9tICcuL3BsdWdpbnMvYnVpbGQnO1xuaW1wb3J0IHsgc2VydmVQbHVnaW5zIH0gZnJvbSAnLi9wbHVnaW5zL3NlcnZlJztcbmltcG9ydCB7IGN3ZCwgZGVmaW5lQnVpbGRDb25maWcsIGdldFBhZ2VUb1NlcnZlLCBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzLCByZWFkSlNPTiwgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlZmluZUtsb2VrVml0ZUNvbmZpZyhlbnZpcm9ubWVudCkge1xuICAgIGNvbnN0IHBrZyA9IHJlYWRKU09OKHBhdGgucmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKSk7XG4gICAgY29uc3Qga2xvZWtDb25maWcgPSBwa2cudml0ZTtcbiAgICBjb25zdCBicm93c2Vyc2xpc3QgPSBwa2cuYnJvd3NlcnNsaXN0O1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnKSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIHNldHRpbmdzOiBwYXJzZVBhY2thZ2VHYW1lc1NldHRpbmdzKHBrZy5zZXR0aW5ncyksXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgLi4ua2xvZWtDb25maWcsXG4gICAgICAgICAgICBidWlsZDogeyAuLi5rbG9la0NvbmZpZy5idWlsZCwgYnJvd3NlcnNsaXN0IH0sXG4gICAgICAgICAgICBzZXJ2ZToge1xuICAgICAgICAgICAgICAgIHBhcnRpYWxzOiBbXG4gICAgICAgICAgICAgICAgICAgIHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdwYXJ0aWFscycpLFxuICAgICAgICAgICAgICAgICAgICBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3BhcnRpYWxzJyksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgIGxvZ0xldmVsOiAnaW5mbycsXG4gICAgICAgIGJhc2U6IGtsb2VrQ29uZmlnLmJ1aWxkLmJhc2VQYXRoLFxuICAgICAgICByb290OiBvcHRpb25zLnJvb3QsXG4gICAgICAgIGVudkRpcjogcGF0aC5yZXNvbHZlKGN3ZCwgJ2VudicpLFxuICAgICAgICBlbnZQcmVmaXg6IFsnS0xPRUtfJywgJ1ZJVEVfJ10sXG4gICAgICAgIHB1YmxpY0RpcjogJ3N0YXRpYycsXG4gICAgICAgIGRlZmluZToge30sXG4gICAgICAgIGVzYnVpbGQ6IHtcbiAgICAgICAgICAgIGxlZ2FsQ29tbWVudHM6ICdub25lJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgZGVkdXBlOiBbXG4gICAgICAgICAgICAgICAgJ0BzdHVkaW9rbG9lay90cy1jb3JlLWxpYicsXG4gICAgICAgICAgICAgICAgJ0BjYXBhY2l0b3IvYXBwJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9jb3JlJyxcbiAgICAgICAgICAgICAgICAnQGNhcGFjaXRvci9kZXZpY2UnLFxuICAgICAgICAgICAgICAgICdAY2FwYWNpdG9yL25ldHdvcmsnLFxuICAgICAgICAgICAgICAgICdAY2FwYWNpdG9yL3NwbGFzaC1zY3JlZW4nLFxuICAgICAgICAgICAgICAgICdAY2FwYWNpdG9yL3N0YXR1cy1iYXInLFxuICAgICAgICAgICAgICAgICdAY2FwYWNpdG9yL3ByZWZlcmVuY2VzJyxcbiAgICAgICAgICAgICAgICAnYm93c2VyJyxcbiAgICAgICAgICAgICAgICAnZm9udGZhY2VvYnNlcnZlcicsXG4gICAgICAgICAgICAgICAgJ2dzYXAnLFxuICAgICAgICAgICAgICAgICdob3dsZXInLFxuICAgICAgICAgICAgICAgICdsb2Rhc2gtZGVjb3JhdG9ycy1lc20nLFxuICAgICAgICAgICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAgICAgICAgICdwaXhpLXNwaW5lJyxcbiAgICAgICAgICAgICAgICAncGl4aS5qcycsXG4gICAgICAgICAgICAgICAgJ3B1YnN1Yi1qcycsXG4gICAgICAgICAgICAgICAgJ3JhbmRvbS1qcycsXG4gICAgICAgICAgICAgICAgJ3Jlc3MnLFxuICAgICAgICAgICAgICAgICdzbHVnaWZ5JyxcbiAgICAgICAgICAgICAgICAnc3VwZXJhZ2VudCcsXG4gICAgICAgICAgICAgICAgJ3RzLWV2ZW50cycsXG4gICAgICAgICAgICAgICAgJ3RzLW1peGVyJyxcbiAgICAgICAgICAgICAgICAndHNsaWInLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgICAgICAgbG9kYXNoOiAnbG9kYXNoLWVzJyxcbiAgICAgICAgICAgICAgICAnQG1ldGEnOiBwYXRoLnJlc29sdmUoY3dkLCAnc291cmNlJywgJ3N0YXRpYycsICdtZXRhJyksXG4gICAgICAgICAgICAgICAgJ0Bmb250cyc6IHBhdGgucmVzb2x2ZShjd2QsICdzb3VyY2UnLCAnc3RhdGljJywgJ2ZvbnRzJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzY3NzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNoYXJzZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAvLyBBZGRpdGlvbmFsRGF0YTogYEBjaGFyc2V0IFwiVVRGLThcImAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IFsuLi5iYXNlUGx1Z2lucyhvcHRpb25zKV0sXG4gICAgfTtcbiAgICBzd2l0Y2ggKGVudmlyb25tZW50LmNvbW1hbmQpIHtcbiAgICAgICAgY2FzZSAnc2VydmUnOlxuICAgICAgICAgICAgY29uZmlnLnNlcnZlciA9IHtcbiAgICAgICAgICAgICAgICBob3N0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvcnM6IG9wdGlvbnMuY29uZmlnLmRldi5jb3JzID8/IHRydWUsXG4gICAgICAgICAgICAgICAgaHR0cHM6IG9wdGlvbnMuY29uZmlnLmRldi5odHRwcyA/PyB0cnVlLFxuICAgICAgICAgICAgICAgIG9wZW46IGdldFBhZ2VUb1NlcnZlKG9wdGlvbnMuY29uZmlnLCBvcHRpb25zLnNldHRpbmdzLmdhbWVzKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgICAgICAgICAuLi5zZXJ2ZVBsdWdpbnMoKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYnVpbGQnOlxuICAgICAgICAgICAgY29uZmlnLmJ1aWxkID0gZGVmaW5lQnVpbGRDb25maWcob3B0aW9ucyk7XG4gICAgICAgICAgICBjb25maWcucGx1Z2lucyA9IFtcbiAgICAgICAgICAgICAgICAuLi4oY29uZmlnLnBsdWdpbnMgPyBjb25maWcucGx1Z2lucyA6IFtdKSxcbiAgICAgICAgICAgICAgICAuLi5idWlsZFBsdWdpbnMob3B0aW9ucyksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICAgIHJldHVybiBjb25maWc7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25maWcuanMubWFwIiwiaW1wb3J0IHsgYnVpbGQsIGNyZWF0ZVNlcnZlciB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IHsgZGVmaW5lS2xvZWtWaXRlQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGtsb2VrRGV2ZWxvcG1lbnQoZmxhZ3MpIHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBkZWZpbmVLbG9la1ZpdGVDb25maWcoe1xuICAgICAgICBjb21tYW5kOiAnc2VydmUnLFxuICAgICAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICAgIH0pO1xuICAgIC8vIERpZmZlcmVudCBtb2RlXG4gICAgaWYgKHR5cGVvZiBmbGFncy5tb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25maWcubW9kZSA9IGZsYWdzLm1vZGU7XG4gICAgfVxuICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgfSk7XG4gICAgYXdhaXQgc2VydmVyLmxpc3RlbigpO1xuICAgIHNlcnZlci5wcmludFVybHMoKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBrbG9la0J1aWxkKGZsYWdzKSB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgZGVmaW5lS2xvZWtWaXRlQ29uZmlnKHtcbiAgICAgICAgY29tbWFuZDogJ2J1aWxkJyxcbiAgICAgICAgbW9kZTogJ3Byb2R1Y3Rpb24nLFxuICAgIH0pO1xuICAgIC8vIEVtcHR5IG91dCB0aGUgT3V0cHV0IGRpciBiZWZvcmUgYnVpbGRpbmc/XG4gICAgaWYgKGZsYWdzLmVtcHR5T3V0RGlyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uZmlnLmJ1aWxkID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLmJ1aWxkLFxuICAgICAgICAgICAgZW1wdHlPdXREaXI6IGZsYWdzLmVtcHR5T3V0RGlyLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyBEaWZmZXJlbnQgYmFzZSBwYXRoXG4gICAgaWYgKHR5cGVvZiBmbGFncy5iYXNlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25maWcuYmFzZSA9IGZsYWdzLmJhc2U7XG4gICAgfVxuICAgIC8vIERpZmZlcmVudCBtb2RlXG4gICAgaWYgKHR5cGVvZiBmbGFncy5tb2RlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25maWcubW9kZSA9IGZsYWdzLm1vZGU7XG4gICAgfVxuICAgIGF3YWl0IGJ1aWxkKHtcbiAgICAgICAgY29uZmlnRmlsZTogZmFsc2UsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLFNBQVMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7QUFDckQsSUFBSSxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDeEI7QUFDQSxJQUFJLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO0FBQ3RDLFFBQVEsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHO0FBQzdCLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ2hDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0FBQzdCLFNBQVMsQ0FBQztBQUNWLEtBQUs7QUFDTCxJQUFJLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFDTSxTQUFTLHlCQUF5QixDQUFDLGVBQWUsRUFBRTtBQUMzRDtBQUNBLElBQUksTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7QUFD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiokloek/vite-config",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "license": "MIT",
5
5
  "author": "Martijn Swart <opensource@studiokloek.nl> (https://studiokloek.nl)",
6
6
  "description": "Base Vite config for usage in our projects.",