@researchdatabox/redbox-core 0.0.1-beta.10213 → 0.0.1-beta.10760

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 (287) hide show
  1. package/dist/CoreController.d.ts +8 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +87 -52
  4. package/dist/RecordsService.d.ts +2 -0
  5. package/dist/RecordsService.d.ts.map +1 -1
  6. package/dist/SearchService.d.ts +1 -1
  7. package/dist/SearchService.d.ts.map +1 -1
  8. package/dist/StorageService.d.ts +2 -0
  9. package/dist/StorageService.d.ts.map +1 -1
  10. package/dist/api-routes/groups/branding.d.ts +1 -0
  11. package/dist/api-routes/groups/branding.d.ts.map +1 -1
  12. package/dist/api-routes/groups/branding.js +19 -2
  13. package/dist/api-routes/groups/export.js +2 -2
  14. package/dist/api-routes/groups/figshare-crosswalks.d.ts +11 -0
  15. package/dist/api-routes/groups/figshare-crosswalks.d.ts.map +1 -0
  16. package/dist/api-routes/groups/figshare-crosswalks.js +171 -0
  17. package/dist/api-routes/groups/figshare-vocabulary.d.ts +12 -0
  18. package/dist/api-routes/groups/figshare-vocabulary.d.ts.map +1 -0
  19. package/dist/api-routes/groups/figshare-vocabulary.js +248 -0
  20. package/dist/api-routes/groups/search.js +4 -4
  21. package/dist/api-routes/groups/users.js +3 -3
  22. package/dist/api-routes/index.d.ts +2 -0
  23. package/dist/api-routes/index.d.ts.map +1 -1
  24. package/dist/api-routes/index.js +3 -1
  25. package/dist/api-routes/route-registry.d.ts.map +1 -1
  26. package/dist/api-routes/route-registry.js +5 -1
  27. package/dist/api-routes/schemas/common.d.ts +1 -0
  28. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  29. package/dist/api-routes/schemas/common.js +3 -2
  30. package/dist/bootstrap.d.ts.map +1 -1
  31. package/dist/bootstrap.js +5 -1
  32. package/dist/config/agendaQueue.config.d.ts +3 -0
  33. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  34. package/dist/config/agendaQueue.config.js +13 -1
  35. package/dist/config/auth.config.d.ts.map +1 -1
  36. package/dist/config/auth.config.js +4 -1
  37. package/dist/config/brandingConfigurationDefaults.config.d.ts +1 -1
  38. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  39. package/dist/config/brandingConfigurationDefaults.config.js +22 -230
  40. package/dist/config/dashboardtype.config.d.ts +7 -0
  41. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  42. package/dist/config/dashboardtype.config.js +9 -89
  43. package/dist/config/dashboardview.config.d.ts +7 -0
  44. package/dist/config/dashboardview.config.d.ts.map +1 -1
  45. package/dist/config/dashboardview.config.js +9 -134
  46. package/dist/config/http.config.d.ts +2 -0
  47. package/dist/config/http.config.d.ts.map +1 -1
  48. package/dist/config/http.config.js +47 -1
  49. package/dist/config/jsonld.config.d.ts.map +1 -1
  50. package/dist/config/jsonld.config.js +2 -21
  51. package/dist/config/record.config.d.ts.map +1 -1
  52. package/dist/config/record.config.js +2 -9
  53. package/dist/config/recordtype.config.d.ts +8 -0
  54. package/dist/config/recordtype.config.d.ts.map +1 -1
  55. package/dist/config/recordtype.config.js +10 -660
  56. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  57. package/dist/config/reusableContributorFormDefinitions.config.js +1 -2
  58. package/dist/config/reusableViewFormDefinitions.config.d.ts.map +1 -1
  59. package/dist/config/reusableViewFormDefinitions.config.js +12 -1
  60. package/dist/config/routes.config.d.ts.map +1 -1
  61. package/dist/config/routes.config.js +12 -3
  62. package/dist/config/solr.config.d.ts +1 -0
  63. package/dist/config/solr.config.d.ts.map +1 -1
  64. package/dist/config/solr.config.js +3 -2
  65. package/dist/config/static_assets.config.d.ts +2 -0
  66. package/dist/config/static_assets.config.d.ts.map +1 -1
  67. package/dist/config/static_assets.config.js +4 -2
  68. package/dist/config/storage.config.d.ts.map +1 -1
  69. package/dist/config/storage.config.js +7 -1
  70. package/dist/config/views.config.d.ts.map +1 -1
  71. package/dist/config/views.config.js +2 -6
  72. package/dist/config/vocab.config.d.ts +4 -0
  73. package/dist/config/vocab.config.d.ts.map +1 -1
  74. package/dist/config/vocab.config.js +1 -1
  75. package/dist/config/workflow.config.d.ts +7 -0
  76. package/dist/config/workflow.config.d.ts.map +1 -1
  77. package/dist/config/workflow.config.js +9 -194
  78. package/dist/config/workspacetype.config.d.ts +7 -0
  79. package/dist/config/workspacetype.config.d.ts.map +1 -1
  80. package/dist/config/workspacetype.config.js +9 -10
  81. package/dist/configmodels/DoiPublishing.d.ts +1 -1
  82. package/dist/configmodels/DoiPublishing.d.ts.map +1 -1
  83. package/dist/configmodels/FigsharePublishing.d.ts +746 -217
  84. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  85. package/dist/configmodels/FigsharePublishing.js +181 -190
  86. package/dist/constants/export.d.ts +2 -0
  87. package/dist/constants/export.d.ts.map +1 -0
  88. package/dist/constants/export.js +8 -0
  89. package/dist/controllers/AsynchController.d.ts +4 -1
  90. package/dist/controllers/AsynchController.d.ts.map +1 -1
  91. package/dist/controllers/AsynchController.js +118 -9
  92. package/dist/controllers/BrandingAppController.d.ts +2 -0
  93. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  94. package/dist/controllers/BrandingAppController.js +40 -2
  95. package/dist/controllers/BrandingController.d.ts +8 -0
  96. package/dist/controllers/BrandingController.d.ts.map +1 -1
  97. package/dist/controllers/BrandingController.js +45 -1
  98. package/dist/controllers/ExportController.d.ts.map +1 -1
  99. package/dist/controllers/ExportController.js +4 -3
  100. package/dist/controllers/RecordController.d.ts +1 -1
  101. package/dist/controllers/RecordController.d.ts.map +1 -1
  102. package/dist/controllers/RecordController.js +47 -21
  103. package/dist/controllers/UserController.d.ts.map +1 -1
  104. package/dist/controllers/UserController.js +3 -2
  105. package/dist/controllers/VocabularyController.js +4 -4
  106. package/dist/controllers/index.d.ts.map +1 -1
  107. package/dist/controllers/index.js +7 -1
  108. package/dist/controllers/webservice/BrandingController.d.ts +1 -0
  109. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  110. package/dist/controllers/webservice/BrandingController.js +69 -10
  111. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  112. package/dist/controllers/webservice/ExportController.js +4 -3
  113. package/dist/controllers/webservice/FigshareCrosswalkController.d.ts +20 -0
  114. package/dist/controllers/webservice/FigshareCrosswalkController.d.ts.map +1 -0
  115. package/dist/controllers/webservice/FigshareCrosswalkController.js +184 -0
  116. package/dist/controllers/webservice/FigshareVocabularyController.d.ts +21 -0
  117. package/dist/controllers/webservice/FigshareVocabularyController.d.ts.map +1 -0
  118. package/dist/controllers/webservice/FigshareVocabularyController.js +223 -0
  119. package/dist/controllers/webservice/RecordController.d.ts +2 -0
  120. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  121. package/dist/controllers/webservice/RecordController.js +60 -12
  122. package/dist/controllers/webservice/UserManagementController.d.ts +5 -3
  123. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  124. package/dist/controllers/webservice/UserManagementController.js +140 -9
  125. package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts +14 -0
  126. package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts.map +1 -0
  127. package/dist/controllers/webservice/figshare-vocabulary-errors.js +39 -0
  128. package/dist/form-config/index.d.ts +7 -0
  129. package/dist/form-config/index.d.ts.map +1 -1
  130. package/dist/form-config/index.js +8 -5
  131. package/dist/hooks/hookDiscovery.d.ts +20 -0
  132. package/dist/hooks/hookDiscovery.d.ts.map +1 -0
  133. package/dist/hooks/hookDiscovery.js +186 -0
  134. package/dist/hooks/hookResources.d.ts +23 -0
  135. package/dist/hooks/hookResources.d.ts.map +1 -0
  136. package/dist/hooks/hookResources.js +136 -0
  137. package/dist/hooks/index.d.ts +4 -0
  138. package/dist/hooks/index.d.ts.map +1 -1
  139. package/dist/hooks/index.js +14 -2
  140. package/dist/index.d.ts +4 -0
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +14 -2
  143. package/dist/loader/index.d.ts.map +1 -1
  144. package/dist/loader/index.js +21 -62
  145. package/dist/model/storage/BrandingModel.d.ts +2 -0
  146. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  147. package/dist/model/storage/BrandingModel.js +3 -1
  148. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  149. package/dist/services/AgendaQueueService.js +6 -2
  150. package/dist/services/BrandingLogoService.d.ts +20 -1
  151. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  152. package/dist/services/BrandingLogoService.js +51 -5
  153. package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
  154. package/dist/services/BrandingThemeTokens.js +2 -1
  155. package/dist/services/EmailService.d.ts +2 -8
  156. package/dist/services/EmailService.d.ts.map +1 -1
  157. package/dist/services/EmailService.js +8 -26
  158. package/dist/services/FigshareService.d.ts.map +1 -1
  159. package/dist/services/FigshareService.js +5 -4
  160. package/dist/services/FigshareVocabularyService.d.ts +442 -0
  161. package/dist/services/FigshareVocabularyService.d.ts.map +1 -0
  162. package/dist/services/FigshareVocabularyService.js +1802 -0
  163. package/dist/services/FormVocabularyService.d.ts.map +1 -1
  164. package/dist/services/FormVocabularyService.js +28 -7
  165. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  166. package/dist/services/I18nEntriesService.js +21 -2
  167. package/dist/services/IntegrationAuditService.js +4 -4
  168. package/dist/services/NamedQueryService.d.ts.map +1 -1
  169. package/dist/services/NamedQueryService.js +3 -16
  170. package/dist/services/RDMPService.d.ts.map +1 -1
  171. package/dist/services/RDMPService.js +9 -1
  172. package/dist/services/RecordsService.d.ts +4 -0
  173. package/dist/services/RecordsService.d.ts.map +1 -1
  174. package/dist/services/RecordsService.js +62 -45
  175. package/dist/services/ReportsService.d.ts +0 -5
  176. package/dist/services/ReportsService.d.ts.map +1 -1
  177. package/dist/services/ReportsService.js +22 -31
  178. package/dist/services/SolrSearchService.d.ts +10 -2
  179. package/dist/services/SolrSearchService.d.ts.map +1 -1
  180. package/dist/services/SolrSearchService.js +110 -52
  181. package/dist/services/StandardDatastreamService.d.ts +7 -0
  182. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  183. package/dist/services/StandardDatastreamService.js +127 -27
  184. package/dist/services/TemplateService.d.ts +0 -14
  185. package/dist/services/TemplateService.d.ts.map +1 -1
  186. package/dist/services/TemplateService.js +4 -45
  187. package/dist/services/UsersService.d.ts.map +1 -1
  188. package/dist/services/UsersService.js +19 -16
  189. package/dist/services/ViewUtilsService.d.ts +5 -1
  190. package/dist/services/ViewUtilsService.d.ts.map +1 -1
  191. package/dist/services/ViewUtilsService.js +38 -46
  192. package/dist/services/VocabularyService.d.ts +11 -2
  193. package/dist/services/VocabularyService.d.ts.map +1 -1
  194. package/dist/services/VocabularyService.js +46 -20
  195. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  196. package/dist/services/doi-v2/bindings.js +2 -11
  197. package/dist/services/figshare-v2/assets.d.ts +2 -1
  198. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  199. package/dist/services/figshare-v2/assets.js +144 -89
  200. package/dist/services/figshare-v2/bindings.d.ts +28 -3
  201. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  202. package/dist/services/figshare-v2/bindings.js +75 -17
  203. package/dist/services/figshare-v2/categories.d.ts +142 -0
  204. package/dist/services/figshare-v2/categories.d.ts.map +1 -0
  205. package/dist/services/figshare-v2/categories.js +408 -0
  206. package/dist/services/figshare-v2/config.d.ts +10 -0
  207. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  208. package/dist/services/figshare-v2/config.js +39 -1
  209. package/dist/services/figshare-v2/context.d.ts +18 -1
  210. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  211. package/dist/services/figshare-v2/context.js +34 -2
  212. package/dist/services/figshare-v2/embargo.d.ts.map +1 -1
  213. package/dist/services/figshare-v2/embargo.js +6 -4
  214. package/dist/services/figshare-v2/http.d.ts +3 -1
  215. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  216. package/dist/services/figshare-v2/http.js +26 -4
  217. package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
  218. package/dist/services/figshare-v2/metadata.js +74 -26
  219. package/dist/services/figshare-v2/observability.d.ts +1 -2
  220. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  221. package/dist/services/figshare-v2/observability.js +7 -47
  222. package/dist/services/figshare-v2/types.d.ts +13 -0
  223. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  224. package/dist/services/figshare-v2/types.js +1 -1
  225. package/dist/services/figshare-v2/vocabulary-errors.d.ts +39 -0
  226. package/dist/services/figshare-v2/vocabulary-errors.d.ts.map +1 -0
  227. package/dist/services/figshare-v2/vocabulary-errors.js +68 -0
  228. package/dist/services/index.d.ts +3 -0
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +8 -3
  231. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
  232. package/dist/storage/TusStorageManagerDataStore.js +14 -1
  233. package/dist/utilities/ContextVariableUtils.d.ts +3 -1
  234. package/dist/utilities/ContextVariableUtils.d.ts.map +1 -1
  235. package/dist/utilities/ContextVariableUtils.js +25 -7
  236. package/dist/utilities/PromiseUtils.d.ts +9 -0
  237. package/dist/utilities/PromiseUtils.d.ts.map +1 -0
  238. package/dist/utilities/PromiseUtils.js +27 -0
  239. package/dist/utilities/RedactionUtils.d.ts +3 -0
  240. package/dist/utilities/RedactionUtils.d.ts.map +1 -0
  241. package/dist/utilities/RedactionUtils.js +55 -0
  242. package/dist/visitor/client.visitor.d.ts +3 -0
  243. package/dist/visitor/client.visitor.d.ts.map +1 -1
  244. package/dist/visitor/client.visitor.js +102 -17
  245. package/dist/visitor/construct.visitor.d.ts +3 -0
  246. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  247. package/dist/visitor/construct.visitor.js +51 -38
  248. package/dist/visitor/json-type-def.visitor.d.ts +1 -0
  249. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  250. package/dist/visitor/json-type-def.visitor.js +20 -4
  251. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +6 -3
  252. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  253. package/dist/visitor/migrate-config-v4-v5.visitor.js +94 -44
  254. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  255. package/dist/visitor/validator.visitor.js +1 -1
  256. package/dist/visitor/visitor-helpers.js +2 -2
  257. package/dist/waterline-models/BrandingConfig.d.ts +2 -0
  258. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  259. package/dist/waterline-models/BrandingConfig.js +6 -1
  260. package/dist/waterline-models/FigshareVocabularyCategory.d.ts +38 -0
  261. package/dist/waterline-models/FigshareVocabularyCategory.d.ts.map +1 -0
  262. package/dist/waterline-models/FigshareVocabularyCategory.js +157 -0
  263. package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts +37 -0
  264. package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts.map +1 -0
  265. package/dist/waterline-models/FigshareVocabularyCrosswalk.js +153 -0
  266. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts +37 -0
  267. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts.map +1 -0
  268. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.js +138 -0
  269. package/dist/waterline-models/FigshareVocabularySource.d.ts +45 -0
  270. package/dist/waterline-models/FigshareVocabularySource.d.ts.map +1 -0
  271. package/dist/waterline-models/FigshareVocabularySource.js +149 -0
  272. package/dist/waterline-models/FigshareVocabularySyncRun.d.ts +70 -0
  273. package/dist/waterline-models/FigshareVocabularySyncRun.d.ts.map +1 -0
  274. package/dist/waterline-models/FigshareVocabularySyncRun.js +237 -0
  275. package/dist/waterline-models/Vocabulary.d.ts +3 -1
  276. package/dist/waterline-models/Vocabulary.d.ts.map +1 -1
  277. package/dist/waterline-models/Vocabulary.js +9 -3
  278. package/dist/waterline-models/index.d.ts +10 -0
  279. package/dist/waterline-models/index.d.ts.map +1 -1
  280. package/dist/waterline-models/index.js +16 -1
  281. package/package.json +19 -19
  282. package/dist/form-config/dataRecord-1.0-draft.d.ts +0 -4
  283. package/dist/form-config/dataRecord-1.0-draft.d.ts.map +0 -1
  284. package/dist/form-config/dataRecord-1.0-draft.js +0 -1042
  285. package/dist/form-config/default-1.0-draft.d.ts +0 -4
  286. package/dist/form-config/default-1.0-draft.d.ts.map +0 -1
  287. package/dist/form-config/default-1.0-draft.js +0 -1156
