@appconda/sdk 1.0.637 → 1.0.639

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 (347) hide show
  1. package/package.json +1 -1
  2. package/src/modules/emploid/schema.ts +8 -0
  3. package/src/modules/emploid/service.ts +11 -1
  4. package/dist/EmploidClient.d.ts +0 -52
  5. package/dist/EmploidClient.js +0 -78
  6. package/dist/client.d.ts +0 -149
  7. package/dist/client.js +0 -408
  8. package/dist/enums/api-service.d.ts +0 -13
  9. package/dist/enums/api-service.js +0 -15
  10. package/dist/enums/api.d.ts +0 -5
  11. package/dist/enums/api.js +0 -7
  12. package/dist/enums/auth-method.d.ts +0 -9
  13. package/dist/enums/auth-method.js +0 -11
  14. package/dist/enums/browser.d.ts +0 -16
  15. package/dist/enums/browser.js +0 -18
  16. package/dist/enums/compression.d.ts +0 -5
  17. package/dist/enums/compression.js +0 -7
  18. package/dist/enums/credit-card.d.ts +0 -18
  19. package/dist/enums/credit-card.js +0 -20
  20. package/dist/enums/database-usage-range.d.ts +0 -5
  21. package/dist/enums/database-usage-range.js +0 -7
  22. package/dist/enums/email-template-locale.d.ts +0 -133
  23. package/dist/enums/email-template-locale.js +0 -135
  24. package/dist/enums/email-template-type.d.ts +0 -9
  25. package/dist/enums/email-template-type.js +0 -11
  26. package/dist/enums/entities/EntityLimitType.d.ts +0 -4
  27. package/dist/enums/entities/EntityLimitType.js +0 -6
  28. package/dist/enums/entities/PropertyAttributeName.d.ts +0 -27
  29. package/dist/enums/entities/PropertyAttributeName.js +0 -29
  30. package/dist/enums/entities/PropertyCondition.d.ts +0 -7
  31. package/dist/enums/entities/PropertyCondition.js +0 -10
  32. package/dist/enums/entities/PropertyType.d.ts +0 -12
  33. package/dist/enums/entities/PropertyType.js +0 -18
  34. package/dist/enums/entities/PropertyValueType.d.ts +0 -6
  35. package/dist/enums/entities/PropertyValueType.js +0 -8
  36. package/dist/enums/entities/RowAccess.d.ts +0 -2
  37. package/dist/enums/entities/RowAccess.js +0 -2
  38. package/dist/enums/entities/ViewFilterCondition.d.ts +0 -12
  39. package/dist/enums/entities/ViewFilterCondition.js +0 -14
  40. package/dist/enums/execution-method.d.ts +0 -8
  41. package/dist/enums/execution-method.js +0 -10
  42. package/dist/enums/flag.d.ts +0 -197
  43. package/dist/enums/flag.js +0 -199
  44. package/dist/enums/function-usage-range.d.ts +0 -5
  45. package/dist/enums/function-usage-range.js +0 -7
  46. package/dist/enums/image-format.d.ts +0 -7
  47. package/dist/enums/image-format.js +0 -9
  48. package/dist/enums/image-gravity.d.ts +0 -11
  49. package/dist/enums/image-gravity.js +0 -13
  50. package/dist/enums/index-type.d.ts +0 -5
  51. package/dist/enums/index-type.js +0 -7
  52. package/dist/enums/messaging-provider-type.d.ts +0 -5
  53. package/dist/enums/messaging-provider-type.js +0 -7
  54. package/dist/enums/name.d.ts +0 -14
  55. package/dist/enums/name.js +0 -16
  56. package/dist/enums/o-auth-provider copy.d.ts +0 -41
  57. package/dist/enums/o-auth-provider copy.js +0 -43
  58. package/dist/enums/password-hash.d.ts +0 -13
  59. package/dist/enums/password-hash.js +0 -15
  60. package/dist/enums/platform-type.d.ts +0 -17
  61. package/dist/enums/platform-type.js +0 -19
  62. package/dist/enums/project-usage-range.d.ts +0 -4
  63. package/dist/enums/project-usage-range.js +0 -6
  64. package/dist/enums/region.d.ts +0 -4
  65. package/dist/enums/region.js +0 -6
  66. package/dist/enums/relation-mutate.d.ts +0 -5
  67. package/dist/enums/relation-mutate.js +0 -7
  68. package/dist/enums/relationship-type.d.ts +0 -6
  69. package/dist/enums/relationship-type.js +0 -8
  70. package/dist/enums/resource-type.d.ts +0 -4
  71. package/dist/enums/resource-type.js +0 -6
  72. package/dist/enums/runtime.d.ts +0 -48
  73. package/dist/enums/runtime.js +0 -50
  74. package/dist/enums/s-m-t-p-secure.d.ts +0 -3
  75. package/dist/enums/s-m-t-p-secure.js +0 -5
  76. package/dist/enums/shared/ApplicationLayout.d.ts +0 -4
  77. package/dist/enums/shared/ApplicationLayout.js +0 -6
  78. package/dist/enums/shared/Colors.d.ts +0 -24
  79. package/dist/enums/shared/Colors.js +0 -26
  80. package/dist/enums/shared/InputType.d.ts +0 -6
  81. package/dist/enums/shared/InputType.js +0 -8
  82. package/dist/enums/shared/Periodicity.d.ts +0 -7
  83. package/dist/enums/shared/Periodicity.js +0 -9
  84. package/dist/enums/shared/SvgIcon.d.ts +0 -37
  85. package/dist/enums/shared/SvgIcon.js +0 -39
  86. package/dist/enums/shared/Theme.d.ts +0 -4
  87. package/dist/enums/shared/Theme.js +0 -6
  88. package/dist/enums/sms-template-locale.d.ts +0 -133
  89. package/dist/enums/sms-template-locale.js +0 -135
  90. package/dist/enums/sms-template-type.d.ts +0 -6
  91. package/dist/enums/sms-template-type.js +0 -8
  92. package/dist/enums/smtp-encryption.d.ts +0 -5
  93. package/dist/enums/smtp-encryption.js +0 -7
  94. package/dist/enums/storage-usage-range.d.ts +0 -5
  95. package/dist/enums/storage-usage-range.js +0 -7
  96. package/dist/enums/subscriptions/PricingModel.d.ts +0 -11
  97. package/dist/enums/subscriptions/PricingModel.js +0 -12
  98. package/dist/enums/subscriptions/SubscriptionBillingPeriod.d.ts +0 -10
  99. package/dist/enums/subscriptions/SubscriptionBillingPeriod.js +0 -11
  100. package/dist/enums/subscriptions/SubscriptionFeatureLimitType.d.ts +0 -10
  101. package/dist/enums/subscriptions/SubscriptionFeatureLimitType.js +0 -13
  102. package/dist/enums/subscriptions/SubscriptionPriceType.d.ts +0 -7
  103. package/dist/enums/subscriptions/SubscriptionPriceType.js +0 -8
  104. package/dist/enums/tenants/LinkedAccountStatus.d.ts +0 -5
  105. package/dist/enums/tenants/LinkedAccountStatus.js +0 -7
  106. package/dist/enums/tenants/TenantUserJoined.d.ts +0 -6
  107. package/dist/enums/tenants/TenantUserJoined.js +0 -8
  108. package/dist/enums/tenants/TenantUserStatus.d.ts +0 -6
  109. package/dist/enums/tenants/TenantUserStatus.js +0 -8
  110. package/dist/enums/tenants/TenantUserType.d.ts +0 -5
  111. package/dist/enums/tenants/TenantUserType.js +0 -7
  112. package/dist/enums/user-usage-range.d.ts +0 -5
  113. package/dist/enums/user-usage-range.js +0 -7
  114. package/dist/getAppcondaClient.d.ts +0 -14
  115. package/dist/getAppcondaClient.js +0 -60
  116. package/dist/getSDKForService.d.ts +0 -22
  117. package/dist/getSDKForService.js +0 -72
  118. package/dist/id.d.ts +0 -20
  119. package/dist/id.js +0 -45
  120. package/dist/index.d.ts +0 -7
  121. package/dist/index.js +0 -6
  122. package/dist/lib/errors.d.ts +0 -70
  123. package/dist/lib/errors.js +0 -79
  124. package/dist/lib/index.d.ts +0 -0
  125. package/dist/lib/index.js +0 -1
  126. package/dist/lib/types.d.ts +0 -5
  127. package/dist/lib/types.js +0 -2
  128. package/dist/models.d.ts +0 -3272
  129. package/dist/models.js +0 -2
  130. package/dist/modules/account/enums/authentication-factor.d.ts +0 -6
  131. package/dist/modules/account/enums/authentication-factor.js +0 -8
  132. package/dist/modules/account/enums/authenticator-type.d.ts +0 -3
  133. package/dist/modules/account/enums/authenticator-type.js +0 -5
  134. package/dist/modules/account/enums/o-auth-provider.d.ts +0 -41
  135. package/dist/modules/account/enums/o-auth-provider.js +0 -43
  136. package/dist/modules/account/index.d.ts +0 -2
  137. package/dist/modules/account/index.js +0 -3
  138. package/dist/modules/account/schema.d.ts +0 -7
  139. package/dist/modules/account/schema.js +0 -8
  140. package/dist/modules/account/service.d.ts +0 -530
  141. package/dist/modules/account/service.js +0 -1263
  142. package/dist/modules/account/types.d.ts +0 -411
  143. package/dist/modules/account/types.js +0 -2
  144. package/dist/modules/accounv1/index.d.ts +0 -3
  145. package/dist/modules/accounv1/index.js +0 -4
  146. package/dist/modules/accounv1/schema.d.ts +0 -43
  147. package/dist/modules/accounv1/schema.js +0 -44
  148. package/dist/modules/accounv1/service.d.ts +0 -14
  149. package/dist/modules/accounv1/service.js +0 -28
  150. package/dist/modules/accounv1/types.d.ts +0 -14
  151. package/dist/modules/accounv1/types.js +0 -2
  152. package/dist/modules/acl/service.d.ts +0 -26
  153. package/dist/modules/acl/service.js +0 -27
  154. package/dist/modules/agent/index.d.ts +0 -3
  155. package/dist/modules/agent/index.js +0 -4
  156. package/dist/modules/agent/schema.d.ts +0 -20
  157. package/dist/modules/agent/schema.js +0 -21
  158. package/dist/modules/agent/service.d.ts +0 -12
  159. package/dist/modules/agent/service.js +0 -22
  160. package/dist/modules/agent/types.d.ts +0 -11
  161. package/dist/modules/agent/types.js +0 -2
  162. package/dist/modules/ai/index.d.ts +0 -1
  163. package/dist/modules/ai/index.js +0 -2
  164. package/dist/modules/ai/node/index.d.ts +0 -1
  165. package/dist/modules/ai/node/index.js +0 -2
  166. package/dist/modules/ai/node/service.d.ts +0 -5
  167. package/dist/modules/ai/node/service.js +0 -12
  168. package/dist/modules/bpm/index.d.ts +0 -3
  169. package/dist/modules/bpm/index.js +0 -4
  170. package/dist/modules/bpm/schema.d.ts +0 -18
  171. package/dist/modules/bpm/schema.js +0 -19
  172. package/dist/modules/bpm/service.d.ts +0 -11
  173. package/dist/modules/bpm/service.js +0 -20
  174. package/dist/modules/bpm/types.d.ts +0 -9
  175. package/dist/modules/bpm/types.js +0 -2
  176. package/dist/modules/builder/index.d.ts +0 -3
  177. package/dist/modules/builder/index.js +0 -4
  178. package/dist/modules/builder/schema.d.ts +0 -92
  179. package/dist/modules/builder/schema.js +0 -93
  180. package/dist/modules/builder/service.d.ts +0 -25
  181. package/dist/modules/builder/service.js +0 -61
  182. package/dist/modules/builder/types.d.ts +0 -100
  183. package/dist/modules/builder/types.js +0 -2
  184. package/dist/modules/datasource/index.d.ts +0 -3
  185. package/dist/modules/datasource/index.js +0 -4
  186. package/dist/modules/datasource/schema.d.ts +0 -55
  187. package/dist/modules/datasource/schema.js +0 -56
  188. package/dist/modules/datasource/service.d.ts +0 -19
  189. package/dist/modules/datasource/service.js +0 -43
  190. package/dist/modules/datasource/types.d.ts +0 -28
  191. package/dist/modules/datasource/types.js +0 -2
  192. package/dist/modules/emploid/index.d.ts +0 -3
  193. package/dist/modules/emploid/index.js +0 -4
  194. package/dist/modules/emploid/schema.d.ts +0 -1805
  195. package/dist/modules/emploid/schema.js +0 -1687
  196. package/dist/modules/emploid/service.d.ts +0 -331
  197. package/dist/modules/emploid/service.js +0 -986
  198. package/dist/modules/emploid/types.d.ts +0 -652
  199. package/dist/modules/emploid/types.js +0 -2
  200. package/dist/modules/google/index.d.ts +0 -3
  201. package/dist/modules/google/index.js +0 -4
  202. package/dist/modules/google/schema.d.ts +0 -13
  203. package/dist/modules/google/schema.js +0 -14
  204. package/dist/modules/google/service.d.ts +0 -10
  205. package/dist/modules/google/service.js +0 -16
  206. package/dist/modules/google/types.d.ts +0 -12
  207. package/dist/modules/google/types.js +0 -2
  208. package/dist/modules/hooks/index.d.ts +0 -2
  209. package/dist/modules/hooks/index.js +0 -3
  210. package/dist/modules/hooks/lib/Hooks.d.ts +0 -32
  211. package/dist/modules/hooks/lib/Hooks.js +0 -64
  212. package/dist/modules/hooks/lib/jobs/index.d.ts +0 -2
  213. package/dist/modules/hooks/lib/jobs/index.js +0 -3
  214. package/dist/modules/hooks/lib/jobs/job1.d.ts +0 -1
  215. package/dist/modules/hooks/lib/jobs/job1.js +0 -16
  216. package/dist/modules/hooks/lib/jobs/log-job.d.ts +0 -1
  217. package/dist/modules/hooks/lib/jobs/log-job.js +0 -9
  218. package/dist/modules/hooks/lib/wait.d.ts +0 -8
  219. package/dist/modules/hooks/lib/wait.js +0 -13
  220. package/dist/modules/index.d.ts +0 -18
  221. package/dist/modules/index.js +0 -19
  222. package/dist/modules/mail/index.d.ts +0 -3
  223. package/dist/modules/mail/index.js +0 -4
  224. package/dist/modules/mail/schema.d.ts +0 -6
  225. package/dist/modules/mail/schema.js +0 -7
  226. package/dist/modules/mail/service.d.ts +0 -8
  227. package/dist/modules/mail/service.js +0 -10
  228. package/dist/modules/mail/types.d.ts +0 -6
  229. package/dist/modules/mail/types.js +0 -2
  230. package/dist/modules/notion/index.d.ts +0 -3
  231. package/dist/modules/notion/index.js +0 -4
  232. package/dist/modules/notion/schema.d.ts +0 -13
  233. package/dist/modules/notion/schema.js +0 -14
  234. package/dist/modules/notion/service.d.ts +0 -10
  235. package/dist/modules/notion/service.js +0 -19
  236. package/dist/modules/notion/types.d.ts +0 -11
  237. package/dist/modules/notion/types.js +0 -2
  238. package/dist/modules/organization/index.d.ts +0 -3
  239. package/dist/modules/organization/index.js +0 -4
  240. package/dist/modules/organization/schema.d.ts +0 -65
  241. package/dist/modules/organization/schema.js +0 -56
  242. package/dist/modules/organization/service.d.ts +0 -20
  243. package/dist/modules/organization/service.js +0 -46
  244. package/dist/modules/organization/types.d.ts +0 -55
  245. package/dist/modules/organization/types.js +0 -2
  246. package/dist/modules/scheduled-job/index.d.ts +0 -5
  247. package/dist/modules/scheduled-job/index.js +0 -6
  248. package/dist/modules/scheduled-job/lib/Schedules.d.ts +0 -34
  249. package/dist/modules/scheduled-job/lib/Schedules.js +0 -65
  250. package/dist/modules/scheduled-job/lib/jobs/index.d.ts +0 -1
  251. package/dist/modules/scheduled-job/lib/jobs/index.js +0 -2
  252. package/dist/modules/scheduled-job/lib/jobs/job1.d.ts +0 -1
  253. package/dist/modules/scheduled-job/lib/jobs/job1.js +0 -10
  254. package/dist/modules/scheduled-job/lib/wait.d.ts +0 -8
  255. package/dist/modules/scheduled-job/lib/wait.js +0 -13
  256. package/dist/modules/scheduled-job/schema.d.ts +0 -39
  257. package/dist/modules/scheduled-job/schema.js +0 -40
  258. package/dist/modules/scheduled-job/service.d.ts +0 -20
  259. package/dist/modules/scheduled-job/service.js +0 -46
  260. package/dist/modules/scheduled-job/types.d.ts +0 -66
  261. package/dist/modules/scheduled-job/types.js +0 -2
  262. package/dist/modules/scrapflow/index.d.ts +0 -2
  263. package/dist/modules/scrapflow/index.js +0 -3
  264. package/dist/modules/scrapflow/schema.d.ts +0 -105
  265. package/dist/modules/scrapflow/schema.js +0 -106
  266. package/dist/modules/scrapflow/service.d.ts +0 -24
  267. package/dist/modules/scrapflow/service.js +0 -61
  268. package/dist/modules/scrapflow/types.d.ts +0 -0
  269. package/dist/modules/scrapflow/types.js +0 -1
  270. package/dist/modules/task/index.d.ts +0 -3
  271. package/dist/modules/task/index.js +0 -4
  272. package/dist/modules/task/schema.d.ts +0 -355
  273. package/dist/modules/task/schema.js +0 -371
  274. package/dist/modules/task/service.d.ts +0 -69
  275. package/dist/modules/task/service.js +0 -193
  276. package/dist/modules/task/types.d.ts +0 -293
  277. package/dist/modules/task/types.js +0 -37
  278. package/dist/modules/tenant/index.d.ts +0 -2
  279. package/dist/modules/tenant/index.js +0 -3
  280. package/dist/modules/tenant/schema.d.ts +0 -26
  281. package/dist/modules/tenant/schema.js +0 -28
  282. package/dist/modules/tenant/service.d.ts +0 -14
  283. package/dist/modules/tenant/service.js +0 -28
  284. package/dist/modules/tenant/tenant.d.ts +0 -32
  285. package/dist/modules/tenant/tenant.js +0 -125
  286. package/dist/modules/tenant/types.d.ts +0 -20
  287. package/dist/modules/tenant/types.js +0 -2
  288. package/dist/modules/waitlist/index.d.ts +0 -3
  289. package/dist/modules/waitlist/index.js +0 -4
  290. package/dist/modules/waitlist/schema.d.ts +0 -17
  291. package/dist/modules/waitlist/schema.js +0 -18
  292. package/dist/modules/waitlist/service.d.ts +0 -13
  293. package/dist/modules/waitlist/service.js +0 -28
  294. package/dist/modules/waitlist/types.d.ts +0 -14
  295. package/dist/modules/waitlist/types.js +0 -2
  296. package/dist/permission.d.ts +0 -43
  297. package/dist/permission.js +0 -54
  298. package/dist/query.d.ts +0 -194
  299. package/dist/query.js +0 -204
  300. package/dist/role.d.ts +0 -70
  301. package/dist/role.js +0 -94
  302. package/dist/service-client.d.ts +0 -10
  303. package/dist/service-client.js +0 -31
  304. package/dist/service.d.ts +0 -11
  305. package/dist/service.js +0 -23
  306. package/dist/services/applets.d.ts +0 -9
  307. package/dist/services/applets.js +0 -40
  308. package/dist/services/avatars.d.ts +0 -115
  309. package/dist/services/avatars.js +0 -251
  310. package/dist/services/chat-flow.d.ts +0 -7
  311. package/dist/services/chat-flow.js +0 -26
  312. package/dist/services/community.d.ts +0 -19
  313. package/dist/services/community.js +0 -69
  314. package/dist/services/configuration.d.ts +0 -5
  315. package/dist/services/configuration.js +0 -11
  316. package/dist/services/databases.d.ts +0 -613
  317. package/dist/services/databases.js +0 -1736
  318. package/dist/services/functions.d.ts +0 -319
  319. package/dist/services/functions.js +0 -810
  320. package/dist/services/graphql.d.ts +0 -25
  321. package/dist/services/graphql.js +0 -57
  322. package/dist/services/health.d.ts +0 -231
  323. package/dist/services/health.js +0 -463
  324. package/dist/services/locale.d.ts +0 -80
  325. package/dist/services/locale.js +0 -144
  326. package/dist/services/messaging.d.ts +0 -685
  327. package/dist/services/messaging.js +0 -1920
  328. package/dist/services/permissions.d.ts +0 -20
  329. package/dist/services/permissions.js +0 -90
  330. package/dist/services/pricing.d.ts +0 -15
  331. package/dist/services/pricing.js +0 -21
  332. package/dist/services/projects.d.ts +0 -542
  333. package/dist/services/projects.js +0 -1526
  334. package/dist/services/roles.d.ts +0 -19
  335. package/dist/services/roles.js +0 -72
  336. package/dist/services/schema.d.ts +0 -17
  337. package/dist/services/schema.js +0 -48
  338. package/dist/services/storage.d.ts +0 -189
  339. package/dist/services/storage.js +0 -474
  340. package/dist/services/subscription.d.ts +0 -15
  341. package/dist/services/subscription.js +0 -30
  342. package/dist/services/teams.d.ts +0 -167
  343. package/dist/services/teams.js +0 -395
  344. package/dist/services/tenant-subscription.d.ts +0 -12
  345. package/dist/services/tenant-subscription.js +0 -52
  346. package/dist/services/users.d.ts +0 -499
  347. package/dist/services/users.js +0 -1283
