@jsprismarine/prismarine 0.2.0 → 0.3.0

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 (174) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/Console.cjs.js +2 -2
  3. package/dist/Console.d.ts +1 -1
  4. package/dist/Console.d.ts.map +1 -1
  5. package/dist/Console.es.js +2 -2
  6. package/dist/Player.cjs.js +1 -1
  7. package/dist/Player.es.js +1 -1
  8. package/dist/{Protocol-C1DcF_Iw.cjs → Protocol-BVaFul30.cjs} +2 -2
  9. package/dist/{Protocol-9T3wX43U.js → Protocol-D9dzQTbF.js} +2 -2
  10. package/dist/Server-DAXmO2Rm.js +1864 -0
  11. package/dist/Server-nY-WO-m_.cjs +1886 -0
  12. package/dist/Server.cjs.js +1 -1
  13. package/dist/Server.d.ts.map +1 -1
  14. package/dist/Server.es.js +1 -1
  15. package/dist/block/Block.cjs.js +2 -2
  16. package/dist/block/Block.es.js +2 -2
  17. package/dist/block/blocks/Bookshelf.d.ts +1 -1
  18. package/dist/block/blocks/CoalOre.d.ts +1 -1
  19. package/dist/block/blocks/Gravel.d.ts +1 -1
  20. package/dist/block/blocks/WhiteBed.d.ts +1 -1
  21. package/dist/chat/ChatManager.cjs.js +1 -1
  22. package/dist/chat/ChatManager.d.ts.map +1 -1
  23. package/dist/chat/ChatManager.es.js +1 -1
  24. package/dist/command/Command.cjs.js +2 -2
  25. package/dist/command/Command.es.js +2 -2
  26. package/dist/command/CommandArguments.cjs.js +1 -1
  27. package/dist/command/CommandArguments.es.js +1 -1
  28. package/dist/command/CommandManager.cjs.js +2 -2
  29. package/dist/command/CommandManager.es.js +2 -2
  30. package/dist/command/Commands.cjs.js +1 -1
  31. package/dist/command/Commands.es.js +1 -1
  32. package/dist/command/index.cjs.js +1 -1
  33. package/dist/command/index.es.js +1 -1
  34. package/dist/command/vanilla/BanCommand.cjs.js +1 -1
  35. package/dist/command/vanilla/BanCommand.es.js +1 -1
  36. package/dist/command/vanilla/DeopCommand.cjs.js +1 -1
  37. package/dist/command/vanilla/DeopCommand.es.js +1 -1
  38. package/dist/command/vanilla/ExecuteCommand.cjs.js +1 -1
  39. package/dist/command/vanilla/ExecuteCommand.es.js +1 -1
  40. package/dist/command/vanilla/GamemodeCommand.cjs.js +1 -1
  41. package/dist/command/vanilla/GamemodeCommand.es.js +1 -1
  42. package/dist/command/vanilla/KickCommand.cjs.js +1 -1
  43. package/dist/command/vanilla/KickCommand.es.js +1 -1
  44. package/dist/command/vanilla/OpCommand.cjs.js +1 -1
  45. package/dist/command/vanilla/OpCommand.es.js +1 -1
  46. package/dist/command/vanilla/PardonCommand.cjs.js +1 -1
  47. package/dist/command/vanilla/PardonCommand.es.js +1 -1
  48. package/dist/command/vanilla/SummonCommand.cjs.js +1 -1
  49. package/dist/command/vanilla/SummonCommand.es.js +1 -1
  50. package/dist/command/vanilla/TpCommand.cjs.js +1 -1
  51. package/dist/command/vanilla/TpCommand.es.js +1 -1
  52. package/dist/config/ConfigBuilder.cjs.js +12 -4
  53. package/dist/config/ConfigBuilder.d.ts.map +1 -1
  54. package/dist/config/ConfigBuilder.es.js +12 -4
  55. package/dist/entity/Attribute.cjs.js +1 -1
  56. package/dist/entity/Attribute.d.ts.map +1 -1
  57. package/dist/entity/Attribute.es.js +1 -1
  58. package/dist/entity/Entity.cjs.js +4 -3
  59. package/dist/entity/Entity.d.ts.map +1 -1
  60. package/dist/entity/Entity.es.js +4 -3
  61. package/dist/entity/Metadata.cjs.js +1 -1
  62. package/dist/entity/Metadata.d.ts.map +1 -1
  63. package/dist/entity/Metadata.es.js +1 -1
  64. package/dist/events/EventManager.cjs.js +1 -1
  65. package/dist/events/EventManager.d.ts.map +1 -1
  66. package/dist/events/EventManager.es.js +1 -1
  67. package/dist/form/Form.cjs.js +2 -2
  68. package/dist/form/Form.d.ts +1 -1
  69. package/dist/form/Form.d.ts.map +1 -1
  70. package/dist/form/Form.es.js +2 -2
  71. package/dist/form/FormManager.cjs.js +1 -1
  72. package/dist/form/FormManager.d.ts.map +1 -1
  73. package/dist/form/FormManager.es.js +1 -1
  74. package/dist/form/IForm.d.ts.map +1 -1
  75. package/dist/form/ModalForm.cjs.js +1 -1
  76. package/dist/form/ModalForm.d.ts.map +1 -1
  77. package/dist/form/ModalForm.es.js +1 -1
  78. package/dist/{index-D7ZMTxc2.cjs → index-CVGv9HUF.cjs} +2 -2
  79. package/dist/{index-B3UWpR-P.js → index-O6jPg9jt.js} +2 -2
  80. package/dist/index.cjs.js +3 -3
  81. package/dist/index.es.js +3 -3
  82. package/dist/inventory/HumanInventory.cjs.js +1 -1
  83. package/dist/inventory/HumanInventory.d.ts.map +1 -1
  84. package/dist/inventory/HumanInventory.es.js +1 -1
  85. package/dist/inventory/Inventory.cjs.js +1 -1
  86. package/dist/inventory/Inventory.d.ts.map +1 -1
  87. package/dist/inventory/Inventory.es.js +1 -1
  88. package/dist/inventory/WindowManager.cjs.js +1 -1
  89. package/dist/inventory/WindowManager.d.ts.map +1 -1
  90. package/dist/inventory/WindowManager.es.js +1 -1
  91. package/dist/item/Armor.cjs.js +1 -1
  92. package/dist/item/Armor.d.ts +1 -1
  93. package/dist/item/Armor.d.ts.map +1 -1
  94. package/dist/item/Armor.es.js +1 -1
  95. package/dist/item/Item.cjs.js +2 -2
  96. package/dist/item/Item.es.js +2 -2
  97. package/dist/item/ItemManager.cjs.js +2 -2
  98. package/dist/item/ItemManager.d.ts +2 -2
  99. package/dist/item/ItemManager.d.ts.map +1 -1
  100. package/dist/item/ItemManager.es.js +2 -2
  101. package/dist/item/TieredTool.cjs.js +1 -1
  102. package/dist/item/TieredTool.d.ts.map +1 -1
  103. package/dist/item/TieredTool.es.js +1 -1
  104. package/dist/item/Tool.cjs.js +1 -1
  105. package/dist/item/Tool.d.ts +1 -1
  106. package/dist/item/Tool.d.ts.map +1 -1
  107. package/dist/item/Tool.es.js +1 -1
  108. package/dist/network/ClientConnection.cjs.js +1 -1
  109. package/dist/network/ClientConnection.d.ts +1 -1
  110. package/dist/network/ClientConnection.d.ts.map +1 -1
  111. package/dist/network/ClientConnection.es.js +1 -1
  112. package/dist/network/Handlers.cjs.js +1 -1
  113. package/dist/network/Handlers.es.js +1 -1
  114. package/dist/network/MinecraftSession.cjs.js +1 -1
  115. package/dist/network/MinecraftSession.d.ts +1 -1
  116. package/dist/network/MinecraftSession.d.ts.map +1 -1
  117. package/dist/network/MinecraftSession.es.js +1 -1
  118. package/dist/network/NetworkUtil.cjs.js +1 -1
  119. package/dist/network/NetworkUtil.d.ts.map +1 -1
  120. package/dist/network/NetworkUtil.es.js +1 -1
  121. package/dist/network/PacketRegistry.cjs.js +1 -1
  122. package/dist/network/PacketRegistry.d.ts +6 -6
  123. package/dist/network/PacketRegistry.d.ts.map +1 -1
  124. package/dist/network/PacketRegistry.es.js +1 -1
  125. package/dist/network/PlayerSession.cjs.js +1 -1
  126. package/dist/network/PlayerSession.d.ts.map +1 -1
  127. package/dist/network/PlayerSession.es.js +1 -1
  128. package/dist/network/Protocol.cjs.js +1 -1
  129. package/dist/network/Protocol.es.js +1 -1
  130. package/dist/network/handler/LoginHandler.cjs.js +1 -1
  131. package/dist/network/handler/LoginHandler.es.js +1 -1
  132. package/dist/permission/PermissionManager.cjs.js +4 -4
  133. package/dist/permission/PermissionManager.d.ts +1 -1
  134. package/dist/permission/PermissionManager.d.ts.map +1 -1
  135. package/dist/permission/PermissionManager.es.js +4 -4
  136. package/dist/plugin/PluginFile.cjs.js +1 -1
  137. package/dist/plugin/PluginFile.d.ts.map +1 -1
  138. package/dist/plugin/PluginFile.es.js +1 -1
  139. package/dist/plugin/PluginManager.cjs.js +5 -4
  140. package/dist/plugin/PluginManager.d.ts +2 -2
  141. package/dist/plugin/PluginManager.d.ts.map +1 -1
  142. package/dist/plugin/PluginManager.es.js +5 -4
  143. package/dist/query/QueryManager.cjs.js +1 -1
  144. package/dist/query/QueryManager.es.js +1 -1
  145. package/dist/utils/Logger.cjs.js +49 -38
  146. package/dist/utils/Logger.d.ts +4 -1
  147. package/dist/utils/Logger.d.ts.map +1 -1
  148. package/dist/utils/Logger.es.js +49 -38
  149. package/dist/utils/ParseTildeCaretNotation.cjs.js +1 -1
  150. package/dist/utils/ParseTildeCaretNotation.d.ts.map +1 -1
  151. package/dist/utils/ParseTildeCaretNotation.es.js +1 -1
  152. package/dist/utils/Timer.cjs.js +1 -1
  153. package/dist/utils/Timer.d.ts.map +1 -1
  154. package/dist/utils/Timer.es.js +1 -1
  155. package/dist/utils/UUID.cjs.js +2 -2
  156. package/dist/utils/UUID.es.js +2 -2
  157. package/dist/world/BaseGenerator.cjs.js +1 -1
  158. package/dist/world/BaseGenerator.d.ts.map +1 -1
  159. package/dist/world/BaseGenerator.es.js +1 -1
  160. package/dist/world/BlockPosition.cjs.js +1 -1
  161. package/dist/world/BlockPosition.d.ts.map +1 -1
  162. package/dist/world/BlockPosition.es.js +1 -1
  163. package/dist/world/GameruleManager.cjs.js +4 -4
  164. package/dist/world/GameruleManager.d.ts +3 -3
  165. package/dist/world/GameruleManager.d.ts.map +1 -1
  166. package/dist/world/GameruleManager.es.js +4 -4
  167. package/dist/world/Generator.d.ts.map +1 -1
  168. package/dist/world/WorldManager.cjs.js +3 -7
  169. package/dist/world/WorldManager.d.ts +1 -1
  170. package/dist/world/WorldManager.d.ts.map +1 -1
  171. package/dist/world/WorldManager.es.js +3 -7
  172. package/package.json +5 -5
  173. package/dist/Server-AfmPsq74.cjs +0 -1884
  174. package/dist/Server-Dyy9OCM8.js +0 -1862