@@ -22,7 +22,7 @@ function createDefaultBinding(path, defaultValue) {
22
22
  return {
23
23
  kind: 'path',
24
24
  path,
25
- defaultValue
25
+ defaultValue,
26
26
  };
27
27
  }
28
28
  class FigsharePublishing extends AppConfig_interface_1.AppConfig {
@@ -36,15 +36,15 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
36
36
  metadataMs: 30000,
37
37
  uploadInitMs: 30000,
38
38
  uploadPartMs: 120000,
39
- publishMs: 60000
39
+ publishMs: 60000,
40
40
  },
41
41
  retry: {
42
42
  maxAttempts: 3,
43
43
  baseDelayMs: 500,
44
44
  maxDelayMs: 4000,
45
45
  retryOnStatusCodes: [408, 429, 500, 502, 503, 504],
46
- retryOnMethods: ['get', 'put', 'delete']
47
- }
46
+ retryOnMethods: ['get', 'put', 'delete'],
47
+ },
48
48
  };
49
49
  article = {
50
50
  itemType: 'dataset',
@@ -55,45 +55,43 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
55
55
  curationLock: {
56
56
  enabled: false,
57
57
  statusField: '',
58
- targetValue: 'public'
59
- }
58
+ targetValue: 'public',
59
+ },
60
60
  };