@@ -1,1687 +0,0 @@
1
- import { z } from "zod";
2
- export const CreateEmploidSchema = z.object({
3
- tenantId: z.string(),
4
- userId: z.string(),
5
- occupationId: z.string(),
6
- name: z.string(),
7
- alias: z.string().optional(),
8
- avatar: z.string().optional(),
9
- description: z.string().optional(),
10
- version: z.string().optional()
11
- });
12
- export const UpdateEmploidSchema = z.object({
13
- id: z.string(),
14
- name: z.string().optional(),
15
- alias: z.string().optional(),
16
- avatar: z.string().optional(),
17
- description: z.string().optional(),
18
- version: z.string().optional()
19
- });
20
- export const DeleteEmploidSchema = z.object({
21
- id: z.string(),
22
- tenantId: z.string()
23
- });
24
- export const ListEmploidsSchema = z.object({
25
- tenantId: z.string()
26
- });
27
- export const ListEmploidsPaginatedSchema = z.object({
28
- tenantId: z.string(),
29
- page: z.number().int().optional(),
30
- limit: z.number().int().optional(),
31
- search: z.string().optional(),
32
- status: z.array(z.string()).optional(),
33
- occupation: z.array(z.string()).optional(),
34
- createdBy: z.array(z.string()).optional().transform((arr) => {
35
- return arr?.map((item) => item.toLowerCase());
36
- }),
37
- sortBy: z.enum(['name', 'createdAt', 'updatedAt', 'relevance']).optional(),
38
- userId: z.string().optional(),
39
- });
40
- export const ListScopesSchema = z.object({
41
- tenantId: z.string()
42
- });
43
- export const ListOccupationsSchema = z.object({});
44
- export const CreateOccupationSchema = z.object({
45
- tenantId: z.string(),
46
- id: z.string(),
47
- name: z.string(),
48
- description: z.string().optional()
49
- });
50
- export const UpdateOccupationSchema = z.object({
51
- id: z.string(),
52
- name: z.string(),
53
- description: z.string().optional(),
54
- });
55
- export const DeleteOccupationSchema = z.object({
56
- id: z.string()
57
- });
58
- export const PublishDomainSchema = z.object({
59
- domainId: z.string()
60
- });
61
- export const CreateDomainTopicSchema = z.object({
62
- id: z.string(),
63
- occupationId: z.string(),
64
- title: z.string(),
65
- prompt: z.string().optional(),
66
- instructions: z.array(z.string()).optional(),
67
- });
68
- export const UpdateDomainTopicSchema = z.object({
69
- id: z.string(),
70
- title: z.string(),
71
- prompt: z.string().optional(),
72
- instructions: z.array(z.string()).optional(),
73
- });
74
- export const DeleteDomainTopicSchema = z.object({
75
- id: z.string()
76
- });
77
- export const ListDomainTopicsSchema = z.object({
78
- tenantId: z.string(),
79
- occupationId: z.string()
80
- });
81
- export const ScopeTypeSchema = z.string().min(1);
82
- export const CreateScopeSchema = z.object({
83
- tenantId: z.string(),
84
- workerId: z.string(),
85
- parentScopeId: z.string().nullable().optional(),
86
- name: z.string().optional(),
87
- type: ScopeTypeSchema.optional(),
88
- isFolderType: z.boolean().optional(),
89
- description: z.string().optional()
90
- });
91
- export const GetScopeByTypeSchema = z.object({
92
- tenantId: z.string(),
93
- workerId: z.string(),
94
- type: ScopeTypeSchema
95
- });
96
- export const UpdateScopeSchema = z.object({
97
- scopeId: z.string(),
98
- parentScopeId: z.string().nullable().optional(),
99
- name: z.string().optional(),
100
- description: z.string().optional(),
101
- isFolderType: z.boolean().optional(),
102
- content: z.any().optional(),
103
- markdownContent: z.string().nullable().optional(),
104
- });
105
- export const DeleteScopeSchema = z.object({
106
- scopeId: z.string()
107
- });
108
- export const CreateJobDefinitionSchema = z.object({
109
- tenantId: z.string(),
110
- workerId: z.string(),
111
- scopeId: z.string(),
112
- name: z.string(),
113
- description: z.string().optional(),
114
- category: z.enum(["technical", "administrative", "social"]).optional(),
115
- priority: z.enum(["high", "medium", "low"]).optional(),
116
- status: z.enum(["active", "inactive", "draft"]).optional(),
117
- });
118
- export const ListJobDefinitionSchema = z.object({
119
- tenantId: z.string(),
120
- workerId: z.string().optional(),
121
- scopeId: z.string().optional()
122
- });
123
- export const UpdateJobDefinitionSchema = z.object({
124
- id: z.string(),
125
- name: z.string().optional(),
126
- description: z.string().optional(),
127
- category: z.enum(["technical", "administrative", "social"]).optional(),
128
- priority: z.enum(["high", "medium", "low"]).optional(),
129
- status: z.enum(["active", "inactive", "draft"]).optional(),
130
- scopeId: z.string().nullable().optional(),
131
- content: z.any().optional(),
132
- markdownContent: z.string().nullable().optional(),
133
- });
134
- export const DeleteJobDefinitionSchema = z.object({
135
- id: z.string()
136
- });
137
- export const CreateCompetencySchema = z.object({
138
- tenantId: z.string(),
139
- workerId: z.string(),
140
- scopeId: z.string(),
141
- jobDefinitionId: z.string(),
142
- name: z.string(),
143
- description: z.string().optional(),
144
- inputs: z.array(z.string()).optional(),
145
- });
146
- export const ListCompetenciesSchema = z.object({
147
- tenantId: z.string(),
148
- workerId: z.string().optional(),
149
- scopeId: z.string().optional(),
150
- jobDefinitionId: z.string().optional()
151
- });
152
- export const UpdateCompetencySchema = z.object({
153
- id: z.string(),
154
- name: z.string(),
155
- description: z.string().optional(),
156
- inputs: z.array(z.string()).optional(),
157
- });
158
- export const DeleteCompetencySchema = z.object({
159
- id: z.string()
160
- });
161
- export const CreateAgentFlowSchema = z.object({
162
- tenantId: z.string(),
163
- name: z.string(),
164
- folderId: z.string().optional(),
165
- description: z.string().optional(),
166
- //flowData: z.object({}).passthrough()
167
- });
168
- export const UpdateAgentFlowSchema = z.object({
169
- id: z.string(),
170
- name: z.string().optional(),
171
- description: z.string().optional(),
172
- //flowData: z.object({}).passthrough()
173
- });
174
- export const DeleteAgentFlowSchema = z.object({
175
- id: z.string()
176
- });
177
- export const DuplicateAgentFlowSchema = z.object({
178
- id: z.string(),
179
- name: z.string(),
180
- description: z.string().nullable().optional(),
181
- });
182
- export const ChangeAgentflowProjectSchema = z.object({
183
- id: z.string(),
184
- projectId: z.string()
185
- });
186
- export const ListAgentFlowsSchema = z.object({
187
- tenantId: z.string()
188
- });
189
- export const CreateAgentFlowFolderSchema = z.object({
190
- tenantId: z.string(),
191
- name: z.string(),
192
- description: z.string().optional(),
193
- });
194
- export const UpdateAgentFlowFolderSchema = z.object({
195
- id: z.string(),
196
- name: z.string().optional(),
197
- description: z.string().optional(),
198
- });
199
- export const DeleteAgentFlowFolderSchema = z.object({
200
- tenantId: z.string(),
201
- name: z.string(),
202
- });
203
- export const ListAgentFlowFoldersSchema = z.object({
204
- tenantId: z.string(),
205
- });
206
- export const ListDriveItemsSchema = z.object({
207
- tenantId: z.string(),
208
- folderId: z.string().optional(),
209
- });
210
- export const ListDriveTreeSchema = z.object({
211
- tenantId: z.string(),
212
- });
213
- export const SearchDriveItemsSchema = z.object({
214
- tenantId: z.string(),
215
- query: z.string(),
216
- });
217
- export const CreateDriveFolderSchema = z.object({
218
- tenantId: z.string(),
219
- name: z.string(),
220
- parentId: z.string().optional(),
221
- });
222
- export const PrepareDriveUploadSchema = z.object({
223
- tenantId: z.string(),
224
- name: z.string(),
225
- parentId: z.string().optional(),
226
- mimeType: z.string().optional(),
227
- });
228
- export const RenameDriveItemSchema = z.object({
229
- itemId: z.string(),
230
- name: z.string(),
231
- });
232
- export const MoveDriveItemSchema = z.object({
233
- itemId: z.string(),
234
- targetParentId: z.string().optional(),
235
- });
236
- export const GetDriveDeleteImpactSchema = z.object({
237
- itemId: z.string(),
238
- });
239
- export const DeleteDriveItemSchema = z.object({
240
- itemId: z.string(),
241
- });
242
- export const ResolveDriveDownloadSchema = z.object({
243
- itemId: z.string(),
244
- });
245
- export const ListDriveRootsSchema = z.object({
246
- tenantId: z.string(),
247
- });
248
- export const EnsureDriveProviderCredentialSchema = z.object({
249
- tenantId: z.string(),
250
- provider: z.enum(["LOCAL", "GOOGLE_DRIVE", "DROPBOX"]),
251
- });
252
- export const ListDriveProviderFoldersSchema = z.object({
253
- tenantId: z.string(),
254
- provider: z.enum(["LOCAL", "GOOGLE_DRIVE", "DROPBOX"]),
255
- parentId: z.string().nullable().optional(),
256
- credentialId: z.string().nullable().optional(),
257
- });
258
- export const CreateDriveRootSchema = z.object({
259
- tenantId: z.string(),
260
- provider: z.enum(["LOCAL", "GOOGLE_DRIVE", "DROPBOX"]),
261
- name: z.string(),
262
- credentialId: z.string().nullable().optional(),
263
- remoteRootId: z.string().nullable().optional(),
264
- remoteRootPath: z.string().nullable().optional(),
265
- });
266
- export const DeleteDriveRootSchema = z.object({
267
- tenantId: z.string(),
268
- rootId: z.string(),
269
- });
270
- export const ListDriveRootItemsSchema = z.object({
271
- tenantId: z.string(),
272
- rootId: z.string(),
273
- folderId: z.string().optional(),
274
- });
275
- export const ListDriveRootTreeSchema = z.object({
276
- tenantId: z.string(),
277
- rootId: z.string(),
278
- });
279
- export const SearchDriveRootItemsSchema = z.object({
280
- tenantId: z.string(),
281
- rootId: z.string(),
282
- query: z.string(),
283
- });
284
- export const CreateDriveRootFolderSchema = z.object({
285
- tenantId: z.string(),
286
- rootId: z.string(),
287
- name: z.string(),
288
- parentId: z.string().optional(),
289
- });
290
- export const UploadDriveRootFilesSchema = z.object({
291
- tenantId: z.string(),
292
- rootId: z.string(),
293
- parentId: z.string().optional(),
294
- files: z.array(z.object({
295
- name: z.string(),
296
- base64: z.string(),
297
- mimeType: z.string().nullable().optional(),
298
- })),
299
- });
300
- export const RenameDriveRootItemSchema = z.object({
301
- tenantId: z.string(),
302
- rootId: z.string(),
303
- itemId: z.string(),
304
- name: z.string(),
305
- });
306
- export const MoveDriveRootItemSchema = z.object({
307
- tenantId: z.string(),
308
- rootId: z.string(),
309
- itemId: z.string(),
310
- targetParentId: z.string().optional(),
311
- });
312
- export const GetDriveRootDeleteImpactSchema = z.object({
313
- tenantId: z.string(),
314
- rootId: z.string(),
315
- itemId: z.string(),
316
- });
317
- export const DeleteDriveRootItemSchema = z.object({
318
- tenantId: z.string(),
319
- rootId: z.string(),
320
- itemId: z.string(),
321
- });
322
- export const ReadDriveRootFileContentSchema = z.object({
323
- tenantId: z.string(),
324
- rootId: z.string(),
325
- itemId: z.string(),
326
- });
327
- export const ResolveDriveRootDownloadSchema = z.object({
328
- tenantId: z.string(),
329
- rootId: z.string(),
330
- itemId: z.string(),
331
- });
332
- export const CreateExtensionSchema = z.object({
333
- extensionId: z.string(),
334
- tenantId: z.string(),
335
- config: z.record(z.string(), z.unknown()).optional()
336
- });
337
- export const UpdateExtensionSchema = z.object({
338
- id: z.string(),
339
- config: z.record(z.string(), z.unknown()).optional(),
340
- });
341
- export const ListExtensionsSchema = z.object({
342
- tenantId: z.string(),
343
- });
344
- export const DeleteExtensionSchema = z.object({
345
- id: z.string()
346
- });
347
- export const CreateAssistantSchema = z.object({
348
- tenantId: z.string(),
349
- alias: z.string(),
350
- name: z.string(),
351
- description: z.string().optional(),
352
- prompt: z.string().optional(),
353
- config: z.object({
354
- mode: z.enum(["simple", "advanced"]),
355
- }).optional()
356
- });
357
- export const UpdateAssistantSchema = z.object({
358
- id: z.string(),
359
- alias: z.string().optional(),
360
- name: z.string().optional(),
361
- description: z.string().optional(),
362
- prompt: z.string().optional(),
363
- config: z.object({
364
- mode: z.enum(["simple", "advanced"]),
365
- }).optional()
366
- });
367
- export const DeleteAssistantSchema = z.object({
368
- id: z.string()
369
- });
370
- export const CreateAssistantInstructionSchema = z.object({
371
- tenantId: z.string(),
372
- assistantId: z.string(),
373
- title: z.string(),
374
- prompt: z.string(),
375
- instructions: z.array(z.string()).optional(),
376
- });
377
- export const ListAssistantInstructionsSchema = z.object({
378
- tenantId: z.string(),
379
- assistantId: z.string().optional(),
380
- });
381
- export const CreateAssistantConstraintSchema = z.object({
382
- tenantId: z.string(),
383
- assistantId: z.string(),
384
- title: z.string(),
385
- prompt: z.string(),
386
- constraints: z.array(z.string()).optional(),
387
- });
388
- export const ListAssistantConstraintsSchema = z.object({
389
- tenantId: z.string(),
390
- assistantId: z.string().optional(),
391
- });
392
- export const ListAssistantsSchema = z.object({
393
- tenantId: z.string()
394
- });
395
- export const CreateAssistantDatasourceSchema = z.object({
396
- tenantId: z.string(),
397
- assistantId: z.string(),
398
- name: z.string(),
399
- config: z.object({}).optional()
400
- });
401
- export const ListAssistantDatasourcesSchema = z.object({
402
- tenantId: z.string(),
403
- assistantId: z.string().optional(),
404
- });
405
- export const UpdateAssistantDatasourceSchema = z.object({
406
- id: z.string(),
407
- name: z.string().optional(),
408
- config: z.object({}).optional()
409
- });
410
- export const DeleteAssistantDatasourceSchema = z.object({
411
- id: z.string()
412
- });
413
- export const CreateAssistantSkillSchema = z.object({
414
- tenantId: z.string(),
415
- assistantId: z.string(),
416
- name: z.string(),
417
- config: z.object({}).optional()
418
- });
419
- export const ListAssistantSkillsSchema = z.object({
420
- tenantId: z.string(),
421
- assistantId: z.string().optional(),
422
- });
423
- export const UpdateAssistantSkillSchema = z.object({
424
- id: z.string(),
425
- name: z.string().optional(),
426
- config: z.object({}).optional()
427
- });
428
- export const DeleteAssistantSkillSchema = z.object({
429
- id: z.string()
430
- });
431
- export const CreateAssistantChannelSchema = z.object({
432
- tenantId: z.string(),
433
- assistantId: z.string(),
434
- name: z.string(),
435
- config: z.object({}).optional()
436
- });
437
- export const ListAssistantChannelsSchema = z.object({
438
- tenantId: z.string(),
439
- assistantId: z.string().optional(),
440
- });
441
- export const UpdateAssistantChannelSchema = z.object({
442
- id: z.string(),
443
- name: z.string().optional(),
444
- config: z.object({}).optional()
445
- });
446
- export const DeleteAssistantChannelSchema = z.object({
447
- id: z.string()
448
- });
449
- export const CreateWorkerSchema = z.object({
450
- tenantId: z.string(),
451
- emploidId: z.string().optional(),
452
- name: z.string(),
453
- description: z.string().optional(),
454
- avatar: z.string().optional(),
455
- });
456
- export const UpdateWorkerSchema = z.object({
457
- workerId: z.string(),
458
- name: z.string().optional(),
459
- description: z.string().optional(),
460
- emploidId: z.string().optional(),
461
- avatar: z.string().optional(),
462
- });
463
- export const DeleteWorkerSchema = z.object({
464
- workerId: z.string(),
465
- });
466
- export const ListWorkersSchema = z.object({
467
- tenantId: z.string()
468
- });
469
- export const CreateInputSchema = z.object({
470
- tenantId: z.string(),
471
- emploidId: z.string(),
472
- competencyId: z.string(),
473
- name: z.string(),
474
- description: z.string().optional(),
475
- type: z.enum(['string', 'number', 'boolean', 'object']).default('string'),
476
- });
477
- export const ListInputSchema = z.object({
478
- tenantId: z.string(),
479
- emploidId: z.string().optional(),
480
- competencyId: z.string().optional(),
481
- });
482
- export const UpdateInputSchema = z.object({
483
- id: z.string(),
484
- name: z.string().optional(),
485
- description: z.string().optional(),
486
- type: z.enum(['string', 'number', 'boolean', 'object']).optional(),
487
- });
488
- export const DeleteInputSchema = z.object({
489
- id: z.string(),
490
- });
491
- export const CreateTeamSchema = z.object({
492
- tenantId: z.string(),
493
- alias: z.string(),
494
- name: z.string(),
495
- description: z.string().optional(),
496
- });
497
- export const ListTeamsSchema = z.object({
498
- tenantId: z.string()
499
- });
500
- export const UpdateTeamSchema = z.object({
501
- teamId: z.string(),
502
- alias: z.string().optional(),
503
- name: z.string().optional(),
504
- description: z.string().optional(),
505
- });
506
- export const DeleteTeamSchema = z.object({
507
- teamId: z.string(),
508
- });
509
- export const SaveChatSchema = z.object({
510
- id: z.string().optional(),
511
- title: z.string(),
512
- userId: z.string(),
513
- visibility: z.enum(['private', 'public']),
514
- });
515
- export const DeleteChatByIdSchema = z.object({
516
- id: z.string(),
517
- });
518
- export const GetChatByIdSchema = z.object({
519
- id: z.string(),
520
- });
521
- export const GetChatsByUserIdSchema = z.object({
522
- userId: z.string(),
523
- limit: z.number(),
524
- startingAfter: z.string().nullable().optional(),
525
- endingBefore: z.string().nullable().optional(),
526
- });
527
- export const SaveMessagesSchema = z.object({
528
- messages: z.array(z.object())
529
- });
530
- export const GetMessagesByChatIdSchema = z.object({
531
- chatId: z.string(),
532
- });
533
- export const GetMessageByIdSchema = z.object({
534
- id: z.string(),
535
- });
536
- export const VoteMessageSchema = z.object({
537
- chatId: z.string(),
538
- messageId: z.string(),
539
- type: z.enum(['up', 'down']),
540
- });
541
- export const GetVotesByChatIdSchema = z.object({
542
- chatId: z.string(),
543
- });
544
- export const DeleteDocumentsByIdAfterTimestampSchema = z.object({
545
- id: z.string(),
546
- timestamp: z.date(),
547
- });
548
- export const SaveSuggestionsSchema = z.object({
549
- suggestions: z.array(z.object({}))
550
- });
551
- export const GetSuggestionsByDocumentIdSchema = z.object({
552
- id: z.string(),
553
- });
554
- export const DeleteMessagesByChatIdAfterTimestampSchema = z.object({
555
- chatId: z.string(),
556
- timestamp: z.date(),
557
- });
558
- export const UpdateChatVisiblityByIdSchema = z.object({
559
- id: z.string(),
560
- visibility: z.enum(['private', 'public']),
561
- });
562
- export const UpdateChatLastContextByIdSchema = z.object({
563
- id: z.string(),
564
- context: z.object({}),
565
- });
566
- export const GetMessageCountByUserIdSchema = z.object({
567
- userId: z.string(),
568
- differenceInHours: z.number(),
569
- });
570
- export const CreateStreamIdSchema = z.object({
571
- streamId: z.string(),
572
- chatId: z.string(),
573
- });
574
- export const GetStreamIdsByChatIdSchema = z.object({
575
- chatId: z.string(),
576
- });
577
- export const SaveDocumentSchema = z.object({
578
- id: z.string().optional(),
579
- title: z.string(),
580
- kind: z.enum(['text', 'code', 'image', 'sheet']),
581
- content: z.string(),
582
- userId: z.string(),
583
- });
584
- export const GetDocumentByIdSchema = z.object({
585
- id: z.string(),
586
- });
587
- export const GetDocumentsByIdSchema = z.object({
588
- id: z.string(),
589
- });
590
- export const CreateInstructionSchema = z.object({
591
- emploidId: z.string(),
592
- content: z.string(),
593
- type: z.enum(['USER', 'SYSTEM']),
594
- active: z.boolean(),
595
- });
596
- export const ListInstructionsSchema = z.object({
597
- type: z.string().optional(),
598
- searchText: z.string().optional(),
599
- active: z.boolean().optional(),
600
- emploidId: z.string().optional()
601
- });
602
- export const UpdateInstructionSchema = z.object({
603
- id: z.string(),
604
- type: z.enum(['USER', 'SYSTEM']).optional(),
605
- content: z.string().optional(),
606
- active: z.boolean().optional(),
607
- });
608
- export const DeleteInstructionSchema = z.object({
609
- id: z.string(),
610
- });
611
- export const CreateCommandSchema = z.object({
612
- tenantId: z.string(),
613
- name: z.string(),
614
- description: z.string().optional(),
615
- type: z.enum(['WORKER', 'ASSISTANT', 'TEAM', 'FLOW']).default('FLOW'),
616
- targetId: z.string(),
617
- targetType: z.string(),
618
- inputs: z.array(z.object({
619
- "label": z.string(),
620
- "name": z.string(),
621
- "type": z.enum(['string', 'number', 'boolean', 'object']).default('string'),
622
- })).optional(),
623
- });
624
- export const ListCommandsSchema = z.object({
625
- tenantId: z.string()
626
- });
627
- export const UpdateCommandSchema = z.object({
628
- id: z.string(),
629
- name: z.string().optional(),
630
- description: z.string().optional(),
631
- type: z.enum(['WORKER', 'ASSISTANT', 'TEAM', 'FLOW']).optional(),
632
- targetId: z.string().optional(),
633
- targetType: z.string().optional(),
634
- });
635
- export const DeleteCommandSchema = z.object({
636
- id: z.string(),
637
- });
638
- export const CreateConstraintSchema = z.object({
639
- emploidId: z.string(),
640
- content: z.string(),
641
- type: z.enum(['USER', 'SYSTEM']),
642
- active: z.boolean(),
643
- });
644
- export const ListConstraintsSchema = z.object({
645
- type: z.string().optional(),
646
- searchText: z.string().optional(),
647
- active: z.boolean().optional(),
648
- emploidId: z.string().optional()
649
- });
650
- export const UpdateConstraintSchema = z.object({
651
- id: z.string(),
652
- type: z.enum(['USER', 'SYSTEM']).optional(),
653
- content: z.string().optional(),
654
- active: z.boolean().optional(),
655
- });
656
- export const DeleteConstraintSchema = z.object({
657
- id: z.string(),
658
- });
659
- export const CreateTaskTemplateSchema = z.object({
660
- id: z.string().optional(),
661
- task: z.string(),
662
- description: z.string().optional(),
663
- tenantId: z.string(),
664
- emploidId: z.string(),
665
- });
666
- export const UpdateTaskTemplateSchema = z.object({
667
- id: z.string(),
668
- task: z.string().optional(),
669
- description: z.string().optional(),
670
- tenantId: z.string().optional(),
671
- emploidId: z.string().optional(),
672
- });
673
- export const DeleteTaskTemplateSchema = z.object({
674
- id: z.string(),
675
- });
676
- export const ListTaskTemplatesSchema = z.object({
677
- emploidId: z.string().optional(),
678
- });
679
- //----------------------------Collections-------------------
680
- /**
681
- * DataModel oluşturma
682
- */
683
- export const CreateDataModelSchema = z.object({
684
- tenantId: z.string(),
685
- displayName: z.string(),
686
- name: z.string(), // data model name
687
- description: z.string().optional(),
688
- });
689
- /**
690
- * DataModel güncelleme (partial)
691
- */
692
- export const UpdateDataModelSchema = z.object({
693
- tenantId: z.string(),
694
- dataModelId: z.string(),
695
- data: z.object({
696
- name: z.string().optional(),
697
- displayName: z.string().optional(),
698
- description: z.string().optional(),
699
- }).passthrough(),
700
- });
701
- /**
702
- * DataModel soft delete (archive)
703
- */
704
- export const DeleteDataModelSchema = z.object({
705
- id: z.string(),
706
- deletedBy: z.string().optional(), // userId | system | emploid
707
- });
708
- /**
709
- * DataModel restore
710
- */
711
- export const RestoreDataModelSchema = z.object({
712
- id: z.string(),
713
- restoredBy: z.string().optional(), // userId | system | emploid
714
- });
715
- /**
716
- * DataModel hard delete (geri dönülmez)
717
- */
718
- export const ListDataModelsSchema = z.object({
719
- tenantId: z.string()
720
- });
721
- export const GetDataModelByIdSchema = z.object({
722
- tenantId: z.string(),
723
- dataModelId: z.string(),
724
- });
725
- export const HardDeleteDataModelSchema = z.object({
726
- tenantId: z.string(),
727
- dataModelId: z.string(),
728
- confirmed: z.literal("YES"),
729
- deletedBy: z.string(), // system / admin
730
- });
731
- export const CreateCollectionSchema = z.object({
732
- tenantId: z.string(),
733
- dataModelId: z.string(),
734
- displayName: z.string(),
735
- name: z.string(),
736
- description: z.string().optional(),
737
- });
738
- export const UpdateCollectionSchema = z.object({
739
- tenantId: z.string(),
740
- collectionId: z.string(),
741
- displayName: z.string().optional(),
742
- description: z.string().optional(),
743
- });
744
- export const DeleteCollectionSchema = z.object({
745
- tenantId: z.string(),
746
- collectionId: z.string(),
747
- });
748
- export const ListCollectionsSchema = z.object({
749
- tenantId: z.string(),
750
- dataModelId: z.string().optional(),
751
- });
752
- export const GetCollectionByIdSchema = z.object({
753
- id: z.string(),
754
- });
755
- export const CreateRecordSchema = z.object({
756
- tenantId: z.string(),
757
- collectionId: z.string(),
758
- data: z.object({}).catchall(z.any()),
759
- });
760
- export const UploadCollectionFileSchema = z.object({
761
- tenantId: z.string(),
762
- name: z.string(),
763
- base64: z.string(),
764
- mimeType: z.string().optional(),
765
- collectionId: z.string().optional(),
766
- itemId: z.string().optional(),
767
- });
768
- export const ResolveCollectionFileViewSchema = z.object({
769
- itemId: z.string(),
770
- });
771
- export const GetRecordByIdSchema = z.object({
772
- tenantId: z.string(),
773
- collectionId: z.string(),
774
- recordId: z.string(),
775
- });
776
- export const ListRecordsSchema = z.object({
777
- tenantId: z.string(),
778
- collectionId: z.string(),
779
- limit: z.number().optional(),
780
- offset: z.number().optional(),
781
- filter: z.object({}).catchall(z.any()).optional(),
782
- sort: z.object({}).catchall(z.string()).optional(),
783
- });
784
- export const UpdateRecordSchema = z.object({
785
- tenantId: z.string(),
786
- collectionId: z.string(),
787
- recordId: z.string(),
788
- data: z.object({}).catchall(z.any()),
789
- });
790
- export const DeleteRecordSchema = z.object({
791
- tenantId: z.string(),
792
- collectionId: z.string(),
793
- recordId: z.string(),
794
- });
795
- export const RestoreRecordSchema = z.object({
796
- tenantId: z.string(),
797
- collectionId: z.string(),
798
- recordId: z.string(),
799
- });
800
- export const UpsertRecordSchema = z.object({
801
- tenantId: z.string(),
802
- collectionId: z.string(),
803
- // varsa update, yoksa create
804
- recordId: z.string().optional(),
805
- data: z.object({}).catchall(z.any()),
806
- });
807
- export const BulkCreateRecordsSchema = z.object({
808
- tenantId: z.string(),
809
- collectionId: z.string(),
810
- records: z.array(z.object({}).catchall(z.any())),
811
- });
812
- export const EnsureAirtableImportCredentialSchema = z.object({
813
- tenantId: z.string(),
814
- });
815
- export const ListAirtableImportSourcesSchema = z.object({
816
- tenantId: z.string(),
817
- });
818
- export const PreviewAirtableImportSchema = z.object({
819
- tenantId: z.string(),
820
- baseId: z.string(),
821
- tableIds: z.array(z.string()).min(1),
822
- });
823
- export const RunAirtableImportSchema = z.object({
824
- tenantId: z.string(),
825
- baseId: z.string(),
826
- tables: z.array(z.object({
827
- tableId: z.string(),
828
- collectionName: z.string(),
829
- collectionDisplayName: z.string(),
830
- fields: z.array(z.object({
831
- fieldId: z.string(),
832
- type: z.string(),
833
- displayName: z.string(),
834
- name: z.string(),
835
- required: z.boolean().optional(),
836
- config: z.object({}).catchall(z.any()).optional(),
837
- relationTargetTableId: z.string().optional(),
838
- fallbackReason: z.string().optional(),
839
- })).min(1),
840
- })).min(1),
841
- });
842
- export const EnsureLinearImportCredentialSchema = z.object({
843
- tenantId: z.string(),
844
- });
845
- export const ListLinearImportSourcesSchema = z.object({
846
- tenantId: z.string(),
847
- });
848
- export const PreviewLinearImportSchema = z.object({
849
- tenantId: z.string(),
850
- entityTypes: z.array(z.enum([
851
- "issues",
852
- "projects",
853
- "cycles",
854
- "teams",
855
- "users",
856
- "labels",
857
- "issueStates",
858
- "comments",
859
- "attachments",
860
- ])).min(1),
861
- teamIds: z.array(z.string()).optional(),
862
- projectIds: z.array(z.string()).optional(),
863
- cycleIds: z.array(z.string()).optional(),
864
- });
865
- export const RunLinearImportSchema = z.object({
866
- tenantId: z.string(),
867
- entityTypes: z.array(z.enum([
868
- "issues",
869
- "projects",
870
- "cycles",
871
- "teams",
872
- "users",
873
- "labels",
874
- "issueStates",
875
- "comments",
876
- "attachments",
877
- ])).min(1),
878
- teamIds: z.array(z.string()).optional(),
879
- projectIds: z.array(z.string()).optional(),
880
- cycleIds: z.array(z.string()).optional(),
881
- collections: z.array(z.object({
882
- entityType: z.enum([
883
- "issues",
884
- "projects",
885
- "cycles",
886
- "teams",
887
- "users",
888
- "labels",
889
- "issueStates",
890
- "comments",
891
- "attachments",
892
- ]),
893
- collectionName: z.string(),
894
- collectionDisplayName: z.string(),
895
- fields: z.array(z.object({
896
- fieldId: z.string(),
897
- type: z.string(),
898
- displayName: z.string(),
899
- name: z.string(),
900
- required: z.boolean().optional(),
901
- config: z.object({}).catchall(z.any()).optional(),
902
- relationTargetEntityType: z.string().optional(),
903
- fallbackReason: z.string().optional(),
904
- })).min(1),
905
- })).min(1),
906
- });
907
- export const EnsureNotionImportCredentialSchema = z.object({
908
- tenantId: z.string(),
909
- });
910
- export const EnsureGmailImportCredentialSchema = z.object({
911
- tenantId: z.string(),
912
- });
913
- export const EnsureGithubImportCredentialSchema = z.object({
914
- tenantId: z.string(),
915
- });
916
- export const PreviewCsvImportSchema = z.object({
917
- tenantId: z.string(),
918
- fileName: z.string(),
919
- headersEnabled: z.boolean().optional(),
920
- columns: z.array(z.object({
921
- fieldId: z.string(),
922
- name: z.string(),
923
- displayName: z.string(),
924
- index: z.number().int(),
925
- })).min(1),
926
- rows: z.array(z.object({}).catchall(z.any())).optional(),
927
- });
928
- export const ListGmailImportSourcesSchema = z.object({
929
- tenantId: z.string(),
930
- });
931
- export const ListGithubImportSourcesSchema = z.object({
932
- tenantId: z.string(),
933
- });
934
- export const PreviewGmailImportSchema = z.object({
935
- tenantId: z.string(),
936
- collections: z.array(z.enum(["email", "contact"])).min(1),
937
- startFrom: z.string().optional(),
938
- labelIds: z.array(z.string()).optional(),
939
- preserveOriginalFormatting: z.boolean().optional(),
940
- });
941
- export const PreviewGithubImportSchema = z.object({
942
- tenantId: z.string(),
943
- repositoryId: z.string(),
944
- collections: z.array(z.enum(["issues", "pullRequests"])).min(1),
945
- });
946
- export const RunCsvImportSchema = z.object({
947
- tenantId: z.string(),
948
- fileName: z.string(),
949
- headersEnabled: z.boolean().optional(),
950
- columns: z.array(z.object({
951
- fieldId: z.string(),
952
- name: z.string(),
953
- displayName: z.string(),
954
- index: z.number().int(),
955
- })).min(1),
956
- rows: z.array(z.object({}).catchall(z.any())),
957
- collection: z.object({
958
- collectionKey: z.literal("rows"),
959
- collectionName: z.string(),
960
- collectionDisplayName: z.string(),
961
- fields: z.array(z.object({
962
- fieldId: z.string(),
963
- type: z.string(),
964
- displayName: z.string(),
965
- name: z.string(),
966
- required: z.boolean().optional(),
967
- config: z.object({}).catchall(z.any()).optional(),
968
- fallbackReason: z.string().optional(),
969
- })).min(1),
970
- }),
971
- });
972
- export const RunGmailImportSchema = z.object({
973
- tenantId: z.string(),
974
- collections: z.array(z.enum(["email", "contact"])).min(1),
975
- startFrom: z.string().optional(),
976
- labelIds: z.array(z.string()).optional(),
977
- preserveOriginalFormatting: z.boolean().optional(),
978
- collectionPayloads: z.array(z.object({
979
- collectionKey: z.enum(["email", "contact"]),
980
- collectionName: z.string(),
981
- collectionDisplayName: z.string(),
982
- fields: z.array(z.object({
983
- fieldId: z.string(),
984
- type: z.string(),
985
- displayName: z.string(),
986
- name: z.string(),
987
- required: z.boolean().optional(),
988
- config: z.object({}).catchall(z.any()).optional(),
989
- relationTargetCollectionKey: z.enum(["email", "contact"]).optional(),
990
- fallbackReason: z.string().optional(),
991
- })).min(1),
992
- })).min(1),
993
- });
994
- export const RunGithubImportSchema = z.object({
995
- tenantId: z.string(),
996
- repositoryId: z.string(),
997
- collections: z.array(z.object({
998
- collectionKey: z.enum(["issues", "pullRequests"]),
999
- collectionName: z.string(),
1000
- collectionDisplayName: z.string(),
1001
- fields: z.array(z.object({
1002
- fieldId: z.string(),
1003
- type: z.string(),
1004
- displayName: z.string(),
1005
- name: z.string(),
1006
- required: z.boolean().optional(),
1007
- config: z.object({}).catchall(z.any()).optional(),
1008
- fallbackReason: z.string().optional(),
1009
- })).min(1),
1010
- })).min(1),
1011
- });
1012
- export const ListNotionImportSourcesSchema = z.object({
1013
- tenantId: z.string(),
1014
- });
1015
- export const PreviewNotionImportSchema = z.object({
1016
- tenantId: z.string(),
1017
- sourceIds: z.array(z.string()).min(1),
1018
- });
1019
- export const RunNotionImportSchema = z.object({
1020
- tenantId: z.string(),
1021
- sourceIds: z.array(z.string()).min(1),
1022
- sources: z.array(z.object({
1023
- sourceId: z.string(),
1024
- collectionName: z.string(),
1025
- collectionDisplayName: z.string(),
1026
- fields: z.array(z.object({
1027
- fieldId: z.string(),
1028
- type: z.string(),
1029
- displayName: z.string(),
1030
- name: z.string(),
1031
- required: z.boolean().optional(),
1032
- config: z.object({}).catchall(z.any()).optional(),
1033
- relationTargetSourceId: z.string().optional(),
1034
- fallbackReason: z.string().optional(),
1035
- })).min(1),
1036
- })).min(1),
1037
- });
1038
- export const EnsureTrelloImportCredentialSchema = z.object({
1039
- tenantId: z.string(),
1040
- });
1041
- export const EnsureJiraImportCredentialSchema = z.object({
1042
- tenantId: z.string(),
1043
- });
1044
- export const ListJiraImportSourcesSchema = z.object({
1045
- tenantId: z.string(),
1046
- siteId: z.string().optional(),
1047
- });
1048
- export const PreviewJiraImportSchema = z.object({
1049
- tenantId: z.string(),
1050
- siteId: z.string(),
1051
- projectId: z.string(),
1052
- includeComments: z.boolean().optional(),
1053
- includeAttachments: z.boolean().optional(),
1054
- });
1055
- export const RunJiraImportSchema = z.object({
1056
- tenantId: z.string(),
1057
- siteId: z.string(),
1058
- projectId: z.string(),
1059
- includeComments: z.boolean().optional(),
1060
- includeAttachments: z.boolean().optional(),
1061
- collections: z.array(z.object({
1062
- collectionKey: z.enum(["issues", "comments", "attachments"]),
1063
- collectionName: z.string(),
1064
- collectionDisplayName: z.string(),
1065
- fields: z.array(z.object({
1066
- fieldId: z.string(),
1067
- type: z.string(),
1068
- displayName: z.string(),
1069
- name: z.string(),
1070
- required: z.boolean().optional(),
1071
- config: z.object({}).catchall(z.any()).optional(),
1072
- relationTargetCollectionKey: z.enum(["issues", "comments", "attachments"]).optional(),
1073
- fallbackReason: z.string().optional(),
1074
- })).min(1),
1075
- })).min(1),
1076
- });
1077
- export const ConnectTrelloImportCredentialSchema = z.object({
1078
- tenantId: z.string(),
1079
- token: z.string(),
1080
- });
1081
- export const ListTrelloImportSourcesSchema = z.object({
1082
- tenantId: z.string(),
1083
- boardId: z.string().optional(),
1084
- includeArchivedLists: z.boolean().optional(),
1085
- });
1086
- export const PreviewTrelloImportSchema = z.object({
1087
- tenantId: z.string(),
1088
- boardId: z.string(),
1089
- listIds: z.array(z.string()).min(1),
1090
- includeArchivedLists: z.boolean().optional(),
1091
- includeClosedCards: z.boolean().optional(),
1092
- });
1093
- export const RunTrelloImportSchema = z.object({
1094
- tenantId: z.string(),
1095
- boardId: z.string(),
1096
- listIds: z.array(z.string()).min(1),
1097
- includeArchivedLists: z.boolean().optional(),
1098
- includeClosedCards: z.boolean().optional(),
1099
- lists: z.array(z.object({
1100
- listId: z.string(),
1101
- collectionName: z.string(),
1102
- collectionDisplayName: z.string(),
1103
- fields: z.array(z.object({
1104
- fieldId: z.string(),
1105
- type: z.string(),
1106
- displayName: z.string(),
1107
- name: z.string(),
1108
- required: z.boolean().optional(),
1109
- config: z.object({}).catchall(z.any()).optional(),
1110
- })).min(1),
1111
- })).min(1),
1112
- });
1113
- export const BulkUpdateRecordsSchema = z.object({
1114
- tenantId: z.string(),
1115
- collectionId: z.string(),
1116
- records: z.array(z.object({
1117
- recordId: z.string(),
1118
- data: z.object({}).catchall(z.any()),
1119
- })),
1120
- });
1121
- export const BulkDeleteRecordsSchema = z.object({
1122
- tenantId: z.string(),
1123
- collectionId: z.string(),
1124
- recordIds: z.array(z.string()),
1125
- });
1126
- export const DuplicateRecordSchema = z.object({
1127
- tenantId: z.string(),
1128
- collectionId: z.string(),
1129
- recordId: z.string(),
1130
- // opsiyonel: kopya üzerinde override edilecek alanlar
1131
- overrides: z.object({}).catchall(z.any()).optional(),
1132
- });
1133
- export const QueryRecordsSchema = z.object({
1134
- tenantId: z.string(),
1135
- collectionId: z.string(),
1136
- // where / filter
1137
- filter: z.object({}).catchall(z.any()).optional(),
1138
- // projection (hangi alanlar gelsin)
1139
- fields: z.object({}).catchall(z.any()).optional(),
1140
- // sorting
1141
- sort: z.object({}).catchall(z.string()).optional(),
1142
- // pagination
1143
- limit: z.number().optional(),
1144
- offset: z.number().optional(),
1145
- });
1146
- export const SearchRecordsSchema = z.object({
1147
- tenantId: z.string(),
1148
- collectionId: z.string(),
1149
- // arama metni
1150
- query: z.string(),
1151
- // opsiyonel: hangi alanlarda aransın
1152
- fields: z.array(z.string()).optional(),
1153
- // opsiyonel ek filtreler
1154
- filter: z.object({}).catchall(z.any()).optional(),
1155
- // sorting
1156
- sort: z.object({}).catchall(z.string()).optional(),
1157
- // pagination
1158
- limit: z.number().optional(),
1159
- offset: z.number().optional(),
1160
- });
1161
- export const CountRecordsSchema = z.object({
1162
- tenantId: z.string(),
1163
- collectionId: z.string(),
1164
- // opsiyonel filtre
1165
- filter: z.object({}).catchall(z.any()).optional(),
1166
- });
1167
- export const GroupRecordsSchema = z.object({
1168
- tenantId: z.string(),
1169
- collectionId: z.string(),
1170
- // hangi alan(lar)a göre gruplanacak
1171
- by: z.array(z.string()),
1172
- // opsiyonel filtre
1173
- filter: z.object({}).catchall(z.any()).optional(),
1174
- // aggregation tanımı (count, sum, avg vb.)
1175
- aggregations: z.object({}).catchall(z.any()).optional(),
1176
- // sorting
1177
- sort: z.object({}).catchall(z.string()).optional(),
1178
- // pagination
1179
- limit: z.number().optional(),
1180
- offset: z.number().optional(),
1181
- });
1182
- export const AggregateRecordsSchema = z.object({
1183
- tenantId: z.string(),
1184
- collectionId: z.string(),
1185
- // aggregation pipeline
1186
- pipeline: z.array(z.object({}).catchall(z.any())),
1187
- // opsiyonel: pipeline öncesi filtre
1188
- filter: z.object({}).catchall(z.any()).optional(),
1189
- // opsiyonel: pagination (aggregation sonrası)
1190
- limit: z.number().optional(),
1191
- offset: z.number().optional(),
1192
- });
1193
- export const DistinctFieldValuesSchema = z.object({
1194
- tenantId: z.string(),
1195
- collectionId: z.string(),
1196
- // distinct alınacak alan
1197
- field: z.string(),
1198
- // opsiyonel filtre
1199
- filter: z.object({}).catchall(z.any()).optional(),
1200
- // opsiyonel limit (çok büyük setleri kırpmak için)
1201
- limit: z.number().optional(),
1202
- });
1203
- export const CreateCollectionFieldSchema = z.object({
1204
- tenantId: z.string(),
1205
- dataModelId: z.string(),
1206
- collectionId: z.string(),
1207
- name: z.string(), // field key
1208
- displayName: z.string(), // UI label
1209
- type: z.string(), // string | number | boolean | date | json | relation | ...
1210
- required: z.boolean().optional(),
1211
- // field-specific config (min, max, enum, format, relation, etc.)
1212
- config: z.object({}).catchall(z.any()).optional(),
1213
- // opsiyonel sıralama
1214
- order: z.number().optional(),
1215
- });
1216
- export const UpdateCollectionFieldSchema = z.object({
1217
- tenantId: z.string(),
1218
- collectionId: z.string(),
1219
- fieldId: z.string(),
1220
- // güncellenebilir alanlar
1221
- displayName: z.string().optional(),
1222
- type: z.string().optional(),
1223
- required: z.boolean().optional(),
1224
- // field-specific config (min, max, enum, relation vb.)
1225
- config: z.object({}).catchall(z.any()).optional(),
1226
- // opsiyonel sıralama
1227
- order: z.number().optional(),
1228
- });
1229
- export const DeleteCollectionFieldSchema = z.object({
1230
- tenantId: z.string(),
1231
- collectionId: z.string(),
1232
- fieldId: z.string(),
1233
- });
1234
- export const ListCollectionAutomationRulesSchema = z.object({
1235
- tenantId: z.string(),
1236
- collectionId: z.string().optional(),
1237
- dataModelId: z.string().optional(),
1238
- });
1239
- const CollectionAutomationRuleTriggerConfigSchema = z.object({
1240
- updatedFieldId: z.string().nullable().optional(),
1241
- });
1242
- const CollectionAutomationRuleConditionSchema = z.object({
1243
- id: z.string(),
1244
- fieldId: z.string(),
1245
- operator: z.enum(["is", "is-not", "contains", "is-empty", "is-not-empty"]),
1246
- value: z.union([z.string(), z.array(z.string()), z.boolean(), z.null()]).optional(),
1247
- });
1248
- export const CreateCollectionAutomationRuleSchema = z.object({
1249
- tenantId: z.string(),
1250
- dataModelId: z.string(),
1251
- collectionId: z.string(),
1252
- name: z.string(),
1253
- description: z.string().optional(),
1254
- enabled: z.boolean().optional(),
1255
- trigger: z.enum(["created", "updated", "linked", "unlinked", "schedule"]),
1256
- triggerConfig: CollectionAutomationRuleTriggerConfigSchema.nullable().optional(),
1257
- conditions: z.array(CollectionAutomationRuleConditionSchema).optional(),
1258
- actions: z.array(z.object({}).catchall(z.any())),
1259
- });
1260
- export const UpdateCollectionAutomationRuleSchema = z.object({
1261
- tenantId: z.string(),
1262
- collectionId: z.string(),
1263
- ruleId: z.string(),
1264
- name: z.string().optional(),
1265
- description: z.string().optional(),
1266
- enabled: z.boolean().optional(),
1267
- trigger: z.enum(["created", "updated", "linked", "unlinked", "schedule"]).optional(),
1268
- triggerConfig: CollectionAutomationRuleTriggerConfigSchema.nullable().optional(),
1269
- conditions: z.array(CollectionAutomationRuleConditionSchema).optional(),
1270
- actions: z.array(z.object({}).catchall(z.any())).optional(),
1271
- });
1272
- export const DeleteCollectionAutomationRuleSchema = z.object({
1273
- tenantId: z.string(),
1274
- collectionId: z.string(),
1275
- ruleId: z.string(),
1276
- });
1277
- export const ListCollectionViewsSchema = z.object({
1278
- tenantId: z.string(),
1279
- collectionId: z.string(),
1280
- });
1281
- export const CreateCollectionViewSchema = z.object({
1282
- tenantId: z.string(),
1283
- dataModelId: z.string(),
1284
- collectionId: z.string(),
1285
- name: z.string(),
1286
- type: z.string(),
1287
- config: z.object({}).catchall(z.any()),
1288
- });
1289
- export const UpdateCollectionViewSchema = z.object({
1290
- tenantId: z.string(),
1291
- collectionId: z.string(),
1292
- viewId: z.string(),
1293
- name: z.string().optional(),
1294
- type: z.string().optional(),
1295
- config: z.object({}).catchall(z.any()).optional(),
1296
- });
1297
- export const DeleteCollectionViewSchema = z.object({
1298
- tenantId: z.string(),
1299
- collectionId: z.string(),
1300
- viewId: z.string(),
1301
- });
1302
- export const ListCollectionButtonsSchema = z.object({
1303
- tenantId: z.string(),
1304
- collectionId: z.string().optional(),
1305
- dataModelId: z.string().optional(),
1306
- });
1307
- export const CreateCollectionButtonSchema = z.object({
1308
- tenantId: z.string(),
1309
- dataModelId: z.string(),
1310
- collectionId: z.string(),
1311
- name: z.string(),
1312
- description: z.string().optional(),
1313
- enabled: z.boolean().optional(),
1314
- actions: z.array(z.object({}).catchall(z.any())),
1315
- });
1316
- export const UpdateCollectionButtonSchema = z.object({
1317
- tenantId: z.string(),
1318
- collectionId: z.string(),
1319
- buttonId: z.string(),
1320
- name: z.string().optional(),
1321
- description: z.string().optional(),
1322
- enabled: z.boolean().optional(),
1323
- actions: z.array(z.object({}).catchall(z.any())).optional(),
1324
- });
1325
- export const DeleteCollectionButtonSchema = z.object({
1326
- tenantId: z.string(),
1327
- collectionId: z.string(),
1328
- buttonId: z.string(),
1329
- });
1330
- export const ExecuteCollectionButtonSchema = z.object({
1331
- tenantId: z.string(),
1332
- collectionId: z.string(),
1333
- buttonId: z.string(),
1334
- recordId: z.string(),
1335
- });
1336
- export const ExecuteCollectionAiFieldSchema = z.object({
1337
- tenantId: z.string(),
1338
- collectionId: z.string(),
1339
- fieldId: z.string(),
1340
- recordId: z.string(),
1341
- });
1342
- export const ListCollectionRelationsSchema = z.object({
1343
- tenantId: z.string(),
1344
- collectionId: z.string(),
1345
- });
1346
- export const CreateCollectionRelationSchema = z.object({
1347
- tenantId: z.string(),
1348
- dataModelId: z.string(),
1349
- collectionId: z.string(),
1350
- targetCollectionId: z.string(),
1351
- displayName: z.string(),
1352
- description: z.string().optional(),
1353
- cardinality: z.enum(["one", "many"]).optional(),
1354
- inverseCardinality: z.enum(["one", "many"]).optional(),
1355
- inverseDisplayName: z.string().optional(),
1356
- });
1357
- export const UpdateCollectionRelationSchema = z.object({
1358
- tenantId: z.string(),
1359
- collectionId: z.string(),
1360
- fieldId: z.string(),
1361
- displayName: z.string().optional(),
1362
- description: z.string().optional(),
1363
- cardinality: z.enum(["one", "many"]).optional(),
1364
- inverseCardinality: z.enum(["one", "many"]).optional(),
1365
- targetDisplayName: z.string().optional(),
1366
- });
1367
- export const DeleteCollectionRelationSchema = z.object({
1368
- tenantId: z.string(),
1369
- collectionId: z.string(),
1370
- fieldId: z.string(),
1371
- actor: z.string().optional(),
1372
- });
1373
- export const ListRelationCandidatesSchema = z.object({
1374
- tenantId: z.string(),
1375
- collectionId: z.string(),
1376
- fieldId: z.string(),
1377
- query: z.string().optional(),
1378
- limit: z.number().optional(),
1379
- });
1380
- export const GetRecordRelationsSchema = z.object({
1381
- tenantId: z.string(),
1382
- collectionId: z.string(),
1383
- recordId: z.string(),
1384
- });
1385
- export const ReorderCollectionFieldsSchema = z.object({
1386
- tenantId: z.string(),
1387
- collectionId: z.string(),
1388
- // yeni sıralama: fieldId + order
1389
- fields: z.array(z.object({
1390
- fieldId: z.string(),
1391
- order: z.number(),
1392
- })),
1393
- });
1394
- export const GetCollectionSchemaSchema = z.object({
1395
- tenantId: z.string(),
1396
- dataModelId: z.string(),
1397
- collectionId: z.string(),
1398
- });
1399
- export const ValidateRecordSchema = z.object({
1400
- tenantId: z.string(),
1401
- collectionId: z.string(),
1402
- // create / update öncesi doğrulanacak veri
1403
- data: z.object({}).catchall(z.any()),
1404
- // opsiyonel: update senaryosu için
1405
- recordId: z.string().optional(),
1406
- });
1407
- export const PreviewValidationErrorsSchema = z.object({
1408
- tenantId: z.string(),
1409
- collectionId: z.string(),
1410
- // doğrulanacak veri (partial olabilir)
1411
- data: z.object({}).catchall(z.any()),
1412
- // opsiyonel: update senaryosu için
1413
- recordId: z.string().optional(),
1414
- });
1415
- export const CheckRecordPermissionSchema = z.object({
1416
- tenantId: z.string(),
1417
- collectionId: z.string(),
1418
- recordId: z.string(),
1419
- // yapılmak istenen işlem
1420
- action: z.string(), // read | update | delete | restore | duplicate | custom
1421
- });
1422
- export const ListRecordPermissionsSchema = z.object({
1423
- tenantId: z.string(),
1424
- collectionId: z.string(),
1425
- recordId: z.string(),
1426
- });
1427
- export const GrantRecordPermissionSchema = z.object({
1428
- tenantId: z.string(),
1429
- collectionId: z.string(),
1430
- recordId: z.string(),
1431
- // yetki verilecek subject
1432
- subjectType: z.string(), // user | role | group | service | custom
1433
- subjectId: z.string(),
1434
- // izin verilen aksiyonlar
1435
- actions: z.array(z.string()), // read | update | delete | restore | duplicate | custom
1436
- });
1437
- export const RevokeRecordPermissionSchema = z.object({
1438
- tenantId: z.string(),
1439
- collectionId: z.string(),
1440
- recordId: z.string(),
1441
- // yetkisi kaldırılacak subject
1442
- subjectType: z.string(), // user | role | group | service | custom
1443
- subjectId: z.string(),
1444
- // kaldırılacak aksiyonlar
1445
- // tamamını kaldırmak için ["*"] gönderilebilir
1446
- actions: z.array(z.string()),
1447
- });
1448
- //---wiki--------------------------------
1449
- export const CreateWikiPageSchema = z.object({
1450
- tenantId: z.string(),
1451
- workspaceId: z.string(),
1452
- title: z.string(),
1453
- slug: z.string(),
1454
- description: z.string().optional(),
1455
- parentId: z.string().nullable().optional(),
1456
- });
1457
- export const UpdateWikiPageSchema = z.object({
1458
- id: z.string(),
1459
- title: z.string().optional(),
1460
- slug: z.string().optional(),
1461
- description: z.string().optional(),
1462
- parentId: z.string().nullable().optional(),
1463
- status: z.string().optional(),
1464
- });
1465
- export const DeleteWikiPageSchema = z.object({
1466
- id: z.string(),
1467
- });
1468
- export const RestoreWikiPageSchema = z.object({
1469
- id: z.string(),
1470
- });
1471
- export const GetWikiPageByIdSchema = z.object({
1472
- id: z.string(),
1473
- });
1474
- export const GetWikiPageBySlugSchema = z.object({
1475
- tenantId: z.string(),
1476
- slug: z.string(),
1477
- });
1478
- export const GetWikiTreeSchema = z.object({
1479
- tenantId: z.string(),
1480
- workspaceId: z.string(),
1481
- });
1482
- /* Wiki Revision */
1483
- export const CreateWikiRevisionSchema = z.object({
1484
- pageId: z.string(),
1485
- content: z.string(), // JSON.stringify edilmiş Tiptap content
1486
- format: z.string().optional(), // TIPTAP | MARKDOWN | HTML
1487
- createdBy: z.string().optional(),
1488
- });
1489
- export const GetLatestWikiRevisionSchema = z.object({
1490
- pageId: z.string(),
1491
- });
1492
- export const GetWikiRevisionByIdSchema = z.object({
1493
- id: z.string(),
1494
- });
1495
- export const ListWikiPagesSchema = z.object({
1496
- tenantId: z.string(),
1497
- workspaceId: z.string(),
1498
- });
1499
- export const UploadEditorFileSchema = z.object({
1500
- fileName: z.string(),
1501
- fileType: z.string().optional(),
1502
- fileData: z.string(),
1503
- pageId: z.string().optional(),
1504
- attachmentId: z.string().optional(),
1505
- });
1506
- export const ResolveWikiFileViewSchema = z.object({
1507
- fileId: z.string(),
1508
- });
1509
- export const ResolveScopeFileViewSchema = z.object({
1510
- fileId: z.string(),
1511
- });
1512
- export const CreateWikiCommentSchema = z.object({
1513
- pageId: z.string(),
1514
- content: z.string(),
1515
- creatorId: z.string(),
1516
- creatorName: z.string().optional(),
1517
- creatorAvatarUrl: z.string().optional(),
1518
- selection: z.string().optional(),
1519
- parentCommentId: z.string().nullable().optional(),
1520
- });
1521
- export const UpdateWikiCommentSchema = z.object({
1522
- commentId: z.string(),
1523
- content: z.string().optional(),
1524
- resolved: z.boolean().optional(),
1525
- resolvedById: z.string().optional(),
1526
- resolvedByName: z.string().optional(),
1527
- resolvedByAvatarUrl: z.string().optional(),
1528
- });
1529
- export const DeleteWikiCommentSchema = z.object({
1530
- commentId: z.string(),
1531
- });
1532
- export const ListWikiCommentsSchema = z.object({
1533
- pageId: z.string(),
1534
- page: z.number().int().optional(),
1535
- limit: z.number().int().optional(),
1536
- });
1537
- export const CreateDatasourceSchema = z.object({
1538
- tenantId: z.string(),
1539
- entityId: z.string(),
1540
- name: z.string(),
1541
- description: z.string().optional(),
1542
- type: z.string(),
1543
- config: z.object({}).optional(),
1544
- });
1545
- export const UpdateDatasourceSchema = z.object({
1546
- id: z.string(),
1547
- name: z.string().optional(),
1548
- description: z.string().optional(),
1549
- config: z.object({}).optional(),
1550
- });
1551
- export const DeleteDatasourceSchema = z.object({
1552
- id: z.string(),
1553
- });
1554
- export const ListDatasourcesSchema = z.object({
1555
- tenantId: z.string(),
1556
- entityId: z.string().optional()
1557
- });
1558
- export const CreateSkillSchema = z.object({
1559
- tenantId: z.string(),
1560
- entityId: z.string(),
1561
- name: z.string(),
1562
- description: z.string().optional(),
1563
- type: z.string(),
1564
- config: z.object({}).optional(),
1565
- });
1566
- export const UpdateSkillSchema = z.object({
1567
- id: z.string(),
1568
- name: z.string().optional(),
1569
- description: z.string().optional(),
1570
- config: z.object({}).optional(),
1571
- });
1572
- export const DeleteSkillSchema = z.object({
1573
- id: z.string(),
1574
- });
1575
- export const ListSkillsSchema = z.object({
1576
- tenantId: z.string(),
1577
- entityId: z.string().optional()
1578
- });
1579
- export const CreateChannelSchema = z.object({
1580
- tenantId: z.string(),
1581
- entityId: z.string(),
1582
- name: z.string(),
1583
- description: z.string().optional(),
1584
- type: z.string(),
1585
- config: z.object({}).optional(),
1586
- });
1587
- export const UpdateChannelSchema = z.object({
1588
- id: z.string(),
1589
- name: z.string().optional(),
1590
- description: z.string().optional(),
1591
- config: z.object({}).optional(),
1592
- });
1593
- export const DeleteChannelSchema = z.object({
1594
- id: z.string(),
1595
- });
1596
- export const ListChannelsSchema = z.object({
1597
- tenantId: z.string(),
1598
- entityId: z.string().optional()
1599
- });
1600
- export const CreateKnowledgeSchema = z.object({
1601
- tenantId: z.string(),
1602
- entityId: z.string(),
1603
- entityType: z.string(),
1604
- name: z.string(),
1605
- description: z.string().optional(),
1606
- loaderId: z.string(),
1607
- config: z.object({}).optional(),
1608
- });
1609
- export const UpdateKnowledgeSchema = z.object({
1610
- id: z.string(),
1611
- name: z.string().optional(),
1612
- description: z.string().optional(),
1613
- config: z.object({}).optional(),
1614
- });
1615
- export const DeleteKnowledgeSchema = z.object({
1616
- id: z.string(),
1617
- });
1618
- export const ListKnowledgesSchema = z.object({
1619
- tenantId: z.string(),
1620
- entityId: z.string().optional()
1621
- });
1622
- export const CreateWorkerTopicSchema = z.object({
1623
- id: z.string(),
1624
- workerId: z.string(),
1625
- title: z.string(),
1626
- prompt: z.string().optional(),
1627
- instructions: z.array(z.string()).optional(),
1628
- });
1629
- export const UpdateWorkerTopicSchema = z.object({
1630
- id: z.string(),
1631
- title: z.string(),
1632
- prompt: z.string().optional(),
1633
- instructions: z.array(z.string()).optional(),
1634
- });
1635
- export const DeleteWorkerTopicSchema = z.object({
1636
- id: z.string()
1637
- });
1638
- export const ListWorkerTopicsSchema = z.object({
1639
- tenantId: z.string(),
1640
- workerId: z.string().optional()
1641
- });
1642
- export const CreateTopicSchema = z.object({
1643
- tenantId: z.string(),
1644
- entityId: z.string(),
1645
- entityType: z.string(),
1646
- title: z.string(),
1647
- prompt: z.string().optional(),
1648
- instructions: z.array(z.string()).optional(),
1649
- category: z.string(),
1650
- });
1651
- export const UpdateTopicSchema = z.object({
1652
- id: z.string(),
1653
- title: z.string(),
1654
- prompt: z.string().optional(),
1655
- instructions: z.array(z.string()).optional(),
1656
- category: z.string().optional(),
1657
- });
1658
- export const DeleteTopicSchema = z.object({
1659
- id: z.string()
1660
- });
1661
- export const ListTopicsSchema = z.object({
1662
- tenantId: z.string(),
1663
- entityId: z.string().optional()
1664
- });
1665
- export const ListChatHistorySchema = z.object({
1666
- tenantId: z.string(),
1667
- });
1668
- export const PublishEmploidSchema = z.object({
1669
- tenantId: z.string(),
1670
- emploidId: z.string(),
1671
- });
1672
- export const PublishWorkerToMarketStoreSchema = z.object({
1673
- tenantId: z.string(),
1674
- workerId: z.string(),
1675
- });
1676
- export const ListMarketStoreItemsSchema = z.object({
1677
- tenantId: z.string(),
1678
- });
1679
- export const GetMarketStoreItemSchema = z.object({
1680
- id: z.string(),
1681
- });
1682
- export const EnhanceTopicSchema = z.object({
1683
- entityName: z.string(),
1684
- entityDescription: z.string(),
1685
- categories: z.string().array().optional()
1686
- });
1687
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZHVsZXMvZW1wbG9pZC9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1B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LENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDckIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMvQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNwQixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNsQixRQUFRLEVBQUUsQ0FBQyxD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QUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztLQUN2QyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ2hCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQ3ZDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDaEIs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QUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNyQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2hCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNsQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ2xDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1B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QUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNwQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN4QixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3JELFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNqQixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3RCLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDN0IsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUVtcGxvaWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgdXNlcklkOiB6LnN0cmluZygpLFxuICAgIG9jY3VwYXRpb25JZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGFsaWFzOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYXZhdGFyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB2ZXJzaW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlRW1wbG9pZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBhdmF0YXI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHZlcnNpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVFbXBsb2lkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIHRlbmFudElkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RFbXBsb2lkc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RW1wbG9pZHNQYWdpbmF0ZWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcGFnZTogei5udW1iZXIoKS5pbnQoKS5vcHRpb25hbCgpLFxuICAgIGxpbWl0OiB6Lm51bWJlcigpLmludCgpLm9wdGlvbmFsKCksXG4gICAgc2VhcmNoOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgc3RhdHVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgb2NjdXBhdGlvbjogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgIGNyZWF0ZWRCeTogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLnRyYW5zZm9ybSgoYXJyKSA9PiB7XG4gICAgICAgIHJldHVybiBhcnI/Lm1hcCgoaXRlbSkgPT4gaXRlbS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9KSxcbiAgICBzb3J0Qnk6IHouZW51bShbJ25hbWUnLCAnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCcsICdyZWxldmFuY2UnXSkub3B0aW9uYWwoKSxcbiAgICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFNjb3Blc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0T2NjdXBhdGlvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG5cbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlT2NjdXBhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlT2NjdXBhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZU9jY3VwYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgUHVibGlzaERvbWFpblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBkb21haW5JZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVEb21haW5Ub3BpY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBvY2N1cGF0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCksXG4gICAgcHJvbXB0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaW5zdHJ1Y3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZURvbWFpblRvcGljU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIHRpdGxlOiB6LnN0cmluZygpLFxuICAgIHByb21wdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGluc3RydWN0aW9uczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVEb21haW5Ub3BpY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RG9tYWluVG9waWNzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG9jY3VwYXRpb25JZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBTY29wZVR5cGVTY2hlbWEgPSB6LnN0cmluZygpLm1pbigxKTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjb3BlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHdvcmtlcklkOiB6LnN0cmluZygpLFxuICAgIHBhcmVudFNjb3BlSWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0eXBlOiBTY29wZVR5cGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgICBpc0ZvbGRlclR5cGU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXRTY29wZUJ5VHlwZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKSxcbiAgICB0eXBlOiBTY29wZVR5cGVTY2hlbWFcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlU2NvcGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgc2NvcGVJZDogei5zdHJpbmcoKSxcbiAgICBwYXJlbnRTY29wZUlkOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBpc0ZvbGRlclR5cGU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgY29udGVudDogei5hbnkoKS5vcHRpb25hbCgpLFxuICAgIG1hcmtkb3duQ29udGVudDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVNjb3BlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHNjb3BlSWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlSm9iRGVmaW5pdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKSxcbiAgICBzY29wZUlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjYXRlZ29yeTogei5lbnVtKFtcInRlY2huaWNhbFwiLCBcImFkbWluaXN0cmF0aXZlXCIsIFwic29jaWFsXCJdKS5vcHRpb25hbCgpLFxuICAgIHByaW9yaXR5OiB6LmVudW0oW1wiaGlnaFwiLCBcIm1lZGl1bVwiLCBcImxvd1wiXSkub3B0aW9uYWwoKSxcbiAgICBzdGF0dXM6IHouZW51bShbXCJhY3RpdmVcIiwgXCJpbmFjdGl2ZVwiLCBcImRyYWZ0XCJdKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0Sm9iRGVmaW5pdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHNjb3BlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVKb2JEZWZpbml0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNhdGVnb3J5OiB6LmVudW0oW1widGVjaG5pY2FsXCIsIFwiYWRtaW5pc3RyYXRpdmVcIiwgXCJzb2NpYWxcIl0pLm9wdGlvbmFsKCksXG4gICAgcHJpb3JpdHk6IHouZW51bShbXCJoaWdoXCIsIFwibWVkaXVtXCIsIFwibG93XCJdKS5vcHRpb25hbCgpLFxuICAgIHN0YXR1czogei5lbnVtKFtcImFjdGl2ZVwiLCBcImluYWN0aXZlXCIsIFwiZHJhZnRcIl0pLm9wdGlvbmFsKCksXG4gICAgc2NvcGVJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gICAgY29udGVudDogei5hbnkoKS5vcHRpb25hbCgpLFxuICAgIG1hcmtkb3duQ29udGVudDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUpvYkRlZmluaXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ29tcGV0ZW5jeVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKSxcbiAgICBzY29wZUlkOiB6LnN0cmluZygpLFxuICAgIGpvYkRlZmluaXRpb25JZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaW5wdXRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RDb21wZXRlbmNpZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgd29ya2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzY29wZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgam9iRGVmaW5pdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ29tcGV0ZW5jeVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaW5wdXRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNvbXBldGVuY3lTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQWdlbnRGbG93U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZm9sZGVySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIC8vZmxvd0RhdGE6IHoub2JqZWN0KHt9KS5wYXNzdGhyb3VnaCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUFnZW50Rmxvd1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAvL2Zsb3dEYXRhOiB6Lm9iamVjdCh7fSkucGFzc3Rocm91Z2goKVxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVBZ2VudEZsb3dTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgRHVwbGljYXRlQWdlbnRGbG93U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDaGFuZ2VBZ2VudGZsb3dQcm9qZWN0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIHByb2plY3RJZDogei5zdHJpbmcoKVxufSk7XG5cblxuXG5leHBvcnQgY29uc3QgTGlzdEFnZW50Rmxvd3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQWdlbnRGbG93Rm9sZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQWdlbnRGbG93Rm9sZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVBZ2VudEZsb3dGb2xkZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdEFnZW50Rmxvd0ZvbGRlcnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3REcml2ZUl0ZW1zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGZvbGRlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3REcml2ZVRyZWVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaERyaXZlSXRlbXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcXVlcnk6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZURyaXZlRm9sZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgcGFyZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUHJlcGFyZURyaXZlVXBsb2FkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgcGFyZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBtaW1lVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZW5hbWVEcml2ZUl0ZW1TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaXRlbUlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IE1vdmVEcml2ZUl0ZW1TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaXRlbUlkOiB6LnN0cmluZygpLFxuICAgIHRhcmdldFBhcmVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldERyaXZlRGVsZXRlSW1wYWN0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGl0ZW1JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlRHJpdmVJdGVtU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGl0ZW1JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVzb2x2ZURyaXZlRG93bmxvYWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaXRlbUlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RHJpdmVSb290c1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlRHJpdmVQcm92aWRlckNyZWRlbnRpYWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcHJvdmlkZXI6IHouZW51bShbXCJMT0NBTFwiLCBcIkdPT0dMRV9EUklWRVwiLCBcIkRST1BCT1hcIl0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RHJpdmVQcm92aWRlckZvbGRlcnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcHJvdmlkZXI6IHouZW51bShbXCJMT0NBTFwiLCBcIkdPT0dMRV9EUklWRVwiLCBcIkRST1BCT1hcIl0pLFxuICAgIHBhcmVudElkOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgICBjcmVkZW50aWFsSWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVEcml2ZVJvb3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcHJvdmlkZXI6IHouZW51bShbXCJMT0NBTFwiLCBcIkdPT0dMRV9EUklWRVwiLCBcIkRST1BCT1hcIl0pLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgY3JlZGVudGlhbElkOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgICByZW1vdGVSb290SWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICAgIHJlbW90ZVJvb3RQYXRoOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlRHJpdmVSb290U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdERyaXZlUm9vdEl0ZW1zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBmb2xkZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RHJpdmVSb290VHJlZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICByb290SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaERyaXZlUm9vdEl0ZW1zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBxdWVyeTogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlRHJpdmVSb290Rm9sZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIHBhcmVudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwbG9hZERyaXZlUm9vdEZpbGVzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBwYXJlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGZpbGVzOiB6LmFycmF5KHoub2JqZWN0KHtcbiAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgYmFzZTY0OiB6LnN0cmluZygpLFxuICAgICAgICBtaW1lVHlwZTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gICAgfSkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZW5hbWVEcml2ZVJvb3RJdGVtU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBpdGVtSWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTW92ZURyaXZlUm9vdEl0ZW1TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcm9vdElkOiB6LnN0cmluZygpLFxuICAgIGl0ZW1JZDogei5zdHJpbmcoKSxcbiAgICB0YXJnZXRQYXJlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXREcml2ZVJvb3REZWxldGVJbXBhY3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcm9vdElkOiB6LnN0cmluZygpLFxuICAgIGl0ZW1JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlRHJpdmVSb290SXRlbVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICByb290SWQ6IHouc3RyaW5nKCksXG4gICAgaXRlbUlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZWFkRHJpdmVSb290RmlsZUNvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcm9vdElkOiB6LnN0cmluZygpLFxuICAgIGl0ZW1JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVzb2x2ZURyaXZlUm9vdERvd25sb2FkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHJvb3RJZDogei5zdHJpbmcoKSxcbiAgICBpdGVtSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUV4dGVuc2lvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBleHRlbnNpb25JZDogei5zdHJpbmcoKSxcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUV4dGVuc2lvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0RXh0ZW5zaW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlRXh0ZW5zaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2lzdGFudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBhbGlhczogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgcHJvbXB0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7XG4gICAgICAgIG1vZGU6IHouZW51bShbXCJzaW1wbGVcIiwgXCJhZHZhbmNlZFwiXSksXG4gICAgfSkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVBc3Npc3RhbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBwcm9tcHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHtcbiAgICAgICAgbW9kZTogei5lbnVtKFtcInNpbXBsZVwiLCBcImFkdmFuY2VkXCJdKSxcbiAgICB9KS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUFzc2lzdGFudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKVxufSk7XG5cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2lzdGFudEluc3RydWN0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGFzc2lzdGFudElkOiB6LnN0cmluZygpLFxuICAgIHRpdGxlOiB6LnN0cmluZygpLFxuICAgIHByb21wdDogei5zdHJpbmcoKSxcbiAgICBpbnN0cnVjdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdEFzc2lzdGFudEluc3RydWN0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBhc3Npc3RhbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVBc3Npc3RhbnRDb25zdHJhaW50U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGFzc2lzdGFudElkOiB6LnN0cmluZygpLFxuICAgIHRpdGxlOiB6LnN0cmluZygpLFxuICAgIHByb21wdDogei5zdHJpbmcoKSxcbiAgICBjb25zdHJhaW50czogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0QXNzaXN0YW50Q29uc3RyYWludHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYXNzaXN0YW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5cbmV4cG9ydCBjb25zdCBMaXN0QXNzaXN0YW50c1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVBc3Npc3RhbnREYXRhc291cmNlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGFzc2lzdGFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7XG5cbiAgICB9KS5vcHRpb25hbCgpXG59KTtcblxuXG5cbmV4cG9ydCBjb25zdCBMaXN0QXNzaXN0YW50RGF0YXNvdXJjZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYXNzaXN0YW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQXNzaXN0YW50RGF0YXNvdXJjZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7XG5cbiAgICB9KS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUFzc2lzdGFudERhdGFzb3VyY2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQXNzaXN0YW50U2tpbGxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYXNzaXN0YW50SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHtcblxuICAgIH0pLm9wdGlvbmFsKClcbn0pO1xuXG5cblxuZXhwb3J0IGNvbnN0IExpc3RBc3Npc3RhbnRTa2lsbHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYXNzaXN0YW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQXNzaXN0YW50U2tpbGxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe1xuXG4gICAgfSkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVBc3Npc3RhbnRTa2lsbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKVxufSk7XG5cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUFzc2lzdGFudENoYW5uZWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYXNzaXN0YW50SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHtcblxuICAgIH0pLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdEFzc2lzdGFudENoYW5uZWxzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGFzc2lzdGFudElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUFzc2lzdGFudENoYW5uZWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe1xuXG4gICAgfSkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVBc3Npc3RhbnRDaGFubmVsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVdvcmtlclNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbXBsb2lkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYXZhdGFyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZVdvcmtlclNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBlbXBsb2lkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBhdmF0YXI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5cbmV4cG9ydCBjb25zdCBEZWxldGVXb3JrZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgd29ya2VySWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RXb3JrZXJzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUlucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGVtcGxvaWRJZDogei5zdHJpbmcoKSxcbiAgICBjb21wZXRlbmN5SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHR5cGU6IHouZW51bShbJ3N0cmluZycsICdudW1iZXInLCAnYm9vbGVhbicsICdvYmplY3QnXSkuZGVmYXVsdCgnc3RyaW5nJyksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbXBsb2lkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb21wZXRlbmN5SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdHlwZTogei5lbnVtKFsnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJywgJ29iamVjdCddKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlVGVhbVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBhbGlhczogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RUZWFtc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVUZWFtU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlYW1JZDogei5zdHJpbmcoKSxcbiAgICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVUZWFtU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlYW1JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU2F2ZUNoYXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0aXRsZTogei5zdHJpbmcoKSxcbiAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gICAgdmlzaWJpbGl0eTogei5lbnVtKFsncHJpdmF0ZScsICdwdWJsaWMnXSksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNoYXRCeUlkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXRDaGF0QnlJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0Q2hhdHNCeVVzZXJJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gICAgbGltaXQ6IHoubnVtYmVyKCksXG4gICAgc3RhcnRpbmdBZnRlcjogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gICAgZW5kaW5nQmVmb3JlOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU2F2ZU1lc3NhZ2VzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIG1lc3NhZ2VzOiB6LmFycmF5KHoub2JqZWN0KCkpXG59KTtcblxuXG5leHBvcnQgY29uc3QgR2V0TWVzc2FnZXNCeUNoYXRJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBjaGF0SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldE1lc3NhZ2VCeUlkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBWb3RlTWVzc2FnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBjaGF0SWQ6IHouc3RyaW5nKCksXG4gICAgbWVzc2FnZUlkOiB6LnN0cmluZygpLFxuICAgIHR5cGU6IHouZW51bShbJ3VwJywgJ2Rvd24nXSksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFZvdGVzQnlDaGF0SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgY2hhdElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVEb2N1bWVudHNCeUlkQWZ0ZXJUaW1lc3RhbXBTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdGltZXN0YW1wOiB6LmRhdGUoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU2F2ZVN1Z2dlc3Rpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHN1Z2dlc3Rpb25zOiB6LmFycmF5KHoub2JqZWN0KHt9KSlcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0U3VnZ2VzdGlvbnNCeURvY3VtZW50SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZU1lc3NhZ2VzQnlDaGF0SWRBZnRlclRpbWVzdGFtcFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBjaGF0SWQ6IHouc3RyaW5nKCksXG4gICAgdGltZXN0YW1wOiB6LmRhdGUoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ2hhdFZpc2libGl0eUJ5SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdmlzaWJpbGl0eTogei5lbnVtKFsncHJpdmF0ZScsICdwdWJsaWMnXSksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNoYXRMYXN0Q29udGV4dEJ5SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgY29udGV4dDogei5vYmplY3Qoe30pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXRNZXNzYWdlQ291bnRCeVVzZXJJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gICAgZGlmZmVyZW5jZUluSG91cnM6IHoubnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVN0cmVhbUlkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHN0cmVhbUlkOiB6LnN0cmluZygpLFxuICAgIGNoYXRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0U3RyZWFtSWRzQnlDaGF0SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgY2hhdElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTYXZlRG9jdW1lbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0aXRsZTogei5zdHJpbmcoKSxcbiAgICBraW5kOiB6LmVudW0oWyd0ZXh0JywgJ2NvZGUnLCAnaW1hZ2UnLCAnc2hlZXQnXSksXG4gICAgY29udGVudDogei5zdHJpbmcoKSxcbiAgICB1c2VySWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldERvY3VtZW50QnlJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0RG9jdW1lbnRzQnlJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUluc3RydWN0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGVtcGxvaWRJZDogei5zdHJpbmcoKSxcbiAgICBjb250ZW50OiB6LnN0cmluZygpLFxuICAgIHR5cGU6IHouZW51bShbJ1VTRVInLCAnU1lTVEVNJ10pLFxuICAgIGFjdGl2ZTogei5ib29sZWFuKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RJbnN0cnVjdGlvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHNlYXJjaFRleHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBhY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgZW1wbG9pZElkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlSW5zdHJ1Y3Rpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdHlwZTogei5lbnVtKFsnVVNFUicsICdTWVNURU0nXSkub3B0aW9uYWwoKSxcbiAgICBjb250ZW50OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVJbnN0cnVjdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5cbmV4cG9ydCBjb25zdCBDcmVhdGVDb21tYW5kU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0eXBlOiB6LmVudW0oWydXT1JLRVInLCAnQVNTSVNUQU5UJywgJ1RFQU0nLCAnRkxPVyddKS5kZWZhdWx0KCdGTE9XJyksXG4gICAgdGFyZ2V0SWQ6IHouc3RyaW5nKCksXG4gICAgdGFyZ2V0VHlwZTogei5zdHJpbmcoKSxcbiAgICBpbnB1dHM6IHouYXJyYXkoei5vYmplY3Qoe1xuICAgICAgICBcImxhYmVsXCI6IHouc3RyaW5nKCksXG4gICAgICAgIFwibmFtZVwiOiB6LnN0cmluZygpLFxuICAgICAgICBcInR5cGVcIjogei5lbnVtKFsnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJywgJ29iamVjdCddKS5kZWZhdWx0KCdzdHJpbmcnKSxcbiAgICB9KSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdENvbW1hbmRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbW1hbmRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdHlwZTogei5lbnVtKFsnV09SS0VSJywgJ0FTU0lTVEFOVCcsICdURUFNJywgJ0ZMT1cnXSkub3B0aW9uYWwoKSxcbiAgICB0YXJnZXRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHRhcmdldFR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlQ29tbWFuZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNvbnN0cmFpbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgZW1wbG9pZElkOiB6LnN0cmluZygpLFxuICAgIGNvbnRlbnQ6IHouc3RyaW5nKCksXG4gICAgdHlwZTogei5lbnVtKFsnVVNFUicsICdTWVNURU0nXSksXG4gICAgYWN0aXZlOiB6LmJvb2xlYW4oKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdENvbnN0cmFpbnRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzZWFyY2hUZXh0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIGVtcGxvaWRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbnN0cmFpbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdHlwZTogei5lbnVtKFsnVVNFUicsICdTWVNURU0nXSkub3B0aW9uYWwoKSxcbiAgICBjb250ZW50OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgYWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb25zdHJhaW50U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVUYXNrVGVtcGxhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0YXNrOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgZW1wbG9pZElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVUYXNrVGVtcGxhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdGFzazogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBlbXBsb2lkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVGFza1RlbXBsYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0VGFza1RlbXBsYXRlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBlbXBsb2lkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUNvbGxlY3Rpb25zLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8qKlxuICogRGF0YU1vZGVsIG9sdcWfdHVybWFcbiAqL1xuZXhwb3J0IGNvbnN0IENyZWF0ZURhdGFNb2RlbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLCAvLyBkYXRhIG1vZGVsIG5hbWVcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogRGF0YU1vZGVsIGfDvG5jZWxsZW1lIChwYXJ0aWFsKVxuICovXG5leHBvcnQgY29uc3QgVXBkYXRlRGF0YU1vZGVsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxuICAgIGRhdGE6IHoub2JqZWN0KHtcbiAgICAgICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIH0pLnBhc3N0aHJvdWdoKCksXG59KTtcblxuLyoqXG4gKiBEYXRhTW9kZWwgc29mdCBkZWxldGUgKGFyY2hpdmUpXG4gKi9cbmV4cG9ydCBjb25zdCBEZWxldGVEYXRhTW9kZWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgZGVsZXRlZEJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksIC8vIHVzZXJJZCB8IHN5c3RlbSB8IGVtcGxvaWRcbn0pO1xuXG4vKipcbiAqIERhdGFNb2RlbCByZXN0b3JlXG4gKi9cbmV4cG9ydCBjb25zdCBSZXN0b3JlRGF0YU1vZGVsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIHJlc3RvcmVkQnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSwgLy8gdXNlcklkIHwgc3lzdGVtIHwgZW1wbG9pZFxufSk7XG5cbi8qKlxuICogRGF0YU1vZGVsIGhhcmQgZGVsZXRlIChnZXJpIGTDtm7DvGxtZXopXG4gKi9cbmV4cG9ydCBjb25zdCBMaXN0RGF0YU1vZGVsc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXREYXRhTW9kZWxCeUlkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBIYXJkRGVsZXRlRGF0YU1vZGVsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxuXG4gICAgY29uZmlybWVkOiB6LmxpdGVyYWwoXCJZRVNcIiksXG4gICAgZGVsZXRlZEJ5OiB6LnN0cmluZygpLCAvLyBzeXN0ZW0gLyBhZG1pblxufSk7XG5cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNvbGxlY3Rpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgZGF0YU1vZGVsSWQ6IHouc3RyaW5nKCksXG4gICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVDb2xsZWN0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNvbGxlY3Rpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxufSk7XG5cblxuXG5leHBvcnQgY29uc3QgTGlzdENvbGxlY3Rpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldENvbGxlY3Rpb25CeUlkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVSZWNvcmRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIGRhdGE6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBsb2FkQ29sbGVjdGlvbkZpbGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBiYXNlNjQ6IHouc3RyaW5nKCksXG4gICAgbWltZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBpdGVtSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVzb2x2ZUNvbGxlY3Rpb25GaWxlVmlld1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpdGVtSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFJlY29yZEJ5SWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIHJlY29yZElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0UmVjb3Jkc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIG9mZnNldDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuXG4gICAgZmlsdGVyOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcblxuICAgIHNvcnQ6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVSZWNvcmRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIHJlY29yZElkOiB6LnN0cmluZygpLFxuXG4gICAgZGF0YTogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVSZWNvcmRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIHJlY29yZElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZXN0b3JlUmVjb3JkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICByZWNvcmRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBzZXJ0UmVjb3JkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHZhcnNhIHVwZGF0ZSwgeW9rc2EgY3JlYXRlXG4gICAgcmVjb3JkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAgIGRhdGE6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQnVsa0NyZWF0ZVJlY29yZHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuXG4gICAgcmVjb3Jkczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpXG4gICAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlQWlydGFibGVJbXBvcnRDcmVkZW50aWFsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0QWlydGFibGVJbXBvcnRTb3VyY2VzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3QWlydGFibGVJbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYmFzZUlkOiB6LnN0cmluZygpLFxuICAgIHRhYmxlSWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUnVuQWlydGFibGVJbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYmFzZUlkOiB6LnN0cmluZygpLFxuICAgIHRhYmxlczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgdGFibGVJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25OYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgZmllbGRzOiB6LmFycmF5KFxuICAgICAgICAgICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRhcmdldFRhYmxlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tSZWFzb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKS5taW4oMSksXG4gICAgICAgIH0pXG4gICAgKS5taW4oMSksXG59KTtcblxuZXhwb3J0IGNvbnN0IEVuc3VyZUxpbmVhckltcG9ydENyZWRlbnRpYWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RMaW5lYXJJbXBvcnRTb3VyY2VzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3TGluZWFySW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGVudGl0eVR5cGVzOiB6LmFycmF5KFxuICAgICAgICB6LmVudW0oW1xuICAgICAgICAgICAgXCJpc3N1ZXNcIixcbiAgICAgICAgICAgIFwicHJvamVjdHNcIixcbiAgICAgICAgICAgIFwiY3ljbGVzXCIsXG4gICAgICAgICAgICBcInRlYW1zXCIsXG4gICAgICAgICAgICBcInVzZXJzXCIsXG4gICAgICAgICAgICBcImxhYmVsc1wiLFxuICAgICAgICAgICAgXCJpc3N1ZVN0YXRlc1wiLFxuICAgICAgICAgICAgXCJjb21tZW50c1wiLFxuICAgICAgICAgICAgXCJhdHRhY2htZW50c1wiLFxuICAgICAgICBdKVxuICAgICkubWluKDEpLFxuICAgIHRlYW1JZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgICBwcm9qZWN0SWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgY3ljbGVJZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUnVuTGluZWFySW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGVudGl0eVR5cGVzOiB6LmFycmF5KFxuICAgICAgICB6LmVudW0oW1xuICAgICAgICAgICAgXCJpc3N1ZXNcIixcbiAgICAgICAgICAgIFwicHJvamVjdHNcIixcbiAgICAgICAgICAgIFwiY3ljbGVzXCIsXG4gICAgICAgICAgICBcInRlYW1zXCIsXG4gICAgICAgICAgICBcInVzZXJzXCIsXG4gICAgICAgICAgICBcImxhYmVsc1wiLFxuICAgICAgICAgICAgXCJpc3N1ZVN0YXRlc1wiLFxuICAgICAgICAgICAgXCJjb21tZW50c1wiLFxuICAgICAgICAgICAgXCJhdHRhY2htZW50c1wiLFxuICAgICAgICBdKVxuICAgICkubWluKDEpLFxuICAgIHRlYW1JZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgICBwcm9qZWN0SWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgY3ljbGVJZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgICBjb2xsZWN0aW9uczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgZW50aXR5VHlwZTogei5lbnVtKFtcbiAgICAgICAgICAgICAgICBcImlzc3Vlc1wiLFxuICAgICAgICAgICAgICAgIFwicHJvamVjdHNcIixcbiAgICAgICAgICAgICAgICBcImN5Y2xlc1wiLFxuICAgICAgICAgICAgICAgIFwidGVhbXNcIixcbiAgICAgICAgICAgICAgICBcInVzZXJzXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbHNcIixcbiAgICAgICAgICAgICAgICBcImlzc3VlU3RhdGVzXCIsXG4gICAgICAgICAgICAgICAgXCJjb21tZW50c1wiLFxuICAgICAgICAgICAgICAgIFwiYXR0YWNobWVudHNcIixcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgY29sbGVjdGlvbk5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBjb2xsZWN0aW9uRGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBmaWVsZHM6IHouYXJyYXkoXG4gICAgICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZElkOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVGFyZ2V0RW50aXR5VHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1JlYXNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLm1pbigxKSxcbiAgICAgICAgfSlcbiAgICApLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlTm90aW9uSW1wb3J0Q3JlZGVudGlhbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlR21haWxJbXBvcnRDcmVkZW50aWFsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBFbnN1cmVHaXRodWJJbXBvcnRDcmVkZW50aWFsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3Q3N2SW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGZpbGVOYW1lOiB6LnN0cmluZygpLFxuICAgIGhlYWRlcnNFbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIGNvbHVtbnM6IHouYXJyYXkoXG4gICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBpbmRleDogei5udW1iZXIoKS5pbnQoKSxcbiAgICAgICAgfSlcbiAgICApLm1pbigxKSxcbiAgICByb3dzOiB6LmFycmF5KHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdEdtYWlsSW1wb3J0U291cmNlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdEdpdGh1YkltcG9ydFNvdXJjZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFByZXZpZXdHbWFpbEltcG9ydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uczogei5hcnJheSh6LmVudW0oW1wiZW1haWxcIiwgXCJjb250YWN0XCJdKSkubWluKDEpLFxuICAgIHN0YXJ0RnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGxhYmVsSWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgcHJlc2VydmVPcmlnaW5hbEZvcm1hdHRpbmc6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFByZXZpZXdHaXRodWJJbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcmVwb3NpdG9yeUlkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25zOiB6LmFycmF5KHouZW51bShbXCJpc3N1ZXNcIiwgXCJwdWxsUmVxdWVzdHNcIl0pKS5taW4oMSksXG59KTtcblxuZXhwb3J0IGNvbnN0IFJ1bkNzdkltcG9ydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBmaWxlTmFtZTogei5zdHJpbmcoKSxcbiAgICBoZWFkZXJzRW5hYmxlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICBjb2x1bW5zOiB6LmFycmF5KFxuICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgICBmaWVsZElkOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgaW5kZXg6IHoubnVtYmVyKCkuaW50KCksXG4gICAgICAgIH0pXG4gICAgKS5taW4oMSksXG4gICAgcm93czogei5hcnJheSh6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkpLFxuICAgIGNvbGxlY3Rpb246IHoub2JqZWN0KHtcbiAgICAgICAgY29sbGVjdGlvbktleTogei5saXRlcmFsKFwicm93c1wiKSxcbiAgICAgICAgY29sbGVjdGlvbk5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgIGNvbGxlY3Rpb25EaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgZmllbGRzOiB6LmFycmF5KFxuICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tSZWFzb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkubWluKDEpLFxuICAgIH0pLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSdW5HbWFpbEltcG9ydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uczogei5hcnJheSh6LmVudW0oW1wiZW1haWxcIiwgXCJjb250YWN0XCJdKSkubWluKDEpLFxuICAgIHN0YXJ0RnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGxhYmVsSWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgcHJlc2VydmVPcmlnaW5hbEZvcm1hdHRpbmc6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgY29sbGVjdGlvblBheWxvYWRzOiB6LmFycmF5KFxuICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uS2V5OiB6LmVudW0oW1wiZW1haWxcIiwgXCJjb250YWN0XCJdKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25OYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgZmllbGRzOiB6LmFycmF5KFxuICAgICAgICAgICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRhcmdldENvbGxlY3Rpb25LZXk6IHouZW51bShbXCJlbWFpbFwiLCBcImNvbnRhY3RcIl0pLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVhc29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICkubWluKDEpLFxuICAgICAgICB9KVxuICAgICkubWluKDEpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSdW5HaXRodWJJbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgcmVwb3NpdG9yeUlkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25zOiB6LmFycmF5KFxuICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uS2V5OiB6LmVudW0oW1wiaXNzdWVzXCIsIFwicHVsbFJlcXVlc3RzXCJdKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25OYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgZmllbGRzOiB6LmFycmF5KFxuICAgICAgICAgICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1JlYXNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLm1pbigxKSxcbiAgICAgICAgfSlcbiAgICApLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdE5vdGlvbkltcG9ydFNvdXJjZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFByZXZpZXdOb3Rpb25JbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgc291cmNlSWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUnVuTm90aW9uSW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHNvdXJjZUlkczogei5hcnJheSh6LnN0cmluZygpKS5taW4oMSksXG4gICAgc291cmNlczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgc291cmNlSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBjb2xsZWN0aW9uTmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25EaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGZpZWxkczogei5hcnJheShcbiAgICAgICAgICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UYXJnZXRTb3VyY2VJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1JlYXNvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLm1pbigxKSxcbiAgICAgICAgfSlcbiAgICApLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlVHJlbGxvSW1wb3J0Q3JlZGVudGlhbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5zdXJlSmlyYUltcG9ydENyZWRlbnRpYWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RKaXJhSW1wb3J0U291cmNlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBzaXRlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUHJldmlld0ppcmFJbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgc2l0ZUlkOiB6LnN0cmluZygpLFxuICAgIHByb2plY3RJZDogei5zdHJpbmcoKSxcbiAgICBpbmNsdWRlQ29tbWVudHM6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgaW5jbHVkZUF0dGFjaG1lbnRzOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSdW5KaXJhSW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHNpdGVJZDogei5zdHJpbmcoKSxcbiAgICBwcm9qZWN0SWQ6IHouc3RyaW5nKCksXG4gICAgaW5jbHVkZUNvbW1lbnRzOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIGluY2x1ZGVBdHRhY2htZW50czogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICBjb2xsZWN0aW9uczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgY29sbGVjdGlvbktleTogei5lbnVtKFtcImlzc3Vlc1wiLCBcImNvbW1lbnRzXCIsIFwiYXR0YWNobWVudHNcIl0pLFxuICAgICAgICAgICAgY29sbGVjdGlvbk5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBjb2xsZWN0aW9uRGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBmaWVsZHM6IHouYXJyYXkoXG4gICAgICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZElkOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVGFyZ2V0Q29sbGVjdGlvbktleTogei5lbnVtKFtcImlzc3Vlc1wiLCBcImNvbW1lbnRzXCIsIFwiYXR0YWNobWVudHNcIl0pLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVhc29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICkubWluKDEpLFxuICAgICAgICB9KVxuICAgICkubWluKDEpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDb25uZWN0VHJlbGxvSW1wb3J0Q3JlZGVudGlhbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB0b2tlbjogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFRyZWxsb0ltcG9ydFNvdXJjZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYm9hcmRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGluY2x1ZGVBcmNoaXZlZExpc3RzOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3VHJlbGxvSW1wb3J0U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGJvYXJkSWQ6IHouc3RyaW5nKCksXG4gICAgbGlzdElkczogei5hcnJheSh6LnN0cmluZygpKS5taW4oMSksXG4gICAgaW5jbHVkZUFyY2hpdmVkTGlzdHM6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgaW5jbHVkZUNsb3NlZENhcmRzOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSdW5UcmVsbG9JbXBvcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgYm9hcmRJZDogei5zdHJpbmcoKSxcbiAgICBsaXN0SWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm1pbigxKSxcbiAgICBpbmNsdWRlQXJjaGl2ZWRMaXN0czogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICBpbmNsdWRlQ2xvc2VkQ2FyZHM6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgbGlzdHM6IHouYXJyYXkoXG4gICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgIGxpc3RJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25OYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgY29sbGVjdGlvbkRpc3BsYXlOYW1lOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgZmllbGRzOiB6LmFycmF5KFxuICAgICAgICAgICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLm1pbigxKSxcbiAgICAgICAgfSlcbiAgICApLm1pbigxKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQnVsa1VwZGF0ZVJlY29yZHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuXG4gICAgcmVjb3Jkczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgcmVjb3JkSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBkYXRhOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSksXG4gICAgICAgIH0pXG4gICAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQnVsa0RlbGV0ZVJlY29yZHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuXG4gICAgcmVjb3JkSWRzOiB6LmFycmF5KHouc3RyaW5nKCkpLFxufSk7XG5cblxuZXhwb3J0IGNvbnN0IER1cGxpY2F0ZVJlY29yZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgcmVjb3JkSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBvcHNpeW9uZWw6IGtvcHlhIMO8emVyaW5kZSBvdmVycmlkZSBlZGlsZWNlayBhbGFubGFyXG4gICAgb3ZlcnJpZGVzOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUXVlcnlSZWNvcmRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHdoZXJlIC8gZmlsdGVyXG4gICAgZmlsdGVyOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIHByb2plY3Rpb24gKGhhbmdpIGFsYW5sYXIgZ2Vsc2luKVxuICAgIGZpZWxkczogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBzb3J0aW5nXG4gICAgc29ydDogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBwYWdpbmF0aW9uXG4gICAgbGltaXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICBvZmZzZXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU2VhcmNoUmVjb3Jkc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBhcmFtYSBtZXRuaVxuICAgIHF1ZXJ5OiB6LnN0cmluZygpLFxuXG4gICAgLy8gb3BzaXlvbmVsOiBoYW5naSBhbGFubGFyZGEgYXJhbnPEsW5cbiAgICBmaWVsZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIG9wc2l5b25lbCBlayBmaWx0cmVsZXJcbiAgICBmaWx0ZXI6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuXG4gICAgLy8gc29ydGluZ1xuICAgIHNvcnQ6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuXG4gICAgLy8gcGFnaW5hdGlvblxuICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgb2Zmc2V0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvdW50UmVjb3Jkc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBvcHNpeW9uZWwgZmlsdHJlXG4gICAgZmlsdGVyOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR3JvdXBSZWNvcmRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcblxuICAgIC8vIGhhbmdpIGFsYW4obGFyKWEgZ8O2cmUgZ3J1cGxhbmFjYWtcbiAgICBieTogei5hcnJheSh6LnN0cmluZygpKSxcblxuICAgIC8vIG9wc2l5b25lbCBmaWx0cmVcbiAgICBmaWx0ZXI6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxuXG4gICAgLy8gYWdncmVnYXRpb24gdGFuxLFtxLEgKGNvdW50LCBzdW0sIGF2ZyB2Yi4pXG4gICAgYWdncmVnYXRpb25zOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIHNvcnRpbmdcbiAgICBzb3J0OiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIHBhZ2luYXRpb25cbiAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIG9mZnNldDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBBZ2dyZWdhdGVSZWNvcmRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcblxuICAgIC8vIGFnZ3JlZ2F0aW9uIHBpcGVsaW5lXG4gICAgcGlwZWxpbmU6IHouYXJyYXkoXG4gICAgICAgIHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKVxuICAgICksXG5cbiAgICAvLyBvcHNpeW9uZWw6IHBpcGVsaW5lIMO2bmNlc2kgZmlsdHJlXG4gICAgZmlsdGVyOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIG9wc2l5b25lbDogcGFnaW5hdGlvbiAoYWdncmVnYXRpb24gc29ucmFzxLEpXG4gICAgbGltaXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICBvZmZzZXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGlzdGluY3RGaWVsZFZhbHVlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBkaXN0aW5jdCBhbMSxbmFjYWsgYWxhblxuICAgIGZpZWxkOiB6LnN0cmluZygpLFxuXG4gICAgLy8gb3BzaXlvbmVsIGZpbHRyZVxuICAgIGZpbHRlcjogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBvcHNpeW9uZWwgbGltaXQgKMOnb2sgYsO8ecO8ayBzZXRsZXJpIGvEsXJwbWFrIGnDp2luKVxuICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNvbGxlY3Rpb25GaWVsZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBkYXRhTW9kZWxJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICBuYW1lOiB6LnN0cmluZygpLCAgICAgICAgLy8gZmllbGQga2V5XG4gICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksICAgICAgIC8vIFVJIGxhYmVsXG4gICAgdHlwZTogei5zdHJpbmcoKSwgICAgICAgIC8vIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBkYXRlIHwganNvbiB8IHJlbGF0aW9uIHwgLi4uXG4gICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBmaWVsZC1zcGVjaWZpYyBjb25maWcgKG1pbiwgbWF4LCBlbnVtLCBmb3JtYXQsIHJlbGF0aW9uLCBldGMuKVxuICAgIGNvbmZpZzogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBvcHNpeW9uZWwgc8SxcmFsYW1hXG4gICAgb3JkZXI6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ29sbGVjdGlvbkZpZWxkU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBmaWVsZElkOiB6LnN0cmluZygpLFxuXG4gICAgLy8gZ8O8bmNlbGxlbmViaWxpciBhbGFubGFyXG4gICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0eXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG5cbiAgICAvLyBmaWVsZC1zcGVjaWZpYyBjb25maWcgKG1pbiwgbWF4LCBlbnVtLCByZWxhdGlvbiB2Yi4pXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkub3B0aW9uYWwoKSxcblxuICAgIC8vIG9wc2l5b25lbCBzxLFyYWxhbWFcbiAgICBvcmRlcjogei5udW1iZXIoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xsZWN0aW9uRmllbGRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RDb2xsZWN0aW9uQXV0b21hdGlvblJ1bGVzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgQ29sbGVjdGlvbkF1dG9tYXRpb25SdWxlVHJpZ2dlckNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB1cGRhdGVkRmllbGRJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgQ29sbGVjdGlvbkF1dG9tYXRpb25SdWxlQ29uZGl0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgb3BlcmF0b3I6IHouZW51bShbXCJpc1wiLCBcImlzLW5vdFwiLCBcImNvbnRhaW5zXCIsIFwiaXMtZW1wdHlcIiwgXCJpcy1ub3QtZW1wdHlcIl0pLFxuICAgIHZhbHVlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpLCB6LmJvb2xlYW4oKSwgei5udWxsKCldKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVDb2xsZWN0aW9uQXV0b21hdGlvblJ1bGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgZGF0YU1vZGVsSWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBlbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIHRyaWdnZXI6IHouZW51bShbXCJjcmVhdGVkXCIsIFwidXBkYXRlZFwiLCBcImxpbmtlZFwiLCBcInVubGlua2VkXCIsIFwic2NoZWR1bGVcIl0pLFxuICAgIHRyaWdnZXJDb25maWc6IENvbGxlY3Rpb25BdXRvbWF0aW9uUnVsZVRyaWdnZXJDb25maWdTY2hlbWEubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICAgIGNvbmRpdGlvbnM6IHouYXJyYXkoQ29sbGVjdGlvbkF1dG9tYXRpb25SdWxlQ29uZGl0aW9uU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIGFjdGlvbnM6IHouYXJyYXkoei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ29sbGVjdGlvbkF1dG9tYXRpb25SdWxlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBydWxlSWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZW5hYmxlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICB0cmlnZ2VyOiB6LmVudW0oW1wiY3JlYXRlZFwiLCBcInVwZGF0ZWRcIiwgXCJsaW5rZWRcIiwgXCJ1bmxpbmtlZFwiLCBcInNjaGVkdWxlXCJdKS5vcHRpb25hbCgpLFxuICAgIHRyaWdnZXJDb25maWc6IENvbGxlY3Rpb25BdXRvbWF0aW9uUnVsZVRyaWdnZXJDb25maWdTY2hlbWEubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICAgIGNvbmRpdGlvbnM6IHouYXJyYXkoQ29sbGVjdGlvbkF1dG9tYXRpb25SdWxlQ29uZGl0aW9uU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIGFjdGlvbnM6IHouYXJyYXkoei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xsZWN0aW9uQXV0b21hdGlvblJ1bGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIHJ1bGVJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdENvbGxlY3Rpb25WaWV3c1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNvbGxlY3Rpb25WaWV3U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIHR5cGU6IHouc3RyaW5nKCksXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbGxlY3Rpb25WaWV3U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICB2aWV3SWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHt9KS5jYXRjaGFsbCh6LmFueSgpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xsZWN0aW9uVmlld1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgdmlld0lkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0Q29sbGVjdGlvbkJ1dHRvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGF0YU1vZGVsSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ29sbGVjdGlvbkJ1dHRvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBkYXRhTW9kZWxJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGVuYWJsZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgYWN0aW9uczogei5hcnJheSh6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVDb2xsZWN0aW9uQnV0dG9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBidXR0b25JZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBlbmFibGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIGFjdGlvbnM6IHouYXJyYXkoei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xsZWN0aW9uQnV0dG9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBidXR0b25JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRXhlY3V0ZUNvbGxlY3Rpb25CdXR0b25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIGJ1dHRvbklkOiB6LnN0cmluZygpLFxuICAgIHJlY29yZElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRlQ29sbGVjdGlvbkFpRmllbGRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgcmVjb3JkSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RDb2xsZWN0aW9uUmVsYXRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ29sbGVjdGlvblJlbGF0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICB0YXJnZXRDb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjYXJkaW5hbGl0eTogei5lbnVtKFtcIm9uZVwiLCBcIm1hbnlcIl0pLm9wdGlvbmFsKCksXG4gICAgaW52ZXJzZUNhcmRpbmFsaXR5OiB6LmVudW0oW1wib25lXCIsIFwibWFueVwiXSkub3B0aW9uYWwoKSxcbiAgICBpbnZlcnNlRGlzcGxheU5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ29sbGVjdGlvblJlbGF0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICBmaWVsZElkOiB6LnN0cmluZygpLFxuICAgIGRpc3BsYXlOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjYXJkaW5hbGl0eTogei5lbnVtKFtcIm9uZVwiLCBcIm1hbnlcIl0pLm9wdGlvbmFsKCksXG4gICAgaW52ZXJzZUNhcmRpbmFsaXR5OiB6LmVudW0oW1wib25lXCIsIFwibWFueVwiXSkub3B0aW9uYWwoKSxcbiAgICB0YXJnZXREaXNwbGF5TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xsZWN0aW9uUmVsYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgY29sbGVjdGlvbklkOiB6LnN0cmluZygpLFxuICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgYWN0b3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFJlbGF0aW9uQ2FuZGlkYXRlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgZmllbGRJZDogei5zdHJpbmcoKSxcbiAgICBxdWVyeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFJlY29yZFJlbGF0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG4gICAgcmVjb3JkSWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFJlb3JkZXJDb2xsZWN0aW9uRmllbGRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHllbmkgc8SxcmFsYW1hOiBmaWVsZElkICsgb3JkZXJcbiAgICBmaWVsZHM6IHouYXJyYXkoXG4gICAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgICAgIGZpZWxkSWQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBvcmRlcjogei5udW1iZXIoKSxcbiAgICAgICAgfSlcbiAgICApLFxufSk7XG5cbmV4cG9ydCBjb25zdCBHZXRDb2xsZWN0aW9uU2NoZW1hU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGRhdGFNb2RlbElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbn0pO1xuXG5cbmV4cG9ydCBjb25zdCBWYWxpZGF0ZVJlY29yZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBjcmVhdGUgLyB1cGRhdGUgw7ZuY2VzaSBkb8SfcnVsYW5hY2FrIHZlcmlcbiAgICBkYXRhOiB6Lm9iamVjdCh7fSkuY2F0Y2hhbGwoei5hbnkoKSksXG5cbiAgICAvLyBvcHNpeW9uZWw6IHVwZGF0ZSBzZW5hcnlvc3UgacOnaW5cbiAgICByZWNvcmRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQcmV2aWV3VmFsaWRhdGlvbkVycm9yc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBjb2xsZWN0aW9uSWQ6IHouc3RyaW5nKCksXG5cbiAgICAvLyBkb8SfcnVsYW5hY2FrIHZlcmkgKHBhcnRpYWwgb2xhYmlsaXIpXG4gICAgZGF0YTogei5vYmplY3Qoe30pLmNhdGNoYWxsKHouYW55KCkpLFxuXG4gICAgLy8gb3BzaXlvbmVsOiB1cGRhdGUgc2VuYXJ5b3N1IGnDp2luXG4gICAgcmVjb3JkSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ2hlY2tSZWNvcmRQZXJtaXNzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICByZWNvcmRJZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHlhcMSxbG1hayBpc3RlbmVuIGnFn2xlbVxuICAgIGFjdGlvbjogei5zdHJpbmcoKSwgLy8gcmVhZCB8IHVwZGF0ZSB8IGRlbGV0ZSB8IHJlc3RvcmUgfCBkdXBsaWNhdGUgfCBjdXN0b21cbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFJlY29yZFBlcm1pc3Npb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICByZWNvcmRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR3JhbnRSZWNvcmRQZXJtaXNzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICByZWNvcmRJZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHlldGtpIHZlcmlsZWNlayBzdWJqZWN0XG4gICAgc3ViamVjdFR5cGU6IHouc3RyaW5nKCksIC8vIHVzZXIgfCByb2xlIHwgZ3JvdXAgfCBzZXJ2aWNlIHwgY3VzdG9tXG4gICAgc3ViamVjdElkOiB6LnN0cmluZygpLFxuXG4gICAgLy8gaXppbiB2ZXJpbGVuIGFrc2l5b25sYXJcbiAgICBhY3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLCAvLyByZWFkIHwgdXBkYXRlIHwgZGVsZXRlIHwgcmVzdG9yZSB8IGR1cGxpY2F0ZSB8IGN1c3RvbVxufSk7XG5cbmV4cG9ydCBjb25zdCBSZXZva2VSZWNvcmRQZXJtaXNzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGNvbGxlY3Rpb25JZDogei5zdHJpbmcoKSxcbiAgICByZWNvcmRJZDogei5zdHJpbmcoKSxcblxuICAgIC8vIHlldGtpc2kga2FsZMSxcsSxbGFjYWsgc3ViamVjdFxuICAgIHN1YmplY3RUeXBlOiB6LnN0cmluZygpLCAvLyB1c2VyIHwgcm9sZSB8IGdyb3VwIHwgc2VydmljZSB8IGN1c3RvbVxuICAgIHN1YmplY3RJZDogei5zdHJpbmcoKSxcblxuICAgIC8vIGthbGTEsXLEsWxhY2FrIGFrc2l5b25sYXJcbiAgICAvLyB0YW1hbcSxbsSxIGthbGTEsXJtYWsgacOnaW4gW1wiKlwiXSBnw7ZuZGVyaWxlYmlsaXJcbiAgICBhY3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLFxufSk7XG5cblxuXG4vLy0tLXdpa2ktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgQ3JlYXRlV2lraVBhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgd29ya3NwYWNlSWQ6IHouc3RyaW5nKCksXG5cbiAgICB0aXRsZTogei5zdHJpbmcoKSxcbiAgICBzbHVnOiB6LnN0cmluZygpLFxuXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBwYXJlbnRJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG59KTtcblxuXG5leHBvcnQgY29uc3QgVXBkYXRlV2lraVBhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzbHVnOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBwYXJlbnRJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gICAgc3RhdHVzOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVdpa2lQYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZXN0b3JlV2lraVBhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldFdpa2lQYWdlQnlJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0V2lraVBhZ2VCeVNsdWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgc2x1Zzogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0V2lraVRyZWVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgd29ya3NwYWNlSWQ6IHouc3RyaW5nKCksXG59KTtcblxuLyogV2lraSBSZXZpc2lvbiAqL1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlV2lraVJldmlzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHBhZ2VJZDogei5zdHJpbmcoKSxcbiAgICBjb250ZW50OiB6LnN0cmluZygpLCAvLyBKU09OLnN0cmluZ2lmeSBlZGlsbWnFnyBUaXB0YXAgY29udGVudFxuICAgIGZvcm1hdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLCAvLyBUSVBUQVAgfCBNQVJLRE9XTiB8IEhUTUxcbiAgICBjcmVhdGVkQnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0TGF0ZXN0V2lraVJldmlzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHBhZ2VJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR2V0V2lraVJldmlzaW9uQnlJZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFdpa2lQYWdlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3Jrc3BhY2VJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBsb2FkRWRpdG9yRmlsZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBmaWxlTmFtZTogei5zdHJpbmcoKSxcbiAgICBmaWxlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGZpbGVEYXRhOiB6LnN0cmluZygpLFxuICAgIHBhZ2VJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGF0dGFjaG1lbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZXNvbHZlV2lraUZpbGVWaWV3U2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGZpbGVJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVzb2x2ZVNjb3BlRmlsZVZpZXdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgZmlsZUlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDcmVhdGVXaWtpQ29tbWVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBwYWdlSWQ6IHouc3RyaW5nKCksXG4gICAgY29udGVudDogei5zdHJpbmcoKSxcbiAgICBjcmVhdG9ySWQ6IHouc3RyaW5nKCksXG4gICAgY3JlYXRvck5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBjcmVhdG9yQXZhdGFyVXJsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgc2VsZWN0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgcGFyZW50Q29tbWVudElkOiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlV2lraUNvbW1lbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgY29tbWVudElkOiB6LnN0cmluZygpLFxuICAgIGNvbnRlbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICByZXNvbHZlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICByZXNvbHZlZEJ5SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICByZXNvbHZlZEJ5TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHJlc29sdmVkQnlBdmF0YXJVcmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlV2lraUNvbW1lbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgY29tbWVudElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0V2lraUNvbW1lbnRzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHBhZ2VJZDogei5zdHJpbmcoKSxcbiAgICBwYWdlOiB6Lm51bWJlcigpLmludCgpLm9wdGlvbmFsKCksXG4gICAgbGltaXQ6IHoubnVtYmVyKCkuaW50KCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlRGF0YXNvdXJjZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHt9KS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVEYXRhc291cmNlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe30pLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZURhdGFzb3VyY2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3REYXRhc291cmNlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVNraWxsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGVudGl0eUlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB0eXBlOiB6LnN0cmluZygpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe30pLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZVNraWxsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe30pLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVNraWxsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0U2tpbGxzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIGVudGl0eUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ2hhbm5lbFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKSxcbiAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdHlwZTogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHt9KS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVDaGFubmVsU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGNvbmZpZzogei5vYmplY3Qoe30pLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNoYW5uZWxTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RDaGFubmVsc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUtub3dsZWRnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlUeXBlOiB6LnN0cmluZygpLFxuICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBsb2FkZXJJZDogei5zdHJpbmcoKSxcbiAgICBjb25maWc6IHoub2JqZWN0KHt9KS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVcGRhdGVLbm93bGVkZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgY29uZmlnOiB6Lm9iamVjdCh7fSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlS25vd2xlZGdlU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0S25vd2xlZGdlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuXG5leHBvcnQgY29uc3QgQ3JlYXRlV29ya2VyVG9waWNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgd29ya2VySWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCksXG4gICAgcHJvbXB0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaW5zdHJ1Y3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZVdvcmtlclRvcGljU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGlkOiB6LnN0cmluZygpLFxuICAgIHRpdGxlOiB6LnN0cmluZygpLFxuICAgIHByb21wdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGluc3RydWN0aW9uczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVXb3JrZXJUb3BpY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBMaXN0V29ya2VyVG9waWNzU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIHRlbmFudElkOiB6LnN0cmluZygpLFxuICAgIHdvcmtlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlVG9waWNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgZW50aXR5SWQ6IHouc3RyaW5nKCksXG4gICAgZW50aXR5VHlwZTogei5zdHJpbmcoKSxcbiAgICB0aXRsZTogei5zdHJpbmcoKSxcbiAgICBwcm9tcHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBpbnN0cnVjdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgICBjYXRlZ29yeTogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlVG9waWNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCksXG4gICAgcHJvbXB0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgaW5zdHJ1Y3Rpb25zOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgY2F0ZWdvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVG9waWNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgaWQ6IHouc3RyaW5nKClcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdFRvcGljc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICBlbnRpdHlJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IExpc3RDaGF0SGlzdG9yeVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUHVibGlzaEVtcGxvaWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG4gICAgZW1wbG9pZElkOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQdWJsaXNoV29ya2VyVG9NYXJrZXRTdG9yZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICB0ZW5hbnRJZDogei5zdHJpbmcoKSxcbiAgICB3b3JrZXJJZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTGlzdE1hcmtldFN0b3JlSXRlbXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgdGVuYW50SWQ6IHouc3RyaW5nKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEdldE1hcmtldFN0b3JlSXRlbVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBpZDogei5zdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgRW5oYW5jZVRvcGljU2NoZW1hID0gei5vYmplY3Qoe1xuICAgIGVudGl0eU5hbWU6IHouc3RyaW5nKCksXG4gICAgZW50aXR5RGVzY3JpcHRpb246IHouc3RyaW5nKCksXG4gICAgY2F0ZWdvcmllczogei5zdHJpbmcoKS5hcnJheSgpLm9wdGlvbmFsKClcbn0pXG4iXX0=