studiokit-scaffolding-js 7.0.12-next.2.4 → 7.0.12-next.2.6

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 (284) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +137 -137
  3. package/lib/components/ActionList.js +1 -1
  4. package/lib/components/AlertDialog.js +1 -1
  5. package/lib/components/AlertWithIcon.js +1 -1
  6. package/lib/components/ConnectedModal.js +3 -3
  7. package/lib/components/Dropdowns/GroupsDropdown.js +1 -1
  8. package/lib/components/Dropdowns/ManagedNavDropdown.js +4 -4
  9. package/lib/components/Dropdowns/UserDropdown.js +1 -1
  10. package/lib/components/Dropdowns/index.js +1 -1
  11. package/lib/components/EntityOwnerList.js +1 -1
  12. package/lib/components/Error.js +1 -1
  13. package/lib/components/ErrorBoundary.js +1 -1
  14. package/lib/components/ErrorMessage.js +1 -1
  15. package/lib/components/Forms/DateField.js +1 -1
  16. package/lib/components/Forms/TimeField.js +1 -1
  17. package/lib/components/Forms/index.js +1 -1
  18. package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
  19. package/lib/components/Groups/CreateEditCopySaveButtons.js +40 -48
  20. package/lib/components/Groups/ExternalGroups/Attach.js +1 -1
  21. package/lib/components/Groups/ExternalGroups/Table.js +1 -1
  22. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +1 -1
  23. package/lib/components/Groups/RosterSyncInfo.js +1 -1
  24. package/lib/components/HOC/AccessibleAppComponent.js +6 -6
  25. package/lib/components/HOC/ActivityRequiredComponent.js +50 -50
  26. package/lib/components/HOC/AsyncComponent.js +1 -1
  27. package/lib/components/HOC/AuthenticatedComponent.js +1 -1
  28. package/lib/components/HOC/CollectionComponent.js +11 -11
  29. package/lib/components/HOC/CollectionFirstItemComponent.js +4 -4
  30. package/lib/components/HOC/CollectionItemComponent.js +11 -11
  31. package/lib/components/HOC/ConnectedModalComponent.js +15 -15
  32. package/lib/components/HOC/DataDependentComponent.js +1 -1
  33. package/lib/components/HOC/EntityComponent.js +12 -12
  34. package/lib/components/HOC/FullscreenModalComponent.js +24 -24
  35. package/lib/components/HOC/GroupActivityRequiredComponent.js +19 -19
  36. package/lib/components/HOC/GuidComponent.js +5 -5
  37. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +7 -7
  38. package/lib/components/HOC/ModelErrorRedirectComponent.js +12 -12
  39. package/lib/components/HOC/SearchPersistorComponent.js +43 -43
  40. package/lib/components/HOC/UnauthenticatedComponent.js +1 -1
  41. package/lib/components/HOC/UserComponent.js +1 -1
  42. package/lib/components/Icons/IconAlphaList.js +1 -1
  43. package/lib/components/Icons/IconExternalUser.js +1 -1
  44. package/lib/components/Icons/IconImpersonation.js +1 -1
  45. package/lib/components/Icons/IconStopImpersonating.js +1 -1
  46. package/lib/components/Icons/IconTable.js +1 -1
  47. package/lib/components/Icons/IconTableDeleteCol.js +1 -1
  48. package/lib/components/Icons/IconTableDeleteRow.js +1 -1
  49. package/lib/components/Icons/IconTableInsertCol.js +1 -1
  50. package/lib/components/Icons/IconTableInsertRow.js +1 -1
  51. package/lib/components/Impersonation/Button.js +1 -1
  52. package/lib/components/Impersonation/Link.js +1 -1
  53. package/lib/components/Impersonation/UserDetail.css +22 -22
  54. package/lib/components/Impersonation/UserDetail.js +3 -3
  55. package/lib/components/Loading.js +1 -1
  56. package/lib/components/LockDownBrowser/Check.js +1 -1
  57. package/lib/components/LockDownBrowser/ExitButton.js +1 -1
  58. package/lib/components/LockDownBrowser/Launch.js +1 -1
  59. package/lib/components/Lti/Confirm.js +1 -1
  60. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +1 -1
  61. package/lib/components/Lti/Launch.js +1 -1
  62. package/lib/components/Lti/LaunchGroup.js +1 -1
  63. package/lib/components/ManageTable.js +1 -1
  64. package/lib/components/ManageTableNoDataComponent.js +1 -1
  65. package/lib/components/NewVersionAlert.js +1 -1
  66. package/lib/components/NotFound.js +1 -1
  67. package/lib/components/Notifications.js +1 -1
  68. package/lib/components/PaginationNextButton.js +1 -1
  69. package/lib/components/PaginationPreviousButton.js +1 -1
  70. package/lib/components/Quill/CustomToolbar.js +1 -1
  71. package/lib/components/Quill/Formats/Image.js +5 -5
  72. package/lib/components/Quill/Formats/List.js +3 -3
  73. package/lib/components/Quill/Formats/Video.js +3 -3
  74. package/lib/components/Quill/ImageDropModule.js +17 -17
  75. package/lib/components/Quill/ImageWarning.js +1 -1
  76. package/lib/components/Quill/ImageWithAltTextModal.js +1 -1
  77. package/lib/components/Quill/Specs/CustomImageSpec.js +7 -7
  78. package/lib/components/Quill/Specs/CustomVideoSpec.js +9 -9
  79. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +8 -8
  80. package/lib/components/Quill/TableModule/Blots/TableBlot.js +1 -1
  81. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +1 -1
  82. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +1 -1
  83. package/lib/components/Quill/TableModule/Blots/TableContainer.js +1 -1
  84. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +1 -1
  85. package/lib/components/Quill/TableModule/constants.js +1 -1
  86. package/lib/components/Quill/TableModule/index.css +171 -171
  87. package/lib/components/Quill/TableModule/index.js +1 -1
  88. package/lib/components/Quill/TableModule/utils.js +1 -1
  89. package/lib/components/Quill/accessibilityFix.js +14 -14
  90. package/lib/components/Quill/index.js +1 -1
  91. package/lib/components/RefreshIndicator/Bordered.js +1 -1
  92. package/lib/components/RefreshIndicator/Inline.js +1 -1
  93. package/lib/components/RefreshIndicator/index.js +1 -1
  94. package/lib/components/SearchControls.js +1 -1
  95. package/lib/components/SentryRoute.js +1 -1
  96. package/lib/components/Tables/RoleFilter.js +1 -1
  97. package/lib/components/Tables/TextFilter.js +1 -1
  98. package/lib/components/UserRoles/Add.js +1 -1
  99. package/lib/components/UserRoles/Context.js +4 -4
  100. package/lib/components/UserRoles/RoleCell.js +1 -1
  101. package/lib/components/UserRoles/Select.js +1 -1
  102. package/lib/components/UserRoles/Table.js +1 -1
  103. package/lib/components/UserRoles/index.js +3 -3
  104. package/lib/config/eslint/index.js +1 -1
  105. package/lib/config/eslint/lib/order.js +1 -1
  106. package/lib/config/eslint/lib/prettier.js +1 -1
  107. package/lib/config/eslint/lib/typescript.js +1 -1
  108. package/lib/config/eslint/react.js +1 -1
  109. package/lib/constants/baseActivity.js +1 -1
  110. package/lib/constants/baseRole.js +1 -1
  111. package/lib/constants/configuration.js +1 -1
  112. package/lib/constants/externalProviderType.js +1 -1
  113. package/lib/constants/fetchErrorData.js +1 -1
  114. package/lib/constants/index.js +1 -1
  115. package/lib/constants/lockDownBrowser.js +1 -1
  116. package/lib/constants/mockData.js +3 -3
  117. package/lib/constants/modelStatus.js +1 -1
  118. package/lib/constants/notificationType.js +1 -1
  119. package/lib/constants/operatingSystem.js +1 -1
  120. package/lib/constants/shard.js +1 -1
  121. package/lib/constants/table.js +1 -1
  122. package/lib/constants/tier.js +1 -1
  123. package/lib/constants/userRole.js +1 -1
  124. package/lib/css/base/_base.css +98 -98
  125. package/lib/css/base/_typography.css +130 -130
  126. package/lib/css/components/_alert.css +86 -86
  127. package/lib/css/components/_bootstrap-grid.css +28 -28
  128. package/lib/css/components/_buttons.css +397 -397
  129. package/lib/css/components/_forms.css +101 -101
  130. package/lib/css/components/_menu.css +56 -56
  131. package/lib/css/components/_modals.css +46 -46
  132. package/lib/css/components/_quill.css +315 -315
  133. package/lib/css/components/_tables.css +497 -497
  134. package/lib/css/components/_tags.css +12 -12
  135. package/lib/css/index-with-variables.css +15 -15
  136. package/lib/css/index.css +14 -14
  137. package/lib/css/utils/_border.css +463 -463
  138. package/lib/css/utils/_color.css +317 -317
  139. package/lib/css/utils/_display.css +305 -305
  140. package/lib/css/utils/_general.css +48 -48
  141. package/lib/css/utils/_icon.css +16 -16
  142. package/lib/css/utils/_text.css +25 -25
  143. package/lib/css/utils/_width.css +60 -60
  144. package/lib/css/variables.css +84 -84
  145. package/lib/endpointMappings.js +1 -1
  146. package/lib/hooks/useCollection.js +1 -1
  147. package/lib/hooks/useCollectionConfiguration.js +7 -7
  148. package/lib/hooks/useCollectionItem.js +1 -1
  149. package/lib/hooks/useGuid.js +3 -3
  150. package/lib/hooks/usePrevious.js +15 -15
  151. package/lib/index.js +1 -1
  152. package/lib/redux/actionCreator.js +1 -1
  153. package/lib/redux/actions/AuthAction.js +7 -7
  154. package/lib/redux/actions/ModalAction.js +1 -1
  155. package/lib/redux/actions/ModelAction.js +17 -17
  156. package/lib/redux/actions/NotificationAction.js +1 -1
  157. package/lib/redux/actions/SearchAction.js +1 -1
  158. package/lib/redux/actions/index.js +1 -1
  159. package/lib/redux/configureReducers.js +7 -7
  160. package/lib/redux/configureStore.js +1 -1
  161. package/lib/redux/helpers.js +1 -1
  162. package/lib/redux/reducers/authReducer.js +3 -3
  163. package/lib/redux/reducers/index.js +1 -1
  164. package/lib/redux/reducers/modalsReducer.js +1 -1
  165. package/lib/redux/reducers/modelsReducer.js +48 -48
  166. package/lib/redux/reducers/notificationsReducer.js +1 -1
  167. package/lib/redux/reducers/searchReducer.js +9 -9
  168. package/lib/redux/sagas/appInsightsSaga.js +1 -1
  169. package/lib/redux/sagas/authSaga.js +1 -1
  170. package/lib/redux/sagas/caliperSaga.js +16 -16
  171. package/lib/redux/sagas/clockOffsetSaga.js +9 -9
  172. package/lib/redux/sagas/configurationSaga.js +1 -1
  173. package/lib/redux/sagas/downtimeApiErrorSaga.js +1 -1
  174. package/lib/redux/sagas/errorSaga.js +1 -1
  175. package/lib/redux/sagas/googleAnalyticsSaga.js +1 -1
  176. package/lib/redux/sagas/identityProviderSaga.js +1 -1
  177. package/lib/redux/sagas/initialDataLoadSaga.js +1 -1
  178. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +1 -1
  179. package/lib/redux/sagas/modelFetchSaga.js +49 -49
  180. package/lib/redux/sagas/noStoreSaga.js +1 -1
  181. package/lib/redux/sagas/postLoginDataSaga.js +6 -6
  182. package/lib/redux/sagas/postLoginRedirectSaga.js +4 -4
  183. package/lib/redux/sagas/rootSaga.js +1 -1
  184. package/lib/redux/sagas/sentrySaga.js +1 -1
  185. package/lib/redux/sagas/userIdSaga.js +1 -1
  186. package/lib/services/codeProviderService.js +1 -1
  187. package/lib/services/dateService.js +3 -3
  188. package/lib/services/documentService.js +4 -4
  189. package/lib/services/fetchService.js +25 -25
  190. package/lib/services/persistenceService.js +1 -1
  191. package/lib/services/ticketProviderService.js +1 -1
  192. package/lib/services/tokenPersistenceService.js +1 -1
  193. package/lib/services/windowService.js +1 -1
  194. package/lib/startup.js +18 -18
  195. package/lib/types/AppConfiguration.js +1 -1
  196. package/lib/types/Artifact.js +1 -1
  197. package/lib/types/BaseReduxState.js +1 -1
  198. package/lib/types/Client.js +1 -1
  199. package/lib/types/Collection.js +1 -1
  200. package/lib/types/Configuration.js +1 -1
  201. package/lib/types/DeepLinkingResponseRequest.js +1 -1
  202. package/lib/types/DeletableModel.js +1 -1
  203. package/lib/types/Event.js +1 -1
  204. package/lib/types/ExternalGroup.js +1 -1
  205. package/lib/types/ExternalProvider.js +1 -1
  206. package/lib/types/ExternalTerm.js +1 -1
  207. package/lib/types/Group.js +1 -1
  208. package/lib/types/IdentityProvider.js +1 -1
  209. package/lib/types/LtiLaunch.js +1 -1
  210. package/lib/types/NameOnlyEntity.js +1 -1
  211. package/lib/types/Notification.js +1 -1
  212. package/lib/types/OptionalRecord.js +1 -1
  213. package/lib/types/OwnerSchedule.js +1 -1
  214. package/lib/types/PropertyOfType.js +1 -1
  215. package/lib/types/Quill.js +1 -1
  216. package/lib/types/RoleDescription.js +1 -1
  217. package/lib/types/Search.js +1 -1
  218. package/lib/types/SimpleLocation.js +1 -1
  219. package/lib/types/UniTime.js +1 -1
  220. package/lib/types/User.js +1 -1
  221. package/lib/types/UserRole.js +1 -1
  222. package/lib/types/auth/AuthState.js +1 -1
  223. package/lib/types/auth/CasV1LoginRequestBody.js +1 -1
  224. package/lib/types/auth/ClientCredentials.js +1 -1
  225. package/lib/types/auth/CodeProviderService.js +1 -1
  226. package/lib/types/auth/LocalLoginRequestBody.js +1 -1
  227. package/lib/types/auth/TicketProviderService.js +1 -1
  228. package/lib/types/auth/TokenPersistenceService.js +1 -1
  229. package/lib/types/auth/index.js +1 -1
  230. package/lib/types/externals.d.js +1 -1
  231. package/lib/types/index.js +1 -1
  232. package/lib/types/net/EndpointConfig.js +1 -1
  233. package/lib/types/net/EndpointMapping.js +1 -1
  234. package/lib/types/net/EndpointMappings.js +1 -1
  235. package/lib/types/net/ErrorHandler.js +1 -1
  236. package/lib/types/net/FetchConfig.js +1 -1
  237. package/lib/types/net/FetchErrorData.js +1 -1
  238. package/lib/types/net/FetchResult.js +1 -1
  239. package/lib/types/net/HTTPMethod.js +1 -1
  240. package/lib/types/net/HTTPStatusCode.js +1 -1
  241. package/lib/types/net/Metadata.js +1 -1
  242. package/lib/types/net/Model.js +1 -1
  243. package/lib/types/net/ModelCollection.js +1 -1
  244. package/lib/types/net/ModelsState.js +1 -1
  245. package/lib/types/net/OAuthToken.js +1 -1
  246. package/lib/types/net/OAuthTokenOrNull.js +1 -1
  247. package/lib/types/net/TokenAccessFunction.js +1 -1
  248. package/lib/types/net/index.js +1 -1
  249. package/lib/utils/baseActivity.js +87 -87
  250. package/lib/utils/baseRole.js +1 -1
  251. package/lib/utils/collection.js +20 -20
  252. package/lib/utils/cookies.js +1 -1
  253. package/lib/utils/date.js +111 -111
  254. package/lib/utils/dom.js +42 -42
  255. package/lib/utils/domainIdentifier.js +1 -1
  256. package/lib/utils/entityUserRole.js +1 -1
  257. package/lib/utils/error.js +1 -1
  258. package/lib/utils/events.js +4 -4
  259. package/lib/utils/externalGroup.js +1 -1
  260. package/lib/utils/externalProviders.js +1 -1
  261. package/lib/utils/externalTerms.js +1 -1
  262. package/lib/utils/fetch.js +18 -11
  263. package/lib/utils/group.js +1 -1
  264. package/lib/utils/groupDates.js +1 -1
  265. package/lib/utils/groupRoles.js +1 -1
  266. package/lib/utils/lockDownBrowser.js +1 -1
  267. package/lib/utils/logger.js +1 -1
  268. package/lib/utils/lti.js +1 -1
  269. package/lib/utils/model.js +5 -5
  270. package/lib/utils/number.js +11 -11
  271. package/lib/utils/promise.js +1 -1
  272. package/lib/utils/quill.js +16 -16
  273. package/lib/utils/route.js +1 -1
  274. package/lib/utils/search.js +1 -1
  275. package/lib/utils/shard.js +1 -1
  276. package/lib/utils/sort.js +1 -1
  277. package/lib/utils/string.js +1 -1
  278. package/lib/utils/table.js +4 -4
  279. package/lib/utils/timezone.js +1 -1
  280. package/lib/utils/url.js +18 -18
  281. package/lib/utils/user.js +1 -1
  282. package/lib/utils/userAgent.js +1 -1
  283. package/lib/utils/userRole.js +16 -16
  284. package/package.json +225 -225
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9PQXV0aFRva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBPQXV0aCB0b2tlbiBhcyBnZW5lcmF0ZWQgYnkgT1dJTi5ORVQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoVG9rZW4ge1xyXG5cdGFjY2Vzc190b2tlbjogc3RyaW5nXHJcblx0cmVmcmVzaF90b2tlbjogc3RyaW5nXHJcblx0dG9rZW5fdHlwZTogc3RyaW5nXHJcblx0ZXhwaXJlc19pbjogbnVtYmVyXHJcblx0Y2xpZW50X2lkOiBzdHJpbmdcclxuXHQnLmlzc3VlZCc6IHN0cmluZ1xyXG5cdCcuZXhwaXJlcyc6IHN0cmluZ1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9PQXV0aFRva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT0F1dGggdG9rZW4gYXMgZ2VuZXJhdGVkIGJ5IE9XSU4uTkVULlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoVG9rZW4ge1xuXHRhY2Nlc3NfdG9rZW46IHN0cmluZ1xuXHRyZWZyZXNoX3Rva2VuOiBzdHJpbmdcblx0dG9rZW5fdHlwZTogc3RyaW5nXG5cdGV4cGlyZXNfaW46IG51bWJlclxuXHRjbGllbnRfaWQ6IHN0cmluZ1xuXHQnLmlzc3VlZCc6IHN0cmluZ1xuXHQnLmV4cGlyZXMnOiBzdHJpbmdcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9PQXV0aFRva2VuT3JOdWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9BdXRoVG9rZW4gfSBmcm9tICcuL09BdXRoVG9rZW4nXHJcblxyXG5leHBvcnQgdHlwZSBPQXV0aFRva2VuT3JOdWxsID0gT0F1dGhUb2tlbiB8IG51bGxcclxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9PQXV0aFRva2VuT3JOdWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9BdXRoVG9rZW4gfSBmcm9tICcuL09BdXRoVG9rZW4nXG5cbmV4cG9ydCB0eXBlIE9BdXRoVG9rZW5Pck51bGwgPSBPQXV0aFRva2VuIHwgbnVsbFxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9Ub2tlbkFjY2Vzc0Z1bmN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxFZmZlY3QgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnXHJcbmltcG9ydCB7IE9BdXRoVG9rZW5Pck51bGwgfSBmcm9tICcuL09BdXRoVG9rZW5Pck51bGwnXHJcblxyXG5leHBvcnQgdHlwZSBUb2tlbkFjY2Vzc0Z1bmN0aW9uID0gKG1vZGVsTmFtZTogc3RyaW5nKSA9PiBJdGVyYWJsZUl0ZXJhdG9yPE9BdXRoVG9rZW5Pck51bGwgfCBDYWxsRWZmZWN0PlxyXG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL25ldC9Ub2tlbkFjY2Vzc0Z1bmN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxFZmZlY3QgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnXG5pbXBvcnQgeyBPQXV0aFRva2VuT3JOdWxsIH0gZnJvbSAnLi9PQXV0aFRva2VuT3JOdWxsJ1xuXG5leHBvcnQgdHlwZSBUb2tlbkFjY2Vzc0Z1bmN0aW9uID0gKG1vZGVsTmFtZTogc3RyaW5nKSA9PiBJdGVyYWJsZUl0ZXJhdG9yPE9BdXRoVG9rZW5Pck51bGwgfCBDYWxsRWZmZWN0PlxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -179,4 +179,4 @@ Object.keys(_TokenAccessFunction).forEach(function (key) {
179
179
  }
180
180
  });