61
61
  record = {
62
62
  articleIdPath: 'metadata.figshare_article_id',
63
- articleUrlPaths: ['metadata.figshare_article_location'],
64
63
  dataLocationsPath: 'metadata.dataLocations',
65
64
  statusPath: 'metadata.figshareStatus',
66
65
  errorPath: 'metadata.figshareError',
67
66
  syncStatePath: 'metadata.figshareSyncState',
68
- allFilesUploadedPath: ''
67
+ allFilesUploadedPath: '',
69
68
  };
70
69
  selection = {
71
70
  attachmentMode: 'selectedOnly',
72
71
  urlMode: 'selectedOnly',
73
- selectedFlagPath: 'selected'
72
+ selectedFlagPath: 'selected',
74
73
  };
75
74
  authors = {
76
- source: 'defaultRedboxContributors',
77
75
  contributorPaths: [
78
76
  'metadata.contributor_ci',
79
77
  'metadata.contributor_data_manager',
80
78
  'metadata.dataOwner',
81
79
  'metadata.chiefInvestigator',
82
- 'metadata.contributors'
80
+ 'metadata.contributors',
83
81
  ],
84
82
  uniqueBy: 'email',
85
83
  externalNameField: 'text_full_name',
86
84
  maxInlineAuthors: 50,
87
85
  emailTransform: {
88
86
  prefix: '',
89
- domainOverride: ''
87
+ domainOverride: '',
90
88
  },
91
89
  lookup: [
92
90
  {
93
91
  matchBy: 'email',
94
- value: createDefaultBinding('email')
95
- }
96
- ]
92
+ value: createDefaultBinding('email'),
93
+ },
94
+ ],
97
95
  };
98
96
  metadata = {
99
97
  title: createDefaultBinding('metadata.title', ''),
@@ -103,32 +101,29 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
103
101
  license: {
104
102
  source: createDefaultBinding('metadata.license'),
105
103
  matchBy: 'urlContains',
106
- required: true
104
+ required: true,
107
105
  },
108
106
  categories: {
109
107
  source: createDefaultBinding('metadata.forCodes', []),
110
- mappingStrategy: 'for2020Mapping'
111
108
  },
112
109
  relatedResource: {
113
110
  title: createDefaultBinding('metadata.title', ''),
114
- doi: createDefaultBinding('metadata.doi', '')
111
+ doi: createDefaultBinding('metadata.doi', ''),
115
112
  },
116
- customFields: []
113
+ customFields: [],
117
114
  };
118
115
  categories = {
119
- strategy: 'for2020Mapping',
120
116
  mappingTable: [],
121
- allowUnmapped: false
117
+ allowUnmapped: false,
122
118
  };
123
119
  assets = {
124
120
  enableHostedFiles: true,
125
121
  enableLinkFiles: true,
126
- dedupeStrategy: 'sourceId',
127
122
  staging: {
128
- tempDir: '',
123
+ disk: 'figshare-staging',
124
+ keyPrefix: 'figshare/',
129
125
  cleanupPolicy: 'deleteAfterSuccess',
130
- diskSpaceThresholdBytes: 1073741824
131
- }
126
+ },
132
127
  };
133
128
  embargo = {
134
129
  mode: 'recordDriven',
@@ -136,16 +131,14 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
136
131
  accessRights: {
137
132
  accessRights: createDefaultBinding('metadata.accessRights', ''),
138
133
  fullEmbargoUntil: createDefaultBinding('metadata.embargoUntil'),
139
- fileEmbargoUntil: createDefaultBinding('metadata.embargoUntil'),
140
- reason: createDefaultBinding('metadata.embargoReason')
141
- }
134
+ reason: createDefaultBinding('metadata.embargoReason'),
135
+ },
142
136
  };
143
137
  queue = {
144
138
  publishAfterUploadDelay: 'in 2 minutes',
145
- uploadedFilesCleanupDelay: 'in 5 minutes'
139
+ uploadedFilesCleanupDelay: 'in 5 minutes',
146
140
  };
147
141
  workflow = {
148
- transitionRules: [],
149
142
  transitionJob: {
150
143
  enabled: false,
151
144
  namedQuery: '',
@@ -154,13 +147,13 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
154
147
  figshareTargetFieldKey: '',
155
148
  figshareTargetFieldValue: '',
156
149
  username: '',
157
- userType: ''
158
- }
150
+ userType: '',
151
+ },
159
152
  };
160
153
  writeBack = {
161
154
  articleId: 'metadata.figshare_article_id',
162
155
  articleUrls: ['metadata.figshare_article_location'],
163
- extraFields: []
156
+ extraFields: [],
164
157
  };
