taon 18.0.15 → 18.0.18

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 (300) hide show
  1. package/README.md +6 -3
  2. package/assets/shared/shared_folder_info.txt +1 -1
  3. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  4. package/browser/esm2022/lib/base-classes/base.mjs +1 -3
  5. package/browser/esm2022/lib/create-context.mjs +20 -1
  6. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  7. package/browser/esm2022/lib/endpoint-context.mjs +10 -136
  8. package/browser/esm2022/lib/entity-process.mjs +3 -3
  9. package/browser/esm2022/lib/helpers/class-helpers.mjs +2 -2
  10. package/browser/esm2022/lib/index.mjs +1 -14
  11. package/browser/esm2022/lib/inject.mjs +4 -38
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/esm2022/lib/realtime/realtime-client.mjs +32 -20
  14. package/browser/esm2022/lib/realtime/realtime-core.mjs +15 -7
  15. package/browser/esm2022/lib/realtime/realtime-server.mjs +34 -16
  16. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  17. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  18. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  19. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  20. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  21. package/browser/esm2022/lib/realtime/realtime.models.mjs +1 -1
  22. package/browser/esm2022/lib/symbols.mjs +45 -38
  23. package/browser/fesm2022/taon.mjs +557 -559
  24. package/browser/fesm2022/taon.mjs.map +1 -1
  25. package/browser/lib/base-classes/base-context.d.ts +4 -0
  26. package/browser/lib/base-classes/base.d.ts +4 -2
  27. package/browser/lib/create-context.d.ts +13 -0
  28. package/browser/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  29. package/browser/lib/helpers/class-helpers.d.ts +1 -1
  30. package/browser/lib/index.d.ts +12 -13
  31. package/browser/lib/inject.d.ts +1 -8
  32. package/browser/lib/models.d.ts +17 -9
  33. package/browser/lib/realtime/realtime-client.d.ts +8 -2
  34. package/browser/lib/realtime/realtime-core.d.ts +6 -6
  35. package/browser/lib/realtime/realtime-server.d.ts +9 -4
  36. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  37. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  38. package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  39. package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  40. package/browser/lib/realtime/realtime.models.d.ts +1 -0
  41. package/browser/lib/symbols.d.ts +30 -36
  42. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  43. package/client/esm2022/lib/base-classes/base.mjs +1 -3
  44. package/client/esm2022/lib/create-context.mjs +20 -1
  45. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  46. package/client/esm2022/lib/endpoint-context.mjs +10 -136
  47. package/client/esm2022/lib/entity-process.mjs +3 -3
  48. package/client/esm2022/lib/helpers/class-helpers.mjs +2 -2
  49. package/client/esm2022/lib/index.mjs +1 -14
  50. package/client/esm2022/lib/inject.mjs +4 -38
  51. package/client/esm2022/lib/models.mjs +1 -1
  52. package/client/esm2022/lib/realtime/realtime-client.mjs +32 -20
  53. package/client/esm2022/lib/realtime/realtime-core.mjs +15 -7
  54. package/client/esm2022/lib/realtime/realtime-server.mjs +34 -16
  55. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  56. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  57. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  58. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  59. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  60. package/client/esm2022/lib/realtime/realtime.models.mjs +1 -1
  61. package/client/esm2022/lib/symbols.mjs +45 -38
  62. package/client/fesm2022/taon.mjs +557 -559
  63. package/client/fesm2022/taon.mjs.map +1 -1
  64. package/client/lib/base-classes/base-context.d.ts +4 -0
  65. package/client/lib/base-classes/base.d.ts +4 -2
  66. package/client/lib/create-context.d.ts +13 -0
  67. package/client/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  68. package/client/lib/helpers/class-helpers.d.ts +1 -1
  69. package/client/lib/index.d.ts +12 -13
  70. package/client/lib/inject.d.ts +1 -8
  71. package/client/lib/models.d.ts +17 -9
  72. package/client/lib/realtime/realtime-client.d.ts +8 -2
  73. package/client/lib/realtime/realtime-core.d.ts +6 -6
  74. package/client/lib/realtime/realtime-server.d.ts +9 -4
  75. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  76. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  77. package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  78. package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  79. package/client/lib/realtime/realtime.models.d.ts +1 -0
  80. package/client/lib/symbols.d.ts +30 -36
  81. package/lib/base-classes/base-context.d.ts +4 -0
  82. package/lib/base-classes/base-subscriber-for-entity.js +38 -19
  83. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
  84. package/lib/base-classes/base.d.ts +4 -2
  85. package/lib/base-classes/base.js +0 -2
  86. package/lib/base-classes/base.js.map +1 -1
  87. package/lib/create-context.d.ts +13 -0
  88. package/lib/create-context.js +19 -8
  89. package/lib/create-context.js.map +1 -1
  90. package/lib/decorators/classes/subscriber-decorator.d.ts +1 -1
  91. package/lib/decorators/classes/subscriber-decorator.js +7 -58
  92. package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
  93. package/lib/endpoint-context.js +33 -9
  94. package/lib/endpoint-context.js.map +1 -1
  95. package/lib/entity-process.js +2 -2
  96. package/lib/entity-process.js.map +1 -1
  97. package/lib/formly/formly-repeat-component.js +1 -1
  98. package/lib/formly/formly-repeat-component.js.map +1 -1
  99. package/lib/helpers/class-helpers.d.ts +1 -1
  100. package/lib/helpers/class-helpers.js +2 -2
  101. package/lib/helpers/class-helpers.js.map +1 -1
  102. package/lib/index._auto-generated_.js +6 -0
  103. package/lib/index._auto-generated_.js.map +1 -0
  104. package/lib/index.d.ts +12 -13
  105. package/lib/index.js +1 -17
  106. package/lib/index.js.map +1 -1
  107. package/lib/inject.d.ts +3 -7
  108. package/lib/inject.js +57 -42
  109. package/lib/inject.js.map +1 -1
  110. package/lib/models.d.ts +17 -9
  111. package/lib/models.js.map +1 -1
  112. package/lib/realtime/realtime-client.d.ts +8 -2
  113. package/lib/realtime/realtime-client.js +36 -21
  114. package/lib/realtime/realtime-client.js.map +1 -1
  115. package/lib/realtime/realtime-core.d.ts +6 -6
  116. package/lib/realtime/realtime-core.js +17 -6
  117. package/lib/realtime/realtime-core.js.map +1 -1
  118. package/lib/realtime/realtime-server.d.ts +9 -4
  119. package/lib/realtime/realtime-server.js +98 -76
  120. package/lib/realtime/realtime-server.js.map +1 -1
  121. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -11
  122. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +301 -40
  123. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -1
  124. package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  125. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +358 -14
  126. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -1
  127. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +3 -3
  128. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +10 -14
  129. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -1
  130. package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  131. package/lib/realtime/realtime-strategy/realtime-strategy.js +9 -2
  132. package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -1
  133. package/lib/realtime/realtime-subs-manager.js +10 -8
  134. package/lib/realtime/realtime-subs-manager.js.map +1 -1
  135. package/lib/realtime/realtime.models.d.ts +1 -0
  136. package/lib/symbols.d.ts +30 -36
  137. package/lib/symbols.js +63 -39
  138. package/lib/symbols.js.map +1 -1
  139. package/lib/ui/directives/index.js +2 -2
  140. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +2 -2
  141. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +2 -2
  142. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +2 -2
  143. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  144. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  145. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  146. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  147. package/lib/ui/taon-progress-bar/index.js +2 -2
  148. package/lib/ui/taon-session-passcode/index.js +2 -2
  149. package/package.json +10 -8
  150. package/tmp-environment.json +36 -31
  151. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  152. package/websql/esm2022/lib/base-classes/base.mjs +1 -3
  153. package/websql/esm2022/lib/create-context.mjs +20 -1
  154. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  155. package/websql/esm2022/lib/endpoint-context.mjs +16 -18
  156. package/websql/esm2022/lib/entity-process.mjs +3 -3
  157. package/websql/esm2022/lib/helpers/class-helpers.mjs +2 -2
  158. package/websql/esm2022/lib/index.mjs +1 -14
  159. package/websql/esm2022/lib/inject.mjs +4 -38
  160. package/websql/esm2022/lib/models.mjs +1 -1
  161. package/websql/esm2022/lib/realtime/realtime-client.mjs +32 -20
  162. package/websql/esm2022/lib/realtime/realtime-core.mjs +15 -7
  163. package/websql/esm2022/lib/realtime/realtime-server.mjs +90 -72
  164. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +200 -30
  165. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  166. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  167. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  168. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  169. package/websql/esm2022/lib/realtime/realtime.models.mjs +1 -1
  170. package/websql/esm2022/lib/symbols.mjs +45 -38
  171. package/websql/fesm2022/taon.mjs +669 -687
  172. package/websql/fesm2022/taon.mjs.map +1 -1
  173. package/websql/lib/base-classes/base-context.d.ts +4 -0
  174. package/websql/lib/base-classes/base.d.ts +4 -2
  175. package/websql/lib/create-context.d.ts +13 -0
  176. package/websql/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  177. package/websql/lib/helpers/class-helpers.d.ts +1 -1
  178. package/websql/lib/index.d.ts +12 -13
  179. package/websql/lib/inject.d.ts +1 -8
  180. package/websql/lib/models.d.ts +17 -9
  181. package/websql/lib/realtime/realtime-client.d.ts +8 -2
  182. package/websql/lib/realtime/realtime-core.d.ts +6 -6
  183. package/websql/lib/realtime/realtime-server.d.ts +9 -4
  184. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  185. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  186. package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  187. package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  188. package/websql/lib/realtime/realtime.models.d.ts +1 -0
  189. package/websql/lib/symbols.d.ts +30 -36
  190. package/browser/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  191. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  192. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  193. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  194. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  195. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  196. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  197. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  198. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  199. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  200. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  201. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  202. package/browser/lib/base-classes/base-subscriber.d.ts +0 -5
  203. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  204. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  205. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  206. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  207. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  208. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  209. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  210. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  211. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  212. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  213. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  214. package/client/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  215. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  216. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  217. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  218. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  219. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  220. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  221. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  222. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  223. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  224. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  225. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  226. package/client/lib/base-classes/base-subscriber.d.ts +0 -5
  227. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  228. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  229. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  230. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  231. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  232. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  233. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  234. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  235. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  236. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  237. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  238. package/lib/base-classes/base-subscriber.d.ts +0 -4
  239. package/lib/base-classes/base-subscriber.js +0 -25
  240. package/lib/base-classes/base-subscriber.js.map +0 -1
  241. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +0 -5
  242. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +0 -1
  243. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  244. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +0 -139
  245. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +0 -1
  246. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -16
  247. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +0 -68
  248. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +0 -1
  249. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -10
  250. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +0 -56
  251. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +0 -1
  252. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -10
  253. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +0 -50
  254. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +0 -1
  255. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -13
  256. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +0 -3
  257. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +0 -1
  258. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -2
  259. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +0 -6
  260. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +0 -1
  261. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -16
  262. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +0 -54
  263. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +0 -1
  264. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -17
  265. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +0 -52
  266. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +0 -1
  267. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -11
  268. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +0 -39
  269. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +0 -1
  270. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -13
  271. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +0 -46
  272. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +0 -1
  273. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -11
  274. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +0 -3
  275. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +0 -1
  276. package/websql/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  277. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  278. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  279. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  280. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  281. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  282. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  283. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  284. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  285. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  286. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  287. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  288. package/websql/lib/base-classes/base-subscriber.d.ts +0 -5
  289. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  290. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  291. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  292. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  293. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  294. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  295. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  296. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  297. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  298. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  299. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  300. /package/lib/{realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts → index._auto-generated_.d.ts} +0 -0
