sonamu 0.9.20 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +36 -0
  2. package/dist/ai/agents/agent.js +5 -7
  3. package/dist/ai/agents/index.js +1 -2
  4. package/dist/ai/agents/types.js +1 -1
  5. package/dist/ai/index.js +1 -2
  6. package/dist/ai/providers/rtzr/api.js +2 -3
  7. package/dist/ai/providers/rtzr/error.js +14 -29
  8. package/dist/ai/providers/rtzr/index.js +1 -2
  9. package/dist/ai/providers/rtzr/model.js +13 -20
  10. package/dist/ai/providers/rtzr/options.js +2 -3
  11. package/dist/ai/providers/rtzr/provider.js +2 -3
  12. package/dist/ai/providers/rtzr/utils.js +12 -21
  13. package/dist/api/base-frame.js +4 -4
  14. package/dist/api/caster.js +21 -38
  15. package/dist/api/code-converters.js +41 -98
  16. package/dist/api/config.d.ts +1 -10
  17. package/dist/api/config.d.ts.map +1 -1
  18. package/dist/api/config.js +9 -8
  19. package/dist/api/context.js +2 -3
  20. package/dist/api/decorators.js +80 -116
  21. package/dist/api/index.js +2 -3
  22. package/dist/api/secret.js +6 -10
  23. package/dist/api/sonamu.d.ts.map +1 -1
  24. package/dist/api/sonamu.js +200 -387
  25. package/dist/api/validator.js +5 -8
  26. package/dist/api/websocket-helpers.js +21 -32
  27. package/dist/auth/audit-log/builders.js +2 -3
  28. package/dist/auth/audit-log/events.js +2 -2
  29. package/dist/auth/audit-log/plugin.js +30 -61
  30. package/dist/auth/audit-log-ingestor.js +19 -41
  31. package/dist/auth/auth-generator.js +16 -41
  32. package/dist/auth/better-auth-entities.js +3 -4
  33. package/dist/auth/index.js +2 -3
  34. package/dist/auth/knex-adapter.js +18 -45
  35. package/dist/auth/plugins/entity-definitions/admin.js +2 -2
  36. package/dist/auth/plugins/entity-definitions/anonymous.js +2 -2
  37. package/dist/auth/plugins/entity-definitions/api-key.js +2 -2
  38. package/dist/auth/plugins/entity-definitions/audit-log.js +2 -2
  39. package/dist/auth/plugins/entity-definitions/index.js +2 -3
  40. package/dist/auth/plugins/entity-definitions/jwt.js +2 -2
  41. package/dist/auth/plugins/entity-definitions/organization.js +2 -2
  42. package/dist/auth/plugins/entity-definitions/passkey.js +2 -2
  43. package/dist/auth/plugins/entity-definitions/phone-number.js +2 -2
  44. package/dist/auth/plugins/entity-definitions/sso.js +2 -2
  45. package/dist/auth/plugins/entity-definitions/two-factor.js +2 -2
  46. package/dist/auth/plugins/entity-definitions/types.js +1 -1
  47. package/dist/auth/plugins/entity-definitions/username.js +2 -2
  48. package/dist/auth/plugins/index.js +1 -2
  49. package/dist/auth/plugins/wrappers/admin.js +2 -3
  50. package/dist/auth/plugins/wrappers/anonymous.js +2 -3
  51. package/dist/auth/plugins/wrappers/api-key.js +2 -3
  52. package/dist/auth/plugins/wrappers/index.js +1 -2
  53. package/dist/auth/plugins/wrappers/jwt.js +2 -3
  54. package/dist/auth/plugins/wrappers/organization.js +2 -3
  55. package/dist/auth/plugins/wrappers/passkey.js +2 -3
  56. package/dist/auth/plugins/wrappers/phone-number.js +2 -3
  57. package/dist/auth/plugins/wrappers/sso.js +2 -3
  58. package/dist/auth/plugins/wrappers/two-factor.js +2 -3
  59. package/dist/auth/plugins/wrappers/username.js +2 -3
  60. package/dist/bin/build-config.js +2 -2
  61. package/dist/bin/cli.js +151 -258
  62. package/dist/bin/fixture.d.ts.map +1 -1
  63. package/dist/bin/fixture.js +55 -97
  64. package/dist/bin/hmr-hook-register.js +3 -3
  65. package/dist/bin/migrate-targets.d.ts +3 -0
  66. package/dist/bin/migrate-targets.d.ts.map +1 -0
  67. package/dist/bin/migrate-targets.js +11 -0
  68. package/dist/bin/test-command.js +25 -55
  69. package/dist/bin/ts-loader-register.js +5 -6
  70. package/dist/bin/ts-loader-registration.js +6 -13
  71. package/dist/cache/cache-manager.js +3 -4
  72. package/dist/cache/decorator.js +11 -21
  73. package/dist/cache/drivers.js +2 -3
  74. package/dist/cache/index.js +2 -3
  75. package/dist/cache/types.js +1 -1
  76. package/dist/cache-control/cache-control.js +21 -34
  77. package/dist/cache-control/types.js +1 -1
  78. package/dist/compress/compress.js +10 -10
  79. package/dist/compress/index.js +1 -2
  80. package/dist/compress/types.js +1 -1
  81. package/dist/cone/cone-generator.js +25 -63
  82. package/dist/database/_batch_update.js +26 -46
  83. package/dist/database/base-model.js +44 -97
  84. package/dist/database/base-model.types.js +1 -1
  85. package/dist/database/db.d.ts +8 -14
  86. package/dist/database/db.d.ts.map +1 -1
  87. package/dist/database/db.js +127 -72
  88. package/dist/database/knex.js +5 -8
  89. package/dist/database/puri-subset.types.js +1 -1
  90. package/dist/database/puri-wrapper.js +11 -15
  91. package/dist/database/puri.js +117 -234
  92. package/dist/database/puri.types.js +3 -4
  93. package/dist/database/transaction-context.js +4 -5
  94. package/dist/database/upsert-builder.js +109 -176
  95. package/dist/dict/en.d.ts +1 -0
  96. package/dist/dict/en.d.ts.map +1 -1
  97. package/dist/dict/en.js +4 -4
  98. package/dist/dict/index.js +2 -3
  99. package/dist/dict/ko.d.ts +1 -0
  100. package/dist/dict/ko.d.ts.map +1 -1
  101. package/dist/dict/ko.js +4 -4
  102. package/dist/dict/rc-keys.js +3 -4
  103. package/dist/dict/sd.js +8 -19
  104. package/dist/dict/sonamu-dictionary.js +141 -284
  105. package/dist/dict/types.js +1 -1
  106. package/dist/dict/utils.js +4 -5
  107. package/dist/entity/entity-manager.d.ts +2 -2
  108. package/dist/entity/entity-manager.js +34 -82
  109. package/dist/entity/entity-template-cone.js +33 -66
  110. package/dist/entity/entity.js +156 -310
  111. package/dist/env.d.ts +14 -0
  112. package/dist/env.d.ts.map +1 -0
  113. package/dist/env.js +75 -0
  114. package/dist/exceptions/error-handler.js +2 -3
  115. package/dist/exceptions/so-exceptions.js +7 -5
  116. package/dist/filter/index.js +1 -2
  117. package/dist/filter/types.js +3 -4
  118. package/dist/filter/utils.js +21 -54
  119. package/dist/index.js +8 -7
  120. package/dist/logger/category.js +6 -12
  121. package/dist/logger/configure.js +23 -34
  122. package/dist/migration/code-generation.js +146 -314
  123. package/dist/migration/index-where-predicate.js +52 -144
  124. package/dist/migration/migration-set.js +19 -33
  125. package/dist/migration/migrator.d.ts +2 -0
  126. package/dist/migration/migrator.d.ts.map +1 -1
  127. package/dist/migration/migrator.js +69 -53
  128. package/dist/migration/postgresql-schema-reader.js +126 -225
  129. package/dist/migration/slack-confirm.d.ts +1 -0
  130. package/dist/migration/slack-confirm.d.ts.map +1 -1
  131. package/dist/migration/slack-confirm.js +28 -38
  132. package/dist/migration/types.js +1 -1
  133. package/dist/naite/messaging-types.js +1 -1
  134. package/dist/naite/naite-reporter.js +15 -32
  135. package/dist/naite/naite.js +43 -76
  136. package/dist/ssr/index.js +6 -9
  137. package/dist/ssr/registry.js +10 -18
  138. package/dist/ssr/renderer.js +10 -21
  139. package/dist/ssr/types.js +1 -1
  140. package/dist/storage/base-file.js +5 -10
  141. package/dist/storage/buffered-file.js +3 -4
  142. package/dist/storage/drivers.js +2 -3
  143. package/dist/storage/index.js +2 -3
  144. package/dist/storage/s3-driver.js +5 -9
  145. package/dist/storage/storage-manager.js +5 -5
  146. package/dist/storage/types.js +1 -1
  147. package/dist/storage/uploaded-file.js +4 -6
  148. package/dist/stream/index.js +1 -2
  149. package/dist/stream/sse.js +8 -13
  150. package/dist/stream/ws-audience-resolver.js +5 -5
  151. package/dist/stream/ws-audience.js +3 -4
  152. package/dist/stream/ws-cluster-bus.js +3 -4
  153. package/dist/stream/ws-core.js +1 -1
  154. package/dist/stream/ws-delivery.js +11 -25
  155. package/dist/stream/ws-local-connection-store.js +9 -18
  156. package/dist/stream/ws-presence-store.js +43 -97
  157. package/dist/stream/ws-registry.js +17 -22
  158. package/dist/stream/ws-telemetry-memory.js +38 -45
  159. package/dist/stream/ws-telemetry-trace.js +4 -6
  160. package/dist/stream/ws-telemetry.js +82 -135
  161. package/dist/stream/ws.js +47 -91
  162. package/dist/syncer/api-parser.js +81 -147
  163. package/dist/syncer/checksum.js +9 -20
  164. package/dist/syncer/code-generator.js +29 -47
  165. package/dist/syncer/entity-operations.js +17 -27
  166. package/dist/syncer/event-batcher.js +8 -15
  167. package/dist/syncer/file-patterns.js +3 -4
  168. package/dist/syncer/file-tracking.js +6 -10
  169. package/dist/syncer/index.js +1 -2
  170. package/dist/syncer/module-loader.js +10 -26
  171. package/dist/syncer/syncer-actions.js +19 -37
  172. package/dist/syncer/syncer.js +46 -98
  173. package/dist/syncer/watcher.js +12 -26
  174. package/dist/tasks/decorator.js +7 -11
  175. package/dist/tasks/step-wrapper.js +7 -8
  176. package/dist/tasks/workflow-manager.js +18 -25
  177. package/dist/template/entity-converter.js +40 -64
  178. package/dist/template/helpers.js +32 -63
  179. package/dist/template/implementations/entity.template.js +7 -11
  180. package/dist/template/implementations/entry-server.template.js +2 -3
  181. package/dist/template/implementations/generated.template.js +25 -51
  182. package/dist/template/implementations/generated_http.template.js +31 -58
  183. package/dist/template/implementations/generated_sso.template.js +45 -85
  184. package/dist/template/implementations/init_types.template.js +4 -7
  185. package/dist/template/implementations/model.template.js +5 -10
  186. package/dist/template/implementations/model_test.template.js +2 -3
  187. package/dist/template/implementations/queries.template.js +4 -7
  188. package/dist/template/implementations/sd.template.js +17 -35
  189. package/dist/template/implementations/services.template.js +18 -30
  190. package/dist/template/implementations/view_form.template.js +72 -125
  191. package/dist/template/implementations/view_id_all_select.template.js +2 -3
  192. package/dist/template/implementations/view_list.template.js +86 -143
  193. package/dist/template/implementations/view_search_input.template.js +2 -3
  194. package/dist/template/index.js +5 -8
  195. package/dist/template/template-manager.js +13 -26
  196. package/dist/template/template-types.js +2 -3
  197. package/dist/template/template.js +7 -11
  198. package/dist/template/zod-converter.js +173 -348
  199. package/dist/testing/_relation-graph.js +18 -37
  200. package/dist/testing/bootstrap.js +5 -8
  201. package/dist/testing/data-explorer.js +34 -78
  202. package/dist/testing/dev-test-routes.js +54 -60
  203. package/dist/testing/dev-vitest-manager.js +33 -84
  204. package/dist/testing/faker-mappings.js +3 -4
  205. package/dist/testing/fixture-generator.d.ts +2 -1
  206. package/dist/testing/fixture-generator.d.ts.map +1 -1
  207. package/dist/testing/fixture-generator.js +159 -321
  208. package/dist/testing/fixture-loader.js +2 -2
  209. package/dist/testing/fixture-manager.d.ts.map +1 -1
  210. package/dist/testing/fixture-manager.js +124 -227
  211. package/dist/testing/global-setup.d.ts.map +1 -1
  212. package/dist/testing/global-setup.js +29 -17
  213. package/dist/testing/index.js +1 -2
  214. package/dist/testing/naite-vitest-reporter.js +2 -3
  215. package/dist/testing/parallel-db-manager.js +5 -3
  216. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  217. package/dist/testing/vitest-helpers.js +15 -12
  218. package/dist/types/types.d.ts +14 -14
  219. package/dist/types/types.js +27 -50
  220. package/dist/ui/ai-api.js +6 -11
  221. package/dist/ui/ai-client.js +86 -134
  222. package/dist/ui/api.js +99 -195
  223. package/dist/ui/cdd-service.js +78 -130
  224. package/dist/ui/cdd-types.js +1 -1
  225. package/dist/ui-web/assets/{index-Df8q-fhb.js → index-DFStGyd0.js} +49 -49
  226. package/dist/ui-web/assets/index-Dx4ap5i4.css +1 -0
  227. package/dist/ui-web/index.html +2 -2
  228. package/dist/utils/async-utils.js +13 -25
  229. package/dist/utils/class-name.js +3 -4
  230. package/dist/utils/console-util.js +11 -26
  231. package/dist/utils/controller.d.ts.map +1 -1
  232. package/dist/utils/controller.js +14 -12
  233. package/dist/utils/esm-utils.js +5 -8
  234. package/dist/utils/formatter.js +10 -22
  235. package/dist/utils/fs-utils.js +14 -25
  236. package/dist/utils/lodash-able.js +3 -4
  237. package/dist/utils/model.js +7 -14
  238. package/dist/utils/object-utils.js +41 -73
  239. package/dist/utils/path-utils.js +5 -9
  240. package/dist/utils/process-utils.js +4 -7
  241. package/dist/utils/sql-parser.js +6 -13
  242. package/dist/utils/type-utils.js +16 -26
  243. package/dist/utils/utils.js +18 -40
  244. package/dist/utils/zod-error.js +9 -16
  245. package/dist/vector/chunking.js +24 -37
  246. package/dist/vector/config.js +2 -2
  247. package/dist/vector/embedding.js +8 -19
  248. package/dist/vector/index.js +1 -2
  249. package/dist/vector/types.js +1 -1
  250. package/package.json +6 -6
  251. package/src/__tests__/env.test.ts +127 -0
  252. package/src/api/__tests__/config.test.ts +10 -1
  253. package/src/api/config.ts +4 -12
  254. package/src/api/sonamu.ts +14 -4
  255. package/src/bin/__tests__/migrate-targets.test.ts +28 -0
  256. package/src/bin/__tests__/test-command.test.ts +82 -1
  257. package/src/bin/cli.ts +9 -18
  258. package/src/bin/fixture.ts +5 -4
  259. package/src/bin/migrate-targets.ts +7 -0
  260. package/src/bin/test-command.ts +2 -2
  261. package/src/database/__tests__/db.test.ts +175 -0
  262. package/src/database/db.ts +193 -71
  263. package/src/dict/en.ts +2 -0
  264. package/src/dict/ko.ts +2 -0
  265. package/src/env.ts +123 -0
  266. package/src/migration/__tests__/migrator.test.ts +149 -0
  267. package/src/migration/migrator.ts +74 -17
  268. package/src/migration/slack-confirm.ts +21 -0
  269. package/src/skills/sonamu/database.md +1 -1
  270. package/src/skills/sonamu/testing-devrunner.md +1 -1
  271. package/src/stream/ws-telemetry-memory.ts +2 -2
  272. package/src/testing/fixture-generator.ts +2 -1
  273. package/src/testing/fixture-manager.ts +3 -4
  274. package/src/testing/global-setup.ts +42 -18
  275. package/src/testing/vitest-helpers.ts +14 -0
  276. package/src/utils/controller.ts +14 -7
  277. package/tsdown.api.config.ts +6 -0
  278. package/dist/_virtual/rolldown_runtime.js +0 -39
  279. package/dist/ui-web/assets/index-D4rYm-Xz.css +0 -1