165
158
  static getFieldOrder() {
166
159
  return [
@@ -176,53 +169,89 @@ class FigsharePublishing extends AppConfig_interface_1.AppConfig {
176
169
  'embargo',
177
170
  'queue',
178
171
  'workflow',
179
- 'writeBack'
172
+ 'writeBack',
180
173
  ];
181
174
  }
182
175
  }
183
176
  exports.FigsharePublishing = FigsharePublishing;
184
- const VALUE_BINDING_EDITOR_WIDGET = {
185
- widget: {
186
- formlyConfig: {
187
- type: 'value-binding-editor'
188
- }
189
- }
190
- };
191
177
  const CATEGORY_MAPPING_EDITOR_WIDGET = {
192
178
  widget: {
193
179
  formlyConfig: {
194
- type: 'figshare-category-mapping-editor'
195
- }
196
- }
180
+ type: 'figshare-category-mapping-editor',
181
+ },
182
+ },
183
+ };
184
+ const SIMPLE_BINDING_PROPERTIES = {
185
+ kind: {
186
+ type: 'string',
187
+ title: 'Binding Type',
188
+ enum: ['path', 'handlebars', 'jsonata'],
189
+ default: 'path',
190
+ },
191
+ path: {
192
+ type: 'string',
193
+ title: 'Record Path',
194
+ },
195
+ template: {
196
+ type: 'string',
197
+ title: 'Handlebars Template',
198
+ },
199
+ expression: {
200
+ type: 'string',
201
+ title: 'JSONata Expression',
202
+ },
203
+ defaultValue: {
204
+ title: 'Default Value',
205
+ },
206
+ };
207
+ /**
208
+ * The inner source of a crosswalk binding. Deliberately excludes the `crosswalk`
209
+ * kind so a crosswalk can never nest another crosswalk, and carries no widget of
210
+ * its own: the parent value-binding-editor renders it inline.
211
+ */
212
+ const SIMPLE_VALUE_BINDING_SCHEMA = {
213
+ type: 'object',
214
+ title: 'Source Binding',
215
+ properties: SIMPLE_BINDING_PROPERTIES,
216
+ required: ['kind'],
197
217
  };
198
218
  const VALUE_BINDING_SCHEMA = {
199
219
  type: 'object',
200
220
  title: 'Binding',
201
221
  properties: {
222
+ ...SIMPLE_BINDING_PROPERTIES,
202
223
  kind: {
203
- type: 'string',
204
- title: 'Binding Type',
205
- enum: ['path', 'handlebars', 'jsonata'],
206
- default: 'path'
224
+ ...SIMPLE_BINDING_PROPERTIES.kind,
225
+ enum: ['path', 'handlebars', 'jsonata', 'crosswalk'],
207
226
  },
208
- path: {
227
+ source: SIMPLE_VALUE_BINDING_SCHEMA,
228
+ sourceVocabularyId: {
209
229
  type: 'string',
210
- title: 'Record Path'
230
+ title: 'Source Vocabulary',
231
+ description: 'Crosswalk kind only. Record codes are resolved against entries of exactly this vocabulary.',
211
232
  },
212
- template: {
233
+ crosswalkId: {
213
234
  type: 'string',
214
- title: 'Handlebars Template'
235
+ title: 'Approved Figshare Crosswalk',
236
+ description: 'Crosswalk kind only. Publishing always reads the approved revision.',
215
237
  },
216
- expression: {
238
+ outputs: {
217
239
  type: 'string',
218
- title: 'JSONata Expression'
240
+ title: 'Output',
241
+ description: 'What each resolved mapping emits. The Categories binding must use categoryId; label and sourceId produce strings for fields such as keywords or custom fields.',
242
+ enum: ['categoryId', 'label', 'sourceId'],
243
+ default: 'categoryId',
219
244
  },
220
- defaultValue: {
221
- title: 'Default Value'
222
- }
223
245
  },
224
246
  required: ['kind'],
225
- ...VALUE_BINDING_EDITOR_WIDGET
247
+ // `allowCrosswalk` gates the crosswalk kind in the shared editor. DOI publishing
248
+ // has its own copy of this schema without the flag, so it never offers the kind.
249
+ widget: {
250
+ formlyConfig: {
251
+ type: 'value-binding-editor',
252
+ props: { allowCrosswalk: true },
253
+ },
254
+ },
226
255
  };
227
256
  exports.FIGSHARE_PUBLISHING_SCHEMA = {
228
257
  type: 'object',
@@ -230,7 +259,7 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
230
259
  enabled: {
231
260
  type: 'boolean',
232
261
  title: 'Enabled',
233
- default: false
262
+ default: false,
234
263
  },
235
264
  connection: {
236
265
  type: 'object',
@@ -241,7 +270,7 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
241
270
  token: {
242
271
  type: 'string',
243
272
  title: 'API Token',
244
- description: 'Do not commit raw API tokens. Prefer an environment variable reference such as $FIGSHARE_TOKEN or the deployment secret manager.'
273
+ description: 'Do not commit raw API tokens. Prefer an environment variable reference such as $FIGSHARE_TOKEN or the deployment secret manager.',
245
274
  },
246
275
  timeoutMs: { type: 'integer', title: 'Request Timeout (ms)', default: 30000 },
247
276
  operationTimeouts: {
@@ -251,8 +280,8 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
251
280
  metadataMs: { type: 'integer', title: 'Metadata Timeout (ms)', default: 30000 },
252
281
  uploadInitMs: { type: 'integer', title: 'Upload Init Timeout (ms)', default: 30000 },
253
282
  uploadPartMs: { type: 'integer', title: 'Upload Part Timeout (ms)', default: 120000 },
254
- publishMs: { type: 'integer', title: 'Publish Timeout (ms)', default: 60000 }
255
- }
283
+ publishMs: { type: 'integer', title: 'Publish Timeout (ms)', default: 60000 },
284
+ },
256
285
  },
257
286
  retry: {
258
287
  type: 'object',
@@ -265,17 +294,17 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
265
294
  type: 'array',
266
295
  title: 'Retry On Status Codes',
267
296
  items: { type: 'integer' },
268
- default: [408, 429, 500, 502, 503, 504]
297
+ default: [408, 429, 500, 502, 503, 504],
269
298
  },
270
299
  retryOnMethods: {
271
300
  type: 'array',
272
301
  title: 'Retry On Methods',
273
302
  items: { type: 'string' },
274
- default: ['get', 'put', 'delete']
275
- }
276
- }
277
- }
278
- }
303
+ default: ['get', 'put', 'delete'],
304
+ },
305
+ },
306
+ },
307
+ },
279
308
  },
280
309
  article: {
281
310
  type: 'object',
@@ -284,15 +313,26 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
284
313
  itemType: {
285
314
  type: 'string',
286
315
  title: 'Item Type',
287
- enum: ['dataset', 'fileset', 'figure', 'media', 'poster', 'paper', 'presentation', 'thesis', 'code', 'metadata'],
288
- default: 'dataset'
316
+ enum: [
317
+ 'dataset',
318
+ 'fileset',
319
+ 'figure',
320
+ 'media',
321
+ 'poster',
322
+ 'paper',
323
+ 'presentation',
324
+ 'thesis',
325
+ 'code',
326
+ 'metadata',
327
+ ],
328
+ default: 'dataset',
289
329
  },
290
330
  groupId: { type: 'integer', title: 'Group ID' },
291
331
  publishMode: {
292
332
  type: 'string',
293
333
  title: 'Publish Mode',
294
334
  enum: ['immediate', 'afterUploadsComplete', 'manual'],
295
- default: 'afterUploadsComplete'
335
+ default: 'afterUploadsComplete',
296
336
  },
297
337
  republishOnMetadataChange: { type: 'boolean', title: 'Republish On Metadata Change', default: true },
298
338
  republishOnAssetChange: { type: 'boolean', title: 'Republish On Asset Change', default: true },
@@ -302,28 +342,22 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
302
342
  properties: {
303
343
  enabled: { type: 'boolean', title: 'Enabled', default: false },
304
344
  statusField: { type: 'string', title: 'Status Field', default: '' },
305
- targetValue: { type: 'string', title: 'Target Value', default: 'public' }
306
- }
307
- }
308
- }
345
+ targetValue: { type: 'string', title: 'Target Value', default: 'public' },
346
+ },
347
+ },
348
+ },
309
349
  },