@@ -148,7 +148,7 @@ export class EntityProcess {
148
148
  const fun = getTransformFunction(ClassHelpers.getClassFnFromObject(value));
149
149
  if (_.isFunction(fun)) {
150
150
  _.set(toSend, `${lodashPath}.${browserKey}`, value[browserKey]);
151
- const indexProp = ClassHelpers.getUniquKey(value);
151
+ const indexProp = ClassHelpers.getUniqueKey(value);
152
152
  _.set(toSend, `${lodashPath}.${indexProp}`, value[indexProp]);
153
153
  }
154
154
  else {
@@ -173,7 +173,7 @@ export class EntityProcess {
173
173
  toSend[prop] = {
174
174
  [browserKey]: v[browserKey],
175
175
  };
176
- const indexProp = ClassHelpers.getUniquKey(v);
176
+ const indexProp = ClassHelpers.getUniqueKey(v);
177
177
  toSend[prop][indexProp] = this.data[prop][indexProp];
178
178
  for (const key in v) {
179
179
  if (_.isObject(v) &&
@@ -204,4 +204,4 @@ export class EntityProcess {
204
204
  }
205
205
  ;
206
206
  ({}); // @--end-of-file-for-module=taon lib/entity-process.ts
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZW50aXR5LXByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLMUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtJQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPO0lBQ1QsQ0FBQztJQUtELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxNQUFNLFNBQVMsR0FBRyxPQUFPO1NBQ3RCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNQLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxNQUFNLENB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LE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0NBQzdCLENBQUM7Z0NBQ0gsQ0FBQzs0QkFDSCxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDbkIsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBR0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IHdhbGsgfSBmcm9tICdsb2Rhc2gtd2Fsay1vYmplY3Qvd2Vic3FsJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEpTT04xMCB9IGZyb20gJ2pzb24xMC93ZWJzcWwnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJ25nMi1yZXN0L3dlYnNxbCc7XG5pbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNmb3JtRnVuY3Rpb24gPSAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICBpZiAoIXRhcmdldCkge1xuICAgIHJldHVybjtcbiAgfVxuXG5cblxuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBjb25zdCBjb25maWdzID0gQ2xhc3NIZWxwZXJzLmdldENvbnRyb2xsZXJDb25maWdzKHRhcmdldCk7XG5cbiAgY29uc3QgZnVuY3Rpb25zID0gY29uZmlnc1xuICAgIC5tYXAoYyA9PiB7XG4gICAgICBpZiAoXy5pc0Z1bmN0aW9uKGMuYnJvd3NlclRyYW5zZm9ybUZuKSkge1xuICAgICAgICByZXR1cm4gYy5icm93c2VyVHJhbnNmb3JtRm47XG4gICAgICB9XG4gICAgfSlcbiAgICAuZmlsdGVyKGYgPT4gXy5pc0Z1bmN0aW9uKGYpKTtcbiAgcmV0dXJuIGZ1bmN0aW9ucy5sZW5ndGggPT09IDBcbiAgICA/IHZvaWQgMFxuICAgIDogZnVuY3Rpb24gKGVudGl0eSkge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IGZ1bmN0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtRnVuID0gZnVuY3Rpb25zW2luZGV4XTtcbiAgICAgICAgICB0cmFuc2Zvcm1GdW4oZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50aXR5O1xuICAgICAgfTtcbn07XG5cblxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBzaW5nbGVUcmFuc2Zvcm0gPSAoanNvbjogYW55KSA9PiB7XG4gIGxldCBwdGFyZ2V0ID0gQ2xhc3NIZWxwZXJzLmdldENsYXNzRm5Gcm9tT2JqZWN0KGpzb24pO1xuICBsZXQgcGJyb3dzZXJUcmFuc2Zvcm1GbiA9IGdldFRyYW5zZm9ybUZ1bmN0aW9uKHB0YXJnZXQpO1xuICBpZiAocGJyb3dzZXJUcmFuc2Zvcm1Gbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gcGJyb3dzZXJUcmFuc2Zvcm1Gbihqc29uKTtcbiAgICBpZiAoIV8uaXNPYmplY3QobmV3VmFsdWUpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUGxlYXNlIHJldHVybiBvYmplY3QgaW4gdHJhbnNmb3JtIGZ1bmN0aW9uIGZvciBjbGFzczogYCArXG4gICAgICAgICAgYCR7Q2xhc3NIZWxwZXJzLmdldE5hbWUoanNvbil9YCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGpzb24gPSBuZXdWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGpzb247XG59O1xuXG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9jZXNzIHtcblxuICBzdGF0aWMgYXN5bmMgaW5pdChyZXN1bHQ6IGFueSwgcmVzcG9uc2U6IFJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBFbnRpdHlQcm9jZXNzKHJlc3VsdCwgcmVzcG9uc2UpLnJ1bigpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBEYXRhIHRvIHNlbmRcbiAgICovXG4gIGRhdGE6IGFueTtcblxuICAvKipcbiAgICogU2F5IHllcyB0bzpcbiAgICogLSBjaXJjdXJhbCBvYmplY3RcbiAgICogLSB0cmFuc2Zvcm0gYnJvd3NlciBmbiBpbiBkZWNvcmF0b3JcbiAgICovXG4gIHByaXZhdGUgYWR2YW5jZWRNYW5pcHVsYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBlbnRpdHlNYXBwaW5nOiBhbnk7XG4gIHByaXZhdGUgY2lyY3VyYWwgPSBbXTtcblxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogRGF0YSBmcm9tIGJhY2tlbmRcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlc3VsdDogYW55LFxuICAgIHByaXZhdGUgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICApIHt9XG5cblxuXG4gIHByaXZhdGUgY2hlY2tBZHZhbmNlZE1hbml1cHVsYXRpb24oKSB7XG4gICAgaWYgKF8uaXNGdW5jdGlvbih0aGlzLnJlc3VsdCkpIHtcbiAgICAgIHRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLnJlc3VsdCgpO1xuICAgIH1cbiAgfVxuXG5cblxuICBwdWJsaWMgYXN5bmMgcnVuKCkge1xuICAgIHRoaXMuY2hlY2tBZHZhbmNlZE1hbml1cHVsYXRpb24oKTtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLnJlc3VsdDtcblxuICAgIGlmIChfLmlzT2JqZWN0KHRoaXMucmVzdWx0KSkge1xuICAgICAgaWYgKHRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24pIHtcbiAgICAgICAgdGhpcy5hcHBsYXlUcmFuc2Zvcm1GbigpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEhlYWRlcnMoKTtcbiAgICB9XG4gICAgdGhpcy5zZW5kKCk7XG4gIH1cblxuXG5cbiAgYXBwbGF5VHJhbnNmb3JtRm4oKSB7XG4gICAgaWYgKF8uaXNPYmplY3QodGhpcy5kYXRhKSAmJiAhXy5pc0FycmF5KHRoaXMuZGF0YSkpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHNpbmdsZVRyYW5zZm9ybSh0aGlzLmRhdGEpO1xuICAgIH1cbiAgICBjb25zdCB7IGluY2x1ZGUgfSA9IHsgaW5jbHVkZTogW10gfTtcbiAgICB3YWxrLk9iamVjdChcbiAgICAgIHRoaXMuZGF0YSxcbiAgICAgICh2YWx1ZSwgbG9kYXNoUGF0aCwgY2hhbmdlVmFsdWUsIHsgc2tpcE9iamVjdCwgaXNDaXJjdXJhbCB9KSA9PiB7XG5cbiAgICAgICAgaWYgKCFpc0NpcmN1cmFsKSB7XG4gICAgICAgICAgaWYgKCFfLmlzQXJyYXkodmFsdWUpICYmIF8uaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICBjaGFuZ2VWYWx1ZShzaW5nbGVUcmFuc2Zvcm0odmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNoZWNrQ2lyY3VyYWw6IHRydWUsIGJyZWFkdGhXYWxrOiB0cnVlLCBpbmNsdWRlIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHsgY2lyY3MgfSA9IHdhbGsuT2JqZWN0KHRoaXMuZGF0YSwgdm9pZCAwLCB7XG4gICAgICBjaGVja0NpcmN1cmFsOiB0cnVlLFxuICAgICAgYnJlYWR0aFdhbGs6IHRydWUsXG4gICAgICBpbmNsdWRlLFxuICAgIH0pO1xuICAgIHRoaXMuY2lyY3VyYWwgPSBjaXJjcztcbiAgfVxuXG5cblxuICBzZXRIZWFkZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgaW5jbHVkZSB9ID0geyBpbmNsdWRlOiBbXSB9O1xuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUodGhpcy5kYXRhKTtcbiAgICBjb25zdCBkb05vdGhpbmcgPVxuICAgICAgXy5pc05pbCh0aGlzLmRhdGEpIHx8XG4gICAgICBbXG4gICAgICAgICdPYmplY3QnLFxuICAgICAgICAnJyxcblxuICAgICAgXS5pbmNsdWRlcyhjbGFzc05hbWUpO1xuXG4gICAgaWYgKCFkb05vdGhpbmcpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWQgPSBKU09OMTAuY2xlYW5lZCh0aGlzLmRhdGEsIHZvaWQgMCwge1xuICAgICAgICBicmVhZHRoV2FsazogdHJ1ZSxcbiAgICAgICAgaW5jbHVkZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbnRpdHlNYXBwaW5nID0gTWFwcGluZy5kZWNvZGUoY2xlYW5lZCwgIXRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24pO1xuXG4gICAgICB0aGlzLnJlc3BvbnNlLnNldChcbiAgICAgICAgU3ltYm9scy5vbGQuTUFQUElOR19DT05GSUdfSEVBREVSLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmVudGl0eU1hcHBpbmcpLFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2Uuc2V0KFxuICAgICAgICAgIFN5bWJvbHMub2xkLkNJUkNVUkFMX09CSkVDVFNfTUFQX0JPRFksXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5jaXJjdXJhbCksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbmQoKSB7XG4gICAgaWYgKCFfLmlzT2JqZWN0KHRoaXMuZGF0YSkpIHtcbiAgICAgIGlmIChfLmlzTnVtYmVyKHRoaXMuZGF0YSkpIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZS5zZW5kKHRoaXMuZGF0YS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2Uuc2VuZCh0aGlzLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5hZHZhbmNlZE1hbmlwdWxhdGlvbikge1xuICAgICAgY29uc3QgYnJvd3NlcktleSA9IGNvbmZpZy5mb2xkZXIuYnJvd3NlcjtcbiAgICAgIGxldCB0b1NlbmQgPSBfLmlzQXJyYXkodGhpcy5kYXRhKSA/IFtdIDoge307XG5cbiAgICAgIGNvbnN0IHsgaW5jbHVkZSA9IFtdLCBleGNsdWRlID0gW10gfSA9IHsgaW5jbHVkZTogW10sIGV4Y2x1ZGU6IFtdIH07XG5cbiAgICAgIHdhbGsuT2JqZWN0KFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgICh2YWx1ZSwgbG9kYXNoUGF0aCwgY2hhbmdlVkFsdWUsIHsgaXNDaXJjdXJhbCwgc2tpcE9iamVjdCB9KSA9PiB7XG5cbiAgICAgICAgICBpZiAoaXNDaXJjdXJhbCkge1xuICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBsb2Rhc2hQYXRoLCBudWxsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZnVuID0gZ2V0VHJhbnNmb3JtRnVuY3Rpb24oXG4gICAgICAgICAgICAgIENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdCh2YWx1ZSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGZ1bikpIHtcbiAgICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBgJHtsb2Rhc2hQYXRofS4ke2Jyb3dzZXJLZXl9YCwgdmFsdWVbYnJvd3NlcktleV0pO1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFByb3AgPSBDbGFzc0hlbHBlcnMuZ2V0VW5pcXVLZXkodmFsdWUpO1xuICAgICAgICAgICAgICBfLnNldCh0b1NlbmQsIGAke2xvZGFzaFBhdGh9LiR7aW5kZXhQcm9wfWAsIHZhbHVlW2luZGV4UHJvcF0pO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBfLnNldCh0b1NlbmQsIGxvZGFzaFBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2hlY2tDaXJjdXJhbDogdHJ1ZSwgYnJlYWR0aFdhbGs6IHRydWUsIGluY2x1ZGUgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghXy5pc0FycmF5KHRoaXMuZGF0YSkpIHtcbiAgICAgICAgbGV0IGZ1blBhcmVudCA9IGdldFRyYW5zZm9ybUZ1bmN0aW9uKFxuICAgICAgICAgIENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdCh0aGlzLmRhdGEpLFxuICAgICAgICApO1xuXG5cblxuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGZ1blBhcmVudCkpIHtcbiAgICAgICAgICB0b1NlbmQgPSB7XG4gICAgICAgICAgICBbYnJvd3NlcktleV06IHRvU2VuZFticm93c2VyS2V5XSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YSkuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgICBpZiAocHJvcCAhPT0gYnJvd3NlcktleSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZGF0YVtwcm9wXTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAoaW5jbHVkZS5sZW5ndGggPiAwICYmICFpbmNsdWRlLmluY2x1ZGVzKHByb3ApKSB8fFxuICAgICAgICAgICAgICAgIChleGNsdWRlLmxlbmd0aCA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhwcm9wKSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBDbGFzc0hlbHBlcnMuaXNDb250ZXh0Q2xhc3NPYmplY3QodikgJiZcbiAgICAgICAgICAgICAgICBfLmlzRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICBnZXRUcmFuc2Zvcm1GdW5jdGlvbihDbGFzc0hlbHBlcnMuZ2V0Q2xhc3NGbkZyb21PYmplY3QodikpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdG9TZW5kW3Byb3BdID0ge1xuICAgICAgICAgICAgICAgICAgW2Jyb3dzZXJLZXldOiB2W2Jyb3dzZXJLZXldLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhQcm9wID0gQ2xhc3NIZWxwZXJzLmdldFVuaXF1S2V5KHYpO1xuICAgICAgICAgICAgICAgIHRvU2VuZFtwcm9wXVtpbmRleFByb3BdID0gdGhpcy5kYXRhW3Byb3BdW2luZGV4UHJvcF07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdikge1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBfLmlzT2JqZWN0KHYpICYmXG4gICAgICAgICAgICAgICAgICAgIHYuaGFzT3duUHJvcGVydHkoa2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAhW2luZGV4UHJvcCwgY29uZmlnLmZvbGRlci5icm93c2VyXS5pbmNsdWRlcyhrZXkpICYmXG4gICAgICAgICAgICAgICAgICAgIChfLmlzU3RyaW5nKHZba2V5XSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBfLmlzTnVtYmVyKHZba2V5XSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBfLmlzRGF0ZSh2W2tleV0pIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXy5pc051bGwodltrZXldKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIF8uaXNCb29sZWFuKHZba2V5XSkpXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdG9TZW5kW3Byb3BdW2tleV0gPSB2W2tleV07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvU2VuZFtwcm9wXSA9IHY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG5cbiAgICAgIHRoaXMucmVzcG9uc2UuanNvbih0b1NlbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3BvbnNlLmpzb24odGhpcy5kYXRhKTtcbiAgICB9XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZW50aXR5LXByb2Nlc3MudHMiXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZW50aXR5LXByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLMUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtJQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPO0lBQ1QsQ0FBQztJQUtELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxNQUFNLFNBQVMsR0FBRyxPQUFPO1NBQ3RCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNQLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxNQUFNLENB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LE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0NBQzdCLENBQUM7Z0NBQ0gsQ0FBQzs0QkFDSCxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDbkIsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBR0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IHdhbGsgfSBmcm9tICdsb2Rhc2gtd2Fsay1vYmplY3Qvd2Vic3FsJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEpTT04xMCB9IGZyb20gJ2pzb24xMC93ZWJzcWwnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJ25nMi1yZXN0L3dlYnNxbCc7XG5pbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNmb3JtRnVuY3Rpb24gPSAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICBpZiAoIXRhcmdldCkge1xuICAgIHJldHVybjtcbiAgfVxuXG5cblxuXG4gIGlmICghdGFyZ2V0KSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBjb25zdCBjb25maWdzID0gQ2xhc3NIZWxwZXJzLmdldENvbnRyb2xsZXJDb25maWdzKHRhcmdldCk7XG5cbiAgY29uc3QgZnVuY3Rpb25zID0gY29uZmlnc1xuICAgIC5tYXAoYyA9PiB7XG4gICAgICBpZiAoXy5pc0Z1bmN0aW9uKGMuYnJvd3NlclRyYW5zZm9ybUZuKSkge1xuICAgICAgICByZXR1cm4gYy5icm93c2VyVHJhbnNmb3JtRm47XG4gICAgICB9XG4gICAgfSlcbiAgICAuZmlsdGVyKGYgPT4gXy5pc0Z1bmN0aW9uKGYpKTtcbiAgcmV0dXJuIGZ1bmN0aW9ucy5sZW5ndGggPT09IDBcbiAgICA/IHZvaWQgMFxuICAgIDogZnVuY3Rpb24gKGVudGl0eSkge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IGZ1bmN0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtRnVuID0gZnVuY3Rpb25zW2luZGV4XTtcbiAgICAgICAgICB0cmFuc2Zvcm1GdW4oZW50aXR5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW50aXR5O1xuICAgICAgfTtcbn07XG5cblxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBzaW5nbGVUcmFuc2Zvcm0gPSAoanNvbjogYW55KSA9PiB7XG4gIGxldCBwdGFyZ2V0ID0gQ2xhc3NIZWxwZXJzLmdldENsYXNzRm5Gcm9tT2JqZWN0KGpzb24pO1xuICBsZXQgcGJyb3dzZXJUcmFuc2Zvcm1GbiA9IGdldFRyYW5zZm9ybUZ1bmN0aW9uKHB0YXJnZXQpO1xuICBpZiAocGJyb3dzZXJUcmFuc2Zvcm1Gbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gcGJyb3dzZXJUcmFuc2Zvcm1Gbihqc29uKTtcbiAgICBpZiAoIV8uaXNPYmplY3QobmV3VmFsdWUpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUGxlYXNlIHJldHVybiBvYmplY3QgaW4gdHJhbnNmb3JtIGZ1bmN0aW9uIGZvciBjbGFzczogYCArXG4gICAgICAgICAgYCR7Q2xhc3NIZWxwZXJzLmdldE5hbWUoanNvbil9YCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGpzb24gPSBuZXdWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGpzb247XG59O1xuXG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9jZXNzIHtcblxuICBzdGF0aWMgYXN5bmMgaW5pdChyZXN1bHQ6IGFueSwgcmVzcG9uc2U6IFJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBFbnRpdHlQcm9jZXNzKHJlc3VsdCwgcmVzcG9uc2UpLnJ1bigpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBEYXRhIHRvIHNlbmRcbiAgICovXG4gIGRhdGE6IGFueTtcblxuICAvKipcbiAgICogU2F5IHllcyB0bzpcbiAgICogLSBjaXJjdXJhbCBvYmplY3RcbiAgICogLSB0cmFuc2Zvcm0gYnJvd3NlciBmbiBpbiBkZWNvcmF0b3JcbiAgICovXG4gIHByaXZhdGUgYWR2YW5jZWRNYW5pcHVsYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBlbnRpdHlNYXBwaW5nOiBhbnk7XG4gIHByaXZhdGUgY2lyY3VyYWwgPSBbXTtcblxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogRGF0YSBmcm9tIGJhY2tlbmRcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlc3VsdDogYW55LFxuICAgIHByaXZhdGUgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICApIHt9XG5cblxuXG4gIHByaXZhdGUgY2hlY2tBZHZhbmNlZE1hbml1cHVsYXRpb24oKSB7XG4gICAgaWYgKF8uaXNGdW5jdGlvbih0aGlzLnJlc3VsdCkpIHtcbiAgICAgIHRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5yZXN1bHQgPSB0aGlzLnJlc3VsdCgpO1xuICAgIH1cbiAgfVxuXG5cblxuICBwdWJsaWMgYXN5bmMgcnVuKCkge1xuICAgIHRoaXMuY2hlY2tBZHZhbmNlZE1hbml1cHVsYXRpb24oKTtcbiAgICB0aGlzLmRhdGEgPSB0aGlzLnJlc3VsdDtcblxuICAgIGlmIChfLmlzT2JqZWN0KHRoaXMucmVzdWx0KSkge1xuICAgICAgaWYgKHRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24pIHtcbiAgICAgICAgdGhpcy5hcHBsYXlUcmFuc2Zvcm1GbigpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEhlYWRlcnMoKTtcbiAgICB9XG4gICAgdGhpcy5zZW5kKCk7XG4gIH1cblxuXG5cbiAgYXBwbGF5VHJhbnNmb3JtRm4oKSB7XG4gICAgaWYgKF8uaXNPYmplY3QodGhpcy5kYXRhKSAmJiAhXy5pc0FycmF5KHRoaXMuZGF0YSkpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHNpbmdsZVRyYW5zZm9ybSh0aGlzLmRhdGEpO1xuICAgIH1cbiAgICBjb25zdCB7IGluY2x1ZGUgfSA9IHsgaW5jbHVkZTogW10gfTtcbiAgICB3YWxrLk9iamVjdChcbiAgICAgIHRoaXMuZGF0YSxcbiAgICAgICh2YWx1ZSwgbG9kYXNoUGF0aCwgY2hhbmdlVmFsdWUsIHsgc2tpcE9iamVjdCwgaXNDaXJjdXJhbCB9KSA9PiB7XG5cbiAgICAgICAgaWYgKCFpc0NpcmN1cmFsKSB7XG4gICAgICAgICAgaWYgKCFfLmlzQXJyYXkodmFsdWUpICYmIF8uaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICBjaGFuZ2VWYWx1ZShzaW5nbGVUcmFuc2Zvcm0odmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNoZWNrQ2lyY3VyYWw6IHRydWUsIGJyZWFkdGhXYWxrOiB0cnVlLCBpbmNsdWRlIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHsgY2lyY3MgfSA9IHdhbGsuT2JqZWN0KHRoaXMuZGF0YSwgdm9pZCAwLCB7XG4gICAgICBjaGVja0NpcmN1cmFsOiB0cnVlLFxuICAgICAgYnJlYWR0aFdhbGs6IHRydWUsXG4gICAgICBpbmNsdWRlLFxuICAgIH0pO1xuICAgIHRoaXMuY2lyY3VyYWwgPSBjaXJjcztcbiAgfVxuXG5cblxuICBzZXRIZWFkZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgaW5jbHVkZSB9ID0geyBpbmNsdWRlOiBbXSB9O1xuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUodGhpcy5kYXRhKTtcbiAgICBjb25zdCBkb05vdGhpbmcgPVxuICAgICAgXy5pc05pbCh0aGlzLmRhdGEpIHx8XG4gICAgICBbXG4gICAgICAgICdPYmplY3QnLFxuICAgICAgICAnJyxcblxuICAgICAgXS5pbmNsdWRlcyhjbGFzc05hbWUpO1xuXG4gICAgaWYgKCFkb05vdGhpbmcpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWQgPSBKU09OMTAuY2xlYW5lZCh0aGlzLmRhdGEsIHZvaWQgMCwge1xuICAgICAgICBicmVhZHRoV2FsazogdHJ1ZSxcbiAgICAgICAgaW5jbHVkZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbnRpdHlNYXBwaW5nID0gTWFwcGluZy5kZWNvZGUoY2xlYW5lZCwgIXRoaXMuYWR2YW5jZWRNYW5pcHVsYXRpb24pO1xuXG4gICAgICB0aGlzLnJlc3BvbnNlLnNldChcbiAgICAgICAgU3ltYm9scy5vbGQuTUFQUElOR19DT05GSUdfSEVBREVSLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmVudGl0eU1hcHBpbmcpLFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2Uuc2V0KFxuICAgICAgICAgIFN5bWJvbHMub2xkLkNJUkNVUkFMX09CSkVDVFNfTUFQX0JPRFksXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5jaXJjdXJhbCksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbmQoKSB7XG4gICAgaWYgKCFfLmlzT2JqZWN0KHRoaXMuZGF0YSkpIHtcbiAgICAgIGlmIChfLmlzTnVtYmVyKHRoaXMuZGF0YSkpIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZS5zZW5kKHRoaXMuZGF0YS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2Uuc2VuZCh0aGlzLmRhdGEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5hZHZhbmNlZE1hbmlwdWxhdGlvbikge1xuICAgICAgY29uc3QgYnJvd3NlcktleSA9IGNvbmZpZy5mb2xkZXIuYnJvd3NlcjtcbiAgICAgIGxldCB0b1NlbmQgPSBfLmlzQXJyYXkodGhpcy5kYXRhKSA/IFtdIDoge307XG5cbiAgICAgIGNvbnN0IHsgaW5jbHVkZSA9IFtdLCBleGNsdWRlID0gW10gfSA9IHsgaW5jbHVkZTogW10sIGV4Y2x1ZGU6IFtdIH07XG5cbiAgICAgIHdhbGsuT2JqZWN0KFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgICh2YWx1ZSwgbG9kYXNoUGF0aCwgY2hhbmdlVkFsdWUsIHsgaXNDaXJjdXJhbCwgc2tpcE9iamVjdCB9KSA9PiB7XG5cbiAgICAgICAgICBpZiAoaXNDaXJjdXJhbCkge1xuICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBsb2Rhc2hQYXRoLCBudWxsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZnVuID0gZ2V0VHJhbnNmb3JtRnVuY3Rpb24oXG4gICAgICAgICAgICAgIENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdCh2YWx1ZSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGZ1bikpIHtcbiAgICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBgJHtsb2Rhc2hQYXRofS4ke2Jyb3dzZXJLZXl9YCwgdmFsdWVbYnJvd3NlcktleV0pO1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFByb3AgPSBDbGFzc0hlbHBlcnMuZ2V0VW5pcXVlS2V5KHZhbHVlKTtcbiAgICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBgJHtsb2Rhc2hQYXRofS4ke2luZGV4UHJvcH1gLCB2YWx1ZVtpbmRleFByb3BdKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgXy5zZXQodG9TZW5kLCBsb2Rhc2hQYXRoLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNoZWNrQ2lyY3VyYWw6IHRydWUsIGJyZWFkdGhXYWxrOiB0cnVlLCBpbmNsdWRlIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAoIV8uaXNBcnJheSh0aGlzLmRhdGEpKSB7XG4gICAgICAgIGxldCBmdW5QYXJlbnQgPSBnZXRUcmFuc2Zvcm1GdW5jdGlvbihcbiAgICAgICAgICBDbGFzc0hlbHBlcnMuZ2V0Q2xhc3NGbkZyb21PYmplY3QodGhpcy5kYXRhKSxcbiAgICAgICAgKTtcblxuXG5cbiAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihmdW5QYXJlbnQpKSB7XG4gICAgICAgICAgdG9TZW5kID0ge1xuICAgICAgICAgICAgW2Jyb3dzZXJLZXldOiB0b1NlbmRbYnJvd3NlcktleV0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmRhdGEpLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgICAgaWYgKHByb3AgIT09IGJyb3dzZXJLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSB0aGlzLmRhdGFbcHJvcF07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgKGluY2x1ZGUubGVuZ3RoID4gMCAmJiAhaW5jbHVkZS5pbmNsdWRlcyhwcm9wKSkgfHxcbiAgICAgICAgICAgICAgICAoZXhjbHVkZS5sZW5ndGggPiAwICYmIGV4Y2x1ZGUuaW5jbHVkZXMocHJvcCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmlzQ29udGV4dENsYXNzT2JqZWN0KHYpICYmXG4gICAgICAgICAgICAgICAgXy5pc0Z1bmN0aW9uKFxuICAgICAgICAgICAgICAgICAgZ2V0VHJhbnNmb3JtRnVuY3Rpb24oQ2xhc3NIZWxwZXJzLmdldENsYXNzRm5Gcm9tT2JqZWN0KHYpKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRvU2VuZFtwcm9wXSA9IHtcbiAgICAgICAgICAgICAgICAgIFticm93c2VyS2V5XTogdlticm93c2VyS2V5XSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4UHJvcCA9IENsYXNzSGVscGVycy5nZXRVbmlxdWVLZXkodik7XG4gICAgICAgICAgICAgICAgdG9TZW5kW3Byb3BdW2luZGV4UHJvcF0gPSB0aGlzLmRhdGFbcHJvcF1baW5kZXhQcm9wXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB2KSB7XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIF8uaXNPYmplY3QodikgJiZcbiAgICAgICAgICAgICAgICAgICAgdi5oYXNPd25Qcm9wZXJ0eShrZXkpICYmXG4gICAgICAgICAgICAgICAgICAgICFbaW5kZXhQcm9wLCBjb25maWcuZm9sZGVyLmJyb3dzZXJdLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgKF8uaXNTdHJpbmcodltrZXldKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIF8uaXNOdW1iZXIodltrZXldKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIF8uaXNEYXRlKHZba2V5XSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBfLmlzTnVsbCh2W2tleV0pIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXy5pc0Jvb2xlYW4odltrZXldKSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0b1NlbmRbcHJvcF1ba2V5XSA9IHZba2V5XTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9TZW5kW3Byb3BdID0gdjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cblxuICAgICAgdGhpcy5yZXNwb25zZS5qc29uKHRvU2VuZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzcG9uc2UuanNvbih0aGlzLmRhdGEpO1xuICAgIH1cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9lbnRpdHktcHJvY2Vzcy50cyJdfQ==
@@ -52,7 +52,7 @@ export var ClassHelpers;
52
52
  : classFnOrObject?.constructor[Symbols.fullClassNameStaticProperty]) ||
53
53
  void 0);
54
54
  };
55
- ClassHelpers.getUniquKey = (classFnOrObject) => {
55
+ ClassHelpers.getUniqueKey = (classFnOrObject) => {
56
56
  const classFn = _.isFunction(classFnOrObject)
57
57
  ? classFnOrObject
58
58
  : classFnOrObject.constructor;
@@ -180,4 +180,4 @@ export var ClassHelpers;
180
180
  })(ClassHelpers || (ClassHelpers = {}));
181
181
  ;
182
182
  ({}); // @--end-of-file-for-module=taon lib/helpers/class-helpers.ts
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLEtBQVcsWUFBWSxDQXdRNUI7QUF4UUQsV0FBaUIsWUFBWTtJQUUzQjs7T0FFRztJQUNVLGlDQUFvQixHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDbkQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2Ys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QztRQUN0QixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFYixPQUFPLElBQUkscUJBQXFCLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUVKLENBQUMsRUF4UWdCLFlBQVksS0FBWixZQUFZLFFBd1E1QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICcuLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhb25Db250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4uL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgeyBUYW9uSGVscGVycyB9IGZyb20gJy4vdGFvbi1oZWxwZXJzJztcbmltcG9ydCB7IFRhb25FbnRpdHlPcHRpb25zIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jbGFzc2VzL2VudGl0eS1kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbi8qICovXG4vKiAqL1xuICBcblxuZXhwb3J0IG5hbWVzcGFjZSBDbGFzc0hlbHBlcnMge1xuXG4gIC8qKlxuICAgKiBUT0RPIC0gcmVwYWxjZSBpbiBldmVyeSBwbGFjZSB3aGVuIGdldHRpbmcgY2xhc3MgZm4gZnJvbSBvYmplY3RcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRDbGFzc0ZuRnJvbU9iamVjdCA9IChqc29uOiBPYmplY3QpID0+IHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChqc29uKSB8fCBfLmlzTnVsbChqc29uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoanNvbi5jb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIGpzb24uY29uc3RydWN0b3I7XG4gICAgfVxuICAgIGNvbnN0IHAgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoanNvbik7XG4gICAgcmV0dXJuIHAgJiYgcC5jb25zdHJ1Y3RvciAmJiBwLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdPYmplY3QnXG4gICAgICA/IHAuY29uc3RydWN0b3JcbiAgICAgIDogdm9pZCAwO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0TmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cbiAgICBpZiAoY2xhc3NGbk9yT2JqZWN0IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiAnRm9ybURhdGEnO1xuICAgIH1cbiAgICBpZiAoIWNsYXNzRm5Pck9iamVjdCkge1xuICAgICAgY29uc29sZS5lcnJvcignT0JKRUNUIE9SIENMQVNTJywgY2xhc3NGbk9yT2JqZWN0KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGdldCBuYW1lIGZyb20gdGhpcyBvYmplY3Qgb3IgY2xhc3MuYCk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgIDogY2xhc3NGbk9yT2JqZWN0Py5jb25zdHJ1Y3RvcltTeW1ib2xzLmNsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XSkgfHxcbiAgICAgIENMQVNTLmdldE5hbWUoY2xhc3NGbk9yT2JqZWN0KVxuICAgICk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0T3JnaW5hbENsYXNzID0gKGNsYXNzRm5Pck9iamVjdDogYW55KTogYW55ID0+IHtcbiAgICBjb25zdCBvcmcgPSBjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5vcmlnbmFsQ2xhc3NdO1xuICAgIGlmICghb3JnKSB7XG4gICAgICByZXR1cm4gY2xhc3NGbk9yT2JqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gZ2V0T3JnaW5hbENsYXNzKG9yZyk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0RnVsbEludGVybmFsTmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cblxuICAgIGlmICghY2xhc3NGbk9yT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgbmFtZSBmcm9tOiAke2NsYXNzRm5Pck9iamVjdH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuZnVsbENsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XVxuICAgICAgICA6IGNsYXNzRm5Pck9iamVjdD8uY29uc3RydWN0b3JbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldKSB8fFxuICAgICAgdm9pZCAwXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFVuaXF1S2V5ID0gKGNsYXNzRm5Pck9iamVjdDogYW55KTogc3RyaW5nID0+IHtcbiAgICBjb25zdCBjbGFzc0ZuID0gXy5pc0Z1bmN0aW9uKGNsYXNzRm5Pck9iamVjdClcbiAgICAgID8gY2xhc3NGbk9yT2JqZWN0XG4gICAgICA6IGNsYXNzRm5Pck9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgICBjb25zdCBjb25maWcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXIsXG4gICAgICBjbGFzc0ZuLFxuICAgICkgYXMgVGFvbkVudGl0eU9wdGlvbnM7XG4gICAgcmV0dXJuIGNvbmZpZy51bmlxdWVLZXlQcm9wO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgaXNDb250ZXh0Q2xhc3NPYmplY3QgPSAob2JqOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICBpZiAoXG4gICAgICAhXy5pc09iamVjdChvYmopIHx8XG4gICAgICBfLmlzQXJyYXkob2JqKSB8fFxuICAgICAgXy5pc1JlZ0V4cChvYmopIHx8XG4gICAgICBfLmlzQnVmZmVyKG9iaikgfHxcbiAgICAgIF8uaXNBcnJheUJ1ZmZlcihvYmopXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChfLmlzRGF0ZShvYmopKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgY2xhc3NOYW1lID0gZ2V0TmFtZShvYmopO1xuICAgIHJldHVybiBfLmlzU3RyaW5nKGNsYXNzTmFtZSkgJiYgY2xhc3NOYW1lICE9PSAnT2JqZWN0JztcbiAgfTtcblxuXG5cblxuICBleHBvcnQgY29uc3Qgc2V0TmFtZSA9ICh0YXJnZXQ6IEZ1bmN0aW9uLCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQgPT4ge1xuXG4gICAgVmFsaWRhdG9ycy5jbGFzc05hbWVWbGlkYXRpb24oY2xhc3NOYW1lLCB0YXJnZXQpO1xuICAgIHRhcmdldFtTeW1ib2xzLmNsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XSA9IGNsYXNzTmFtZTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGhhc1BhcmVudENsYXNzV2l0aE5hbWUgPSAoXG4gICAgdGFyZ2V0OiBGdW5jdGlvbixcbiAgICBjbGFzc05hbWU6IHN0cmluZyxcbiAgICB0YXJnZXRzID0gW10sXG4gICk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRhcmdldHMucHVzaCh0YXJnZXQpO1xuICAgIGxldCB0YXJnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpO1xuXG4gICAgaWYgKFxuICAgICAgXy5pc0Z1bmN0aW9uKHRhcmdldFByb3RvKSAmJlxuICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUodGFyZ2V0UHJvdG8pID09PSBjbGFzc05hbWVcbiAgICApIHtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBoYXNQYXJlbnRDbGFzc1dpdGhOYW1lKHRhcmdldFByb3RvLCBjbGFzc05hbWUsIHRhcmdldHMpO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0Q29udHJvbGxlckNvbmZpZyA9IChcbiAgICB0YXJnZXQ6IEZ1bmN0aW9uLFxuICApOiBNb2RlbHMuQ29udHJvbGxlckNvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgY2xhc3NNZXRhZGF0YU9wdGlvbnM6IFRhb25Db250cm9sbGVyT3B0aW9ucyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuY29udHJvbGxlcixcbiAgICAgIHRhcmdldCxcbiAgICApO1xuICAgIGNvbnN0IGNsYXNzTWV0YWRhdGE6IE1vZGVscy5Db250cm9sbGVyQ29uZmlnID0gXy5tZXJnZShcbiAgICAgIG5ldyBNb2RlbHMuQ29udHJvbGxlckNvbmZpZygpLFxuICAgICAgY2xhc3NNZXRhZGF0YU9wdGlvbnMsXG4gICAgKTtcblxuXG4gICAgY29uc3QgbWV0aG9kTmFtZXMgPSBDbGFzc0hlbHBlcnMuZ2V0TWV0aG9kc05hbWVzKHRhcmdldCk7IC8vICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQucHJvdG90eXBlKTtcblxuICAgIGZvciAoY29uc3QgbWV0aG9kTmFtZSBvZiBtZXRob2ROYW1lcykge1xuICAgICAgY29uc3QgbWV0aG9kTWV0YWRhdGE6IE1vZGVscy5NZXRob2RDb25maWcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuY29udHJvbGxlck1ldGhvZCxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBtZXRob2ROYW1lLFxuICAgICAgKTtcblxuICAgICAgaWYgKG1ldGhvZE1ldGFkYXRhKSB7XG4gICAgICAgIGNsYXNzTWV0YWRhdGEubWV0aG9kc1ttZXRob2ROYW1lXSA9IG1ldGhvZE1ldGFkYXRhO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xhc3NNZXRhZGF0YTtcbiAgfTtcblxuXG5cblxuXG4gIGNvbnN0IG5vdEFsbG93ZWRBc01ldGhvZE5hbWUgPSBbXG4gICAgJ2xlbmd0aCcsXG4gICAgJ25hbWUnLFxuICAgICdhcmd1bWVudHMnLFxuICAgICdjYWxsZXInLFxuICAgICdjb25zdHJ1Y3RvcicsXG4gICAgJ2FwcGx5JyxcbiAgICAnYmluZCcsXG4gICAgJ2NhbGwnLFxuICAgICd0b1N0cmluZycsXG4gICAgJ19fZGVmaW5lR2V0dGVyX18nLFxuICAgICdfX2RlZmluZVNldHRlcl9fJyxcbiAgICAnaGFzT3duUHJvcGVydHknLFxuICAgICdfX2xvb2t1cEdldHRlcl9fJyxcbiAgICAnX19sb29rdXBTZXR0ZXJfXycsXG4gICAgJ2lzUHJvdG90eXBlT2YnLFxuICAgICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICAgJ3ZhbHVlT2YnLFxuICAgICdfX3Byb3RvX18nLFxuICAgICd0b0xvY2FsZVN0cmluZycsXG4gIF07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0TWV0aG9kc05hbWVzID0gKFxuICAgIGNsYXNzT3JDbGFzc0luc3RhbmNlOiBhbnksXG4gICAgYWxsTWV0aG9kc05hbWVzID0gW10sXG4gICk6IHN0cmluZ1tdID0+IHtcbiAgICBpZiAoIWNsYXNzT3JDbGFzc0luc3RhbmNlKSB7XG4gICAgICByZXR1cm4gYWxsTWV0aG9kc05hbWVzO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQ2xhc3NGdW5jdGlvbiA9IF8uaXNGdW5jdGlvbihjbGFzc09yQ2xhc3NJbnN0YW5jZSk7XG4gICAgY29uc3QgY2xhc3NGdW4gPSBpc0NsYXNzRnVuY3Rpb25cbiAgICAgID8gY2xhc3NPckNsYXNzSW5zdGFuY2VcbiAgICAgIDogT2JqZWN0LmdldFByb3RvdHlwZU9mKGNsYXNzT3JDbGFzc0luc3RhbmNlKTtcbiAgICBjb25zdCBvYmplY3RUb0NoZWNrID0gaXNDbGFzc0Z1bmN0aW9uXG4gICAgICA/IChjbGFzc09yQ2xhc3NJbnN0YW5jZSBhcyBGdW5jdGlvbik/LnByb3RvdHlwZVxuICAgICAgOiBjbGFzc09yQ2xhc3NJbnN0YW5jZTtcbiAgICBjb25zdCBwcm90b3R5cGVPYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0VG9DaGVjayB8fCB7fSk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gXy51bmlxKFtcbiAgICAgIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdFRvQ2hlY2sgfHwge30pLFxuICAgICAgLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG90eXBlT2JqIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKG9iamVjdFRvQ2hlY2sgfHwge30pLFxuICAgICAgLi4uT2JqZWN0LmtleXMocHJvdG90eXBlT2JqIHx8IHt9KSxcbiAgICBdKS5maWx0ZXIoZiA9PiAhIWYgJiYgIW5vdEFsbG93ZWRBc01ldGhvZE5hbWUuaW5jbHVkZXMoZikpO1xuXG4gICAgcHJvcGVydGllc1xuICAgICAgLmZpbHRlcihtZXRob2ROYW1lID0+IHR5cGVvZiBvYmplY3RUb0NoZWNrW21ldGhvZE5hbWVdID09PSAnZnVuY3Rpb24nKVxuICAgICAgLmZvckVhY2gocCA9PiBhbGxNZXRob2RzTmFtZXMucHVzaChwKSk7XG5cbiAgICBpZiAoXG4gICAgICAhY2xhc3NGdW4gfHxcbiAgICAgICFjbGFzc0Z1bi5jb25zdHJ1Y3RvciB8fFxuICAgICAgY2xhc3NGdW4/LmNvbnN0cnVjdG9yPy5uYW1lID09PSAnT2JqZWN0J1xuICAgICkge1xuICAgICAgcmV0dXJuIGFsbE1ldGhvZHNOYW1lcztcbiAgICB9XG4gICAgcmV0dXJuIGdldE1ldGhvZHNOYW1lcyhPYmplY3QuZ2V0UHJvdG90eXBlT2YoY2xhc3NGdW4pLCBhbGxNZXRob2RzTmFtZXMpO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0Q29udHJvbGxlckNvbmZpZ3MgPSAoXG4gICAgdGFyZ2V0OiBGdW5jdGlvbixcbiAgICBjb25maWdzOiBNb2RlbHMuQ29udHJvbGxlckNvbmZpZ1tdID0gW10sXG4gICAgY2FsbGVyVGFyZ2V0PzogRnVuY3Rpb24sXG4gICk6IE1vZGVscy5SdW50aW1lQ29udHJvbGxlckNvbmZpZ1tdID0+IHtcbiAgICBpZiAoIV8uaXNGdW5jdGlvbih0YXJnZXQpKSB7XG4gICAgICB0aHJvdyBgW3R5cGVzY3JpcHQtY2xhc3MtaGVscGVyXVtnZXRDbGFzc0NvbmZpZ10gQ2Fubm90IGdldCBjbGFzcyBjb25maWcgZnJvbTogJHt0YXJnZXR9YDtcbiAgICB9XG5cbiAgICBsZXQgY29uZmlnOiBNb2RlbHMuUnVudGltZUNvbnRyb2xsZXJDb25maWc7XG4gICAgY29uc3QgcGFyZW50Q2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KTtcbiAgICBjb25zdCBwYXJlbnROYW1lID0gcGFyZW50Q2xhc3MgPyBDbGFzc0hlbHBlcnMuZ2V0TmFtZShwYXJlbnRDbGFzcykgOiB2b2lkIDA7XG4gICAgY29uc3QgaXNWYWxpZFBhcmVudCA9IF8uaXNGdW5jdGlvbihwYXJlbnRDbGFzcykgJiYgcGFyZW50TmFtZSAhPT0gJyc7XG5cbiAgICBjb25maWcgPSBnZXRDb250cm9sbGVyQ29uZmlnKHRhcmdldCk7XG5cbiAgICBjb25maWdzLnB1c2goY29uZmlnKTtcblxuICAgIHJldHVybiBpc1ZhbGlkUGFyZW50XG4gICAgICA/IGdldENvbnRyb2xsZXJDb25maWdzKHBhcmVudENsYXNzLCBjb25maWdzLCB0YXJnZXQpXG4gICAgICA6IGNvbmZpZ3M7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBnZXRDYWxjdWxhdGVkUGF0aEZvciA9ICh0YXJnZXQ6IEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgY29uZmlncyA9IGdldENvbnRyb2xsZXJDb25maWdzKHRhcmdldCk7XG5cbiAgICBjb25zdCBwYXJlbnRzY2FsY3VsYXRlZFBhdGggPSBfLnNsaWNlKGNvbmZpZ3MsIDEpXG4gICAgICAucmV2ZXJzZSgpXG4gICAgICAubWFwKGJjID0+IHtcbiAgICAgICAgaWYgKFRhb25IZWxwZXJzLmlzR29vZFBhdGgoYmMucGF0aCkpIHtcbiAgICAgICAgICByZXR1cm4gYmMucGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmMuY2xhc3NOYW1lO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcvJyk7XG5cbiAgICByZXR1cm4gYC8ke3BhcmVudHNjYWxjdWxhdGVkUGF0aH0vJHtDbGFzc0hlbHBlcnMuZ2V0TmFtZSh0YXJnZXQpfWA7XG4gIH07XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2hlbHBlcnMvY2xhc3MtaGVscGVycy50cyJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLEtBQVcsWUFBWSxDQXdRNUI7QUF4UUQsV0FBaUIsWUFBWTtJQUUzQjs7T0FFRztJQUNVLGlDQUFvQixHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDbkQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2Ys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QztRQUN0QixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFYixPQUFPLElBQUkscUJBQXFCLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUVKLENBQUMsRUF4UWdCLFlBQVksS0FBWixZQUFZLFFBd1E1QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICcuLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhb25Db250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4uL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgeyBUYW9uSGVscGVycyB9IGZyb20gJy4vdGFvbi1oZWxwZXJzJztcbmltcG9ydCB7IFRhb25FbnRpdHlPcHRpb25zIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jbGFzc2VzL2VudGl0eS1kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbi8qICovXG4vKiAqL1xuICBcblxuZXhwb3J0IG5hbWVzcGFjZSBDbGFzc0hlbHBlcnMge1xuXG4gIC8qKlxuICAgKiBUT0RPIC0gcmVwYWxjZSBpbiBldmVyeSBwbGFjZSB3aGVuIGdldHRpbmcgY2xhc3MgZm4gZnJvbSBvYmplY3RcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRDbGFzc0ZuRnJvbU9iamVjdCA9IChqc29uOiBPYmplY3QpID0+IHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChqc29uKSB8fCBfLmlzTnVsbChqc29uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoanNvbi5jb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIGpzb24uY29uc3RydWN0b3I7XG4gICAgfVxuICAgIGNvbnN0IHAgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoanNvbik7XG4gICAgcmV0dXJuIHAgJiYgcC5jb25zdHJ1Y3RvciAmJiBwLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdPYmplY3QnXG4gICAgICA/IHAuY29uc3RydWN0b3JcbiAgICAgIDogdm9pZCAwO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0TmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cbiAgICBpZiAoY2xhc3NGbk9yT2JqZWN0IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiAnRm9ybURhdGEnO1xuICAgIH1cbiAgICBpZiAoIWNsYXNzRm5Pck9iamVjdCkge1xuICAgICAgY29uc29sZS5lcnJvcignT0JKRUNUIE9SIENMQVNTJywgY2xhc3NGbk9yT2JqZWN0KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGdldCBuYW1lIGZyb20gdGhpcyBvYmplY3Qgb3IgY2xhc3MuYCk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgIDogY2xhc3NGbk9yT2JqZWN0Py5jb25zdHJ1Y3RvcltTeW1ib2xzLmNsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XSkgfHxcbiAgICAgIENMQVNTLmdldE5hbWUoY2xhc3NGbk9yT2JqZWN0KVxuICAgICk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0T3JnaW5hbENsYXNzID0gKGNsYXNzRm5Pck9iamVjdDogYW55KTogYW55ID0+IHtcbiAgICBjb25zdCBvcmcgPSBjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5vcmlnbmFsQ2xhc3NdO1xuICAgIGlmICghb3JnKSB7XG4gICAgICByZXR1cm4gY2xhc3NGbk9yT2JqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gZ2V0T3JnaW5hbENsYXNzKG9yZyk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0RnVsbEludGVybmFsTmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cblxuICAgIGlmICghY2xhc3NGbk9yT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgbmFtZSBmcm9tOiAke2NsYXNzRm5Pck9iamVjdH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuZnVsbENsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XVxuICAgICAgICA6IGNsYXNzRm5Pck9iamVjdD8uY29uc3RydWN0b3JbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldKSB8fFxuICAgICAgdm9pZCAwXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFVuaXF1ZUtleSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgY2xhc3NGbiA9IF8uaXNGdW5jdGlvbihjbGFzc0ZuT3JPYmplY3QpXG4gICAgICA/IGNsYXNzRm5Pck9iamVjdFxuICAgICAgOiBjbGFzc0ZuT3JPYmplY3QuY29uc3RydWN0b3I7XG4gICAgY29uc3QgY29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5jb250cm9sbGVyLFxuICAgICAgY2xhc3NGbixcbiAgICApIGFzIFRhb25FbnRpdHlPcHRpb25zO1xuICAgIHJldHVybiBjb25maWcudW5pcXVlS2V5UHJvcDtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGlzQ29udGV4dENsYXNzT2JqZWN0ID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKFxuICAgICAgIV8uaXNPYmplY3Qob2JqKSB8fFxuICAgICAgXy5pc0FycmF5KG9iaikgfHxcbiAgICAgIF8uaXNSZWdFeHAob2JqKSB8fFxuICAgICAgXy5pc0J1ZmZlcihvYmopIHx8XG4gICAgICBfLmlzQXJyYXlCdWZmZXIob2JqKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXy5pc0RhdGUob2JqKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGdldE5hbWUob2JqKTtcbiAgICByZXR1cm4gXy5pc1N0cmluZyhjbGFzc05hbWUpICYmIGNsYXNzTmFtZSAhPT0gJ09iamVjdCc7XG4gIH07XG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IHNldE5hbWUgPSAodGFyZ2V0OiBGdW5jdGlvbiwgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkID0+IHtcblxuICAgIFZhbGlkYXRvcnMuY2xhc3NOYW1lVmxpZGF0aW9uKGNsYXNzTmFtZSwgdGFyZ2V0KTtcbiAgICB0YXJnZXRbU3ltYm9scy5jbGFzc05hbWVTdGF0aWNQcm9wZXJ0eV0gPSBjbGFzc05hbWU7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBoYXNQYXJlbnRDbGFzc1dpdGhOYW1lID0gKFxuICAgIHRhcmdldDogRnVuY3Rpb24sXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgdGFyZ2V0cyA9IFtdLFxuICApOiBib29sZWFuID0+IHtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0YXJnZXRzLnB1c2godGFyZ2V0KTtcbiAgICBsZXQgdGFyZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KTtcblxuICAgIGlmIChcbiAgICAgIF8uaXNGdW5jdGlvbih0YXJnZXRQcm90bykgJiZcbiAgICAgIENsYXNzSGVscGVycy5nZXROYW1lKHRhcmdldFByb3RvKSA9PT0gY2xhc3NOYW1lXG4gICAgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUGFyZW50Q2xhc3NXaXRoTmFtZSh0YXJnZXRQcm90bywgY2xhc3NOYW1lLCB0YXJnZXRzKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldENvbnRyb2xsZXJDb25maWcgPSAoXG4gICAgdGFyZ2V0OiBGdW5jdGlvbixcbiAgKTogTW9kZWxzLkNvbnRyb2xsZXJDb25maWcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGNsYXNzTWV0YWRhdGFPcHRpb25zOiBUYW9uQ29udHJvbGxlck9wdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXIsXG4gICAgICB0YXJnZXQsXG4gICAgKTtcbiAgICBjb25zdCBjbGFzc01ldGFkYXRhOiBNb2RlbHMuQ29udHJvbGxlckNvbmZpZyA9IF8ubWVyZ2UoXG4gICAgICBuZXcgTW9kZWxzLkNvbnRyb2xsZXJDb25maWcoKSxcbiAgICAgIGNsYXNzTWV0YWRhdGFPcHRpb25zLFxuICAgICk7XG5cblxuICAgIGNvbnN0IG1ldGhvZE5hbWVzID0gQ2xhc3NIZWxwZXJzLmdldE1ldGhvZHNOYW1lcyh0YXJnZXQpOyAvLyAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0LnByb3RvdHlwZSk7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZE5hbWUgb2YgbWV0aG9kTmFtZXMpIHtcbiAgICAgIGNvbnN0IG1ldGhvZE1ldGFkYXRhOiBNb2RlbHMuTWV0aG9kQ29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXJNZXRob2QsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgbWV0aG9kTmFtZSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChtZXRob2RNZXRhZGF0YSkge1xuICAgICAgICBjbGFzc01ldGFkYXRhLm1ldGhvZHNbbWV0aG9kTmFtZV0gPSBtZXRob2RNZXRhZGF0YTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTWV0YWRhdGE7XG4gIH07XG5cblxuXG5cblxuICBjb25zdCBub3RBbGxvd2VkQXNNZXRob2ROYW1lID0gW1xuICAgICdsZW5ndGgnLFxuICAgICduYW1lJyxcbiAgICAnYXJndW1lbnRzJyxcbiAgICAnY2FsbGVyJyxcbiAgICAnY29uc3RydWN0b3InLFxuICAgICdhcHBseScsXG4gICAgJ2JpbmQnLFxuICAgICdjYWxsJyxcbiAgICAndG9TdHJpbmcnLFxuICAgICdfX2RlZmluZUdldHRlcl9fJyxcbiAgICAnX19kZWZpbmVTZXR0ZXJfXycsXG4gICAgJ2hhc093blByb3BlcnR5JyxcbiAgICAnX19sb29rdXBHZXR0ZXJfXycsXG4gICAgJ19fbG9va3VwU2V0dGVyX18nLFxuICAgICdpc1Byb3RvdHlwZU9mJyxcbiAgICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAgICd2YWx1ZU9mJyxcbiAgICAnX19wcm90b19fJyxcbiAgICAndG9Mb2NhbGVTdHJpbmcnLFxuICBdO1xuXG5cbiAgZXhwb3J0IGNvbnN0IGdldE1ldGhvZHNOYW1lcyA9IChcbiAgICBjbGFzc09yQ2xhc3NJbnN0YW5jZTogYW55LFxuICAgIGFsbE1ldGhvZHNOYW1lcyA9IFtdLFxuICApOiBzdHJpbmdbXSA9PiB7XG4gICAgaWYgKCFjbGFzc09yQ2xhc3NJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGFsbE1ldGhvZHNOYW1lcztcbiAgICB9XG5cbiAgICBjb25zdCBpc0NsYXNzRnVuY3Rpb24gPSBfLmlzRnVuY3Rpb24oY2xhc3NPckNsYXNzSW5zdGFuY2UpO1xuICAgIGNvbnN0IGNsYXNzRnVuID0gaXNDbGFzc0Z1bmN0aW9uXG4gICAgICA/IGNsYXNzT3JDbGFzc0luc3RhbmNlXG4gICAgICA6IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGFzc09yQ2xhc3NJbnN0YW5jZSk7XG4gICAgY29uc3Qgb2JqZWN0VG9DaGVjayA9IGlzQ2xhc3NGdW5jdGlvblxuICAgICAgPyAoY2xhc3NPckNsYXNzSW5zdGFuY2UgYXMgRnVuY3Rpb24pPy5wcm90b3R5cGVcbiAgICAgIDogY2xhc3NPckNsYXNzSW5zdGFuY2U7XG4gICAgY29uc3QgcHJvdG90eXBlT2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdFRvQ2hlY2sgfHwge30pO1xuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IF8udW5pcShbXG4gICAgICAuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3RUb0NoZWNrIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvdHlwZU9iaiB8fCB7fSksXG4gICAgICAuLi5PYmplY3Qua2V5cyhvYmplY3RUb0NoZWNrIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKHByb3RvdHlwZU9iaiB8fCB7fSksXG4gICAgXSkuZmlsdGVyKGYgPT4gISFmICYmICFub3RBbGxvd2VkQXNNZXRob2ROYW1lLmluY2x1ZGVzKGYpKTtcblxuICAgIHByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIobWV0aG9kTmFtZSA9PiB0eXBlb2Ygb2JqZWN0VG9DaGVja1ttZXRob2ROYW1lXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIC5mb3JFYWNoKHAgPT4gYWxsTWV0aG9kc05hbWVzLnB1c2gocCkpO1xuXG4gICAgaWYgKFxuICAgICAgIWNsYXNzRnVuIHx8XG4gICAgICAhY2xhc3NGdW4uY29uc3RydWN0b3IgfHxcbiAgICAgIGNsYXNzRnVuPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ09iamVjdCdcbiAgICApIHtcbiAgICAgIHJldHVybiBhbGxNZXRob2RzTmFtZXM7XG4gICAgfVxuICAgIHJldHVybiBnZXRNZXRob2RzTmFtZXMoT2JqZWN0LmdldFByb3RvdHlwZU9mKGNsYXNzRnVuKSwgYWxsTWV0aG9kc05hbWVzKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldENvbnRyb2xsZXJDb25maWdzID0gKFxuICAgIHRhcmdldDogRnVuY3Rpb24sXG4gICAgY29uZmlnczogTW9kZWxzLkNvbnRyb2xsZXJDb25maWdbXSA9IFtdLFxuICAgIGNhbGxlclRhcmdldD86IEZ1bmN0aW9uLFxuICApOiBNb2RlbHMuUnVudGltZUNvbnRyb2xsZXJDb25maWdbXSA9PiB7XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xuICAgICAgdGhyb3cgYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcl1bZ2V0Q2xhc3NDb25maWddIENhbm5vdCBnZXQgY2xhc3MgY29uZmlnIGZyb206ICR7dGFyZ2V0fWA7XG4gICAgfVxuXG4gICAgbGV0IGNvbmZpZzogTW9kZWxzLlJ1bnRpbWVDb250cm9sbGVyQ29uZmlnO1xuICAgIGNvbnN0IHBhcmVudENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudENsYXNzID8gQ2xhc3NIZWxwZXJzLmdldE5hbWUocGFyZW50Q2xhc3MpIDogdm9pZCAwO1xuICAgIGNvbnN0IGlzVmFsaWRQYXJlbnQgPSBfLmlzRnVuY3Rpb24ocGFyZW50Q2xhc3MpICYmIHBhcmVudE5hbWUgIT09ICcnO1xuXG4gICAgY29uZmlnID0gZ2V0Q29udHJvbGxlckNvbmZpZyh0YXJnZXQpO1xuXG4gICAgY29uZmlncy5wdXNoKGNvbmZpZyk7XG5cbiAgICByZXR1cm4gaXNWYWxpZFBhcmVudFxuICAgICAgPyBnZXRDb250cm9sbGVyQ29uZmlncyhwYXJlbnRDbGFzcywgY29uZmlncywgdGFyZ2V0KVxuICAgICAgOiBjb25maWdzO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0Q2FsY3VsYXRlZFBhdGhGb3IgPSAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBnZXRDb250cm9sbGVyQ29uZmlncyh0YXJnZXQpO1xuXG4gICAgY29uc3QgcGFyZW50c2NhbGN1bGF0ZWRQYXRoID0gXy5zbGljZShjb25maWdzLCAxKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLm1hcChiYyA9PiB7XG4gICAgICAgIGlmIChUYW9uSGVscGVycy5pc0dvb2RQYXRoKGJjLnBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGJjLnBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJjLmNsYXNzTmFtZTtcbiAgICAgIH0pXG4gICAgICAuam9pbignLycpO1xuXG4gICAgcmV0dXJuIGAvJHtwYXJlbnRzY2FsY3VsYXRlZFBhdGh9LyR7Q2xhc3NIZWxwZXJzLmdldE5hbWUodGFyZ2V0KX1gO1xuICB9O1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMudHMiXX0=
@@ -16,7 +16,6 @@ import * as getResponse from './get-response-value';
16
16
  export { BaseRepository } from './base-classes/base-repository';
17
17
  export { BaseController } from './base-classes/base-controller';
18
18
  export { BaseProvider } from './base-classes/base-provider';
19
- export { BaseSubscriber } from './base-classes/base-subscriber';
20
19
  export { BaseEntity } from './base-classes/base-entity';
21
20
  export { BaseContext } from './base-classes/base-context';
22
21
  export { createContext } from './create-context';
@@ -35,21 +34,9 @@ export var Taon;
35
34
  Taon.Provider = providerDecorator.TaonProvider;
36
35
  Taon.Repository = repositoryDecorator.TaonRepository;
37
36
  Taon.Subscriber = subscriberDecorator.TaonSubscriber;
38
- /**
39
- * @deprecated
40
- */
41
37
  Taon.isBrowser = coreHelpers.Helpers.isBrowser;
42
- /**
43
- * @deprecated
44
- */
45
38
  Taon.isNode = coreHelpers.Helpers.isNode;
46
- /**
47
- * @deprecated
48
- */
49
39
  Taon.isWebSQL = coreHelpers.Helpers.isWebSQL;
50
- /**
51
- * @deprecated
52
- */
53
40
  Taon.isElectron = coreHelpers.Helpers.isElectron;
54
41
  Taon.createContext = createContextFn.createContext;
55
42
  Taon.inject = injectFn.inject;
@@ -78,4 +65,4 @@ export var Taon;
78
65
  })(Taon || (Taon = {}));
