every-plugin 0.4.9 → 0.4.11

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 (58) hide show
  1. package/dist/build/rspack/index.cjs +45 -7
  2. package/dist/build/rspack/index.mjs +45 -7
  3. package/dist/{errors-CVnoPl9v.cjs → errors-BEsEPXKG.cjs} +2 -2
  4. package/dist/errors-CpYzD_-M.d.cts +38 -0
  5. package/dist/errors-D2-thHKG.d.mts +38 -0
  6. package/dist/{errors-D7keKf7a.mjs → errors-DnigICIv.mjs} +2 -2
  7. package/dist/errors.cjs +2 -2
  8. package/dist/errors.d.cts +1 -2
  9. package/dist/errors.d.mts +1 -2
  10. package/dist/errors.mjs +2 -2
  11. package/dist/{fetch-Cc95-7kM.cjs → fetch-CGzn1Uf7.cjs} +2 -2
  12. package/dist/{fetch-KLktuWuM.mjs → fetch-ycs0raYN.mjs} +2 -2
  13. package/dist/{index-matrPV4m.d.cts → index-BXfi8DqC.d.cts} +1 -1
  14. package/dist/{index-bwAhA9ca.d.mts → index-DvIxKA8K.d.mts} +2 -2
  15. package/dist/index.cjs +4 -4
  16. package/dist/index.d.cts +3 -4
  17. package/dist/index.d.mts +3 -4
  18. package/dist/index.mjs +4 -4
  19. package/dist/{normalize-BLTyqFww.d.mts → normalize-BCE_FLe8.d.mts} +1 -1
  20. package/dist/{normalize-BW7kk8Lk.d.cts → normalize-Tt7I_RdD.d.cts} +1 -1
  21. package/dist/package-C2Mp8qeD.cjs +155 -0
  22. package/dist/package-uEsV9Z-2.mjs +150 -0
  23. package/dist/plugins-Cmsm3gW1.cjs +791 -0
  24. package/dist/plugins-hpi2GlaX.mjs +790 -0
  25. package/dist/runtime/index.cjs +2 -2
  26. package/dist/runtime/index.d.cts +3 -4
  27. package/dist/runtime/index.d.mts +3 -4
  28. package/dist/runtime/index.mjs +2 -2
  29. package/dist/runtime/services/normalize.d.cts +1 -1
  30. package/dist/runtime/services/normalize.d.mts +1 -1
  31. package/dist/{runtime-Daw9Tlz6.mjs → runtime-BUQ0hy1J.mjs} +3 -3
  32. package/dist/{runtime-CWCl3EIz.cjs → runtime-LlP2xpdB.cjs} +3 -3
  33. package/dist/{standard-eUgUkWaf.cjs → standard-0wBehDUp.cjs} +1 -18
  34. package/dist/{standard-DaxKTFui.mjs → standard-CYaRay89.mjs} +2 -13
  35. package/dist/testing/index.cjs +2 -2
  36. package/dist/testing/index.d.cts +4 -5
  37. package/dist/testing/index.d.mts +4 -5
  38. package/dist/testing/index.mjs +2 -2
  39. package/dist/zod-BDDjyyHQ.mjs +10 -0
  40. package/dist/{zod-DYghWCz1.cjs → zod-CJY4vNLR.cjs} +2 -2
  41. package/dist/zod.cjs +4 -4
  42. package/dist/zod.d.cts +1 -2
  43. package/dist/zod.d.mts +1 -2
  44. package/dist/zod.mjs +2 -2
  45. package/package.json +3 -2
  46. package/dist/errors-Car4tFVP.d.mts +0 -75
  47. package/dist/errors-DKPPPYYT.d.cts +0 -75
  48. package/dist/openapi.DrTcell5-C6kyDyUK.mjs +0 -669
  49. package/dist/openapi.DrTcell5-DDf4D5V3.cjs +0 -687
  50. package/dist/package-BwFfsvZZ.mjs +0 -149
  51. package/dist/package-CSi-6ikY.cjs +0 -154
  52. package/dist/plugins-C-7lh5gK.cjs +0 -128
  53. package/dist/plugins-Ps5Xxpk2.mjs +0 -128
  54. package/dist/zod-A7Pti5IV.d.cts +0 -4
  55. package/dist/zod-BVo51kgJ.mjs +0 -10
  56. package/dist/zod-D4CFw8d9.d.mts +0 -4
  57. package/dist/zod4-BXTBR1od.cjs +0 -318
  58. package/dist/zod4-VpXuwRO7.mjs +0 -317
package/dist/errors.d.mts CHANGED
@@ -1,3 +1,2 @@
1
- import "./zod-D4CFw8d9.mjs";
2
- import { t as CommonPluginErrors } from "./errors-Car4tFVP.mjs";
1
+ import { t as CommonPluginErrors } from "./errors-D2-thHKG.mjs";
3
2
  export { CommonPluginErrors };
package/dist/errors.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import "./zod-BVo51kgJ.mjs";
2
- import { t as CommonPluginErrors } from "./errors-D7keKf7a.mjs";
1
+ import "./zod-BDDjyyHQ.mjs";
2
+ import { t as CommonPluginErrors } from "./errors-DnigICIv.mjs";
3
3
 
4
4
  export { CommonPluginErrors };
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-zltIcp7o.cjs');
2
- const require_standard = require('./standard-eUgUkWaf.cjs');
2
+ const require_standard = require('./standard-0wBehDUp.cjs');
3
3
  let __orpc_server = require("@orpc/server");
4
4
  let __orpc_contract = require("@orpc/contract");
5
5
  let __orpc_server_fetch = require("@orpc/server/fetch");