310
350
  record: {
311
351
  type: 'object',
312
352
  title: 'Record',
313
353
  properties: {
314
354
  articleIdPath: { type: 'string', title: 'Article ID Path', default: 'metadata.figshare_article_id' },
315
- articleUrlPaths: {
316
- type: 'array',
317
- title: 'Article URL Paths',
318
- items: { type: 'string' },
319
- default: ['metadata.figshare_article_location']
320
- },
321
355
  dataLocationsPath: { type: 'string', title: 'Data Locations Path', default: 'metadata.dataLocations' },
322
356
  statusPath: { type: 'string', title: 'Status Path', default: 'metadata.figshareStatus' },
323
357
  errorPath: { type: 'string', title: 'Error Path', default: 'metadata.figshareError' },
324
358
  syncStatePath: { type: 'string', title: 'Sync State Path', default: 'metadata.figshareSyncState' },
325
- allFilesUploadedPath: { type: 'string', title: 'All Files Uploaded Path', default: '' }
326
- }
359
+ allFilesUploadedPath: { type: 'string', title: 'All Files Uploaded Path', default: '' },
360
+ },
327
361
  },
328
362
  selection: {
329
363
  type: 'object',
@@ -333,32 +367,26 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
333
367
  type: 'string',
334
368
  title: 'Attachment Mode',
335
369
  enum: ['selectedOnly', 'all'],
336
- default: 'selectedOnly'
370
+ default: 'selectedOnly',
337
371
  },
338
372
  urlMode: {
339
373
  type: 'string',
340
374
  title: 'URL Mode',
341
375
  enum: ['selectedOnly', 'all'],
342
- default: 'selectedOnly'
376
+ default: 'selectedOnly',
343
377
  },
344
- selectedFlagPath: { type: 'string', title: 'Selected Flag Path', default: 'selected' }
345
- }
378
+ selectedFlagPath: { type: 'string', title: 'Selected Flag Path', default: 'selected' },
379
+ },
346
380
  },
347
381
  authors: {
348
382
  type: 'object',
349
383
  title: 'Authors',
350
384
  properties: {
351
- source: {
352
- type: 'string',
353
- title: 'Source Strategy',
354
- enum: ['defaultRedboxContributors'],
355
- default: 'defaultRedboxContributors'
356
- },
357
385
  uniqueBy: {
358
386
  type: 'string',
359
387
  title: 'Unique By',
360
388
  enum: ['email', 'orcid', 'username', 'none'],
361
- default: 'email'
389
+ default: 'email',
362
390
  },
363
391
  externalNameField: { type: 'string', title: 'External Name Field', default: 'text_full_name' },
364
392
  maxInlineAuthors: { type: 'integer', title: 'Max Inline Authors', default: 50 },
@@ -371,11 +399,11 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
371
399
  matchBy: {
372
400
  type: 'string',
373
401
  title: 'Match By',
374
- enum: ['email', 'orcid', 'username']
402
+ enum: ['email', 'orcid', 'username'],
375
403
  },
376
- value: VALUE_BINDING_SCHEMA
377
- }
378
- }
404
+ value: VALUE_BINDING_SCHEMA,
405
+ },
406
+ },
379
407
  },
380
408
  contributorPaths: {
381
409
  type: 'array',
@@ -386,18 +414,18 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
386
414
  'metadata.contributor_data_manager',
387
415
  'metadata.dataOwner',
388
416
  'metadata.chiefInvestigator',
389
- 'metadata.contributors'
390
- ]
417
+ 'metadata.contributors',
418
+ ],
391
419
  },
392
420
  emailTransform: {
393
421
  type: 'object',
394
422
  title: 'Email Transform',
395
423
  properties: {
396
424
  prefix: { type: 'string', title: 'Prefix', default: '' },
397
- domainOverride: { type: 'string', title: 'Domain Override', default: '' }
398
- }
399
- }
400
- }
425
+ domainOverride: { type: 'string', title: 'Domain Override', default: '' },
426
+ },
427
+ },
428
+ },
401
429
  },
402
430
  metadata: {
403
431
  type: 'object',
@@ -416,31 +444,25 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
416
444
  type: 'string',
417
445
  title: 'Match By',
418
446
  enum: ['urlContains', 'nameExact', 'valueExact'],
419
- default: 'urlContains'
447
+ default: 'urlContains',
420
448
  },
421
- required: { type: 'boolean', title: 'Required', default: true }
422
- }
449
+ required: { type: 'boolean', title: 'Required', default: true },
450
+ },
423
451
  },
424
452
  categories: {
425
453
  type: 'object',
426
454
  title: 'Categories Binding',
427
455
  properties: {
428
456
  source: VALUE_BINDING_SCHEMA,
429
- mappingStrategy: {
430
- type: 'string',
431
- title: 'Mapping Strategy',
432
- enum: ['for2020Mapping'],
433
- default: 'for2020Mapping'
434
- }
435
- }
457
+ },
436
458
  },
437
459
  relatedResource: {
438
460
  type: 'object',
439
461
  title: 'Related Resource',
440
462
  properties: {
441
463
  title: VALUE_BINDING_SCHEMA,
442
- doi: VALUE_BINDING_SCHEMA
443
- }
464
+ doi: VALUE_BINDING_SCHEMA,
465
+ },
444
466
  },
445
467
  customFields: {
446
468
  type: 'array',
@@ -459,44 +481,39 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
459
481
  type: {
460
482
  type: 'string',
461
483
  title: 'Type',
462
- enum: ['maxLength', 'url', 'doi', 'required']
484
+ enum: ['maxLength', 'url', 'doi', 'required'],
463
485
  },
464
486
  value: {
465
487
  type: 'integer',
466
- title: 'Value'
467
- }
468
- }
469
- }
470
- }
471
- }
472
- }
473
- }
474
- }
488
+ title: 'Value',
489
+ },
490
+ },
491
+ },
492
+ },
493
+ },
494
+ },
495
+ },
496
+ },
475
497
  },
476
498
  categories: {
477
499
  type: 'object',
478
500
  title: 'Categories',
479
501
  properties: {
480
- strategy: {
481
- type: 'string',
482
- title: 'Strategy',
483
- enum: ['for2020Mapping'],
484
- default: 'for2020Mapping'
485
- },
486
502
  mappingTable: {
487
503
  type: 'array',
488
504
  title: 'Mapping Table',
505
+ description: 'Used only when the Categories binding is not a crosswalk binding. Each row maps a record category code to a Figshare category ID.',
489
506
  items: {
490
507
  type: 'object',
491
508
  properties: {
492
509
  sourceCode: { type: 'string', title: 'Source Code' },
493
- figshareCategoryId: { type: 'integer', title: 'Figshare Category ID' }
494
- }
510
+ figshareCategoryId: { type: 'integer', title: 'Figshare Category ID' },
511
+ },
495
512
  },
496
- ...CATEGORY_MAPPING_EDITOR_WIDGET
513
+ ...CATEGORY_MAPPING_EDITOR_WIDGET,
497
514
  },
498
- allowUnmapped: { type: 'boolean', title: 'Allow Unmapped Categories', default: false }
499
- }
515
+ allowUnmapped: { type: 'boolean', title: 'Allow Unmapped Categories', default: false },
516
+ },
500
517
  },