79
66
  ;
80
67
  ({}); // @--end-of-file-for-module=taon lib/index.ts
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssSUFBSSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sS0FBSyxJQUFJLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxLQUFLLG1CQUFtQixNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxlQUFlLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssbUJBQW1CLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxLQUFLLGVBQWUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQztBQUU3QixPQUFPLEtBQUssV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxlQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQU1wRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RCxNQUFNLEtBQVcsSUFBSSxDQXNFcEI7QUF0RUQsV0FBaUIsSUFBSTtJQUVMLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2pCLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2pCLFFBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBRWYscUJBQWdCLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDO0lBRy9DLGVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFDaEQsV0FBTSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7SUFDcEMsYUFBUSxHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQztJQUMxQyxlQUFVLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxDQUFDO0lBQ2hELGVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFHOUQ7O09BRUc7SUFDVSxjQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDdkQ7O09BRUc7SUFDVSxXQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDakQ7O09BRUc7SUFDVSxhQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDckQ7O09BRUc7SUFDVSxlQUFVLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFNUMsa0JBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDO0lBRTlDLFdBQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBS3pCLGVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQzNDLGVBQWUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUdXLFlBQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTFDOzs7T0FHRztJQUNVLFNBQUksR0FBRyxLQUFLLEVBQUUsT0FJMUIsRUFBRSxFQUFFO1FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQzlELFdBQVcsQ0FBQztRQUNmLE1BQU0sT0FBTyxHQUFHLEtBQUEsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsV0FBVyxFQUFFLFNBQVM7WUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUN6QixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQVE7WUFDN0MsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBUTtTQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztBQUNKLENBQUMsRUF0RWdCLElBQUksS0FBSixJQUFJLFFBc0VwQjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOENBQThDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJy4vZGVjb3JhdG9ycy9odHRwL2h0dHAtZGVjb3JhdG9ycyc7XG5pbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UnO1xuaW1wb3J0ICogYXMgY29udHJvbGxlckRlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBlbnRpdHlEZWNvcmF0b3IgZnJvbSAnLi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBwcm92aWRlckRlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3InO1xuaW1wb3J0ICogYXMgcmVwb3NpdG9yeURlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9yZXBvc2l0b3J5LWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBzdWJzY3JpYmVyRGVjb3JhdG9yIGZyb20gJy4vZGVjb3JhdG9ycy9jbGFzc2VzL3N1YnNjcmliZXItZGVjb3JhdG9yJztcbmltcG9ydCAqIGFzIGNyZWF0ZUNvbnRleHRGbiBmcm9tICcuL2NyZWF0ZS1jb250ZXh0JztcbmltcG9ydCAqIGFzIG9ybSBmcm9tICcuL29ybSc7XG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0ICogYXMgY29yZUhlbHBlcnMgZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCAqIGFzIGluamVjdEZuIGZyb20gJy4vaW5qZWN0JztcbmltcG9ydCAqIGFzIGVuZHBvaW50Q29udGV4dCBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0ICogYXMgYWxsU3ltYm9scyBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0ICogYXMgZ2V0UmVzcG9uc2UgZnJvbSAnLi9nZXQtcmVzcG9uc2UtdmFsdWUnO1xuXG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5cbmV4cG9ydCB7IEJhc2VSZXBvc2l0b3J5IH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1yZXBvc2l0b3J5JztcbmV4cG9ydCB7IEJhc2VDb250cm9sbGVyIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1jb250cm9sbGVyJztcbmV4cG9ydCB7IEJhc2VQcm92aWRlciB9IGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UtcHJvdmlkZXInO1xuZXhwb3J0IHsgQmFzZVN1YnNjcmliZXIgfSBmcm9tICcuL2Jhc2UtY2xhc3Nlcy9iYXNlLXN1YnNjcmliZXInO1xuZXhwb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UtZW50aXR5JztcbmV4cG9ydCB7IEJhc2VDb250ZXh0IH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1jb250ZXh0JztcbmV4cG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICcuL2NyZWF0ZS1jb250ZXh0JztcbmV4cG9ydCB7IGluamVjdCB9IGZyb20gJy4vaW5qZWN0JztcbmV4cG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcblxuXG5leHBvcnQgbmFtZXNwYWNlIFRhb24ge1xuICBleHBvcnQgaW1wb3J0IFJlc3BvbnNlID0gbW9kZWxzLk1vZGVscy5IdHRwLlJlc3BvbnNlO1xuICBleHBvcnQgaW1wb3J0IEh0dHAgPSBodHRwLkh0dHA7XG4gIGV4cG9ydCBpbXBvcnQgQmFzZSA9IGJhc2UuQmFzZTtcbiAgZXhwb3J0IGltcG9ydCBPcm0gPSBvcm0uT3JtO1xuXG4gIGV4cG9ydCBjb25zdCBnZXRSZXNwb25zZVZhbHVlID0gZ2V0UmVzcG9uc2UuZ2V0UmVzcG9uc2VWYWx1ZTtcblxuXG4gIGV4cG9ydCBpbXBvcnQgQ29udHJvbGxlciA9IGNvbnRyb2xsZXJEZWNvcmF0b3IuVGFvbkNvbnRyb2xsZXI7XG4gIGV4cG9ydCBpbXBvcnQgRW50aXR5ID0gZW50aXR5RGVjb3JhdG9yLlRhb25FbnRpdHk7XG4gIGV4cG9ydCBpbXBvcnQgUHJvdmlkZXIgPSBwcm92aWRlckRlY29yYXRvci5UYW9uUHJvdmlkZXI7XG4gIGV4cG9ydCBpbXBvcnQgUmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlEZWNvcmF0b3IuVGFvblJlcG9zaXRvcnk7XG4gIGV4cG9ydCBpbXBvcnQgU3Vic2NyaWJlciA9IHN1YnNjcmliZXJEZWNvcmF0b3IuVGFvblN1YnNjcmliZXI7XG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBpc0Jyb3dzZXIgPSBjb3JlSGVscGVycy5IZWxwZXJzLmlzQnJvd3NlcjtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgY29uc3QgaXNOb2RlID0gY29yZUhlbHBlcnMuSGVscGVycy5pc05vZGU7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGlzV2ViU1FMID0gY29yZUhlbHBlcnMuSGVscGVycy5pc1dlYlNRTDtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBleHBvcnQgY29uc3QgaXNFbGVjdHJvbiA9IGNvcmVIZWxwZXJzLkhlbHBlcnMuaXNFbGVjdHJvbjtcblxuICBleHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHRGbi5jcmVhdGVDb250ZXh0O1xuXG4gIGV4cG9ydCBjb25zdCBpbmplY3QgPSBpbmplY3RGbi5pbmplY3Q7XG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IGluaXROZ1pvbmUgPSAobmdab25lOiBOZ1pvbmUpID0+IHtcbiAgICBlbmRwb2ludENvbnRleHQuRW5kcG9pbnRDb250ZXh0LmluaXROZ1pvbmUobmdab25lKTtcbiAgfTtcblxuXG4gIGV4cG9ydCBjb25zdCBzeW1ib2xzID0gYWxsU3ltYm9scy5TeW1ib2xzO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiB1c2UgY3JlYXRlQ29udGV4dCBpbnN0ZWFkXG4gICAqL1xuICBleHBvcnQgY29uc3QgaW5pdCA9IGFzeW5jIChvcHRpb25zOiB7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGVudGl0aWVzOiBGdW5jdGlvbltdO1xuICAgIGNvbnRyb2xsZXJzOiBGdW5jdGlvbltdO1xuICB9KSA9PiB7XG4gICAgY29uc3QgQmFzZUNvbnRleHQgPSAoYXdhaXQgaW1wb3J0KCcuL2Jhc2UtY2xhc3Nlcy9iYXNlLWNvbnRleHQnKSlcbiAgICAgIC5CYXNlQ29udGV4dDtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQ29udGV4dCgoKSA9PiAoe1xuICAgICAgY29udGV4dE5hbWU6ICdkZWZhdWx0JyxcbiAgICAgIGhvc3Q6IG9wdGlvbnMuaG9zdCxcbiAgICAgIGNvbnRleHRzOiB7IEJhc2VDb250ZXh0IH0sXG4gICAgICBkYXRhYmFzZTogdHJ1ZSxcbiAgICAgIGVudGl0aWVzOiBBcnJheS5mcm9tKG9wdGlvbnMuZW50aXRpZXMpIGFzIGFueSxcbiAgICAgIGNvbnRyb2xsZXJzOiBBcnJheS5mcm9tKG9wdGlvbnMuY29udHJvbGxlcnMpIGFzIGFueSxcbiAgICB9KSk7XG5cbiAgICBhd2FpdCBjb250ZXh0LmluaXRpYWxpemUoKTtcbiAgICByZXR1cm4gY29udGV4dDtcbiAgfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2luZGV4LnRzIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssSUFBSSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sS0FBSyxJQUFJLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxLQUFLLG1CQUFtQixNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxlQUFlLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxLQUFLLGlCQUFpQixNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssbUJBQW1CLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxLQUFLLGVBQWUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQztBQUU3QixPQUFPLEtBQUssV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxlQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQU1wRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3ZELE1BQU0sS0FBVyxJQUFJLENBd0RwQjtBQXhERCxXQUFpQixJQUFJO0lBRUwsU0FBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDakIsU0FBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDakIsUUFBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFFZixxQkFBZ0IsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7SUFHL0MsZUFBVSxHQUFHLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztJQUNoRCxXQUFNLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxhQUFRLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0lBQzFDLGVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFDaEQsZUFBVSxHQUFHLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztJQUdqRCxjQUFTLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDMUMsV0FBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3BDLGFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN4QyxlQUFVLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFNUMsa0JBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDO0lBRTlDLFdBQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBR3pCLGVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQzNDLGVBQWUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUdXLFlBQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTFDOzs7T0FHRztJQUNVLFNBQUksR0FBRyxLQUFLLEVBQUUsT0FJMUIsRUFBRSxFQUFFO1FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQzlELFdBQVcsQ0FBQztRQUNmLE1BQU0sT0FBTyxHQUFHLEtBQUEsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsV0FBVyxFQUFFLFNBQVM7WUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUN6QixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQVE7WUFDN0MsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBUTtTQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztBQUNKLENBQUMsRUF4RGdCLElBQUksS0FBSixJQUFJLFFBd0RwQjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOENBQThDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJy4vZGVjb3JhdG9ycy9odHRwL2h0dHAtZGVjb3JhdG9ycyc7XG5pbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UnO1xuaW1wb3J0ICogYXMgY29udHJvbGxlckRlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBlbnRpdHlEZWNvcmF0b3IgZnJvbSAnLi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBwcm92aWRlckRlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3InO1xuaW1wb3J0ICogYXMgcmVwb3NpdG9yeURlY29yYXRvciBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9yZXBvc2l0b3J5LWRlY29yYXRvcic7XG5pbXBvcnQgKiBhcyBzdWJzY3JpYmVyRGVjb3JhdG9yIGZyb20gJy4vZGVjb3JhdG9ycy9jbGFzc2VzL3N1YnNjcmliZXItZGVjb3JhdG9yJztcbmltcG9ydCAqIGFzIGNyZWF0ZUNvbnRleHRGbiBmcm9tICcuL2NyZWF0ZS1jb250ZXh0JztcbmltcG9ydCAqIGFzIG9ybSBmcm9tICcuL29ybSc7XG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0ICogYXMgY29yZUhlbHBlcnMgZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCAqIGFzIGluamVjdEZuIGZyb20gJy4vaW5qZWN0JztcbmltcG9ydCAqIGFzIGVuZHBvaW50Q29udGV4dCBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0ICogYXMgYWxsU3ltYm9scyBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0ICogYXMgZ2V0UmVzcG9uc2UgZnJvbSAnLi9nZXQtcmVzcG9uc2UtdmFsdWUnO1xuXG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5cbmV4cG9ydCB7IEJhc2VSZXBvc2l0b3J5IH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1yZXBvc2l0b3J5JztcbmV4cG9ydCB7IEJhc2VDb250cm9sbGVyIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1jb250cm9sbGVyJztcbmV4cG9ydCB7IEJhc2VQcm92aWRlciB9IGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UtcHJvdmlkZXInO1xuZXhwb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UtZW50aXR5JztcbmV4cG9ydCB7IEJhc2VDb250ZXh0IH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1jb250ZXh0JztcbmV4cG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICcuL2NyZWF0ZS1jb250ZXh0JztcbmV4cG9ydCB7IGluamVjdCB9IGZyb20gJy4vaW5qZWN0JztcbmV4cG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcblxuXG5leHBvcnQgbmFtZXNwYWNlIFRhb24ge1xuICBleHBvcnQgaW1wb3J0IFJlc3BvbnNlID0gbW9kZWxzLk1vZGVscy5IdHRwLlJlc3BvbnNlO1xuICBleHBvcnQgaW1wb3J0IEh0dHAgPSBodHRwLkh0dHA7XG4gIGV4cG9ydCBpbXBvcnQgQmFzZSA9IGJhc2UuQmFzZTtcbiAgZXhwb3J0IGltcG9ydCBPcm0gPSBvcm0uT3JtO1xuXG4gIGV4cG9ydCBjb25zdCBnZXRSZXNwb25zZVZhbHVlID0gZ2V0UmVzcG9uc2UuZ2V0UmVzcG9uc2VWYWx1ZTtcblxuXG4gIGV4cG9ydCBpbXBvcnQgQ29udHJvbGxlciA9IGNvbnRyb2xsZXJEZWNvcmF0b3IuVGFvbkNvbnRyb2xsZXI7XG4gIGV4cG9ydCBpbXBvcnQgRW50aXR5ID0gZW50aXR5RGVjb3JhdG9yLlRhb25FbnRpdHk7XG4gIGV4cG9ydCBpbXBvcnQgUHJvdmlkZXIgPSBwcm92aWRlckRlY29yYXRvci5UYW9uUHJvdmlkZXI7XG4gIGV4cG9ydCBpbXBvcnQgUmVwb3NpdG9yeSA9IHJlcG9zaXRvcnlEZWNvcmF0b3IuVGFvblJlcG9zaXRvcnk7XG4gIGV4cG9ydCBpbXBvcnQgU3Vic2NyaWJlciA9IHN1YnNjcmliZXJEZWNvcmF0b3IuVGFvblN1YnNjcmliZXI7XG5cblxuICBleHBvcnQgY29uc3QgaXNCcm93c2VyID0gY29yZUhlbHBlcnMuSGVscGVycy5pc0Jyb3dzZXI7XG4gIGV4cG9ydCBjb25zdCBpc05vZGUgPSBjb3JlSGVscGVycy5IZWxwZXJzLmlzTm9kZTtcbiAgZXhwb3J0IGNvbnN0IGlzV2ViU1FMID0gY29yZUhlbHBlcnMuSGVscGVycy5pc1dlYlNRTDtcbiAgZXhwb3J0IGNvbnN0IGlzRWxlY3Ryb24gPSBjb3JlSGVscGVycy5IZWxwZXJzLmlzRWxlY3Ryb247XG5cbiAgZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0Rm4uY3JlYXRlQ29udGV4dDtcblxuICBleHBvcnQgY29uc3QgaW5qZWN0ID0gaW5qZWN0Rm4uaW5qZWN0O1xuXG5cbiAgZXhwb3J0IGNvbnN0IGluaXROZ1pvbmUgPSAobmdab25lOiBOZ1pvbmUpID0+IHtcbiAgICBlbmRwb2ludENvbnRleHQuRW5kcG9pbnRDb250ZXh0LmluaXROZ1pvbmUobmdab25lKTtcbiAgfTtcblxuXG4gIGV4cG9ydCBjb25zdCBzeW1ib2xzID0gYWxsU3ltYm9scy5TeW1ib2xzO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiB1c2UgY3JlYXRlQ29udGV4dCBpbnN0ZWFkXG4gICAqL1xuICBleHBvcnQgY29uc3QgaW5pdCA9IGFzeW5jIChvcHRpb25zOiB7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGVudGl0aWVzOiBGdW5jdGlvbltdO1xuICAgIGNvbnRyb2xsZXJzOiBGdW5jdGlvbltdO1xuICB9KSA9PiB7XG4gICAgY29uc3QgQmFzZUNvbnRleHQgPSAoYXdhaXQgaW1wb3J0KCcuL2Jhc2UtY2xhc3Nlcy9iYXNlLWNvbnRleHQnKSlcbiAgICAgIC5CYXNlQ29udGV4dDtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlQ29udGV4dCgoKSA9PiAoe1xuICAgICAgY29udGV4dE5hbWU6ICdkZWZhdWx0JyxcbiAgICAgIGhvc3Q6IG9wdGlvbnMuaG9zdCxcbiAgICAgIGNvbnRleHRzOiB7IEJhc2VDb250ZXh0IH0sXG4gICAgICBkYXRhYmFzZTogdHJ1ZSxcbiAgICAgIGVudGl0aWVzOiBBcnJheS5mcm9tKG9wdGlvbnMuZW50aXRpZXMpIGFzIGFueSxcbiAgICAgIGNvbnRyb2xsZXJzOiBBcnJheS5mcm9tKG9wdGlvbnMuY29udHJvbGxlcnMpIGFzIGFueSxcbiAgICB9KSk7XG5cbiAgICBhd2FpdCBjb250ZXh0LmluaXRpYWxpemUoKTtcbiAgICByZXR1cm4gY29udGV4dDtcbiAgfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2luZGV4LnRzIl19
@@ -1,6 +1,5 @@
1
1
  import { inject as angularInject } from '@angular/core';