181
181
  });
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRW5kcG9pbnRDb25maWciLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX0VuZHBvaW50TWFwcGluZyIsIl9FbmRwb2ludE1hcHBpbmdzIiwiX0Vycm9ySGFuZGxlciIsIl9GZXRjaENvbmZpZyIsIl9GZXRjaEVycm9yRGF0YSIsIl9GZXRjaFJlc3VsdCIsIl9IVFRQTWV0aG9kIiwiX0hUVFBTdGF0dXNDb2RlIiwiX01ldGFkYXRhIiwiX01vZGVsIiwiX01vZGVsQ29sbGVjdGlvbiIsIl9Nb2RlbHNTdGF0ZSIsIl9PQXV0aFRva2VuIiwiX09BdXRoVG9rZW5Pck51bGwiLCJfVG9rZW5BY2Nlc3NGdW5jdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlcy9uZXQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9FbmRwb2ludENvbmZpZydcclxuZXhwb3J0ICogZnJvbSAnLi9FbmRwb2ludE1hcHBpbmcnXHJcbmV4cG9ydCAqIGZyb20gJy4vRW5kcG9pbnRNYXBwaW5ncydcclxuZXhwb3J0ICogZnJvbSAnLi9FcnJvckhhbmRsZXInXHJcbmV4cG9ydCAqIGZyb20gJy4vRmV0Y2hDb25maWcnXHJcbmV4cG9ydCAqIGZyb20gJy4vRmV0Y2hFcnJvckRhdGEnXHJcbmV4cG9ydCAqIGZyb20gJy4vRmV0Y2hSZXN1bHQnXHJcbmV4cG9ydCAqIGZyb20gJy4vSFRUUE1ldGhvZCdcclxuZXhwb3J0ICogZnJvbSAnLi9IVFRQU3RhdHVzQ29kZSdcclxuZXhwb3J0ICogZnJvbSAnLi9NZXRhZGF0YSdcclxuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbCdcclxuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbENvbGxlY3Rpb24nXHJcbmV4cG9ydCAqIGZyb20gJy4vTW9kZWxzU3RhdGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vT0F1dGhUb2tlbidcclxuZXhwb3J0ICogZnJvbSAnLi9PQXV0aFRva2VuT3JOdWxsJ1xyXG5leHBvcnQgKiBmcm9tICcuL1Rva2VuQWNjZXNzRnVuY3Rpb24nXHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFILGVBQUEsRUFBQUksT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQUwsZUFBQSxDQUFBSyxHQUFBO0VBQUFILE1BQUEsQ0FBQUssY0FBQSxDQUFBRCxPQUFBLEVBQUFELEdBQUE7SUFBQUcsVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBVCxlQUFBLENBQUFLLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFDQSxJQUFBSyxnQkFBQSxHQUFBVCxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBTyxnQkFBQSxFQUFBTixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBSyxnQkFBQSxDQUFBTCxHQUFBO0VBQUFILE1BQUEsQ0FBQUssY0FBQSxDQUFBRCxPQUFBLEVBQUFELEdBQUE7SUFBQUcsVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBQyxnQkFBQSxDQUFBTCxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQVYsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVEsaUJBQUEsRUFBQVAsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQU0saUJBQUEsQ0FBQU4sR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQUUsaUJBQUEsQ0FBQU4sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFPLGFBQUEsR0FBQVgsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVMsYUFBQSxFQUFBUixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBTyxhQUFBLENBQUFQLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFHLGFBQUEsQ0FBQVAsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFRLFlBQUEsR0FBQVosT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVUsWUFBQSxFQUFBVCxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBUSxZQUFBLENBQUFSLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFJLFlBQUEsQ0FBQVIsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFTLGVBQUEsR0FBQWIsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVcsZUFBQSxFQUFBVixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBUyxlQUFBLENBQUFULEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFLLGVBQUEsQ0FBQVQsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFVLFlBQUEsR0FBQWQsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVksWUFBQSxFQUFBWCxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBVSxZQUFBLENBQUFWLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFNLFlBQUEsQ0FBQVYsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFXLFdBQUEsR0FBQWYsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQWEsV0FBQSxFQUFBWixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBVyxXQUFBLENBQUFYLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFPLFdBQUEsQ0FBQVgsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFZLGVBQUEsR0FBQWhCLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFjLGVBQUEsRUFBQWIsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQVksZUFBQSxDQUFBWixH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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRW5kcG9pbnRDb25maWciLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX0VuZHBvaW50TWFwcGluZyIsIl9FbmRwb2ludE1hcHBpbmdzIiwiX0Vycm9ySGFuZGxlciIsIl9GZXRjaENvbmZpZyIsIl9GZXRjaEVycm9yRGF0YSIsIl9GZXRjaFJlc3VsdCIsIl9IVFRQTWV0aG9kIiwiX0hUVFBTdGF0dXNDb2RlIiwiX01ldGFkYXRhIiwiX01vZGVsIiwiX01vZGVsQ29sbGVjdGlvbiIsIl9Nb2RlbHNTdGF0ZSIsIl9PQXV0aFRva2VuIiwiX09BdXRoVG9rZW5Pck51bGwiLCJfVG9rZW5BY2Nlc3NGdW5jdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90eXBlcy9uZXQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9FbmRwb2ludENvbmZpZydcbmV4cG9ydCAqIGZyb20gJy4vRW5kcG9pbnRNYXBwaW5nJ1xuZXhwb3J0ICogZnJvbSAnLi9FbmRwb2ludE1hcHBpbmdzJ1xuZXhwb3J0ICogZnJvbSAnLi9FcnJvckhhbmRsZXInXG5leHBvcnQgKiBmcm9tICcuL0ZldGNoQ29uZmlnJ1xuZXhwb3J0ICogZnJvbSAnLi9GZXRjaEVycm9yRGF0YSdcbmV4cG9ydCAqIGZyb20gJy4vRmV0Y2hSZXN1bHQnXG5leHBvcnQgKiBmcm9tICcuL0hUVFBNZXRob2QnXG5leHBvcnQgKiBmcm9tICcuL0hUVFBTdGF0dXNDb2RlJ1xuZXhwb3J0ICogZnJvbSAnLi9NZXRhZGF0YSdcbmV4cG9ydCAqIGZyb20gJy4vTW9kZWwnXG5leHBvcnQgKiBmcm9tICcuL01vZGVsQ29sbGVjdGlvbidcbmV4cG9ydCAqIGZyb20gJy4vTW9kZWxzU3RhdGUnXG5leHBvcnQgKiBmcm9tICcuL09BdXRoVG9rZW4nXG5leHBvcnQgKiBmcm9tICcuL09BdXRoVG9rZW5Pck51bGwnXG5leHBvcnQgKiBmcm9tICcuL1Rva2VuQWNjZXNzRnVuY3Rpb24nXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSCxlQUFBLEVBQUFJLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFMLGVBQUEsQ0FBQUssR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQVQsZUFBQSxDQUFBSyxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQVQsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQU8sZ0JBQUEsRUFBQU4sT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQUssZ0JBQUEsQ0FBQUwsR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQUMsZ0JBQUEsQ0FBQUwsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFWLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFRLGlCQUFBLEVBQUFQLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFNLGlCQUFBLENBQUFOLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9B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
@@ -5,57 +5,57 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.defaultOptions = exports.canPerformActivityOnSomeEntities = exports.canPerformActivityOnEntity = exports.canPerformActivityGloballyOrOnSomeEntities = exports.canPerformActivityGloballyOrOnEntity = exports.canPerformActivityGlobally = void 0;
7
7
  var _model = require("./model");
8
- /*
9
- The functions in this module all are designed as predicates to determine whether a
10
- user has been granted a set of activities to perform, either at an entity-specific
11
- level or at a global level.
12
-
13
- Because Javascript doesn’t have named parameters, we use an 'options object' to
14
- pass the needed items. By ensuring all these functions have the same signature,
15
- we can use them interchangeably in constructing the ActivityRequiredComponent.
16
-
17
- The options object has the following structure:
18
- {
19
- entities: {
20
- {
21
- 1: {
22
- activities: [
23
- "activityName1",
24
- "activityName2"
25
- ...
26
- ]
27
- },
28
- ...
29
- }
30
- },
31
- entity: {
32
- activities: [
33
- "activityName1",
34
- "activityName2"
35
- ...
36
- ]
37
- }
38
- userInfo: {
39
- activities: [
40
- "activityName1",
41
- "activityName2",
42
- ...
43
- ]
44
- }
45
- }
46
-
47
- `entity` is a single entity and `entities` is a set of entities to which a user has been granted a set of activities.
48
- While we could use the array of entities and eliminate the need for the entity property, the singular property will be
49
- used in most cases and it prevents to the need to stuff the entity in an array unnecessarily.
50
-
51
- `userInfo` contains a property with an array of activities the user has been granted at a global level
8
+ /*
9
+ The functions in this module all are designed as predicates to determine whether a
10
+ user has been granted a set of activities to perform, either at an entity-specific
11
+ level or at a global level.
12
+
13
+ Because Javascript doesn’t have named parameters, we use an 'options object' to
14
+ pass the needed items. By ensuring all these functions have the same signature,
15
+ we can use them interchangeably in constructing the ActivityRequiredComponent.
16
+
17
+ The options object has the following structure:
18
+ {
19
+ entities: {
20
+ {
21
+ 1: {
22
+ activities: [
23
+ "activityName1",
24
+ "activityName2"
25
+ ...
26
+ ]
27
+ },
28
+ ...
29
+ }
30
+ },
31
+ entity: {
32
+ activities: [
33
+ "activityName1",
34
+ "activityName2"
35
+ ...
36
+ ]
37
+ }
38
+ userInfo: {
39
+ activities: [
40
+ "activityName1",
41
+ "activityName2",
42
+ ...
43
+ ]
44
+ }
45
+ }
46
+
47
+ `entity` is a single entity and `entities` is a set of entities to which a user has been granted a set of activities.
48
+ While we could use the array of entities and eliminate the need for the entity property, the singular property will be
49
+ used in most cases and it prevents to the need to stuff the entity in an array unnecessarily.
50
+
51
+ `userInfo` contains a property with an array of activities the user has been granted at a global level
52
52
  */
53
53
 
54
- /**
55
- * Return true if user has activity for the single entity
56
- *
57
- * @param {string} requiredActivity The activity required to return true
58
- * @param {object} options See above
54
+ /**
55
+ * Return true if user has activity for the single entity
56
+ *
57
+ * @param {string} requiredActivity The activity required to return true
58
+ * @param {object} options See above
59
59
  */
60
60
  const canPerformActivityOnEntity = (requiredActivity, options) => {
61
61
  if (!requiredActivity) {
@@ -67,11 +67,11 @@ const canPerformActivityOnEntity = (requiredActivity, options) => {
67
67
  return !!options.entity.activities?.includes(requiredActivity);
68
68
  };
69
69
 
70
- /**
71
- * Return true if user has activity on any of the entities
72
- *
73
- * @param {string} requiredActivity The activity required to return true
74
- * @param {object} options See above
70
+ /**
71
+ * Return true if user has activity on any of the entities
72
+ *
73
+ * @param {string} requiredActivity The activity required to return true
74
+ * @param {object} options See above
75
75
  */
76
76
  exports.canPerformActivityOnEntity = canPerformActivityOnEntity;
77
77
  const canPerformActivityOnSomeEntities = (requiredActivity, options) => {
@@ -86,16 +86,16 @@ const canPerformActivityOnSomeEntities = (requiredActivity, options) => {
86
86
  }));
87
87
  };
88
88
 
89
- /**
90
- * Return true if user has activity globally
91
- *
92
- * This function can accept an null/undefined userInfo property for the
93
- * options argument. In which case it returns false. This is because userInfo
94
- * may not be loaded yet. If it is provided however, it must contain an
95
- * activities array
96
- *
97
- * @param {string} requiredActivity The activity required to return true
98
- * @param {object} options See above
89
+ /**
90
+ * Return true if user has activity globally
91
+ *
92
+ * This function can accept an null/undefined userInfo property for the
93
+ * options argument. In which case it returns false. This is because userInfo
94
+ * may not be loaded yet. If it is provided however, it must contain an
95
+ * activities array
96
+ *
97
+ * @param {string} requiredActivity The activity required to return true
98
+ * @param {object} options See above
99
99
  */
100
100
  exports.canPerformActivityOnSomeEntities = canPerformActivityOnSomeEntities;