501
518
  assets: {
502
519
  type: 'object',
@@ -504,27 +521,21 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
504
521
  properties: {
505
522
  enableHostedFiles: { type: 'boolean', title: 'Enable Hosted Files', default: true },
506
523
  enableLinkFiles: { type: 'boolean', title: 'Enable Link Files', default: true },
507
- dedupeStrategy: {
508
- type: 'string',
509
- title: 'Dedupe Strategy',
510
- enum: ['sourceId', 'nameAndMd5', 'url'],
511
- default: 'sourceId'
512
- },
513
524
  staging: {
514
525
  type: 'object',
515
526
  title: 'Staging',
516
527
  properties: {
517
- tempDir: { type: 'string', title: 'Temp Directory' },
528
+ disk: { type: 'string', title: 'Storage Disk', default: 'figshare-staging' },
529
+ keyPrefix: { type: 'string', title: 'Storage Key Prefix', default: 'figshare/' },
518
530
  cleanupPolicy: {
519
531
  type: 'string',
520
532
  title: 'Cleanup Policy',
521
533
  enum: ['deleteAfterSuccess', 'retainForRetry'],
522
- default: 'deleteAfterSuccess'
534
+ default: 'deleteAfterSuccess',
523
535
  },
524
- diskSpaceThresholdBytes: { type: 'integer', title: 'Disk Space Threshold Bytes', default: 1073741824 }
525
- }
526
- }
527
- }
536
+ },
537
+ },
538
+ },
528
539
  },
529
540
  embargo: {
530
541
  type: 'object',
@@ -534,7 +545,7 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
534
545
  type: 'string',
535
546
  title: 'Mode',
536
547
  enum: ['none', 'recordDriven'],
537
- default: 'recordDriven'
548
+ default: 'recordDriven',
538
549
  },
539
550
  forceSync: { type: 'boolean', title: 'Force Sync', default: false },
540
551
  accessRights: {
@@ -543,43 +554,23 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
543
554
  properties: {
544
555
  accessRights: VALUE_BINDING_SCHEMA,
545
556
  fullEmbargoUntil: VALUE_BINDING_SCHEMA,
546
- fileEmbargoUntil: VALUE_BINDING_SCHEMA,
547
- reason: VALUE_BINDING_SCHEMA
548
- }
549
- }
550
- }
557
+ reason: VALUE_BINDING_SCHEMA,
558
+ },
559
+ },
560
+ },
551
561
  },
552
562
  queue: {
553
563
  type: 'object',
554
564
  title: 'Queue',
555
565
  properties: {
556
566
  publishAfterUploadDelay: { type: 'string', title: 'Publish After Upload Delay', default: 'in 2 minutes' },
557
- uploadedFilesCleanupDelay: { type: 'string', title: 'Uploaded Files Cleanup Delay', default: 'in 5 minutes' }
558
- }
567
+ uploadedFilesCleanupDelay: { type: 'string', title: 'Uploaded Files Cleanup Delay', default: 'in 5 minutes' },
568
+ },
559
569
  },
560
570
  workflow: {
561
571
  type: 'object',
562
572
  title: 'Workflow',
563
573
  properties: {
564
- transitionRules: {
565
- type: 'array',
566
- title: 'Transition Rules',
567
- items: {
568
- type: 'object',
569
- properties: {
570
- when: {
571
- type: 'string',
572
- title: 'When',
573
- enum: ['published', 'republished', 'embargoUpdated', 'awaitingUploadCompletion']
574
- },
575
- targetWorkflowStageName: { type: 'string', title: 'Target Workflow Stage Name' },
576
- targetWorkflowStageLabel: { type: 'string', title: 'Target Workflow Stage Label' },
577
- targetForm: { type: 'string', title: 'Target Form' },
578
- ifArticleField: { type: 'string', title: 'Article Field' },
579
- equals: { title: 'Equals' }
580
- }
581
- }
582
- },
583
574
  transitionJob: {
584
575
  type: 'object',
585
576
  title: 'Transition Job',
@@ -591,10 +582,10 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
591
582
  figshareTargetFieldKey: { type: 'string', title: 'Figshare Target Field Key', default: '' },
592
583
  figshareTargetFieldValue: { type: 'string', title: 'Figshare Target Field Value', default: '' },
593
584
  username: { type: 'string', title: 'Username', default: '' },
594
- userType: { type: 'string', title: 'User Type', default: '' }
595
- }
596
- }
597
- }
585
+ userType: { type: 'string', title: 'User Type', default: '' },
586
+ },
587
+ },
588
+ },
598
589
  },
599
590
  writeBack: {
600
591
  type: 'object',
@@ -605,7 +596,7 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
605
596
  type: 'array',
606
597
  title: 'Article URL Target Paths',
607
598
  items: { type: 'string' },
608
- default: ['metadata.figshare_article_location']
599
+ default: ['metadata.figshare_article_location'],
609
600
  },
610
601
  extraFields: {
611
602
  type: 'array',
@@ -616,15 +607,15 @@ exports.FIGSHARE_PUBLISHING_SCHEMA = {
616
607
  from: {
617
608
  type: 'string',
618
609
  title: 'From',
619
- enum: ['article', 'publishResult', 'assetSyncResult']
610
+ enum: ['article', 'publishResult', 'assetSyncResult'],
620
611
  },
621
612
  sourcePath: { type: 'string', title: 'Source Path' },
622
- targetPath: { type: 'string', title: 'Target Path' }
623
- }
624
- }
625
- }
626
- }
627
- }
628
- }
613
+ targetPath: { type: 'string', title: 'Target Path' },
614
+ },
615
+ },
616
+ },
617
+ },
618
+ },
619
+ },
629
620
  };