2
2
  import { Symbols } from './symbols';
3
- import { Subject } from 'rxjs';
4
3
  export const inject = (entity) => {
5
4
  return new Proxy({}, {
6
5
  get: (_, propName) => {
@@ -29,42 +28,9 @@ export const inject = (entity) => {
29
28
  },
30
29
  });
31
30
  };
32
- export const injectController = inject;
33
- export const injectSubscriberEvents = (subscriberClassResolveFn, eventName) => {
34
- const eventsSrc = new Subject();
35
- const obs = eventsSrc.asObservable();
36
- let isFirstSubscription = true;
37
- const proxiedObservable = new Proxy(obs, {
38
- get(target, prop, receiver) {
39
- if (prop === 'subscribe') {
40
- return (...args) => {
41
- if (isFirstSubscription) {
42
- isFirstSubscription = false;
43
- const subscriberClassFN = subscriberClassResolveFn();
44
- const ctx = subscriberClassFN[Symbols.ctxInClassOrClassObj];
45
- if (!ctx) {
46
- throw new Error(`You are trying to inject class without context. Use context like this;
47
-
48
- Taon.injectSubscriberEvents( ()=> ` +
49
- `MyContext.getInstance(${subscriberClassFN?.name}), '${eventName}' )
50
-
51
-
52
- `);
53
- }
54
- const subscriberInstance = ctx.getInstanceBy(subscriberClassFN);
55
- console.log('First subscription, you can access arguments here:', {
56
- subscriberClassFN,
57
- eventName,
58
- });
59
- }
60
- return target.subscribe(...args);
61
- };
62
- }
63
- return Reflect.get(target, prop, receiver);
64
- },
65
- });
66
- return proxiedObservable;
67
- };
31
+ /**
32
+ * TODO
33
+ */
68
34
  ;
69
35
  ({}); // @--end-of-file-for-module=taon lib/inject.ts
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2luamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxJQUFJLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3BDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0MsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUksTUFBdUMsRUFBSyxFQUFFO0lBQ3RFLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ25CLElBQUksUUFBUSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3JCLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FDM0IsT0FBTyxDQUFDLG9CQUFvQixDQUNWLENBQUM7WUFDckIsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7WUFDdkMsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQWlCLENBQUM7Z0JBRzFELElBQUksUUFBUSxLQUFLLHNCQUFzQixFQUFFLENBQUM7b0JBQ3hDLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztnQkFDRCxJQUFJLFFBQVEsS0FBSyx3QkFBd0IsRUFBRSxDQUFDO29CQUMxQyxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BDLENBQUM7Z0JBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTO29CQUNoQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBTXZCLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztZQUdELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLENBQUM7S0FDRixDQUNHLENBQUM7QUFDVCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFPdkMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsd0JBQXlELEVBQ3pELFNBQWtCLEVBQ2MsRUFBRTtJQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztJQUNwRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFckMsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFFL0IsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDdkMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUTtZQUN4QixJQUFJLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUU7b0JBQ3hCLElBQUksbUJBQW1CLEVBQUUsQ0FBQzt3QkFDeEIsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO3dCQUM1QixNQUFNLGlCQUFpQixHQUNyQix3QkFBd0IsRUFBUyxDQUFDO3dCQUNwQyxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FDM0IsT0FBTyxDQUFDLG9CQUFvQixDQUNWLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzs0QkFDVCxNQUFNLElBQUksS0FBSyxDQUNiOztpREFFaUM7Z0NBQy9CLHlCQUF5QixpQkFBaUIsRUFBRSxJQUFJLE9BQU8sU0FBZ0I7OztlQUcxRSxDQUNBLENBQUM7d0JBQ0osQ0FBQzt3QkFDRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFHaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsRUFBRTs0QkFDaEUsaUJBQWlCOzRCQUNqQixTQUFTO3lCQUNWLENBQUMsQ0FBQztvQkFFTCxDQUFDO29CQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8saUJBQW1ELENBQUM7QUFDN0QsQ0FBQyxDQUFDO0FBRUQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrQ0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBpbmplY3QgYXMgYW5ndWxhckluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRDb250ZXh0IH0gZnJvbSAnLi9lbmRwb2ludC1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQmFzZUluamVjdG9yIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1pbmplY3Rvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IEJhc2VDbGFzcyB9IGZyb20gJy4vYmFzZS1jbGFzc2VzL2Jhc2UtY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgaW5qZWN0ID0gPFQ+KGVudGl0eTogKCkgPT4gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQgPT4ge1xuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHt9LFxuICAgIHtcbiAgICAgIGdldDogKF8sIHByb3BOYW1lKSA9PiB7XG4gICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2hhc093blByb3BlcnR5Jykge1xuICAgICAgICAgIHJldHVybiAoKSA9PiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN0b3IgPSBlbnRpdHkoKTtcbiAgICAgICAgY29uc3QgY29udGV4dEZyb21DbGFzcyA9IGN0b3JbXG4gICAgICAgICAgU3ltYm9scy5jdHhJbkNsYXNzT3JDbGFzc09ialxuICAgICAgICBdIGFzIEVuZHBvaW50Q29udGV4dDtcbiAgICAgICAgY29uc3QgcmVzdWx0Q29udGV4dCA9IGNvbnRleHRGcm9tQ2xhc3M7XG4gICAgICAgIGlmIChyZXN1bHRDb250ZXh0KSB7XG4gICAgICAgICAgbGV0IGluc3RhbmNlID0gcmVzdWx0Q29udGV4dC5pbmplY3QoY3RvcikgYXMgQmFzZUluamVjdG9yO1xuXG5cbiAgICAgICAgICBpZiAocHJvcE5hbWUgPT09ICdnZXRPcmlnaW5hbFByb3RvdHlwZScpIHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaW5zdGFuY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJvcE5hbWUgPT09ICdnZXRPcmlnaW5hbENvbnN0cnVjdG9yJykge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IGluc3RhbmNlLmNvbnN0cnVjdG9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG1ldGhvZHMgPSBjdG9yW1N5bWJvbHMuY2xhc3NNZXRob2RzTmFtZXNdIHx8IFtdO1xuICAgICAgICAgIGNvbnN0IGlzTWV0aG9kcyA9IG1ldGhvZHMuaW5jbHVkZXMocHJvcE5hbWUpO1xuXG4gICAgICAgICAgY29uc3QgbWV0aG9kT3JQcm9wZXJ0eSA9IGlzTWV0aG9kc1xuICAgICAgICAgICAgPyBpbnN0YW5jZVtwcm9wTmFtZV0uYmluZChpbnN0YW5jZSlcbiAgICAgICAgICAgIDogaW5zdGFuY2VbcHJvcE5hbWVdO1xuXG5cblxuXG5cbiAgICAgICAgICByZXR1cm4gbWV0aG9kT3JQcm9wZXJ0eTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgcmV0dXJuIGFuZ3VsYXJJbmplY3QoY3RvcilbcHJvcE5hbWVdO1xuXG4gICAgICB9LFxuICAgIH0sXG4gICkgYXMgVDtcbn07XG5cbmV4cG9ydCBjb25zdCBpbmplY3RDb250cm9sbGVyID0gaW5qZWN0O1xuXG5leHBvcnQgdHlwZSBTdWJzY2J0aW9uRXZlbnQ8VD4gPSB7XG4gIG5hbWU6IGtleW9mIFQ7XG4gIGRhdGE6IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbmplY3RTdWJzY3JpYmVyRXZlbnRzID0gPFQ+KFxuICBzdWJzY3JpYmVyQ2xhc3NSZXNvbHZlRm46ICgpID0+IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsXG4gIGV2ZW50TmFtZToga2V5b2YgVCxcbik6IE9ic2VydmFibGU8U3Vic2NidGlvbkV2ZW50PFQ+PiA9PiB7XG4gIGNvbnN0IGV2ZW50c1NyYyA9IG5ldyBTdWJqZWN0PFN1YnNjYnRpb25FdmVudDxUPj4oKTtcbiAgY29uc3Qgb2JzID0gZXZlbnRzU3JjLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGxldCBpc0ZpcnN0U3Vic2NyaXB0aW9uID0gdHJ1ZTtcblxuICBjb25zdCBwcm94aWVkT2JzZXJ2YWJsZSA9IG5ldyBQcm94eShvYnMsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgaWYgKHByb3AgPT09ICdzdWJzY3JpYmUnKSB7XG4gICAgICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICBpZiAoaXNGaXJzdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgaXNGaXJzdFN1YnNjcmlwdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlckNsYXNzRk46IHR5cGVvZiBCYXNlQ2xhc3MgPVxuICAgICAgICAgICAgICBzdWJzY3JpYmVyQ2xhc3NSZXNvbHZlRm4oKSBhcyBhbnk7XG4gICAgICAgICAgICBjb25zdCBjdHggPSBzdWJzY3JpYmVyQ2xhc3NGTltcbiAgICAgICAgICAgICAgU3ltYm9scy5jdHhJbkNsYXNzT3JDbGFzc09ialxuICAgICAgICAgICAgXSBhcyBFbmRwb2ludENvbnRleHQ7XG4gICAgICAgICAgICBpZiAoIWN0eCkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFlvdSBhcmUgdHJ5aW5nIHRvIGluamVjdCBjbGFzcyB3aXRob3V0IGNvbnRleHQuIFVzZSBjb250ZXh0IGxpa2UgdGhpcztcblxuICAgICAgICAgICAgICBUYW9uLmluamVjdFN1YnNjcmliZXJFdmVudHMoICgpPT4gYCArXG4gICAgICAgICAgICAgICAgICBgTXlDb250ZXh0LmdldEluc3RhbmNlKCR7c3Vic2NyaWJlckNsYXNzRk4/Lm5hbWV9KSwgJyR7ZXZlbnROYW1lIGFzIGFueX0nIClcblxuXG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVySW5zdGFuY2UgPSBjdHguZ2V0SW5zdGFuY2VCeShzdWJzY3JpYmVyQ2xhc3NGTik7XG5cblxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZpcnN0IHN1YnNjcmlwdGlvbiwgeW91IGNhbiBhY2Nlc3MgYXJndW1lbnRzIGhlcmU6Jywge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyQ2xhc3NGTixcbiAgICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRhcmdldC5zdWJzY3JpYmUoLi4uYXJncyk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHByb3hpZWRPYnNlcnZhYmxlIGFzIE9ic2VydmFibGU8U3Vic2NidGlvbkV2ZW50PFQ+Pjtcbn07XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9pbmplY3QudHMiXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2luamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsTUFBTSxJQUFJLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXBDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFJLE1BQXVDLEVBQUssRUFBRTtJQUN0RSxPQUFPLElBQUksS0FBSyxDQUNkLEVBQUUsRUFDRjtRQUNFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNuQixJQUFJLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNyQixDQUFDO1lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQzNCLE9BQU8sQ0FBQyxvQkFBb0IsQ0FDVixDQUFDO1lBQ3JCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDO1lBQ3ZDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksUUFBUSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFpQixDQUFDO2dCQUcxRCxJQUFJLFFBQVEsS0FBSyxzQkFBc0IsRUFBRSxDQUFDO29CQUN4QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9DLENBQUM7Z0JBQ0QsSUFBSSxRQUFRLEtBQUssd0JBQXdCLEVBQUUsQ0FBQztvQkFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDO2dCQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUztvQkFDaEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNuQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQU12QixPQUFPLGdCQUFnQixDQUFDO1lBQzFCLENBQUM7WUFHRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2QyxDQUFDO0tBQ0YsQ0FDRyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBU0Y7O0dBRUc7QUF5REYsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrQ0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBpbmplY3QgYXMgYW5ndWxhckluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRDb250ZXh0IH0gZnJvbSAnLi9lbmRwb2ludC1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQmFzZUluamVjdG9yIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1pbmplY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBpbmplY3QgPSA8VD4oZW50aXR5OiAoKSA9PiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCA9PiB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZ2V0OiAoXywgcHJvcE5hbWUpID0+IHtcbiAgICAgICAgaWYgKHByb3BOYW1lID09PSAnaGFzT3duUHJvcGVydHknKSB7XG4gICAgICAgICAgcmV0dXJuICgpID0+IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3RvciA9IGVudGl0eSgpO1xuICAgICAgICBjb25zdCBjb250ZXh0RnJvbUNsYXNzID0gY3RvcltcbiAgICAgICAgICBTeW1ib2xzLmN0eEluQ2xhc3NPckNsYXNzT2JqXG4gICAgICAgIF0gYXMgRW5kcG9pbnRDb250ZXh0O1xuICAgICAgICBjb25zdCByZXN1bHRDb250ZXh0ID0gY29udGV4dEZyb21DbGFzcztcbiAgICAgICAgaWYgKHJlc3VsdENvbnRleHQpIHtcbiAgICAgICAgICBsZXQgaW5zdGFuY2UgPSByZXN1bHRDb250ZXh0LmluamVjdChjdG9yKSBhcyBCYXNlSW5qZWN0b3I7XG5cblxuICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2dldE9yaWdpbmFsUHJvdG90eXBlJykge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2dldE9yaWdpbmFsQ29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gaW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWV0aG9kcyA9IGN0b3JbU3ltYm9scy5jbGFzc01ldGhvZHNOYW1lc10gfHwgW107XG4gICAgICAgICAgY29uc3QgaXNNZXRob2RzID0gbWV0aG9kcy5pbmNsdWRlcyhwcm9wTmFtZSk7XG5cbiAgICAgICAgICBjb25zdCBtZXRob2RPclByb3BlcnR5ID0gaXNNZXRob2RzXG4gICAgICAgICAgICA/IGluc3RhbmNlW3Byb3BOYW1lXS5iaW5kKGluc3RhbmNlKVxuICAgICAgICAgICAgOiBpbnN0YW5jZVtwcm9wTmFtZV07XG5cblxuXG5cblxuICAgICAgICAgIHJldHVybiBtZXRob2RPclByb3BlcnR5O1xuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gYW5ndWxhckluamVjdChjdG9yKVtwcm9wTmFtZV07XG5cbiAgICAgIH0sXG4gICAgfSxcbiAgKSBhcyBUO1xufTtcblxuXG5cblxuXG5cblxuXG4vKipcbiAqIFRPRE9cbiAqL1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9pbmplY3QudHMiXX0=
@@ -67,4 +67,4 @@ export var Models;
67
67
  })(Models || (Models = {}));