101
101
  const canPerformActivityGlobally = (requiredActivity, options) => {
@@ -108,38 +108,38 @@ const canPerformActivityGlobally = (requiredActivity, options) => {
108
108
  return !!options.userInfo && !!options.userInfo.activities && options.userInfo.activities.includes(requiredActivity);
109
109
  };
110
110
 
111
- /**
112
- * Return true if user has activity either globally or on a single entity
113
- *
114
- * @param {string} requiredActivity The activity required to return true
115
- * @param {object} options See above
111
+ /**
112
+ * Return true if user has activity either globally or on a single entity
113
+ *
114
+ * @param {string} requiredActivity The activity required to return true
115
+ * @param {object} options See above
116
116
  */
117
117
  exports.canPerformActivityGlobally = canPerformActivityGlobally;
118
118
  const canPerformActivityGloballyOrOnEntity = (requiredActivity, options) => canPerformActivityGlobally(requiredActivity, options) || canPerformActivityOnEntity(requiredActivity, options);
119
119
 
120
- /**
121
- * Return true if user has activity globally or on any of the entities provided
122
- *
123
- * @param {string} requiredActivity The activity required to return true
124
- * @param {object} options See above
120
+ /**
121
+ * Return true if user has activity globally or on any of the entities provided
122
+ *
123
+ * @param {string} requiredActivity The activity required to return true
124
+ * @param {object} options See above
125
125
  */
126
126
  exports.canPerformActivityGloballyOrOnEntity = canPerformActivityGloballyOrOnEntity;
127
127
  const canPerformActivityGloballyOrOnSomeEntities = (requiredActivity, options) => {
128
128
  return canPerformActivityGlobally(requiredActivity, options) || canPerformActivityOnSomeEntities(requiredActivity, options);
129
129
  };
130
130
 
131
- /**
132
- * Return an options object that can be used in the functions in this module. This
133
- * encapsulates the default logic of looking in state for a set of entities or
134
- * looking in props for a single entity.
135
- *
136
- * Override or decorate with app specific logic in your app if needed.
137
- *
138
- * @param {Object} state The redux state
139
- * @param {Object} [props] A props object (typically ownProps)
140
- * @param {string} [modelsProperty] The property used to locate the entity or entities
141
- * needed for entity-level activity grants. For sets of entities, this function
142
- * looks in `state.models`. For a single entity, it looks in `props`
131
+ /**
132
+ * Return an options object that can be used in the functions in this module. This
133
+ * encapsulates the default logic of looking in state for a set of entities or
134
+ * looking in props for a single entity.
135
+ *
136
+ * Override or decorate with app specific logic in your app if needed.
137
+ *
138
+ * @param {Object} state The redux state
139
+ * @param {Object} [props] A props object (typically ownProps)
140
+ * @param {string} [modelsProperty] The property used to locate the entity or entities
141
+ * needed for entity-level activity grants. For sets of entities, this function
142
+ * looks in `state.models`. For a single entity, it looks in `props`
143
143
  */
144
144
  exports.canPerformActivityGloballyOrOnSomeEntities = canPerformActivityGloballyOrOnSomeEntities;
145
145
  const defaultOptions = (state, props, modelsProperty) => {
@@ -151,4 +151,4 @@ const defaultOptions = (state, props, modelsProperty) => {
151
151
  };
152
152
  };
153
153
  exports.defaultOptions = defaultOptions;
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9kZWwiLCJyZXF1aXJlIiwiY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkiLCJyZXF1aXJlZEFjdGl2aXR5Iiwib3B0aW9ucyIsIkVycm9yIiwiZW50aXR5IiwiYWN0aXZpdGllcyIsImluY2x1ZGVzIiwiZXhwb3J0cyIsImNhblBlcmZvcm1BY3Rpdml0eU9uU29tZUVudGl0aWVzIiwiZW50aXRpZXMiLCJnZXRNb2RlbEFycmF5Iiwic29tZSIsImNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5IiwidXNlckluZm8iLCJBcnJheSIsImlzQXJyYXkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25FbnRpdHkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25Tb21lRW50aXRpZXMiLCJkZWZhdWx0T3B0aW9ucyIsInN0YXRlIiwicHJvcHMiLCJtb2RlbHNQcm9wZXJ0eSIsInVuZGVmaW5lZCIsIm1vZGVscyIsInVzZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZUFjdGl2aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VSZWR1eFN0YXRlLCBNb2RlbCwgTW9kZWxDb2xsZWN0aW9uLCBVc2VySW5mbyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBnZXRNb2RlbEFycmF5IH0gZnJvbSAnLi9tb2RlbCdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlPcHRpb25zIHtcclxuXHRlbnRpdHk/OiBNb2RlbCAmIHtcclxuXHRcdGFjdGl2aXRpZXM/OiBzdHJpbmdbXVxyXG5cdH1cclxuXHRlbnRpdGllcz86IE1vZGVsQ29sbGVjdGlvblxyXG5cdHVzZXJJbmZvPzogVXNlckluZm8gfCBQYXJ0aWFsPFVzZXJJbmZvPlxyXG59XHJcblxyXG4vKlxyXG5cdFRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgYWxsIGFyZSBkZXNpZ25lZCBhcyBwcmVkaWNhdGVzIHRvIGRldGVybWluZSB3aGV0aGVyIGFcclxuXHR1c2VyIGhhcyBiZWVuIGdyYW50ZWQgYSBzZXQgb2YgYWN0aXZpdGllcyB0byBwZXJmb3JtLCBlaXRoZXIgYXQgYW4gZW50aXR5LXNwZWNpZmljXHJcblx0bGV2ZWwgb3IgYXQgYSBnbG9iYWwgbGV2ZWwuXHJcblxyXG5cdEJlY2F1c2UgSmF2YXNjcmlwdCBkb2VzbuKAmXQgaGF2ZSBuYW1lZCBwYXJhbWV0ZXJzLCB3ZSB1c2UgYW4gJ29wdGlvbnMgb2JqZWN0JyB0b1xyXG5cdHBhc3MgdGhlIG5lZWRlZCBpdGVtcy4gQnkgZW5zdXJpbmcgYWxsIHRoZXNlIGZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZSxcclxuXHR3ZSBjYW4gdXNlIHRoZW0gaW50ZXJjaGFuZ2VhYmx5IGluIGNvbnN0cnVjdGluZyB0aGUgQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudC5cclxuXHJcblx0VGhlIG9wdGlvbnMgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcclxuXHR7XHJcblx0XHRlbnRpdGllczoge1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0MToge1xyXG5cdFx0XHRcdFx0XHRhY3Rpdml0aWVzOiBbXHJcblx0XHRcdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUxXCIsXHJcblx0XHRcdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUyXCJcclxuXHRcdFx0XHRcdFx0XHQuLi5cclxuXHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC4uLlxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZW50aXR5OiB7XHJcblx0XHRcdFx0YWN0aXZpdGllczogW1xyXG5cdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUxXCIsXHJcblx0XHRcdFx0XHRcImFjdGl2aXR5TmFtZTJcIlxyXG5cdFx0XHRcdFx0Li4uXHJcblx0XHRcdFx0XVxyXG5cdFx0fVxyXG5cdFx0dXNlckluZm86IHtcclxuXHRcdFx0YWN0aXZpdGllczogW1xyXG5cdFx0XHRcdFwiYWN0aXZpdHlOYW1lMVwiLFxyXG5cdFx0XHRcdFwiYWN0aXZpdHlOYW1lMlwiLFxyXG5cdFx0XHRcdC4uLlxyXG5cdFx0XHRdXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRgZW50aXR5YCBpcyBhIHNpbmdsZSBlbnRpdHkgYW5kIGBlbnRpdGllc2AgaXMgYSBzZXQgb2YgZW50aXRpZXMgdG8gd2hpY2ggYSB1c2VyIGhhcyBiZWVuIGdyYW50ZWQgYSBzZXQgb2YgYWN0aXZpdGllcy5cclxuXHRXaGlsZSB3ZSBjb3VsZCB1c2UgdGhlIGFycmF5IG9mIGVudGl0aWVzIGFuZCBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHRoZSBlbnRpdHkgcHJvcGVydHksIHRoZSBzaW5ndWxhciBwcm9wZXJ0eSB3aWxsIGJlXHJcblx0dXNlZCBpbiBtb3N0IGNhc2VzIGFuZCBpdCBwcmV2ZW50cyB0byB0aGUgbmVlZCB0byBzdHVmZiB0aGUgZW50aXR5IGluIGFuIGFycmF5IHVubmVjZXNzYXJpbHkuXHJcblxyXG5cdGB1c2VySW5mb2AgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIGFuIGFycmF5IG9mIGFjdGl2aXRpZXMgdGhlIHVzZXIgaGFzIGJlZW4gZ3JhbnRlZCBhdCBhIGdsb2JhbCBsZXZlbFxyXG4qL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHVzZXIgaGFzIGFjdGl2aXR5IGZvciB0aGUgc2luZ2xlIGVudGl0eVxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgU2VlIGFib3ZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRpZiAoIXJlcXVpcmVkQWN0aXZpdHkpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYHJlcXVpcmVkQWN0aXZpdHlgIG11c3QgYmUgcHJvdmlkZWQnKVxyXG5cdH1cclxuXHRpZiAoIW9wdGlvbnMuZW50aXR5KSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2BvcHRpb25zLmVudGl0eWAgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdHJldHVybiAhIW9wdGlvbnMuZW50aXR5LmFjdGl2aXRpZXM/LmluY2x1ZGVzKHJlcXVpcmVkQWN0aXZpdHkpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBvbiBhbnkgb2YgdGhlIGVudGl0aWVzXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlPblNvbWVFbnRpdGllcyA9IChyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsIG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT4ge1xyXG5cdGlmICghcmVxdWlyZWRBY3Rpdml0eSkge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVxdWlyZWRBY3Rpdml0eWAgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdGlmICghb3B0aW9ucy5lbnRpdGllcykge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgb3B0aW9ucy5lbnRpdGllc2AgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdHJldHVybiBnZXRNb2RlbEFycmF5KG9wdGlvbnMuZW50aXRpZXMpLnNvbWUoZW50aXR5ID0+IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KHJlcXVpcmVkQWN0aXZpdHksIHsgZW50aXR5IH0pKVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdXNlciBoYXMgYWN0aXZpdHkgZ2xvYmFsbHlcclxuICpcclxuICogVGhpcyBmdW5jdGlvbiBjYW4gYWNjZXB0IGFuIG51bGwvdW5kZWZpbmVkIHVzZXJJbmZvIHByb3BlcnR5IGZvciB0aGVcclxuICogb3B0aW9ucyBhcmd1bWVudC4gSW4gd2hpY2ggY2FzZSBpdCByZXR1cm5zIGZhbHNlLiBUaGlzIGlzIGJlY2F1c2UgdXNlckluZm9cclxuICogbWF5IG5vdCBiZSBsb2FkZWQgeWV0LiBJZiBpdCBpcyBwcm92aWRlZCBob3dldmVyLCBpdCBtdXN0IGNvbnRhaW4gYW5cclxuICogYWN0aXZpdGllcyBhcnJheVxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgU2VlIGFib3ZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRpZiAoIXJlcXVpcmVkQWN0aXZpdHkpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYHJlcXVpcmVkQWN0aXZpdHlgIG11c3QgYmUgcHJvdmlkZWQnKVxyXG5cdH1cclxuXHRpZiAoISFvcHRpb25zLnVzZXJJbmZvICYmICEhb3B0aW9ucy51c2VySW5mby5hY3Rpdml0aWVzICYmICFBcnJheS5pc0FycmF5KG9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllcykpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYG9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllc2AgbXVzdCBiZSBhbiBhcnJheScpXHJcblx0fVxyXG5cdHJldHVybiAhIW9wdGlvbnMudXNlckluZm8gJiYgISFvcHRpb25zLnVzZXJJbmZvLmFjdGl2aXRpZXMgJiYgb3B0aW9ucy51c2VySW5mby5hY3Rpdml0aWVzLmluY2x1ZGVzKHJlcXVpcmVkQWN0aXZpdHkpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBlaXRoZXIgZ2xvYmFsbHkgb3Igb24gYSBzaW5nbGUgZW50aXR5XHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25FbnRpdHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+XHJcblx0Y2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucykgfHwgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucylcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBnbG9iYWxseSBvciBvbiBhbnkgb2YgdGhlIGVudGl0aWVzIHByb3ZpZGVkXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25Tb21lRW50aXRpZXMgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRyZXR1cm4gKFxyXG5cdFx0Y2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucykgfHxcclxuXHRcdGNhblBlcmZvcm1BY3Rpdml0eU9uU29tZUVudGl0aWVzKHJlcXVpcmVkQWN0aXZpdHksIG9wdGlvbnMpXHJcblx0KVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGFuIG9wdGlvbnMgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZS4gVGhpc1xyXG4gKiBlbmNhcHN1bGF0ZXMgdGhlIGRlZmF1bHQgbG9naWMgb2YgbG9va2luZyBpbiBzdGF0ZSBmb3IgYSBzZXQgb2YgZW50aXRpZXMgb3JcclxuICogbG9va2luZyBpbiBwcm9wcyBmb3IgYSBzaW5nbGUgZW50aXR5LlxyXG4gKlxyXG4gKiBPdmVycmlkZSBvciBkZWNvcmF0ZSB3aXRoIGFwcCBzcGVjaWZpYyBsb2dpYyBpbiB5b3VyIGFwcCBpZiBuZWVkZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSBUaGUgcmVkdXggc3RhdGVcclxuICogQHBhcmFtIHtPYmplY3R9IFtwcm9wc10gQSBwcm9wcyBvYmplY3QgKHR5cGljYWxseSBvd25Qcm9wcylcclxuICogQHBhcmFtIHtzdHJpbmd9IFttb2RlbHNQcm9wZXJ0eV0gVGhlIHByb3BlcnR5IHVzZWQgdG8gbG9jYXRlIHRoZSBlbnRpdHkgb3IgZW50aXRpZXNcclxuICogbmVlZGVkIGZvciBlbnRpdHktbGV2ZWwgYWN0aXZpdHkgZ3JhbnRzLiBGb3Igc2V0cyBvZiBlbnRpdGllcywgdGhpcyBmdW5jdGlvblxyXG4gKiBsb29rcyBpbiBgc3RhdGUubW9kZWxzYC4gRm9yIGEgc2luZ2xlIGVudGl0eSwgaXQgbG9va3MgaW4gYHByb3BzYFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zID0gKHN0YXRlOiBCYXNlUmVkdXhTdGF0ZSwgcHJvcHM/OiBhbnksIG1vZGVsc1Byb3BlcnR5Pzogc3RyaW5nKTogQWN0aXZpdHlPcHRpb25zID0+IHtcclxuXHQvLyBpZiBpbXBsZW1lbnRpbmcgaW4gYXBwLCBvdmVycmlkZSAvIGRlY29yYXRlIHdpdGggYXBwIHNwZWNpZmljIGxvZ2ljXHJcblx0cmV0dXJuIHtcclxuXHRcdGVudGl0eTogbW9kZWxzUHJvcGVydHkgPyBwcm9wcyAmJiBwcm9wc1ttb2RlbHNQcm9wZXJ0eV0gOiB1bmRlZmluZWQsXHJcblx0XHRlbnRpdGllczogbW9kZWxzUHJvcGVydHkgPyAoc3RhdGUubW9kZWxzW21vZGVsc1Byb3BlcnR5XSBhcyBNb2RlbENvbGxlY3Rpb24gfCB1bmRlZmluZWQpIDogdW5kZWZpbmVkLFxyXG5cdFx0dXNlckluZm86IHN0YXRlLm1vZGVscy51c2VyICYmIHN0YXRlLm1vZGVscy51c2VyLnVzZXJJbmZvXHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLDBCQUEwQixHQUFHQSxDQUFDQyxnQkFBd0IsRUFBRUMsT0FBd0IsS0FBSztFQUNqRyxJQUFJLENBQUNELGdCQUFnQixFQUFFO0lBQ3RCLE1BQU0sSUFBSUUsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO0VBQ3ZEO0VBQ0EsSUFBSSxDQUFDRCxPQUFPLENBQUNFLE1BQU0sRUFBRTtJQUNwQixNQUFNLElBQUlELEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQztFQUNyRDtFQUNBLE9BQU8sQ0FBQyxDQUFDRCxPQUFPLENBQUNFLE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxRQUFRLENBQUNMLGdCQUFnQixDQUFDO0FBQy9ELENB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
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9kZWwiLCJyZXF1aXJlIiwiY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkiLCJyZXF1aXJlZEFjdGl2aXR5Iiwib3B0aW9ucyIsIkVycm9yIiwiZW50aXR5IiwiYWN0aXZpdGllcyIsImluY2x1ZGVzIiwiZXhwb3J0cyIsImNhblBlcmZvcm1BY3Rpdml0eU9uU29tZUVudGl0aWVzIiwiZW50aXRpZXMiLCJnZXRNb2RlbEFycmF5Iiwic29tZSIsImNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5IiwidXNlckluZm8iLCJBcnJheSIsImlzQXJyYXkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25FbnRpdHkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25Tb21lRW50aXRpZXMiLCJkZWZhdWx0T3B0aW9ucyIsInN0YXRlIiwicHJvcHMiLCJtb2RlbHNQcm9wZXJ0eSIsInVuZGVmaW5lZCIsIm1vZGVscyIsInVzZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZUFjdGl2aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VSZWR1eFN0YXRlLCBNb2RlbCwgTW9kZWxDb2xsZWN0aW9uLCBVc2VySW5mbyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TW9kZWxBcnJheSB9IGZyb20gJy4vbW9kZWwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlPcHRpb25zIHtcblx0ZW50aXR5PzogTW9kZWwgJiB7XG5cdFx0YWN0aXZpdGllcz86IHN0cmluZ1tdXG5cdH1cblx0ZW50aXRpZXM/OiBNb2RlbENvbGxlY3Rpb25cblx0dXNlckluZm8/OiBVc2VySW5mbyB8IFBhcnRpYWw8VXNlckluZm8+XG59XG5cbi8qXG5cdFRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgYWxsIGFyZSBkZXNpZ25lZCBhcyBwcmVkaWNhdGVzIHRvIGRldGVybWluZSB3aGV0aGVyIGFcblx0dXNlciBoYXMgYmVlbiBncmFudGVkIGEgc2V0IG9mIGFjdGl2aXRpZXMgdG8gcGVyZm9ybSwgZWl0aGVyIGF0IGFuIGVudGl0eS1zcGVjaWZpY1xuXHRsZXZlbCBvciBhdCBhIGdsb2JhbCBsZXZlbC5cblxuXHRCZWNhdXNlIEphdmFzY3JpcHQgZG9lc27igJl0IGhhdmUgbmFtZWQgcGFyYW1ldGVycywgd2UgdXNlIGFuICdvcHRpb25zIG9iamVjdCcgdG9cblx0cGFzcyB0aGUgbmVlZGVkIGl0ZW1zLiBCeSBlbnN1cmluZyBhbGwgdGhlc2UgZnVuY3Rpb25zIGhhdmUgdGhlIHNhbWUgc2lnbmF0dXJlLFxuXHR3ZSBjYW4gdXNlIHRoZW0gaW50ZXJjaGFuZ2VhYmx5IGluIGNvbnN0cnVjdGluZyB0aGUgQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudC5cblxuXHRUaGUgb3B0aW9ucyBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuXHR7XG5cdFx0ZW50aXRpZXM6IHtcblx0XHRcdHtcblx0XHRcdFx0MToge1xuXHRcdFx0XHRcdFx0YWN0aXZpdGllczogW1xuXHRcdFx0XHRcdFx0XHRcImFjdGl2aXR5TmFtZTFcIixcblx0XHRcdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUyXCJcblx0XHRcdFx0XHRcdFx0Li4uXG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQuLi5cblx0XHRcdH1cblx0XHR9LFxuXHRcdGVudGl0eToge1xuXHRcdFx0XHRhY3Rpdml0aWVzOiBbXG5cdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUxXCIsXG5cdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUyXCJcblx0XHRcdFx0XHQuLi5cblx0XHRcdFx0XVxuXHRcdH1cblx0XHR1c2VySW5mbzoge1xuXHRcdFx0YWN0aXZpdGllczogW1xuXHRcdFx0XHRcImFjdGl2aXR5TmFtZTFcIixcblx0XHRcdFx0XCJhY3Rpdml0eU5hbWUyXCIsXG5cdFx0XHRcdC4uLlxuXHRcdFx0XVxuXHRcdH1cblx0fVxuXG5cdGBlbnRpdHlgIGlzIGEgc2luZ2xlIGVudGl0eSBhbmQgYGVudGl0aWVzYCBpcyBhIHNldCBvZiBlbnRpdGllcyB0byB3aGljaCBhIHVzZXIgaGFzIGJlZW4gZ3JhbnRlZCBhIHNldCBvZiBhY3Rpdml0aWVzLlxuXHRXaGlsZSB3ZSBjb3VsZCB1c2UgdGhlIGFycmF5IG9mIGVudGl0aWVzIGFuZCBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHRoZSBlbnRpdHkgcHJvcGVydHksIHRoZSBzaW5ndWxhciBwcm9wZXJ0eSB3aWxsIGJlXG5cdHVzZWQgaW4gbW9zdCBjYXNlcyBhbmQgaXQgcHJldmVudHMgdG8gdGhlIG5lZWQgdG8gc3R1ZmYgdGhlIGVudGl0eSBpbiBhbiBhcnJheSB1bm5lY2Vzc2FyaWx5LlxuXG5cdGB1c2VySW5mb2AgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIGFuIGFycmF5IG9mIGFjdGl2aXRpZXMgdGhlIHVzZXIgaGFzIGJlZW4gZ3JhbnRlZCBhdCBhIGdsb2JhbCBsZXZlbFxuKi9cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBmb3IgdGhlIHNpbmdsZSBlbnRpdHlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIFNlZSBhYm92ZVxuICovXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcblx0aWYgKCFyZXF1aXJlZEFjdGl2aXR5KSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVxdWlyZWRBY3Rpdml0eWAgbXVzdCBiZSBwcm92aWRlZCcpXG5cdH1cblx0aWYgKCFvcHRpb25zLmVudGl0eSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignYG9wdGlvbnMuZW50aXR5YCBtdXN0IGJlIHByb3ZpZGVkJylcblx0fVxuXHRyZXR1cm4gISFvcHRpb25zLmVudGl0eS5hY3Rpdml0aWVzPy5pbmNsdWRlcyhyZXF1aXJlZEFjdGl2aXR5KVxufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHVzZXIgaGFzIGFjdGl2aXR5IG9uIGFueSBvZiB0aGUgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIFNlZSBhYm92ZVxuICovXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5T25Tb21lRW50aXRpZXMgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcblx0aWYgKCFyZXF1aXJlZEFjdGl2aXR5KSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVxdWlyZWRBY3Rpdml0eWAgbXVzdCBiZSBwcm92aWRlZCcpXG5cdH1cblx0aWYgKCFvcHRpb25zLmVudGl0aWVzKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgb3B0aW9ucy5lbnRpdGllc2AgbXVzdCBiZSBwcm92aWRlZCcpXG5cdH1cblx0cmV0dXJuIGdldE1vZGVsQXJyYXkob3B0aW9ucy5lbnRpdGllcykuc29tZShlbnRpdHkgPT4gY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkocmVxdWlyZWRBY3Rpdml0eSwgeyBlbnRpdHkgfSkpXG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdXNlciBoYXMgYWN0aXZpdHkgZ2xvYmFsbHlcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGNhbiBhY2NlcHQgYW4gbnVsbC91bmRlZmluZWQgdXNlckluZm8gcHJvcGVydHkgZm9yIHRoZVxuICogb3B0aW9ucyBhcmd1bWVudC4gSW4gd2hpY2ggY2FzZSBpdCByZXR1cm5zIGZhbHNlLiBUaGlzIGlzIGJlY2F1c2UgdXNlckluZm9cbiAqIG1heSBub3QgYmUgbG9hZGVkIHlldC4gSWYgaXQgaXMgcHJvdmlkZWQgaG93ZXZlciwgaXQgbXVzdCBjb250YWluIGFuXG4gKiBhY3Rpdml0aWVzIGFycmF5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVpcmVkQWN0aXZpdHkgVGhlIGFjdGl2aXR5IHJlcXVpcmVkIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcbiAqL1xuZXhwb3J0IGNvbnN0IGNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5ID0gKHJlcXVpcmVkQWN0aXZpdHk6IHN0cmluZywgb3B0aW9uczogQWN0aXZpdHlPcHRpb25zKSA9PiB7XG5cdGlmICghcmVxdWlyZWRBY3Rpdml0eSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignYHJlcXVpcmVkQWN0aXZpdHlgIG11c3QgYmUgcHJvdmlkZWQnKVxuXHR9XG5cdGlmICghIW9wdGlvbnMudXNlckluZm8gJiYgISFvcHRpb25zLnVzZXJJbmZvLmFjdGl2aXRpZXMgJiYgIUFycmF5LmlzQXJyYXkob3B0aW9ucy51c2VySW5mby5hY3Rpdml0aWVzKSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignYG9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllc2AgbXVzdCBiZSBhbiBhcnJheScpXG5cdH1cblx0cmV0dXJuICEhb3B0aW9ucy51c2VySW5mbyAmJiAhIW9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllcyAmJiBvcHRpb25zLnVzZXJJbmZvLmFjdGl2aXRpZXMuaW5jbHVkZXMocmVxdWlyZWRBY3Rpdml0eSlcbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBlaXRoZXIgZ2xvYmFsbHkgb3Igb24gYSBzaW5nbGUgZW50aXR5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVpcmVkQWN0aXZpdHkgVGhlIGFjdGl2aXR5IHJlcXVpcmVkIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcbiAqL1xuZXhwb3J0IGNvbnN0IGNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5T3JPbkVudGl0eSA9IChyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsIG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT5cblx0Y2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucykgfHwgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucylcblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBnbG9iYWxseSBvciBvbiBhbnkgb2YgdGhlIGVudGl0aWVzIHByb3ZpZGVkXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVpcmVkQWN0aXZpdHkgVGhlIGFjdGl2aXR5IHJlcXVpcmVkIHRvIHJldHVybiB0cnVlXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcbiAqL1xuZXhwb3J0IGNvbnN0IGNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5T3JPblNvbWVFbnRpdGllcyA9IChyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsIG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdGNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5KHJlcXVpcmVkQWN0aXZpdHksIG9wdGlvbnMpIHx8XG5cdFx0Y2FuUGVyZm9ybUFjdGl2aXR5T25Tb21lRW50aXRpZXMocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucylcblx0KVxufVxuXG4vKipcbiAqIFJldHVybiBhbiBvcHRpb25zIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUuIFRoaXNcbiAqIGVuY2Fwc3VsYXRlcyB0aGUgZGVmYXVsdCBsb2dpYyBvZiBsb29raW5nIGluIHN0YXRlIGZvciBhIHNldCBvZiBlbnRpdGllcyBvclxuICogbG9va2luZyBpbiBwcm9wcyBmb3IgYSBzaW5nbGUgZW50aXR5LlxuICpcbiAqIE92ZXJyaWRlIG9yIGRlY29yYXRlIHdpdGggYXBwIHNwZWNpZmljIGxvZ2ljIGluIHlvdXIgYXBwIGlmIG5lZWRlZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhdGUgVGhlIHJlZHV4IHN0YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW3Byb3BzXSBBIHByb3BzIG9iamVjdCAodHlwaWNhbGx5IG93blByb3BzKVxuICogQHBhcmFtIHtzdHJpbmd9IFttb2RlbHNQcm9wZXJ0eV0gVGhlIHByb3BlcnR5IHVzZWQgdG8gbG9jYXRlIHRoZSBlbnRpdHkgb3IgZW50aXRpZXNcbiAqIG5lZWRlZCBmb3IgZW50aXR5LWxldmVsIGFjdGl2aXR5IGdyYW50cy4gRm9yIHNldHMgb2YgZW50aXRpZXMsIHRoaXMgZnVuY3Rpb25cbiAqIGxvb2tzIGluIGBzdGF0ZS5tb2RlbHNgLiBGb3IgYSBzaW5nbGUgZW50aXR5LCBpdCBsb29rcyBpbiBgcHJvcHNgXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IChzdGF0ZTogQmFzZVJlZHV4U3RhdGUsIHByb3BzPzogYW55LCBtb2RlbHNQcm9wZXJ0eT86IHN0cmluZyk6IEFjdGl2aXR5T3B0aW9ucyA9PiB7XG5cdC8vIGlmIGltcGxlbWVudGluZyBpbiBhcHAsIG92ZXJyaWRlIC8gZGVjb3JhdGUgd2l0aCBhcHAgc3BlY2lmaWMgbG9naWNcblx0cmV0dXJuIHtcblx0XHRlbnRpdHk6IG1vZGVsc1Byb3BlcnR5ID8gcHJvcHMgJiYgcHJvcHNbbW9kZWxzUHJvcGVydHldIDogdW5kZWZpbmVkLFxuXHRcdGVudGl0aWVzOiBtb2RlbHNQcm9wZXJ0eSA/IChzdGF0ZS5tb2RlbHNbbW9kZWxzUHJvcGVydHldIGFzIE1vZGVsQ29sbGVjdGlvbiB8IHVuZGVmaW5lZCkgOiB1bmRlZmluZWQsXG5cdFx0dXNlckluZm86IHN0YXRlLm1vZGVscy51c2VyICYmIHN0YXRlLm1vZGVscy51c2VyLnVzZXJJbmZvXG5cdH1cbn1cbiJdLCJt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
@@ -39,4 +39,4 @@ const singularArticleForBaseRole = role => {
39
39
  }
40
40
  };