@@ -1,9 +1,8 @@
1
1
  import { createHash } from "node:crypto";
2
-
3
2
  //#region src/auth/audit-log-ingestor.ts
4
3
  const AUDIT_EVENT_SOURCE = "better_auth";
5
4
  const AUDIT_EVENT_SOURCE_VERSION = "better-auth|@better-auth/infra";
6
- const SESSION_EVENT_TYPES = new Set([
5
+ const SESSION_EVENT_TYPES = /* @__PURE__ */ new Set([
7
6
  "user_signed_in",
8
7
  "user_signed_out",
9
8
  "user_sign_in_failed",
@@ -13,7 +12,7 @@ const SESSION_EVENT_TYPES = new Set([
13
12
  "user_impersonated",
14
13
  "user_impersonated_stopped"
15
14
  ]);
16
- const ACCOUNT_EVENT_TYPES = new Set([
15
+ const ACCOUNT_EVENT_TYPES = /* @__PURE__ */ new Set([
17
16
  "account_linked",
18
17
  "account_unlinked",
19
18
  "password_changed",
@@ -21,18 +20,18 @@ const ACCOUNT_EVENT_TYPES = new Set([
21
20
  "two_factor_disabled",
22
21
  "two_factor_verified"
23
22
  ]);
24
- const VERIFICATION_EVENT_TYPES = new Set([
23
+ const VERIFICATION_EVENT_TYPES = /* @__PURE__ */ new Set([
25
24
  "email_verification_sent",
26
25
  "password_reset_requested",
27
26
  "password_reset_completed"
28
27
  ]);
29
- const SECURITY_EVENT_TYPES = new Set([
28
+ const SECURITY_EVENT_TYPES = /* @__PURE__ */ new Set([
30
29
  "security_blocked",
31
30
  "security_allowed",
32
31
  "security_challenged",
33
32
  "security_stale_account"
34
33
  ]);
35
- const USER_EVENT_TYPES = new Set([
34
+ const USER_EVENT_TYPES = /* @__PURE__ */ new Set([
36
35
  "user_created",
37
36
  "profile_updated",
38
37
  "profile_image_updated",
@@ -48,43 +47,25 @@ function pickString(source, key) {
48
47
  function pickFirstString(source, keys) {
49
48
  for (const key of keys) {
50
49
  const value = pickString(source, key);
51
- if (value !== null) {
52
- return value;
53
- }
50
+ if (value !== null) return value;
54
51
  }
55
52
  return null;
56
53
  }
57
54
  function parseOccurredAt(raw) {
58
- if (raw instanceof Date && !Number.isNaN(raw.getTime())) {
59
- return raw;
60
- }
55
+ if (raw instanceof Date && !Number.isNaN(raw.getTime())) return raw;
61
56
  if (typeof raw === "string") {
62
57
  const parsed = new Date(raw);
63
- if (!Number.isNaN(parsed.getTime())) {
64
- return parsed;
65
- }
58
+ if (!Number.isNaN(parsed.getTime())) return parsed;
66
59
  }
67
- return new Date();
60
+ return /* @__PURE__ */ new Date();
68
61
  }
69
62
  function classifyCategory(eventType) {
70
- if (eventType.startsWith("organization_")) {
71
- return "organization";
72
- }
73
- if (SESSION_EVENT_TYPES.has(eventType)) {
74
- return "session";
75
- }
76
- if (ACCOUNT_EVENT_TYPES.has(eventType)) {
77
- return "account";
78
- }
79
- if (VERIFICATION_EVENT_TYPES.has(eventType)) {
80
- return "verification";
81
- }
82
- if (SECURITY_EVENT_TYPES.has(eventType)) {
83
- return "security";
84
- }
85
- if (USER_EVENT_TYPES.has(eventType)) {
86
- return "user";
87
- }
63
+ if (eventType.startsWith("organization_")) return "organization";
64
+ if (SESSION_EVENT_TYPES.has(eventType)) return "session";
65
+ if (ACCOUNT_EVENT_TYPES.has(eventType)) return "account";
66
+ if (VERIFICATION_EVENT_TYPES.has(eventType)) return "verification";
67
+ if (SECURITY_EVENT_TYPES.has(eventType)) return "security";
68
+ if (USER_EVENT_TYPES.has(eventType)) return "user";
88
69
  return "user";
89
70
  }
90
71
  function computeDedupeKey(parts) {
@@ -157,7 +138,7 @@ async function ingestAuditEvent(db, event) {
157
138
  action,
158
139
  occurred_at
159
140
  });
160
- const inserted = await db("audit_events").insert({
141
+ if ((await db("audit_events").insert({
161
142
  source: AUDIT_EVENT_SOURCE,
162
143
  source_version: AUDIT_EVENT_SOURCE_VERSION,
163
144
  category,
@@ -183,12 +164,9 @@ async function ingestAuditEvent(db, event) {
183
164
  user_agent,
184
165
  payload_json: eventData,
185
166
  occurred_at
186
- }).onConflict("dedupe_key").ignore().returning("dedupe_key");
187
- if (inserted.length === 0) {
188
- return;
189
- }
167
+ }).onConflict("dedupe_key").ignore().returning("dedupe_key")).length === 0) return;
190
168
  }
191
-
192
169
  //#endregion
193
170
  export { ingestAuditEvent };
194
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWluZ2VzdG9yLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy1pbmdlc3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5cbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgQXVkaXRMb2dFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy9ldmVudHNcIjtcblxuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFID0gXCJiZXR0ZXJfYXV0aFwiO1xuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFX1ZFUlNJT04gPSBcImJldHRlci1hdXRofEBiZXR0ZXItYXV0aC9pbmZyYVwiO1xuXG5jb25zdCBTRVNTSU9OX0VWRU5UX1RZUEVTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgXCJ1c2VyX3NpZ25lZF9pblwiLFxuICBcInVzZXJfc2lnbmVkX291dFwiLFxuICBcInVzZXJfc2lnbl9pbl9mYWlsZWRcIixcbiAgXCJzZXNzaW9uX2NyZWF0ZWRcIixcbiAgXCJzZXNzaW9uX3Jldm9rZWRcIixcbiAgXCJhbGxfc2Vzc2lvbnNfcmV2b2tlZFwiLFxuICBcInVzZXJfaW1wZXJzb25hdGVkXCIsXG4gIFwidXNlcl9pbXBlcnNvbmF0ZWRfc3RvcHBlZFwiLFxuXSk7XG5cbmNvbnN0IEFDQ09VTlRfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcImFjY291bnRfbGlua2VkXCIsXG4gIFwiYWNjb3VudF91bmxpbmtlZFwiLFxuICBcInBhc3N3b3JkX2NoYW5nZWRcIixcblxuICAvLyBAYmV0dGVyLWF1dGgvaW5mcmFAMC4xLjE0IOq4sOykgCBFVkVOVF9UWVBFUyDsg4HsiJjsl5DripQg7KCV7J2Y65CY7Ja0IOyeiOycvOuCmCDsi6TsoJwgdHJhY2tFdmVudCgpIO2YuOy2nOydtCDsl4bripQg66+46rWs7ZiEIOydtOuypO2KuOyehFxuICAvLyDtlqXtm4Qg67KE7KCE7JeQ7IScIGVtaXTrkKAg6rK97Jqw66W8IOuMgOu5hO2VtCBhY2NvdW5066GcIOyehOyLnCDrk7HroZ1cbiAgXCJ0d29fZmFjdG9yX2VuYWJsZWRcIixcbiAgXCJ0d29fZmFjdG9yX2Rpc2FibGVkXCIsXG4gIFwidHdvX2ZhY3Rvcl92ZXJpZmllZFwiLFxuXSk7XG5cbmNvbnN0IFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwiZW1haWxfdmVyaWZpY2F0aW9uX3NlbnRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9yZXF1ZXN0ZWRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9jb21wbGV0ZWRcIixcbl0pO1xuXG5jb25zdCBTRUNVUklUWV9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwic2VjdXJpdHlfYmxvY2tlZFwiLFxuICBcInNlY3VyaXR5X2FsbG93ZWRcIixcbiAgXCJzZWN1cml0eV9jaGFsbGVuZ2VkXCIsXG4gIFwic2VjdXJpdHlfc3RhbGVfYWNjb3VudFwiLFxuXSk7XG5cbmNvbnN0IFVTRVJfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcInVzZXJfY3JlYXRlZFwiLFxuICBcInByb2ZpbGVfdXBkYXRlZFwiLFxuICBcInByb2ZpbGVfaW1hZ2VfdXBkYXRlZFwiLFxuICBcImVtYWlsX3ZlcmlmaWVkXCIsXG4gIFwidXNlcl9iYW5uZWRcIixcbiAgXCJ1c2VyX3VuYmFubmVkXCIsXG4gIFwidXNlcl9kZWxldGVkXCIsXG5dKTtcblxuZnVuY3Rpb24gcGlja1N0cmluZyhzb3VyY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwaWNrRmlyc3RTdHJpbmcoc291cmNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwga2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcGlja1N0cmluZyhzb3VyY2UsIGtleSk7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9jY3VycmVkQXQocmF3OiB1bmtub3duKTogRGF0ZSB7XG4gIGlmIChyYXcgaW5zdGFuY2VvZiBEYXRlICYmICFOdW1iZXIuaXNOYU4ocmF3LmdldFRpbWUoKSkpIHtcbiAgICByZXR1cm4gcmF3O1xuICB9XG4gIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IERhdGUocmF3KTtcbiAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzaWZ5Q2F0ZWdvcnkoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuKTogXCJ1c2VyXCIgfCBcInNlc3Npb25cIiB8IFwiYWNjb3VudFwiIHwgXCJ2ZXJpZmljYXRpb25cIiB8IFwib3JnYW5pemF0aW9uXCIgfCBcInNlY3VyaXR5XCIge1xuICBpZiAoZXZlbnRUeXBlLnN0YXJ0c1dpdGgoXCJvcmdhbml6YXRpb25fXCIpKSB7XG4gICAgcmV0dXJuIFwib3JnYW5pemF0aW9uXCI7XG4gIH1cbiAgaWYgKFNFU1NJT05fRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJzZXNzaW9uXCI7XG4gIH1cbiAgaWYgKEFDQ09VTlRfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJhY2NvdW50XCI7XG4gIH1cbiAgaWYgKFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInZlcmlmaWNhdGlvblwiO1xuICB9XG4gIGlmIChTRUNVUklUWV9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInNlY3VyaXR5XCI7XG4gIH1cbiAgaWYgKFVTRVJfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJ1c2VyXCI7XG4gIH1cbiAgcmV0dXJuIFwidXNlclwiO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRGVkdXBlS2V5KHBhcnRzOiB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBldmVudF90eXBlOiBzdHJpbmc7XG4gIGV2ZW50X2tleTogc3RyaW5nO1xuICBhY3Rvcl91c2VyX2lkOiBzdHJpbmcgfCBudWxsO1xuICBzdWJqZWN0X3VzZXJfaWQ6IHN0cmluZyB8IG51bGw7XG4gIG9yZ2FuaXphdGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgdGVhbV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbDtcbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb246IHN0cmluZyB8IG51bGw7XG4gIG9jY3VycmVkX2F0OiBEYXRlO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm0gPSAodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB2ID8/IFwiXCI7XG4gIGNvbnN0IHJhdyA9IFtcbiAgICBwYXJ0cy5zb3VyY2UsXG4gICAgcGFydHMuZXZlbnRfdHlwZSxcbiAgICBwYXJ0cy5ldmVudF9rZXksXG4gICAgbm9ybShwYXJ0cy5hY3Rvcl91c2VyX2lkKSxcbiAgICBub3JtKHBhcnRzLnN1YmplY3RfdXNlcl9pZCksXG4gICAgbm9ybShwYXJ0cy5vcmdhbml6YXRpb25faWQpLFxuICAgIG5vcm0ocGFydHMudGVhbV9pZCksXG4gICAgbm9ybShwYXJ0cy5zZXNzaW9uX2lkKSxcbiAgICBub3JtKHBhcnRzLmlkZW50aWZpZXIpLFxuICAgIG5vcm0ocGFydHMucmVhc29uKSxcbiAgICBub3JtKHBhcnRzLmFjdGlvbiksXG4gICAgcGFydHMub2NjdXJyZWRfYXQudG9JU09TdHJpbmcoKSxcbiAgXS5qb2luKFwifFwiKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHJhdykuZGlnZXN0KFwiaGV4XCIpO1xufVxuXG4vKipcbiAqIHNvbmFtdUF1ZGl0TG9nIO2UjOufrOq3uOyduOydtCDqtazshLHtlZwgQXVkaXRMb2dFdmVudOulvCBhdWRpdF9ldmVudHMg7YWM7J2067iU7JeQIOyggeyerO2VqeuLiOuLpC5cbiAqIE9OIENPTkZMSUNUIChkZWR1cGVfa2V5KSBETyBOT1RISU5H7Jy866GcIOykkeuzteydhCBzaWxlbnQg66y07Iuc7ZWp64uI64ukLlxuICogYXV0aC5wbHVnaW5z7JeQIHNvbmFtdUF1ZGl0TG9nKCkg7LaU6rCAIOyLnCBzb25hbXUg64K067aA7JeQ7IScIOyekOuPmeycvOuhnCDtmLjstpzrkKnri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmdlc3RBdWRpdEV2ZW50KGRiOiBLbmV4LCBldmVudDogQXVkaXRMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBldmVudERhdGEgPSBldmVudC5ldmVudERhdGE7XG4gIGNvbnN0IG9jY3VycmVkX2F0ID0gcGFyc2VPY2N1cnJlZEF0KGV2ZW50RGF0YVtcIm9jY3VycmVkQXRcIl0pO1xuXG4gIGNvbnN0IGFjdG9yX3VzZXJfaWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyZWRCeVwiKTtcbiAgY29uc3Qgc3ViamVjdF91c2VyX2lkID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwidXNlcklkXCIsXG4gICAgXCJ1c2VyaWRcIixcbiAgICBcImFjY2VwdGVkQnlJZFwiLFxuICAgIFwicmVqZWN0ZWRCeUlkXCIsXG4gIF0pO1xuICBjb25zdCBvcmdhbml6YXRpb25faWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJvcmdhbml6YXRpb25JZFwiKTtcbiAgY29uc3QgdGVhbV9pZCA9IHBpY2tGaXJzdFN0cmluZyhldmVudERhdGEsIFtcInRlYW1JZFwiLCBcImludml0ZWVUZWFtSWRcIl0pO1xuICBjb25zdCBzZXNzaW9uX2lkID0gcGlja1N0cmluZyhldmVudERhdGEsIFwic2Vzc2lvbklkXCIpO1xuICBjb25zdCBwcm92aWRlcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInByb3ZpZGVySWRcIik7XG4gIGNvbnN0IGxvZ2luX21ldGhvZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcImxvZ2luTWV0aG9kXCIpO1xuICBjb25zdCBpZGVudGlmaWVyID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwiaWRlbnRpZmllclwiLFxuICAgIFwidXNlckVtYWlsXCIsXG4gICAgXCJtZW1iZXJFbWFpbFwiLFxuICAgIFwiaW52aXRlZUVtYWlsXCIsXG4gICAgXCJhY2NlcHRlZEJ5RW1haWxcIixcbiAgICBcInJlamVjdGVkQnlFbWFpbFwiLFxuICBdKTtcbiAgY29uc3QgdmlzaXRvcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInZpc2l0b3JJZFwiKTtcbiAgY29uc3QgcmVhc29uID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1wicmVhc29uXCIsIFwiYmFuUmVhc29uXCJdKTtcbiAgY29uc3QgYWN0aW9uID0gcGlja1N0cmluZyhldmVudERhdGEsIFwiYWN0aW9uXCIpO1xuICBjb25zdCB0cmlnZ2VyX2NvbnRleHQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyQ29udGV4dFwiKTtcbiAgY29uc3QgdXNlcl9hZ2VudCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInVzZXJBZ2VudFwiKTtcblxuICBjb25zdCBpcF9hZGRyZXNzID0gZXZlbnQuaXBBZGRyZXNzID8/IG51bGw7XG4gIGNvbnN0IGNpdHkgPSBldmVudC5jaXR5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnkgPSBldmVudC5jb3VudHJ5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnlfY29kZSA9IGV2ZW50LmNvdW50cnlDb2RlID8/IG51bGw7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSBjbGFzc2lmeUNhdGVnb3J5KGV2ZW50LmV2ZW50VHlwZSk7XG4gIGNvbnN0IGRlZHVwZV9rZXkgPSBjb21wdXRlRGVkdXBlS2V5KHtcbiAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICBldmVudF90eXBlOiBldmVudC5ldmVudFR5cGUsXG4gICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICBhY3Rvcl91c2VyX2lkLFxuICAgIHN1YmplY3RfdXNlcl9pZCxcbiAgICBvcmdhbml6YXRpb25faWQsXG4gICAgdGVhbV9pZCxcbiAgICBzZXNzaW9uX2lkLFxuICAgIGlkZW50aWZpZXIsXG4gICAgcmVhc29uLFxuICAgIGFjdGlvbixcbiAgICBvY2N1cnJlZF9hdCxcbiAgfSk7XG5cbiAgLy8gT04gQ09ORkxJQ1QgRE8gTk9USElORzogZGVkdXBlX2tleSBVTklRVUUg7JyE67CY7J2EIHNpbGVudCDrrLTsi5wuXG4gIC8vIHRyeS9jYXRjaCDrsKnsi53snYAgUEcg7Luk64Sl7IWY7J2EIGFib3J0ZWQg7IOB7YOc66GcIOunjOuTnOuvgOuhnCDsgqzsmqntlZjsp4Ag7JWK64qU64ukLlxuICBjb25zdCBpbnNlcnRlZCA9IGF3YWl0IGRiKFwiYXVkaXRfZXZlbnRzXCIpXG4gICAgLmluc2VydCh7XG4gICAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICAgIHNvdXJjZV92ZXJzaW9uOiBBVURJVF9FVkVOVF9TT1VSQ0VfVkVSU0lPTixcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgZXZlbnRfdHlwZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICAgIGRlZHVwZV9rZXksXG4gICAgICBhY3Rvcl91c2VyX2lkLFxuICAgICAgc3ViamVjdF91c2VyX2lkLFxuICAgICAgb3JnYW5pemF0aW9uX2lkLFxuICAgICAgdGVhbV9pZCxcbiAgICAgIHNlc3Npb25faWQsXG4gICAgICBwcm92aWRlcl9pZCxcbiAgICAgIGxvZ2luX21ldGhvZCxcbiAgICAgIGlkZW50aWZpZXIsXG4gICAgICB2aXNpdG9yX2lkLFxuICAgICAgcmVhc29uLFxuICAgICAgYWN0aW9uLFxuICAgICAgdHJpZ2dlcl9jb250ZXh0LFxuICAgICAgaXBfYWRkcmVzcyxcbiAgICAgIGNvdW50cnlfY29kZSxcbiAgICAgIGNvdW50cnksXG4gICAgICBjaXR5LFxuICAgICAgdXNlcl9hZ2VudCxcbiAgICAgIHBheWxvYWRfanNvbjogZXZlbnREYXRhLFxuICAgICAgb2NjdXJyZWRfYXQsXG4gICAgfSlcbiAgICAub25Db25mbGljdChcImRlZHVwZV9rZXlcIilcbiAgICAuaWdub3JlKClcbiAgICAucmV0dXJuaW5nKFwiZGVkdXBlX2tleVwiKTtcblxuICBpZiAoaW5zZXJ0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuOyAvLyBzaWxlbnQgZGVkdXBlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSw2QkFBNkI7QUFFbkMsTUFBTSxzQkFBc0IsSUFBSSxJQUFZO0NBQzFDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDRCxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsSUFBSSxJQUFZO0NBQzFDO0NBQ0E7Q0FDQTtDQUlBO0NBQ0E7Q0FDQTtDQUNELENBQUM7QUFFRixNQUFNLDJCQUEyQixJQUFJLElBQVk7Q0FDL0M7Q0FDQTtDQUNBO0NBQ0QsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLElBQUks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
171
+
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWluZ2VzdG9yLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1ZGl0LWxvZy1pbmdlc3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5cbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgQXVkaXRMb2dFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy9ldmVudHNcIjtcblxuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFID0gXCJiZXR0ZXJfYXV0aFwiO1xuY29uc3QgQVVESVRfRVZFTlRfU09VUkNFX1ZFUlNJT04gPSBcImJldHRlci1hdXRofEBiZXR0ZXItYXV0aC9pbmZyYVwiO1xuXG5jb25zdCBTRVNTSU9OX0VWRU5UX1RZUEVTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgXCJ1c2VyX3NpZ25lZF9pblwiLFxuICBcInVzZXJfc2lnbmVkX291dFwiLFxuICBcInVzZXJfc2lnbl9pbl9mYWlsZWRcIixcbiAgXCJzZXNzaW9uX2NyZWF0ZWRcIixcbiAgXCJzZXNzaW9uX3Jldm9rZWRcIixcbiAgXCJhbGxfc2Vzc2lvbnNfcmV2b2tlZFwiLFxuICBcInVzZXJfaW1wZXJzb25hdGVkXCIsXG4gIFwidXNlcl9pbXBlcnNvbmF0ZWRfc3RvcHBlZFwiLFxuXSk7XG5cbmNvbnN0IEFDQ09VTlRfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcImFjY291bnRfbGlua2VkXCIsXG4gIFwiYWNjb3VudF91bmxpbmtlZFwiLFxuICBcInBhc3N3b3JkX2NoYW5nZWRcIixcblxuICAvLyBAYmV0dGVyLWF1dGgvaW5mcmFAMC4xLjE0IOq4sOykgCBFVkVOVF9UWVBFUyDsg4HsiJjsl5DripQg7KCV7J2Y65CY7Ja0IOyeiOycvOuCmCDsi6TsoJwgdHJhY2tFdmVudCgpIO2YuOy2nOydtCDsl4bripQg66+46rWs7ZiEIOydtOuypO2KuOyehFxuICAvLyDtlqXtm4Qg67KE7KCE7JeQ7IScIGVtaXTrkKAg6rK97Jqw66W8IOuMgOu5hO2VtCBhY2NvdW5066GcIOyehOyLnCDrk7HroZ1cbiAgXCJ0d29fZmFjdG9yX2VuYWJsZWRcIixcbiAgXCJ0d29fZmFjdG9yX2Rpc2FibGVkXCIsXG4gIFwidHdvX2ZhY3Rvcl92ZXJpZmllZFwiLFxuXSk7XG5cbmNvbnN0IFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwiZW1haWxfdmVyaWZpY2F0aW9uX3NlbnRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9yZXF1ZXN0ZWRcIixcbiAgXCJwYXNzd29yZF9yZXNldF9jb21wbGV0ZWRcIixcbl0pO1xuXG5jb25zdCBTRUNVUklUWV9FVkVOVF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwic2VjdXJpdHlfYmxvY2tlZFwiLFxuICBcInNlY3VyaXR5X2FsbG93ZWRcIixcbiAgXCJzZWN1cml0eV9jaGFsbGVuZ2VkXCIsXG4gIFwic2VjdXJpdHlfc3RhbGVfYWNjb3VudFwiLFxuXSk7XG5cbmNvbnN0IFVTRVJfRVZFTlRfVFlQRVMgPSBuZXcgU2V0PHN0cmluZz4oW1xuICBcInVzZXJfY3JlYXRlZFwiLFxuICBcInByb2ZpbGVfdXBkYXRlZFwiLFxuICBcInByb2ZpbGVfaW1hZ2VfdXBkYXRlZFwiLFxuICBcImVtYWlsX3ZlcmlmaWVkXCIsXG4gIFwidXNlcl9iYW5uZWRcIixcbiAgXCJ1c2VyX3VuYmFubmVkXCIsXG4gIFwidXNlcl9kZWxldGVkXCIsXG5dKTtcblxuZnVuY3Rpb24gcGlja1N0cmluZyhzb3VyY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBwaWNrRmlyc3RTdHJpbmcoc291cmNlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwga2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcGlja1N0cmluZyhzb3VyY2UsIGtleSk7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBwYXJzZU9jY3VycmVkQXQocmF3OiB1bmtub3duKTogRGF0ZSB7XG4gIGlmIChyYXcgaW5zdGFuY2VvZiBEYXRlICYmICFOdW1iZXIuaXNOYU4ocmF3LmdldFRpbWUoKSkpIHtcbiAgICByZXR1cm4gcmF3O1xuICB9XG4gIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IERhdGUocmF3KTtcbiAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWQuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRlKCk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzaWZ5Q2F0ZWdvcnkoXG4gIGV2ZW50VHlwZTogc3RyaW5nLFxuKTogXCJ1c2VyXCIgfCBcInNlc3Npb25cIiB8IFwiYWNjb3VudFwiIHwgXCJ2ZXJpZmljYXRpb25cIiB8IFwib3JnYW5pemF0aW9uXCIgfCBcInNlY3VyaXR5XCIge1xuICBpZiAoZXZlbnRUeXBlLnN0YXJ0c1dpdGgoXCJvcmdhbml6YXRpb25fXCIpKSB7XG4gICAgcmV0dXJuIFwib3JnYW5pemF0aW9uXCI7XG4gIH1cbiAgaWYgKFNFU1NJT05fRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJzZXNzaW9uXCI7XG4gIH1cbiAgaWYgKEFDQ09VTlRfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJhY2NvdW50XCI7XG4gIH1cbiAgaWYgKFZFUklGSUNBVElPTl9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInZlcmlmaWNhdGlvblwiO1xuICB9XG4gIGlmIChTRUNVUklUWV9FVkVOVF9UWVBFUy5oYXMoZXZlbnRUeXBlKSkge1xuICAgIHJldHVybiBcInNlY3VyaXR5XCI7XG4gIH1cbiAgaWYgKFVTRVJfRVZFTlRfVFlQRVMuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICByZXR1cm4gXCJ1c2VyXCI7XG4gIH1cbiAgcmV0dXJuIFwidXNlclwiO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlRGVkdXBlS2V5KHBhcnRzOiB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBldmVudF90eXBlOiBzdHJpbmc7XG4gIGV2ZW50X2tleTogc3RyaW5nO1xuICBhY3Rvcl91c2VyX2lkOiBzdHJpbmcgfCBudWxsO1xuICBzdWJqZWN0X3VzZXJfaWQ6IHN0cmluZyB8IG51bGw7XG4gIG9yZ2FuaXphdGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgdGVhbV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgc2Vzc2lvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbDtcbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb246IHN0cmluZyB8IG51bGw7XG4gIG9jY3VycmVkX2F0OiBEYXRlO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm0gPSAodjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB2ID8/IFwiXCI7XG4gIGNvbnN0IHJhdyA9IFtcbiAgICBwYXJ0cy5zb3VyY2UsXG4gICAgcGFydHMuZXZlbnRfdHlwZSxcbiAgICBwYXJ0cy5ldmVudF9rZXksXG4gICAgbm9ybShwYXJ0cy5hY3Rvcl91c2VyX2lkKSxcbiAgICBub3JtKHBhcnRzLnN1YmplY3RfdXNlcl9pZCksXG4gICAgbm9ybShwYXJ0cy5vcmdhbml6YXRpb25faWQpLFxuICAgIG5vcm0ocGFydHMudGVhbV9pZCksXG4gICAgbm9ybShwYXJ0cy5zZXNzaW9uX2lkKSxcbiAgICBub3JtKHBhcnRzLmlkZW50aWZpZXIpLFxuICAgIG5vcm0ocGFydHMucmVhc29uKSxcbiAgICBub3JtKHBhcnRzLmFjdGlvbiksXG4gICAgcGFydHMub2NjdXJyZWRfYXQudG9JU09TdHJpbmcoKSxcbiAgXS5qb2luKFwifFwiKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHJhdykuZGlnZXN0KFwiaGV4XCIpO1xufVxuXG4vKipcbiAqIHNvbmFtdUF1ZGl0TG9nIO2UjOufrOq3uOyduOydtCDqtazshLHtlZwgQXVkaXRMb2dFdmVudOulvCBhdWRpdF9ldmVudHMg7YWM7J2067iU7JeQIOyggeyerO2VqeuLiOuLpC5cbiAqIE9OIENPTkZMSUNUIChkZWR1cGVfa2V5KSBETyBOT1RISU5H7Jy866GcIOykkeuzteydhCBzaWxlbnQg66y07Iuc7ZWp64uI64ukLlxuICogYXV0aC5wbHVnaW5z7JeQIHNvbmFtdUF1ZGl0TG9nKCkg7LaU6rCAIOyLnCBzb25hbXUg64K067aA7JeQ7IScIOyekOuPmeycvOuhnCDtmLjstpzrkKnri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbmdlc3RBdWRpdEV2ZW50KGRiOiBLbmV4LCBldmVudDogQXVkaXRMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBldmVudERhdGEgPSBldmVudC5ldmVudERhdGE7XG4gIGNvbnN0IG9jY3VycmVkX2F0ID0gcGFyc2VPY2N1cnJlZEF0KGV2ZW50RGF0YVtcIm9jY3VycmVkQXRcIl0pO1xuXG4gIGNvbnN0IGFjdG9yX3VzZXJfaWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyZWRCeVwiKTtcbiAgY29uc3Qgc3ViamVjdF91c2VyX2lkID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwidXNlcklkXCIsXG4gICAgXCJ1c2VyaWRcIixcbiAgICBcImFjY2VwdGVkQnlJZFwiLFxuICAgIFwicmVqZWN0ZWRCeUlkXCIsXG4gIF0pO1xuICBjb25zdCBvcmdhbml6YXRpb25faWQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJvcmdhbml6YXRpb25JZFwiKTtcbiAgY29uc3QgdGVhbV9pZCA9IHBpY2tGaXJzdFN0cmluZyhldmVudERhdGEsIFtcInRlYW1JZFwiLCBcImludml0ZWVUZWFtSWRcIl0pO1xuICBjb25zdCBzZXNzaW9uX2lkID0gcGlja1N0cmluZyhldmVudERhdGEsIFwic2Vzc2lvbklkXCIpO1xuICBjb25zdCBwcm92aWRlcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInByb3ZpZGVySWRcIik7XG4gIGNvbnN0IGxvZ2luX21ldGhvZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcImxvZ2luTWV0aG9kXCIpO1xuICBjb25zdCBpZGVudGlmaWVyID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1xuICAgIFwiaWRlbnRpZmllclwiLFxuICAgIFwidXNlckVtYWlsXCIsXG4gICAgXCJtZW1iZXJFbWFpbFwiLFxuICAgIFwiaW52aXRlZUVtYWlsXCIsXG4gICAgXCJhY2NlcHRlZEJ5RW1haWxcIixcbiAgICBcInJlamVjdGVkQnlFbWFpbFwiLFxuICBdKTtcbiAgY29uc3QgdmlzaXRvcl9pZCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInZpc2l0b3JJZFwiKTtcbiAgY29uc3QgcmVhc29uID0gcGlja0ZpcnN0U3RyaW5nKGV2ZW50RGF0YSwgW1wicmVhc29uXCIsIFwiYmFuUmVhc29uXCJdKTtcbiAgY29uc3QgYWN0aW9uID0gcGlja1N0cmluZyhldmVudERhdGEsIFwiYWN0aW9uXCIpO1xuICBjb25zdCB0cmlnZ2VyX2NvbnRleHQgPSBwaWNrU3RyaW5nKGV2ZW50RGF0YSwgXCJ0cmlnZ2VyQ29udGV4dFwiKTtcbiAgY29uc3QgdXNlcl9hZ2VudCA9IHBpY2tTdHJpbmcoZXZlbnREYXRhLCBcInVzZXJBZ2VudFwiKTtcblxuICBjb25zdCBpcF9hZGRyZXNzID0gZXZlbnQuaXBBZGRyZXNzID8/IG51bGw7XG4gIGNvbnN0IGNpdHkgPSBldmVudC5jaXR5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnkgPSBldmVudC5jb3VudHJ5ID8/IG51bGw7XG4gIGNvbnN0IGNvdW50cnlfY29kZSA9IGV2ZW50LmNvdW50cnlDb2RlID8/IG51bGw7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSBjbGFzc2lmeUNhdGVnb3J5KGV2ZW50LmV2ZW50VHlwZSk7XG4gIGNvbnN0IGRlZHVwZV9rZXkgPSBjb21wdXRlRGVkdXBlS2V5KHtcbiAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICBldmVudF90eXBlOiBldmVudC5ldmVudFR5cGUsXG4gICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICBhY3Rvcl91c2VyX2lkLFxuICAgIHN1YmplY3RfdXNlcl9pZCxcbiAgICBvcmdhbml6YXRpb25faWQsXG4gICAgdGVhbV9pZCxcbiAgICBzZXNzaW9uX2lkLFxuICAgIGlkZW50aWZpZXIsXG4gICAgcmVhc29uLFxuICAgIGFjdGlvbixcbiAgICBvY2N1cnJlZF9hdCxcbiAgfSk7XG5cbiAgLy8gT04gQ09ORkxJQ1QgRE8gTk9USElORzogZGVkdXBlX2tleSBVTklRVUUg7JyE67CY7J2EIHNpbGVudCDrrLTsi5wuXG4gIC8vIHRyeS9jYXRjaCDrsKnsi53snYAgUEcg7Luk64Sl7IWY7J2EIGFib3J0ZWQg7IOB7YOc66GcIOunjOuTnOuvgOuhnCDsgqzsmqntlZjsp4Ag7JWK64qU64ukLlxuICBjb25zdCBpbnNlcnRlZCA9IGF3YWl0IGRiKFwiYXVkaXRfZXZlbnRzXCIpXG4gICAgLmluc2VydCh7XG4gICAgICBzb3VyY2U6IEFVRElUX0VWRU5UX1NPVVJDRSxcbiAgICAgIHNvdXJjZV92ZXJzaW9uOiBBVURJVF9FVkVOVF9TT1VSQ0VfVkVSU0lPTixcbiAgICAgIGNhdGVnb3J5LFxuICAgICAgZXZlbnRfdHlwZTogZXZlbnQuZXZlbnRUeXBlLFxuICAgICAgZXZlbnRfa2V5OiBldmVudC5ldmVudEtleSxcbiAgICAgIGRlZHVwZV9rZXksXG4gICAgICBhY3Rvcl91c2VyX2lkLFxuICAgICAgc3ViamVjdF91c2VyX2lkLFxuICAgICAgb3JnYW5pemF0aW9uX2lkLFxuICAgICAgdGVhbV9pZCxcbiAgICAgIHNlc3Npb25faWQsXG4gICAgICBwcm92aWRlcl9pZCxcbiAgICAgIGxvZ2luX21ldGhvZCxcbiAgICAgIGlkZW50aWZpZXIsXG4gICAgICB2aXNpdG9yX2lkLFxuICAgICAgcmVhc29uLFxuICAgICAgYWN0aW9uLFxuICAgICAgdHJpZ2dlcl9jb250ZXh0LFxuICAgICAgaXBfYWRkcmVzcyxcbiAgICAgIGNvdW50cnlfY29kZSxcbiAgICAgIGNvdW50cnksXG4gICAgICBjaXR5LFxuICAgICAgdXNlcl9hZ2VudCxcbiAgICAgIHBheWxvYWRfanNvbjogZXZlbnREYXRhLFxuICAgICAgb2NjdXJyZWRfYXQsXG4gICAgfSlcbiAgICAub25Db25mbGljdChcImRlZHVwZV9rZXlcIilcbiAgICAuaWdub3JlKClcbiAgICAucmV0dXJuaW5nKFwiZGVkdXBlX2tleVwiKTtcblxuICBpZiAoaW5zZXJ0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuOyAvLyBzaWxlbnQgZGVkdXBlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFNQSxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLDZCQUE2QjtBQUVuQyxNQUFNLHNDQUFzQixJQUFJLElBQVk7Q0FDMUM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtBQUNGLENBQUM7QUFFRCxNQUFNLHNDQUFzQixJQUFJLElBQVk7Q0FDMUM7Q0FDQTtDQUNBO0NBSUE7Q0FDQTtDQUNBO0FBQ0YsQ0FBQztBQUVELE1BQU0sMkNBQTJCLElBQUksSUFBWTtDQUMvQztDQUNBO0NBQ0E7QUFDRixDQUFDO0FBRUQsTUFBTSx1Q0FBdUIsSUFBSSxJ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
@@ -3,7 +3,6 @@ import { Sonamu, init_sonamu } from "../api/sonamu.js";
3
3
  import { EntityManager, init_entity_manager } from "../entity/entity-manager.js";
4
4
  import { ENTITY_DEFINITIONS, isValidPluginId } from "./plugins/entity-definitions/index.js";
5
5
  import chalk from "chalk";
6
-
7
6
  //#region src/auth/auth-generator.ts
8
7
  init_sonamu();
9
8
  init_entity_manager();
@@ -26,12 +25,10 @@ function findPropsToUpdate(existingProps, requiredProps) {
26
25
  if (existingIndex === -1) continue;
27
26
  const existingProp = existingProps[existingIndex];
28
27
  const coneChanged = requiredProp.cone?.fixtureStrategy !== existingProp?.cone?.fixtureStrategy;
29
- if (existingProp?.type !== requiredProp.type || coneChanged) {
30
- result.push({
31
- index: existingIndex,
32
- newProp: requiredProp
33
- });
34
- }
28
+ if (existingProp?.type !== requiredProp.type || coneChanged) result.push({
29
+ index: existingIndex,
30
+ newProp: requiredProp
31
+ });
35
32
  }
36
33
  return result;
37
34
  }
@@ -47,19 +44,14 @@ function findMissingIndexes(existingIndexes, requiredIndexes) {
47
44
  */
48
45
  function findMissingSubsets(existingSubsets, requiredSubsets) {
49
46
  const missing = {};
50
- for (const [key, fields] of Object.entries(requiredSubsets)) {
51
- if (!existingSubsets[key]) {
52
- missing[key] = fields;
53
- }
54
- }
47
+ for (const [key, fields] of Object.entries(requiredSubsets)) if (!existingSubsets[key]) missing[key] = fields;
55
48
  return missing;
56
49
  }
57
50
  /**
58
51
  * 엔티티를 생성하거나 업데이트합니다.
59
52
  */
60
53
  async function createOrUpdateEntity(entityJson) {
61
- const exists = EntityManager.exists(entityJson.id);
62
- if (!exists) {
54
+ if (!EntityManager.exists(entityJson.id)) {
63
55
  await Sonamu.syncer.createEntity({
64
56
  entityId: entityJson.id,
65
57
  table: entityJson.table,
@@ -69,8 +61,7 @@ async function createOrUpdateEntity(entityJson) {
69
61
  subsets: entityJson.subsets ?? {},
70
62
  enums: entityJson.enums ?? {}
71
63
  });
72
- const entity$1 = EntityManager.get(entityJson.id);
73
- await entity$1.save();
64
+ await EntityManager.get(entityJson.id).save();
74
65
  console.log(chalk.green(`[CREATED] ${entityJson.id}`));
75
66
  return;
76
67
  }
@@ -104,9 +95,7 @@ async function createOrUpdateEntity(entityJson) {
104
95
  if (hasChanges) {
105
96
  await entity.save();
106
97
  console.log(chalk.blue(`[UPDATED] ${entityJson.id}`));
107
- } else {
108
- console.log(chalk.dim(`[SKIP] ${entityJson.id} - no changes`));
109
- }
98
+ } else console.log(chalk.dim(`[SKIP] ${entityJson.id} - no changes`));
110
99
  }
111
100
  /**
112
101
  * 기존 엔티티에 props를 추가합니다.
@@ -124,9 +113,7 @@ async function addPropsToEntity(entityId, props) {
124
113
  console.log(chalk.green(`[ADD PROP] ${entityId}.${prop.name}`));
125
114
  hasChanges = true;
126
115
  }
127
- if (hasChanges) {
128
- await entity.save();
129
- }
116
+ if (hasChanges) await entity.save();
130
117
  }
131
118
  /**
132
119
  * 기존 엔티티에 indexes를 추가합니다.
@@ -144,9 +131,7 @@ async function addIndexesToEntity(entityId, indexes) {
144
131
  console.log(chalk.green(`[ADD INDEX] ${entityId}.${index.name}`));
145
132
  hasChanges = true;
146
133
  }
147
- if (hasChanges) {
148
- await entity.save();
149
- }
134
+ if (hasChanges) await entity.save();
150
135
  }
151
136
  /**
152
137
  * 기존 프로젝트의 entity.json에 fixtureCompanions를 소급 추가합니다.
@@ -190,9 +175,7 @@ async function addCompanionsToEntities() {
190
175
  async function generateBetterAuthEntities(options = {}) {
191
176
  const { plugins = [] } = options;
192
177
  console.log(chalk.cyan("\n📦 Processing core entities...\n"));
193
- for (const entityJson of betterAuthV1) {
194
- await createOrUpdateEntity(entityJson);
195
- }
178
+ for (const entityJson of betterAuthV1) await createOrUpdateEntity(entityJson);
196
179
  if (plugins.length > 0) {
197
180
  console.log(chalk.cyan("\n🔌 Processing plugins...\n"));
198
181
  for (const pluginId of plugins) {
@@ -202,22 +185,14 @@ async function generateBetterAuthEntities(options = {}) {
202
185
  }
203
186
  const entityDef = ENTITY_DEFINITIONS[pluginId];
204
187
  console.log(chalk.magenta(`[PLUGIN] ${entityDef.name}`));
205
- for (const entityJson of entityDef.entities) {
206
- await createOrUpdateEntity(entityJson);
207
- }
208
- for (const [entityId, props] of Object.entries(entityDef.additionalProps)) {
209
- await addPropsToEntity(entityId, props);
210
- }
211
- if (entityDef.additionalIndexes) {
212
- for (const [entityId, indexes] of Object.entries(entityDef.additionalIndexes)) {
213
- await addIndexesToEntity(entityId, indexes);
214
- }
215
- }
188
+ for (const entityJson of entityDef.entities) await createOrUpdateEntity(entityJson);
189
+ for (const [entityId, props] of Object.entries(entityDef.additionalProps)) await addPropsToEntity(entityId, props);
190
+ if (entityDef.additionalIndexes) for (const [entityId, indexes] of Object.entries(entityDef.additionalIndexes)) await addIndexesToEntity(entityId, indexes);
216
191
  }
217
192
  }
218
193
  console.log(chalk.bold("\n✅ Done! better-auth entities generated."));
219
194
  }
220
-
221
195
  //#endregion
222
196
  export { addCompanionsToEntities, generateBetterAuthEntities };
223
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nZW5lcmF0b3IuanMiLCJuYW1lcyI6WyJyZXN1bHQ6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10iLCJtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0iLCJlbnRpdHkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXV0aC9hdXRoLWdlbmVyYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlJbmRleCwgdHlwZSBFbnRpdHlKc29uLCB0eXBlIEVudGl0eVByb3AgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IGJldHRlckF1dGhWMSB9IGZyb20gXCIuL2JldHRlci1hdXRoLWVudGl0aWVzXCI7XG5pbXBvcnQgeyBFTlRJVFlfREVGSU5JVElPTlMsIGlzVmFsaWRQbHVnaW5JZCB9IGZyb20gXCIuL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zXCI7XG5pbXBvcnQgeyB0eXBlIEJldHRlckF1dGhQbHVnaW5JZCB9IGZyb20gXCIuL3BsdWdpbnMvZW50aXR5LWRlZmluaXRpb25zXCI7XG5cbi8qKlxuICog64iE652965CcIHByb3BzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ1Byb3BzKGV4aXN0aW5nUHJvcHM6IEVudGl0eVByb3BbXSwgcmVxdWlyZWRQcm9wczogRW50aXR5UHJvcFtdKTogRW50aXR5UHJvcFtdIHtcbiAgY29uc3QgZXhpc3RpbmdOYW1lcyA9IG5ldyBTZXQoZXhpc3RpbmdQcm9wcy5tYXAoKHApID0+IHAubmFtZSkpO1xuICByZXR1cm4gcmVxdWlyZWRQcm9wcy5maWx0ZXIoKHApID0+ICFleGlzdGluZ05hbWVzLmhhcyhwLm5hbWUpKTtcbn1cblxuLyoqXG4gKiDtg4DsnoXsnbQg67OA6rK965CcIHByb3BzIOywvuq4sCAo64+Z7J28IG5hbWUsIOuLpOuluCB0eXBlKVxuICogQHJldHVybnMgW+q4sOyhtCBwcm9wIGluZGV4LCDsg4ggcHJvcF1bXVxuICovXG5mdW5jdGlvbiBmaW5kUHJvcHNUb1VwZGF0ZShcbiAgZXhpc3RpbmdQcm9wczogRW50aXR5UHJvcFtdLFxuICByZXF1aXJlZFByb3BzOiBFbnRpdHlQcm9wW10sXG4pOiB7IGluZGV4OiBudW1iZXI7IG5ld1Byb3A6IEVudGl0eVByb3AgfVtdIHtcbiAgY29uc3QgcmVzdWx0OiB7IGluZGV4OiBudW1iZXI7IG5ld1Byb3A6IEVudGl0eVByb3AgfVtdID0gW107XG5cbiAgZm9yIChjb25zdCByZXF1aXJlZFByb3Agb2YgcmVxdWlyZWRQcm9wcykge1xuICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBleGlzdGluZ1Byb3BzLmZpbmRJbmRleCgocCkgPT4gcC5uYW1lID09PSByZXF1aXJlZFByb3AubmFtZSk7XG4gICAgaWYgKGV4aXN0aW5nSW5kZXggPT09IC0xKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUHJvcCA9IGV4aXN0aW5nUHJvcHNbZXhpc3RpbmdJbmRleF07XG4gICAgLy8gdHlwZeydtCDri6TrpbTqsbDrgpggY29uZS5maXh0dXJlU3RyYXRlZ3nqsIAg64uk66W066m0IOyXheuNsOydtO2KuCDrjIDsg4FcbiAgICBjb25zdCBjb25lQ2hhbmdlZCA9IHJlcXVpcmVkUHJvcC5jb25lPy5maXh0dXJlU3RyYXRlZ3kgIT09IGV4aXN0aW5nUHJvcD8uY29uZT8uZml4dHVyZVN0cmF0ZWd5O1xuICAgIGlmIChleGlzdGluZ1Byb3A/LnR5cGUgIT09IHJlcXVpcmVkUHJvcC50eXBlIHx8IGNvbmVDaGFuZ2VkKSB7XG4gICAgICByZXN1bHQucHVzaCh7IGluZGV4OiBleGlzdGluZ0luZGV4LCBuZXdQcm9wOiByZXF1aXJlZFByb3AgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiDriITrnb3rkJwgaW5kZXhlcyDssL7quLBcbiAqL1xuZnVuY3Rpb24gZmluZE1pc3NpbmdJbmRleGVzKFxuICBleGlzdGluZ0luZGV4ZXM6IEVudGl0eUluZGV4W10sXG4gIHJlcXVpcmVkSW5kZXhlczogRW50aXR5SW5kZXhbXSxcbik6IEVudGl0eUluZGV4W10ge1xuICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChleGlzdGluZ0luZGV4ZXMubWFwKChpKSA9PiBpLm5hbWUpKTtcbiAgcmV0dXJuIHJlcXVpcmVkSW5kZXhlcy5maWx0ZXIoKGkpID0+ICFleGlzdGluZ05hbWVzLmhhcyhpLm5hbWUpKTtcbn1cblxuLyoqXG4gKiDriITrnb3rkJwgc3Vic2V0cyDssL7quLBcbiAqL1xuZnVuY3Rpb24gZmluZE1pc3NpbmdTdWJzZXRzKFxuICBleGlzdGluZ1N1YnNldHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgcmVxdWlyZWRTdWJzZXRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICBjb25zdCBtaXNzaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCBmaWVsZHNdIG9mIE9iamVjdC5lbnRyaWVzKHJlcXVpcmVkU3Vic2V0cykpIHtcbiAgICBpZiAoIWV4aXN0aW5nU3Vic2V0c1trZXldKSB7XG4gICAgICBtaXNzaW5nW2tleV0gPSBmaWVsZHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBtaXNzaW5nO1xufVxuXG4vKipcbiAqIOyXlO2LsO2LsOulvCDsg53shLHtlZjqsbDrgpgg7JeF642w7J207Yq47ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uOiBFbnRpdHlKc29uKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGV4aXN0cyA9IEVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUpzb24uaWQpO1xuXG4gIGlmICghZXhpc3RzKSB7XG4gICAgLy8g7IOIIOyXlO2LsO2LsCDsg53shLFcbiAgICBhd2FpdCBTb25hbXUuc3luY2VyLmNyZWF0ZUVudGl0eSh7XG4gICAgICBlbnRpdHlJZDogZW50aXR5SnNvbi5pZCxcbiAgICAgIHRhYmxlOiBlbnRpdHlKc29uLnRhYmxlLFxuICAgICAgdGl0bGU6IGVudGl0eUpzb24udGl0bGUgPz8gZW50aXR5SnNvbi5pZCxcbiAgICAgIHByb3BzOiBlbnRpdHlKc29uLnByb3BzID8/IFtdLFxuICAgICAgaW5kZXhlczogZW50aXR5SnNvbi5pbmRleGVzID8/IFtdLFxuICAgICAgc3Vic2V0czogZW50aXR5SnNvbi5zdWJzZXRzID8/IHt9LFxuICAgICAgZW51bXM6IGVudGl0eUpzb24uZW51bXMgPz8ge30sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQ1JFQVRFRF0gJHtlbnRpdHlKc29uLmlkfWApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyDquLDsobQg7JeU7Yuw7YuwIOyXheuNsOydtO2KuFxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICAvLyDriITrnb3rkJwgcHJvcHMg7LaU6rCAXG4gIGNvbnN0IG1pc3NpbmdQcm9wcyA9IGZpbmRNaXNzaW5nUHJvcHMoZW50aXR5LnByb3BzLCBlbnRpdHlKc29uLnByb3BzID8/IFtdKTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIG1pc3NpbmdQcm9wcykge1xuICAgIGF3YWl0IGVudGl0eS5jcmVhdGVQcm9wKHByb3ApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIFBST1BdICR7ZW50aXR5SnNvbi5pZH0uJHtwcm9wLm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g7YOA7J6F7J20IOuzgOqyveuQnCBwcm9wcyDsl4XrjbDsnbTtirhcbiAgY29uc3QgcHJvcHNUb1VwZGF0ZSA9IGZpbmRQcm9wc1RvVXBkYXRlKGVudGl0eS5wcm9wcywgZW50aXR5SnNvbi5wcm9wcyA/PyBbXSk7XG4gIGZvciAoY29uc3QgeyBpbmRleCwgbmV3UHJvcCB9IG9mIHByb3BzVG9VcGRhdGUpIHtcbiAgICBjb25zdCBvbGRUeXBlID0gZW50aXR5LnByb3BzW2luZGV4XT8udHlwZTtcbiAgICBhd2FpdCBlbnRpdHkubW9kaWZ5UHJvcChuZXdQcm9wLCBpbmRleCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBjaGFsay55ZWxsb3coYFtVUERBVEUgUFJPUF0gJHtlbnRpdHlKc29uLmlkfS4ke25ld1Byb3AubmFtZX06ICR7b2xkVHlwZX0g4oaSICR7bmV3UHJvcC50eXBlfWApLFxuICAgICk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDriITrnb3rkJwgaW5kZXhlcyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ0luZGV4ZXMgPSBmaW5kTWlzc2luZ0luZGV4ZXMoZW50aXR5LmluZGV4ZXMsIGVudGl0eUpzb24uaW5kZXhlcyA/PyBbXSk7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgbWlzc2luZ0luZGV4ZXMpIHtcbiAgICBlbnRpdHkuaW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBJTkRFWF0gJHtlbnRpdHlKc29uLmlkfS4ke2luZGV4Lm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g64iE652965CcIHN1YnNldHMg7LaU6rCAXG4gIGNvbnN0IG1pc3NpbmdTdWJzZXRzID0gZmluZE1pc3NpbmdTdWJzZXRzKFxuICAgIGVudGl0eS5zdWJzZXRzLFxuICAgIChlbnRpdHlKc29uLnN1YnNldHMgPz8ge30pIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbiAgKTtcbiAgZm9yIChjb25zdCBba2V5LCBmaWVsZHNdIG9mIE9iamVjdC5lbnRyaWVzKG1pc3NpbmdTdWJzZXRzKSkge1xuICAgIGVudGl0eS5zdWJzZXRzW2tleV0gPSBmaWVsZHM7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgU1VCU0VUXSAke2VudGl0eUpzb24uaWR9LiR7a2V5fWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuzgOqyveyCrO2VrSDsoIDsnqVcbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmJsdWUoYFtVUERBVEVEXSAke2VudGl0eUpzb24uaWR9YCkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0gLSBubyBjaGFuZ2VzYCkpO1xuICB9XG59XG5cbi8qKlxuICog6riw7KG0IOyXlO2LsO2LsOyXkCBwcm9wc+ulvCDstpTqsIDtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFkZFByb3BzVG9FbnRpdHkoZW50aXR5SWQ6IHN0cmluZywgcHJvcHM6IEVudGl0eVByb3BbXSk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIUVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUlkKSkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SWR9IC0gZW50aXR5IG5vdCBmb3VuZCwgY2Fubm90IGFkZCBwcm9wc2ApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3QgbWlzc2luZ1Byb3BzID0gZmluZE1pc3NpbmdQcm9wcyhlbnRpdHkucHJvcHMsIHByb3BzKTtcbiAgZm9yIChjb25zdCBwcm9wIG9mIG1pc3NpbmdQcm9wcykge1xuICAgIGF3YWl0IGVudGl0eS5jcmVhdGVQcm9wKHByb3ApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIFBST1BdICR7ZW50aXR5SWR9LiR7cHJvcC5uYW1lfWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgfVxufVxuXG4vKipcbiAqIOq4sOyhtCDsl5Tti7Dti7Dsl5AgaW5kZXhlc+ulvCDstpTqsIDtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGFkZEluZGV4ZXNUb0VudGl0eShlbnRpdHlJZDogc3RyaW5nLCBpbmRleGVzOiBFbnRpdHlJbmRleFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SWQpKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlJZH0gLSBlbnRpdHkgbm90IGZvdW5kLCBjYW5ub3QgYWRkIGluZGV4ZXNgKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG1pc3NpbmdJbmRleGVzID0gZmluZE1pc3NpbmdJbmRleGVzKGVudGl0eS5pbmRleGVzLCBpbmRleGVzKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBtaXNzaW5nSW5kZXhlcykge1xuICAgIGVudGl0eS5pbmRleGVzLnB1c2goaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIElOREVYXSAke2VudGl0eUlkfS4ke2luZGV4Lm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIO2ZnOyEse2ZlO2VoCDtlIzrn6zqt7jsnbggSUQg66qp66GdXG4gICAqIOyYiDogW1wicGhvbmUtbnVtYmVyXCIsIFwiMmZhXCJdXG4gICAqL1xuICBwbHVnaW5zPzogQmV0dGVyQXV0aFBsdWdpbklkW107XG59XG5cbi8qKlxuICog6riw7KG0IO2UhOuhnOygne2KuOydmCBlbnRpdHkuanNvbuyXkCBmaXh0dXJlQ29tcGFuaW9uc+ulvCDshozquIkg7LaU6rCA7ZWp64uI64ukLlxuICpcbiAqIGJldHRlckF1dGhWMSDquLDspIDsnLzroZwgZml4dHVyZUNvbXBhbmlvbnPqsIAg7KCV7J2Y65CcIGVudGl0eeulvCDssL7slYRcbiAqIO2UhOuhnOygne2KuCDrgrQgZW50aXR5Lmpzb27sl5Ag7ZW064u5IHByb3DsnZggY29uZeyXkCBmaXh0dXJlQ29tcGFuaW9uc+qwgFxuICog7JeG7J2EIOuVjOunjCDstpTqsIDtlanri4jri6QuIOydtOuvuCDsnojsnLzrqbQg7Iqk7YK17ZWp64uI64ukLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQ29tcGFuaW9uc1RvRW50aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBiZXR0ZXJBdXRoVjEpIHtcbiAgICBjb25zdCBpZFByb3AgPSBlbnRpdHlKc29uLnByb3BzPy5maW5kKChwKSA9PiBwLm5hbWUgPT09IFwiaWRcIik7XG4gICAgaWYgKCFpZFByb3A/LmNvbmU/LmZpeHR1cmVDb21wYW5pb25zKSBjb250aW51ZTtcblxuICAgIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SnNvbi5pZCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0gLSBub3QgZm91bmRgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlKc29uLmlkKTtcbiAgICBjb25zdCBleGlzdGluZ0lkUHJvcCA9IGVudGl0eS5wcm9wcy5maW5kKChwKSA9PiBwLm5hbWUgPT09IFwiaWRcIik7XG4gICAgaWYgKCFleGlzdGluZ0lkUHJvcCkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfS5pZCAtIHByb3Agbm90IGZvdW5kYCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nSWRQcm9wLmNvbmU/LmZpeHR1cmVDb21wYW5pb25zKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5kaW0oYFtTS0lQXSAke2VudGl0eUpzb24uaWR9LmlkIC0gZml4dHVyZUNvbXBhbmlvbnMgYWxyZWFkeSBleGlzdHNgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBleGlzdGluZ0lkUHJvcC5jb25lID0ge1xuICAgICAgLi4uZXhpc3RpbmdJZFByb3AuY29uZSxcbiAgICAgIGZpeHR1cmVDb21wYW5pb25zOiBpZFByb3AuY29uZS5maXh0dXJlQ29tcGFuaW9ucyxcbiAgICB9O1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtVUERBVEVEXSAke2VudGl0eUpzb24uaWR9LmlkIC0gZml4dHVyZUNvbXBhbmlvbnMgYWRkZWRgKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBiZXR0ZXItYXV0aCDsl5Tti7Dti7Drk6TsnYQgU29uYW117JeQIOyDneyEsS/sl4XrjbDsnbTtirhcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyDsg53shLEg7Ji17IWYXG4gKiBAcGFyYW0gb3B0aW9ucy5wbHVnaW5zIO2ZnOyEse2ZlO2VoCDtlIzrn6zqt7jsnbggSUQg66qp66GdXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllcyhcbiAgb3B0aW9uczogR2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXNPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwbHVnaW5zID0gW10gfSA9IG9wdGlvbnM7XG5cbiAgLy8gMS4g6riw67O4IOyXlO2LsO2LsCDsg53shLEv7JeF642w7J207Yq4XG4gIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5OmIFByb2Nlc3NpbmcgY29yZSBlbnRpdGllcy4uLlxcblwiKSk7XG4gIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBiZXR0ZXJBdXRoVjEpIHtcbiAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uKTtcbiAgfVxuXG4gIC8vIDIuIO2UjOufrOq3uOyduCDsspjrpqxcbiAgaWYgKHBsdWdpbnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5SMIFByb2Nlc3NpbmcgcGx1Z2lucy4uLlxcblwiKSk7XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbklkIG9mIHBsdWdpbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZFBsdWdpbklkKHBsdWdpbklkKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQoYFtFUlJPUl0gVW5rbm93biBwbHVnaW46ICR7cGx1Z2luSWR9YCkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50aXR5RGVmID0gRU5USVRZX0RFRklOSVRJT05TW3BsdWdpbklkXTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGEoYFtQTFVHSU5dICR7ZW50aXR5RGVmLm5hbWV9YCkpO1xuXG4gICAgICAvLyDtlIzrn6zqt7jsnbjsnZgg7IOIIOyXlO2LsO2LsCDsg53shLFcbiAgICAgIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBlbnRpdHlEZWYuZW50aXRpZXMpIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlT3JVcGRhdGVFbnRpdHkoZW50aXR5SnNvbik7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7ZWE65OcIOy2lOqwgFxuICAgICAgZm9yIChjb25zdCBbZW50aXR5SWQsIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuYWRkaXRpb25hbFByb3BzKSkge1xuICAgICAgICBhd2FpdCBhZGRQcm9wc1RvRW50aXR5KGVudGl0eUlkLCBwcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7J24642x7IqkIOy2lOqwgFxuICAgICAgaWYgKGVudGl0eURlZi5hZGRpdGlvbmFsSW5kZXhlcykge1xuICAgICAgICBmb3IgKGNvbnN0IFtlbnRpdHlJZCwgaW5kZXhlc10gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5RGVmLmFkZGl0aW9uYWxJbmRleGVzKSkge1xuICAgICAgICAgIGF3YWl0IGFkZEluZGV4ZXNUb0VudGl0eShlbnRpdHlJZCwgaW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmxvZyhjaGFsay5ib2xkKFwiXFxu4pyFIERvbmUhIGJldHRlci1hdXRoIGVudGl0aWVzIGdlbmVyYXRlZC5cIikpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O2FBRXVDO3FCQUNrQjsyQkFFSDs7OztBQU90RCxTQUFTLGlCQUFpQixlQUE2QixlQUEyQztDQUNoRyxNQUFNLGdCQUFnQixJQUFJLElBQUksY0FBYyxLQUFLLE1BQU0sRUFBRSxLQUFLLENBQUM7QUFDL0QsUUFBTyxjQUFjLFFBQVEsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLEtBQUssQ0FBQzs7Ozs7O0FBT2hFLFNBQVMsa0JBQ1AsZUFDQSxlQUMwQztD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
197
+
198
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1nZW5lcmF0b3IuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvYXV0aC1nZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuXG5pbXBvcnQgeyBTb25hbXUgfSBmcm9tIFwiLi4vYXBpL3NvbmFtdVwiO1xuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgRW50aXR5SW5kZXgsIHR5cGUgRW50aXR5SnNvbiwgdHlwZSBFbnRpdHlQcm9wIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBiZXR0ZXJBdXRoVjEgfSBmcm9tIFwiLi9iZXR0ZXItYXV0aC1lbnRpdGllc1wiO1xuaW1wb3J0IHsgRU5USVRZX0RFRklOSVRJT05TLCBpc1ZhbGlkUGx1Z2luSWQgfSBmcm9tIFwiLi9wbHVnaW5zL2VudGl0eS1kZWZpbml0aW9uc1wiO1xuaW1wb3J0IHsgdHlwZSBCZXR0ZXJBdXRoUGx1Z2luSWQgfSBmcm9tIFwiLi9wbHVnaW5zL2VudGl0eS1kZWZpbml0aW9uc1wiO1xuXG4vKipcbiAqIOuIhOudveuQnCBwcm9wcyDssL7quLBcbiAqL1xuZnVuY3Rpb24gZmluZE1pc3NpbmdQcm9wcyhleGlzdGluZ1Byb3BzOiBFbnRpdHlQcm9wW10sIHJlcXVpcmVkUHJvcHM6IEVudGl0eVByb3BbXSk6IEVudGl0eVByb3BbXSB7XG4gIGNvbnN0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0KGV4aXN0aW5nUHJvcHMubWFwKChwKSA9PiBwLm5hbWUpKTtcbiAgcmV0dXJuIHJlcXVpcmVkUHJvcHMuZmlsdGVyKChwKSA9PiAhZXhpc3RpbmdOYW1lcy5oYXMocC5uYW1lKSk7XG59XG5cbi8qKlxuICog7YOA7J6F7J20IOuzgOqyveuQnCBwcm9wcyDssL7quLAgKOuPmeydvCBuYW1lLCDri6TrpbggdHlwZSlcbiAqIEByZXR1cm5zIFvquLDsobQgcHJvcCBpbmRleCwg7IOIIHByb3BdW11cbiAqL1xuZnVuY3Rpb24gZmluZFByb3BzVG9VcGRhdGUoXG4gIGV4aXN0aW5nUHJvcHM6IEVudGl0eVByb3BbXSxcbiAgcmVxdWlyZWRQcm9wczogRW50aXR5UHJvcFtdLFxuKTogeyBpbmRleDogbnVtYmVyOyBuZXdQcm9wOiBFbnRpdHlQcm9wIH1bXSB7XG4gIGNvbnN0IHJlc3VsdDogeyBpbmRleDogbnVtYmVyOyBuZXdQcm9wOiBFbnRpdHlQcm9wIH1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVxdWlyZWRQcm9wIG9mIHJlcXVpcmVkUHJvcHMpIHtcbiAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gZXhpc3RpbmdQcm9wcy5maW5kSW5kZXgoKHApID0+IHAubmFtZSA9PT0gcmVxdWlyZWRQcm9wLm5hbWUpO1xuICAgIGlmIChleGlzdGluZ0luZGV4ID09PSAtMSkgY29udGludWU7XG5cbiAgICBjb25zdCBleGlzdGluZ1Byb3AgPSBleGlzdGluZ1Byb3BzW2V4aXN0aW5nSW5kZXhdO1xuICAgIC8vIHR5cGXsnbQg64uk66W06rGw64KYIGNvbmUuZml4dHVyZVN0cmF0ZWd56rCAIOuLpOultOuptCDsl4XrjbDsnbTtirgg64yA7IOBXG4gICAgY29uc3QgY29uZUNoYW5nZWQgPSByZXF1aXJlZFByb3AuY29uZT8uZml4dHVyZVN0cmF0ZWd5ICE9PSBleGlzdGluZ1Byb3A/LmNvbmU/LmZpeHR1cmVTdHJhdGVneTtcbiAgICBpZiAoZXhpc3RpbmdQcm9wPy50eXBlICE9PSByZXF1aXJlZFByb3AudHlwZSB8fCBjb25lQ2hhbmdlZCkge1xuICAgICAgcmVzdWx0LnB1c2goeyBpbmRleDogZXhpc3RpbmdJbmRleCwgbmV3UHJvcDogcmVxdWlyZWRQcm9wIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICog64iE652965CcIGluZGV4ZXMg7LC+6riwXG4gKi9cbmZ1bmN0aW9uIGZpbmRNaXNzaW5nSW5kZXhlcyhcbiAgZXhpc3RpbmdJbmRleGVzOiBFbnRpdHlJbmRleFtdLFxuICByZXF1aXJlZEluZGV4ZXM6IEVudGl0eUluZGV4W10sXG4pOiBFbnRpdHlJbmRleFtdIHtcbiAgY29uc3QgZXhpc3RpbmdOYW1lcyA9IG5ldyBTZXQoZXhpc3RpbmdJbmRleGVzLm1hcCgoaSkgPT4gaS5uYW1lKSk7XG4gIHJldHVybiByZXF1aXJlZEluZGV4ZXMuZmlsdGVyKChpKSA9PiAhZXhpc3RpbmdOYW1lcy5oYXMoaS5uYW1lKSk7XG59XG5cbi8qKlxuICog64iE652965CcIHN1YnNldHMg7LC+6riwXG4gKi9cbmZ1bmN0aW9uIGZpbmRNaXNzaW5nU3Vic2V0cyhcbiAgZXhpc3RpbmdTdWJzZXRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gIHJlcXVpcmVkU3Vic2V0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9IHtcbiAgY29uc3QgbWlzc2luZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgZmllbGRzXSBvZiBPYmplY3QuZW50cmllcyhyZXF1aXJlZFN1YnNldHMpKSB7XG4gICAgaWYgKCFleGlzdGluZ1N1YnNldHNba2V5XSkge1xuICAgICAgbWlzc2luZ1trZXldID0gZmllbGRzO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWlzc2luZztcbn1cblxuLyoqXG4gKiDsl5Tti7Dti7Drpbwg7IOd7ISx7ZWY6rGw64KYIOyXheuNsOydtO2KuO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JVcGRhdGVFbnRpdHkoZW50aXR5SnNvbjogRW50aXR5SnNvbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBleGlzdHMgPSBFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlKc29uLmlkKTtcblxuICBpZiAoIWV4aXN0cykge1xuICAgIC8vIOyDiCDsl5Tti7Dti7Ag7IOd7ISxXG4gICAgYXdhaXQgU29uYW11LnN5bmNlci5jcmVhdGVFbnRpdHkoe1xuICAgICAgZW50aXR5SWQ6IGVudGl0eUpzb24uaWQsXG4gICAgICB0YWJsZTogZW50aXR5SnNvbi50YWJsZSxcbiAgICAgIHRpdGxlOiBlbnRpdHlKc29uLnRpdGxlID8/IGVudGl0eUpzb24uaWQsXG4gICAgICBwcm9wczogZW50aXR5SnNvbi5wcm9wcyA/PyBbXSxcbiAgICAgIGluZGV4ZXM6IGVudGl0eUpzb24uaW5kZXhlcyA/PyBbXSxcbiAgICAgIHN1YnNldHM6IGVudGl0eUpzb24uc3Vic2V0cyA/PyB7fSxcbiAgICAgIGVudW1zOiBlbnRpdHlKc29uLmVudW1zID8/IHt9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SnNvbi5pZCk7XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0NSRUFURURdICR7ZW50aXR5SnNvbi5pZH1gKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8g6riw7KG0IOyXlO2LsO2LsCDsl4XrjbDsnbTtirhcbiAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SnNvbi5pZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgLy8g64iE652965CcIHByb3BzIOy2lOqwgFxuICBjb25zdCBtaXNzaW5nUHJvcHMgPSBmaW5kTWlzc2luZ1Byb3BzKGVudGl0eS5wcm9wcywgZW50aXR5SnNvbi5wcm9wcyA/PyBbXSk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBtaXNzaW5nUHJvcHMpIHtcbiAgICBhd2FpdCBlbnRpdHkuY3JlYXRlUHJvcChwcm9wKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBQUk9QXSAke2VudGl0eUpzb24uaWR9LiR7cHJvcC5uYW1lfWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIO2DgOyeheydtCDrs4Dqsr3rkJwgcHJvcHMg7JeF642w7J207Yq4XG4gIGNvbnN0IHByb3BzVG9VcGRhdGUgPSBmaW5kUHJvcHNUb1VwZGF0ZShlbnRpdHkucHJvcHMsIGVudGl0eUpzb24ucHJvcHMgPz8gW10pO1xuICBmb3IgKGNvbnN0IHsgaW5kZXgsIG5ld1Byb3AgfSBvZiBwcm9wc1RvVXBkYXRlKSB7XG4gICAgY29uc3Qgb2xkVHlwZSA9IGVudGl0eS5wcm9wc1tpbmRleF0/LnR5cGU7XG4gICAgYXdhaXQgZW50aXR5Lm1vZGlmeVByb3AobmV3UHJvcCwgaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgY2hhbGsueWVsbG93KGBbVVBEQVRFIFBST1BdICR7ZW50aXR5SnNvbi5pZH0uJHtuZXdQcm9wLm5hbWV9OiAke29sZFR5cGV9IOKGkiAke25ld1Byb3AudHlwZX1gKSxcbiAgICApO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g64iE652965CcIGluZGV4ZXMg7LaU6rCAXG4gIGNvbnN0IG1pc3NpbmdJbmRleGVzID0gZmluZE1pc3NpbmdJbmRleGVzKGVudGl0eS5pbmRleGVzLCBlbnRpdHlKc29uLmluZGV4ZXMgPz8gW10pO1xuICBmb3IgKGNvbnN0IGluZGV4IG9mIG1pc3NpbmdJbmRleGVzKSB7XG4gICAgZW50aXR5LmluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgSU5ERVhdICR7ZW50aXR5SnNvbi5pZH0uJHtpbmRleC5uYW1lfWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuIhOudveuQnCBzdWJzZXRzIOy2lOqwgFxuICBjb25zdCBtaXNzaW5nU3Vic2V0cyA9IGZpbmRNaXNzaW5nU3Vic2V0cyhcbiAgICBlbnRpdHkuc3Vic2V0cyxcbiAgICAoZW50aXR5SnNvbi5zdWJzZXRzID8/IHt9KSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICk7XG4gIGZvciAoY29uc3QgW2tleSwgZmllbGRzXSBvZiBPYmplY3QuZW50cmllcyhtaXNzaW5nU3Vic2V0cykpIHtcbiAgICBlbnRpdHkuc3Vic2V0c1trZXldID0gZmllbGRzO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIFNVQlNFVF0gJHtlbnRpdHlKc29uLmlkfS4ke2tleX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDrs4Dqsr3sgqztla0g7KCA7J6lXG4gIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ibHVlKGBbVVBEQVRFRF0gJHtlbnRpdHlKc29uLmlkfWApKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5kaW0oYFtTS0lQXSAke2VudGl0eUpzb24uaWR9IC0gbm8gY2hhbmdlc2ApKTtcbiAgfVxufVxuXG4vKipcbiAqIOq4sOyhtCDsl5Tti7Dti7Dsl5AgcHJvcHPrpbwg7LaU6rCA7ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBhZGRQcm9wc1RvRW50aXR5KGVudGl0eUlkOiBzdHJpbmcsIHByb3BzOiBFbnRpdHlQcm9wW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlJZCkpIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUlkfSAtIGVudGl0eSBub3QgZm91bmQsIGNhbm5vdCBhZGQgcHJvcHNgKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG1pc3NpbmdQcm9wcyA9IGZpbmRNaXNzaW5nUHJvcHMoZW50aXR5LnByb3BzLCBwcm9wcyk7XG4gIGZvciAoY29uc3QgcHJvcCBvZiBtaXNzaW5nUHJvcHMpIHtcbiAgICBhd2FpdCBlbnRpdHkuY3JlYXRlUHJvcChwcm9wKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBQUk9QXSAke2VudGl0eUlkfS4ke3Byb3AubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiDquLDsobQg7JeU7Yuw7Yuw7JeQIGluZGV4ZXPrpbwg7LaU6rCA7ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBhZGRJbmRleGVzVG9FbnRpdHkoZW50aXR5SWQ6IHN0cmluZywgaW5kZXhlczogRW50aXR5SW5kZXhbXSk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIUVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUlkKSkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SWR9IC0gZW50aXR5IG5vdCBmb3VuZCwgY2Fubm90IGFkZCBpbmRleGVzYCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdCBtaXNzaW5nSW5kZXhlcyA9IGZpbmRNaXNzaW5nSW5kZXhlcyhlbnRpdHkuaW5kZXhlcywgaW5kZXhlcyk7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgbWlzc2luZ0luZGV4ZXMpIHtcbiAgICBlbnRpdHkuaW5kZXhlcy5wdXNoKGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBJTkRFWF0gJHtlbnRpdHlJZH0uJHtpbmRleC5uYW1lfWApKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChoYXNDaGFuZ2VzKSB7XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlQmV0dGVyQXV0aEVudGl0aWVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiDtmZzshLHtmZTtlaAg7ZSM65+s6re47J24IElEIOuqqeuhnVxuICAgKiDsmIg6IFtcInBob25lLW51bWJlclwiLCBcIjJmYVwiXVxuICAgKi9cbiAgcGx1Z2lucz86IEJldHRlckF1dGhQbHVnaW5JZFtdO1xufVxuXG4vKipcbiAqIOq4sOyhtCDtlITroZzsoJ3tirjsnZggZW50aXR5Lmpzb27sl5AgZml4dHVyZUNvbXBhbmlvbnPrpbwg7IaM6riJIOy2lOqwgO2VqeuLiOuLpC5cbiAqXG4gKiBiZXR0ZXJBdXRoVjEg6riw7KSA7Jy866GcIGZpeHR1cmVDb21wYW5pb25z6rCAIOygleydmOuQnCBlbnRpdHnrpbwg7LC+7JWEXG4gKiDtlITroZzsoJ3tirgg64K0IGVudGl0eS5qc29u7JeQIO2VtOuLuSBwcm9w7J2YIGNvbmXsl5AgZml4dHVyZUNvbXBhbmlvbnPqsIBcbiAqIOyXhuydhCDrlYzrp4wg7LaU6rCA7ZWp64uI64ukLiDsnbTrr7gg7J6I7Jy866m0IOyKpO2Cte2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZENvbXBhbmlvbnNUb0VudGl0aWVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGVudGl0eUpzb24gb2YgYmV0dGVyQXV0aFYxKSB7XG4gICAgY29uc3QgaWRQcm9wID0gZW50aXR5SnNvbi5wcm9wcz8uZmluZCgocCkgPT4gcC5uYW1lID09PSBcImlkXCIpO1xuICAgIGlmICghaWRQcm9wPy5jb25lPy5maXh0dXJlQ29tcGFuaW9ucykgY29udGludWU7XG5cbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuZXhpc3RzKGVudGl0eUpzb24uaWQpKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUpzb24uaWR9IC0gbm90IGZvdW5kYCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SnNvbi5pZCk7XG4gICAgY29uc3QgZXhpc3RpbmdJZFByb3AgPSBlbnRpdHkucHJvcHMuZmluZCgocCkgPT4gcC5uYW1lID09PSBcImlkXCIpO1xuICAgIGlmICghZXhpc3RpbmdJZFByb3ApIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnllbGxvdyhgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0uaWQgLSBwcm9wIG5vdCBmb3VuZGApKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChleGlzdGluZ0lkUHJvcC5jb25lPy5maXh0dXJlQ29tcGFuaW9ucykge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZGltKGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfS5pZCAtIGZpeHR1cmVDb21wYW5pb25zIGFscmVhZHkgZXhpc3RzYCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZXhpc3RpbmdJZFByb3AuY29uZSA9IHtcbiAgICAgIC4uLmV4aXN0aW5nSWRQcm9wLmNvbmUsXG4gICAgICBmaXh0dXJlQ29tcGFuaW9uczogaWRQcm9wLmNvbmUuZml4dHVyZUNvbXBhbmlvbnMsXG4gICAgfTtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbVVBEQVRFRF0gJHtlbnRpdHlKc29uLmlkfS5pZCAtIGZpeHR1cmVDb21wYW5pb25zIGFkZGVkYCkpO1xuICB9XG59XG5cbi8qKlxuICogYmV0dGVyLWF1dGgg7JeU7Yuw7Yuw65Ok7J2EIFNvbmFtdeyXkCDsg53shLEv7JeF642w7J207Yq4XG4gKlxuICogQHBhcmFtIG9wdGlvbnMg7IOd7ISxIOyYteyFmFxuICogQHBhcmFtIG9wdGlvbnMucGx1Z2lucyDtmZzshLHtmZTtlaAg7ZSM65+s6re47J24IElEIOuqqeuhnVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMoXG4gIG9wdGlvbnM6IEdlbmVyYXRlQmV0dGVyQXV0aEVudGl0aWVzT3B0aW9ucyA9IHt9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcGx1Z2lucyA9IFtdIH0gPSBvcHRpb25zO1xuXG4gIC8vIDEuIOq4sOuzuCDsl5Tti7Dti7Ag7IOd7ISxL+yXheuNsOydtO2KuFxuICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKFwiXFxu8J+TpiBQcm9jZXNzaW5nIGNvcmUgZW50aXRpZXMuLi5cXG5cIikpO1xuICBmb3IgKGNvbnN0IGVudGl0eUpzb24gb2YgYmV0dGVyQXV0aFYxKSB7XG4gICAgYXdhaXQgY3JlYXRlT3JVcGRhdGVFbnRpdHkoZW50aXR5SnNvbik7XG4gIH1cblxuICAvLyAyLiDtlIzrn6zqt7jsnbgg7LKY66asXG4gIGlmIChwbHVnaW5zLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKFwiXFxu8J+UjCBQcm9jZXNzaW5nIHBsdWdpbnMuLi5cXG5cIikpO1xuXG4gICAgZm9yIChjb25zdCBwbHVnaW5JZCBvZiBwbHVnaW5zKSB7XG4gICAgICBpZiAoIWlzVmFsaWRQbHVnaW5JZChwbHVnaW5JZCkpIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkKGBbRVJST1JdIFVua25vd24gcGx1Z2luOiAke3BsdWdpbklkfWApKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudGl0eURlZiA9IEVOVElUWV9ERUZJTklUSU9OU1twbHVnaW5JZF07XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5tYWdlbnRhKGBbUExVR0lOXSAke2VudGl0eURlZi5uYW1lfWApKTtcblxuICAgICAgLy8g7ZSM65+s6re47J247J2YIOyDiCDsl5Tti7Dti7Ag7IOd7ISxXG4gICAgICBmb3IgKGNvbnN0IGVudGl0eUpzb24gb2YgZW50aXR5RGVmLmVudGl0aWVzKSB7XG4gICAgICAgIGF3YWl0IGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb24pO1xuICAgICAgfVxuXG4gICAgICAvLyDquLDsobQg7JeU7Yuw7Yuw7JeQIO2VhOuTnCDstpTqsIBcbiAgICAgIGZvciAoY29uc3QgW2VudGl0eUlkLCBwcm9wc10gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5RGVmLmFkZGl0aW9uYWxQcm9wcykpIHtcbiAgICAgICAgYXdhaXQgYWRkUHJvcHNUb0VudGl0eShlbnRpdHlJZCwgcHJvcHMpO1xuICAgICAgfVxuXG4gICAgICAvLyDquLDsobQg7JeU7Yuw7Yuw7JeQIOyduOuNseyKpCDstpTqsIBcbiAgICAgIGlmIChlbnRpdHlEZWYuYWRkaXRpb25hbEluZGV4ZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbZW50aXR5SWQsIGluZGV4ZXNdIG9mIE9iamVjdC5lbnRyaWVzKGVudGl0eURlZi5hZGRpdGlvbmFsSW5kZXhlcykpIHtcbiAgICAgICAgICBhd2FpdCBhZGRJbmRleGVzVG9FbnRpdHkoZW50aXR5SWQsIGluZGV4ZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc29sZS5sb2coY2hhbGsuYm9sZChcIlxcbuKchSBEb25lISBiZXR0ZXItYXV0aCBlbnRpdGllcyBnZW5lcmF0ZWQuXCIpKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O1lBRXNDO29CQUNrQjswQkFFSDs7OztBQU9yRCxTQUFTLGlCQUFpQixlQUE2QixlQUEyQztDQUNoRyxNQUFNLGdCQUFnQixJQUFJLElBQUksY0FBYyxLQUFLLE1BQU0sRUFBRSxJQUFJLENBQUM7Q0FDOUQsT0FBTyxjQUFjLFFBQVEsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUMvRDs7Ozs7QUFNQSxTQUFTLGtCQUNQLGVBQ0EsZUFDMEM7Q0FDMUMsTUFBTSxTQUFtRCxDQUFDO0NBRTFELEtBQUssTUFBTSxnQkFBZ0IsZUFBZTtFQUN4QyxNQUFNLGdCQUFnQixjQUFjLFdBQVcsTUFBTSxFQUFFLFNBQVMsYUFB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
@@ -1,5 +1,4 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
2
-
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
3
2
  //#region src/auth/better-auth-entities.ts
4
3
  var betterAuthV1, BASE_FIELD_MAPPINGS;
5
4
  var init_better_auth_entities = __esmMin((() => {
@@ -360,8 +359,8 @@ var init_better_auth_entities = __esmMin((() => {
360
359
  }
361
360
  };
362
361
  }));
363
-
364
362
  //#endregion
365
363
  init_better_auth_entities();
366
364
  export { BASE_FIELD_MAPPINGS, betterAuthV1, init_better_auth_entities };
367
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0dGVyLWF1dGgtZW50aXRpZXMuanMiLCJuYW1lcyI6WyJiZXR0ZXJBdXRoVjE6IEVudGl0eUpzb25bXSIsIkJBU0VfRklFTERfTUFQUElOR1M6IEJldHRlckF1dGhPcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvYmV0dGVyLWF1dGgtZW50aXRpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gXCJiZXR0ZXItYXV0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIEVudGl0eUpzb24gfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCB2MSDsl5Tti7Dti7Ag7KCV7J2YXG4gKiBodHRwczovL3d3dy5iZXR0ZXItYXV0aC5jb20vXG4gKlxuICogU29uYW11IOq3nOy5mTpcbiAqIC0g7YWM7J2067iU66qFOiDrs7XsiJjtmJUgKHVzZXJzLCBzZXNzaW9ucywgYWNjb3VudHMsIHZlcmlmaWNhdGlvbnMpXG4gKiAtIOy7rOufvOuqhTogc25ha2VfY2FzZSAoZW1haWxfdmVyaWZpZWQsIGNyZWF0ZWRfYXQsIHVzZXJfaWQg65OxKVxuICovXG5leHBvcnQgY29uc3QgYmV0dGVyQXV0aFYxOiBFbnRpdHlKc29uW10gPSBbXG4gIC8vIFVzZXIg7JeU7Yuw7YuwXG4gIHtcbiAgICBpZDogXCJVc2VyXCIsXG4gICAgdGFibGU6IFwidXNlcnNcIixcbiAgICB0aXRsZTogXCLsgqzsmqnsnpBcIixcbiAgICBwcm9wczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImlkXCIsXG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGRlc2M6IFwiSURcIixcbiAgICAgICAgY29uZToge1xuICAgICAgICAgIGZpeHR1cmVDb21wYW5pb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVudGl0eTogXCJBY2NvdW50XCIsXG4gICAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkOiBcImNyZWRlbnRpYWxcIixcbiAgICAgICAgICAgICAgICBhY2NvdW50X2lkOiBcInt7ZW1haWx9fVwiLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBcInt7ZW1haWx9fVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7J2066aEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJlbWFpbFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuydtOuplOydvFwiIH0sXG4gICAgICB7IG5hbWU6IFwiZW1haWxfdmVyaWZpZWRcIiwgdHlwZTogXCJib29sZWFuXCIsIGRlc2M6IFwi7J2066mU7J28IOyduOymnSDsl6zrtoBcIiB9LFxuICAgICAgeyBuYW1lOiBcImltYWdlXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIu2UhOuhnO2VhCDsnbTrr7jsp4BcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IiY7KCV7J287IucXCIgfSxcbiAgICBdLFxuICAgIGluZGV4ZXM6IFt7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwidXNlcnNfZW1haWxfdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwiZW1haWxcIiB9XSB9XSxcbiAgICBzdWJzZXRzOiB7XG4gICAgICBBOiBbXCJpZFwiLCBcIm5hbWVcIiwgXCJlbWFpbFwiLCBcImVtYWlsX3ZlcmlmaWVkXCIsIFwiaW1hZ2VcIiwgXCJjcmVhdGVkX2F0XCIsIFwidXBkYXRlZF9hdFwiXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IFVzZXJPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgVXNlclNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFNlc3Npb24g7JeU7Yuw7YuwXG4gIHtcbiAgICBpZDogXCJTZXNzaW9uXCIsXG4gICAgdGFibGU6IFwic2Vzc2lvbnNcIixcbiAgICB0aXRsZTogXCLshLjshZhcIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImV4cGlyZXNfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi66eM66OM7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ0b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIu2GoO2BsFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaXBfYWRkcmVzc1wiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJJUCDso7zshoxcIiB9LFxuICAgICAgeyBuYW1lOiBcInVzZXJfYWdlbnRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiVXNlciBBZ2VudFwiIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgbmFtZTogXCJ1c2VyXCIsXG4gICAgICAgIHdpdGg6IFwiVXNlclwiLFxuICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgZGVzYzogXCLsgqzsmqnsnpBcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgICBpbmRleGVzOiBbXG4gICAgICB7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwic2Vzc2lvbnNfdG9rZW5fdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidG9rZW5cIiB9XSB9LFxuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwic2Vzc2lvbnNfdXNlcl9pZF9pZHhcIiwgY29sdW1uczogW3sgbmFtZTogXCJ1c2VyX2lkXCIgfV0gfSxcbiAgICBdLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImV4cGlyZXNfYXRcIixcbiAgICAgICAgXCJ0b2tlblwiLFxuICAgICAgICBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgXCJ1cGRhdGVkX2F0XCIsXG4gICAgICAgIFwiaXBfYWRkcmVzc1wiLFxuICAgICAgICBcInVzZXJfYWdlbnRcIixcbiAgICAgICAgXCJ1c2VyLmlkXCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgZW51bXM6IHsgU2Vzc2lvbk9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9LCBTZXNzaW9uU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9IH0sXG4gIH0sXG5cbiAgLy8gQWNjb3VudCDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIkFjY291bnRcIixcbiAgICB0YWJsZTogXCJhY2NvdW50c1wiLFxuICAgIHRpdGxlOiBcIuqzhOyglVwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwiYWNjb3VudF9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuqzhOyglSBJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwicHJvdmlkZXJfaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsoJzqs7XsnpAgSURcIiB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgIG5hbWU6IFwidXNlclwiLFxuICAgICAgICB3aXRoOiBcIlVzZXJcIixcbiAgICAgICAgcmVsYXRpb25UeXBlOiBcIkJlbG9uZ3NUb09uZVwiLFxuICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgIGRlc2M6IFwi7IKs7Jqp7J6QXCIsXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiBcImFjY2Vzc190b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLslaHshLjsiqQg7Yag7YGwXCIgfSxcbiAgICAgIHsgbmFtZTogXCJyZWZyZXNoX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuumrO2UhOugiOyLnCDthqDtgbBcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIklEIO2GoO2BsFwiIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICBkZXNjOiBcIuyVoeyEuOyKpCDthqDtgbAg66eM66OM7J287IucXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi66as7ZSE66CI7IucIO2GoO2BsCDrp4zro4zsnbzsi5xcIixcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6IFwic2NvcGVcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7Iqk7L2U7ZSEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJwYXNzd29yZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLruYTrsIDrsojtmLhcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW3sgdHlwZTogXCJpbmRleFwiLCBuYW1lOiBcImFjY291bnRzX3VzZXJfaWRfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidXNlcl9pZFwiIH1dIH1dLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImFjY291bnRfaWRcIixcbiAgICAgICAgXCJwcm92aWRlcl9pZFwiLFxuICAgICAgICBcInVzZXIuaWRcIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5cIixcbiAgICAgICAgXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIFwiaWRfdG9rZW5cIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInNjb3BlXCIsXG4gICAgICAgIFwicGFzc3dvcmRcIixcbiAgICAgICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgICAgIFwidXBkYXRlZF9hdFwiLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IEFjY291bnRPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgQWNjb3VudFNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFZlcmlmaWNhdGlvbiDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlZlcmlmaWNhdGlvblwiLFxuICAgIHRhYmxlOiBcInZlcmlmaWNhdGlvbnNcIixcbiAgICB0aXRsZTogXCLsnbjspp1cIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkZW50aWZpZXJcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsi53rs4TsnpBcIiB9LFxuICAgICAgeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi6rCSXCIgfSxcbiAgICAgIHsgbmFtZTogXCJleHBpcmVzX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuunjOujjOydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW1xuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwidmVyaWZpY2F0aW9uc19pZGVudGlmaWVyX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcImlkZW50aWZpZXJcIiB9XSB9LFxuICAgIF0sXG4gICAgc3Vic2V0czoge1xuICAgICAgQTogW1wiaWRcIiwgXCJpZGVudGlmaWVyXCIsIFwidmFsdWVcIiwgXCJleHBpcmVzX2F0XCIsIFwiY3JlYXRlZF9hdFwiLCBcInVwZGF0ZWRfYXRcIl0sXG4gICAgfSxcbiAgICBlbnVtczoge1xuICAgICAgVmVyaWZpY2F0aW9uT3JkZXJCeTogeyBcImlkLWRlc2NcIjogXCJJROy1nOyLoOyInFwiIH0sXG4gICAgICBWZXJpZmljYXRpb25TZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiIH0sXG4gICAgfSxcbiAgfSxcbl07XG5cbi8qKlxuICogYmV0dGVyLWF1dGgg6riw67O4IO2VhOuTnCDrp6TtlZEgKGNhbWVsQ2FzZSDihpIgc25ha2VfY2FzZSlcbiAqIOq4sOuzuCA06rCcIOyXlO2LsO2LsChVc2VyLCBTZXNzaW9uLCBBY2NvdW50LCBWZXJpZmljYXRpb24p7J2YIO2VhOuTnCDrp6TtlZHsnoXri4jri6QuXG4gKi9cbmV4cG9ydCBjb25zdCBCQVNFX0ZJRUxEX01BUFBJTkdTOiBCZXR0ZXJBdXRoT3B0aW9ucyA9IHtcbiAgdXNlcjoge1xuICAgIG1vZGVsTmFtZTogXCJ1c2Vyc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZW1haWxWZXJpZmllZDogXCJlbWFpbF92ZXJpZmllZFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbiAgc2Vzc2lvbjoge1xuICAgIG1vZGVsTmFtZTogXCJzZXNzaW9uc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZXhwaXJlc0F0OiBcImV4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgICAgaXBBZGRyZXNzOiBcImlwX2FkZHJlc3NcIixcbiAgICAgIHVzZXJBZ2VudDogXCJ1c2VyX2FnZW50XCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgIH0sXG4gIH0sXG4gIGFjY291bnQ6IHtcbiAgICBtb2RlbE5hbWU6IFwiYWNjb3VudHNcIixcbiAgICBmaWVsZHM6IHtcbiAgICAgIGFjY291bnRJZDogXCJhY2NvdW50X2lkXCIsXG4gICAgICBwcm92aWRlcklkOiBcInByb3ZpZGVyX2lkXCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgICAgYWNjZXNzVG9rZW46IFwiYWNjZXNzX3Rva2VuXCIsXG4gICAgICByZWZyZXNoVG9rZW46IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgaWRUb2tlbjogXCJpZF90b2tlblwiLFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmVzQXQ6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIHJlZnJlc2hUb2tlbkV4cGlyZXNBdDogXCJyZWZyZXNoX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgIH0sXG4gIH0sXG4gIHZlcmlmaWNhdGlvbjoge1xuICAgIG1vZGVsTmFtZTogXCJ2ZXJpZmljYXRpb25zXCIsXG4gICAgZmllbGRzOiB7XG4gICAgICBleHBpcmVzQXQ6IFwiZXhwaXJlc19hdFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0NBWWFBLGVBQTZCO0VBRXhDO0dBQ0UsSUFBSTtHQUNKLE9BQU87R0FDUCxPQUFPO0dBQ1AsT0FBTztJQUNMO0tBQ0UsTUFBTTtLQUNOLE1BQU07S0FDTixNQUFNO0tBQ04sTUFBTSxFQUNKLG1CQUFtQixDQUNqQjtNQUNFLFFBQVE7TUFDUixXQUFXO09BQ1QsYUFBYTtPQUNiLFlBQVk7T0FDWixVQUFVO09BQ1g7TUFDRixDQUNGLEVBQ0Y7S0FDRjtJQUNEO0tBQUUsTUFBTTtLQUFRLE1BQU07S0FBVSxNQUFNO0tBQU07SUFD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
365
+
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0dGVyLWF1dGgtZW50aXRpZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvYmV0dGVyLWF1dGgtZW50aXRpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gXCJiZXR0ZXItYXV0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIEVudGl0eUpzb24gfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCB2MSDsl5Tti7Dti7Ag7KCV7J2YXG4gKiBodHRwczovL3d3dy5iZXR0ZXItYXV0aC5jb20vXG4gKlxuICogU29uYW11IOq3nOy5mTpcbiAqIC0g7YWM7J2067iU66qFOiDrs7XsiJjtmJUgKHVzZXJzLCBzZXNzaW9ucywgYWNjb3VudHMsIHZlcmlmaWNhdGlvbnMpXG4gKiAtIOy7rOufvOuqhTogc25ha2VfY2FzZSAoZW1haWxfdmVyaWZpZWQsIGNyZWF0ZWRfYXQsIHVzZXJfaWQg65OxKVxuICovXG5leHBvcnQgY29uc3QgYmV0dGVyQXV0aFYxOiBFbnRpdHlKc29uW10gPSBbXG4gIC8vIFVzZXIg7JeU7Yuw7YuwXG4gIHtcbiAgICBpZDogXCJVc2VyXCIsXG4gICAgdGFibGU6IFwidXNlcnNcIixcbiAgICB0aXRsZTogXCLsgqzsmqnsnpBcIixcbiAgICBwcm9wczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcImlkXCIsXG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIGRlc2M6IFwiSURcIixcbiAgICAgICAgY29uZToge1xuICAgICAgICAgIGZpeHR1cmVDb21wYW5pb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVudGl0eTogXCJBY2NvdW50XCIsXG4gICAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAgIHByb3ZpZGVyX2lkOiBcImNyZWRlbnRpYWxcIixcbiAgICAgICAgICAgICAgICBhY2NvdW50X2lkOiBcInt7ZW1haWx9fVwiLFxuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBcInt7ZW1haWx9fVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7J2066aEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJlbWFpbFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuydtOuplOydvFwiIH0sXG4gICAgICB7IG5hbWU6IFwiZW1haWxfdmVyaWZpZWRcIiwgdHlwZTogXCJib29sZWFuXCIsIGRlc2M6IFwi7J2066mU7J28IOyduOymnSDsl6zrtoBcIiB9LFxuICAgICAgeyBuYW1lOiBcImltYWdlXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIu2UhOuhnO2VhCDsnbTrr7jsp4BcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IiY7KCV7J287IucXCIgfSxcbiAgICBdLFxuICAgIGluZGV4ZXM6IFt7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwidXNlcnNfZW1haWxfdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwiZW1haWxcIiB9XSB9XSxcbiAgICBzdWJzZXRzOiB7XG4gICAgICBBOiBbXCJpZFwiLCBcIm5hbWVcIiwgXCJlbWFpbFwiLCBcImVtYWlsX3ZlcmlmaWVkXCIsIFwiaW1hZ2VcIiwgXCJjcmVhdGVkX2F0XCIsIFwidXBkYXRlZF9hdFwiXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IFVzZXJPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgVXNlclNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFNlc3Npb24g7JeU7Yuw7YuwXG4gIHtcbiAgICBpZDogXCJTZXNzaW9uXCIsXG4gICAgdGFibGU6IFwic2Vzc2lvbnNcIixcbiAgICB0aXRsZTogXCLshLjshZhcIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImV4cGlyZXNfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi66eM66OM7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ0b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIu2GoO2BsFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaXBfYWRkcmVzc1wiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJJUCDso7zshoxcIiB9LFxuICAgICAgeyBuYW1lOiBcInVzZXJfYWdlbnRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiVXNlciBBZ2VudFwiIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgbmFtZTogXCJ1c2VyXCIsXG4gICAgICAgIHdpdGg6IFwiVXNlclwiLFxuICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgZGVzYzogXCLsgqzsmqnsnpBcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgICBpbmRleGVzOiBbXG4gICAgICB7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwic2Vzc2lvbnNfdG9rZW5fdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidG9rZW5cIiB9XSB9LFxuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwic2Vzc2lvbnNfdXNlcl9pZF9pZHhcIiwgY29sdW1uczogW3sgbmFtZTogXCJ1c2VyX2lkXCIgfV0gfSxcbiAgICBdLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImV4cGlyZXNfYXRcIixcbiAgICAgICAgXCJ0b2tlblwiLFxuICAgICAgICBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgXCJ1cGRhdGVkX2F0XCIsXG4gICAgICAgIFwiaXBfYWRkcmVzc1wiLFxuICAgICAgICBcInVzZXJfYWdlbnRcIixcbiAgICAgICAgXCJ1c2VyLmlkXCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgZW51bXM6IHsgU2Vzc2lvbk9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9LCBTZXNzaW9uU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9IH0sXG4gIH0sXG5cbiAgLy8gQWNjb3VudCDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIkFjY291bnRcIixcbiAgICB0YWJsZTogXCJhY2NvdW50c1wiLFxuICAgIHRpdGxlOiBcIuqzhOyglVwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwiYWNjb3VudF9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuqzhOyglSBJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwicHJvdmlkZXJfaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsoJzqs7XsnpAgSURcIiB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgIG5hbWU6IFwidXNlclwiLFxuICAgICAgICB3aXRoOiBcIlVzZXJcIixcbiAgICAgICAgcmVsYXRpb25UeXBlOiBcIkJlbG9uZ3NUb09uZVwiLFxuICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgIGRlc2M6IFwi7IKs7Jqp7J6QXCIsXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiBcImFjY2Vzc190b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLslaHshLjsiqQg7Yag7YGwXCIgfSxcbiAgICAgIHsgbmFtZTogXCJyZWZyZXNoX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuumrO2UhOugiOyLnCDthqDtgbBcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIklEIO2GoO2BsFwiIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICBkZXNjOiBcIuyVoeyEuOyKpCDthqDtgbAg66eM66OM7J287IucXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi66as7ZSE66CI7IucIO2GoO2BsCDrp4zro4zsnbzsi5xcIixcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6IFwic2NvcGVcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7Iqk7L2U7ZSEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJwYXNzd29yZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLruYTrsIDrsojtmLhcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW3sgdHlwZTogXCJpbmRleFwiLCBuYW1lOiBcImFjY291bnRzX3VzZXJfaWRfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidXNlcl9pZFwiIH1dIH1dLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImFjY291bnRfaWRcIixcbiAgICAgICAgXCJwcm92aWRlcl9pZFwiLFxuICAgICAgICBcInVzZXIuaWRcIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5cIixcbiAgICAgICAgXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIFwiaWRfdG9rZW5cIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInNjb3BlXCIsXG4gICAgICAgIFwicGFzc3dvcmRcIixcbiAgICAgICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgICAgIFwidXBkYXRlZF9hdFwiLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IEFjY291bnRPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgQWNjb3VudFNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFZlcmlmaWNhdGlvbiDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlZlcmlmaWNhdGlvblwiLFxuICAgIHRhYmxlOiBcInZlcmlmaWNhdGlvbnNcIixcbiAgICB0aXRsZTogXCLsnbjspp1cIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkZW50aWZpZXJcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsi53rs4TsnpBcIiB9LFxuICAgICAgeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi6rCSXCIgfSxcbiAgICAgIHsgbmFtZTogXCJleHBpcmVzX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuunjOujjOydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW1xuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwidmVyaWZpY2F0aW9uc19pZGVudGlmaWVyX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcImlkZW50aWZpZXJcIiB9XSB9LFxuICAgIF0sXG4gICAgc3Vic2V0czoge1xuICAgICAgQTogW1wiaWRcIiwgXCJpZGVudGlmaWVyXCIsIFwidmFsdWVcIiwgXCJleHBpcmVzX2F0XCIsIFwiY3JlYXRlZF9hdFwiLCBcInVwZGF0ZWRfYXRcIl0sXG4gICAgfSxcbiAgICBlbnVtczoge1xuICAgICAgVmVyaWZpY2F0aW9uT3JkZXJCeTogeyBcImlkLWRlc2NcIjogXCJJROy1nOyLoOyInFwiIH0sXG4gICAgICBWZXJpZmljYXRpb25TZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiIH0sXG4gICAgfSxcbiAgfSxcbl07XG5cbi8qKlxuICogYmV0dGVyLWF1dGgg6riw67O4IO2VhOuTnCDrp6TtlZEgKGNhbWVsQ2FzZSDihpIgc25ha2VfY2FzZSlcbiAqIOq4sOuzuCA06rCcIOyXlO2LsO2LsChVc2VyLCBTZXNzaW9uLCBBY2NvdW50LCBWZXJpZmljYXRpb24p7J2YIO2VhOuTnCDrp6TtlZHsnoXri4jri6QuXG4gKi9cbmV4cG9ydCBjb25zdCBCQVNFX0ZJRUxEX01BUFBJTkdTOiBCZXR0ZXJBdXRoT3B0aW9ucyA9IHtcbiAgdXNlcjoge1xuICAgIG1vZGVsTmFtZTogXCJ1c2Vyc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZW1haWxWZXJpZmllZDogXCJlbWFpbF92ZXJpZmllZFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbiAgc2Vzc2lvbjoge1xuICAgIG1vZGVsTmFtZTogXCJzZXNzaW9uc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZXhwaXJlc0F0OiBcImV4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgICAgaXBBZGRyZXNzOiBcImlwX2FkZHJlc3NcIixcbiAgICAgIHVzZXJBZ2VudDogXCJ1c2VyX2FnZW50XCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgIH0sXG4gIH0sXG4gIGFjY291bnQ6IHtcbiAgICBtb2RlbE5hbWU6IFwiYWNjb3VudHNcIixcbiAgICBmaWVsZHM6IHtcbiAgICAgIGFjY291bnRJZDogXCJhY2NvdW50X2lkXCIsXG4gICAgICBwcm92aWRlcklkOiBcInByb3ZpZGVyX2lkXCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgICAgYWNjZXNzVG9rZW46IFwiYWNjZXNzX3Rva2VuXCIsXG4gICAgICByZWZyZXNoVG9rZW46IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgaWRUb2tlbjogXCJpZF90b2tlblwiLFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmVzQXQ6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIHJlZnJlc2hUb2tlbkV4cGlyZXNBdDogXCJyZWZyZXNoX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgIH0sXG4gIH0sXG4gIHZlcmlmaWNhdGlvbjoge1xuICAgIG1vZGVsTmFtZTogXCJ2ZXJpZmljYXRpb25zXCIsXG4gICAgZmllbGRzOiB7XG4gICAgICBleHBpcmVzQXQ6IFwiZXhwaXJlc19hdFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Q0FZYSxlQUE2QjtFQUV4QztHQUNFLElBQUk7R0FDSixPQUFPO0dBQ1AsT0FBTztHQUNQLE9BQU87SUFDTDtLQUNFLE1BQU07S0FDTixNQUFNO0tBQ04sTUFBTTtLQUNOLE1BQU0sRUFDSixtQkFBbUIsQ0FDakI7TUFDRSxRQUFRO01BQ1IsV0FBVztPQUNULGFBQWE7T0FDYixZQUFZO09BQ1osVUFBVTtNQUNaO0tBQ0YsQ0FDRixFQUNGO0lBQ0Y7SUFDQTtLQUFFLE1BQU07S0FBUSxNQUFNO0tBQVUsTUFBTTtJQUFLO0lBQzNDO0tBQUUsTUFBTTtLQUFTLE1BQU07S0FBVSxNQUFNO0lBQU07SUFDN0M7S0FBRSxNQUFNO0tBQWtCLE1BQU07S0FBVyxN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
@@ -14,11 +14,10 @@ import { SSO_SCHEMA, sso } from "./plugins/wrappers/sso.js";
14
14
  import { TWO_FACTOR_SCHEMA, twoFactor } from "./plugins/wrappers/two-factor.js";
15
15
  import { USERNAME_SCHEMA, username } from "./plugins/wrappers/username.js";
16
16
  import "./plugins/index.js";
17
-
18
17
  //#region src/auth/index.ts
19
18
  init_better_auth_entities();
20
19
  init_knex_adapter();
21
-
22
20
  //#endregion
23
21
  export { ADMIN_SCHEMA, ANONYMOUS_SCHEMA, API_KEY_SCHEMA, BASE_FIELD_MAPPINGS, JWT_SCHEMA, ORGANIZATION_SCHEMA, PASSKEY_SCHEMA, PHONE_NUMBER_SCHEMA, SSO_SCHEMA, TWO_FACTOR_SCHEMA, USERNAME_SCHEMA, admin, anonymous, apiKey, betterAuthV1, generateBetterAuthEntities, ingestAuditEvent, jwt, organization, passkey, phoneNumber, sonamuAuditLog, sonamuKnexAdapter, sso, twoFactor, username };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgaW5nZXN0QXVkaXRFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy1pbmdlc3RvclwiO1xuZXhwb3J0IHsgdHlwZSBBdWRpdExvZ0V2ZW50IH0gZnJvbSBcIi4vYXVkaXQtbG9nL2V2ZW50c1wiO1xuZXhwb3J0IHsgc29uYW11QXVkaXRMb2cgfSBmcm9tIFwiLi9hdWRpdC1sb2cvcGx1Z2luXCI7XG5leHBvcnQgeyBCQVNFX0ZJRUxEX01BUFBJTkdTLCBiZXR0ZXJBdXRoVjEgfSBmcm9tIFwiLi9iZXR0ZXItYXV0aC1lbnRpdGllc1wiO1xuZXhwb3J0IHsgc29uYW11S25leEFkYXB0ZXIgfSBmcm9tIFwiLi9rbmV4LWFkYXB0ZXJcIjtcblxuLy8g7Jm467aA66Gc64qUIHdyYXBwZXJz66eMIGV4cG9ydCAoYWRtaW4sIHR3b0ZhY3RvciDrk7Eg656Y7Y28IO2VqOyImOyZgCBTQ0hFTUEpXG5leHBvcnQgKiBmcm9tIFwiLi9wbHVnaW5zXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkFLMkU7bUJBQ3hCIn0=
22
+
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F1dGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMgfSBmcm9tIFwiLi9hdXRoLWdlbmVyYXRvclwiO1xuZXhwb3J0IHsgaW5nZXN0QXVkaXRFdmVudCB9IGZyb20gXCIuL2F1ZGl0LWxvZy1pbmdlc3RvclwiO1xuZXhwb3J0IHsgdHlwZSBBdWRpdExvZ0V2ZW50IH0gZnJvbSBcIi4vYXVkaXQtbG9nL2V2ZW50c1wiO1xuZXhwb3J0IHsgc29uYW11QXVkaXRMb2cgfSBmcm9tIFwiLi9hdWRpdC1sb2cvcGx1Z2luXCI7XG5leHBvcnQgeyBCQVNFX0ZJRUxEX01BUFBJTkdTLCBiZXR0ZXJBdXRoVjEgfSBmcm9tIFwiLi9iZXR0ZXItYXV0aC1lbnRpdGllc1wiO1xuZXhwb3J0IHsgc29uYW11S25leEFkYXB0ZXIgfSBmcm9tIFwiLi9rbmV4LWFkYXB0ZXJcIjtcblxuLy8g7Jm467aA66Gc64qUIHdyYXBwZXJz66eMIGV4cG9ydCAoYWRtaW4sIHR3b0ZhY3RvciDrk7Eg656Y7Y28IO2VqOyImOyZgCBTQ0hFTUEpXG5leHBvcnQgKiBmcm9tIFwiLi9wbHVnaW5zXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUswRTtrQkFDeEIifQ==