payload 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (348) hide show
  1. package/auth.js +5 -44
  2. package/bin.js +40 -1
  3. package/components.d.ts +14 -0
  4. package/components.js +71 -0
  5. package/config.js +10 -59
  6. package/database.js +21 -108
  7. package/dist/admin/RichText.js +2 -5
  8. package/dist/admin/elements/Cell.js +2 -5
  9. package/dist/admin/elements/DatePicker.js +2 -5
  10. package/dist/admin/elements/PreviewButton.js +2 -5
  11. package/dist/admin/elements/PublishButton.js +2 -5
  12. package/dist/admin/elements/SaveButton.js +2 -5
  13. package/dist/admin/elements/SaveDraftButton.js +2 -5
  14. package/dist/admin/elements/Tab.js +2 -5
  15. package/dist/admin/forms/Error.js +2 -5
  16. package/dist/admin/forms/FieldDescription.js +2 -5
  17. package/dist/admin/forms/FieldTypes.js +2 -5
  18. package/dist/admin/forms/Form.d.ts +22 -0
  19. package/dist/admin/forms/Form.d.ts.map +1 -1
  20. package/dist/admin/forms/Form.js +2 -5
  21. package/dist/admin/forms/Label.js +2 -5
  22. package/dist/admin/forms/RowLabel.js +2 -5
  23. package/dist/admin/types.d.ts +2 -1
  24. package/dist/admin/types.d.ts.map +1 -1
  25. package/dist/admin/types.js +2 -5
  26. package/dist/admin/views/types.d.ts +41 -0
  27. package/dist/admin/views/types.d.ts.map +1 -0
  28. package/dist/admin/views/types.js +3 -0
  29. package/dist/assets/assets.d.js +0 -1
  30. package/dist/auth/baseFields/accountLock.js +2 -12
  31. package/dist/auth/baseFields/apiKey.js +6 -21
  32. package/dist/auth/baseFields/auth.js +6 -16
  33. package/dist/auth/baseFields/verification.js +4 -14
  34. package/dist/auth/cookies.js +6 -33
  35. package/dist/auth/crypto.js +7 -30
  36. package/dist/auth/defaultAccess.js +2 -12
  37. package/dist/auth/defaultUser.js +4 -14
  38. package/dist/auth/executeAccess.js +5 -15
  39. package/dist/auth/extractJWT.js +4 -14
  40. package/dist/auth/getAccessResults.js +5 -15
  41. package/dist/auth/getAuthenticatedUser.js +2 -12
  42. package/dist/auth/getFieldsToSign.js +5 -15
  43. package/dist/auth/index.js +4 -27
  44. package/dist/auth/isLocked.js +2 -12
  45. package/dist/auth/operations/access.js +12 -22
  46. package/dist/auth/operations/forgotPassword.js +17 -32
  47. package/dist/auth/operations/init.js +2 -12
  48. package/dist/auth/operations/local/forgotPassword.js +8 -18
  49. package/dist/auth/operations/local/index.js +12 -27
  50. package/dist/auth/operations/local/login.js +8 -18
  51. package/dist/auth/operations/local/resetPassword.js +8 -18
  52. package/dist/auth/operations/local/unlock.js +8 -18
  53. package/dist/auth/operations/local/verifyEmail.js +8 -18
  54. package/dist/auth/operations/login.js +32 -47
  55. package/dist/auth/operations/logout.js +6 -21
  56. package/dist/auth/operations/me.js +4 -19
  57. package/dist/auth/operations/refresh.js +19 -34
  58. package/dist/auth/operations/registerFirstUser.js +10 -20
  59. package/dist/auth/operations/resetPassword.js +20 -43
  60. package/dist/auth/operations/unlock.js +16 -39
  61. package/dist/auth/operations/verifyEmail.js +14 -37
  62. package/dist/auth/sendVerificationEmail.js +4 -14
  63. package/dist/auth/strategies/apiKey.js +4 -19
  64. package/dist/auth/strategies/jwt.js +6 -21
  65. package/dist/auth/strategies/local/authenticate.js +6 -21
  66. package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
  67. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -12
  68. package/dist/auth/strategies/local/register.js +6 -16
  69. package/dist/auth/strategies/local/resetLoginAttempts.js +2 -12
  70. package/dist/auth/types.js +2 -12
  71. package/dist/bin/generateTypes.js +12 -27
  72. package/dist/bin/index.js +11 -53
  73. package/dist/bin/loadEnv.js +13 -26
  74. package/dist/bin/migrate.js +15 -30
  75. package/dist/bundlers/mocks/db-mongodb.js +0 -1
  76. package/dist/bundlers/mocks/db-postgres.js +2 -12
  77. package/dist/bundlers/mocks/dotENV.js +2 -12
  78. package/dist/bundlers/mocks/emptyModule.js +2 -12
  79. package/dist/bundlers/mocks/fileMock.js +2 -12
  80. package/dist/bundlers/types.js +2 -5
  81. package/dist/collections/config/build.js +2 -12
  82. package/dist/collections/config/defaults.js +9 -32
  83. package/dist/collections/config/sanitize.js +34 -49
  84. package/dist/collections/config/schema.js +157 -172
  85. package/dist/collections/config/types.d.ts +5 -5
  86. package/dist/collections/config/types.d.ts.map +1 -1
  87. package/dist/collections/config/types.js +2 -5
  88. package/dist/collections/dataloader.js +8 -23
  89. package/dist/collections/operations/create.js +38 -53
  90. package/dist/collections/operations/delete.js +27 -42
  91. package/dist/collections/operations/deleteByID.js +27 -42
  92. package/dist/collections/operations/docAccess.js +10 -20
  93. package/dist/collections/operations/find.js +25 -40
  94. package/dist/collections/operations/findByID.js +21 -36
  95. package/dist/collections/operations/findVersionByID.js +19 -34
  96. package/dist/collections/operations/findVersions.js +20 -35
  97. package/dist/collections/operations/local/create.js +10 -25
  98. package/dist/collections/operations/local/delete.js +10 -20
  99. package/dist/collections/operations/local/find.js +8 -18
  100. package/dist/collections/operations/local/findByID.js +8 -18
  101. package/dist/collections/operations/local/findVersionByID.js +8 -18
  102. package/dist/collections/operations/local/findVersions.js +8 -18
  103. package/dist/collections/operations/local/index.js +20 -35
  104. package/dist/collections/operations/local/restoreVersion.js +8 -18
  105. package/dist/collections/operations/local/update.js +12 -27
  106. package/dist/collections/operations/restoreVersion.js +26 -41
  107. package/dist/collections/operations/update.js +43 -58
  108. package/dist/collections/operations/updateByID.js +44 -59
  109. package/dist/collections/operations/utils.js +3 -12
  110. package/dist/config/build.js +9 -15
  111. package/dist/config/clientFiles.js +2 -12
  112. package/dist/config/createClientConfig.d.ts.map +1 -1
  113. package/dist/config/createClientConfig.js +12 -25
  114. package/dist/config/defaults.js +4 -19
  115. package/dist/config/find.js +18 -33
  116. package/dist/config/load.d.ts +1 -3
  117. package/dist/config/load.d.ts.map +1 -1
  118. package/dist/config/load.js +8 -37
  119. package/dist/config/sanitize.js +25 -40
  120. package/dist/config/schema.d.ts.map +1 -1
  121. package/dist/config/schema.js +116 -133
  122. package/dist/config/shared/adminViewSchema.js +9 -24
  123. package/dist/config/shared/componentSchema.js +21 -50
  124. package/dist/config/types.d.ts +12 -21
  125. package/dist/config/types.d.ts.map +1 -1
  126. package/dist/config/types.js +9 -21
  127. package/dist/config/validate.js +15 -71
  128. package/dist/database/combineQueries.js +4 -14
  129. package/dist/database/createDatabaseAdapter.js +14 -24
  130. package/dist/database/flattenWhereToOperators.js +2 -12
  131. package/dist/database/getLocalizedPaths.js +7 -22
  132. package/dist/database/migrations/createMigration.js +7 -22
  133. package/dist/database/migrations/getMigrations.js +4 -12
  134. package/dist/database/migrations/migrate.js +12 -22
  135. package/dist/database/migrations/migrateDown.js +12 -22
  136. package/dist/database/migrations/migrateRefresh.js +16 -24
  137. package/dist/database/migrations/migrateReset.js +12 -22
  138. package/dist/database/migrations/migrateStatus.js +8 -18
  139. package/dist/database/migrations/migrationTemplate.js +2 -12
  140. package/dist/database/migrations/migrationsCollection.js +2 -12
  141. package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
  142. package/dist/database/migrations/readMigrationFiles.js +12 -24
  143. package/dist/database/queryValidation/types.js +2 -5
  144. package/dist/database/queryValidation/validateQueryPaths.js +13 -28
  145. package/dist/database/queryValidation/validateSearchParams.js +13 -21
  146. package/dist/database/types.d.ts +5 -2
  147. package/dist/database/types.d.ts.map +1 -1
  148. package/dist/database/types.js +2 -5
  149. package/dist/email/build.js +11 -26
  150. package/dist/email/defaults.js +2 -12
  151. package/dist/email/mockHandler.js +8 -23
  152. package/dist/email/sendEmail.js +2 -12
  153. package/dist/email/types.js +2 -5
  154. package/dist/errors/APIError.js +4 -19
  155. package/dist/errors/AuthenticationError.js +7 -22
  156. package/dist/errors/DuplicateCollection.js +4 -19
  157. package/dist/errors/DuplicateFieldName.js +4 -19
  158. package/dist/errors/DuplicateGlobal.js +4 -19
  159. package/dist/errors/ErrorDeletingFile.js +7 -22
  160. package/dist/errors/FileUploadError.js +7 -22
  161. package/dist/errors/Forbidden.js +7 -22
  162. package/dist/errors/InvalidConfiguration.js +6 -21
  163. package/dist/errors/InvalidFieldName.js +4 -19
  164. package/dist/errors/InvalidFieldRelationship.js +4 -19
  165. package/dist/errors/InvalidSchema.js +6 -21
  166. package/dist/errors/LockedAuth.js +7 -22
  167. package/dist/errors/MissingCollectionLabel.js +4 -19
  168. package/dist/errors/MissingFieldInputOptions.js +4 -19
  169. package/dist/errors/MissingFieldType.js +6 -21
  170. package/dist/errors/MissingFile.js +7 -22
  171. package/dist/errors/NotFound.js +7 -22
  172. package/dist/errors/QueryError.js +6 -21
  173. package/dist/errors/TimestampsRequired.js +4 -19
  174. package/dist/errors/UnathorizedError.js +7 -22
  175. package/dist/errors/ValidationError.js +8 -23
  176. package/dist/errors/index.js +20 -94
  177. package/dist/errors/types.js +2 -19
  178. package/dist/exports/auth.js +5 -44
  179. package/dist/exports/components/utilities.d.ts +0 -1
  180. package/dist/exports/components/utilities.js +0 -1
  181. package/dist/exports/config.js +10 -59
  182. package/dist/exports/database.js +21 -108
  183. package/dist/exports/errors.js +2 -68
  184. package/dist/exports/fields/index.js +3 -26
  185. package/dist/exports/fields/validations.js +2 -19
  186. package/dist/exports/operations.js +29 -125
  187. package/dist/exports/types.js +4 -74
  188. package/dist/exports/utilities.js +28 -141
  189. package/dist/exports/versions.js +9 -45
  190. package/dist/express/middleware/errorHandler.d.ts +0 -1
  191. package/dist/express/middleware/errorHandler.js +0 -1
  192. package/dist/express/middleware/index.d.ts +0 -1
  193. package/dist/express/middleware/index.js +0 -1
  194. package/dist/fields/baseFields/baseBlockFields.js +4 -14
  195. package/dist/fields/baseFields/baseIDField.js +4 -19
  196. package/dist/fields/config/sanitize.js +24 -39
  197. package/dist/fields/config/sanitize.spec.js +25 -29
  198. package/dist/fields/config/schema.js +329 -424
  199. package/dist/fields/config/types.js +15 -69
  200. package/dist/fields/getDefaultValue.js +2 -12
  201. package/dist/fields/hooks/afterChange/index.js +6 -16
  202. package/dist/fields/hooks/afterChange/promise.js +14 -22
  203. package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
  204. package/dist/fields/hooks/afterRead/index.js +6 -16
  205. package/dist/fields/hooks/afterRead/promise.js +28 -36
  206. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +5 -15
  207. package/dist/fields/hooks/afterRead/traverseFields.js +4 -14
  208. package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +2 -12
  209. package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
  210. package/dist/fields/hooks/beforeChange/index.js +8 -18
  211. package/dist/fields/hooks/beforeChange/promise.js +26 -35
  212. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -14
  213. package/dist/fields/hooks/beforeValidate/index.js +6 -16
  214. package/dist/fields/hooks/beforeValidate/promise.js +30 -39
  215. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
  216. package/dist/fields/mergeBaseFields.js +8 -23
  217. package/dist/fields/sortableFieldTypes.js +2 -12
  218. package/dist/fields/validations.js +31 -97
  219. package/dist/fields/validations.spec.js +93 -87
  220. package/dist/globals/config/build.d.ts +0 -1
  221. package/dist/globals/config/build.js +0 -1
  222. package/dist/globals/config/sanitize.js +17 -32
  223. package/dist/globals/config/schema.js +55 -70
  224. package/dist/globals/config/types.d.ts +5 -5
  225. package/dist/globals/config/types.d.ts.map +1 -1
  226. package/dist/globals/config/types.js +2 -5
  227. package/dist/globals/graphql/resolvers/docAccess.d.ts +0 -1
  228. package/dist/globals/graphql/resolvers/docAccess.js +0 -1
  229. package/dist/globals/operations/docAccess.js +10 -20
  230. package/dist/globals/operations/findOne.js +14 -29
  231. package/dist/globals/operations/findVersionByID.js +18 -33
  232. package/dist/globals/operations/findVersions.js +20 -35
  233. package/dist/globals/operations/local/findOne.js +8 -18
  234. package/dist/globals/operations/local/findVersionByID.js +8 -18
  235. package/dist/globals/operations/local/findVersions.js +8 -18
  236. package/dist/globals/operations/local/index.js +12 -27
  237. package/dist/globals/operations/local/restoreVersion.js +8 -18
  238. package/dist/globals/operations/local/update.js +8 -18
  239. package/dist/globals/operations/restoreVersion.js +16 -31
  240. package/dist/globals/operations/update.js +23 -38
  241. package/dist/index.d.ts.map +1 -1
  242. package/dist/index.js +50 -70
  243. package/dist/localization/middleware.js +2 -12
  244. package/dist/localization/sanitizeFallbackLocale.js +2 -12
  245. package/dist/preferences/deleteUserPreferences.js +2 -12
  246. package/dist/preferences/operations/delete.js +10 -25
  247. package/dist/preferences/operations/findOne.js +2 -12
  248. package/dist/preferences/operations/update.js +8 -23
  249. package/dist/preferences/preferencesCollection.js +8 -18
  250. package/dist/preferences/requestHandlers/delete.js +6 -21
  251. package/dist/preferences/requestHandlers/findOne.js +6 -21
  252. package/dist/preferences/requestHandlers/update.js +6 -21
  253. package/dist/preferences/types.js +2 -5
  254. package/dist/translations/extractTranslations.js +4 -14
  255. package/dist/translations/getLocalI18n.js +5 -15
  256. package/dist/types/constants.js +2 -12
  257. package/dist/types/index.js +2 -12
  258. package/dist/uploads/canResizeImage.js +2 -12
  259. package/dist/uploads/cropImage.d.ts +3 -7
  260. package/dist/uploads/cropImage.d.ts.map +1 -1
  261. package/dist/uploads/cropImage.js +4 -28
  262. package/dist/uploads/deleteAssociatedFiles.js +11 -26
  263. package/dist/uploads/docWithFilenameExists.js +2 -12
  264. package/dist/uploads/fileExists.js +4 -19
  265. package/dist/uploads/formatFilesize.js +2 -12
  266. package/dist/uploads/generateFileData.d.ts.map +1 -1
  267. package/dist/uploads/generateFileData.js +40 -53
  268. package/dist/uploads/getBaseFields.js +6 -16
  269. package/dist/uploads/getExternalFile.js +5 -15
  270. package/dist/uploads/getFileByPath.js +10 -25
  271. package/dist/uploads/getImageSize.js +7 -22
  272. package/dist/uploads/getSafeFilename.js +8 -23
  273. package/dist/uploads/imageResizer.d.ts +3 -1
  274. package/dist/uploads/imageResizer.d.ts.map +1 -1
  275. package/dist/uploads/imageResizer.js +28 -44
  276. package/dist/uploads/isImage.js +2 -12
  277. package/dist/uploads/mimeTypeValidator.js +2 -12
  278. package/dist/uploads/mimeTypeValidator.spec.js +11 -15
  279. package/dist/uploads/saveBufferToFile.js +6 -21
  280. package/dist/uploads/types.d.ts +7 -1
  281. package/dist/uploads/types.d.ts.map +1 -1
  282. package/dist/uploads/types.js +2 -5
  283. package/dist/uploads/unlinkTempFiles.js +9 -22
  284. package/dist/uploads/uploadFiles.js +6 -21
  285. package/dist/utilities/checkDuplicateCollections.js +4 -14
  286. package/dist/utilities/combineMerge.js +4 -19
  287. package/dist/utilities/commitTransaction.js +4 -12
  288. package/dist/utilities/configToJSONSchema.js +22 -41
  289. package/dist/utilities/configToJSONSchema.spec.js +5 -9
  290. package/dist/utilities/convertData.js +3 -23
  291. package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
  292. package/dist/utilities/createLocalReq.js +6 -16
  293. package/dist/utilities/deepCopyObject.js +2 -12
  294. package/dist/utilities/deepMerge.js +2 -12
  295. package/dist/utilities/fieldSchemaToJSON.js +2 -12
  296. package/dist/utilities/flattenTopLevelFields.js +6 -16
  297. package/dist/utilities/formatLabels.js +9 -70
  298. package/dist/utilities/formatLabels.spec.js +8 -12
  299. package/dist/utilities/getCSSVariable.js +2 -12
  300. package/dist/utilities/getEntityPolicies.js +4 -14
  301. package/dist/utilities/getIDType.js +2 -12
  302. package/dist/utilities/getObjectDotNotation.js +2 -12
  303. package/dist/utilities/getUniqueListBy.js +2 -12
  304. package/dist/utilities/initTransaction.js +5 -12
  305. package/dist/utilities/isEntityHidden.js +2 -12
  306. package/dist/utilities/isNumber.js +2 -12
  307. package/dist/utilities/isValidID.js +5 -20
  308. package/dist/utilities/isolateObjectProperty.js +2 -12
  309. package/dist/utilities/killTransaction.js +4 -12
  310. package/dist/utilities/logger.d.ts.map +1 -1
  311. package/dist/utilities/logger.js +16 -37
  312. package/dist/utilities/mapAsync.js +2 -12
  313. package/dist/utilities/overwriteMerge.js +2 -12
  314. package/dist/utilities/parseCookies.js +4 -14
  315. package/dist/utilities/pinoPretty.d.ts +1 -0
  316. package/dist/utilities/pinoPretty.d.ts.map +1 -0
  317. package/dist/utilities/pinoPretty.js +2 -0
  318. package/dist/utilities/sanitizeInternalFields.js +2 -12
  319. package/dist/utilities/setsAreEqual.js +2 -12
  320. package/dist/utilities/telemetry/events/adminInit.js +7 -17
  321. package/dist/utilities/telemetry/events/serverInit.js +4 -14
  322. package/dist/utilities/telemetry/index.js +17 -40
  323. package/dist/utilities/telemetry/oneWayHash.js +4 -14
  324. package/dist/utilities/timestamp.js +2 -12
  325. package/dist/utilities/toKebabCase.js +2 -12
  326. package/dist/utilities/wait.js +2 -12
  327. package/dist/utilities/wordBoundariesRegex.js +3 -13
  328. package/dist/versions/baseFields.js +5 -23
  329. package/dist/versions/buildCollectionFields.js +2 -12
  330. package/dist/versions/buildGlobalFields.js +2 -12
  331. package/dist/versions/deleteCollectionVersions.js +2 -12
  332. package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
  333. package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
  334. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +12 -27
  335. package/dist/versions/enforceMaxVersions.js +2 -12
  336. package/dist/versions/getLatestCollectionVersion.js +4 -14
  337. package/dist/versions/getLatestGlobalVersion.js +4 -14
  338. package/dist/versions/getVersionsModelName.js +2 -12
  339. package/dist/versions/saveVersion.js +8 -23
  340. package/dist/versions/types.js +2 -5
  341. package/errors.js +2 -68
  342. package/graphql.d.ts +3 -0
  343. package/graphql.js +27 -0
  344. package/operations.js +29 -125
  345. package/package.json +17 -5
  346. package/types.js +4 -74
  347. package/utilities.js +28 -141
  348. package/versions.js +9 -45