630
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlnc2hhcmVQdWJsaXNoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZ21vZGVscy9GaWdzaGFyZVB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEhBLHdFQWNDO0FBeElELCtEQUFrRDtBQTBIbEQsU0FBZ0IsOEJBQThCLENBQUMsS0FBYSxFQUFFLFVBQW9DLEVBQUU7SUFDbEcsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsVUFBVSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWlHRCxTQUFTLG9CQUFvQixDQUFDLElBQVksRUFBRSxZQUFzQjtJQUNoRSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJO1FBQ0osWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSwrQkFBUztJQUMvQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhCLFVBQVUsR0FBNkI7UUFDckMsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsRUFBRTtRQUNmLEtBQUssRUFBRSxFQUFFO1FBQ1QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsaUJBQWlCLEVBQUU7WUFDakIsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsWUFBWSxFQUFFLE1BQU07WUFDcEIsU0FBUyxFQUFFLEtBQUs7U0FDakI7UUFDRCxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsQ0FBQztZQUNkLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGtCQUFrQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDbEQsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7U0FDekM7S0FDRixDQUFDO0lBRUYsT0FBTyxHQUFHO1FBQ1IsUUFBUSxFQUFFLFNBQW9DO1FBQzlDLE9BQU8sRUFBRSxTQUErQjtRQUN4QyxXQUFXLEVBQUUsc0JBQXlFO1FBQ3RGLHlCQUF5QixFQUFFLElBQUk7UUFDL0Isc0JBQXNCLEVBQUUsSUFBSTtRQUM1QixZQUFZLEVBQUU7WUFDWixPQUFPLEVBQUUsS0FBSztZQUNkLFdBQVcsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLFFBQVE7U0FDdEI7S0FDRixDQUFDO0lBRUYsTUFBTSxHQUFHO1FBQ1AsYUFBYSxFQUFFLDhCQUE4QjtRQUM3QyxlQUFlLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztRQUN2RCxpQkFBaUIsRUFBRSx3QkFBd0I7UUFDM0MsVUFBVSxFQUFFLHlCQUF5QjtRQUNyQyxTQUFTLEVBQUUsd0JBQXdCO1FBQ25DLGFBQWEsRUFBRSw0QkFBNEI7UUFDM0Msb0JBQW9CLEVBQUUsRUFBRTtLQUN6QixDQUFDO0lBRUYsU0FBUyxHQUFHO1FBQ1YsY0FBYyxFQUFFLGNBQXdDO1FBQ3hELE9BQU8sRUFBRSxjQUF3QztRQUNqRCxnQkFBZ0IsRUFBRSxVQUFVO0tBQzdCLENBQUM7SUFFRixPQUFPLEdBQUc7UUFDUixNQUFNLEVBQUUsMkJBQW9DO1FBQzVDLGdCQUFnQixFQUFFO1lBQ2hCLHlCQUF5QjtZQUN6QixtQ0FBbUM7WUFDbkMsb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1Qix1QkFBdUI7U0FDeEI7UUFDRCxRQUFRLEVBQUUsT0FBa0Q7UUFDNUQsaUJBQWlCLEVBQUUsZ0JBQWdCO1FBQ25DLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsY0FBYyxFQUFFO1lBQ2QsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsRUFBRTtTQUNuQjtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxPQUFnQjtnQkFDekIsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQzthQUNyQztTQUNGO0tBQ0YsQ0FBQztJQUVGLFFBQVEsR0FBRztRQUNULEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7UUFDakQsV0FBVyxFQUFFLG9CQUFvQixDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztRQUM3RCxRQUFRLEVBQUUsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO1FBQzVELE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO1lBQ2hELE9BQU8sRUFBRSxhQUEyRDtZQUNwRSxRQUFRLEVBQUUsSUFBSTtTQUNmO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsTUFBTSxFQUFFLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztZQUNyRCxlQUFlLEVBQUUsZ0JBQXlCO1NBQzNDO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsS0FBSyxFQUFFLG9CQUFvQixDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUNqRCxHQUFHLEVBQUUsb0JBQW9CLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztTQUM5QztRQUNELFlBQVksRUFBRSxFQUFFO0tBQ2pCLENBQUM7SUFFRixVQUFVLEdBQUc7UUFDWCxRQUFRLEVBQUUsZ0JBQXlCO1FBQ25DLFlBQVksRUFBRSxFQUErRDtRQUM3RSxhQUFhLEVBQUUsS0FBSztLQUNyQixDQUFDO0lBRUYsTUFBTSxHQUFHO1FBQ1AsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixlQUFlLEVBQUUsSUFBSTtRQUNyQixjQUFjLEVBQUUsVUFBK0M7UUFDL0QsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsb0JBQStEO1lBQzlFLHVCQUF1QixFQUFFLFVBQVU7U0FDcEM7S0FDRixDQUFDO0lBRUYsT0FBTyxHQUFHO1FBQ1IsSUFBSSxFQUFFLGNBQXlDO1FBQy9DLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFlBQVksRUFBRTtZQUNaLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7WUFDL0QsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7WUFDL0QsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsdUJBQXVCLENBQUM7WUFDL0QsTUFBTSxFQUFFLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDO1NBQ3ZEO0tBQ0YsQ0FBQztJQUVGLEtBQUssR0FBRztRQUNOLHVCQUF1QixFQUFFLGNBQWM7UUFDdkMseUJBQXlCLEVBQUUsY0FBYztLQUMxQyxDQUFDO0lBRUYsUUFBUSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEVBQThCO1FBQy9DLGFBQWEsRUFBRTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsVUFBVSxFQUFFLEVBQUU7WUFDZCxVQUFVLEVBQUUsRUFBRTtZQUNkLFFBQVEsRUFBRSxFQUE2QjtZQUN2QyxzQkFBc0IsRUFBRSxFQUFFO1lBQzFCLHdCQUF3QixFQUFFLEVBQUU7WUFDNUIsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiO0tBQ0YsQ0FBQztJQUVGLFNBQVMsR0FBRztRQUNWLFNBQVMsRUFBRSw4QkFBOEI7UUFDekMsV0FBVyxFQUFFLENBQUMsb0NBQW9DLENBQUM7UUFDbkQsV0FBVyxFQUFFLEVBQXdCO0tBQ3RDLENBQUM7SUFFSyxNQUFNLENBQUMsYUFBYTtRQUN6QixPQUFPO1lBQ0wsU0FBUztZQUNULFlBQVk7WUFDWixTQUFTO1lBQ1QsUUFBUTtZQUNSLFdBQVc7WUFDWCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFlBQVk7WUFDWixRQUFRO1lBQ1IsU0FBUztZQUNULE9BQU87WUFDUCxVQUFVO1lBQ1YsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2S0QsZ0RBdUtDO0FBRUQsTUFBTSwyQkFBMkIsR0FBRztJQUNsQyxNQUFNLEVBQUU7UUFDTixZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsc0JBQXNCO1NBQzdCO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSw4QkFBOEIsR0FBRztJQUNyQyxNQUFNLEVBQUU7UUFDTixZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsa0NBQWtDO1NBQ3pDO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLGNBQWM7WUFDckIsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7WUFDdkMsT0FBTyxFQUFFLE1BQU07U0FDaEI7UUFDRCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxhQUFhO1NBQ3JCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUscUJBQXFCO1NBQzdCO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsb0JBQW9CO1NBQzVCO1FBQ0QsWUFBWSxFQUFFO1lBQ1osS0FBSyxFQUFFLGVBQWU7U0FDdkI7S0FDRjtJQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUNsQixHQUFHLDJCQUEyQjtDQUMvQixDQUFDO0FBRVcsUUFBQSwwQkFBMEIsR0FBRztJQUN4QyxJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRTtRQUNWLE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZjtRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFlBQVk7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDOUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dCQUN2RCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLFdBQVcsRUFBRSxrSUFBa0k7aUJBQ2hKO2dCQUNELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7Z0JBQzdFLGlCQUFpQixFQUFFO29CQUNqQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsb0JBQW9CO29CQUMzQixVQUFVLEVBQUU7d0JBQ1YsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTt3QkFDL0UsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTt3QkFDcEYsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTt3QkFDckYsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtxQkFDOUU7aUJBQ0Y7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxjQUFjO29CQUNyQixVQUFVLEVBQUU7d0JBQ1YsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7d0JBQ25FLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7d0JBQ3hFLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7d0JBQ3ZFLGtCQUFrQixFQUFFOzRCQUNsQixJQUFJLEVBQUUsT0FBTzs0QkFDYixLQUFLLEVBQUUsdUJBQXVCOzRCQUM5QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFOzRCQUMxQixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQzt5QkFDeEM7d0JBQ0QsY0FBYyxFQUFFOzRCQUNkLElBQUksRUFBRSxPQUFPOzRCQUNiLEtBQUssRUFBRSxrQkFBa0I7NEJBQ3pCLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ3pCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDO3lCQUNsQztxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztvQkFDaEgsT0FBTyxFQUFFLFNBQVM7aUJBQ25CO2dCQUNELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFDL0MsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxjQUFjO29CQUNyQixJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxDQUFDO29CQUNyRCxPQUFPLEVBQUUsc0JBQXNCO2lCQUNoQztnQkFDRCx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Z0JBQ3BHLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtnQkFDOUYsWUFBWSxFQUFFO29CQUNaLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxlQUFlO29CQUN0QixVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7d0JBQzlELFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO3dCQUNuRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtxQkFDMUU7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRTtnQkFDVixhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUU7Z0JBQ3BHLGVBQWUsRUFBRTtvQkFDZixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsbUJBQW1CO29CQUMxQixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDaEQ7Z0JBQ0QsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7Z0JBQ3RHLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7Z0JBQ3hGLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7Z0JBQ3JGLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRTtnQkFDbEcsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO2FBQ3hGO1NBQ0Y7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxXQUFXO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixjQUFjLEVBQUU7b0JBQ2QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLGlCQUFpQjtvQkFDeEIsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQztvQkFDN0IsT0FBTyxFQUFFLGNBQWM7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsVUFBVTtvQkFDakIsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQztvQkFDN0IsT0FBTyxFQUFFLGNBQWM7aUJBQ3hCO2dCQUNELGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTthQUN2RjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxpQkFBaUI7b0JBQ3hCLElBQUksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsMkJBQTJCO2lCQUNyQztnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztvQkFDNUMsT0FBTyxFQUFFLE9BQU87aUJBQ2pCO2dCQUNELGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFO2dCQUM5RixnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7Z0JBQy9FLE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsY0FBYztvQkFDckIsS0FBSyxFQUFFO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLFVBQVUsRUFBRTs0QkFDVixPQUFPLEVBQUU7Z0NBQ1AsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsS0FBSyxFQUFFLFVBQVU7Z0NBQ2pCLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDOzZCQUNyQzs0QkFDRCxLQUFLLEVBQUUsb0JBQW9CO3lCQUM1QjtxQkFDRjtpQkFDRjtnQkFDRCxnQkFBZ0IsRUFBRTtvQkFDaEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLG1CQUFtQjtvQkFDMUIsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtvQkFDekIsT0FBTyxFQUFFO3dCQUNQLHlCQUF5Qjt3QkFDekIsbUNBQW1DO3dCQUNuQyxvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3FCQUN4QjtpQkFDRjtnQkFDRCxjQUFjLEVBQUU7b0JBQ2QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLGlCQUFpQjtvQkFDeEIsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO3dCQUN4RCxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO3FCQUMxRTtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsb0JBQW9CO2dCQUMzQixXQUFXLEVBQUUsb0JBQW9CO2dCQUNqQyxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLFVBQVUsRUFBRTt3QkFDVixNQUFNLEVBQUUsb0JBQW9CO3dCQUM1QixPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLFVBQVU7NEJBQ2pCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDOzRCQUNoRCxPQUFPLEVBQUUsYUFBYTt5QkFDdkI7d0JBQ0QsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7cUJBQ2hFO2lCQUNGO2dCQUNELFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsb0JBQW9CO29CQUMzQixVQUFVLEVBQUU7d0JBQ1YsTUFBTSxFQUFFLG9CQUFvQjt3QkFDNUIsZUFBZSxFQUFFOzRCQUNmLElBQUksRUFBRSxRQUFROzRCQUNkLEtBQUssRUFBRSxrQkFBa0I7NEJBQ3pCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDOzRCQUN4QixPQUFPLEVBQUUsZ0JBQWdCO3lCQUMxQjtxQkFDRjtpQkFDRjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2YsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLGtCQUFrQjtvQkFDekIsVUFBVSxFQUFFO3dCQUNWLEtBQUssRUFBRSxvQkFBb0I7d0JBQzNCLEdBQUcsRUFBRSxvQkFBb0I7cUJBQzFCO2lCQUNGO2dCQUNELFlBQVksRUFBRTtvQkFDWixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsZUFBZTtvQkFDdEIsS0FBSyxFQUFFO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLFVBQVUsRUFBRTs0QkFDVixhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTs0QkFDMUQsS0FBSyxFQUFFLG9CQUFvQjs0QkFDM0IsV0FBVyxFQUFFO2dDQUNYLElBQUksRUFBRSxPQUFPO2dDQUNiLEtBQUssRUFBRSxhQUFhO2dDQUNwQixLQUFLLEVBQUU7b0NBQ0wsSUFBSSxFQUFFLFFBQVE7b0NBQ2QsVUFBVSxFQUFFO3dDQUNWLElBQUksRUFBRTs0Q0FDSixJQUFJLEVBQUUsUUFBUTs0Q0FDZCxLQUFLLEVBQUUsTUFBTTs0Q0FDYixJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUM7eUNBQzlDO3dDQUNELEtBQUssRUFBRTs0Q0FDTCxJQUFJLEVBQUUsU0FBUzs0Q0FDZixLQUFLLEVBQUUsT0FBTzt5Q0FDZjtxQ0FDRjtpQ0FDRjs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxZQUFZO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUN4QixPQUFPLEVBQUUsZ0JBQWdCO2lCQUMxQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLGVBQWU7b0JBQ3RCLEtBQUssRUFBRTt3QkFDTCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxVQUFVLEVBQUU7NEJBQ1YsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzRCQUNwRCxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO3lCQUN2RTtxQkFDRjtvQkFDRCxHQUFHLDhCQUE4QjtpQkFDbEM7Z0JBQ0QsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTthQUN2RjtTQUNGO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRTtnQkFDVixpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Z0JBQ25GLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7Z0JBQy9FLGNBQWMsRUFBRTtvQkFDZCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsaUJBQWlCO29CQUN4QixJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQztvQkFDdkMsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsU0FBUztvQkFDaEIsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO3dCQUNwRCxhQUFhLEVBQUU7NEJBQ2IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLGdCQUFnQjs0QkFDdkIsSUFBSSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLE9BQU8sRUFBRSxvQkFBb0I7eUJBQzlCO3dCQUNELHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtxQkFDdkc7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxjQUFjO2lCQUN4QjtnQkFDRCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtnQkFDbkUsWUFBWSxFQUFFO29CQUNaLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSx1QkFBdUI7b0JBQzlCLFVBQVUsRUFBRTt3QkFDVixZQUFZLEVBQUUsb0JBQW9CO3dCQUNsQyxnQkFBZ0IsRUFBRSxvQkFBb0I7d0JBQ3RDLGdCQUFnQixFQUFFLG9CQUFvQjt3QkFDdEMsTUFBTSxFQUFFLG9CQUFvQjtxQkFDN0I7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsT0FBTztZQUNkLFVBQVUsRUFBRTtnQkFDVix1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUU7Z0JBQ3pHLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRTthQUM5RztTQUNGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFO29CQUNmLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxrQkFBa0I7b0JBQ3pCLEtBQUssRUFBRTt3QkFDTCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFO2dDQUNKLElBQUksRUFBRSxRQUFRO2dDQUNkLEtBQUssRUFBRSxNQUFNO2dDQUNiLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQTBCLENBQUM7NkJBQ2pGOzRCQUNELHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsNEJBQTRCLEVBQUU7NEJBQ2hGLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsNkJBQTZCLEVBQUU7NEJBQ2xGLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs0QkFDcEQsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFOzRCQUMxRCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO3lCQUM1QjtxQkFDRjtpQkFDRjtnQkFDRCxhQUFhLEVBQUU7b0JBQ2IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLGdCQUFnQjtvQkFDdkIsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO3dCQUM5RCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTt3QkFDakUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7d0JBQ2pFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO3dCQUNqRSxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7d0JBQzNGLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTt3QkFDL0YsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7d0JBQzVELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO3FCQUM5RDtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxTQUFTLEVBQUU7WUFDVCxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxZQUFZO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUU7Z0JBQ3ZHLFdBQVcsRUFBRTtvQkFDWCxJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsMEJBQTBCO29CQUNqQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDaEQ7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxjQUFjO29CQUNyQixLQUFLLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsVUFBVSxFQUFFOzRCQUNWLElBQUksRUFBRTtnQ0FDSixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxLQUFLLEVBQUUsTUFBTTtnQ0FDYixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDOzZCQUN0RDs0QkFDRCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7NEJBQ3BELFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTt5QkFDckQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIn0=
621
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlnc2hhcmVQdWJsaXNoaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZ21vZGVscy9GaWdzaGFyZVB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUlBLHdFQWNDO0FBakpELCtEQUFrRDtBQW1JbEQsU0FBZ0IsOEJBQThCLENBQUMsS0FBYSxFQUFFLFVBQW9DLEVBQUU7SUFDbEcsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsVUFBVSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQWtHRCxTQUFTLG9CQUFvQixDQUFDLElBQVksRUFBRSxZQUFzQjtJQUNoRSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJO1FBQ0osWUFBWTtLQUNiLENBQUM7QUFD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