41
41
  exports.singularArticleForBaseRole = singularArticleForBaseRole;
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwidGV4dEZvckJhc2VSb2xlIiwicm9sZSIsIkJBU0VfUk9MRSIsIlNVUEVSX0FETUlOIiwiQURNSU4iLCJDUkVBVE9SIiwiR1JPVVBfTEVBUk5FUiIsIkdST1VQX09XTkVSIiwiR1JPVVBfR1JBREVSIiwiRXJyb3IiLCJleHBvcnRzIiwic2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZVJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRV9ST0xFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Jhc2VSb2xlJ1xyXG5cclxuZXhwb3J0IGNvbnN0IHRleHRGb3JCYXNlUm9sZSA9IChyb2xlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdHN3aXRjaCAocm9sZSkge1xyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuU1VQRVJfQURNSU46XHJcblx0XHRcdHJldHVybiAnU3VwZXIgQWRtaW4nXHJcblx0XHRjYXNlIEJBU0VfUk9MRS5BRE1JTjpcclxuXHRcdFx0cmV0dXJuICdBZG1pbidcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkNSRUFUT1I6XHJcblx0XHRcdHJldHVybiAnQ3JlYXRvcidcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX0xFQVJORVI6XHJcblx0XHRcdHJldHVybiAnU3R1ZGVudCdcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxyXG5cdFx0XHRyZXR1cm4gJ0luc3RydWN0b3InXHJcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9HUkFERVI6XHJcblx0XHRcdHJldHVybiAnR3JhZGVyJ1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGByb2xlICcke3JvbGV9JyB3YXMgbm90IGZvdW5kIGluIHN3aXRjaCBzdGF0ZW1lbnRgKVxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlID0gKHJvbGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0c3dpdGNoIChyb2xlKSB7XHJcblx0XHRjYXNlIEJBU0VfUk9MRS5BRE1JTjpcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxyXG5cdFx0XHRyZXR1cm4gJ2FuJ1xyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuU1VQRVJfQURNSU46XHJcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSOlxyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuR1JPVVBfR1JBREVSOlxyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuQ1JFQVRPUjpcclxuXHRcdFx0cmV0dXJuICdhJ1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGByb2xlICcke3JvbGV9JyB3YXMgbm90IGZvdW5kIGluIHN3aXRjaCBzdGF0ZW1lbnRgKVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLGVBQWUsR0FBSUMsSUFBWSxJQUFhO0VBQ3hELFFBQVFBLElBQUk7SUFDWCxLQUFLQyxtQkFBUyxDQUFDQyxXQUFXO01BQ3pCLE9BQU8sYUFBYTtJQUNyQixLQUFLRCxtQkFBUyxDQUFDRSxLQUFLO01BQ25CLE9BQU8sT0FBTztJQUNmLEtBQUtGLG1CQUFTLENBQUNHLE9BQU87TUFDckIsT0FBTyxTQUFTO0lBQ2pCLEtBQUtILG1CQUFTLENBQUNJLGFBQWE7TUFDM0IsT0FBTyxTQUFTO0lBQ2pCLEtBQUtKLG1CQUFTLENBQUNLLFdBQVc7TUFDekIsT0FBTyxZQUFZO0lBQ3BCLEtBQUtMLG1CQUFTLENBQUNNLFlBQVk7TUFDMUIsT0FBTyxRQUFRO0lBQ2hCO01BQ0MsTUFBTSxJQUFJQyxLQUFLLENBQUMsU0FBU1IsSUFBSSxxQ0FBcUMsQ0FBQztFQUNyRTtBQUNELENBQUM7QUFBQVMsT0FBQSxDQUFBVixlQUFBLEdBQUFBLGVBQUE7QUFFTSxNQUFNVywwQkFBMEIsR0FBSVYsSUFBWSxJQUFhO0VBQ25FLFFBQVFBLElBQUk7SUFDWCxLQUFLQyxtQkFBUyxDQUFDRSxLQUFLO0lBQ3BCLEtBQUtGLG1CQUFTLENBQUNLLFdBQVc7TUFDekIsT0FBTyxJQUFJO0lBQ1osS0FBS0wsbUJBQVMsQ0FBQ0MsV0FBVztJQUMxQixLQUFLRCxtQkFBUyxDQUFDSSxhQUFhO0lBQzVCLEtBQUtKLG1CQUFTLENBQUNNLFlBQVk7SUFDM0IsS0FBS04sbUJBQVMsQ0FBQ0csT0FBTztNQUNyQixPQUFPLEdBQUc7SUFDWDtNQUNDLE1BQU0sSUFBSUksS0FBSyxDQUFDLFNBQVNSLElBQUkscUNBQXFDLENBQUM7RUFDckU7QUFDRCxDQUFDO0FBQUFTLE9BQUEsQ0FBQUMsMEJBQUEsR0FBQUEsMEJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwidGV4dEZvckJhc2VSb2xlIiwicm9sZSIsIkJBU0VfUk9MRSIsIlNVUEVSX0FETUlOIiwiQURNSU4iLCJDUkVBVE9SIiwiR1JPVVBfTEVBUk5FUiIsIkdST1VQX09XTkVSIiwiR1JPVVBfR1JBREVSIiwiRXJyb3IiLCJleHBvcnRzIiwic2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZVJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRV9ST0xFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Jhc2VSb2xlJ1xuXG5leHBvcnQgY29uc3QgdGV4dEZvckJhc2VSb2xlID0gKHJvbGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHN3aXRjaCAocm9sZSkge1xuXHRcdGNhc2UgQkFTRV9ST0xFLlNVUEVSX0FETUlOOlxuXHRcdFx0cmV0dXJuICdTdXBlciBBZG1pbidcblx0XHRjYXNlIEJBU0VfUk9MRS5BRE1JTjpcblx0XHRcdHJldHVybiAnQWRtaW4nXG5cdFx0Y2FzZSBCQVNFX1JPTEUuQ1JFQVRPUjpcblx0XHRcdHJldHVybiAnQ3JlYXRvcidcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSOlxuXHRcdFx0cmV0dXJuICdTdHVkZW50J1xuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxuXHRcdFx0cmV0dXJuICdJbnN0cnVjdG9yJ1xuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX0dSQURFUjpcblx0XHRcdHJldHVybiAnR3JhZGVyJ1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHJvbGUgJyR7cm9sZX0nIHdhcyBub3QgZm91bmQgaW4gc3dpdGNoIHN0YXRlbWVudGApXG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IHNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlID0gKHJvbGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHN3aXRjaCAocm9sZSkge1xuXHRcdGNhc2UgQkFTRV9ST0xFLkFETUlOOlxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxuXHRcdFx0cmV0dXJuICdhbidcblx0XHRjYXNlIEJBU0VfUk9MRS5TVVBFUl9BRE1JTjpcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSOlxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX0dSQURFUjpcblx0XHRjYXNlIEJBU0VfUk9MRS5DUkVBVE9SOlxuXHRcdFx0cmV0dXJuICdhJ1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHJvbGUgJyR7cm9sZX0nIHdhcyBub3QgZm91bmQgaW4gc3dpdGNoIHN0YXRlbWVudGApXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRU8sTUFBTUMsZUFBZSxHQUFJQyxJQUFZLElBQWE7RUFDeEQsUUFBUUEsSUFBSTtJQUNYLEtBQUtDLG1CQUFTLENBQUNDLFdBQVc7TUFDekIsT0FBTyxhQUFhO0lBQ3JCLEtBQUtELG1CQUFTLENBQUNFLEtBQUs7TUFDbkIsT0FBTyxPQUFPO0lBQ2YsS0FBS0YsbUJBQVMsQ0FBQ0csT0FBTztNQUNyQixPQUFPLFNBQVM7SUFDakIsS0FBS0gsbUJBQVMsQ0FBQ0ksYUFBYTtNQUMzQixPQUFPLFNBQVM7SUFDakIsS0FBS0osbUJBQVMsQ0FBQ0ssV0FBVztNQUN6QixPQUFPLFlBQVk7SUFDcEIsS0FBS0wsbUJBQVMsQ0FBQ00sWUFBWTtNQUMxQixPQUFPLFFBQVE7SUFDaEI7TUFDQyxNQUFNLElBQUlDLEtBQUssQ0FBQyxTQUFTUixJQUFJLHFDQUFxQyxDQUFDO0VBQ3JFO0FBQ0QsQ0FBQztBQUFBUyxPQUFBLENBQUFWLGVBQUEsR0FBQUEsZUFBQTtBQUVNLE1BQU1XLDBCQUEwQixHQUFJVixJQUFZLElBQWE7RUFDbkUsUUFBUUEsSUFBSTtJQUNYLEtBQUtDLG1CQUFTLENBQUNFLEtBQUs7SUFDcEIsS0FBS0YsbUJBQVMsQ0FBQ0ssV0FBVztNQUN6QixPQUFPLElBQUk7SUFDWixLQUFLTCxtQkFBUyxDQUFDQyxXQUFXO0lBQzFCLEtBQUtELG1CQUFTLENBQUNJLGFBQWE7SUFDNUIsS0FBS0osbUJBQVMsQ0FBQ00sWUFBWTtJQUMzQixLQUFLTixtQkFBUyxDQUFDRyxPQUFPO01BQ3JCLE9BQU8sR0FBRztJQUNYO01BQ0MsTUFBTSxJQUFJSSxLQUFLLENBQUMsU0FBU1IsSUFBSSxxQ0FBcUMsQ0FBQztFQUNyRTtBQUNELENBQUM7QUFBQVMsT0FBQSxDQUFBQywwQkFBQSxHQUFBQSwwQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -382,13 +382,13 @@ function deleteCollectionItem(model, config) {
382
382
 
383
383
  //#region Helper Methods
384
384
 
385
- /**
386
- * Automatically call `load`, or `changeModelStatus` to `READY`.
387
- *
388
- * Does NOT automatically load if:
389
- * * pathParams does not contain enough items.
390
- * * model is already fetching.
391
- * * auto load is disabled.
385
+ /**
386
+ * Automatically call `load`, or `changeModelStatus` to `READY`.
387
+ *
388
+ * Does NOT automatically load if:
389
+ * * pathParams does not contain enough items.
390
+ * * model is already fetching.
391
+ * * auto load is disabled.
392
392
  */
393
393
  function initializeCollectionItem(model, load, config) {
394
394
  const {
@@ -404,12 +404,12 @@ function initializeCollectionItem(model, load, config) {
404
404
  }
405
405
  }
406
406
 
407
- /**
408
- * Automatically call `load`, or `changeModelStatus` to `READY`.
409
- *
410
- * Does NOT automatically load if:
411
- * * model is already fetching.
412
- * * auto load is disabled.
407
+ /**
408
+ * Automatically call `load`, or `changeModelStatus` to `READY`.
409
+ *
410
+ * Does NOT automatically load if:
411
+ * * model is already fetching.
412
+ * * auto load is disabled.
413
413
  */
414
414
  function initializeCollection(model, load, config) {
415
415
  const {
@@ -423,8 +423,8 @@ function initializeCollection(model, load, config) {
423
423
  }
424
424
  }
425
425
 
426
- /**
427
- * When `pathParams` or `queryParams` change, call `load`
426
+ /**
427
+ * When `pathParams` or `queryParams` change, call `load`
428
428
  */
429
429
  function handleCollectionItemParamsChange(modelName, prevModelName, pathParams, prevPathParams, queryParams, prevQueryParams, load) {
430
430
  if (modelName !== prevModelName || pathParams.length === (0, _route.getMinRequiredPathParamsCount)(modelName) + 1 && !(0, _lodash.isEqual)(prevPathParams, pathParams) || !(0, _lodash.isEqual)(prevQueryParams, queryParams)) {
@@ -435,8 +435,8 @@ function handleCollectionItemParamsChange(modelName, prevModelName, pathParams,
435
435
  }
436
436
  }
437
437
 
438
- /**
439
- * When `pathParams` or `queryParams` change, call `load`
438
+ /**
439
+ * When `pathParams` or `queryParams` change, call `load`
440
440
  */
441
441
  function handleCollectionParamsChange(modelName, prevModelName, pathParams, prevPathParams, queryParams, prevQueryParams, load) {
442
442
  if (modelName !== prevModelName || pathParams.length > 0 && !(0, _lodash.isEqual)(prevPathParams, pathParams) || !(0, _lodash.isEqual)(prevQueryParams, queryParams)) {
@@ -447,8 +447,8 @@ function handleCollectionParamsChange(modelName, prevModelName, pathParams, prev
447
447
  }
448
448
  }
449
449
 
450
- /**
451
- * Delete the guid in the model
450
+ /**
451
+ * Delete the guid in the model
452
452
  */
453
453
  function cleanupCollectionGuidKey(model, config) {
454
454
  const {
@@ -478,4 +478,4 @@ function cleanupCollectionGuidKey(model, config) {
478
478
  }
479
479
 
480
480
  //#endregion Helper Methods
481
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9tZW1vaXplT25lIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMiLCJfYWN0aW9uQ3JlYXRvciIsIl9yb3V0ZSIsImdldFBhdGhQYXJhbXMiLCJtZW1vaXplT25lIiwicGF0aFBhcmFtcyIsInJvdXRlTWF0Y2hQYXJhbXMiLCJtb2RlbE5hbWUiLCJnZXRQYXRoUGFyYW1zRnJvbVJvdXRlTWF0Y2hQYXJhbXMiLCJzZWxlY3RDb2xsZWN0aW9uSXRlbUZyb21TdGF0ZSIsInBhcmFtcyIsImd1aWQiLCJzdGF0ZSIsIm1vZGVsTmFtZUxldmVsQ291bnQiLCJnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudCIsInAiLCJyZWR1eE1vZGVsTmFtZSIsImdldFJlZHV4TW9kZWxOYW1lIiwibW9kZWwiLCJsZW5ndGgiLCJjb2xsZWN0aW9uIiwiZ2V0IiwibW9kZWxzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwibW9kZWxCeUd1aWQiLCJmaW5kIiwidmFsdWVzIiwibSIsInJlZHV4TW9kZWwiLCJrZXlzIiwiaXNDb2xsZWN0aW9uSXRlbSIsInNlbGVjdENvbGxlY3Rpb25Gcm9tU3RhdGUiLCJzdG9wQ29sbGVjdGlvblBlcmlvZGljTG9hZCIsInRhc2tJZCIsImRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoVGVybWluYXRlQWN0aW9uIiwibG9hZENvbGxlY3Rpb24iLCJjb25maWciLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJpc0luaXRpYWxpemVkIiwiY29uZmlnUGF0aFBhcmFtcyIsInF1ZXJ5UGFyYW1zIiwiY29uZmlnUXVlcnlQYXJhbXMiLCJjaGFuZ2VNb2RlbFN0YXR1cyIsImlkIiwicGVyaW9kIiwicmVwbGFjZVZhbHVlIiwiY29uY2F0IiwiRXJyb3IiLCJNT0RFTF9TVEFUVVMiLCJMT0FESU5HIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1ldGhvZCIsImRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdCIsImxvYWRDb2xsZWN0aW9uSXRlbSIsImNyZWF0ZUl0ZW1JbkNvbGxlY3Rpb24iLCJib2R5IiwiY29udGVudFR5cGUiLCJDUkVBVElORyIsImNyZWF0ZUNvbGxlY3Rpb25JdGVtIiwidXBkYXRlSXRlbUluQ29sbGVjdGlvbiIsIlVQREFUSU5HIiwidXBkYXRlQ29sbGVjdGlvbkl0ZW0iLCJkZWxldGVJdGVtRnJvbUNvbGxlY3Rpb24iLCJERUxFVElORyIsImRlbGV0ZUNvbGxlY3Rpb25JdGVtIiwiaW5pdGlhbGl6ZUNvbGxlY3Rpb25JdGVtIiwibG9hZCIsImRpc2FibGVBdXRvTG9hZCIsIl9tZXRhZGF0YSIsImlzRmV0Y2hpbmciLCJSRUFEWSIsImluaXRpYWxpemVDb2xsZWN0aW9uIiwiaGFuZGxlQ29sbGVjdGlvbkl0ZW1QYXJhbXNDaGFuZ2UiLCJwcmV2TW9kZWxOYW1lIiwicHJldlBhdGhQYXJhbXMiLCJwcmV2UXVlcnlQYXJhbXMiLCJpc0VxdWFsIiwiaGFuZGxlQ29sbGVjdGlvblBhcmFtc0NoYW5nZSIsImNsZWFudXBDb2xsZWN0aW9uR3VpZEtleSIsImluY2x1ZGVzIiwibW9kZWxOYW1lcyIsInNwbGl0IiwidGVtcFBhdGhQYXJhbXMiLCJzbGljZSIsInB1c2giLCJwYXRoIiwiZm9yRWFjaCIsImkiLCJkaXNwYXRjaE1vZGVsUmVtb3ZlS2V5QWN0aW9uIiwibW9kZWxQYXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0LCBEaWN0aW9uYXJ5LCBmaW5kLCBnZXQsIGluY2x1ZGVzLCBpc0VxdWFsLCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gnXHJcbmltcG9ydCBtZW1vaXplT25lIGZyb20gJ21lbW9pemUtb25lJ1xyXG5pbXBvcnQgeyBNT0RFTF9TVEFUVVMgfSBmcm9tICcuLi9jb25zdGFudHMnXHJcbmltcG9ydCB7XHJcblx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCxcclxuXHRkaXNwYXRjaE1vZGVsUmVtb3ZlS2V5QWN0aW9uLFxyXG5cdGRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdCxcclxuXHRkaXNwYXRjaFBlcmlvZGljTW9kZWxGZXRjaFRlcm1pbmF0ZUFjdGlvblxyXG59IGZyb20gJy4uL3JlZHV4L2FjdGlvbkNyZWF0b3InXHJcbmltcG9ydCB7XHJcblx0Q29sbGVjdGlvbkNyZWF0ZVBhcmFtcyxcclxuXHRDb2xsZWN0aW9uRGVsZXRlUGFyYW1zLFxyXG5cdENvbGxlY3Rpb25JdGVtRGVsZXRlUGFyYW1zLFxyXG5cdENvbGxlY3Rpb25JdGVtTG9hZFBhcmFtcyxcclxuXHRDb2xsZWN0aW9uSXRlbVVwZGF0ZVBhcmFtcyxcclxuXHRDb2xsZWN0aW9uTG9hZFBhcmFtcyxcclxuXHRDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbixcclxuXHRDb2xsZWN0aW9uU2VsZWN0b3JNZXRob2RQYXJhbXMsXHJcblx0Q29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUmVzcG9uc2UsXHJcblx0Q29sbGVjdGlvblVwZGF0ZVBhcmFtcyxcclxuXHRNb2RlbCxcclxuXHRNb2RlbENvbGxlY3Rpb25cclxufSBmcm9tICcuLi90eXBlcydcclxuaW1wb3J0IHsgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQsIGdldFBhdGhQYXJhbXNGcm9tUm91dGVNYXRjaFBhcmFtcywgZ2V0UmVkdXhNb2RlbE5hbWUgfSBmcm9tICcuL3JvdXRlJ1xyXG5cclxuLy8jcmVnaW9uIFJlZHV4IE1ldGhvZHNcclxuXHJcbmNvbnN0IGdldFBhdGhQYXJhbXMgPSBtZW1vaXplT25lKFxyXG5cdChwYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgdW5kZWZpbmVkLCByb3V0ZU1hdGNoUGFyYW1zOiBEaWN0aW9uYXJ5PHN0cmluZz4sIG1vZGVsTmFtZTogc3RyaW5nKSA9PlxyXG5cdFx0cGF0aFBhcmFtcyB8fCBnZXRQYXRoUGFyYW1zRnJvbVJvdXRlTWF0Y2hQYXJhbXMocm91dGVNYXRjaFBhcmFtcywgbW9kZWxOYW1lKVxyXG4pXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0Q29sbGVjdGlvbkl0ZW1Gcm9tU3RhdGU8VE1vZGVsIGV4dGVuZHMgTW9kZWw+KFxyXG5cdHBhcmFtczogQ29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUGFyYW1zXHJcbik6IENvbGxlY3Rpb25TZWxlY3Rvck1ldGhvZFJlc3BvbnNlPFRNb2RlbD4ge1xyXG5cdGNvbnN0IHsgZ3VpZCwgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCByb3V0ZU1hdGNoUGFyYW1zLCBzdGF0ZSB9ID0gcGFyYW1zXHJcblx0Y29uc3QgbW9kZWxOYW1lTGV2ZWxDb3VudCA9IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSlcclxuXHRjb25zdCBwID0gZ2V0UGF0aFBhcmFtcyhwYXRoUGFyYW1zLCByb3V0ZU1hdGNoUGFyYW1zLCBtb2RlbE5hbWUpXHJcblx0Y29uc3QgcmVkdXhNb2RlbE5hbWUgPSBnZXRSZWR1eE1vZGVsTmFtZShwLCBtb2RlbE5hbWUpXHJcblxyXG5cdGxldCBtb2RlbCA9IHt9IGFzIFRNb2RlbFxyXG5cdC8vIGZpbmQgYG1vZGVsYCB1c2luZyBgZ3VpZGAgYXMgaXRzIGtleSwgdG8gbWF0Y2ggbmV3IGl0ZW0gY3JlYXRlZCBpbiBgY3JlYXRlKClgXHJcblx0aWYgKHAubGVuZ3RoID09PSBtb2RlbE5hbWVMZXZlbENvdW50KSB7XHJcblx0XHRjb25zdCBjb2xsZWN0aW9uID0gKGdldChzdGF0ZS5tb2RlbHMsIHJlZHV4TW9kZWxOYW1lKSB8fCB7fSkgYXMgTW9kZWxDb2xsZWN0aW9uPFRNb2RlbD5cclxuXHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29sbGVjdGlvbiwgZ3VpZCkpIHtcclxuXHRcdFx0bW9kZWwgPSBjb2xsZWN0aW9uW2d1aWRdIGFzIFRNb2RlbFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgbW9kZWxCeUd1aWQgPSBmaW5kKHZhbHVlcyhjb2xsZWN0aW9uKSwgKG0pOiBtIGlzIFRNb2RlbCA9PiAhIW0gJiYgJ2d1aWQnIGluIG0gJiYgbS5ndWlkID09PSBndWlkKVxyXG5cdFx0XHRtb2RlbCA9IG1vZGVsQnlHdWlkIHx8IG1vZGVsXHJcblx0XHR9XHJcblx0fSBlbHNlIHtcclxuXHRcdC8vIGZpbmQgYG1vZGVsYCB1c2luZyBwYXRoUGFyYW1zXHJcblx0XHRjb25zdCByZWR1eE1vZGVsID0gKGdldChzdGF0ZS5tb2RlbHMsIHJlZHV4TW9kZWxOYW1lKSB8fCB7fSkgYXMgVE1vZGVsXHJcblx0XHRtb2RlbCA9IChPYmplY3Qua2V5cyhyZWR1eE1vZGVsKS5sZW5ndGggPiAwID8gcmVkdXhNb2RlbCA6IHt9KSBhcyBUTW9kZWxcclxuXHR9XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRtb2RlbE5hbWUsXHJcblx0XHRwYXRoUGFyYW1zOiBwLFxyXG5cdFx0bW9kZWwsXHJcblx0XHRpc0NvbGxlY3Rpb25JdGVtOiB0cnVlXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0Q29sbGVjdGlvbkZyb21TdGF0ZTxUTW9kZWwgZXh0ZW5kcyBNb2RlbD4oXHJcblx0cGFyYW1zOiBDb2xsZWN0aW9uU2VsZWN0b3JNZXRob2RQYXJhbXNcclxuKTogQ29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUmVzcG9uc2U8VE1vZGVsPiB7XHJcblx0Y29uc3QgeyBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIHJvdXRlTWF0Y2hQYXJhbXMsIHN0YXRlIH0gPSBwYXJhbXNcclxuXHRjb25zdCBwID0gZ2V0UGF0aFBhcmFtcyhwYXRoUGFyYW1zLCByb3V0ZU1hdGNoUGFyYW1zLCBtb2RlbE5hbWUpXHJcblx0Y29uc3QgcmVkdXhNb2RlbE5hbWUgPSBnZXRSZWR1eE1vZGVsTmFtZShwLCBtb2RlbE5hbWUpXHJcblxyXG5cdGxldCBtb2RlbCA9IGdldChzdGF0ZS5tb2RlbHMsIHJlZHV4TW9kZWxOYW1lKSBhcyBNb2RlbENvbGxlY3Rpb248VE1vZGVsPiB8IHVuZGVmaW5lZFxyXG5cdG1vZGVsID0gbW9kZWwgJiYgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDAgPyBtb2RlbCA6IHt9XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRtb2RlbE5hbWUsXHJcblx0XHRwYXRoUGFyYW1zOiBwLFxyXG5cdFx0bW9kZWwsXHJcblx0XHRpc0NvbGxlY3Rpb25JdGVtOiBmYWxzZVxyXG5cdH1cclxufVxyXG5cclxuLy8jZW5kcmVnaW9uIFJlZHV4IE1ldGhvZHNcclxuXHJcbi8vI3JlZ2lvbiBDb2xsZWN0aW9uL0l0ZW0gQ1JVRCBNZXRob2RzXHJcblxyXG4vLyNyZWdpb24gTG9hZFxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BDb2xsZWN0aW9uUGVyaW9kaWNMb2FkKHRhc2tJZDogc3RyaW5nKSB7XHJcblx0ZGlzcGF0Y2hQZXJpb2RpY01vZGVsRmV0Y2hUZXJtaW5hdGVBY3Rpb24oe1xyXG5cdFx0dGFza0lkXHJcblx0fSlcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRDb2xsZWN0aW9uKGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sIHBhcmFtczogQ29sbGVjdGlvbkxvYWRQYXJhbXMgPSB7fSkge1xyXG5cdGNvbnN0IHtcclxuXHRcdG1vZGVsTmFtZSxcclxuXHRcdGlzSW5pdGlhbGl6ZWQsXHJcblx0XHRwYXRoUGFyYW1zOiBjb25maWdQYXRoUGFyYW1zLFxyXG5cdFx0cXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXNcclxuXHR9ID0gY29uZmlnXHJcblx0Y29uc3QgeyBpZCwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIHBlcmlvZCwgdGFza0lkLCByZXBsYWNlVmFsdWUgfSA9IHBhcmFtc1xyXG5cdGNvbnN0IHAgPSBjb25jYXQoW10sIHBhdGhQYXJhbXMgfHwgY29uZmlnUGF0aFBhcmFtcywgaWQgPyBbaWRdIDogW10pXHJcblx0aWYgKHAubGVuZ3RoICE9PSBnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudChtb2RlbE5hbWUpICsgKGlkID8gMSA6IDApKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRpZiAoaXNJbml0aWFsaXplZCkge1xyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkxPQURJTkcsIGlkKVxyXG5cdH1cclxuXHRpZiAoIXBlcmlvZCkge1xyXG5cdFx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRcdG1vZGVsTmFtZSxcclxuXHRcdFx0bWV0aG9kOiAnR0VUJyxcclxuXHRcdFx0cGF0aFBhcmFtczogcCxcclxuXHRcdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxyXG5cdFx0XHRyZXBsYWNlVmFsdWVcclxuXHRcdH0pXHJcblx0fSBlbHNlIHtcclxuXHRcdGlmICghdGFza0lkKSB0aHJvdyBuZXcgRXJyb3IoJ3Rhc2tJZCBpcyByZXF1aXJlZCBmb3IgcGVyaW9kaWMgZGF0YSByZXF1ZXN0cycpXHJcblx0XHRkaXNwYXRjaFBlcmlvZGljTW9kZWxGZXRjaFJlcXVlc3Qoe1xyXG5cdFx0XHRtb2RlbE5hbWUsXHJcblx0XHRcdG1ldGhvZDogJ0dFVCcsXHJcblx0XHRcdHBhdGhQYXJhbXM6IHAsXHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB8fCBjb25maWdRdWVyeVBhcmFtcyxcclxuXHRcdFx0cGVyaW9kLFxyXG5cdFx0XHR0YXNrSWQsXHJcblx0XHRcdHJlcGxhY2VWYWx1ZVxyXG5cdFx0fSlcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29sbGVjdGlvbkl0ZW0oY29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbiwgcGFyYW1zOiBDb2xsZWN0aW9uSXRlbUxvYWRQYXJhbXMgPSB7fSkge1xyXG5cdGNvbnN0IHtcclxuXHRcdG1vZGVsTmFtZSxcclxuXHRcdGlzSW5pdGlhbGl6ZWQsXHJcblx0XHRwYXRoUGFyYW1zOiBjb25maWdQYXRoUGFyYW1zLFxyXG5cdFx0cXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXNcclxuXHR9ID0gY29uZmlnXHJcblx0Y29uc3QgeyBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgcGVyaW9kLCB0YXNrSWQsIHJlcGxhY2VWYWx1ZSB9ID0gcGFyYW1zXHJcblx0Y29uc3QgcCA9IHBhdGhQYXJhbXMgfHwgY29uZmlnUGF0aFBhcmFtc1xyXG5cdGlmIChwLmxlbmd0aCA8IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRpZiAoaXNJbml0aWFsaXplZCkge1xyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkxPQURJTkcpXHJcblx0fVxyXG5cdGlmICghcGVyaW9kKSB7XHJcblx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcclxuXHRcdFx0bW9kZWxOYW1lLFxyXG5cdFx0XHRtZXRob2Q6ICdHRVQnLFxyXG5cdFx0XHRwYXRoUGFyYW1zOiBwLFxyXG5cdFx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXHJcblx0XHRcdHJlcGxhY2VWYWx1ZVxyXG5cdFx0fSlcclxuXHR9IGVsc2Uge1xyXG5cdFx0aWYgKCF0YXNrSWQpIHRocm93IG5ldyBFcnJvcigndGFza0lkIGlzIHJlcXVpcmVkIGZvciBwZXJpb2RpYyBkYXRhIHJlcXVlc3RzJylcclxuXHRcdGRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRcdG1vZGVsTmFtZSxcclxuXHRcdFx0bWV0aG9kOiAnR0VUJyxcclxuXHRcdFx0cGF0aFBhcmFtczogcCxcclxuXHRcdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxyXG5cdFx0XHRwZXJpb2QsXHJcblx0XHRcdHRhc2tJZCxcclxuXHRcdFx0cmVwbGFjZVZhbHVlXHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG5cclxuLy8jZW5kcmVnaW9uIExvYWRcclxuXHJcbi8vI3JlZ2lvbiBDcmVhdGVcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJdGVtSW5Db2xsZWN0aW9uKGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sIHBhcmFtczogQ29sbGVjdGlvbkNyZWF0ZVBhcmFtcykge1xyXG5cdGNvbnN0IHsgZ3VpZCwgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMsIGNoYW5nZU1vZGVsU3RhdHVzIH0gPSBjb25maWdcclxuXHRjb25zdCB7IGJvZHksIGNvbnRlbnRUeXBlLCBxdWVyeVBhcmFtcyB9ID0gcGFyYW1zXHJcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoIDwgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSkge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdwYXRoUGFyYW1zIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgcGF0aCBjb21wb25lbnRzJylcclxuXHR9XHJcblx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkNSRUFUSU5HLCBndWlkKVxyXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xyXG5cdFx0bW9kZWxOYW1lLFxyXG5cdFx0Z3VpZCxcclxuXHRcdG1ldGhvZDogJ1BPU1QnLFxyXG5cdFx0Ym9keSxcclxuXHRcdHBhdGhQYXJhbXMsXHJcblx0XHRjb250ZW50VHlwZSxcclxuXHRcdHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB8fCBjb25maWdRdWVyeVBhcmFtc1xyXG5cdH0pXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2xsZWN0aW9uSXRlbShcclxuXHRtb2RlbDogTW9kZWwsXHJcblx0Y29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbixcclxuXHRwYXJhbXM6IENvbGxlY3Rpb25DcmVhdGVQYXJhbXNcclxuKSB7XHJcblx0aWYgKG1vZGVsLmlkKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIGFscmVhZHkgZXhpc3RzJylcclxuXHR9XHJcblx0Y29uc3QgeyBndWlkLCBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcywgY2hhbmdlTW9kZWxTdGF0dXMgfSA9IGNvbmZpZ1xyXG5cdGNvbnN0IHsgYm9keSwgY29udGVudFR5cGUsIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcclxuXHRpZiAocGF0aFBhcmFtcy5sZW5ndGggPCBnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudChtb2RlbE5hbWUpKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuQ1JFQVRJTkcpXHJcblx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRtb2RlbE5hbWUsXHJcblx0XHRndWlkLFxyXG5cdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRib2R5LFxyXG5cdFx0cGF0aFBhcmFtcyxcclxuXHRcdGNvbnRlbnRUeXBlLFxyXG5cdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zXHJcblx0fSlcclxufVxyXG5cclxuLy8jZW5kcmVnaW9uIENyZWF0ZVxyXG5cclxuLy8jcmVnaW9uIFVwZGF0ZVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUl0ZW1JbkNvbGxlY3Rpb24oY29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbiwgcGFyYW1zOiBDb2xsZWN0aW9uVXBkYXRlUGFyYW1zKSB7XHJcblx0Y29uc3QgeyBpZCwgYm9keSwgY29udGVudFR5cGUsIG1ldGhvZCwgcXVlcnlQYXJhbXMgfSA9IHBhcmFtc1xyXG5cdGlmICghaWQpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcihgJ2lkJyBpcyByZXF1aXJlZGApXHJcblx0fVxyXG5cdGlmICghYm9keSkge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKGAnYm9keScgaXMgcmVxdWlyZWRgKVxyXG5cdH1cclxuXHRjb25zdCB7IG1vZGVsTmFtZSwgcGF0aFBhcmFtczogY29uZmlnUGF0aFBhcmFtcywgcXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXHJcblx0Y29uc3QgcGF0aFBhcmFtcyA9IGNvbmNhdChbXSwgY29uZmlnUGF0aFBhcmFtcywgW2lkXSlcclxuXHRpZiAocGF0aFBhcmFtcy5sZW5ndGggIT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMraWQgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRjb25zdCBtID0gbWV0aG9kIHx8ICdQVVQnXHJcblx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLlVQREFUSU5HLCBpZClcclxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcclxuXHRcdG1vZGVsTmFtZSxcclxuXHRcdG1ldGhvZDogbSxcclxuXHRcdHBhdGhQYXJhbXMsXHJcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXHJcblx0XHRib2R5LFxyXG5cdFx0Y29udGVudFR5cGVcclxuXHR9KVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ29sbGVjdGlvbkl0ZW0oXHJcblx0bW9kZWw6IE1vZGVsLFxyXG5cdGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sXHJcblx0cGFyYW1zOiBDb2xsZWN0aW9uSXRlbVVwZGF0ZVBhcmFtc1xyXG4pIHtcclxuXHRpZiAoIW1vZGVsLmlkKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIGRvZXMgbm90IGV4aXN0JylcclxuXHR9XHJcblx0Y29uc3QgeyBib2R5LCBjb250ZW50VHlwZSwgbWV0aG9kLCBxdWVyeVBhcmFtcyB9ID0gcGFyYW1zXHJcblx0aWYgKCFib2R5KSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoYCdib2R5JyBpcyByZXF1aXJlZGApXHJcblx0fVxyXG5cdGNvbnN0IHsgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMsIGNoYW5nZU1vZGVsU3RhdHVzIH0gPSBjb25maWdcclxuXHRpZiAocGF0aFBhcmFtcy5sZW5ndGggPCBnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudChtb2RlbE5hbWUpICsgMSkge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdwYXRoUGFyYW1zIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgcGF0aCBjb21wb25lbnRzJylcclxuXHR9XHJcblx0Y29uc3QgbSA9IG1ldGhvZCB8fCAnUFVUJ1xyXG5cdGNoYW5nZU1vZGVsU3RhdHVzKE1PREVMX1NUQVRVUy5VUERBVElORylcclxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcclxuXHRcdG1vZGVsTmFtZSxcclxuXHRcdG1ldGhvZDogbSxcclxuXHRcdHBhdGhQYXJhbXMsXHJcblx0XHRib2R5LFxyXG5cdFx0Y29udGVudFR5cGUsXHJcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXNcclxuXHR9KVxyXG59XHJcblxyXG4vLyNlbmRyZWdpb24gVXBkYXRlXHJcblxyXG4vLyNyZWdpb24gRGVsZXRlXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlSXRlbUZyb21Db2xsZWN0aW9uKGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sIHBhcmFtczogQ29sbGVjdGlvbkRlbGV0ZVBhcmFtcykge1xyXG5cdGNvbnN0IHsgaWQsIGJvZHksIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcclxuXHRpZiAoIWlkKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoYCdpZCcgaXMgcmVxdWlyZWRgKVxyXG5cdH1cclxuXHRjb25zdCB7IG1vZGVsTmFtZSwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXHJcblx0Y29uc3QgcCA9IGNvbmNhdChbXSwgcGF0aFBhcmFtcywgW2lkXSlcclxuXHRpZiAocC5sZW5ndGggIT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMraWQgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuREVMRVRJTkcsIGlkKVxyXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xyXG5cdFx0bW9kZWxOYW1lLFxyXG5cdFx0bWV0aG9kOiAnREVMRVRFJyxcclxuXHRcdHBhdGhQYXJhbXM6IHAsXHJcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXHJcblx0XHRib2R5XHJcblx0fSlcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUNvbGxlY3Rpb25JdGVtKFxyXG5cdG1vZGVsOiBNb2RlbCxcclxuXHRjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uLFxyXG5cdHBhcmFtczogQ29sbGVjdGlvbkl0ZW1EZWxldGVQYXJhbXMgPSB7fVxyXG4pIHtcclxuXHRpZiAoIW1vZGVsLmlkKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIGRvZXMgbm90IGV4aXN0JylcclxuXHR9XHJcblx0Y29uc3QgeyBib2R5LCBxdWVyeVBhcmFtcyB9ID0gcGFyYW1zXHJcblx0Y29uc3QgeyBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcywgY2hhbmdlTW9kZWxTdGF0dXMgfSA9IGNvbmZpZ1xyXG5cdGlmIChwYXRoUGFyYW1zLmxlbmd0aCA8IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxyXG5cdH1cclxuXHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuREVMRVRJTkcpXHJcblx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRtb2RlbE5hbWUsXHJcblx0XHRtZXRob2Q6ICdERUxFVEUnLFxyXG5cdFx0cGF0aFBhcmFtcyxcclxuXHRcdGJvZHksXHJcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXNcclxuXHR9KVxyXG59XHJcblxyXG4vLyNlbmRyZWdpb24gRGVsZXRlXHJcblxyXG4vLyNlbmRyZWdpb24gQ29sbGVjdGlvbi9JdGVtIENSVUQgTWV0aG9kc1xyXG5cclxuLy8jcmVnaW9uIEhlbHBlciBNZXRob2RzXHJcblxyXG4vKipcclxuICogQXV0b21hdGljYWxseSBjYWxsIGBsb2FkYCwgb3IgYGNoYW5nZU1vZGVsU3RhdHVzYCB0byBgUkVBRFlgLlxyXG4gKlxyXG4gKiBEb2VzIE5PVCBhdXRvbWF0aWNhbGx5IGxvYWQgaWY6XHJcbiAqICogcGF0aFBhcmFtcyBkb2VzIG5vdCBjb250YWluIGVub3VnaCBpdGVtcy5cclxuICogKiBtb2RlbCBpcyBhbHJlYWR5IGZldGNoaW5nLlxyXG4gKiAqIGF1dG8gbG9hZCBpcyBkaXNhYmxlZC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplQ29sbGVjdGlvbkl0ZW0oXHJcblx0bW9kZWw6IE1vZGVsLFxyXG5cdGxvYWQ6IChwYXJhbXM/OiBDb2xsZWN0aW9uSXRlbUxvYWRQYXJhbXMpID0+IHZvaWQsXHJcblx0Y29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvblxyXG4pIHtcclxuXHRjb25zdCB7IG1vZGVsTmFtZSwgcGF0aFBhcmFtcywgZGlzYWJsZUF1dG9Mb2FkLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXHJcblx0aWYgKFxyXG5cdFx0cGF0aFBhcmFtcy5sZW5ndGggPT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxICYmXHJcblx0XHQhZGlzYWJsZUF1dG9Mb2FkICYmXHJcblx0XHQoIW1vZGVsLl9tZXRhZGF0YSB8fCAhbW9kZWwuX21ldGFkYXRhLmlzRmV0Y2hpbmcpXHJcblx0KSB7XHJcblx0XHRsb2FkKClcclxuXHR9IGVsc2Uge1xyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLlJFQURZKVxyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEF1dG9tYXRpY2FsbHkgY2FsbCBgbG9hZGAsIG9yIGBjaGFuZ2VNb2RlbFN0YXR1c2AgdG8gYFJFQURZYC5cclxuICpcclxuICogRG9lcyBOT1QgYXV0b21hdGljYWxseSBsb2FkIGlmOlxyXG4gKiAqIG1vZGVsIGlzIGFscmVhZHkgZmV0Y2hpbmcuXHJcbiAqICogYXV0byBsb2FkIGlzIGRpc2FibGVkLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVDb2xsZWN0aW9uKFxyXG5cdG1vZGVsOiBNb2RlbCxcclxuXHRsb2FkOiAocGFyYW1zPzogQ29sbGVjdGlvbkl0ZW1Mb2FkUGFyYW1zKSA9PiB2b2lkLFxyXG5cdGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb25cclxuKSB7XHJcblx0Y29uc3QgeyBkaXNhYmxlQXV0b0xvYWQsIGNoYW5nZU1vZGVsU3RhdHVzIH0gPSBjb25maWdcclxuXHRpZiAoIWRpc2FibGVBdXRvTG9hZCAmJiAoIW1vZGVsLl9tZXRhZGF0YSB8fCAhbW9kZWwuX21ldGFkYXRhLmlzRmV0Y2hpbmcpKSB7XHJcblx0XHRsb2FkKClcclxuXHR9IGVsc2UgaWYgKGRpc2FibGVBdXRvTG9hZCkge1xyXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLlJFQURZKVxyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFdoZW4gYHBhdGhQYXJhbXNgIG9yIGBxdWVyeVBhcmFtc2AgY2hhbmdlLCBjYWxsIGBsb2FkYFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUNvbGxlY3Rpb25JdGVtUGFyYW1zQ2hhbmdlKFxyXG5cdG1vZGVsTmFtZTogc3RyaW5nLFxyXG5cdHByZXZNb2RlbE5hbWU6IHN0cmluZyxcclxuXHRwYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxyXG5cdHByZXZQYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgdW5kZWZpbmVkLFxyXG5cdHF1ZXJ5UGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB8IHVuZGVmaW5lZCxcclxuXHRwcmV2UXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxyXG5cdGxvYWQ6IChwYXJhbXM/OiBDb2xsZWN0aW9uSXRlbUxvYWRQYXJhbXMpID0+IHZvaWRcclxuKSB7XHJcblx0aWYgKFxyXG5cdFx0bW9kZWxOYW1lICE9PSBwcmV2TW9kZWxOYW1lIHx8XHJcblx0XHQocGF0aFBhcmFtcy5sZW5ndGggPT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxICYmICFpc0VxdWFsKHByZXZQYXRoUGFyYW1zLCBwYXRoUGFyYW1zKSkgfHxcclxuXHRcdCFpc0VxdWFsKHByZXZRdWVyeVBhcmFtcywgcXVlcnlQYXJhbXMpXHJcblx0KSB7XHJcblx0XHRsb2FkKHsgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMgfSlcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXaGVuIGBwYXRoUGFyYW1zYCBvciBgcXVlcnlQYXJhbXNgIGNoYW5nZSwgY2FsbCBgbG9hZGBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVDb2xsZWN0aW9uUGFyYW1zQ2hhbmdlKFxyXG5cdG1vZGVsTmFtZTogc3RyaW5nLFxyXG5cdHByZXZNb2RlbE5hbWU6IHN0cmluZyxcclxuXHRwYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxyXG5cdHByZXZQYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgdW5kZWZpbmVkLFxyXG5cdHF1ZXJ5UGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB8IHVuZGVmaW5lZCxcclxuXHRwcmV2UXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxyXG5cdGxvYWQ6IChwYXJhbXM/OiBDb2xsZWN0aW9uTG9hZFBhcmFtcykgPT4gdm9pZFxyXG4pIHtcclxuXHRpZiAoXHJcblx0XHRtb2RlbE5hbWUgIT09IHByZXZNb2RlbE5hbWUgfHxcclxuXHRcdChwYXRoUGFyYW1zLmxlbmd0aCA+IDAgJiYgIWlzRXF1YWwocHJldlBhdGhQYXJhbXMsIHBhdGhQYXJhbXMpKSB8fFxyXG5cdFx0IWlzRXF1YWwocHJldlF1ZXJ5UGFyYW1zLCBxdWVyeVBhcmFtcylcclxuXHQpIHtcclxuXHRcdGxvYWQoeyBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcyB9KVxyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERlbGV0ZSB0aGUgZ3VpZCBpbiB0aGUgbW9kZWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQ29sbGVjdGlvbkd1aWRLZXk8VE1vZGVsIGV4dGVuZHMgTW9kZWw+KFxyXG5cdG1vZGVsOiBNb2RlbENvbGxlY3Rpb248VE1vZGVsPixcclxuXHRjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uXHJcbikge1xyXG5cdGNvbnN0IHsgZ3VpZCwgbW9kZWxOYW1lLCBwYXRoUGFyYW1zIH0gPSBjb25maWdcclxuXHRpZiAoaW5jbHVkZXMoT2JqZWN0LmtleXMobW9kZWwpLCBndWlkKSkge1xyXG5cdFx0Y29uc3QgbW9kZWxOYW1lcyA9IG1vZGVsTmFtZS5zcGxpdCgnLicpXHJcblx0XHRjb25zdCB0ZW1wUGF0aFBhcmFtcyA9IHBhdGhQYXJhbXMuc2xpY2UoKVxyXG5cdFx0Ly8gc2hvdWxkIGluY2x1ZGUgdGhlIGd1aWQgYXQgdGhlIGVuZFxyXG5cdFx0dGVtcFBhdGhQYXJhbXMucHVzaChndWlkKVxyXG5cdFx0aWYgKG1vZGVsTmFtZXMubGVuZ3RoID09PSB0ZW1wUGF0aFBhcmFtcy5sZW5ndGgpIHtcclxuXHRcdFx0bGV0IHBhdGggPSAnJ1xyXG5cdFx0XHRtb2RlbE5hbWVzLmZvckVhY2goKG0sIGkpID0+IHtcclxuXHRcdFx0XHRpZiAoaSA9PT0gMCkge1xyXG5cdFx0XHRcdFx0cGF0aCArPSBgJHttfS4ke3RlbXBQYXRoUGFyYW1zW2ldfWBcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cGF0aCArPSBgLiR7bX0uJHt0ZW1wUGF0aFBhcmFtc1tpXX1gXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0XHRkaXNwYXRjaE1vZGVsUmVtb3ZlS2V5QWN0aW9uKHtcclxuXHRcdFx0XHRtb2RlbFBhdGg6IHBhdGhcclxuXHRcdFx0fSlcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8vI2VuZHJlZ2lvbiBIZWxwZXIgTWV0aG9kc1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFvQkEsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBRUE7O0FBRUEsTUFBTU0sYUFBYSxHQUFHLElBQUFDLG1CQUFVLEVBQy9CLENBQUNDLFVBQThDLEVBQUVDLGdCQUFvQyxFQUFFQyxTQUFpQixLQUN2R0YsVUFBVSxJQUFJLElBQUFHLHdDQUFpQyxFQUFDRixnQkFBZ0IsRUFBRUMsU0FBUyxDQUM3RSxDQUFDO0FBRU0sU0FBU0UsNkJBQTZCQSxDQUM1Q0MsTUFBc0MsRUFDSztFQUMzQyxNQUFNO0lBQUVDLElBQUk7SUFBRUosU0FBUztJQUFFRixVQUFVO0lBQUVDLGdCQUFnQjtJQUFFTTtFQUFNLENBQUMsR0FBR0YsTUFBTTtFQUN2RSxNQUFNRyxtQkFBbUIsR0FBRyxJQUFBQyxvQ0FBNkIsRUFBQ1AsU0FBUyxDQUFDO0VBQ3BFLE1BQU1RLENBQUMsR0FBR1osYUFBYSxDQUFDRSxVQUFVLEVBQUVDLGdCQUFnQixFQUFFQyxTQUFTLENBQUM7RUFDaEUsTUFBTVMsY0FBYyxHQUFHLElBQUFDLHdCQUFpQixFQUFDRixDQUFDLEVBQUVSLFNBQVMsQ0FBQztFQUV0RCxJQUFJVyxLQUFLLEdBQUcsQ0FBQyxDQUFXO0VBQ3hCO0VBQ0EsSUFBSUgsQ0FBQyxDQUFDSSxNQUFNLEtBQUtOLG1CQUFtQixFQUFFO0lBQ3JDLE1BQU1PLFVBQVUsR0FBSSxJQUFBQyxXQUFHLEVBQUNULEtBQUssQ0FBQ1UsTUFBTSxF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
481
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9tZW1vaXplT25lIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMiLCJfYWN0aW9uQ3JlYXRvciIsIl9yb3V0ZSIsImdldFBhdGhQYXJhbXMiLCJtZW1vaXplT25lIiwicGF0aFBhcmFtcyIsInJvdXRlTWF0Y2hQYXJhbXMiLCJtb2RlbE5hbWUiLCJnZXRQYXRoUGFyYW1zRnJvbVJvdXRlTWF0Y2hQYXJhbXMiLCJzZWxlY3RDb2xsZWN0aW9uSXRlbUZyb21TdGF0ZSIsInBhcmFtcyIsImd1aWQiLCJzdGF0ZSIsIm1vZGVsTmFtZUxldmVsQ291bnQiLCJnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudCIsInAiLCJyZWR1eE1vZGVsTmFtZSIsImdldFJlZHV4TW9kZWxOYW1lIiwibW9kZWwiLCJsZW5ndGgiLCJjb2xsZWN0aW9uIiwiZ2V0IiwibW9kZWxzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwibW9kZWxCeUd1aWQiLCJmaW5kIiwidmFsdWVzIiwibSIsInJlZHV4TW9kZWwiLCJrZXlzIiwiaXNDb2xsZWN0aW9uSXRlbSIsInNlbGVjdENvbGxlY3Rpb25Gcm9tU3RhdGUiLCJzdG9wQ29sbGVjdGlvblBlcmlvZGljTG9hZCIsInRhc2tJZCIsImRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoVGVybWluYXRlQWN0aW9uIiwibG9hZENvbGxlY3Rpb24iLCJjb25maWciLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJpc0luaXRpYWxpemVkIiwiY29uZmlnUGF0aFBhcmFtcyIsInF1ZXJ5UGFyYW1zIiwiY29uZmlnUXVlcnlQYXJhbXMiLCJjaGFuZ2VNb2RlbFN0YXR1cyIsImlkIiwicGVyaW9kIiwicmVwbGFjZVZhbHVlIiwiY29uY2F0IiwiRXJyb3IiLCJNT0RFTF9TVEFUVVMiLCJMT0FESU5HIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1ldGhvZCIsImRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdCIsImxvYWRDb2xsZWN0aW9uSXRlbSIsImNyZWF0ZUl0ZW1JbkNvbGxlY3Rpb24iLCJib2R5IiwiY29udGVudFR5cGUiLCJDUkVBVElORyIsImNyZWF0ZUNvbGxlY3Rpb25JdGVtIiwidXBkYXRlSXRlbUluQ29sbGVjdGlvbiIsIlVQREFUSU5HIiwidXBkYXRlQ29sbGVjdGlvbkl0ZW0iLCJkZWxldGVJdGVtRnJvbUNvbGxlY3Rpb24iLCJERUxFVElORyIsImRlbGV0ZUNvbGxlY3Rpb25JdGVtIiwiaW5pdGlhbGl6ZUNvbGxlY3Rpb25JdGVtIiwibG9hZCIsImRpc2FibGVBdXRvTG9hZCIsIl9tZXRhZGF0YSIsImlzRmV0Y2hpbmciLCJSRUFEWSIsImluaXRpYWxpemVDb2xsZWN0aW9uIiwiaGFuZGxlQ29sbGVjdGlvbkl0ZW1QYXJhbXNDaGFuZ2UiLCJwcmV2TW9kZWxOYW1lIiwicHJldlBhdGhQYXJhbXMiLCJwcmV2UXVlcnlQYXJhbXMiLCJpc0VxdWFsIiwiaGFuZGxlQ29sbGVjdGlvblBhcmFtc0NoYW5nZSIsImNsZWFudXBDb2xsZWN0aW9uR3VpZEtleSIsImluY2x1ZGVzIiwibW9kZWxOYW1lcyIsInNwbGl0IiwidGVtcFBhdGhQYXJhbXMiLCJzbGljZSIsInB1c2giLCJwYXRoIiwiZm9yRWFjaCIsImkiLCJkaXNwYXRjaE1vZGVsUmVtb3ZlS2V5QWN0aW9uIiwibW9kZWxQYXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0LCBEaWN0aW9uYXJ5LCBmaW5kLCBnZXQsIGluY2x1ZGVzLCBpc0VxdWFsLCB2YWx1ZXMgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgbWVtb2l6ZU9uZSBmcm9tICdtZW1vaXplLW9uZSdcbmltcG9ydCB7IE1PREVMX1NUQVRVUyB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7XG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QsXG5cdGRpc3BhdGNoTW9kZWxSZW1vdmVLZXlBY3Rpb24sXG5cdGRpc3BhdGNoUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdCxcblx0ZGlzcGF0Y2hQZXJpb2RpY01vZGVsRmV0Y2hUZXJtaW5hdGVBY3Rpb25cbn0gZnJvbSAnLi4vcmVkdXgvYWN0aW9uQ3JlYXRvcidcbmltcG9ydCB7XG5cdENvbGxlY3Rpb25DcmVhdGVQYXJhbXMsXG5cdENvbGxlY3Rpb25EZWxldGVQYXJhbXMsXG5cdENvbGxlY3Rpb25JdGVtRGVsZXRlUGFyYW1zLFxuXHRDb2xsZWN0aW9uSXRlbUxvYWRQYXJhbXMsXG5cdENvbGxlY3Rpb25JdGVtVXBkYXRlUGFyYW1zLFxuXHRDb2xsZWN0aW9uTG9hZFBhcmFtcyxcblx0Q29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sXG5cdENvbGxlY3Rpb25TZWxlY3Rvck1ldGhvZFBhcmFtcyxcblx0Q29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUmVzcG9uc2UsXG5cdENvbGxlY3Rpb25VcGRhdGVQYXJhbXMsXG5cdE1vZGVsLFxuXHRNb2RlbENvbGxlY3Rpb25cbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudCwgZ2V0UGF0aFBhcmFtc0Zyb21Sb3V0ZU1hdGNoUGFyYW1zLCBnZXRSZWR1eE1vZGVsTmFtZSB9IGZyb20gJy4vcm91dGUnXG5cbi8vI3JlZ2lvbiBSZWR1eCBNZXRob2RzXG5cbmNvbnN0IGdldFBhdGhQYXJhbXMgPSBtZW1vaXplT25lKFxuXHQocGF0aFBhcmFtczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCwgcm91dGVNYXRjaFBhcmFtczogRGljdGlvbmFyeTxzdHJpbmc+LCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0XHRwYXRoUGFyYW1zIHx8IGdldFBhdGhQYXJhbXNGcm9tUm91dGVNYXRjaFBhcmFtcyhyb3V0ZU1hdGNoUGFyYW1zLCBtb2RlbE5hbWUpXG4pXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RDb2xsZWN0aW9uSXRlbUZyb21TdGF0ZTxUTW9kZWwgZXh0ZW5kcyBNb2RlbD4oXG5cdHBhcmFtczogQ29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUGFyYW1zXG4pOiBDb2xsZWN0aW9uU2VsZWN0b3JNZXRob2RSZXNwb25zZTxUTW9kZWw+IHtcblx0Y29uc3QgeyBndWlkLCBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIHJvdXRlTWF0Y2hQYXJhbXMsIHN0YXRlIH0gPSBwYXJhbXNcblx0Y29uc3QgbW9kZWxOYW1lTGV2ZWxDb3VudCA9IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSlcblx0Y29uc3QgcCA9IGdldFBhdGhQYXJhbXMocGF0aFBhcmFtcywgcm91dGVNYXRjaFBhcmFtcywgbW9kZWxOYW1lKVxuXHRjb25zdCByZWR1eE1vZGVsTmFtZSA9IGdldFJlZHV4TW9kZWxOYW1lKHAsIG1vZGVsTmFtZSlcblxuXHRsZXQgbW9kZWwgPSB7fSBhcyBUTW9kZWxcblx0Ly8gZmluZCBgbW9kZWxgIHVzaW5nIGBndWlkYCBhcyBpdHMga2V5LCB0byBtYXRjaCBuZXcgaXRlbSBjcmVhdGVkIGluIGBjcmVhdGUoKWBcblx0aWYgKHAubGVuZ3RoID09PSBtb2RlbE5hbWVMZXZlbENvdW50KSB7XG5cdFx0Y29uc3QgY29sbGVjdGlvbiA9IChnZXQoc3RhdGUubW9kZWxzLCByZWR1eE1vZGVsTmFtZSkgfHwge30pIGFzIE1vZGVsQ29sbGVjdGlvbjxUTW9kZWw+XG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb2xsZWN0aW9uLCBndWlkKSkge1xuXHRcdFx0bW9kZWwgPSBjb2xsZWN0aW9uW2d1aWRdIGFzIFRNb2RlbFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBtb2RlbEJ5R3VpZCA9IGZpbmQodmFsdWVzKGNvbGxlY3Rpb24pLCAobSk6IG0gaXMgVE1vZGVsID0+ICEhbSAmJiAnZ3VpZCcgaW4gbSAmJiBtLmd1aWQgPT09IGd1aWQpXG5cdFx0XHRtb2RlbCA9IG1vZGVsQnlHdWlkIHx8IG1vZGVsXG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIGZpbmQgYG1vZGVsYCB1c2luZyBwYXRoUGFyYW1zXG5cdFx0Y29uc3QgcmVkdXhNb2RlbCA9IChnZXQoc3RhdGUubW9kZWxzLCByZWR1eE1vZGVsTmFtZSkgfHwge30pIGFzIFRNb2RlbFxuXHRcdG1vZGVsID0gKE9iamVjdC5rZXlzKHJlZHV4TW9kZWwpLmxlbmd0aCA+IDAgPyByZWR1eE1vZGVsIDoge30pIGFzIFRNb2RlbFxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0cGF0aFBhcmFtczogcCxcblx0XHRtb2RlbCxcblx0XHRpc0NvbGxlY3Rpb25JdGVtOiB0cnVlXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdENvbGxlY3Rpb25Gcm9tU3RhdGU8VE1vZGVsIGV4dGVuZHMgTW9kZWw+KFxuXHRwYXJhbXM6IENvbGxlY3Rpb25TZWxlY3Rvck1ldGhvZFBhcmFtc1xuKTogQ29sbGVjdGlvblNlbGVjdG9yTWV0aG9kUmVzcG9uc2U8VE1vZGVsPiB7XG5cdGNvbnN0IHsgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCByb3V0ZU1hdGNoUGFyYW1zLCBzdGF0ZSB9ID0gcGFyYW1zXG5cdGNvbnN0IHAgPSBnZXRQYXRoUGFyYW1zKHBhdGhQYXJhbXMsIHJvdXRlTWF0Y2hQYXJhbXMsIG1vZGVsTmFtZSlcblx0Y29uc3QgcmVkdXhNb2RlbE5hbWUgPSBnZXRSZWR1eE1vZGVsTmFtZShwLCBtb2RlbE5hbWUpXG5cblx0bGV0IG1vZGVsID0gZ2V0KHN0YXRlLm1vZGVscywgcmVkdXhNb2RlbE5hbWUpIGFzIE1vZGVsQ29sbGVjdGlvbjxUTW9kZWw+IHwgdW5kZWZpbmVkXG5cdG1vZGVsID0gbW9kZWwgJiYgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDAgPyBtb2RlbCA6IHt9XG5cblx0cmV0dXJuIHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0cGF0aFBhcmFtczogcCxcblx0XHRtb2RlbCxcblx0XHRpc0NvbGxlY3Rpb25JdGVtOiBmYWxzZVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBSZWR1eCBNZXRob2RzXG5cbi8vI3JlZ2lvbiBDb2xsZWN0aW9uL0l0ZW0gQ1JVRCBNZXRob2RzXG5cbi8vI3JlZ2lvbiBMb2FkXG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wQ29sbGVjdGlvblBlcmlvZGljTG9hZCh0YXNrSWQ6IHN0cmluZykge1xuXHRkaXNwYXRjaFBlcmlvZGljTW9kZWxGZXRjaFRlcm1pbmF0ZUFjdGlvbih7XG5cdFx0dGFza0lkXG5cdH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29sbGVjdGlvbihjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uLCBwYXJhbXM6IENvbGxlY3Rpb25Mb2FkUGFyYW1zID0ge30pIHtcblx0Y29uc3Qge1xuXHRcdG1vZGVsTmFtZSxcblx0XHRpc0luaXRpYWxpemVkLFxuXHRcdHBhdGhQYXJhbXM6IGNvbmZpZ1BhdGhQYXJhbXMsXG5cdFx0cXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxuXHRcdGNoYW5nZU1vZGVsU3RhdHVzXG5cdH0gPSBjb25maWdcblx0Y29uc3QgeyBpZCwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIHBlcmlvZCwgdGFza0lkLCByZXBsYWNlVmFsdWUgfSA9IHBhcmFtc1xuXHRjb25zdCBwID0gY29uY2F0KFtdLCBwYXRoUGFyYW1zIHx8IGNvbmZpZ1BhdGhQYXJhbXMsIGlkID8gW2lkXSA6IFtdKVxuXHRpZiAocC5sZW5ndGggIT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAoaWQgPyAxIDogMCkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxuXHR9XG5cdGlmIChpc0luaXRpYWxpemVkKSB7XG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkxPQURJTkcsIGlkKVxuXHR9XG5cdGlmICghcGVyaW9kKSB7XG5cdFx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XG5cdFx0XHRtb2RlbE5hbWUsXG5cdFx0XHRtZXRob2Q6ICdHRVQnLFxuXHRcdFx0cGF0aFBhcmFtczogcCxcblx0XHRcdHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB8fCBjb25maWdRdWVyeVBhcmFtcyxcblx0XHRcdHJlcGxhY2VWYWx1ZVxuXHRcdH0pXG5cdH0gZWxzZSB7XG5cdFx0aWYgKCF0YXNrSWQpIHRocm93IG5ldyBFcnJvcigndGFza0lkIGlzIHJlcXVpcmVkIGZvciBwZXJpb2RpYyBkYXRhIHJlcXVlc3RzJylcblx0XHRkaXNwYXRjaFBlcmlvZGljTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdFx0bW9kZWxOYW1lLFxuXHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdHBhdGhQYXJhbXM6IHAsXG5cdFx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXG5cdFx0XHRwZXJpb2QsXG5cdFx0XHR0YXNrSWQsXG5cdFx0XHRyZXBsYWNlVmFsdWVcblx0XHR9KVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29sbGVjdGlvbkl0ZW0oY29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbiwgcGFyYW1zOiBDb2xsZWN0aW9uSXRlbUxvYWRQYXJhbXMgPSB7fSkge1xuXHRjb25zdCB7XG5cdFx0bW9kZWxOYW1lLFxuXHRcdGlzSW5pdGlhbGl6ZWQsXG5cdFx0cGF0aFBhcmFtczogY29uZmlnUGF0aFBhcmFtcyxcblx0XHRxdWVyeVBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMsXG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXNcblx0fSA9IGNvbmZpZ1xuXHRjb25zdCB7IHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBwZXJpb2QsIHRhc2tJZCwgcmVwbGFjZVZhbHVlIH0gPSBwYXJhbXNcblx0Y29uc3QgcCA9IHBhdGhQYXJhbXMgfHwgY29uZmlnUGF0aFBhcmFtc1xuXHRpZiAocC5sZW5ndGggPCBnZXRNaW5SZXF1aXJlZFBhdGhQYXJhbXNDb3VudChtb2RlbE5hbWUpICsgMSkge1xuXHRcdHRocm93IG5ldyBFcnJvcigncGF0aFBhcmFtcyBsZW5ndGggZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mIHBhdGggY29tcG9uZW50cycpXG5cdH1cblx0aWYgKGlzSW5pdGlhbGl6ZWQpIHtcblx0XHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuTE9BRElORylcblx0fVxuXHRpZiAoIXBlcmlvZCkge1xuXHRcdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdFx0bW9kZWxOYW1lLFxuXHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdHBhdGhQYXJhbXM6IHAsXG5cdFx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXG5cdFx0XHRyZXBsYWNlVmFsdWVcblx0XHR9KVxuXHR9IGVsc2Uge1xuXHRcdGlmICghdGFza0lkKSB0aHJvdyBuZXcgRXJyb3IoJ3Rhc2tJZCBpcyByZXF1aXJlZCBmb3IgcGVyaW9kaWMgZGF0YSByZXF1ZXN0cycpXG5cdFx0ZGlzcGF0Y2hQZXJpb2RpY01vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdG1vZGVsTmFtZSxcblx0XHRcdG1ldGhvZDogJ0dFVCcsXG5cdFx0XHRwYXRoUGFyYW1zOiBwLFxuXHRcdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zLFxuXHRcdFx0cGVyaW9kLFxuXHRcdFx0dGFza0lkLFxuXHRcdFx0cmVwbGFjZVZhbHVlXG5cdFx0fSlcblx0fVxufVxuXG4vLyNlbmRyZWdpb24gTG9hZFxuXG4vLyNyZWdpb24gQ3JlYXRlXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJdGVtSW5Db2xsZWN0aW9uKGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb24sIHBhcmFtczogQ29sbGVjdGlvbkNyZWF0ZVBhcmFtcykge1xuXHRjb25zdCB7IGd1aWQsIG1vZGVsTmFtZSwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXG5cdGNvbnN0IHsgYm9keSwgY29udGVudFR5cGUsIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoIDwgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSkge1xuXHRcdHRocm93IG5ldyBFcnJvcigncGF0aFBhcmFtcyBsZW5ndGggZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mIHBhdGggY29tcG9uZW50cycpXG5cdH1cblx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkNSRUFUSU5HLCBndWlkKVxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0Z3VpZCxcblx0XHRtZXRob2Q6ICdQT1NUJyxcblx0XHRib2R5LFxuXHRcdHBhdGhQYXJhbXMsXG5cdFx0Y29udGVudFR5cGUsXG5cdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zXG5cdH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2xsZWN0aW9uSXRlbShcblx0bW9kZWw6IE1vZGVsLFxuXHRjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uLFxuXHRwYXJhbXM6IENvbGxlY3Rpb25DcmVhdGVQYXJhbXNcbikge1xuXHRpZiAobW9kZWwuaWQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIGFscmVhZHkgZXhpc3RzJylcblx0fVxuXHRjb25zdCB7IGd1aWQsIG1vZGVsTmFtZSwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXG5cdGNvbnN0IHsgYm9keSwgY29udGVudFR5cGUsIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoIDwgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSkge1xuXHRcdHRocm93IG5ldyBFcnJvcigncGF0aFBhcmFtcyBsZW5ndGggZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mIHBhdGggY29tcG9uZW50cycpXG5cdH1cblx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLkNSRUFUSU5HKVxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0Z3VpZCxcblx0XHRtZXRob2Q6ICdQT1NUJyxcblx0XHRib2R5LFxuXHRcdHBhdGhQYXJhbXMsXG5cdFx0Y29udGVudFR5cGUsXG5cdFx0cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zIHx8IGNvbmZpZ1F1ZXJ5UGFyYW1zXG5cdH0pXG59XG5cbi8vI2VuZHJlZ2lvbiBDcmVhdGVcblxuLy8jcmVnaW9uIFVwZGF0ZVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSXRlbUluQ29sbGVjdGlvbihjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uLCBwYXJhbXM6IENvbGxlY3Rpb25VcGRhdGVQYXJhbXMpIHtcblx0Y29uc3QgeyBpZCwgYm9keSwgY29udGVudFR5cGUsIG1ldGhvZCwgcXVlcnlQYXJhbXMgfSA9IHBhcmFtc1xuXHRpZiAoIWlkKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGAnaWQnIGlzIHJlcXVpcmVkYClcblx0fVxuXHRpZiAoIWJvZHkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYCdib2R5JyBpcyByZXF1aXJlZGApXG5cdH1cblx0Y29uc3QgeyBtb2RlbE5hbWUsIHBhdGhQYXJhbXM6IGNvbmZpZ1BhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcywgY2hhbmdlTW9kZWxTdGF0dXMgfSA9IGNvbmZpZ1xuXHRjb25zdCBwYXRoUGFyYW1zID0gY29uY2F0KFtdLCBjb25maWdQYXRoUGFyYW1zLCBbaWRdKVxuXHRpZiAocGF0aFBhcmFtcy5sZW5ndGggIT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdwYXRoUGFyYW1zK2lkIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgcGF0aCBjb21wb25lbnRzJylcblx0fVxuXHRjb25zdCBtID0gbWV0aG9kIHx8ICdQVVQnXG5cdGNoYW5nZU1vZGVsU3RhdHVzKE1PREVMX1NUQVRVUy5VUERBVElORywgaWQpXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdG1vZGVsTmFtZSxcblx0XHRtZXRob2Q6IG0sXG5cdFx0cGF0aFBhcmFtcyxcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXMsXG5cdFx0Ym9keSxcblx0XHRjb250ZW50VHlwZVxuXHR9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ29sbGVjdGlvbkl0ZW0oXG5cdG1vZGVsOiBNb2RlbCxcblx0Y29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbixcblx0cGFyYW1zOiBDb2xsZWN0aW9uSXRlbVVwZGF0ZVBhcmFtc1xuKSB7XG5cdGlmICghbW9kZWwuaWQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21vZGVsIGRvZXMgbm90IGV4aXN0Jylcblx0fVxuXHRjb25zdCB7IGJvZHksIGNvbnRlbnRUeXBlLCBtZXRob2QsIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcblx0aWYgKCFib2R5KSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGAnYm9keScgaXMgcmVxdWlyZWRgKVxuXHR9XG5cdGNvbnN0IHsgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMsIGNoYW5nZU1vZGVsU3RhdHVzIH0gPSBjb25maWdcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoIDwgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSArIDEpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxuXHR9XG5cdGNvbnN0IG0gPSBtZXRob2QgfHwgJ1BVVCdcblx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLlVQREFUSU5HKVxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0bWV0aG9kOiBtLFxuXHRcdHBhdGhQYXJhbXMsXG5cdFx0Ym9keSxcblx0XHRjb250ZW50VHlwZSxcblx0XHRxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfHwgY29uZmlnUXVlcnlQYXJhbXNcblx0fSlcbn1cblxuLy8jZW5kcmVnaW9uIFVwZGF0ZVxuXG4vLyNyZWdpb24gRGVsZXRlXG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVJdGVtRnJvbUNvbGxlY3Rpb24oY29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvbiwgcGFyYW1zOiBDb2xsZWN0aW9uRGVsZXRlUGFyYW1zKSB7XG5cdGNvbnN0IHsgaWQsIGJvZHksIHF1ZXJ5UGFyYW1zIH0gPSBwYXJhbXNcblx0aWYgKCFpZCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihgJ2lkJyBpcyByZXF1aXJlZGApXG5cdH1cblx0Y29uc3QgeyBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcywgY2hhbmdlTW9kZWxTdGF0dXMgfSA9IGNvbmZpZ1xuXHRjb25zdCBwID0gY29uY2F0KFtdLCBwYXRoUGFyYW1zLCBbaWRdKVxuXHRpZiAocC5sZW5ndGggIT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdwYXRoUGFyYW1zK2lkIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgcGF0aCBjb21wb25lbnRzJylcblx0fVxuXHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuREVMRVRJTkcsIGlkKVxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRtb2RlbE5hbWUsXG5cdFx0bWV0aG9kOiAnREVMRVRFJyxcblx0XHRwYXRoUGFyYW1zOiBwLFxuXHRcdHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB8fCBjb25maWdRdWVyeVBhcmFtcyxcblx0XHRib2R5XG5cdH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVDb2xsZWN0aW9uSXRlbShcblx0bW9kZWw6IE1vZGVsLFxuXHRjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uLFxuXHRwYXJhbXM6IENvbGxlY3Rpb25JdGVtRGVsZXRlUGFyYW1zID0ge31cbikge1xuXHRpZiAoIW1vZGVsLmlkKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdtb2RlbCBkb2VzIG5vdCBleGlzdCcpXG5cdH1cblx0Y29uc3QgeyBib2R5LCBxdWVyeVBhcmFtcyB9ID0gcGFyYW1zXG5cdGNvbnN0IHsgbW9kZWxOYW1lLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtczogY29uZmlnUXVlcnlQYXJhbXMsIGNoYW5nZU1vZGVsU3RhdHVzIH0gPSBjb25maWdcblx0aWYgKHBhdGhQYXJhbXMubGVuZ3RoIDwgZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSArIDEpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ3BhdGhQYXJhbXMgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiBwYXRoIGNvbXBvbmVudHMnKVxuXHR9XG5cdGNoYW5nZU1vZGVsU3RhdHVzKE1PREVMX1NUQVRVUy5ERUxFVElORylcblx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XG5cdFx0bW9kZWxOYW1lLFxuXHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0cGF0aFBhcmFtcyxcblx0XHRib2R5LFxuXHRcdHF1ZXJ5UGFyYW1zOiBxdWVyeVBhcmFtcyB8fCBjb25maWdRdWVyeVBhcmFtc1xuXHR9KVxufVxuXG4vLyNlbmRyZWdpb24gRGVsZXRlXG5cbi8vI2VuZHJlZ2lvbiBDb2xsZWN0aW9uL0l0ZW0gQ1JVRCBNZXRob2RzXG5cbi8vI3JlZ2lvbiBIZWxwZXIgTWV0aG9kc1xuXG4vKipcbiAqIEF1dG9tYXRpY2FsbHkgY2FsbCBgbG9hZGAsIG9yIGBjaGFuZ2VNb2RlbFN0YXR1c2AgdG8gYFJFQURZYC5cbiAqXG4gKiBEb2VzIE5PVCBhdXRvbWF0aWNhbGx5IGxvYWQgaWY6XG4gKiAqIHBhdGhQYXJhbXMgZG9lcyBub3QgY29udGFpbiBlbm91Z2ggaXRlbXMuXG4gKiAqIG1vZGVsIGlzIGFscmVhZHkgZmV0Y2hpbmcuXG4gKiAqIGF1dG8gbG9hZCBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVDb2xsZWN0aW9uSXRlbShcblx0bW9kZWw6IE1vZGVsLFxuXHRsb2FkOiAocGFyYW1zPzogQ29sbGVjdGlvbkl0ZW1Mb2FkUGFyYW1zKSA9PiB2b2lkLFxuXHRjb25maWc6IENvbGxlY3Rpb25NZXRob2RDb25maWd1cmF0aW9uXG4pIHtcblx0Y29uc3QgeyBtb2RlbE5hbWUsIHBhdGhQYXJhbXMsIGRpc2FibGVBdXRvTG9hZCwgY2hhbmdlTW9kZWxTdGF0dXMgfSA9IGNvbmZpZ1xuXHRpZiAoXG5cdFx0cGF0aFBhcmFtcy5sZW5ndGggPT09IGdldE1pblJlcXVpcmVkUGF0aFBhcmFtc0NvdW50KG1vZGVsTmFtZSkgKyAxICYmXG5cdFx0IWRpc2FibGVBdXRvTG9hZCAmJlxuXHRcdCghbW9kZWwuX21ldGFkYXRhIHx8ICFtb2RlbC5fbWV0YWRhdGEuaXNGZXRjaGluZylcblx0KSB7XG5cdFx0bG9hZCgpXG5cdH0gZWxzZSB7XG5cdFx0Y2hhbmdlTW9kZWxTdGF0dXMoTU9ERUxfU1RBVFVTLlJFQURZKVxuXHR9XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSBjYWxsIGBsb2FkYCwgb3IgYGNoYW5nZU1vZGVsU3RhdHVzYCB0byBgUkVBRFlgLlxuICpcbiAqIERvZXMgTk9UIGF1dG9tYXRpY2FsbHkgbG9hZCBpZjpcbiAqICogbW9kZWwgaXMgYWxyZWFkeSBmZXRjaGluZy5cbiAqICogYXV0byBsb2FkIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbGxlY3Rpb24oXG5cdG1vZGVsOiBNb2RlbCxcblx0bG9hZDogKHBhcmFtcz86IENvbGxlY3Rpb25JdGVtTG9hZFBhcmFtcykgPT4gdm9pZCxcblx0Y29uZmlnOiBDb2xsZWN0aW9uTWV0aG9kQ29uZmlndXJhdGlvblxuKSB7XG5cdGNvbnN0IHsgZGlzYWJsZUF1dG9Mb2FkLCBjaGFuZ2VNb2RlbFN0YXR1cyB9ID0gY29uZmlnXG5cdGlmICghZGlzYWJsZUF1dG9Mb2FkICYmICghbW9kZWwuX21ldGFkYXRhIHx8ICFtb2RlbC5fbWV0YWRhdGEuaXNGZXRjaGluZykpIHtcblx0XHRsb2FkKClcblx0fSBlbHNlIGlmIChkaXNhYmxlQXV0b0xvYWQpIHtcblx0XHRjaGFuZ2VNb2RlbFN0YXR1cyhNT0RFTF9TVEFUVVMuUkVBRFkpXG5cdH1cbn1cblxuLyoqXG4gKiBXaGVuIGBwYXRoUGFyYW1zYCBvciBgcXVlcnlQYXJhbXNgIGNoYW5nZSwgY2FsbCBgbG9hZGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUNvbGxlY3Rpb25JdGVtUGFyYW1zQ2hhbmdlKFxuXHRtb2RlbE5hbWU6IHN0cmluZyxcblx0cHJldk1vZGVsTmFtZTogc3RyaW5nLFxuXHRwYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuXHRwcmV2UGF0aFBhcmFtczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCxcblx0cXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRwcmV2UXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRsb2FkOiAocGFyYW1zPzogQ29sbGVjdGlvbkl0ZW1Mb2FkUGFyYW1zKSA9PiB2b2lkXG4pIHtcblx0aWYgKFxuXHRcdG1vZGVsTmFtZSAhPT0gcHJldk1vZGVsTmFtZSB8fFxuXHRcdChwYXRoUGFyYW1zLmxlbmd0aCA9PT0gZ2V0TWluUmVxdWlyZWRQYXRoUGFyYW1zQ291bnQobW9kZWxOYW1lKSArIDEgJiYgIWlzRXF1YWwocHJldlBhdGhQYXJhbXMsIHBhdGhQYXJhbXMpKSB8fFxuXHRcdCFpc0VxdWFsKHByZXZRdWVyeVBhcmFtcywgcXVlcnlQYXJhbXMpXG5cdCkge1xuXHRcdGxvYWQoeyBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcyB9KVxuXHR9XG59XG5cbi8qKlxuICogV2hlbiBgcGF0aFBhcmFtc2Agb3IgYHF1ZXJ5UGFyYW1zYCBjaGFuZ2UsIGNhbGwgYGxvYWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVDb2xsZWN0aW9uUGFyYW1zQ2hhbmdlKFxuXHRtb2RlbE5hbWU6IHN0cmluZyxcblx0cHJldk1vZGVsTmFtZTogc3RyaW5nLFxuXHRwYXRoUGFyYW1zOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuXHRwcmV2UGF0aFBhcmFtczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZCxcblx0cXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRwcmV2UXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkLFxuXHRsb2FkOiAocGFyYW1zPzogQ29sbGVjdGlvbkxvYWRQYXJhbXMpID0+IHZvaWRcbikge1xuXHRpZiAoXG5cdFx0bW9kZWxOYW1lICE9PSBwcmV2TW9kZWxOYW1lIHx8XG5cdFx0KHBhdGhQYXJhbXMubGVuZ3RoID4gMCAmJiAhaXNFcXVhbChwcmV2UGF0aFBhcmFtcywgcGF0aFBhcmFtcykpIHx8XG5cdFx0IWlzRXF1YWwocHJldlF1ZXJ5UGFyYW1zLCBxdWVyeVBhcmFtcylcblx0KSB7XG5cdFx0bG9hZCh7IHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zIH0pXG5cdH1cbn1cblxuLyoqXG4gKiBEZWxldGUgdGhlIGd1aWQgaW4gdGhlIG1vZGVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQ29sbGVjdGlvbkd1aWRLZXk8VE1vZGVsIGV4dGVuZHMgTW9kZWw+KFxuXHRtb2RlbDogTW9kZWxDb2xsZWN0aW9uPFRNb2RlbD4sXG5cdGNvbmZpZzogQ29sbGVjdGlvbk1ldGhvZENvbmZpZ3VyYXRpb25cbikge1xuXHRjb25zdCB7IGd1aWQsIG1vZGVsTmFtZSwgcGF0aFBhcmFtcyB9ID0gY29uZmlnXG5cdGlmIChpbmNsdWRlcyhPYmplY3Qua2V5cyhtb2RlbCksIGd1aWQpKSB7XG5cdFx0Y29uc3QgbW9kZWxOYW1lcyA9IG1vZGVsTmFtZS5zcGxpdCgnLicpXG5cdFx0Y29uc3QgdGVtcFBhdGhQYXJhbXMgPSBwYXRoUGFyYW1zLnNsaWNlKClcblx0XHQvLyBzaG91bGQgaW5jbHVkZSB0aGUgZ3VpZCBhdCB0aGUgZW5kXG5cdFx0dGVtcFBhdGhQYXJhbXMucHVzaChndWlkKVxuXHRcdGlmIChtb2RlbE5hbWVzLmxlbmd0aCA9PT0gdGVtcFBhdGhQYXJhbXMubGVuZ3RoKSB7XG5cdFx0XHRsZXQgcGF0aCA9ICcnXG5cdFx0XHRtb2RlbE5hbWVzLmZvckVhY2goKG0sIGkpID0+IHtcblx0XHRcdFx0aWYgKGkgPT09IDApIHtcblx0XHRcdFx0XHRwYXRoICs9IGAke219LiR7dGVtcFBhdGhQYXJhbXNbaV19YFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHBhdGggKz0gYC4ke219LiR7dGVtcFBhdGhQYXJhbXNbaV19YFxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0ZGlzcGF0Y2hNb2RlbFJlbW92ZUtleUFjdGlvbih7XG5cdFx0XHRcdG1vZGVsUGF0aDogcGF0aFxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cblxuLy8jZW5kcmVnaW9uIEhlbHBlciBNZXRob2RzXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFvQkEsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBRUE7O0FBRUEsTUFBTU0sYUFBYSxHQUFHLElBQUFDLG1CQUFVLEVBQy9CLENBQUNDLFVBQThDLEVBQUVDLGdCQUFvQyxFQUFFQyxTQUFpQixLQUN2R0YsVUFBVSxJQUFJLElBQUFHLHdDQUFpQyxFQUFDRixnQkFBZ0IsRUFBRUMsU0FBUyxDQUM3RSxDQUFDO0FBRU0sU0FBU0UsNkJBQTZCQSxDQUM1Q0MsTUFBc0MsRUFDSztFQUMzQyxNQUFNO0lBQUVDLElBQUk7SUFBRUosU0FBUztJQUFFRixVQUFVO0lBQUVDLGdCQUFnQjtJQUFFTTtFQUFNLENBQUMsR0FBR0YsTUFBTTtFQUN2RSxNQUFNRyxtQkFBbUIsR0FBRyxJQUFBQyxvQ0FBNkIsRUFBQ1AsU0FBUyxDQUFDO0VBQ3BFLE1BQU1RLENBQUMsR0FBR1osYUFBYSxDQUFDRSxVQUFVLEVBQUVDLGdCQUFnQixFQUFFQyxTQUFTLENBQUM7RUFDaEUsTUFBTVMsY0FBYyxHQUFHLElBQUFDLHdCQUFpQixFQUFDRixDQUFDLEVBQUVSLFNBQVMsQ0FBQztFQUV0RCxJQUFJVyxLQUFLLEdBQUcsQ0FBQyxDQUFXO0VBQ3hCO0VBQ0EsSUFBSUgsQ0FBQyxDQUFDSSxNQUFNLEtBQUtOLG1CQUFtQixFQUFFO0lBQ3JDLE1BQU1PLFVBQVUsR0FBSSxJQUFBQyxXQUFHLEVBQUNULEtBQUssQ0FBQ1UsTUFBTSxFQUFFTixjQUFjLENBQUMsSUFBSSxDQUFDLENBQTZCO0lBQ3ZGLElBQUlPLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ04sVUFBVSxFQUFFVCxJQUFJLENBQUMsRUFBRTtNQUMzRE8sS0FBSyxHQUFHRSxVQUFVLENBQUNULElBQUksQ0FBVztJQUNuQyxDQUFDLE1BQU07TUFDTixNQUFNZ0IsV0FBVyxHQUFHLElBQUFDLFlBQUksRUFBQyxJQUFBQyxjQUFNLEVBQUNULFVBQVUsQ0FBQyxFQUFHVSxDQUFDLElBQWtCLENBQUMsQ0FBQ0EsQ0FBQyxJQUFJLE1BQU0sSUFBSUEsQ0FBQyxJQUFJQSxDQUFDLENBQUNuQixJQUFJLEtBQUtBLElBQUksQ0FBQztNQUN2R08sS0FBSyxHQUFHUyxXQUFXLElBQUlULEtBQUs7SUFDN0I7RUFDRCxDQUFDLE1BQU07SUFDTjtJQUNBLE1BQU1hLFVBQVUsR0FBSSxJQUFBVixXQUFHLEVBQUNULEtBQUssQ0FBQ1UsTUFBTSxFQUFFTixjQUFjLENBQUMsSUFBSSxDQUFDLENBQVk7SUFDdEVFLEtBQUssR0FBSUssTUFBTSxDQUFDUyxJQUFJLENBQUNELFVBQVUsQ0FBQyxDQUFDWixNQUFNLEdBQUcsQ0FBQyxHQUFHWSxVQUFVLEdBQUcsQ0FBQyxDQUFZO0VBQ3pFO0VBRUEsT0FBTztJQUNOeEIsU0FBUztJQUNURixVQUFVLEVBQUVVLENBQUM7SUFDYkcsS0FBSztJQUNMZSxnQkFBZ0IsRUFBRTtFQUNuQixDQUFDO0FBQ0Y7QUFFTyxTQUFTQyx5QkFBeUJBLENBQ3hDeEIsTUFBc0MsRUFDSztFQUMzQyxNQUFNO0lBQUVILFNBQVM7SUFBRUYsVUFBVTtJQUFFQyxnQkFBZ0I7SUFBRU07RUFBTSxDQUFDLEdBQUdGLE1BQU07RUFDakUsTUFBTUssQ0FBQyxHQUFHWixhQUFhLENBQUNFLFVBQVUsRUFBRUMsZ0JBQWdCLEVBQUVDLFNBQVMsQ0FBQztFQUNoRSxNQUFNUyxjQUFjLEdBQUcsSUFBQUMsd0JBQWlCLEVBQUNGLENBQUMsRUFBRVIsU0FBUyxDQUFDO0VBRXRELElBQUlXLEtBQUssR0FBRyxJQUFBRyxXQUFHLEVBQUNULEtBQUssQ0FBQ1UsTUFBTSxFQUFFTixjQUFjLENBQXdDO0VBQ3BGRSxLQUFLLEdBQUdBLEtBQUssSUFBSUssTUFBTSxDQUFDUyxJQUFJLENBQUNkLEtBQUssQ0FBQyxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxHQUFHRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO0VBRTNELE9BQU87SUFDTlgsU0FBUztJQUNURixVQUFVLEVBQUVVLENBQUM7SUFDYkcsS0FBSztJQUNMZSxnQkFBZ0IsRUFBRTtFQUNuQixDQUFDO0FBQ0Y7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRU8sU0FBU0UsMEJBQTBCQSxDQUFDQyxNQUFjLEVBQUU7RUFDMUQsSUFBQUMsd0RBQXlDLEVBQUM7SUFDekNEO0VBQ0QsQ0FBQyxDQUFDO0FBQ0g7QUFFTyxTQUFTRSxjQUFjQSxDQUFDQyxNQUFxQyxFQUFxQztFQUFBLElBQW5DN0IsTUFBNEIsR0FBQThCLFNBQUEsQ0FBQXJCLE1BQUEsUUFBQXFCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQ3RHLE1BQU07SUFDTGpDLFNBQVM7SUFDVG1DLGFBQWE7SUFDYnJDLFVBQVUsRUFBRXNDLGdCQUFnQjtJQUM1QkMsV0FBVyxFQUFFQyxpQkFBaUI7SUFDOUJDO0VBQ0QsQ0FBQyxHQUFHUCxNQUFNO0VBQ1YsTUFBTTtJQUFFUSxFQUFFO0lBQUUxQyxVQUFVO0lBQUV1QyxXQUFXO0lBQUVJLE1BQU07SUFBRVosTUFBTTtJQUFFYTtFQUFhLENBQUMsR0FBR3ZDLE1BQU07RUFDNUUsTUFBTUssQ0FBQyxHQUFHLElBQUFtQyxjQUFNLEVBQUMsRUFBRSxFQUFFN0MsVUFBVSxJQUFJc0MsZ0JBQWdCLEVBQUVJLEVBQUUsR0FBRyxDQUFDQSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7RUFDcEUsSUFBSWhDLENBQUMsQ0FBQ0ksTUFBTSxLQUFLLElBQUFMLG9DQUE2QixFQUFDUCxTQUFTLENBQUMsSUFBSXdDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDekUsTUFBTSxJQUFJSSxLQUFLLENBQUMsNERBQTRELENBQUM7RUFDOUU7RUFDQSxJQUFJVCxhQUFhLEVBQUU7SUFDbEJJLGlCQUFpQixDQUFDTSx1QkFBWSxDQUFDQyxPQUFPLEVBQUVOLEVBQUUsQ0FBQztFQUM1QztFQUNBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO0lBQ1osSUFBQU0sd0NBQXlCLEVBQUM7TUFDekIvQyxTQUFTO01BQ1RnRCxNQUFNLEVBQUUsS0FBSztNQUNibEQsVUFBVSxFQUFFVSxDQUFDO01BQ2I2QixXQUFXLEVBQUVBLFdBQVcsSUFBSUMsaUJBQWlCO01BQzdDSTtJQUNELENBQUMsQ0FBQztFQUNILENBQUMsTUFBTTtJQUNOLElBQUksQ0FBQ2IsTUFBTSxFQUFFLE1BQU0sSUFBSWUsS0FBSyxDQUFDLCtDQUErQyxDQUFDO0lBQzdFLElBQUFLLGdEQUFpQyxFQUFDO01BQ2pDakQsU0FBUztNQUNUZ0QsTUFBTSxFQUFFLEtBQUs7TUFDYmxELFVBQVUsRUFBRVUsQ0FBQztNQUNiNkIsV0FBVyxFQUFFQSxXQUFXLElBQUlDLGlCQUFpQjtNQUM3Q0csTUFBTTtNQUNOWixNQUFNO01BQ05hO0lBQ0QsQ0FBQyxDQUFDO0VBQ0g7QUFDRDtBQUVPLFNBQVNRLGtCQUFrQkEsQ0FBQ2xCLE1BQXFDLEVBQXlDO0VBQUEsSUFBdkM3QixNQUFnQyxHQUFBOEIsU0FBQSxDQUFBckIsTUFBQSxRQUFBcUIsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxDQUFDLENBQUM7RUFDOUcsTUFBTTtJQUNMakMsU0FBUztJQUNUbUMsYUFBYTtJQUNickMsVUFBVSxFQUFFc0MsZ0JBQWdCO0lBQzVCQyxXQUFXLEVBQUVDLGlCQUFpQjtJQUM5QkM7RUFDRCxDQUFDLEdBQUdQLE1BQU07RUFDVixNQUFNO0lBQUVsQyxVQUFVO0lBQUV1QyxXQUFXO0lBQUVJLE1BQU07SUFBRVosTUFBTTtJQUFFYTtFQUFhLENBQUMsR0FBR3ZDLE1BQU07RUFDeEUsTUFBTUssQ0FBQyxHQUFHVixVQUFVLElBQUlzQyxnQkFBZ0I7RUFDeEMsSUFBSTVCLENBQUMsQ0FBQ0ksTUFBTSxHQUFHLElBQUFMLG9DQUE2QixFQUFDUCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDNUQsTUFBTSxJQUFJNEMsS0FBSyxDQUFDLDREQUE0RCxDQUFDO0VBQzlFO0VBQ0EsSUFBSVQsYUFBYSxFQUFFO0lBQ2xCSSxpQkFBaUIsQ0FBQ00sdUJBQVksQ0FBQ0MsT0FBTyxDQUFDO0VBQ3hDO0VBQ0EsSUFBSSxDQUFDTCxNQUFNLEVBQUU7SUFDWixJQUFBTSx3Q0FBeUIsRUFBQztNQUN6Qi9DLFNBQVM7TUFDVGdELE1BQU0sRUFBRSxLQUFLO01BQ2JsRCxVQUFVLEVBQUVVLENBQUM7TUFDYjZCLFdBQVcsRUFBRUEsV0FBVyxJQUFJQyxpQkFBaUI7TUFDN0NJO0lBQ0QsQ0FBQyxDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ04sSUFBSSxDQUFDYixNQUFNLEVBQUUsTUFBTSxJQUFJZSxLQUFLLENBQUMsK0NBQStDLENBQUM7SUFDN0UsSUFBQUssZ0RBQWlDLEVBQUM7TUFDakNqRCxTQUFTO01BQ1RnRCxNQUFNLEVBQUUsS0FBSztNQUNibEQsVUFBVSxFQUFFVSxDQUFDO01BQ2I2QixXQUFXLEVBQUVBLFdBQVcsSUFBSUMsaUJBQWlCO01BQzdDRyxNQUFNO01BQ05aLE1BQU07TUFDTmE7SUFDRCxDQUFDLENBQUM7RUFDSDtBQUNEOztBQUVBOztBQUVBOztBQUVPLFNBQVNTLHNCQUFzQkEsQ0FBQ25CLE1BQXFDLEVBQUU3QixNQUE4QixFQUFFO0VBQzdHLE1BQU07SUFBRUMsSUFBSTtJQUFFSixTQUFTO0lBQUVGLFVBQVU7SUFBRXVDLFdBQVcsRUFBRUMsaUJBQWlCO0lBQUVDO0VBQWtCLENBQUMsR0FBR1AsTUFBTTtFQUNqRyxNQUFNO0lBQUVvQixJQUFJO0lBQUVDLFdBQVc7SUFBRWhCO0VBQVksQ0FBQyxHQUFHbEMsTUFBTTtFQUNqRCxJQUFJTCxVQUFVLENBQUNjLE1BQU0sR0FBRyxJQUFBTCxvQ0FBNkIsRUFBQ1AsU0FBUyxDQUFDLEVBQUU7SUFDakUsTUFBTSxJQUFJNEMsS0FBSyxDQUFDLDREQUE0RCxDQUFDO0VBQzlFO0VBQ0FMLGlCQUFpQixDQUFDTSx1QkFBWSxDQUFDUyxRQUFRLEVBQUVsRCxJQUFJLENBQUM7RUFDOUMsSUFBQTJDLHdDQUF5QixFQUFDO0lBQ3pCL0MsU0FBUztJQUNUSSxJQUFJO0lBQ0o0QyxNQUFNLEVBQUUsTUFBTTtJQUNkSSxJQUFJO0lBQ0p0RCxVQUFVO0lBQ1Z1RCxXQUFXO0lBQ1hoQixXQUFXLEVBQUVBLFdBQVcsSUFBSUM7RUFDN0IsQ0FBQyxDQUFDO0FBQ0g7QUFFTyxTQUFTaUIsb0JBQW9CQSxDQUNuQzVDLEtBQVksRUFDWnFCLE1BQXFDLEVBQ3JDN0IsTUFBOEIsRUFDN0I7RUFDRCxJQUFJUSxLQUFLLENBQUM2QixFQUFFLEVBQUU7SUFDYixNQUFNLElBQUlJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztFQUN4QztFQUNBLE1BQU07SUFBRXhDLElBQUk7SUFBRUosU0FBUztJQUFFRixVQUFVO0lBQUV1QyxXQUFXLEVBQUVDLGlCQUFpQjtJQUFFQztFQUFrQixDQUFDLEdBQUdQLE1BQU07RUFDakcsTUFBTTtJQUFFb0IsSUFBSTtJQUFFQyxXQUFXO0lBQUVoQjtFQUFZLENBQUMsR0FBR2xDLE1BQU07RUFDakQsSUFBSUwsVUFBVSxDQUFDYyxNQUFNLEdBQUcsSUFBQUwsb0NBQTZCLEVBQUNQLFNBQVMsQ0FBQyxFQUFFO0lBQ2pFLE1BQU0sSUFBSTRDLEtBQUssQ0FBQyw0REFBNEQsQ0FBQztFQUM5RTtFQUNBTCxpQkFBaUIsQ0FBQ00sdUJBQVksQ0FBQ1MsUUFBUSxDQUFDO0VBQ3hDLElBQUFQLHdDQUF5QixFQUFDO0lBQ3pCL0MsU0FBUztJQUNUSSxJQUFJO0lBQ0o0QyxNQUFNLEVBQUUsTUFBTTtJQUNkSSxJQUFJO0lBQ0p0RCxVQUFVO0lBQ1Z1RCxXQUFXO0lBQ1hoQixXQUFXLEVBQUVBLFdBQVcsSUFBSUM7RUFDN0IsQ0FBQyxDQUFDO0FBQ0g7O0FBRUE7O0FBRUE7O0FBRU8sU0FBU2tCLHNCQUFzQkEsQ0FBQ3hCLE1BQXFDLEVBQUU3QixNQUE4QixFQUFFO0VBQzdHLE1BQU07SUFBRXFDLEVBQUU7SUFBRVksSUFBSTtJQUFFQyxXQUFXO0lBQUVMLE1BQU07SUFBRVg7RUFBWSxDQUFDLEdBQUdsQyxNQUFNO0VBQzdELElBQUksQ0FBQ3FDLEVBQUUsRUFBRTtJQUNSLE1BQU0sSUFBSUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO0VBQ3BDO0VBQ0EsSUFBSSxDQUFDUSxJQUFJLEVBQUU7SUFDVixNQUFNLElBQUlSLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztFQUN0QztFQUNBLE1BQU07SUFBRTVDLFNBQVM7SUFBRUYsVUFBVSxFQUFFc0MsZ0JBQWdCO0lBQUVDLFdBQVcsRUFBRUMsaUJBQWlCO0lBQUVDO0VBQWtCLENBQUMsR0FBR1AsTUFBTTtFQUM3RyxNQUFNbEMsVUFBVSxHQUFHLElBQUE2QyxjQUFNLEVBQUMsRUFBRSxFQUFFUCxnQkFBZ0IsRUFBRSxDQUFDSSxFQUFFLENBQUMsQ0FBQztFQUNyRCxJQUFJMUMsVUFBVSxDQUFDYyxNQUFNLEtBQUssSUFBQUwsb0NBQTZCLEVBQUNQLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUN2RSxNQUFNLElBQUk0QyxLQUFLLENBQUMsK0RBQStELENBQUM7RUFDakY7RUFDQSxNQUFNckIsQ0FBQyxHQUFHeUIsTUFBTSxJQUFJLEtBQUs7RUFDekJULGlCQUFpQixDQUFDTSx1QkFBWSxDQUFDWSxRQUFRLEVBQUVqQixFQUFFLENBQUM7RUFDNUMsSUFBQU8sd0NBQXlCLEVBQUM7SUFDekIvQyxTQUFTO0lBQ1RnRCxNQUFNLEVBQUV6QixDQUFDO0lBQ1R6QixVQUFVO0lBQ1Z1QyxXQUFXLEVBQUVBLFdBQVcsSUFBSUMsaUJBQWlCO0lBQzdDYyxJQUFJO0lBQ0pDO0VBQ0QsQ0FBQyxDQUFDO0FBQ0g7QUFFTyxTQUFTSyxvQkFBb0JBLENBQ25DL0MsS0FBWSxFQUNacUIsTUFBcUMsRUFDckM3QixNQUFrQyxFQUNqQztFQUNELElBQUksQ0FBQ1EsS0FBSyxDQUFDNkIsRUFBRSxFQUFFO0lBQ2QsTUFBTSxJQUFJSSxLQUFLLENBQUMsc0JBQXNCLENBQUM7RUFDeEM7RUFDQSxNQUFNO0lBQUVRLElBQUk7SUFBRUMsV0FBVztJQUFFTCxNQUFNO0lBQUVYO0VBQVksQ0FBQyxHQUFHbEMsTUFBTTtFQUN6RCxJQUFJLENBQUNpRCxJQUFJLEVBQUU7SUFDVixNQUFNLElBQUlSLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztFQUN0QztFQUNBLE1BQU07SUFBRTVDLFNBQVM7SUFBRUYsVUFBVTtJQUFFdUMsV0FBVyxFQUFFQyxpQkFBaUI7SUFBRUM7RUFBa0IsQ0FBQyxHQUFHUCxNQUFNO0VBQzNGLElBQUlsQyxVQUFVLENBQUNjLE1BQU0sR0FBRyxJQUFBTCxvQ0FBNkIsRUFBQ1AsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO0lBQ3JFLE1BQU0sSUFBSTRDLEtBQUssQ0FBQyw0REFBNEQsQ0FBQztFQUM5RTtFQUNBLE1BQU1yQixDQUFDLEdBQUd5QixNQUFNLElBQUksS0FBSztFQUN6QlQsaUJBQWlCLENBQUNNLHVCQUFZLENBQUNZLFFBQVEsQ0FBQztFQUN4QyxJQUFBVix3Q0FBeUIsRUFBQztJQUN6Qi9DLFNBQVM7SUFDVGdELE1BQU0sRUFBRXpCLENBQUM7SUFDVHpCLFVBQVU7SUFDVnNELElBQUk7SUFDSkMsV0FBVztJQUNYaEIsV0FBVyxFQUFFQSxXQUFXLElBQUlDO0VBQzdCLENBQUMsQ0FBQztBQUNIOztBQUVBOztBQUVBOztBQUVPLFNBQVNxQix3QkFBd0JBLENBQUMzQixNQUFxQyxFQUFFN0IsTUFBOEIsRUFBRTtFQUMvRyxNQUFNO0lBQUVxQyxFQUFFO0lBQUVZLElBQUk7SUFBRWY7RUFBWSxDQUFDLEdBQUdsQyxNQUFNO0VBQ3hDLElBQUksQ0FBQ3FDLEVBQUUsRUFBRTtJQUNSLE1BQU0sSUFBSUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO0VBQ3BDO0VBQ0EsTUFBTTtJQUFFNUMsU0FBUztJQUFFRixVQUFVO0lBQUV1QyxXQUFXLEVBQUVDLGlCQUFpQjtJQUFFQztFQUFrQixDQUFDLEdBQUdQLE1BQU07RUFDM0YsTUFBTXhCLENBQUMsR0FBRyxJQUFBbUMsY0FBTSxFQUFDLEVBQUUsRUFBRTdDLFVBQVUsRUFBRSxDQUFDMEMsRUFBRSxDQUFDLENBQUM7RUFDdEMsSUFBSWhDLENBQUMsQ0FBQ0ksTUFBTSxLQUFLLElBQUFMLG9DQUE2QixFQUFDUCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDOUQsTUFBTSxJQUFJNEMsS0FBSyxDQUFDLCtEQUErRCxDQUFDO0VBQ2pGO0VBQ0FMLGlCQUFpQixDQUFDTSx1QkFBWSxDQUFDZSxRQUFRLEVBQUVwQixFQUFFLENBQUM7RUFDNUMsSUFBQU8sd0NBQXlCLEVBQUM7SUFDekIvQyxTQUFTO0lBQ1RnRCxNQUFNLEVBQUUsUUFBUTtJQUNoQmxELFVBQVUsRUFBRVUsQ0FBQztJQUNiNkIsV0FBVyxFQUFFQSxXQUFXLElBQUlDLGlCQUFpQjtJQUM3Q2M7RUFDRCxDQUFDLENBQUM7QUFDSDtBQUVPLFNBQVNTLG9CQUFvQkEsQ0FDbkNsRCxLQUFZLEVBQ1pxQixNQUFxQyxFQUVwQztFQUFBLElBREQ3QixNQUFrQyxHQUFBOEIsU0FBQSxDQUFBckIsTUFBQSxRQUFBcUIsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxDQUFDLENBQUM7RUFFdkMsSUFBSSxDQUFDdEIsS0FBSyxDQUFDNkIsRUFBRSxFQUFFO0lBQ2QsTUFBTSxJQUFJSSxLQUFLLENBQUMsc0JBQXNCLENBQUM7RUFDeEM7RUFDQSxNQUFNO0lBQUVRLElBQUk7SUFBRWY7RUFBWSxDQUFDLEdBQUdsQyxNQUFNO0VBQ3BDLE1BQU07SUFBRUgsU0FBUztJQUFFRixVQUFVO0lBQUV1QyxXQUFXLEVBQUVDLGlCQUFpQjtJQUFFQztFQUFrQixDQUFDLEdBQUdQLE1BQU07RUFDM0YsSUFBSWxDLFVBQVUsQ0FBQ2MsTUFBTSxHQUFHLElBQUFMLG9DQUE2QixFQUFDUCxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDckUsTUFBTSxJQUFJNEMsS0FBSyxDQUFDLDREQUE0RCxDQUFDO0VBQzlFO0VBQ0FMLGlCQUFpQixDQUFDTSx1QkFBWSxDQUFDZSxRQUFRLENBQUM7RUFDeEMsSUFBQWIsd0NBQXlCLEVBQUM7SUFDekIvQyxTQUFTO0lBQ1RnRCxNQUFNLEVBQUUsUUFBUTtJQUNoQmxELFVBQVU7SUFDVnNELElBQUk7SUFDSmYsV0FBVyxFQUFFQSxXQUFXLElBQUlDO0VBQzdCLENBQUMsQ0FBQztBQUNIOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTd0Isd0JBQXdCQSxDQUN2Q25ELEtBQVksRUFDWm9ELElBQWlELEVBQ2pEL0IsTUFBcUMsRUFDcEM7RUFDRCxNQUFNO0lBQUVoQyxTQUFTO0lBQUVGLFVBQVU7SUFBRWtFLGVBQWU7SUFBRXpCO0VBQWtCLENBQUMsR0FBR1AsTUFBTTtFQUM1RSxJQUNDbEMsVUFBVSxDQUFDYyxNQUFNLEtBQUssSUFBQUwsb0NBQTZCLEVBQUNQLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFDbEUsQ0FBQ2dFLGVBQWUsS0FDZixDQUFDckQsS0FBSyxDQUFDc0QsU0FBUyxJQUFJLENBQUN0RCxLQUFLLENBQUNzRCxTQUFTLENBQUNDLFVBQVUsQ0FBQyxFQUNoRDtJQUNESCxJQUFJLENBQUMsQ0FBQztFQUNQLENBQUMsTUFBTTtJQUNOeEIsaUJBQWlCLENBQUNNLHVCQUFZLENBQUNzQixLQUFLLENBQUM7RUFDdEM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLG9CQUFvQkEsQ0FDbkN6RCxLQUFZLEVBQ1pvRCxJQUFpRCxFQUNqRC9CLE1BQXFDLEVBQ3BDO0VBQ0QsTUFBTTtJQUFFZ0MsZUFBZTtJQUFFekI7RUFBa0IsQ0FBQyxHQUFHUCxNQUFNO0VBQ3JELElBQUksQ0FBQ2dDLGVBQWUsS0FBSyxDQUFDckQsS0FBSyxDQUFDc0QsU0FBUyxJQUFJLENBQUN0RCxLQUFLLENBQUNzRCxTQUFTLENBQUNDLFVBQVUsQ0FBQyxFQUFFO0lBQzFFSCxJQUFJLENBQUMsQ0FBQztFQUNQLENBQUMsTUFBTSxJQUFJQyxlQUFlLEVBQUU7SUFDM0J6QixpQkFBaUIsQ0FBQ00sdUJBQVksQ0FBQ3NCLEtBQUssQ0FBQztFQUN0QztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNPLFNBQVNFLGdDQUFnQ0EsQ0FDL0NyRSxTQUFpQixFQUNqQnNFLGFBQXFCLEVBQ3JCeEUsVUFBa0MsRUFDbEN5RSxjQUFrRCxFQUNsRGxDLFdBQWtFLEVBQ2xFbUMsZUFBc0UsRUFDdEVULElBQWlELEVBQ2hEO0VBQ0QsSUFDQy9ELFNBQVMsS0FBS3NFLGFBQWEsSUFDMUJ4RSxVQUFVLENBQUNjLE1BQU0sS0FBSyxJQUFBTCxvQ0FBNkIsRUFBQ1AsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQXlFLGVBQU8sRUFBQ0YsY0FBYyxFQUFFekUsVUFBVSxDQUFFLElBQzVHLENBQUMsSUFBQTJFLGVBQU8sRUFBQ0QsZUFBZSxFQUFFbkMsV0FBVyxDQUFDLEVBQ3JDO0lBQ0QwQixJQUFJLENBQUM7TUFBRWpFLFVBQVU7TUFBRXVDO0lBQVksQ0FBQyxDQUFDO0VBQ2xDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ08sU0FBU3FDLDRCQUE0QkEsQ0FDM0MxRSxTQUFpQixFQUNqQnNFLGFBQXFCLEVBQ3JCeEUsVUFBa0MsRUFDbEN5RSxjQUFrRCxFQUNsRGxDLFdBQWtFLEVBQ2xFbUMsZUFBc0UsRUFDdEVULElBQTZDLEVBQzVDO0VBQ0QsSUFDQy9ELFNBQVMsS0FBS3NFLGFBQWEsSUFDMUJ4RSxVQUFVLENBQUNjLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBNkQsZUFBTyxFQUFDRixjQUFjLEVBQUV6RSxVQUFVLENBQUUsSUFDL0QsQ0FBQyxJQUFBMkUsZUFBTyxFQUFDRCxlQUFlLEVBQUVuQyxXQUFXLENBQUMsRUFDckM7SUFDRDBCLElBQUksQ0FBQztNQUFFakUsVUFBVTtNQUFFdUM7SUFBWSxDQUFDLENBQUM7RUFDbEM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTc0Msd0JBQXdCQSxDQUN2Q2hFLEtBQThCLEVBQzlCcUIsTUFBcUMsRUFDcEM7RUFDRCxNQUFNO0lBQUU1QixJQUFJO0lBQUVKLFNBQVM7SUFBRUY7RUFBVyxDQUFDLEdBQUdrQyxNQUFNO0VBQzlDLElBQUksSUFBQTRDLGdCQUFRLEVBQUM1RCxNQUFNLENBQUNTLElBQUksQ0FBQ2QsS0FBSyxDQUFDLEVBQUVQLElBQUksQ0FBQyxFQUFFO0lBQ3ZDLE1BQU15RSxVQUFVLEdBQUc3RSxTQUFTLENBQUM4RSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3ZDLE1BQU1DLGNBQWMsR0FBR2pGLFVBQVUsQ0FBQ2tGLEtBQUssQ0FBQyxDQUFDO0lBQ3pDO0lBQ0FELGNBQWMsQ0FBQ0UsSUFBSSxDQUFDN0UsSUFBSSxDQUFDO0lBQ3pCLElBQUl5RSxVQUFVLENBQUNqRSxNQUFNLEtBQUttRSxjQUFjLENBQUNuRSxNQUFNLEVBQUU7TUFDaEQsSUFBSXNFLElBQUksR0FBRyxFQUFFO01BQ2JMLFVBQVUsQ0FBQ00sT0FBTyxDQUFDLENBQUM1RCxDQUFDLEVBQUU2RCxDQUFDLEtBQUs7UUFDNUIsSUFBSUEsQ0FBQyxLQUFLLENBQUMsRUFBRTtVQUNaRixJQUFJLElBQUksR0FBRzNELENBQUMsSUFBSXdELGNBQWMsQ0FBQ0ssQ0FBQyxDQUFDLEVBQUU7UUFDcEMsQ0FBQyxNQUFNO1VBQ05GLElBQUksSUFBSSxJQUFJM0QsQ0FBQyxJQUFJd0QsY0FBYyxDQUFDSyxDQUFDLENBQUMsRUFBRTtRQUNyQztNQUNELENBQUMsQ0FBQztNQUNGLElBQUFDLDJDQUE0QixFQUFDO1FBQzVCQyxTQUFTLEVBQUVKO01BQ1osQ0FBQyxDQUFDO0lBQ0g7RUFDRDtBQUNEOztBQUVBIiwiaWdub3JlTGlzdCI6W119
@@ -25,4 +25,4 @@ const getCookies = () => {
25
25
  return cookies;
26
26
  };
27
27
  exports.getCookies = getCookies;
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXRDb29raWVzIiwiY29va2llcyIsImRvY3VtZW50IiwiY29va2llIiwiY29va2llU3RyaW5ncyIsInNwbGl0IiwiZm9yRWFjaCIsImNvb2tpZVN0cmluZyIsImNvb2tpZVBhcnRzIiwibmFtZSIsImRlY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJ2YWx1ZSIsImVycm9yIiwiY2FwdHVyZUV4Y2VwdGlvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29va2llcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9yZWFjdCdcclxuXHJcbi8qKiBHZXQgdGhlIGNvbnRlbnRzIG9mIGBkb2N1bWVudC5jb29raWVgIGFzIGEgUmVjb3JkIHdpdGggc3RyaW5nIGtleXMgYW5kIHZhbHVlcy4gKi9cclxuZXhwb3J0IGNvbnN0IGdldENvb2tpZXMgPSAoKSA9PiB7XHJcblx0Y29uc3QgY29va2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XHJcblx0aWYgKGRvY3VtZW50LmNvb2tpZSAmJiBkb2N1bWVudC5jb29raWUgIT09ICcnKSB7XHJcblx0XHRjb25zdCBjb29raWVTdHJpbmdzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JylcclxuXHRcdGNvb2tpZVN0cmluZ3MuZm9yRWFjaChjb29raWVTdHJpbmcgPT4ge1xyXG5cdFx0XHRjb25zdCBjb29raWVQYXJ0cyA9IGNvb2tpZVN0cmluZy5zcGxpdCgnPScpXHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0Y29uc3QgbmFtZSA9IGRlY29kZVVSSUNvbXBvbmVudChjb29raWVQYXJ0c1swXS5yZXBsYWNlKC9eIC8sICcnKSlcclxuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChjb29raWVQYXJ0c1sxXSlcclxuXHRcdFx0XHRjb29raWVzW25hbWVdID0gdmFsdWVcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihgRmFpbGVkIHRvIGRlY29kZSBjb29raWUgXCIke2Nvb2tpZVBhcnRzWzBdfVwiLiAke2Vycm9yfWApXHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cdHJldHVybiBjb29raWVzXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBdUMsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLENBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBRXZDO0FBQ08sTUFBTWtCLFVBQVUsR0FBR0EsQ0FBQSxLQUFNO0VBQy9CLE1BQU1DLE9BQStCLEdBQUcsQ0FBQyxDQUFDO0VBQzFDLElBQUlDLFFBQVEsQ0FBQ0MsTUFBTSxJQUFJRCxRQUFRLENBQUNDLE1BQU0sS0FBSyxFQUFFLEVBQUU7SUFDOUMsTUFBTUMsYUFBYSxHQUFHRixRQUFRLENBQUNDLE1BQU0sQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNoREQsYUFBYSxDQUFDRSxPQUFPLENBQUNDLFlBQVksSUFBSTtNQUNyQyxNQUFNQyxXQUFXLEdBQUdELFlBQVksQ0FBQ0YsS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUMzQyxJQUFJO1FBQ0gsTUFBTUksSUFBSSxHQUFHQyxrQkFBa0IsQ0FBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDRyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU1DLEtBQUssR0FBR0Ysa0JBQWtCLENBQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRFAsT0FBTyxDQUFDUSxJQUFJLENBQUMsR0FBR0csS0FBSztNQUN0QixDQUFDLENBQUMsT0FBT0MsS0FBSyxFQUFFO1FBQ2ZuQyxNQUFNLENBQUNvQyxnQkFBZ0IsQ0FBQyw0QkFBNEJOLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTUssS0FBSyxFQUFFLENBQUM7TUFDakY7SUFDRCxDQUFDLENBQUM7RUFDSDtFQUNBLE9BQU9aLE9BQU87QUFDZixDQUFDO0FBQUFjLE9BQUEsQ0FBQWYsVUFBQSxHQUFBQSxVQUFBIiwiaWdub3JlTGlzdCI6W119
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXRDb29raWVzIiwiY29va2llcyIsImRvY3VtZW50IiwiY29va2llIiwiY29va2llU3RyaW5ncyIsInNwbGl0IiwiZm9yRWFjaCIsImNvb2tpZVN0cmluZyIsImNvb2tpZVBhcnRzIiwibmFtZSIsImRlY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJ2YWx1ZSIsImVycm9yIiwiY2FwdHVyZUV4Y2VwdGlvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY29va2llcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9yZWFjdCdcblxuLyoqIEdldCB0aGUgY29udGVudHMgb2YgYGRvY3VtZW50LmNvb2tpZWAgYXMgYSBSZWNvcmQgd2l0aCBzdHJpbmcga2V5cyBhbmQgdmFsdWVzLiAqL1xuZXhwb3J0IGNvbnN0IGdldENvb2tpZXMgPSAoKSA9PiB7XG5cdGNvbnN0IGNvb2tpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuXHRpZiAoZG9jdW1lbnQuY29va2llICYmIGRvY3VtZW50LmNvb2tpZSAhPT0gJycpIHtcblx0XHRjb25zdCBjb29raWVTdHJpbmdzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jylcblx0XHRjb29raWVTdHJpbmdzLmZvckVhY2goY29va2llU3RyaW5nID0+IHtcblx0XHRcdGNvbnN0IGNvb2tpZVBhcnRzID0gY29va2llU3RyaW5nLnNwbGl0KCc9Jylcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IG5hbWUgPSBkZWNvZGVVUklDb21wb25lbnQoY29va2llUGFydHNbMF0ucmVwbGFjZSgvXiAvLCAnJykpXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZVBhcnRzWzFdKVxuXHRcdFx0XHRjb29raWVzW25hbWVdID0gdmFsdWVcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFNlbnRyeS5jYXB0dXJlRXhjZXB0aW9uKGBGYWlsZWQgdG8gZGVjb2RlIGNvb2tpZSBcIiR7Y29va2llUGFydHNbMF19XCIuICR7ZXJyb3J9YClcblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHJldHVybiBjb29raWVzXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUF1QyxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsQ0FBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFFdkM7QUFDTyxNQUFNa0IsVUFBVSxHQUFHQSxDQUFBLEtBQU07RUFDL0IsTUFBTUMsT0FBK0IsR0FBRyxDQUFDLENBQUM7RUFDMUMsSUFBSUMsUUFBUSxDQUFDQyxNQUFNLElBQUlELFFBQVEsQ0FBQ0MsTUFBTSxLQUFLLEVBQUUsRUFBRTtJQUM5QyxNQUFNQyxhQUFhLEdBQUdGLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ2hERCxhQUFhLENBQUNFLE9BQU8sQ0FBQ0MsWUFBWSxJQUFJO01BQ3JDLE1BQU1DLFdBQVcsR0FBR0QsWUFBWSxDQUFDRixLQUFLLENBQUMsR0FBRyxDQUFDO01BQzNDLElBQUk7UUFDSCxNQUFNSSxJQUFJLEdBQUdDLGtCQUFrQixDQUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUNHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTUMsS0FBSyxHQUFHRixrQkFBa0IsQ0FBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hEUCxPQUFPLENBQUNRLElBQUksQ0FBQyxHQUFHRyxLQUFLO01BQ3RCLENBQUMsQ0FBQyxPQUFPQyxLQUFLLEVBQUU7UUFDZm5DLE1BQU0sQ0FBQ29DLGdCQUFnQixDQUFDLDRCQUE0Qk4sV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNSyxLQUFLLEVBQUUsQ0FBQztNQUNqRjtJQUNELENBQUMsQ0FBQztFQUNIO0VBQ0EsT0FBT1osT0FBTztBQUNmLENBQUM7QUFBQWMsT0FBQSxDQUFBZixVQUFBLEdBQUFBLFVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=