@@ -333,4 +333,4 @@ var OpenAPIHandler = class extends __orpc_server_fetch.FetchHandler {
333
333
 
334
334
  //#endregion
335
335
  exports.OpenAPIHandler = OpenAPIHandler;
336
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtQ2M5NS03a00uY2pzIiwibmFtZXMiOlsiaXNPYmplY3QiLCJ2YWx1ZSIsIiNpc0RldGFpbGVkT3V0cHV0Iiwic3RyaW5naWZ5SlNPTiIsImlzT1JQQ0Vycm9yU3RhdHVzIiwic3RhbmRhcmRpemVIVFRQUGF0aCIsInRyeURlY29kZVVSSUNvbXBvbmVudCIsInRvSHR0cFBhdGgiLCJTdGFuZGFyZEhhbmRsZXIiLCJTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyIiwiU3RhbmRhcmRPcGVuQVBJSnNvblNlcmlhbGl6ZXIiLCJTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIiLCJGZXRjaEhhbmRsZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLmJ1bi9yb3UzQDAuNy4xMC9ub2RlX21vZHVsZXMvcm91My9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8uYnVuL0BvcnBjK29wZW5hcGlAMS4xMC40L25vZGVfbW9kdWxlcy9Ab3JwYy9vcGVuYXBpL2Rpc3Qvc2hhcmVkL29wZW5hcGkuREl0LVo5VzEubWpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5idW4vQG9ycGMrb3BlbmFwaUAxLjEwLjQvbm9kZV9tb2R1bGVzL0BvcnBjL29wZW5hcGkvZGlzdC9hZGFwdGVycy9mZXRjaC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTnVsbFByb3RvT2JqID0gLyogQF9fUFVSRV9fICovICgoKSA9PiB7XG5cdGNvbnN0IGUgPSBmdW5jdGlvbigpIHt9O1xuXHRyZXR1cm4gZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKG51bGwpLCBPYmplY3QuZnJlZXplKGUucHJvdG90eXBlKSwgZTtcbn0pKCk7XG5cbi8qKlxuKiBDcmVhdGUgYSBuZXcgcm91dGVyIGNvbnRleHQuXG4qL1xuZnVuY3Rpb24gY3JlYXRlUm91dGVyKCkge1xuXHRyZXR1cm4ge1xuXHRcdHJvb3Q6IHsga2V5OiBcIlwiIH0sXG5cdFx0c3RhdGljOiBuZXcgTnVsbFByb3RvT2JqKClcblx0fTtcbn1cblxuZnVuY3Rpb24gc3BsaXRQYXRoKHBhdGgpIHtcblx0Y29uc3QgW18sIC4uLnNdID0gcGF0aC5zcGxpdChcIi9cIik7XG5cdHJldHVybiBzW3MubGVuZ3RoIC0gMV0gPT09IFwiXCIgPyBzLnNsaWNlKDAsIC0xKSA6IHM7XG59XG5mdW5jdGlvbiBnZXRNYXRjaFBhcmFtcyhzZWdtZW50cywgcGFyYW1zTWFwKSB7XG5cdGNvbnN0IHBhcmFtcyA9IG5ldyBOdWxsUHJvdG9PYmooKTtcblx0Zm9yIChjb25zdCBbaW5kZXgsIG5hbWVdIG9mIHBhcmFtc01hcCkge1xuXHRcdGNvbnN0IHNlZ21lbnQgPSBpbmRleCA8IDAgPyBzZWdtZW50cy5zbGljZSgtMSAqIGluZGV4KS5qb2luKFwiL1wiKSA6IHNlZ21lbnRzW2luZGV4XTtcblx0XHRpZiAodHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIpIHBhcmFtc1tuYW1lXSA9IHNlZ21lbnQ7XG5cdFx0ZWxzZSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IHNlZ21lbnQubWF0Y2gobmFtZSk7XG5cdFx0XHRpZiAobWF0Y2gpIGZvciAoY29uc3Qga2V5IGluIG1hdGNoLmdyb3VwcykgcGFyYW1zW2tleV0gPSBtYXRjaC5ncm91cHNba2V5XTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHBhcmFtcztcbn1cblxuLyoqXG4qIEFkZCBhIHJvdXRlIHRvIHRoZSByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiBhZGRSb3V0ZShjdHgsIG1ldGhvZCA9IFwiXCIsIHBhdGgsIGRhdGEpIHtcblx0bWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQoMCkgIT09IDQ3KSBwYXRoID0gYC8ke3BhdGh9YDtcblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGxldCBub2RlID0gY3R4LnJvb3Q7XG5cdGxldCBfdW5uYW1lZFBhcmFtSW5kZXggPSAwO1xuXHRjb25zdCBwYXJhbXNNYXAgPSBbXTtcblx0Y29uc3QgcGFyYW1zUmVnZXhwID0gW107XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbaV07XG5cdFx0aWYgKHNlZ21lbnQuc3RhcnRzV2l0aChcIioqXCIpKSB7XG5cdFx0XHRpZiAoIW5vZGUud2lsZGNhcmQpIG5vZGUud2lsZGNhcmQgPSB7IGtleTogXCIqKlwiIH07XG5cdFx0XHRub2RlID0gbm9kZS53aWxkY2FyZDtcblx0XHRcdHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0LWksXG5cdFx0XHRcdHNlZ21lbnQuc3BsaXQoXCI6XCIpWzFdIHx8IFwiX1wiLFxuXHRcdFx0XHRzZWdtZW50Lmxlbmd0aCA9PT0gMlxuXHRcdFx0XSk7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0aWYgKHNlZ21lbnQgPT09IFwiKlwiIHx8IHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIpKSB7XG5cdFx0XHRpZiAoIW5vZGUucGFyYW0pIG5vZGUucGFyYW0gPSB7IGtleTogXCIqXCIgfTtcblx0XHRcdG5vZGUgPSBub2RlLnBhcmFtO1xuXHRcdFx0aWYgKHNlZ21lbnQgPT09IFwiKlwiKSBwYXJhbXNNYXAucHVzaChbXG5cdFx0XHRcdGksXG5cdFx0XHRcdGBfJHtfdW5uYW1lZFBhcmFtSW5kZXgrK31gLFxuXHRcdFx0XHR0cnVlXG5cdFx0XHRdKTtcblx0XHRcdGVsc2UgaWYgKHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIsIDEpKSB7XG5cdFx0XHRcdGNvbnN0IHJlZ2V4cCA9IGdldFBhcmFtUmVnZXhwKHNlZ21lbnQpO1xuXHRcdFx0XHRwYXJhbXNSZWdleHBbaV0gPSByZWdleHA7XG5cdFx0XHRcdG5vZGUuaGFzUmVnZXhQYXJhbSA9IHRydWU7XG5cdFx0XHRcdHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0XHRpLFxuXHRcdFx0XHRcdHJlZ2V4cCxcblx0XHRcdFx0XHRmYWxzZVxuXHRcdFx0XHRdKTtcblx0XHRcdH0gZWxzZSBwYXJhbXNNYXAucHVzaChbXG5cdFx0XHRcdGksXG5cdFx0XHRcdHNlZ21lbnQuc2xpY2UoMSksXG5cdFx0XHRcdGZhbHNlXG5cdFx0XHRdKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRjb25zdCBjaGlsZCA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdFx0aWYgKGNoaWxkKSBub2RlID0gY2hpbGQ7XG5cdFx0ZWxzZSB7XG5cdFx0XHRjb25zdCBzdGF0aWNOb2RlID0geyBrZXk6IHNlZ21lbnQgfTtcblx0XHRcdGlmICghbm9kZS5zdGF0aWMpIG5vZGUuc3RhdGljID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRcdFx0bm9kZS5zdGF0aWNbc2VnbWVudF0gPSBzdGF0aWNOb2RlO1xuXHRcdFx0bm9kZSA9IHN0YXRpY05vZGU7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGhhc1BhcmFtcyA9IHBhcmFtc01hcC5sZW5ndGggPiAwO1xuXHRpZiAoIW5vZGUubWV0aG9kcykgbm9kZS5tZXRob2RzID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRub2RlLm1ldGhvZHNbbWV0aG9kXSA/Pz0gW107XG5cdG5vZGUubWV0aG9kc1ttZXRob2RdLnB1c2goe1xuXHRcdGRhdGE6IGRhdGEgfHwgbnVsbCxcblx0XHRwYXJhbXNSZWdleHAsXG5cdFx0cGFyYW1zTWFwOiBoYXNQYXJhbXMgPyBwYXJhbXNNYXAgOiB2b2lkIDBcblx0fSk7XG5cdGlmICghaGFzUGFyYW1zKSBjdHguc3RhdGljW3BhdGhdID0gbm9kZTtcbn1cbmZ1bmN0aW9uIGdldFBhcmFtUmVnZXhwKHNlZ21lbnQpIHtcblx0Y29uc3QgcmVnZXggPSBzZWdtZW50LnJlcGxhY2UoLzooXFx3KykvZywgKF8sIGlkKSA9PiBgKD88JHtpZH0+W14vXSspYCkucmVwbGFjZSgvXFwuL2csIFwiXFxcXC5cIik7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8gbmV3IFJlZ0V4cChgXiR7cmVnZXh9JGApO1xufVxuXG4vKipcbiogRmluZCBhIHJvdXRlIGJ5IHBhdGguXG4qL1xuZnVuY3Rpb24gZmluZFJvdXRlKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgb3B0cykge1xuXHRpZiAocGF0aC5jaGFyQ29kZUF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3KSBwYXRoID0gcGF0aC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IHN0YXRpY05vZGUgPSBjdHguc3RhdGljW3BhdGhdO1xuXHRpZiAoc3RhdGljTm9kZSAmJiBzdGF0aWNOb2RlLm1ldGhvZHMpIHtcblx0XHRjb25zdCBzdGF0aWNNYXRjaCA9IHN0YXRpY05vZGUubWV0aG9kc1ttZXRob2RdIHx8IHN0YXRpY05vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAoc3RhdGljTWF0Y2ggIT09IHZvaWQgMCkgcmV0dXJuIHN0YXRpY01hdGNoWzBdO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgY3R4LnJvb3QsIG1ldGhvZCwgc2VnbWVudHMsIDApPy5bMF07XG5cdGlmIChtYXRjaCA9PT0gdm9pZCAwKSByZXR1cm47XG5cdGlmIChvcHRzPy5wYXJhbXMgPT09IGZhbHNlKSByZXR1cm4gbWF0Y2g7XG5cdHJldHVybiB7XG5cdFx0ZGF0YTogbWF0Y2guZGF0YSxcblx0XHRwYXJhbXM6IG1hdGNoLnBhcmFtc01hcCA/IGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBtYXRjaC5wYXJhbXNNYXApIDogdm9pZCAwXG5cdH07XG59XG5mdW5jdGlvbiBfbG9va3VwVHJlZShjdHgsIG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4KSB7XG5cdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoKSB7XG5cdFx0aWYgKG5vZGUubWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWF0Y2ggPSBub2RlLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLm1ldGhvZHNbXCJcIl07XG5cdFx0XHRpZiAobWF0Y2gpIHJldHVybiBtYXRjaDtcblx0XHR9XG5cdFx0aWYgKG5vZGUucGFyYW0gJiYgbm9kZS5wYXJhbS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUucGFyYW0ubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUucGFyYW0ubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIHJldHVybiBtYXRjaDtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG5vZGUud2lsZGNhcmQgJiYgbm9kZS53aWxkY2FyZC5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIHJldHVybiBtYXRjaDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG5cdGlmIChub2RlLnN0YXRpYykge1xuXHRcdGNvbnN0IHN0YXRpY0NoaWxkID0gbm9kZS5zdGF0aWNbc2VnbWVudF07XG5cdFx0aWYgKHN0YXRpY0NoaWxkKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgc3RhdGljQ2hpbGQsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0XHRpZiAobWF0Y2gpIHJldHVybiBtYXRjaDtcblx0XHR9XG5cdH1cblx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgbm9kZS5wYXJhbSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdGlmIChub2RlLnBhcmFtLmhhc1JlZ2V4UGFyYW0pIHtcblx0XHRcdFx0Y29uc3QgZXhhY3RNYXRjaCA9IG1hdGNoLmZpbmQoKG0pID0+IG0ucGFyYW1zUmVnZXhwW2luZGV4XT8udGVzdChzZWdtZW50KSkgfHwgbWF0Y2guZmluZCgobSkgPT4gIW0ucGFyYW1zUmVnZXhwW2luZGV4XSk7XG5cdFx0XHRcdHJldHVybiBleGFjdE1hdGNoID8gW2V4YWN0TWF0Y2hdIDogdm9pZCAwO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0fVxuXHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHJldHVybiBub2RlLndpbGRjYXJkLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLndpbGRjYXJkLm1ldGhvZHNbXCJcIl07XG59XG5cbi8qKlxuKiBSZW1vdmUgYSByb3V0ZSBmcm9tIHRoZSByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiByZW1vdmVSb3V0ZShjdHgsIG1ldGhvZCwgcGF0aCkge1xuXHRjb25zdCBzZWdtZW50cyA9IHNwbGl0UGF0aChwYXRoKTtcblx0cmV0dXJuIF9yZW1vdmUoY3R4LnJvb3QsIG1ldGhvZCB8fCBcIlwiLCBzZWdtZW50cywgMCk7XG59XG5mdW5jdGlvbiBfcmVtb3ZlKG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4KSB7XG5cdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoKSB7XG5cdFx0aWYgKG5vZGUubWV0aG9kcyAmJiBtZXRob2QgaW4gbm9kZS5tZXRob2RzKSB7XG5cdFx0XHRkZWxldGUgbm9kZS5tZXRob2RzW21ldGhvZF07XG5cdFx0XHRpZiAoT2JqZWN0LmtleXMobm9kZS5tZXRob2RzKS5sZW5ndGggPT09IDApIG5vZGUubWV0aG9kcyA9IHZvaWQgMDtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG5cdGlmIChzZWdtZW50ID09PSBcIipcIikge1xuXHRcdGlmIChub2RlLnBhcmFtKSB7XG5cdFx0XHRfcmVtb3ZlKG5vZGUucGFyYW0sIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0XHRpZiAoX2lzRW1wdHlOb2RlKG5vZGUucGFyYW0pKSBub2RlLnBhcmFtID0gdm9pZCAwO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKHNlZ21lbnQuc3RhcnRzV2l0aChcIioqXCIpKSB7XG5cdFx0aWYgKG5vZGUud2lsZGNhcmQpIHtcblx0XHRcdF9yZW1vdmUobm9kZS53aWxkY2FyZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChfaXNFbXB0eU5vZGUobm9kZS53aWxkY2FyZCkpIG5vZGUud2lsZGNhcmQgPSB2b2lkIDA7XG5cdFx0fVxuXHRcdHJldHVybjtcblx0fVxuXHRjb25zdCBjaGlsZE5vZGUgPSBub2RlLnN0YXRpYz8uW3NlZ21lbnRdO1xuXHRpZiAoY2hpbGROb2RlKSB7XG5cdFx0X3JlbW92ZShjaGlsZE5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0aWYgKF9pc0VtcHR5Tm9kZShjaGlsZE5vZGUpKSB7XG5cdFx0XHRkZWxldGUgbm9kZS5zdGF0aWNbc2VnbWVudF07XG5cdFx0XHRpZiAoT2JqZWN0LmtleXMobm9kZS5zdGF0aWMpLmxlbmd0aCA9PT0gMCkgbm9kZS5zdGF0aWMgPSB2b2lkIDA7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBfaXNFbXB0eU5vZGUobm9kZSkge1xuXHRyZXR1cm4gbm9kZS5tZXRob2RzID09PSB2b2lkIDAgJiYgbm9kZS5zdGF0aWMgPT09IHZvaWQgMCAmJiBub2RlLnBhcmFtID09PSB2b2lkIDAgJiYgbm9kZS53aWxkY2FyZCA9PT0gdm9pZCAwO1xufVxuXG4vKipcbiogRmluZCBhbGwgcm91dGUgcGF0dGVybnMgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gcGF0aC5cbiovXG5mdW5jdGlvbiBmaW5kQWxsUm91dGVzKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgb3B0cykge1xuXHRpZiAocGF0aC5jaGFyQ29kZUF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3KSBwYXRoID0gcGF0aC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBtYXRjaGVzID0gX2ZpbmRBbGwoY3R4LCBjdHgucm9vdCwgbWV0aG9kLCBzZWdtZW50cywgMCk7XG5cdGlmIChvcHRzPy5wYXJhbXMgPT09IGZhbHNlKSByZXR1cm4gbWF0Y2hlcztcblx0cmV0dXJuIG1hdGNoZXMubWFwKChtKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRhdGE6IG0uZGF0YSxcblx0XHRcdHBhcmFtczogbS5wYXJhbXNNYXAgPyBnZXRNYXRjaFBhcmFtcyhzZWdtZW50cywgbS5wYXJhbXNNYXApIDogdm9pZCAwXG5cdFx0fTtcblx0fSk7XG59XG5mdW5jdGlvbiBfZmluZEFsbChjdHgsIG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4LCBtYXRjaGVzID0gW10pIHtcblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKG5vZGUud2lsZGNhcmQgJiYgbm9kZS53aWxkY2FyZC5tZXRob2RzKSB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBub2RlLndpbGRjYXJkLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLndpbGRjYXJkLm1ldGhvZHNbXCJcIl07XG5cdFx0aWYgKG1hdGNoKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHR9XG5cdGlmIChub2RlLnBhcmFtKSB7XG5cdFx0X2ZpbmRBbGwoY3R4LCBub2RlLnBhcmFtLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEsIG1hdGNoZXMpO1xuXHRcdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoICYmIG5vZGUucGFyYW0ubWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWF0Y2ggPSBub2RlLnBhcmFtLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLnBhcmFtLm1ldGhvZHNbXCJcIl07XG5cdFx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdFx0Y29uc3QgcE1hcCA9IG1hdGNoWzBdLnBhcmFtc01hcDtcblx0XHRcdFx0aWYgKHBNYXA/LltwTWFwPy5sZW5ndGggLSAxXT8uWzJdKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRjb25zdCBzdGF0aWNDaGlsZCA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdGlmIChzdGF0aWNDaGlsZCkgX2ZpbmRBbGwoY3R4LCBzdGF0aWNDaGlsZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxLCBtYXRjaGVzKTtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggJiYgbm9kZS5tZXRob2RzKSB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBub2RlLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLm1ldGhvZHNbXCJcIl07XG5cdFx0aWYgKG1hdGNoKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHR9XG5cdHJldHVybiBtYXRjaGVzO1xufVxuXG5mdW5jdGlvbiByb3V0ZVRvUmVnRXhwKHJvdXRlID0gXCIvXCIpIHtcblx0Y29uc3QgcmVTZWdtZW50cyA9IFtdO1xuXHRsZXQgaWRDdHIgPSAwO1xuXHRmb3IgKGNvbnN0IHNlZ21lbnQgb2Ygcm91dGUuc3BsaXQoXCIvXCIpKSB7XG5cdFx0aWYgKCFzZWdtZW50KSBjb250aW51ZTtcblx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIpIHJlU2VnbWVudHMucHVzaChgKD88XyR7aWRDdHIrK30+W14vXSopYCk7XG5cdFx0ZWxzZSBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHJlU2VnbWVudHMucHVzaChzZWdtZW50ID09PSBcIioqXCIgPyBcIj8oPzxfPi4qKVwiIDogYD8oPzwke3NlZ21lbnQuc2xpY2UoMyl9Pi4rKWApO1xuXHRcdGVsc2UgaWYgKHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIpKSByZVNlZ21lbnRzLnB1c2goc2VnbWVudC5yZXBsYWNlKC86KFxcdyspL2csIChfLCBpZCkgPT4gYCg/PCR7aWR9PlteL10rKWApLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuXCIpKTtcblx0XHRlbHNlIHJlU2VnbWVudHMucHVzaChzZWdtZW50KTtcblx0fVxuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBSZWdFeHAoYF4vJHtyZVNlZ21lbnRzLmpvaW4oXCIvXCIpfS8/JGApO1xufVxuXG5leHBvcnQgeyBOdWxsUHJvdG9PYmosIGFkZFJvdXRlLCBjcmVhdGVSb3V0ZXIsIGZpbmRBbGxSb3V0ZXMsIGZpbmRSb3V0ZSwgcmVtb3ZlUm91dGUsIHJvdXRlVG9SZWdFeHAgfTsiLCJpbXBvcnQgeyBzdGFuZGFyZGl6ZUhUVFBQYXRoLCBTdGFuZGFyZE9wZW5BUElKc29uU2VyaWFsaXplciwgU3RhbmRhcmRCcmFja2V0Tm90YXRpb25TZXJpYWxpemVyLCBTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyIH0gZnJvbSAnQG9ycGMvb3BlbmFwaS1jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0IHsgU3RhbmRhcmRIYW5kbGVyIH0gZnJvbSAnQG9ycGMvc2VydmVyL3N0YW5kYXJkJztcbmltcG9ydCB7IGlzT1JQQ0Vycm9yU3RhdHVzIH0gZnJvbSAnQG9ycGMvY2xpZW50JztcbmltcG9ydCB7IGZhbGxiYWNrQ29udHJhY3RDb25maWcgfSBmcm9tICdAb3JwYy9jb250cmFjdCc7XG5pbXBvcnQgeyBpc09iamVjdCwgc3RyaW5naWZ5SlNPTiwgdHJ5RGVjb2RlVVJJQ29tcG9uZW50LCB2YWx1ZSB9IGZyb20gJ0BvcnBjL3NoYXJlZCc7XG5pbXBvcnQgeyB0b0h0dHBQYXRoIH0gZnJvbSAnQG9ycGMvY2xpZW50L3N0YW5kYXJkJztcbmltcG9ydCB7IHRyYXZlcnNlQ29udHJhY3RQcm9jZWR1cmVzLCBpc1Byb2NlZHVyZSwgZ2V0TGF6eU1ldGEsIHVubGF6eSwgZ2V0Um91dGVyLCBjcmVhdGVDb250cmFjdGVkUHJvY2VkdXJlIH0gZnJvbSAnQG9ycGMvc2VydmVyJztcbmltcG9ydCB7IGNyZWF0ZVJvdXRlciwgYWRkUm91dGUsIGZpbmRSb3V0ZSB9IGZyb20gJ3JvdTMnO1xuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElDb2RlYyB7XG4gIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZXIsIG9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuc2VyaWFsaXplciA9IHNlcmlhbGl6ZXI7XG4gICAgdGhpcy5jdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXIgPSBvcHRpb25zLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlcjtcbiAgfVxuICBjdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXI7XG4gIGFzeW5jIGRlY29kZShyZXF1ZXN0LCBwYXJhbXMsIHByb2NlZHVyZSkge1xuICAgIGNvbnN0IGlucHV0U3RydWN0dXJlID0gZmFsbGJhY2tDb250cmFjdENvbmZpZyhcImRlZmF1bHRJbnB1dFN0cnVjdHVyZVwiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5pbnB1dFN0cnVjdHVyZSk7XG4gICAgaWYgKGlucHV0U3RydWN0dXJlID09PSBcImNvbXBhY3RcIikge1xuICAgICAgY29uc3QgZGF0YSA9IHJlcXVlc3QubWV0aG9kID09PSBcIkdFVFwiID8gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlcXVlc3QudXJsLnNlYXJjaFBhcmFtcykgOiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoYXdhaXQgcmVxdWVzdC5ib2R5KCkpO1xuICAgICAgaWYgKGRhdGEgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIC4uLmRhdGFcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBjb25zdCBkZXNlcmlhbGl6ZVNlYXJjaFBhcmFtcyA9ICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVxdWVzdC51cmwuc2VhcmNoUGFyYW1zKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICBwYXJhbXMsXG4gICAgICBnZXQgcXVlcnkoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVzZXJpYWxpemVTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwicXVlcnlcIiwgeyB2YWx1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBzZXQgcXVlcnkodmFsdWUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwicXVlcnlcIiwgeyB2YWx1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gICAgICB9LFxuICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxuICAgICAgYm9keTogdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKGF3YWl0IHJlcXVlc3QuYm9keSgpKVxuICAgIH07XG4gIH1cbiAgZW5jb2RlKG91dHB1dCwgcHJvY2VkdXJlKSB7XG4gICAgY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0U3VjY2Vzc1N0YXR1c1wiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5zdWNjZXNzU3RhdHVzKTtcbiAgICBjb25zdCBvdXRwdXRTdHJ1Y3R1cmUgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdE91dHB1dFN0cnVjdHVyZVwiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5vdXRwdXRTdHJ1Y3R1cmUpO1xuICAgIGlmIChvdXRwdXRTdHJ1Y3R1cmUgPT09IFwiY29tcGFjdFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHN1Y2Nlc3NTdGF0dXMsXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG91dHB1dClcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICghdGhpcy4jaXNEZXRhaWxlZE91dHB1dChvdXRwdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICBJbnZhbGlkIFwiZGV0YWlsZWRcIiBvdXRwdXQgc3RydWN0dXJlOlxuICAgICAgICBcXHUyMDIyIEV4cGVjdGVkIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHByb3BlcnRpZXM6XG4gICAgICAgICAgLSBzdGF0dXMgKG51bWJlciAyMDAtMzk5KVxuICAgICAgICAgIC0gaGVhZGVycyAoUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+KVxuICAgICAgICAgIC0gYm9keSAoYW55KVxuICAgICAgICBcXHUyMDIyIE5vIGV4dHJhIGtleXMgYWxsb3dlZC5cblxuICAgICAgICBBY3R1YWwgdmFsdWU6XG4gICAgICAgICAgJHtzdHJpbmdpZnlKU09OKG91dHB1dCl9XG4gICAgICBgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogb3V0cHV0LnN0YXR1cyA/PyBzdWNjZXNzU3RhdHVzLFxuICAgICAgaGVhZGVyczogb3V0cHV0LmhlYWRlcnMgPz8ge30sXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG91dHB1dC5ib2R5KVxuICAgIH07XG4gIH1cbiAgZW5jb2RlRXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5jdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXI/LihlcnJvcikgPz8gZXJyb3IudG9KU09OKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogZXJyb3Iuc3RhdHVzLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKGJvZHksIHsgb3V0cHV0Rm9ybWF0OiBcInBsYWluXCIgfSlcbiAgICB9O1xuICB9XG4gICNpc0RldGFpbGVkT3V0cHV0KG91dHB1dCkge1xuICAgIGlmICghaXNPYmplY3Qob3V0cHV0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LmhlYWRlcnMgJiYgIWlzT2JqZWN0KG91dHB1dC5oZWFkZXJzKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1cyAhPT0gdm9pZCAwICYmICh0eXBlb2Ygb3V0cHV0LnN0YXR1cyAhPT0gXCJudW1iZXJcIiB8fCAhTnVtYmVyLmlzSW50ZWdlcihvdXRwdXQuc3RhdHVzKSB8fCBpc09SUENFcnJvclN0YXR1cyhvdXRwdXQuc3RhdHVzKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9Sb3UzUGF0dGVybihwYXRoKSB7XG4gIHJldHVybiBzdGFuZGFyZGl6ZUhUVFBQYXRoKHBhdGgpLnJlcGxhY2UoL1xcL1xce1xcKyhbXn1dKylcXH0vZywgXCIvKio6JDFcIikucmVwbGFjZSgvXFwvXFx7KFtefV0rKVxcfS9nLCBcIi86JDFcIik7XG59XG5mdW5jdGlvbiBkZWNvZGVQYXJhbXMocGFyYW1zKSB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocGFyYW1zKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdHJ5RGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKV0pKTtcbn1cblxuY2xhc3MgU3RhbmRhcmRPcGVuQVBJTWF0Y2hlciB7XG4gIGZpbHRlcjtcbiAgdHJlZSA9IGNyZWF0ZVJvdXRlcigpO1xuICBwZW5kaW5nUm91dGVycyA9IFtdO1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmZpbHRlciA9IG9wdGlvbnMuZmlsdGVyID8/IHRydWU7XG4gIH1cbiAgaW5pdChyb3V0ZXIsIHBhdGggPSBbXSkge1xuICAgIGNvbnN0IGxhemllZE9wdGlvbnMgPSB0cmF2ZXJzZUNvbnRyYWN0UHJvY2VkdXJlcyh7IHJvdXRlciwgcGF0aCB9LCAodHJhdmVyc2VPcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlKHRoaXMuZmlsdGVyLCB0cmF2ZXJzZU9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgcGF0aDogcGF0aDIsIGNvbnRyYWN0IH0gPSB0cmF2ZXJzZU9wdGlvbnM7XG4gICAgICBjb25zdCBtZXRob2QgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdE1ldGhvZFwiLCBjb250cmFjdFtcIn5vcnBjXCJdLnJvdXRlLm1ldGhvZCk7XG4gICAgICBjb25zdCBodHRwUGF0aCA9IHRvUm91M1BhdHRlcm4oY29udHJhY3RbXCJ+b3JwY1wiXS5yb3V0ZS5wYXRoID8/IHRvSHR0cFBhdGgocGF0aDIpKTtcbiAgICAgIGlmIChpc1Byb2NlZHVyZShjb250cmFjdCkpIHtcbiAgICAgICAgYWRkUm91dGUodGhpcy50cmVlLCBtZXRob2QsIGh0dHBQYXRoLCB7XG4gICAgICAgICAgcGF0aDogcGF0aDIsXG4gICAgICAgICAgY29udHJhY3QsXG4gICAgICAgICAgcHJvY2VkdXJlOiBjb250cmFjdCxcbiAgICAgICAgICAvLyB0aGlzIG1lYW4gZGV2IG5vdCB1c2VkIGNvbnRyYWN0LWZpcnN0IHNvIHdlIGNhbiB1c2VkIGNvbnRyYWN0IGFzIHByb2NlZHVyZSBkaXJlY3RseVxuICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZFJvdXRlKHRoaXMudHJlZSwgbWV0aG9kLCBodHRwUGF0aCwge1xuICAgICAgICAgIHBhdGg6IHBhdGgyLFxuICAgICAgICAgIGNvbnRyYWN0LFxuICAgICAgICAgIHByb2NlZHVyZTogdm9pZCAwLFxuICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSb3V0ZXJzLnB1c2goLi4ubGF6aWVkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKHtcbiAgICAgIC4uLm9wdGlvbixcbiAgICAgIGh0dHBQYXRoUHJlZml4OiB0b0h0dHBQYXRoKG9wdGlvbi5wYXRoKSxcbiAgICAgIGxhemllZFByZWZpeDogZ2V0TGF6eU1ldGEob3B0aW9uLnJvdXRlcikucHJlZml4XG4gICAgfSkpKTtcbiAgfVxuICBhc3luYyBtYXRjaChtZXRob2QsIHBhdGhuYW1lKSB7XG4gICAgaWYgKHRoaXMucGVuZGluZ1JvdXRlcnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXdQZW5kaW5nUm91dGVycyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwZW5kaW5nUm91dGVyIG9mIHRoaXMucGVuZGluZ1JvdXRlcnMpIHtcbiAgICAgICAgaWYgKCFwZW5kaW5nUm91dGVyLmxhemllZFByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHBlbmRpbmdSb3V0ZXIubGF6aWVkUHJlZml4KSB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHBlbmRpbmdSb3V0ZXIuaHR0cFBhdGhQcmVmaXgpKSB7XG4gICAgICAgICAgY29uc3QgeyBkZWZhdWx0OiByb3V0ZXIgfSA9IGF3YWl0IHVubGF6eShwZW5kaW5nUm91dGVyLnJvdXRlcik7XG4gICAgICAgICAgdGhpcy5pbml0KHJvdXRlciwgcGVuZGluZ1JvdXRlci5wYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdQZW5kaW5nUm91dGVycy5wdXNoKHBlbmRpbmdSb3V0ZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnBlbmRpbmdSb3V0ZXJzID0gbmV3UGVuZGluZ1JvdXRlcnM7XG4gICAgfVxuICAgIGNvbnN0IG1hdGNoID0gZmluZFJvdXRlKHRoaXMudHJlZSwgbWV0aG9kLCBwYXRobmFtZSk7XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgaWYgKCFtYXRjaC5kYXRhLnByb2NlZHVyZSkge1xuICAgICAgY29uc3QgeyBkZWZhdWx0OiBtYXliZVByb2NlZHVyZSB9ID0gYXdhaXQgdW5sYXp5KGdldFJvdXRlcihtYXRjaC5kYXRhLnJvdXRlciwgbWF0Y2guZGF0YS5wYXRoKSk7XG4gICAgICBpZiAoIWlzUHJvY2VkdXJlKG1heWJlUHJvY2VkdXJlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICAgIFtDb250cmFjdC1GaXJzdF0gTWlzc2luZyBvciBpbnZhbGlkIGltcGxlbWVudGF0aW9uIGZvciBwcm9jZWR1cmUgYXQgcGF0aDogJHt0b0h0dHBQYXRoKG1hdGNoLmRhdGEucGF0aCl9LlxuICAgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBwcm9jZWR1cmUgaXMgY29ycmVjdGx5IGRlZmluZWQgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIGNvbnRyYWN0LlxuICAgICAgICBgKTtcbiAgICAgIH1cbiAgICAgIG1hdGNoLmRhdGEucHJvY2VkdXJlID0gY3JlYXRlQ29udHJhY3RlZFByb2NlZHVyZShtYXliZVByb2NlZHVyZSwgbWF0Y2guZGF0YS5jb250cmFjdCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiBtYXRjaC5kYXRhLnBhdGgsXG4gICAgICBwcm9jZWR1cmU6IG1hdGNoLmRhdGEucHJvY2VkdXJlLFxuICAgICAgcGFyYW1zOiBtYXRjaC5wYXJhbXMgPyBkZWNvZGVQYXJhbXMobWF0Y2gucGFyYW1zKSA6IHZvaWQgMFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciBleHRlbmRzIFN0YW5kYXJkSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IGpzb25TZXJpYWxpemVyID0gbmV3IFN0YW5kYXJkT3BlbkFQSUpzb25TZXJpYWxpemVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRCcmFja2V0Tm90YXRpb25TZXJpYWxpemVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRPcGVuQVBJU2VyaWFsaXplcihqc29uU2VyaWFsaXplciwgYnJhY2tldE5vdGF0aW9uU2VyaWFsaXplcik7XG4gICAgY29uc3QgbWF0Y2hlciA9IG5ldyBTdGFuZGFyZE9wZW5BUElNYXRjaGVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGNvZGVjID0gbmV3IFN0YW5kYXJkT3BlbkFQSUNvZGVjKHNlcmlhbGl6ZXIsIG9wdGlvbnMpO1xuICAgIHN1cGVyKHJvdXRlciwgbWF0Y2hlciwgY29kZWMsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCB7IFN0YW5kYXJkT3BlbkFQSUNvZGVjIGFzIFMsIFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIgYXMgYSwgU3RhbmRhcmRPcGVuQVBJTWF0Y2hlciBhcyBiLCBkZWNvZGVQYXJhbXMgYXMgZCwgdG9Sb3UzUGF0dGVybiBhcyB0IH07XG4iLCJpbXBvcnQgeyBGZXRjaEhhbmRsZXIgfSBmcm9tICdAb3JwYy9zZXJ2ZXIvZmV0Y2gnO1xuaW1wb3J0ICdAb3JwYy9jbGllbnQnO1xuaW1wb3J0ICdAb3JwYy9jb250cmFjdCc7XG5pbXBvcnQgJ0BvcnBjL3NoYXJlZCc7XG5pbXBvcnQgeyBhIGFzIFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvb3BlbmFwaS5ESXQtWjlXMS5tanMnO1xuaW1wb3J0ICdAb3JwYy9jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0ICdAb3JwYy9zZXJ2ZXInO1xuaW1wb3J0ICdyb3UzJztcbmltcG9ydCAnQG9ycGMvb3BlbmFwaS1jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0ICdAb3JwYy9zZXJ2ZXIvc3RhbmRhcmQnO1xuXG5jbGFzcyBPcGVuQVBJSGFuZGxlciBleHRlbmRzIEZldGNoSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIobmV3IFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIocm91dGVyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IHsgT3BlbkFQSUhhbmRsZXIgfTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxNQUFNLGVBQStCLHVCQUFPO0NBQzNDLE1BQU0sSUFBSSxXQUFXO0FBQ3JCLFFBQU8sRUFBRSxZQUFZLE9BQU8sT0FBTyxLQUFLLEVBQUUsT0FBTyxPQUFPLEVBQUUsVUFBVSxFQUFFO0lBQ25FOzs7O0FBS0osU0FBUyxlQUFlO0FBQ3ZCLFFBQU87RUFDTixNQUFNLEVBQUUsS0FBSyxJQUFJO0VBQ2pCLFFBQVEsSUFBSSxjQUFjO0VBQzFCOztBQUdGLFNBQVMsVUFBVSxNQUFNO0NBQ3hCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUNqQyxRQUFPLEVBQUUsRUFBRSxTQUFTLE9BQU8sS0FBSyxFQUFFLE1BQU0sR0FBRyxHQUFHLEdBQUc7O0FBRWxELFNBQVMsZUFBZSxVQUFVLFdBQVc7Q0FDNUMsTUFBTSxTQUFTLElBQUksY0FBYztBQUNqQyxNQUFLLE1BQU0sQ0FBQyxPQUFPLFNBQVMsV0FBVztFQUN0QyxNQUFNLFVBQVUsUUFBUSxJQUFJLFNBQVMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxTQUFTO0FBQzVFLE1BQUksT0FBTyxTQUFTLFNBQVUsUUFBTyxRQUFRO09BQ3hDO0dBQ0osTUFBTSxRQUFRLFFBQVEsTUFBTSxLQUFLO0FBQ2pDLE9BQUksTUFBTyxNQUFLLE1BQU0sT0FBTyxNQUFNLE9BQVEsUUFBTyxPQUFPLE1BQU0sT0FBTzs7O0FBR3hFLFFBQU87Ozs7O0FBTVIsU0FBUyxTQUFTLEtBQUssU0FBUyxJQUFJLE1B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
336
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtQ0d6bjFVZjcuY2pzIiwibmFtZXMiOlsiaXNPYmplY3QiLCJ2YWx1ZSIsIiNpc0RldGFpbGVkT3V0cHV0Iiwic3RyaW5naWZ5SlNPTiIsImlzT1JQQ0Vycm9yU3RhdHVzIiwic3RhbmRhcmRpemVIVFRQUGF0aCIsInRyeURlY29kZVVSSUNvbXBvbmVudCIsInRvSHR0cFBhdGgiLCJTdGFuZGFyZEhhbmRsZXIiLCJTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyIiwiU3RhbmRhcmRPcGVuQVBJSnNvblNlcmlhbGl6ZXIiLCJTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIiLCJGZXRjaEhhbmRsZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLmJ1bi9yb3UzQDAuNy4xMC9ub2RlX21vZHVsZXMvcm91My9kaXN0L2luZGV4Lm1qcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8uYnVuL0BvcnBjK29wZW5hcGlAMS4xMC40L25vZGVfbW9kdWxlcy9Ab3JwYy9vcGVuYXBpL2Rpc3Qvc2hhcmVkL29wZW5hcGkuREl0LVo5VzEubWpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5idW4vQG9ycGMrb3BlbmFwaUAxLjEwLjQvbm9kZV9tb2R1bGVzL0BvcnBjL29wZW5hcGkvZGlzdC9hZGFwdGVycy9mZXRjaC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTnVsbFByb3RvT2JqID0gLyogQF9fUFVSRV9fICovICgoKSA9PiB7XG5cdGNvbnN0IGUgPSBmdW5jdGlvbigpIHt9O1xuXHRyZXR1cm4gZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKG51bGwpLCBPYmplY3QuZnJlZXplKGUucHJvdG90eXBlKSwgZTtcbn0pKCk7XG5cbi8qKlxuKiBDcmVhdGUgYSBuZXcgcm91dGVyIGNvbnRleHQuXG4qL1xuZnVuY3Rpb24gY3JlYXRlUm91dGVyKCkge1xuXHRyZXR1cm4ge1xuXHRcdHJvb3Q6IHsga2V5OiBcIlwiIH0sXG5cdFx0c3RhdGljOiBuZXcgTnVsbFByb3RvT2JqKClcblx0fTtcbn1cblxuZnVuY3Rpb24gc3BsaXRQYXRoKHBhdGgpIHtcblx0Y29uc3QgW18sIC4uLnNdID0gcGF0aC5zcGxpdChcIi9cIik7XG5cdHJldHVybiBzW3MubGVuZ3RoIC0gMV0gPT09IFwiXCIgPyBzLnNsaWNlKDAsIC0xKSA6IHM7XG59XG5mdW5jdGlvbiBnZXRNYXRjaFBhcmFtcyhzZWdtZW50cywgcGFyYW1zTWFwKSB7XG5cdGNvbnN0IHBhcmFtcyA9IG5ldyBOdWxsUHJvdG9PYmooKTtcblx0Zm9yIChjb25zdCBbaW5kZXgsIG5hbWVdIG9mIHBhcmFtc01hcCkge1xuXHRcdGNvbnN0IHNlZ21lbnQgPSBpbmRleCA8IDAgPyBzZWdtZW50cy5zbGljZSgtMSAqIGluZGV4KS5qb2luKFwiL1wiKSA6IHNlZ21lbnRzW2luZGV4XTtcblx0XHRpZiAodHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIpIHBhcmFtc1tuYW1lXSA9IHNlZ21lbnQ7XG5cdFx0ZWxzZSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IHNlZ21lbnQubWF0Y2gobmFtZSk7XG5cdFx0XHRpZiAobWF0Y2gpIGZvciAoY29uc3Qga2V5IGluIG1hdGNoLmdyb3VwcykgcGFyYW1zW2tleV0gPSBtYXRjaC5ncm91cHNba2V5XTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHBhcmFtcztcbn1cblxuLyoqXG4qIEFkZCBhIHJvdXRlIHRvIHRoZSByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiBhZGRSb3V0ZShjdHgsIG1ldGhvZCA9IFwiXCIsIHBhdGgsIGRhdGEpIHtcblx0bWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQoMCkgIT09IDQ3KSBwYXRoID0gYC8ke3BhdGh9YDtcblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGxldCBub2RlID0gY3R4LnJvb3Q7XG5cdGxldCBfdW5uYW1lZFBhcmFtSW5kZXggPSAwO1xuXHRjb25zdCBwYXJhbXNNYXAgPSBbXTtcblx0Y29uc3QgcGFyYW1zUmVnZXhwID0gW107XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbaV07XG5cdFx0aWYgKHNlZ21lbnQuc3RhcnRzV2l0aChcIioqXCIpKSB7XG5cdFx0XHRpZiAoIW5vZGUud2lsZGNhcmQpIG5vZGUud2lsZGNhcmQgPSB7IGtleTogXCIqKlwiIH07XG5cdFx0XHRub2RlID0gbm9kZS53aWxkY2FyZDtcblx0XHRcdHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0LWksXG5cdFx0XHRcdHNlZ21lbnQuc3BsaXQoXCI6XCIpWzFdIHx8IFwiX1wiLFxuXHRcdFx0XHRzZWdtZW50Lmxlbmd0aCA9PT0gMlxuXHRcdFx0XSk7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0aWYgKHNlZ21lbnQgPT09IFwiKlwiIHx8IHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIpKSB7XG5cdFx0XHRpZiAoIW5vZGUucGFyYW0pIG5vZGUucGFyYW0gPSB7IGtleTogXCIqXCIgfTtcblx0XHRcdG5vZGUgPSBub2RlLnBhcmFtO1xuXHRcdFx0aWYgKHNlZ21lbnQgPT09IFwiKlwiKSBwYXJhbXNNYXAucHVzaChbXG5cdFx0XHRcdGksXG5cdFx0XHRcdGBfJHtfdW5uYW1lZFBhcmFtSW5kZXgrK31gLFxuXHRcdFx0XHR0cnVlXG5cdFx0XHRdKTtcblx0XHRcdGVsc2UgaWYgKHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIsIDEpKSB7XG5cdFx0XHRcdGNvbnN0IHJlZ2V4cCA9IGdldFBhcmFtUmVnZXhwKHNlZ21lbnQpO1xuXHRcdFx0XHRwYXJhbXNSZWdleHBbaV0gPSByZWdleHA7XG5cdFx0XHRcdG5vZGUuaGFzUmVnZXhQYXJhbSA9IHRydWU7XG5cdFx0XHRcdHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0XHRpLFxuXHRcdFx0XHRcdHJlZ2V4cCxcblx0XHRcdFx0XHRmYWxzZVxuXHRcdFx0XHRdKTtcblx0XHRcdH0gZWxzZSBwYXJhbXNNYXAucHVzaChbXG5cdFx0XHRcdGksXG5cdFx0XHRcdHNlZ21lbnQuc2xpY2UoMSksXG5cdFx0XHRcdGZhbHNlXG5cdFx0XHRdKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRjb25zdCBjaGlsZCA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdFx0aWYgKGNoaWxkKSBub2RlID0gY2hpbGQ7XG5cdFx0ZWxzZSB7XG5cdFx0XHRjb25zdCBzdGF0aWNOb2RlID0geyBrZXk6IHNlZ21lbnQgfTtcblx0XHRcdGlmICghbm9kZS5zdGF0aWMpIG5vZGUuc3RhdGljID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRcdFx0bm9kZS5zdGF0aWNbc2VnbWVudF0gPSBzdGF0aWNOb2RlO1xuXHRcdFx0bm9kZSA9IHN0YXRpY05vZGU7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGhhc1BhcmFtcyA9IHBhcmFtc01hcC5sZW5ndGggPiAwO1xuXHRpZiAoIW5vZGUubWV0aG9kcykgbm9kZS5tZXRob2RzID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRub2RlLm1ldGhvZHNbbWV0aG9kXSA/Pz0gW107XG5cdG5vZGUubWV0aG9kc1ttZXRob2RdLnB1c2goe1xuXHRcdGRhdGE6IGRhdGEgfHwgbnVsbCxcblx0XHRwYXJhbXNSZWdleHAsXG5cdFx0cGFyYW1zTWFwOiBoYXNQYXJhbXMgPyBwYXJhbXNNYXAgOiB2b2lkIDBcblx0fSk7XG5cdGlmICghaGFzUGFyYW1zKSBjdHguc3RhdGljW3BhdGhdID0gbm9kZTtcbn1cbmZ1bmN0aW9uIGdldFBhcmFtUmVnZXhwKHNlZ21lbnQpIHtcblx0Y29uc3QgcmVnZXggPSBzZWdtZW50LnJlcGxhY2UoLzooXFx3KykvZywgKF8sIGlkKSA9PiBgKD88JHtpZH0+W14vXSspYCkucmVwbGFjZSgvXFwuL2csIFwiXFxcXC5cIik7XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8gbmV3IFJlZ0V4cChgXiR7cmVnZXh9JGApO1xufVxuXG4vKipcbiogRmluZCBhIHJvdXRlIGJ5IHBhdGguXG4qL1xuZnVuY3Rpb24gZmluZFJvdXRlKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgb3B0cykge1xuXHRpZiAocGF0aC5jaGFyQ29kZUF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3KSBwYXRoID0gcGF0aC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IHN0YXRpY05vZGUgPSBjdHguc3RhdGljW3BhdGhdO1xuXHRpZiAoc3RhdGljTm9kZSAmJiBzdGF0aWNOb2RlLm1ldGhvZHMpIHtcblx0XHRjb25zdCBzdGF0aWNNYXRjaCA9IHN0YXRpY05vZGUubWV0aG9kc1ttZXRob2RdIHx8IHN0YXRpY05vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAoc3RhdGljTWF0Y2ggIT09IHZvaWQgMCkgcmV0dXJuIHN0YXRpY01hdGNoWzBdO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgY3R4LnJvb3QsIG1ldGhvZCwgc2VnbWVudHMsIDApPy5bMF07XG5cdGlmIChtYXRjaCA9PT0gdm9pZCAwKSByZXR1cm47XG5cdGlmIChvcHRzPy5wYXJhbXMgPT09IGZhbHNlKSByZXR1cm4gbWF0Y2g7XG5cdHJldHVybiB7XG5cdFx0ZGF0YTogbWF0Y2guZGF0YSxcblx0XHRwYXJhbXM6IG1hdGNoLnBhcmFtc01hcCA/IGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBtYXRjaC5wYXJhbXNNYXApIDogdm9pZCAwXG5cdH07XG59XG5mdW5jdGlvbiBfbG9va3VwVHJlZShjdHgsIG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4KSB7XG5cdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoKSB7XG5cdFx0aWYgKG5vZGUubWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWF0Y2ggPSBub2RlLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLm1ldGhvZHNbXCJcIl07XG5cdFx0XHRpZiAobWF0Y2gpIHJldHVybiBtYXRjaDtcblx0XHR9XG5cdFx0aWYgKG5vZGUucGFyYW0gJiYgbm9kZS5wYXJhbS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUucGFyYW0ubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUucGFyYW0ubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIHJldHVybiBtYXRjaDtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG5vZGUud2lsZGNhcmQgJiYgbm9kZS53aWxkY2FyZC5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIHJldHVybiBtYXRjaDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG5cdGlmIChub2RlLnN0YXRpYykge1xuXHRcdGNvbnN0IHN0YXRpY0NoaWxkID0gbm9kZS5zdGF0aWNbc2VnbWVudF07XG5cdFx0aWYgKHN0YXRpY0NoaWxkKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgc3RhdGljQ2hpbGQsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0XHRpZiAobWF0Y2gpIHJldHVybiBtYXRjaDtcblx0XHR9XG5cdH1cblx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRjb25zdCBtYXRjaCA9IF9sb29rdXBUcmVlKGN0eCwgbm9kZS5wYXJhbSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdGlmIChub2RlLnBhcmFtLmhhc1JlZ2V4UGFyYW0pIHtcblx0XHRcdFx0Y29uc3QgZXhhY3RNYXRjaCA9IG1hdGNoLmZpbmQoKG0pID0+IG0ucGFyYW1zUmVnZXhwW2luZGV4XT8udGVzdChzZWdtZW50KSkgfHwgbWF0Y2guZmluZCgobSkgPT4gIW0ucGFyYW1zUmVnZXhwW2luZGV4XSk7XG5cdFx0XHRcdHJldHVybiBleGFjdE1hdGNoID8gW2V4YWN0TWF0Y2hdIDogdm9pZCAwO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0fVxuXHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHJldHVybiBub2RlLndpbGRjYXJkLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLndpbGRjYXJkLm1ldGhvZHNbXCJcIl07XG59XG5cbi8qKlxuKiBSZW1vdmUgYSByb3V0ZSBmcm9tIHRoZSByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiByZW1vdmVSb3V0ZShjdHgsIG1ldGhvZCwgcGF0aCkge1xuXHRjb25zdCBzZWdtZW50cyA9IHNwbGl0UGF0aChwYXRoKTtcblx0cmV0dXJuIF9yZW1vdmUoY3R4LnJvb3QsIG1ldGhvZCB8fCBcIlwiLCBzZWdtZW50cywgMCk7XG59XG5mdW5jdGlvbiBfcmVtb3ZlKG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4KSB7XG5cdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoKSB7XG5cdFx0aWYgKG5vZGUubWV0aG9kcyAmJiBtZXRob2QgaW4gbm9kZS5tZXRob2RzKSB7XG5cdFx0XHRkZWxldGUgbm9kZS5tZXRob2RzW21ldGhvZF07XG5cdFx0XHRpZiAoT2JqZWN0LmtleXMobm9kZS5tZXRob2RzKS5sZW5ndGggPT09IDApIG5vZGUubWV0aG9kcyA9IHZvaWQgMDtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpbmRleF07XG5cdGlmIChzZWdtZW50ID09PSBcIipcIikge1xuXHRcdGlmIChub2RlLnBhcmFtKSB7XG5cdFx0XHRfcmVtb3ZlKG5vZGUucGFyYW0sIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0XHRpZiAoX2lzRW1wdHlOb2RlKG5vZGUucGFyYW0pKSBub2RlLnBhcmFtID0gdm9pZCAwO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0aWYgKHNlZ21lbnQuc3RhcnRzV2l0aChcIioqXCIpKSB7XG5cdFx0aWYgKG5vZGUud2lsZGNhcmQpIHtcblx0XHRcdF9yZW1vdmUobm9kZS53aWxkY2FyZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChfaXNFbXB0eU5vZGUobm9kZS53aWxkY2FyZCkpIG5vZGUud2lsZGNhcmQgPSB2b2lkIDA7XG5cdFx0fVxuXHRcdHJldHVybjtcblx0fVxuXHRjb25zdCBjaGlsZE5vZGUgPSBub2RlLnN0YXRpYz8uW3NlZ21lbnRdO1xuXHRpZiAoY2hpbGROb2RlKSB7XG5cdFx0X3JlbW92ZShjaGlsZE5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSk7XG5cdFx0aWYgKF9pc0VtcHR5Tm9kZShjaGlsZE5vZGUpKSB7XG5cdFx0XHRkZWxldGUgbm9kZS5zdGF0aWNbc2VnbWVudF07XG5cdFx0XHRpZiAoT2JqZWN0LmtleXMobm9kZS5zdGF0aWMpLmxlbmd0aCA9PT0gMCkgbm9kZS5zdGF0aWMgPSB2b2lkIDA7XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBfaXNFbXB0eU5vZGUobm9kZSkge1xuXHRyZXR1cm4gbm9kZS5tZXRob2RzID09PSB2b2lkIDAgJiYgbm9kZS5zdGF0aWMgPT09IHZvaWQgMCAmJiBub2RlLnBhcmFtID09PSB2b2lkIDAgJiYgbm9kZS53aWxkY2FyZCA9PT0gdm9pZCAwO1xufVxuXG4vKipcbiogRmluZCBhbGwgcm91dGUgcGF0dGVybnMgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gcGF0aC5cbiovXG5mdW5jdGlvbiBmaW5kQWxsUm91dGVzKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgb3B0cykge1xuXHRpZiAocGF0aC5jaGFyQ29kZUF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3KSBwYXRoID0gcGF0aC5zbGljZSgwLCAtMSk7XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRjb25zdCBtYXRjaGVzID0gX2ZpbmRBbGwoY3R4LCBjdHgucm9vdCwgbWV0aG9kLCBzZWdtZW50cywgMCk7XG5cdGlmIChvcHRzPy5wYXJhbXMgPT09IGZhbHNlKSByZXR1cm4gbWF0Y2hlcztcblx0cmV0dXJuIG1hdGNoZXMubWFwKChtKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRhdGE6IG0uZGF0YSxcblx0XHRcdHBhcmFtczogbS5wYXJhbXNNYXAgPyBnZXRNYXRjaFBhcmFtcyhzZWdtZW50cywgbS5wYXJhbXNNYXApIDogdm9pZCAwXG5cdFx0fTtcblx0fSk7XG59XG5mdW5jdGlvbiBfZmluZEFsbChjdHgsIG5vZGUsIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4LCBtYXRjaGVzID0gW10pIHtcblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKG5vZGUud2lsZGNhcmQgJiYgbm9kZS53aWxkY2FyZC5tZXRob2RzKSB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBub2RlLndpbGRjYXJkLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLndpbGRjYXJkLm1ldGhvZHNbXCJcIl07XG5cdFx0aWYgKG1hdGNoKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHR9XG5cdGlmIChub2RlLnBhcmFtKSB7XG5cdFx0X2ZpbmRBbGwoY3R4LCBub2RlLnBhcmFtLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEsIG1hdGNoZXMpO1xuXHRcdGlmIChpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoICYmIG5vZGUucGFyYW0ubWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWF0Y2ggPSBub2RlLnBhcmFtLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLnBhcmFtLm1ldGhvZHNbXCJcIl07XG5cdFx0XHRpZiAobWF0Y2gpIHtcblx0XHRcdFx0Y29uc3QgcE1hcCA9IG1hdGNoWzBdLnBhcmFtc01hcDtcblx0XHRcdFx0aWYgKHBNYXA/LltwTWFwPy5sZW5ndGggLSAxXT8uWzJdKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRjb25zdCBzdGF0aWNDaGlsZCA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdGlmIChzdGF0aWNDaGlsZCkgX2ZpbmRBbGwoY3R4LCBzdGF0aWNDaGlsZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxLCBtYXRjaGVzKTtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggJiYgbm9kZS5tZXRob2RzKSB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBub2RlLm1ldGhvZHNbbWV0aG9kXSB8fCBub2RlLm1ldGhvZHNbXCJcIl07XG5cdFx0aWYgKG1hdGNoKSBtYXRjaGVzLnB1c2goLi4ubWF0Y2gpO1xuXHR9XG5cdHJldHVybiBtYXRjaGVzO1xufVxuXG5mdW5jdGlvbiByb3V0ZVRvUmVnRXhwKHJvdXRlID0gXCIvXCIpIHtcblx0Y29uc3QgcmVTZWdtZW50cyA9IFtdO1xuXHRsZXQgaWRDdHIgPSAwO1xuXHRmb3IgKGNvbnN0IHNlZ21lbnQgb2Ygcm91dGUuc3BsaXQoXCIvXCIpKSB7XG5cdFx0aWYgKCFzZWdtZW50KSBjb250aW51ZTtcblx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIpIHJlU2VnbWVudHMucHVzaChgKD88XyR7aWRDdHIrK30+W14vXSopYCk7XG5cdFx0ZWxzZSBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHJlU2VnbWVudHMucHVzaChzZWdtZW50ID09PSBcIioqXCIgPyBcIj8oPzxfPi4qKVwiIDogYD8oPzwke3NlZ21lbnQuc2xpY2UoMyl9Pi4rKWApO1xuXHRcdGVsc2UgaWYgKHNlZ21lbnQuaW5jbHVkZXMoXCI6XCIpKSByZVNlZ21lbnRzLnB1c2goc2VnbWVudC5yZXBsYWNlKC86KFxcdyspL2csIChfLCBpZCkgPT4gYCg/PCR7aWR9PlteL10rKWApLnJlcGxhY2UoL1xcLi9nLCBcIlxcXFwuXCIpKTtcblx0XHRlbHNlIHJlU2VnbWVudHMucHVzaChzZWdtZW50KTtcblx0fVxuXHRyZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBSZWdFeHAoYF4vJHtyZVNlZ21lbnRzLmpvaW4oXCIvXCIpfS8/JGApO1xufVxuXG5leHBvcnQgeyBOdWxsUHJvdG9PYmosIGFkZFJvdXRlLCBjcmVhdGVSb3V0ZXIsIGZpbmRBbGxSb3V0ZXMsIGZpbmRSb3V0ZSwgcmVtb3ZlUm91dGUsIHJvdXRlVG9SZWdFeHAgfTsiLCJpbXBvcnQgeyBzdGFuZGFyZGl6ZUhUVFBQYXRoLCBTdGFuZGFyZE9wZW5BUElKc29uU2VyaWFsaXplciwgU3RhbmRhcmRCcmFja2V0Tm90YXRpb25TZXJpYWxpemVyLCBTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyIH0gZnJvbSAnQG9ycGMvb3BlbmFwaS1jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0IHsgU3RhbmRhcmRIYW5kbGVyIH0gZnJvbSAnQG9ycGMvc2VydmVyL3N0YW5kYXJkJztcbmltcG9ydCB7IGlzT1JQQ0Vycm9yU3RhdHVzIH0gZnJvbSAnQG9ycGMvY2xpZW50JztcbmltcG9ydCB7IGZhbGxiYWNrQ29udHJhY3RDb25maWcgfSBmcm9tICdAb3JwYy9jb250cmFjdCc7XG5pbXBvcnQgeyBpc09iamVjdCwgc3RyaW5naWZ5SlNPTiwgdHJ5RGVjb2RlVVJJQ29tcG9uZW50LCB2YWx1ZSB9IGZyb20gJ0BvcnBjL3NoYXJlZCc7XG5pbXBvcnQgeyB0b0h0dHBQYXRoIH0gZnJvbSAnQG9ycGMvY2xpZW50L3N0YW5kYXJkJztcbmltcG9ydCB7IHRyYXZlcnNlQ29udHJhY3RQcm9jZWR1cmVzLCBpc1Byb2NlZHVyZSwgZ2V0TGF6eU1ldGEsIHVubGF6eSwgZ2V0Um91dGVyLCBjcmVhdGVDb250cmFjdGVkUHJvY2VkdXJlIH0gZnJvbSAnQG9ycGMvc2VydmVyJztcbmltcG9ydCB7IGNyZWF0ZVJvdXRlciwgYWRkUm91dGUsIGZpbmRSb3V0ZSB9IGZyb20gJ3JvdTMnO1xuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElDb2RlYyB7XG4gIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZXIsIG9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuc2VyaWFsaXplciA9IHNlcmlhbGl6ZXI7XG4gICAgdGhpcy5jdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXIgPSBvcHRpb25zLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlcjtcbiAgfVxuICBjdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXI7XG4gIGFzeW5jIGRlY29kZShyZXF1ZXN0LCBwYXJhbXMsIHByb2NlZHVyZSkge1xuICAgIGNvbnN0IGlucHV0U3RydWN0dXJlID0gZmFsbGJhY2tDb250cmFjdENvbmZpZyhcImRlZmF1bHRJbnB1dFN0cnVjdHVyZVwiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5pbnB1dFN0cnVjdHVyZSk7XG4gICAgaWYgKGlucHV0U3RydWN0dXJlID09PSBcImNvbXBhY3RcIikge1xuICAgICAgY29uc3QgZGF0YSA9IHJlcXVlc3QubWV0aG9kID09PSBcIkdFVFwiID8gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHJlcXVlc3QudXJsLnNlYXJjaFBhcmFtcykgOiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoYXdhaXQgcmVxdWVzdC5ib2R5KCkpO1xuICAgICAgaWYgKGRhdGEgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIC4uLmRhdGFcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBjb25zdCBkZXNlcmlhbGl6ZVNlYXJjaFBhcmFtcyA9ICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVxdWVzdC51cmwuc2VhcmNoUGFyYW1zKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICBwYXJhbXMsXG4gICAgICBnZXQgcXVlcnkoKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVzZXJpYWxpemVTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwicXVlcnlcIiwgeyB2YWx1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0sXG4gICAgICBzZXQgcXVlcnkodmFsdWUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwicXVlcnlcIiwgeyB2YWx1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gICAgICB9LFxuICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLFxuICAgICAgYm9keTogdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKGF3YWl0IHJlcXVlc3QuYm9keSgpKVxuICAgIH07XG4gIH1cbiAgZW5jb2RlKG91dHB1dCwgcHJvY2VkdXJlKSB7XG4gICAgY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0U3VjY2Vzc1N0YXR1c1wiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5zdWNjZXNzU3RhdHVzKTtcbiAgICBjb25zdCBvdXRwdXRTdHJ1Y3R1cmUgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdE91dHB1dFN0cnVjdHVyZVwiLCBwcm9jZWR1cmVbXCJ+b3JwY1wiXS5yb3V0ZS5vdXRwdXRTdHJ1Y3R1cmUpO1xuICAgIGlmIChvdXRwdXRTdHJ1Y3R1cmUgPT09IFwiY29tcGFjdFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXM6IHN1Y2Nlc3NTdGF0dXMsXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG91dHB1dClcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICghdGhpcy4jaXNEZXRhaWxlZE91dHB1dChvdXRwdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICBJbnZhbGlkIFwiZGV0YWlsZWRcIiBvdXRwdXQgc3RydWN0dXJlOlxuICAgICAgICBcXHUyMDIyIEV4cGVjdGVkIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHByb3BlcnRpZXM6XG4gICAgICAgICAgLSBzdGF0dXMgKG51bWJlciAyMDAtMzk5KVxuICAgICAgICAgIC0gaGVhZGVycyAoUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+KVxuICAgICAgICAgIC0gYm9keSAoYW55KVxuICAgICAgICBcXHUyMDIyIE5vIGV4dHJhIGtleXMgYWxsb3dlZC5cblxuICAgICAgICBBY3R1YWwgdmFsdWU6XG4gICAgICAgICAgJHtzdHJpbmdpZnlKU09OKG91dHB1dCl9XG4gICAgICBgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogb3V0cHV0LnN0YXR1cyA/PyBzdWNjZXNzU3RhdHVzLFxuICAgICAgaGVhZGVyczogb3V0cHV0LmhlYWRlcnMgPz8ge30sXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG91dHB1dC5ib2R5KVxuICAgIH07XG4gIH1cbiAgZW5jb2RlRXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5jdXN0b21FcnJvclJlc3BvbnNlQm9keUVuY29kZXI/LihlcnJvcikgPz8gZXJyb3IudG9KU09OKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1czogZXJyb3Iuc3RhdHVzLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKGJvZHksIHsgb3V0cHV0Rm9ybWF0OiBcInBsYWluXCIgfSlcbiAgICB9O1xuICB9XG4gICNpc0RldGFpbGVkT3V0cHV0KG91dHB1dCkge1xuICAgIGlmICghaXNPYmplY3Qob3V0cHV0KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LmhlYWRlcnMgJiYgIWlzT2JqZWN0KG91dHB1dC5oZWFkZXJzKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAob3V0cHV0LnN0YXR1cyAhPT0gdm9pZCAwICYmICh0eXBlb2Ygb3V0cHV0LnN0YXR1cyAhPT0gXCJudW1iZXJcIiB8fCAhTnVtYmVyLmlzSW50ZWdlcihvdXRwdXQuc3RhdHVzKSB8fCBpc09SUENFcnJvclN0YXR1cyhvdXRwdXQuc3RhdHVzKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9Sb3UzUGF0dGVybihwYXRoKSB7XG4gIHJldHVybiBzdGFuZGFyZGl6ZUhUVFBQYXRoKHBhdGgpLnJlcGxhY2UoL1xcL1xce1xcKyhbXn1dKylcXH0vZywgXCIvKio6JDFcIikucmVwbGFjZSgvXFwvXFx7KFtefV0rKVxcfS9nLCBcIi86JDFcIik7XG59XG5mdW5jdGlvbiBkZWNvZGVQYXJhbXMocGFyYW1zKSB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMocGFyYW1zKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgdHJ5RGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKV0pKTtcbn1cblxuY2xhc3MgU3RhbmRhcmRPcGVuQVBJTWF0Y2hlciB7XG4gIGZpbHRlcjtcbiAgdHJlZSA9IGNyZWF0ZVJvdXRlcigpO1xuICBwZW5kaW5nUm91dGVycyA9IFtdO1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmZpbHRlciA9IG9wdGlvbnMuZmlsdGVyID8/IHRydWU7XG4gIH1cbiAgaW5pdChyb3V0ZXIsIHBhdGggPSBbXSkge1xuICAgIGNvbnN0IGxhemllZE9wdGlvbnMgPSB0cmF2ZXJzZUNvbnRyYWN0UHJvY2VkdXJlcyh7IHJvdXRlciwgcGF0aCB9LCAodHJhdmVyc2VPcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlKHRoaXMuZmlsdGVyLCB0cmF2ZXJzZU9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgcGF0aDogcGF0aDIsIGNvbnRyYWN0IH0gPSB0cmF2ZXJzZU9wdGlvbnM7XG4gICAgICBjb25zdCBtZXRob2QgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdE1ldGhvZFwiLCBjb250cmFjdFtcIn5vcnBjXCJdLnJvdXRlLm1ldGhvZCk7XG4gICAgICBjb25zdCBodHRwUGF0aCA9IHRvUm91M1BhdHRlcm4oY29udHJhY3RbXCJ+b3JwY1wiXS5yb3V0ZS5wYXRoID8/IHRvSHR0cFBhdGgocGF0aDIpKTtcbiAgICAgIGlmIChpc1Byb2NlZHVyZShjb250cmFjdCkpIHtcbiAgICAgICAgYWRkUm91dGUodGhpcy50cmVlLCBtZXRob2QsIGh0dHBQYXRoLCB7XG4gICAgICAgICAgcGF0aDogcGF0aDIsXG4gICAgICAgICAgY29udHJhY3QsXG4gICAgICAgICAgcHJvY2VkdXJlOiBjb250cmFjdCxcbiAgICAgICAgICAvLyB0aGlzIG1lYW4gZGV2IG5vdCB1c2VkIGNvbnRyYWN0LWZpcnN0IHNvIHdlIGNhbiB1c2VkIGNvbnRyYWN0IGFzIHByb2NlZHVyZSBkaXJlY3RseVxuICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZFJvdXRlKHRoaXMudHJlZSwgbWV0aG9kLCBodHRwUGF0aCwge1xuICAgICAgICAgIHBhdGg6IHBhdGgyLFxuICAgICAgICAgIGNvbnRyYWN0LFxuICAgICAgICAgIHByb2NlZHVyZTogdm9pZCAwLFxuICAgICAgICAgIHJvdXRlclxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSb3V0ZXJzLnB1c2goLi4ubGF6aWVkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKHtcbiAgICAgIC4uLm9wdGlvbixcbiAgICAgIGh0dHBQYXRoUHJlZml4OiB0b0h0dHBQYXRoKG9wdGlvbi5wYXRoKSxcbiAgICAgIGxhemllZFByZWZpeDogZ2V0TGF6eU1ldGEob3B0aW9uLnJvdXRlcikucHJlZml4XG4gICAgfSkpKTtcbiAgfVxuICBhc3luYyBtYXRjaChtZXRob2QsIHBhdGhuYW1lKSB7XG4gICAgaWYgKHRoaXMucGVuZGluZ1JvdXRlcnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXdQZW5kaW5nUm91dGVycyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBwZW5kaW5nUm91dGVyIG9mIHRoaXMucGVuZGluZ1JvdXRlcnMpIHtcbiAgICAgICAgaWYgKCFwZW5kaW5nUm91dGVyLmxhemllZFByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHBlbmRpbmdSb3V0ZXIubGF6aWVkUHJlZml4KSB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHBlbmRpbmdSb3V0ZXIuaHR0cFBhdGhQcmVmaXgpKSB7XG4gICAgICAgICAgY29uc3QgeyBkZWZhdWx0OiByb3V0ZXIgfSA9IGF3YWl0IHVubGF6eShwZW5kaW5nUm91dGVyLnJvdXRlcik7XG4gICAgICAgICAgdGhpcy5pbml0KHJvdXRlciwgcGVuZGluZ1JvdXRlci5wYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdQZW5kaW5nUm91dGVycy5wdXNoKHBlbmRpbmdSb3V0ZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnBlbmRpbmdSb3V0ZXJzID0gbmV3UGVuZGluZ1JvdXRlcnM7XG4gICAgfVxuICAgIGNvbnN0IG1hdGNoID0gZmluZFJvdXRlKHRoaXMudHJlZSwgbWV0aG9kLCBwYXRobmFtZSk7XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgaWYgKCFtYXRjaC5kYXRhLnByb2NlZHVyZSkge1xuICAgICAgY29uc3QgeyBkZWZhdWx0OiBtYXliZVByb2NlZHVyZSB9ID0gYXdhaXQgdW5sYXp5KGdldFJvdXRlcihtYXRjaC5kYXRhLnJvdXRlciwgbWF0Y2guZGF0YS5wYXRoKSk7XG4gICAgICBpZiAoIWlzUHJvY2VkdXJlKG1heWJlUHJvY2VkdXJlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICAgIFtDb250cmFjdC1GaXJzdF0gTWlzc2luZyBvciBpbnZhbGlkIGltcGxlbWVudGF0aW9uIGZvciBwcm9jZWR1cmUgYXQgcGF0aDogJHt0b0h0dHBQYXRoKG1hdGNoLmRhdGEucGF0aCl9LlxuICAgICAgICAgIEVuc3VyZSB0aGF0IHRoZSBwcm9jZWR1cmUgaXMgY29ycmVjdGx5IGRlZmluZWQgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIGNvbnRyYWN0LlxuICAgICAgICBgKTtcbiAgICAgIH1cbiAgICAgIG1hdGNoLmRhdGEucHJvY2VkdXJlID0gY3JlYXRlQ29udHJhY3RlZFByb2NlZHVyZShtYXliZVByb2NlZHVyZSwgbWF0Y2guZGF0YS5jb250cmFjdCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiBtYXRjaC5kYXRhLnBhdGgsXG4gICAgICBwcm9jZWR1cmU6IG1hdGNoLmRhdGEucHJvY2VkdXJlLFxuICAgICAgcGFyYW1zOiBtYXRjaC5wYXJhbXMgPyBkZWNvZGVQYXJhbXMobWF0Y2gucGFyYW1zKSA6IHZvaWQgMFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciBleHRlbmRzIFN0YW5kYXJkSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IGpzb25TZXJpYWxpemVyID0gbmV3IFN0YW5kYXJkT3BlbkFQSUpzb25TZXJpYWxpemVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRCcmFja2V0Tm90YXRpb25TZXJpYWxpemVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRPcGVuQVBJU2VyaWFsaXplcihqc29uU2VyaWFsaXplciwgYnJhY2tldE5vdGF0aW9uU2VyaWFsaXplcik7XG4gICAgY29uc3QgbWF0Y2hlciA9IG5ldyBTdGFuZGFyZE9wZW5BUElNYXRjaGVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IGNvZGVjID0gbmV3IFN0YW5kYXJkT3BlbkFQSUNvZGVjKHNlcmlhbGl6ZXIsIG9wdGlvbnMpO1xuICAgIHN1cGVyKHJvdXRlciwgbWF0Y2hlciwgY29kZWMsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCB7IFN0YW5kYXJkT3BlbkFQSUNvZGVjIGFzIFMsIFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIgYXMgYSwgU3RhbmRhcmRPcGVuQVBJTWF0Y2hlciBhcyBiLCBkZWNvZGVQYXJhbXMgYXMgZCwgdG9Sb3UzUGF0dGVybiBhcyB0IH07XG4iLCJpbXBvcnQgeyBGZXRjaEhhbmRsZXIgfSBmcm9tICdAb3JwYy9zZXJ2ZXIvZmV0Y2gnO1xuaW1wb3J0ICdAb3JwYy9jbGllbnQnO1xuaW1wb3J0ICdAb3JwYy9jb250cmFjdCc7XG5pbXBvcnQgJ0BvcnBjL3NoYXJlZCc7XG5pbXBvcnQgeyBhIGFzIFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvb3BlbmFwaS5ESXQtWjlXMS5tanMnO1xuaW1wb3J0ICdAb3JwYy9jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0ICdAb3JwYy9zZXJ2ZXInO1xuaW1wb3J0ICdyb3UzJztcbmltcG9ydCAnQG9ycGMvb3BlbmFwaS1jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0ICdAb3JwYy9zZXJ2ZXIvc3RhbmRhcmQnO1xuXG5jbGFzcyBPcGVuQVBJSGFuZGxlciBleHRlbmRzIEZldGNoSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIobmV3IFN0YW5kYXJkT3BlbkFQSUhhbmRsZXIocm91dGVyLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IHsgT3BlbkFQSUhhbmRsZXIgfTtcbiJdLCJ4X2dvb2dsZV9pZ25vcmVMaXN0IjpbMCwxLDJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxNQUFNLGVBQStCLHVCQUFPO0NBQzNDLE1BQU0sSUFBSSxXQUFXO0FBQ3JCLFFBQU8sRUFBRSxZQUFZLE9BQU8sT0FBTyxLQUFLLEVBQUUsT0FBTyxPQUFPLEVBQUUsVUFBVSxFQUFFO0lBQ25FOzs7O0FBS0osU0FBUyxlQUFlO0FBQ3ZCLFFBQU87RUFDTixNQUFNLEVBQUUsS0FBSyxJQUFJO0VBQ2pCLFFBQVEsSUFBSSxjQUFjO0VBQzFCOztBQUdGLFNBQVMsVUFBVSxNQUFNO0NBQ3hCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUNqQyxRQUFPLEVBQUUsRUFBRSxTQUFTLE9BQU8sS0FBSyxFQUFFLE1BQU0sR0FBRyxHQUFHLEdBQUc7O0FBRWxELFNBQVMsZUFBZSxVQUFVLFdBQVc7Q0FDNUMsTUFBTSxTQUFTLElBQUksY0FBYztBQUNqQyxNQUFLLE1BQU0sQ0FBQyxPQUFPLFNBQVMsV0FBVztFQUN0QyxNQUFNLFVBQVUsUUFBUSxJQUFJLFNBQVMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxTQUFTO0FBQzVFLE1BQUksT0FBTyxTQUFTLFNBQVUsUUFBTyxRQUFRO09BQ3hDO0dBQ0osTUFBTSxRQUFRLFFBQVEsTUFBTSxLQUFLO0FBQ2pDLE9BQUksTUFBTyxNQUFLLE1BQU0sT0FBTyxNQUFNLE9BQVEsUUFBTyxPQUFPLE1BQU0sT0FBTzs7O0FBR3hFLFFBQU87Ozs7O0FBTVIsU0FBUyxTQUFTLEtBQUssU0FBUyxJQUFJLE1B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
@@ -1,4 +1,4 @@
1
- import { _ as tryDecodeURIComponent, a as toHttpPath, h as stringifyJSON, i as standardizeHTTPPath, l as isORPCErrorStatus, n as StandardOpenAPISerializer, o as StandardBracketNotationSerializer, p as isObject, t as StandardOpenAPIJsonSerializer, v as value } from "./standard-DaxKTFui.mjs";
1
+ import { _ as value, a as toHttpPath, f as isObject, g as tryDecodeURIComponent, i as standardizeHTTPPath, l as isORPCErrorStatus, m as stringifyJSON, n as StandardOpenAPISerializer, o as StandardBracketNotationSerializer, t as StandardOpenAPIJsonSerializer } from "./standard-CYaRay89.mjs";
2
2
  import { createContractedProcedure, getLazyMeta, getRouter, isProcedure, traverseContractProcedures, unlazy } from "@orpc/server";
3
3
  import { fallbackContractConfig } from "@orpc/contract";
4
4
  import { FetchHandler } from "@orpc/server/fetch";
@@ -332,4 +332,4 @@ var OpenAPIHandler = class extends FetchHandler {
332
332
 
333
333
  //#endregion
334
334
  export { OpenAPIHandler };
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtS0xrdHVXdU0ubWpzIiwibmFtZXMiOlsidmFsdWUiLCIjaXNEZXRhaWxlZE91dHB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8uYnVuL3JvdTNAMC43LjEwL25vZGVfbW9kdWxlcy9yb3UzL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5idW4vQG9ycGMrb3BlbmFwaUAxLjEwLjQvbm9kZV9tb2R1bGVzL0BvcnBjL29wZW5hcGkvZGlzdC9zaGFyZWQvb3BlbmFwaS5ESXQtWjlXMS5tanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLmJ1bi9Ab3JwYytvcGVuYXBpQDEuMTAuNC9ub2RlX21vZHVsZXMvQG9ycGMvb3BlbmFwaS9kaXN0L2FkYXB0ZXJzL2ZldGNoL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBOdWxsUHJvdG9PYmogPSAvKiBAX19QVVJFX18gKi8gKCgpID0+IHtcblx0Y29uc3QgZSA9IGZ1bmN0aW9uKCkge307XG5cdHJldHVybiBlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUobnVsbCksIE9iamVjdC5mcmVlemUoZS5wcm90b3R5cGUpLCBlO1xufSkoKTtcblxuLyoqXG4qIENyZWF0ZSBhIG5ldyByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiBjcmVhdGVSb3V0ZXIoKSB7XG5cdHJldHVybiB7XG5cdFx0cm9vdDogeyBrZXk6IFwiXCIgfSxcblx0XHRzdGF0aWM6IG5ldyBOdWxsUHJvdG9PYmooKVxuXHR9O1xufVxuXG5mdW5jdGlvbiBzcGxpdFBhdGgocGF0aCkge1xuXHRjb25zdCBbXywgLi4uc10gPSBwYXRoLnNwbGl0KFwiL1wiKTtcblx0cmV0dXJuIHNbcy5sZW5ndGggLSAxXSA9PT0gXCJcIiA/IHMuc2xpY2UoMCwgLTEpIDogcztcbn1cbmZ1bmN0aW9uIGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBwYXJhbXNNYXApIHtcblx0Y29uc3QgcGFyYW1zID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRmb3IgKGNvbnN0IFtpbmRleCwgbmFtZV0gb2YgcGFyYW1zTWFwKSB7XG5cdFx0Y29uc3Qgc2VnbWVudCA9IGluZGV4IDwgMCA/IHNlZ21lbnRzLnNsaWNlKC0xICogaW5kZXgpLmpvaW4oXCIvXCIpIDogc2VnbWVudHNbaW5kZXhdO1xuXHRcdGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIikgcGFyYW1zW25hbWVdID0gc2VnbWVudDtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gc2VnbWVudC5tYXRjaChuYW1lKTtcblx0XHRcdGlmIChtYXRjaCkgZm9yIChjb25zdCBrZXkgaW4gbWF0Y2guZ3JvdXBzKSBwYXJhbXNba2V5XSA9IG1hdGNoLmdyb3Vwc1trZXldO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcGFyYW1zO1xufVxuXG4vKipcbiogQWRkIGEgcm91dGUgdG8gdGhlIHJvdXRlciBjb250ZXh0LlxuKi9cbmZ1bmN0aW9uIGFkZFJvdXRlKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgZGF0YSkge1xuXHRtZXRob2QgPSBtZXRob2QudG9VcHBlckNhc2UoKTtcblx0aWYgKHBhdGguY2hhckNvZGVBdCgwKSAhPT0gNDcpIHBhdGggPSBgLyR7cGF0aH1gO1xuXHRjb25zdCBzZWdtZW50cyA9IHNwbGl0UGF0aChwYXRoKTtcblx0bGV0IG5vZGUgPSBjdHgucm9vdDtcblx0bGV0IF91bm5hbWVkUGFyYW1JbmRleCA9IDA7XG5cdGNvbnN0IHBhcmFtc01hcCA9IFtdO1xuXHRjb25zdCBwYXJhbXNSZWdleHAgPSBbXTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpXTtcblx0XHRpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHtcblx0XHRcdGlmICghbm9kZS53aWxkY2FyZCkgbm9kZS53aWxkY2FyZCA9IHsga2V5OiBcIioqXCIgfTtcblx0XHRcdG5vZGUgPSBub2RlLndpbGRjYXJkO1xuXHRcdFx0cGFyYW1zTWFwLnB1c2goW1xuXHRcdFx0XHQtaSxcblx0XHRcdFx0c2VnbWVudC5zcGxpdChcIjpcIilbMV0gfHwgXCJfXCIsXG5cdFx0XHRcdHNlZ21lbnQubGVuZ3RoID09PSAyXG5cdFx0XHRdKTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIgfHwgc2VnbWVudC5pbmNsdWRlcyhcIjpcIikpIHtcblx0XHRcdGlmICghbm9kZS5wYXJhbSkgbm9kZS5wYXJhbSA9IHsga2V5OiBcIipcIiB9O1xuXHRcdFx0bm9kZSA9IG5vZGUucGFyYW07XG5cdFx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIpIHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0aSxcblx0XHRcdFx0YF8ke191bm5hbWVkUGFyYW1JbmRleCsrfWAsXG5cdFx0XHRcdHRydWVcblx0XHRcdF0pO1xuXHRcdFx0ZWxzZSBpZiAoc2VnbWVudC5pbmNsdWRlcyhcIjpcIiwgMSkpIHtcblx0XHRcdFx0Y29uc3QgcmVnZXhwID0gZ2V0UGFyYW1SZWdleHAoc2VnbWVudCk7XG5cdFx0XHRcdHBhcmFtc1JlZ2V4cFtpXSA9IHJlZ2V4cDtcblx0XHRcdFx0bm9kZS5oYXNSZWdleFBhcmFtID0gdHJ1ZTtcblx0XHRcdFx0cGFyYW1zTWFwLnB1c2goW1xuXHRcdFx0XHRcdGksXG5cdFx0XHRcdFx0cmVnZXhwLFxuXHRcdFx0XHRcdGZhbHNlXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSBlbHNlIHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0aSxcblx0XHRcdFx0c2VnbWVudC5zbGljZSgxKSxcblx0XHRcdFx0ZmFsc2Vcblx0XHRcdF0pO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGNvbnN0IGNoaWxkID0gbm9kZS5zdGF0aWM/LltzZWdtZW50XTtcblx0XHRpZiAoY2hpbGQpIG5vZGUgPSBjaGlsZDtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IHN0YXRpY05vZGUgPSB7IGtleTogc2VnbWVudCB9O1xuXHRcdFx0aWYgKCFub2RlLnN0YXRpYykgbm9kZS5zdGF0aWMgPSBuZXcgTnVsbFByb3RvT2JqKCk7XG5cdFx0XHRub2RlLnN0YXRpY1tzZWdtZW50XSA9IHN0YXRpY05vZGU7XG5cdFx0XHRub2RlID0gc3RhdGljTm9kZTtcblx0XHR9XG5cdH1cblx0Y29uc3QgaGFzUGFyYW1zID0gcGFyYW1zTWFwLmxlbmd0aCA+IDA7XG5cdGlmICghbm9kZS5tZXRob2RzKSBub2RlLm1ldGhvZHMgPSBuZXcgTnVsbFByb3RvT2JqKCk7XG5cdG5vZGUubWV0aG9kc1ttZXRob2RdID8/PSBbXTtcblx0bm9kZS5tZXRob2RzW21ldGhvZF0ucHVzaCh7XG5cdFx0ZGF0YTogZGF0YSB8fCBudWxsLFxuXHRcdHBhcmFtc1JlZ2V4cCxcblx0XHRwYXJhbXNNYXA6IGhhc1BhcmFtcyA/IHBhcmFtc01hcCA6IHZvaWQgMFxuXHR9KTtcblx0aWYgKCFoYXNQYXJhbXMpIGN0eC5zdGF0aWNbcGF0aF0gPSBub2RlO1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1SZWdleHAoc2VnbWVudCkge1xuXHRjb25zdCByZWdleCA9IHNlZ21lbnQucmVwbGFjZSgvOihcXHcrKS9nLCAoXywgaWQpID0+IGAoPzwke2lkfT5bXi9dKylgKS5yZXBsYWNlKC9cXC4vZywgXCJcXFxcLlwiKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBuZXcgUmVnRXhwKGBeJHtyZWdleH0kYCk7XG59XG5cbi8qKlxuKiBGaW5kIGEgcm91dGUgYnkgcGF0aC5cbiovXG5mdW5jdGlvbiBmaW5kUm91dGUoY3R4LCBtZXRob2QgPSBcIlwiLCBwYXRoLCBvcHRzKSB7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcpIHBhdGggPSBwYXRoLnNsaWNlKDAsIC0xKTtcblx0Y29uc3Qgc3RhdGljTm9kZSA9IGN0eC5zdGF0aWNbcGF0aF07XG5cdGlmIChzdGF0aWNOb2RlICYmIHN0YXRpY05vZGUubWV0aG9kcykge1xuXHRcdGNvbnN0IHN0YXRpY01hdGNoID0gc3RhdGljTm9kZS5tZXRob2RzW21ldGhvZF0gfHwgc3RhdGljTm9kZS5tZXRob2RzW1wiXCJdO1xuXHRcdGlmIChzdGF0aWNNYXRjaCAhPT0gdm9pZCAwKSByZXR1cm4gc3RhdGljTWF0Y2hbMF07XG5cdH1cblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBjdHgucm9vdCwgbWV0aG9kLCBzZWdtZW50cywgMCk/LlswXTtcblx0aWYgKG1hdGNoID09PSB2b2lkIDApIHJldHVybjtcblx0aWYgKG9wdHM/LnBhcmFtcyA9PT0gZmFsc2UpIHJldHVybiBtYXRjaDtcblx0cmV0dXJuIHtcblx0XHRkYXRhOiBtYXRjaC5kYXRhLFxuXHRcdHBhcmFtczogbWF0Y2gucGFyYW1zTWFwID8gZ2V0TWF0Y2hQYXJhbXMoc2VnbWVudHMsIG1hdGNoLnBhcmFtc01hcCkgOiB2b2lkIDBcblx0fTtcbn1cbmZ1bmN0aW9uIF9sb29rdXBUcmVlKGN0eCwgbm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgpIHtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGgpIHtcblx0XHRpZiAobm9kZS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0XHRpZiAobm9kZS5wYXJhbSAmJiBub2RlLnBhcmFtLm1ldGhvZHMpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gbm9kZS5wYXJhbS5tZXRob2RzW21ldGhvZF0gfHwgbm9kZS5wYXJhbS5tZXRob2RzW1wiXCJdO1xuXHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdGNvbnN0IHBNYXAgPSBtYXRjaFswXS5wYXJhbXNNYXA7XG5cdFx0XHRcdGlmIChwTWFwPy5bcE1hcD8ubGVuZ3RoIC0gMV0/LlsyXSkgcmV0dXJuIG1hdGNoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gbm9kZS53aWxkY2FyZC5tZXRob2RzW21ldGhvZF0gfHwgbm9kZS53aWxkY2FyZC5tZXRob2RzW1wiXCJdO1xuXHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdGNvbnN0IHBNYXAgPSBtYXRjaFswXS5wYXJhbXNNYXA7XG5cdFx0XHRcdGlmIChwTWFwPy5bcE1hcD8ubGVuZ3RoIC0gMV0/LlsyXSkgcmV0dXJuIG1hdGNoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKG5vZGUuc3RhdGljKSB7XG5cdFx0Y29uc3Qgc3RhdGljQ2hpbGQgPSBub2RlLnN0YXRpY1tzZWdtZW50XTtcblx0XHRpZiAoc3RhdGljQ2hpbGQpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBzdGF0aWNDaGlsZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0fVxuXHRpZiAobm9kZS5wYXJhbSkge1xuXHRcdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBub2RlLnBhcmFtLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEpO1xuXHRcdGlmIChtYXRjaCkge1xuXHRcdFx0aWYgKG5vZGUucGFyYW0uaGFzUmVnZXhQYXJhbSkge1xuXHRcdFx0XHRjb25zdCBleGFjdE1hdGNoID0gbWF0Y2guZmluZCgobSkgPT4gbS5wYXJhbXNSZWdleHBbaW5kZXhdPy50ZXN0KHNlZ21lbnQpKSB8fCBtYXRjaC5maW5kKChtKSA9PiAhbS5wYXJhbXNSZWdleHBbaW5kZXhdKTtcblx0XHRcdFx0cmV0dXJuIGV4YWN0TWF0Y2ggPyBbZXhhY3RNYXRjaF0gOiB2b2lkIDA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fVxuXHR9XG5cdGlmIChub2RlLndpbGRjYXJkICYmIG5vZGUud2lsZGNhcmQubWV0aG9kcykgcmV0dXJuIG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcbn1cblxuLyoqXG4qIFJlbW92ZSBhIHJvdXRlIGZyb20gdGhlIHJvdXRlciBjb250ZXh0LlxuKi9cbmZ1bmN0aW9uIHJlbW92ZVJvdXRlKGN0eCwgbWV0aG9kLCBwYXRoKSB7XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRyZXR1cm4gX3JlbW92ZShjdHgucm9vdCwgbWV0aG9kIHx8IFwiXCIsIHNlZ21lbnRzLCAwKTtcbn1cbmZ1bmN0aW9uIF9yZW1vdmUobm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgpIHtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGgpIHtcblx0XHRpZiAobm9kZS5tZXRob2RzICYmIG1ldGhvZCBpbiBub2RlLm1ldGhvZHMpIHtcblx0XHRcdGRlbGV0ZSBub2RlLm1ldGhvZHNbbWV0aG9kXTtcblx0XHRcdGlmIChPYmplY3Qua2V5cyhub2RlLm1ldGhvZHMpLmxlbmd0aCA9PT0gMCkgbm9kZS5tZXRob2RzID0gdm9pZCAwO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKHNlZ21lbnQgPT09IFwiKlwiKSB7XG5cdFx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRcdF9yZW1vdmUobm9kZS5wYXJhbSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChfaXNFbXB0eU5vZGUobm9kZS5wYXJhbSkpIG5vZGUucGFyYW0gPSB2b2lkIDA7XG5cdFx0fVxuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHtcblx0XHRpZiAobm9kZS53aWxkY2FyZCkge1xuXHRcdFx0X3JlbW92ZShub2RlLndpbGRjYXJkLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEpO1xuXHRcdFx0aWYgKF9pc0VtcHR5Tm9kZShub2RlLndpbGRjYXJkKSkgbm9kZS53aWxkY2FyZCA9IHZvaWQgMDtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IGNoaWxkTm9kZSA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdGlmIChjaGlsZE5vZGUpIHtcblx0XHRfcmVtb3ZlKGNoaWxkTm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRpZiAoX2lzRW1wdHlOb2RlKGNoaWxkTm9kZSkpIHtcblx0XHRcdGRlbGV0ZSBub2RlLnN0YXRpY1tzZWdtZW50XTtcblx0XHRcdGlmIChPYmplY3Qua2V5cyhub2RlLnN0YXRpYykubGVuZ3RoID09PSAwKSBub2RlLnN0YXRpYyA9IHZvaWQgMDtcblx0XHR9XG5cdH1cbn1cbmZ1bmN0aW9uIF9pc0VtcHR5Tm9kZShub2RlKSB7XG5cdHJldHVybiBub2RlLm1ldGhvZHMgPT09IHZvaWQgMCAmJiBub2RlLnN0YXRpYyA9PT0gdm9pZCAwICYmIG5vZGUucGFyYW0gPT09IHZvaWQgMCAmJiBub2RlLndpbGRjYXJkID09PSB2b2lkIDA7XG59XG5cbi8qKlxuKiBGaW5kIGFsbCByb3V0ZSBwYXR0ZXJucyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBwYXRoLlxuKi9cbmZ1bmN0aW9uIGZpbmRBbGxSb3V0ZXMoY3R4LCBtZXRob2QgPSBcIlwiLCBwYXRoLCBvcHRzKSB7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcpIHBhdGggPSBwYXRoLnNsaWNlKDAsIC0xKTtcblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGNvbnN0IG1hdGNoZXMgPSBfZmluZEFsbChjdHgsIGN0eC5yb290LCBtZXRob2QsIHNlZ21lbnRzLCAwKTtcblx0aWYgKG9wdHM/LnBhcmFtcyA9PT0gZmFsc2UpIHJldHVybiBtYXRjaGVzO1xuXHRyZXR1cm4gbWF0Y2hlcy5tYXAoKG0pID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogbS5kYXRhLFxuXHRcdFx0cGFyYW1zOiBtLnBhcmFtc01hcCA/IGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBtLnBhcmFtc01hcCkgOiB2b2lkIDBcblx0XHR9O1xuXHR9KTtcbn1cbmZ1bmN0aW9uIF9maW5kQWxsKGN0eCwgbm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgsIG1hdGNoZXMgPSBbXSkge1xuXHRjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbaW5kZXhdO1xuXHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHtcblx0XHRjb25zdCBtYXRjaCA9IG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAobWF0Y2gpIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdH1cblx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRfZmluZEFsbChjdHgsIG5vZGUucGFyYW0sIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSwgbWF0Y2hlcyk7XG5cdFx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggJiYgbm9kZS5wYXJhbS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUucGFyYW0ubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUucGFyYW0ubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IHN0YXRpY0NoaWxkID0gbm9kZS5zdGF0aWM/LltzZWdtZW50XTtcblx0aWYgKHN0YXRpY0NoaWxkKSBfZmluZEFsbChjdHgsIHN0YXRpY0NoaWxkLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEsIG1hdGNoZXMpO1xuXHRpZiAoaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAmJiBub2RlLm1ldGhvZHMpIHtcblx0XHRjb25zdCBtYXRjaCA9IG5vZGUubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAobWF0Y2gpIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdH1cblx0cmV0dXJuIG1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIHJvdXRlVG9SZWdFeHAocm91dGUgPSBcIi9cIikge1xuXHRjb25zdCByZVNlZ21lbnRzID0gW107XG5cdGxldCBpZEN0ciA9IDA7XG5cdGZvciAoY29uc3Qgc2VnbWVudCBvZiByb3V0ZS5zcGxpdChcIi9cIikpIHtcblx0XHRpZiAoIXNlZ21lbnQpIGNvbnRpbnVlO1xuXHRcdGlmIChzZWdtZW50ID09PSBcIipcIikgcmVTZWdtZW50cy5wdXNoKGAoPzxfJHtpZEN0cisrfT5bXi9dKilgKTtcblx0XHRlbHNlIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoXCIqKlwiKSkgcmVTZWdtZW50cy5wdXNoKHNlZ21lbnQgPT09IFwiKipcIiA/IFwiPyg/PF8+LiopXCIgOiBgPyg/PCR7c2VnbWVudC5zbGljZSgzKX0+LispYCk7XG5cdFx0ZWxzZSBpZiAoc2VnbWVudC5pbmNsdWRlcyhcIjpcIikpIHJlU2VnbWVudHMucHVzaChzZWdtZW50LnJlcGxhY2UoLzooXFx3KykvZywgKF8sIGlkKSA9PiBgKD88JHtpZH0+W14vXSspYCkucmVwbGFjZSgvXFwuL2csIFwiXFxcXC5cIikpO1xuXHRcdGVsc2UgcmVTZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuXHR9XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8gbmV3IFJlZ0V4cChgXi8ke3JlU2VnbWVudHMuam9pbihcIi9cIil9Lz8kYCk7XG59XG5cbmV4cG9ydCB7IE51bGxQcm90b09iaiwgYWRkUm91dGUsIGNyZWF0ZVJvdXRlciwgZmluZEFsbFJvdXRlcywgZmluZFJvdXRlLCByZW1vdmVSb3V0ZSwgcm91dGVUb1JlZ0V4cCB9OyIsImltcG9ydCB7IHN0YW5kYXJkaXplSFRUUFBhdGgsIFN0YW5kYXJkT3BlbkFQSUpzb25TZXJpYWxpemVyLCBTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIsIFN0YW5kYXJkT3BlbkFQSVNlcmlhbGl6ZXIgfSBmcm9tICdAb3JwYy9vcGVuYXBpLWNsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgeyBTdGFuZGFyZEhhbmRsZXIgfSBmcm9tICdAb3JwYy9zZXJ2ZXIvc3RhbmRhcmQnO1xuaW1wb3J0IHsgaXNPUlBDRXJyb3JTdGF0dXMgfSBmcm9tICdAb3JwYy9jbGllbnQnO1xuaW1wb3J0IHsgZmFsbGJhY2tDb250cmFjdENvbmZpZyB9IGZyb20gJ0BvcnBjL2NvbnRyYWN0JztcbmltcG9ydCB7IGlzT2JqZWN0LCBzdHJpbmdpZnlKU09OLCB0cnlEZWNvZGVVUklDb21wb25lbnQsIHZhbHVlIH0gZnJvbSAnQG9ycGMvc2hhcmVkJztcbmltcG9ydCB7IHRvSHR0cFBhdGggfSBmcm9tICdAb3JwYy9jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0IHsgdHJhdmVyc2VDb250cmFjdFByb2NlZHVyZXMsIGlzUHJvY2VkdXJlLCBnZXRMYXp5TWV0YSwgdW5sYXp5LCBnZXRSb3V0ZXIsIGNyZWF0ZUNvbnRyYWN0ZWRQcm9jZWR1cmUgfSBmcm9tICdAb3JwYy9zZXJ2ZXInO1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyLCBhZGRSb3V0ZSwgZmluZFJvdXRlIH0gZnJvbSAncm91Myc7XG5cbmNsYXNzIFN0YW5kYXJkT3BlbkFQSUNvZGVjIHtcbiAgY29uc3RydWN0b3Ioc2VyaWFsaXplciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5zZXJpYWxpemVyID0gc2VyaWFsaXplcjtcbiAgICB0aGlzLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlciA9IG9wdGlvbnMuY3VzdG9tRXJyb3JSZXNwb25zZUJvZHlFbmNvZGVyO1xuICB9XG4gIGN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlcjtcbiAgYXN5bmMgZGVjb2RlKHJlcXVlc3QsIHBhcmFtcywgcHJvY2VkdXJlKSB7XG4gICAgY29uc3QgaW5wdXRTdHJ1Y3R1cmUgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdElucHV0U3RydWN0dXJlXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLmlucHV0U3RydWN0dXJlKTtcbiAgICBpZiAoaW5wdXRTdHJ1Y3R1cmUgPT09IFwiY29tcGFjdFwiKSB7XG4gICAgICBjb25zdCBkYXRhID0gcmVxdWVzdC5tZXRob2QgPT09IFwiR0VUXCIgPyB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVxdWVzdC51cmwuc2VhcmNoUGFyYW1zKSA6IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShhd2FpdCByZXF1ZXN0LmJvZHkoKSk7XG4gICAgICBpZiAoZGF0YSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICB9XG4gICAgICBpZiAoaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgLi4uZGF0YVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGRlc2VyaWFsaXplU2VhcmNoUGFyYW1zID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXF1ZXN0LnVybC5zZWFyY2hQYXJhbXMpO1xuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGdldCBxdWVyeSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkZXNlcmlhbGl6ZVNlYXJjaFBhcmFtcygpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJxdWVyeVwiLCB7IHZhbHVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHNldCBxdWVyeSh2YWx1ZSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJxdWVyeVwiLCB7IHZhbHVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoYXdhaXQgcmVxdWVzdC5ib2R5KCkpXG4gICAgfTtcbiAgfVxuICBlbmNvZGUob3V0cHV0LCBwcm9jZWR1cmUpIHtcbiAgICBjb25zdCBzdWNjZXNzU3RhdHVzID0gZmFsbGJhY2tDb250cmFjdENvbmZpZyhcImRlZmF1bHRTdWNjZXNzU3RhdHVzXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLnN1Y2Nlc3NTdGF0dXMpO1xuICAgIGNvbnN0IG91dHB1dFN0cnVjdHVyZSA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0T3V0cHV0U3RydWN0dXJlXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLm91dHB1dFN0cnVjdHVyZSk7XG4gICAgaWYgKG91dHB1dFN0cnVjdHVyZSA9PT0gXCJjb21wYWN0XCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogc3VjY2Vzc1N0YXR1cyxcbiAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUob3V0cHV0KVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLiNpc0RldGFpbGVkT3V0cHV0KG91dHB1dCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgIEludmFsaWQgXCJkZXRhaWxlZFwiIG91dHB1dCBzdHJ1Y3R1cmU6XG4gICAgICAgIFxcdTIwMjIgRXhwZWN0ZWQgYW4gb2JqZWN0IHdpdGggb3B0aW9uYWwgcHJvcGVydGllczpcbiAgICAgICAgICAtIHN0YXR1cyAobnVtYmVyIDIwMC0zOTkpXG4gICAgICAgICAgLSBoZWFkZXJzIChSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4pXG4gICAgICAgICAgLSBib2R5IChhbnkpXG4gICAgICAgIFxcdTIwMjIgTm8gZXh0cmEga2V5cyBhbGxvd2VkLlxuXG4gICAgICAgIEFjdHVhbCB2YWx1ZTpcbiAgICAgICAgICAke3N0cmluZ2lmeUpTT04ob3V0cHV0KX1cbiAgICAgIGApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBvdXRwdXQuc3RhdHVzID8/IHN1Y2Nlc3NTdGF0dXMsXG4gICAgICBoZWFkZXJzOiBvdXRwdXQuaGVhZGVycyA/PyB7fSxcbiAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUob3V0cHV0LmJvZHkpXG4gICAgfTtcbiAgfVxuICBlbmNvZGVFcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2Rlcj8uKGVycm9yKSA/PyBlcnJvci50b0pTT04oKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBlcnJvci5zdGF0dXMsXG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUoYm9keSwgeyBvdXRwdXRGb3JtYXQ6IFwicGxhaW5cIiB9KVxuICAgIH07XG4gIH1cbiAgI2lzRGV0YWlsZWRPdXRwdXQob3V0cHV0KSB7XG4gICAgaWYgKCFpc09iamVjdChvdXRwdXQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuaGVhZGVycyAmJiAhaXNPYmplY3Qob3V0cHV0LmhlYWRlcnMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzICE9PSB2b2lkIDAgJiYgKHR5cGVvZiBvdXRwdXQuc3RhdHVzICE9PSBcIm51bWJlclwiIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG91dHB1dC5zdGF0dXMpIHx8IGlzT1JQQ0Vycm9yU3RhdHVzKG91dHB1dC5zdGF0dXMpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1JvdTNQYXR0ZXJuKHBhdGgpIHtcbiAgcmV0dXJuIHN0YW5kYXJkaXplSFRUUFBhdGgocGF0aCkucmVwbGFjZSgvXFwvXFx7XFwrKFtefV0rKVxcfS9nLCBcIi8qKjokMVwiKS5yZXBsYWNlKC9cXC9cXHsoW159XSspXFx9L2csIFwiLzokMVwiKTtcbn1cbmZ1bmN0aW9uIGRlY29kZVBhcmFtcyhwYXJhbXMpIHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhwYXJhbXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCB0cnlEZWNvZGVVUklDb21wb25lbnQodmFsdWUpXSkpO1xufVxuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElNYXRjaGVyIHtcbiAgZmlsdGVyO1xuICB0cmVlID0gY3JlYXRlUm91dGVyKCk7XG4gIHBlbmRpbmdSb3V0ZXJzID0gW107XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuZmlsdGVyID0gb3B0aW9ucy5maWx0ZXIgPz8gdHJ1ZTtcbiAgfVxuICBpbml0KHJvdXRlciwgcGF0aCA9IFtdKSB7XG4gICAgY29uc3QgbGF6aWVkT3B0aW9ucyA9IHRyYXZlcnNlQ29udHJhY3RQcm9jZWR1cmVzKHsgcm91dGVyLCBwYXRoIH0sICh0cmF2ZXJzZU9wdGlvbnMpID0+IHtcbiAgICAgIGlmICghdmFsdWUodGhpcy5maWx0ZXIsIHRyYXZlcnNlT3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgeyBwYXRoOiBwYXRoMiwgY29udHJhY3QgfSA9IHRyYXZlcnNlT3B0aW9ucztcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0TWV0aG9kXCIsIGNvbnRyYWN0W1wifm9ycGNcIl0ucm91dGUubWV0aG9kKTtcbiAgICAgIGNvbnN0IGh0dHBQYXRoID0gdG9Sb3UzUGF0dGVybihjb250cmFjdFtcIn5vcnBjXCJdLnJvdXRlLnBhdGggPz8gdG9IdHRwUGF0aChwYXRoMikpO1xuICAgICAgaWYgKGlzUHJvY2VkdXJlKGNvbnRyYWN0KSkge1xuICAgICAgICBhZGRSb3V0ZSh0aGlzLnRyZWUsIG1ldGhvZCwgaHR0cFBhdGgsIHtcbiAgICAgICAgICBwYXRoOiBwYXRoMixcbiAgICAgICAgICBjb250cmFjdCxcbiAgICAgICAgICBwcm9jZWR1cmU6IGNvbnRyYWN0LFxuICAgICAgICAgIC8vIHRoaXMgbWVhbiBkZXYgbm90IHVzZWQgY29udHJhY3QtZmlyc3Qgc28gd2UgY2FuIHVzZWQgY29udHJhY3QgYXMgcHJvY2VkdXJlIGRpcmVjdGx5XG4gICAgICAgICAgcm91dGVyXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkUm91dGUodGhpcy50cmVlLCBtZXRob2QsIGh0dHBQYXRoLCB7XG4gICAgICAgICAgcGF0aDogcGF0aDIsXG4gICAgICAgICAgY29udHJhY3QsXG4gICAgICAgICAgcHJvY2VkdXJlOiB2b2lkIDAsXG4gICAgICAgICAgcm91dGVyXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGVuZGluZ1JvdXRlcnMucHVzaCguLi5sYXppZWRPcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgaHR0cFBhdGhQcmVmaXg6IHRvSHR0cFBhdGgob3B0aW9uLnBhdGgpLFxuICAgICAgbGF6aWVkUHJlZml4OiBnZXRMYXp5TWV0YShvcHRpb24ucm91dGVyKS5wcmVmaXhcbiAgICB9KSkpO1xuICB9XG4gIGFzeW5jIG1hdGNoKG1ldGhvZCwgcGF0aG5hbWUpIHtcbiAgICBpZiAodGhpcy5wZW5kaW5nUm91dGVycy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5ld1BlbmRpbmdSb3V0ZXJzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBlbmRpbmdSb3V0ZXIgb2YgdGhpcy5wZW5kaW5nUm91dGVycykge1xuICAgICAgICBpZiAoIXBlbmRpbmdSb3V0ZXIubGF6aWVkUHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocGVuZGluZ1JvdXRlci5sYXppZWRQcmVmaXgpIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocGVuZGluZ1JvdXRlci5odHRwUGF0aFByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCB7IGRlZmF1bHQ6IHJvdXRlciB9ID0gYXdhaXQgdW5sYXp5KHBlbmRpbmdSb3V0ZXIucm91dGVyKTtcbiAgICAgICAgICB0aGlzLmluaXQocm91dGVyLCBwZW5kaW5nUm91dGVyLnBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1BlbmRpbmdSb3V0ZXJzLnB1c2gocGVuZGluZ1JvdXRlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucGVuZGluZ1JvdXRlcnMgPSBuZXdQZW5kaW5nUm91dGVycztcbiAgICB9XG4gICAgY29uc3QgbWF0Y2ggPSBmaW5kUm91dGUodGhpcy50cmVlLCBtZXRob2QsIHBhdGhuYW1lKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoIW1hdGNoLmRhdGEucHJvY2VkdXJlKSB7XG4gICAgICBjb25zdCB7IGRlZmF1bHQ6IG1heWJlUHJvY2VkdXJlIH0gPSBhd2FpdCB1bmxhenkoZ2V0Um91dGVyKG1hdGNoLmRhdGEucm91dGVyLCBtYXRjaC5kYXRhLnBhdGgpKTtcbiAgICAgIGlmICghaXNQcm9jZWR1cmUobWF5YmVQcm9jZWR1cmUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgICAgW0NvbnRyYWN0LUZpcnN0XSBNaXNzaW5nIG9yIGludmFsaWQgaW1wbGVtZW50YXRpb24gZm9yIHByb2NlZHVyZSBhdCBwYXRoOiAke3RvSHR0cFBhdGgobWF0Y2guZGF0YS5wYXRoKX0uXG4gICAgICAgICAgRW5zdXJlIHRoYXQgdGhlIHByb2NlZHVyZSBpcyBjb3JyZWN0bHkgZGVmaW5lZCBhbmQgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgY29udHJhY3QuXG4gICAgICAgIGApO1xuICAgICAgfVxuICAgICAgbWF0Y2guZGF0YS5wcm9jZWR1cmUgPSBjcmVhdGVDb250cmFjdGVkUHJvY2VkdXJlKG1heWJlUHJvY2VkdXJlLCBtYXRjaC5kYXRhLmNvbnRyYWN0KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IG1hdGNoLmRhdGEucGF0aCxcbiAgICAgIHByb2NlZHVyZTogbWF0Y2guZGF0YS5wcm9jZWR1cmUsXG4gICAgICBwYXJhbXM6IG1hdGNoLnBhcmFtcyA/IGRlY29kZVBhcmFtcyhtYXRjaC5wYXJhbXMpIDogdm9pZCAwXG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElIYW5kbGVyIGV4dGVuZHMgU3RhbmRhcmRIYW5kbGVyIHtcbiAgY29uc3RydWN0b3Iocm91dGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QganNvblNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRPcGVuQVBJSnNvblNlcmlhbGl6ZXIob3B0aW9ucyk7XG4gICAgY29uc3QgYnJhY2tldE5vdGF0aW9uU2VyaWFsaXplciA9IG5ldyBTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIob3B0aW9ucyk7XG4gICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyKGpzb25TZXJpYWxpemVyLCBicmFja2V0Tm90YXRpb25TZXJpYWxpemVyKTtcbiAgICBjb25zdCBtYXRjaGVyID0gbmV3IFN0YW5kYXJkT3BlbkFQSU1hdGNoZXIob3B0aW9ucyk7XG4gICAgY29uc3QgY29kZWMgPSBuZXcgU3RhbmRhcmRPcGVuQVBJQ29kZWMoc2VyaWFsaXplciwgb3B0aW9ucyk7XG4gICAgc3VwZXIocm91dGVyLCBtYXRjaGVyLCBjb2RlYywgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IHsgU3RhbmRhcmRPcGVuQVBJQ29kZWMgYXMgUywgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciBhcyBhLCBTdGFuZGFyZE9wZW5BUElNYXRjaGVyIGFzIGIsIGRlY29kZVBhcmFtcyBhcyBkLCB0b1JvdTNQYXR0ZXJuIGFzIHQgfTtcbiIsImltcG9ydCB7IEZldGNoSGFuZGxlciB9IGZyb20gJ0BvcnBjL3NlcnZlci9mZXRjaCc7XG5pbXBvcnQgJ0BvcnBjL2NsaWVudCc7XG5pbXBvcnQgJ0BvcnBjL2NvbnRyYWN0JztcbmltcG9ydCAnQG9ycGMvc2hhcmVkJztcbmltcG9ydCB7IGEgYXMgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9vcGVuYXBpLkRJdC1aOVcxLm1qcyc7XG5pbXBvcnQgJ0BvcnBjL2NsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgJ0BvcnBjL3NlcnZlcic7XG5pbXBvcnQgJ3JvdTMnO1xuaW1wb3J0ICdAb3JwYy9vcGVuYXBpLWNsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgJ0BvcnBjL3NlcnZlci9zdGFuZGFyZCc7XG5cbmNsYXNzIE9wZW5BUElIYW5kbGVyIGV4dGVuZHMgRmV0Y2hIYW5kbGVyIHtcbiAgY29uc3RydWN0b3Iocm91dGVyLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihuZXcgU3RhbmRhcmRPcGVuQVBJSGFuZGxlcihyb3V0ZXIsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgeyBPcGVuQVBJSGFuZGxlciB9O1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FB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
335
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gteWNzMHJhWU4ubWpzIiwibmFtZXMiOlsidmFsdWUiLCIjaXNEZXRhaWxlZE91dHB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8uYnVuL3JvdTNAMC43LjEwL25vZGVfbW9kdWxlcy9yb3UzL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5idW4vQG9ycGMrb3BlbmFwaUAxLjEwLjQvbm9kZV9tb2R1bGVzL0BvcnBjL29wZW5hcGkvZGlzdC9zaGFyZWQvb3BlbmFwaS5ESXQtWjlXMS5tanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLmJ1bi9Ab3JwYytvcGVuYXBpQDEuMTAuNC9ub2RlX21vZHVsZXMvQG9ycGMvb3BlbmFwaS9kaXN0L2FkYXB0ZXJzL2ZldGNoL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBOdWxsUHJvdG9PYmogPSAvKiBAX19QVVJFX18gKi8gKCgpID0+IHtcblx0Y29uc3QgZSA9IGZ1bmN0aW9uKCkge307XG5cdHJldHVybiBlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUobnVsbCksIE9iamVjdC5mcmVlemUoZS5wcm90b3R5cGUpLCBlO1xufSkoKTtcblxuLyoqXG4qIENyZWF0ZSBhIG5ldyByb3V0ZXIgY29udGV4dC5cbiovXG5mdW5jdGlvbiBjcmVhdGVSb3V0ZXIoKSB7XG5cdHJldHVybiB7XG5cdFx0cm9vdDogeyBrZXk6IFwiXCIgfSxcblx0XHRzdGF0aWM6IG5ldyBOdWxsUHJvdG9PYmooKVxuXHR9O1xufVxuXG5mdW5jdGlvbiBzcGxpdFBhdGgocGF0aCkge1xuXHRjb25zdCBbXywgLi4uc10gPSBwYXRoLnNwbGl0KFwiL1wiKTtcblx0cmV0dXJuIHNbcy5sZW5ndGggLSAxXSA9PT0gXCJcIiA/IHMuc2xpY2UoMCwgLTEpIDogcztcbn1cbmZ1bmN0aW9uIGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBwYXJhbXNNYXApIHtcblx0Y29uc3QgcGFyYW1zID0gbmV3IE51bGxQcm90b09iaigpO1xuXHRmb3IgKGNvbnN0IFtpbmRleCwgbmFtZV0gb2YgcGFyYW1zTWFwKSB7XG5cdFx0Y29uc3Qgc2VnbWVudCA9IGluZGV4IDwgMCA/IHNlZ21lbnRzLnNsaWNlKC0xICogaW5kZXgpLmpvaW4oXCIvXCIpIDogc2VnbWVudHNbaW5kZXhdO1xuXHRcdGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIikgcGFyYW1zW25hbWVdID0gc2VnbWVudDtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gc2VnbWVudC5tYXRjaChuYW1lKTtcblx0XHRcdGlmIChtYXRjaCkgZm9yIChjb25zdCBrZXkgaW4gbWF0Y2guZ3JvdXBzKSBwYXJhbXNba2V5XSA9IG1hdGNoLmdyb3Vwc1trZXldO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcGFyYW1zO1xufVxuXG4vKipcbiogQWRkIGEgcm91dGUgdG8gdGhlIHJvdXRlciBjb250ZXh0LlxuKi9cbmZ1bmN0aW9uIGFkZFJvdXRlKGN0eCwgbWV0aG9kID0gXCJcIiwgcGF0aCwgZGF0YSkge1xuXHRtZXRob2QgPSBtZXRob2QudG9VcHBlckNhc2UoKTtcblx0aWYgKHBhdGguY2hhckNvZGVBdCgwKSAhPT0gNDcpIHBhdGggPSBgLyR7cGF0aH1gO1xuXHRjb25zdCBzZWdtZW50cyA9IHNwbGl0UGF0aChwYXRoKTtcblx0bGV0IG5vZGUgPSBjdHgucm9vdDtcblx0bGV0IF91bm5hbWVkUGFyYW1JbmRleCA9IDA7XG5cdGNvbnN0IHBhcmFtc01hcCA9IFtdO1xuXHRjb25zdCBwYXJhbXNSZWdleHAgPSBbXTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50c1tpXTtcblx0XHRpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHtcblx0XHRcdGlmICghbm9kZS53aWxkY2FyZCkgbm9kZS53aWxkY2FyZCA9IHsga2V5OiBcIioqXCIgfTtcblx0XHRcdG5vZGUgPSBub2RlLndpbGRjYXJkO1xuXHRcdFx0cGFyYW1zTWFwLnB1c2goW1xuXHRcdFx0XHQtaSxcblx0XHRcdFx0c2VnbWVudC5zcGxpdChcIjpcIilbMV0gfHwgXCJfXCIsXG5cdFx0XHRcdHNlZ21lbnQubGVuZ3RoID09PSAyXG5cdFx0XHRdKTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIgfHwgc2VnbWVudC5pbmNsdWRlcyhcIjpcIikpIHtcblx0XHRcdGlmICghbm9kZS5wYXJhbSkgbm9kZS5wYXJhbSA9IHsga2V5OiBcIipcIiB9O1xuXHRcdFx0bm9kZSA9IG5vZGUucGFyYW07XG5cdFx0XHRpZiAoc2VnbWVudCA9PT0gXCIqXCIpIHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0aSxcblx0XHRcdFx0YF8ke191bm5hbWVkUGFyYW1JbmRleCsrfWAsXG5cdFx0XHRcdHRydWVcblx0XHRcdF0pO1xuXHRcdFx0ZWxzZSBpZiAoc2VnbWVudC5pbmNsdWRlcyhcIjpcIiwgMSkpIHtcblx0XHRcdFx0Y29uc3QgcmVnZXhwID0gZ2V0UGFyYW1SZWdleHAoc2VnbWVudCk7XG5cdFx0XHRcdHBhcmFtc1JlZ2V4cFtpXSA9IHJlZ2V4cDtcblx0XHRcdFx0bm9kZS5oYXNSZWdleFBhcmFtID0gdHJ1ZTtcblx0XHRcdFx0cGFyYW1zTWFwLnB1c2goW1xuXHRcdFx0XHRcdGksXG5cdFx0XHRcdFx0cmVnZXhwLFxuXHRcdFx0XHRcdGZhbHNlXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSBlbHNlIHBhcmFtc01hcC5wdXNoKFtcblx0XHRcdFx0aSxcblx0XHRcdFx0c2VnbWVudC5zbGljZSgxKSxcblx0XHRcdFx0ZmFsc2Vcblx0XHRcdF0pO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGNvbnN0IGNoaWxkID0gbm9kZS5zdGF0aWM/LltzZWdtZW50XTtcblx0XHRpZiAoY2hpbGQpIG5vZGUgPSBjaGlsZDtcblx0XHRlbHNlIHtcblx0XHRcdGNvbnN0IHN0YXRpY05vZGUgPSB7IGtleTogc2VnbWVudCB9O1xuXHRcdFx0aWYgKCFub2RlLnN0YXRpYykgbm9kZS5zdGF0aWMgPSBuZXcgTnVsbFByb3RvT2JqKCk7XG5cdFx0XHRub2RlLnN0YXRpY1tzZWdtZW50XSA9IHN0YXRpY05vZGU7XG5cdFx0XHRub2RlID0gc3RhdGljTm9kZTtcblx0XHR9XG5cdH1cblx0Y29uc3QgaGFzUGFyYW1zID0gcGFyYW1zTWFwLmxlbmd0aCA+IDA7XG5cdGlmICghbm9kZS5tZXRob2RzKSBub2RlLm1ldGhvZHMgPSBuZXcgTnVsbFByb3RvT2JqKCk7XG5cdG5vZGUubWV0aG9kc1ttZXRob2RdID8/PSBbXTtcblx0bm9kZS5tZXRob2RzW21ldGhvZF0ucHVzaCh7XG5cdFx0ZGF0YTogZGF0YSB8fCBudWxsLFxuXHRcdHBhcmFtc1JlZ2V4cCxcblx0XHRwYXJhbXNNYXA6IGhhc1BhcmFtcyA/IHBhcmFtc01hcCA6IHZvaWQgMFxuXHR9KTtcblx0aWYgKCFoYXNQYXJhbXMpIGN0eC5zdGF0aWNbcGF0aF0gPSBub2RlO1xufVxuZnVuY3Rpb24gZ2V0UGFyYW1SZWdleHAoc2VnbWVudCkge1xuXHRjb25zdCByZWdleCA9IHNlZ21lbnQucmVwbGFjZSgvOihcXHcrKS9nLCAoXywgaWQpID0+IGAoPzwke2lkfT5bXi9dKylgKS5yZXBsYWNlKC9cXC4vZywgXCJcXFxcLlwiKTtcblx0cmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBuZXcgUmVnRXhwKGBeJHtyZWdleH0kYCk7XG59XG5cbi8qKlxuKiBGaW5kIGEgcm91dGUgYnkgcGF0aC5cbiovXG5mdW5jdGlvbiBmaW5kUm91dGUoY3R4LCBtZXRob2QgPSBcIlwiLCBwYXRoLCBvcHRzKSB7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcpIHBhdGggPSBwYXRoLnNsaWNlKDAsIC0xKTtcblx0Y29uc3Qgc3RhdGljTm9kZSA9IGN0eC5zdGF0aWNbcGF0aF07XG5cdGlmIChzdGF0aWNOb2RlICYmIHN0YXRpY05vZGUubWV0aG9kcykge1xuXHRcdGNvbnN0IHN0YXRpY01hdGNoID0gc3RhdGljTm9kZS5tZXRob2RzW21ldGhvZF0gfHwgc3RhdGljTm9kZS5tZXRob2RzW1wiXCJdO1xuXHRcdGlmIChzdGF0aWNNYXRjaCAhPT0gdm9pZCAwKSByZXR1cm4gc3RhdGljTWF0Y2hbMF07XG5cdH1cblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBjdHgucm9vdCwgbWV0aG9kLCBzZWdtZW50cywgMCk/LlswXTtcblx0aWYgKG1hdGNoID09PSB2b2lkIDApIHJldHVybjtcblx0aWYgKG9wdHM/LnBhcmFtcyA9PT0gZmFsc2UpIHJldHVybiBtYXRjaDtcblx0cmV0dXJuIHtcblx0XHRkYXRhOiBtYXRjaC5kYXRhLFxuXHRcdHBhcmFtczogbWF0Y2gucGFyYW1zTWFwID8gZ2V0TWF0Y2hQYXJhbXMoc2VnbWVudHMsIG1hdGNoLnBhcmFtc01hcCkgOiB2b2lkIDBcblx0fTtcbn1cbmZ1bmN0aW9uIF9sb29rdXBUcmVlKGN0eCwgbm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgpIHtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGgpIHtcblx0XHRpZiAobm9kZS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0XHRpZiAobm9kZS5wYXJhbSAmJiBub2RlLnBhcmFtLm1ldGhvZHMpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gbm9kZS5wYXJhbS5tZXRob2RzW21ldGhvZF0gfHwgbm9kZS5wYXJhbS5tZXRob2RzW1wiXCJdO1xuXHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdGNvbnN0IHBNYXAgPSBtYXRjaFswXS5wYXJhbXNNYXA7XG5cdFx0XHRcdGlmIChwTWFwPy5bcE1hcD8ubGVuZ3RoIC0gMV0/LlsyXSkgcmV0dXJuIG1hdGNoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gbm9kZS53aWxkY2FyZC5tZXRob2RzW21ldGhvZF0gfHwgbm9kZS53aWxkY2FyZC5tZXRob2RzW1wiXCJdO1xuXHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdGNvbnN0IHBNYXAgPSBtYXRjaFswXS5wYXJhbXNNYXA7XG5cdFx0XHRcdGlmIChwTWFwPy5bcE1hcD8ubGVuZ3RoIC0gMV0/LlsyXSkgcmV0dXJuIG1hdGNoO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKG5vZGUuc3RhdGljKSB7XG5cdFx0Y29uc3Qgc3RhdGljQ2hpbGQgPSBub2RlLnN0YXRpY1tzZWdtZW50XTtcblx0XHRpZiAoc3RhdGljQ2hpbGQpIHtcblx0XHRcdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBzdGF0aWNDaGlsZCwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChtYXRjaCkgcmV0dXJuIG1hdGNoO1xuXHRcdH1cblx0fVxuXHRpZiAobm9kZS5wYXJhbSkge1xuXHRcdGNvbnN0IG1hdGNoID0gX2xvb2t1cFRyZWUoY3R4LCBub2RlLnBhcmFtLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEpO1xuXHRcdGlmIChtYXRjaCkge1xuXHRcdFx0aWYgKG5vZGUucGFyYW0uaGFzUmVnZXhQYXJhbSkge1xuXHRcdFx0XHRjb25zdCBleGFjdE1hdGNoID0gbWF0Y2guZmluZCgobSkgPT4gbS5wYXJhbXNSZWdleHBbaW5kZXhdPy50ZXN0KHNlZ21lbnQpKSB8fCBtYXRjaC5maW5kKChtKSA9PiAhbS5wYXJhbXNSZWdleHBbaW5kZXhdKTtcblx0XHRcdFx0cmV0dXJuIGV4YWN0TWF0Y2ggPyBbZXhhY3RNYXRjaF0gOiB2b2lkIDA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fVxuXHR9XG5cdGlmIChub2RlLndpbGRjYXJkICYmIG5vZGUud2lsZGNhcmQubWV0aG9kcykgcmV0dXJuIG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcbn1cblxuLyoqXG4qIFJlbW92ZSBhIHJvdXRlIGZyb20gdGhlIHJvdXRlciBjb250ZXh0LlxuKi9cbmZ1bmN0aW9uIHJlbW92ZVJvdXRlKGN0eCwgbWV0aG9kLCBwYXRoKSB7XG5cdGNvbnN0IHNlZ21lbnRzID0gc3BsaXRQYXRoKHBhdGgpO1xuXHRyZXR1cm4gX3JlbW92ZShjdHgucm9vdCwgbWV0aG9kIHx8IFwiXCIsIHNlZ21lbnRzLCAwKTtcbn1cbmZ1bmN0aW9uIF9yZW1vdmUobm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgpIHtcblx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGgpIHtcblx0XHRpZiAobm9kZS5tZXRob2RzICYmIG1ldGhvZCBpbiBub2RlLm1ldGhvZHMpIHtcblx0XHRcdGRlbGV0ZSBub2RlLm1ldGhvZHNbbWV0aG9kXTtcblx0XHRcdGlmIChPYmplY3Qua2V5cyhub2RlLm1ldGhvZHMpLmxlbmd0aCA9PT0gMCkgbm9kZS5tZXRob2RzID0gdm9pZCAwO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblx0Y29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzW2luZGV4XTtcblx0aWYgKHNlZ21lbnQgPT09IFwiKlwiKSB7XG5cdFx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRcdF9yZW1vdmUobm9kZS5wYXJhbSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRcdGlmIChfaXNFbXB0eU5vZGUobm9kZS5wYXJhbSkpIG5vZGUucGFyYW0gPSB2b2lkIDA7XG5cdFx0fVxuXHRcdHJldHVybjtcblx0fVxuXHRpZiAoc2VnbWVudC5zdGFydHNXaXRoKFwiKipcIikpIHtcblx0XHRpZiAobm9kZS53aWxkY2FyZCkge1xuXHRcdFx0X3JlbW92ZShub2RlLndpbGRjYXJkLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEpO1xuXHRcdFx0aWYgKF9pc0VtcHR5Tm9kZShub2RlLndpbGRjYXJkKSkgbm9kZS53aWxkY2FyZCA9IHZvaWQgMDtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IGNoaWxkTm9kZSA9IG5vZGUuc3RhdGljPy5bc2VnbWVudF07XG5cdGlmIChjaGlsZE5vZGUpIHtcblx0XHRfcmVtb3ZlKGNoaWxkTm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXggKyAxKTtcblx0XHRpZiAoX2lzRW1wdHlOb2RlKGNoaWxkTm9kZSkpIHtcblx0XHRcdGRlbGV0ZSBub2RlLnN0YXRpY1tzZWdtZW50XTtcblx0XHRcdGlmIChPYmplY3Qua2V5cyhub2RlLnN0YXRpYykubGVuZ3RoID09PSAwKSBub2RlLnN0YXRpYyA9IHZvaWQgMDtcblx0XHR9XG5cdH1cbn1cbmZ1bmN0aW9uIF9pc0VtcHR5Tm9kZShub2RlKSB7XG5cdHJldHVybiBub2RlLm1ldGhvZHMgPT09IHZvaWQgMCAmJiBub2RlLnN0YXRpYyA9PT0gdm9pZCAwICYmIG5vZGUucGFyYW0gPT09IHZvaWQgMCAmJiBub2RlLndpbGRjYXJkID09PSB2b2lkIDA7XG59XG5cbi8qKlxuKiBGaW5kIGFsbCByb3V0ZSBwYXR0ZXJucyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBwYXRoLlxuKi9cbmZ1bmN0aW9uIGZpbmRBbGxSb3V0ZXMoY3R4LCBtZXRob2QgPSBcIlwiLCBwYXRoLCBvcHRzKSB7XG5cdGlmIChwYXRoLmNoYXJDb2RlQXQocGF0aC5sZW5ndGggLSAxKSA9PT0gNDcpIHBhdGggPSBwYXRoLnNsaWNlKDAsIC0xKTtcblx0Y29uc3Qgc2VnbWVudHMgPSBzcGxpdFBhdGgocGF0aCk7XG5cdGNvbnN0IG1hdGNoZXMgPSBfZmluZEFsbChjdHgsIGN0eC5yb290LCBtZXRob2QsIHNlZ21lbnRzLCAwKTtcblx0aWYgKG9wdHM/LnBhcmFtcyA9PT0gZmFsc2UpIHJldHVybiBtYXRjaGVzO1xuXHRyZXR1cm4gbWF0Y2hlcy5tYXAoKG0pID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogbS5kYXRhLFxuXHRcdFx0cGFyYW1zOiBtLnBhcmFtc01hcCA/IGdldE1hdGNoUGFyYW1zKHNlZ21lbnRzLCBtLnBhcmFtc01hcCkgOiB2b2lkIDBcblx0XHR9O1xuXHR9KTtcbn1cbmZ1bmN0aW9uIF9maW5kQWxsKGN0eCwgbm9kZSwgbWV0aG9kLCBzZWdtZW50cywgaW5kZXgsIG1hdGNoZXMgPSBbXSkge1xuXHRjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbaW5kZXhdO1xuXHRpZiAobm9kZS53aWxkY2FyZCAmJiBub2RlLndpbGRjYXJkLm1ldGhvZHMpIHtcblx0XHRjb25zdCBtYXRjaCA9IG5vZGUud2lsZGNhcmQubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUud2lsZGNhcmQubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAobWF0Y2gpIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdH1cblx0aWYgKG5vZGUucGFyYW0pIHtcblx0XHRfZmluZEFsbChjdHgsIG5vZGUucGFyYW0sIG1ldGhvZCwgc2VnbWVudHMsIGluZGV4ICsgMSwgbWF0Y2hlcyk7XG5cdFx0aWYgKGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggJiYgbm9kZS5wYXJhbS5tZXRob2RzKSB7XG5cdFx0XHRjb25zdCBtYXRjaCA9IG5vZGUucGFyYW0ubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUucGFyYW0ubWV0aG9kc1tcIlwiXTtcblx0XHRcdGlmIChtYXRjaCkge1xuXHRcdFx0XHRjb25zdCBwTWFwID0gbWF0Y2hbMF0ucGFyYW1zTWFwO1xuXHRcdFx0XHRpZiAocE1hcD8uW3BNYXA/Lmxlbmd0aCAtIDFdPy5bMl0pIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IHN0YXRpY0NoaWxkID0gbm9kZS5zdGF0aWM/LltzZWdtZW50XTtcblx0aWYgKHN0YXRpY0NoaWxkKSBfZmluZEFsbChjdHgsIHN0YXRpY0NoaWxkLCBtZXRob2QsIHNlZ21lbnRzLCBpbmRleCArIDEsIG1hdGNoZXMpO1xuXHRpZiAoaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAmJiBub2RlLm1ldGhvZHMpIHtcblx0XHRjb25zdCBtYXRjaCA9IG5vZGUubWV0aG9kc1ttZXRob2RdIHx8IG5vZGUubWV0aG9kc1tcIlwiXTtcblx0XHRpZiAobWF0Y2gpIG1hdGNoZXMucHVzaCguLi5tYXRjaCk7XG5cdH1cblx0cmV0dXJuIG1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIHJvdXRlVG9SZWdFeHAocm91dGUgPSBcIi9cIikge1xuXHRjb25zdCByZVNlZ21lbnRzID0gW107XG5cdGxldCBpZEN0ciA9IDA7XG5cdGZvciAoY29uc3Qgc2VnbWVudCBvZiByb3V0ZS5zcGxpdChcIi9cIikpIHtcblx0XHRpZiAoIXNlZ21lbnQpIGNvbnRpbnVlO1xuXHRcdGlmIChzZWdtZW50ID09PSBcIipcIikgcmVTZWdtZW50cy5wdXNoKGAoPzxfJHtpZEN0cisrfT5bXi9dKilgKTtcblx0XHRlbHNlIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoXCIqKlwiKSkgcmVTZWdtZW50cy5wdXNoKHNlZ21lbnQgPT09IFwiKipcIiA/IFwiPyg/PF8+LiopXCIgOiBgPyg/PCR7c2VnbWVudC5zbGljZSgzKX0+LispYCk7XG5cdFx0ZWxzZSBpZiAoc2VnbWVudC5pbmNsdWRlcyhcIjpcIikpIHJlU2VnbWVudHMucHVzaChzZWdtZW50LnJlcGxhY2UoLzooXFx3KykvZywgKF8sIGlkKSA9PiBgKD88JHtpZH0+W14vXSspYCkucmVwbGFjZSgvXFwuL2csIFwiXFxcXC5cIikpO1xuXHRcdGVsc2UgcmVTZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuXHR9XG5cdHJldHVybiAvKiBAX19QVVJFX18gKi8gbmV3IFJlZ0V4cChgXi8ke3JlU2VnbWVudHMuam9pbihcIi9cIil9Lz8kYCk7XG59XG5cbmV4cG9ydCB7IE51bGxQcm90b09iaiwgYWRkUm91dGUsIGNyZWF0ZVJvdXRlciwgZmluZEFsbFJvdXRlcywgZmluZFJvdXRlLCByZW1vdmVSb3V0ZSwgcm91dGVUb1JlZ0V4cCB9OyIsImltcG9ydCB7IHN0YW5kYXJkaXplSFRUUFBhdGgsIFN0YW5kYXJkT3BlbkFQSUpzb25TZXJpYWxpemVyLCBTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIsIFN0YW5kYXJkT3BlbkFQSVNlcmlhbGl6ZXIgfSBmcm9tICdAb3JwYy9vcGVuYXBpLWNsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgeyBTdGFuZGFyZEhhbmRsZXIgfSBmcm9tICdAb3JwYy9zZXJ2ZXIvc3RhbmRhcmQnO1xuaW1wb3J0IHsgaXNPUlBDRXJyb3JTdGF0dXMgfSBmcm9tICdAb3JwYy9jbGllbnQnO1xuaW1wb3J0IHsgZmFsbGJhY2tDb250cmFjdENvbmZpZyB9IGZyb20gJ0BvcnBjL2NvbnRyYWN0JztcbmltcG9ydCB7IGlzT2JqZWN0LCBzdHJpbmdpZnlKU09OLCB0cnlEZWNvZGVVUklDb21wb25lbnQsIHZhbHVlIH0gZnJvbSAnQG9ycGMvc2hhcmVkJztcbmltcG9ydCB7IHRvSHR0cFBhdGggfSBmcm9tICdAb3JwYy9jbGllbnQvc3RhbmRhcmQnO1xuaW1wb3J0IHsgdHJhdmVyc2VDb250cmFjdFByb2NlZHVyZXMsIGlzUHJvY2VkdXJlLCBnZXRMYXp5TWV0YSwgdW5sYXp5LCBnZXRSb3V0ZXIsIGNyZWF0ZUNvbnRyYWN0ZWRQcm9jZWR1cmUgfSBmcm9tICdAb3JwYy9zZXJ2ZXInO1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyLCBhZGRSb3V0ZSwgZmluZFJvdXRlIH0gZnJvbSAncm91Myc7XG5cbmNsYXNzIFN0YW5kYXJkT3BlbkFQSUNvZGVjIHtcbiAgY29uc3RydWN0b3Ioc2VyaWFsaXplciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5zZXJpYWxpemVyID0gc2VyaWFsaXplcjtcbiAgICB0aGlzLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlciA9IG9wdGlvbnMuY3VzdG9tRXJyb3JSZXNwb25zZUJvZHlFbmNvZGVyO1xuICB9XG4gIGN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2RlcjtcbiAgYXN5bmMgZGVjb2RlKHJlcXVlc3QsIHBhcmFtcywgcHJvY2VkdXJlKSB7XG4gICAgY29uc3QgaW5wdXRTdHJ1Y3R1cmUgPSBmYWxsYmFja0NvbnRyYWN0Q29uZmlnKFwiZGVmYXVsdElucHV0U3RydWN0dXJlXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLmlucHV0U3RydWN0dXJlKTtcbiAgICBpZiAoaW5wdXRTdHJ1Y3R1cmUgPT09IFwiY29tcGFjdFwiKSB7XG4gICAgICBjb25zdCBkYXRhID0gcmVxdWVzdC5tZXRob2QgPT09IFwiR0VUXCIgPyB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUocmVxdWVzdC51cmwuc2VhcmNoUGFyYW1zKSA6IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShhd2FpdCByZXF1ZXN0LmJvZHkoKSk7XG4gICAgICBpZiAoZGF0YSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICB9XG4gICAgICBpZiAoaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgLi4uZGF0YVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0IGRlc2VyaWFsaXplU2VhcmNoUGFyYW1zID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXF1ZXN0LnVybC5zZWFyY2hQYXJhbXMpO1xuICAgIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIGdldCBxdWVyeSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkZXNlcmlhbGl6ZVNlYXJjaFBhcmFtcygpO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJxdWVyeVwiLCB7IHZhbHVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHNldCBxdWVyeSh2YWx1ZSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJxdWVyeVwiLCB7IHZhbHVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXG4gICAgICBib2R5OiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoYXdhaXQgcmVxdWVzdC5ib2R5KCkpXG4gICAgfTtcbiAgfVxuICBlbmNvZGUob3V0cHV0LCBwcm9jZWR1cmUpIHtcbiAgICBjb25zdCBzdWNjZXNzU3RhdHVzID0gZmFsbGJhY2tDb250cmFjdENvbmZpZyhcImRlZmF1bHRTdWNjZXNzU3RhdHVzXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLnN1Y2Nlc3NTdGF0dXMpO1xuICAgIGNvbnN0IG91dHB1dFN0cnVjdHVyZSA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0T3V0cHV0U3RydWN0dXJlXCIsIHByb2NlZHVyZVtcIn5vcnBjXCJdLnJvdXRlLm91dHB1dFN0cnVjdHVyZSk7XG4gICAgaWYgKG91dHB1dFN0cnVjdHVyZSA9PT0gXCJjb21wYWN0XCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogc3VjY2Vzc1N0YXR1cyxcbiAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUob3V0cHV0KVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLiNpc0RldGFpbGVkT3V0cHV0KG91dHB1dCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgIEludmFsaWQgXCJkZXRhaWxlZFwiIG91dHB1dCBzdHJ1Y3R1cmU6XG4gICAgICAgIFxcdTIwMjIgRXhwZWN0ZWQgYW4gb2JqZWN0IHdpdGggb3B0aW9uYWwgcHJvcGVydGllczpcbiAgICAgICAgICAtIHN0YXR1cyAobnVtYmVyIDIwMC0zOTkpXG4gICAgICAgICAgLSBoZWFkZXJzIChSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT4pXG4gICAgICAgICAgLSBib2R5IChhbnkpXG4gICAgICAgIFxcdTIwMjIgTm8gZXh0cmEga2V5cyBhbGxvd2VkLlxuXG4gICAgICAgIEFjdHVhbCB2YWx1ZTpcbiAgICAgICAgICAke3N0cmluZ2lmeUpTT04ob3V0cHV0KX1cbiAgICAgIGApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBvdXRwdXQuc3RhdHVzID8/IHN1Y2Nlc3NTdGF0dXMsXG4gICAgICBoZWFkZXJzOiBvdXRwdXQuaGVhZGVycyA/PyB7fSxcbiAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUob3V0cHV0LmJvZHkpXG4gICAgfTtcbiAgfVxuICBlbmNvZGVFcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmN1c3RvbUVycm9yUmVzcG9uc2VCb2R5RW5jb2Rlcj8uKGVycm9yKSA/PyBlcnJvci50b0pTT04oKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiBlcnJvci5zdGF0dXMsXG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIGJvZHk6IHRoaXMuc2VyaWFsaXplci5zZXJpYWxpemUoYm9keSwgeyBvdXRwdXRGb3JtYXQ6IFwicGxhaW5cIiB9KVxuICAgIH07XG4gIH1cbiAgI2lzRGV0YWlsZWRPdXRwdXQob3V0cHV0KSB7XG4gICAgaWYgKCFpc09iamVjdChvdXRwdXQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuaGVhZGVycyAmJiAhaXNPYmplY3Qob3V0cHV0LmhlYWRlcnMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChvdXRwdXQuc3RhdHVzICE9PSB2b2lkIDAgJiYgKHR5cGVvZiBvdXRwdXQuc3RhdHVzICE9PSBcIm51bWJlclwiIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG91dHB1dC5zdGF0dXMpIHx8IGlzT1JQQ0Vycm9yU3RhdHVzKG91dHB1dC5zdGF0dXMpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1JvdTNQYXR0ZXJuKHBhdGgpIHtcbiAgcmV0dXJuIHN0YW5kYXJkaXplSFRUUFBhdGgocGF0aCkucmVwbGFjZSgvXFwvXFx7XFwrKFtefV0rKVxcfS9nLCBcIi8qKjokMVwiKS5yZXBsYWNlKC9cXC9cXHsoW159XSspXFx9L2csIFwiLzokMVwiKTtcbn1cbmZ1bmN0aW9uIGRlY29kZVBhcmFtcyhwYXJhbXMpIHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhwYXJhbXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCB0cnlEZWNvZGVVUklDb21wb25lbnQodmFsdWUpXSkpO1xufVxuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElNYXRjaGVyIHtcbiAgZmlsdGVyO1xuICB0cmVlID0gY3JlYXRlUm91dGVyKCk7XG4gIHBlbmRpbmdSb3V0ZXJzID0gW107XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuZmlsdGVyID0gb3B0aW9ucy5maWx0ZXIgPz8gdHJ1ZTtcbiAgfVxuICBpbml0KHJvdXRlciwgcGF0aCA9IFtdKSB7XG4gICAgY29uc3QgbGF6aWVkT3B0aW9ucyA9IHRyYXZlcnNlQ29udHJhY3RQcm9jZWR1cmVzKHsgcm91dGVyLCBwYXRoIH0sICh0cmF2ZXJzZU9wdGlvbnMpID0+IHtcbiAgICAgIGlmICghdmFsdWUodGhpcy5maWx0ZXIsIHRyYXZlcnNlT3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgeyBwYXRoOiBwYXRoMiwgY29udHJhY3QgfSA9IHRyYXZlcnNlT3B0aW9ucztcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGZhbGxiYWNrQ29udHJhY3RDb25maWcoXCJkZWZhdWx0TWV0aG9kXCIsIGNvbnRyYWN0W1wifm9ycGNcIl0ucm91dGUubWV0aG9kKTtcbiAgICAgIGNvbnN0IGh0dHBQYXRoID0gdG9Sb3UzUGF0dGVybihjb250cmFjdFtcIn5vcnBjXCJdLnJvdXRlLnBhdGggPz8gdG9IdHRwUGF0aChwYXRoMikpO1xuICAgICAgaWYgKGlzUHJvY2VkdXJlKGNvbnRyYWN0KSkge1xuICAgICAgICBhZGRSb3V0ZSh0aGlzLnRyZWUsIG1ldGhvZCwgaHR0cFBhdGgsIHtcbiAgICAgICAgICBwYXRoOiBwYXRoMixcbiAgICAgICAgICBjb250cmFjdCxcbiAgICAgICAgICBwcm9jZWR1cmU6IGNvbnRyYWN0LFxuICAgICAgICAgIC8vIHRoaXMgbWVhbiBkZXYgbm90IHVzZWQgY29udHJhY3QtZmlyc3Qgc28gd2UgY2FuIHVzZWQgY29udHJhY3QgYXMgcHJvY2VkdXJlIGRpcmVjdGx5XG4gICAgICAgICAgcm91dGVyXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkUm91dGUodGhpcy50cmVlLCBtZXRob2QsIGh0dHBQYXRoLCB7XG4gICAgICAgICAgcGF0aDogcGF0aDIsXG4gICAgICAgICAgY29udHJhY3QsXG4gICAgICAgICAgcHJvY2VkdXJlOiB2b2lkIDAsXG4gICAgICAgICAgcm91dGVyXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucGVuZGluZ1JvdXRlcnMucHVzaCguLi5sYXppZWRPcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgaHR0cFBhdGhQcmVmaXg6IHRvSHR0cFBhdGgob3B0aW9uLnBhdGgpLFxuICAgICAgbGF6aWVkUHJlZml4OiBnZXRMYXp5TWV0YShvcHRpb24ucm91dGVyKS5wcmVmaXhcbiAgICB9KSkpO1xuICB9XG4gIGFzeW5jIG1hdGNoKG1ldGhvZCwgcGF0aG5hbWUpIHtcbiAgICBpZiAodGhpcy5wZW5kaW5nUm91dGVycy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5ld1BlbmRpbmdSb3V0ZXJzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBlbmRpbmdSb3V0ZXIgb2YgdGhpcy5wZW5kaW5nUm91dGVycykge1xuICAgICAgICBpZiAoIXBlbmRpbmdSb3V0ZXIubGF6aWVkUHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocGVuZGluZ1JvdXRlci5sYXppZWRQcmVmaXgpIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocGVuZGluZ1JvdXRlci5odHRwUGF0aFByZWZpeCkpIHtcbiAgICAgICAgICBjb25zdCB7IGRlZmF1bHQ6IHJvdXRlciB9ID0gYXdhaXQgdW5sYXp5KHBlbmRpbmdSb3V0ZXIucm91dGVyKTtcbiAgICAgICAgICB0aGlzLmluaXQocm91dGVyLCBwZW5kaW5nUm91dGVyLnBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld1BlbmRpbmdSb3V0ZXJzLnB1c2gocGVuZGluZ1JvdXRlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucGVuZGluZ1JvdXRlcnMgPSBuZXdQZW5kaW5nUm91dGVycztcbiAgICB9XG4gICAgY29uc3QgbWF0Y2ggPSBmaW5kUm91dGUodGhpcy50cmVlLCBtZXRob2QsIHBhdGhuYW1lKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoIW1hdGNoLmRhdGEucHJvY2VkdXJlKSB7XG4gICAgICBjb25zdCB7IGRlZmF1bHQ6IG1heWJlUHJvY2VkdXJlIH0gPSBhd2FpdCB1bmxhenkoZ2V0Um91dGVyKG1hdGNoLmRhdGEucm91dGVyLCBtYXRjaC5kYXRhLnBhdGgpKTtcbiAgICAgIGlmICghaXNQcm9jZWR1cmUobWF5YmVQcm9jZWR1cmUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgICAgW0NvbnRyYWN0LUZpcnN0XSBNaXNzaW5nIG9yIGludmFsaWQgaW1wbGVtZW50YXRpb24gZm9yIHByb2NlZHVyZSBhdCBwYXRoOiAke3RvSHR0cFBhdGgobWF0Y2guZGF0YS5wYXRoKX0uXG4gICAgICAgICAgRW5zdXJlIHRoYXQgdGhlIHByb2NlZHVyZSBpcyBjb3JyZWN0bHkgZGVmaW5lZCBhbmQgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgY29udHJhY3QuXG4gICAgICAgIGApO1xuICAgICAgfVxuICAgICAgbWF0Y2guZGF0YS5wcm9jZWR1cmUgPSBjcmVhdGVDb250cmFjdGVkUHJvY2VkdXJlKG1heWJlUHJvY2VkdXJlLCBtYXRjaC5kYXRhLmNvbnRyYWN0KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IG1hdGNoLmRhdGEucGF0aCxcbiAgICAgIHByb2NlZHVyZTogbWF0Y2guZGF0YS5wcm9jZWR1cmUsXG4gICAgICBwYXJhbXM6IG1hdGNoLnBhcmFtcyA/IGRlY29kZVBhcmFtcyhtYXRjaC5wYXJhbXMpIDogdm9pZCAwXG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBTdGFuZGFyZE9wZW5BUElIYW5kbGVyIGV4dGVuZHMgU3RhbmRhcmRIYW5kbGVyIHtcbiAgY29uc3RydWN0b3Iocm91dGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QganNvblNlcmlhbGl6ZXIgPSBuZXcgU3RhbmRhcmRPcGVuQVBJSnNvblNlcmlhbGl6ZXIob3B0aW9ucyk7XG4gICAgY29uc3QgYnJhY2tldE5vdGF0aW9uU2VyaWFsaXplciA9IG5ldyBTdGFuZGFyZEJyYWNrZXROb3RhdGlvblNlcmlhbGl6ZXIob3B0aW9ucyk7XG4gICAgY29uc3Qgc2VyaWFsaXplciA9IG5ldyBTdGFuZGFyZE9wZW5BUElTZXJpYWxpemVyKGpzb25TZXJpYWxpemVyLCBicmFja2V0Tm90YXRpb25TZXJpYWxpemVyKTtcbiAgICBjb25zdCBtYXRjaGVyID0gbmV3IFN0YW5kYXJkT3BlbkFQSU1hdGNoZXIob3B0aW9ucyk7XG4gICAgY29uc3QgY29kZWMgPSBuZXcgU3RhbmRhcmRPcGVuQVBJQ29kZWMoc2VyaWFsaXplciwgb3B0aW9ucyk7XG4gICAgc3VwZXIocm91dGVyLCBtYXRjaGVyLCBjb2RlYywgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IHsgU3RhbmRhcmRPcGVuQVBJQ29kZWMgYXMgUywgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciBhcyBhLCBTdGFuZGFyZE9wZW5BUElNYXRjaGVyIGFzIGIsIGRlY29kZVBhcmFtcyBhcyBkLCB0b1JvdTNQYXR0ZXJuIGFzIHQgfTtcbiIsImltcG9ydCB7IEZldGNoSGFuZGxlciB9IGZyb20gJ0BvcnBjL3NlcnZlci9mZXRjaCc7XG5pbXBvcnQgJ0BvcnBjL2NsaWVudCc7XG5pbXBvcnQgJ0BvcnBjL2NvbnRyYWN0JztcbmltcG9ydCAnQG9ycGMvc2hhcmVkJztcbmltcG9ydCB7IGEgYXMgU3RhbmRhcmRPcGVuQVBJSGFuZGxlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9vcGVuYXBpLkRJdC1aOVcxLm1qcyc7XG5pbXBvcnQgJ0BvcnBjL2NsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgJ0BvcnBjL3NlcnZlcic7XG5pbXBvcnQgJ3JvdTMnO1xuaW1wb3J0ICdAb3JwYy9vcGVuYXBpLWNsaWVudC9zdGFuZGFyZCc7XG5pbXBvcnQgJ0BvcnBjL3NlcnZlci9zdGFuZGFyZCc7XG5cbmNsYXNzIE9wZW5BUElIYW5kbGVyIGV4dGVuZHMgRmV0Y2hIYW5kbGVyIHtcbiAgY29uc3RydWN0b3Iocm91dGVyLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihuZXcgU3RhbmRhcmRPcGVuQVBJSGFuZGxlcihyb3V0ZXIsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgeyBPcGVuQVBJSGFuZGxlciB9O1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FB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
@@ -379,4 +379,4 @@ declare class PluginRuntime<R extends RegisteredPlugins = RegisteredPlugins> {
379
379
  declare function createPluginRuntime(config: PluginRuntimeConfig): PluginRuntime;
380
380
  //#endregion
381
381
  export { PluginConfigFor as C, Plugin as S, PluginSecrets as _, EveryPlugin as a, SecretsConfig as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRuntimeConfig as g, PluginRouterType as h, AnyPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, PluginService as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginVariables as v, createPlugin as w, LoadedPluginWithBinding as x, RegisteredPlugins as y };
382
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtbWF0clBWNG0uZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyIsIi4uL3NyYy90eXBlcy50cyIsIi4uL3NyYy9ydW50aW1lL2Vycm9ycy50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL3BsdWdpbi1saWZlY3ljbGUuc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9zZWNyZXRzLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4tbG9hZGVyLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4uc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0tBUVksNEJBQTBCLHVCQUFxQjthQUMvQztFQURBLE9BQUEsRUFFRixHQUZFO0NBQTBCOzs7O0FBRTNCLFVBTU0sdUJBTk4sQ0FBQSxrQkFPUSxpQkFQUixFQUFBLG1CQVFTLFNBUlQsRUFBQSxpQkFTTyxTQVRQLEVBQUEsbUJBVU8sU0FWUCxHQVVpQixNQVZqQixDQUFBLEtBQUEsRUFBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0VBTU0sTUFBQSxFQU1ULE1BTlMsQ0FNRixTQU5FLEVBTVMsVUFOYyxFQU1GLFFBTkUsRUFNUSxVQU5SLENBQUE7RUFDckIsT0FBQSxFQUFBO0lBQ0MsUUFBQSxFQU1SLFNBTlE7SUFDRixTQUFBLEVBTUwsVUFOSztJQUNBLE9BQUEsRUFNUCxRQU5PO0lBQVUsT0FBQSxFQU9qQixVQVBpQjtFQUViLENBQUE7Ozs7O0FBRUgsVUFVSyxNQVZMLENBQUEsa0JBV08saUJBWFAsRUFBQSxtQkFZUSxTQVpSLEVBQUEsaUJBYU0sU0FiTixFQUFBLG1CQWNNLFNBZE4sR0FjZ0IsTUFkaEIs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
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQlhmaThEcUMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyIsIi4uL3NyYy90eXBlcy50cyIsIi4uL3NyYy9ydW50aW1lL2Vycm9ycy50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL3BsdWdpbi1saWZlY3ljbGUuc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9zZWNyZXRzLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4tbG9hZGVyLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4uc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0tBUVksNEJBQTBCLHVCQUFxQjthQUMvQztFQURBLE9BQUEsRUFFRixHQUZFO0NBQTBCOzs7O0FBRTNCLFVBTU0sdUJBTk4sQ0FBQSxrQkFPUSxpQkFQUixFQUFBLG1CQVFTLFNBUlQsRUFBQSxpQkFTTyxTQVRQLEVBQUEsbUJBVU8sU0FWUCxHQVVpQixNQVZqQixDQUFBLEtBQUEsRUFBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0VBTU0sTUFBQSxFQU1ULE1BTlMsQ0FNRixTQU5FLEVBTVMsVUFOYyxFQU1GLFFBTkUsRUFNUSxVQU5SLENBQUE7RUFDckIsT0FBQSxFQUFBO0lBQ0MsUUFBQSxFQU1SLFNBTlE7SUFDRixTQUFBLEVBTUwsVUFOSztJQUNBLE9BQUEsRUFNUCxRQU5PO0lBQVUsT0FBQSxFQU9qQixVQVBpQjtFQUViLENBQUE7Ozs7O0FBRUgsVUFVSyxNQVZMLENBQUEsa0JBV08saUJBWFAsRUFBQSxtQkFZUSxTQVpSLEVBQUEsaUJBYU0sU0FiTixFQUFBLG1CQWNNLFNBZE4sR0FjZ0IsTUFkaEIs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
@@ -1,8 +1,8 @@
1
1
  import { Context, Effect, Layer, ManagedRuntime, Scope } from "effect";
2
- import { z } from "zod";
3
2
  import { Context as Context$1, Implementer, Router, RouterClient } from "@orpc/server";
4
3
  import * as _orpc_contract0 from "@orpc/contract";
5
4
  import { AnyContractRouter, AnySchema, InferSchemaInput, InferSchemaOutput, ORPCError } from "@orpc/contract";
5
+ import { z } from "zod";
6
6
  import * as effect_Types0 from "effect/Types";
7
7
  import * as effect_Cause0 from "effect/Cause";
8
8
 
@@ -380,4 +380,4 @@ declare class PluginRuntime<R extends RegisteredPlugins = RegisteredPlugins> {
380
380
  declare function createPluginRuntime(config: PluginRuntimeConfig): PluginRuntime;
381
381
  //#endregion
382
382
  export { PluginConfigFor as C, Plugin as S, PluginSecrets as _, EveryPlugin as a, SecretsConfig as b, PluginClientType as c, PluginContract as d, PluginInstance as f, PluginRuntimeConfig as g, PluginRouterType as h, AnyPlugin as i, PluginConfigInput as l, PluginRegistry as m, createPluginRuntime as n, InitializedPlugin as o, PluginMetadata as p, PluginService as r, LoadedPlugin as s, PluginRuntime as t, PluginContext as u, PluginVariables as v, createPlugin as w, LoadedPluginWithBinding as x, RegisteredPlugins as y };
383
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtYndBaEE5Y2EuZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyIsIi4uL3NyYy90eXBlcy50cyIsIi4uL3NyYy9ydW50aW1lL2Vycm9ycy50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL3BsdWdpbi1saWZlY3ljbGUuc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9zZWNyZXRzLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4tbG9hZGVyLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4uc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztLQVFZLDRCQUEwQix1QkFBcUI7YUFDL0M7V0FDRjtBQUZWLENBQUE7Ozs7QUFFVSxVQU1PLHVCQU5QLENBQUEsa0JBT1MsaUJBUFQsRUFBQSxtQkFRVSxTQVJWLEVBQUEsaUJBU1EsU0FUUixFQUFBLG1CQVVRLFNBVlIsR0FVa0IsTUFWbEIsQ0FBQSxLQUFBLEVBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtFQUFDLE1BQUEsRUFZSCxNQVpHLENBWUksU0FaSixFQVllLFVBWmYsRUFZMkIsUUFaM0IsRUFZcUMsVUFackMsQ0FBQTtFQU1NLE9BQUEsRUFBQTtJQUNFLFFBQUEsRUFPUCxTQVBPO0lBQ0MsU0FBQSxFQU9QLFVBUE87SUFDRixPQUFBLEVBT1AsUUFQTztJQUNBLE9BQUEsRUFPUCxVQVBPO0VBQVUsQ0FBQTs7Ozs7QUFFcEIsVUFZUyxNQVpULENBQUEsa0JBYVcsaUJBYlgsRUFBQSxtQkFjWSxTQWRaLEVBQUEsaUJBZVUsU0FmVixFQUFBLG1CQWdCVSxTQWhCVixHQWdCb0IsTUFoQnBCLENBQUEs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
383
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtRHZJeEtBOEsuZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyIsIi4uL3NyYy90eXBlcy50cyIsIi4uL3NyYy9ydW50aW1lL2Vycm9ycy50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL3BsdWdpbi1saWZlY3ljbGUuc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL21vZHVsZS1mZWRlcmF0aW9uLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9zZWNyZXRzLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4tbG9hZGVyLnNlcnZpY2UudHMiLCIuLi9zcmMvcnVudGltZS9zZXJ2aWNlcy9wbHVnaW4uc2VydmljZS50cyIsIi4uL3NyYy9ydW50aW1lL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztLQVFZLDRCQUEwQix1QkFBcUI7YUFDL0M7V0FDRjtBQUZWLENBQUE7Ozs7QUFFVSxVQU1PLHVCQU5QLENBQUEsa0JBT1MsaUJBUFQsRUFBQSxtQkFRVSxTQVJWLEVBQUEsaUJBU1EsU0FUUixFQUFBLG1CQVVRLFNBVlIsR0FVa0IsTUFWbEIsQ0FBQSxLQUFBLEVBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtFQUFDLE1BQUEsRUFZSCxNQVpHLENBWUksU0FaSixFQVllLFVBWmYsRUFZMkIsUUFaM0IsRUFZcUMsVUFackMsQ0FBQTtFQU1NLE9BQUEsRUFBQTtJQUNFLFFBQUEsRUFPUCxTQVBPO0lBQ0MsU0FBQSxFQU9QLFVBUE87SUFDRixPQUFBLEVBT1AsUUFQTztJQUNBLE9BQUEsRUFPUCxVQVBPO0VBQVUsQ0FBQTs7Ozs7QUFFcEIsVUFZUyxNQVpULENBQUEsa0JBYVcsaUJBYlgsRUFBQSxtQkFjWSxTQWRaLEVBQUEsaUJBZVUsU0FmVixFQUFBLG1CQWdCVSxTQWhCVixHQWdCb0IsTUFoQnBCLENBQUEs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
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  const require_chunk = require('./chunk-zltIcp7o.cjs');
2
- require('./zod-DYghWCz1.cjs');
3
- const require_errors = require('./errors-CVnoPl9v.cjs');
4
- const require_runtime = require('./runtime-CWCl3EIz.cjs');
2
+ require('./zod-CJY4vNLR.cjs');
3
+ const require_errors = require('./errors-BEsEPXKG.cjs');
4
+ const require_runtime = require('./runtime-LlP2xpdB.cjs');
5
5
  const require_normalize = require('./normalize-D4Qh0wVk.cjs');
6
- require('./package-CSi-6ikY.cjs');
6
+ require('./package-C2Mp8qeD.cjs');
7
7
  let effect = require("effect");
8
8
  let __orpc_server = require("@orpc/server");
9
9
 
package/dist/index.d.cts CHANGED
@@ -1,5 +1,4 @@
1
- import "./zod-A7Pti5IV.cjs";
2
- import { t as CommonPluginErrors } from "./errors-DKPPPYYT.cjs";
3
- import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-matrPV4m.cjs";
4
- import { t as getNormalizedRemoteName } from "./normalize-BW7kk8Lk.cjs";
1
+ import { t as CommonPluginErrors } from "./errors-CpYzD_-M.cjs";
2
+ import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-BXfi8DqC.cjs";
3
+ import { t as getNormalizedRemoteName } from "./normalize-Tt7I_RdD.cjs";
5
4
  export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- import "./zod-D4CFw8d9.mjs";
2
- import { t as CommonPluginErrors } from "./errors-Car4tFVP.mjs";
3
- import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-bwAhA9ca.mjs";
4
- import { t as getNormalizedRemoteName } from "./normalize-BLTyqFww.mjs";
1
+ import { t as CommonPluginErrors } from "./errors-D2-thHKG.mjs";
2
+ import { C as PluginConfigFor, S as Plugin, _ as PluginSecrets, a as EveryPlugin, b as SecretsConfig, c as PluginClientType, d as PluginContract, f as PluginInstance, g as PluginRuntimeConfig, h as PluginRouterType, i as AnyPlugin, l as PluginConfigInput, m as PluginRegistry, n as createPluginRuntime, o as InitializedPlugin, p as PluginMetadata, s as LoadedPlugin, t as PluginRuntime, u as PluginContext, v as PluginVariables, w as createPlugin, x as LoadedPluginWithBinding, y as RegisteredPlugins } from "./index-DvIxKA8K.mjs";
3
+ import { t as getNormalizedRemoteName } from "./normalize-BCE_FLe8.mjs";
5
4
  export { AnyPlugin, CommonPluginErrors, EveryPlugin, InitializedPlugin, LoadedPlugin, LoadedPluginWithBinding, Plugin, PluginClientType, PluginConfigFor, PluginConfigInput, PluginContext, PluginContract, PluginInstance, PluginMetadata, PluginRegistry, PluginRouterType, PluginRuntime, PluginRuntimeConfig, PluginSecrets, PluginVariables, RegisteredPlugins, SecretsConfig, createPlugin, createPluginRuntime, getNormalizedRemoteName };
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import "./zod-BVo51kgJ.mjs";
2
- import { t as CommonPluginErrors } from "./errors-D7keKf7a.mjs";
3
- import { n as createPluginRuntime, t as PluginRuntime } from "./runtime-Daw9Tlz6.mjs";
1
+ import "./zod-BDDjyyHQ.mjs";
2
+ import { t as CommonPluginErrors } from "./errors-DnigICIv.mjs";
3
+ import { n as createPluginRuntime, t as PluginRuntime } from "./runtime-BUQ0hy1J.mjs";
4
4
  import { t as getNormalizedRemoteName } from "./normalize-D7nae0Hn.mjs";
5
- import "./package-BwFfsvZZ.mjs";
5
+ import "./package-uEsV9Z-2.mjs";
6
6
  import { Effect } from "effect";
7
7
  import { implement } from "@orpc/server";
8
8
 
@@ -18,4 +18,4 @@
18
18
  declare const getNormalizedRemoteName: (name: string) => string;
19
19
  //#endregion
20
20
  export { getNormalizedRemoteName as t };
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLUJMVHlxRnd3LmQubXRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6W10sIm1hcHBpbmdzIjoiOztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7O2NBQWEifQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLUJDRV9GTGU4LmQubXRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6W10sIm1hcHBpbmdzIjoiOztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7O2NBQWEifQ==
@@ -18,4 +18,4 @@
18
18
  declare const getNormalizedRemoteName: (name: string) => string;
19
19
  //#endregion
20
20
  export { getNormalizedRemoteName as t };
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLUJXN2trOExrLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6W10sIm1hcHBpbmdzIjoiOztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7O2NBQWEifQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLVR0N0lfUmRELmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lL3NlcnZpY2VzL25vcm1hbGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6W10sIm1hcHBpbmdzIjoiOztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7O2NBQWEifQ==