@@ -213,7 +213,7 @@ class CommandManager {
213
213
  } else {
214
214
  const chat = new Chat(
215
215
  this.server.getConsole(),
216
- `§o§7[${sender.getName()}: ${res ?? `issued server command: /${input}`}]§r`,
216
+ `§o§7[${sender.getName()}: ${res.length > 0 ? res : `issued server command: /${input}`}]§r`,
217
217
  [],
218
218
  false,
219
219
  "*.console"
@@ -246,4 +246,4 @@ class CommandManager {
246
246
  }
247
247
 
248
248
  export { CommandManager as default };
249
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZE1hbmFnZXIuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kL0NvbW1hbmRNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJndW1lbnRDb21tYW5kTm9kZSB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IENvbW1hbmREaXNwYXRjaGVyLCBDb21tYW5kU3ludGF4RXhjZXB0aW9uIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5pbXBvcnQgQ2hhdCBmcm9tICcuLi9jaGF0L0NoYXQnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZEFyZ3VtZW50IH0gZnJvbSAnLi9Db21tYW5kQXJndW1lbnRzJztcbi8vIGltcG9ydCBDb21tYW5kTm9kZSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllci9kaXN0L2xpYi90cmVlL0NvbW1hbmROb2RlJztcbmltcG9ydCBDb21tYW5kUmVnaXN0ZXJFdmVudCBmcm9tICcuLi9ldmVudHMvY29tbWFuZC9Db21tYW5kUmVnaXN0ZXJFdmVudHMnO1xuaW1wb3J0IHR5cGUgRW50aXR5IGZyb20gJy4uL2VudGl0eS9FbnRpdHknO1xuaW1wb3J0IHR5cGUgeyBQbGF5ZXIgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uL1NlcnZlcic7XG5pbXBvcnQgVGltZXIgZnJvbSAnLi4vdXRpbHMvVGltZXInO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHVybCBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQge1xuICAgIEdlbmVyaWNOYW1lc3BhY2VJbnZhbGlkRXJyb3IsXG4gICAgQ29tbWFuZFJlZ2lzdGVyQ2xhc3NNYWxmb3JtZWRPck1pc3NpbmdFcnJvcixcbiAgICBDb21tYW5kVW5rbm93bkNvbW1hbmRFcnJvcixcbiAgICBFcnJvclxufSBmcm9tICdAanNwcmlzbWFyaW5lL2Vycm9ycyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbW1hbmRNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRzOiBNYXA8c3RyaW5nLCBDb21tYW5kPiA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZlcjogU2VydmVyO1xuICAgIHByaXZhdGUgZGlzcGF0Y2hlciE6IENvbW1hbmREaXNwYXRjaGVyPFBsYXllcj47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlciA9IG5ldyBDb21tYW5kRGlzcGF0Y2hlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uRW5hYmxlIGhvb2suXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIG9uRW5hYmxlKCkge1xuICAgICAgICBjb25zdCB0aW1lciA9IG5ldyBUaW1lcigpO1xuXG4gICAgICAgIC8vIEZJWE1FOiBgaW1wb3J0Lm1ldGEudXJsYCBpc24ndCBkZWZpbmVkIHdoZW4gdXNpbmcgY2pzLlxuICAgICAgICBjb25zdCBmaWxlVHlwZSA9IGltcG9ydC5tZXRhLnVybC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBuZXcgU2V0KFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgLi4uZnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZWFkZGlyU3luYyh1cmwuZmlsZVVSTFRvUGF0aChuZXcgVVJMKCd2YW5pbGxhJywgaW1wb3J0Lm1ldGEudXJsKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgL3ZhbmlsbGEvJHthfWApLFxuICAgICAgICAgICAgICAgICAgICAuLi5mc1xuICAgICAgICAgICAgICAgICAgICAgICAgLnJlYWRkaXJTeW5jKHVybC5maWxlVVJMVG9QYXRoKG5ldyBVUkwoJ2pzcHJpc21hcmluZScsIGltcG9ydC5tZXRhLnVybCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYC9qc3ByaXNtYXJpbmUvJHthfWApXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChhKSA9PiAhYS5pbmNsdWRlcygnLnRlc3QuJykgJiYgIWEuaW5jbHVkZXMoJy5kLnRzJykpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEuZW5kc1dpdGgoYC4ke2ZpbGVUeXBlfWApKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIGpzcHJpc21hcmluZSBjb21tYW5kc1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGNvbW1hbmRzLm1hcChhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IENvbW1hbmQgPSBhd2FpdCBpbXBvcnQoYC4vJHtpZH1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kOiBDb21tYW5kID0gbmV3IChDb21tYW5kLmRlZmF1bHQgfHwgQ29tbWFuZCkoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IENvbW1hbmRSZWdpc3RlckV2ZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmVyLmdldEV2ZW50TWFuYWdlcigpLmVtaXQoJ2NvbW1hbmRSZWdpc3RlcicsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuaXNDYW5jZWxsZWQoKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWdpc3RlckNsYXNzQ29tbWFuZChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8ud2FybihgRmFpbGVkIHRvIHJlZ2lzdGVyIGNvbW1hbmQgJHtjb21tYW5kLmlkfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy52ZXJib3NlKFxuICAgICAgICAgICAgICAgIGBSZWdpc3RlcmVkIMKnYiR7dGhpcy5jb21tYW5kcy5zaXplfcKnciBjb21tYW5kcyhzKSAodG9vayAke3RpbWVyLnN0b3AoKX0gbXMpIWAsXG4gICAgICAgICAgICAgICAgJ0NvbW1hbmRNYW5hZ2VyL29uRW5hYmxlJ1xuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbkRpc2FibGUgaG9vay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgb25EaXNhYmxlKCkge1xuICAgICAgICB0aGlzLmNvbW1hbmRzLmNsZWFyKCk7XG4gICAgICAgIC8vIFRPRE86IGNsZWFyIGNvbW1hbmRzIGluIGRpc3BhdGNoZXJcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIGNvbW1hbmQgaW50byBjb21tYW5kIG1hbmFnZXIgYnkgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ2xhc3NDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgaWYgKCFjb21tYW5kIHx8ICFjb21tYW5kLmlkKSB0aHJvdyBuZXcgQ29tbWFuZFJlZ2lzdGVyQ2xhc3NNYWxmb3JtZWRPck1pc3NpbmdFcnJvcigpO1xuICAgICAgICBpZiAoY29tbWFuZC5pZC5zcGxpdCgnOicpLmxlbmd0aCAhPT0gMikgdGhyb3cgbmV3IEdlbmVyaWNOYW1lc3BhY2VJbnZhbGlkRXJyb3IoKTtcblxuICAgICAgICBpZiAoIWNvbW1hbmQucmVnaXN0ZXIpXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYENvbW1hbmQgaXMgbWlzc2luZyBcInJlZ2lzdGVyXCIgbWVtYmVyLiBUaGlzIGlzIHVuc3VwcG9ydGVkIWAsXG4gICAgICAgICAgICAgICAgICAgICdDb21tYW5kTWFuYWdlci9yZWdpc3RlckNsYXNzQ29tbWFuZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICBlbHNlIGF3YWl0IGNvbW1hbmQucmVnaXN0ZXIodGhpcy5kaXNwYXRjaGVyKTtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5zZXQoY29tbWFuZC5pZCwgY29tbWFuZCk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgLmdldEFsbFBsYXllcnMoKVxuICAgICAgICAgICAgICAgIC5tYXAoYXN5bmMgKHBsYXllcikgPT4gcGxheWVyLmdldE5ldHdvcmtTZXNzaW9uKCkuc2VuZEF2YWlsYWJsZUNvbW1hbmRzKCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5kZWJ1ZyhgQ29tbWFuZCB3aXRoIGlkIMKnYiR7Y29tbWFuZC5pZH3Cp3IgcmVnaXN0ZXJlZGAsICdDb21tYW5kTWFuYWdlci9yZWdpc3RlckNsYXNzQ29tbWFuZCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgZW5hYmxlZCBjb21tYW5kcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29tbWFuZHMoKTogTWFwPHN0cmluZywgQ29tbWFuZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21tYW5kcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIGFsbCBjb21tYW5kIHZhcmlhbnRzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIGlzIEVYQ0xVRElORyBsZWdhY3kgY29tbWFuZHMuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbW1hbmRzTGlzdCgpOiBBcnJheTxbc3RyaW5nLCAvKiBDb21tYW5kTm9kZTxQbGF5ZXI+ICovIGFueSwgQ29tbWFuZEFyZ3VtZW50W11bXV0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VOb2RlID0gKG5vZGU6IC8qIENvbW1hbmROb2RlPFBsYXllcj4gKi8gYW55KTogYW55W10gPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Q2hpbGRyZW5Db3VudCgpIDw9IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiAobm9kZSBhcyBBcmd1bWVudENvbW1hbmROb2RlPGFueSwgYW55PikuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXMgPSBBcnJheS5mcm9tKG5vZGUuZ2V0Q2hpbGRyZW4oKSlcbiAgICAgICAgICAgICAgICAubWFwKChub2RlKSA9PiBwYXJzZU5vZGUobm9kZSkpXG4gICAgICAgICAgICAgICAgLnJldmVyc2UoKTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBub2RlLmdldENvbW1hbmQoKVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogKG5vZGUgYXMgQXJndW1lbnRDb21tYW5kTm9kZTxhbnksIGFueT4pLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAuLi5yZXMubWFwKChjaGlsZHJlbjogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpdGVtOiAobm9kZSBhcyBBcmd1bWVudENvbW1hbmROb2RlPGFueSwgYW55PikuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWy4uLmNoaWxkcmVuXVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXS5maWx0ZXIoKGEpID0+IGEpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHRyYXZlcnNlID0gKG5vZGU6IGFueSwgcGF0aDogYW55W10gPSBbXSwgcmVzdWx0OiBhbnlbXSA9IFtdKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5vZGUuY2hpbGRyZW4ubGVuZ3RoKSByZXN1bHQucHVzaChwYXRoLmNvbmNhdChub2RlLml0ZW0pKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikgdHJhdmVyc2UoY2hpbGQsIHBhdGguY29uY2F0KG5vZGUuaXRlbSksIHJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlcyA9IEFycmF5LmZyb20odGhpcy5zZXJ2ZXIuZ2V0Q29tbWFuZE1hbmFnZXIoKS5nZXREaXNwYXRjaGVyKCkuZ2V0Um9vdCgpLmdldENoaWxkcmVuKCkpXG4gICAgICAgICAgICAuZmxhdE1hcCgoY29tbWFuZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJyYW5jaGVzOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChjb21tYW5kLmdldENvbW1hbmQoKSkgYnJhbmNoZXMucHVzaChbXSk7XG5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKGNvbW1hbmQuZ2V0Q2hpbGRyZW4oKSkuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZU5vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5mb3JFYWNoKChicmFuY2gpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGVzLnB1c2godHJhdmVyc2UoYnJhbmNoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJyYW5jaGVzLm1hcCgoYnJhbmNoKSA9PiBbY29tbWFuZC5nZXROYW1lKCksIGNvbW1hbmQsIGJyYW5jaF0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEpO1xuXG4gICAgICAgIHJlcy50b1N0cmluZyA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldENvbW1hbmRzTGlzdCgpXG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW1bMl0ubGVuZ3RoKSByZXR1cm4gYC8ke2l0ZW1bMF19YDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bMl1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudHJpZXMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAvJHtpdGVtWzBdfSAke2VudHJpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mbGF0KE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3VtZW50OiBhbnkpID0+IGFyZ3VtZW50LmdldFJlYWRhYmxlVHlwZT8uKCkgPz8gYXJndW1lbnQuY29uc3RydWN0b3IubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oYFxcbmApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpfWA7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXMgYXMgYW55O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBkaXNwYXRjaGVyXG4gICAgICovXG4gICAgcHVibGljIGdldERpc3BhdGNoZXIoKTogQ29tbWFuZERpc3BhdGNoZXI8UGxheWVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhIGNvbW1hbmQgYW5kIGV4ZWN1dGVzIHRoZW0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2VuZGVyIC0gdGhlIHBsYXllci9jb25zb2xlIHdobyBleGVjdXRlZCB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSB0YXJnZXQgLSB0aGUgUGxheWVyL2VudGl0eS9jb25zb2xlIHdobyBzaG91bGQgZXhlY3V0ZSB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSBpbnB1dCAtIHRoZSBjb21tYW5kIGlucHV0IGluY2x1ZGluZyBhcmd1bWVudHNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgZGlzcGF0Y2hDb21tYW5kKHNlbmRlcjogUGxheWVyLCB0YXJnZXQ6IEVudGl0eSB8IFBsYXllciwgaW5wdXQgPSAnJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJy8nKSkgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcblxuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5kaXNwYXRjaGVyLnBhcnNlKGlucHV0LnRyaW0oKSwgdGFyZ2V0IGFzIFBsYXllcik7XG4gICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlZC5nZXRSZWFkZXIoKS5nZXRTdHJpbmcoKS5zcGxpdCgnICcpWzBdITtcblxuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICA/LnZlcmJvc2UoXG4gICAgICAgICAgICAgICAgICAgIGBFbnRpdHkgd2l0aCDCp2Ike3NlbmRlci5nZXRSdW50aW1lSWQoKX3Cp3IgaXMgZGlzcGF0Y2hpbmcgY29tbWFuZDogJHtpbnB1dH0gKGlkOiAke2lkfSlgLFxuICAgICAgICAgICAgICAgICAgICAnQ29tbWFuZE1hbmFnZXIvZGlzcGF0Y2hDb21tYW5kJ1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIEdldCBjb21tYW5kIGZyb20gcGFyc2VkIHN0cmluZy5cbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBBcnJheS5mcm9tKHRoaXMuY29tbWFuZHMudmFsdWVzKCkpLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0IG1hdGNoZXMgSUQgd2l0aG91dCBuYW1lc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuaWQuc3BsaXQoJzonKS5hdCgtMSkgPT09IGlkIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0J3MgYW4gYWxpYXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuYWxpYXNlcz8uaW5jbHVkZXMoaWQpIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIExhc3QgY2hlY2sgaWYgaXQncyB0aGUgd2hvbGUgSUQgKHRoaXMgaXMgdW5jb21tb24gc28sXG4gICAgICAgICAgICAgICAgICAgIC8vICBpdCdzIGxhc3QgdG8gYXZvaWQgdGhlIG1vc3QgY2hlY2tzKS5cbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZC5pZCA9PT0gaWRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICghY29tbWFuZCkgdGhyb3cgbmV3IENvbW1hbmRVbmtub3duQ29tbWFuZEVycm9yKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5zZXJ2ZXIuZ2V0UGVybWlzc2lvbk1hbmFnZXIoKS5jYW4oc2VuZGVyKS5leGVjdXRlKGNvbW1hbmQucGVybWlzc2lvbikpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzZW5kZXIuc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgIFwiwqdjSSdtIHNvcnJ5LCBidXQgeW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGlzIGNvbW1hbmQuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgY29udGFjdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3JzIGlmIHlvdSBiZWxpZXZlIHRoYXQgdGhpcyBpcyBpbiBlcnJvci4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCByZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgICAgICBpZiAoIWNvbW1hbmQucmVnaXN0ZXIgJiYgY29tbWFuZC5leGVjdXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gTGVnYWN5IGNvbW1hbmRzXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgICAgID8ud2FybihgJHtpZH0gaXMgdXNpbmcgdGhlIGxlZ2FjeSBjb21tYW5kIGZvcm1hdGAsICdDb21tYW5kTWFuYWdlci9kaXNwYXRjaENvbW1hbmQnKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29tbWFuZC5leGVjdXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VuZGVyIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5nZXRSZWFkZXIoKS5nZXRTdHJpbmcoKS5yZXBsYWNlKGAke2lkfSBgLCAnJykuc3BsaXQoJyAnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFsaWFzZXMgYW5kIElEcy5cbiAgICAgICAgICAgICAgICBpZiAoY29tbWFuZC5pZC5zcGxpdCgnOicpLmF0KC0xKSAhPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kaXNwYXRjaENvbW1hbmQoc2VuZGVyLCB0YXJnZXQsIGlucHV0LnJlcGxhY2UoaWQsIGNvbW1hbmQuaWQuc3BsaXQoJzonKVsxXSEpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKHBhcnNlZCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmZWVkYmFjayA9IChzZW5kZXIgYXMgYW55IGFzIEVudGl0eSlcbiAgICAgICAgICAgICAgICAuZ2V0V29ybGQoKVxuICAgICAgICAgICAgICAgIC5nZXRHYW1lcnVsZU1hbmFnZXIoKVxuICAgICAgICAgICAgICAgIC5nZXRHYW1lcnVsZSgnc2VuZENvbW1hbmRGZWVkYmFjaycpO1xuXG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCBmZWVkYmFjayBpZiBzZW5kQ29tbWFuZEZlZWRiYWNrIGlzIHNldCB0byBmYWxzZVxuICAgICAgICAgICAgaWYgKGZlZWRiYWNrKSB7XG4gICAgICAgICAgICAgICAgcmVzLmZvckVhY2goYXN5bmMgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXQgPSBuZXcgQ2hhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldENvbnNvbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGDCp2/CpzdbJHt0YXJnZXQuZ2V0TmFtZSgpfTogJHtyZXMgPz8gYGlzc3VlZCBzZXJ2ZXIgY29tbWFuZDogLyR7aW5wdXR9YH1dwqdyYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAnKi5vcHMnXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgYmUgYnJvYWRjYXN0ZWQgdG8gdGhlIGV4ZWN1dGVyP1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZlci5nZXRDaGF0TWFuYWdlcigpLnNlbmQoY2hhdCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYXQgPSBuZXcgQ2hhdChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0Q29uc29sZSgpLFxuICAgICAgICAgICAgICAgICAgICBgwqdvwqc3WyR7c2VuZGVyLmdldE5hbWUoKX06ICR7cmVzID8/IGBpc3N1ZWQgc2VydmVyIGNvbW1hbmQ6IC8ke2lucHV0fWB9XcKncmAsXG4gICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgJyouY29uc29sZSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2ZXIuZ2V0Q2hhdE1hbmFnZXIoKS5zZW5kKGNoYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBlcnJvciBpbnN0YW5jZW9mIENvbW1hbmRTeW50YXhFeGNlcHRpb246XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRlci5zZW5kTWVzc2FnZShgwqdjJHtlcnJvci5nZXRNZXNzYWdlKCl9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIGVycm9yIGluc3RhbmNlb2YgQ29tbWFuZFVua25vd25Db21tYW5kRXJyb3I6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRlci5zZW5kTWVzc2FnZShgwqdjVW5rbm93biBjb21tYW5kLiBUeXBlIFwiL2hlbHBcIiBmb3IgaGVscC5gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNhc2UgZXJyb3IgaW5zdGFuY2VvZiBFcnJvcjpcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VuZGVyLnNlbmRNZXNzYWdlKGDCp2Mke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZXJyb3IoZXJyb3IsICdDb21tYW5kTWFuYWdlci9kaXNwYXRjaENvbW1hbmQnKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IHNlbmRlci5zZW5kTWVzc2FnZShgwqdjJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmVyXG4gICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgPy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgICAgYFBsYXllciAke3RhcmdldC5nZXRGb3JtYXR0ZWRVc2VybmFtZSgpfSB0cmllZCB0byBleGVjdXRlICR7aW5wdXR9LCBidXQgaXQgZmFpbGVkIHdpdGggdGhlIGVycm9yOiAke2Vycm9yfWAsXG4gICAgICAgICAgICAgICAgICAgICdDb21tYW5kTWFuYWdlci9kaXNwYXRjaENvbW1hbmQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldExvZ2dlcigpPy5lcnJvcihlcnJvciwgJ0NvbW1hbmRNYW5hZ2VyL2Rpc3BhdGNoQ29tbWFuZCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbInJlcyIsIm5vZGUiLCJjb21tYW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFxQkEsTUFBcUIsY0FBZSxDQUFBO0FBQUEsRUFDZixRQUFBLHVCQUFxQyxHQUFJLEVBQUEsQ0FBQTtBQUFBLEVBQ3pDLE1BQUEsQ0FBQTtBQUFBLEVBQ1QsVUFBQSxDQUFBO0FBQUEsRUFFRCxZQUFZLE1BQWdCLEVBQUE7QUFDL0IsSUFBQSxJQUFBLENBQUssTUFBUyxHQUFBLE1BQUEsQ0FBQTtBQUNkLElBQUssSUFBQSxDQUFBLFVBQUEsR0FBYSxJQUFJLGlCQUFrQixFQUFBLENBQUE7QUFBQSxHQUM1QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBYSxRQUFXLEdBQUE7QUFDcEIsSUFBTSxNQUFBLEtBQUEsR0FBUSxJQUFJLEtBQU0sRUFBQSxDQUFBO0FBR3hCLElBQUEsTUFBTSxXQUFXLE1BQVksQ0FBQSxJQUFBLENBQUEsR0FBQSxDQUFJLEtBQU0sQ0FBQSxHQUFHLEVBQUUsR0FBSSxFQUFBLENBQUE7QUFDaEQsSUFBQSxNQUFNLFdBQVcsS0FBTSxDQUFBLElBQUE7QUFBQSxNQUNuQixJQUFJLEdBQUE7QUFBQSxRQUNBO0FBQUEsVUFDSSxHQUFHLEVBQ0UsQ0FBQSxXQUFBLENBQVksSUFBSSxh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
249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZE1hbmFnZXIuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kL0NvbW1hbmRNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXJndW1lbnRDb21tYW5kTm9kZSB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IENvbW1hbmREaXNwYXRjaGVyLCBDb21tYW5kU3ludGF4RXhjZXB0aW9uIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5pbXBvcnQgQ2hhdCBmcm9tICcuLi9jaGF0L0NoYXQnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZEFyZ3VtZW50IH0gZnJvbSAnLi9Db21tYW5kQXJndW1lbnRzJztcbi8vIGltcG9ydCBDb21tYW5kTm9kZSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllci9kaXN0L2xpYi90cmVlL0NvbW1hbmROb2RlJztcbmltcG9ydCBDb21tYW5kUmVnaXN0ZXJFdmVudCBmcm9tICcuLi9ldmVudHMvY29tbWFuZC9Db21tYW5kUmVnaXN0ZXJFdmVudHMnO1xuaW1wb3J0IHR5cGUgRW50aXR5IGZyb20gJy4uL2VudGl0eS9FbnRpdHknO1xuaW1wb3J0IHR5cGUgeyBQbGF5ZXIgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHR5cGUgU2VydmVyIGZyb20gJy4uL1NlcnZlcic7XG5pbXBvcnQgVGltZXIgZnJvbSAnLi4vdXRpbHMvVGltZXInO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHVybCBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQge1xuICAgIEdlbmVyaWNOYW1lc3BhY2VJbnZhbGlkRXJyb3IsXG4gICAgQ29tbWFuZFJlZ2lzdGVyQ2xhc3NNYWxmb3JtZWRPck1pc3NpbmdFcnJvcixcbiAgICBDb21tYW5kVW5rbm93bkNvbW1hbmRFcnJvcixcbiAgICBFcnJvclxufSBmcm9tICdAanNwcmlzbWFyaW5lL2Vycm9ycyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbW1hbmRNYW5hZ2VyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRzOiBNYXA8c3RyaW5nLCBDb21tYW5kPiA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZlcjogU2VydmVyO1xuICAgIHByaXZhdGUgZGlzcGF0Y2hlciE6IENvbW1hbmREaXNwYXRjaGVyPFBsYXllcj47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Ioc2VydmVyOiBTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5zZXJ2ZXIgPSBzZXJ2ZXI7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlciA9IG5ldyBDb21tYW5kRGlzcGF0Y2hlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uRW5hYmxlIGhvb2suXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIG9uRW5hYmxlKCkge1xuICAgICAgICBjb25zdCB0aW1lciA9IG5ldyBUaW1lcigpO1xuXG4gICAgICAgIC8vIEZJWE1FOiBgaW1wb3J0Lm1ldGEudXJsYCBpc24ndCBkZWZpbmVkIHdoZW4gdXNpbmcgY2pzLlxuICAgICAgICBjb25zdCBmaWxlVHlwZSA9IGltcG9ydC5tZXRhLnVybC5zcGxpdCgnLicpLnBvcCgpO1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBuZXcgU2V0KFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgLi4uZnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZWFkZGlyU3luYyh1cmwuZmlsZVVSTFRvUGF0aChuZXcgVVJMKCd2YW5pbGxhJywgaW1wb3J0Lm1ldGEudXJsKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgL3ZhbmlsbGEvJHthfWApLFxuICAgICAgICAgICAgICAgICAgICAuLi5mc1xuICAgICAgICAgICAgICAgICAgICAgICAgLnJlYWRkaXJTeW5jKHVybC5maWxlVVJMVG9QYXRoKG5ldyBVUkwoJ2pzcHJpc21hcmluZScsIGltcG9ydC5tZXRhLnVybCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYC9qc3ByaXNtYXJpbmUvJHthfWApXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChhKSA9PiAhYS5pbmNsdWRlcygnLnRlc3QuJykgJiYgIWEuaW5jbHVkZXMoJy5kLnRzJykpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEuZW5kc1dpdGgoYC4ke2ZpbGVUeXBlfWApKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIGpzcHJpc21hcmluZSBjb21tYW5kc1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGNvbW1hbmRzLm1hcChhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IENvbW1hbmQgPSBhd2FpdCBpbXBvcnQoYC4vJHtpZH1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kOiBDb21tYW5kID0gbmV3IChDb21tYW5kLmRlZmF1bHQgfHwgQ29tbWFuZCkoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IENvbW1hbmRSZWdpc3RlckV2ZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmVyLmdldEV2ZW50TWFuYWdlcigpLmVtaXQoJ2NvbW1hbmRSZWdpc3RlcicsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuaXNDYW5jZWxsZWQoKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWdpc3RlckNsYXNzQ29tbWFuZChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8ud2FybihgRmFpbGVkIHRvIHJlZ2lzdGVyIGNvbW1hbmQgJHtjb21tYW5kLmlkfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy52ZXJib3NlKFxuICAgICAgICAgICAgICAgIGBSZWdpc3RlcmVkIMKnYiR7dGhpcy5jb21tYW5kcy5zaXplfcKnciBjb21tYW5kcyhzKSAodG9vayAke3RpbWVyLnN0b3AoKX0gbXMpIWAsXG4gICAgICAgICAgICAgICAgJ0NvbW1hbmRNYW5hZ2VyL29uRW5hYmxlJ1xuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbkRpc2FibGUgaG9vay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgb25EaXNhYmxlKCkge1xuICAgICAgICB0aGlzLmNvbW1hbmRzLmNsZWFyKCk7XG4gICAgICAgIC8vIFRPRE86IGNsZWFyIGNvbW1hbmRzIGluIGRpc3BhdGNoZXJcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIGNvbW1hbmQgaW50byBjb21tYW5kIG1hbmFnZXIgYnkgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyQ2xhc3NDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgaWYgKCFjb21tYW5kIHx8ICFjb21tYW5kLmlkKSB0aHJvdyBuZXcgQ29tbWFuZFJlZ2lzdGVyQ2xhc3NNYWxmb3JtZWRPck1pc3NpbmdFcnJvcigpO1xuICAgICAgICBpZiAoY29tbWFuZC5pZC5zcGxpdCgnOicpLmxlbmd0aCAhPT0gMikgdGhyb3cgbmV3IEdlbmVyaWNOYW1lc3BhY2VJbnZhbGlkRXJyb3IoKTtcblxuICAgICAgICBpZiAoIWNvbW1hbmQucmVnaXN0ZXIpXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8ud2FybihcbiAgICAgICAgICAgICAgICAgICAgYENvbW1hbmQgaXMgbWlzc2luZyBcInJlZ2lzdGVyXCIgbWVtYmVyLiBUaGlzIGlzIHVuc3VwcG9ydGVkIWAsXG4gICAgICAgICAgICAgICAgICAgICdDb21tYW5kTWFuYWdlci9yZWdpc3RlckNsYXNzQ29tbWFuZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICBlbHNlIGF3YWl0IGNvbW1hbmQucmVnaXN0ZXIodGhpcy5kaXNwYXRjaGVyKTtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5zZXQoY29tbWFuZC5pZCwgY29tbWFuZCk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRTZXNzaW9uTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgLmdldEFsbFBsYXllcnMoKVxuICAgICAgICAgICAgICAgIC5tYXAoYXN5bmMgKHBsYXllcikgPT4gcGxheWVyLmdldE5ldHdvcmtTZXNzaW9uKCkuc2VuZEF2YWlsYWJsZUNvbW1hbmRzKCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgPy5kZWJ1ZyhgQ29tbWFuZCB3aXRoIGlkIMKnYiR7Y29tbWFuZC5pZH3Cp3IgcmVnaXN0ZXJlZGAsICdDb21tYW5kTWFuYWdlci9yZWdpc3RlckNsYXNzQ29tbWFuZCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgZW5hYmxlZCBjb21tYW5kcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29tbWFuZHMoKTogTWFwPHN0cmluZywgQ29tbWFuZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21tYW5kcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIGFsbCBjb21tYW5kIHZhcmlhbnRzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIGlzIEVYQ0xVRElORyBsZWdhY3kgY29tbWFuZHMuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbW1hbmRzTGlzdCgpOiBBcnJheTxbc3RyaW5nLCAvKiBDb21tYW5kTm9kZTxQbGF5ZXI+ICovIGFueSwgQ29tbWFuZEFyZ3VtZW50W11bXV0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VOb2RlID0gKG5vZGU6IC8qIENvbW1hbmROb2RlPFBsYXllcj4gKi8gYW55KTogYW55W10gPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0Q2hpbGRyZW5Db3VudCgpIDw9IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiAobm9kZSBhcyBBcmd1bWVudENvbW1hbmROb2RlPGFueSwgYW55PikuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXMgPSBBcnJheS5mcm9tKG5vZGUuZ2V0Q2hpbGRyZW4oKSlcbiAgICAgICAgICAgICAgICAubWFwKChub2RlKSA9PiBwYXJzZU5vZGUobm9kZSkpXG4gICAgICAgICAgICAgICAgLnJldmVyc2UoKTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBub2RlLmdldENvbW1hbmQoKVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogKG5vZGUgYXMgQXJndW1lbnRDb21tYW5kTm9kZTxhbnksIGFueT4pLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAuLi5yZXMubWFwKChjaGlsZHJlbjogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpdGVtOiAobm9kZSBhcyBBcmd1bWVudENvbW1hbmROb2RlPGFueSwgYW55PikuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWy4uLmNoaWxkcmVuXVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXS5maWx0ZXIoKGEpID0+IGEpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHRyYXZlcnNlID0gKG5vZGU6IGFueSwgcGF0aDogYW55W10gPSBbXSwgcmVzdWx0OiBhbnlbXSA9IFtdKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW5vZGUuY2hpbGRyZW4ubGVuZ3RoKSByZXN1bHQucHVzaChwYXRoLmNvbmNhdChub2RlLml0ZW0pKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikgdHJhdmVyc2UoY2hpbGQsIHBhdGguY29uY2F0KG5vZGUuaXRlbSksIHJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlcyA9IEFycmF5LmZyb20odGhpcy5zZXJ2ZXIuZ2V0Q29tbWFuZE1hbmFnZXIoKS5nZXREaXNwYXRjaGVyKCkuZ2V0Um9vdCgpLmdldENoaWxkcmVuKCkpXG4gICAgICAgICAgICAuZmxhdE1hcCgoY29tbWFuZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJyYW5jaGVzOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChjb21tYW5kLmdldENvbW1hbmQoKSkgYnJhbmNoZXMucHVzaChbXSk7XG5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKGNvbW1hbmQuZ2V0Q2hpbGRyZW4oKSkuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZU5vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZC5mb3JFYWNoKChicmFuY2gpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGVzLnB1c2godHJhdmVyc2UoYnJhbmNoKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJyYW5jaGVzLm1hcCgoYnJhbmNoKSA9PiBbY29tbWFuZC5nZXROYW1lKCksIGNvbW1hbmQsIGJyYW5jaF0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEpO1xuXG4gICAgICAgIHJlcy50b1N0cmluZyA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldENvbW1hbmRzTGlzdCgpXG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW1bMl0ubGVuZ3RoKSByZXR1cm4gYC8ke2l0ZW1bMF19YDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bMl1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudHJpZXMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAvJHtpdGVtWzBdfSAke2VudHJpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mbGF0KE51bWJlci5QT1NJVElWRV9JTkZJTklUWSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3VtZW50OiBhbnkpID0+IGFyZ3VtZW50LmdldFJlYWRhYmxlVHlwZT8uKCkgPz8gYXJndW1lbnQuY29uc3RydWN0b3IubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oYFxcbmApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpfWA7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXMgYXMgYW55O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBkaXNwYXRjaGVyXG4gICAgICovXG4gICAgcHVibGljIGdldERpc3BhdGNoZXIoKTogQ29tbWFuZERpc3BhdGNoZXI8UGxheWVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhIGNvbW1hbmQgYW5kIGV4ZWN1dGVzIHRoZW0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2VuZGVyIC0gdGhlIHBsYXllci9jb25zb2xlIHdobyBleGVjdXRlZCB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSB0YXJnZXQgLSB0aGUgUGxheWVyL2VudGl0eS9jb25zb2xlIHdobyBzaG91bGQgZXhlY3V0ZSB0aGUgY29tbWFuZFxuICAgICAqIEBwYXJhbSBpbnB1dCAtIHRoZSBjb21tYW5kIGlucHV0IGluY2x1ZGluZyBhcmd1bWVudHNcbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgZGlzcGF0Y2hDb21tYW5kKHNlbmRlcjogUGxheWVyLCB0YXJnZXQ6IEVudGl0eSB8IFBsYXllciwgaW5wdXQgPSAnJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJy8nKSkgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcblxuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5kaXNwYXRjaGVyLnBhcnNlKGlucHV0LnRyaW0oKSwgdGFyZ2V0IGFzIFBsYXllcik7XG4gICAgICAgICAgICBjb25zdCBpZCA9IHBhcnNlZC5nZXRSZWFkZXIoKS5nZXRTdHJpbmcoKS5zcGxpdCgnICcpWzBdITtcblxuICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAuZ2V0TG9nZ2VyKClcbiAgICAgICAgICAgICAgICA/LnZlcmJvc2UoXG4gICAgICAgICAgICAgICAgICAgIGBFbnRpdHkgd2l0aCDCp2Ike3NlbmRlci5nZXRSdW50aW1lSWQoKX3Cp3IgaXMgZGlzcGF0Y2hpbmcgY29tbWFuZDogJHtpbnB1dH0gKGlkOiAke2lkfSlgLFxuICAgICAgICAgICAgICAgICAgICAnQ29tbWFuZE1hbmFnZXIvZGlzcGF0Y2hDb21tYW5kJ1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIEdldCBjb21tYW5kIGZyb20gcGFyc2VkIHN0cmluZy5cbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBBcnJheS5mcm9tKHRoaXMuY29tbWFuZHMudmFsdWVzKCkpLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0IG1hdGNoZXMgSUQgd2l0aG91dCBuYW1lc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuaWQuc3BsaXQoJzonKS5hdCgtMSkgPT09IGlkIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0J3MgYW4gYWxpYXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuYWxpYXNlcz8uaW5jbHVkZXMoaWQpIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIExhc3QgY2hlY2sgaWYgaXQncyB0aGUgd2hvbGUgSUQgKHRoaXMgaXMgdW5jb21tb24gc28sXG4gICAgICAgICAgICAgICAgICAgIC8vICBpdCdzIGxhc3QgdG8gYXZvaWQgdGhlIG1vc3QgY2hlY2tzKS5cbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZC5pZCA9PT0gaWRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICghY29tbWFuZCkgdGhyb3cgbmV3IENvbW1hbmRVbmtub3duQ29tbWFuZEVycm9yKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5zZXJ2ZXIuZ2V0UGVybWlzc2lvbk1hbmFnZXIoKS5jYW4oc2VuZGVyKS5leGVjdXRlKGNvbW1hbmQucGVybWlzc2lvbikpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzZW5kZXIuc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgIFwiwqdjSSdtIHNvcnJ5LCBidXQgeW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGlzIGNvbW1hbmQuIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgY29udGFjdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3JzIGlmIHlvdSBiZWxpZXZlIHRoYXQgdGhpcyBpcyBpbiBlcnJvci4nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCByZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgICAgICBpZiAoIWNvbW1hbmQucmVnaXN0ZXIgJiYgY29tbWFuZC5leGVjdXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gTGVnYWN5IGNvbW1hbmRzXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgLmdldExvZ2dlcigpXG4gICAgICAgICAgICAgICAgICAgID8ud2FybihgJHtpZH0gaXMgdXNpbmcgdGhlIGxlZ2FjeSBjb21tYW5kIGZvcm1hdGAsICdDb21tYW5kTWFuYWdlci9kaXNwYXRjaENvbW1hbmQnKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgY29tbWFuZC5leGVjdXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VuZGVyIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5nZXRSZWFkZXIoKS5nZXRTdHJpbmcoKS5yZXBsYWNlKGAke2lkfSBgLCAnJykuc3BsaXQoJyAnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFsaWFzZXMgYW5kIElEcy5cbiAgICAgICAgICAgICAgICBpZiAoY29tbWFuZC5pZC5zcGxpdCgnOicpLmF0KC0xKSAhPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kaXNwYXRjaENvbW1hbmQoc2VuZGVyLCB0YXJnZXQsIGlucHV0LnJlcGxhY2UoaWQsIGNvbW1hbmQuaWQuc3BsaXQoJzonKVsxXSEpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKHBhcnNlZCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmZWVkYmFjayA9IChzZW5kZXIgYXMgYW55IGFzIEVudGl0eSlcbiAgICAgICAgICAgICAgICAuZ2V0V29ybGQoKVxuICAgICAgICAgICAgICAgIC5nZXRHYW1lcnVsZU1hbmFnZXIoKVxuICAgICAgICAgICAgICAgIC5nZXRHYW1lcnVsZSgnc2VuZENvbW1hbmRGZWVkYmFjaycpO1xuXG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCBmZWVkYmFjayBpZiBzZW5kQ29tbWFuZEZlZWRiYWNrIGlzIHNldCB0byBmYWxzZVxuICAgICAgICAgICAgaWYgKGZlZWRiYWNrKSB7XG4gICAgICAgICAgICAgICAgcmVzLmZvckVhY2goYXN5bmMgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXQgPSBuZXcgQ2hhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyLmdldENvbnNvbGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGDCp2/CpzdbJHt0YXJnZXQuZ2V0TmFtZSgpfTogJHtyZXMgPz8gYGlzc3VlZCBzZXJ2ZXIgY29tbWFuZDogLyR7aW5wdXR9YH1dwqdyYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAnKi5vcHMnXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgYmUgYnJvYWRjYXN0ZWQgdG8gdGhlIGV4ZWN1dGVyP1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZlci5nZXRDaGF0TWFuYWdlcigpLnNlbmQoY2hhdCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYXQgPSBuZXcgQ2hhdChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0Q29uc29sZSgpLFxuICAgICAgICAgICAgICAgICAgICBgwqdvwqc3WyR7c2VuZGVyLmdldE5hbWUoKX06ICR7cmVzLmxlbmd0aCA+IDAgPyByZXMgOiBgaXNzdWVkIHNlcnZlciBjb21tYW5kOiAvJHtpbnB1dH1gfV3Cp3JgLFxuICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICcqLmNvbnNvbGUnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmVyLmdldENoYXRNYW5hZ2VyKCkuc2VuZChjaGF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgZXJyb3IgaW5zdGFuY2VvZiBDb21tYW5kU3ludGF4RXhjZXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZW5kZXIuc2VuZE1lc3NhZ2UoYMKnYyR7ZXJyb3IuZ2V0TWVzc2FnZSgpfWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY2FzZSBlcnJvciBpbnN0YW5jZW9mIENvbW1hbmRVbmtub3duQ29tbWFuZEVycm9yOlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzZW5kZXIuc2VuZE1lc3NhZ2UoYMKnY1Vua25vd24gY29tbWFuZC4gVHlwZSBcIi9oZWxwXCIgZm9yIGhlbHAuYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjYXNlIGVycm9yIGluc3RhbmNlb2YgRXJyb3I6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbmRlci5zZW5kTWVzc2FnZShgwqdjJHtlcnJvci5tZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXIuZ2V0TG9nZ2VyKCk/LmVycm9yKGVycm9yLCAnQ29tbWFuZE1hbmFnZXIvZGlzcGF0Y2hDb21tYW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhd2FpdCBzZW5kZXIuc2VuZE1lc3NhZ2UoYMKnYyR7ZXJyb3J9YCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZlclxuICAgICAgICAgICAgICAgIC5nZXRMb2dnZXIoKVxuICAgICAgICAgICAgICAgID8uZGVidWcoXG4gICAgICAgICAgICAgICAgICAgIGBQbGF5ZXIgJHt0YXJnZXQuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKX0gdHJpZWQgdG8gZXhlY3V0ZSAke2lucHV0fSwgYnV0IGl0IGZhaWxlZCB3aXRoIHRoZSBlcnJvcjogJHtlcnJvcn1gLFxuICAgICAgICAgICAgICAgICAgICAnQ29tbWFuZE1hbmFnZXIvZGlzcGF0Y2hDb21tYW5kJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNlcnZlci5nZXRMb2dnZXIoKT8uZXJyb3IoZXJyb3IsICdDb21tYW5kTWFuYWdlci9kaXNwYXRjaENvbW1hbmQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJyZXMiLCJub2RlIiwiY29tbWFuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBcUJBLE1BQXFCLGNBQWUsQ0FBQTtBQUFBLEVBQ2YsUUFBQSx1QkFBcUMsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUN6QyxNQUFBLENBQUE7QUFBQSxFQUNULFVBQUEsQ0FBQTtBQUFBLEVBRUQsWUFBWSxNQUFnQixFQUFBO0FBQy9CLElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLENBQUE7QUFDZCxJQUFLLElBQUEsQ0FBQSxVQUFBLEdBQWEsSUFBSSxpQkFBa0IsRUFBQSxDQUFBO0FBQUEsR0FDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWEsUUFBVyxHQUFBO0FBQ3BCLElBQU0sTUFBQSxLQUFBLEdBQVEsSUFBSSxLQUFNLEVBQUEsQ0FBQTtBQUd4QixJQUFBLE1BQU0sV0FBVyxNQUFZLENBQUEsSUFBQSxDQUFBLEdBQUEsQ0FBSSxLQUFNLENBQUEsR0FBRyxFQUFFLEdBQUksRUFBQSxDQUFBO0FBQ2hELElBQUEsTUFBTSxXQUFXLEtBQU0sQ0FBQSxJQUFBO0FBQUEsTUFDbkIsSUFBSSxHQUFBO0FBQUEsUUFDQTtBQUFBLFVBQ0ksR0FBRyxFQUNFLENBQUEs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
@@ -25,7 +25,7 @@ const command_jsprismarine_TpsCommand = require('./jsprismarine/TpsCommand.cjs.j
25
25
  const command_jsprismarine_VersionCommand = require('./jsprismarine/VersionCommand.cjs.js');
26
26
  require('@jsprismarine/brigadier');
27
27
  require('./Command.cjs.js');
28
- require('../Server-AfmPsq74.cjs');
28
+ require('../Server-nY-WO-m_.cjs');
29
29
  require('@jsprismarine/raknet');
30
30
  require('../chat/Chat.cjs.js');
31
31
  require('../ban/BanManager.cjs.js');
@@ -21,7 +21,7 @@ export { default as TpsCommand } from './jsprismarine/TpsCommand.es.js';
21
21
  export { default as VersionCommand } from './jsprismarine/VersionCommand.es.js';
22
22
  import '@jsprismarine/brigadier';
23
23
  import './Command.es.js';
24
- import '../Server-Dyy9OCM8.js';
24
+ import '../Server-DAXmO2Rm.js';
25
25
  import '@jsprismarine/raknet';
26
26
  import '../chat/Chat.es.js';
27
27
  import '../ban/BanManager.es.js';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const command_Command = require('./Command.cjs.js');
6
- const command_CommandArguments = require('../Server-AfmPsq74.cjs');
6
+ const command_CommandArguments = require('../Server-nY-WO-m_.cjs');
7
7
  const command_Commands = require('../Commands-AzFicZrH.cjs');
8
8
  require('@jsprismarine/brigadier');
9
9
  require('@jsprismarine/raknet');
@@ -1,5 +1,5 @@
1
1
  export { Command } from './Command.es.js';
2
- export { B as BooleanArgumentCommand, C as CommandArgument, b as CommandArgumentCommand, c as CommandArgumentEntity, d as CommandArgumentGamemode, e as CommandArgumentMob, f as CommandArgumentPosition, g as PlayerArgumentCommand } from '../Server-Dyy9OCM8.js';
2
+ export { B as BooleanArgumentCommand, C as CommandArgument, b as CommandArgumentCommand, c as CommandArgumentEntity, d as CommandArgumentGamemode, e as CommandArgumentMob, f as CommandArgumentPosition, g as PlayerArgumentCommand } from '../Server-DAXmO2Rm.js';
3
3
  export { C as Commands } from '../Commands-EFVdIqGi.js';
4
4
  import '@jsprismarine/brigadier';
5
5
  import '@jsprismarine/raknet';
@@ -4,7 +4,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
 
5
5
  const brigadier = require('@jsprismarine/brigadier');
6
6
  const command_Command = require('../Command.cjs.js');
7
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
7
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
8
8
  require('@jsprismarine/raknet');
9
9
  require('../../chat/Chat.cjs.js');
10
10
  require('../../ban/BanManager.cjs.js');
@@ -1,6 +1,6 @@
1
1
  import { literal, argument, greedyString } from '@jsprismarine/brigadier';
2
2
  import { Command } from '../Command.es.js';
3
- import { g as PlayerArgumentCommand } from '../../Server-Dyy9OCM8.js';
3
+ import { g as PlayerArgumentCommand } from '../../Server-DAXmO2Rm.js';
4
4
  import '@jsprismarine/raknet';
5
5
  import '../../chat/Chat.es.js';
6
6
  import '../../ban/BanManager.es.js';
@@ -6,7 +6,7 @@ const brigadier = require('@jsprismarine/brigadier');
6
6
  const chat_Chat = require('../../chat/Chat.cjs.js');
7
7
  const events_chat_ChatEvent = require('../../events/chat/ChatEvent.cjs.js');
8
8
  const command_Command = require('../Command.cjs.js');
9
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
9
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
10
10
  require('../../events/Event.cjs.js');
11
11
  require('@jsprismarine/raknet');
12
12
  require('../../ban/BanManager.cjs.js');
@@ -2,7 +2,7 @@ import { literal, argument } from '@jsprismarine/brigadier';
2
2
  import Chat from '../../chat/Chat.es.js';
3
3
  import ChatEvent from '../../events/chat/ChatEvent.es.js';
4
4
  import { Command } from '../Command.es.js';
5
- import { g as PlayerArgumentCommand } from '../../Server-Dyy9OCM8.js';
5
+ import { g as PlayerArgumentCommand } from '../../Server-DAXmO2Rm.js';
6
6
  import '../../events/Event.es.js';
7
7
  import '@jsprismarine/raknet';
8
8
  import '../../ban/BanManager.es.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
4
 
5
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
5
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
6
6
  const brigadier = require('@jsprismarine/brigadier');
7
7
  const command_Command = require('../Command.cjs.js');
8
8
  require('@jsprismarine/raknet');
@@ -1,4 +1,4 @@
1
- import { c as CommandArgumentEntity, b as CommandArgumentCommand } from '../../Server-Dyy9OCM8.js';
1
+ import { c as CommandArgumentEntity, b as CommandArgumentCommand } from '../../Server-DAXmO2Rm.js';
2
2
  import { literal, argument, greedyString } from '@jsprismarine/brigadier';
3
3
  import { Command } from '../Command.es.js';
4
4
  import '@jsprismarine/raknet';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
4
 
5
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
5
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
6
6
  const brigadier = require('@jsprismarine/brigadier');
7
7
  const chat_Chat = require('../../chat/Chat.cjs.js');
8
8
  const events_chat_ChatEvent = require('../../events/chat/ChatEvent.cjs.js');
@@ -1,4 +1,4 @@
1
- import { d as CommandArgumentGamemode, c as CommandArgumentEntity } from '../../Server-Dyy9OCM8.js';
1
+ import { d as CommandArgumentGamemode, c as CommandArgumentEntity } from '../../Server-DAXmO2Rm.js';
2
2
  import { literal, argument } from '@jsprismarine/brigadier';
3
3
  import Chat from '../../chat/Chat.es.js';
4
4
  import ChatEvent from '../../events/chat/ChatEvent.es.js';
@@ -4,7 +4,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
 
5
5
  const brigadier = require('@jsprismarine/brigadier');
6
6
  const command_Command = require('../Command.cjs.js');
7
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
7
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
8
8
  require('@jsprismarine/raknet');
9
9
  require('../../chat/Chat.cjs.js');
10
10
  require('../../ban/BanManager.cjs.js');
@@ -1,6 +1,6 @@
1
1
  import { literal, argument, greedyString } from '@jsprismarine/brigadier';
2
2
  import { Command } from '../Command.es.js';
3
- import { g as PlayerArgumentCommand } from '../../Server-Dyy9OCM8.js';
3
+ import { g as PlayerArgumentCommand } from '../../Server-DAXmO2Rm.js';
4
4
  import '@jsprismarine/raknet';
5
5
  import '../../chat/Chat.es.js';
6
6
  import '../../ban/BanManager.es.js';
@@ -6,7 +6,7 @@ const brigadier = require('@jsprismarine/brigadier');
6
6
  const chat_Chat = require('../../chat/Chat.cjs.js');
7
7
  const events_chat_ChatEvent = require('../../events/chat/ChatEvent.cjs.js');
8
8
  const command_Command = require('../Command.cjs.js');
9
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
9
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
10
10
  require('../../events/Event.cjs.js');
11
11
  require('@jsprismarine/raknet');
12
12
  require('../../ban/BanManager.cjs.js');
@@ -2,7 +2,7 @@ import { literal, argument } from '@jsprismarine/brigadier';
2
2
  import Chat from '../../chat/Chat.es.js';
3
3
  import ChatEvent from '../../events/chat/ChatEvent.es.js';
4
4
  import { Command } from '../Command.es.js';
5
- import { g as PlayerArgumentCommand } from '../../Server-Dyy9OCM8.js';
5
+ import { g as PlayerArgumentCommand } from '../../Server-DAXmO2Rm.js';
6
6
  import '../../events/Event.es.js';
7
7
  import '@jsprismarine/raknet';
8
8
  import '../../ban/BanManager.es.js';
@@ -4,7 +4,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
 
5
5
  const brigadier = require('@jsprismarine/brigadier');
6
6
  const command_Command = require('../Command.cjs.js');
7
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
7
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
8
8
  require('@jsprismarine/raknet');
9
9
  require('../../chat/Chat.cjs.js');
10
10
  require('../../ban/BanManager.cjs.js');
@@ -1,6 +1,6 @@
1
1
  import { literal, argument } from '@jsprismarine/brigadier';
2
2
  import { Command } from '../Command.es.js';
3
- import { g as PlayerArgumentCommand } from '../../Server-Dyy9OCM8.js';
3
+ import { g as PlayerArgumentCommand } from '../../Server-DAXmO2Rm.js';
4
4
  import '@jsprismarine/raknet';
5
5
  import '../../chat/Chat.es.js';
6
6
  import '../../ban/BanManager.es.js';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
4
 
5
5
  const entity_Entities = require('../../Entities-BDAVWab4.cjs');
6
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
6
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
7
7
  const brigadier = require('@jsprismarine/brigadier');
8
8
  const command_Command = require('../Command.cjs.js');
9
9
  const math_Vector3 = require('../../math/Vector3.cjs.js');
@@ -1,5 +1,5 @@
1
1
  import { E as Entities } from '../../Entities-BTndRlb_.js';
2
- import { e as CommandArgumentMob } from '../../Server-Dyy9OCM8.js';
2
+ import { e as CommandArgumentMob } from '../../Server-DAXmO2Rm.js';
3
3
  import { literal, argument } from '@jsprismarine/brigadier';
4
4
  import { Command } from '../Command.es.js';
5
5
  import Vector3 from '../../math/Vector3.es.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
4
 
5
- const command_CommandArguments = require('../../Server-AfmPsq74.cjs');
5
+ const command_CommandArguments = require('../../Server-nY-WO-m_.cjs');
6
6
  const brigadier = require('@jsprismarine/brigadier');
7
7
  const command_Command = require('../Command.cjs.js');
8
8
  const network_type_MovementType = require('../../network/type/MovementType.cjs.js');
@@ -1,4 +1,4 @@
1
- import { f as CommandArgumentPosition, c as CommandArgumentEntity } from '../../Server-Dyy9OCM8.js';
1
+ import { f as CommandArgumentPosition, c as CommandArgumentEntity } from '../../Server-DAXmO2Rm.js';
2
2
  import { literal, argument } from '@jsprismarine/brigadier';
3
3
  import { Command } from '../Command.es.js';
4
4
  import MovementType from '../../network/type/MovementType.es.js';
@@ -106,15 +106,23 @@ class ConfigBuilder {
106
106
  const rawFileData = fs__default.default.readFileSync(this.path, "utf8");
107
107
  switch (this.type) {
108
108
  case "json":
109
- resultData = JSON.parse(minifyJson__default.default(rawFileData));
109
+ try {
110
+ resultData = JSON.parse(minifyJson__default.default(rawFileData));
111
+ } catch {
112
+ return {};
113
+ }
110
114
  break;
111
115
  case "yaml":
112
- resultData = YAML__default.default.parse(rawFileData);
116
+ try {
117
+ resultData = YAML__default.default.parse(rawFileData);
118
+ } catch {
119
+ return {};
120
+ }
113
121
  break;
114
122
  default:
115
123
  throw new Error(`Unknown config type: ${this.type}!`);
116
124
  }
117
- return resultData || {};
125
+ return resultData;
118
126
  }
119
127
  /**
120
128
  * Get a config value from a key.
@@ -171,4 +179,4 @@ class ConfigBuilder {
171
179
  }
172
180
 
173
181
  exports.default = ConfigBuilder;
174
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnQnVpbGRlci5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnQnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgWUFNTCBmcm9tICd5YW1sJztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBtaW5pZnlKc29uIGZyb20gJ3N0cmlwLWpzb24tY29tbWVudHMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuY29uc3QgXyA9IHtcbiAgICBnZXQ6IChvYmo6IGFueSwgcGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWUgPSB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgY29uc3QgdHJhdmVsID0gKHJlZ2V4cDogYW55KSA9PlxuICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZS5zcGxpdFxuICAgICAgICAgICAgICAgIC5jYWxsKHBhdGgsIHJlZ2V4cClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgocmVzLCBrZXkpID0+IChyZXMgIT09IG51bGwgJiYgcmVzICE9PSB1bmRlZmluZWQgPyByZXNba2V5XSA6IHJlcyksIG9iaik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyYXZlbCgvWyxbXFxdXSs/LykgfHwgdHJhdmVsKC9bLFtcXF0uXSs/Lyk7XG4gICAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQgPT09IG9iaiA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICB9LFxuICAgIHNldDogKG9iajogYW55LCBwYXRoOiBhbnksIHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdChvYmopICE9PSBvYmopIHJldHVybiBvYmo7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXRoKSkgcGF0aCA9IHBhdGgudG9TdHJpbmcoKS5tYXRjaCgvW14uW1xcXV0rL2cpIHx8IFtdO1xuICAgICAgICBwYXRoXG4gICAgICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgICAgIChhOiBhbnksIGM6IGFueSwgaTogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICBPYmplY3QoYVtjXSkgPT09IGFbY11cbiAgICAgICAgICAgICAgICAgICAgICAgID8gYVtjXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoYVtjXSA9IE1hdGguYWJzKHBhdGhbaSArIDFdKSA+PiAwID09PSBOdW1iZXIocGF0aFtpICsgMV0pID8gW10gOiB7fSksXG4gICAgICAgICAgICAgICAgb2JqXG4gICAgICAgICAgICApW3BhdGguYXQoLTEpXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgaGFzOiAob2JqOiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGNvbnN0IGtleVBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICBvYmogJiZcbiAgICAgICAgICAgICAgICAoa2V5UGFydHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICA/IF8uaGFzKG9ialtrZXkuc3BsaXQoJy4nKVswXSFdLCBrZXlQYXJ0cy5zbGljZSgxKS5qb2luKCcuJykpXG4gICAgICAgICAgICAgICAgICAgIDogT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKVxuICAgICAgICApO1xuICAgIH0sXG4gICAgZGVsOiAob2JqOiBhbnksIHBhdGg6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwYXRoQXJyYXkgPSBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aCA6IHBhdGgubWF0Y2goLyhbXlsuXFxdXSkrL2cpO1xuXG4gICAgICAgIHBhdGhBcnJheS5yZWR1Y2UoKGFjYzogYW55LCBrZXk6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlXG4gICAgICAgICAgICBpZiAoaSA9PT0gcGF0aEFycmF5Lmxlbmd0aCAtIDEpIGRlbGV0ZSBhY2Nba2V5XTtcbiAgICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgb2JqKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufTtcblxuY29uc3QgVHlwZURlZmF1bHRzID0ge1xuICAgIGpzb246ICd7fScsXG4gICAgeWFtbDogJyAnXG59O1xuXG4vKipcbiAqIEdlbmVyYWwgY29uZmlnLWZpbGUgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uZmlnQnVpbGRlciB7XG4gICAgcHJpdmF0ZSB0eXBlOiAneWFtbCcgfCAnanNvbic7XG4gICAgcHJpdmF0ZSBwYXRoOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWcgY29uc3RydWN0b3IuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGF0aFNwbGl0dGVkID0gcGF0aC5wYXJzZShmaWxlUGF0aCk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gcGF0aFNwbGl0dGVkLmV4dC5zbGljZSgxKSBhcyAneWFtbCcgfCAnanNvbic7XG5cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhUeXBlRGVmYXVsdHMpLnNvbWUoKGkpID0+IGkudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy50eXBlLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGNvbmZpZyB0eXBlLiAoU3VwcG9ydGVkIHR5cGVzOiAke09iamVjdC5rZXlzKFR5cGVEZWZhdWx0cykuam9pbignLCAnKX0pYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aFNwbGl0dGVkLmRpcikpIHtcbiAgICAgICAgICAgIGZzLm1rZGlyU3luYyhwYXRoU3BsaXR0ZWQuZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIChUeXBlRGVmYXVsdHMgYXMgYW55KVt0aGlzLnR5cGVdLCAndXRmOCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYXRoID0gZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHBhdGggdG8gdGhlIGNvbmZpZyBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHBhdGggdG8gdGhlIGNvbmZpZyBmaWxlXG4gICAgICovXG4gICAgcHVibGljIGdldFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGNvbmZpZyBmb3JtYXQgKGVnLiB0eXBlKS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGVpdGhlciBgeWFtbGAgb3IgYGpzb25gXG4gICAgICovXG4gICAgcHVibGljIGdldFR5cGUoKTogJ3lhbWwnIHwgJ2pzb24nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZpbGVEYXRhKGRhdGEgPSB7fSkge1xuICAgICAgICBsZXQgZmlsZURhdGEgPSAnJztcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgICAgIGZpbGVEYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5YW1sJzpcbiAgICAgICAgICAgICAgICBmaWxlRGF0YSA9IFlBTUwuc3RyaW5naWZ5KGRhdGEsIHsgaW5kZW50OiAyIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29uZmlnIHR5cGUgJHt0aGlzLnR5cGV9IWApO1xuICAgICAgICB9XG5cbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLnBhdGgsIGZpbGVEYXRhLCAndXRmOCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZURhdGEoKTogYW55IHtcbiAgICAgICAgbGV0IHJlc3VsdERhdGEgPSB7fTtcbiAgICAgICAgY29uc3QgcmF3RmlsZURhdGEgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5wYXRoLCAndXRmOCcpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgICAgICAgICAgcmVzdWx0RGF0YSA9IEpTT04ucGFyc2UobWluaWZ5SnNvbihyYXdGaWxlRGF0YSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWFtbCc6XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgaW5kZW50IHBhcmFtZXRlclxuICAgICAgICAgICAgICAgIHJlc3VsdERhdGEgPSBZQU1MLnBhcnNlKHJhd0ZpbGVEYXRhKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbmZpZyB0eXBlOiAke3RoaXMudHlwZX0hYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0RGF0YSB8fCB7fTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBjb25maWcgdmFsdWUgZnJvbSBhIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSB0aGUgY29uZmlnIGtleVxuICAgICAqIEBwYXJhbSBkZWZhdWx0cyAtIHRoZSBkZWZhdWx0IHZhbHVlLCBvcHRpb25hbFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGNvbmZpZyB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcsIGRlZmF1bHRzPzogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IF8uZ2V0KGRhdGEsIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZGVmYXVsdHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gXy5zZXQoZGF0YSwga2V5LCBkZWZhdWx0cyk7XG4gICAgICAgICAgICB0aGlzLnNldEZpbGVEYXRhKG5ld0RhdGEpO1xuICAgICAgICAgICAgcmVzdWx0ID0gZGVmYXVsdHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBrZXkgLSB2YWx1ZSBwYWlyIGluIGNvbmZpZy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIHdhcyBzZXQgc3VjY2Vzc2Z1bGx5XG4gICAgICovXG4gICAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gXy5zZXQoZGF0YSwga2V5LCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZURhdGEobmV3RGF0YSk7XG5cbiAgICAgICAgLy8gVE9ET1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBjb25maWcgdmFsdWUgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSAtIHRoZSBjb25maWcga2V5XG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZmlnIGNvbnRhaW5zIHRoYXQga2V5XG4gICAgICovXG4gICAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBfLmhhcyhkYXRhLCBrZXkpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIGNvbmZpZyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSB0aGUgY29uZmlnIGtleVxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsXG4gICAgICovXG4gICAgcHVibGljIGRlbChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuXG4gICAgICAgIC8vIEl0IG11dGF0ZXMgdGhlIG9iamVjdCwgd2VcbiAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byBkZWZpbmUgYSBuZXdcbiAgICAgICAgLy8gdmFyaWFibGUuXG4gICAgICAgIGNvbnN0IGlzU3VjY2Vzc2Z1bCA9IF8uZGVsKGRhdGEsIGtleSk7XG5cbiAgICAgICAgdGhpcy5zZXRGaWxlRGF0YShkYXRhKTtcbiAgICAgICAgcmV0dXJuIGlzU3VjY2Vzc2Z1bDtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsicGF0aCIsImZzIiwiWUFNTCIsIm1pbmlmeUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQSxNQUFNLENBQUksR0FBQTtBQUFBLEVBQ04sR0FBSyxFQUFBLENBQUMsR0FBVUEsRUFBQUEsS0FBQUEsRUFBYyxlQUFlLEtBQWMsQ0FBQSxLQUFBO0FBQ3ZELElBQU0sTUFB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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnQnVpbGRlci5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnQnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgWUFNTCBmcm9tICd5YW1sJztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCBtaW5pZnlKc29uIGZyb20gJ3N0cmlwLWpzb24tY29tbWVudHMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuY29uc3QgXyA9IHtcbiAgICBnZXQ6IChvYmo6IGFueSwgcGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWUgPSB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgY29uc3QgdHJhdmVsID0gKHJlZ2V4cDogYW55KSA9PlxuICAgICAgICAgICAgU3RyaW5nLnByb3RvdHlwZS5zcGxpdFxuICAgICAgICAgICAgICAgIC5jYWxsKHBhdGgsIHJlZ2V4cClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgocmVzLCBrZXkpID0+IChyZXMgIT09IG51bGwgJiYgcmVzICE9PSB1bmRlZmluZWQgPyByZXNba2V5XSA6IHJlcyksIG9iaik7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyYXZlbCgvWyxbXFxdXSs/LykgfHwgdHJhdmVsKC9bLFtcXF0uXSs/Lyk7XG4gICAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQgPT09IG9iaiA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgICB9LFxuICAgIHNldDogKG9iajogYW55LCBwYXRoOiBhbnksIHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKE9iamVjdChvYmopICE9PSBvYmopIHJldHVybiBvYmo7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXRoKSkgcGF0aCA9IHBhdGgudG9TdHJpbmcoKS5tYXRjaCgvW14uW1xcXV0rL2cpIHx8IFtdO1xuICAgICAgICBwYXRoXG4gICAgICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgICAgIChhOiBhbnksIGM6IGFueSwgaTogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICBPYmplY3QoYVtjXSkgPT09IGFbY11cbiAgICAgICAgICAgICAgICAgICAgICAgID8gYVtjXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoYVtjXSA9IE1hdGguYWJzKHBhdGhbaSArIDFdKSA+PiAwID09PSBOdW1iZXIocGF0aFtpICsgMV0pID8gW10gOiB7fSksXG4gICAgICAgICAgICAgICAgb2JqXG4gICAgICAgICAgICApW3BhdGguYXQoLTEpXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgaGFzOiAob2JqOiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGNvbnN0IGtleVBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICBvYmogJiZcbiAgICAgICAgICAgICAgICAoa2V5UGFydHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICA/IF8uaGFzKG9ialtrZXkuc3BsaXQoJy4nKVswXSFdLCBrZXlQYXJ0cy5zbGljZSgxKS5qb2luKCcuJykpXG4gICAgICAgICAgICAgICAgICAgIDogT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKVxuICAgICAgICApO1xuICAgIH0sXG4gICAgZGVsOiAob2JqOiBhbnksIHBhdGg6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwYXRoQXJyYXkgPSBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aCA6IHBhdGgubWF0Y2goLyhbXlsuXFxdXSkrL2cpO1xuXG4gICAgICAgIHBhdGhBcnJheS5yZWR1Y2UoKGFjYzogYW55LCBrZXk6IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlXG4gICAgICAgICAgICBpZiAoaSA9PT0gcGF0aEFycmF5Lmxlbmd0aCAtIDEpIGRlbGV0ZSBhY2Nba2V5XTtcbiAgICAgICAgICAgIHJldHVybiBhY2Nba2V5XTtcbiAgICAgICAgfSwgb2JqKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufTtcblxuY29uc3QgVHlwZURlZmF1bHRzID0ge1xuICAgIGpzb246ICd7fScsXG4gICAgeWFtbDogJyAnXG59O1xuXG4vKipcbiAqIEdlbmVyYWwgY29uZmlnLWZpbGUgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uZmlnQnVpbGRlciB7XG4gICAgcHJpdmF0ZSB0eXBlOiAneWFtbCcgfCAnanNvbic7XG4gICAgcHJpdmF0ZSBwYXRoOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWcgY29uc3RydWN0b3IuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGF0aFNwbGl0dGVkID0gcGF0aC5wYXJzZShmaWxlUGF0aCk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gcGF0aFNwbGl0dGVkLmV4dC5zbGljZSgxKSBhcyAneWFtbCcgfCAnanNvbic7XG5cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhUeXBlRGVmYXVsdHMpLnNvbWUoKGkpID0+IGkudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy50eXBlLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGNvbmZpZyB0eXBlLiAoU3VwcG9ydGVkIHR5cGVzOiAke09iamVjdC5rZXlzKFR5cGVEZWZhdWx0cykuam9pbignLCAnKX0pYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aFNwbGl0dGVkLmRpcikpIHtcbiAgICAgICAgICAgIGZzLm1rZGlyU3luYyhwYXRoU3BsaXR0ZWQuZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIChUeXBlRGVmYXVsdHMgYXMgYW55KVt0aGlzLnR5cGVdLCAndXRmOCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYXRoID0gZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHBhdGggdG8gdGhlIGNvbmZpZyBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtLlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHBhdGggdG8gdGhlIGNvbmZpZyBmaWxlXG4gICAgICovXG4gICAgcHVibGljIGdldFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGNvbmZpZyBmb3JtYXQgKGVnLiB0eXBlKS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGVpdGhlciBgeWFtbGAgb3IgYGpzb25gXG4gICAgICovXG4gICAgcHVibGljIGdldFR5cGUoKTogJ3lhbWwnIHwgJ2pzb24nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZpbGVEYXRhKGRhdGEgPSB7fSkge1xuICAgICAgICBsZXQgZmlsZURhdGEgPSAnJztcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgICAgIGZpbGVEYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5YW1sJzpcbiAgICAgICAgICAgICAgICBmaWxlRGF0YSA9IFlBTUwuc3RyaW5naWZ5KGRhdGEsIHsgaW5kZW50OiAyIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29uZmlnIHR5cGUgJHt0aGlzLnR5cGV9IWApO1xuICAgICAgICB9XG5cbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLnBhdGgsIGZpbGVEYXRhLCAndXRmOCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZURhdGEoKTogYW55IHtcbiAgICAgICAgbGV0IHJlc3VsdERhdGEgPSB7fTtcbiAgICAgICAgY29uc3QgcmF3RmlsZURhdGEgPSBmcy5yZWFkRmlsZVN5bmModGhpcy5wYXRoLCAndXRmOCcpO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0RGF0YSA9IEpTT04ucGFyc2UobWluaWZ5SnNvbihyYXdGaWxlRGF0YSkpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWFtbCc6XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgaW5kZW50IHBhcmFtZXRlclxuICAgICAgICAgICAgICAgICAgICByZXN1bHREYXRhID0gWUFNTC5wYXJzZShyYXdGaWxlRGF0YSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb25maWcgdHlwZTogJHt0aGlzLnR5cGV9IWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdERhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgY29uZmlnIHZhbHVlIGZyb20gYSBrZXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IC0gdGhlIGNvbmZpZyBrZXlcbiAgICAgKiBAcGFyYW0gZGVmYXVsdHMgLSB0aGUgZGVmYXVsdCB2YWx1ZSwgb3B0aW9uYWxcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBjb25maWcgdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nLCBkZWZhdWx0cz86IGFueSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldEZpbGVEYXRhKCk7XG4gICAgICAgIGxldCByZXN1bHQgPSBfLmdldChkYXRhLCBrZXkpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRlZmF1bHRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IF8uc2V0KGRhdGEsIGtleSwgZGVmYXVsdHMpO1xuICAgICAgICAgICAgdGhpcy5zZXRGaWxlRGF0YShuZXdEYXRhKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEga2V5IC0gdmFsdWUgcGFpciBpbiBjb25maWcuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSB3YXMgc2V0IHN1Y2Nlc3NmdWxseVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IF8uc2V0KGRhdGEsIGtleSwgdmFsdWUpO1xuICAgICAgICB0aGlzLnNldEZpbGVEYXRhKG5ld0RhdGEpO1xuXG4gICAgICAgIC8vIFRPRE9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgY29uZmlnIHZhbHVlIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSB0aGUgY29uZmlnIGtleVxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNvbmZpZyBjb250YWlucyB0aGF0IGtleVxuICAgICAqL1xuICAgIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gXy5oYXMoZGF0YSwga2V5KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSBjb25maWcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IC0gdGhlIGNvbmZpZyBrZXlcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBkZWxldGlvbiB3YXMgc3VjY2Vzc2Z1bFxuICAgICAqL1xuICAgIHB1YmxpYyBkZWwoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RmlsZURhdGEoKTtcblxuICAgICAgICAvLyBJdCBtdXRhdGVzIHRoZSBvYmplY3QsIHdlXG4gICAgICAgIC8vIGRvbid0IG5lZWQgdG8gZGVmaW5lIGEgbmV3XG4gICAgICAgIC8vIHZhcmlhYmxlLlxuICAgICAgICBjb25zdCBpc1N1Y2Nlc3NmdWwgPSBfLmRlbChkYXRhLCBrZXkpO1xuXG4gICAgICAgIHRoaXMuc2V0RmlsZURhdGEoZGF0YSk7XG4gICAgICAgIHJldHVybiBpc1N1Y2Nlc3NmdWw7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJmcyIsIllBTUwiLCJtaW5pZnlKc29uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBS0EsTUFBTSxDQUFJLEdBQUE7QUFBQSxFQUNOLEdBQUssRUFBQSxDQUFDLEdBQVVBLEVBQUFBLEtBQUFBLEVBQWMsZUFBZSxLQUFjLENBQUEsS0FBQTtBQUN2RCxJQUFNLE1BQUEsTUFBQSxHQUFTLENBQUMsTUFBQSxLQUNaLE1BQU8sQ0FBQSxTQUFBLENBQVUsTUFDWixJQUFLQSxDQUFBQSxLQUFBQSxFQUFNLE1BQU0sQ0FBQSxDQUNqQixNQUFPLENBQUEsT0FBTyxFQUNkLE1BQU8sQ0FBQSxDQUFDLEdBQUssRUFBQSxHQUFBLEtBQVMsR0FBUSxLQUFBLElBQUEsSUFBUSxHQUFRLEtBQUEsS0FBQSxDQUFBLEdBQVksR0FBSSxDQUFBLEdBQUcsQ0FBSSxHQUFBLEdBQUEsRUFBTSxHQUFHLENBQUEsQ0FBQTtBQUN2RixJQUFBLE1BQU0sTUFBUyxHQUFBLE1BQUEsQ0FBTyxVQUFVLENBQUEsSUFBSyxPQUFPLFdBQVcsQ0FBQSxDQUFBO0FBQ3ZELElBQUEsT0FBTyxNQUFXLEtBQUEsS0FBQSxDQUFBLElBQWEsTUFBVyxLQUFBLEdBQUEsR0FBTSxZQUFlLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbkU7QUFBQSxFQUNBLEdBQUssRUFBQSxDQUFDLEdBQVVBLEVBQUFBLEtBQUFBLEVBQVcsS0FBZSxLQUFBO0FBQ3RDLElBQUksSUFBQSxNQUFBLENBQU8sR0FBRyxDQUFNLEtBQUEsR0FBQTtBQUFLLE1BQU8sT0FBQSxHQUFBLENBQUE7QUFDaEMsSUFBSSxJQUFBLENBQUMsS0FBTSxDQUFBLE9BQUEsQ0FBUUEsS0FBSSxDQUFBO0FBQUcsTUFBQUEsUUFBT0EsS0FBSyxDQUFBLFFBQUEsR0FBVyxLQUFNLENBQUEsV0FBVyxLQUFLLEVBQUMsQ0FBQTtBQUN4RSxJQUFBQSxLQUNLLENBQUEsS0FBQSxDQUFNLENBQUcsRUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/config/ConfigBuilder.ts"],"names":[],"mappings":"AAwDA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;gBACgB,QAAQ,EAAE,MAAM;IAoBnC;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAIxB;;;;OAIG;IACI,OAAO,IAAI,MAAM,GAAG,MAAM;IAIjC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IAkBnB;;;;;;;OAOG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG;IAY5C;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IASlC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMhC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAWnC"}
1
+ {"version":3,"file":"ConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/config/ConfigBuilder.ts"],"names":[],"mappings":"AAwDA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;gBACgB,QAAQ,EAAE,MAAM;IAoBnC;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAIxB;;;;OAIG;IACI,OAAO,IAAI,MAAM,GAAG,MAAM;IAIjC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IA0BnB;;;;;;;OAOG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG;IAY5C;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IASlC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMhC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAWnC"}
@@ -95,15 +95,23 @@ class ConfigBuilder {
95
95
  const rawFileData = fs.readFileSync(this.path, "utf8");
96
96
  switch (this.type) {
97
97
  case "json":
98
- resultData = JSON.parse(minifyJson(rawFileData));
98
+ try {
99
+ resultData = JSON.parse(minifyJson(rawFileData));
100
+ } catch {
101
+ return {};
102
+ }
99
103
  break;
100
104
  case "yaml":
101
- resultData = YAML.parse(rawFileData);
105
+ try {
106
+ resultData = YAML.parse(rawFileData);
107
+ } catch {
108
+ return {};
109
+ }
102
110
  break;
103
111
  default:
104
112
  throw new Error(`Unknown config type: ${this.type}!`);
105
113
  }
106
- return resultData || {};
114
+ return resultData;
107
115
  }
108
116
  /**
109
117
  * Get a config value from a key.
@@ -160,4 +168,4 @@ class ConfigBuilder {
160
168
  }
161
169
 
162
170
  export { ConfigBuilder as default };
163
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnQnVpbGRlci5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9Db25maWdCdWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBZQU1MIGZyb20gJ3lhbWwnO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IG1pbmlmeUpzb24gZnJvbSAnc3RyaXAtanNvbi1jb21tZW50cyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5jb25zdCBfID0ge1xuICAgIGdldDogKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBjb25zdCB0cmF2ZWwgPSAocmVnZXhwOiBhbnkpID0+XG4gICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLnNwbGl0XG4gICAgICAgICAgICAgICAgLmNhbGwocGF0aCwgcmVnZXhwKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAucmVkdWNlKChyZXMsIGtleSkgPT4gKHJlcyAhPT0gbnVsbCAmJiByZXMgIT09IHVuZGVmaW5lZCA/IHJlc1trZXldIDogcmVzKSwgb2JqKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdHJhdmVsKC9bLFtcXF1dKz8vKSB8fCB0cmF2ZWwoL1ssW1xcXS5dKz8vKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdCA9PT0gb2JqID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0OiAob2JqOiBhbnksIHBhdGg6IGFueSwgdmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0KG9iaikgIT09IG9iaikgcmV0dXJuIG9iajtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhdGgpKSBwYXRoID0gcGF0aC50b1N0cmluZygpLm1hdGNoKC9bXi5bXFxdXSsvZykgfHwgW107XG4gICAgICAgIHBhdGhcbiAgICAgICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGE6IGFueSwgYzogYW55LCBpOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdChhW2NdKSA9PT0gYVtjXVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBhW2NdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChhW2NdID0gTWF0aC5hYnMocGF0aFtpICsgMV0pID4+IDAgPT09IE51bWJlcihwYXRoW2kgKyAxXSkgPyBbXSA6IHt9KSxcbiAgICAgICAgICAgICAgICBvYmpcbiAgICAgICAgICAgIClbcGF0aC5hdCgtMSldID0gdmFsdWU7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICBoYXM6IChvYmo6IGFueSwga2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3Qga2V5UGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcblxuICAgICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICAgIG9iaiAmJlxuICAgICAgICAgICAgICAgIChrZXlQYXJ0cy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgID8gXy5oYXMob2JqW2tleS5zcGxpdCgnLicpWzBdIV0sIGtleVBhcnRzLnNsaWNlKDEpLmpvaW4oJy4nKSlcbiAgICAgICAgICAgICAgICAgICAgOiBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpXG4gICAgICAgICk7XG4gICAgfSxcbiAgICBkZWw6IChvYmo6IGFueSwgcGF0aDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGhBcnJheSA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5tYXRjaCgvKFteWy5cXF1dKSsvZyk7XG5cbiAgICAgICAgcGF0aEFycmF5LnJlZHVjZSgoYWNjOiBhbnksIGtleTogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGVcbiAgICAgICAgICAgIGlmIChpID09PSBwYXRoQXJyYXkubGVuZ3RoIC0gMSkgZGVsZXRlIGFjY1trZXldO1xuICAgICAgICAgICAgcmV0dXJuIGFjY1trZXldO1xuICAgICAgICB9LCBvYmopO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuXG5jb25zdCBUeXBlRGVmYXVsdHMgPSB7XG4gICAganNvbjogJ3t9JyxcbiAgICB5YW1sOiAnICdcbn07XG5cbi8qKlxuICogR2VuZXJhbCBjb25maWctZmlsZSBoYW5kbGVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25maWdCdWlsZGVyIHtcbiAgICBwcml2YXRlIHR5cGU6ICd5YW1sJyB8ICdqc29uJztcbiAgICBwcml2YXRlIHBhdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbmZpZyBjb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXRoU3BsaXR0ZWQgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBwYXRoU3BsaXR0ZWQuZXh0LnNsaWNlKDEpIGFzICd5YW1sJyB8ICdqc29uJztcblxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKFR5cGVEZWZhdWx0cykuc29tZSgoaSkgPT4gaS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnR5cGUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgY29uZmlnIHR5cGUuIChTdXBwb3J0ZWQgdHlwZXM6ICR7T2JqZWN0LmtleXMoVHlwZURlZmF1bHRzKS5qb2luKCcsICcpfSlgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoU3BsaXR0ZWQuZGlyKSkge1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGhTcGxpdHRlZC5kaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgKFR5cGVEZWZhdWx0cyBhcyBhbnkpW3RoaXMudHlwZV0sICd1dGY4Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhdGggPSBmaWxlUGF0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgcGF0aCB0byB0aGUgY29uZmlnIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcGF0aCB0byB0aGUgY29uZmlnIGZpbGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY29uZmlnIGZvcm1hdCAoZWcuIHR5cGUpLlxuICAgICAqXG4gICAgICogQHJldHVybnMgZWl0aGVyIGB5YW1sYCBvciBganNvbmBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHlwZSgpOiAneWFtbCcgfCAnanNvbicge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmlsZURhdGEoZGF0YSA9IHt9KSB7XG4gICAgICAgIGxldCBmaWxlRGF0YSA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgICAgICAgICAgZmlsZURhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3lhbWwnOlxuICAgICAgICAgICAgICAgIGZpbGVEYXRhID0gWUFNTC5zdHJpbmdpZnkoZGF0YSwgeyBpbmRlbnQ6IDIgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb25maWcgdHlwZSAke3RoaXMudHlwZX0hYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMucGF0aCwgZmlsZURhdGEsICd1dGY4Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaWxlRGF0YSgpOiBhbnkge1xuICAgICAgICBsZXQgcmVzdWx0RGF0YSA9IHt9O1xuICAgICAgICBjb25zdCByYXdGaWxlRGF0YSA9IGZzLnJlYWRGaWxlU3luYyh0aGlzLnBhdGgsICd1dGY4Jyk7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgICAgICAgICByZXN1bHREYXRhID0gSlNPTi5wYXJzZShtaW5pZnlKc29uKHJhd0ZpbGVEYXRhKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5YW1sJzpcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBjaGVjayBpbmRlbnQgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgcmVzdWx0RGF0YSA9IFlBTUwucGFyc2UocmF3RmlsZURhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29uZmlnIHR5cGU6ICR7dGhpcy50eXBlfSFgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHREYXRhIHx8IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIGNvbmZpZyB2YWx1ZSBmcm9tIGEga2V5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSAtIHRoZSBjb25maWcga2V5XG4gICAgICogQHBhcmFtIGRlZmF1bHRzIC0gdGhlIGRlZmF1bHQgdmFsdWUsIG9wdGlvbmFsXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgY29uZmlnIHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZywgZGVmYXVsdHM/OiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gXy5nZXQoZGF0YSwga2V5KTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkZWZhdWx0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfLnNldChkYXRhLCBrZXksIGRlZmF1bHRzKTtcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsZURhdGEobmV3RGF0YSk7XG4gICAgICAgICAgICByZXN1bHQgPSBkZWZhdWx0cztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIGtleSAtIHZhbHVlIHBhaXIgaW4gY29uZmlnLlxuICAgICAqXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgd2FzIHNldCBzdWNjZXNzZnVsbHlcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldEZpbGVEYXRhKCk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBfLnNldChkYXRhLCBrZXksIHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRGaWxlRGF0YShuZXdEYXRhKTtcblxuICAgICAgICAvLyBUT0RPXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGNvbmZpZyB2YWx1ZSBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IC0gdGhlIGNvbmZpZyBrZXlcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjb25maWcgY29udGFpbnMgdGhhdCBrZXlcbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldEZpbGVEYXRhKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IF8uaGFzKGRhdGEsIGtleSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGEgY29uZmlnIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSAtIHRoZSBjb25maWcga2V5XG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZGVsZXRpb24gd2FzIHN1Y2Nlc3NmdWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldEZpbGVEYXRhKCk7XG5cbiAgICAgICAgLy8gSXQgbXV0YXRlcyB0aGUgb2JqZWN0LCB3ZVxuICAgICAgICAvLyBkb24ndCBuZWVkIHRvIGRlZmluZSBhIG5ld1xuICAgICAgICAvLyB2YXJpYWJsZS5cbiAgICAgICAgY29uc3QgaXNTdWNjZXNzZnVsID0gXy5kZWwoZGF0YSwga2V5KTtcblxuICAgICAgICB0aGlzLnNldEZpbGVEYXRhKGRhdGEpO1xuICAgICAgICByZXR1cm4gaXNTdWNjZXNzZnVsO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBLE1BQU0sQ0FBSSxHQUFBO0FBQUEsRUFDTixHQUFLLEVBQUEsQ0FBQyxHQUFVQSxFQUFBQSxLQUFBQSxFQUFjLGVBQWUsS0FBYyxDQUFBLEtBQUE7QUFDdkQsSUFBTSxNQUFBLE1BQUEsR0FBUyxDQUFDLE1BQUEsS0FDWixNQUFPLENBQUEs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
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnQnVpbGRlci5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9Db25maWdCdWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBZQU1MIGZyb20gJ3lhbWwnO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IG1pbmlmeUpzb24gZnJvbSAnc3RyaXAtanNvbi1jb21tZW50cyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5jb25zdCBfID0ge1xuICAgIGdldDogKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBjb25zdCB0cmF2ZWwgPSAocmVnZXhwOiBhbnkpID0+XG4gICAgICAgICAgICBTdHJpbmcucHJvdG90eXBlLnNwbGl0XG4gICAgICAgICAgICAgICAgLmNhbGwocGF0aCwgcmVnZXhwKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAucmVkdWNlKChyZXMsIGtleSkgPT4gKHJlcyAhPT0gbnVsbCAmJiByZXMgIT09IHVuZGVmaW5lZCA/IHJlc1trZXldIDogcmVzKSwgb2JqKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdHJhdmVsKC9bLFtcXF1dKz8vKSB8fCB0cmF2ZWwoL1ssW1xcXS5dKz8vKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdCA9PT0gb2JqID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0OiAob2JqOiBhbnksIHBhdGg6IGFueSwgdmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0KG9iaikgIT09IG9iaikgcmV0dXJuIG9iajtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhdGgpKSBwYXRoID0gcGF0aC50b1N0cmluZygpLm1hdGNoKC9bXi5bXFxdXSsvZykgfHwgW107XG4gICAgICAgIHBhdGhcbiAgICAgICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGE6IGFueSwgYzogYW55LCBpOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdChhW2NdKSA9PT0gYVtjXVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBhW2NdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChhW2NdID0gTWF0aC5hYnMocGF0aFtpICsgMV0pID4+IDAgPT09IE51bWJlcihwYXRoW2kgKyAxXSkgPyBbXSA6IHt9KSxcbiAgICAgICAgICAgICAgICBvYmpcbiAgICAgICAgICAgIClbcGF0aC5hdCgtMSldID0gdmFsdWU7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICBoYXM6IChvYmo6IGFueSwga2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3Qga2V5UGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcblxuICAgICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICAgIG9iaiAmJlxuICAgICAgICAgICAgICAgIChrZXlQYXJ0cy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICAgID8gXy5oYXMob2JqW2tleS5zcGxpdCgnLicpWzBdIV0sIGtleVBhcnRzLnNsaWNlKDEpLmpvaW4oJy4nKSlcbiAgICAgICAgICAgICAgICAgICAgOiBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpXG4gICAgICAgICk7XG4gICAgfSxcbiAgICBkZWw6IChvYmo6IGFueSwgcGF0aDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGhBcnJheSA9IEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5tYXRjaCgvKFteWy5cXF1dKSsvZyk7XG5cbiAgICAgICAgcGF0aEFycmF5LnJlZHVjZSgoYWNjOiBhbnksIGtleTogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGVcbiAgICAgICAgICAgIGlmIChpID09PSBwYXRoQXJyYXkubGVuZ3RoIC0gMSkgZGVsZXRlIGFjY1trZXldO1xuICAgICAgICAgICAgcmV0dXJuIGFjY1trZXldO1xuICAgICAgICB9LCBvYmopO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuXG5jb25zdCBUeXBlRGVmYXVsdHMgPSB7XG4gICAganNvbjogJ3t9JyxcbiAgICB5YW1sOiAnICdcbn07XG5cbi8qKlxuICogR2VuZXJhbCBjb25maWctZmlsZSBoYW5kbGVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25maWdCdWlsZGVyIHtcbiAgICBwcml2YXRlIHR5cGU6ICd5YW1sJyB8ICdqc29uJztcbiAgICBwcml2YXRlIHBhdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbmZpZyBjb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXRoU3BsaXR0ZWQgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBwYXRoU3BsaXR0ZWQuZXh0LnNsaWNlKDEpIGFzICd5YW1sJyB8ICdqc29uJztcblxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKFR5cGVEZWZhdWx0cykuc29tZSgoaSkgPT4gaS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnR5cGUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgY29uZmlnIHR5cGUuIChTdXBwb3J0ZWQgdHlwZXM6ICR7T2JqZWN0LmtleXMoVHlwZURlZmF1bHRzKS5qb2luKCcsICcpfSlgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoU3BsaXR0ZWQuZGlyKSkge1xuICAgICAgICAgICAgZnMubWtkaXJTeW5jKHBhdGhTcGxpdHRlZC5kaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgKFR5cGVEZWZhdWx0cyBhcyBhbnkpW3RoaXMudHlwZV0sICd1dGY4Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhdGggPSBmaWxlUGF0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgcGF0aCB0byB0aGUgY29uZmlnIGZpbGUgb24gdGhlIGZpbGVzeXN0ZW0uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcGF0aCB0byB0aGUgY29uZmlnIGZpbGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY29uZmlnIGZvcm1hdCAoZWcuIHR5cGUpLlxuICAgICAqXG4gICAgICogQHJldHVybnMgZWl0aGVyIGB5YW1sYCBvciBganNvbmBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHlwZSgpOiAneWFtbCcgfCAnanNvbicge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmlsZURhdGEoZGF0YSA9IHt9KSB7XG4gICAgICAgIGxldCBmaWxlRGF0YSA9ICcnO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgICAgICAgICAgZmlsZURhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3lhbWwnOlxuICAgICAgICAgICAgICAgIGZpbGVEYXRhID0gWUFNTC5zdHJpbmdpZnkoZGF0YSwgeyBpbmRlbnQ6IDIgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb25maWcgdHlwZSAke3RoaXMudHlwZX0hYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMucGF0aCwgZmlsZURhdGEsICd1dGY4Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaWxlRGF0YSgpOiBhbnkge1xuICAgICAgICBsZXQgcmVzdWx0RGF0YSA9IHt9O1xuICAgICAgICBjb25zdCByYXdGaWxlRGF0YSA9IGZzLnJlYWRGaWxlU3luYyh0aGlzLnBhdGgsICd1dGY4Jyk7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHREYXRhID0gSlNPTi5wYXJzZShtaW5pZnlKc29uKHJhd0ZpbGVEYXRhKSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5YW1sJzpcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBjaGVjayBpbmRlbnQgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdERhdGEgPSBZQU1MLnBhcnNlKHJhd0ZpbGVEYXRhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbmZpZyB0eXBlOiAke3RoaXMudHlwZX0hYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0RGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBjb25maWcgdmFsdWUgZnJvbSBhIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSB0aGUgY29uZmlnIGtleVxuICAgICAqIEBwYXJhbSBkZWZhdWx0cyAtIHRoZSBkZWZhdWx0IHZhbHVlLCBvcHRpb25hbFxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGNvbmZpZyB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcsIGRlZmF1bHRzPzogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RmlsZURhdGEoKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IF8uZ2V0KGRhdGEsIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZGVmYXVsdHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gXy5zZXQoZGF0YSwga2V5LCBkZWZhdWx0cyk7XG4gICAgICAgICAgICB0aGlzLnNldEZpbGVEYXRhKG5ld0RhdGEpO1xuICAgICAgICAgICAgcmVzdWx0ID0gZGVmYXVsdHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBrZXkgLSB2YWx1ZSBwYWlyIGluIGNvbmZpZy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIHdhcyBzZXQgc3VjY2Vzc2Z1bGx5XG4gICAgICovXG4gICAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuICAgICAgICBjb25zdCBuZXdEYXRhID0gXy5zZXQoZGF0YSwga2V5LCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2V0RmlsZURhdGEobmV3RGF0YSk7XG5cbiAgICAgICAgLy8gVE9ET1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBjb25maWcgdmFsdWUgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleSAtIHRoZSBjb25maWcga2V5XG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZmlnIGNvbnRhaW5zIHRoYXQga2V5XG4gICAgICovXG4gICAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBfLmhhcyhkYXRhLCBrZXkpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIGNvbmZpZyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSB0aGUgY29uZmlnIGtleVxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGRlbGV0aW9uIHdhcyBzdWNjZXNzZnVsXG4gICAgICovXG4gICAgcHVibGljIGRlbChrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRGaWxlRGF0YSgpO1xuXG4gICAgICAgIC8vIEl0IG11dGF0ZXMgdGhlIG9iamVjdCwgd2VcbiAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byBkZWZpbmUgYSBuZXdcbiAgICAgICAgLy8gdmFyaWFibGUuXG4gICAgICAgIGNvbnN0IGlzU3VjY2Vzc2Z1bCA9IF8uZGVsKGRhdGEsIGtleSk7XG5cbiAgICAgICAgdGhpcy5zZXRGaWxlRGF0YShkYXRhKTtcbiAgICAgICAg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