68
68
  ;
69
69
  ({}); // @--end-of-file-for-module=taon lib/models.ts
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE1BQU0sS0FBVyxNQUFNLENBb1J0QjtBQXBSRCxXQUFpQixNQUFNO0lBUXJCLElBQVksU0FNWDtJQU5ELFdBQVksU0FBUztRQUNuQiw4QkFBaUIsQ0FBQTtRQUNqQixzQ0FBeUIsQ0FBQTtRQUN6QixzQ0FBeUIsQ0FBQTtRQUN6QixrQ0FBcUIsQ0FBQTtRQUNyQixzQ0FBeUIsQ0FBQTtJQUMzQixDQUFDLEVBTlcsU0FBUyxHQUFULGdCQUFTLEtBQVQsZ0JBQVMsUUFNcEI7SUFFWSxtQkFBWSxHQUFHO1FBQzFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7UUFDOUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYTtRQUNyQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjO1FBQ3RDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVc7UUFDakMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYTtLQUd0QyxDQUFDO0lBNEdGLE1BQWEsb0JBQW9CO0tBRWhDO0lBRlksMkJBQW9CLHVCQUVoQyxDQUFBO0lBSUQsTUFBYSxXQUFXO0tBTXZCO0lBTlksa0JBQVcsY0FNdkIsQ0FBQTtJQUlELE1BQWEsWUFBWTtRQUF6QjtZQW9CRSxlQUFVLEdBQXlDLEVBQUUsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFyQlksbUJBQVksZUFxQnhCLENBQUE7SUFJRCxNQUFhLGdCQUFpQixTQUFRLG9CQUFvQjtRQUExRDs7WUFJRSxZQUFPLEdBQTJDLEVBQUUsQ0FBQztRQUN2RCxDQUFDO0tBQUE7SUFMWSx1QkFBZ0IsbUJBSzVCLENBQUE7SUFJRCxNQUFhLHVCQUF3QixTQUFRLGdCQUFnQjtLQUc1RDtJQUhZLDhCQUF1QiwwQkFHbkMsQ0FBQTtJQUlELElBQWlCLElBQUksQ0FxRnBCO0lBckZELFdBQWlCLElBQUk7UUFDTCxTQUFJLEdBQUcsYUFBYSxDQUFDO1FBK0NuQyxNQUFhLE1BQU07WUFLakIsWUFDUyxPQUFlLEVBQ2QsT0FBK0IsR0FBRztnQkFEbkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtnQkFDZCxTQUFJLEdBQUosSUFBSSxDQUE4QjtnQkFOckMsYUFBUSxHQUFHLEdBQVcsRUFBRTtvQkFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN0QixDQUFDLENBQUM7WUFLQyxDQUFDO1lBRUksTUFBTSxDQUFDLE1BQU0sQ0FDbkIsT0FBZSxFQUNmLE9BQStCLEdBQUc7Z0JBRWxDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWlCO2dCQUM1QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLFVBQVUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUNuRCxDQUFDO1lBQ0osQ0FBQztZQUVNLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLE9BQWUsRUFDZixPQUErQixHQUFHO2dCQUVsQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRjtRQTdCWSxXQUFNLFNBNkJsQixDQUFBO0lBUUgsQ0FBQyxFQXJGZ0IsSUFBSSxHQUFKLFdBQUksS0FBSixXQUFJLFFBcUZwQjtBQUVILENBQUMsRUFwUmdCLE1BQU0sS0FBTixNQUFNLFFBb1J0QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0NBQStDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIFJlcXVlc3RIYW5kbGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyAgIFJlc3BvbnNlIGFzIEV4cHJlc3NSZXNwb25zZSwgICBSZXF1ZXN0IGFzIEV4cHJlc3NSZXF1ZXN0LCB9IGZyb20gJ2V4cHJlc3MnOy8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgTW9kZWxzIGFzIE1vZGVsc05nMlJlc3QgfSBmcm9tICduZzItcmVzdC93ZWJzcWwnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHR5cGUgeyBUYW9uQ29udHJvbGxlck9wdGlvbnMgfSBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgdHlwZSB7IFRhb25FbnRpdHlPcHRpb25zIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTW9kZWxzIHtcbiAgZXhwb3J0IHR5cGUgRnJhbWV3b3JrTW9kZSA9XG4gICAgfCAnYmFja2VuZC1mcm9udGVuZCh0Y3ArdWRwKSdcbiAgICB8ICdyZW1vdGUtYmFja2VuZCh0Y3ArdWRwKSdcbiAgICB8ICdiYWNrZW5kLWZyb250ZW5kKGlwYy1lbGVjdHJvbiknXG4gICAgfCAnYmFja2VuZC1mcm9udGVuZCh3ZWJzcWwpJztcblxuXG4gIGV4cG9ydCBlbnVtIENsYXNzVHlwZSB7XG4gICAgRU5USVRZID0gJ0VOVElUWScsXG4gICAgQ09OVFJPTExFUiA9ICdDT05UUk9MTEVSJyxcbiAgICBSRVBPU0lUT1JZID0gJ1JFUE9TSVRPUlknLFxuICAgIFBST1ZJREVSID0gJ1BST1ZJREVSJyxcbiAgICBTVUJTQ1JJQkVSID0gJ1NVQlNDUklCRVInLFxuICB9XG5cbiAgZXhwb3J0IGNvbnN0IENsYXNzVHlwZUtleSA9IHtcbiAgICBbQ2xhc3NUeXBlLkVOVElUWV06ICdlbnRpdGllcycsXG4gICAgW0NsYXNzVHlwZS5DT05UUk9MTEVSXTogJ2NvbnRyb2xsZXJzJyxcbiAgICBbQ2xhc3NUeXBlLlJFUE9TSVRPUlldOiAncmVwb3NpdG9yaWVzJyxcbiAgICBbQ2xhc3NUeXBlLlBST1ZJREVSXTogJ3Byb3ZpZGVycycsXG4gICAgW0NsYXNzVHlwZS5TVUJTQ1JJQkVSXTogJ3N1YnNjcmliZXJzJyxcbiAgfSBhcyB7XG4gICAgW2tleSBpbiBDbGFzc1R5cGVdOiBrZXlvZiBDb250ZXh0T3B0aW9uczxhbnksIGFueSwgYW55LCBhbnksIGFueSwgYW55PjtcbiAgfTtcblxuXG5cblxuICBleHBvcnQgdHlwZSBNaWRkbGV3YXJlVHlwZSA9IFtGdW5jdGlvbiwgYW55W11dO1xuXG5cblxuICBleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQ29uZmlnIHtcbiAgICAvKipcbiAgICAgKiBkYXRhYmFzZSBuYW1lXG4gICAgICovXG4gICAgZGF0YWJhc2U/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogb25seSBmb3IgZmlsZSBiYXNlIGRiOiBzcWxpdGUsIHNxbGpzXG4gICAgICovXG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgc3luY2hyb25pemU6IGJvb2xlYW47XG4gICAgZHJvcFNjaGVtYTogYm9vbGVhbjtcbiAgICB0eXBlPzogQ29yZU1vZGVscy5EYXRhYmFzZVR5cGU7XG5cbiAgICBhdXRvU2F2ZTogYm9vbGVhbjsgLy8gVE9ETyB3aGF0IGlzIHRoaXMgP1xuICAgIC8qKlxuICAgICAqIGZvciB3ZWJzcWwgZGIgbW9kZVxuICAgICAqL1xuICAgIHVzZUxvY2FsRm9yYWdlPzogYm9vbGVhbjtcbiAgICBsb2dnaW5nOiBib29sZWFuO1xuXG4gICAgZGF0YWJhc2VQb3J0PzogbnVtYmVyO1xuICAgIGRhdGFiYXNlSG9zdD86IHN0cmluZztcbiAgICBkYXRhYmFzZVVzZXJuYW1lPzogc3RyaW5nO1xuICAgIGRhdGFiYXNlUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIH1cblxuXG5cblxuICBleHBvcnQgdHlwZSBJU2Vzc2lvbiA9IHtcbiAgICBzZWNyZXQ/OiBzdHJpbmc7XG4gICAgc2F2ZVVuaW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIG1heCBhZ2Ugb2Ygc2Vzc2lvblxuICAgICAqL1xuICAgIGNvb2tpZU1heEFnZT86IG51bWJlcjtcbiAgICBzZWN1cmU/OiBib29sZWFuO1xuICAgIHJlc2F2ZT86IGJvb2xlYW47XG4gIH07XG5cblxuXG4gIGV4cG9ydCB0eXBlIENvbnRlY3Rpb25PcHRpb25zTG9ncyA9IHtcbiAgICBodHRwOiBib29sZWFuO1xuICAgIHJlYWx0aW1lOiBib29sZWFuO1xuICAgIGZyYW1ld29yazogYm9vbGVhbjtcbiAgICBkYjogYm9vbGVhbjtcbiAgfTtcbiAgZXhwb3J0IGludGVyZmFjZSBDb250ZXh0T3B0aW9uczxcbiAgICBDT05URVhUUyxcbiAgICBDT05UUk9MTEVSUyxcbiAgICBFTlRJVElFUyxcbiAgICBSRVBPU0lUT1JJRVMsXG4gICAgUFJPVklERVJTLFxuICAgIFNVQlNDUklCRVJTLFxuICA+IHtcbiAgICBjb250ZXh0TmFtZTogc3RyaW5nO1xuICAgIGhvc3Q/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAqIGZyb250ZW5kIGhvc3Qgb25seSBuZWVkZWQgd2hlbiB3ZSBhcmUgdXNpbmdcbiAgICogd2l0aENyZWRlbnRpYWxzIGZvciBheGlvc1xuICAgKiBhbmQgc2Vzc2lvbiBjb29raWVcbiAgICovXG4gICAgZnJvbnRlbmRIb3N0Pzogc3RyaW5nO1xuICAgIHJlbW90ZUhvc3Q/OiBzdHJpbmc7XG4gICAgdXNlSXBjV2hlbkVsZWN0cm9uPzogYm9vbGVhbjtcbiAgICBjb250ZXh0cz86IENPTlRFWFRTO1xuICAgIGNvbnRyb2xsZXJzPzogQ09OVFJPTExFUlM7XG4gICAgZW50aXRpZXM/OiBFTlRJVElFUztcbiAgICByZXBvc2l0b3JpZXM/OiBSRVBPU0lUT1JJRVM7XG4gICAgcHJvdmlkZXJzPzogUFJPVklERVJTO1xuICAgIHN1YnNjcmliZXJzPzogU1VCU0NSSUJFUlM7XG4gICAgc2Vzc2lvbj86IElTZXNzaW9uO1xuICAgIHByb2R1Y3Rpb25Nb2RlPzogYm9vbGVhbjtcbiAgICBhYnN0cmFjdD86IGJvb2xlYW47XG4gICAgbG9ncz86IGJvb2xlYW4gfCBDb250ZWN0aW9uT3B0aW9uc0xvZ3M7XG4gICAgZGF0YWJhc2U/OiBib29sZWFuIHwgRGF0YWJhc2VDb25maWc7XG4gICAgZGlzYWJsZWRSZWFsdGltZT86IGJvb2xlYW47XG4gICAgaHR0cHM/OiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIGNlcnQ6IHN0cmluZztcbiAgICB9O1xuICAgIHB1YmxpY0Fzc2V0cz86IHsgc2VydmVyUGF0aDogc3RyaW5nOyBsb2NhdGlvbk9uRGlzazogc3RyaW5nIH1bXTtcbiAgICBtaWRkbGV3YXJlcz86IE1pZGRsZXdhcmVUeXBlW107XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBvbmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZVxuICAgICAqL1xuICAgIG92ZXJyaWRlPzoge1xuICAgICAgZW50aXRpZXM/OiBGdW5jdGlvbltdO1xuICAgICAgY29udHJvbGxlcnM/OiBGdW5jdGlvbltdO1xuICAgICAgcmVwb3NpdG9yaWVzPzogRnVuY3Rpb25bXTtcbiAgICAgIHByb3ZpZGVycz86IEZ1bmN0aW9uW107XG4gICAgICBzdWJzY3JpYmVycz86IEZ1bmN0aW9uW107XG4gICAgfTtcbiAgfVxuXG5cblxuICBleHBvcnQgY2xhc3MgRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICB9XG5cblxuXG4gIGV4cG9ydCBjbGFzcyBQYXJhbUNvbmZpZyB7XG4gICAgcGFyYW1OYW1lOiBzdHJpbmc7XG4gICAgcGFyYW1UeXBlOiBDb3JlTW9kZWxzLlBhcmFtVHlwZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGRlZmF1bHRUeXBlOiBhbnk7XG4gICAgZXhwaXJlSW5TZWNvbmRzPzogbnVtYmVyO1xuICB9XG5cblxuXG4gIGV4cG9ydCBjbGFzcyBNZXRob2RDb25maWcge1xuICAgIG1ldGhvZE5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBwYXRoIGlzIGdsb2JhbCBpbiBleHByZXNzIGFwcFxuICAgICAqL1xuICAgIGdsb2JhbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgZGVmYXVsdCBjb250ZW50IHR5cGVcbiAgICAgKi9cbiAgICBjb250ZW50VHlwZT86IGFueTtcbiAgICAvKipcbiAgICAgKiBvdmVycmlkZSBkZWZhdWx0IGF4aXNvIHJlc3BvbnNlIHR5cGVcbiAgICAgKi9cbiAgICByZXNwb25zZVR5cGU/OiBhbnk7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICB0eXBlOiBDb3JlTW9kZWxzLkh0dHBNZXRob2Q7XG5cbiAgICByZXF1ZXN0SGFuZGxlcjogYW55O1xuXG4gICAgcGFyYW1ldGVyczogeyBbcGFyYW1OYW1lOiBzdHJpbmddOiBQYXJhbUNvbmZpZyB9ID0ge307XG4gIH1cblxuXG5cbiAgZXhwb3J0IGNsYXNzIENvbnRyb2xsZXJDb25maWcgZXh0ZW5kcyBEZWNvcmF0b3JBYnN0cmFjdE9wdCB7XG4gICAgcmVhbHRpbWU/OiBib29sZWFuO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB1bmlxdWVLZXk/OiBzdHJpbmc7XG4gICAgbWV0aG9kczogeyBbbWV0aG9kTmFtZTogc3RyaW5nXTogTWV0aG9kQ29uZmlnIH0gPSB7fTtcbiAgfVxuXG5cblxuICBleHBvcnQgY2xhc3MgUnVudGltZUNvbnRyb2xsZXJDb25maWcgZXh0ZW5kcyBDb250cm9sbGVyQ29uZmlnIHtcbiAgICBjYWxjdWxhdGVkUGF0aD86IHN0cmluZztcbiAgICBicm93c2VyVHJhbnNmb3JtRm4/OiAoZW50aXR5OiBhbnkpID0+IGFueTtcbiAgfVxuXG5cblxuICBleHBvcnQgbmFtZXNwYWNlIEh0dHAge1xuICAgIGV4cG9ydCBpbXBvcnQgUmVzdCA9IE1vZGVsc05nMlJlc3Q7XG5cbiAgICBleHBvcnQgdHlwZSBDb250ZXh0RU5EUE9JTlQgPSB7IHRhcmdldDogRnVuY3Rpb247IGluaXRGTjogRnVuY3Rpb24gfTtcblxuICAgIGV4cG9ydCB0eXBlIEZvcm1seUZyb21UeXBlID0gJ21hdGVyaWFsJyB8ICdib290c3RyYXAnO1xuXG4gICAgZXhwb3J0IHR5cGUgRXhwcmVzc0NvbnRleHQ8VD4gPSAoXG4gICAgICByZXE6IEV4cHJlc3NSZXF1ZXN0LFxuICAgICAgcmVzOiBFeHByZXNzUmVzcG9uc2UsXG4gICAgKSA9PiBUO1xuXG4gICAgZXhwb3J0IHR5cGUgU3luY1Jlc3BvbnNlPFQ+ID0gc3RyaW5nIHwgVDtcblxuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlRnVuY09wdDxUPiA9IHtcbiAgICAgIGxpbWl0U2l6ZT86IChcbiAgICAgICAgZW50aWVzOiBGdW5jdGlvbiB8IEZ1bmN0aW9uW10sXG4gICAgICAgIGluY2x1ZGU6IHN0cmluZ1tdLFxuICAgICAgICBleGNsdWRlOiBzdHJpbmdbXSxcbiAgICAgICkgPT4gdm9pZDtcbiAgICB9O1xuXG4gICAgZXhwb3J0IHR5cGUgU3luY1Jlc3BvbnNlRnVuYzxUPiA9IChcbiAgICAgIG9wdGlvbnM/OiBSZXNwb25zZUZ1bmNPcHQ8VD4sXG4gICAgKSA9PiBTeW5jUmVzcG9uc2U8VD47XG4gICAgZXhwb3J0IHR5cGUgTWl4UmVzcG9uc2U8VD4gPSBTeW5jUmVzcG9uc2U8VD4gfCBFeHByZXNzQ29udGV4dDxUPjtcblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50QWN0aW9uPFQ+IHtcbiAgICAgIHJlY2VpdmVkPzogUmVzdC5Qcm9taXNlT2JzZXJ2YWJsZU1peDxSZXN0Lkh0dHBSZXNwb25zZTxUPj47XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBfX1Jlc3BvbnNlPFQ+IHtcblxuICAgICAgc2VuZD86IE1peFJlc3BvbnNlPFQ+O1xuXG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBBc3luY1Jlc3BvbnNlPFQ+IHtcbiAgICAgIChcbiAgICAgICAgcmVxPzogRXhwcmVzc1JlcXVlc3QsXG4gICAgICAgIHJlcz86IEV4cHJlc3NSZXNwb25zZSxcbiAgICAgICk6IFByb21pc2U8U3luY1Jlc3BvbnNlPFQ+IHwgU3luY1Jlc3BvbnNlRnVuYzxUPj47XG4gICAgfVxuXG4gICAgZXhwb3J0IHR5cGUgUmVzcG9uc2U8VCA9IHN0cmluZz4gPSAoX19SZXNwb25zZTxUPiB8IEFzeW5jUmVzcG9uc2U8VD4pICZcbiAgICAgIENsaWVudEFjdGlvbjxUPiAmXG4gICAgICBfX1Jlc3BvbnNlPFQ+O1xuXG4gICAgZXhwb3J0IGNsYXNzIEVycm9ycyB7XG4gICAgICBwdWJsaWMgdG9TdHJpbmcgPSAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcbiAgICAgIH07XG5cbiAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgY29kZTogTW9kZWxzTmcyUmVzdC5IdHRwQ29kZSA9IDQwMCxcbiAgICAgICkge31cblxuICAgICAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGNvZGU6IE1vZGVsc05nMlJlc3QuSHR0cENvZGUgPSA0MDAsXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFcnJvcnMobWVzc2FnZSwgY29kZSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBzdGF0aWMgZW50aXR5Tm90Rm91bmQoZW50aXR5PzogRnVuY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIEVycm9ycy5jcmVhdGUoXG4gICAgICAgICAgYEVudGl0eSAke0NsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eSl9IG5vdCBmb3VuZGAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBzdGF0aWMgY3VzdG9tKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGNvZGU6IE1vZGVsc05nMlJlc3QuSHR0cENvZGUgPSA0MDAsXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIEVycm9ycy5jcmVhdGUobWVzc2FnZSwgY29kZSk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIEF1dGhDYWxsQmFjayB7XG4gICAgICAobWV0aG9kUmVmZXJlbmNlOiBGdW5jdGlvbik6IFJlcXVlc3RIYW5kbGVyO1xuICAgIH1cblxuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvbW9kZWxzLnRzIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxLQUFLO0FBQ0wsS0FBSztBQUVMLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE1BQU0sS0FBVyxNQUFNLENBNlJ0QjtBQTdSRCxXQUFpQixNQUFNO0lBU3JCLElBQVksU0FNWDtJQU5ELFdBQVksU0FBUztRQUNuQiw4QkFBaUIsQ0FBQTtRQUNqQixzQ0FBeUIsQ0FBQTtRQUN6QixzQ0FBeUIsQ0FBQTtRQUN6QixrQ0FBcUIsQ0FBQTtRQUNyQixzQ0FBeUIsQ0FBQTtJQUMzQixDQUFDLEVBTlcsU0FBUyxHQUFULGdCQUFTLEtBQVQsZ0JBQVMsUUFNcEI7SUFFWSxtQkFBWSxHQUFHO1FBQzFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7UUFDOUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYTtRQUNyQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjO1FBQ3RDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVc7UUFDakMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYTtLQUd0QyxDQUFDO0lBb0hGLE1BQWEsb0JBQW9CO0tBRWhDO0lBRlksMkJBQW9CLHVCQUVoQyxDQUFBO0lBSUQsTUFBYSxXQUFXO0tBTXZCO0lBTlksa0JBQVcsY0FNdkIsQ0FBQTtJQUlELE1BQWEsWUFBWTtRQUF6QjtZQW9CRSxlQUFVLEdBQXlDLEVBQUUsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFyQlksbUJBQVksZUFxQnhCLENBQUE7SUFJRCxNQUFhLGdCQUFpQixTQUFRLG9CQUFvQjtRQUExRDs7WUFJRSxZQUFPLEdBQTJDLEVBQUUsQ0FBQztRQUN2RCxDQUFDO0tBQUE7SUFMWSx1QkFBZ0IsbUJBSzVCLENBQUE7SUFJRCxNQUFhLHVCQUF3QixTQUFRLGdCQUFnQjtLQUc1RDtJQUhZLDhCQUF1QiwwQkFHbkMsQ0FBQTtJQUlELElBQWlCLElBQUksQ0FxRnBCO0lBckZELFdBQWlCLElBQUk7UUFDTCxTQUFJLEdBQUcsYUFBYSxDQUFDO1FBK0NuQyxNQUFhLE1BQU07WUFLakIsWUFDUyxPQUFlLEVBQ2QsT0FBK0IsR0FBRztnQkFEbkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtnQkFDZCxTQUFJLEdBQUosSUFBSSxDQUE4QjtnQkFOckMsYUFBUSxHQUFHLEdBQVcsRUFBRTtvQkFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUN0QixDQUFDLENBQUM7WUFLQyxDQUFDO1lBRUksTUFBTSxDQUFDLE1BQU0sQ0FDbkIsT0FBZSxFQUNmLE9BQStCLEdBQUc7Z0JBRWxDLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWlCO2dCQUM1QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLFVBQVUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUNuRCxDQUFDO1lBQ0osQ0FBQztZQUVNLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLE9BQWUsRUFDZixPQUErQixHQUFHO2dCQUVsQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRjtRQTdCWSxXQUFNLFNBNkJsQixDQUFBO0lBUUgsQ0FBQyxFQXJGZ0IsSUFBSSxHQUFKLFdBQUksS0FBSixXQUFJLFFBcUZwQjtBQUVILENBQUMsRUE3UmdCLE1BQU0sS0FBTixNQUFNLFFBNlJ0QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0NBQStDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIFJlcXVlc3RIYW5kbGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyAgIFJlc3BvbnNlIGFzIEV4cHJlc3NSZXNwb25zZSwgICBSZXF1ZXN0IGFzIEV4cHJlc3NSZXF1ZXN0LCB9IGZyb20gJ2V4cHJlc3MnOy8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgTW9kZWxzIGFzIE1vZGVsc05nMlJlc3QgfSBmcm9tICduZzItcmVzdC93ZWJzcWwnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHR5cGUgeyBUYW9uQ29udHJvbGxlck9wdGlvbnMgfSBmcm9tICcuL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgdHlwZSB7IFRhb25FbnRpdHlPcHRpb25zIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvcic7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTW9kZWxzIHtcbiAgZXhwb3J0IHR5cGUgRnJhbWV3b3JrTW9kZSA9XG4gICAgfCAnYmFja2VuZC1mcm9udGVuZCh0Y3ArdWRwKSdcbiAgICB8ICdyZW1vdGUtYmFja2VuZCh0Y3ArdWRwKSdcbiAgICB8ICdiYWNrZW5kLWZyb250ZW5kKGlwYy1lbGVjdHJvbiknXG4gICAgfCAnYmFja2VuZC1mcm9udGVuZCh3ZWJzcWwtZWxlY3Ryb24pJ1xuICAgIHwgJ2JhY2tlbmQtZnJvbnRlbmQod2Vic3FsKSc7XG5cblxuICBleHBvcnQgZW51bSBDbGFzc1R5cGUge1xuICAgIEVOVElUWSA9ICdFTlRJVFknLFxuICAgIENPTlRST0xMRVIgPSAnQ09OVFJPTExFUicsXG4gICAgUkVQT1NJVE9SWSA9ICdSRVBPU0lUT1JZJyxcbiAgICBQUk9WSURFUiA9ICdQUk9WSURFUicsXG4gICAgU1VCU0NSSUJFUiA9ICdTVUJTQ1JJQkVSJyxcbiAgfVxuXG4gIGV4cG9ydCBjb25zdCBDbGFzc1R5cGVLZXkgPSB7XG4gICAgW0NsYXNzVHlwZS5FTlRJVFldOiAnZW50aXRpZXMnLFxuICAgIFtDbGFzc1R5cGUuQ09OVFJPTExFUl06ICdjb250cm9sbGVycycsXG4gICAgW0NsYXNzVHlwZS5SRVBPU0lUT1JZXTogJ3JlcG9zaXRvcmllcycsXG4gICAgW0NsYXNzVHlwZS5QUk9WSURFUl06ICdwcm92aWRlcnMnLFxuICAgIFtDbGFzc1R5cGUuU1VCU0NSSUJFUl06ICdzdWJzY3JpYmVycycsXG4gIH0gYXMge1xuICAgIFtrZXkgaW4gQ2xhc3NUeXBlXToga2V5b2YgQ29udGV4dE9wdGlvbnM8YW55LCBhbnksIGFueSwgYW55LCBhbnksIGFueT47XG4gIH07XG5cblxuXG5cbiAgZXhwb3J0IHR5cGUgTWlkZGxld2FyZVR5cGUgPSBbRnVuY3Rpb24sIGFueVtdXTtcblxuXG5cbiAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUNvbmZpZyB7XG4gICAgLyoqXG4gICAgICogZGF0YWJhc2UgbmFtZVxuICAgICAqL1xuICAgIGRhdGFiYXNlPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIG9ubHkgZm9yIGZpbGUgYmFzZSBkYjogc3FsaXRlLCBzcWxqc1xuICAgICAqL1xuICAgIGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIHN5bmNocm9uaXplOiBib29sZWFuO1xuICAgIGRyb3BTY2hlbWE6IGJvb2xlYW47XG4gICAgdHlwZT86IENvcmVNb2RlbHMuRGF0YWJhc2VUeXBlO1xuXG4gICAgYXV0b1NhdmU6IGJvb2xlYW47IC8vIFRPRE8gd2hhdCBpcyB0aGlzID9cbiAgICAvKipcbiAgICAgKiBmb3Igd2Vic3FsIGRiIG1vZGVcbiAgICAgKi9cbiAgICB1c2VMb2NhbEZvcmFnZT86IGJvb2xlYW47XG4gICAgbG9nZ2luZzogYm9vbGVhbjtcblxuICAgIGRhdGFiYXNlUG9ydD86IG51bWJlcjtcbiAgICBkYXRhYmFzZUhvc3Q/OiBzdHJpbmc7XG4gICAgZGF0YWJhc2VVc2VybmFtZT86IHN0cmluZztcbiAgICBkYXRhYmFzZVBhc3N3b3JkPzogc3RyaW5nO1xuICB9XG5cblxuXG5cbiAgZXhwb3J0IHR5cGUgSVNlc3Npb24gPSB7XG4gICAgc2VjcmV0Pzogc3RyaW5nO1xuICAgIHNhdmVVbmluaXRpYWxpemVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBtYXggYWdlIG9mIHNlc3Npb25cbiAgICAgKi9cbiAgICBjb29raWVNYXhBZ2U/OiBudW1iZXI7XG4gICAgc2VjdXJlPzogYm9vbGVhbjtcbiAgICByZXNhdmU/OiBib29sZWFuO1xuICB9O1xuXG5cblxuICBleHBvcnQgdHlwZSBDb250ZWN0aW9uT3B0aW9uc0xvZ3MgPSB7XG4gICAgaHR0cD86IGJvb2xlYW47XG4gICAgcmVhbHRpbWU/OiBib29sZWFuO1xuICAgIGZyYW1ld29yaz86IGJvb2xlYW47XG4gICAgZGI/OiBib29sZWFuO1xuICB9O1xuICBleHBvcnQgaW50ZXJmYWNlIENvbnRleHRPcHRpb25zPFxuICAgIENPTlRFWFRTLFxuICAgIENPTlRST0xMRVJTLFxuICAgIEVOVElUSUVTLFxuICAgIFJFUE9TSVRPUklFUyxcbiAgICBQUk9WSURFUlMsXG4gICAgU1VCU0NSSUJFUlMsXG4gID4ge1xuICAgIGNvbnRleHROYW1lOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogaG9zdC9wb3J0IGZvciBpbml0aW5nIGJhY2tlbmQgc2VydmVyXG4gICAgICovXG4gICAgaG9zdD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBmcm9udGVuZCBob3N0IG9ubHkgbmVlZGVkIHdoZW4gd2UgYXJlXG4gICAgICogdXNpbmcgd2l0aENyZWRlbnRpYWxzIGZvciBheGlvc1xuICAgICAqIGFuZCBzZXNzaW9uIGNvb2tpZVxuICAgICAqIG9yIHJlYWx0aW1lIGNvbW11bmljYXRpb25cbiAgICAgKi9cbiAgICBmcm9udGVuZEhvc3Q/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogYmFja2VuZCB3YXkgb2YgY29tbXVuaWNhdGlvblxuICAgICAqIGJldHdlZW4gdGFvbiBiYWNrZW5kcy9wcm9jZXNzZXNcbiAgICAgKi9cbiAgICByZW1vdGVIb3N0Pzogc3RyaW5nO1xuICAgIHVzZUlwY1doZW5FbGVjdHJvbj86IGJvb2xlYW47XG4gICAgY29udGV4dHM/OiBDT05URVhUUztcbiAgICBjb250cm9sbGVycz86IENPTlRST0xMRVJTO1xuICAgIGVudGl0aWVzPzogRU5USVRJRVM7XG4gICAgcmVwb3NpdG9yaWVzPzogUkVQT1NJVE9SSUVTO1xuICAgIHByb3ZpZGVycz86IFBST1ZJREVSUztcbiAgICBzdWJzY3JpYmVycz86IFNVQlNDUklCRVJTO1xuICAgIHNlc3Npb24/OiBJU2Vzc2lvbjtcbiAgICBwcm9kdWN0aW9uTW9kZT86IGJvb2xlYW47XG4gICAgYWJzdHJhY3Q/OiBib29sZWFuO1xuICAgIGxvZ3M/OiBib29sZWFuIHwgQ29udGVjdGlvbk9wdGlvbnNMb2dzO1xuICAgIGRhdGFiYXNlPzogYm9vbGVhbiB8IERhdGFiYXNlQ29uZmlnO1xuICAgIGRpc2FibGVkUmVhbHRpbWU/OiBib29sZWFuO1xuICAgIGh0dHBzPzoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICBjZXJ0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBwdWJsaWNBc3NldHM/OiB7IHNlcnZlclBhdGg6IHN0cmluZzsgbG9jYXRpb25PbkRpc2s6IHN0cmluZyB9W107XG4gICAgbWlkZGxld2FyZXM/OiBNaWRkbGV3YXJlVHlwZVtdO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogb25seSBmb3IgZGVidWdnaW5nIHB1cnBvc2VcbiAgICAgKi9cbiAgICBvdmVycmlkZT86IHtcbiAgICAgIGVudGl0aWVzPzogRnVuY3Rpb25bXTtcbiAgICAgIGNvbnRyb2xsZXJzPzogRnVuY3Rpb25bXTtcbiAgICAgIHJlcG9zaXRvcmllcz86IEZ1bmN0aW9uW107XG4gICAgICBwcm92aWRlcnM/OiBGdW5jdGlvbltdO1xuICAgICAgc3Vic2NyaWJlcnM/OiBGdW5jdGlvbltdO1xuICAgIH07XG4gIH1cblxuXG5cbiAgZXhwb3J0IGNsYXNzIERlY29yYXRvckFic3RyYWN0T3B0IHtcbiAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgfVxuXG5cblxuICBleHBvcnQgY2xhc3MgUGFyYW1Db25maWcge1xuICAgIHBhcmFtTmFtZTogc3RyaW5nO1xuICAgIHBhcmFtVHlwZTogQ29yZU1vZGVscy5QYXJhbVR5cGU7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBkZWZhdWx0VHlwZTogYW55O1xuICAgIGV4cGlyZUluU2Vjb25kcz86IG51bWJlcjtcbiAgfVxuXG5cblxuICBleHBvcnQgY2xhc3MgTWV0aG9kQ29uZmlnIHtcbiAgICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogcGF0aCBpcyBnbG9iYWwgaW4gZXhwcmVzcyBhcHBcbiAgICAgKi9cbiAgICBnbG9iYWw/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIG92ZXJyaWRlIGRlZmF1bHQgY29udGVudCB0eXBlXG4gICAgICovXG4gICAgY29udGVudFR5cGU/OiBhbnk7XG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgZGVmYXVsdCBheGlzbyByZXNwb25zZSB0eXBlXG4gICAgICovXG4gICAgcmVzcG9uc2VUeXBlPzogYW55O1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgdHlwZTogQ29yZU1vZGVscy5IdHRwTWV0aG9kO1xuXG4gICAgcmVxdWVzdEhhbmRsZXI6IGFueTtcblxuICAgIHBhcmFtZXRlcnM6IHsgW3BhcmFtTmFtZTogc3RyaW5nXTogUGFyYW1Db25maWcgfSA9IHt9O1xuICB9XG5cblxuXG4gIGV4cG9ydCBjbGFzcyBDb250cm9sbGVyQ29uZmlnIGV4dGVuZHMgRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAgIHJlYWx0aW1lPzogYm9vbGVhbjtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgdW5pcXVlS2V5Pzogc3RyaW5nO1xuICAgIG1ldGhvZHM6IHsgW21ldGhvZE5hbWU6IHN0cmluZ106IE1ldGhvZENvbmZpZyB9ID0ge307XG4gIH1cblxuXG5cbiAgZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb250cm9sbGVyQ29uZmlnIGV4dGVuZHMgQ29udHJvbGxlckNvbmZpZyB7XG4gICAgY2FsY3VsYXRlZFBhdGg/OiBzdHJpbmc7XG4gICAgYnJvd3NlclRyYW5zZm9ybUZuPzogKGVudGl0eTogYW55KSA9PiBhbnk7XG4gIH1cblxuXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBIdHRwIHtcbiAgICBleHBvcnQgaW1wb3J0IFJlc3QgPSBNb2RlbHNOZzJSZXN0O1xuXG4gICAgZXhwb3J0IHR5cGUgQ29udGV4dEVORFBPSU5UID0geyB0YXJnZXQ6IEZ1bmN0aW9uOyBpbml0Rk46IEZ1bmN0aW9uIH07XG5cbiAgICBleHBvcnQgdHlwZSBGb3JtbHlGcm9tVHlwZSA9ICdtYXRlcmlhbCcgfCAnYm9vdHN0cmFwJztcblxuICAgIGV4cG9ydCB0eXBlIEV4cHJlc3NDb250ZXh0PFQ+ID0gKFxuICAgICAgcmVxOiBFeHByZXNzUmVxdWVzdCxcbiAgICAgIHJlczogRXhwcmVzc1Jlc3BvbnNlLFxuICAgICkgPT4gVDtcblxuICAgIGV4cG9ydCB0eXBlIFN5bmNSZXNwb25zZTxUPiA9IHN0cmluZyB8IFQ7XG5cbiAgICBleHBvcnQgdHlwZSBSZXNwb25zZUZ1bmNPcHQ8VD4gPSB7XG4gICAgICBsaW1pdFNpemU/OiAoXG4gICAgICAgIGVudGllczogRnVuY3Rpb24gfCBGdW5jdGlvbltdLFxuICAgICAgICBpbmNsdWRlOiBzdHJpbmdbXSxcbiAgICAgICAgZXhjbHVkZTogc3RyaW5nW10sXG4gICAgICApID0+IHZvaWQ7XG4gICAgfTtcblxuICAgIGV4cG9ydCB0eXBlIFN5bmNSZXNwb25zZUZ1bmM8VD4gPSAoXG4gICAgICBvcHRpb25zPzogUmVzcG9uc2VGdW5jT3B0PFQ+LFxuICAgICkgPT4gU3luY1Jlc3BvbnNlPFQ+O1xuICAgIGV4cG9ydCB0eXBlIE1peFJlc3BvbnNlPFQ+ID0gU3luY1Jlc3BvbnNlPFQ+IHwgRXhwcmVzc0NvbnRleHQ8VD47XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIENsaWVudEFjdGlvbjxUPiB7XG4gICAgICByZWNlaXZlZD86IFJlc3QuUHJvbWlzZU9ic2VydmFibGVNaXg8UmVzdC5IdHRwUmVzcG9uc2U8VD4+O1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgX19SZXNwb25zZTxUPiB7XG5cbiAgICAgIHNlbmQ/OiBNaXhSZXNwb25zZTxUPjtcblxuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQXN5bmNSZXNwb25zZTxUPiB7XG4gICAgICAoXG4gICAgICAgIHJlcT86IEV4cHJlc3NSZXF1ZXN0LFxuICAgICAgICByZXM/OiBFeHByZXNzUmVzcG9uc2UsXG4gICAgICApOiBQcm9taXNlPFN5bmNSZXNwb25zZTxUPiB8IFN5bmNSZXNwb25zZUZ1bmM8VD4+O1xuICAgIH1cblxuICAgIGV4cG9ydCB0eXBlIFJlc3BvbnNlPFQgPSBzdHJpbmc+ID0gKF9fUmVzcG9uc2U8VD4gfCBBc3luY1Jlc3BvbnNlPFQ+KSAmXG4gICAgICBDbGllbnRBY3Rpb248VD4gJlxuICAgICAgX19SZXNwb25zZTxUPjtcblxuICAgIGV4cG9ydCBjbGFzcyBFcnJvcnMge1xuICAgICAgcHVibGljIHRvU3RyaW5nID0gKCk6IHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2U7XG4gICAgICB9O1xuXG4gICAgICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIGNvZGU6IE1vZGVsc05nMlJlc3QuSHR0cENvZGUgPSA0MDAsXG4gICAgICApIHt9XG5cbiAgICAgIHByaXZhdGUgc3RhdGljIGNyZWF0ZShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBjb2RlOiBNb2RlbHNOZzJSZXN0Lkh0dHBDb2RlID0gNDAwLFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3JzKG1lc3NhZ2UsIGNvZGUpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgc3RhdGljIGVudGl0eU5vdEZvdW5kKGVudGl0eT86IEZ1bmN0aW9uKSB7XG4gICAgICAgIHJldHVybiBFcnJvcnMuY3JlYXRlKFxuICAgICAgICAgIGBFbnRpdHkgJHtDbGFzc0hlbHBlcnMuZ2V0TmFtZShlbnRpdHkpfSBub3QgZm91bmRgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgc3RhdGljIGN1c3RvbShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBjb2RlOiBNb2RlbHNOZzJSZXN0Lkh0dHBDb2RlID0gNDAwLFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBFcnJvcnMuY3JlYXRlKG1lc3NhZ2UsIGNvZGUpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBBdXRoQ2FsbEJhY2sge1xuICAgICAgKG1ldGhvZFJlZmVyZW5jZTogRnVuY3Rpb24pOiBSZXF1ZXN0SGFuZGxlcjtcbiAgICB9XG5cblxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL21vZGVscy50cyJdfQ==
@@ -6,7 +6,7 @@ import { RealtimeSubsManager } from './realtime-subs-manager';
6
6
  export class RealtimeClient {
7
7
  constructor(core) {
8
8
  this.core = core;
9
- this.subsmanagers = {};
9
+ this.subsManagers = {};
10
10
  this.core = core;
11
11
  if (!core.ctx.disabledRealtime) {
12
12
  this.init();
@@ -21,20 +21,24 @@ export class RealtimeClient {
21
21
  console.info('[CLIENT] NAMESPACE GLOBAL ', nspPath.global.href + ` host: ${this.core.ctx.host}`);
22
22
  this.core.ctx.logRealtime &&
23
23
  console.info('[CLIENT] NAMESPACE REALTIME', nspPath.realtime.href + ` host: ${this.core.ctx.host}`);
24
- this.core.FE = this.core.strategy.io(nspPath.global.origin, {
24
+ this.core.conectSocketFE = this.core.strategy.ioClient(nspPath.global.origin, {
25
25
  path: nspPath.global.pathname,
26
26
  });
27
- if (this.core.FE.on) {
28
- this.core.FE.on('connect', () => {
29
- console.info(`[CLIENT] conented to GLOBAL namespace ${this.core.FE.id} of host: ${this.core.ctx.host}`);
27
+ if (this.core.conectSocketFE.on) {
28
+ this.core.conectSocketFE.on('connect', () => {
29
+ this.core.ctx.logRealtime &&
30
+ console.info(`[CLIENT] connected to GLOBAL namespace ${nspPath.global.pathname}` +
31
+ ` of host: ${this.core.ctx.host}`);
30
32
  });
31
33
  }
32
- this.core.FE_REALTIME = this.core.strategy.io(nspPath.realtime.origin, {
34
+ this.core.socketFE = this.core.strategy.ioClient(nspPath.realtime.origin, {
33
35
  path: nspPath.realtime.pathname,
34
36
  });
35
- if (this.core.FE_REALTIME.on) {
36
- this.core.FE_REALTIME.on('connect', () => {
37
- console.info(`[CLIENT] conented to REALTIME namespace ${this.core.FE_REALTIME.id} host: ${this.core.ctx.host}`);
37
+ if (this.core.socketFE.on) {
38
+ this.core.socketFE.on('connect', () => {
39
+ this.core.ctx.logRealtime &&
40
+ console.info(`[CLIENT] connected to REALTIME namespace ${nspPath.realtime.pathname}` +
41
+ ` host: ${this.core.ctx.host}`);
38
42
  });
39
43
  }
40
44
  }
@@ -69,12 +73,12 @@ to use socket realtime connection;
69
73
  }
70
74
  let roomName;
71
75
  if (customEvent) {
72
- roomName = Symbols.REALTIME.ROOM_NAME.CUSTOM(this.core.ctx.contextName, customEvent);
76
+ roomName = Symbols.REALTIME.ROOM_NAME_CUSTOM(this.core.ctx.contextName, customEvent);
73
77
  }
74
78
  else {
75
79
  roomName = _.isString(property)
76
- ? Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY_PROPERTY(this.core.ctx.contextName, className, property, idOrUniqValue)
77
- : Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY(this.core.ctx.contextName, className, idOrUniqValue);
80
+ ? Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY_PROPERTY(this.core.ctx.contextName, className, property, idOrUniqValue)
81
+ : Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY(this.core.ctx.contextName, className, idOrUniqValue);
78
82
  }
79
83
  const roomSubOptions = {
80
84
  core: this.core,
@@ -82,13 +86,13 @@ to use socket realtime connection;
82
86
  roomName,
83
87
  customEvent,
84
88
  };
85
- const subManagerId = this.getRoomIdFrom(roomSubOptions);
86
- if (!this.subsmanagers[subManagerId]) {
87
- this.subsmanagers[subManagerId] = new RealtimeSubsManager(roomSubOptions);
89
+ const subManagerId = this.getUniqueIdentifierForConnection(roomSubOptions);
90
+ if (!this.subsManagers[subManagerId]) {
91
+ this.subsManagers[subManagerId] = new RealtimeSubsManager(roomSubOptions);
88
92
  }
89
- const inst = this.subsmanagers[subManagerId];
93
+ const inst = this.subsManagers[subManagerId];
90
94
  inst.add(observer);
91
- inst.startListenIfNotStarted(this.core.FE_REALTIME);
95
+ inst.startListenIfNotStarted(this.core.socketFE);
92
96
  return () => {
93
97
  inst.remove(observer);
94
98
  };
@@ -111,7 +115,7 @@ to use socket realtime connection;
111
115
  */
112
116
  listenChangesEntityObj(entity, options) {
113
117
  const classFn = ClassHelpers.getClassFnFromObject(entity);
114
- const uniqueKey = ClassHelpers.getUniquKey(classFn);
118
+ const uniqueKey = ClassHelpers.getUniqueKey(classFn);
115
119
  return this.listenChangesEntity(classFn, entity[uniqueKey], options);
116
120
  }
117
121
  listenChangesCustomEvent(customEvent) {
@@ -119,11 +123,19 @@ to use socket realtime connection;
119
123
  customEvent,
120
124
  });
121
125
  }
122
- getRoomIdFrom(options) {
126
+ /**
127
+ * Trigger custom event on backend
128
+ * @param customEvent global event name
129
+ * @param dataToPush
130
+ */
131
+ triggerCustomEvent(customEvent, dataToPush) {
132
+ this.core.socketFE.emit(customEvent, dataToPush);
133
+ }
134
+ getUniqueIdentifierForConnection(options) {
123
135
  const url = new URL(options.core.ctx.host);
124
136
  return `${this.core.ctx.contextName}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;
125
137
  }
126
138
  }
127
139
  ;
128
140
  ({}); // @--end-of-file-for-module=taon lib/realtime/realtime-client.ts
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU05RCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRDlCLGlCQUFZLEdBQTRDLEVBQUUsQ0FBQztRQUVqRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRS9CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVkLENBQUM7SUFDSCxDQUFDO0lBR08sSUFBSTtRQUVWLE1BQU0sT0FBTyxHQUFHO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3REO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVc7WUFDdkIsT0FBTyxDQUFDLElB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QUFHLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckgsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFJlYWx0aW1lQ29yZSB9IGZyb20gJy4vcmVhbHRpbWUtY29yZSc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgUmVhbHRpbWVTdWJzTWFuYWdlciB9IGZyb20gJy4vcmVhbHRpbWUtc3Vicy1tYW5hZ2VyJztcbmltcG9ydCB7IFJlYWx0aW1lTW9kZWxzIH0gZnJvbSAnLi9yZWFsdGltZS5tb2RlbHMnO1xuaW1wb3J0IHR5cGUgeyBCYXNlRW50aXR5IH0gZnJvbSAnLi4vYmFzZS1jbGFzc2VzL2Jhc2UtZW50aXR5JztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG5cbmV4cG9ydCBjbGFzcyBSZWFsdGltZUNsaWVudCB7XG4gIHByaXZhdGUgc3Vic21hbmFnZXJzOiB7IFtwYXRoOiBzdHJpbmddOiBSZWFsdGltZVN1YnNNYW5hZ2VyIH0gPSB7fTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb3JlOiBSZWFsdGltZUNvcmUpIHtcbiAgICB0aGlzLmNvcmUgPSBjb3JlO1xuICAgIGlmICghY29yZS5jdHguZGlzYWJsZWRSZWFsdGltZSkge1xuXG4gICAgICB0aGlzLmluaXQoKTtcblxuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuXG4gICAgY29uc3QgbnNwUGF0aCA9IHtcbiAgICAgIGdsb2JhbDogdGhpcy5jb3JlLnBhdGhGb3IoKSxcbiAgICAgIHJlYWx0aW1lOiB0aGlzLmNvcmUucGF0aEZvcihcbiAgICAgICAgU3ltYm9scy5SRUFMVElNRS5OQU1FU1BBQ0UodGhpcy5jb3JlLmN0eC5jb250ZXh0TmFtZSksXG4gICAgICApLFxuICAgIH07XG5cbiAgICB0aGlzLmNvcmUuY3R4LmxvZ1JlYWx0aW1lICYmXG4gICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICdbQ0xJRU5UXSBOQU1FU1BBQ0UgR0xPQkFMICcsXG4gICAgICAgIG5zcFBhdGguZ2xvYmFsLmhyZWYgKyBgIGhvc3Q6ICR7dGhpcy5jb3JlLmN0eC5ob3N0fWAsXG4gICAgICApO1xuXG4gICAgdGhpcy5jb3JlLmN0eC5sb2dSZWFsdGltZSAmJlxuICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICAnW0NMSUVOVF0gTkFNRVNQQUNFIFJFQUxUSU1FJyxcbiAgICAgICAgbnNwUGF0aC5yZWFsdGltZS5ocmVmICsgYCBob3N0OiAke3RoaXMuY29yZS5jdHguaG9zdH1gLFxuICAgICAgKTtcblxuXG5cbiAgICB0aGlzLmNvcmUuRkUgPSB0aGlzLmNvcmUuc3RyYXRlZ3kuaW8obnNwUGF0aC5nbG9iYWwub3JpZ2luLCB7XG4gICAgICBwYXRoOiBuc3BQYXRoLmdsb2JhbC5wYXRobmFtZSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvcmUuRkUub24pIHtcbiAgICAgIHRoaXMuY29yZS5GRS5vbignY29ubmVjdCcsICgpID0+IHtcblxuXG5cbiAgICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICAgIGBbQ0xJRU5UXSBjb25lbnRlZCB0byBHTE9CQUwgbmFtZXNwYWNlICR7dGhpcy5jb3JlLkZFLmlkfSBvZiBob3N0OiAke3RoaXMuY29yZS5jdHguaG9zdH1gLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuXG4gICAgdGhpcy5jb3JlLkZFX1JFQUxUSU1FID0gdGhpcy5jb3JlLnN0cmF0ZWd5LmlvKG5zcFBhdGgucmVhbHRpbWUub3JpZ2luLCB7XG4gICAgICBwYXRoOiBuc3BQYXRoLnJlYWx0aW1lLnBhdGhuYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29yZS5GRV9SRUFMVElNRS5vbikge1xuICAgICAgdGhpcy5jb3JlLkZFX1JFQUxUSU1FLm9uKCdjb25uZWN0JywgKCkgPT4ge1xuXG5cblxuICAgICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICAgYFtDTElFTlRdIGNvbmVudGVkIHRvIFJFQUxUSU1FIG5hbWVzcGFjZSAke3RoaXMuY29yZS5GRV9SRUFMVElNRS5pZH0gaG9zdDogJHt0aGlzLmNvcmUuY3R4Lmhvc3R9YCxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdHJpZ2dlciBvbiBiYWNrZW5kIG5lZWRzIHRvIGJlIGRvbmUgbWFudWFsbHkuLiBleGFtcGxlIGNvZGU6XG4gICAqXG4gICAqIC4uLlxuICAgKiBDb250ZXh0LlJlYWx0aW1lLlNlcnZlci5UcmlnZ2dlckVudGl0eUNoYW5nZXMobXlFbnRpdHlJbnN0YW5jZSk7XG4gICAqIC4uLlxuICAgKi9cbiAgbGlzdGVuQ2hhbmdlc0VudGl0eShcbiAgICBlbnRpdHlDbGFzc0ZuOiBGdW5jdGlvbixcbiAgICBpZE9yVW5pcVZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogUmVhbHRpbWVNb2RlbHMuQ2hhbmdlT3B0aW9uLFxuICApIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCAoe30gYXMgYW55KTtcblxuXG4gICAgY29uc3QgeyBwcm9wZXJ0eSwgY3VzdG9tRXZlbnQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gIWN1c3RvbUV2ZW50ICYmIENsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eUNsYXNzRm4pO1xuXG4gICAgaWYgKF8uaXNTdHJpbmcocHJvcGVydHkpKSB7XG4gICAgICBpZiAocHJvcGVydHkudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtUYW9uXVtsaXN0ZW5DaGFuZ2VzRW50aXR5Li4gaW5jb3JlY3QgcHJvcGVydHkgJycgZm9yICR7Y2xhc3NOYW1lfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuXG5cbiAgICAgIGlmICh0aGlzLmNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW1Rhb25dW3JlYWx0aW1lIHJ4anNdIHJlbW92ZSB0YW9uIGNvbmZpZyBmbGFnOlxuXG4gICAgICAgIC4uLlxuICAgICAgICBkaXNhYmxlZFJlYWx0aW1lOiB0cnVlXG4gICAgICAgIC4uLlxuXG50byB1c2Ugc29ja2V0IHJlYWx0aW1lIGNvbm5lY3Rpb247XG4gICAgICAgIGApO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGxldCByb29tTmFtZTogc3RyaW5nO1xuXG4gICAgICBpZiAoY3VzdG9tRXZlbnQpIHtcbiAgICAgICAgcm9vbU5hbWUgPSBTeW1ib2xzLlJFQUxUSU1FLlJPT01fTkFNRS5DVVNUT00oXG4gICAgICAgICAgdGhpcy5jb3JlLmN0eC5jb250ZXh0TmFtZSxcbiAgICAgICAgICBjdXN0b21FdmVudCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb21OYW1lID0gXy5pc1N0cmluZyhwcm9wZXJ0eSlcbiAgICAgICAgICA/IFN5bWJvbHMuUkVBTFRJTUUuUk9PTV9OQU1FLlVQREFURV9FTlRJVFlfUFJPUEVSVFkoXG4gICAgICAgICAgICAgIHRoaXMuY29yZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgICAgIGlkT3JVbmlxVmFsdWUsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBTeW1ib2xzLlJFQUxUSU1FLlJPT01fTkFNRS5VUERBVEVfRU5USVRZKFxuICAgICAgICAgICAgICB0aGlzLmNvcmUuY3R4LmNvbnRleHROYW1lLFxuICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgIGlkT3JVbmlxVmFsdWUsXG4gICAgICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb29tU3ViT3B0aW9uczogUmVhbHRpbWVNb2RlbHMuU3Vic01hbmFnZXJPcHQgPSB7XG4gICAgICAgIGNvcmU6IHRoaXMuY29yZSxcbiAgICAgICAgcHJvcGVydHksXG4gICAgICAgIHJvb21OYW1lLFxuICAgICAgICBjdXN0b21FdmVudCxcbiAgICAgIH07XG5cblxuICAgICAgY29uc3Qgc3ViTWFuYWdlcklkID0gdGhpcy5nZXRSb29tSWRGcm9tKHJvb21TdWJPcHRpb25zKTtcbiAgICAgIGlmICghdGhpcy5zdWJzbWFuYWdlcnNbc3ViTWFuYWdlcklkXSkge1xuICAgICAgICB0aGlzLnN1YnNtYW5hZ2Vyc1tzdWJNYW5hZ2VySWRdID0gbmV3IFJlYWx0aW1lU3Vic01hbmFnZXIoXG4gICAgICAgICAgcm9vbVN1Yk9wdGlvbnMsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpbnN0ID0gdGhpcy5zdWJzbWFuYWdlcnNbc3ViTWFuYWdlcklkXTtcbiAgICAgIGluc3QuYWRkKG9ic2VydmVyKTtcblxuICAgICAgaW5zdC5zdGFydExpc3RlbklmTm90U3RhcnRlZCh0aGlzLmNvcmUuRkVfUkVBTFRJTUUpO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpbnN0LnJlbW92ZShvYnNlcnZlcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cblxuXG5cbiAgbGlzdGVuQ2hhbmdlc0VudGl0eVRhYmxlKGVudGl0eUNsYXNzRm46IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoZW50aXR5Q2xhc3NGbik7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuQ2hhbmdlc0VudGl0eShlbnRpdHlDbGFzc0ZuLCB2b2lkIDAsIHtcbiAgICAgIGN1c3RvbUV2ZW50OiBTeW1ib2xzLlJFQUxUSU1FLlRBQkxFX0NIQU5HRShcbiAgICAgICAgdGhpcy5jb3JlLmN0eC5jb250ZXh0TmFtZSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG5cblxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRyaWdnZXIgb24gYmFja2VuZCBuZWVkcyB0byBiZSBkb25lIG1hbnVhbGx5Li4gZXhhbXBsZSBjb2RlOlxuICAgKlxuICAgKiAuLi5cbiAgICogQ29udGV4dC5SZWFsdGltZS5TZXJ2ZXIuVHJpZ2dnZXJFbnRpdHlDaGFuZ2VzKG15RW50aXR5SW5zdGFuY2UpO1xuICAgKiAvLyBvclxuICAgKiBDb250ZXh0LlJlYWx0aW1lLlNlcnZlci5UcmlnZ2dlckVudGl0eVByb3BlcnR5Q2hhbmdlcyhteUVudGl0eUluc3RhbmNlLHsgcHJvcGVydHk6ICdnZW9sb2NhdGlvblgnIH0pO1xuICAgKiAuLi5cbiAgICovXG4gIGxpc3RlbkNoYW5nZXNFbnRpdHlPYmo8VCBleHRlbmRzIEJhc2VFbnRpdHk+KFxuICAgIGVudGl0eTogVCxcbiAgICBvcHRpb25zPzogUmVhbHRpbWVNb2RlbHMuQ2hhbmdlT3B0aW9uLFxuICApIHtcbiAgICBjb25zdCBjbGFzc0ZuID0gQ2xhc3NIZWxwZXJzLmdldENsYXNzRm5Gcm9tT2JqZWN0KGVudGl0eSk7XG4gICAgY29uc3QgdW5pcXVlS2V5ID0gQ2xhc3NIZWxwZXJzLmdldFVuaXF1S2V5KGNsYXNzRm4pO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbkNoYW5nZXNFbnRpdHkoY2xhc3NGbiwgZW50aXR5W3VuaXF1ZUtleV0sIG9wdGlvbnMpO1xuICB9XG5cblxuXG4gIGxpc3RlbkNoYW5nZXNDdXN0b21FdmVudChjdXN0b21FdmVudDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuQ2hhbmdlc0VudGl0eSh2b2lkIDAsIHZvaWQgMCwge1xuICAgICAgY3VzdG9tRXZlbnQsXG4gICAgfSk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBnZXRSb29tSWRGcm9tKG9wdGlvbnM6IFJlYWx0aW1lTW9kZWxzLlN1YnNNYW5hZ2VyT3B0KSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLmNvcmUuY3R4Lmhvc3QpO1xuICAgIHJldHVybiBgJHt0aGlzLmNvcmUuY3R4LmNvbnRleHROYW1lfToke3VybC5vcmlnaW59fCR7b3B0aW9ucy5yb29tTmFtZX18JHtvcHRpb25zLnByb3BlcnR5fXwke29wdGlvbnMuY3VzdG9tRXZlbnR9YDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9yZWFsdGltZS9yZWFsdGltZS1jbGllbnQudHMiXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU05RCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRDlCLGlCQUFZLEdBQTRDLEVBQUUsQ0FBQztRQUVqRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRS9CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVkLENBQUM7SUFDSCxDQUFDO0lBR08sSUFBSTtRQUVWLE1BQU0sT0FBTyxHQUFHO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3REO1NBQ0YsQ0FBQztRQUdGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVc7WUFDdkIsT0FBTyxDQUFDLElB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QUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUlPLGdDQUFnQyxDQUFDLE9BQXNDO1FBQzdFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JILENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBSZWFsdGltZUNvcmUgfSBmcm9tICcuL3JlYWx0aW1lLWNvcmUnO1xuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IFJlYWx0aW1lU3Vic01hbmFnZXIgfSBmcm9tICcuL3JlYWx0aW1lLXN1YnMtbWFuYWdlcic7XG5pbXBvcnQgeyBSZWFsdGltZU1vZGVscyB9IGZyb20gJy4vcmVhbHRpbWUubW9kZWxzJztcbmltcG9ydCB0eXBlIHsgQmFzZUVudGl0eSB9IGZyb20gJy4uL2Jhc2UtY2xhc3Nlcy9iYXNlLWVudGl0eSc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuXG5leHBvcnQgY2xhc3MgUmVhbHRpbWVDbGllbnQge1xuICBwcml2YXRlIHN1YnNNYW5hZ2VyczogeyBbcGF0aDogc3RyaW5nXTogUmVhbHRpbWVTdWJzTWFuYWdlciB9ID0ge307XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29yZTogUmVhbHRpbWVDb3JlKSB7XG4gICAgdGhpcy5jb3JlID0gY29yZTtcbiAgICBpZiAoIWNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcblxuICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgaW5pdCgpIHtcblxuICAgIGNvbnN0IG5zcFBhdGggPSB7XG4gICAgICBnbG9iYWw6IHRoaXMuY29yZS5wYXRoRm9yKCksXG4gICAgICByZWFsdGltZTogdGhpcy5jb3JlLnBhdGhGb3IoXG4gICAgICAgIFN5bWJvbHMuUkVBTFRJTUUuTkFNRVNQQUNFKHRoaXMuY29yZS5jdHguY29udGV4dE5hbWUpLFxuICAgICAgKSxcbiAgICB9O1xuXG5cbiAgICB0aGlzLmNvcmUuY3R4LmxvZ1JlYWx0aW1lICYmXG4gICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICdbQ0xJRU5UXSBOQU1FU1BBQ0UgR0xPQkFMICcsXG4gICAgICAgIG5zcFBhdGguZ2xvYmFsLmhyZWYgKyBgIGhvc3Q6ICR7dGhpcy5jb3JlLmN0eC5ob3N0fWAsXG4gICAgICApO1xuXG4gICAgdGhpcy5jb3JlLmN0eC5sb2dSZWFsdGltZSAmJlxuICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICAnW0NMSUVOVF0gTkFNRVNQQUNFIFJFQUxUSU1FJyxcbiAgICAgICAgbnNwUGF0aC5yZWFsdGltZS5ocmVmICsgYCBob3N0OiAke3RoaXMuY29yZS5jdHguaG9zdH1gLFxuICAgICAgKTtcblxuXG5cbiAgICB0aGlzLmNvcmUuY29uZWN0U29ja2V0RkUgPSB0aGlzLmNvcmUuc3RyYXRlZ3kuaW9DbGllbnQoXG4gICAgICBuc3BQYXRoLmdsb2JhbC5vcmlnaW4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IG5zcFBhdGguZ2xvYmFsLnBhdGhuYW1lLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY29yZS5jb25lY3RTb2NrZXRGRS5vbikge1xuICAgICAgdGhpcy5jb3JlLmNvbmVjdFNvY2tldEZFLm9uKCdjb25uZWN0JywgKCkgPT4ge1xuXG5cblxuICAgICAgICB0aGlzLmNvcmUuY3R4LmxvZ1JlYWx0aW1lICYmXG4gICAgICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICAgICAgYFtDTElFTlRdIGNvbm5lY3RlZCB0byBHTE9CQUwgbmFtZXNwYWNlICR7bnNwUGF0aC5nbG9iYWwucGF0aG5hbWV9YCArXG4gICAgICAgICAgICAgIGAgb2YgaG9zdDogJHt0aGlzLmNvcmUuY3R4Lmhvc3R9YCxcbiAgICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuXG4gICAgdGhpcy5jb3JlLnNvY2tldEZFID0gdGhpcy5jb3JlLnN0cmF0ZWd5LmlvQ2xpZW50KG5zcFBhdGgucmVhbHRpbWUub3JpZ2luLCB7XG4gICAgICBwYXRoOiBuc3BQYXRoLnJlYWx0aW1lLnBhdGhuYW1lLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29yZS5zb2NrZXRGRS5vbikge1xuICAgICAgdGhpcy5jb3JlLnNvY2tldEZFLm9uKCdjb25uZWN0JywgKCkgPT4ge1xuXG5cblxuICAgICAgICB0aGlzLmNvcmUuY3R4LmxvZ1JlYWx0aW1lICYmXG4gICAgICAgICAgY29uc29sZS5pbmZvKFxuICAgICAgICAgICAgYFtDTElFTlRdIGNvbm5lY3RlZCB0byBSRUFMVElNRSBuYW1lc3BhY2UgJHtuc3BQYXRoLnJlYWx0aW1lLnBhdGhuYW1lfWAgK1xuICAgICAgICAgICAgICBgIGhvc3Q6ICR7dGhpcy5jb3JlLmN0eC5ob3N0fWAsXG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdHJpZ2dlciBvbiBiYWNrZW5kIG5lZWRzIHRvIGJlIGRvbmUgbWFudWFsbHkuLiBleGFtcGxlIGNvZGU6XG4gICAqXG4gICAqIC4uLlxuICAgKiBDb250ZXh0LlJlYWx0aW1lLlNlcnZlci5UcmlnZ2dlckVudGl0eUNoYW5nZXMobXlFbnRpdHlJbnN0YW5jZSk7XG4gICAqIC4uLlxuICAgKi9cbiAgbGlzdGVuQ2hhbmdlc0VudGl0eShcbiAgICBlbnRpdHlDbGFzc0ZuOiBGdW5jdGlvbixcbiAgICBpZE9yVW5pcVZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogUmVhbHRpbWVNb2RlbHMuQ2hhbmdlT3B0aW9uLFxuICApIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCAoe30gYXMgYW55KTtcblxuXG4gICAgY29uc3QgeyBwcm9wZXJ0eSwgY3VzdG9tRXZlbnQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gIWN1c3RvbUV2ZW50ICYmIENsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eUNsYXNzRm4pO1xuXG4gICAgaWYgKF8uaXNTdHJpbmcocHJvcGVydHkpKSB7XG4gICAgICBpZiAocHJvcGVydHkudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtUYW9uXVtsaXN0ZW5DaGFuZ2VzRW50aXR5Li4gaW5jb3JlY3QgcHJvcGVydHkgJycgZm9yICR7Y2xhc3NOYW1lfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuXG5cbiAgICAgIGlmICh0aGlzLmNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW1Rhb25dW3JlYWx0aW1lIHJ4anNdIHJlbW92ZSB0YW9uIGNvbmZpZyBmbGFnOlxuXG4gICAgICAgIC4uLlxuICAgICAgICBkaXNhYmxlZFJlYWx0aW1lOiB0cnVlXG4gICAgICAgIC4uLlxuXG50byB1c2Ugc29ja2V0IHJlYWx0aW1lIGNvbm5lY3Rpb247XG4gICAgICAgIGApO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGxldCByb29tTmFtZTogc3RyaW5nO1xuXG4gICAgICBpZiAoY3VzdG9tRXZlbnQpIHtcbiAgICAgICAgcm9vbU5hbWUgPSBTeW1ib2xzLlJFQUxUSU1FLlJPT01fTkFNRV9DVVNUT00oXG4gICAgICAgICAgdGhpcy5jb3JlLmN0eC5jb250ZXh0TmFtZSxcbiAgICAgICAgICBjdXN0b21FdmVudCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb21OYW1lID0gXy5pc1N0cmluZyhwcm9wZXJ0eSlcbiAgICAgICAgICA/IFN5bWJvbHMuUkVBTFRJTUUuUk9PTV9OQU1FX1VQREFURV9FTlRJVFlfUFJPUEVSVFkoXG4gICAgICAgICAgICAgIHRoaXMuY29yZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgICAgIGlkT3JVbmlxVmFsdWUsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBTeW1ib2xzLlJFQUxUSU1FLlJPT01fTkFNRV9VUERBVEVfRU5USVRZKFxuICAgICAgICAgICAgICB0aGlzLmNvcmUuY3R4LmNvbnRleHROYW1lLFxuICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgIGlkT3JVbmlxVmFsdWUsXG4gICAgICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb29tU3ViT3B0aW9uczogUmVhbHRpbWVNb2RlbHMuU3Vic01hbmFnZXJPcHQgPSB7XG4gICAgICAgIGNvcmU6IHRoaXMuY29yZSxcbiAgICAgICAgcHJvcGVydHksXG4gICAgICAgIHJvb21OYW1lLFxuICAgICAgICBjdXN0b21FdmVudCxcbiAgICAgIH07XG5cblxuICAgICAgY29uc3Qgc3ViTWFuYWdlcklkID0gdGhpcy5nZXRVbmlxdWVJZGVudGlmaWVyRm9yQ29ubmVjdGlvbihyb29tU3ViT3B0aW9ucyk7XG4gICAgICBpZiAoIXRoaXMuc3Vic01hbmFnZXJzW3N1Yk1hbmFnZXJJZF0pIHtcbiAgICAgICAgdGhpcy5zdWJzTWFuYWdlcnNbc3ViTWFuYWdlcklkXSA9IG5ldyBSZWFsdGltZVN1YnNNYW5hZ2VyKFxuICAgICAgICAgIHJvb21TdWJPcHRpb25zLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5zdCA9IHRoaXMuc3Vic01hbmFnZXJzW3N1Yk1hbmFnZXJJZF07XG4gICAgICBpbnN0LmFkZChvYnNlcnZlcik7XG5cbiAgICAgIGluc3Quc3RhcnRMaXN0ZW5JZk5vdFN0YXJ0ZWQodGhpcy5jb3JlLnNvY2tldEZFKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaW5zdC5yZW1vdmUob2JzZXJ2ZXIpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG5cblxuXG4gIGxpc3RlbkNoYW5nZXNFbnRpdHlUYWJsZShlbnRpdHlDbGFzc0ZuOiBGdW5jdGlvbikge1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eUNsYXNzRm4pO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbkNoYW5nZXNFbnRpdHkoZW50aXR5Q2xhc3NGbiwgdm9pZCAwLCB7XG4gICAgICBjdXN0b21FdmVudDogU3ltYm9scy5SRUFMVElNRS5UQUJMRV9DSEFOR0UoXG4gICAgICAgIHRoaXMuY29yZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cblxuXG5cblxuICAvKipcbiAgICogQ2hhbmdlcyB0cmlnZ2VyIG9uIGJhY2tlbmQgbmVlZHMgdG8gYmUgZG9uZSBtYW51YWxseS4uIGV4YW1wbGUgY29kZTpcbiAgICpcbiAgICogLi4uXG4gICAqIENvbnRleHQuUmVhbHRpbWUuU2VydmVyLlRyaWdnZ2VyRW50aXR5Q2hhbmdlcyhteUVudGl0eUluc3RhbmNlKTtcbiAgICogLy8gb3JcbiAgICogQ29udGV4dC5SZWFsdGltZS5TZXJ2ZXIuVHJpZ2dnZXJFbnRpdHlQcm9wZXJ0eUNoYW5nZXMobXlFbnRpdHlJbnN0YW5jZSx7IHByb3BlcnR5OiAnZ2VvbG9jYXRpb25YJyB9KTtcbiAgICogLi4uXG4gICAqL1xuICBsaXN0ZW5DaGFuZ2VzRW50aXR5T2JqPFQgZXh0ZW5kcyBCYXNlRW50aXR5PihcbiAgICBlbnRpdHk6IFQsXG4gICAgb3B0aW9ucz86IFJlYWx0aW1lTW9kZWxzLkNoYW5nZU9wdGlvbixcbiAgKSB7XG4gICAgY29uc3QgY2xhc3NGbiA9IENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdChlbnRpdHkpO1xuICAgIGNvbnN0IHVuaXF1ZUtleSA9IENsYXNzSGVscGVycy5nZXRVbmlxdWVLZXkoY2xhc3NGbik7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuQ2hhbmdlc0VudGl0eShjbGFzc0ZuLCBlbnRpdHlbdW5pcXVlS2V5XSwgb3B0aW9ucyk7XG4gIH1cblxuXG5cbiAgbGlzdGVuQ2hhbmdlc0N1c3RvbUV2ZW50KGN1c3RvbUV2ZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5DaGFuZ2VzRW50aXR5KHZvaWQgMCwgdm9pZCAwLCB7XG4gICAgICBjdXN0b21FdmVudCxcbiAgICB9KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogVHJpZ2dlciBjdXN0b20gZXZlbnQgb24gYmFja2VuZFxuICAgKiBAcGFyYW0gY3VzdG9tRXZlbnQgZ2xvYmFsIGV2ZW50IG5hbWVcbiAgICogQHBhcmFtIGRhdGFUb1B1c2hcbiAgICovXG4gIHB1YmxpYyB0cmlnZ2VyQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnQ6IHN0cmluZywgZGF0YVRvUHVzaD86IGFueSkge1xuICAgIHRoaXMuY29yZS5zb2NrZXRGRS5lbWl0KGN1c3RvbUV2ZW50LCBkYXRhVG9QdXNoKTtcbiAgfVxuXG5cblxuICBwcml2YXRlIGdldFVuaXF1ZUlkZW50aWZpZXJGb3JDb25uZWN0aW9uKG9wdGlvbnM6IFJlYWx0aW1lTW9kZWxzLlN1YnNNYW5hZ2VyT3B0KSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLmNvcmUuY3R4Lmhvc3QpO1xuICAgIHJldHVybiBgJHt0aGlzLmNvcmUuY3R4LmNvbnRleHROYW1lfToke3VybC5vcmlnaW59fCR7b3B0aW9ucy5yb29tTmFtZX18JHtvcHRpb25zLnByb3BlcnR5fXwke29wdGlvbnMuY3VzdG9tRXZlbnR9YDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9yZWFsdGltZS9yZWFsdGltZS1jbGllbnQudHMiXX0=