@@ -1,26 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- hasTransport: function() {
13
- return hasTransport;
14
- },
15
- hasTransportOptions: function() {
16
- return hasTransportOptions;
17
- }
18
- });
19
- function hasTransport(emailConfig) {
1
+ /**
2
+ * type guard for EmailOptions
3
+ * @param emailConfig
4
+ */ export function hasTransport(emailConfig) {
20
5
  return emailConfig.transport !== undefined;
21
6
  }
22
- function hasTransportOptions(emailConfig) {
7
+ /**
8
+ * type guard for EmailOptions
9
+ * @param emailConfig
10
+ */ export function hasTransportOptions(emailConfig) {
23
11
  return emailConfig.transportOptions !== undefined;
24
12
  }
25
13
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudFRhYiwgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vYWRtaW4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi9hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBZnRlckVycm9ySG9vayxcbiAgQ29sbGVjdGlvbixcbiAgQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUFkYXB0ZXJSZXN1bHQgfSBmcm9tICcuLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2xpZW50Q29uZmlnRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBHbG9iYWxDb25maWcsIEdsb2JhbHMsIFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgV2hlcmUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZExvZ2dlciB9IGZyb20gJy4uL3V0aWxpdGllcy9sb2dnZXInXG5cbmV4cG9ydCB0eXBlIEJpblNjcmlwdENvbmZpZyA9IHtcbiAga2V5OiBzdHJpbmdcbiAgc2NyaXB0UGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEJpblNjcmlwdCA9IChjb25maWc6IFNhbml0aXplZENvbmZpZykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcblxudHlwZSBQcmV0dGlmeTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IFRbS11cbn0gJiBOb25OdWxsYWJsZTx1bmtub3duPlxuXG50eXBlIEVtYWlsID0ge1xuICBmcm9tQWRkcmVzczogc3RyaW5nXG4gIGZyb21OYW1lOiBzdHJpbmdcbiAgbG9nTW9ja0NyZWRlbnRpYWxzPzogYm9vbGVhblxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbmV4cG9ydCB0eXBlIFBsdWdpbiA9IChjb25maWc6IENvbmZpZykgPT4gQ29uZmlnIHwgUHJvbWlzZTxDb25maWc+XG5cbmV4cG9ydCB0eXBlIExpdmVQcmV2aWV3Q29uZmlnID0ge1xuICAvKipcbiAgIERldmljZSBicmVha3BvaW50cyB0byB1c2UgZm9yIHRoZSBgaWZyYW1lYCBvZiB0aGUgTGl2ZSBQcmV2aWV3IHdpbmRvdy5cbiAgIE9wdGlvbnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgTGl2ZSBQcmV2aWV3IHRvb2xiYXIuXG4gICBUaGUgYHJlc3BvbnNpdmVgIGJyZWFrcG9pbnQgaXMgaW5jbHVkZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGJyZWFrcG9pbnRzPzoge1xuICAgIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIHdpZHRoOiBudW1iZXIgfCBzdHJpbmdcbiAgfVtdXG4gIC8qKlxuICAgVGhlIFVSTCBvZiB0aGUgZnJvbnRlbmQgYXBwbGljYXRpb24uIFRoaXMgd2lsbCBiZSByZW5kZXJlZCB3aXRoaW4gYW4gYGlmcmFtZWAgYXMgaXRzIGBzcmNgLlxuICAgUGF5bG9hZCB3aWxsIHNlbmQgYSBgd2luZG93LnBvc3RNZXNzYWdlKClgIHRvIHRoaXMgVVJMIHdpdGggdGhlIGRvY3VtZW50IGRhdGEgaW4gcmVhbC10aW1lLlxuICAgVGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciByZWNlaXZpbmcgdGhlIG1lc3NhZ2UgYW5kIHVwZGF0aW5nIHRoZSBVSSBhY2NvcmRpbmdseS5cbiAgIFVzZSB0aGUgYHVzZUxpdmVQcmV2aWV3YCBob29rIHRvIGdldCBzdGFydGVkIGluIFJlYWN0IGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIHVybD86XG4gICAgfCAoKGFyZ3M6IHtcbiAgICAgICAgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICAgICAgICBkb2N1bWVudEluZm86IGFueSAvLyBUT0RPOiByZW1vdmUgb3IgcG9wdWxhdGUgdGhpc1xuICAgICAgICBsb2NhbGU6IExvY2FsZVxuICAgICAgfSkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nKVxuICAgIHwgc3RyaW5nXG59XG5cbnR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMT3B0aW9ucyA9IHtcbiAgbG9jYWxlOiBzdHJpbmdcbiAgdG9rZW46IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBHZW5lcmF0ZVByZXZpZXdVUkwgPSAoXG4gIGRvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMsXG4pID0+IFByb21pc2U8bnVsbCB8IHN0cmluZz4gfCBudWxsIHwgc3RyaW5nXG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0ID0gRW1haWwgJiB7XG4gIHRyYW5zcG9ydDogVHJhbnNwb3J0ZXJcbiAgdHJhbnNwb3J0T3B0aW9ucz86IFNNVFBDb25uZWN0aW9uLk9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgRW1haWxUcmFuc3BvcnRPcHRpb25zID0gRW1haWwgJiB7XG4gIHRyYW5zcG9ydD86IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM6IFNNVFBDb25uZWN0aW9uLk9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgRW1haWxPcHRpb25zID0gRW1haWwgfCBFbWFpbFRyYW5zcG9ydCB8IEVtYWlsVHJhbnNwb3J0T3B0aW9uc1xuXG4vKipcbiAqIHR5cGUgZ3VhcmQgZm9yIEVtYWlsT3B0aW9uc1xuICogQHBhcmFtIGVtYWlsQ29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNUcmFuc3BvcnQoZW1haWxDb25maWc6IEVtYWlsT3B0aW9ucyk6IGVtYWlsQ29uZmlnIGlzIEVtYWlsVHJhbnNwb3J0IHtcbiAgcmV0dXJuIChlbWFpbENvbmZpZyBhcyBFbWFpbFRyYW5zcG9ydCkudHJhbnNwb3J0ICE9PSB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0T3B0aW9ucyhcbiAgZW1haWxDb25maWc6IEVtYWlsT3B0aW9ucyxcbik6IGVtYWlsQ29uZmlnIGlzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnRPcHRpb25zKS50cmFuc3BvcnRPcHRpb25zICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IHR5cGUgR3JhcGhRTEluZm8gPSB7XG4gIE11dGF0aW9uOiB7XG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgUXVlcnk6IHtcbiAgICBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBjb2xsZWN0aW9uczoge1xuICAgIFtzbHVnOiBudW1iZXIgfCBzdHJpbmcgfCBzeW1ib2xdOiBDb2xsZWN0aW9uXG4gIH1cbiAgZ2xvYmFsczogR2xvYmFsc1xuICB0eXBlczoge1xuICAgIGFycmF5VHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTFR5cGU+XG4gICAgYmxvY2tJbnB1dFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxJbnB1dE9iamVjdFR5cGU+XG4gICAgYmxvY2tUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMT2JqZWN0VHlwZT5cbiAgICBmYWxsYmFja0xvY2FsZUlucHV0VHlwZT86IEdyYXBoUUwuR3JhcGhRTEVudW1UeXBlIHwgR3JhcGhRTC5HcmFwaFFMU2NhbGFyVHlwZVxuICAgIGdyb3VwVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogR3JhcGhRTC5HcmFwaFFMRW51bVR5cGUgfCBHcmFwaFFMLkdyYXBoUUxTY2FsYXJUeXBlXG4gICAgdGFiVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gIH1cbn1cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBjb250ZXh0OiB7XG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgfSAmIEdyYXBoUUxJbmZvLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnOiBQcm9taXNlPFNhbml0aXplZENvbmZpZz4gfCBTYW5pdGl6ZWRDb25maWdcbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRGlzYWJsZSBydW5uaW5nIG9mIHRoZSBgb25Jbml0YCBmdW5jdGlvblxuICAgKi9cbiAgZGlzYWJsZU9uSW5pdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqXG4gICAqIEEgcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgbG9nZ2VyIGluc3RhbmNlLiBNdXN0IGNvbmZvcm0gdG8gdGhlIFBheWxvYWRMb2dnZXIgaW50ZXJmYWNlIHdoaWNoIHVzZXMgUGlub1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gYnJpbmcgeW91ciBvd24gbG9nZ2VyIGluc3RhbmNlIGFuZCBsZXQgcGF5bG9hZCB1c2UgaXRcbiAgICovXG4gIGxvZ2dlcj86IFBheWxvYWRMb2dnZXJcblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3B0aW9ucyBmb3IgdGhlIGJ1aWx0LWluIFBpbm8gbG9nZ2VyIHRoYXQgUGF5bG9hZCB1c2VzIGZvciBpbnRlcm5hbCBsb2dnaW5nLlxuICAgKlxuICAgKiBTZWUgUGlubyBEb2NzIGZvciBvcHRpb25zOiBodHRwczovL2dldHBpbm8uaW8vIy9kb2NzL2FwaT9pZD1vcHRpb25zXG4gICAqL1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9uc1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxufVxuXG4vKipcbiAqIFRoaXMgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgb24gdGhlIHNlcnZlclxuICogYW5kIHRoZW4gc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogSWYgdGhlIHJlc3VsdCBpcyBgdHJ1ZWAsIHRoZSB1c2VyIGhhcyBhY2Nlc3MuXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGFuIG9iamVjdCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYSBNb25nb0RCIHF1ZXJ5LlxuICpcbiAqIEBleGFtcGxlIGB7IGNyZWF0ZWRCeTogeyBlcXVhbHM6IGlkIH0gfWBcbiAqXG4gKiBAZXhhbXBsZSBgeyB0ZW5hbnQ6IHsgaW46IHRlbmFudElkcyB9IH1gXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzUmVzdWx0ID0gV2hlcmUgfCBib29sZWFuXG5cbmV4cG9ydCB0eXBlIEFjY2Vzc0FyZ3M8VCA9IGFueSwgVSA9IGFueT4gPSB7XG4gIC8qKlxuICAgKiBUaGUgcmVsZXZhbnQgcmVzb3VyY2UgdGhhdCBpcyBiZWluZyBhY2Nlc3NlZC5cbiAgICpcbiAgICogYGRhdGFgIGlzIG51bGwgd2hlbiBhIGxpc3QgaXMgcmVxdWVzdGVkXG4gICAqL1xuICBkYXRhPzogVFxuICAvKiogSUQgb2YgdGhlIHJlc291cmNlIGJlaW5nIGFjY2Vzc2VkICovXG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKiBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBmb3IgYSBzdGF0aWMgZmlsZSAqL1xuICBpc1JlYWRpbmdTdGF0aWNGaWxlPzogYm9vbGVhblxuICAvKiogVGhlIG9yaWdpbmFsIHJlcXVlc3QgdGhhdCByZXF1aXJlcyBhbiBhY2Nlc3MgY2hlY2sgKi9cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdDxVPlxufVxuXG4vKipcbiAqIEFjY2VzcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBpcyBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3M8VCA9IGFueSwgVSA9IGFueT4gPSAoXG4gIGFyZ3M6IEFjY2Vzc0FyZ3M8VCwgVT4sXG4pID0+IEFjY2Vzc1Jlc3VsdCB8IFByb21pc2U8QWNjZXNzUmVzdWx0PlxuXG4vKiogV2ViIFJlcXVlc3QvUmVzcG9uc2UgbW9kZWwsIGJ1dCB0aGUgdGhlIHJlcSBoYXMgbW9yZSBwYXlsb2FkIHNwZWNpZmljIHByb3BlcnRpZXMgYWRkZWQgdG8gaXQuICovXG5leHBvcnQgdHlwZSBQYXlsb2FkSGFuZGxlciA9IChyZXE6IFBheWxvYWRSZXF1ZXN0KSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IFJlc3BvbnNlXG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQ8VSA9IFVzZXI+ID0ge1xuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBXZWIgUmVxdWVzdC9SZXNwb25zZSBNb2RlbFxuICAgKi9cbiAgaGFuZGxlcjogUGF5bG9hZEhhbmRsZXJcbiAgLyoqIEhUVFAgbWV0aG9kIChvciBcImFsbFwiKSAqL1xuICBtZXRob2Q6ICdjb25uZWN0JyB8ICdkZWxldGUnIHwgJ2dldCcgfCAnaGVhZCcgfCAnb3B0aW9ucycgfCAncGF0Y2gnIHwgJ3Bvc3QnIHwgJ3B1dCdcbiAgLyoqXG4gICAqIFBhdHRlcm4gdGhhdCBzaG91bGQgbWF0Y2ggdGhlIHBhdGggb2YgdGhlIGluY29taW5nIHJlcXVlc3RcbiAgICpcbiAgICogQ29tcGF0aWJsZSB3aXRoIHRoZSBFeHByZXNzIHJvdXRlclxuICAgKi9cbiAgcGF0aDogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpbiAzLjBcbiAgICpcbiAgICogUGxlYXNlIGFkZCBcInJvb3RcIiByb3V0ZXMgdW5kZXIgdGhlIC9hcGkgZm9sZGVyIGluIHRoZSBQYXlsb2FkIFByb2plY3QuXG4gICAqIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvcm91dGVcbiAgICovXG4gIHJvb3Q/OiBuZXZlclxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb25maWcgPSB7XG4gIENvbXBvbmVudDogQWRtaW5WaWV3Q29tcG9uZW50XG4gIC8qKiBXaGV0aGVyIHRoZSBwYXRoIHNob3VsZCBiZSBtYXRjaGVkIGV4YWN0bHkgb3IgYXMgYSBwcmVmaXggKi9cbiAgZXhhY3Q/OiBib29sZWFuXG4gIHBhdGg6IHN0cmluZ1xuICBzZW5zaXRpdmU/OiBib29sZWFuXG4gIHN0cmljdD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQWRtaW5WaWV3UHJvcHMgPSB7XG4gIGNhbkFjY2Vzc0FkbWluPzogYm9vbGVhblxuICB1c2VyOiBVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPEFkbWluVmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBBZG1pblZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdQcm9wcyA9IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbXBvbmVudCA9IFJlYWN0LkNvbXBvbmVudFR5cGU8RWRpdFZpZXdQcm9wcz5cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogQWRkIGEgbmV3IEVkaXQgdmlldyB0byB0aGUgYWRtaW4gcGFuZWxcbiAgICAgICAqIGkuZS4geW91IGNhbiByZW5kZXIgYSBjdXN0b20gdmlldyB0aGF0IGhhcyBubyB0YWIsIGlmIGRlc2lyZWRcbiAgICAgICAqIE9yIG92ZXJyaWRlIGEgc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBleGlzdGluZyBvbmVcbiAgICAgICAqIGkuZS4geW91IGNhbiBjdXN0b21pemUgdGhlIGBEZWZhdWx0YCB2aWV3IHRhYiBsYWJlbCwgaWYgZGVzaXJlZFxuICAgICAgICovXG4gICAgICBUYWI/OiBEb2N1bWVudFRhYlxuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBDb21wb25lbnQ6IEFkbWluVmlld0NvbXBvbmVudCAvLyBUT0RPOiBUaGUgYEVkaXRgIHZpZXcgQ29tcG9uZW50IGlzIG9mIHR5cGUgYFJlYWN0LkZDPEVkaXRWaWV3UHJvcHM+YFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgfVxuICB8IHtcbiAgICAgIGFjdGlvbnM/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgIH1cblxuLyoqXG4gKiBPdmVycmlkZSBleGlzdGluZyB2aWV3c1xuICogaS5lLiBEYXNoYm9hcmQsIEFjY291bnQsIEFQSSwgTGl2ZVByZXZpZXcsIGV0Yy5cbiAqIFBhdGggaXMgbm90IGF2YWlsYWJsZSBoZXJlXG4gKiBBbGwgVGFiIHByb3BlcnRpZXMgYmVjb21lIG9wdGlvbmFsXG4gKiBpLmUuIHlvdSBjYW4gY2hhbmdlIGp1c3QgdGhlIGxhYmVsLCBpZiBkZXNpcmVkXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRWaWV3ID0gQWRtaW5WaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0ge1xuICAvKipcbiAgICogdmFsdWUgb2Ygc3VwcG9ydGVkIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBcImVuXCJcbiAgICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKipcbiAgICogQ29kZSBvZiBhbm90aGVyIGxvY2FsZSB0byB1c2Ugd2hlbiByZWFkaW5nIGRvY3VtZW50cyB3aXRoIGZhbGxiYWNrLCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRMb2NhbGUgaXMgdXNlZFxuICAgKi9cbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvblxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0ge1xuICAvKiogQ29uZmlndXJlIGFkbWluIGRhc2hib2FyZCAqL1xuICBhZG1pbj86IHtcbiAgICAvKiogQXV0b21hdGljYWxseSBsb2cgaW4gYXMgYSB1c2VyIHdoZW4gdmlzaXRpbmcgdGhlIGFkbWluIGRhc2hib2FyZC4gKi9cbiAgICBhdXRvTG9naW4/OlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgdG8gbG9naW4gYXNcbiAgICAgICAgICAgKlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmdcbiAgICAgICAgICAvKiogVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzICovXG4gICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZ1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgbG9naW4gY3JlZGVudGlhbHMgd2lsbCBiZSBwcmVmaWxsZWQgYnV0IHRoZSB1c2VyIHdpbGwgc3RpbGwgbmVlZCB0byBjbGljayB0aGUgbG9naW4gYnV0dG9uLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwcmVmaWxsT25seT86IGJvb2xlYW5cbiAgICAgICAgfVxuICAgICAgfCBmYWxzZVxuXG4gICAgLyoqIFNldCBhY2NvdW50IHByb2ZpbGUgcGljdHVyZS4gT3B0aW9uczogZ3JhdmF0YXIsIGRlZmF1bHQgb3IgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiAqL1xuICAgIGF2YXRhcj86ICdkZWZhdWx0JyB8ICdncmF2YXRhcicgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IGFuIGFic29sdXRlIHBhdGggZm9yIHdoZXJlIHRvIHN0b3JlIHRoZSBidWlsdCBBZG1pbiBwYW5lbCBidW5kbGUgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCIvYnVpbGRcIlxuICAgICAqICovXG4gICAgYnVpbGRQYXRoPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogQWRkIGV4dHJhIGFuZC9vciByZXBsYWNlIGJ1aWx0LWluIGNvbXBvbmVudHMgd2l0aCBjdXN0b20gY29tcG9uZW50c1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWRtaW4vY29tcG9uZW50c1xuICAgICAqL1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFJlcGxhY2UgdGhlIG5hdmlnYXRpb24gd2l0aCBhIGN1c3RvbSBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgTmF2PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyB0byB0aGUgdG9wIHJpZ2h0IG9mIHRoZSBBZG1pbiBQYW5lbFxuICAgICAgICovXG4gICAgICBhY3Rpb25zPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGFmdGVyRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBhZnRlckxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBuYXZpZ2F0aW9uIGxpbmtzXG4gICAgICAgKi9cbiAgICAgIGFmdGVyTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGJlZm9yZURhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIGVtYWlsL3Bhc3N3b3JkIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIGJlZm9yZUxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBiZWZvcmVOYXZMaW5rcz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKiogUmVwbGFjZSBncmFwaGljYWwgY29tcG9uZW50cyAqL1xuICAgICAgZ3JhcGhpY3M/OiB7XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBpY29uIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gICAgICAgIEljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ28gb24gdGhlIGxvZ2luIHBhZ2UgKi9cbiAgICAgICAgTG9nbz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqIFJlcGxhY2UgbG9nb3V0IHJlbGF0ZWQgY29tcG9uZW50cyAqL1xuICAgICAgbG9nb3V0Pzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgbG9nb3V0IGJ1dHRvbiAgKi9cbiAgICAgICAgQnV0dG9uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIFdyYXAgdGhlIGFkbWluIGRhc2hib2FyZCBpbiBjdXN0b20gY29udGV4dCBwcm92aWRlcnNcbiAgICAgICAqL1xuICAgICAgcHJvdmlkZXJzPzogUmVhY3QuQ29tcG9uZW50VHlwZTx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIG9yIG1vZGlmeSB0b3AtbGV2ZWwgYWRtaW4gcm91dGVzLCBvciBhZGQgbmV3IG9uZXM6XG4gICAgICAgKiArIGBBY2NvdW50YCAtIGAvYWRtaW4vYWNjb3VudGBcbiAgICAgICAqICsgYERhc2hib2FyZGAgLSBgL2FkbWluYFxuICAgICAgICogKyBgOnBhdGhgIC0gYC9hZG1pbi86cGF0aGBcbiAgICAgICAqL1xuICAgICAgdmlld3M/OiB7XG4gICAgICAgIC8qKiBBZGQgY3VzdG9tIGFkbWluIHZpZXdzICovXG4gICAgICAgIFtrZXk6IHN0cmluZ106IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWNjb3VudCBzY3JlZW4gKi9cbiAgICAgICAgQWNjb3VudD86IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWRtaW4gaG9tZXBhZ2UgKi9cbiAgICAgICAgRGFzaGJvYXJkPzogQWRtaW5WaWV3XG4gICAgICB9XG4gICAgfVxuICAgIC8qKiBHbG9iYWwgZGF0ZSBmb3JtYXQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBkYXRlcyBpbiB0aGUgQWRtaW4gcGFuZWwuIEFueSB2YWxpZCBkYXRlLWZucyBmb3JtYXQgcGF0dGVybiBjYW4gYmUgdXNlZC4gKi9cbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gICAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgZW50aXJlIEFkbWluIHBhbmVsIHdpbGwgYmUgZGlzYWJsZWQuICovXG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICAvKiogVGhlIHJvdXRlIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byBhZnRlciBiZWluZyBpbmFjdGl2ZSBmb3IgdG9vIGxvbmcuICovXG4gICAgaW5hY3Rpdml0eVJvdXRlPzogc3RyaW5nXG4gICAgbGl2ZVByZXZpZXc/OiBMaXZlUHJldmlld0NvbmZpZyAmIHtcbiAgICAgIGNvbGxlY3Rpb25zPzogc3RyaW5nW11cbiAgICAgIGdsb2JhbHM/OiBzdHJpbmdbXVxuICAgIH1cbiAgICAvKiogVGhlIHJvdXRlIGZvciB0aGUgbG9nb3V0IHBhZ2UuICovXG4gICAgbG9nb3V0Um91dGU/OiBzdHJpbmdcbiAgICAvKiogQmFzZSBtZXRhIGRhdGEgdG8gdXNlIGZvciB0aGUgQWRtaW4gcGFuZWwuIEluY2x1ZGVkIHByb3BlcnRpZXMgYXJlIHRpdGxlU3VmZml4LCBvZ0ltYWdlLCBhbmQgZmF2aWNvbi4gKi9cbiAgICBtZXRhPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBQdWJsaWMgcGF0aCB0byBhbiBpY29uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGluIHRoZSBicm93c2VyIG5leHQgdG8gdGhlIHRpdGxlIG9mIHRoZSBwYWdlXG4gICAgICAgKi9cbiAgICAgIGZhdmljb24/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaW1hZ2VcbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGltYWdlIG1heSBiZSBkaXNwbGF5ZWQgYXMgcHJldmlldyB3aGVuIHRoZSBsaW5rIGlzIHNoYXJlZCBvbiBzb2NpYWwgbWVkaWFcbiAgICAgICAqL1xuICAgICAgb2dJbWFnZT86IHN0cmluZ1xuICAgICAgLyoqXG4gICAgICAgKiBTdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSA8dGl0bGU+IG9mIGFkbWluIHBhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSBgXCIgLSBNeSBCcmFuZFwiYFxuICAgICAgICovXG4gICAgICB0aXRsZVN1ZmZpeD86IHN0cmluZ1xuICAgIH1cbiAgICAvKiogVGhlIHNsdWcgb2YgYSBDb2xsZWN0aW9uIHRoYXQgeW91IHdhbnQgYmUgdXNlZCB0byBsb2cgaW4gdG8gdGhlIEFkbWluIGRhc2hib2FyZC4gKi9cbiAgICB1c2VyPzogc3RyaW5nXG4gIH1cbiAgLyoqIEN1c3RvbSBQYXlsb2FkIGJpbiBzY3JpcHRzIGNhbiBiZSBpbmplY3RlZCB2aWEgdGhlIGNvbmZpZy4gKi9cbiAgYmluPzogQmluU2NyaXB0Q29uZmlnW11cbiAgLyoqXG4gICAqIE1hbmFnZSB0aGUgZGF0YW1vZGVsIG9mIHlvdXIgYXBwbGljYXRpb25cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9jb2xsZWN0aW9ucyNjb2xsZWN0aW9uLWNvbmZpZ3NcbiAgICovXG4gIGNvbGxlY3Rpb25zPzogQ29sbGVjdGlvbkNvbmZpZ1tdXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIG9uZXNcbiAgICovXG4gIGNvbXBvbmVudHM/OiB7IFtrZXk6IHN0cmluZ106ICgoKSA9PiBKU1guRWxlbWVudCkgfCBKU1guRWxlbWVudCB9XG4gIC8qKlxuICAgKiBQcmVmaXggYSBzdHJpbmcgdG8gYWxsIGNvb2tpZXMgdGhhdCBQYXlsb2FkIHNldHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicGF5bG9hZFwiXG4gICAqL1xuICBjb29raWVQcmVmaXg/OiBzdHJpbmdcbiAgLyoqIEVpdGhlciBhIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxTIHRvIGFsbG93IENPUlMgcmVxdWVzdHMgZnJvbSwgb3IgYSB3aWxkY2FyZCBzdHJpbmcgKCcqJykgdG8gYWNjZXB0IGluY29taW5nIHJlcXVlc3RzIGZyb20gYW55IGRvbWFpbi4gKi9cbiAgY29ycz86ICcqJyB8IHN0cmluZ1tdXG4gIC8qKiBBIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxzIHRvIGFsbG93IFBheWxvYWQgY29va2llcyB0byBiZSBhY2NlcHRlZCBmcm9tIGFzIGEgZm9ybSBvZiBDU1JGIHByb3RlY3Rpb24uICovXG4gIGNzcmY/OiBzdHJpbmdbXVxuXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cblxuICAvKiogUGFzcyBpbiBhIGRhdGFiYXNlIGFkYXB0ZXIgZm9yIHVzZSBvbiB0aGlzIHByb2plY3QuICovXG4gIGRiOiBEYXRhYmFzZUFkYXB0ZXJSZXN1bHRcbiAgLyoqIEVuYWJsZSB0byBleHBvc2UgbW9yZSBkZXRhaWxlZCBlcnJvciBpbmZvcm1hdGlvbi4gKi9cbiAgZGVidWc/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiBhIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBgZGVwdGhgIHdoaWxlIHJlcXVlc3RpbmcgYSByZXNvdXJjZSwgdGhpcyBkZXB0aCB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICBkZWZhdWx0RGVwdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDQwMDAwXG4gICAqL1xuICBkZWZhdWx0TWF4VGV4dExlbmd0aD86IG51bWJlclxuICAvKiogRGVmYXVsdCByaWNodGV4dCBlZGl0b3IgdG8gdXNlIGZvciByaWNoVGV4dCBmaWVsZHMgKi9cbiAgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXI8YW55LCBhbnksIGFueT5cbiAgLyoqXG4gICAqIEVtYWlsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhpcyB2YWx1ZSBpcyBvdmVycmlkZGVuIGJ5IGBlbWFpbGAgaW4gUGF5bG9hZC5pbml0IGlmIHBhc3NlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG4gIC8qKiBDdXN0b20gUkVTVCBlbmRwb2ludHMgKi9cbiAgZW5kcG9pbnRzPzogRW5kcG9pbnRbXVxuICAvKipcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9nbG9iYWxzI2dsb2JhbC1jb25maWdzXG4gICAqL1xuICBnbG9iYWxzPzogR2xvYmFsQ29uZmlnW11cbiAgLyoqXG4gICAqIE1hbmFnZSB0aGUgR3JhcGhRTCBBUElcbiAgICpcbiAgICogWW91IGNhbiBhZGQgeW91ciBvd24gR3JhcGhRTCBxdWVyaWVzIGFuZCBtdXRhdGlvbnMgdG8gUGF5bG9hZCwgbWFraW5nIHVzZSBvZiBhbGwgdGhlIHR5cGVzIHRoYXQgUGF5bG9hZCBoYXMgZGVmaW5lZCBmb3IgeW91LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ncmFwaHFsL292ZXJ2aWV3XG4gICAqL1xuICBncmFwaFFMPzoge1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgZGlzYWJsZVBsYXlncm91bmRJblByb2R1Y3Rpb24/OiBib29sZWFuXG4gICAgbWF4Q29tcGxleGl0eT86IG51bWJlclxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIG11dGF0aW9uc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9leHRlbmRpbmdcbiAgICAgKi9cbiAgICBtdXRhdGlvbnM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgcXVlcmllc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9leHRlbmRpbmdcbiAgICAgKi9cbiAgICBxdWVyaWVzPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIHNjaGVtYU91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogVGFwIGludG8gUGF5bG9hZC13aWRlIGhvb2tzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ob29rcy9vdmVydmlld1xuICAgKi9cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJFcnJvcj86IEFmdGVyRXJyb3JIb29rXG4gIH1cbiAgLyoqIGkxOG4gY29uZmlnIHNldHRpbmdzICovXG4gIGkxOG4/OiBJMThuT3B0aW9uc1xuICAvKiogQXV0b21hdGljYWxseSBpbmRleCBhbGwgc29ydGFibGUgdG9wLWxldmVsIGZpZWxkcyBpbiB0aGUgZGF0YWJhc2UgdG8gaW1wcm92ZSBzb3J0IHBlcmZvcm1hbmNlIGFuZCBhZGQgZGF0YWJhc2UgY29tcGF0aWJpbGl0eSBmb3IgQXp1cmUgQ29zbW9zIGFuZCBzaW1pbGFyLiAqL1xuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICAvKipcbiAgICogVHJhbnNsYXRlIHlvdXIgY29udGVudCB0byBkaWZmZXJlbnQgbGFuZ3VhZ2VzL2xvY2FsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIC8vIGRpc2FibGUgbG9jYWxpemF0aW9uXG4gICAqL1xuICBsb2NhbGl6YXRpb24/OiBMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlclxuICAvKiogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0cyBvbmx5IGFyZ3VtZW50LiAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFBheWxvYWQgcGx1Z2lucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvcGx1Z2lucy9vdmVydmlld1xuICAgKi9cbiAgcGx1Z2lucz86IFBsdWdpbltdXG4gIC8qKiBDb250cm9sIHRoZSByb3V0aW5nIHN0cnVjdHVyZSB0aGF0IFBheWxvYWQgYmluZHMgaXRzZWxmIHRvLiAqL1xuICByb3V0ZXM/OiB7XG4gICAgLyoqIEBkZWZhdWx0IFwiL2FkbWluXCIgKi9cbiAgICBhZG1pbj86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hcGlcIiAgKi9cbiAgICBhcGk/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvZ3JhcGhxbFwiICAqL1xuICAgIGdyYXBoUUw/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvZ3JhcGhxbC1wbGF5Z3JvdW5kXCIgKi9cbiAgICBncmFwaFFMUGxheWdyb3VuZD86IHN0cmluZ1xuICB9XG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGFic29sdXRlIFVSTCBvZiB5b3VyIGFwcCBpbmNsdWRpbmcgdGhlIHByb3RvY29sLCBmb3IgZXhhbXBsZSBgaHR0cHM6Ly9leGFtcGxlLm9yZ2AuXG4gICAqIE5vIHBhdGhzIGFsbG93ZWQsIG9ubHkgcHJvdG9jb2wsIGRvbWFpbiBhbmQgKG9wdGlvbmFsbHkpIHBvcnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXcjb3B0aW9uc1xuICAgKi9cbiAgc2VydmVyVVJMPzogc3RyaW5nXG4gIC8qKiBTZW5kIGFub255bW91cyB0ZWxlbWV0cnkgZGF0YSBhYm91dCBnZW5lcmFsIHVzYWdlLiAqL1xuICB0ZWxlbWV0cnk/OiBib29sZWFuXG4gIC8qKiBDb250cm9sIGhvdyB0eXBlc2NyaXB0IGludGVyZmFjZXMgYXJlIGdlbmVyYXRlZCBmcm9tIHlvdXIgY29sbGVjdGlvbnMuICovXG4gIHR5cGVzY3JpcHQ/OiB7XG4gICAgLyoqIERpc2FibGUgZGVjbGFyZSBibG9jayBpbiBnZW5lcmF0ZWQgdHlwZXMgZmlsZSAqL1xuICAgIGRlY2xhcmU/OiBmYWxzZVxuICAgIC8qKiBGaWxlbmFtZSB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIHR5cGVzIHRvICovXG4gICAgb3V0cHV0RmlsZT86IHN0cmluZ1xuICB9XG4gIC8qKlxuICAgKiBDdXN0b21pemUgdGhlIGhhbmRsaW5nIG9mIGluY29taW5nIGZpbGUgdXBsb2FkcyBmb3IgY29sbGVjdGlvbnMgdGhhdCBoYXZlIHVwbG9hZHMgZW5hYmxlZC5cbiAgICovXG4gIHVwbG9hZD86IEV4cHJlc3NGaWxlVXBsb2FkT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRDb25maWcgPSBPbWl0PFxuICBEZWVwUmVxdWlyZWQ8Q29uZmlnPixcbiAgJ2NvbGxlY3Rpb25zJyB8ICdlbmRwb2ludCcgfCAnZ2xvYmFscycgfCAnbG9jYWxpemF0aW9uJ1xuPiAmIHtcbiAgY29sbGVjdGlvbnM6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdbXVxuICBlbmRwb2ludHM6IEVuZHBvaW50W11cbiAgZ2xvYmFsczogU2FuaXRpemVkR2xvYmFsQ29uZmlnW11cbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICBwYXRoczoge1xuICAgIGNvbmZpZzogc3RyaW5nXG4gICAgY29uZmlnRGlyOiBzdHJpbmdcbiAgICByYXdDb25maWc6IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIENsaWVudENvbmZpZyA9IE9taXQ8U2FuaXRpemVkQ29uZmlnLCAnZGInIHwgJ2VuZHBvaW50cyc+ICYge1xuICBjb2xsZWN0aW9uczogKE9taXQ8U2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbiAgZ2xvYmFsczogKE9taXQ8U2FuaXRpemVkR2xvYmFsQ29uZmlnLCAnYWNjZXNzJyB8ICdlbmRwb2ludHMnIHwgJ2ZpZWxkcycgfCAnaG9va3MnPiAmIHtcbiAgICBmaWVsZHM6IENsaWVudENvbmZpZ0ZpZWxkW11cbiAgfSlbXVxufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlEZXNjcmlwdGlvbiA9XG4gIHwgKCgpID0+IHN0cmluZylcbiAgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHwgc3RyaW5nXG4iXSwibmFtZXMiOlsiaGFzVHJhbnNwb3J0IiwiaGFzVHJhbnNwb3J0T3B0aW9ucyIsImVtYWlsQ29uZmlnIiwidHJhbnNwb3J0IiwidW5kZWZpbmVkIiwidHJhbnNwb3J0T3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFpR2dCQSxZQUFZO2VBQVpBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOzs7QUFSVCxTQUFTRCxhQUFhRSxXQUF5QjtJQUNwRCxPQUFPLEFBQUNBLFlBQStCQyxTQUFTLEtBQUtDO0FBQ3ZEO0FBTU8sU0FBU0gsb0JBQ2RDLFdBQXlCO0lBRXpCLE9BQU8sQUFBQ0EsWUFBc0NHLGdCQUFnQixLQUFLRDtBQUNyRSJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgc2hhcnAgfSBmcm9tICdzaGFycCdcbmltcG9ydCB0eXBlIHsgRGVlcFJlcXVpcmVkIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4nXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50VGFiLCBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9hZG1pbi90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRtaW5WaWV3LCBTZXJ2ZXJTaWRlRWRpdFZpZXdQcm9wcyB9IGZyb20gJy4uL2FkbWluL3ZpZXdzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi4vYXV0aC90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQWZ0ZXJFcnJvckhvb2ssXG4gIENvbGxlY3Rpb24sXG4gIENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG59IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VBZGFwdGVyUmVzdWx0IH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENsaWVudENvbmZpZ0ZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBHbG9iYWxzLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRMb2dnZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHRDb25maWcgPSB7XG4gIGtleTogc3RyaW5nXG4gIHNjcmlwdFBhdGg6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHQgPSAoY29uZmlnOiBTYW5pdGl6ZWRDb25maWcpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlld0NvbmZpZyA9IHtcbiAgLyoqXG4gICBEZXZpY2UgYnJlYWtwb2ludHMgdG8gdXNlIGZvciB0aGUgYGlmcmFtZWAgb2YgdGhlIExpdmUgUHJldmlldyB3aW5kb3cuXG4gICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgIFBheWxvYWQgd2lsbCBzZW5kIGEgYHdpbmRvdy5wb3N0TWVzc2FnZSgpYCB0byB0aGlzIFVSTCB3aXRoIHRoZSBkb2N1bWVudCBkYXRhIGluIHJlYWwtdGltZS5cbiAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7XG4gICAgICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICAgICAgZG9jdW1lbnRJbmZvOiBhbnkgLy8gVE9ETzogcmVtb3ZlIG9yIHBvcHVsYXRlIHRoaXNcbiAgICAgICAgbG9jYWxlOiBMb2NhbGVcbiAgICAgIH0pID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxJbmZvID0ge1xuICBNdXRhdGlvbjoge1xuICAgIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PlxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG4gIFF1ZXJ5OiB7XG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgY29sbGVjdGlvbnM6IHtcbiAgICBbc2x1ZzogbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogQ29sbGVjdGlvblxuICB9XG4gIGdsb2JhbHM6IEdsb2JhbHNcbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxUeXBlPlxuICAgIGJsb2NrSW5wdXRUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMSW5wdXRPYmplY3RUeXBlPlxuICAgIGJsb2NrVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gICAgZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGU/OiBHcmFwaFFMLkdyYXBoUUxFbnVtVHlwZSB8IEdyYXBoUUwuR3JhcGhRTFNjYWxhclR5cGVcbiAgICBncm91cFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICAgIGxvY2FsZUlucHV0VHlwZT86IEdyYXBoUUwuR3JhcGhRTEVudW1UeXBlIHwgR3JhcGhRTC5HcmFwaFFMU2NhbGFyVHlwZVxuICAgIHRhYlR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICB9XG59XG5leHBvcnQgdHlwZSBHcmFwaFFMRXh0ZW5zaW9uID0gKFxuICBncmFwaFFMOiB0eXBlb2YgR3JhcGhRTCxcbiAgY29udGV4dDoge1xuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIH0gJiBHcmFwaFFMSW5mbyxcbikgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuZXhwb3J0IHR5cGUgSW5pdE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBTb21ldGltZXMsIHdpdGggdGhlIGxvY2FsIEFQSSwgeW91IG1pZ2h0IG5lZWQgdG8gcGFzcyBhIGNvbmZpZyBmaWxlIGRpcmVjdGx5LCBmb3IgZXhhbXBsZSwgc2VydmVybGVzcyBvbiBWZXJjZWxcbiAgICogVGhlIHBhc3NlZCBjb25maWcgc2hvdWxkIG1hdGNoIHRoZSBjb25maWcgZmlsZSwgYW5kIGlmIGl0IGRvZXNuJ3QsIHRoZXJlIGNvdWxkIGJlIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgYWRtaW4gVUlcbiAgICogYW5kIHRoZSBiYWNrZW5kIGZ1bmN0aW9uYWxpdHlcbiAgICovXG4gIGNvbmZpZzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+IHwgU2FuaXRpemVkQ29uZmlnXG4gIC8qKlxuICAgKiBEaXNhYmxlIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIG9uIGluaXRcbiAgICovXG4gIGRpc2FibGVEQkNvbm5lY3Q/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIERpc2FibGUgcnVubmluZyBvZiB0aGUgYG9uSW5pdGAgZnVuY3Rpb25cbiAgICovXG4gIGRpc2FibGVPbkluaXQ/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQncyBlbWFpbCBmdW5jdGlvbmFsaXR5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuXG4gIC8qKlxuICAgKiBBIHByZXZpb3VzbHkgaW5zdGFudGlhdGVkIGxvZ2dlciBpbnN0YW5jZS4gTXVzdCBjb25mb3JtIHRvIHRoZSBQYXlsb2FkTG9nZ2VyIGludGVyZmFjZSB3aGljaCB1c2VzIFBpbm9cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGJyaW5nIHlvdXIgb3duIGxvZ2dlciBpbnN0YW5jZSBhbmQgbGV0IHBheWxvYWQgdXNlIGl0XG4gICAqL1xuICBsb2dnZXI/OiBQYXlsb2FkTG9nZ2VyXG5cbiAgbG9nZ2VyRGVzdGluYXRpb24/OiBEZXN0aW5hdGlvblN0cmVhbVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdCdzIG9ubHkgYXJndW1lbnQuXG4gICAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbn1cblxuLyoqXG4gKiBUaGlzIHJlc3VsdCBpcyBjYWxjdWxhdGVkIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCB0aGVuIHNlbnQgdG8gdGhlIGNsaWVudCBhbGxvd2luZyB0aGUgZGFzaGJvYXJkIHRvIHNob3cgYWNjZXNzaWJsZSBkYXRhIGFuZCBhY3Rpb25zLlxuICpcbiAqIElmIHRoZSByZXN1bHQgaXMgYHRydWVgLCB0aGUgdXNlciBoYXMgYWNjZXNzLlxuICogSWYgdGhlIHJlc3VsdCBpcyBhbiBvYmplY3QsIGl0IGlzIGludGVycHJldGVkIGFzIGEgTW9uZ29EQiBxdWVyeS5cbiAqXG4gKiBAZXhhbXBsZSBgeyBjcmVhdGVkQnk6IHsgZXF1YWxzOiBpZCB9IH1gXG4gKlxuICogQGV4YW1wbGUgYHsgdGVuYW50OiB7IGluOiB0ZW5hbnRJZHMgfSB9YFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIEFjY2Vzc1Jlc3VsdCA9IFdoZXJlIHwgYm9vbGVhblxuXG5leHBvcnQgdHlwZSBBY2Nlc3NBcmdzPFQgPSBhbnksIFUgPSBhbnk+ID0ge1xuICAvKipcbiAgICogVGhlIHJlbGV2YW50IHJlc291cmNlIHRoYXQgaXMgYmVpbmcgYWNjZXNzZWQuXG4gICAqXG4gICAqIGBkYXRhYCBpcyBudWxsIHdoZW4gYSBsaXN0IGlzIHJlcXVlc3RlZFxuICAgKi9cbiAgZGF0YT86IFRcbiAgLyoqIElEIG9mIHRoZSByZXNvdXJjZSBiZWluZyBhY2Nlc3NlZCAqL1xuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICAvKiogSWYgdHJ1ZSwgdGhlIHJlcXVlc3QgaXMgZm9yIGEgc3RhdGljIGZpbGUgKi9cbiAgaXNSZWFkaW5nU3RhdGljRmlsZT86IGJvb2xlYW5cbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIFdlYiBSZXF1ZXN0L1Jlc3BvbnNlIG1vZGVsLCBidXQgdGhlIHRoZSByZXEgaGFzIG1vcmUgcGF5bG9hZCBzcGVjaWZpYyBwcm9wZXJ0aWVzIGFkZGVkIHRvIGl0LiAqL1xuZXhwb3J0IHR5cGUgUGF5bG9hZEhhbmRsZXIgPSAocmVxOiBQYXlsb2FkUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZVxuXG4vKipcbiAqIERvY3M6IGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9yZXN0LWFwaS9vdmVydmlldyNjdXN0b20tZW5kcG9pbnRzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50PFUgPSBVc2VyPiA9IHtcbiAgLyoqIEV4dGVuc2lvbiBwb2ludCB0byBhZGQgeW91ciBjdXN0b20gZGF0YS4gKi9cbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgYW55PlxuXG4gIC8qKlxuICAgKiBNaWRkbGV3YXJlIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgcGF0aC9tZXRob2QgbWF0Y2hlc1xuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggV2ViIFJlcXVlc3QvUmVzcG9uc2UgTW9kZWxcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyXG4gIC8qKiBIVFRQIG1ldGhvZCAob3IgXCJhbGxcIikgKi9cbiAgbWV0aG9kOiAnY29ubmVjdCcgfCAnZGVsZXRlJyB8ICdnZXQnIHwgJ2hlYWQnIHwgJ29wdGlvbnMnIHwgJ3BhdGNoJyB8ICdwb3N0JyB8ICdwdXQnXG4gIC8qKlxuICAgKiBQYXR0ZXJuIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSBwYXRoIG9mIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCB0aGUgRXhwcmVzcyByb3V0ZXJcbiAgICovXG4gIHBhdGg6IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgaW4gMy4wXG4gICAqXG4gICAqIFBsZWFzZSBhZGQgXCJyb290XCIgcm91dGVzIHVuZGVyIHRoZSAvYXBpIGZvbGRlciBpbiB0aGUgUGF5bG9hZCBQcm9qZWN0LlxuICAgKiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL3JvdXRlXG4gICAqL1xuICByb290PzogbmV2ZXJcbn1cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPFNlcnZlclNpZGVFZGl0Vmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbmZpZyA9XG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBBZGQgYSBuZXcgRWRpdCB2aWV3IHRvIHRoZSBhZG1pbiBwYW5lbFxuICAgICAgICogaS5lLiB5b3UgY2FuIHJlbmRlciBhIGN1c3RvbSB2aWV3IHRoYXQgaGFzIG5vIHRhYiwgaWYgZGVzaXJlZFxuICAgICAgICogT3Igb3ZlcnJpZGUgYSBzcGVjaWZpYyBwcm9wZXJ0aWVzIG9mIGFuIGV4aXN0aW5nIG9uZVxuICAgICAgICogaS5lLiB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgYERlZmF1bHRgIHZpZXcgdGFiIGxhYmVsLCBpZiBkZXNpcmVkXG4gICAgICAgKi9cbiAgICAgIFRhYj86IERvY3VtZW50VGFiXG4gICAgICBwYXRoPzogc3RyaW5nXG4gICAgfVxuICB8IHtcbiAgICAgIENvbXBvbmVudDogRWRpdFZpZXdDb21wb25lbnRcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBhY3Rpb25zPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICB9XG5cbi8qKlxuICogT3ZlcnJpZGUgZXhpc3Rpbmcgdmlld3NcbiAqIGkuZS4gRGFzaGJvYXJkLCBBY2NvdW50LCBBUEksIExpdmVQcmV2aWV3LCBldGMuXG4gKiBQYXRoIGlzIG5vdCBhdmFpbGFibGUgaGVyZVxuICogQWxsIFRhYiBwcm9wZXJ0aWVzIGJlY29tZSBvcHRpb25hbFxuICogaS5lLiB5b3UgY2FuIGNoYW5nZSBqdXN0IHRoZSBsYWJlbCwgaWYgZGVzaXJlZFxuICovXG5leHBvcnQgdHlwZSBFZGl0VmlldyA9IEVkaXRWaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0ge1xuICAvKipcbiAgICogdmFsdWUgb2Ygc3VwcG9ydGVkIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBcImVuXCJcbiAgICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKipcbiAgICogQ29kZSBvZiBhbm90aGVyIGxvY2FsZSB0byB1c2Ugd2hlbiByZWFkaW5nIGRvY3VtZW50cyB3aXRoIGZhbGxiYWNrLCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRMb2NhbGUgaXMgdXNlZFxuICAgKi9cbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG5leHBvcnQgdHlwZSBTaGFycERlcGVuZGVuY3kgPSAoXG4gIGlucHV0PzpcbiAgICB8IEFycmF5QnVmZmVyXG4gICAgfCBCdWZmZXJcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IHN0cmluZyxcbiAgb3B0aW9ucz86IHNoYXJwLlNoYXJwT3B0aW9ucyxcbikgPT4gc2hhcnAuU2hhcnBcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLyoqIENvbmZpZ3VyZSBhZG1pbiBkYXNoYm9hcmQgKi9cbiAgYWRtaW4/OiB7XG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgbG9nIGluIGFzIGEgdXNlciB3aGVuIHZpc2l0aW5nIHRoZSBhZG1pbiBkYXNoYm9hcmQuICovXG4gICAgYXV0b0xvZ2luPzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nXG4gICAgICAgICAgLyoqIFRoZSBwYXNzd29yZCBvZiB0aGUgdXNlciB0byBsb2dpbiBhcyAqL1xuICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGxvZ2luIGNyZWRlbnRpYWxzIHdpbGwgYmUgcHJlZmlsbGVkIGJ1dCB0aGUgdXNlciB3aWxsIHN0aWxsIG5lZWQgdG8gY2xpY2sgdGhlIGxvZ2luIGJ1dHRvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJlZmlsbE9ubHk/OiBib29sZWFuXG4gICAgICAgIH1cbiAgICAgIHwgZmFsc2VcblxuICAgIC8qKiBTZXQgYWNjb3VudCBwcm9maWxlIHBpY3R1cmUuIE9wdGlvbnM6IGdyYXZhdGFyLCBkZWZhdWx0IG9yIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gKi9cbiAgICBhdmF0YXI/OiAnZGVmYXVsdCcgfCAnZ3JhdmF0YXInIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSBwYXRoIGZvciB3aGVyZSB0byBzdG9yZSB0aGUgYnVpbHQgQWRtaW4gcGFuZWwgYnVuZGxlIHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiL2J1aWxkXCJcbiAgICAgKiAqL1xuICAgIGJ1aWxkUGF0aD86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgdG8gdGhlIHRvcCByaWdodCBvZiB0aGUgQWRtaW4gUGFuZWxcbiAgICAgICAqL1xuICAgICAgYWN0aW9ucz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBhZnRlckRhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBhZnRlck5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBiZWZvcmVMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqIFJlcGxhY2UgZ3JhcGhpY2FsIGNvbXBvbmVudHMgKi9cbiAgICAgIGdyYXBoaWNzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgaWNvbiBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBJY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvIG9uIHRoZSBsb2dpbiBwYWdlICovXG4gICAgICAgIExvZ28/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKiBSZXBsYWNlIGxvZ291dCByZWxhdGVkIGNvbXBvbmVudHMgKi9cbiAgICAgIGxvZ291dD86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ291dCBidXR0b24gICovXG4gICAgICAgIEJ1dHRvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBXcmFwIHRoZSBhZG1pbiBkYXNoYm9hcmQgaW4gY3VzdG9tIGNvbnRleHQgcHJvdmlkZXJzXG4gICAgICAgKi9cbiAgICAgIHByb3ZpZGVycz86IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+W11cbiAgICAgIC8qKlxuICAgICAgICogUmVwbGFjZSBvciBtb2RpZnkgdG9wLWxldmVsIGFkbWluIHJvdXRlcywgb3IgYWRkIG5ldyBvbmVzOlxuICAgICAgICogKyBgQWNjb3VudGAgLSBgL2FkbWluL2FjY291bnRgXG4gICAgICAgKiArIGBEYXNoYm9hcmRgIC0gYC9hZG1pbmBcbiAgICAgICAqICsgYDpwYXRoYCAtIGAvYWRtaW4vOnBhdGhgXG4gICAgICAgKi9cbiAgICAgIHZpZXdzPzoge1xuICAgICAgICAvKiogQWRkIGN1c3RvbSBhZG1pbiB2aWV3cyAqL1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFjY291bnQgc2NyZWVuICovXG4gICAgICAgIEFjY291bnQ/OiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFkbWluIGhvbWVwYWdlICovXG4gICAgICAgIERhc2hib2FyZD86IEFkbWluVmlld1xuICAgICAgfVxuICAgIH1cbiAgICAvKiogR2xvYmFsIGRhdGUgZm9ybWF0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgZGF0ZXMgaW4gdGhlIEFkbWluIHBhbmVsLiBBbnkgdmFsaWQgZGF0ZS1mbnMgZm9ybWF0IHBhdHRlcm4gY2FuIGJlIHVzZWQuICovXG4gICAgZGF0ZUZvcm1hdD86IHN0cmluZ1xuICAgIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGVudGlyZSBBZG1pbiBwYW5lbCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgLyoqIFRoZSByb3V0ZSB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgYmVpbmcgaW5hY3RpdmUgZm9yIHRvbyBsb25nLiAqL1xuICAgIGluYWN0aXZpdHlSb3V0ZT86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICB9XG4gIC8qKiBDdXN0b20gUGF5bG9hZCBiaW4gc2NyaXB0cyBjYW4gYmUgaW5qZWN0ZWQgdmlhIHRoZSBjb25maWcuICovXG4gIGJpbj86IEJpblNjcmlwdENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogRGF0YWJhc2VBZGFwdGVyUmVzdWx0XG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyPGFueSwgYW55LCBhbnk+XG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9vdmVydmlld1xuICAgKi9cbiAgZ3JhcGhRTD86IHtcbiAgICBkaXNhYmxlPzogYm9vbGVhblxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uPzogYm9vbGVhblxuICAgIG1heENvbXBsZXhpdHk/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBtdXRhdGlvbnNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgbXV0YXRpb25zPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIHF1ZXJpZXNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgcXVlcmllcz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICBzY2hlbWFPdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIFRhcCBpbnRvIFBheWxvYWQtd2lkZSBob29rcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvaG9va3Mvb3ZlcnZpZXdcbiAgICovXG4gIGhvb2tzPzoge1xuICAgIGFmdGVyRXJyb3I/OiBBZnRlckVycm9ySG9va1xuICB9XG4gIC8qKiBpMThuIGNvbmZpZyBzZXR0aW5ncyAqL1xuICBpMThuPzogSTE4bk9wdGlvbnNcbiAgLyoqIEF1dG9tYXRpY2FsbHkgaW5kZXggYWxsIHNvcnRhYmxlIHRvcC1sZXZlbCBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHRvIGltcHJvdmUgc29ydCBwZXJmb3JtYW5jZSBhbmQgYWRkIGRhdGFiYXNlIGNvbXBhdGliaWxpdHkgZm9yIEF6dXJlIENvc21vcyBhbmQgc2ltaWxhci4gKi9cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSB5b3VyIGNvbnRlbnQgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy9sb2NhbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAvLyBkaXNhYmxlIGxvY2FsaXphdGlvblxuICAgKi9cbiAgbG9jYWxpemF0aW9uPzogTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdHMgb25seSBhcmd1bWVudC4gKi9cbiAgb25Jbml0PzogKHBheWxvYWQ6IFBheWxvYWQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXlsb2FkIHBsdWdpbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3BsdWdpbnMvb3ZlcnZpZXdcbiAgICovXG4gIHBsdWdpbnM/OiBQbHVnaW5bXVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWwtcGxheWdyb3VuZFwiICovXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ/OiBzdHJpbmdcbiAgfVxuICAvKiogU2VjdXJlIHN0cmluZyB0aGF0IFBheWxvYWQgd2lsbCB1c2UgZm9yIGFueSBlbmNyeXB0aW9uIHdvcmtmbG93cyAqL1xuICBzZWNyZXQ6IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhYnNvbHV0ZSBVUkwgb2YgeW91ciBhcHAgaW5jbHVkaW5nIHRoZSBwcm90b2NvbCwgZm9yIGV4YW1wbGUgYGh0dHBzOi8vZXhhbXBsZS5vcmdgLlxuICAgKiBObyBwYXRocyBhbGxvd2VkLCBvbmx5IHByb3RvY29sLCBkb21haW4gYW5kIChvcHRpb25hbGx5KSBwb3J0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3I29wdGlvbnNcbiAgICovXG4gIHNlcnZlclVSTD86IHN0cmluZ1xuICAvKipcbiAgICogUGFzcyBpbiBhIGxvY2FsIGNvcHkgb2YgU2hhcnAgaWYgeW91J2QgbGlrZSB0byB1c2UgaXQuXG4gICAqXG4gICAqL1xuICBzaGFycD86IFNoYXJwRGVwZW5kZW5jeVxuICAvKiogU2VuZCBhbm9ueW1vdXMgdGVsZW1ldHJ5IGRhdGEgYWJvdXQgZ2VuZXJhbCB1c2FnZS4gKi9cbiAgdGVsZW1ldHJ5PzogYm9vbGVhblxuICAvKiogQ29udHJvbCBob3cgdHlwZXNjcmlwdCBpbnRlcmZhY2VzIGFyZSBnZW5lcmF0ZWQgZnJvbSB5b3VyIGNvbGxlY3Rpb25zLiAqL1xuICB0eXBlc2NyaXB0Pzoge1xuICAgIC8qKiBEaXNhYmxlIGRlY2xhcmUgYmxvY2sgaW4gZ2VuZXJhdGVkIHR5cGVzIGZpbGUgKi9cbiAgICBkZWNsYXJlPzogZmFsc2VcbiAgICAvKiogRmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCB0eXBlcyB0byAqL1xuICAgIG91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBmaWxlIHVwbG9hZHMgZm9yIGNvbGxlY3Rpb25zIHRoYXQgaGF2ZSB1cGxvYWRzIGVuYWJsZWQuXG4gICAqL1xuICB1cGxvYWQ/OiBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkQ29uZmlnID0gT21pdDxcbiAgRGVlcFJlcXVpcmVkPENvbmZpZz4sXG4gICdjb2xsZWN0aW9ucycgfCAnZW5kcG9pbnQnIHwgJ2dsb2JhbHMnIHwgJ2xvY2FsaXphdGlvbidcbj4gJiB7XG4gIGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW11cbiAgZW5kcG9pbnRzOiBFbmRwb2ludFtdXG4gIGdsb2JhbHM6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgcGF0aHM6IHtcbiAgICBjb25maWc6IHN0cmluZ1xuICAgIGNvbmZpZ0Rpcjogc3RyaW5nXG4gICAgcmF3Q29uZmlnOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRDb25maWcgPSBPbWl0PFNhbml0aXplZENvbmZpZywgJ2RiJyB8ICdlbmRwb2ludHMnPiAmIHtcbiAgY29sbGVjdGlvbnM6IChPbWl0PFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsICdhY2Nlc3MnIHwgJ2VuZHBvaW50cycgfCAnZmllbGRzJyB8ICdob29rcyc+ICYge1xuICAgIGZpZWxkczogQ2xpZW50Q29uZmlnRmllbGRbXVxuICB9KVtdXG4gIGdsb2JhbHM6IChPbWl0PFNhbml0aXplZEdsb2JhbENvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImVtYWlsQ29uZmlnIiwidHJhbnNwb3J0IiwidW5kZWZpbmVkIiwiaGFzVHJhbnNwb3J0T3B0aW9ucyIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQStGQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNBLGFBQWFDLFdBQXlCO0lBQ3BELE9BQU8sQUFBQ0EsWUFBK0JDLFNBQVMsS0FBS0M7QUFDdkQ7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNDLG9CQUNkSCxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDSSxnQkFBZ0IsS0FBS0Y7QUFDckUifQ==
@@ -1,86 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _schema = /*#__PURE__*/ _interop_require_default(require("../collections/config/schema"));
12
- const _schema1 = /*#__PURE__*/ _interop_require_wildcard(require("../fields/config/schema"));
13
- const _types = require("../fields/config/types");
14
- const _schema2 = /*#__PURE__*/ _interop_require_default(require("../globals/config/schema"));
15
- const _schema3 = /*#__PURE__*/ _interop_require_default(require("./schema"));
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- function _getRequireWildcardCache(nodeInterop) {
22
- if (typeof WeakMap !== "function") return null;
23
- var cacheBabelInterop = new WeakMap();
24
- var cacheNodeInterop = new WeakMap();
25
- return (_getRequireWildcardCache = function(nodeInterop) {
26
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
27
- })(nodeInterop);
28
- }
29
- function _interop_require_wildcard(obj, nodeInterop) {
30
- if (!nodeInterop && obj && obj.__esModule) {
31
- return obj;
32
- }
33
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
34
- return {
35
- default: obj
36
- };
37
- }
38
- var cache = _getRequireWildcardCache(nodeInterop);
39
- if (cache && cache.has(obj)) {
40
- return cache.get(obj);
41
- }
42
- var newObj = {
43
- __proto__: null
44
- };
45
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
- for(var key in obj){
47
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
48
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
49
- if (desc && (desc.get || desc.set)) {
50
- Object.defineProperty(newObj, key, desc);
51
- } else {
52
- newObj[key] = obj[key];
53
- }
54
- }
55
- }
56
- newObj.default = obj;
57
- if (cache) {
58
- cache.set(obj, newObj);
59
- }
60
- return newObj;
61
- }
1
+ import collectionSchema from '../collections/config/schema';
2
+ import fieldSchema, { idField } from '../fields/config/schema';
3
+ import { fieldAffectsData } from '../fields/config/types';
4
+ import globalSchema from '../globals/config/schema';
5
+ import schema from './schema';
62
6
  const validateFields = (context, entity)=>{
63
7
  const errors = [];
64
8
  entity.fields.forEach((field)=>{
65
9
  let idResult = {
66
10
  error: null
67
11
  };
68
- if ((0, _types.fieldAffectsData)(field) && field.name === 'id') {
69
- idResult = _schema1.idField.validate(field, {
12
+ if (fieldAffectsData(field) && field.name === 'id') {
13
+ idResult = idField.validate(field, {
70
14
  abortEarly: false
71
15
  });
72
16
  }
73
- const result = _schema1.default.validate(field, {
17
+ const result = fieldSchema.validate(field, {
74
18
  abortEarly: false
75
19
  });
76
20
  if (idResult.error) {
77
21
  idResult.error.details.forEach(({ message })=>{
78
- errors.push(`${context} "${entity.slug}" > Field${(0, _types.fieldAffectsData)(field) ? ` "${field.name}" >` : ''} ${message}`);
22
+ errors.push(`${context} "${entity.slug}" > Field${fieldAffectsData(field) ? ` "${field.name}" >` : ''} ${message}`);
79
23
  });
80
24
  }
81
25
  if (result.error) {
82
26
  result.error.details.forEach(({ message })=>{
83
- errors.push(`${context} "${entity.slug}" > Field${(0, _types.fieldAffectsData)(field) ? ` "${field.name}" >` : ''} ${message}`);
27
+ errors.push(`${context} "${entity.slug}" > Field${fieldAffectsData(field) ? ` "${field.name}" >` : ''} ${message}`);
84
28
  });
85
29
  }
86
30
  });
@@ -89,7 +33,7 @@ const validateFields = (context, entity)=>{
89
33
  const validateCollections = async (collections)=>{
90
34
  const errors = [];
91
35
  collections.forEach((collection)=>{
92
- const result = _schema.default.validate(collection, {
36
+ const result = collectionSchema.validate(collection, {
93
37
  abortEarly: false
94
38
  });
95
39
  if (result.error) {
@@ -104,7 +48,7 @@ const validateCollections = async (collections)=>{
104
48
  const validateGlobals = (globals)=>{
105
49
  const errors = [];
106
50
  globals.forEach((global)=>{
107
- const result = _schema2.default.validate(global, {
51
+ const result = globalSchema.validate(global, {
108
52
  abortEarly: false
109
53
  });
110
54
  if (result.error) {
@@ -117,7 +61,7 @@ const validateGlobals = (globals)=>{
117
61
  return errors;
118
62
  };
119
63
  const validateSchema = async (config, logger)=>{
120
- const result = _schema3.default.validate(config, {
64
+ const result = schema.validate(config, {
121
65
  abortEarly: false
122
66
  });
123
67
  const nestedErrors = [
@@ -141,6 +85,6 @@ const validateSchema = async (config, logger)=>{
141
85
  }
142
86
  return result.value;
143
87
  };
144
- const _default = validateSchema;
88
+ export default validateSchema;
145
89
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJ1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY29sbGVjdGlvblNjaGVtYSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvc2NoZW1hJ1xuaW1wb3J0IGZpZWxkU2NoZW1hLCB7IGlkRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3NjaGVtYSdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdsb2JhbFNjaGVtYSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQgc2NoZW1hIGZyb20gJy4vc2NoZW1hJ1xuXG5jb25zdCB2YWxpZGF0ZUZpZWxkcyA9IChcbiAgY29udGV4dDogc3RyaW5nLFxuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBlbnRpdHkuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgbGV0IGlkUmVzdWx0OiBQYXJ0aWFsPFZhbGlkYXRpb25SZXN1bHQ+ID0geyBlcnJvcjogbnVsbCB9XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlkUmVzdWx0ID0gaWRGaWVsZC52YWxpZGF0ZShmaWVsZCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkU2NoZW1hLnZhbGlkYXRlKGZpZWxkLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKGlkUmVzdWx0LmVycm9yKSB7XG4gICAgICBpZFJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGAke2NvbnRleHR9IFwiJHtlbnRpdHkuc2x1Z31cIiA+IEZpZWxkJHtcbiAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpID8gYCBcIiR7ZmllbGQubmFtZX1cIiA+YCA6ICcnXG4gICAgICAgICAgfSAke21lc3NhZ2V9YCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYCR7Y29udGV4dH0gXCIke2VudGl0eS5zbHVnfVwiID4gRmllbGQke1xuICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBgIFwiJHtmaWVsZC5uYW1lfVwiID5gIDogJydcbiAgICAgICAgICB9ICR7bWVzc2FnZX1gLFxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZUNvbGxlY3Rpb25zID0gYXN5bmMgKGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW10pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvblNjaGVtYS52YWxpZGF0ZShjb2xsZWN0aW9uLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goYENvbGxlY3Rpb24gXCIke2NvbGxlY3Rpb24uc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0NvbGxlY3Rpb24nLCBjb2xsZWN0aW9uKSlcbiAgfSlcblxuICByZXR1cm4gZXJyb3JzXG59XG5cbmNvbnN0IHZhbGlkYXRlR2xvYmFscyA9IChnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdXG4gIGdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2xvYmFsU2NoZW1hLnZhbGlkYXRlKGdsb2JhbCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBHbG9iYWxzIFwiJHtnbG9iYWwuc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0dsb2JhbCcsIGdsb2JhbCkpXG4gIH0pXG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZVNjaGVtYSA9IGFzeW5jIChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnZhbGlkYXRlKGNvbmZpZywge1xuICAgIGFib3J0RWFybHk6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IG5lc3RlZEVycm9ycyA9IFtcbiAgICAuLi4oYXdhaXQgdmFsaWRhdGVDb2xsZWN0aW9ucyhjb25maWcuY29sbGVjdGlvbnMpKSxcbiAgICAuLi52YWxpZGF0ZUdsb2JhbHMoY29uZmlnLmdsb2JhbHMpLFxuICBdXG5cbiAgaWYgKHJlc3VsdC5lcnJvciB8fCBuZXN0ZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBUaGVyZSB3ZXJlICR7XG4gICAgICAgIChyZXN1bHQuZXJyb3I/LmRldGFpbHM/Lmxlbmd0aCB8fCAwKSArIG5lc3RlZEVycm9ycy5sZW5ndGhcbiAgICAgIH0gZXJyb3JzIHZhbGlkYXRpbmcgeW91ciBQYXlsb2FkIGNvbmZpZ2AsXG4gICAgKVxuXG4gICAgbGV0IGkgPSAwXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgaSArPSAxXG4gICAgICAgIGxvZ2dlci5lcnJvcihgJHtpfTogJHttZXNzYWdlfWApXG4gICAgICB9KVxuICAgIH1cbiAgICBuZXN0ZWRFcnJvcnMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgICAgaSArPSAxXG4gICAgICBsb2dnZXIuZXJyb3IoYCR7aX06ICR7bWVzc2FnZX1gKVxuICAgIH0pXG5cbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHQudmFsdWVcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdGVTY2hlbWFcbiJdLCJuYW1lcyI6WyJ2YWxpZGF0ZUZpZWxkcyIsImNvbnRleHQiLCJlbnRpdHkiLCJlcnJvcnMiLCJmaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJpZFJlc3VsdCIsImVycm9yIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZEZpZWxkIiwidmFsaWRhdGUiLCJhYm9ydEVhcmx5IiwicmVzdWx0IiwiZmllbGRTY2hlbWEiLCJkZXRhaWxzIiwibWVzc2FnZSIsInB1c2giLCJzbHVnIiwidmFsaWRhdGVDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbiIsImNvbGxlY3Rpb25TY2hlbWEiLCJ2YWxpZGF0ZUdsb2JhbHMiLCJnbG9iYWxzIiwiZ2xvYmFsIiwiZ2xvYmFsU2NoZW1hIiwidmFsaWRhdGVTY2hlbWEiLCJjb25maWciLCJsb2dnZXIiLCJzY2hlbWEiLCJuZXN0ZWRFcnJvcnMiLCJsZW5ndGgiLCJpIiwicHJvY2VzcyIsImV4aXQiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFtSEE7OztlQUFBOzs7K0RBNUc2QjtpRUFDUTt1QkFDSjtnRUFDUjtnRUFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkIsTUFBTUEsaUJBQWlCLENBQ3JCQyxTQUNBQztJQUVBLE1BQU1DLFNBQW1CLEVBQUU7SUFDM0JELE9BQU9FLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLENBQUNDO1FBQ3JCLElBQUlDLFdBQXNDO1lBQUVDLE9BQU87UUFBSztRQUN4RCxJQUFJQyxJQUFBQSx1QkFBZ0IsRUFBQ0gsVUFBVUEsTUFBTUksSUFBSSxLQUFLLE1BQU07WUFDbERILFdBQVdJLGdCQUFPLENBQUNDLFFBQVEsQ0FBQ04sT0FBTztnQkFBRU8sWUFBWTtZQUFNO1FBQ3pEO1FBRUEsTUFBTUMsU0FBU0MsZ0JBQVcsQ0FBQ0gsUUFBUSxDQUFDTixPQUFPO1lBQUVPLFlBQVk7UUFBTTtRQUMvRCxJQUFJTixTQUFTQyxLQUFLLEVBQUU7WUFDbEJELFNBQVNDLEtBQUssQ0FBQ1EsT0FBTyxDQUFDWCxPQUFPLENBQUMsQ0FBQyxFQUFFWSxPQUFPLEVBQUU7Z0JBQ3pD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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJ1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY29sbGVjdGlvblNjaGVtYSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvc2NoZW1hJ1xuaW1wb3J0IGZpZWxkU2NoZW1hLCB7IGlkRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3NjaGVtYSdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdsb2JhbFNjaGVtYSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQgc2NoZW1hIGZyb20gJy4vc2NoZW1hJ1xuXG5jb25zdCB2YWxpZGF0ZUZpZWxkcyA9IChcbiAgY29udGV4dDogc3RyaW5nLFxuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBlbnRpdHkuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgbGV0IGlkUmVzdWx0OiBQYXJ0aWFsPFZhbGlkYXRpb25SZXN1bHQ+ID0geyBlcnJvcjogbnVsbCB9XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlkUmVzdWx0ID0gaWRGaWVsZC52YWxpZGF0ZShmaWVsZCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkU2NoZW1hLnZhbGlkYXRlKGZpZWxkLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKGlkUmVzdWx0LmVycm9yKSB7XG4gICAgICBpZFJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGAke2NvbnRleHR9IFwiJHtlbnRpdHkuc2x1Z31cIiA+IEZpZWxkJHtcbiAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpID8gYCBcIiR7ZmllbGQubmFtZX1cIiA+YCA6ICcnXG4gICAgICAgICAgfSAke21lc3NhZ2V9YCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYCR7Y29udGV4dH0gXCIke2VudGl0eS5zbHVnfVwiID4gRmllbGQke1xuICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBgIFwiJHtmaWVsZC5uYW1lfVwiID5gIDogJydcbiAgICAgICAgICB9ICR7bWVzc2FnZX1gLFxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZUNvbGxlY3Rpb25zID0gYXN5bmMgKGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW10pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvblNjaGVtYS52YWxpZGF0ZShjb2xsZWN0aW9uLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goYENvbGxlY3Rpb24gXCIke2NvbGxlY3Rpb24uc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0NvbGxlY3Rpb24nLCBjb2xsZWN0aW9uKSlcbiAgfSlcblxuICByZXR1cm4gZXJyb3JzXG59XG5cbmNvbnN0IHZhbGlkYXRlR2xvYmFscyA9IChnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdXG4gIGdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2xvYmFsU2NoZW1hLnZhbGlkYXRlKGdsb2JhbCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBHbG9iYWxzIFwiJHtnbG9iYWwuc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0dsb2JhbCcsIGdsb2JhbCkpXG4gIH0pXG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZVNjaGVtYSA9IGFzeW5jIChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnZhbGlkYXRlKGNvbmZpZywge1xuICAgIGFib3J0RWFybHk6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IG5lc3RlZEVycm9ycyA9IFtcbiAgICAuLi4oYXdhaXQgdmFsaWRhdGVDb2xsZWN0aW9ucyhjb25maWcuY29sbGVjdGlvbnMpKSxcbiAgICAuLi52YWxpZGF0ZUdsb2JhbHMoY29uZmlnLmdsb2JhbHMpLFxuICBdXG5cbiAgaWYgKHJlc3VsdC5lcnJvciB8fCBuZXN0ZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBUaGVyZSB3ZXJlICR7XG4gICAgICAgIChyZXN1bHQuZXJyb3I/LmRldGFpbHM/Lmxlbmd0aCB8fCAwKSArIG5lc3RlZEVycm9ycy5sZW5ndGhcbiAgICAgIH0gZXJyb3JzIHZhbGlkYXRpbmcgeW91ciBQYXlsb2FkIGNvbmZpZ2AsXG4gICAgKVxuXG4gICAgbGV0IGkgPSAwXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgaSArPSAxXG4gICAgICAgIGxvZ2dlci5lcnJvcihgJHtpfTogJHttZXNzYWdlfWApXG4gICAgICB9KVxuICAgIH1cbiAgICBuZXN0ZWRFcnJvcnMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgICAgaSArPSAxXG4gICAgICBsb2dnZXIuZXJyb3IoYCR7aX06ICR7bWVzc2FnZX1gKVxuICAgIH0pXG5cbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHQudmFsdWVcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdGVTY2hlbWFcbiJdLCJuYW1lcyI6WyJjb2xsZWN0aW9uU2NoZW1hIiwiZmllbGRTY2hlbWEiLCJpZEZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsImdsb2JhbFNjaGVtYSIsInNjaGVtYSIsInZhbGlkYXRlRmllbGRzIiwiY29udGV4dCIsImVudGl0eSIsImVycm9ycyIsImZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsImlkUmVzdWx0IiwiZXJyb3IiLCJuYW1lIiwidmFsaWRhdGUiLCJhYm9ydEVhcmx5IiwicmVzdWx0IiwiZGV0YWlscyIsIm1lc3NhZ2UiLCJwdXNoIiwic2x1ZyIsInZhbGlkYXRlQ29sbGVjdGlvbnMiLCJjb2xsZWN0aW9ucyIsImNvbGxlY3Rpb24iLCJ2YWxpZGF0ZUdsb2JhbHMiLCJnbG9iYWxzIiwiZ2xvYmFsIiwidmFsaWRhdGVTY2hlbWEiLCJjb25maWciLCJsb2dnZXIiLCJuZXN0ZWRFcnJvcnMiLCJsZW5ndGgiLCJpIiwicHJvY2VzcyIsImV4aXQiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBT0EsT0FBT0Esc0JBQXNCLCtCQUE4QjtBQUMzRCxPQUFPQyxlQUFlQyxPQUFPLFFBQVEsMEJBQXlCO0FBQzlELFNBQVNDLGdCQUFnQixRQUFRLHlCQUF3QjtBQUN6RCxPQUFPQyxrQkFBa0IsMkJBQTBCO0FBQ25ELE9BQU9DLFlBQVksV0FBVTtBQUU3QixNQUFNQyxpQkFBaUIsQ0FDckJDLFNBQ0FDO0lBRUEsTUFBTUMsU0FBbUIsRUFBRTtJQUMzQkQsT0FBT0UsTUFBTSxDQUFDQyxPQUFPLENBQUMsQ0FBQ0M7UUFDckIsSUFBSUMsV0FBc0M7WUFBRUMsT0FBTztRQUFLO1FBQ3hELElBQUlYLGlCQUFpQlMsVUFBVUEsTUFBTUcsSUFBSSxLQUFLLE1BQU07WUFDbERGLFdBQVdYLFFBQVFjLFFBQVEsQ0FBQ0osT0FBTztnQkFBRUssWUFBWTtZQUFNO1FBQ3pEO1FBRUEsTUFBTUMsU0FBU2pCLFlBQVllLFFBQVEsQ0FBQ0osT0FBTztZQUFFSyxZQUFZO1FBQU07UUFDL0QsSUFBSUosU0FBU0MsS0FBSyxFQUFFO1lBQ2xCRCxTQUFTQyxLQUFLLENBQUNLLE9BQU8sQ0FBQ1IsT0FBTyxDQUFDLENBQUMsRUFB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
@@ -1,22 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "combineQueries", {
6
- enumerable: true,
7
- get: function() {
8
- return combineQueries;
9
- }
10
- });
11
- const _auth = require("../auth");
12
- const combineQueries = (where, access)=>{
1
+ import { hasWhereAccessResult } from '../auth';
2
+ export const combineQueries = (where, access)=>{
13
3
  if (!where && !access) return {};
14
4
  const result = {
15
5
  and: []
16
6
  };
17
7
  if (where) result.and.push(where);
18
- if ((0, _auth.hasWhereAccessResult)(access)) result.and.push(access);
8
+ if (hasWhereAccessResult(access)) result.and.push(access);
19
9
  return result;
20
10
  };
21
11
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jb21iaW5lUXVlcmllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vYXV0aCdcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVRdWVyaWVzID0gKHdoZXJlOiBXaGVyZSwgYWNjZXNzOiBXaGVyZSB8IGJvb2xlYW4pOiBXaGVyZSA9PiB7XG4gIGlmICghd2hlcmUgJiYgIWFjY2VzcykgcmV0dXJuIHt9XG5cbiAgY29uc3QgcmVzdWx0OiBXaGVyZSA9IHtcbiAgICBhbmQ6IFtdLFxuICB9XG5cbiAgaWYgKHdoZXJlKSByZXN1bHQuYW5kLnB1c2god2hlcmUpXG4gIGlmIChoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3MpKSByZXN1bHQuYW5kLnB1c2goYWNjZXNzKVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJjb21iaW5lUXVlcmllcyIsIndoZXJlIiwiYWNjZXNzIiwicmVzdWx0IiwiYW5kIiwicHVzaCIsImhhc1doZXJlQWNjZXNzUmVzdWx0Il0sIm1hcHBpbmdzIjoiOzs7OytCQUlhQTs7O2VBQUFBOzs7c0JBRndCO0FBRTlCLE1BQU1BLGlCQUFpQixDQUFDQyxPQUFjQztJQUMzQyxJQUFJLENBQUNELFNBQVMsQ0FBQ0MsUUFBUSxPQUFPLENBQUM7SUFFL0IsTUFBTUMsU0FBZ0I7UUFDcEJDLEtBQUssRUFBRTtJQUNUO0lBRUEsSUFBSUgsT0FBT0UsT0FBT0MsR0FBRyxDQUFDQyxJQUFJLENBQUNKO0lBQzNCLElBQUlLLElBQUFBLDBCQUFvQixFQUFDSixTQUFTQyxPQUFPQyxHQUFHLENBQUNDLElBQUksQ0FBQ0g7SUFFbEQsT0FBT0M7QUFDVCJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jb21iaW5lUXVlcmllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vYXV0aCdcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVRdWVyaWVzID0gKHdoZXJlOiBXaGVyZSwgYWNjZXNzOiBXaGVyZSB8IGJvb2xlYW4pOiBXaGVyZSA9PiB7XG4gIGlmICghd2hlcmUgJiYgIWFjY2VzcykgcmV0dXJuIHt9XG5cbiAgY29uc3QgcmVzdWx0OiBXaGVyZSA9IHtcbiAgICBhbmQ6IFtdLFxuICB9XG5cbiAgaWYgKHdoZXJlKSByZXN1bHQuYW5kLnB1c2god2hlcmUpXG4gIGlmIChoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3MpKSByZXN1bHQuYW5kLnB1c2goYWNjZXNzKVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJoYXNXaGVyZUFjY2Vzc1Jlc3VsdCIsImNvbWJpbmVRdWVyaWVzIiwid2hlcmUiLCJhY2Nlc3MiLCJyZXN1bHQiLCJhbmQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxvQkFBb0IsUUFBUSxVQUFTO0FBRTlDLE9BQU8sTUFBTUMsaUJBQWlCLENBQUNDLE9BQWNDO0lBQzNDLElBQUksQ0FBQ0QsU0FBUyxDQUFDQyxRQUFRLE9BQU8sQ0FBQztJQUUvQixNQUFNQyxTQUFnQjtRQUNwQkMsS0FBSyxFQUFFO0lBQ1Q7SUFFQSxJQUFJSCxPQUFPRSxPQUFPQyxHQUFHLENBQUNDLElBQUksQ0FBQ0o7SUFDM0IsSUFBSUYscUJBQXFCRyxTQUFTQyxPQUFPQyxHQUFHLENBQUNDLElBQUksQ0FBQ0g7SUFFbEQsT0FBT0M7QUFDVCxFQUFDIn0=
@@ -1,34 +1,24 @@
1
- /* eslint-disable no-param-reassign */ "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "createDatabaseAdapter", {
6
- enumerable: true,
7
- get: function() {
8
- return createDatabaseAdapter;
9
- }
10
- });
11
- const _createMigration = require("./migrations/createMigration");
12
- const _migrate = require("./migrations/migrate");
13
- const _migrateDown = require("./migrations/migrateDown");
14
- const _migrateRefresh = require("./migrations/migrateRefresh");
15
- const _migrateReset = require("./migrations/migrateReset");
16
- const _migrateStatus = require("./migrations/migrateStatus");
1
+ /* eslint-disable no-param-reassign */ import { createMigration } from './migrations/createMigration';
2
+ import { migrate } from './migrations/migrate';
3
+ import { migrateDown } from './migrations/migrateDown';
4
+ import { migrateRefresh } from './migrations/migrateRefresh';
5
+ import { migrateReset } from './migrations/migrateReset';
6
+ import { migrateStatus } from './migrations/migrateStatus';
17
7
  const beginTransaction = async ()=>null;
18
8
  const rollbackTransaction = async ()=>null;
19
9
  const commitTransaction = async ()=>null;
20
- function createDatabaseAdapter(args) {
10
+ export function createDatabaseAdapter(args) {
21
11
  return {
22
12
  // Default 'null' transaction functions
23
13
  beginTransaction,
24
14
  commitTransaction,
25
- createMigration: _createMigration.createMigration,
26
- migrate: _migrate.migrate,
27
- migrateDown: _migrateDown.migrateDown,
15
+ createMigration,
16
+ migrate,
17
+ migrateDown,
28
18
  migrateFresh: async ({ forceAcceptWarning = null })=>null,
29
- migrateRefresh: _migrateRefresh.migrateRefresh,
30
- migrateReset: _migrateReset.migrateReset,
31
- migrateStatus: _migrateStatus.migrateStatus,
19
+ migrateRefresh,
20
+ migrateReset,
21
+ migrateStatus,
32
22
  rollbackTransaction,
33
23
  ...args,
34
24
  // Ensure migrationDir is set
@@ -36,4 +26,4 @@ function createDatabaseAdapter(args) {
36
26
  };
37
27
  }
38
28
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jcmVhdGVEYXRhYmFzZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgTWFya09wdGlvbmFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUge1xuICBCYXNlRGF0YWJhc2VBZGFwdGVyLFxuICBCZWdpblRyYW5zYWN0aW9uLFxuICBDb21taXRUcmFuc2FjdGlvbixcbiAgUm9sbGJhY2tUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9taWdyYXRpb25zL2NyZWF0ZU1pZ3JhdGlvbidcbmltcG9ydCB7IG1pZ3JhdGUgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZSdcbmltcG9ydCB7IG1pZ3JhdGVEb3duIH0gZnJvbSAnLi9taWdyYXRpb25zL21pZ3JhdGVEb3duJ1xuaW1wb3J0IHsgbWlncmF0ZVJlZnJlc2ggfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlZnJlc2gnXG5pbXBvcnQgeyBtaWdyYXRlUmVzZXQgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlc2V0J1xuaW1wb3J0IHsgbWlncmF0ZVN0YXR1cyB9IGZyb20gJy4vbWlncmF0aW9ucy9taWdyYXRlU3RhdHVzJ1xuXG5jb25zdCBiZWdpblRyYW5zYWN0aW9uOiBCZWdpblRyYW5zYWN0aW9uID0gYXN5bmMgKCkgPT4gbnVsbFxuY29uc3Qgcm9sbGJhY2tUcmFuc2FjdGlvbjogUm9sbGJhY2tUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcbmNvbnN0IGNvbW1pdFRyYW5zYWN0aW9uOiBDb21taXRUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFiYXNlQWRhcHRlcjxUIGV4dGVuZHMgQmFzZURhdGFiYXNlQWRhcHRlcj4oXG4gIGFyZ3M6IE1hcmtPcHRpb25hbDxcbiAgICBULFxuICAgIHwgJ2NyZWF0ZU1pZ3JhdGlvbidcbiAgICB8ICdtaWdyYXRlJ1xuICAgIHwgJ21pZ3JhdGVEb3duJ1xuICAgIHwgJ21pZ3JhdGVGcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVmcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVzZXQnXG4gICAgfCAnbWlncmF0ZVN0YXR1cydcbiAgICB8ICdtaWdyYXRpb25EaXInXG4gID4sXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBEZWZhdWx0ICdudWxsJyB0cmFuc2FjdGlvbiBmdW5jdGlvbnNcbiAgICBiZWdpblRyYW5zYWN0aW9uLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uLFxuICAgIGNyZWF0ZU1pZ3JhdGlvbixcbiAgICBtaWdyYXRlLFxuICAgIG1pZ3JhdGVEb3duLFxuICAgIG1pZ3JhdGVGcmVzaDogYXN5bmMgKHsgZm9yY2VBY2NlcHRXYXJuaW5nID0gbnVsbCB9KSA9PiBudWxsLFxuICAgIG1pZ3JhdGVSZWZyZXNoLFxuICAgIG1pZ3JhdGVSZXNldCxcbiAgICBtaWdyYXRlU3RhdHVzLFxuICAgIHJvbGxiYWNrVHJhbnNhY3Rpb24sXG5cbiAgICAuLi5hcmdzLFxuXG4gICAgLy8gRW5zdXJlIG1pZ3JhdGlvbkRpciBpcyBzZXRcbiAgICBtaWdyYXRpb25EaXI6IGFyZ3MubWlncmF0aW9uRGlyIHx8ICdtaWdyYXRpb25zJyxcbiAgfSBhcyBUXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlRGF0YWJhc2VBZGFwdGVyIiwiYmVnaW5UcmFuc2FjdGlvbiIsInJvbGxiYWNrVHJhbnNhY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImFyZ3MiLCJjcmVhdGVNaWdyYXRpb24iLCJtaWdyYXRlIiwibWlncmF0ZURvd24iLCJtaWdyYXRlRnJlc2giLCJmb3JjZUFjY2VwdFdhcm5pbmciLCJtaWdyYXRlUmVmcmVzaCIsIm1pZ3JhdGVSZXNldCIsIm1pZ3JhdGVTdGF0dXMiLCJtaWdyYXRpb25EaXIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFxQnBCQTs7O2VBQUFBOzs7aUNBWGdCO3lCQUNSOzZCQUNJO2dDQUNHOzhCQUNGOytCQUNDO0FBRTlCLE1BQU1DLG1CQUFxQyxVQUFZO0FBQ3ZELE1BQU1DLHNCQUEyQyxVQUFZO0FBQzdELE1BQU1DLG9CQUF1QyxVQUFZO0FBRWxELFNBQVNILHNCQUNkSSxJQVVDO0lBRUQsT0FBTztRQUNMLHVDQUF1QztRQUN2Q0g7UUFDQUU7UUFDQUUsaUJBQUFBLGdDQUFlO1FBQ2ZDLFNBQUFBLGdCQUFPO1FBQ1BDLGFBQUFBLHdCQUFXO1FBQ1hDLGNBQWMsT0FBTyxFQUFFQyxxQkFBcUIsSUFBSSxFQUFFLEdBQUs7UUFDdkRDLGdCQUFBQSw4QkFBYztRQUNkQyxjQUFBQSwwQkFBWTtRQUNaQyxlQUFBQSw0QkFBYTtRQUNiVjtRQUVBLEdBQUdFLElBQUk7UUFFUCw2QkFBNkI7UUFDN0JTLGNBQWNULEtBQUtTLFlBQVksSUFBSTtJQUNyQztBQUNGIn0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jcmVhdGVEYXRhYmFzZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgTWFya09wdGlvbmFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUge1xuICBCYXNlRGF0YWJhc2VBZGFwdGVyLFxuICBCZWdpblRyYW5zYWN0aW9uLFxuICBDb21taXRUcmFuc2FjdGlvbixcbiAgUm9sbGJhY2tUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9taWdyYXRpb25zL2NyZWF0ZU1pZ3JhdGlvbidcbmltcG9ydCB7IG1pZ3JhdGUgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZSdcbmltcG9ydCB7IG1pZ3JhdGVEb3duIH0gZnJvbSAnLi9taWdyYXRpb25zL21pZ3JhdGVEb3duJ1xuaW1wb3J0IHsgbWlncmF0ZVJlZnJlc2ggfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlZnJlc2gnXG5pbXBvcnQgeyBtaWdyYXRlUmVzZXQgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlc2V0J1xuaW1wb3J0IHsgbWlncmF0ZVN0YXR1cyB9IGZyb20gJy4vbWlncmF0aW9ucy9taWdyYXRlU3RhdHVzJ1xuXG5jb25zdCBiZWdpblRyYW5zYWN0aW9uOiBCZWdpblRyYW5zYWN0aW9uID0gYXN5bmMgKCkgPT4gbnVsbFxuY29uc3Qgcm9sbGJhY2tUcmFuc2FjdGlvbjogUm9sbGJhY2tUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcbmNvbnN0IGNvbW1pdFRyYW5zYWN0aW9uOiBDb21taXRUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFiYXNlQWRhcHRlcjxUIGV4dGVuZHMgQmFzZURhdGFiYXNlQWRhcHRlcj4oXG4gIGFyZ3M6IE1hcmtPcHRpb25hbDxcbiAgICBULFxuICAgIHwgJ2NyZWF0ZU1pZ3JhdGlvbidcbiAgICB8ICdtaWdyYXRlJ1xuICAgIHwgJ21pZ3JhdGVEb3duJ1xuICAgIHwgJ21pZ3JhdGVGcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVmcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVzZXQnXG4gICAgfCAnbWlncmF0ZVN0YXR1cydcbiAgICB8ICdtaWdyYXRpb25EaXInXG4gID4sXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBEZWZhdWx0ICdudWxsJyB0cmFuc2FjdGlvbiBmdW5jdGlvbnNcbiAgICBiZWdpblRyYW5zYWN0aW9uLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uLFxuICAgIGNyZWF0ZU1pZ3JhdGlvbixcbiAgICBtaWdyYXRlLFxuICAgIG1pZ3JhdGVEb3duLFxuICAgIG1pZ3JhdGVGcmVzaDogYXN5bmMgKHsgZm9yY2VBY2NlcHRXYXJuaW5nID0gbnVsbCB9KSA9PiBudWxsLFxuICAgIG1pZ3JhdGVSZWZyZXNoLFxuICAgIG1pZ3JhdGVSZXNldCxcbiAgICBtaWdyYXRlU3RhdHVzLFxuICAgIHJvbGxiYWNrVHJhbnNhY3Rpb24sXG5cbiAgICAuLi5hcmdzLFxuXG4gICAgLy8gRW5zdXJlIG1pZ3JhdGlvbkRpciBpcyBzZXRcbiAgICBtaWdyYXRpb25EaXI6IGFyZ3MubWlncmF0aW9uRGlyIHx8ICdtaWdyYXRpb25zJyxcbiAgfSBhcyBUXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlTWlncmF0aW9uIiwibWlncmF0ZSIsIm1pZ3JhdGVEb3duIiwibWlncmF0ZVJlZnJlc2giLCJtaWdyYXRlUmVzZXQiLCJtaWdyYXRlU3RhdHVzIiwiYmVnaW5UcmFuc2FjdGlvbiIsInJvbGxiYWNrVHJhbnNhY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImNyZWF0ZURhdGFiYXNlQWRhcHRlciIsImFyZ3MiLCJtaWdyYXRlRnJlc2giLCJmb3JjZUFjY2VwdFdhcm5pbmciLCJtaWdyYXRpb25EaXIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQyxHQVVwQyxTQUFTQSxlQUFlLFFBQVEsK0JBQThCO0FBQzlELFNBQVNDLE9BQU8sUUFBUSx1QkFBc0I7QUFDOUMsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBQzVELFNBQVNDLFlBQVksUUFBUSw0QkFBMkI7QUFDeEQsU0FBU0MsYUFBYSxRQUFRLDZCQUE0QjtBQUUxRCxNQUFNQyxtQkFBcUMsVUFBWTtBQUN2RCxNQUFNQyxzQkFBMkMsVUFBWTtBQUM3RCxNQUFNQyxvQkFBdUMsVUFBWTtBQUV6RCxPQUFPLFNBQVNDLHNCQUNkQyxJQVVDO0lBRUQsT0FBTztRQUNMLHVDQUF1QztRQUN2Q0o7UUFDQUU7UUFDQVI7UUFDQUM7UUFDQUM7UUFDQVMsY0FBYyxPQUFPLEVBQUVDLHFCQUFxQixJQUFJLEVBQUUsR0FBSztRQUN2RFQ7UUFDQUM7UUFDQUM7UUFDQUU7UUFFQSxHQUFHRyxJQUFJO1FBRVAsNkJBQTZCO1FBQzdCRyxjQUFjSCxLQUFLRyxZQUFZLElBQUk7SUFDckM7QUFDRiJ9
@@ -1,13 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
1
  // Take a where query and flatten it to all top-level operators
12
2
  const flattenWhereToOperators = (query)=>Object.entries(query).reduce((flattenedConstraints, [key, val])=>{
13
3
  if ((key === 'and' || key === 'or') && Array.isArray(val)) {
@@ -26,6 +16,6 @@ const flattenWhereToOperators = (query)=>Object.entries(query).reduce((flattened
26
16
  val
27
17
  ];
28
18
  }, []);
29
- const _default = flattenWhereToOperators;
19
+ export default flattenWhereToOperators;
30
20
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9mbGF0dGVuV2hlcmVUb09wZXJhdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlLCBXaGVyZUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIFRha2UgYSB3aGVyZSBxdWVyeSBhbmQgZmxhdHRlbiBpdCB0byBhbGwgdG9wLWxldmVsIG9wZXJhdG9yc1xuY29uc3QgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMgPSAocXVlcnk6IFdoZXJlKTogV2hlcmVGaWVsZFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5yZWR1Y2UoKGZsYXR0ZW5lZENvbnN0cmFpbnRzLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKChrZXkgPT09ICdhbmQnIHx8IGtleSA9PT0gJ29yJykgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5mbGF0dGVuZWRDb25zdHJhaW50cyxcbiAgICAgICAgLi4udmFsLnJlZHVjZSgoc3ViVmFscywgc3ViVmFsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5zdWJWYWxzLCAuLi5mbGF0dGVuV2hlcmVUb09wZXJhdG9ycyhzdWJWYWwpXVxuICAgICAgICB9LCBbXSksXG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5mbGF0dGVuZWRDb25zdHJhaW50cywgdmFsXVxuICB9LCBbXSlcblxuZXhwb3J0IGRlZmF1bHQgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnNcbiJdLCJuYW1lcyI6WyJmbGF0dGVuV2hlcmVUb09wZXJhdG9ycyIsInF1ZXJ5IiwiT2JqZWN0IiwiZW50cmllcyIsInJlZHVjZSIsImZsYXR0ZW5lZENvbnN0cmFpbnRzIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViVmFscyIsInN1YlZhbCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFpQkE7OztlQUFBOzs7QUFmQSwrREFBK0Q7QUFDL0QsTUFBTUEsMEJBQTBCLENBQUNDLFFBQy9CQyxPQUFPQyxPQUFPLENBQUNGLE9BQU9HLE1BQU0sQ0FBQyxDQUFDQyxzQkFBc0IsQ0FBQ0MsS0FBS0MsSUFBSTtRQUM1RCxJQUFJLEFBQUNELENBQUFBLFFBQVEsU0FBU0EsUUFBUSxJQUFHLEtBQU1FLE1BQU1DLE9BQU8sQ0FBQ0YsTUFBTTtZQUN6RCxPQUFPO21CQUNGRjttQkFDQUUsSUFBSUgsTUFBTSxDQUFDLENBQUNNLFNBQVNDO29CQUN0QixPQUFPOzJCQUFJRDsyQkFBWVYsd0JBQXdCVztxQkFBUTtnQkFDekQsR0FBRyxFQUFFO2FBQ047UUFDSDtRQUVBLE9BQU87ZUFBSU47WUFBc0JFO1NBQUk7SUFDdkMsR0FBRyxFQUFFO01BRVAsV0FBZVAifQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9mbGF0dGVuV2hlcmVUb09wZXJhdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlLCBXaGVyZUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIFRha2UgYSB3aGVyZSBxdWVyeSBhbmQgZmxhdHRlbiBpdCB0byBhbGwgdG9wLWxldmVsIG9wZXJhdG9yc1xuY29uc3QgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMgPSAocXVlcnk6IFdoZXJlKTogV2hlcmVGaWVsZFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5yZWR1Y2UoKGZsYXR0ZW5lZENvbnN0cmFpbnRzLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKChrZXkgPT09ICdhbmQnIHx8IGtleSA9PT0gJ29yJykgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5mbGF0dGVuZWRDb25zdHJhaW50cyxcbiAgICAgICAgLi4udmFsLnJlZHVjZSgoc3ViVmFscywgc3ViVmFsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5zdWJWYWxzLCAuLi5mbGF0dGVuV2hlcmVUb09wZXJhdG9ycyhzdWJWYWwpXVxuICAgICAgICB9LCBbXSksXG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5mbGF0dGVuZWRDb25zdHJhaW50cywgdmFsXVxuICB9LCBbXSlcblxuZXhwb3J0IGRlZmF1bHQgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnNcbiJdLCJuYW1lcyI6WyJmbGF0dGVuV2hlcmVUb09wZXJhdG9ycyIsInF1ZXJ5IiwiT2JqZWN0IiwiZW50cmllcyIsInJlZHVjZSIsImZsYXR0ZW5lZENvbnN0cmFpbnRzIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViVmFscyIsInN1YlZhbCJdLCJtYXBwaW5ncyI6IkFBRUEsK0RBQStEO0FBQy9ELE1BQU1BLDBCQUEwQixDQUFDQyxRQUMvQkMsT0FBT0MsT0FBTyxDQUFDRixPQUFPRyxNQUFNLENBQUMsQ0FBQ0Msc0JBQXNCLENBQUNDLEtBQUtDLElBQUk7UUFDNUQsSUFBSSxBQUFDRCxDQUFBQSxRQUFRLFNBQVNBLFFBQVEsSUFBRyxLQUFNRSxNQUFNQyxPQUFPLENBQUNGLE1BQU07WUFDekQsT0FBTzttQkFDRkY7bUJBQ0FFLElBQUlILE1BQU0sQ0FBQyxDQUFDTSxTQUFTQztvQkFDdEIsT0FBTzsyQkFBSUQ7MkJBQVlWLHdCQUF3Qlc7cUJBQVE7Z0JBQ3pELEdBQUcsRUFBRTthQUNOO1FBQ0g7UUFFQSxPQUFPO2VBQUlOO1lBQXNCRTtTQUFJO0lBQ3ZDLEdBQUcsRUFBRTtBQUVQLGVBQWVQLHdCQUF1QiJ9
@@ -1,21 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getLocalizedPaths", {
6
- enumerable: true,
7
- get: function() {
8
- return getLocalizedPaths;
9
- }
10
- });
11
- const _types = require("../fields/config/types");
12
- const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("../utilities/flattenTopLevelFields"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingPath, locale, overrideAccess = false, payload }) {
1
+ import { fieldAffectsData } from '../fields/config/types';
2
+ import flattenFields from '../utilities/flattenTopLevelFields';
3
+ export async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingPath, locale, overrideAccess = false, payload }) {
19
4
  const pathSegments = incomingPath.split('.');
20
5
  const localizationConfig = payload.config.localization;
21
6
  let paths = [
@@ -23,7 +8,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
23
8
  collectionSlug,
24
9
  complete: false,
25
10
  field: undefined,
26
- fields: (0, _flattenTopLevelFields.default)(fields, false),
11
+ fields: flattenFields(fields, false),
27
12
  globalSlug,
28
13
  invalid: false,
29
14
  path: ''
@@ -35,7 +20,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
35
20
  if (lastIncompletePath) {
36
21
  const { path } = lastIncompletePath;
37
22
  let currentPath = path ? `${path}.${segment}` : segment;
38
- const matchedField = lastIncompletePath.fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === segment);
23
+ const matchedField = lastIncompletePath.fields.find((field)=>fieldAffectsData(field) && field.name === segment);
39
24
  lastIncompletePath.field = matchedField;
40
25
  if (currentPath === 'globalType' && globalSlug) {
41
26
  lastIncompletePath.path = currentPath;
@@ -123,7 +108,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
123
108
  default:
124
109
  {
125
110
  if ('fields' in lastIncompletePath.field) {
126
- lastIncompletePath.fields = (0, _flattenTopLevelFields.default)(lastIncompletePath.field.fields, false);
111
+ lastIncompletePath.fields = flattenFields(lastIncompletePath.field.fields, false);
127
112
  }
128
113
  if (i + 1 === pathSegments.length) lastIncompletePath.complete = true;
129
114
  lastIncompletePath.path = currentPath;
@@ -139,4 +124,4 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
139
124
  return paths;
140
125
  }
141
126
 
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9nZXRMb2NhbGl6ZWRQYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLidcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXRoVG9RdWVyeSB9IGZyb20gJy4vcXVlcnlWYWxpZGF0aW9uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmbGF0dGVuRmllbGRzIGZyb20gJy4uL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gIGNvbGxlY3Rpb25TbHVnLFxuICBmaWVsZHMsXG4gIGdsb2JhbFNsdWcsXG4gIGluY29taW5nUGF0aCxcbiAgbG9jYWxlLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwYXlsb2FkLFxufToge1xuICBjb2xsZWN0aW9uU2x1Zz86IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBpbmNvbWluZ1BhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHBheWxvYWQ6IFBheWxvYWRcbn0pOiBQcm9taXNlPFBhdGhUb1F1ZXJ5W10+IHtcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gaW5jb21pbmdQYXRoLnNwbGl0KCcuJylcbiAgY29uc3QgbG9jYWxpemF0aW9uQ29uZmlnID0gcGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW1xuICAgIHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgY29tcGxldGU6IGZhbHNlLFxuICAgICAgZmllbGQ6IHVuZGVmaW5lZCxcbiAgICAgIGZpZWxkczogZmxhdHRlbkZpZWxkcyhmaWVsZHMsIGZhbHNlKSxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgIH0sXG4gIF1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgIGNvbnN0IGxhc3RJbmNvbXBsZXRlUGF0aCA9IHBhdGhzLmZpbmQoKHsgY29tcGxldGUgfSkgPT4gIWNvbXBsZXRlKVxuXG4gICAgaWYgKGxhc3RJbmNvbXBsZXRlUGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoIH0gPSBsYXN0SW5jb21wbGV0ZVBhdGhcbiAgICAgIGxldCBjdXJyZW50UGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke3NlZ21lbnR9YCA6IHNlZ21lbnRcblxuICAgICAgY29uc3QgbWF0Y2hlZEZpZWxkID0gbGFzdEluY29tcGxldGVQYXRoLmZpZWxkcy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09IHNlZ21lbnQsXG4gICAgICApXG4gICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQgPSBtYXRjaGVkRmllbGRcblxuICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSAnZ2xvYmFsVHlwZScgJiYgZ2xvYmFsU2x1Zykge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICdnbG9iYWxUeXBlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXRjaGVkRmllbGQgJiYgY3VycmVudFBhdGggPT09ICdpZCcgJiYgaSA9PT0gcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICBjb25zdCBpZEZpZWxkOiBGaWVsZCA9IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0gaWRGaWVsZFxuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBwYXRoc1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZEZpZWxkKSB7XG4gICAgICAgIGlmICgnaGlkZGVuJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmhpZGRlbiAmJiAhb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICBjb25zdCBuZXh0U2VnbWVudElzTG9jYWxlID1cbiAgICAgICAgICBsb2NhbGl6YXRpb25Db25maWcgJiYgbG9jYWxpemF0aW9uQ29uZmlnLmxvY2FsZUNvZGVzLmluY2x1ZGVzKG5leHRTZWdtZW50KVxuXG4gICAgICAgIGlmIChuZXh0U2VnbWVudElzTG9jYWxlKSB7XG4gICAgICAgICAgLy8gU2tpcCB0aGUgbmV4dCBpdGVyYXRpb24sIGJlY2F1c2UgaXQncyBhIGxvY2FsZVxuICAgICAgICAgIGkgKz0gMVxuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bmV4dFNlZ21lbnR9YFxuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsaXphdGlvbkNvbmZpZyAmJiAnbG9jYWxpemVkJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bG9jYWxlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAobWF0Y2hlZEZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICAgIGNhc2UgJ3JpY2hUZXh0JzpcbiAgICAgICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICAgICAgY29uc3QgdXBjb21pbmdTZWdtZW50cyA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHVwY29taW5nU2VnbWVudHNcbiAgICAgICAgICAgICAgPyBgJHtjdXJyZW50UGF0aH0uJHt1cGNvbWluZ1NlZ21lbnRzfWBcbiAgICAgICAgICAgICAgOiBjdXJyZW50UGF0aFxuICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcG9seW1vcnBoaWMgcmVsYXRpb24sXG4gICAgICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgcXVlcnlpbmcgZGlyZWN0bHkgKG5vIG5lc3RlZCBxdWVyeWluZylcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2hlZEZpZWxkLnJlbGF0aW9uVG8gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhc3RTZWdtZW50SXNWYWxpZCA9XG4gICAgICAgICAgICAgICAgWydyZWxhdGlvblRvJywgJ3ZhbHVlJ10uaW5jbHVkZXMocGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAxXSkgfHxcbiAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHMubGVuZ3RoID09PSAxXG5cbiAgICAgICAgICAgICAgaWYgKGxhc3RTZWdtZW50SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHBhdGhTZWdtZW50cy5qb2luKCcuJylcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmNvbXBsZXRlID0gdHJ1ZVxuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG5cbiAgICAgICAgICAgICAgY29uc3QgbmVzdGVkUGF0aFRvUXVlcnkgPSBwYXRoU2VnbWVudHNcbiAgICAgICAgICAgICAgICAuc2xpY2UobmV4dFNlZ21lbnRJc0xvY2FsZSA/IGkgKyAyIDogaSArIDEpXG4gICAgICAgICAgICAgICAgLmpvaW4oJy4nKVxuXG4gICAgICAgICAgICAgIGlmIChuZXN0ZWRQYXRoVG9RdWVyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcGF5bG9hZC5jb2xsZWN0aW9uc1ttYXRjaGVkRmllbGQucmVsYXRpb25Ub10uY29uZmlnXG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGhzID0gYXdhaXQgZ2V0TG9jYWxpemVkUGF0aHMoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc6IHJlbGF0ZWRDb2xsZWN0aW9uLnNsdWcsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ1BhdGg6IG5lc3RlZFBhdGhUb1F1ZXJ5LFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcGF0aHMgPSBbLi4ucGF0aHMsIC4uLnJlbWFpbmluZ1BhdGhzXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgaWYgKCdmaWVsZHMnIGluIGxhc3RJbmNvbXBsZXRlUGF0aC5maWVsZCkge1xuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGRzID0gZmxhdHRlbkZpZWxkcyhsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQuZmllbGRzLCBmYWxzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoU2VnbWVudHMubGVuZ3RoKSBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGF0aHNcbn1cbiJdLCJuYW1lcyI6WyJnZXRMb2NhbGl6ZWRQYXRocyIsImNvbGxlY3Rpb25TbHVnIiwiZmllbGRzIiwiZ2xvYmFsU2x1ZyIsImluY29taW5nUGF0aCIsImxvY2FsZSIsIm92ZXJyaWRlQWNjZXNzIiwicGF5bG9hZCIsInBhdGhTZWdtZW50cyIsInNwbGl0IiwibG9jYWxpemF0aW9uQ29uZmlnIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwicGF0aHMiLCJjb21wbGV0ZSIsImZpZWxkIiwidW5kZWZpbmVkIiwiZmxhdHRlbkZpZWxkcyIsImludmFsaWQiLCJwYXRoIiwiaSIsImxlbmd0aCIsInNlZ21lbnQiLCJsYXN0SW5jb21wbGV0ZVBhdGgiLCJmaW5kIiwiY3VycmVudFBhdGgiLCJtYXRjaGVkRmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJpZEZpZWxkIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaGlkZGVuIiwibmV4dFNlZ21lbnQiLCJuZXh0U2VnbWVudElzTG9jYWxlIiwibG9jYWxlQ29kZXMiLCJpbmNsdWRlcyIsImxvY2FsaXplZCIsInVwY29taW5nU2VnbWVudHMiLCJzbGljZSIsImpvaW4iLCJyZWxhdGlvblRvIiwibGFzdFNlZ21lbnRJc1ZhbGlkIiwibmVzdGVkUGF0aFRvUXVlcnkiLCJyZWxhdGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25zIiwicmVtYWluaW5nUGF0aHMiLCJzbHVnIl0sIm1hcHBpbmdzIjoiOzs7OytCQU9zQkE7OztlQUFBQTs7O3VCQUhXOzhFQUNQOzs7Ozs7QUFFbkIsZUFBZUEsa0JBQWtCLEVBQ3RDQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxZQUFZLEVBQ1pDLE1BQU0sRUFDTkMsaUJBQWlCLEtBQUssRUFDdEJDLE9BQU8sRUFTUjtJQUNDLE1BQU1D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
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9nZXRMb2NhbGl6ZWRQYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLidcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXRoVG9RdWVyeSB9IGZyb20gJy4vcXVlcnlWYWxpZGF0aW9uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmbGF0dGVuRmllbGRzIGZyb20gJy4uL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gIGNvbGxlY3Rpb25TbHVnLFxuICBmaWVsZHMsXG4gIGdsb2JhbFNsdWcsXG4gIGluY29taW5nUGF0aCxcbiAgbG9jYWxlLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwYXlsb2FkLFxufToge1xuICBjb2xsZWN0aW9uU2x1Zz86IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBpbmNvbWluZ1BhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHBheWxvYWQ6IFBheWxvYWRcbn0pOiBQcm9taXNlPFBhdGhUb1F1ZXJ5W10+IHtcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gaW5jb21pbmdQYXRoLnNwbGl0KCcuJylcbiAgY29uc3QgbG9jYWxpemF0aW9uQ29uZmlnID0gcGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW1xuICAgIHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgY29tcGxldGU6IGZhbHNlLFxuICAgICAgZmllbGQ6IHVuZGVmaW5lZCxcbiAgICAgIGZpZWxkczogZmxhdHRlbkZpZWxkcyhmaWVsZHMsIGZhbHNlKSxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgIH0sXG4gIF1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgIGNvbnN0IGxhc3RJbmNvbXBsZXRlUGF0aCA9IHBhdGhzLmZpbmQoKHsgY29tcGxldGUgfSkgPT4gIWNvbXBsZXRlKVxuXG4gICAgaWYgKGxhc3RJbmNvbXBsZXRlUGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoIH0gPSBsYXN0SW5jb21wbGV0ZVBhdGhcbiAgICAgIGxldCBjdXJyZW50UGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke3NlZ21lbnR9YCA6IHNlZ21lbnRcblxuICAgICAgY29uc3QgbWF0Y2hlZEZpZWxkID0gbGFzdEluY29tcGxldGVQYXRoLmZpZWxkcy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09IHNlZ21lbnQsXG4gICAgICApXG4gICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQgPSBtYXRjaGVkRmllbGRcblxuICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSAnZ2xvYmFsVHlwZScgJiYgZ2xvYmFsU2x1Zykge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICdnbG9iYWxUeXBlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXRjaGVkRmllbGQgJiYgY3VycmVudFBhdGggPT09ICdpZCcgJiYgaSA9PT0gcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICBjb25zdCBpZEZpZWxkOiBGaWVsZCA9IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0gaWRGaWVsZFxuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBwYXRoc1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZEZpZWxkKSB7XG4gICAgICAgIGlmICgnaGlkZGVuJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmhpZGRlbiAmJiAhb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICBjb25zdCBuZXh0U2VnbWVudElzTG9jYWxlID1cbiAgICAgICAgICBsb2NhbGl6YXRpb25Db25maWcgJiYgbG9jYWxpemF0aW9uQ29uZmlnLmxvY2FsZUNvZGVzLmluY2x1ZGVzKG5leHRTZWdtZW50KVxuXG4gICAgICAgIGlmIChuZXh0U2VnbWVudElzTG9jYWxlKSB7XG4gICAgICAgICAgLy8gU2tpcCB0aGUgbmV4dCBpdGVyYXRpb24sIGJlY2F1c2UgaXQncyBhIGxvY2FsZVxuICAgICAgICAgIGkgKz0gMVxuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bmV4dFNlZ21lbnR9YFxuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsaXphdGlvbkNvbmZpZyAmJiAnbG9jYWxpemVkJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bG9jYWxlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAobWF0Y2hlZEZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICAgIGNhc2UgJ3JpY2hUZXh0JzpcbiAgICAgICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICAgICAgY29uc3QgdXBjb21pbmdTZWdtZW50cyA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHVwY29taW5nU2VnbWVudHNcbiAgICAgICAgICAgICAgPyBgJHtjdXJyZW50UGF0aH0uJHt1cGNvbWluZ1NlZ21lbnRzfWBcbiAgICAgICAgICAgICAgOiBjdXJyZW50UGF0aFxuICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcG9seW1vcnBoaWMgcmVsYXRpb24sXG4gICAgICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgcXVlcnlpbmcgZGlyZWN0bHkgKG5vIG5lc3RlZCBxdWVyeWluZylcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2hlZEZpZWxkLnJlbGF0aW9uVG8gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhc3RTZWdtZW50SXNWYWxpZCA9XG4gICAgICAgICAgICAgICAgWydyZWxhdGlvblRvJywgJ3ZhbHVlJ10uaW5jbHVkZXMocGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAxXSkgfHxcbiAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHMubGVuZ3RoID09PSAxXG5cbiAgICAgICAgICAgICAgaWYgKGxhc3RTZWdtZW50SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHBhdGhTZWdtZW50cy5qb2luKCcuJylcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmNvbXBsZXRlID0gdHJ1ZVxuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG5cbiAgICAgICAgICAgICAgY29uc3QgbmVzdGVkUGF0aFRvUXVlcnkgPSBwYXRoU2VnbWVudHNcbiAgICAgICAgICAgICAgICAuc2xpY2UobmV4dFNlZ21lbnRJc0xvY2FsZSA/IGkgKyAyIDogaSArIDEpXG4gICAgICAgICAgICAgICAgLmpvaW4oJy4nKVxuXG4gICAgICAgICAgICAgIGlmIChuZXN0ZWRQYXRoVG9RdWVyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcGF5bG9hZC5jb2xsZWN0aW9uc1ttYXRjaGVkRmllbGQucmVsYXRpb25Ub10uY29uZmlnXG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGhzID0gYXdhaXQgZ2V0TG9jYWxpemVkUGF0aHMoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc6IHJlbGF0ZWRDb2xsZWN0aW9uLnNsdWcsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ1BhdGg6IG5lc3RlZFBhdGhUb1F1ZXJ5LFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcGF0aHMgPSBbLi4ucGF0aHMsIC4uLnJlbWFpbmluZ1BhdGhzXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgaWYgKCdmaWVsZHMnIGluIGxhc3RJbmNvbXBsZXRlUGF0aC5maWVsZCkge1xuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGRzID0gZmxhdHRlbkZpZWxkcyhsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQuZmllbGRzLCBmYWxzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoU2VnbWVudHMubGVuZ3RoKSBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGF0aHNcbn1cbiJdLCJuYW1lcyI6WyJmaWVsZEFmZmVjdHNEYXRhIiwiZmxhdHRlbkZpZWxkcyIsImdldExvY2FsaXplZFBhdGhzIiwiY29sbGVjdGlvblNsdWciLCJmaWVsZHMiLCJnbG9iYWxTbHVnIiwiaW5jb21pbmdQYXRoIiwibG9jYWxlIiwib3ZlcnJpZGVBY2Nlc3MiLCJwYXlsb2FkIiwicGF0aFNlZ21lbnRzIiwic3BsaXQiLCJsb2NhbGl6YXRpb25Db25maWciLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJwYXRocyIsImNvbXBsZXRlIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJpbnZhbGlkIiwicGF0aCIsImkiLCJsZW5ndGgiLCJzZWdtZW50IiwibGFzdEluY29tcGxldGVQYXRoIiwiZmluZCIsImN1cnJlbnRQYXRoIiwibWF0Y2hlZEZpZWxkIiwibmFtZSIsInR5cGUiLCJpZEZpZWxkIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaGlkZGVuIiwibmV4dFNlZ21lbnQiLCJuZXh0U2VnbWVudElzTG9jYWxlIiwibG9jYWxlQ29kZXMiLCJpbmNsdWRlcyIsImxvY2FsaXplZCIsInVwY29taW5nU2VnbWVudHMiLCJzbGljZSIsImpvaW4iLCJyZWxhdGlvblRvIiwibGFzdFNlZ21lbnRJc1ZhbGlkIiwibmVzdGVkUGF0aFRvUXVlcnkiLCJyZWxhdGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25zIiwicmVtYWluaW5nUGF0aHMiLCJzbHVnIl0sIm1hcHBpbmdzIjoiQUFJQSxTQUFTQSxnQkFBZ0IsUUFBUSx5QkFBd0I7QUFDekQsT0FBT0MsbUJBQW1CLHFDQUFvQztBQUU5RCxPQUFPLGVBQWVDLGtCQUFrQixFQUN0Q0MsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLGlCQUFpQixLQUFLLEVBQ3RC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