@decaf-ts/integrations 0.14.3 → 0.15.3

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 (1165) hide show
  1. package/LICENSE.md +373 -21
  2. package/dist/integrations.cjs +2 -3317
  3. package/dist/integrations.cjs.map +1 -0
  4. package/dist/integrations.js +2 -3665
  5. package/dist/integrations.js.map +1 -0
  6. package/jest.config.cjs +0 -1
  7. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
  8. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +1 -0
  9. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  10. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  11. package/lib/cjs/blob/azure/index.cjs +2 -2
  12. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  13. package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
  14. package/lib/cjs/blob/core/BlobEnvironment.cjs.map +1 -0
  15. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  16. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  17. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  18. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  19. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  20. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  21. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  22. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  23. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  24. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  25. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  26. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  27. package/lib/cjs/blob/core/index.cjs +2 -2
  28. package/lib/cjs/blob/core/index.cjs.map +1 -0
  29. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
  30. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +1 -0
  31. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  32. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  33. package/lib/cjs/blob/gcp/index.cjs +2 -2
  34. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  35. package/lib/cjs/blob/index.cjs +2 -2
  36. package/lib/cjs/blob/index.cjs.map +1 -0
  37. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
  38. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +1 -0
  39. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  40. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  41. package/lib/cjs/blob/local/index.cjs +2 -2
  42. package/lib/cjs/blob/local/index.cjs.map +1 -0
  43. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +2 -2
  44. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +1 -0
  45. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  46. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  47. package/lib/cjs/blob/memory/index.cjs +2 -2
  48. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  49. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +2 -2
  50. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +1 -0
  51. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  52. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  53. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
  54. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +1 -0
  55. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  56. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  57. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
  58. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +1 -0
  59. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  60. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  61. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
  62. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -0
  63. package/lib/cjs/blob/s3/index.cjs +2 -2
  64. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  65. package/lib/cjs/calendar/CalendarService.cjs +2 -2
  66. package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
  67. package/lib/cjs/calendar/environment.cjs +2 -2
  68. package/lib/cjs/calendar/environment.cjs.map +1 -0
  69. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
  70. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
  71. package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
  72. package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
  73. package/lib/cjs/calendar/index.cjs +2 -2
  74. package/lib/cjs/calendar/index.cjs.map +1 -0
  75. package/lib/cjs/calendar/types.cjs +2 -2
  76. package/lib/cjs/calendar/types.cjs.map +1 -0
  77. package/lib/cjs/calendar/validators/cron.cjs +2 -2
  78. package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
  79. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
  80. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
  81. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
  82. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
  83. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
  84. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
  85. package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
  86. package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
  87. package/lib/cjs/comms/discord/index.cjs +2 -2
  88. package/lib/cjs/comms/discord/index.cjs.map +1 -0
  89. package/lib/cjs/comms/email/EmailService.cjs +2 -2
  90. package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
  91. package/lib/cjs/comms/email/index.cjs +2 -2
  92. package/lib/cjs/comms/email/index.cjs.map +1 -0
  93. package/lib/cjs/comms/email/mime.cjs +2 -2
  94. package/lib/cjs/comms/email/mime.cjs.map +1 -0
  95. package/lib/cjs/comms/email/smtp.cjs +2 -2
  96. package/lib/cjs/comms/email/smtp.cjs.map +1 -0
  97. package/lib/cjs/comms/environment.cjs +2 -2
  98. package/lib/cjs/comms/environment.cjs.map +1 -0
  99. package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
  100. package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
  101. package/lib/cjs/comms/gmail/index.cjs +2 -2
  102. package/lib/cjs/comms/gmail/index.cjs.map +1 -0
  103. package/lib/cjs/comms/index.cjs +2 -2
  104. package/lib/cjs/comms/index.cjs.map +1 -0
  105. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
  106. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
  107. package/lib/cjs/comms/outlook/index.cjs +2 -2
  108. package/lib/cjs/comms/outlook/index.cjs.map +1 -0
  109. package/lib/cjs/comms/slack/SlackService.cjs +2 -2
  110. package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
  111. package/lib/cjs/comms/slack/index.cjs +2 -2
  112. package/lib/cjs/comms/slack/index.cjs.map +1 -0
  113. package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
  114. package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
  115. package/lib/cjs/comms/teams/index.cjs +2 -2
  116. package/lib/cjs/comms/teams/index.cjs.map +1 -0
  117. package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
  118. package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
  119. package/lib/cjs/comms/telegram/index.cjs +2 -2
  120. package/lib/cjs/comms/telegram/index.cjs.map +1 -0
  121. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
  122. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
  123. package/lib/cjs/comms/whatsapp/index.cjs +2 -2
  124. package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
  125. package/lib/cjs/devops/environment.cjs +2 -2
  126. package/lib/cjs/devops/environment.cjs.map +1 -0
  127. package/lib/cjs/devops/github/GithubService.cjs +2 -2
  128. package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
  129. package/lib/cjs/devops/github/index.cjs +2 -2
  130. package/lib/cjs/devops/github/index.cjs.map +1 -0
  131. package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
  132. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
  133. package/lib/cjs/devops/gitlab/index.cjs +2 -2
  134. package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
  135. package/lib/cjs/devops/index.cjs +2 -2
  136. package/lib/cjs/devops/index.cjs.map +1 -0
  137. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  138. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
  139. package/lib/cjs/docker/index.cjs +2 -2
  140. package/lib/cjs/docker/index.cjs.map +1 -0
  141. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
  142. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +1 -0
  143. package/lib/cjs/feature-flags/constants.cjs +2 -2
  144. package/lib/cjs/feature-flags/constants.cjs.map +1 -0
  145. package/lib/cjs/feature-flags/decorators.cjs +2 -2
  146. package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
  147. package/lib/cjs/feature-flags/environment.cjs +2 -2
  148. package/lib/cjs/feature-flags/environment.cjs.map +1 -0
  149. package/lib/cjs/feature-flags/index.cjs +2 -2
  150. package/lib/cjs/feature-flags/index.cjs.map +1 -0
  151. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
  152. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
  153. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
  154. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
  155. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
  156. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
  157. package/lib/cjs/feature-flags/readers/index.cjs +2 -2
  158. package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
  159. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +3 -2
  160. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
  161. package/lib/cjs/feature-flags/types.cjs +2 -2
  162. package/lib/cjs/feature-flags/types.cjs.map +1 -0
  163. package/lib/cjs/feature-flags/utils.cjs +2 -2
  164. package/lib/cjs/feature-flags/utils.cjs.map +1 -0
  165. package/lib/cjs/index.cjs +5 -5
  166. package/lib/cjs/index.cjs.map +1 -0
  167. package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
  168. package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
  169. package/lib/cjs/io/airtable/index.cjs +2 -2
  170. package/lib/cjs/io/airtable/index.cjs.map +1 -0
  171. package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
  172. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
  173. package/lib/cjs/io/confluence/index.cjs +2 -2
  174. package/lib/cjs/io/confluence/index.cjs.map +1 -0
  175. package/lib/cjs/io/environment.cjs +2 -2
  176. package/lib/cjs/io/environment.cjs.map +1 -0
  177. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
  178. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
  179. package/lib/cjs/io/google-docs/index.cjs +2 -2
  180. package/lib/cjs/io/google-docs/index.cjs.map +1 -0
  181. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
  182. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
  183. package/lib/cjs/io/google-sheets/index.cjs +2 -2
  184. package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
  185. package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
  186. package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
  187. package/lib/cjs/io/graphql/index.cjs +2 -2
  188. package/lib/cjs/io/graphql/index.cjs.map +1 -0
  189. package/lib/cjs/io/index.cjs +2 -2
  190. package/lib/cjs/io/index.cjs.map +1 -0
  191. package/lib/cjs/io/jira/JiraService.cjs +2 -2
  192. package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
  193. package/lib/cjs/io/jira/index.cjs +2 -2
  194. package/lib/cjs/io/jira/index.cjs.map +1 -0
  195. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
  196. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
  197. package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
  198. package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
  199. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
  200. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
  201. package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
  202. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
  203. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
  204. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
  205. package/lib/cjs/io/spreadsheet/index.cjs +2 -2
  206. package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
  207. package/lib/cjs/keycloak/broker.cjs +2 -2
  208. package/lib/cjs/keycloak/broker.cjs.map +1 -0
  209. package/lib/cjs/keycloak/index.cjs +2 -2
  210. package/lib/cjs/keycloak/index.cjs.map +1 -0
  211. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  212. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
  213. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  214. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
  215. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  216. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
  217. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  218. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
  219. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  220. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
  221. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  222. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
  223. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  224. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
  225. package/lib/cjs/keycloak/services/index.cjs +2 -2
  226. package/lib/cjs/keycloak/services/index.cjs.map +1 -0
  227. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  228. package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
  229. package/lib/cjs/keycloak/types.cjs +2 -2
  230. package/lib/cjs/keycloak/types.cjs.map +1 -0
  231. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
  232. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
  233. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
  234. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
  235. package/lib/cjs/kibana/builders/index.cjs +2 -2
  236. package/lib/cjs/kibana/builders/index.cjs.map +1 -0
  237. package/lib/cjs/kibana/helpers.cjs +2 -2
  238. package/lib/cjs/kibana/helpers.cjs.map +1 -0
  239. package/lib/cjs/kibana/index.cjs +2 -2
  240. package/lib/cjs/kibana/index.cjs.map +1 -0
  241. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  242. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
  243. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  244. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
  245. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  246. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
  247. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  248. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
  249. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  250. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
  251. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  252. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
  253. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  254. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
  255. package/lib/cjs/kibana/services/index.cjs +2 -2
  256. package/lib/cjs/kibana/services/index.cjs.map +1 -0
  257. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  258. package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
  259. package/lib/cjs/kibana/types.cjs +2 -2
  260. package/lib/cjs/kibana/types.cjs.map +1 -0
  261. package/lib/cjs/loader/ObjectLoader.cjs +2 -2
  262. package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
  263. package/lib/cjs/loader/assets.cjs +2 -2
  264. package/lib/cjs/loader/assets.cjs.map +1 -0
  265. package/lib/cjs/loader/config.cjs +2 -2
  266. package/lib/cjs/loader/config.cjs.map +1 -0
  267. package/lib/cjs/loader/families.cjs +2 -2
  268. package/lib/cjs/loader/families.cjs.map +1 -0
  269. package/lib/cjs/loader/index.cjs +2 -2
  270. package/lib/cjs/loader/index.cjs.map +1 -0
  271. package/lib/cjs/loader/nest.cjs +2 -2
  272. package/lib/cjs/loader/nest.cjs.map +1 -0
  273. package/lib/cjs/loader/types.cjs +2 -2
  274. package/lib/cjs/loader/types.cjs.map +1 -0
  275. package/lib/cjs/namespaces/index.cjs +2 -2
  276. package/lib/cjs/namespaces/index.cjs.map +1 -0
  277. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  278. package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
  279. package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
  280. package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
  281. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  282. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
  283. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  284. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
  285. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  286. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
  287. package/lib/cjs/namespaces/models/index.cjs +2 -2
  288. package/lib/cjs/namespaces/models/index.cjs.map +1 -0
  289. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  290. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
  291. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  292. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
  293. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  294. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
  295. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  296. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
  297. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  298. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
  299. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  300. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
  301. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  302. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
  303. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  304. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
  305. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  306. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
  307. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  308. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
  309. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  310. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
  311. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  312. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
  313. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  314. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
  315. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  316. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
  317. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  318. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
  319. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  320. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
  321. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  322. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
  323. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  324. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
  325. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  326. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
  327. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  328. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
  329. package/lib/cjs/namespaces/rls/index.cjs +2 -2
  330. package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
  331. package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
  332. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
  333. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
  334. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
  335. package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
  336. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
  337. package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
  338. package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
  339. package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
  340. package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
  341. package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
  342. package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
  343. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  344. package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
  345. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  346. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
  347. package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
  348. package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
  349. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  350. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
  351. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  352. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
  353. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  354. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
  355. package/lib/cjs/namespaces/services/index.cjs +2 -2
  356. package/lib/cjs/namespaces/services/index.cjs.map +1 -0
  357. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  358. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
  359. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  360. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
  361. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  362. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
  363. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  364. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
  365. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  366. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
  367. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  368. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
  369. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  370. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
  371. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  372. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
  373. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  374. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
  375. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  376. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
  377. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  378. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
  379. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  380. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
  381. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  382. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
  383. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  384. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
  385. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  386. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
  387. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  388. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
  389. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  390. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
  391. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  392. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
  393. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  394. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
  395. package/lib/cjs/namespaces/types.cjs +2 -2
  396. package/lib/cjs/namespaces/types.cjs.map +1 -0
  397. package/lib/cjs/namespaces/utils.cjs +2 -2
  398. package/lib/cjs/namespaces/utils.cjs.map +1 -0
  399. package/lib/cjs/nest/decorators.cjs +2 -2
  400. package/lib/cjs/nest/decorators.cjs.map +1 -0
  401. package/lib/cjs/nest/index.cjs +2 -2
  402. package/lib/cjs/nest/index.cjs.map +1 -0
  403. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  404. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
  405. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  406. package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
  407. package/lib/cjs/nest/logging.cjs +2 -2
  408. package/lib/cjs/nest/logging.cjs.map +1 -0
  409. package/lib/cjs/nest/types.cjs +2 -2
  410. package/lib/cjs/nest/types.cjs.map +1 -0
  411. package/lib/cjs/nest/utils.cjs +2 -2
  412. package/lib/cjs/nest/utils.cjs.map +1 -0
  413. package/lib/cjs/plugins/contract.cjs +2 -2
  414. package/lib/cjs/plugins/contract.cjs.map +1 -0
  415. package/lib/cjs/plugins/index.cjs +2 -2
  416. package/lib/cjs/plugins/index.cjs.map +1 -0
  417. package/lib/cjs/plugins/kibana/host.cjs +2 -2
  418. package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
  419. package/lib/cjs/plugins/kibana/index.cjs +2 -2
  420. package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
  421. package/lib/cjs/plugins/kibana/installer.cjs +2 -2
  422. package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
  423. package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
  424. package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
  425. package/lib/cjs/plugins/kibana/templates.cjs +2 -2
  426. package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
  427. package/lib/cjs/plugins/kibana/types.cjs +2 -2
  428. package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
  429. package/lib/cjs/plugins/superset/host.cjs +2 -2
  430. package/lib/cjs/plugins/superset/host.cjs.map +1 -0
  431. package/lib/cjs/plugins/superset/index.cjs +2 -2
  432. package/lib/cjs/plugins/superset/index.cjs.map +1 -0
  433. package/lib/cjs/plugins/superset/installer.cjs +2 -2
  434. package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
  435. package/lib/cjs/plugins/superset/manifest.cjs +2 -2
  436. package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
  437. package/lib/cjs/plugins/superset/templates.cjs +2 -2
  438. package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
  439. package/lib/cjs/plugins/superset/types.cjs +2 -2
  440. package/lib/cjs/plugins/superset/types.cjs.map +1 -0
  441. package/lib/cjs/redis/RedisContextLock.cjs +2 -2
  442. package/lib/cjs/redis/RedisContextLock.cjs.map +1 -0
  443. package/lib/cjs/redis/RedisDispatch.cjs +2 -2
  444. package/lib/cjs/redis/RedisDispatch.cjs.map +1 -0
  445. package/lib/cjs/redis/RedisPaginator.cjs +2 -2
  446. package/lib/cjs/redis/RedisPaginator.cjs.map +1 -0
  447. package/lib/cjs/redis/RedisStatement.cjs +2 -2
  448. package/lib/cjs/redis/RedisStatement.cjs.map +1 -0
  449. package/lib/cjs/redis/adapter.cjs +2 -2
  450. package/lib/cjs/redis/adapter.cjs.map +1 -0
  451. package/lib/cjs/redis/constants.cjs +2 -2
  452. package/lib/cjs/redis/constants.cjs.map +1 -0
  453. package/lib/cjs/redis/handlers.cjs +2 -2
  454. package/lib/cjs/redis/handlers.cjs.map +1 -0
  455. package/lib/cjs/redis/index.cjs +2 -2
  456. package/lib/cjs/redis/index.cjs.map +1 -0
  457. package/lib/cjs/redis/serialization.cjs +2 -2
  458. package/lib/cjs/redis/serialization.cjs.map +1 -0
  459. package/lib/cjs/redis/types.cjs +2 -2
  460. package/lib/cjs/redis/types.cjs.map +1 -0
  461. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
  462. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
  463. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
  464. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +1 -0
  465. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  466. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
  467. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  468. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
  469. package/lib/cjs/secrets/aws/index.cjs +2 -2
  470. package/lib/cjs/secrets/aws/index.cjs.map +1 -0
  471. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  472. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
  473. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  474. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
  475. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
  476. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +1 -0
  477. package/lib/cjs/secrets/azure/index.cjs +2 -2
  478. package/lib/cjs/secrets/azure/index.cjs.map +1 -0
  479. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
  480. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +1 -0
  481. package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
  482. package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +1 -0
  483. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  484. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
  485. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  486. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
  487. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  488. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
  489. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  490. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
  491. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  492. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
  493. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  494. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
  495. package/lib/cjs/secrets/core/index.cjs +2 -2
  496. package/lib/cjs/secrets/core/index.cjs.map +1 -0
  497. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
  498. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
  499. package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
  500. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
  501. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
  502. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
  503. package/lib/cjs/secrets/fs/index.cjs +2 -2
  504. package/lib/cjs/secrets/fs/index.cjs.map +1 -0
  505. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
  506. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +1 -0
  507. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  508. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
  509. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  510. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
  511. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  512. package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
  513. package/lib/cjs/secrets/index.cjs +2 -2
  514. package/lib/cjs/secrets/index.cjs.map +1 -0
  515. package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +2 -2
  516. package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs.map +1 -0
  517. package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +2 -2
  518. package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs.map +1 -0
  519. package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +2 -2
  520. package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs.map +1 -0
  521. package/lib/cjs/secrets/kubernetes/index.cjs +2 -2
  522. package/lib/cjs/secrets/kubernetes/index.cjs.map +1 -0
  523. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  524. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
  525. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
  526. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +1 -0
  527. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  528. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
  529. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  530. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
  531. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  532. package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
  533. package/lib/cjs/secrets/model/index.cjs +2 -2
  534. package/lib/cjs/secrets/model/index.cjs.map +1 -0
  535. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
  536. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +1 -0
  537. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  538. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
  539. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  540. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
  541. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  542. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
  543. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
  544. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +1 -0
  545. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  546. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
  547. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  548. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
  549. package/lib/cjs/secrets/vault/index.cjs +2 -2
  550. package/lib/cjs/secrets/vault/index.cjs.map +1 -0
  551. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
  552. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +1 -0
  553. package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
  554. package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +1 -0
  555. package/lib/cjs/sftp/aws/index.cjs +2 -2
  556. package/lib/cjs/sftp/aws/index.cjs.map +1 -0
  557. package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
  558. package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +1 -0
  559. package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
  560. package/lib/cjs/sftp/core/SftpSource.cjs.map +1 -0
  561. package/lib/cjs/sftp/core/index.cjs +2 -2
  562. package/lib/cjs/sftp/core/index.cjs.map +1 -0
  563. package/lib/cjs/sftp/index.cjs +2 -2
  564. package/lib/cjs/sftp/index.cjs.map +1 -0
  565. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
  566. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +1 -0
  567. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
  568. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +1 -0
  569. package/lib/cjs/sftp/ssh2/index.cjs +2 -2
  570. package/lib/cjs/sftp/ssh2/index.cjs.map +1 -0
  571. package/lib/cjs/shared/environmentValue.cjs +2 -2
  572. package/lib/cjs/shared/environmentValue.cjs.map +1 -0
  573. package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
  574. package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
  575. package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
  576. package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
  577. package/lib/cjs/shared/http/index.cjs +2 -2
  578. package/lib/cjs/shared/http/index.cjs.map +1 -0
  579. package/lib/cjs/shared/runtime.cjs +2 -2
  580. package/lib/cjs/shared/runtime.cjs.map +1 -0
  581. package/lib/cjs/user-requests/index.cjs +2 -2
  582. package/lib/cjs/user-requests/index.cjs.map +1 -0
  583. package/lib/cjs/utils.cjs +2 -2
  584. package/lib/cjs/utils.cjs.map +1 -0
  585. package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
  586. package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +1 -0
  587. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  588. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  589. package/lib/esm/blob/azure/index.js +1 -1
  590. package/lib/esm/blob/azure/index.js.map +1 -0
  591. package/lib/esm/blob/core/BlobEnvironment.js +1 -1
  592. package/lib/esm/blob/core/BlobEnvironment.js.map +1 -0
  593. package/lib/esm/blob/core/BlobErrors.js +1 -1
  594. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  595. package/lib/esm/blob/core/BlobKey.js +1 -1
  596. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  597. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  598. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  599. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  600. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  601. package/lib/esm/blob/core/BlobTypes.js +1 -1
  602. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  603. package/lib/esm/blob/core/BlobValue.js +1 -1
  604. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  605. package/lib/esm/blob/core/index.js +1 -1
  606. package/lib/esm/blob/core/index.js.map +1 -0
  607. package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
  608. package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +1 -0
  609. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  610. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  611. package/lib/esm/blob/gcp/index.js +1 -1
  612. package/lib/esm/blob/gcp/index.js.map +1 -0
  613. package/lib/esm/blob/index.js +1 -1
  614. package/lib/esm/blob/index.js.map +1 -0
  615. package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
  616. package/lib/esm/blob/local/LocalBlobEnvironment.js.map +1 -0
  617. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  618. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  619. package/lib/esm/blob/local/index.js +1 -1
  620. package/lib/esm/blob/local/index.js.map +1 -0
  621. package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
  622. package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +1 -0
  623. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  624. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  625. package/lib/esm/blob/memory/index.js +1 -1
  626. package/lib/esm/blob/memory/index.js.map +1 -0
  627. package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
  628. package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +1 -0
  629. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  630. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  631. package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
  632. package/lib/esm/blob/s3/R2BlobEnvironment.js.map +1 -0
  633. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  634. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  635. package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
  636. package/lib/esm/blob/s3/S3BlobEnvironment.js.map +1 -0
  637. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  638. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  639. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
  640. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -0
  641. package/lib/esm/blob/s3/index.js +1 -1
  642. package/lib/esm/blob/s3/index.js.map +1 -0
  643. package/lib/esm/calendar/CalendarService.js +1 -1
  644. package/lib/esm/calendar/CalendarService.js.map +1 -0
  645. package/lib/esm/calendar/environment.js +1 -1
  646. package/lib/esm/calendar/environment.js.map +1 -0
  647. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
  648. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
  649. package/lib/esm/calendar/google-calendar/index.js +1 -1
  650. package/lib/esm/calendar/google-calendar/index.js.map +1 -0
  651. package/lib/esm/calendar/index.js +1 -1
  652. package/lib/esm/calendar/index.js.map +1 -0
  653. package/lib/esm/calendar/types.js +1 -1
  654. package/lib/esm/calendar/types.js.map +1 -0
  655. package/lib/esm/calendar/validators/cron.js +1 -1
  656. package/lib/esm/calendar/validators/cron.js.map +1 -0
  657. package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
  658. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
  659. package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
  660. package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
  661. package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
  662. package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
  663. package/lib/esm/comms/discord/DiscordService.js +1 -1
  664. package/lib/esm/comms/discord/DiscordService.js.map +1 -0
  665. package/lib/esm/comms/discord/index.js +1 -1
  666. package/lib/esm/comms/discord/index.js.map +1 -0
  667. package/lib/esm/comms/email/EmailService.js +1 -1
  668. package/lib/esm/comms/email/EmailService.js.map +1 -0
  669. package/lib/esm/comms/email/index.js +1 -1
  670. package/lib/esm/comms/email/index.js.map +1 -0
  671. package/lib/esm/comms/email/mime.js +1 -1
  672. package/lib/esm/comms/email/mime.js.map +1 -0
  673. package/lib/esm/comms/email/smtp.js +1 -1
  674. package/lib/esm/comms/email/smtp.js.map +1 -0
  675. package/lib/esm/comms/environment.js +1 -1
  676. package/lib/esm/comms/environment.js.map +1 -0
  677. package/lib/esm/comms/gmail/GmailService.js +1 -1
  678. package/lib/esm/comms/gmail/GmailService.js.map +1 -0
  679. package/lib/esm/comms/gmail/index.js +1 -1
  680. package/lib/esm/comms/gmail/index.js.map +1 -0
  681. package/lib/esm/comms/index.js +1 -1
  682. package/lib/esm/comms/index.js.map +1 -0
  683. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
  684. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
  685. package/lib/esm/comms/outlook/index.js +1 -1
  686. package/lib/esm/comms/outlook/index.js.map +1 -0
  687. package/lib/esm/comms/slack/SlackService.js +1 -1
  688. package/lib/esm/comms/slack/SlackService.js.map +1 -0
  689. package/lib/esm/comms/slack/index.js +1 -1
  690. package/lib/esm/comms/slack/index.js.map +1 -0
  691. package/lib/esm/comms/teams/TeamsService.js +1 -1
  692. package/lib/esm/comms/teams/TeamsService.js.map +1 -0
  693. package/lib/esm/comms/teams/index.js +1 -1
  694. package/lib/esm/comms/teams/index.js.map +1 -0
  695. package/lib/esm/comms/telegram/TelegramService.js +1 -1
  696. package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
  697. package/lib/esm/comms/telegram/index.js +1 -1
  698. package/lib/esm/comms/telegram/index.js.map +1 -0
  699. package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
  700. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
  701. package/lib/esm/comms/whatsapp/index.js +1 -1
  702. package/lib/esm/comms/whatsapp/index.js.map +1 -0
  703. package/lib/esm/devops/environment.js +1 -1
  704. package/lib/esm/devops/environment.js.map +1 -0
  705. package/lib/esm/devops/github/GithubService.js +1 -1
  706. package/lib/esm/devops/github/GithubService.js.map +1 -0
  707. package/lib/esm/devops/github/index.js +1 -1
  708. package/lib/esm/devops/github/index.js.map +1 -0
  709. package/lib/esm/devops/gitlab/GitlabService.js +1 -1
  710. package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
  711. package/lib/esm/devops/gitlab/index.js +1 -1
  712. package/lib/esm/devops/gitlab/index.js.map +1 -0
  713. package/lib/esm/devops/index.js +1 -1
  714. package/lib/esm/devops/index.js.map +1 -0
  715. package/lib/esm/docker/DockerComposeService.js +1 -1
  716. package/lib/esm/docker/DockerComposeService.js.map +1 -0
  717. package/lib/esm/docker/index.js +1 -1
  718. package/lib/esm/docker/index.js.map +1 -0
  719. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
  720. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +1 -0
  721. package/lib/esm/feature-flags/constants.js +1 -1
  722. package/lib/esm/feature-flags/constants.js.map +1 -0
  723. package/lib/esm/feature-flags/decorators.js +1 -1
  724. package/lib/esm/feature-flags/decorators.js.map +1 -0
  725. package/lib/esm/feature-flags/environment.js +1 -1
  726. package/lib/esm/feature-flags/environment.js.map +1 -0
  727. package/lib/esm/feature-flags/index.js +1 -1
  728. package/lib/esm/feature-flags/index.js.map +1 -0
  729. package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
  730. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
  731. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
  732. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
  733. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
  734. package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
  735. package/lib/esm/feature-flags/readers/index.js +1 -1
  736. package/lib/esm/feature-flags/readers/index.js.map +1 -0
  737. package/lib/esm/feature-flags/services/FeatureFlag.service.js +2 -1
  738. package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
  739. package/lib/esm/feature-flags/types.js +1 -1
  740. package/lib/esm/feature-flags/types.js.map +1 -0
  741. package/lib/esm/feature-flags/utils.js +1 -1
  742. package/lib/esm/feature-flags/utils.js.map +1 -0
  743. package/lib/esm/index.js +4 -4
  744. package/lib/esm/index.js.map +1 -0
  745. package/lib/esm/io/airtable/AirtableService.js +1 -1
  746. package/lib/esm/io/airtable/AirtableService.js.map +1 -0
  747. package/lib/esm/io/airtable/index.js +1 -1
  748. package/lib/esm/io/airtable/index.js.map +1 -0
  749. package/lib/esm/io/confluence/ConfluenceService.js +1 -1
  750. package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
  751. package/lib/esm/io/confluence/index.js +1 -1
  752. package/lib/esm/io/confluence/index.js.map +1 -0
  753. package/lib/esm/io/environment.js +1 -1
  754. package/lib/esm/io/environment.js.map +1 -0
  755. package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
  756. package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
  757. package/lib/esm/io/google-docs/index.js +1 -1
  758. package/lib/esm/io/google-docs/index.js.map +1 -0
  759. package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
  760. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
  761. package/lib/esm/io/google-sheets/index.js +1 -1
  762. package/lib/esm/io/google-sheets/index.js.map +1 -0
  763. package/lib/esm/io/graphql/GraphqlService.js +1 -1
  764. package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
  765. package/lib/esm/io/graphql/index.js +1 -1
  766. package/lib/esm/io/graphql/index.js.map +1 -0
  767. package/lib/esm/io/index.js +1 -1
  768. package/lib/esm/io/index.js.map +1 -0
  769. package/lib/esm/io/jira/JiraService.js +1 -1
  770. package/lib/esm/io/jira/JiraService.js.map +1 -0
  771. package/lib/esm/io/jira/index.js +1 -1
  772. package/lib/esm/io/jira/index.js.map +1 -0
  773. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
  774. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
  775. package/lib/esm/io/microsoft-excel/index.js +1 -1
  776. package/lib/esm/io/microsoft-excel/index.js.map +1 -0
  777. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
  778. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
  779. package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
  780. package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
  781. package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
  782. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
  783. package/lib/esm/io/spreadsheet/index.js +1 -1
  784. package/lib/esm/io/spreadsheet/index.js.map +1 -0
  785. package/lib/esm/keycloak/broker.js +1 -1
  786. package/lib/esm/keycloak/broker.js.map +1 -0
  787. package/lib/esm/keycloak/index.js +1 -1
  788. package/lib/esm/keycloak/index.js.map +1 -0
  789. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  790. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
  791. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  792. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
  793. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  794. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
  795. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  796. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
  797. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  798. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
  799. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  800. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
  801. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  802. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
  803. package/lib/esm/keycloak/services/index.js +1 -1
  804. package/lib/esm/keycloak/services/index.js.map +1 -0
  805. package/lib/esm/keycloak/services/runtime.js +1 -1
  806. package/lib/esm/keycloak/services/runtime.js.map +1 -0
  807. package/lib/esm/keycloak/types.js +1 -1
  808. package/lib/esm/keycloak/types.js.map +1 -0
  809. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
  810. package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
  811. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
  812. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
  813. package/lib/esm/kibana/builders/index.js +1 -1
  814. package/lib/esm/kibana/builders/index.js.map +1 -0
  815. package/lib/esm/kibana/helpers.js +1 -1
  816. package/lib/esm/kibana/helpers.js.map +1 -0
  817. package/lib/esm/kibana/index.js +1 -1
  818. package/lib/esm/kibana/index.js.map +1 -0
  819. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  820. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
  821. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  822. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
  823. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  824. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
  825. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  826. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
  827. package/lib/esm/kibana/services/KibanaService.js +1 -1
  828. package/lib/esm/kibana/services/KibanaService.js.map +1 -0
  829. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  830. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
  831. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  832. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
  833. package/lib/esm/kibana/services/index.js +1 -1
  834. package/lib/esm/kibana/services/index.js.map +1 -0
  835. package/lib/esm/kibana/services/runtime.js +1 -1
  836. package/lib/esm/kibana/services/runtime.js.map +1 -0
  837. package/lib/esm/kibana/types.js +1 -1
  838. package/lib/esm/kibana/types.js.map +1 -0
  839. package/lib/esm/loader/ObjectLoader.js +1 -1
  840. package/lib/esm/loader/ObjectLoader.js.map +1 -0
  841. package/lib/esm/loader/assets.js +1 -1
  842. package/lib/esm/loader/assets.js.map +1 -0
  843. package/lib/esm/loader/config.js +1 -1
  844. package/lib/esm/loader/config.js.map +1 -0
  845. package/lib/esm/loader/families.js +1 -1
  846. package/lib/esm/loader/families.js.map +1 -0
  847. package/lib/esm/loader/index.js +1 -1
  848. package/lib/esm/loader/index.js.map +1 -0
  849. package/lib/esm/loader/nest.js +1 -1
  850. package/lib/esm/loader/nest.js.map +1 -0
  851. package/lib/esm/loader/types.js +1 -1
  852. package/lib/esm/loader/types.js.map +1 -0
  853. package/lib/esm/namespaces/index.js +1 -1
  854. package/lib/esm/namespaces/index.js.map +1 -0
  855. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  856. package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
  857. package/lib/esm/namespaces/models/credential.model.js +1 -1
  858. package/lib/esm/namespaces/models/credential.model.js.map +1 -0
  859. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  860. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
  861. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  862. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
  863. package/lib/esm/namespaces/models/group.model.js +1 -1
  864. package/lib/esm/namespaces/models/group.model.js.map +1 -0
  865. package/lib/esm/namespaces/models/index.js +1 -1
  866. package/lib/esm/namespaces/models/index.js.map +1 -0
  867. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  868. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
  869. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  870. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
  871. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  872. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
  873. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  874. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
  875. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  876. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
  877. package/lib/esm/namespaces/models/permission.model.js +1 -1
  878. package/lib/esm/namespaces/models/permission.model.js.map +1 -0
  879. package/lib/esm/namespaces/models/principal.model.js +1 -1
  880. package/lib/esm/namespaces/models/principal.model.js.map +1 -0
  881. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  882. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
  883. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  884. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
  885. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  886. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
  887. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  888. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
  889. package/lib/esm/namespaces/models/role.model.js +1 -1
  890. package/lib/esm/namespaces/models/role.model.js.map +1 -0
  891. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  892. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
  893. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  894. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
  895. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  896. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
  897. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  898. package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
  899. package/lib/esm/namespaces/models/user.model.js +1 -1
  900. package/lib/esm/namespaces/models/user.model.js.map +1 -0
  901. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  902. package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
  903. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  904. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
  905. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  906. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
  907. package/lib/esm/namespaces/rls/index.js +1 -1
  908. package/lib/esm/namespaces/rls/index.js.map +1 -0
  909. package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
  910. package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
  911. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
  912. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
  913. package/lib/esm/namespaces/rls/rls.constants.js +1 -1
  914. package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
  915. package/lib/esm/namespaces/rls/rls.template.js +1 -1
  916. package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
  917. package/lib/esm/namespaces/rls/rls.types.js +1 -1
  918. package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
  919. package/lib/esm/namespaces/rls/session-binding.js +1 -1
  920. package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
  921. package/lib/esm/namespaces/services/authz.service.js +1 -1
  922. package/lib/esm/namespaces/services/authz.service.js.map +1 -0
  923. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  924. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
  925. package/lib/esm/namespaces/services/credential.service.js +1 -1
  926. package/lib/esm/namespaces/services/credential.service.js.map +1 -0
  927. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  928. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
  929. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  930. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
  931. package/lib/esm/namespaces/services/group.service.js +1 -1
  932. package/lib/esm/namespaces/services/group.service.js.map +1 -0
  933. package/lib/esm/namespaces/services/index.js +1 -1
  934. package/lib/esm/namespaces/services/index.js.map +1 -0
  935. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  936. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
  937. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  938. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
  939. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  940. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
  941. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  942. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
  943. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  944. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
  945. package/lib/esm/namespaces/services/permission.service.js +1 -1
  946. package/lib/esm/namespaces/services/permission.service.js.map +1 -0
  947. package/lib/esm/namespaces/services/principal.service.js +1 -1
  948. package/lib/esm/namespaces/services/principal.service.js.map +1 -0
  949. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  950. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
  951. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  952. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
  953. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  954. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
  955. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  956. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
  957. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  958. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
  959. package/lib/esm/namespaces/services/role.service.js +1 -1
  960. package/lib/esm/namespaces/services/role.service.js.map +1 -0
  961. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  962. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
  963. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  964. package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
  965. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  966. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
  967. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  968. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
  969. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  970. package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
  971. package/lib/esm/namespaces/services/user.service.js +1 -1
  972. package/lib/esm/namespaces/services/user.service.js.map +1 -0
  973. package/lib/esm/namespaces/types.js +1 -1
  974. package/lib/esm/namespaces/types.js.map +1 -0
  975. package/lib/esm/namespaces/utils.js +1 -1
  976. package/lib/esm/namespaces/utils.js.map +1 -0
  977. package/lib/esm/nest/decorators.js +1 -1
  978. package/lib/esm/nest/decorators.js.map +1 -0
  979. package/lib/esm/nest/index.js +1 -1
  980. package/lib/esm/nest/index.js.map +1 -0
  981. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  982. package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
  983. package/lib/esm/nest/keycloakModule.js +1 -1
  984. package/lib/esm/nest/keycloakModule.js.map +1 -0
  985. package/lib/esm/nest/logging.js +1 -1
  986. package/lib/esm/nest/logging.js.map +1 -0
  987. package/lib/esm/nest/types.js +1 -1
  988. package/lib/esm/nest/types.js.map +1 -0
  989. package/lib/esm/nest/utils.js +1 -1
  990. package/lib/esm/nest/utils.js.map +1 -0
  991. package/lib/esm/plugins/contract.js +1 -1
  992. package/lib/esm/plugins/contract.js.map +1 -0
  993. package/lib/esm/plugins/index.js +1 -1
  994. package/lib/esm/plugins/index.js.map +1 -0
  995. package/lib/esm/plugins/kibana/host.js +1 -1
  996. package/lib/esm/plugins/kibana/host.js.map +1 -0
  997. package/lib/esm/plugins/kibana/index.js +1 -1
  998. package/lib/esm/plugins/kibana/index.js.map +1 -0
  999. package/lib/esm/plugins/kibana/installer.js +1 -1
  1000. package/lib/esm/plugins/kibana/installer.js.map +1 -0
  1001. package/lib/esm/plugins/kibana/manifest.js +1 -1
  1002. package/lib/esm/plugins/kibana/manifest.js.map +1 -0
  1003. package/lib/esm/plugins/kibana/templates.js +1 -1
  1004. package/lib/esm/plugins/kibana/templates.js.map +1 -0
  1005. package/lib/esm/plugins/kibana/types.js +1 -1
  1006. package/lib/esm/plugins/kibana/types.js.map +1 -0
  1007. package/lib/esm/plugins/superset/host.js +1 -1
  1008. package/lib/esm/plugins/superset/host.js.map +1 -0
  1009. package/lib/esm/plugins/superset/index.js +1 -1
  1010. package/lib/esm/plugins/superset/index.js.map +1 -0
  1011. package/lib/esm/plugins/superset/installer.js +1 -1
  1012. package/lib/esm/plugins/superset/installer.js.map +1 -0
  1013. package/lib/esm/plugins/superset/manifest.js +1 -1
  1014. package/lib/esm/plugins/superset/manifest.js.map +1 -0
  1015. package/lib/esm/plugins/superset/templates.js +1 -1
  1016. package/lib/esm/plugins/superset/templates.js.map +1 -0
  1017. package/lib/esm/plugins/superset/types.js +1 -1
  1018. package/lib/esm/plugins/superset/types.js.map +1 -0
  1019. package/lib/esm/redis/RedisContextLock.js +1 -1
  1020. package/lib/esm/redis/RedisContextLock.js.map +1 -0
  1021. package/lib/esm/redis/RedisDispatch.js +1 -1
  1022. package/lib/esm/redis/RedisDispatch.js.map +1 -0
  1023. package/lib/esm/redis/RedisPaginator.js +1 -1
  1024. package/lib/esm/redis/RedisPaginator.js.map +1 -0
  1025. package/lib/esm/redis/RedisStatement.js +1 -1
  1026. package/lib/esm/redis/RedisStatement.js.map +1 -0
  1027. package/lib/esm/redis/adapter.js +1 -1
  1028. package/lib/esm/redis/adapter.js.map +1 -0
  1029. package/lib/esm/redis/constants.js +1 -1
  1030. package/lib/esm/redis/constants.js.map +1 -0
  1031. package/lib/esm/redis/handlers.js +1 -1
  1032. package/lib/esm/redis/handlers.js.map +1 -0
  1033. package/lib/esm/redis/index.js +1 -1
  1034. package/lib/esm/redis/index.js.map +1 -0
  1035. package/lib/esm/redis/serialization.js +1 -1
  1036. package/lib/esm/redis/serialization.js.map +1 -0
  1037. package/lib/esm/redis/types.js +1 -1
  1038. package/lib/esm/redis/types.js.map +1 -0
  1039. package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
  1040. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
  1041. package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
  1042. package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +1 -0
  1043. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  1044. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
  1045. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  1046. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
  1047. package/lib/esm/secrets/aws/index.js +1 -1
  1048. package/lib/esm/secrets/aws/index.js.map +1 -0
  1049. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  1050. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
  1051. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  1052. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
  1053. package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
  1054. package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +1 -0
  1055. package/lib/esm/secrets/azure/index.js +1 -1
  1056. package/lib/esm/secrets/azure/index.js.map +1 -0
  1057. package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
  1058. package/lib/esm/secrets/core/ClientBasedSecretService.js.map +1 -0
  1059. package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
  1060. package/lib/esm/secrets/core/SecretEnvironment.js.map +1 -0
  1061. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  1062. package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
  1063. package/lib/esm/secrets/core/SecretName.js +1 -1
  1064. package/lib/esm/secrets/core/SecretName.js.map +1 -0
  1065. package/lib/esm/secrets/core/SecretReference.js +1 -1
  1066. package/lib/esm/secrets/core/SecretReference.js.map +1 -0
  1067. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  1068. package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
  1069. package/lib/esm/secrets/core/SecretService.js +1 -1
  1070. package/lib/esm/secrets/core/SecretService.js.map +1 -0
  1071. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  1072. package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
  1073. package/lib/esm/secrets/core/index.js +1 -1
  1074. package/lib/esm/secrets/core/index.js.map +1 -0
  1075. package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
  1076. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
  1077. package/lib/esm/secrets/fs/FsSecretService.js +1 -1
  1078. package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
  1079. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
  1080. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
  1081. package/lib/esm/secrets/fs/index.js +1 -1
  1082. package/lib/esm/secrets/fs/index.js.map +1 -0
  1083. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
  1084. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +1 -0
  1085. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  1086. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
  1087. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  1088. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
  1089. package/lib/esm/secrets/gcp/index.js +1 -1
  1090. package/lib/esm/secrets/gcp/index.js.map +1 -0
  1091. package/lib/esm/secrets/index.js +1 -1
  1092. package/lib/esm/secrets/index.js.map +1 -0
  1093. package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +1 -1
  1094. package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js.map +1 -0
  1095. package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +1 -1
  1096. package/lib/esm/secrets/kubernetes/KubernetesSecretService.js.map +1 -0
  1097. package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +1 -1
  1098. package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js.map +1 -0
  1099. package/lib/esm/secrets/kubernetes/index.js +1 -1
  1100. package/lib/esm/secrets/kubernetes/index.js.map +1 -0
  1101. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  1102. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
  1103. package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
  1104. package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +1 -0
  1105. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  1106. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
  1107. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  1108. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
  1109. package/lib/esm/secrets/model/Secret.js +1 -1
  1110. package/lib/esm/secrets/model/Secret.js.map +1 -0
  1111. package/lib/esm/secrets/model/index.js +1 -1
  1112. package/lib/esm/secrets/model/index.js.map +1 -0
  1113. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
  1114. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +1 -0
  1115. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  1116. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
  1117. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  1118. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
  1119. package/lib/esm/secrets/onepassword/index.js +1 -1
  1120. package/lib/esm/secrets/onepassword/index.js.map +1 -0
  1121. package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
  1122. package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +1 -0
  1123. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  1124. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
  1125. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  1126. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
  1127. package/lib/esm/secrets/vault/index.js +1 -1
  1128. package/lib/esm/secrets/vault/index.js.map +1 -0
  1129. package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
  1130. package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +1 -0
  1131. package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
  1132. package/lib/esm/sftp/aws/AwsSftpService.js.map +1 -0
  1133. package/lib/esm/sftp/aws/index.js +1 -1
  1134. package/lib/esm/sftp/aws/index.js.map +1 -0
  1135. package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
  1136. package/lib/esm/sftp/core/SftpEnvironment.js.map +1 -0
  1137. package/lib/esm/sftp/core/SftpSource.js +1 -1
  1138. package/lib/esm/sftp/core/SftpSource.js.map +1 -0
  1139. package/lib/esm/sftp/core/index.js +1 -1
  1140. package/lib/esm/sftp/core/index.js.map +1 -0
  1141. package/lib/esm/sftp/index.js +1 -1
  1142. package/lib/esm/sftp/index.js.map +1 -0
  1143. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
  1144. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +1 -0
  1145. package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
  1146. package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +1 -0
  1147. package/lib/esm/sftp/ssh2/index.js +1 -1
  1148. package/lib/esm/sftp/ssh2/index.js.map +1 -0
  1149. package/lib/esm/shared/environmentValue.js +1 -1
  1150. package/lib/esm/shared/environmentValue.js.map +1 -0
  1151. package/lib/esm/shared/http/HttpApiService.js +1 -1
  1152. package/lib/esm/shared/http/HttpApiService.js.map +1 -0
  1153. package/lib/esm/shared/http/hermeticBoot.js +1 -1
  1154. package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
  1155. package/lib/esm/shared/http/index.js +1 -1
  1156. package/lib/esm/shared/http/index.js.map +1 -0
  1157. package/lib/esm/shared/runtime.js +1 -1
  1158. package/lib/esm/shared/runtime.js.map +1 -0
  1159. package/lib/esm/user-requests/index.js +1 -1
  1160. package/lib/esm/user-requests/index.js.map +1 -0
  1161. package/lib/esm/utils.js +1 -1
  1162. package/lib/esm/utils.js.map +1 -0
  1163. package/lib/types/index.d.cts +2 -2
  1164. package/lib/types/index.d.mts +2 -2
  1165. package/package.json +74 -50
@@ -715,5 +715,5 @@ function assertRlsTableCoverage(policySets = exports.NAMESPACE_RLS_POLICY_SETS)
715
715
  throw new db_decorators_1.InternalError(`RLS template is missing tables: ${missing.join(", ")}`);
716
716
  }
717
717
  }
718
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmxzLnRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvcmxzL3Jscy50ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsMkJBQXdCO0FBRXJFLE1BQU0sb0JBQW9CLEdBQUcsbUNBQW1DLENBQUM7QUFFakU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXNCO0lBQ3hEOzs7OzttQ0FLaUMsWUFBWSxDQUFDLFNBQVM7TUFDbkQ7SUFDSjs7Ozs7RUFLQSxvQkFBb0I7Ozs7O01BS2hCO0lBQ0o7Ozs7Ozs7O0VBUUEsb0JBQW9COzs7Ozs7TUFNaEI7SUFDSiwrRUFBK0U7SUFDL0U7Ozs7O0VBS0Esb0JBQW9COzs7OztNQUtoQjtJQUNKOzs7Ozs7Ozs7O0VBVUEsb0JBQW9COzs7Ozs7Ozs7Ozs7O01BYWhCO0lBQ0o7Ozs7Ozs7O0VBUUEsb0JBQW9COzs7Ozs7OztNQVFoQjtJQUNKOzs7Ozs7Ozs7RUFTQSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUJoQjtJQUNKOzs7OztFQUtBLG9CQUFvQjs7Ozs7Ozs7O01BU2hCO0lBQ0o7Ozs7Ozs7O0VBUUEsb0JBQW9COzs7Ozs7Ozs7O01BVWhCO0lBQ0o7Ozs7O0VBS0Esb0JBQW9COzs7OztNQUtoQjtJQUNKOzs7OztFQUtBLG9CQUFvQjs7OztNQUloQjtJQUNKOzs7Ozs7OztFQVFBLG9CQUFvQjs7Ozs7OztNQU9oQjtJQUNKOzs7Ozs7OztFQVFBLG9CQUFvQjs7Ozs7TUFLaEI7SUFDSjs7Ozs7RUFLQSxvQkFBb0I7Ozs7Ozs7Ozs7TUFVaEI7SUFDSjs7Ozs7RUFLQSxvQkFBb0I7OztNQUdoQjtJQUNKOzs7Ozs7OztFQVFBLG9C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Qyx5QkFBeUIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxNQUFNLENBQ3RFLElBQUksRUFDSixVQUFVLENBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLHVCQUF1QixFQUFFLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQXNDLHlCQUF5QjtJQUUvRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxhQUFzQyx5QkFBeUI7SUFFL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckQsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksYUFBYSxDQUNyQixtQ0FBbUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN4RCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL25hbWVzcGFjZXMvcmxzL3RlbXBsYXRlXG4gKiBAc3VtbWFyeSBTUUwgdGVtcGxhdGUgZm9yIHRoZSBuYW1lc3BhY2Ugcm93LWxldmVsLXNlY3VyaXR5IHBvbGljaWVzLlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBhbmQgZW5hYmxlL2ZvcmNlL3BvbGljeSBEREwgdGhhdFxuICogZW5mb3JjZSB0aGUgcmVhZGVyL3dyaXRlci9hZG1pbiBtYXRyaXggYWNyb3NzIHRoZSBuYW1lc3BhY2UgdGFibGVzIGFuZCB0aGVcbiAqIHNsaWNlLTEgY3JlZGVudGlhbC9zZWNyZXQgcmVjb3Jkcy5cbiAqXG4gKiBUaGUgdGVtcGxhdGUgYXNzdW1lcyB0aGUgY2Fub25pY2FsIHNuYWtlX2Nhc2Ugc2NoZW1hIGRvY3VtZW50ZWQgYnkgdGhlXG4gKiBgaW50ZWdyYXRpb25zL3NxbGAgYXJ0aWZhY3RzLiBIZWxwZXIgZnVuY3Rpb25zIGFyZSBgU0VDVVJJVFkgREVGSU5FUmAgc28gdGhlXG4gKiBhdXRob3JpemF0aW9uIGxvb2t1cHMgYnlwYXNzIFJMUyBhbmQgY2Fubm90IHJlY3Vyc2UgdGhyb3VnaCB0aGUgcG9saWNpZXMgdGhleVxuICogaW1wbGVtZW50LiBQcm9kdWN0aW9uIGRlcGxveW1lbnRzIHNob3VsZCBvd24gdGhvc2UgZnVuY3Rpb25zIHdpdGggYSByb2xlIHRoYXRcbiAqIGlzIGFsbG93ZWQgdG8gYnlwYXNzIFJMUyAodGhlIGRhdGFiYXNlIG93bmVyLCBhIGBCWVBBU1NSTFNgIHJvbGUsIG9yIHRoZVxuICogbWlncmF0aW9uIHJvbGUpLlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IFJsc1BvbGljeVNldCB9IGZyb20gXCIuL3Jscy50eXBlc1wiO1xuaW1wb3J0IHsgUkxTX1BST1RFQ1RFRF9UQUJMRVMsIFJMU19TRVRUSU5HUyB9IGZyb20gXCIuL3Jscy5jb25zdGFudHNcIjtcblxuY29uc3QgRlVOQ1RJT05fU0VBUkNIX1BBVEggPSBcIlNFVCBzZWFyY2hfcGF0aCA9IHB1YmxpYywgcGdfdGVtcFwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBIZWxwZXIgZnVuY3Rpb25zIGJhY2tpbmcgdGhlIG5hbWVzcGFjZSBSTFMgcG9saWNpZXMuXG4gKiBAc3VtbWFyeSBFYWNoIGZ1bmN0aW9uIGlzIGlkZW1wb3RlbnRseSBjcmVhdGVkIHdpdGggYENSRUFURSBPUiBSRVBMQUNFYC5cbiAqIGBhcHBfcmxzX3ByaW5jaXBhbF9mb3Jfc3ViamVjdCh0ZXh0LCB1dWlkKWAgaXMgYWRkaXRpb25hbGx5IGBTRUNVUklUWVxuICogREVGSU5FUmAgd2l0aCBgc2VhcmNoX3BhdGhgIHBpbm5lZCB0byBgcHVibGljLCBwZ190ZW1wYCBhbmQgYFJFVk9LRWBkIGZyb21cbiAqIGBQVUJMSUNgOiBpdCBtYXBzIGFuIGF1dGhlbnRpY2F0ZWQgc3ViamVjdCAoYW5kIG9wdGlvbmFsIHRlbmFudCkgdG8gdGhlXG4gKiBzaW5nbGUgbWF0Y2hpbmcgcHJpbmNpcGFsIFVVSUQgLSBvciBgTlVMTGAgd2hlbiB0aGUgbWF0Y2ggaXMgYW1iaWd1b3VzIG9yXG4gKiBhYnNlbnQgLSBhbmQgaXMgY29uc3VtZWQgYnkgcHJpdmlsZWdlZCByZXNvbHZlcnMgc3VjaCBhc1xuICogYHJlc29sdmVQcmluY2lwYWxGb3JTdWJqZWN0YCBmcm9tIGAuL3ByaW5jaXBhbC1yZXNvbHZlcmAuXG4gKi9cbmV4cG9ydCBjb25zdCBSTFNfRlVOQ1RJT05fU1RBVEVNRU5UUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG5SRVRVUk5TIHV1aWRcbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5BUyAkZm4kXG4gIFNFTEVDVCBOVUxMSUYoY3VycmVudF9zZXR0aW5nKCcke1JMU19TRVRUSU5HUy5QcmluY2lwYWx9JywgdHJ1ZSksICcnKTo6dXVpZFxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19zdWJqZWN0X2lkKClcblJFVFVSTlMgdGV4dFxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBwLnN1YmplY3RfaWRcbiAgRlJPTSBwcmluY2lwYWxzIHBcbiAgV0hFUkUgcC5pZCA9IGFwcF9ybHNfcHJpbmNpcGFsX2lkKClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfcHJpbmNpcGFsX2Zvcl9zdWJqZWN0KFxuICBwX3N1YmplY3QgdGV4dCxcbiAgcF90ZW5hbnQgdXVpZCBERUZBVUxUIE5VTExcbilcblJFVFVSTlMgdXVpZFxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBDQVNFIFdIRU4gQ09VTlQoKikgPSAxIFRIRU4gKE1JTihwLmlkOjp0ZXh0KSk6OnV1aWQgRUxTRSBOVUxMIEVORFxuICBGUk9NIHByaW5jaXBhbHMgcFxuICBXSEVSRSBwLnN1YmplY3RfaWQgPSBOVUxMSUYocF9zdWJqZWN0LCAnJylcbiAgICBBTkQgKHBfdGVuYW50IElTIE5VTEwgT1IgcC50ZW5hbnRfaWQgPSBwX3RlbmFudClcbiRmbiQ7YCxcbiAgYFJFVk9LRSBBTEwgT04gRlVOQ1RJT04gYXBwX3Jsc19wcmluY2lwYWxfZm9yX3N1YmplY3QodGV4dCwgdXVpZCkgRlJPTSBQVUJMSUM7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfb3JnX3VuaXRfdGVuYW50KHBfb3JnX3VuaXQgdXVpZClcblJFVFVSTlMgdXVpZFxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBvdS50ZW5hbnRfaWRcbiAgRlJPTSBvcmdfdW5pdHMgb3VcbiAgV0hFUkUgb3UuaWQgPSBwX29yZ191bml0XG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2hhc19wZXJtaXNzaW9uKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX3Blcm1pc3Npb24gdGV4dCxcbiAgcF9zY29wZV9raW5kIHRleHQsXG4gIHBfc2NvcGVfaWQgdGV4dFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIGVmZmVjdGl2ZV9wZXJtaXNzaW9ucyBlcFxuICAgIFdIRVJFIGVwLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgZXAucHJpbmNpcGFsX2lkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKVxuICAgICAgQU5EIGVwLnBlcm1pc3Npb25fa2V5ID0gcF9wZXJtaXNzaW9uXG4gICAgICBBTkQgZXAuc2NvcGVfa2luZCA9IHBfc2NvcGVfa2luZFxuICAgICAgQU5EIGVwLnNjb3BlX2lkID0gcF9zY29wZV9pZFxuICAgICAgQU5EIChlcC5zdGFydHNfYXQgSVMgTlVMTCBPUiBlcC5zdGFydHNfYXQgPD0gbm93KCkpXG4gICAgICBBTkQgKGVwLmV4cGlyZXNfYXQgSVMgTlVMTCBPUiBlcC5leHBpcmVzX2F0ID49IG5vdygpKVxuICApXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX3RlbmFudF9wZXJtaXNzaW9uKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX3Blcm1pc3Npb24gdGV4dFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIGFwcF9ybHNfaGFzX3Blcm1pc3Npb24oXG4gICAgcF90ZW5hbnQsXG4gICAgcF9wZXJtaXNzaW9uLFxuICAgICd0ZW5hbnQnLFxuICAgIHBfdGVuYW50Ojp0ZXh0XG4gIClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbihcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9vcmdfdW5pdCB1dWlkLFxuICBwX3Blcm1pc3Npb24gdGV4dFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIGFwcF9ybHNfaGFzX3Blcm1pc3Npb24oXG4gICAgcF90ZW5hbnQsXG4gICAgcF9wZXJtaXNzaW9uLFxuICAgICd0ZW5hbnQnLFxuICAgIHBfdGVuYW50Ojp0ZXh0XG4gIClcbiAgT1IgKFxuICAgIHBfb3JnX3VuaXQgSVMgTk9UIE5VTExcbiAgICBBTkQgYXBwX3Jsc19oYXNfcGVybWlzc2lvbihcbiAgICAgIHBfdGVuYW50LFxuICAgICAgcF9wZXJtaXNzaW9uLFxuICAgICAgJ29yZ191bml0JyxcbiAgICAgIHBfb3JnX3VuaXQ6OnRleHRcbiAgICApXG4gIClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfdGVuYW50X21lbWJlcihwX3RlbmFudCB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHRlbmFudF9tZW1iZXJzaGlwcyB0bVxuICAgIFdIRVJFIHRtLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgdG0uc3RhdHVzID0gJ2FjdGl2ZSdcbiAgICAgIEFORCB0bS51c2VyX2lkOjp0ZXh0ID0gYXBwX3Jsc19zdWJqZWN0X2lkKClcbiAgKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19pc19vcmdfdW5pdF9tZW1iZXIoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIG9yZ191bml0X21lbWJlcnNoaXBzIG1cbiAgICBXSEVSRSBtLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgbS5vcmdfdW5pdF9pZCA9IHBfb3JnX3VuaXRcbiAgICAgIEFORCBtLnN0YXR1cyA9ICdhY3RpdmUnXG4gICAgICBBTkQgbS51c2VyX2lkOjp0ZXh0ID0gYXBwX3Jsc19zdWJqZWN0X2lkKClcbiAgKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fcmVhZF90ZW5hbnQocF90ZW5hbnQgdXVpZClcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX3RlbmFudF9wZXJtaXNzaW9uKHBfdGVuYW50LCAnbmFtZXNwYWNlLmFkbWluJylcbiAgT1IgYXBwX3Jsc190ZW5hbnRfcGVybWlzc2lvbihwX3RlbmFudCwgJ25hbWVzcGFjZS53cml0ZScpXG4gIE9SIGFwcF9ybHNfdGVuYW50X3Blcm1pc3Npb24ocF90ZW5hbnQsICduYW1lc3BhY2UucmVhZCcpXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQocF90ZW5hbnQgdXVpZClcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX3RlbmFudF9wZXJtaXNzaW9uKHBfdGVuYW50LCAnbmFtZXNwYWNlLmFkbWluJylcbiAgT1IgYXBwX3Jsc190ZW5hbnRfcGVybWlzc2lvbihwX3RlbmFudCwgJ25hbWVzcGFjZS53cml0ZScpXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl9yZWFkX29yZ191bml0KFxuICBwX3RlbmFudCB1dWlkLFxuICBwX29yZ191bml0IHV1aWRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChwX3RlbmFudClcbiAgT1IgYXBwX3Jsc19vcmdfdW5pdF9wZXJtaXNzaW9uKHBfdGVuYW50LCBwX29yZ191bml0LCAnbmFtZXNwYWNlLmFkbWluJylcbiAgT1IgYXBwX3Jsc19vcmdfdW5pdF9wZXJtaXNzaW9uKHBfdGVuYW50LCBwX29yZ191bml0LCAnbmFtZXNwYWNlLndyaXRlJylcbiAgT1IgYXBwX3Jsc19vcmdfdW5pdF9wZXJtaXNzaW9uKHBfdGVuYW50LCBwX29yZ191bml0LCAnbmFtZXNwYWNlLnJlYWQnKVxuICBPUiBhcHBfcmxzX2lzX29yZ191bml0X21lbWJlcihwX3RlbmFudCwgcF9vcmdfdW5pdClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3dyaXRlX29yZ191bml0KFxuICBwX3RlbmFudCB1dWlkLFxuICBwX29yZ191bml0IHV1aWRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQocF90ZW5hbnQpXG4gIE9SIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbihwX3RlbmFudCwgcF9vcmdfdW5pdCwgJ25hbWVzcGFjZS5hZG1pbicpXG4gIE9SIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbihwX3RlbmFudCwgcF9vcmdfdW5pdCwgJ25hbWVzcGFjZS53cml0ZScpXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2lzX2FkbWluKClcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBFWElTVFMgKFxuICAgIFNFTEVDVCAxXG4gICAgRlJPTSBlZmZlY3RpdmVfcGVybWlzc2lvbnMgZXBcbiAgICBXSEVSRSBlcC5wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG4gICAgICBBTkQgZXAucGVybWlzc2lvbl9rZXkgPSAnbmFtZXNwYWNlLmFkbWluJ1xuICAgICAgQU5EIChlcC5zdGFydHNfYXQgSVMgTlVMTCBPUiBlcC5zdGFydHNfYXQgPD0gbm93KCkpXG4gICAgICBBTkQgKGVwLmV4cGlyZXNfYXQgSVMgTlVMTCBPUiBlcC5leHBpcmVzX2F0ID49IG5vdygpKVxuICApXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbihwX3RlbmFudCB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIGFwcF9ybHNfdGVuYW50X3Blcm1pc3Npb24ocF90ZW5hbnQsICduYW1lc3BhY2UuYWRtaW4nKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19pc19vcmdfdW5pdF9hZG1pbihcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9vcmdfdW5pdCB1dWlkXG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4ocF90ZW5hbnQpXG4gIE9SIChcbiAgICBwX29yZ191bml0IElTIE5PVCBOVUxMXG4gICAgQU5EIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbihwX3RlbmFudCwgcF9vcmdfdW5pdCwgJ25hbWVzcGFjZS5hZG1pbicpXG4gIClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfc2NvcGVfYWRtaW4oXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfc2NvcGVfa2luZCB0ZXh0LFxuICBwX3Njb3BlX2lkIHRleHRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBDQVNFXG4gICAgV0hFTiBwX3Njb3BlX2tpbmQgPSAndGVuYW50JyBUSEVOIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHBfdGVuYW50KVxuICAgIFdIRU4gcF9zY29wZV9raW5kID0gJ29yZ191bml0JyBUSEVOIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4oXG4gICAgICBwX3RlbmFudCxcbiAgICAgIHBfc2NvcGVfaWQ6OnV1aWRcbiAgICApXG4gICAgV0hFTiBwX3Njb3BlX2tpbmQgPSAncmVzb3VyY2UnIFRIRU4gRVhJU1RTIChcbiAgICAgIFNFTEVDVCAxXG4gICAgICBGUk9NIHByb3RlY3RlZF9yZXNvdXJjZXMgclxuICAgICAgV0hFUkUgci5pZCA9IHBfc2NvcGVfaWQ6OnV1aWRcbiAgICAgICAgQU5EIHIudGVuYW50X2lkID0gcF90ZW5hbnRcbiAgICAgICAgQU5EIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4ocF90ZW5hbnQsIHIub3JnX3VuaXRfaWQpXG4gICAgKVxuICAgIEVMU0UgZmFsc2VcbiAgRU5EXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl9hZG1pbl91c2VyKHBfdXNlcl9pZCB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHRlbmFudF9tZW1iZXJzaGlwcyB0bVxuICAgIFdIRVJFIHRtLnVzZXJfaWQgPSBwX3VzZXJfaWRcbiAgICAgIEFORCBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0bS50ZW5hbnRfaWQpXG4gIClcbiRmbiQ7YCxcbiAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3JlYWRfZ3JvdXAoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfZ3JvdXAgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIGdyb3VwcyBnXG4gICAgV0hFUkUgZy5pZCA9IHBfZ3JvdXBcbiAgICAgIEFORCBnLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgKFxuICAgICAgICAoZy5vcmdfdW5pdF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChwX3RlbmFudCkpXG4gICAgICAgIE9SIChcbiAgICAgICAgICBnLm9yZ191bml0X2lkIElTIE5PVCBOVUxMXG4gICAgICAgICAgQU5EIGFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQocF90ZW5hbnQsIGcub3JnX3VuaXRfaWQpXG4gICAgICAgIClcbiAgICAgIClcbiAgKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfZ3JvdXAgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIGdyb3VwcyBnXG4gICAgV0hFUkUgZy5pZCA9IHBfZ3JvdXBcbiAgICAgIEFORCBnLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgKFxuICAgICAgICAoZy5vcmdfdW5pdF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQocF90ZW5hbnQpKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgZy5vcmdfdW5pdF9pZCBJUyBOT1QgTlVMTFxuICAgICAgICAgIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChwX3RlbmFudCwgZy5vcmdfdW5pdF9pZClcbiAgICAgICAgKVxuICAgICAgKVxuICApXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl9yZWFkX3Jlc291cmNlKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX3Jlc291cmNlIHV1aWRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBFWElTVFMgKFxuICAgIFNFTEVDVCAxXG4gICAgRlJPTSBwcm90ZWN0ZWRfcmVzb3VyY2VzIHJcbiAgICBXSEVSRSByLmlkID0gcF9yZXNvdXJjZVxuICAgICAgQU5EIHIudGVuYW50X2lkID0gcF90ZW5hbnRcbiAgICAgIEFORCAoXG4gICAgICAgIHIub3duZXJfcHJpbmNpcGFsX2lkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKVxuICAgICAgICBPUiBhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHBfdGVuYW50LCByLm9yZ191bml0X2lkKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgci52aXNpYmlsaXR5ID0gJ3RlbmFudCdcbiAgICAgICAgICBBTkQgYXBwX3Jsc19jYW5fcmVhZF90ZW5hbnQocF90ZW5hbnQpXG4gICAgICAgIClcbiAgICAgICAgT1IgKFxuICAgICAgICAgIHIudmlzaWJpbGl0eSBJTiAoJ29yZ191bml0JywgJ29yZ19zdWJ0cmVlJylcbiAgICAgICAgICBBTkQgYXBwX3Jsc19jYW5fcmVhZF9vcmdfdW5pdChwX3RlbmFudCwgci5vcmdfdW5pdF9pZClcbiAgICAgICAgKVxuICAgICAgICBPUiBFWElTVFMgKFxuICAgICAgICAgIFNFTEVDVCAxXG4gICAgICAgICAgRlJPTSByZXNvdXJjZV9ncmFudHMgZ1xuICAgICAgICAgIFdIRVJFIGcucmVzb3VyY2VfaWQgPSByLmlkXG4gICAgICAgICAgICBBTkQgZy5wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG4gICAgICAgICAgICBBTkQgZy5wZXJtaXNzaW9uX2tleSBJTiAoXG4gICAgICAgICAgICAgICdyZXNvdXJjZS5yZWFkJyxcbiAgICAgICAgICAgICAgJ25hbWVzcGFjZS5yZWFkJyxcbiAgICAgICAgICAgICAgJ25hbWVzcGFjZS53cml0ZScsXG4gICAgICAgICAgICAgICduYW1lc3BhY2UuYWRtaW4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBBTkQgKGcuc3RhcnRzX2F0IElTIE5VTEwgT1IgZy5zdGFydHNfYXQgPD0gbm93KCkpXG4gICAgICAgICAgICBBTkQgKGcuZXhwaXJlc19hdCBJUyBOVUxMIE9SIGcuZXhwaXJlc19hdCA+PSBub3coKSlcbiAgICAgICAgKVxuICAgICAgKVxuICApXG4kZm4kO2AsXG4gIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZShcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9yZXNvdXJjZSB1dWlkXG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgRVhJU1RTIChcbiAgICBTRUxFQ1QgMVxuICAgIEZST00gcHJvdGVjdGVkX3Jlc291cmNlcyByXG4gICAgV0hFUkUgci5pZCA9IHBfcmVzb3VyY2VcbiAgICAgIEFORCByLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgKFxuICAgICAgICBhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHBfdGVuYW50LCByLm9yZ191bml0X2lkKVxuICAgICAgICBPUiBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChwX3RlbmFudCwgci5vcmdfdW5pdF9pZClcbiAgICAgIClcbiAgKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19pc19yb2xlX2FkbWluKHBfcm9sZSB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHJvbGVzIHJcbiAgICBXSEVSRSByLmlkID0gcF9yb2xlXG4gICAgICBBTkQgKFxuICAgICAgICAoci50ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgci50ZW5hbnRfaWQgSVMgTk9UIE5VTExcbiAgICAgICAgICBBTkQgYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4oci50ZW5hbnRfaWQpXG4gICAgICAgIClcbiAgICAgIClcbiAgKVxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fcmVhZF9jcmVkZW50aWFsX3Njb3BlKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX29yZ191bml0IHV1aWRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBDQVNFXG4gICAgV0hFTiBwX29yZ191bml0IElTIE5VTEwgVEhFTiBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChwX3RlbmFudClcbiAgICBFTFNFIGFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQocF90ZW5hbnQsIHBfb3JnX3VuaXQpXG4gIEVORFxuJGZuJDtgLFxuICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fd3JpdGVfY3JlZGVudGlhbF9zY29wZShcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9vcmdfdW5pdCB1dWlkXG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgQ0FTRVxuICAgIFdIRU4gcF9vcmdfdW5pdCBJUyBOVUxMIFRIRU4gYXBwX3Jsc19jYW5fd3JpdGVfdGVuYW50KHBfdGVuYW50KVxuICAgIEVMU0UgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQocF90ZW5hbnQsIHBfb3JnX3VuaXQpXG4gIEVORFxuJGZuJDtgLFxuXTtcblxuY29uc3QgQURNSU4gPSBcImFwcF9ybHNfaXNfYWRtaW4oKVwiO1xuY29uc3QgVEVOQU5UX0FETUlOID0gXCJhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpXCI7XG5jb25zdCBXUklURV9TQ09QRSA9IFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBvcmdfdW5pdF9pZClcIjtcbmNvbnN0IENSRURFTlRJQUxfUkVBRCA9XG4gIFwiYXBwX3Jsc19jYW5fcmVhZF9jcmVkZW50aWFsX3Njb3BlKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCI7XG5jb25zdCBDUkVERU5USUFMX1dSSVRFID1cbiAgXCJhcHBfcmxzX2Nhbl93cml0ZV9jcmVkZW50aWFsX3Njb3BlKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCByZWFkZXIvd3JpdGVyL2FkbWluIHBvbGljeSBtYXRyaXguXG4gKiBAc3VtbWFyeSBBZG1pbmlzdHJhdGl2ZSB0YWJsZXMgKHBlcm1pc3Npb25zLCByb2xlcywgcm9sZSBhc3NpZ25tZW50cyxcbiAqIGluaGVyaXRhbmNlIGJsb2Nrcywgc3RvcmFnZSBiaW5kaW5ncykgYXJlIHZpc2libGUgb25seSB0byBhZG1pbnMuIENvbnRlbnRcbiAqIHRhYmxlcyBhcmUgdmlzaWJsZSB0byByZWFkZXJzIGFuZCB3cml0YWJsZSBieSB3cml0ZXJzLiBVc2VycyBhbHdheXMgc2VlIHRoZWlyXG4gKiBvd24gaWRlbnRpdHkgcm93cyBhbmQgdGhlaXIgb3duIGNyZWRlbnRpYWxzL3NlY3JldHMuXG4gKi9cbmV4cG9ydCBjb25zdCBOQU1FU1BBQ0VfUkxTX1BPTElDWV9TRVRTOiByZWFkb25seSBSbHNQb2xpY3lTZXRbXSA9IFtcbiAge1xuICAgIHRhYmxlOiBcInRlbmFudHNcIixcbiAgICBzZWxlY3Q6IFwiYXBwX3Jsc19pc190ZW5hbnRfbWVtYmVyKGlkKSBPUiBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChpZClcIixcbiAgICBpbnNlcnQ6IEFETUlOLFxuICAgIHVwZGF0ZTogXCJhcHBfcmxzX2lzX3RlbmFudF9hZG1pbihpZClcIixcbiAgICBkZWxldGU6IFwiYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4oaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJvcmdfdW5pdHNcIixcbiAgICBzZWxlY3Q6XG4gICAgICBcImFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQodGVuYW50X2lkLCBpZCkgT1IgKHBhcmVudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBwYXJlbnRfaWQpKVwiLFxuICAgIGluc2VydDpcbiAgICAgIFwiYXBwX3Jsc19jYW5fd3JpdGVfdGVuYW50KHRlbmFudF9pZCkgT1IgKHBhcmVudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBwYXJlbnRfaWQpKVwiLFxuICAgIHVwZGF0ZTpcbiAgICAgIFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBpZCkgT1IgKHBhcmVudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBwYXJlbnRfaWQpKVwiLFxuICAgIGRlbGV0ZTpcbiAgICAgIFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBpZCkgT1IgKHBhcmVudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBwYXJlbnRfaWQpKVwiLFxuICB9LFxuICB7XG4gICAgdGFibGU6IFwib3JnX3VuaXRfY2xvc3VyZVwiLFxuICAgIHNlbGVjdDpcbiAgICAgIFwiYXBwX3Jsc19jYW5fcmVhZF9vcmdfdW5pdCh0ZW5hbnRfaWQsIGRlc2NlbmRhbnRfb3JnX3VuaXRfaWQpXCIsXG4gICAgaW5zZXJ0OlxuICAgICAgXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIGRlc2NlbmRhbnRfb3JnX3VuaXRfaWQpXCIsXG4gICAgdXBkYXRlOlxuICAgICAgXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIGRlc2NlbmRhbnRfb3JnX3VuaXRfaWQpXCIsXG4gICAgZGVsZXRlOlxuICAgICAgXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIGRlc2NlbmRhbnRfb3JnX3VuaXRfaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJ1c2Vyc1wiLFxuICAgIHNlbGVjdDpcbiAgICAgIFwiaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKSBPUiBhcHBfcmxzX2Nhbl9hZG1pbl91c2VyKGlkKVwiLFxuICAgIGluc2VydDogQURNSU4sXG4gICAgdXBkYXRlOlxuICAgICAgXCJpZDo6dGV4dCA9IGFwcF9ybHNfc3ViamVjdF9pZCgpIE9SIGFwcF9ybHNfY2FuX2FkbWluX3VzZXIoaWQpXCIsXG4gICAgZGVsZXRlOiBcImFwcF9ybHNfY2FuX2FkbWluX3VzZXIoaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJncm91cHNcIixcbiAgICBzZWxlY3Q6IFwiYXBwX3Jsc19jYW5fcmVhZF9ncm91cCh0ZW5hbnRfaWQsIGlkKVwiLFxuICAgIGluc2VydDpcbiAgICAgIFwiYXBwX3Jsc19jYW5fd3JpdGVfdGVuYW50KHRlbmFudF9pZCkgT1IgKG9yZ191bml0X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIG9yZ191bml0X2lkKSlcIixcbiAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBpZClcIixcbiAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBpZClcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInByaW5jaXBhbHNcIixcbiAgICBzZWxlY3Q6XG4gICAgICBcImlkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKSBPUiAoa2luZCA9ICd1c2VyJyBBTkQgc3ViamVjdF9pZCA9IGFwcF9ybHNfc3ViamVjdF9pZCgpKSBPUiBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpXCIsXG4gICAgaW5zZXJ0OiBURU5BTlRfQURNSU4sXG4gICAgdXBkYXRlOiBURU5BTlRfQURNSU4sXG4gICAgZGVsZXRlOiBURU5BTlRfQURNSU4sXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJ0ZW5hbnRfbWVtYmVyc2hpcHNcIixcbiAgICBzZWxlY3Q6XG4gICAgICBcInVzZXJfaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKSBPUiBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudCh0ZW5hbnRfaWQpXCIsXG4gICAgaW5zZXJ0OiBURU5BTlRfQURNSU4sXG4gICAgdXBkYXRlOiBURU5BTlRfQURNSU4sXG4gICAgZGVsZXRlOiBURU5BTlRfQURNSU4sXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJvcmdfdW5pdF9tZW1iZXJzaGlwc1wiLFxuICAgIHNlbGVjdDpcbiAgICAgIFwidXNlcl9pZDo6dGV4dCA9IGFwcF9ybHNfc3ViamVjdF9pZCgpIE9SIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbih0ZW5hbnRfaWQsIG9yZ191bml0X2lkLCAnbmFtZXNwYWNlLmFkbWluJykgT1IgYXBwX3Jsc19vcmdfdW5pdF9wZXJtaXNzaW9uKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQsICduYW1lc3BhY2Uud3JpdGUnKSBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24odGVuYW50X2lkLCBvcmdfdW5pdF9pZCwgJ25hbWVzcGFjZS5yZWFkJylcIixcbiAgICBpbnNlcnQ6IFdSSVRFX1NDT1BFLFxuICAgIHVwZGF0ZTogV1JJVEVfU0NPUEUsXG4gICAgZGVsZXRlOiBXUklURV9TQ09QRSxcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcImdyb3VwX21lbWJlcnNoaXBzXCIsXG4gICAgc2VsZWN0OiBcImFwcF9ybHNfY2FuX3JlYWRfZ3JvdXAodGVuYW50X2lkLCBncm91cF9pZClcIixcbiAgICBpbnNlcnQ6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBncm91cF9pZClcIixcbiAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBncm91cF9pZClcIixcbiAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBncm91cF9pZClcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInBlcm1pc3Npb25zXCIsXG4gICAgc2VsZWN0OiBBRE1JTixcbiAgICBpbnNlcnQ6IEFETUlOLFxuICAgIHVwZGF0ZTogQURNSU4sXG4gICAgZGVsZXRlOiBBRE1JTixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInJvbGVzXCIsXG4gICAgc2VsZWN0OlxuICAgICAgXCIodGVuYW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpKSBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICBpbnNlcnQ6XG4gICAgICBcIih0ZW5hbnRfaWQgSVMgTk9UIE5VTEwgQU5EIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHRlbmFudF9pZCkpIE9SICh0ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVwiLFxuICAgIHVwZGF0ZTpcbiAgICAgIFwiKHRlbmFudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4odGVuYW50X2lkKSkgT1IgKHRlbmFudF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2lzX2FkbWluKCkpXCIsXG4gICAgZGVsZXRlOlxuICAgICAgXCIodGVuYW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpKSBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInJvbGVfcGVybWlzc2lvbnNcIixcbiAgICBzZWxlY3Q6IFwiYXBwX3Jsc19pc19yb2xlX2FkbWluKHJvbGVfaWQpXCIsXG4gICAgaW5zZXJ0OiBcImFwcF9ybHNfaXNfcm9sZV9hZG1pbihyb2xlX2lkKVwiLFxuICAgIHVwZGF0ZTogXCJhcHBfcmxzX2lzX3JvbGVfYWRtaW4ocm9sZV9pZClcIixcbiAgICBkZWxldGU6IFwiYXBwX3Jsc19pc19yb2xlX2FkbWluKHJvbGVfaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJyb2xlX2Fzc2lnbm1lbnRzXCIsXG4gICAgc2VsZWN0OiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICBpbnNlcnQ6IFwiYXBwX3Jsc19pc19zY29wZV9hZG1pbih0ZW5hbnRfaWQsIHNjb3BlX2tpbmQsIHNjb3BlX2lkKVwiLFxuICAgIHVwZGF0ZTogXCJhcHBfcmxzX2lzX3Njb3BlX2FkbWluKHRlbmFudF9pZCwgc2NvcGVfa2luZCwgc2NvcGVfaWQpXCIsXG4gICAgZGVsZXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcImluaGVyaXRhbmNlX2Jsb2Nrc1wiLFxuICAgIHNlbGVjdDogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gICAgaW5zZXJ0OiBcImFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4odGVuYW50X2lkLCBvcmdfdW5pdF9pZClcIixcbiAgICB1cGRhdGU6IFwiYXBwX3Jsc19pc19vcmdfdW5pdF9hZG1pbih0ZW5hbnRfaWQsIG9yZ191bml0X2lkKVwiLFxuICAgIGRlbGV0ZTogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJwcm90ZWN0ZWRfcmVzb3VyY2VzXCIsXG4gICAgc2VsZWN0OiBcImFwcF9ybHNfY2FuX3JlYWRfcmVzb3VyY2UodGVuYW50X2lkLCBpZClcIixcbiAgICBpbnNlcnQ6XG4gICAgICBcImFwcF9ybHNfY2FuX3dyaXRlX3RlbmFudCh0ZW5hbnRfaWQpIE9SIChvcmdfdW5pdF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBvcmdfdW5pdF9pZCkpXCIsXG4gICAgdXBkYXRlOiBcImFwcF9ybHNfY2FuX3dyaXRlX3Jlc291cmNlKHRlbmFudF9pZCwgaWQpXCIsXG4gICAgZGVsZXRlOiBcImFwcF9ybHNfY2FuX3dyaXRlX3Jlc291cmNlKHRlbmFudF9pZCwgaWQpXCIsXG4gIH0sXG4gIHtcbiAgICB0YWJsZTogXCJyZXNvdXJjZV9ncmFudHNcIixcbiAgICBzZWxlY3Q6XG4gICAgICBcInByaW5jaXBhbF9pZCA9IGFwcF9ybHNfcHJpbmNpcGFsX2lkKCkgT1IgYXBwX3Jsc19jYW5fcmVhZF9yZXNvdXJjZSh0ZW5hbnRfaWQsIHJlc291cmNlX2lkKVwiLFxuICAgIGluc2VydDogXCJhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZSh0ZW5hbnRfaWQsIHJlc291cmNlX2lkKVwiLFxuICAgIHVwZGF0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZSh0ZW5hbnRfaWQsIHJlc291cmNlX2lkKVwiLFxuICAgIGRlbGV0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZSh0ZW5hbnRfaWQsIHJlc291cmNlX2lkKVwiLFxuICB9LFxuICB7XG4gICAgdGFibGU6IFwiZWZmZWN0aXZlX3Blcm1pc3Npb25zXCIsXG4gICAgc2VsZWN0OlxuICAgICAgXCJwcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIGFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICBpbnNlcnQ6IFwiYXBwX3Jsc19pc19zY29wZV9hZG1pbih0ZW5hbnRfaWQsIHNjb3BlX2tpbmQsIHNjb3BlX2lkKVwiLFxuICAgIHVwZGF0ZTogXCJhcHBfcmxzX2lzX3Njb3BlX2FkbWluKHRlbmFudF9pZCwgc2NvcGVfa2luZCwgc2NvcGVfaWQpXCIsXG4gICAgZGVsZXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInN0b3JhZ2VfYmluZGluZ3NcIixcbiAgICBzZWxlY3Q6IFRFTkFOVF9BRE1JTixcbiAgICBpbnNlcnQ6IFRFTkFOVF9BRE1JTixcbiAgICB1cGRhdGU6IFRFTkFOVF9BRE1JTixcbiAgICBkZWxldGU6IFRFTkFOVF9BRE1JTixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcInRlbmFudF9wcm9maWxlc1wiLFxuICAgIHNlbGVjdDpcbiAgICAgIFwiYXBwX3Jsc19pc190ZW5hbnRfbWVtYmVyKHRlbmFudF9pZCkgT1IgYXBwX3Jsc19jYW5fcmVhZF90ZW5hbnQodGVuYW50X2lkKVwiLFxuICAgIGluc2VydDogVEVOQU5UX0FETUlOLFxuICAgIHVwZGF0ZTogVEVOQU5UX0FETUlOLFxuICAgIGRlbGV0ZTogVEVOQU5UX0FETUlOLFxuICB9LFxuICB7XG4gICAgdGFibGU6IFwib3JnX3VuaXRfcHJvZmlsZXNcIixcbiAgICBzZWxlY3Q6XG4gICAgICBcImFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQoYXBwX3Jsc19vcmdfdW5pdF90ZW5hbnQob3JnX3VuaXRfaWQpLCBvcmdfdW5pdF9pZClcIixcbiAgICBpbnNlcnQ6XG4gICAgICBcImFwcF9ybHNfY2FuX3dyaXRlX29yZ191bml0KGFwcF9ybHNfb3JnX3VuaXRfdGVuYW50KG9yZ191bml0X2lkKSwgb3JnX3VuaXRfaWQpXCIsXG4gICAgdXBkYXRlOlxuICAgICAgXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChhcHBfcmxzX29yZ191bml0X3RlbmFudChvcmdfdW5pdF9pZCksIG9yZ191bml0X2lkKVwiLFxuICAgIGRlbGV0ZTpcbiAgICAgIFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQoYXBwX3Jsc19vcmdfdW5pdF90ZW5hbnQob3JnX3VuaXRfaWQpLCBvcmdfdW5pdF9pZClcIixcbiAgfSxcbiAge1xuICAgIHRhYmxlOiBcImNyZWRlbnRpYWxzXCIsXG4gICAgc2VsZWN0OlxuICAgICAgXCJvd25lcl9wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIFwiICsgQ1JFREVOVElBTF9SRUFELFxuICAgIGluc2VydDogQ1JFREVOVElBTF9XUklURSxcbiAgICB1cGRhdGU6IENSRURFTlRJQUxfV1JJVEUsXG4gICAgZGVsZXRlOiBDUkVERU5USUFMX1dSSVRFLFxuICB9LFxuICB7XG4gICAgdGFibGU6IFwic2VjcmV0c1wiLFxuICAgIHNlbGVjdDpcbiAgICAgIFwib3duZXJfcHJpbmNpcGFsX2lkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKSBPUiBcIiArXG4gICAgICBDUkVERU5USUFMX1JFQUQgK1xuICAgICAgXCIgT1IgKHRlbmFudF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2lzX2FkbWluKCkpXCIsXG4gICAgaW5zZXJ0OlxuICAgICAgQ1JFREVOVElBTF9XUklURSArIFwiIE9SICh0ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVwiLFxuICAgIHVwZGF0ZTpcbiAgICAgIENSRURFTlRJQUxfV1JJVEUgKyBcIiBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICBkZWxldGU6XG4gICAgICBDUkVERU5USUFMX1dSSVRFICsgXCIgT1IgKHRlbmFudF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2lzX2FkbWluKCkpXCIsXG4gIH0sXG5dO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgZW5hYmxlL2ZvcmNlIGFuZCBwb2xpY3kgRERMIGZvciBhIHBvbGljeSBzZXQuXG4gKiBAc3VtbWFyeSBgRFJPUCBQT0xJQ1kgSUYgRVhJU1RTYCBtYWtlcyB0aGUgb3V0cHV0IHNhZmUgdG8gcmVwbGF5IG9uIGV2ZXJ5XG4gKiBkZXBsb3ltZW50LiBNaXNzaW5nIGNvbW1hbmQgZXhwcmVzc2lvbnMgbGVhdmUgdGhhdCBjb21tYW5kIGRlbmllZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJsc1BvbGljeVN0YXRlbWVudHMoXG4gIHBvbGljeVNldHM6IHJlYWRvbmx5IFJsc1BvbGljeVNldFtdID0gTkFNRVNQQUNFX1JMU19QT0xJQ1lfU0VUU1xuKTogc3RyaW5nW10ge1xuICBjb25zdCBzdGF0ZW1lbnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHNldCBvZiBwb2xpY3lTZXRzKSB7XG4gICAgaWYgKHNldC5lbmFibGUgIT09IGZhbHNlKSB7XG4gICAgICBzdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgIGBBTFRFUiBUQUJMRSAke3NldC50YWJsZX0gRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTtgLFxuICAgICAgICBgQUxURVIgVEFCTEUgJHtzZXQudGFibGV9IEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTtgXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSBzZXQudGFibGUucmVwbGFjZSgvW15BLVphLXowLTlfXS9nLCBcIl9cIik7XG4gICAgY29uc3QgY29tbWFuZHM6IEFycmF5PFxuICAgICAgW3N0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkLCAobmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpID0+IHN0cmluZ11cbiAgICA+ID0gW1xuICAgICAgW1xuICAgICAgICBcInNlbGVjdFwiLFxuICAgICAgICBzZXQuc2VsZWN0LFxuICAgICAgICAobmFtZSwgZXhwcmVzc2lvbikgPT5cbiAgICAgICAgICBgQ1JFQVRFIFBPTElDWSAke25hbWV9IE9OICR7c2V0LnRhYmxlfSBGT1IgU0VMRUNUIFVTSU5HICgke2V4cHJlc3Npb259KTtgLFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgXCJpbnNlcnRcIixcbiAgICAgICAgc2V0Lmluc2VydCxcbiAgICAgICAgKG5hbWUsIGV4cHJlc3Npb24pID0+XG4gICAgICAgICAgYENSRUFURSBQT0xJQ1kgJHtuYW1lfSBPTiAke3NldC50YWJsZX0gRk9SIElOU0VSVCBXSVRIIENIRUNLICgke2V4cHJlc3Npb259KTtgLFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgXCJ1cGRhdGVcIixcbiAgICAgICAgc2V0LnVwZGF0ZSxcbiAgICAgICAgKG5hbWUsIGV4cHJlc3Npb24pID0+XG4gICAgICAgICAgYENSRUFURSBQT0xJQ1kgJHtuYW1lfSBPTiAke3NldC50YWJsZX0gRk9SIFVQREFURSBVU0lORyAoJHtleHByZXNzaW9ufSkgV0lUSCBDSEVDSyAoJHtleHByZXNzaW9ufSk7YCxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIFwiZGVsZXRlXCIsXG4gICAgICAgIHNldC5kZWxldGUsXG4gICAgICAgIChuYW1lLCBleHByZXNzaW9uKSA9PlxuICAgICAgICAgIGBDUkVBVEUgUE9MSUNZICR7bmFtZX0gT04gJHtzZXQudGFibGV9IEZPUiBERUxFVEUgVVNJTkcgKCR7ZXhwcmVzc2lvbn0pO2AsXG4gICAgICBdLFxuICAgIF07XG4gICAgZm9yIChjb25zdCBbY29tbWFuZCwgZXhwcmVzc2lvbiwgcmVuZGVyXSBvZiBjb21tYW5kcykge1xuICAgICAgaWYgKCFleHByZXNzaW9uKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IG5hbWUgPSBgJHtwcmVmaXh9XyR7Y29tbWFuZH1fcG9saWN5YDtcbiAgICAgIHN0YXRlbWVudHMucHVzaChgRFJPUCBQT0xJQ1kgSUYgRVhJU1RTICR7bmFtZX0gT04gJHtzZXQudGFibGV9O2AsIHJlbmRlcihcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZXhwcmVzc2lvblxuICAgICAgKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZW1lbnRzO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGdWxsIG5hbWVzcGFjZSBSTFMgYm9vdHN0cmFwIHN0YXRlbWVudCBsaXN0LlxuICogQHN1bW1hcnkgSGVscGVyIGZ1bmN0aW9ucyBmb2xsb3dlZCBieSBlbmFibGUvZm9yY2UgYW5kIHBvbGljeSBEREwgZm9yIGV2ZXJ5XG4gKiB0YWJsZSBpbiB7QGxpbmsgUkxTX1BST1RFQ1RFRF9UQUJMRVN9LiBBcHBseSBhZnRlciB0aGUgbmFtZXNwYWNlIHNjaGVtYVxuICogZXhpc3RzIGFuZCBiZWZvcmUgcmVxdWVzdC1zY29wZWQgdHJhZmZpYyByZWFjaGVzIHRoZSBkYXRhYmFzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJsc0Jvb3RzdHJhcFN0YXRlbWVudHMoKTogc3RyaW5nW10ge1xuICByZXR1cm4gWy4uLlJMU19GVU5DVElPTl9TVEFURU1FTlRTLCAuLi5ybHNQb2xpY3lTdGF0ZW1lbnRzKCldO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUYWJsZXMgdGFyZ2V0ZWQgYnkgdGhlIGJ1bmRsZWQgbmFtZXNwYWNlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmxzUG9saWN5VGFibGVzKFxuICBwb2xpY3lTZXRzOiByZWFkb25seSBSbHNQb2xpY3lTZXRbXSA9IE5BTUVTUEFDRV9STFNfUE9MSUNZX1NFVFNcbik6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHBvbGljeVNldHMubWFwKChzZXQpID0+IHNldC50YWJsZSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFzc2VydHMgdGhhdCB0aGUgYnVuZGxlZCBwb2xpY3kgdGVtcGxhdGUgY292ZXJzIGV2ZXJ5IHByb3RlY3RlZFxuICogdGFibGUuIEV4cG9zZWQgZm9yIGRlcGxveW1lbnQgY2hlY2tzIGFuZCB1bml0IHRlc3RzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0UmxzVGFibGVDb3ZlcmFnZShcbiAgcG9saWN5U2V0czogcmVhZG9ubHkgUmxzUG9saWN5U2V0W10gPSBOQU1FU1BBQ0VfUkxTX1BPTElDWV9TRVRTXG4pOiB2b2lkIHtcbiAgY29uc3QgY292ZXJlZCA9IG5ldyBTZXQocmxzUG9saWN5VGFibGVzKHBvbGljeVNldHMpKTtcbiAgY29uc3QgbWlzc2luZyA9IFJMU19QUk9URUNURURfVEFCTEVTLmZpbHRlcigodGFibGUpID0+ICFjb3ZlcmVkLmhhcyh0YWJsZSkpO1xuICBpZiAobWlzc2luZy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBSTFMgdGVtcGxhdGUgaXMgbWlzc2luZyB0YWJsZXM6ICR7bWlzc2luZy5qb2luKFwiLCBcIil9YFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
719
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmxzLnRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmxzLnRlbXBsYXRlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNvQkEsa0RBcUNDO0FBT0Qsd0RBRUM7QUFJRCwwQ0FFQztBQUtELHdEQU1DO0FBcnNCRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsMkRBQXdEO0FBQ3hELHlEQUF3RTtBQUN4RSxNQUFNLG9CQUFvQixHQUFHLG1DQUFtQyxDQUFDO0FBQ2pFOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsdUJBQXVCLEdBQUc7SUFDbkM7Ozs7O21DQUsrQiwrQkFBWSxDQUFDLFNBQVM7TUFDbkQ7SUFDRjs7Ozs7RUFLRixvQkFBb0I7Ozs7O01BS2hCO0lBQ0Y7Ozs7Ozs7O0VBUUYsb0JBQW9COzs7Ozs7TUFNaEI7SUFDRiwrRUFBK0U7SUFDL0U7Ozs7O0VBS0Ysb0JBQW9COzs7OztNQUtoQjtJQUNGOzs7Ozs7Ozs7O0VBVUYsb0JBQW9COzs7Ozs7Ozs7Ozs7O01BYWhCO0lBQ0Y7Ozs7Ozs7O0VBUUYsb0JBQW9COzs7Ozs7OztNQVFoQjtJQUNGOzs7Ozs7Ozs7RUFTRixvQkFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUJoQjtJQUNGOzs7OztFQUtGLG9CQUFvQjs7Ozs7Ozs7O01BU2hCO0lBQ0Y7Ozs7Ozs7O0VBUUYsb0JBQW9COzs7Ozs7Ozs7O01BVWhCO0lBQ0Y7Ozs7O0VBS0Ysb0JBQW9COzs7OztNQUtoQjtJQUNGOzs7OztFQUtGLG9CQUFvQjs7OztNQUloQjtJQUNGOzs7Ozs7OztFQVFGLG9CQUFvQjs7Ozs7OztNQU9oQjtJQUNGOzs7Ozs7OztFQVFGLG9CQUFvQjs7Ozs7TUFLaEI7SUFDRjs7Ozs7RUFLRixvQkFBb0I7Ozs7Ozs7Ozs7TUFVaEI7SUFDRjs7Ozs7RUFLRixvQkFBb0I7OztNQUdoQjtJQUNGOzs7Ozs7OztFQVFGLG9CQUFvQjs7Ozs7OztNQU9oQjtJQUNGOzs7Ozs7Ozs7RUFTRixvQkFBb0I7Ozs7Ozs7Ozs7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QUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUM7QUFDRDs7Ozs7R0FLRztBQUNILFNBQWdCLHNCQUFzQjtJQUNsQyxPQUFPLENBQUMsR0FBRywrQkFBdUIsRUFBRSxHQUFHLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBQ0Q7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsVUFBVSxHQUFHLGlDQUF5QjtJQUNsRSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBQ0Q7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsVUFBVSxHQUFHLGlDQUF5QjtJQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRCxNQUFNLE9BQU8sR0FBRyx1Q0FBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSw2QkFBYSxDQUFDLG1DQUFtQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO0FBQ0wsQ0FBQztBQUNELDBodUNBQTBodUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL25hbWVzcGFjZXMvcmxzL3RlbXBsYXRlXG4gKiBAc3VtbWFyeSBTUUwgdGVtcGxhdGUgZm9yIHRoZSBuYW1lc3BhY2Ugcm93LWxldmVsLXNlY3VyaXR5IHBvbGljaWVzLlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBhbmQgZW5hYmxlL2ZvcmNlL3BvbGljeSBEREwgdGhhdFxuICogZW5mb3JjZSB0aGUgcmVhZGVyL3dyaXRlci9hZG1pbiBtYXRyaXggYWNyb3NzIHRoZSBuYW1lc3BhY2UgdGFibGVzIGFuZCB0aGVcbiAqIHNsaWNlLTEgY3JlZGVudGlhbC9zZWNyZXQgcmVjb3Jkcy5cbiAqXG4gKiBUaGUgdGVtcGxhdGUgYXNzdW1lcyB0aGUgY2Fub25pY2FsIHNuYWtlX2Nhc2Ugc2NoZW1hIGRvY3VtZW50ZWQgYnkgdGhlXG4gKiBgaW50ZWdyYXRpb25zL3NxbGAgYXJ0aWZhY3RzLiBIZWxwZXIgZnVuY3Rpb25zIGFyZSBgU0VDVVJJVFkgREVGSU5FUmAgc28gdGhlXG4gKiBhdXRob3JpemF0aW9uIGxvb2t1cHMgYnlwYXNzIFJMUyBhbmQgY2Fubm90IHJlY3Vyc2UgdGhyb3VnaCB0aGUgcG9saWNpZXMgdGhleVxuICogaW1wbGVtZW50LiBQcm9kdWN0aW9uIGRlcGxveW1lbnRzIHNob3VsZCBvd24gdGhvc2UgZnVuY3Rpb25zIHdpdGggYSByb2xlIHRoYXRcbiAqIGlzIGFsbG93ZWQgdG8gYnlwYXNzIFJMUyAodGhlIGRhdGFiYXNlIG93bmVyLCBhIGBCWVBBU1NSTFNgIHJvbGUsIG9yIHRoZVxuICogbWlncmF0aW9uIHJvbGUpLlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBSTFNfUFJPVEVDVEVEX1RBQkxFUywgUkxTX1NFVFRJTkdTIH0gZnJvbSBcIi4vcmxzLmNvbnN0YW50cy5qc1wiO1xuY29uc3QgRlVOQ1RJT05fU0VBUkNIX1BBVEggPSBcIlNFVCBzZWFyY2hfcGF0aCA9IHB1YmxpYywgcGdfdGVtcFwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGVscGVyIGZ1bmN0aW9ucyBiYWNraW5nIHRoZSBuYW1lc3BhY2UgUkxTIHBvbGljaWVzLlxuICogQHN1bW1hcnkgRWFjaCBmdW5jdGlvbiBpcyBpZGVtcG90ZW50bHkgY3JlYXRlZCB3aXRoIGBDUkVBVEUgT1IgUkVQTEFDRWAuXG4gKiBgYXBwX3Jsc19wcmluY2lwYWxfZm9yX3N1YmplY3QodGV4dCwgdXVpZClgIGlzIGFkZGl0aW9uYWxseSBgU0VDVVJJVFlcbiAqIERFRklORVJgIHdpdGggYHNlYXJjaF9wYXRoYCBwaW5uZWQgdG8gYHB1YmxpYywgcGdfdGVtcGAgYW5kIGBSRVZPS0VgZCBmcm9tXG4gKiBgUFVCTElDYDogaXQgbWFwcyBhbiBhdXRoZW50aWNhdGVkIHN1YmplY3QgKGFuZCBvcHRpb25hbCB0ZW5hbnQpIHRvIHRoZVxuICogc2luZ2xlIG1hdGNoaW5nIHByaW5jaXBhbCBVVUlEIC0gb3IgYE5VTExgIHdoZW4gdGhlIG1hdGNoIGlzIGFtYmlndW91cyBvclxuICogYWJzZW50IC0gYW5kIGlzIGNvbnN1bWVkIGJ5IHByaXZpbGVnZWQgcmVzb2x2ZXJzIHN1Y2ggYXNcbiAqIGByZXNvbHZlUHJpbmNpcGFsRm9yU3ViamVjdGAgZnJvbSBgLi9wcmluY2lwYWwtcmVzb2x2ZXJgLlxuICovXG5leHBvcnQgY29uc3QgUkxTX0ZVTkNUSU9OX1NUQVRFTUVOVFMgPSBbXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfcHJpbmNpcGFsX2lkKClcblJFVFVSTlMgdXVpZFxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcbkFTICRmbiRcbiAgU0VMRUNUIE5VTExJRihjdXJyZW50X3NldHRpbmcoJyR7UkxTX1NFVFRJTkdTLlByaW5jaXBhbH0nLCB0cnVlKSwgJycpOjp1dWlkXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfc3ViamVjdF9pZCgpXG5SRVRVUk5TIHRleHRcbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgcC5zdWJqZWN0X2lkXG4gIEZST00gcHJpbmNpcGFscyBwXG4gIFdIRVJFIHAuaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfcHJpbmNpcGFsX2Zvcl9zdWJqZWN0KFxuICBwX3N1YmplY3QgdGV4dCxcbiAgcF90ZW5hbnQgdXVpZCBERUZBVUxUIE5VTExcbilcblJFVFVSTlMgdXVpZFxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBDQVNFIFdIRU4gQ09VTlQoKikgPSAxIFRIRU4gKE1JTihwLmlkOjp0ZXh0KSk6OnV1aWQgRUxTRSBOVUxMIEVORFxuICBGUk9NIHByaW5jaXBhbHMgcFxuICBXSEVSRSBwLnN1YmplY3RfaWQgPSBOVUxMSUYocF9zdWJqZWN0LCAnJylcbiAgICBBTkQgKHBfdGVuYW50IElTIE5VTEwgT1IgcC50ZW5hbnRfaWQgPSBwX3RlbmFudClcbiRmbiQ7YCxcbiAgICBgUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBhcHBfcmxzX3ByaW5jaXBhbF9mb3Jfc3ViamVjdCh0ZXh0LCB1dWlkKSBGUk9NIFBVQkxJQztgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX29yZ191bml0X3RlbmFudChwX29yZ191bml0IHV1aWQpXG5SRVRVUk5TIHV1aWRcbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1Qgb3UudGVuYW50X2lkXG4gIEZST00gb3JnX3VuaXRzIG91XG4gIFdIRVJFIG91LmlkID0gcF9vcmdfdW5pdFxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2hhc19wZXJtaXNzaW9uKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX3Blcm1pc3Npb24gdGV4dCxcbiAgcF9zY29wZV9raW5kIHRleHQsXG4gIHBfc2NvcGVfaWQgdGV4dFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIGVmZmVjdGl2ZV9wZXJtaXNzaW9ucyBlcFxuICAgIFdIRVJFIGVwLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgZXAucHJpbmNpcGFsX2lkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKVxuICAgICAgQU5EIGVwLnBlcm1pc3Npb25fa2V5ID0gcF9wZXJtaXNzaW9uXG4gICAgICBBTkQgZXAuc2NvcGVfa2luZCA9IHBfc2NvcGVfa2luZFxuICAgICAgQU5EIGVwLnNjb3BlX2lkID0gcF9zY29wZV9pZFxuICAgICAgQU5EIChlcC5zdGFydHNfYXQgSVMgTlVMTCBPUiBlcC5zdGFydHNfYXQgPD0gbm93KCkpXG4gICAgICBBTkQgKGVwLmV4cGlyZXNfYXQgSVMgTlVMTCBPUiBlcC5leHBpcmVzX2F0ID49IG5vdygpKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfdGVuYW50X3Blcm1pc3Npb24oXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfcGVybWlzc2lvbiB0ZXh0XG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgYXBwX3Jsc19oYXNfcGVybWlzc2lvbihcbiAgICBwX3RlbmFudCxcbiAgICBwX3Blcm1pc3Npb24sXG4gICAgJ3RlbmFudCcsXG4gICAgcF90ZW5hbnQ6OnRleHRcbiAgKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24oXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZCxcbiAgcF9wZXJtaXNzaW9uIHRleHRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX2hhc19wZXJtaXNzaW9uKFxuICAgIHBfdGVuYW50LFxuICAgIHBfcGVybWlzc2lvbixcbiAgICAndGVuYW50JyxcbiAgICBwX3RlbmFudDo6dGV4dFxuICApXG4gIE9SIChcbiAgICBwX29yZ191bml0IElTIE5PVCBOVUxMXG4gICAgQU5EIGFwcF9ybHNfaGFzX3Blcm1pc3Npb24oXG4gICAgICBwX3RlbmFudCxcbiAgICAgIHBfcGVybWlzc2lvbixcbiAgICAgICdvcmdfdW5pdCcsXG4gICAgICBwX29yZ191bml0Ojp0ZXh0XG4gICAgKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfdGVuYW50X21lbWJlcihwX3RlbmFudCB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHRlbmFudF9tZW1iZXJzaGlwcyB0bVxuICAgIFdIRVJFIHRtLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgdG0uc3RhdHVzID0gJ2FjdGl2ZSdcbiAgICAgIEFORCB0bS51c2VyX2lkOjp0ZXh0ID0gYXBwX3Jsc19zdWJqZWN0X2lkKClcbiAgKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2lzX29yZ191bml0X21lbWJlcihcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9vcmdfdW5pdCB1dWlkXG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgRVhJU1RTIChcbiAgICBTRUxFQ1QgMVxuICAgIEZST00gb3JnX3VuaXRfbWVtYmVyc2hpcHMgbVxuICAgIFdIRVJFIG0udGVuYW50X2lkID0gcF90ZW5hbnRcbiAgICAgIEFORCBtLm9yZ191bml0X2lkID0gcF9vcmdfdW5pdFxuICAgICAgQU5EIG0uc3RhdHVzID0gJ2FjdGl2ZSdcbiAgICAgIEFORCBtLnVzZXJfaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3JlYWRfdGVuYW50KHBfdGVuYW50IHV1aWQpXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgYXBwX3Jsc190ZW5hbnRfcGVybWlzc2lvbihwX3RlbmFudCwgJ25hbWVzcGFjZS5hZG1pbicpXG4gIE9SIGFwcF9ybHNfdGVuYW50X3Blcm1pc3Npb24ocF90ZW5hbnQsICduYW1lc3BhY2Uud3JpdGUnKVxuICBPUiBhcHBfcmxzX3RlbmFudF9wZXJtaXNzaW9uKHBfdGVuYW50LCAnbmFtZXNwYWNlLnJlYWQnKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQocF90ZW5hbnQgdXVpZClcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBhcHBfcmxzX3RlbmFudF9wZXJtaXNzaW9uKHBfdGVuYW50LCAnbmFtZXNwYWNlLmFkbWluJylcbiAgT1IgYXBwX3Jsc190ZW5hbnRfcGVybWlzc2lvbihwX3RlbmFudCwgJ25hbWVzcGFjZS53cml0ZScpXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIGFwcF9ybHNfY2FuX3JlYWRfdGVuYW50KHBfdGVuYW50KVxuICBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2UuYWRtaW4nKVxuICBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2Uud3JpdGUnKVxuICBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2UucmVhZCcpXG4gIE9SIGFwcF9ybHNfaXNfb3JnX3VuaXRfbWVtYmVyKHBfdGVuYW50LCBwX29yZ191bml0KVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChcbiAgcF90ZW5hbnQgdXVpZCxcbiAgcF9vcmdfdW5pdCB1dWlkXG4pXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgYXBwX3Jsc19jYW5fd3JpdGVfdGVuYW50KHBfdGVuYW50KVxuICBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2UuYWRtaW4nKVxuICBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2Uud3JpdGUnKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2lzX2FkbWluKClcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBFWElTVFMgKFxuICAgIFNFTEVDVCAxXG4gICAgRlJPTSBlZmZlY3RpdmVfcGVybWlzc2lvbnMgZXBcbiAgICBXSEVSRSBlcC5wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG4gICAgICBBTkQgZXAucGVybWlzc2lvbl9rZXkgPSAnbmFtZXNwYWNlLmFkbWluJ1xuICAgICAgQU5EIChlcC5zdGFydHNfYXQgSVMgTlVMTCBPUiBlcC5zdGFydHNfYXQgPD0gbm93KCkpXG4gICAgICBBTkQgKGVwLmV4cGlyZXNfYXQgSVMgTlVMTCBPUiBlcC5leHBpcmVzX2F0ID49IG5vdygpKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHBfdGVuYW50IHV1aWQpXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgYXBwX3Jsc190ZW5hbnRfcGVybWlzc2lvbihwX3RlbmFudCwgJ25hbWVzcGFjZS5hZG1pbicpXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4oXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHBfdGVuYW50KVxuICBPUiAoXG4gICAgcF9vcmdfdW5pdCBJUyBOT1QgTlVMTFxuICAgIEFORCBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24ocF90ZW5hbnQsIHBfb3JnX3VuaXQsICduYW1lc3BhY2UuYWRtaW4nKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfaXNfc2NvcGVfYWRtaW4oXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfc2NvcGVfa2luZCB0ZXh0LFxuICBwX3Njb3BlX2lkIHRleHRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBDQVNFXG4gICAgV0hFTiBwX3Njb3BlX2tpbmQgPSAndGVuYW50JyBUSEVOIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHBfdGVuYW50KVxuICAgIFdIRU4gcF9zY29wZV9raW5kID0gJ29yZ191bml0JyBUSEVOIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4oXG4gICAgICBwX3RlbmFudCxcbiAgICAgIHBfc2NvcGVfaWQ6OnV1aWRcbiAgICApXG4gICAgV0hFTiBwX3Njb3BlX2tpbmQgPSAncmVzb3VyY2UnIFRIRU4gRVhJU1RTIChcbiAgICAgIFNFTEVDVCAxXG4gICAgICBGUk9NIHByb3RlY3RlZF9yZXNvdXJjZXMgclxuICAgICAgV0hFUkUgci5pZCA9IHBfc2NvcGVfaWQ6OnV1aWRcbiAgICAgICAgQU5EIHIudGVuYW50X2lkID0gcF90ZW5hbnRcbiAgICAgICAgQU5EIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4ocF90ZW5hbnQsIHIub3JnX3VuaXRfaWQpXG4gICAgKVxuICAgIEVMU0UgZmFsc2VcbiAgRU5EXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX2FkbWluX3VzZXIocF91c2VyX2lkIHV1aWQpXG5SRVRVUk5TIGJvb2xlYW5cbkxBTkdVQUdFIHNxbFxuU1RBQkxFXG5TRUNVUklUWSBERUZJTkVSXG4ke0ZVTkNUSU9OX1NFQVJDSF9QQVRIfVxuQVMgJGZuJFxuICBTRUxFQ1QgRVhJU1RTIChcbiAgICBTRUxFQ1QgMVxuICAgIEZST00gdGVuYW50X21lbWJlcnNoaXBzIHRtXG4gICAgV0hFUkUgdG0udXNlcl9pZCA9IHBfdXNlcl9pZFxuICAgICAgQU5EIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHRtLnRlbmFudF9pZClcbiAgKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl9yZWFkX2dyb3VwKFxuICBwX3RlbmFudCB1dWlkLFxuICBwX2dyb3VwIHV1aWRcbilcblJFVFVSTlMgYm9vbGVhblxuTEFOR1VBR0Ugc3FsXG5TVEFCTEVcblNFQ1VSSVRZIERFRklORVJcbiR7RlVOQ1RJT05fU0VBUkNIX1BBVEh9XG5BUyAkZm4kXG4gIFNFTEVDVCBFWElTVFMgKFxuICAgIFNFTEVDVCAxXG4gICAgRlJPTSBncm91cHMgZ1xuICAgIFdIRVJFIGcuaWQgPSBwX2dyb3VwXG4gICAgICBBTkQgZy50ZW5hbnRfaWQgPSBwX3RlbmFudFxuICAgICAgQU5EIChcbiAgICAgICAgKGcub3JnX3VuaXRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19jYW5fcmVhZF90ZW5hbnQocF90ZW5hbnQpKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgZy5vcmdfdW5pdF9pZCBJUyBOT1QgTlVMTFxuICAgICAgICAgIEFORCBhcHBfcmxzX2Nhbl9yZWFkX29yZ191bml0KHBfdGVuYW50LCBnLm9yZ191bml0X2lkKVxuICAgICAgICApXG4gICAgICApXG4gIClcbiRmbiQ7YCxcbiAgICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfZ3JvdXAgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIGdyb3VwcyBnXG4gICAgV0hFUkUgZy5pZCA9IHBfZ3JvdXBcbiAgICAgIEFORCBnLnRlbmFudF9pZCA9IHBfdGVuYW50XG4gICAgICBBTkQgKFxuICAgICAgICAoZy5vcmdfdW5pdF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQocF90ZW5hbnQpKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgZy5vcmdfdW5pdF9pZCBJUyBOT1QgTlVMTFxuICAgICAgICAgIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChwX3RlbmFudCwgZy5vcmdfdW5pdF9pZClcbiAgICAgICAgKVxuICAgICAgKVxuICApXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3JlYWRfcmVzb3VyY2UoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfcmVzb3VyY2UgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHByb3RlY3RlZF9yZXNvdXJjZXMgclxuICAgIFdIRVJFIHIuaWQgPSBwX3Jlc291cmNlXG4gICAgICBBTkQgci50ZW5hbnRfaWQgPSBwX3RlbmFudFxuICAgICAgQU5EIChcbiAgICAgICAgci5vd25lcl9wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpXG4gICAgICAgIE9SIGFwcF9ybHNfaXNfb3JnX3VuaXRfYWRtaW4ocF90ZW5hbnQsIHIub3JnX3VuaXRfaWQpXG4gICAgICAgIE9SIChcbiAgICAgICAgICByLnZpc2liaWxpdHkgPSAndGVuYW50J1xuICAgICAgICAgIEFORCBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChwX3RlbmFudClcbiAgICAgICAgKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgci52aXNpYmlsaXR5IElOICgnb3JnX3VuaXQnLCAnb3JnX3N1YnRyZWUnKVxuICAgICAgICAgIEFORCBhcHBfcmxzX2Nhbl9yZWFkX29yZ191bml0KHBfdGVuYW50LCByLm9yZ191bml0X2lkKVxuICAgICAgICApXG4gICAgICAgIE9SIEVYSVNUUyAoXG4gICAgICAgICAgU0VMRUNUIDFcbiAgICAgICAgICBGUk9NIHJlc291cmNlX2dyYW50cyBnXG4gICAgICAgICAgV0hFUkUgZy5yZXNvdXJjZV9pZCA9IHIuaWRcbiAgICAgICAgICAgIEFORCBnLnByaW5jaXBhbF9pZCA9IGFwcF9ybHNfcHJpbmNpcGFsX2lkKClcbiAgICAgICAgICAgIEFORCBnLnBlcm1pc3Npb25fa2V5IElOIChcbiAgICAgICAgICAgICAgJ3Jlc291cmNlLnJlYWQnLFxuICAgICAgICAgICAgICAnbmFtZXNwYWNlLnJlYWQnLFxuICAgICAgICAgICAgICAnbmFtZXNwYWNlLndyaXRlJyxcbiAgICAgICAgICAgICAgJ25hbWVzcGFjZS5hZG1pbidcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIEFORCAoZy5zdGFydHNfYXQgSVMgTlVMTCBPUiBnLnN0YXJ0c19hdCA8PSBub3coKSlcbiAgICAgICAgICAgIEFORCAoZy5leHBpcmVzX2F0IElTIE5VTEwgT1IgZy5leHBpcmVzX2F0ID49IG5vdygpKVxuICAgICAgICApXG4gICAgICApXG4gIClcbiRmbiQ7YCxcbiAgICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19jYW5fd3JpdGVfcmVzb3VyY2UoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfcmVzb3VyY2UgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHByb3RlY3RlZF9yZXNvdXJjZXMgclxuICAgIFdIRVJFIHIuaWQgPSBwX3Jlc291cmNlXG4gICAgICBBTkQgci50ZW5hbnRfaWQgPSBwX3RlbmFudFxuICAgICAgQU5EIChcbiAgICAgICAgYXBwX3Jsc19pc19vcmdfdW5pdF9hZG1pbihwX3RlbmFudCwgci5vcmdfdW5pdF9pZClcbiAgICAgICAgT1IgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQocF90ZW5hbnQsIHIub3JnX3VuaXRfaWQpXG4gICAgICApXG4gIClcbiRmbiQ7YCxcbiAgICBgQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYXBwX3Jsc19pc19yb2xlX2FkbWluKHBfcm9sZSB1dWlkKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIEVYSVNUUyAoXG4gICAgU0VMRUNUIDFcbiAgICBGUk9NIHJvbGVzIHJcbiAgICBXSEVSRSByLmlkID0gcF9yb2xlXG4gICAgICBBTkQgKFxuICAgICAgICAoci50ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVxuICAgICAgICBPUiAoXG4gICAgICAgICAgci50ZW5hbnRfaWQgSVMgTk9UIE5VTExcbiAgICAgICAgICBBTkQgYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4oci50ZW5hbnRfaWQpXG4gICAgICAgIClcbiAgICAgIClcbiAgKVxuJGZuJDtgLFxuICAgIGBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBhcHBfcmxzX2Nhbl9yZWFkX2NyZWRlbnRpYWxfc2NvcGUoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIENBU0VcbiAgICBXSEVOIHBfb3JnX3VuaXQgSVMgTlVMTCBUSEVOIGFwcF9ybHNfY2FuX3JlYWRfdGVuYW50KHBfdGVuYW50KVxuICAgIEVMU0UgYXBwX3Jsc19jYW5fcmVhZF9vcmdfdW5pdChwX3RlbmFudCwgcF9vcmdfdW5pdClcbiAgRU5EXG4kZm4kO2AsXG4gICAgYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGFwcF9ybHNfY2FuX3dyaXRlX2NyZWRlbnRpYWxfc2NvcGUoXG4gIHBfdGVuYW50IHV1aWQsXG4gIHBfb3JnX3VuaXQgdXVpZFxuKVxuUkVUVVJOUyBib29sZWFuXG5MQU5HVUFHRSBzcWxcblNUQUJMRVxuU0VDVVJJVFkgREVGSU5FUlxuJHtGVU5DVElPTl9TRUFSQ0hfUEFUSH1cbkFTICRmbiRcbiAgU0VMRUNUIENBU0VcbiAgICBXSEVOIHBfb3JnX3VuaXQgSVMgTlVMTCBUSEVOIGFwcF9ybHNfY2FuX3dyaXRlX3RlbmFudChwX3RlbmFudClcbiAgICBFTFNFIGFwcF9ybHNfY2FuX3dyaXRlX29yZ191bml0KHBfdGVuYW50LCBwX29yZ191bml0KVxuICBFTkRcbiRmbiQ7YCxcbl07XG5jb25zdCBBRE1JTiA9IFwiYXBwX3Jsc19pc19hZG1pbigpXCI7XG5jb25zdCBURU5BTlRfQURNSU4gPSBcImFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHRlbmFudF9pZClcIjtcbmNvbnN0IFdSSVRFX1NDT1BFID0gXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIG9yZ191bml0X2lkKVwiO1xuY29uc3QgQ1JFREVOVElBTF9SRUFEID0gXCJhcHBfcmxzX2Nhbl9yZWFkX2NyZWRlbnRpYWxfc2NvcGUodGVuYW50X2lkLCBvcmdfdW5pdF9pZClcIjtcbmNvbnN0IENSRURFTlRJQUxfV1JJVEUgPSBcImFwcF9ybHNfY2FuX3dyaXRlX2NyZWRlbnRpYWxfc2NvcGUodGVuYW50X2lkLCBvcmdfdW5pdF9pZClcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIENhbm9uaWNhbCByZWFkZXIvd3JpdGVyL2FkbWluIHBvbGljeSBtYXRyaXguXG4gKiBAc3VtbWFyeSBBZG1pbmlzdHJhdGl2ZSB0YWJsZXMgKHBlcm1pc3Npb25zLCByb2xlcywgcm9sZSBhc3NpZ25tZW50cyxcbiAqIGluaGVyaXRhbmNlIGJsb2Nrcywgc3RvcmFnZSBiaW5kaW5ncykgYXJlIHZpc2libGUgb25seSB0byBhZG1pbnMuIENvbnRlbnRcbiAqIHRhYmxlcyBhcmUgdmlzaWJsZSB0byByZWFkZXJzIGFuZCB3cml0YWJsZSBieSB3cml0ZXJzLiBVc2VycyBhbHdheXMgc2VlIHRoZWlyXG4gKiBvd24gaWRlbnRpdHkgcm93cyBhbmQgdGhlaXIgb3duIGNyZWRlbnRpYWxzL3NlY3JldHMuXG4gKi9cbmV4cG9ydCBjb25zdCBOQU1FU1BBQ0VfUkxTX1BPTElDWV9TRVRTID0gW1xuICAgIHtcbiAgICAgICAgdGFibGU6IFwidGVuYW50c1wiLFxuICAgICAgICBzZWxlY3Q6IFwiYXBwX3Jsc19pc190ZW5hbnRfbWVtYmVyKGlkKSBPUiBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudChpZClcIixcbiAgICAgICAgaW5zZXJ0OiBBRE1JTixcbiAgICAgICAgdXBkYXRlOiBcImFwcF9ybHNfaXNfdGVuYW50X2FkbWluKGlkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4oaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcIm9yZ191bml0c1wiLFxuICAgICAgICBzZWxlY3Q6IFwiYXBwX3Jsc19jYW5fcmVhZF9vcmdfdW5pdCh0ZW5hbnRfaWQsIGlkKSBPUiAocGFyZW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIHBhcmVudF9pZCkpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQodGVuYW50X2lkKSBPUiAocGFyZW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIHBhcmVudF9pZCkpXCIsXG4gICAgICAgIHVwZGF0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIGlkKSBPUiAocGFyZW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIHBhcmVudF9pZCkpXCIsXG4gICAgICAgIGRlbGV0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIGlkKSBPUiAocGFyZW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdCh0ZW5hbnRfaWQsIHBhcmVudF9pZCkpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcIm9yZ191bml0X2Nsb3N1cmVcIixcbiAgICAgICAgc2VsZWN0OiBcImFwcF9ybHNfY2FuX3JlYWRfb3JnX3VuaXQodGVuYW50X2lkLCBkZXNjZW5kYW50X29yZ191bml0X2lkKVwiLFxuICAgICAgICBpbnNlcnQ6IFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBkZXNjZW5kYW50X29yZ191bml0X2lkKVwiLFxuICAgICAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBkZXNjZW5kYW50X29yZ191bml0X2lkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBkZXNjZW5kYW50X29yZ191bml0X2lkKVwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICB0YWJsZTogXCJ1c2Vyc1wiLFxuICAgICAgICBzZWxlY3Q6IFwiaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKSBPUiBhcHBfcmxzX2Nhbl9hZG1pbl91c2VyKGlkKVwiLFxuICAgICAgICBpbnNlcnQ6IEFETUlOLFxuICAgICAgICB1cGRhdGU6IFwiaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKSBPUiBhcHBfcmxzX2Nhbl9hZG1pbl91c2VyKGlkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fYWRtaW5fdXNlcihpZClcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwiZ3JvdXBzXCIsXG4gICAgICAgIHNlbGVjdDogXCJhcHBfcmxzX2Nhbl9yZWFkX2dyb3VwKHRlbmFudF9pZCwgaWQpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2Nhbl93cml0ZV90ZW5hbnQodGVuYW50X2lkKSBPUiAob3JnX3VuaXRfaWQgSVMgTk9UIE5VTEwgQU5EIGFwcF9ybHNfY2FuX3dyaXRlX29yZ191bml0KHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpKVwiLFxuICAgICAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBpZClcIixcbiAgICAgICAgZGVsZXRlOiBcImFwcF9ybHNfY2FuX3dyaXRlX2dyb3VwKHRlbmFudF9pZCwgaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInByaW5jaXBhbHNcIixcbiAgICAgICAgc2VsZWN0OiBcImlkID0gYXBwX3Jsc19wcmluY2lwYWxfaWQoKSBPUiAoa2luZCA9ICd1c2VyJyBBTkQgc3ViamVjdF9pZCA9IGFwcF9ybHNfc3ViamVjdF9pZCgpKSBPUiBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpXCIsXG4gICAgICAgIGluc2VydDogVEVOQU5UX0FETUlOLFxuICAgICAgICB1cGRhdGU6IFRFTkFOVF9BRE1JTixcbiAgICAgICAgZGVsZXRlOiBURU5BTlRfQURNSU4sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInRlbmFudF9tZW1iZXJzaGlwc1wiLFxuICAgICAgICBzZWxlY3Q6IFwidXNlcl9pZDo6dGV4dCA9IGFwcF9ybHNfc3ViamVjdF9pZCgpIE9SIGFwcF9ybHNfY2FuX3JlYWRfdGVuYW50KHRlbmFudF9pZClcIixcbiAgICAgICAgaW5zZXJ0OiBURU5BTlRfQURNSU4sXG4gICAgICAgIHVwZGF0ZTogVEVOQU5UX0FETUlOLFxuICAgICAgICBkZWxldGU6IFRFTkFOVF9BRE1JTixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwib3JnX3VuaXRfbWVtYmVyc2hpcHNcIixcbiAgICAgICAgc2VsZWN0OiBcInVzZXJfaWQ6OnRleHQgPSBhcHBfcmxzX3N1YmplY3RfaWQoKSBPUiBhcHBfcmxzX29yZ191bml0X3Blcm1pc3Npb24odGVuYW50X2lkLCBvcmdfdW5pdF9pZCwgJ25hbWVzcGFjZS5hZG1pbicpIE9SIGFwcF9ybHNfb3JnX3VuaXRfcGVybWlzc2lvbih0ZW5hbnRfaWQsIG9yZ191bml0X2lkLCAnbmFtZXNwYWNlLndyaXRlJykgT1IgYXBwX3Jsc19vcmdfdW5pdF9wZXJtaXNzaW9uKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQsICduYW1lc3BhY2UucmVhZCcpXCIsXG4gICAgICAgIGluc2VydDogV1JJVEVfU0NPUEUsXG4gICAgICAgIHVwZGF0ZTogV1JJVEVfU0NPUEUsXG4gICAgICAgIGRlbGV0ZTogV1JJVEVfU0NPUEUsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcImdyb3VwX21lbWJlcnNoaXBzXCIsXG4gICAgICAgIHNlbGVjdDogXCJhcHBfcmxzX2Nhbl9yZWFkX2dyb3VwKHRlbmFudF9pZCwgZ3JvdXBfaWQpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2Nhbl93cml0ZV9ncm91cCh0ZW5hbnRfaWQsIGdyb3VwX2lkKVwiLFxuICAgICAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfZ3JvdXAodGVuYW50X2lkLCBncm91cF9pZClcIixcbiAgICAgICAgZGVsZXRlOiBcImFwcF9ybHNfY2FuX3dyaXRlX2dyb3VwKHRlbmFudF9pZCwgZ3JvdXBfaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInBlcm1pc3Npb25zXCIsXG4gICAgICAgIHNlbGVjdDogQURNSU4sXG4gICAgICAgIGluc2VydDogQURNSU4sXG4gICAgICAgIHVwZGF0ZTogQURNSU4sXG4gICAgICAgIGRlbGV0ZTogQURNSU4sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInJvbGVzXCIsXG4gICAgICAgIHNlbGVjdDogXCIodGVuYW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpKSBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICAgICAgaW5zZXJ0OiBcIih0ZW5hbnRfaWQgSVMgTk9UIE5VTEwgQU5EIGFwcF9ybHNfaXNfdGVuYW50X2FkbWluKHRlbmFudF9pZCkpIE9SICh0ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVwiLFxuICAgICAgICB1cGRhdGU6IFwiKHRlbmFudF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19pc190ZW5hbnRfYWRtaW4odGVuYW50X2lkKSkgT1IgKHRlbmFudF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2lzX2FkbWluKCkpXCIsXG4gICAgICAgIGRlbGV0ZTogXCIodGVuYW50X2lkIElTIE5PVCBOVUxMIEFORCBhcHBfcmxzX2lzX3RlbmFudF9hZG1pbih0ZW5hbnRfaWQpKSBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwicm9sZV9wZXJtaXNzaW9uc1wiLFxuICAgICAgICBzZWxlY3Q6IFwiYXBwX3Jsc19pc19yb2xlX2FkbWluKHJvbGVfaWQpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2lzX3JvbGVfYWRtaW4ocm9sZV9pZClcIixcbiAgICAgICAgdXBkYXRlOiBcImFwcF9ybHNfaXNfcm9sZV9hZG1pbihyb2xlX2lkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19pc19yb2xlX2FkbWluKHJvbGVfaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInJvbGVfYXNzaWdubWVudHNcIixcbiAgICAgICAgc2VsZWN0OiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgaW5zZXJ0OiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgdXBkYXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgZGVsZXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwiaW5oZXJpdGFuY2VfYmxvY2tzXCIsXG4gICAgICAgIHNlbGVjdDogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gICAgICAgIHVwZGF0ZTogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gICAgICAgIGRlbGV0ZTogXCJhcHBfcmxzX2lzX29yZ191bml0X2FkbWluKHRlbmFudF9pZCwgb3JnX3VuaXRfaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcInByb3RlY3RlZF9yZXNvdXJjZXNcIixcbiAgICAgICAgc2VsZWN0OiBcImFwcF9ybHNfY2FuX3JlYWRfcmVzb3VyY2UodGVuYW50X2lkLCBpZClcIixcbiAgICAgICAgaW5zZXJ0OiBcImFwcF9ybHNfY2FuX3dyaXRlX3RlbmFudCh0ZW5hbnRfaWQpIE9SIChvcmdfdW5pdF9pZCBJUyBOT1QgTlVMTCBBTkQgYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQodGVuYW50X2lkLCBvcmdfdW5pdF9pZCkpXCIsXG4gICAgICAgIHVwZGF0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZSh0ZW5hbnRfaWQsIGlkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfcmVzb3VyY2UodGVuYW50X2lkLCBpZClcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwicmVzb3VyY2VfZ3JhbnRzXCIsXG4gICAgICAgIHNlbGVjdDogXCJwcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIGFwcF9ybHNfY2FuX3JlYWRfcmVzb3VyY2UodGVuYW50X2lkLCByZXNvdXJjZV9pZClcIixcbiAgICAgICAgaW5zZXJ0OiBcImFwcF9ybHNfY2FuX3dyaXRlX3Jlc291cmNlKHRlbmFudF9pZCwgcmVzb3VyY2VfaWQpXCIsXG4gICAgICAgIHVwZGF0ZTogXCJhcHBfcmxzX2Nhbl93cml0ZV9yZXNvdXJjZSh0ZW5hbnRfaWQsIHJlc291cmNlX2lkKVwiLFxuICAgICAgICBkZWxldGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfcmVzb3VyY2UodGVuYW50X2lkLCByZXNvdXJjZV9pZClcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwiZWZmZWN0aXZlX3Blcm1pc3Npb25zXCIsXG4gICAgICAgIHNlbGVjdDogXCJwcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIGFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgaW5zZXJ0OiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgdXBkYXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICAgICAgZGVsZXRlOiBcImFwcF9ybHNfaXNfc2NvcGVfYWRtaW4odGVuYW50X2lkLCBzY29wZV9raW5kLCBzY29wZV9pZClcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwic3RvcmFnZV9iaW5kaW5nc1wiLFxuICAgICAgICBzZWxlY3Q6IFRFTkFOVF9BRE1JTixcbiAgICAgICAgaW5zZXJ0OiBURU5BTlRfQURNSU4sXG4gICAgICAgIHVwZGF0ZTogVEVOQU5UX0FETUlOLFxuICAgICAgICBkZWxldGU6IFRFTkFOVF9BRE1JTixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFibGU6IFwidGVuYW50X3Byb2ZpbGVzXCIsXG4gICAgICAgIHNlbGVjdDogXCJhcHBfcmxzX2lzX3RlbmFudF9tZW1iZXIodGVuYW50X2lkKSBPUiBhcHBfcmxzX2Nhbl9yZWFkX3RlbmFudCh0ZW5hbnRfaWQpXCIsXG4gICAgICAgIGluc2VydDogVEVOQU5UX0FETUlOLFxuICAgICAgICB1cGRhdGU6IFRFTkFOVF9BRE1JTixcbiAgICAgICAgZGVsZXRlOiBURU5BTlRfQURNSU4sXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcIm9yZ191bml0X3Byb2ZpbGVzXCIsXG4gICAgICAgIHNlbGVjdDogXCJhcHBfcmxzX2Nhbl9yZWFkX29yZ191bml0KGFwcF9ybHNfb3JnX3VuaXRfdGVuYW50KG9yZ191bml0X2lkKSwgb3JnX3VuaXRfaWQpXCIsXG4gICAgICAgIGluc2VydDogXCJhcHBfcmxzX2Nhbl93cml0ZV9vcmdfdW5pdChhcHBfcmxzX29yZ191bml0X3RlbmFudChvcmdfdW5pdF9pZCksIG9yZ191bml0X2lkKVwiLFxuICAgICAgICB1cGRhdGU6IFwiYXBwX3Jsc19jYW5fd3JpdGVfb3JnX3VuaXQoYXBwX3Jsc19vcmdfdW5pdF90ZW5hbnQob3JnX3VuaXRfaWQpLCBvcmdfdW5pdF9pZClcIixcbiAgICAgICAgZGVsZXRlOiBcImFwcF9ybHNfY2FuX3dyaXRlX29yZ191bml0KGFwcF9ybHNfb3JnX3VuaXRfdGVuYW50KG9yZ191bml0X2lkKSwgb3JnX3VuaXRfaWQpXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhYmxlOiBcImNyZWRlbnRpYWxzXCIsXG4gICAgICAgIHNlbGVjdDogXCJvd25lcl9wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIFwiICsgQ1JFREVOVElBTF9SRUFELFxuICAgICAgICBpbnNlcnQ6IENSRURFTlRJQUxfV1JJVEUsXG4gICAgICAgIHVwZGF0ZTogQ1JFREVOVElBTF9XUklURSxcbiAgICAgICAgZGVsZXRlOiBDUkVERU5USUFMX1dSSVRFLFxuICAgIH0sXG4gICAge1xuICAgICAgICB0YWJsZTogXCJzZWNyZXRzXCIsXG4gICAgICAgIHNlbGVjdDogXCJvd25lcl9wcmluY2lwYWxfaWQgPSBhcHBfcmxzX3ByaW5jaXBhbF9pZCgpIE9SIFwiICtcbiAgICAgICAgICAgIENSRURFTlRJQUxfUkVBRCArXG4gICAgICAgICAgICBcIiBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICAgICAgaW5zZXJ0OiBDUkVERU5USUFMX1dSSVRFICsgXCIgT1IgKHRlbmFudF9pZCBJUyBOVUxMIEFORCBhcHBfcmxzX2lzX2FkbWluKCkpXCIsXG4gICAgICAgIHVwZGF0ZTogQ1JFREVOVElBTF9XUklURSArIFwiIE9SICh0ZW5hbnRfaWQgSVMgTlVMTCBBTkQgYXBwX3Jsc19pc19hZG1pbigpKVwiLFxuICAgICAgICBkZWxldGU6IENSRURFTlRJQUxfV1JJVEUgKyBcIiBPUiAodGVuYW50X2lkIElTIE5VTEwgQU5EIGFwcF9ybHNfaXNfYWRtaW4oKSlcIixcbiAgICB9LFxuXTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBlbmFibGUvZm9yY2UgYW5kIHBvbGljeSBEREwgZm9yIGEgcG9saWN5IHNldC5cbiAqIEBzdW1tYXJ5IGBEUk9QIFBPTElDWSBJRiBFWElTVFNgIG1ha2VzIHRoZSBvdXRwdXQgc2FmZSB0byByZXBsYXkgb24gZXZlcnlcbiAqIGRlcGxveW1lbnQuIE1pc3NpbmcgY29tbWFuZCBleHByZXNzaW9ucyBsZWF2ZSB0aGF0IGNvbW1hbmQgZGVuaWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmxzUG9saWN5U3RhdGVtZW50cyhwb2xpY3lTZXRzID0gTkFNRVNQQUNFX1JMU19QT0xJQ1lfU0VUUykge1xuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNldCBvZiBwb2xpY3lTZXRzKSB7XG4gICAgICAgIGlmIChzZXQuZW5hYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RhdGVtZW50cy5wdXNoKGBBTFRFUiBUQUJMRSAke3NldC50YWJsZX0gRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTtgLCBgQUxURVIgVEFCTEUgJHtzZXQudGFibGV9IEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTtgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmVmaXggPSBzZXQudGFibGUucmVwbGFjZSgvW15BLVphLXowLTlfXS9nLCBcIl9cIik7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFwic2VsZWN0XCIsXG4gICAgICAgICAgICAgICAgc2V0LnNlbGVjdCxcbiAgICAgICAgICAgICAgICAobmFtZSwgZXhwcmVzc2lvbikgPT4gYENSRUFURSBQT0xJQ1kgJHtuYW1lfSBPTiAke3NldC50YWJsZX0gRk9SIFNFTEVDVCBVU0lORyAoJHtleHByZXNzaW9ufSk7YCxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgXCJpbnNlcnRcIixcbiAgICAgICAgICAgICAgICBzZXQuaW5zZXJ0LFxuICAgICAgICAgICAgICAgIChuYW1lLCBleHByZXNzaW9uKSA9PiBgQ1JFQVRFIFBPTElDWSAke25hbWV9IE9OICR7c2V0LnRhYmxlfSBGT1IgSU5TRVJUIFdJVEggQ0hFQ0sgKCR7ZXhwcmVzc2lvbn0pO2AsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFwidXBkYXRlXCIsXG4gICAgICAgICAgICAgICAgc2V0LnVwZGF0ZSxcbiAgICAgICAgICAgICAgICAobmFtZSwgZXhwcmVzc2lvbikgPT4gYENSRUFURSBQT0xJQ1kgJHtuYW1lfSBPTiAke3NldC50YWJsZX0gRk9SIFVQREFURSBVU0lORyAoJHtleHByZXNzaW9ufSkgV0lUSCBDSEVDSyAoJHtleHByZXNzaW9ufSk7YCxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgXCJkZWxldGVcIixcbiAgICAgICAgICAgICAgICBzZXQuZGVsZXRlLFxuICAgICAgICAgICAgICAgIChuYW1lLCBleHByZXNzaW9uKSA9PiBgQ1JFQVRFIFBPTElDWSAke25hbWV9IE9OICR7c2V0LnRhYmxlfSBGT1IgREVMRVRFIFVTSU5HICgke2V4cHJlc3Npb259KTtgLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChjb25zdCBbY29tbWFuZCwgZXhwcmVzc2lvbiwgcmVuZGVyXSBvZiBjb21tYW5kcykge1xuICAgICAgICAgICAgaWYgKCFleHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGAke3ByZWZpeH1fJHtjb21tYW5kfV9wb2xpY3lgO1xuICAgICAgICAgICAgc3RhdGVtZW50cy5wdXNoKGBEUk9QIFBPTElDWSBJRiBFWElTVFMgJHtuYW1lfSBPTiAke3NldC50YWJsZX07YCwgcmVuZGVyKG5hbWUsIGV4cHJlc3Npb24pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdGVtZW50cztcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZ1bGwgbmFtZXNwYWNlIFJMUyBib290c3RyYXAgc3RhdGVtZW50IGxpc3QuXG4gKiBAc3VtbWFyeSBIZWxwZXIgZnVuY3Rpb25zIGZvbGxvd2VkIGJ5IGVuYWJsZS9mb3JjZSBhbmQgcG9saWN5IERETCBmb3IgZXZlcnlcbiAqIHRhYmxlIGluIHtAbGluayBSTFNfUFJPVEVDVEVEX1RBQkxFU30uIEFwcGx5IGFmdGVyIHRoZSBuYW1lc3BhY2Ugc2NoZW1hXG4gKiBleGlzdHMgYW5kIGJlZm9yZSByZXF1ZXN0LXNjb3BlZCB0cmFmZmljIHJlYWNoZXMgdGhlIGRhdGFiYXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmxzQm9vdHN0cmFwU3RhdGVtZW50cygpIHtcbiAgICByZXR1cm4gWy4uLlJMU19GVU5DVElPTl9TVEFURU1FTlRTLCAuLi5ybHNQb2xpY3lTdGF0ZW1lbnRzKCldO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGFibGVzIHRhcmdldGVkIGJ5IHRoZSBidW5kbGVkIG5hbWVzcGFjZSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJsc1BvbGljeVRhYmxlcyhwb2xpY3lTZXRzID0gTkFNRVNQQUNFX1JMU19QT0xJQ1lfU0VUUykge1xuICAgIHJldHVybiBwb2xpY3lTZXRzLm1hcCgoc2V0KSA9PiBzZXQudGFibGUpO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQXNzZXJ0cyB0aGF0IHRoZSBidW5kbGVkIHBvbGljeSB0ZW1wbGF0ZSBjb3ZlcnMgZXZlcnkgcHJvdGVjdGVkXG4gKiB0YWJsZS4gRXhwb3NlZCBmb3IgZGVwbG95bWVudCBjaGVja3MgYW5kIHVuaXQgdGVzdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRSbHNUYWJsZUNvdmVyYWdlKHBvbGljeVNldHMgPSBOQU1FU1BBQ0VfUkxTX1BPTElDWV9TRVRTKSB7XG4gICAgY29uc3QgY292ZXJlZCA9IG5ldyBTZXQocmxzUG9saWN5VGFibGVzKHBvbGljeVNldHMpKTtcbiAgICBjb25zdCBtaXNzaW5nID0gUkxTX1BST1RFQ1RFRF9UQUJMRVMuZmlsdGVyKCh0YWJsZSkgPT4gIWNvdmVyZWQuaGFzKHRhYmxlKSk7XG4gICAgaWYgKG1pc3NpbmcubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBSTFMgdGVtcGxhdGUgaXMgbWlzc2luZyB0YWJsZXM6ICR7bWlzc2luZy5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY214ekxuUmxiWEJzWVhSbExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMMjVoYldWemNHRmpaWE12Y214ekwzSnNjeTUwWlcxd2JHRjBaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3T3pzN096czdPenRIUVdGSE8wRkJRMGdzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlJYaEVMRTlCUVU4c1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4WlFVRlpMRVZCUVVVc01rSkJRWGRDTzBGQlJYSkZMRTFCUVUwc2IwSkJRVzlDTEVkQlFVY3NiVU5CUVcxRExFTkJRVU03UVVGRmFrVTdPenM3T3pzN096dEhRVk5ITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2RVSkJRWFZDTEVkQlFYTkNPMGxCUTNoRU96czdPenR0UTBGTGFVTXNXVUZCV1N4RFFVRkRMRk5CUVZNN1RVRkRia1E3U1VGRFNqczdPenM3UlVGTFFTeHZRa0ZCYjBJN096czdPMDFCUzJoQ08wbEJRMG83T3pzN096czdPMFZCVVVFc2IwSkJRVzlDT3pzN096czdUVUZOYUVJN1NVRkRTaXdyUlVGQkswVTdTVUZETDBVN096czdPMFZCUzBFc2IwSkJRVzlDT3pzN096dE5RVXRvUWp0SlFVTktPenM3T3pzN096czdPMFZCVlVFc2IwSkJRVzlDT3pzN096czdPenM3T3pzN08wMUJZV2hDTzBsQlEwbzdPenM3T3pzN08wVkJVVUVzYjBKQlFXOUNPenM3T3pzN096dE5RVkZvUWp0SlFVTktPenM3T3pzN096czdSVUZUUVN4dlFrRkJiMEk3T3pzN096czdPenM3T3pzN096czdPMDFCYVVKb1FqdEpRVU5LT3pzN096dEZRVXRCTEc5Q1FVRnZRanM3T3pzN096czdPMDFCVTJoQ08wbEJRMG83T3pzN096czdPMFZCVVVFc2IwSkJRVzlDT3pzN096czdPenM3TzAxQlZXaENPMGxCUTBvN096czdPMFZCUzBFc2IwSkJRVzlDT3pzN096dE5RVXRvUWp0SlFVTktPenM3T3p0RlFVdEJMRzlDUVVGdlFqczdPenROUVVsb1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdPenROUVU5b1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdUVUZMYUVJN1NVRkRTanM3T3pzN1JVRkxRU3h2UWtGQmIwSTdPenM3T3pzN096czdUVUZWYUVJN1NVRkRTanM3T3pzN1JVRkxRU3h2UWtGQmIwSTdPenROUVVkb1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdPenROUVU5b1FqdEpRVU5LT3pzN096czdPenM3UlVGVFFTeHZRa0ZCYjBJN096czdPenM3T3pzN096czdPenM3TzAxQmFVSm9RanRKUVVOS096czdPenRGUVV0QkxHOUNRVUZ2UWpzN096czdPenM3VFVGUmFFSTdTVUZEU2pzN096czdPenM3UlVGUlFTeHZRa0ZCYjBJN096czdPenM3T3pzN096czdPenROUVdWb1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdPenM3T3pzN096czdPMDFCWldoQ08wbEJRMG83T3pzN096czdPMFZCVVVFc2IwSkJRVzlDT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMDFCYTBOb1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdPenM3T3pzN08wMUJXV2hDTzBsQlEwbzdPenM3TzBWQlMwRXNiMEpCUVc5Q096czdPenM3T3pzN096czdPenROUVdOb1FqdEpRVU5LT3pzN096czdPenRGUVZGQkxHOUNRVUZ2UWpzN096czdPMDFCVFdoQ08wbEJRMG83T3pzN096czdPMFZCVVVFc2IwSkJRVzlDT3pzN096czdUVUZOYUVJN1EwRkRUQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeExRVUZMTEVkQlFVY3NiMEpCUVc5Q0xFTkJRVU03UVVGRGJrTXNUVUZCVFN4WlFVRlpMRWRCUVVjc2IwTkJRVzlETEVOQlFVTTdRVUZETVVRc1RVRkJUU3hYUVVGWExFZEJRVWNzYjBSQlFXOUVMRU5CUVVNN1FVRkRla1VzVFVGQlRTeGxRVUZsTEVkQlEyNUNMREpFUVVFeVJDeERRVUZETzBGQlF6bEVMRTFCUVUwc1owSkJRV2RDTEVkQlEzQkNMRFJFUVVFMFJDeERRVUZETzBGQlJTOUVPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEhsQ1FVRjVRaXhIUVVFMFFqdEpRVU5vUlR0UlFVTkZMRXRCUVVzc1JVRkJSU3hUUVVGVE8xRkJRMmhDTEUxQlFVMHNSVUZCUlN3MlJFRkJOa1E3VVVGRGNrVXNUVUZCVFN4RlFVRkZMRXRCUVVzN1VVRkRZaXhOUVVGTkxFVkJRVVVzTmtKQlFUWkNPMUZCUTNKRExFMUJRVTBzUlVGQlJTdzJRa0ZCTmtJN1MwRkRkRU03U1VGRFJEdFJRVU5GTEV0QlFVc3NSVUZCUlN4WFFVRlhPMUZCUTJ4Q0xFMUJRVTBzUlVGRFNpd3dTRUZCTUVnN1VVRkROVWdzVFVGQlRTeEZRVU5LTEhGSVFVRnhTRHRSUVVOMlNDeE5RVUZOTEVWQlEwb3NNa2hCUVRKSU8xRkJRemRJTEUxQlFVMHNSVUZEU2l3eVNFRkJNa2c3UzBGRE9VZzdTVUZEUkR0UlFVTkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSTdVVUZEZWtJc1RVRkJUU3hGUVVOS0xEaEVRVUU0UkR0UlFVTm9SU3hOUVVGTkxFVkJRMG9zSzBSQlFTdEVPMUZCUTJwRkxFMUJRVTBzUlVGRFNpd3JSRUZCSzBRN1VVRkRha1VzVFVGQlRTeEZRVU5LTEN0RVFVRXJSRHRMUVVOc1JUdEpRVU5FTzFGQlEwVXNTMEZCU3l4RlFVRkZMRTlCUVU4N1VVRkRaQ3hOUVVGTkxFVkJRMG9zSzBSQlFTdEVPMUZCUTJwRkxFMUJRVTBzUlVGQlJTeExRVUZMTzFGQlEySXNUVUZCVFN4RlFVTktMQ3RFUVVFclJEdFJRVU5xUlN4TlFVRk5MRVZCUVVVc05FSkJRVFJDTzB0QlEzSkRPMGxCUTBRN1VVRkRSU3hMUVVGTExFVkJRVVVzVVVGQlVUdFJRVU5tTEUxQlFVMHNSVUZCUlN4MVEwRkJkVU03VVVGREwwTXNUVUZCVFN4RlFVTktMSGxJUVVGNVNEdFJRVU16U0N4TlFVRk5MRVZCUVVVc2QwTkJRWGRETzFGQlEyaEVMRTFCUVUwc1JVRkJSU3gzUTBGQmQwTTdTMEZEYWtRN1NVRkRSRHRSUVVORkxFdEJRVXNzUlVGQlJTeFpRVUZaTzFGQlEyNUNMRTFCUVUwc1JVRkRTaXcwU0VGQk5FZzdVVUZET1Vnc1RVRkJUU3hGUVVGRkxGbEJRVms3VVVGRGNFSXNUVUZCVFN4RlFVRkZMRmxCUVZrN1VVRkRjRUlzVFVGQlRTeEZRVUZGTEZsQlFWazdTMEZEY2tJN1NVRkRSRHRSUVVORkxFdEJRVXNzUlVGQlJTeHZRa0ZCYjBJN1VVRkRNMElzVFVGQlRTeEZRVU5LTERSRlFVRTBSVHRSUVVNNVJTeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTndRaXhOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU53UWl4TlFVRk5MRVZCUVVVc1dVRkJXVHRMUVVOeVFqdEpRVU5FTzFGQlEwVXNTMEZCU3l4RlFVRkZMSE5DUVVGelFqdFJRVU0zUWl4TlFVRk5MRVZCUTBvc2JWRkJRVzFSTzFGQlEzSlJMRTFCUVUwc1JVRkJSU3hYUVVGWE8xRkJRMjVDTEUxQlFVMHNSVUZCUlN4WFFVRlhPMUZCUTI1Q0xFMUJRVTBzUlVGQlJTeFhRVUZYTzB0QlEzQkNPMGxCUTBRN1VVRkRSU3hMUVVGTExFVkJRVVVzYlVKQlFXMUNPMUZCUXpGQ0xFMUJRVTBzUlVGQlJTdzJRMEZCTmtNN1VVRkRja1FzVFVGQlRTeEZRVUZGTERoRFFVRTRRenRSUVVOMFJDeE5RVUZOTEVWQlFVVXNPRU5CUVRoRE8xRkJRM1JFTEUxQlFVMHNSVUZCUlN3NFEwRkJPRU03UzBGRGRrUTdTVUZEUkR0UlFVTkZMRXRCUVVzc1JVRkJSU3hoUVVGaE8xRkJRM0JDTEUxQlFVMHNSVUZCUlN4TFFVRkxPMUZCUTJJc1RVRkJUU3hGUVVGRkxFdEJRVXM3VVVGRFlpeE5RVUZOTEVWQlFVVXNTMEZCU3p0UlFVTmlMRTFCUVUwc1JVRkJSU3hMUVVGTE8wdEJRMlE3U1VGRFJEdFJRVU5GTEV0QlFVc3NSVUZCUlN4UFFVRlBPMUZCUTJRc1RVRkJUU3hGUVVOS0xEaEhRVUU0Unp0UlFVTm9TQ3hOUVVGTkxFVkJRMG9zT0VkQlFUaEhPMUZCUTJoSUxFMUJRVTBzUlVGRFNpdzRSMEZCT0VjN1VVRkRhRWdzVFVGQlRTeEZRVU5LTERoSFFVRTRSenRMUVVOcVNEdEpRVU5FTzFGQlEwVXNTMEZCU3l4RlFVRkZMR3RDUVVGclFqdFJRVU42UWl4TlFVRk5MRVZCUVVVc1owTkJRV2RETzFGQlEzaERMRTFCUVUwc1JVRkJSU3huUTBGQlowTTdVVUZEZUVNc1RVRkJUU3hGUVVGRkxHZERRVUZuUXp0UlFVTjRReXhOUVVGTkxFVkJRVVVzWjBOQlFXZERPMHRCUTNwRE8wbEJRMFE3VVVGRFJTeExRVUZMTEVWQlFVVXNhMEpCUVd0Q08xRkJRM3BDTEUxQlFVMHNSVUZCUlN4NVJFRkJlVVE3VVVGRGFrVXNUVUZCVFN4RlFVRkZMSGxFUVVGNVJEdFJRVU5xUlN4TlFVRk5MRVZCUVVVc2VVUkJRWGxFTzFGQlEycEZMRTFCUVUwc1JVRkJSU3g1UkVGQmVVUTdTMEZEYkVVN1NVRkRSRHRSUVVORkxFdEJRVXNzUlVGQlJTeHZRa0ZCYjBJN1VVRkRNMElzVFVGQlRTeEZRVUZGTEcxRVFVRnRSRHRSUVVNelJDeE5RVUZOTEVWQlFVVXNiVVJCUVcxRU8xRkJRek5FTEUxQlFVMHNSVUZCUlN4dFJFRkJiVVE3VVVGRE0wUXNUVUZCVFN4RlFVRkZMRzFFUVVGdFJEdExRVU0xUkR0SlFVTkVPMUZCUTBVc1MwRkJTeXhGUVVGRkxIRkNRVUZ4UWp0UlFVTTFRaXhOUVVGTkxFVkJRVVVzTUVOQlFUQkRPMUZCUTJ4RUxFMUJRVTBzUlVGRFNpeDVTRUZCZVVnN1VVRkRNMGdzVFVGQlRTeEZRVUZGTERKRFFVRXlRenRSUVVOdVJDeE5RVUZOTEVWQlFVVXNNa05CUVRKRE8wdEJRM0JFTzBsQlEwUTdVVUZEUlN4TFFVRkxMRVZCUVVVc2FVSkJRV2xDTzFGQlEzaENMRTFCUVUwc1JVRkRTaXcwUmtGQk5FWTdVVUZET1VZc1RVRkJUU3hGUVVGRkxHOUVRVUZ2UkR0UlFVTTFSQ3hOUVVGTkxFVkJRVVVzYjBSQlFXOUVPMUZCUXpWRUxFMUJRVTBzUlVGQlJTeHZSRUZCYjBRN1MwRkROMFE3U1VGRFJEdFJRVU5GTEV0QlFVc3NSVUZCUlN4MVFrRkJkVUk3VVVGRE9VSXNUVUZCVFN4RlFVTktMR3RIUVVGclJ6dFJRVU53Unl4TlFVRk5MRVZCUVVVc2VVUkJRWGxFTzFGQlEycEZMRTFCUVUwc1JVRkJSU3g1UkVGQmVVUTdVVUZEYWtVc1RVRkJUU3hGUVVGRkxIbEVRVUY1UkR0TFFVTnNSVHRKUVVORU8xRkJRMFVzUzBGQlN5eEZRVUZGTEd0Q1FVRnJRanRSUVVONlFpeE5RVUZOTEVWQlFVVXNXVUZCV1R0UlFVTndRaXhOUVVGTkxFVkJRVVVzV1VGQldUdFJRVU53UWl4TlFVRk5MRVZCUVVVc1dVRkJXVHRSUVVOd1FpeE5RVUZOTEVWQlFVVXNXVUZCV1R0TFFVTnlRanRKUVVORU8xRkJRMFVzUzBGQlN5eEZRVUZGTEdsQ1FVRnBRanRSUVVONFFpeE5RVUZOTEVWQlEwb3NNa1ZCUVRKRk8xRkJRemRGTEUxQlFVMHNSVUZCUlN4WlFVRlpPMUZCUTNCQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzFGQlEzQkNMRTFCUVUwc1JVRkJSU3haUVVGWk8wdEJRM0pDTzBsQlEwUTdVVUZEUlN4TFFVRkxMRVZCUVVVc2JVSkJRVzFDTzFGQlF6RkNMRTFCUVUwc1JVRkRTaXc0UlVGQk9FVTdVVUZEYUVZc1RVRkJUU3hGUVVOS0xDdEZRVUVyUlR0UlFVTnFSaXhOUVVGTkxFVkJRMG9zSzBWQlFTdEZPMUZCUTJwR0xFMUJRVTBzUlVGRFNpd3JSVUZCSzBVN1MwRkRiRVk3U1VGRFJEdFJRVU5GTEV0QlFVc3NSVUZCUlN4aFFVRmhPMUZCUTNCQ0xFMUJRVTBzUlVGRFNpeHBSRUZCYVVRc1IwRkJSeXhsUVVGbE8xRkJRM0pGTEUxQlFVMHNSVUZCUlN4blFrRkJaMEk3VVVGRGVFSXNUVUZCVFN4RlFVRkZMR2RDUVVGblFqdFJRVU40UWl4TlFVRk5MRVZCUVVVc1owSkJRV2RDTzB0QlEzcENPMGxCUTBRN1VVRkRSU3hMUVVGTExFVkJRVVVzVTBGQlV6dFJRVU5vUWl4TlFVRk5MRVZCUTBvc2FVUkJRV2xFTzFsQlEycEVMR1ZCUVdVN1dVRkRaaXhuUkVGQlowUTdVVUZEYkVRc1RVRkJUU3hGUVVOS0xHZENRVUZuUWl4SFFVRkhMR2RFUVVGblJEdFJRVU55UlN4TlFVRk5MRVZCUTBvc1owSkJRV2RDTEVkQlFVY3NaMFJCUVdkRU8xRkJRM0pGTEUxQlFVMHNSVUZEU2l4blFrRkJaMElzUjBGQlJ5eG5SRUZCWjBRN1MwRkRkRVU3UTBGRFJpeERRVUZETzBGQlJVWTdPenM3UjBGSlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGRGFrTXNZVUZCYzBNc2VVSkJRWGxDTzBsQlJTOUVMRTFCUVUwc1ZVRkJWU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU5vUXl4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxGVkJRVlVzUlVGQlJTeERRVUZETzFGQlF6ZENMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUzBGQlN5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVU5pTEdWQlFXVXNSMEZCUnl4RFFVRkRMRXRCUVVzc05rSkJRVFpDTEVWQlEzSkVMR1ZCUVdVc1IwRkJSeXhEUVVGRExFdEJRVXNzTkVKQlFUUkNMRU5CUTNKRUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZUVRc1RVRkJUU3hSUVVGUkxFZEJSVlk3V1VGRFJqdG5Ra0ZEUlN4UlFVRlJPMmRDUVVOU0xFZEJRVWNzUTBGQlF5eE5RVUZOTzJkQ1FVTldMRU5CUVVNc1NVRkJTU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlEyNUNMR2xDUVVGcFFpeEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRXRCUVVzc2MwSkJRWE5DTEZWQlFWVXNTVUZCU1R0aFFVTTFSVHRaUVVORU8yZENRVU5GTEZGQlFWRTdaMEpCUTFJc1IwRkJSeXhEUVVGRExFMUJRVTA3WjBKQlExWXNRMEZCUXl4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRGJrSXNhVUpCUVdsQ0xFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNTMEZCU3l3eVFrRkJNa0lzVlVGQlZTeEpRVUZKTzJGQlEycEdPMWxCUTBRN1owSkJRMFVzVVVGQlVUdG5Ra0ZEVWl4SFFVRkhMRU5CUVVNc1RVRkJUVHRuUWtGRFZpeERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVOdVFpeHBRa0ZCYVVJc1NVRkJTU3hQUVVGUExFZEJRVWNzUTBGQlF5eExRVUZMTEhOQ1FVRnpRaXhWUVVGVkxHbENRVUZwUWl4VlFVRlZMRWxCUVVrN1lVRkRka2M3V1VGRFJEdG5Ra0ZEUlN4UlFVRlJPMmRDUVVOU0xFZEJRVWNzUTBGQlF5eE5RVUZOTzJkQ1FVTldMRU5CUVVNc1NVRkJTU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlEyNUNMR2xDUVVGcFFpeEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRXRCUVVzc2MwSkJRWE5DTEZWQlFWVXNTVUZCU1R0aFFVTTFSVHRUUVVOR0xFTkJRVU03VVVGRFJpeExRVUZMTEUxQlFVMHNRMEZCUXl4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTNKRUxFbEJRVWtzUTBGQlF5eFZRVUZWTzJkQ1FVRkZMRk5CUVZNN1dVRkRNVUlzVFVGQlRTeEpRVUZKTEVkQlFVY3NSMEZCUnl4TlFVRk5MRWxCUVVrc1QwRkJUeXhUUVVGVExFTkJRVU03V1VGRE0wTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzUlVGQlJTeE5RVUZOTEVOQlEzUkZMRWxCUVVrc1JVRkRTaXhWUVVGVkxFTkJRMWdzUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkRSQ3hQUVVGUExGVkJRVlVzUTBGQlF6dEJRVU53UWl4RFFVRkRPMEZCUlVRN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzYzBKQlFYTkNPMGxCUTNCRExFOUJRVThzUTBGQlF5eEhRVUZITEhWQ1FVRjFRaXhGUVVGRkxFZEJRVWNzYlVKQlFXMUNMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRMmhGTEVOQlFVTTdRVUZGUkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlF6ZENMR0ZCUVhORExIbENRVUY1UWp0SlFVVXZSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTTFReXhEUVVGRE8wRkJSVVE3T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVTndReXhoUVVGelF5eDVRa0ZCZVVJN1NVRkZMMFFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1pVRkJaU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tRc1RVRkJUU3hQUVVGUExFZEJRVWNzYjBKQlFXOUNMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTFSU3hKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl4dFEwRkJiVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVONFJDeERRVUZETzBsQlEwb3NRMEZCUXp0QlFVTklMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMMjVoYldWemNHRmpaWE12Y214ekwzUmxiWEJzWVhSbFhHNGdLaUJBYzNWdGJXRnllU0JUVVV3Z2RHVnRjR3hoZEdVZ1ptOXlJSFJvWlNCdVlXMWxjM0JoWTJVZ2NtOTNMV3hsZG1Wc0xYTmxZM1Z5YVhSNUlIQnZiR2xqYVdWekxseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZGxibVZ5WVhSbGN5QjBhR1VnYUdWc2NHVnlJR1oxYm1OMGFXOXVjeUJoYm1RZ1pXNWhZbXhsTDJadmNtTmxMM0J2YkdsamVTQkVSRXdnZEdoaGRGeHVJQ29nWlc1bWIzSmpaU0IwYUdVZ2NtVmhaR1Z5TDNkeWFYUmxjaTloWkcxcGJpQnRZWFJ5YVhnZ1lXTnliM056SUhSb1pTQnVZVzFsYzNCaFkyVWdkR0ZpYkdWeklHRnVaQ0IwYUdWY2JpQXFJSE5zYVdObExURWdZM0psWkdWdWRHbGhiQzl6WldOeVpYUWdjbVZqYjNKa2N5NWNiaUFxWEc0Z0tpQlVhR1VnZEdWdGNHeGhkR1VnWVhOemRXMWxjeUIwYUdVZ1kyRnViMjVwWTJGc0lITnVZV3RsWDJOaGMyVWdjMk5vWlcxaElHUnZZM1Z0Wlc1MFpXUWdZbmtnZEdobFhHNGdLaUJnYVc1MFpXZHlZWFJwYjI1ekwzTnhiR0FnWVhKMGFXWmhZM1J6TGlCSVpXeHdaWElnWm5WdVkzUnBiMjV6SUdGeVpTQmdVMFZEVlZKSlZGa2dSRVZHU1U1RlVtQWdjMjhnZEdobFhHNGdLaUJoZFhSb2IzSnBlbUYwYVc5dUlHeHZiMnQxY0hNZ1lubHdZWE56SUZKTVV5QmhibVFnWTJGdWJtOTBJSEpsWTNWeWMyVWdkR2h5YjNWbmFDQjBhR1VnY0c5c2FXTnBaWE1nZEdobGVWeHVJQ29nYVcxd2JHVnRaVzUwTGlCUWNtOWtkV04wYVc5dUlHUmxjR3h2ZVcxbGJuUnpJSE5vYjNWc1pDQnZkMjRnZEdodmMyVWdablZ1WTNScGIyNXpJSGRwZEdnZ1lTQnliMnhsSUhSb1lYUmNiaUFxSUdseklHRnNiRzkzWldRZ2RHOGdZbmx3WVhOeklGSk1VeUFvZEdobElHUmhkR0ZpWVhObElHOTNibVZ5TENCaElHQkNXVkJCVTFOU1RGTmdJSEp2YkdVc0lHOXlJSFJvWlZ4dUlDb2diV2xuY21GMGFXOXVJSEp2YkdVcExseHVJQ292WEc1cGJYQnZjblFnZXlCSmJuUmxjbTVoYkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN0lGSnNjMUJ2YkdsamVWTmxkQ0I5SUdaeWIyMGdYQ0l1TDNKc2N5NTBlWEJsYzF3aU8xeHVhVzF3YjNKMElIc2dVa3hUWDFCU1QxUkZRMVJGUkY5VVFVSk1SVk1zSUZKTVUxOVRSVlJVU1U1SFV5QjlJR1p5YjIwZ1hDSXVMM0pzY3k1amIyNXpkR0Z1ZEhOY0lqdGNibHh1WTI5dWMzUWdSbFZPUTFSSlQwNWZVMFZCVWtOSVgxQkJWRWdnUFNCY0lsTkZWQ0J6WldGeVkyaGZjR0YwYUNBOUlIQjFZbXhwWXl3Z2NHZGZkR1Z0Y0Z3aU8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCSVpXeHdaWElnWm5WdVkzUnBiMjV6SUdKaFkydHBibWNnZEdobElHNWhiV1Z6Y0dGalpTQlNURk1nY0c5c2FXTnBaWE11WEc0Z0tpQkFjM1Z0YldGeWVTQkZZV05vSUdaMWJtTjBhVzl1SUdseklHbGtaVzF3YjNSbGJuUnNlU0JqY21WaGRHVmtJSGRwZEdnZ1lFTlNSVUZVUlNCUFVpQlNSVkJNUVVORllDNWNiaUFxSUdCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5bWIzSmZjM1ZpYW1WamRDaDBaWGgwTENCMWRXbGtLV0FnYVhNZ1lXUmthWFJwYjI1aGJHeDVJR0JUUlVOVlVrbFVXVnh1SUNvZ1JFVkdTVTVGVW1BZ2QybDBhQ0JnYzJWaGNtTm9YM0JoZEdoZ0lIQnBibTVsWkNCMGJ5QmdjSFZpYkdsakxDQndaMTkwWlcxd1lDQmhibVFnWUZKRlZrOUxSV0JrSUdaeWIyMWNiaUFxSUdCUVZVSk1TVU5nT2lCcGRDQnRZWEJ6SUdGdUlHRjFkR2hsYm5ScFkyRjBaV1FnYzNWaWFtVmpkQ0FvWVc1a0lHOXdkR2x2Ym1Gc0lIUmxibUZ1ZENrZ2RHOGdkR2hsWEc0Z0tpQnphVzVuYkdVZ2JXRjBZMmhwYm1jZ2NISnBibU5wY0dGc0lGVlZTVVFnTFNCdmNpQmdUbFZNVEdBZ2QyaGxiaUIwYUdVZ2JXRjBZMmdnYVhNZ1lXMWlhV2QxYjNWeklHOXlYRzRnS2lCaFluTmxiblFnTFNCaGJtUWdhWE1nWTI5dWMzVnRaV1FnWW5rZ2NISnBkbWxzWldkbFpDQnlaWE52YkhabGNuTWdjM1ZqYUNCaGMxeHVJQ29nWUhKbGMyOXNkbVZRY21sdVkybHdZV3hHYjNKVGRXSnFaV04wWUNCbWNtOXRJR0F1TDNCeWFXNWphWEJoYkMxeVpYTnZiSFpsY21BdVhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQlNURk5mUmxWT1ExUkpUMDVmVTFSQlZFVk5SVTVVVXpvZ2NtVmhaRzl1YkhrZ2MzUnlhVzVuVzEwZ1BTQmJYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5cFpDZ3BYRzVTUlZSVlVrNVRJSFYxYVdSY2JreEJUa2RWUVVkRklITnhiRnh1VTFSQlFreEZYRzVCVXlBa1ptNGtYRzRnSUZORlRFVkRWQ0JPVlV4TVNVWW9ZM1Z5Y21WdWRGOXpaWFIwYVc1bktDY2tlMUpNVTE5VFJWUlVTVTVIVXk1UWNtbHVZMmx3WVd4OUp5d2dkSEoxWlNrc0lDY25LVG82ZFhWcFpGeHVKR1p1SkR0Z0xGeHVJQ0JnUTFKRlFWUkZJRTlTSUZKRlVFeEJRMFVnUmxWT1ExUkpUMDRnWVhCd1gzSnNjMTl6ZFdKcVpXTjBYMmxrS0NsY2JsSkZWRlZTVGxNZ2RHVjRkRnh1VEVGT1IxVkJSMFVnYzNGc1hHNVRWRUZDVEVWY2JsTkZRMVZTU1ZSWklFUkZSa2xPUlZKY2JpUjdSbFZPUTFSSlQwNWZVMFZCVWtOSVgxQkJWRWg5WEc1QlV5QWtabTRrWEc0Z0lGTkZURVZEVkNCd0xuTjFZbXBsWTNSZmFXUmNiaUFnUmxKUFRTQndjbWx1WTJsd1lXeHpJSEJjYmlBZ1YwaEZVa1VnY0M1cFpDQTlJR0Z3Y0Y5eWJITmZjSEpwYm1OcGNHRnNYMmxrS0NsY2JpUm1iaVE3WUN4Y2JpQWdZRU5TUlVGVVJTQlBVaUJTUlZCTVFVTkZJRVpWVGtOVVNVOU9JR0Z3Y0Y5eWJITmZjSEpwYm1OcGNHRnNYMlp2Y2w5emRXSnFaV04wS0Z4dUlDQndYM04xWW1wbFkzUWdkR1Y0ZEN4Y2JpQWdjRjkwWlc1aGJuUWdkWFZwWkNCRVJVWkJWVXhVSUU1VlRFeGNiaWxjYmxKRlZGVlNUbE1nZFhWcFpGeHVURUZPUjFWQlIwVWdjM0ZzWEc1VFZFRkNURVZjYmxORlExVlNTVlJaSUVSRlJrbE9SVkpjYmlSN1JsVk9RMVJKVDA1ZlUwVkJVa05JWDFCQlZFaDlYRzVCVXlBa1ptNGtYRzRnSUZORlRFVkRWQ0JEUVZORklGZElSVTRnUTA5VlRsUW9LaWtnUFNBeElGUklSVTRnS0UxSlRpaHdMbWxrT2pwMFpYaDBLU2s2T25WMWFXUWdSVXhUUlNCT1ZVeE1JRVZPUkZ4dUlDQkdVazlOSUhCeWFXNWphWEJoYkhNZ2NGeHVJQ0JYU0VWU1JTQndMbk4xWW1wbFkzUmZhV1FnUFNCT1ZVeE1TVVlvY0Y5emRXSnFaV04wTENBbkp5bGNiaUFnSUNCQlRrUWdLSEJmZEdWdVlXNTBJRWxUSUU1VlRFd2dUMUlnY0M1MFpXNWhiblJmYVdRZ1BTQndYM1JsYm1GdWRDbGNiaVJtYmlRN1lDeGNiaUFnWUZKRlZrOUxSU0JCVEV3Z1QwNGdSbFZPUTFSSlQwNGdZWEJ3WDNKc2MxOXdjbWx1WTJsd1lXeGZabTl5WDNOMVltcGxZM1FvZEdWNGRDd2dkWFZwWkNrZ1JsSlBUU0JRVlVKTVNVTTdZQ3hjYmlBZ1lFTlNSVUZVUlNCUFVpQlNSVkJNUVVORklFWlZUa05VU1U5T0lHRndjRjl5YkhOZmIzSm5YM1Z1YVhSZmRHVnVZVzUwS0hCZmIzSm5YM1Z1YVhRZ2RYVnBaQ2xjYmxKRlZGVlNUbE1nZFhWcFpGeHVURUZPUjFWQlIwVWdjM0ZzWEc1VFZFRkNURVZjYmxORlExVlNTVlJaSUVSRlJrbE9SVkpjYmlSN1JsVk9RMVJKVDA1ZlUwVkJVa05JWDFCQlZFaDlYRzVCVXlBa1ptNGtYRzRnSUZORlRFVkRWQ0J2ZFM1MFpXNWhiblJmYVdSY2JpQWdSbEpQVFNCdmNtZGZkVzVwZEhNZ2IzVmNiaUFnVjBoRlVrVWdiM1V1YVdRZ1BTQndYMjl5WjE5MWJtbDBYRzRrWm00a08yQXNYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDJoaGMxOXdaWEp0YVhOemFXOXVLRnh1SUNCd1gzUmxibUZ1ZENCMWRXbGtMRnh1SUNCd1gzQmxjbTFwYzNOcGIyNGdkR1Y0ZEN4Y2JpQWdjRjl6WTI5d1pWOXJhVzVrSUhSbGVIUXNYRzRnSUhCZmMyTnZjR1ZmYVdRZ2RHVjRkRnh1S1Z4dVVrVlVWVkpPVXlCaWIyOXNaV0Z1WEc1TVFVNUhWVUZIUlNCemNXeGNibE5VUVVKTVJWeHVVMFZEVlZKSlZGa2dSRVZHU1U1RlVseHVKSHRHVlU1RFZFbFBUbDlUUlVGU1EwaGZVRUZVU0gxY2JrRlRJQ1JtYmlSY2JpQWdVMFZNUlVOVUlFVllTVk5VVXlBb1hHNGdJQ0FnVTBWTVJVTlVJREZjYmlBZ0lDQkdVazlOSUdWbVptVmpkR2wyWlY5d1pYSnRhWE56YVc5dWN5QmxjRnh1SUNBZ0lGZElSVkpGSUdWd0xuUmxibUZ1ZEY5cFpDQTlJSEJmZEdWdVlXNTBYRzRnSUNBZ0lDQkJUa1FnWlhBdWNISnBibU5wY0dGc1gybGtJRDBnWVhCd1gzSnNjMTl3Y21sdVkybHdZV3hmYVdRb0tWeHVJQ0FnSUNBZ1FVNUVJR1Z3TG5CbGNtMXBjM05wYjI1ZmEyVjVJRDBnY0Y5d1pYSnRhWE56YVc5dVhHNGdJQ0FnSUNCQlRrUWdaWEF1YzJOdmNHVmZhMmx1WkNBOUlIQmZjMk52Y0dWZmEybHVaRnh1SUNBZ0lDQWdRVTVFSUdWd0xuTmpiM0JsWDJsa0lEMGdjRjl6WTI5d1pWOXBaRnh1SUNBZ0lDQWdRVTVFSUNobGNDNXpkR0Z5ZEhOZllYUWdTVk1nVGxWTVRDQlBVaUJsY0M1emRHRnlkSE5mWVhRZ1BEMGdibTkzS0NrcFhHNGdJQ0FnSUNCQlRrUWdLR1Z3TG1WNGNHbHlaWE5mWVhRZ1NWTWdUbFZNVENCUFVpQmxjQzVsZUhCcGNtVnpYMkYwSUQ0OUlHNXZkeWdwS1Z4dUlDQXBYRzRrWm00a08yQXNYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDNSbGJtRnVkRjl3WlhKdGFYTnphVzl1S0Z4dUlDQndYM1JsYm1GdWRDQjFkV2xrTEZ4dUlDQndYM0JsY20xcGMzTnBiMjRnZEdWNGRGeHVLVnh1VWtWVVZWSk9VeUJpYjI5c1pXRnVYRzVNUVU1SFZVRkhSU0J6Y1d4Y2JsTlVRVUpNUlZ4dVUwVkRWVkpKVkZrZ1JFVkdTVTVGVWx4dUpIdEdWVTVEVkVsUFRsOVRSVUZTUTBoZlVFRlVTSDFjYmtGVElDUm1iaVJjYmlBZ1UwVk1SVU5VSUdGd2NGOXliSE5mYUdGelgzQmxjbTFwYzNOcGIyNG9YRzRnSUNBZ2NGOTBaVzVoYm5Rc1hHNGdJQ0FnY0Y5d1pYSnRhWE56YVc5dUxGeHVJQ0FnSUNkMFpXNWhiblFuTEZ4dUlDQWdJSEJmZEdWdVlXNTBPanAwWlhoMFhHNGdJQ2xjYmlSbWJpUTdZQ3hjYmlBZ1lFTlNSVUZVUlNCUFVpQlNSVkJNUVVORklFWlZUa05VU1U5T0lHRndjRjl5YkhOZmIzSm5YM1Z1YVhSZmNHVnliV2x6YzJsdmJpaGNiaUFnY0Y5MFpXNWhiblFnZFhWcFpDeGNiaUFnY0Y5dmNtZGZkVzVwZENCMWRXbGtMRnh1SUNCd1gzQmxjbTFwYzNOcGIyNGdkR1Y0ZEZ4dUtWeHVVa1ZVVlZKT1V5QmliMjlzWldGdVhHNU1RVTVIVlVGSFJTQnpjV3hjYmxOVVFVSk1SVnh1VTBWRFZWSkpWRmtnUkVWR1NVNUZVbHh1Skh0R1ZVNURWRWxQVGw5VFJVRlNRMGhmVUVGVVNIMWNia0ZUSUNSbWJpUmNiaUFnVTBWTVJVTlVJR0Z3Y0Y5eWJITmZhR0Z6WDNCbGNtMXBjM05wYjI0b1hHNGdJQ0FnY0Y5MFpXNWhiblFzWEc0Z0lDQWdjRjl3WlhKdGFYTnphVzl1TEZ4dUlDQWdJQ2QwWlc1aGJuUW5MRnh1SUNBZ0lIQmZkR1Z1WVc1ME9qcDBaWGgwWEc0Z0lDbGNiaUFnVDFJZ0tGeHVJQ0FnSUhCZmIzSm5YM1Z1YVhRZ1NWTWdUazlVSUU1VlRFeGNiaUFnSUNCQlRrUWdZWEJ3WDNKc2MxOW9ZWE5mY0dWeWJXbHpjMmx2YmloY2JpQWdJQ0FnSUhCZmRHVnVZVzUwTEZ4dUlDQWdJQ0FnY0Y5d1pYSnRhWE56YVc5dUxGeHVJQ0FnSUNBZ0oyOXlaMTkxYm1sMEp5eGNiaUFnSUNBZ0lIQmZiM0puWDNWdWFYUTZPblJsZUhSY2JpQWdJQ0FwWEc0Z0lDbGNiaVJtYmlRN1lDeGNiaUFnWUVOU1JVRlVSU0JQVWlCU1JWQk1RVU5GSUVaVlRrTlVTVTlPSUdGd2NGOXliSE5mYVhOZmRHVnVZVzUwWDIxbGJXSmxjaWh3WDNSbGJtRnVkQ0IxZFdsa0tWeHVVa1ZVVlZKT1V5QmliMjlzWldGdVhHNU1RVTVIVlVGSFJTQnpjV3hjYmxOVVFVSk1SVnh1VTBWRFZWSkpWRmtnUkVWR1NVNUZVbHh1Skh0R1ZVNURWRWxQVGw5VFJVRlNRMGhmVUVGVVNIMWNia0ZUSUNSbWJpUmNiaUFnVTBWTVJVTlVJRVZZU1ZOVVV5QW9YRzRnSUNBZ1UwVk1SVU5VSURGY2JpQWdJQ0JHVWs5TklIUmxibUZ1ZEY5dFpXMWlaWEp6YUdsd2N5QjBiVnh1SUNBZ0lGZElSVkpGSUhSdExuUmxibUZ1ZEY5cFpDQTlJSEJmZEdWdVlXNTBYRzRnSUNBZ0lDQkJUa1FnZEcwdWMzUmhkSFZ6SUQwZ0oyRmpkR2wyWlNkY2JpQWdJQ0FnSUVGT1JDQjBiUzUxYzJWeVgybGtPanAwWlhoMElEMGdZWEJ3WDNKc2MxOXpkV0pxWldOMFgybGtLQ2xjYmlBZ0tWeHVKR1p1SkR0Z0xGeHVJQ0JnUTFKRlFWUkZJRTlTSUZKRlVFeEJRMFVnUmxWT1ExUkpUMDRnWVhCd1gzSnNjMTlwYzE5dmNtZGZkVzVwZEY5dFpXMWlaWElvWEc0Z0lIQmZkR1Z1WVc1MElIVjFhV1FzWEc0Z0lIQmZiM0puWDNWdWFYUWdkWFZwWkZ4dUtWeHVVa1ZVVlZKT1V5QmliMjlzWldGdVhHNU1RVTVIVlVGSFJTQnpjV3hjYmxOVVFVSk1SVnh1VTBWRFZWSkpWRmtnUkVWR1NVNUZVbHh1Skh0R1ZVNURWRWxQVGw5VFJVRlNRMGhmVUVGVVNIMWNia0ZUSUNSbWJpUmNiaUFnVTBWTVJVTlVJRVZZU1ZOVVV5QW9YRzRnSUNBZ1UwVk1SVU5VSURGY2JpQWdJQ0JHVWs5TklHOXlaMTkxYm1sMFgyMWxiV0psY25Ob2FYQnpJRzFjYmlBZ0lDQlhTRVZTUlNCdExuUmxibUZ1ZEY5cFpDQTlJSEJmZEdWdVlXNTBYRzRnSUNBZ0lDQkJUa1FnYlM1dmNtZGZkVzVwZEY5cFpDQTlJSEJmYjNKblgzVnVhWFJjYmlBZ0lDQWdJRUZPUkNCdExuTjBZWFIxY3lBOUlDZGhZM1JwZG1VblhHNGdJQ0FnSUNCQlRrUWdiUzUxYzJWeVgybGtPanAwWlhoMElEMGdZWEJ3WDNKc2MxOXpkV0pxWldOMFgybGtLQ2xjYmlBZ0tWeHVKR1p1SkR0Z0xGeHVJQ0JnUTFKRlFWUkZJRTlTSUZKRlVFeEJRMFVnUmxWT1ExUkpUMDRnWVhCd1gzSnNjMTlqWVc1ZmNtVmhaRjkwWlc1aGJuUW9jRjkwWlc1aGJuUWdkWFZwWkNsY2JsSkZWRlZTVGxNZ1ltOXZiR1ZoYmx4dVRFRk9SMVZCUjBVZ2MzRnNYRzVUVkVGQ1RFVmNibE5GUTFWU1NWUlpJRVJGUmtsT1JWSmNiaVI3UmxWT1ExUkpUMDVmVTBWQlVrTklYMUJCVkVoOVhHNUJVeUFrWm00a1hHNGdJRk5GVEVWRFZDQmhjSEJmY214elgzUmxibUZ1ZEY5d1pYSnRhWE56YVc5dUtIQmZkR1Z1WVc1MExDQW5ibUZ0WlhOd1lXTmxMbUZrYldsdUp5bGNiaUFnVDFJZ1lYQndYM0pzYzE5MFpXNWhiblJmY0dWeWJXbHpjMmx2Ymlod1gzUmxibUZ1ZEN3Z0oyNWhiV1Z6Y0dGalpTNTNjbWwwWlNjcFhHNGdJRTlTSUdGd2NGOXliSE5mZEdWdVlXNTBYM0JsY20xcGMzTnBiMjRvY0Y5MFpXNWhiblFzSUNkdVlXMWxjM0JoWTJVdWNtVmhaQ2NwWEc0a1ptNGtPMkFzWEc0Z0lHQkRVa1ZCVkVVZ1QxSWdVa1ZRVEVGRFJTQkdWVTVEVkVsUFRpQmhjSEJmY214elgyTmhibDkzY21sMFpWOTBaVzVoYm5Rb2NGOTBaVzVoYm5RZ2RYVnBaQ2xjYmxKRlZGVlNUbE1nWW05dmJHVmhibHh1VEVGT1IxVkJSMFVnYzNGc1hHNVRWRUZDVEVWY2JsTkZRMVZTU1ZSWklFUkZSa2xPUlZKY2JpUjdSbFZPUTFSSlQwNWZVMFZCVWtOSVgxQkJWRWg5WEc1QlV5QWtabTRrWEc0Z0lGTkZURVZEVkNCaGNIQmZjbXh6WDNSbGJtRnVkRjl3WlhKdGFYTnphVzl1S0hCZmRHVnVZVzUwTENBbmJtRnRaWE53WVdObExtRmtiV2x1SnlsY2JpQWdUMUlnWVhCd1gzSnNjMTkwWlc1aGJuUmZjR1Z5YldsemMybHZiaWh3WDNSbGJtRnVkQ3dnSjI1aGJXVnpjR0ZqWlM1M2NtbDBaU2NwWEc0a1ptNGtPMkFzWEc0Z0lHQkRVa1ZCVkVVZ1QxSWdVa1ZRVEVGRFJTQkdWVTVEVkVsUFRpQmhjSEJmY214elgyTmhibDl5WldGa1gyOXlaMTkxYm1sMEtGeHVJQ0J3WDNSbGJtRnVkQ0IxZFdsa0xGeHVJQ0J3WDI5eVoxOTFibWwwSUhWMWFXUmNiaWxjYmxKRlZGVlNUbE1nWW05dmJHVmhibHh1VEVGT1IxVkJSMFVnYzNGc1hHNVRWRUZDVEVWY2JsTkZRMVZTU1ZSWklFUkZSa2xPUlZKY2JpUjdSbFZPUTFSSlQwNWZVMFZCVWtOSVgxQkJWRWg5WEc1QlV5QWtabTRrWEc0Z0lGTkZURVZEVkNCaGNIQmZjbXh6WDJOaGJsOXlaV0ZrWDNSbGJtRnVkQ2h3WDNSbGJtRnVkQ2xjYmlBZ1QxSWdZWEJ3WDNKc2MxOXZjbWRmZFc1cGRGOXdaWEp0YVhOemFXOXVLSEJmZEdWdVlXNTBMQ0J3WDI5eVoxOTFibWwwTENBbmJtRnRaWE53WVdObExtRmtiV2x1SnlsY2JpQWdUMUlnWVhCd1gzSnNjMTl2Y21kZmRXNXBkRjl3WlhKdGFYTnphVzl1S0hCZmRHVnVZVzUwTENCd1gyOXlaMTkxYm1sMExDQW5ibUZ0WlhOd1lXTmxMbmR5YVhSbEp5bGNiaUFnVDFJZ1lYQndYM0pzYzE5dmNtZGZkVzVwZEY5d1pYSnRhWE56YVc5dUtIQmZkR1Z1WVc1MExDQndYMjl5WjE5MWJtbDBMQ0FuYm1GdFpYTndZV05sTG5KbFlXUW5LVnh1SUNCUFVpQmhjSEJmY214elgybHpYMjl5WjE5MWJtbDBYMjFsYldKbGNpaHdYM1JsYm1GdWRDd2djRjl2Y21kZmRXNXBkQ2xjYmlSbWJpUTdZQ3hjYmlBZ1lFTlNSVUZVUlNCUFVpQlNSVkJNUVVORklFWlZUa05VU1U5T0lHRndjRjl5YkhOZlkyRnVYM2R5YVhSbFgyOXlaMTkxYm1sMEtGeHVJQ0J3WDNSbGJtRnVkQ0IxZFdsa0xGeHVJQ0J3WDI5eVoxOTFibWwwSUhWMWFXUmNiaWxjYmxKRlZGVlNUbE1nWW05dmJHVmhibHh1VEVGT1IxVkJSMFVnYzNGc1hHNVRWRUZDVEVWY2JsTkZRMVZTU1ZSWklFUkZSa2xPUlZKY2JpUjdSbFZPUTFSSlQwNWZVMFZCVWtOSVgxQkJWRWg5WEc1QlV5QWtabTRrWEc0Z0lGTkZURVZEVkNCaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5MFpXNWhiblFvY0Y5MFpXNWhiblFwWEc0Z0lFOVNJR0Z3Y0Y5eWJITmZiM0puWDNWdWFYUmZjR1Z5YldsemMybHZiaWh3WDNSbGJtRnVkQ3dnY0Y5dmNtZGZkVzVwZEN3Z0oyNWhiV1Z6Y0dGalpTNWhaRzFwYmljcFhHNGdJRTlTSUdGd2NGOXliSE5mYjNKblgzVnVhWFJmY0dWeWJXbHpjMmx2Ymlod1gzUmxibUZ1ZEN3Z2NGOXZjbWRmZFc1cGRDd2dKMjVoYldWemNHRmpaUzUzY21sMFpTY3BYRzRrWm00a08yQXNYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDJselgyRmtiV2x1S0NsY2JsSkZWRlZTVGxNZ1ltOXZiR1ZoYmx4dVRFRk9SMVZCUjBVZ2MzRnNYRzVUVkVGQ1RFVmNibE5GUTFWU1NWUlpJRVJGUmtsT1JWSmNiaVI3UmxWT1ExUkpUMDVmVTBWQlVrTklYMUJCVkVoOVhHNUJVeUFrWm00a1hHNGdJRk5GVEVWRFZDQkZXRWxUVkZNZ0tGeHVJQ0FnSUZORlRFVkRWQ0F4WEc0Z0lDQWdSbEpQVFNCbFptWmxZM1JwZG1WZmNHVnliV2x6YzJsdmJuTWdaWEJjYmlBZ0lDQlhTRVZTUlNCbGNDNXdjbWx1WTJsd1lXeGZhV1FnUFNCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5cFpDZ3BYRzRnSUNBZ0lDQkJUa1FnWlhBdWNHVnliV2x6YzJsdmJsOXJaWGtnUFNBbmJtRnRaWE53WVdObExtRmtiV2x1SjF4dUlDQWdJQ0FnUVU1RUlDaGxjQzV6ZEdGeWRITmZZWFFnU1ZNZ1RsVk1UQ0JQVWlCbGNDNXpkR0Z5ZEhOZllYUWdQRDBnYm05M0tDa3BYRzRnSUNBZ0lDQkJUa1FnS0dWd0xtVjRjR2x5WlhOZllYUWdTVk1nVGxWTVRDQlBVaUJsY0M1bGVIQnBjbVZ6WDJGMElENDlJRzV2ZHlncEtWeHVJQ0FwWEc0a1ptNGtPMkFzWEc0Z0lHQkRVa1ZCVkVVZ1QxSWdVa1ZRVEVGRFJTQkdWVTVEVkVsUFRpQmhjSEJmY214elgybHpYM1JsYm1GdWRGOWhaRzFwYmlod1gzUmxibUZ1ZENCMWRXbGtLVnh1VWtWVVZWSk9VeUJpYjI5c1pXRnVYRzVNUVU1SFZVRkhSU0J6Y1d4Y2JsTlVRVUpNUlZ4dVUwVkRWVkpKVkZrZ1JFVkdTVTVGVWx4dUpIdEdWVTVEVkVsUFRsOVRSVUZTUTBoZlVFRlVTSDFjYmtGVElDUm1iaVJjYmlBZ1UwVk1SVU5VSUdGd2NGOXliSE5mZEdWdVlXNTBYM0JsY20xcGMzTnBiMjRvY0Y5MFpXNWhiblFzSUNkdVlXMWxjM0JoWTJVdVlXUnRhVzRuS1Z4dUpHWnVKRHRnTEZ4dUlDQmdRMUpGUVZSRklFOVNJRkpGVUV4QlEwVWdSbFZPUTFSSlQwNGdZWEJ3WDNKc2MxOXBjMTl2Y21kZmRXNXBkRjloWkcxcGJpaGNiaUFnY0Y5MFpXNWhiblFnZFhWcFpDeGNiaUFnY0Y5dmNtZGZkVzVwZENCMWRXbGtYRzRwWEc1U1JWUlZVazVUSUdKdmIyeGxZVzVjYmt4QlRrZFZRVWRGSUhOeGJGeHVVMVJCUWt4RlhHNVRSVU5WVWtsVVdTQkVSVVpKVGtWU1hHNGtlMFpWVGtOVVNVOU9YMU5GUVZKRFNGOVFRVlJJZlZ4dVFWTWdKR1p1SkZ4dUlDQlRSVXhGUTFRZ1lYQndYM0pzYzE5cGMxOTBaVzVoYm5SZllXUnRhVzRvY0Y5MFpXNWhiblFwWEc0Z0lFOVNJQ2hjYmlBZ0lDQndYMjl5WjE5MWJtbDBJRWxUSUU1UFZDQk9WVXhNWEc0Z0lDQWdRVTVFSUdGd2NGOXliSE5mYjNKblgzVnVhWFJmY0dWeWJXbHpjMmx2Ymlod1gzUmxibUZ1ZEN3Z2NGOXZjbWRmZFc1cGRDd2dKMjVoYldWemNHRmpaUzVoWkcxcGJpY3BYRzRnSUNsY2JpUm1iaVE3WUN4Y2JpQWdZRU5TUlVGVVJTQlBVaUJTUlZCTVFVTkZJRVpWVGtOVVNVOU9JR0Z3Y0Y5eWJITmZhWE5mYzJOdmNHVmZZV1J0YVc0b1hHNGdJSEJmZEdWdVlXNTBJSFYxYVdRc1hHNGdJSEJmYzJOdmNHVmZhMmx1WkNCMFpYaDBMRnh1SUNCd1gzTmpiM0JsWDJsa0lIUmxlSFJjYmlsY2JsSkZWRlZTVGxNZ1ltOXZiR1ZoYmx4dVRFRk9SMVZCUjBVZ2MzRnNYRzVUVkVGQ1RFVmNibE5GUTFWU1NWUlpJRVJGUmtsT1JWSmNiaVI3UmxWT1ExUkpUMDVmVTBWQlVrTklYMUJCVkVoOVhHNUJVeUFrWm00a1hHNGdJRk5GVEVWRFZDQkRRVk5GWEc0Z0lDQWdWMGhGVGlCd1gzTmpiM0JsWDJ0cGJtUWdQU0FuZEdWdVlXNTBKeUJVU0VWT0lHRndjRjl5YkhOZmFYTmZkR1Z1WVc1MFgyRmtiV2x1S0hCZmRHVnVZVzUwS1Z4dUlDQWdJRmRJUlU0Z2NGOXpZMjl3WlY5cmFXNWtJRDBnSjI5eVoxOTFibWwwSnlCVVNFVk9JR0Z3Y0Y5eWJITmZhWE5mYjNKblgzVnVhWFJmWVdSdGFXNG9YRzRnSUNBZ0lDQndYM1JsYm1GdWRDeGNiaUFnSUNBZ0lIQmZjMk52Y0dWZmFXUTZPblYxYVdSY2JpQWdJQ0FwWEc0Z0lDQWdWMGhGVGlCd1gzTmpiM0JsWDJ0cGJtUWdQU0FuY21WemIzVnlZMlVuSUZSSVJVNGdSVmhKVTFSVElDaGNiaUFnSUNBZ0lGTkZURVZEVkNBeFhHNGdJQ0FnSUNCR1VrOU5JSEJ5YjNSbFkzUmxaRjl5WlhOdmRYSmpaWE1nY2x4dUlDQWdJQ0FnVjBoRlVrVWdjaTVwWkNBOUlIQmZjMk52Y0dWZmFXUTZPblYxYVdSY2JpQWdJQ0FnSUNBZ1FVNUVJSEl1ZEdWdVlXNTBYMmxrSUQwZ2NGOTBaVzVoYm5SY2JpQWdJQ0FnSUNBZ1FVNUVJR0Z3Y0Y5eWJITmZhWE5mYjNKblgzVnVhWFJmWVdSdGFXNG9jRjkwWlc1aGJuUXNJSEl1YjNKblgzVnVhWFJmYVdRcFhHNGdJQ0FnS1Z4dUlDQWdJRVZNVTBVZ1ptRnNjMlZjYmlBZ1JVNUVYRzRrWm00a08yQXNYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDJOaGJsOWhaRzFwYmw5MWMyVnlLSEJmZFhObGNsOXBaQ0IxZFdsa0tWeHVVa1ZVVlZKT1V5QmliMjlzWldGdVhHNU1RVTVIVlVGSFJTQnpjV3hjYmxOVVFVSk1SVnh1VTBWRFZWSkpWRmtnUkVWR1NVNUZVbHh1Skh0R1ZVNURWRWxQVGw5VFJVRlNRMGhmVUVGVVNIMWNia0ZUSUNSbWJpUmNiaUFnVTBWTVJVTlVJRVZZU1ZOVVV5QW9YRzRnSUNBZ1UwVk1SVU5VSURGY2JpQWdJQ0JHVWs5TklIUmxibUZ1ZEY5dFpXMWlaWEp6YUdsd2N5QjBiVnh1SUNBZ0lGZElSVkpGSUhSdExuVnpaWEpmYVdRZ1BTQndYM1Z6WlhKZmFXUmNiaUFnSUNBZ0lFRk9SQ0JoY0hCZmNteHpYMmx6WDNSbGJtRnVkRjloWkcxcGJpaDBiUzUwWlc1aGJuUmZhV1FwWEc0Z0lDbGNiaVJtYmlRN1lDeGNiaUFnWUVOU1JVRlVSU0JQVWlCU1JWQk1RVU5GSUVaVlRrTlVTVTlPSUdGd2NGOXliSE5mWTJGdVgzSmxZV1JmWjNKdmRYQW9YRzRnSUhCZmRHVnVZVzUwSUhWMWFXUXNYRzRnSUhCZlozSnZkWEFnZFhWcFpGeHVLVnh1VWtWVVZWSk9VeUJpYjI5c1pXRnVYRzVNUVU1SFZVRkhSU0J6Y1d4Y2JsTlVRVUpNUlZ4dVUwVkRWVkpKVkZrZ1JFVkdTVTVGVWx4dUpIdEdWVTVEVkVsUFRsOVRSVUZTUTBoZlVFRlVTSDFjYmtGVElDUm1iaVJjYmlBZ1UwVk1SVU5VSUVWWVNWTlVVeUFvWEc0Z0lDQWdVMFZNUlVOVUlERmNiaUFnSUNCR1VrOU5JR2R5YjNWd2N5Qm5YRzRnSUNBZ1YwaEZVa1VnWnk1cFpDQTlJSEJmWjNKdmRYQmNiaUFnSUNBZ0lFRk9SQ0JuTG5SbGJtRnVkRjlwWkNBOUlIQmZkR1Z1WVc1MFhHNGdJQ0FnSUNCQlRrUWdLRnh1SUNBZ0lDQWdJQ0FvWnk1dmNtZGZkVzVwZEY5cFpDQkpVeUJPVlV4TUlFRk9SQ0JoY0hCZmNteHpYMk5oYmw5eVpXRmtYM1JsYm1GdWRDaHdYM1JsYm1GdWRDa3BYRzRnSUNBZ0lDQWdJRTlTSUNoY2JpQWdJQ0FnSUNBZ0lDQm5MbTl5WjE5MWJtbDBYMmxrSUVsVElFNVBWQ0JPVlV4TVhHNGdJQ0FnSUNBZ0lDQWdRVTVFSUdGd2NGOXliSE5mWTJGdVgzSmxZV1JmYjNKblgzVnVhWFFvY0Y5MFpXNWhiblFzSUdjdWIzSm5YM1Z1YVhSZmFXUXBYRzRnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ2xjYmlBZ0tWeHVKR1p1SkR0Z0xGeHVJQ0JnUTFKRlFWUkZJRTlTSUZKRlVFeEJRMFVnUmxWT1ExUkpUMDRnWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmWjNKdmRYQW9YRzRnSUhCZmRHVnVZVzUwSUhWMWFXUXNYRzRnSUhCZlozSnZkWEFnZFhWcFpGeHVLVnh1VWtWVVZWSk9VeUJpYjI5c1pXRnVYRzVNUVU1SFZVRkhSU0J6Y1d4Y2JsTlVRVUpNUlZ4dVUwVkRWVkpKVkZrZ1JFVkdTVTVGVWx4dUpIdEdWVTVEVkVsUFRsOVRSVUZTUTBoZlVFRlVTSDFjYmtGVElDUm1iaVJjYmlBZ1UwVk1SVU5VSUVWWVNWTlVVeUFvWEc0Z0lDQWdVMFZNUlVOVUlERmNiaUFnSUNCR1VrOU5JR2R5YjNWd2N5Qm5YRzRnSUNBZ1YwaEZVa1VnWnk1cFpDQTlJSEJmWjNKdmRYQmNiaUFnSUNBZ0lFRk9SQ0JuTG5SbGJtRnVkRjlwWkNBOUlIQmZkR1Z1WVc1MFhHNGdJQ0FnSUNCQlRrUWdLRnh1SUNBZ0lDQWdJQ0FvWnk1dmNtZGZkVzVwZEY5cFpDQkpVeUJPVlV4TUlFRk9SQ0JoY0hCZmNteHpYMk5oYmw5M2NtbDBaVjkwWlc1aGJuUW9jRjkwWlc1aGJuUXBLVnh1SUNBZ0lDQWdJQ0JQVWlBb1hHNGdJQ0FnSUNBZ0lDQWdaeTV2Y21kZmRXNXBkRjlwWkNCSlV5Qk9UMVFnVGxWTVRGeHVJQ0FnSUNBZ0lDQWdJRUZPUkNCaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5dmNtZGZkVzVwZENod1gzUmxibUZ1ZEN3Z1p5NXZjbWRmZFc1cGRGOXBaQ2xjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnS1Z4dUlDQXBYRzRrWm00a08yQXNYRzRnSUdCRFVrVkJWRVVnVDFJZ1VrVlFURUZEUlNCR1ZVNURWRWxQVGlCaGNIQmZjbXh6WDJOaGJsOXlaV0ZrWDNKbGMyOTFjbU5sS0Z4dUlDQndYM1JsYm1GdWRDQjFkV2xrTEZ4dUlDQndYM0psYzI5MWNtTmxJSFYxYVdSY2JpbGNibEpGVkZWU1RsTWdZbTl2YkdWaGJseHVURUZPUjFWQlIwVWdjM0ZzWEc1VFZFRkNURVZjYmxORlExVlNTVlJaSUVSRlJrbE9SVkpjYmlSN1JsVk9RMVJKVDA1ZlUwVkJVa05JWDFCQlZFaDlYRzVCVXlBa1ptNGtYRzRnSUZORlRFVkRWQ0JGV0VsVFZGTWdLRnh1SUNBZ0lGTkZURVZEVkNBeFhHNGdJQ0FnUmxKUFRTQndjbTkwWldOMFpXUmZjbVZ6YjNWeVkyVnpJSEpjYmlBZ0lDQlhTRVZTUlNCeUxtbGtJRDBnY0Y5eVpYTnZkWEpqWlZ4dUlDQWdJQ0FnUVU1RUlISXVkR1Z1WVc1MFgybGtJRDBnY0Y5MFpXNWhiblJjYmlBZ0lDQWdJRUZPUkNBb1hHNGdJQ0FnSUNBZ0lISXViM2R1WlhKZmNISnBibU5wY0dGc1gybGtJRDBnWVhCd1gzSnNjMTl3Y21sdVkybHdZV3hmYVdRb0tWeHVJQ0FnSUNBZ0lDQlBVaUJoY0hCZmNteHpYMmx6WDI5eVoxOTFibWwwWDJGa2JXbHVLSEJmZEdWdVlXNTBMQ0J5TG05eVoxOTFibWwwWDJsa0tWeHVJQ0FnSUNBZ0lDQlBVaUFvWEc0Z0lDQWdJQ0FnSUNBZ2NpNTJhWE5wWW1sc2FYUjVJRDBnSjNSbGJtRnVkQ2RjYmlBZ0lDQWdJQ0FnSUNCQlRrUWdZWEJ3WDNKc2MxOWpZVzVmY21WaFpGOTBaVzVoYm5Rb2NGOTBaVzVoYm5RcFhHNGdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDQWdUMUlnS0Z4dUlDQWdJQ0FnSUNBZ0lISXVkbWx6YVdKcGJHbDBlU0JKVGlBb0oyOXlaMTkxYm1sMEp5d2dKMjl5WjE5emRXSjBjbVZsSnlsY2JpQWdJQ0FnSUNBZ0lDQkJUa1FnWVhCd1gzSnNjMTlqWVc1ZmNtVmhaRjl2Y21kZmRXNXBkQ2h3WDNSbGJtRnVkQ3dnY2k1dmNtZGZkVzVwZEY5cFpDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0JQVWlCRldFbFRWRk1nS0Z4dUlDQWdJQ0FnSUNBZ0lGTkZURVZEVkNBeFhHNGdJQ0FnSUNBZ0lDQWdSbEpQVFNCeVpYTnZkWEpqWlY5bmNtRnVkSE1nWjF4dUlDQWdJQ0FnSUNBZ0lGZElSVkpGSUdjdWNtVnpiM1Z5WTJWZmFXUWdQU0J5TG1sa1hHNGdJQ0FnSUNBZ0lDQWdJQ0JCVGtRZ1p5NXdjbWx1WTJsd1lXeGZhV1FnUFNCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5cFpDZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNCQlRrUWdaeTV3WlhKdGFYTnphVzl1WDJ0bGVTQkpUaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2R5WlhOdmRYSmpaUzV5WldGa0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0oyNWhiV1Z6Y0dGalpTNXlaV0ZrSnl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSjI1aGJXVnpjR0ZqWlM1M2NtbDBaU2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2R1WVcxbGMzQmhZMlV1WVdSdGFXNG5YRzRnSUNBZ0lDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JCVGtRZ0tHY3VjM1JoY25SelgyRjBJRWxUSUU1VlRFd2dUMUlnWnk1emRHRnlkSE5mWVhRZ1BEMGdibTkzS0NrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JCVGtRZ0tHY3VaWGh3YVhKbGMxOWhkQ0JKVXlCT1ZVeE1JRTlTSUdjdVpYaHdhWEpsYzE5aGRDQStQU0J1YjNjb0tTbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLVnh1SUNBcFhHNGtabTRrTzJBc1hHNGdJR0JEVWtWQlZFVWdUMUlnVWtWUVRFRkRSU0JHVlU1RFZFbFBUaUJoY0hCZmNteHpYMk5oYmw5M2NtbDBaVjl5WlhOdmRYSmpaU2hjYmlBZ2NGOTBaVzVoYm5RZ2RYVnBaQ3hjYmlBZ2NGOXlaWE52ZFhKalpTQjFkV2xrWEc0cFhHNVNSVlJWVWs1VElHSnZiMnhsWVc1Y2JreEJUa2RWUVVkRklITnhiRnh1VTFSQlFreEZYRzVUUlVOVlVrbFVXU0JFUlVaSlRrVlNYRzRrZTBaVlRrTlVTVTlPWDFORlFWSkRTRjlRUVZSSWZWeHVRVk1nSkdadUpGeHVJQ0JUUlV4RlExUWdSVmhKVTFSVElDaGNiaUFnSUNCVFJVeEZRMVFnTVZ4dUlDQWdJRVpTVDAwZ2NISnZkR1ZqZEdWa1gzSmxjMjkxY21ObGN5QnlYRzRnSUNBZ1YwaEZVa1VnY2k1cFpDQTlJSEJmY21WemIzVnlZMlZjYmlBZ0lDQWdJRUZPUkNCeUxuUmxibUZ1ZEY5cFpDQTlJSEJmZEdWdVlXNTBYRzRnSUNBZ0lDQkJUa1FnS0Z4dUlDQWdJQ0FnSUNCaGNIQmZjbXh6WDJselgyOXlaMTkxYm1sMFgyRmtiV2x1S0hCZmRHVnVZVzUwTENCeUxtOXlaMTkxYm1sMFgybGtLVnh1SUNBZ0lDQWdJQ0JQVWlCaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5dmNtZGZkVzVwZENod1gzUmxibUZ1ZEN3Z2NpNXZjbWRmZFc1cGRGOXBaQ2xjYmlBZ0lDQWdJQ2xjYmlBZ0tWeHVKR1p1SkR0Z0xGeHVJQ0JnUTFKRlFWUkZJRTlTSUZKRlVFeEJRMFVnUmxWT1ExUkpUMDRnWVhCd1gzSnNjMTlwYzE5eWIyeGxYMkZrYldsdUtIQmZjbTlzWlNCMWRXbGtLVnh1VWtWVVZWSk9VeUJpYjI5c1pXRnVYRzVNUVU1SFZVRkhSU0J6Y1d4Y2JsTlVRVUpNUlZ4dVUwVkRWVkpKVkZrZ1JFVkdTVTVGVWx4dUpIdEdWVTVEVkVsUFRsOVRSVUZTUTBoZlVFRlVTSDFjYmtGVElDUm1iaVJjYmlBZ1UwVk1SVU5VSUVWWVNWTlVVeUFvWEc0Z0lDQWdVMFZNUlVOVUlERmNiaUFnSUNCR1VrOU5JSEp2YkdWeklISmNiaUFnSUNCWFNFVlNSU0J5TG1sa0lEMGdjRjl5YjJ4bFhHNGdJQ0FnSUNCQlRrUWdLRnh1SUNBZ0lDQWdJQ0FvY2k1MFpXNWhiblJmYVdRZ1NWTWdUbFZNVENCQlRrUWdZWEJ3WDNKc2MxOXBjMTloWkcxcGJpZ3BLVnh1SUNBZ0lDQWdJQ0JQVWlBb1hHNGdJQ0FnSUNBZ0lDQWdjaTUwWlc1aGJuUmZhV1FnU1ZNZ1RrOVVJRTVWVEV4Y2JpQWdJQ0FnSUNBZ0lDQkJUa1FnWVhCd1gzSnNjMTlwYzE5MFpXNWhiblJmWVdSdGFXNG9jaTUwWlc1aGJuUmZhV1FwWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNsY2JpQWdLVnh1SkdadUpEdGdMRnh1SUNCZ1ExSkZRVlJGSUU5U0lGSkZVRXhCUTBVZ1JsVk9RMVJKVDA0Z1lYQndYM0pzYzE5allXNWZjbVZoWkY5amNtVmtaVzUwYVdGc1gzTmpiM0JsS0Z4dUlDQndYM1JsYm1GdWRDQjFkV2xrTEZ4dUlDQndYMjl5WjE5MWJtbDBJSFYxYVdSY2JpbGNibEpGVkZWU1RsTWdZbTl2YkdWaGJseHVURUZPUjFWQlIwVWdjM0ZzWEc1VFZFRkNURVZjYmxORlExVlNTVlJaSUVSRlJrbE9SVkpjYmlSN1JsVk9RMVJKVDA1ZlUwVkJVa05JWDFCQlZFaDlYRzVCVXlBa1ptNGtYRzRnSUZORlRFVkRWQ0JEUVZORlhHNGdJQ0FnVjBoRlRpQndYMjl5WjE5MWJtbDBJRWxUSUU1VlRFd2dWRWhGVGlCaGNIQmZjbXh6WDJOaGJsOXlaV0ZrWDNSbGJtRnVkQ2h3WDNSbGJtRnVkQ2xjYmlBZ0lDQkZURk5GSUdGd2NGOXliSE5mWTJGdVgzSmxZV1JmYjNKblgzVnVhWFFvY0Y5MFpXNWhiblFzSUhCZmIzSm5YM1Z1YVhRcFhHNGdJRVZPUkZ4dUpHWnVKRHRnTEZ4dUlDQmdRMUpGUVZSRklFOVNJRkpGVUV4QlEwVWdSbFZPUTFSSlQwNGdZWEJ3WDNKc2MxOWpZVzVmZDNKcGRHVmZZM0psWkdWdWRHbGhiRjl6WTI5d1pTaGNiaUFnY0Y5MFpXNWhiblFnZFhWcFpDeGNiaUFnY0Y5dmNtZGZkVzVwZENCMWRXbGtYRzRwWEc1U1JWUlZVazVUSUdKdmIyeGxZVzVjYmt4QlRrZFZRVWRGSUhOeGJGeHVVMVJCUWt4RlhHNVRSVU5WVWtsVVdTQkVSVVpKVGtWU1hHNGtlMFpWVGtOVVNVOU9YMU5GUVZKRFNGOVFRVlJJZlZ4dVFWTWdKR1p1SkZ4dUlDQlRSVXhGUTFRZ1EwRlRSVnh1SUNBZ0lGZElSVTRnY0Y5dmNtZGZkVzVwZENCSlV5Qk9WVXhNSUZSSVJVNGdZWEJ3WDNKc2MxOWpZVzVmZDNKcGRHVmZkR1Z1WVc1MEtIQmZkR1Z1WVc1MEtWeHVJQ0FnSUVWTVUwVWdZWEJ3WDNKc2MxOWpZVzVmZDNKcGRHVmZiM0puWDNWdWFYUW9jRjkwWlc1aGJuUXNJSEJmYjNKblgzVnVhWFFwWEc0Z0lFVk9SRnh1SkdadUpEdGdMRnh1WFR0Y2JseHVZMjl1YzNRZ1FVUk5TVTRnUFNCY0ltRndjRjl5YkhOZmFYTmZZV1J0YVc0b0tWd2lPMXh1WTI5dWMzUWdWRVZPUVU1VVgwRkVUVWxPSUQwZ1hDSmhjSEJmY214elgybHpYM1JsYm1GdWRGOWhaRzFwYmloMFpXNWhiblJmYVdRcFhDSTdYRzVqYjI1emRDQlhVa2xVUlY5VFEwOVFSU0E5SUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZmIzSm5YM1Z1YVhRb2RHVnVZVzUwWDJsa0xDQnZjbWRmZFc1cGRGOXBaQ2xjSWp0Y2JtTnZibk4wSUVOU1JVUkZUbFJKUVV4ZlVrVkJSQ0E5WEc0Z0lGd2lZWEJ3WDNKc2MxOWpZVzVmY21WaFpGOWpjbVZrWlc1MGFXRnNYM05qYjNCbEtIUmxibUZ1ZEY5cFpDd2diM0puWDNWdWFYUmZhV1FwWENJN1hHNWpiMjV6ZENCRFVrVkVSVTVVU1VGTVgxZFNTVlJGSUQxY2JpQWdYQ0poY0hCZmNteHpYMk5oYmw5M2NtbDBaVjlqY21Wa1pXNTBhV0ZzWDNOamIzQmxLSFJsYm1GdWRGOXBaQ3dnYjNKblgzVnVhWFJmYVdRcFhDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTmhibTl1YVdOaGJDQnlaV0ZrWlhJdmQzSnBkR1Z5TDJGa2JXbHVJSEJ2YkdsamVTQnRZWFJ5YVhndVhHNGdLaUJBYzNWdGJXRnllU0JCWkcxcGJtbHpkSEpoZEdsMlpTQjBZV0pzWlhNZ0tIQmxjbTFwYzNOcGIyNXpMQ0J5YjJ4bGN5d2djbTlzWlNCaGMzTnBaMjV0Wlc1MGN5eGNiaUFxSUdsdWFHVnlhWFJoYm1ObElHSnNiMk5yY3l3Z2MzUnZjbUZuWlNCaWFXNWthVzVuY3lrZ1lYSmxJSFpwYzJsaWJHVWdiMjVzZVNCMGJ5QmhaRzFwYm5NdUlFTnZiblJsYm5SY2JpQXFJSFJoWW14bGN5QmhjbVVnZG1semFXSnNaU0IwYnlCeVpXRmtaWEp6SUdGdVpDQjNjbWwwWVdKc1pTQmllU0IzY21sMFpYSnpMaUJWYzJWeWN5QmhiSGRoZVhNZ2MyVmxJSFJvWldseVhHNGdLaUJ2ZDI0Z2FXUmxiblJwZEhrZ2NtOTNjeUJoYm1RZ2RHaGxhWElnYjNkdUlHTnlaV1JsYm5ScFlXeHpMM05sWTNKbGRITXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JPUVUxRlUxQkJRMFZmVWt4VFgxQlBURWxEV1Y5VFJWUlRPaUJ5WldGa2IyNXNlU0JTYkhOUWIyeHBZM2xUWlhSYlhTQTlJRnRjYmlBZ2UxeHVJQ0FnSUhSaFlteGxPaUJjSW5SbGJtRnVkSE5jSWl4Y2JpQWdJQ0J6Wld4bFkzUTZJRndpWVhCd1gzSnNjMTlwYzE5MFpXNWhiblJmYldWdFltVnlLR2xrS1NCUFVpQmhjSEJmY214elgyTmhibDl5WldGa1gzUmxibUZ1ZENocFpDbGNJaXhjYmlBZ0lDQnBibk5sY25RNklFRkVUVWxPTEZ4dUlDQWdJSFZ3WkdGMFpUb2dYQ0poY0hCZmNteHpYMmx6WDNSbGJtRnVkRjloWkcxcGJpaHBaQ2xjSWl4Y2JpQWdJQ0JrWld4bGRHVTZJRndpWVhCd1gzSnNjMTlwYzE5MFpXNWhiblJmWVdSdGFXNG9hV1FwWENJc1hHNGdJSDBzWEc0Z0lIdGNiaUFnSUNCMFlXSnNaVG9nWENKdmNtZGZkVzVwZEhOY0lpeGNiaUFnSUNCelpXeGxZM1E2WEc0Z0lDQWdJQ0JjSW1Gd2NGOXliSE5mWTJGdVgzSmxZV1JmYjNKblgzVnVhWFFvZEdWdVlXNTBYMmxrTENCcFpDa2dUMUlnS0hCaGNtVnVkRjlwWkNCSlV5Qk9UMVFnVGxWTVRDQkJUa1FnWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmYjNKblgzVnVhWFFvZEdWdVlXNTBYMmxrTENCd1lYSmxiblJmYVdRcEtWd2lMRnh1SUNBZ0lHbHVjMlZ5ZERwY2JpQWdJQ0FnSUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZmRHVnVZVzUwS0hSbGJtRnVkRjlwWkNrZ1QxSWdLSEJoY21WdWRGOXBaQ0JKVXlCT1QxUWdUbFZNVENCQlRrUWdZWEJ3WDNKc2MxOWpZVzVmZDNKcGRHVmZiM0puWDNWdWFYUW9kR1Z1WVc1MFgybGtMQ0J3WVhKbGJuUmZhV1FwS1Z3aUxGeHVJQ0FnSUhWd1pHRjBaVHBjYmlBZ0lDQWdJRndpWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmYjNKblgzVnVhWFFvZEdWdVlXNTBYMmxrTENCcFpDa2dUMUlnS0hCaGNtVnVkRjlwWkNCSlV5Qk9UMVFnVGxWTVRDQkJUa1FnWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmYjNKblgzVnVhWFFvZEdWdVlXNTBYMmxrTENCd1lYSmxiblJmYVdRcEtWd2lMRnh1SUNBZ0lHUmxiR1YwWlRwY2JpQWdJQ0FnSUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZmIzSm5YM1Z1YVhRb2RHVnVZVzUwWDJsa0xDQnBaQ2tnVDFJZ0tIQmhjbVZ1ZEY5cFpDQkpVeUJPVDFRZ1RsVk1UQ0JCVGtRZ1lYQndYM0pzYzE5allXNWZkM0pwZEdWZmIzSm5YM1Z1YVhRb2RHVnVZVzUwWDJsa0xDQndZWEpsYm5SZmFXUXBLVndpTEZ4dUlDQjlMRnh1SUNCN1hHNGdJQ0FnZEdGaWJHVTZJRndpYjNKblgzVnVhWFJmWTJ4dmMzVnlaVndpTEZ4dUlDQWdJSE5sYkdWamREcGNiaUFnSUNBZ0lGd2lZWEJ3WDNKc2MxOWpZVzVmY21WaFpGOXZjbWRmZFc1cGRDaDBaVzVoYm5SZmFXUXNJR1JsYzJObGJtUmhiblJmYjNKblgzVnVhWFJmYVdRcFhDSXNYRzRnSUNBZ2FXNXpaWEowT2x4dUlDQWdJQ0FnWENKaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5dmNtZGZkVzVwZENoMFpXNWhiblJmYVdRc0lHUmxjMk5sYm1SaGJuUmZiM0puWDNWdWFYUmZhV1FwWENJc1hHNGdJQ0FnZFhCa1lYUmxPbHh1SUNBZ0lDQWdYQ0poY0hCZmNteHpYMk5oYmw5M2NtbDBaVjl2Y21kZmRXNXBkQ2gwWlc1aGJuUmZhV1FzSUdSbGMyTmxibVJoYm5SZmIzSm5YM1Z1YVhSZmFXUXBYQ0lzWEc0Z0lDQWdaR1ZzWlhSbE9seHVJQ0FnSUNBZ1hDSmhjSEJmY214elgyTmhibDkzY21sMFpWOXZjbWRmZFc1cGRDaDBaVzVoYm5SZmFXUXNJR1JsYzJObGJtUmhiblJmYjNKblgzVnVhWFJmYVdRcFhDSXNYRzRnSUgwc1hHNGdJSHRjYmlBZ0lDQjBZV0pzWlRvZ1hDSjFjMlZ5YzF3aUxGeHVJQ0FnSUhObGJHVmpkRHBjYmlBZ0lDQWdJRndpYVdRNk9uUmxlSFFnUFNCaGNIQmZjbXh6WDNOMVltcGxZM1JmYVdRb0tTQlBVaUJoY0hCZmNteHpYMk5oYmw5aFpHMXBibDkxYzJWeUtHbGtLVndpTEZ4dUlDQWdJR2x1YzJWeWREb2dRVVJOU1U0c1hHNGdJQ0FnZFhCa1lYUmxPbHh1SUNBZ0lDQWdYQ0pwWkRvNmRHVjRkQ0E5SUdGd2NGOXliSE5mYzNWaWFtVmpkRjlwWkNncElFOVNJR0Z3Y0Y5eWJITmZZMkZ1WDJGa2JXbHVYM1Z6WlhJb2FXUXBYQ0lzWEc0Z0lDQWdaR1ZzWlhSbE9pQmNJbUZ3Y0Y5eWJITmZZMkZ1WDJGa2JXbHVYM1Z6WlhJb2FXUXBYQ0lzWEc0Z0lIMHNYRzRnSUh0Y2JpQWdJQ0IwWVdKc1pUb2dYQ0puY205MWNITmNJaXhjYmlBZ0lDQnpaV3hsWTNRNklGd2lZWEJ3WDNKc2MxOWpZVzVmY21WaFpGOW5jbTkxY0NoMFpXNWhiblJmYVdRc0lHbGtLVndpTEZ4dUlDQWdJR2x1YzJWeWREcGNiaUFnSUNBZ0lGd2lZWEJ3WDNKc2MxOWpZVzVmZDNKcGRHVmZkR1Z1WVc1MEtIUmxibUZ1ZEY5cFpDa2dUMUlnS0c5eVoxOTFibWwwWDJsa0lFbFRJRTVQVkNCT1ZVeE1JRUZPUkNCaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5dmNtZGZkVzVwZENoMFpXNWhiblJmYVdRc0lHOXlaMTkxYm1sMFgybGtLU2xjSWl4Y2JpQWdJQ0IxY0dSaGRHVTZJRndpWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmWjNKdmRYQW9kR1Z1WVc1MFgybGtMQ0JwWkNsY0lpeGNiaUFnSUNCa1pXeGxkR1U2SUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZlozSnZkWEFvZEdWdVlXNTBYMmxrTENCcFpDbGNJaXhjYmlBZ2ZTeGNiaUFnZTF4dUlDQWdJSFJoWW14bE9pQmNJbkJ5YVc1amFYQmhiSE5jSWl4Y2JpQWdJQ0J6Wld4bFkzUTZYRzRnSUNBZ0lDQmNJbWxrSUQwZ1lYQndYM0pzYzE5d2NtbHVZMmx3WVd4ZmFXUW9LU0JQVWlBb2EybHVaQ0E5SUNkMWMyVnlKeUJCVGtRZ2MzVmlhbVZqZEY5cFpDQTlJR0Z3Y0Y5eWJITmZjM1ZpYW1WamRGOXBaQ2dwS1NCUFVpQmhjSEJmY214elgybHpYM1JsYm1GdWRGOWhaRzFwYmloMFpXNWhiblJmYVdRcFhDSXNYRzRnSUNBZ2FXNXpaWEowT2lCVVJVNUJUbFJmUVVSTlNVNHNYRzRnSUNBZ2RYQmtZWFJsT2lCVVJVNUJUbFJmUVVSTlNVNHNYRzRnSUNBZ1pHVnNaWFJsT2lCVVJVNUJUbFJmUVVSTlNVNHNYRzRnSUgwc1hHNGdJSHRjYmlBZ0lDQjBZV0pzWlRvZ1hDSjBaVzVoYm5SZmJXVnRZbVZ5YzJocGNITmNJaXhjYmlBZ0lDQnpaV3hsWTNRNlhHNGdJQ0FnSUNCY0luVnpaWEpmYVdRNk9uUmxlSFFnUFNCaGNIQmZjbXh6WDNOMVltcGxZM1JmYVdRb0tTQlBVaUJoY0hCZmNteHpYMk5oYmw5eVpXRmtYM1JsYm1GdWRDaDBaVzVoYm5SZmFXUXBYQ0lzWEc0Z0lDQWdhVzV6WlhKME9pQlVSVTVCVGxSZlFVUk5TVTRzWEc0Z0lDQWdkWEJrWVhSbE9pQlVSVTVCVGxSZlFVUk5TVTRzWEc0Z0lDQWdaR1ZzWlhSbE9pQlVSVTVCVGxSZlFVUk5TVTRzWEc0Z0lIMHNYRzRnSUh0Y2JpQWdJQ0IwWVdKc1pUb2dYQ0p2Y21kZmRXNXBkRjl0WlcxaVpYSnphR2x3YzF3aUxGeHVJQ0FnSUhObGJHVmpkRHBjYmlBZ0lDQWdJRndpZFhObGNsOXBaRG82ZEdWNGRDQTlJR0Z3Y0Y5eWJITmZjM1ZpYW1WamRGOXBaQ2dwSUU5U0lHRndjRjl5YkhOZmIzSm5YM1Z1YVhSZmNHVnliV2x6YzJsdmJpaDBaVzVoYm5SZmFXUXNJRzl5WjE5MWJtbDBYMmxrTENBbmJtRnRaWE53WVdObExtRmtiV2x1SnlrZ1QxSWdZWEJ3WDNKc2MxOXZjbWRmZFc1cGRGOXdaWEp0YVhOemFXOXVLSFJsYm1GdWRGOXBaQ3dnYjNKblgzVnVhWFJmYVdRc0lDZHVZVzFsYzNCaFkyVXVkM0pwZEdVbktTQlBVaUJoY0hCZmNteHpYMjl5WjE5MWJtbDBYM0JsY20xcGMzTnBiMjRvZEdWdVlXNTBYMmxrTENCdmNtZGZkVzVwZEY5cFpDd2dKMjVoYldWemNHRmpaUzV5WldGa0p5bGNJaXhjYmlBZ0lDQnBibk5sY25RNklGZFNTVlJGWDFORFQxQkZMRnh1SUNBZ0lIVndaR0YwWlRvZ1YxSkpWRVZmVTBOUFVFVXNYRzRnSUNBZ1pHVnNaWFJsT2lCWFVrbFVSVjlUUTA5UVJTeGNiaUFnZlN4Y2JpQWdlMXh1SUNBZ0lIUmhZbXhsT2lCY0ltZHliM1Z3WDIxbGJXSmxjbk5vYVhCelhDSXNYRzRnSUNBZ2MyVnNaV04wT2lCY0ltRndjRjl5YkhOZlkyRnVYM0psWVdSZlozSnZkWEFvZEdWdVlXNTBYMmxrTENCbmNtOTFjRjlwWkNsY0lpeGNiaUFnSUNCcGJuTmxjblE2SUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZlozSnZkWEFvZEdWdVlXNTBYMmxrTENCbmNtOTFjRjlwWkNsY0lpeGNiaUFnSUNCMWNHUmhkR1U2SUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZlozSnZkWEFvZEdWdVlXNTBYMmxrTENCbmNtOTFjRjlwWkNsY0lpeGNiaUFnSUNCa1pXeGxkR1U2SUZ3aVlYQndYM0pzYzE5allXNWZkM0pwZEdWZlozSnZkWEFvZEdWdVlXNTBYMmxrTENCbmNtOTFjRjlwWkNsY0lpeGNiaUFnZlN4Y2JpQWdlMXh1SUNBZ0lIUmhZbXhsT2lCY0luQmxjbTFwYzNOcGIyNXpYQ0lzWEc0Z0lDQWdjMlZzWldOME9pQkJSRTFKVGl4Y2JpQWdJQ0JwYm5ObGNuUTZJRUZFVFVsT0xGeHVJQ0FnSUhWd1pHRjBaVG9nUVVSTlNVNHNYRzRnSUNBZ1pHVnNaWFJsT2lCQlJFMUpUaXhjYmlBZ2ZTeGNiaUFnZTF4dUlDQWdJSFJoWW14bE9pQmNJbkp2YkdWelhDSXNYRzRnSUNBZ2MyVnNaV04wT2x4dUlDQWdJQ0FnWENJb2RHVnVZVzUwWDJsa0lFbFRJRTVQVkNCT1ZVeE1JRUZPUkNCaGNIQmZjbXh6WDJselgzUmxibUZ1ZEY5aFpHMXBiaWgwWlc1aGJuUmZhV1FwS1NCUFVpQW9kR1Z1WVc1MFgybGtJRWxUSUU1VlRFd2dRVTVFSUdGd2NGOXliSE5mYVhOZllXUnRhVzRvS1NsY0lpeGNiaUFnSUNCcGJuTmxjblE2WEc0Z0lDQWdJQ0JjSWloMFpXNWhiblJmYVdRZ1NWTWdUazlVSUU1VlRFd2dRVTVFSUdGd2NGOXliSE5mYVhOZmRHVnVZVzUwWDJGa2JXbHVLSFJsYm1GdWRGOXBaQ2twSUU5U0lDaDBaVzVoYm5SZmFXUWdTVk1nVGxWTVRDQkJUa1FnWVhCd1gzSnNjMTlwYzE5aFpHMXBiaWdwS1Z3aUxGeHVJQ0FnSUhWd1pHRjBaVHBjYmlBZ0lDQWdJRndpS0hSbGJtRnVkRjlwWkNCSlV5Qk9UMVFnVGxWTVRDQkJUa1FnWVhCd1gzSnNjMTlwYzE5MFpXNWhiblJmWVdSdGFXNG9kR1Z1WVc1MFgybGtLU2tnVDFJZ0tIUmxibUZ1ZEY5cFpDQkpVeUJPVlV4TUlFRk9SQ0JoY0hCZmNteHpYMmx6WDJGa2JXbHVLQ2twWENJc1hHNGdJQ0FnWkdWc1pYUmxPbHh1SUNBZ0lDQWdYQ0lvZEdWdVlXNTBYMmxrSUVsVElFNVBWQ0JPVlV4TUlFRk9SQ0JoY0hCZmNteHpYMmx6WDNSbGJtRnVkRjloWkcxcGJpaDBaVzVoYm5SZmFXUXBLU0JQVWlBb2RHVnVZVzUwWDJsa0lFbFRJRTVWVEV3Z1FVNUVJR0Z3Y0Y5eWJITmZhWE5mWVdSdGFXNG9LU2xjSWl4Y2JpQWdmU3hjYmlBZ2UxeHVJQ0FnSUhSaFlteGxPaUJjSW5KdmJHVmZjR1Z5YldsemMybHZibk5jSWl4Y2JpQWdJQ0J6Wld4bFkzUTZJRndpWVhCd1gzSnNjMTlwYzE5eWIyeGxYMkZrYldsdUtISnZiR1ZmYVdRcFhDSXNYRzRnSUNBZ2FXNXpaWEowT2lCY0ltRndjRjl5YkhOZmFYTmZjbTlzWlY5aFpHMXBiaWh5YjJ4bFgybGtLVndpTEZ4dUlDQWdJSFZ3WkdGMFpUb2dYQ0poY0hCZmNteHpYMmx6WDNKdmJHVmZZV1J0YVc0b2NtOXNaVjlwWkNsY0lpeGNiaUFnSUNCa1pXeGxkR1U2SUZ3aVlYQndYM0pzYzE5cGMxOXliMnhsWDJGa2JXbHVLSEp2YkdWZmFXUXBYQ0lzWEc0Z0lIMHNYRzRnSUh0Y2JpQWdJQ0IwWVdKc1pUb2dYQ0p5YjJ4bFgyRnpjMmxuYm0xbGJuUnpYQ0lzWEc0Z0lDQWdjMlZzWldOME9pQmNJbUZ3Y0Y5eWJITmZhWE5mYzJOdmNHVmZZV1J0YVc0b2RHVnVZVzUwWDJsa0xDQnpZMjl3WlY5cmFXNWtMQ0J6WTI5d1pWOXBaQ2xjSWl4Y2JpQWdJQ0JwYm5ObGNuUTZJRndpWVhCd1gzSnNjMTlwYzE5elkyOXdaVjloWkcxcGJpaDBaVzVoYm5SZmFXUXNJSE5qYjNCbFgydHBibVFzSUhOamIzQmxYMmxrS1Z3aUxGeHVJQ0FnSUhWd1pHRjBaVG9nWENKaGNIQmZjbXh6WDJselgzTmpiM0JsWDJGa2JXbHVLSFJsYm1GdWRGOXBaQ3dnYzJOdmNHVmZhMmx1WkN3Z2MyTnZjR1ZmYVdRcFhDSXNYRzRnSUNBZ1pHVnNaWFJsT2lCY0ltRndjRjl5YkhOZmFYTmZjMk52Y0dWZllXUnRhVzRvZEdWdVlXNTBYMmxrTENCelkyOXdaVjlyYVc1a0xDQnpZMjl3WlY5cFpDbGNJaXhjYmlBZ2ZTeGNiaUFnZTF4dUlDQWdJSFJoWW14bE9pQmNJbWx1YUdWeWFYUmhibU5sWDJKc2IyTnJjMXdpTEZ4dUlDQWdJSE5sYkdWamREb2dYQ0poY0hCZmNteHpYMmx6WDI5eVoxOTFibWwwWDJGa2JXbHVLSFJsYm1GdWRGOXBaQ3dnYjNKblgzVnVhWFJmYVdRcFhDSXNYRzRnSUNBZ2FXNXpaWEowT2lCY0ltRndjRjl5YkhOZmFYTmZiM0puWDNWdWFYUmZZV1J0YVc0b2RHVnVZVzUwWDJsa0xDQnZjbWRmZFc1cGRGOXBaQ2xjSWl4Y2JpQWdJQ0IxY0dSaGRHVTZJRndpWVhCd1gzSnNjMTlwYzE5dmNtZGZkVzVwZEY5aFpHMXBiaWgwWlc1aGJuUmZhV1FzSUc5eVoxOTFibWwwWDJsa0tWd2lMRnh1SUNBZ0lHUmxiR1YwWlRvZ1hDSmhjSEJmY214elgybHpYMjl5WjE5MWJtbDBYMkZrYldsdUtIUmxibUZ1ZEY5cFpDd2diM0puWDNWdWFYUmZhV1FwWENJc1hHNGdJSDBzWEc0Z0lIdGNiaUFnSUNCMFlXSnNaVG9nWENKd2NtOTBaV04wWldSZmNtVnpiM1Z5WTJWelhDSXNYRzRnSUNBZ2MyVnNaV04wT2lCY0ltRndjRjl5YkhOZlkyRnVYM0psWVdSZmNtVnpiM1Z5WTJVb2RHVnVZVzUwWDJsa0xDQnBaQ2xjSWl4Y2JpQWdJQ0JwYm5ObGNuUTZYRzRnSUNBZ0lDQmNJbUZ3Y0Y5eWJITmZZMkZ1WDNkeWFYUmxYM1JsYm1GdWRDaDBaVzVoYm5SZmFXUXBJRTlTSUNodmNtZGZkVzVwZEY5cFpDQkpVeUJPVDFRZ1RsVk1UQ0JCVGtRZ1lYQndYM0pzYzE5allXNWZkM0pwZEdWZmIzSm5YM1Z1YVhRb2RHVnVZVzUwWDJsa0xDQnZjbWRmZFc1cGRGOXBaQ2twWENJc1hHNGdJQ0FnZFhCa1lYUmxPaUJjSW1Gd2NGOXliSE5mWTJGdVgzZHlhWFJsWDNKbGMyOTFjbU5sS0hSbGJtRnVkRjlwWkN3Z2FXUXBYQ0lzWEc0Z0lDQWdaR1ZzWlhSbE9pQmNJbUZ3Y0Y5eWJITmZZMkZ1WDNkeWFYUmxYM0psYzI5MWNtTmxLSFJsYm1GdWRGOXBaQ3dnYVdRcFhDSXNYRzRnSUgwc1hHNGdJSHRjYmlBZ0lDQjBZV0pzWlRvZ1hDSnlaWE52ZFhKalpWOW5jbUZ1ZEhOY0lpeGNiaUFnSUNCelpXeGxZM1E2WEc0Z0lDQWdJQ0JjSW5CeWFXNWphWEJoYkY5cFpDQTlJR0Z3Y0Y5eWJITmZjSEpwYm1OcGNHRnNYMmxrS0NrZ1QxSWdZWEJ3WDNKc2MxOWpZVzVmY21WaFpGOXlaWE52ZFhKalpTaDBaVzVoYm5SZmFXUXNJSEpsYzI5MWNtTmxYMmxrS1Z3aUxGeHVJQ0FnSUdsdWMyVnlkRG9nWENKaGNIQmZjbXh6WDJOaGJsOTNjbWwwWlY5eVpYTnZkWEpqWlNoMFpXNWhiblJmYVdRc0lISmxjMjkxY21ObFgybGtLVndpTEZ4dUlDQWdJSFZ3WkdGMFpUb2dYQ0poY0hCZmNteHpYMk5oYmw5M2NtbDBaVjl5WlhOdmRYSmpaU2gwWlc1aGJuUmZhV1FzSUhKbGMyOTFjbU5sWDJsa0tWd2lMRnh1SUNBZ0lHUmxiR1YwWlRvZ1hDSmhjSEJmY214elgyTmhibDkzY21sMFpWOXlaWE52ZFhKalpTaDBaVzVoYm5SZmFXUXNJSEpsYzI5MWNtTmxYMmxrS1Z3aUxGeHVJQ0I5TEZ4dUlDQjdYRzRnSUNBZ2RHRmliR1U2SUZ3aVpXWm1aV04wYVhabFgzQmxjbTFwYzNOcGIyNXpYQ0lzWEc0Z0lDQWdjMlZzWldOME9seHVJQ0FnSUNBZ1hDSndjbWx1WTJsd1lXeGZhV1FnUFNCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5cFpDZ3BJRTlTSUdGd2NGOXliSE5mYVhOZmMyTnZjR1ZmWVdSdGFXNG9kR1Z1WVc1MFgybGtMQ0J6WTI5d1pWOXJhVzVrTENCelkyOXdaVjlwWkNsY0lpeGNiaUFnSUNCcGJuTmxjblE2SUZ3aVlYQndYM0pzYzE5cGMxOXpZMjl3WlY5aFpHMXBiaWgwWlc1aGJuUmZhV1FzSUhOamIzQmxYMnRwYm1Rc0lITmpiM0JsWDJsa0tWd2lMRnh1SUNBZ0lIVndaR0YwWlRvZ1hDSmhjSEJmY214elgybHpYM05qYjNCbFgyRmtiV2x1S0hSbGJtRnVkRjlwWkN3Z2MyTnZjR1ZmYTJsdVpDd2djMk52Y0dWZmFXUXBYQ0lzWEc0Z0lDQWdaR1ZzWlhSbE9pQmNJbUZ3Y0Y5eWJITmZhWE5mYzJOdmNHVmZZV1J0YVc0b2RHVnVZVzUwWDJsa0xDQnpZMjl3WlY5cmFXNWtMQ0J6WTI5d1pWOXBaQ2xjSWl4Y2JpQWdmU3hjYmlBZ2UxeHVJQ0FnSUhSaFlteGxPaUJjSW5OMGIzSmhaMlZmWW1sdVpHbHVaM05jSWl4Y2JpQWdJQ0J6Wld4bFkzUTZJRlJGVGtGT1ZGOUJSRTFKVGl4Y2JpQWdJQ0JwYm5ObGNuUTZJRlJGVGtGT1ZGOUJSRTFKVGl4Y2JpQWdJQ0IxY0dSaGRHVTZJRlJGVGtGT1ZGOUJSRTFKVGl4Y2JpQWdJQ0JrWld4bGRHVTZJRlJGVGtGT1ZGOUJSRTFKVGl4Y2JpQWdmU3hjYmlBZ2UxeHVJQ0FnSUhSaFlteGxPaUJjSW5SbGJtRnVkRjl3Y205bWFXeGxjMXdpTEZ4dUlDQWdJSE5sYkdWamREcGNiaUFnSUNBZ0lGd2lZWEJ3WDNKc2MxOXBjMTkwWlc1aGJuUmZiV1Z0WW1WeUtIUmxibUZ1ZEY5cFpDa2dUMUlnWVhCd1gzSnNjMTlqWVc1ZmNtVmhaRjkwWlc1aGJuUW9kR1Z1WVc1MFgybGtLVndpTEZ4dUlDQWdJR2x1YzJWeWREb2dWRVZPUVU1VVgwRkVUVWxPTEZ4dUlDQWdJSFZ3WkdGMFpUb2dWRVZPUVU1VVgwRkVUVWxPTEZ4dUlDQWdJR1JsYkdWMFpUb2dWRVZPUVU1VVgwRkVUVWxPTEZ4dUlDQjlMRnh1SUNCN1hHNGdJQ0FnZEdGaWJHVTZJRndpYjNKblgzVnVhWFJmY0hKdlptbHNaWE5jSWl4Y2JpQWdJQ0J6Wld4bFkzUTZYRzRnSUNBZ0lDQmNJbUZ3Y0Y5eWJITmZZMkZ1WDNKbFlXUmZiM0puWDNWdWFYUW9ZWEJ3WDNKc2MxOXZjbWRmZFc1cGRGOTBaVzVoYm5Rb2IzSm5YM1Z1YVhSZmFXUXBMQ0J2Y21kZmRXNXBkRjlwWkNsY0lpeGNiaUFnSUNCcGJuTmxjblE2WEc0Z0lDQWdJQ0JjSW1Gd2NGOXliSE5mWTJGdVgzZHlhWFJsWDI5eVoxOTFibWwwS0dGd2NGOXliSE5mYjNKblgzVnVhWFJmZEdWdVlXNTBLRzl5WjE5MWJtbDBYMmxrS1N3Z2IzSm5YM1Z1YVhSZmFXUXBYQ0lzWEc0Z0lDQWdkWEJrWVhSbE9seHVJQ0FnSUNBZ1hDSmhjSEJmY214elgyTmhibDkzY21sMFpWOXZjbWRmZFc1cGRDaGhjSEJmY214elgyOXlaMTkxYm1sMFgzUmxibUZ1ZENodmNtZGZkVzVwZEY5cFpDa3NJRzl5WjE5MWJtbDBYMmxrS1Z3aUxGeHVJQ0FnSUdSbGJHVjBaVHBjYmlBZ0lDQWdJRndpWVhCd1gzSnNjMTlqWVc1ZmQzSnBkR1ZmYjNKblgzVnVhWFFvWVhCd1gzSnNjMTl2Y21kZmRXNXBkRjkwWlc1aGJuUW9iM0puWDNWdWFYUmZhV1FwTENCdmNtZGZkVzVwZEY5cFpDbGNJaXhjYmlBZ2ZTeGNiaUFnZTF4dUlDQWdJSFJoWW14bE9pQmNJbU55WldSbGJuUnBZV3h6WENJc1hHNGdJQ0FnYzJWc1pXTjBPbHh1SUNBZ0lDQWdYQ0p2ZDI1bGNsOXdjbWx1WTJsd1lXeGZhV1FnUFNCaGNIQmZjbXh6WDNCeWFXNWphWEJoYkY5cFpDZ3BJRTlTSUZ3aUlDc2dRMUpGUkVWT1ZFbEJURjlTUlVGRUxGeHVJQ0FnSUdsdWMyVnlkRG9nUTFKRlJFVk9WRWxCVEY5WFVrbFVSU3hjYmlBZ0lDQjFjR1JoZEdVNklFTlNSVVJGVGxSSlFVeGZWMUpKVkVVc1hHNGdJQ0FnWkdWc1pYUmxPaUJEVWtWRVJVNVVTVUZNWDFkU1NWUkZMRnh1SUNCOUxGeHVJQ0I3WEc0Z0lDQWdkR0ZpYkdVNklGd2ljMlZqY21WMGMxd2lMRnh1SUNBZ0lITmxiR1ZqZERwY2JpQWdJQ0FnSUZ3aWIzZHVaWEpmY0hKcGJtTnBjR0ZzWDJsa0lEMGdZWEJ3WDNKc2MxOXdjbWx1WTJsd1lXeGZhV1FvS1NCUFVpQmNJaUFyWEc0Z0lDQWdJQ0JEVWtWRVJVNVVTVUZNWDFKRlFVUWdLMXh1SUNBZ0lDQWdYQ0lnVDFJZ0tIUmxibUZ1ZEY5cFpDQkpVeUJPVlV4TUlFRk9SQ0JoY0hCZmNteHpYMmx6WDJGa2JXbHVLQ2twWENJc1hHNGdJQ0FnYVc1elpYSjBPbHh1SUNBZ0lDQWdRMUpGUkVWT1ZFbEJURjlYVWtsVVJTQXJJRndpSUU5U0lDaDBaVzVoYm5SZmFXUWdTVk1nVGxWTVRDQkJUa1FnWVhCd1gzSnNjMTlwYzE5aFpHMXBiaWdwS1Z3aUxGeHVJQ0FnSUhWd1pHRjBaVHBjYmlBZ0lDQWdJRU5TUlVSRlRsUkpRVXhmVjFKSlZFVWdLeUJjSWlCUFVpQW9kR1Z1WVc1MFgybGtJRWxUSUU1VlRFd2dRVTVFSUdGd2NGOXliSE5mYVhOZllXUnRhVzRvS1NsY0lpeGNiaUFnSUNCa1pXeGxkR1U2WEc0Z0lDQWdJQ0JEVWtWRVJVNVVTVUZNWDFkU1NWUkZJQ3NnWENJZ1QxSWdLSFJsYm1GdWRGOXBaQ0JKVXlCT1ZVeE1JRUZPUkNCaGNIQmZjbXh6WDJselgyRmtiV2x1S0NrcFhDSXNYRzRnSUgwc1hHNWRPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkhaVzVsY21GMFpYTWdaVzVoWW14bEwyWnZjbU5sSUdGdVpDQndiMnhwWTNrZ1JFUk1JR1p2Y2lCaElIQnZiR2xqZVNCelpYUXVYRzRnS2lCQWMzVnRiV0Z5ZVNCZ1JGSlBVQ0JRVDB4SlExa2dTVVlnUlZoSlUxUlRZQ0J0WVd0bGN5QjBhR1VnYjNWMGNIVjBJSE5oWm1VZ2RHOGdjbVZ3YkdGNUlHOXVJR1YyWlhKNVhHNGdLaUJrWlhCc2IzbHRaVzUwTGlCTmFYTnphVzVuSUdOdmJXMWhibVFnWlhod2NtVnpjMmx2Ym5NZ2JHVmhkbVVnZEdoaGRDQmpiMjF0WVc1a0lHUmxibWxsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpzYzFCdmJHbGplVk4wWVhSbGJXVnVkSE1vWEc0Z0lIQnZiR2xqZVZObGRITTZJSEpsWVdSdmJteDVJRkpzYzFCdmJHbGplVk5sZEZ0ZElEMGdUa0ZOUlZOUVFVTkZYMUpNVTE5UVQweEpRMWxmVTBWVVUxeHVLVG9nYzNSeWFXNW5XMTBnZTF4dUlDQmpiMjV6ZENCemRHRjBaVzFsYm5Sek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQm1iM0lnS0dOdmJuTjBJSE5sZENCdlppQndiMnhwWTNsVFpYUnpLU0I3WEc0Z0lDQWdhV1lnS0hObGRDNWxibUZpYkdVZ0lUMDlJR1poYkhObEtTQjdYRzRnSUNBZ0lDQnpkR0YwWlcxbGJuUnpMbkIxYzJnb1hHNGdJQ0FnSUNBZ0lHQkJURlJGVWlCVVFVSk1SU0FrZTNObGRDNTBZV0pzWlgwZ1JVNUJRa3hGSUZKUFZ5Qk1SVlpGVENCVFJVTlZVa2xVV1R0Z0xGeHVJQ0FnSUNBZ0lDQmdRVXhVUlZJZ1ZFRkNURVVnSkh0elpYUXVkR0ZpYkdWOUlFWlBVa05GSUZKUFZ5Qk1SVlpGVENCVFJVTlZVa2xVV1R0Z1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQnpaWFF1ZEdGaWJHVXVjbVZ3YkdGalpTZ3ZXMTVCTFZwaExYb3dMVGxmWFM5bkxDQmNJbDljSWlrN1hHNGdJQ0FnWTI5dWMzUWdZMjl0YldGdVpITTZJRUZ5Y21GNVBGeHVJQ0FnSUNBZ1czTjBjbWx1Wnl3Z2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0xDQW9ibUZ0WlRvZ2MzUnlhVzVuTENCbGVIQnlaWE56YVc5dU9pQnpkSEpwYm1jcElEMCtJSE4wY21sdVoxMWNiaUFnSUNBK0lEMGdXMXh1SUNBZ0lDQWdXMXh1SUNBZ0lDQWdJQ0JjSW5ObGJHVmpkRndpTEZ4dUlDQWdJQ0FnSUNCelpYUXVjMlZzWldOMExGeHVJQ0FnSUNBZ0lDQW9ibUZ0WlN3Z1pYaHdjbVZ6YzJsdmJpa2dQVDVjYmlBZ0lDQWdJQ0FnSUNCZ1ExSkZRVlJGSUZCUFRFbERXU0FrZTI1aGJXVjlJRTlPSUNSN2MyVjBMblJoWW14bGZTQkdUMUlnVTBWTVJVTlVJRlZUU1U1SElDZ2tlMlY0Y0hKbGMzTnBiMjU5S1R0Z0xGeHVJQ0FnSUNBZ1hTeGNiaUFnSUNBZ0lGdGNiaUFnSUNBZ0lDQWdYQ0pwYm5ObGNuUmNJaXhjYmlBZ0lDQWdJQ0FnYzJWMExtbHVjMlZ5ZEN4Y2JpQWdJQ0FnSUNBZ0tHNWhiV1VzSUdWNGNISmxjM05wYjI0cElEMCtYRzRnSUNBZ0lDQWdJQ0FnWUVOU1JVRlVSU0JRVDB4SlExa2dKSHR1WVcxbGZTQlBUaUFrZTNObGRDNTBZV0pzWlgwZ1JrOVNJRWxPVTBWU1ZDQlhTVlJJSUVOSVJVTkxJQ2drZTJWNGNISmxjM05wYjI1OUtUdGdMRnh1SUNBZ0lDQWdYU3hjYmlBZ0lDQWdJRnRjYmlBZ0lDQWdJQ0FnWENKMWNHUmhkR1ZjSWl4Y2JpQWdJQ0FnSUNBZ2MyVjBMblZ3WkdGMFpTeGNiaUFnSUNBZ0lDQWdLRzVoYldVc0lHVjRjSEpsYzNOcGIyNHBJRDArWEc0Z0lDQWdJQ0FnSUNBZ1lFTlNSVUZVUlNCUVQweEpRMWtnSkh0dVlXMWxmU0JQVGlBa2UzTmxkQzUwWVdKc1pYMGdSazlTSUZWUVJFRlVSU0JWVTBsT1J5QW9KSHRsZUhCeVpYTnphVzl1ZlNrZ1YwbFVTQ0JEU0VWRFN5QW9KSHRsZUhCeVpYTnphVzl1ZlNrN1lDeGNiaUFnSUNBZ0lGMHNYRzRnSUNBZ0lDQmJYRzRnSUNBZ0lDQWdJRndpWkdWc1pYUmxYQ0lzWEc0Z0lDQWdJQ0FnSUhObGRDNWtaV3hsZEdVc1hHNGdJQ0FnSUNBZ0lDaHVZVzFsTENCbGVIQnlaWE56YVc5dUtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUdCRFVrVkJWRVVnVUU5TVNVTlpJQ1I3Ym1GdFpYMGdUMDRnSkh0elpYUXVkR0ZpYkdWOUlFWlBVaUJFUlV4RlZFVWdWVk5KVGtjZ0tDUjdaWGh3Y21WemMybHZibjBwTzJBc1hHNGdJQ0FnSUNCZExGeHVJQ0FnSUYwN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCYlkyOXRiV0Z1WkN3Z1pYaHdjbVZ6YzJsdmJpd2djbVZ1WkdWeVhTQnZaaUJqYjIxdFlXNWtjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRmxlSEJ5WlhOemFXOXVLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCZ0pIdHdjbVZtYVhoOVh5UjdZMjl0YldGdVpIMWZjRzlzYVdONVlEdGNiaUFnSUNBZ0lITjBZWFJsYldWdWRITXVjSFZ6YUNoZ1JGSlBVQ0JRVDB4SlExa2dTVVlnUlZoSlUxUlRJQ1I3Ym1GdFpYMGdUMDRnSkh0elpYUXVkR0ZpYkdWOU8yQXNJSEpsYm1SbGNpaGNiaUFnSUNBZ0lDQWdibUZ0WlN4Y2JpQWdJQ0FnSUNBZ1pYaHdjbVZ6YzJsdmJseHVJQ0FnSUNBZ0tTazdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemRHRjBaVzFsYm5Sek8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkdkV3hzSUc1aGJXVnpjR0ZqWlNCU1RGTWdZbTl2ZEhOMGNtRndJSE4wWVhSbGJXVnVkQ0JzYVhOMExseHVJQ29nUUhOMWJXMWhjbmtnU0dWc2NHVnlJR1oxYm1OMGFXOXVjeUJtYjJ4c2IzZGxaQ0JpZVNCbGJtRmliR1V2Wm05eVkyVWdZVzVrSUhCdmJHbGplU0JFUkV3Z1ptOXlJR1YyWlhKNVhHNGdLaUIwWVdKc1pTQnBiaUI3UUd4cGJtc2dVa3hUWDFCU1QxUkZRMVJGUkY5VVFVSk1SVk45TGlCQmNIQnNlU0JoWm5SbGNpQjBhR1VnYm1GdFpYTndZV05sSUhOamFHVnRZVnh1SUNvZ1pYaHBjM1J6SUdGdVpDQmlaV1p2Y21VZ2NtVnhkV1Z6ZEMxelkyOXdaV1FnZEhKaFptWnBZeUJ5WldGamFHVnpJSFJvWlNCa1lYUmhZbUZ6WlM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpzYzBKdmIzUnpkSEpoY0ZOMFlYUmxiV1Z1ZEhNb0tUb2djM1J5YVc1blcxMGdlMXh1SUNCeVpYUjFjbTRnV3k0dUxsSk1VMTlHVlU1RFZFbFBUbDlUVkVGVVJVMUZUbFJUTENBdUxpNXliSE5RYjJ4cFkzbFRkR0YwWlcxbGJuUnpLQ2xkTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCVVlXSnNaWE1nZEdGeVoyVjBaV1FnWW5rZ2RHaGxJR0oxYm1Sc1pXUWdibUZ0WlhOd1lXTmxJSFJsYlhCc1lYUmxMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NteHpVRzlzYVdONVZHRmliR1Z6S0Z4dUlDQndiMnhwWTNsVFpYUnpPaUJ5WldGa2IyNXNlU0JTYkhOUWIyeHBZM2xUWlhSYlhTQTlJRTVCVFVWVFVFRkRSVjlTVEZOZlVFOU1TVU5aWDFORlZGTmNiaWs2SUhOMGNtbHVaMXRkSUh0Y2JpQWdjbVYwZFhKdUlIQnZiR2xqZVZObGRITXViV0Z3S0NoelpYUXBJRDArSUhObGRDNTBZV0pzWlNrN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFRnpjMlZ5ZEhNZ2RHaGhkQ0IwYUdVZ1luVnVaR3hsWkNCd2IyeHBZM2tnZEdWdGNHeGhkR1VnWTI5MlpYSnpJR1YyWlhKNUlIQnliM1JsWTNSbFpGeHVJQ29nZEdGaWJHVXVJRVY0Y0c5elpXUWdabTl5SUdSbGNHeHZlVzFsYm5RZ1kyaGxZMnR6SUdGdVpDQjFibWwwSUhSbGMzUnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTnpaWEowVW14elZHRmliR1ZEYjNabGNtRm5aU2hjYmlBZ2NHOXNhV041VTJWMGN6b2djbVZoWkc5dWJIa2dVbXh6VUc5c2FXTjVVMlYwVzEwZ1BTQk9RVTFGVTFCQlEwVmZVa3hUWDFCUFRFbERXVjlUUlZSVFhHNHBPaUIyYjJsa0lIdGNiaUFnWTI5dWMzUWdZMjkyWlhKbFpDQTlJRzVsZHlCVFpYUW9jbXh6VUc5c2FXTjVWR0ZpYkdWektIQnZiR2xqZVZObGRITXBLVHRjYmlBZ1kyOXVjM1FnYldsemMybHVaeUE5SUZKTVUxOVFVazlVUlVOVVJVUmZWRUZDVEVWVExtWnBiSFJsY2lnb2RHRmliR1VwSUQwK0lDRmpiM1psY21Wa0xtaGhjeWgwWVdKc1pTa3BPMXh1SUNCcFppQW9iV2x6YzJsdVp5NXNaVzVuZEdncElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJR0JTVEZNZ2RHVnRjR3hoZEdVZ2FYTWdiV2x6YzJsdVp5QjBZV0pzWlhNNklDUjdiV2x6YzJsdVp5NXFiMmx1S0Z3aUxDQmNJaWw5WUZ4dUlDQWdJQ2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
718
+ //# sourceMappingURL=rls.template.js.map
719
+ //# sourceMappingURL=rls.template.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/rls/rls.template.cjs","sourceRoot":"","sources":["namespaces/rls/rls.template.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmxzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvcmxzL3Jscy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL25hbWVzcGFjZXMvcmxzL3R5cGVzXG4gKiBAc3VtbWFyeSBUeXBlcyBzaGFyZWQgYnkgdGhlIG5hbWVzcGFjZSByb3ctbGV2ZWwtc2VjdXJpdHkgdGVtcGxhdGUgYW5kIHNlcnZpY2VzLlxuICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIG1pbmltYWwgcXVlcnktZXhlY3V0b3IgY29udHJhY3QgKGNvbXBhdGlibGUgd2l0aFxuICogYHBnLkNsaWVudGAvYHBnLlBvb2xgKSwgdGhlIHBvbGljeSBkZXNjcmlwdG9yIHVzZWQgdG8gZ2VuZXJhdGUgRERMLCBhbmQgdGhlXG4gKiBib290c3RyYXAvc2Vzc2lvbiBjb25maWd1cmF0aW9uIHNoYXBlcy5cbiAqL1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNaW5pbWFsIGFzeW5jaHJvbm91cyBTUUwgZXhlY3V0b3IgcmVxdWlyZWQgYnkgdGhlIFJMUyBzZXJ2aWNlcy5cbiAqIEBzdW1tYXJ5IE1hdGNoZXMgdGhlIHNoYXBlIG9mIGBwZy5DbGllbnQucXVlcnkoKWAgd2l0aG91dCBpbXBvcnRpbmcgYHBnYCBhdFxuICogcnVudGltZS4gQ29uc3VtZXJzIGNhbiBwYXNzIGEgYHBnLkNsaWVudGAsIGEgYHBnLlBvb2xgLCBvciBhbnkgY29tcGF0aWJsZVxuICogd3JhcHBlciAoaW5jbHVkaW5nIHRlc3QgZG91YmxlcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmxzUXVlcnlFeGVjdXRvciB7XG4gIHF1ZXJ5KFxuICAgIHNxbDogc3RyaW5nLFxuICAgIHZhbHVlcz86IHVua25vd25bXVxuICApOiBQcm9taXNlPHsgcm93Q291bnQ/OiBudW1iZXIgfCBudWxsOyByb3dzPzogdW5rbm93bltdIH0+O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiByb3ctbGV2ZWwtc2VjdXJpdHkgcG9saWNpZXMgZm9yIG9uZSB0YWJsZS5cbiAqIEBzdW1tYXJ5IEVhY2ggZXhwcmVzc2lvbiBpcyBhIFBvc3RncmVTUUwgYm9vbGVhbiBleHByZXNzaW9uIGV2YWx1YXRlZCBhZ2FpbnN0XG4gKiB0aGUgcm93LiBgaW5zZXJ0YCB1c2VzIGBXSVRIIENIRUNLYDsgYHVwZGF0ZWAgdXNlcyBgVVNJTkdgIGFuZCBgV0lUSCBDSEVDS2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmxzUG9saWN5U2V0IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUYWJsZSBuYW1lIChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIHRvIHByb3RlY3QuXG4gICAqL1xuICB0YWJsZTogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGBVU0lOR2AgZXhwcmVzc2lvbiBmb3IgYFNFTEVDVGA7IG9taXQgdG8gbGVhdmUgYFNFTEVDVGAgZGVuaWVkLlxuICAgKi9cbiAgc2VsZWN0Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGBXSVRIIENIRUNLYCBleHByZXNzaW9uIGZvciBgSU5TRVJUYDsgb21pdCB0byBkZW55IGluc2VydHMuXG4gICAqL1xuICBpbnNlcnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gYFVTSU5HYC9gV0lUSCBDSEVDS2AgZXhwcmVzc2lvbiBmb3IgYFVQREFURWA7IG9taXQgdG8gZGVueSB1cGRhdGVzLlxuICAgKi9cbiAgdXBkYXRlPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGBVU0lOR2AgZXhwcmVzc2lvbiBmb3IgYERFTEVURWA7IG9taXQgdG8gZGVueSBkZWxldGVzLlxuICAgKi9cbiAgZGVsZXRlPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gYWxzbyBlbWl0IGBFTkFCTEVgL2BGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFlgLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBlbmFibGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGFjY2VwdGVkIGJ5IHtAbGluayBSbHNCb290c3RyYXBTZXJ2aWNlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSbHNCb290c3RyYXBDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRlbWVudHMgdG8gYXBwbHkgaW5zdGVhZCBvZiB0aGUgYnVuZGxlZCBuYW1lc3BhY2UgdGVtcGxhdGUuXG4gICAqIEBzdW1tYXJ5IFVzZWZ1bCBmb3IgdGFyZ2V0ZWQgdGVzdHMgb3IgcGFydGlhbCBkZXBsb3ltZW50cy4gU3RhdGVtZW50cyBhcmVcbiAgICogZXhlY3V0ZWQgc2VxdWVudGlhbGx5IGFuZCBtdXN0IGJlIGlkZW1wb3RlbnQgd2hlbiBhcHBsaWVkIHJlcGVhdGVkbHkuXG4gICAqL1xuICBzdGF0ZW1lbnRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUG9saWN5IHNldHMgdG8gZ2VuZXJhdGUgaW5zdGVhZCBvZiB0aGUgYnVuZGxlZCBuYW1lc3BhY2UgcG9saWN5XG4gICAqIHRlbXBsYXRlLiBGdW5jdGlvbiBoZWxwZXJzIGFyZSBzdGlsbCBlbWl0dGVkIHVubGVzcyBgc3RhdGVtZW50c2AgaXMgc3VwcGxpZWQuXG4gICAqL1xuICBwb2xpY2llcz86IFJsc1BvbGljeVNldFtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb25zIGZvciB7QGxpbmsgcnVuQXNQcmluY2lwYWx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bkFzUHJpbmNpcGFsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29tbWl0IHRoZSB0cmFuc2FjdGlvbiB3aGVuIHRoZSBjYWxsYmFjayBzdWNjZWVkcy5cbiAgICogQGRlZmF1bHQgZmFsc2Ug4oCUIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayB0byBrZWVwIHRlc3RzIGlzb2xhdGVkLlxuICAgKi9cbiAgY29tbWl0PzogYm9vbGVhbjtcbn1cbiJdfQ==
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmxzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmxzLnR5cGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsa3dIQUFrd0giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL25hbWVzcGFjZXMvcmxzL3R5cGVzXG4gKiBAc3VtbWFyeSBUeXBlcyBzaGFyZWQgYnkgdGhlIG5hbWVzcGFjZSByb3ctbGV2ZWwtc2VjdXJpdHkgdGVtcGxhdGUgYW5kIHNlcnZpY2VzLlxuICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIG1pbmltYWwgcXVlcnktZXhlY3V0b3IgY29udHJhY3QgKGNvbXBhdGlibGUgd2l0aFxuICogYHBnLkNsaWVudGAvYHBnLlBvb2xgKSwgdGhlIHBvbGljeSBkZXNjcmlwdG9yIHVzZWQgdG8gZ2VuZXJhdGUgRERMLCBhbmQgdGhlXG4gKiBib290c3RyYXAvc2Vzc2lvbiBjb25maWd1cmF0aW9uIHNoYXBlcy5cbiAqL1xuZXhwb3J0IHt9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY214ekxuUjVjR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyNWhiV1Z6Y0dGalpYTXZjbXh6TDNKc2N5NTBlWEJsY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN08wZEJUVWNpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwyNWhiV1Z6Y0dGalpYTXZjbXh6TDNSNWNHVnpYRzRnS2lCQWMzVnRiV0Z5ZVNCVWVYQmxjeUJ6YUdGeVpXUWdZbmtnZEdobElHNWhiV1Z6Y0dGalpTQnliM2N0YkdWMlpXd3RjMlZqZFhKcGRIa2dkR1Z0Y0d4aGRHVWdZVzVrSUhObGNuWnBZMlZ6TGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbFptbHVaWE1nZEdobElHMXBibWx0WVd3Z2NYVmxjbmt0WlhobFkzVjBiM0lnWTI5dWRISmhZM1FnS0dOdmJYQmhkR2xpYkdVZ2QybDBhRnh1SUNvZ1lIQm5Ma05zYVdWdWRHQXZZSEJuTGxCdmIyeGdLU3dnZEdobElIQnZiR2xqZVNCa1pYTmpjbWx3ZEc5eUlIVnpaV1FnZEc4Z1oyVnVaWEpoZEdVZ1JFUk1MQ0JoYm1RZ2RHaGxYRzRnS2lCaWIyOTBjM1J5WVhBdmMyVnpjMmx2YmlCamIyNW1hV2QxY21GMGFXOXVJSE5vWVhCbGN5NWNiaUFxTDF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJOYVc1cGJXRnNJR0Z6ZVc1amFISnZibTkxY3lCVFVVd2daWGhsWTNWMGIzSWdjbVZ4ZFdseVpXUWdZbmtnZEdobElGSk1VeUJ6WlhKMmFXTmxjeTVjYmlBcUlFQnpkVzF0WVhKNUlFMWhkR05vWlhNZ2RHaGxJSE5vWVhCbElHOW1JR0J3Wnk1RGJHbGxiblF1Y1hWbGNua29LV0FnZDJsMGFHOTFkQ0JwYlhCdmNuUnBibWNnWUhCbllDQmhkRnh1SUNvZ2NuVnVkR2x0WlM0Z1EyOXVjM1Z0WlhKeklHTmhiaUJ3WVhOeklHRWdZSEJuTGtOc2FXVnVkR0FzSUdFZ1lIQm5MbEJ2YjJ4Z0xDQnZjaUJoYm5rZ1kyOXRjR0YwYVdKc1pWeHVJQ29nZDNKaGNIQmxjaUFvYVc1amJIVmthVzVuSUhSbGMzUWdaRzkxWW14bGN5a3VYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1VteHpVWFZsY25sRmVHVmpkWFJ2Y2lCN1hHNGdJSEYxWlhKNUtGeHVJQ0FnSUhOeGJEb2djM1J5YVc1bkxGeHVJQ0FnSUhaaGJIVmxjejg2SUhWdWEyNXZkMjViWFZ4dUlDQXBPaUJRY205dGFYTmxQSHNnY205M1EyOTFiblEvT2lCdWRXMWlaWElnZkNCdWRXeHNPeUJ5YjNkelB6b2dkVzVyYm05M2JsdGRJSDArTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCQklITmxkQ0J2WmlCeWIzY3RiR1YyWld3dGMyVmpkWEpwZEhrZ2NHOXNhV05wWlhNZ1ptOXlJRzl1WlNCMFlXSnNaUzVjYmlBcUlFQnpkVzF0WVhKNUlFVmhZMmdnWlhod2NtVnpjMmx2YmlCcGN5QmhJRkJ2YzNSbmNtVlRVVXdnWW05dmJHVmhiaUJsZUhCeVpYTnphVzl1SUdWMllXeDFZWFJsWkNCaFoyRnBibk4wWEc0Z0tpQjBhR1VnY205M0xpQmdhVzV6WlhKMFlDQjFjMlZ6SUdCWFNWUklJRU5JUlVOTFlEc2dZSFZ3WkdGMFpXQWdkWE5sY3lCZ1ZWTkpUa2RnSUdGdVpDQmdWMGxVU0NCRFNFVkRTMkF1WEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdVbXh6VUc5c2FXTjVVMlYwSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVVlXSnNaU0J1WVcxbElDaHZjSFJwYjI1aGJHeDVJSE5qYUdWdFlTMXhkV0ZzYVdacFpXUXBJSFJ2SUhCeWIzUmxZM1F1WEc0Z0lDQXFMMXh1SUNCMFlXSnNaVG9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJR0JWVTBsT1IyQWdaWGh3Y21WemMybHZiaUJtYjNJZ1lGTkZURVZEVkdBN0lHOXRhWFFnZEc4Z2JHVmhkbVVnWUZORlRFVkRWR0FnWkdWdWFXVmtMbHh1SUNBZ0tpOWNiaUFnYzJWc1pXTjBQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJR0JYU1ZSSUlFTklSVU5MWUNCbGVIQnlaWE56YVc5dUlHWnZjaUJnU1U1VFJWSlVZRHNnYjIxcGRDQjBieUJrWlc1NUlHbHVjMlZ5ZEhNdVhHNGdJQ0FxTDF4dUlDQnBibk5sY25RL09pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1lGVlRTVTVIWUM5Z1YwbFVTQ0JEU0VWRFMyQWdaWGh3Y21WemMybHZiaUJtYjNJZ1lGVlFSRUZVUldBN0lHOXRhWFFnZEc4Z1pHVnVlU0IxY0dSaGRHVnpMbHh1SUNBZ0tpOWNiaUFnZFhCa1lYUmxQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJR0JWVTBsT1IyQWdaWGh3Y21WemMybHZiaUJtYjNJZ1lFUkZURVZVUldBN0lHOXRhWFFnZEc4Z1pHVnVlU0JrWld4bGRHVnpMbHh1SUNBZ0tpOWNiaUFnWkdWc1pYUmxQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRmRvWlhSb1pYSWdkRzhnWVd4emJ5QmxiV2wwSUdCRlRrRkNURVZnTDJCR1QxSkRSU0JTVDFjZ1RFVldSVXdnVTBWRFZWSkpWRmxnTGx4dUlDQWdLaUJBWkdWbVlYVnNkQ0IwY25WbFhHNGdJQ0FxTDF4dUlDQmxibUZpYkdVL09pQmliMjlzWldGdU8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkRiMjVtYVdkMWNtRjBhVzl1SUdGalkyVndkR1ZrSUdKNUlIdEFiR2x1YXlCU2JITkNiMjkwYzNSeVlYQlRaWEoyYVdObGZTNWNiaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCU2JITkNiMjkwYzNSeVlYQkRiMjVtYVdjZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGTjBZWFJsYldWdWRITWdkRzhnWVhCd2JIa2dhVzV6ZEdWaFpDQnZaaUIwYUdVZ1luVnVaR3hsWkNCdVlXMWxjM0JoWTJVZ2RHVnRjR3hoZEdVdVhHNGdJQ0FxSUVCemRXMXRZWEo1SUZWelpXWjFiQ0JtYjNJZ2RHRnlaMlYwWldRZ2RHVnpkSE1nYjNJZ2NHRnlkR2xoYkNCa1pYQnNiM2x0Wlc1MGN5NGdVM1JoZEdWdFpXNTBjeUJoY21WY2JpQWdJQ29nWlhobFkzVjBaV1FnYzJWeGRXVnVkR2xoYkd4NUlHRnVaQ0J0ZFhOMElHSmxJR2xrWlcxd2IzUmxiblFnZDJobGJpQmhjSEJzYVdWa0lISmxjR1ZoZEdWa2JIa3VYRzRnSUNBcUwxeHVJQ0J6ZEdGMFpXMWxiblJ6UHpvZ2MzUnlhVzVuVzEwN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VHOXNhV041SUhObGRITWdkRzhnWjJWdVpYSmhkR1VnYVc1emRHVmhaQ0J2WmlCMGFHVWdZblZ1Wkd4bFpDQnVZVzFsYzNCaFkyVWdjRzlzYVdONVhHNGdJQ0FxSUhSbGJYQnNZWFJsTGlCR2RXNWpkR2x2YmlCb1pXeHdaWEp6SUdGeVpTQnpkR2xzYkNCbGJXbDBkR1ZrSUhWdWJHVnpjeUJnYzNSaGRHVnRaVzUwYzJBZ2FYTWdjM1Z3Y0d4cFpXUXVYRzRnSUNBcUwxeHVJQ0J3YjJ4cFkybGxjejg2SUZKc2MxQnZiR2xqZVZObGRGdGRPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQY0hScGIyNXpJR1p2Y2lCN1FHeHBibXNnY25WdVFYTlFjbWx1WTJsd1lXeDlMbHh1SUNvdlhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElGSjFia0Z6VUhKcGJtTnBjR0ZzVDNCMGFXOXVjeUI3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dGJXbDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQjNhR1Z1SUhSb1pTQmpZV3hzWW1GamF5QnpkV05qWldWa2N5NWNiaUFnSUNvZ1FHUmxabUYxYkhRZ1ptRnNjMlVnNG9DVUlIUm9aU0IwY21GdWMyRmpkR2x2YmlCcGN5QnliMnhzWldRZ1ltRmpheUIwYnlCclpXVndJSFJsYzNSeklHbHpiMnhoZEdWa0xseHVJQ0FnS2k5Y2JpQWdZMjl0YldsMFB6b2dZbTl2YkdWaGJqdGNibjFjYmlKZGZRPT0iXX0=
3
+ //# sourceMappingURL=rls.types.js.map
4
+ //# sourceMappingURL=rls.types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/rls/rls.types.cjs","sourceRoot":"","sources":["namespaces/rls/rls.types.js"],"names":[],"mappings":";;AAQA,qCAAqC"}
@@ -66,5 +66,5 @@ function namespaceRlsSessionBinding(options = {}) {
66
66
  function namespaceRlsTypeORMOptions(options = {}) {
67
67
  return { sessionBinding: namespaceRlsSessionBinding(options) };
68
68
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvcmxzL3Nlc3Npb24tYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0NBQTZCO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsMkJBQXdCO0FBNEMvQyxTQUFTLGNBQWMsQ0FBQyxPQUFxQixFQUFFLEdBQVc7SUFDeEQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxVQUE2QyxFQUFFO0lBRS9DLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLGFBQWEsQ0FBQztJQUN6RSxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLENBQUM7SUFDMUUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFMUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2pCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFL0IsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUNmLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQztnQkFDbEQsSUFBSSxDQUNGLGdFQUFnRSxZQUFZLENBQUMsU0FBUyxzQ0FBc0MsQ0FDN0gsQ0FBQztZQUNKLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFVBQTZDLEVBQUU7SUFFL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL25hbWVzcGFjZXMvcmxzL3Nlc3Npb24tYmluZGluZ1xuICogQHN1bW1hcnkgTWFwcyBhbiBhdXRoZW50aWNhdGVkIHJlcXVlc3QgY29udGV4dCB0byB0aGUgUG9zdGdyZXMgc2Vzc2lvbiBzZXR0aW5ncyBjb25zdW1lZCBieSB0aGUgbmFtZXNwYWNlIFJMUyBwb2xpY2llcy5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHtAbGluayBuYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ30gYW5kIHRoZVxuICogYG5hbWVzcGFjZVJsc1R5cGVPUk1PcHRpb25zKClgIGNvbnZlbmllbmNlIHdyYXBwZXI6IGEgZmFpbC1jbG9zZWQsXG4gKiBjb25maWctb25seSBzZWFtIHRoYXQgdHVybnMgdGhlIHByaW5jaXBhbCBVVUlEIGNhcnJpZWQgb24gYSBkZWNhZiBgQ29udGV4dGBcbiAqIGludG8gYSBgeyBbUkxTX1NFVFRJTkdTLlByaW5jaXBhbF06IHByaW5jaXBhbElkIH1gIHNldHRpbmdzIG1hcCB0aGUgVHlwZU9STVxuICogYWRhcHRlciBiaW5kcyB0cmFuc2FjdGlvbi1sb2NhbGx5IGFmdGVyIGBCRUdJTmAuIE5vdGhpbmcgaXMgYm91bmQgd2hlbiB0aGVcbiAqIGNvbnRleHQgY2FycmllcyBubyBVVUlELXNoYXBlZCBwcmluY2lwYWwsIHNvIFBvc3RncmVzIFJMUyBkZW5pZXNcbiAqIHByb3RlY3RlZC1yb3cgYWNjZXNzIGluc3RlYWQgb2Ygc2lsZW50bHkgc2VydmluZyBhbiBhbm9ueW1vdXMgcmVhZC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQUklOQ0lQQUxfVVVJRF9QQVRURVJOIH0gZnJvbSBcIi4vcHJpbmNpcGFsLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBSTFNfU0VUVElOR1MgfSBmcm9tIFwiLi9ybHMuY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNlc3Npb24gc2V0dGluZ3MgbWFwIGhhbmRlZCB0byB0aGUgcGVyc2lzdGVuY2UgYWRhcHRlcidzIHNlc3Npb24gYmluZGluZ1xuICogQHN1bW1hcnkgQSBwbGFpbiBgbmFtZSAtPiB2YWx1ZWAgbWFwIG9mIFBvc3RncmVzIHNlc3Npb24gdmFyaWFibGVzLiBUaGVcbiAqIGJpbmRpbmcgcHJvZHVjZWQgaGVyZSB1c2VzIGV4YWN0bHkgb25lIGtleToge0BsaW5rIFJMU19TRVRUSU5HUy5QcmluY2lwYWx9XG4gKiAoYGFwcC5wcmluY2lwYWxfaWRgKSBmcm9tIGAuL3Jscy5jb25zdGFudHNgIC0gdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGhcbiAqIGFsc28gaW50ZXJwb2xhdGVkIGJ5IGAuL3Jscy50ZW1wbGF0ZWAgaW50byB0aGUgUkxTIGhlbHBlciBmdW5jdGlvbnMgYW5kXG4gKiBwb2xpY2llcyAtIHNvIHJlbmFtaW5nIHRoZSBzZXR0aW5nIGluIG9uZSBwbGFjZSByZW5hbWVzIGl0IGV2ZXJ5d2hlcmUuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gTmFtZXNwYWNlUmxzU2Vzc2lvblNldHRpbmdzXG4gKi9cbmV4cG9ydCB0eXBlIE5hbWVzcGFjZVJsc1Nlc3Npb25TZXR0aW5ncyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlc29sdmVyIHRoYXQgbWFwcyBhIHJlcXVlc3QgY29udGV4dCB0byBSTFMgc2Vzc2lvbiBzZXR0aW5nc1xuICogQHN1bW1hcnkgSW52b2tlZCBieSB0aGUgcGVyc2lzdGVuY2UgYWRhcHRlciBhdCB0cmFuc2FjdGlvbiBzdGFydCB3aXRoIHRoZVxuICogcmVxdWVzdCBgQ29udGV4dGAgKGlmIGFueSkuIFJldHVybnMgdGhlIHNldHRpbmdzIHRvIGJpbmRcbiAqIHRyYW5zYWN0aW9uLWxvY2FsbHksIG9yIGB1bmRlZmluZWRgIHdoZW4gbm90aGluZyBzaG91bGQgYmUgYm91bmQuIE11c3QgYmVcbiAqIHN5bmNocm9ub3VzIGFuZCBzaWRlLWVmZmVjdCBmcmVlOiB0aGUgY29uc3VtaW5nIGFkYXB0ZXIgdHJlYXRzIGEgdGhyb3cgZnJvbVxuICogdGhlIGJpbmRpbmcgYXMgXCJubyBzZXR0aW5nc1wiIGFuZCBsZWF2ZXMgdGhlIHRyYW5zYWN0aW9uIHVuYm91bmQgKGZhaWxcbiAqIGNsb3NlZCkuXG4gKiBAdHlwZWRlZiB7KGNvbnRleHQ/OiBDb250ZXh0PGFueT4pID0+IE5hbWVzcGFjZVJsc1Nlc3Npb25TZXR0aW5ncyB8IHVuZGVmaW5lZH0gTmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmdcbiAqL1xuZXhwb3J0IHR5cGUgTmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmcgPSAoXG4gIGNvbnRleHQ/OiBDb250ZXh0PGFueT5cbikgPT4gTmFtZXNwYWNlUmxzU2Vzc2lvblNldHRpbmdzIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb25zIGZvciB0aGUgbmFtZXNwYWNlIFJMUyBzZXNzaW9uIGJpbmRpbmdcbiAqIEBzdW1tYXJ5IExldHMgaG9zdHMgcmVsb2NhdGUgdGhlIGNvbnRleHQga2V5cyB0aGUgZGVmYXVsdCBiaW5kaW5nIHJlYWRzIGFuZFxuICogb3ZlcnJpZGUgdGhlIHdhcm5pbmcgc2luay4gVGhlIGRlZmF1bHRzIHJlYWQgYHByaW5jaXBhbElkYCAodGhlIHJlc29sdmVkXG4gKiBwcmluY2lwYWwgVVVJRCBjYXJyaWVkIG9uIHRoZSByZXF1ZXN0IGNvbnRleHQpIGFuZCBgdXNlcmAgKHRoZVxuICogYXV0aGVudGljYXRlZCBpZGVudGl0eSBtYXJrZXIpLCBhbmQgd2FybiB0aHJvdWdoIGBjb25zb2xlLndhcm5gLlxuICogQGludGVyZmFjZSBOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHJpbmNpcGFsQ29udGV4dEtleV0gLSBDb250ZXh0IGtleSBob2xkaW5nIHRoZSByZXNvbHZlZCBwcmluY2lwYWwgVVVJRC4gRGVmYXVsdHMgdG8gYHByaW5jaXBhbElkYC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbYXV0aGVudGljYXRlZENvbnRleHRLZXldIC0gQ29udGV4dCBrZXkgdGhhdCBtYXJrcyB0aGUgY29udGV4dCBhcyBhdXRoZW50aWNhdGVkOyBjb25zdWx0ZWQgb25seSB0byBkZWNpZGUgd2hldGhlciB0byB3YXJuLiBEZWZhdWx0cyB0byBgdXNlcmAuXG4gKiBAcHJvcGVydHkgeyhtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWR9IFt3YXJuXSAtIFdhcm5pbmcgc2luayBpbnZva2VkIHdoZW4gYW4gYXV0aGVudGljYXRlZCBjb250ZXh0IGhhcyBubyByZXNvbHZhYmxlIHByaW5jaXBhbC4gRGVmYXVsdHMgdG8gYGNvbnNvbGUud2FybmA7IHRoZSBtZXNzYWdlIG5ldmVyIGNvbnRhaW5zIGFueSBzZXR0aW5nIG9yIHByaW5jaXBhbCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ09wdGlvbnMge1xuICBwcmluY2lwYWxDb250ZXh0S2V5Pzogc3RyaW5nO1xuICBhdXRoZW50aWNhdGVkQ29udGV4dEtleT86IHN0cmluZztcbiAgd2Fybj86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRDb250ZXh0S2V5KGNvbnRleHQ6IENvbnRleHQ8YW55Piwga2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gY29udGV4dC5nZXRPclVuZGVmaW5lZChrZXkgYXMgYW55KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIG5hbWVzcGFjZSBSTFMgc2Vzc2lvbiBiaW5kaW5nIGZvciBhIHJlcXVlc3QgY29udGV4dFxuICogQHN1bW1hcnkgUmV0dXJucyBhIHJlc29sdmVyIHRoYXQgcmVhZHMgdGhlIGNvbmZpZ3VyZWQgcHJpbmNpcGFsIGNvbnRleHQga2V5XG4gKiAoZGVmYXVsdCBgcHJpbmNpcGFsSWRgKSwgdHJpbXMgdGhlIGNhbmRpZGF0ZSwgYW5kIC0gd2hlbiBpdCBpcyBhXG4gKiBVVUlELXNoYXBlZCBzdHJpbmcgLSBwcm9kdWNlc1xuICogYHsgW1JMU19TRVRUSU5HUy5QcmluY2lwYWxdOiBwcmluY2lwYWxJZCB9YCBmb3IgdGhlIGFkYXB0ZXIgdG8gYmluZFxuICogdHJhbnNhY3Rpb24tbG9jYWxseS4gRmFpbCBjbG9zZWQ6IGEgbWlzc2luZyBjb250ZXh0LCBhbiBhYnNlbnQsIGVtcHR5LCBvclxuICogbm9uLVVVSUQgY2FuZGlkYXRlLCBvciBhIGNvbnRleHQgbG9va3VwIGVycm9yIHlpZWxkcyBgdW5kZWZpbmVkYCwgc29cbiAqIG5vdGhpbmcgaXMgYm91bmQgYW5kIFBvc3RncmVzIFJMUyBkZW5pZXMgcHJvdGVjdGVkLXJvdyBhY2Nlc3MuIFdoZW4gdGhlXG4gKiBjb250ZXh0IGxvb2tzIGF1dGhlbnRpY2F0ZWQgKHRoZSBjb25maWd1cmVkIGF1dGhlbnRpY2F0ZWQgY29udGV4dCBrZXlcbiAqIHJlc29sdmVzKSBidXQgY2FycmllcyBubyB2YWxpZCBwcmluY2lwYWwsIHRoZSByZXNvbHZlciBlbWl0cyBhIHNpbmdsZVxuICogd2FybmluZyB0aHJvdWdoIHRoZSBjb25maWd1cmVkIGB3YXJuYCBzaW5rIChkZWZhdWx0IGBjb25zb2xlLndhcm5gKSxcbiAqIHdpdGhvdXQgbG9nZ2luZyBhbnkgc2V0dGluZyBvciBwcmluY2lwYWwgdmFsdWUuXG4gKiBAZnVuY3Rpb24gbmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmdcbiAqIEBwYXJhbSB7TmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmdPcHRpb25zfSBbb3B0aW9uc10gLSBPdmVycmlkZXMgZm9yIHRoZSBjb250ZXh0IGtleXMgYW5kIHRoZSB3YXJuaW5nIHNpbmsuXG4gKiBAcmV0dXJucyB7TmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmd9IFRoZSBjb250ZXh0LXRvLXNldHRpbmdzIHJlc29sdmVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGJpbmRpbmcgPSBuYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZygpO1xuICogY29uc3Qgc2V0dGluZ3MgPSBiaW5kaW5nKGN0eCk7IC8vIHsgXCJhcHAucHJpbmNpcGFsX2lkXCI6IFwiPHV1aWQ+XCIgfSBvciB1bmRlZmluZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZVJsc1Nlc3Npb25CaW5kaW5nKFxuICBvcHRpb25zOiBOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ09wdGlvbnMgPSB7fVxuKTogTmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmcge1xuICBjb25zdCBwcmluY2lwYWxDb250ZXh0S2V5ID0gb3B0aW9ucy5wcmluY2lwYWxDb250ZXh0S2V5ID8/IFwicHJpbmNpcGFsSWRcIjtcbiAgY29uc3QgYXV0aGVudGljYXRlZENvbnRleHRLZXkgPSBvcHRpb25zLmF1dGhlbnRpY2F0ZWRDb250ZXh0S2V5ID8/IFwidXNlclwiO1xuICBjb25zdCB3YXJuID0gb3B0aW9ucy53YXJuID8/ICgobWVzc2FnZTogc3RyaW5nKSA9PiBjb25zb2xlLndhcm4obWVzc2FnZSkpO1xuXG4gIHJldHVybiAoY29udGV4dCkgPT4ge1xuICAgIGlmICghY29udGV4dCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHJlYWRDb250ZXh0S2V5KGNvbnRleHQsIHByaW5jaXBhbENvbnRleHRLZXkpO1xuICAgIGNvbnN0IHByaW5jaXBhbElkID1cbiAgICAgIHR5cGVvZiBjYW5kaWRhdGUgPT09IFwic3RyaW5nXCIgPyBjYW5kaWRhdGUudHJpbSgpIDogXCJcIjtcblxuICAgIGlmICghcHJpbmNpcGFsSWQgfHwgIVBSSU5DSVBBTF9VVUlEX1BBVFRFUk4udGVzdChwcmluY2lwYWxJZCkpIHtcbiAgICAgIGlmIChyZWFkQ29udGV4dEtleShjb250ZXh0LCBhdXRoZW50aWNhdGVkQ29udGV4dEtleSkpXG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgYEF1dGhlbnRpY2F0ZWQgY29udGV4dCBoYXMgbm8gcmVzb2x2YWJsZSBuYW1lc3BhY2UgcHJpbmNpcGFsOyAke1JMU19TRVRUSU5HUy5QcmluY2lwYWx9IHdpbGwgbm90IGJlIGJvdW5kIGFuZCBSTFMgd2lsbCBkZW55YFxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4geyBbUkxTX1NFVFRJTkdTLlByaW5jaXBhbF06IHByaW5jaXBhbElkIH07XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgYHNlc3Npb25CaW5kaW5nYCBvcHRpb24gZm9yIHRoZSBUeXBlT1JNIGFkYXB0ZXJcbiAqIEBzdW1tYXJ5IENvbnZlbmllbmNlIHdyYXBwZXIgdGhhdCBzcHJlYWRzIHRoZSBuYW1lc3BhY2VkIFJMUyBiaW5kaW5nIGludG8gYVxuICogVHlwZU9STSBhZGFwdGVyIGNvbmZpZ3VyYXRpb246IG1lcmdlIHRoZSByZXR1cm5lZCBvYmplY3QgaW50b1xuICogYFR5cGVPUk1BZGFwdGVyT3B0aW9uc2AgYW5kIGBUeXBlT1JNQ29udGV4dExvY2tgIGJpbmRzIHRoZSByZXNvbHZlZFxuICoge0BsaW5rIFJMU19TRVRUSU5HUy5QcmluY2lwYWx9IHRyYW5zYWN0aW9uLWxvY2FsbHkgYWZ0ZXIgYEJFR0lOYC4gVGhpcyBpc1xuICogY29uZmlndXJhdGlvbiBvbmx5IC0gbm8gc3ViY2xhc3Npbmcgb3IgbWV0aG9kIG92ZXJyaWRlcy5cbiAqIEBmdW5jdGlvbiBuYW1lc3BhY2VSbHNUeXBlT1JNT3B0aW9uc1xuICogQHBhcmFtIHtOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ09wdGlvbnN9IFtvcHRpb25zXSAtIE92ZXJyaWRlcyBmb3J3YXJkZWQgdG8ge0BsaW5rIG5hbWVzcGFjZVJsc1Nlc3Npb25CaW5kaW5nfS5cbiAqIEByZXR1cm5zIHt7IHNlc3Npb25CaW5kaW5nOiBOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZyB9fSBBbiBvYmplY3QgdG8gc3ByZWFkIGludG8gdGhlIFR5cGVPUk0gYWRhcHRlciBvcHRpb25zLlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IG5hbWVzcGFjZVJsc1R5cGVPUk1PcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvbmFtZXNwYWNlc1wiO1xuICogY29uc3QgYWRhcHRlciA9IG5ldyBUeXBlT1JNQWRhcHRlcih7IC4uLmRhdGFTb3VyY2VPcHRpb25zLCAuLi5uYW1lc3BhY2VSbHNUeXBlT1JNT3B0aW9ucygpIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlUmxzVHlwZU9STU9wdGlvbnMoXG4gIG9wdGlvbnM6IE5hbWVzcGFjZVJsc1Nlc3Npb25CaW5kaW5nT3B0aW9ucyA9IHt9XG4pOiB7IHNlc3Npb25CaW5kaW5nOiBOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZyB9IHtcbiAgcmV0dXJuIHsgc2Vzc2lvbkJpbmRpbmc6IG5hbWVzcGFjZVJsc1Nlc3Npb25CaW5kaW5nKG9wdGlvbnMpIH07XG59XG4iXX0=
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2Vzc2lvbi1iaW5kaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOEJBLGdFQWdCQztBQWVELGdFQUVDO0FBL0RELG1FQUFpRTtBQUNqRSx5REFBa0Q7QUFDbEQsU0FBUyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUc7SUFDaEMsSUFBSSxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsT0FBTyxHQUFHLEVBQUU7SUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLElBQUksYUFBYSxDQUFDO0lBQ3pFLE1BQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixJQUFJLE1BQU0sQ0FBQztJQUMxRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixJQUFJLENBQUMsT0FBTztZQUNSLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMvRCxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyw4Q0FBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLGNBQWMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnRUFBZ0UsK0JBQVksQ0FBQyxTQUFTLHNDQUFzQyxDQUFDLENBQUM7WUFDdkksT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLCtCQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDckQsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxPQUFPLEdBQUcsRUFBRTtJQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDbkUsQ0FBQztBQUNELHNxVkFBc3FWIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUFJJTkNJUEFMX1VVSURfUEFUVEVSTiB9IGZyb20gXCIuL3ByaW5jaXBhbC1yZXNvbHZlci5qc1wiO1xuaW1wb3J0IHsgUkxTX1NFVFRJTkdTIH0gZnJvbSBcIi4vcmxzLmNvbnN0YW50cy5qc1wiO1xuZnVuY3Rpb24gcmVhZENvbnRleHRLZXkoY29udGV4dCwga2V5KSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoa2V5KTtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgbmFtZXNwYWNlIFJMUyBzZXNzaW9uIGJpbmRpbmcgZm9yIGEgcmVxdWVzdCBjb250ZXh0XG4gKiBAc3VtbWFyeSBSZXR1cm5zIGEgcmVzb2x2ZXIgdGhhdCByZWFkcyB0aGUgY29uZmlndXJlZCBwcmluY2lwYWwgY29udGV4dCBrZXlcbiAqIChkZWZhdWx0IGBwcmluY2lwYWxJZGApLCB0cmltcyB0aGUgY2FuZGlkYXRlLCBhbmQgLSB3aGVuIGl0IGlzIGFcbiAqIFVVSUQtc2hhcGVkIHN0cmluZyAtIHByb2R1Y2VzXG4gKiBgeyBbUkxTX1NFVFRJTkdTLlByaW5jaXBhbF06IHByaW5jaXBhbElkIH1gIGZvciB0aGUgYWRhcHRlciB0byBiaW5kXG4gKiB0cmFuc2FjdGlvbi1sb2NhbGx5LiBGYWlsIGNsb3NlZDogYSBtaXNzaW5nIGNvbnRleHQsIGFuIGFic2VudCwgZW1wdHksIG9yXG4gKiBub24tVVVJRCBjYW5kaWRhdGUsIG9yIGEgY29udGV4dCBsb29rdXAgZXJyb3IgeWllbGRzIGB1bmRlZmluZWRgLCBzb1xuICogbm90aGluZyBpcyBib3VuZCBhbmQgUG9zdGdyZXMgUkxTIGRlbmllcyBwcm90ZWN0ZWQtcm93IGFjY2Vzcy4gV2hlbiB0aGVcbiAqIGNvbnRleHQgbG9va3MgYXV0aGVudGljYXRlZCAodGhlIGNvbmZpZ3VyZWQgYXV0aGVudGljYXRlZCBjb250ZXh0IGtleVxuICogcmVzb2x2ZXMpIGJ1dCBjYXJyaWVzIG5vIHZhbGlkIHByaW5jaXBhbCwgdGhlIHJlc29sdmVyIGVtaXRzIGEgc2luZ2xlXG4gKiB3YXJuaW5nIHRocm91Z2ggdGhlIGNvbmZpZ3VyZWQgYHdhcm5gIHNpbmsgKGRlZmF1bHQgYGNvbnNvbGUud2FybmApLFxuICogd2l0aG91dCBsb2dnaW5nIGFueSBzZXR0aW5nIG9yIHByaW5jaXBhbCB2YWx1ZS5cbiAqIEBmdW5jdGlvbiBuYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ1xuICogQHBhcmFtIHtOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ09wdGlvbnN9IFtvcHRpb25zXSAtIE92ZXJyaWRlcyBmb3IgdGhlIGNvbnRleHQga2V5cyBhbmQgdGhlIHdhcm5pbmcgc2luay5cbiAqIEByZXR1cm5zIHtOYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ30gVGhlIGNvbnRleHQtdG8tc2V0dGluZ3MgcmVzb2x2ZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgYmluZGluZyA9IG5hbWVzcGFjZVJsc1Nlc3Npb25CaW5kaW5nKCk7XG4gKiBjb25zdCBzZXR0aW5ncyA9IGJpbmRpbmcoY3R4KTsgLy8geyBcImFwcC5wcmluY2lwYWxfaWRcIjogXCI8dXVpZD5cIiB9IG9yIHVuZGVmaW5lZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmcob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgcHJpbmNpcGFsQ29udGV4dEtleSA9IG9wdGlvbnMucHJpbmNpcGFsQ29udGV4dEtleSA/PyBcInByaW5jaXBhbElkXCI7XG4gICAgY29uc3QgYXV0aGVudGljYXRlZENvbnRleHRLZXkgPSBvcHRpb25zLmF1dGhlbnRpY2F0ZWRDb250ZXh0S2V5ID8/IFwidXNlclwiO1xuICAgIGNvbnN0IHdhcm4gPSBvcHRpb25zLndhcm4gPz8gKChtZXNzYWdlKSA9PiBjb25zb2xlLndhcm4obWVzc2FnZSkpO1xuICAgIHJldHVybiAoY29udGV4dCkgPT4ge1xuICAgICAgICBpZiAoIWNvbnRleHQpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSByZWFkQ29udGV4dEtleShjb250ZXh0LCBwcmluY2lwYWxDb250ZXh0S2V5KTtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFsSWQgPSB0eXBlb2YgY2FuZGlkYXRlID09PSBcInN0cmluZ1wiID8gY2FuZGlkYXRlLnRyaW0oKSA6IFwiXCI7XG4gICAgICAgIGlmICghcHJpbmNpcGFsSWQgfHwgIVBSSU5DSVBBTF9VVUlEX1BBVFRFUk4udGVzdChwcmluY2lwYWxJZCkpIHtcbiAgICAgICAgICAgIGlmIChyZWFkQ29udGV4dEtleShjb250ZXh0LCBhdXRoZW50aWNhdGVkQ29udGV4dEtleSkpXG4gICAgICAgICAgICAgICAgd2FybihgQXV0aGVudGljYXRlZCBjb250ZXh0IGhhcyBubyByZXNvbHZhYmxlIG5hbWVzcGFjZSBwcmluY2lwYWw7ICR7UkxTX1NFVFRJTkdTLlByaW5jaXBhbH0gd2lsbCBub3QgYmUgYm91bmQgYW5kIFJMUyB3aWxsIGRlbnlgKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgW1JMU19TRVRUSU5HUy5QcmluY2lwYWxdOiBwcmluY2lwYWxJZCB9O1xuICAgIH07XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIGBzZXNzaW9uQmluZGluZ2Agb3B0aW9uIGZvciB0aGUgVHlwZU9STSBhZGFwdGVyXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSB3cmFwcGVyIHRoYXQgc3ByZWFkcyB0aGUgbmFtZXNwYWNlZCBSTFMgYmluZGluZyBpbnRvIGFcbiAqIFR5cGVPUk0gYWRhcHRlciBjb25maWd1cmF0aW9uOiBtZXJnZSB0aGUgcmV0dXJuZWQgb2JqZWN0IGludG9cbiAqIGBUeXBlT1JNQWRhcHRlck9wdGlvbnNgIGFuZCBgVHlwZU9STUNvbnRleHRMb2NrYCBiaW5kcyB0aGUgcmVzb2x2ZWRcbiAqIHtAbGluayBSTFNfU0VUVElOR1MuUHJpbmNpcGFsfSB0cmFuc2FjdGlvbi1sb2NhbGx5IGFmdGVyIGBCRUdJTmAuIFRoaXMgaXNcbiAqIGNvbmZpZ3VyYXRpb24gb25seSAtIG5vIHN1YmNsYXNzaW5nIG9yIG1ldGhvZCBvdmVycmlkZXMuXG4gKiBAZnVuY3Rpb24gbmFtZXNwYWNlUmxzVHlwZU9STU9wdGlvbnNcbiAqIEBwYXJhbSB7TmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmdPcHRpb25zfSBbb3B0aW9uc10gLSBPdmVycmlkZXMgZm9yd2FyZGVkIHRvIHtAbGluayBuYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZ30uXG4gKiBAcmV0dXJucyB7eyBzZXNzaW9uQmluZGluZzogTmFtZXNwYWNlUmxzU2Vzc2lvbkJpbmRpbmcgfX0gQW4gb2JqZWN0IHRvIHNwcmVhZCBpbnRvIHRoZSBUeXBlT1JNIGFkYXB0ZXIgb3B0aW9ucy5cbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBuYW1lc3BhY2VSbHNUeXBlT1JNT3B0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL25hbWVzcGFjZXNcIjtcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgVHlwZU9STUFkYXB0ZXIoeyAuLi5kYXRhU291cmNlT3B0aW9ucywgLi4ubmFtZXNwYWNlUmxzVHlwZU9STU9wdGlvbnMoKSB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZVJsc1R5cGVPUk1PcHRpb25zKG9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiB7IHNlc3Npb25CaW5kaW5nOiBuYW1lc3BhY2VSbHNTZXNzaW9uQmluZGluZyhvcHRpb25zKSB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWemMybHZiaTFpYVc1a2FXNW5MbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDI1aGJXVnpjR0ZqWlhNdmNteHpMM05sYzNOcGIyNHRZbWx1WkdsdVp5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZaUVN4UFFVRlBMRVZCUVVVc2MwSkJRWE5DTEVWQlFVVXNaME5CUVRaQ08wRkJRemxFTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc01rSkJRWGRDTzBGQk5FTXZReXhUUVVGVExHTkJRV01zUTBGQlF5eFBRVUZ4UWl4RlFVRkZMRWRCUVZjN1NVRkRlRVFzU1VGQlNTeERRVUZETzFGQlEwZ3NUMEZCVHl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVlVzUTBGQlF5eERRVUZETzBsQlF6VkRMRU5CUVVNN1NVRkJReXhOUVVGTkxFTkJRVU03VVVGRFVDeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wRkJRMGdzUTBGQlF6dEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3TzBkQmJVSkhPMEZCUTBnc1RVRkJUU3hWUVVGVkxEQkNRVUV3UWl4RFFVTjRReXhWUVVFMlF5eEZRVUZGTzBsQlJTOURMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NUMEZCVHl4RFFVRkRMRzFDUVVGdFFpeEpRVUZKTEdGQlFXRXNRMEZCUXp0SlFVTjZSU3hOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRTlCUVU4c1EwRkJReXgxUWtGQmRVSXNTVUZCU1N4TlFVRk5MRU5CUVVNN1NVRkRNVVVzVFVGQlRTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlpTeEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTVVVc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTzFGQlEycENMRWxCUVVrc1EwRkJReXhQUVVGUE8xbEJRVVVzVDBGQlR5eFRRVUZUTEVOQlFVTTdVVUZGTDBJc1RVRkJUU3hUUVVGVExFZEJRVWNzWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUTBGQlF5eERRVUZETzFGQlF5OUVMRTFCUVUwc1YwRkJWeXhIUVVObUxFOUJRVThzVTBGQlV5eExRVUZMTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkZlRVFzU1VGQlNTeERRVUZETEZkQlFWY3NTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemxFTEVsQlFVa3NZMEZCWXl4RFFVRkRMRTlCUVU4c1JVRkJSU3gxUWtGQmRVSXNRMEZCUXp0blFrRkRiRVFzU1VGQlNTeERRVU5HTEdkRlFVRm5SU3haUVVGWkxFTkJRVU1zVTBGQlV5eHpRMEZCYzBNc1EwRkROMGdzUTBGQlF6dFpRVU5LTEU5QlFVOHNVMEZCVXl4RFFVRkRPMUZCUTI1Q0xFTkJRVU03VVVGRlJDeFBRVUZQTEVWQlFVVXNRMEZCUXl4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEYmtRc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZFT3pzN096czdPenM3T3pzN08wZEJZVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNNRUpCUVRCQ0xFTkJRM2hETEZWQlFUWkRMRVZCUVVVN1NVRkZMME1zVDBGQlR5eEZRVUZGTEdOQlFXTXNSVUZCUlN3d1FrRkJNRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUTJwRkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwyNWhiV1Z6Y0dGalpYTXZjbXh6TDNObGMzTnBiMjR0WW1sdVpHbHVaMXh1SUNvZ1FITjFiVzFoY25rZ1RXRndjeUJoYmlCaGRYUm9aVzUwYVdOaGRHVmtJSEpsY1hWbGMzUWdZMjl1ZEdWNGRDQjBieUIwYUdVZ1VHOXpkR2R5WlhNZ2MyVnpjMmx2YmlCelpYUjBhVzVuY3lCamIyNXpkVzFsWkNCaWVTQjBhR1VnYm1GdFpYTndZV05sSUZKTVV5QndiMnhwWTJsbGN5NWNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkZlSEJ2YzJWeklIdEFiR2x1YXlCdVlXMWxjM0JoWTJWU2JITlRaWE56YVc5dVFtbHVaR2x1WjMwZ1lXNWtJSFJvWlZ4dUlDb2dZRzVoYldWemNHRmpaVkpzYzFSNWNHVlBVazFQY0hScGIyNXpLQ2xnSUdOdmJuWmxibWxsYm1ObElIZHlZWEJ3WlhJNklHRWdabUZwYkMxamJHOXpaV1FzWEc0Z0tpQmpiMjVtYVdjdGIyNXNlU0J6WldGdElIUm9ZWFFnZEhWeWJuTWdkR2hsSUhCeWFXNWphWEJoYkNCVlZVbEVJR05oY25KcFpXUWdiMjRnWVNCa1pXTmhaaUJnUTI5dWRHVjRkR0JjYmlBcUlHbHVkRzhnWVNCZ2V5QmJVa3hUWDFORlZGUkpUa2RUTGxCeWFXNWphWEJoYkYwNklIQnlhVzVqYVhCaGJFbGtJSDFnSUhObGRIUnBibWR6SUcxaGNDQjBhR1VnVkhsd1pVOVNUVnh1SUNvZ1lXUmhjSFJsY2lCaWFXNWtjeUIwY21GdWMyRmpkR2x2Ymkxc2IyTmhiR3g1SUdGbWRHVnlJR0JDUlVkSlRtQXVJRTV2ZEdocGJtY2dhWE1nWW05MWJtUWdkMmhsYmlCMGFHVmNiaUFxSUdOdmJuUmxlSFFnWTJGeWNtbGxjeUJ1YnlCVlZVbEVMWE5vWVhCbFpDQndjbWx1WTJsd1lXd3NJSE52SUZCdmMzUm5jbVZ6SUZKTVV5QmtaVzVwWlhOY2JpQXFJSEJ5YjNSbFkzUmxaQzF5YjNjZ1lXTmpaWE56SUdsdWMzUmxZV1FnYjJZZ2MybHNaVzUwYkhrZ2MyVnlkbWx1WnlCaGJpQmhibTl1ZVcxdmRYTWdjbVZoWkM1Y2JpQXFMMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkRiMjUwWlhoMElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QlFVa2xPUTBsUVFVeGZWVlZKUkY5UVFWUlVSVkpPSUgwZ1puSnZiU0JjSWk0dmNISnBibU5wY0dGc0xYSmxjMjlzZG1WeVhDSTdYRzVwYlhCdmNuUWdleUJTVEZOZlUwVlVWRWxPUjFNZ2ZTQm1jbTl0SUZ3aUxpOXliSE11WTI5dWMzUmhiblJ6WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZObGMzTnBiMjRnYzJWMGRHbHVaM01nYldGd0lHaGhibVJsWkNCMGJ5QjBhR1VnY0dWeWMybHpkR1Z1WTJVZ1lXUmhjSFJsY2lkeklITmxjM05wYjI0Z1ltbHVaR2x1WjF4dUlDb2dRSE4xYlcxaGNua2dRU0J3YkdGcGJpQmdibUZ0WlNBdFBpQjJZV3gxWldBZ2JXRndJRzltSUZCdmMzUm5jbVZ6SUhObGMzTnBiMjRnZG1GeWFXRmliR1Z6TGlCVWFHVmNiaUFxSUdKcGJtUnBibWNnY0hKdlpIVmpaV1FnYUdWeVpTQjFjMlZ6SUdWNFlXTjBiSGtnYjI1bElHdGxlVG9nZTBCc2FXNXJJRkpNVTE5VFJWUlVTVTVIVXk1UWNtbHVZMmx3WVd4OVhHNGdLaUFvWUdGd2NDNXdjbWx1WTJsd1lXeGZhV1JnS1NCbWNtOXRJR0F1TDNKc2N5NWpiMjV6ZEdGdWRITmdJQzBnZEdobElITnBibWRzWlNCemIzVnlZMlVnYjJZZ2RISjFkR2hjYmlBcUlHRnNjMjhnYVc1MFpYSndiMnhoZEdWa0lHSjVJR0F1TDNKc2N5NTBaVzF3YkdGMFpXQWdhVzUwYnlCMGFHVWdVa3hUSUdobGJIQmxjaUJtZFc1amRHbHZibk1nWVc1a1hHNGdLaUJ3YjJ4cFkybGxjeUF0SUhOdklISmxibUZ0YVc1bklIUm9aU0J6WlhSMGFXNW5JR2x1SUc5dVpTQndiR0ZqWlNCeVpXNWhiV1Z6SUdsMElHVjJaWEo1ZDJobGNtVXVYRzRnS2lCQWRIbHdaV1JsWmlCN1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QbjBnVG1GdFpYTndZV05sVW14elUyVnpjMmx2YmxObGRIUnBibWR6WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUU1aGJXVnpjR0ZqWlZKc2MxTmxjM05wYjI1VFpYUjBhVzVuY3lBOUlGSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejQ3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsYzI5c2RtVnlJSFJvWVhRZ2JXRndjeUJoSUhKbGNYVmxjM1FnWTI5dWRHVjRkQ0IwYnlCU1RGTWdjMlZ6YzJsdmJpQnpaWFIwYVc1bmMxeHVJQ29nUUhOMWJXMWhjbmtnU1c1MmIydGxaQ0JpZVNCMGFHVWdjR1Z5YzJsemRHVnVZMlVnWVdSaGNIUmxjaUJoZENCMGNtRnVjMkZqZEdsdmJpQnpkR0Z5ZENCM2FYUm9JSFJvWlZ4dUlDb2djbVZ4ZFdWemRDQmdRMjl1ZEdWNGRHQWdLR2xtSUdGdWVTa3VJRkpsZEhWeWJuTWdkR2hsSUhObGRIUnBibWR6SUhSdklHSnBibVJjYmlBcUlIUnlZVzV6WVdOMGFXOXVMV3h2WTJGc2JIa3NJRzl5SUdCMWJtUmxabWx1WldSZ0lIZG9aVzRnYm05MGFHbHVaeUJ6YUc5MWJHUWdZbVVnWW05MWJtUXVJRTExYzNRZ1ltVmNiaUFxSUhONWJtTm9jbTl1YjNWeklHRnVaQ0J6YVdSbExXVm1abVZqZENCbWNtVmxPaUIwYUdVZ1kyOXVjM1Z0YVc1bklHRmtZWEIwWlhJZ2RISmxZWFJ6SUdFZ2RHaHliM2NnWm5KdmJWeHVJQ29nZEdobElHSnBibVJwYm1jZ1lYTWdYQ0p1YnlCelpYUjBhVzVuYzF3aUlHRnVaQ0JzWldGMlpYTWdkR2hsSUhSeVlXNXpZV04wYVc5dUlIVnVZbTkxYm1RZ0tHWmhhV3hjYmlBcUlHTnNiM05sWkNrdVhHNGdLaUJBZEhsd1pXUmxaaUI3S0dOdmJuUmxlSFEvT2lCRGIyNTBaWGgwUEdGdWVUNHBJRDArSUU1aGJXVnpjR0ZqWlZKc2MxTmxjM05wYjI1VFpYUjBhVzVuY3lCOElIVnVaR1ZtYVc1bFpIMGdUbUZ0WlhOd1lXTmxVbXh6VTJWemMybHZia0pwYm1ScGJtZGNiaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdUbUZ0WlhOd1lXTmxVbXh6VTJWemMybHZia0pwYm1ScGJtY2dQU0FvWEc0Z0lHTnZiblJsZUhRL09pQkRiMjUwWlhoMFBHRnVlVDVjYmlrZ1BUNGdUbUZ0WlhOd1lXTmxVbXh6VTJWemMybHZibE5sZEhScGJtZHpJSHdnZFc1a1pXWnBibVZrTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQY0hScGIyNXpJR1p2Y2lCMGFHVWdibUZ0WlhOd1lXTmxJRkpNVXlCelpYTnphVzl1SUdKcGJtUnBibWRjYmlBcUlFQnpkVzF0WVhKNUlFeGxkSE1nYUc5emRITWdjbVZzYjJOaGRHVWdkR2hsSUdOdmJuUmxlSFFnYTJWNWN5QjBhR1VnWkdWbVlYVnNkQ0JpYVc1a2FXNW5JSEpsWVdSeklHRnVaRnh1SUNvZ2IzWmxjbkpwWkdVZ2RHaGxJSGRoY201cGJtY2djMmx1YXk0Z1ZHaGxJR1JsWm1GMWJIUnpJSEpsWVdRZ1lIQnlhVzVqYVhCaGJFbGtZQ0FvZEdobElISmxjMjlzZG1Wa1hHNGdLaUJ3Y21sdVkybHdZV3dnVlZWSlJDQmpZWEp5YVdWa0lHOXVJSFJvWlNCeVpYRjFaWE4wSUdOdmJuUmxlSFFwSUdGdVpDQmdkWE5sY21BZ0tIUm9aVnh1SUNvZ1lYVjBhR1Z1ZEdsallYUmxaQ0JwWkdWdWRHbDBlU0J0WVhKclpYSXBMQ0JoYm1RZ2QyRnliaUIwYUhKdmRXZG9JR0JqYjI1emIyeGxMbmRoY201Z0xseHVJQ29nUUdsdWRHVnlabUZqWlNCT1lXMWxjM0JoWTJWU2JITlRaWE56YVc5dVFtbHVaR2x1WjA5d2RHbHZibk5jYmlBcUlFQndjbTl3WlhKMGVTQjdjM1J5YVc1bmZTQmJjSEpwYm1OcGNHRnNRMjl1ZEdWNGRFdGxlVjBnTFNCRGIyNTBaWGgwSUd0bGVTQm9iMnhrYVc1bklIUm9aU0J5WlhOdmJIWmxaQ0J3Y21sdVkybHdZV3dnVlZWSlJDNGdSR1ZtWVhWc2RITWdkRzhnWUhCeWFXNWphWEJoYkVsa1lDNWNiaUFxSUVCd2NtOXdaWEowZVNCN2MzUnlhVzVuZlNCYllYVjBhR1Z1ZEdsallYUmxaRU52Ym5SbGVIUkxaWGxkSUMwZ1EyOXVkR1Y0ZENCclpYa2dkR2hoZENCdFlYSnJjeUIwYUdVZ1kyOXVkR1Y0ZENCaGN5QmhkWFJvWlc1MGFXTmhkR1ZrT3lCamIyNXpkV3gwWldRZ2IyNXNlU0IwYnlCa1pXTnBaR1VnZDJobGRHaGxjaUIwYnlCM1lYSnVMaUJFWldaaGRXeDBjeUIwYnlCZ2RYTmxjbUF1WEc0Z0tpQkFjSEp2Y0dWeWRIa2dleWh0WlhOellXZGxPaUJ6ZEhKcGJtY3BJRDArSUhadmFXUjlJRnQzWVhKdVhTQXRJRmRoY201cGJtY2djMmx1YXlCcGJuWnZhMlZrSUhkb1pXNGdZVzRnWVhWMGFHVnVkR2xqWVhSbFpDQmpiMjUwWlhoMElHaGhjeUJ1YnlCeVpYTnZiSFpoWW14bElIQnlhVzVqYVhCaGJDNGdSR1ZtWVhWc2RITWdkRzhnWUdOdmJuTnZiR1V1ZDJGeWJtQTdJSFJvWlNCdFpYTnpZV2RsSUc1bGRtVnlJR052Ym5SaGFXNXpJR0Z1ZVNCelpYUjBhVzVuSUc5eUlIQnlhVzVqYVhCaGJDQjJZV3gxWlM1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JPWVcxbGMzQmhZMlZTYkhOVFpYTnphVzl1UW1sdVpHbHVaMDl3ZEdsdmJuTWdlMXh1SUNCd2NtbHVZMmx3WVd4RGIyNTBaWGgwUzJWNVB6b2djM1J5YVc1bk8xeHVJQ0JoZFhSb1pXNTBhV05oZEdWa1EyOXVkR1Y0ZEV0bGVUODZJSE4wY21sdVp6dGNiaUFnZDJGeWJqODZJQ2h0WlhOellXZGxPaUJ6ZEhKcGJtY3BJRDArSUhadmFXUTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlISmxZV1JEYjI1MFpYaDBTMlY1S0dOdmJuUmxlSFE2SUVOdmJuUmxlSFE4WVc1NVBpd2dhMlY1T2lCemRISnBibWNwT2lCMWJtdHViM2R1SUh0Y2JpQWdkSEo1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdZMjl1ZEdWNGRDNW5aWFJQY2xWdVpHVm1hVzVsWkNoclpYa2dZWE1nWVc1NUtUdGNiaUFnZlNCallYUmphQ0I3WEc0Z0lDQWdjbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCQ2RXbHNaSE1nZEdobElHNWhiV1Z6Y0dGalpTQlNURk1nYzJWemMybHZiaUJpYVc1a2FXNW5JR1p2Y2lCaElISmxjWFZsYzNRZ1kyOXVkR1Y0ZEZ4dUlDb2dRSE4xYlcxaGNua2dVbVYwZFhKdWN5QmhJSEpsYzI5c2RtVnlJSFJvWVhRZ2NtVmhaSE1nZEdobElHTnZibVpwWjNWeVpXUWdjSEpwYm1OcGNHRnNJR052Ym5SbGVIUWdhMlY1WEc0Z0tpQW9aR1ZtWVhWc2RDQmdjSEpwYm1OcGNHRnNTV1JnS1N3Z2RISnBiWE1nZEdobElHTmhibVJwWkdGMFpTd2dZVzVrSUMwZ2QyaGxiaUJwZENCcGN5QmhYRzRnS2lCVlZVbEVMWE5vWVhCbFpDQnpkSEpwYm1jZ0xTQndjbTlrZFdObGMxeHVJQ29nWUhzZ1cxSk1VMTlUUlZSVVNVNUhVeTVRY21sdVkybHdZV3hkT2lCd2NtbHVZMmx3WVd4SlpDQjlZQ0JtYjNJZ2RHaGxJR0ZrWVhCMFpYSWdkRzhnWW1sdVpGeHVJQ29nZEhKaGJuTmhZM1JwYjI0dGJHOWpZV3hzZVM0Z1JtRnBiQ0JqYkc5elpXUTZJR0VnYldsemMybHVaeUJqYjI1MFpYaDBMQ0JoYmlCaFluTmxiblFzSUdWdGNIUjVMQ0J2Y2x4dUlDb2dibTl1TFZWVlNVUWdZMkZ1Wkdsa1lYUmxMQ0J2Y2lCaElHTnZiblJsZUhRZ2JHOXZhM1Z3SUdWeWNtOXlJSGxwWld4a2N5QmdkVzVrWldacGJtVmtZQ3dnYzI5Y2JpQXFJRzV2ZEdocGJtY2dhWE1nWW05MWJtUWdZVzVrSUZCdmMzUm5jbVZ6SUZKTVV5QmtaVzVwWlhNZ2NISnZkR1ZqZEdWa0xYSnZkeUJoWTJObGMzTXVJRmRvWlc0Z2RHaGxYRzRnS2lCamIyNTBaWGgwSUd4dmIydHpJR0YxZEdobGJuUnBZMkYwWldRZ0tIUm9aU0JqYjI1bWFXZDFjbVZrSUdGMWRHaGxiblJwWTJGMFpXUWdZMjl1ZEdWNGRDQnJaWGxjYmlBcUlISmxjMjlzZG1WektTQmlkWFFnWTJGeWNtbGxjeUJ1YnlCMllXeHBaQ0J3Y21sdVkybHdZV3dzSUhSb1pTQnlaWE52YkhabGNpQmxiV2wwY3lCaElITnBibWRzWlZ4dUlDb2dkMkZ5Ym1sdVp5QjBhSEp2ZFdkb0lIUm9aU0JqYjI1bWFXZDFjbVZrSUdCM1lYSnVZQ0J6YVc1cklDaGtaV1poZFd4MElHQmpiMjV6YjJ4bExuZGhjbTVnS1N4Y2JpQXFJSGRwZEdodmRYUWdiRzluWjJsdVp5QmhibmtnYzJWMGRHbHVaeUJ2Y2lCd2NtbHVZMmx3WVd3Z2RtRnNkV1V1WEc0Z0tpQkFablZ1WTNScGIyNGdibUZ0WlhOd1lXTmxVbXh6VTJWemMybHZia0pwYm1ScGJtZGNiaUFxSUVCd1lYSmhiU0I3VG1GdFpYTndZV05sVW14elUyVnpjMmx2YmtKcGJtUnBibWRQY0hScGIyNXpmU0JiYjNCMGFXOXVjMTBnTFNCUGRtVnljbWxrWlhNZ1ptOXlJSFJvWlNCamIyNTBaWGgwSUd0bGVYTWdZVzVrSUhSb1pTQjNZWEp1YVc1bklITnBibXN1WEc0Z0tpQkFjbVYwZFhKdWN5QjdUbUZ0WlhOd1lXTmxVbXh6VTJWemMybHZia0pwYm1ScGJtZDlJRlJvWlNCamIyNTBaWGgwTFhSdkxYTmxkSFJwYm1keklISmxjMjlzZG1WeUxseHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlHTnZibk4wSUdKcGJtUnBibWNnUFNCdVlXMWxjM0JoWTJWU2JITlRaWE56YVc5dVFtbHVaR2x1WnlncE8xeHVJQ29nWTI5dWMzUWdjMlYwZEdsdVozTWdQU0JpYVc1a2FXNW5LR04wZUNrN0lDOHZJSHNnWENKaGNIQXVjSEpwYm1OcGNHRnNYMmxrWENJNklGd2lQSFYxYVdRK1hDSWdmU0J2Y2lCMWJtUmxabWx1WldSY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzVoYldWemNHRmpaVkpzYzFObGMzTnBiMjVDYVc1a2FXNW5LRnh1SUNCdmNIUnBiMjV6T2lCT1lXMWxjM0JoWTJWU2JITlRaWE56YVc5dVFtbHVaR2x1WjA5d2RHbHZibk1nUFNCN2ZWeHVLVG9nVG1GdFpYTndZV05sVW14elUyVnpjMmx2YmtKcGJtUnBibWNnZTF4dUlDQmpiMjV6ZENCd2NtbHVZMmx3WVd4RGIyNTBaWGgwUzJWNUlEMGdiM0IwYVc5dWN5NXdjbWx1WTJsd1lXeERiMjUwWlhoMFMyVjVJRDgvSUZ3aWNISnBibU5wY0dGc1NXUmNJanRjYmlBZ1kyOXVjM1FnWVhWMGFHVnVkR2xqWVhSbFpFTnZiblJsZUhSTFpYa2dQU0J2Y0hScGIyNXpMbUYxZEdobGJuUnBZMkYwWldSRGIyNTBaWGgwUzJWNUlEOC9JRndpZFhObGNsd2lPMXh1SUNCamIyNXpkQ0IzWVhKdUlEMGdiM0IwYVc5dWN5NTNZWEp1SUQ4L0lDZ29iV1Z6YzJGblpUb2djM1J5YVc1bktTQTlQaUJqYjI1emIyeGxMbmRoY200b2JXVnpjMkZuWlNrcE8xeHVYRzRnSUhKbGRIVnliaUFvWTI5dWRHVjRkQ2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDZ2hZMjl1ZEdWNGRDa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lHTnZibk4wSUdOaGJtUnBaR0YwWlNBOUlISmxZV1JEYjI1MFpYaDBTMlY1S0dOdmJuUmxlSFFzSUhCeWFXNWphWEJoYkVOdmJuUmxlSFJMWlhrcE8xeHVJQ0FnSUdOdmJuTjBJSEJ5YVc1amFYQmhiRWxrSUQxY2JpQWdJQ0FnSUhSNWNHVnZaaUJqWVc1a2FXUmhkR1VnUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJqWVc1a2FXUmhkR1V1ZEhKcGJTZ3BJRG9nWENKY0lqdGNibHh1SUNBZ0lHbG1JQ2doY0hKcGJtTnBjR0ZzU1dRZ2ZId2dJVkJTU1U1RFNWQkJURjlWVlVsRVgxQkJWRlJGVWs0dWRHVnpkQ2h3Y21sdVkybHdZV3hKWkNrcElIdGNiaUFnSUNBZ0lHbG1JQ2h5WldGa1EyOXVkR1Y0ZEV0bGVTaGpiMjUwWlhoMExDQmhkWFJvWlc1MGFXTmhkR1ZrUTI5dWRHVjRkRXRsZVNrcFhHNGdJQ0FnSUNBZ0lIZGhjbTRvWEc0Z0lDQWdJQ0FnSUNBZ1lFRjFkR2hsYm5ScFkyRjBaV1FnWTI5dWRHVjRkQ0JvWVhNZ2JtOGdjbVZ6YjJ4MllXSnNaU0J1WVcxbGMzQmhZMlVnY0hKcGJtTnBjR0ZzT3lBa2UxSk1VMTlUUlZSVVNVNUhVeTVRY21sdVkybHdZV3g5SUhkcGJHd2dibTkwSUdKbElHSnZkVzVrSUdGdVpDQlNURk1nZDJsc2JDQmtaVzU1WUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdleUJiVWt4VFgxTkZWRlJKVGtkVExsQnlhVzVqYVhCaGJGMDZJSEJ5YVc1amFYQmhiRWxrSUgwN1hHNGdJSDA3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVKMWFXeGtjeUIwYUdVZ1lITmxjM05wYjI1Q2FXNWthVzVuWUNCdmNIUnBiMjRnWm05eUlIUm9aU0JVZVhCbFQxSk5JR0ZrWVhCMFpYSmNiaUFxSUVCemRXMXRZWEo1SUVOdmJuWmxibWxsYm1ObElIZHlZWEJ3WlhJZ2RHaGhkQ0J6Y0hKbFlXUnpJSFJvWlNCdVlXMWxjM0JoWTJWa0lGSk1VeUJpYVc1a2FXNW5JR2x1ZEc4Z1lWeHVJQ29nVkhsd1pVOVNUU0JoWkdGd2RHVnlJR052Ym1acFozVnlZWFJwYjI0NklHMWxjbWRsSUhSb1pTQnlaWFIxY201bFpDQnZZbXBsWTNRZ2FXNTBiMXh1SUNvZ1lGUjVjR1ZQVWsxQlpHRndkR1Z5VDNCMGFXOXVjMkFnWVc1a0lHQlVlWEJsVDFKTlEyOXVkR1Y0ZEV4dlkydGdJR0pwYm1SeklIUm9aU0J5WlhOdmJIWmxaRnh1SUNvZ2UwQnNhVzVySUZKTVUxOVRSVlJVU1U1SFV5NVFjbWx1WTJsd1lXeDlJSFJ5WVc1ellXTjBhVzl1TFd4dlkyRnNiSGtnWVdaMFpYSWdZRUpGUjBsT1lDNGdWR2hwY3lCcGMxeHVJQ29nWTI5dVptbG5kWEpoZEdsdmJpQnZibXg1SUMwZ2JtOGdjM1ZpWTJ4aGMzTnBibWNnYjNJZ2JXVjBhRzlrSUc5MlpYSnlhV1JsY3k1Y2JpQXFJRUJtZFc1amRHbHZiaUJ1WVcxbGMzQmhZMlZTYkhOVWVYQmxUMUpOVDNCMGFXOXVjMXh1SUNvZ1FIQmhjbUZ0SUh0T1lXMWxjM0JoWTJWU2JITlRaWE56YVc5dVFtbHVaR2x1WjA5d2RHbHZibk45SUZ0dmNIUnBiMjV6WFNBdElFOTJaWEp5YVdSbGN5Qm1iM0ozWVhKa1pXUWdkRzhnZTBCc2FXNXJJRzVoYldWemNHRmpaVkpzYzFObGMzTnBiMjVDYVc1a2FXNW5mUzVjYmlBcUlFQnlaWFIxY201eklIdDdJSE5sYzNOcGIyNUNhVzVrYVc1bk9pQk9ZVzFsYzNCaFkyVlNiSE5UWlhOemFXOXVRbWx1WkdsdVp5QjlmU0JCYmlCdlltcGxZM1FnZEc4Z2MzQnlaV0ZrSUdsdWRHOGdkR2hsSUZSNWNHVlBVazBnWVdSaGNIUmxjaUJ2Y0hScGIyNXpMbHh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJR2x0Y0c5eWRDQjdJRzVoYldWemNHRmpaVkpzYzFSNWNHVlBVazFQY0hScGIyNXpJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlwYm5SbFozSmhkR2x2Ym5NdmJtRnRaWE53WVdObGMxd2lPMXh1SUNvZ1kyOXVjM1FnWVdSaGNIUmxjaUE5SUc1bGR5QlVlWEJsVDFKTlFXUmhjSFJsY2loN0lDNHVMbVJoZEdGVGIzVnlZMlZQY0hScGIyNXpMQ0F1TGk1dVlXMWxjM0JoWTJWU2JITlVlWEJsVDFKTlQzQjBhVzl1Y3lncElIMHBPMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JtRnRaWE53WVdObFVteHpWSGx3WlU5U1RVOXdkR2x2Ym5Nb1hHNGdJRzl3ZEdsdmJuTTZJRTVoYldWemNHRmpaVkpzYzFObGMzTnBiMjVDYVc1a2FXNW5UM0IwYVc5dWN5QTlJSHQ5WEc0cE9pQjdJSE5sYzNOcGIyNUNhVzVrYVc1bk9pQk9ZVzFsYzNCaFkyVlNiSE5UWlhOemFXOXVRbWx1WkdsdVp5QjlJSHRjYmlBZ2NtVjBkWEp1SUhzZ2MyVnpjMmx2YmtKcGJtUnBibWM2SUc1aGJXVnpjR0ZqWlZKc2MxTmxjM05wYjI1Q2FXNWthVzVuS0c5d2RHbHZibk1wSUgwN1hHNTlYRzRpWFgwPSJdfQ==
69
+ //# sourceMappingURL=session-binding.js.map
70
+ //# sourceMappingURL=session-binding.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/rls/session-binding.cjs","sourceRoot":"","sources":["namespaces/rls/session-binding.js"],"names":[],"mappings":";;AA8BA,gEAgBC;AAeD,gEAEC;AA/DD,mEAAiE;AACjE,yDAAkD;AAClD,SAAS,cAAc,CAAC,OAAO,EAAE,GAAG;IAChC,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,0BAA0B,CAAC,OAAO,GAAG,EAAE;IACnD,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,aAAa,CAAC;IACzE,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,MAAM,CAAC;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,CAAC,OAAO;YACR,OAAO,SAAS,CAAC;QACrB,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,WAAW,IAAI,CAAC,8CAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,IAAI,cAAc,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAChD,IAAI,CAAC,gEAAgE,+BAAY,CAAC,SAAS,sCAAsC,CAAC,CAAC;YACvI,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,CAAC,+BAAY,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC,CAAC;AACN,CAAC;AACD;;;;;;;;;;;;;GAaG;AACH,SAAgB,0BAA0B,CAAC,OAAO,GAAG,EAAE;IACnD,OAAO,EAAE,cAAc,EAAE,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC;AACnE,CAAC;AACD,2CAA2C"}
@@ -98,5 +98,5 @@ class AuthzService {
98
98
  }
99
99
  }
100
100
  exports.AuthzService = AuthzService;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHouc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL3NlcnZpY2VzL2F1dGh6LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUdMLGtCQUFrQixFQUNsQixTQUFTLEdBQ1Ysc0JBQWlCO0FBQ2xCLE9BQU8sRUFDTCxPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsV0FBVyxHQUNaLHNCQUFpQjtBQUVsQixTQUFTLFFBQVEsQ0FBQyxTQUFvQixFQUFFLE9BQWU7SUFDckQsT0FBTyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBWSxjQUFnQyxFQUFFO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFxQixFQUFFLEdBQUcsSUFBVztRQUNuRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbEMsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFdBQVcsR0FDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLEVBQUUsQ0FDdkQsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxPQUFPLENBQ2QsQ0FBQztZQUNKLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLFVBQVUsQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFD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QUM1RCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxjQUFjO2FBQzdDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsT0FBTyxrQkFBa0IsQ0FBQztZQUN4QixRQUFRO1lBQ1IsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLGFBQXFCLEVBQ3JCLEdBQUcsSUFBVztRQUVkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUMxQyxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsSUFBSSxDQUNSLENBQUM7UUFDRixNQUFNLGlCQUFpQixHQUNyQixNQUFNLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGNBQWM7YUFDN0MsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQzthQUN4RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxPQUFPLGlCQUFpQixDQUFDO1lBQ3ZCLFFBQVE7WUFDUixXQUFXO1lBQ1gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBBdXRoekRhdGFTb3VyY2VzLFxuICBDYW5BY2Nlc3NJbnB1dCxcbiAgUmVzb3VyY2VWaXNpYmlsaXR5LFxuICBTY29wZUtpbmQsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgYXNBcnJheSxcbiAgYnVpbGRBY2Nlc3NDb250ZXh0LFxuICBidWlsZEFyYW5nb0NvbnRleHQsXG4gIGJ1aWxkUWRyYW50RmlsdGVyLFxuICBpc1RpbWVWYWxpZCxcbn0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmZ1bmN0aW9uIHNjb3BlS2V5KHNjb3BlS2luZDogU2NvcGVLaW5kLCBzY29wZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGh6U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXMgPSB7fSkge1xuICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgY2FuQWNjZXNzKGlucHV0OiBDYW5BY2Nlc3NJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBhdCA9IGlucHV0LmF0ID8/IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoaW5wdXQuc2NvcGVLaW5kICYmIGlucHV0LnNjb3BlSWQpIHtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID1cbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKFxuICAgICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICAgIGlucHV0LnNjb3BlS2luZCxcbiAgICAgICAgICBpbnB1dC5zY29wZUlkXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gYXNBcnJheShwZXJtaXNzaW9ucykuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5sb2FkUmVzb3VyY2U/LihcbiAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZFxuICAgICk7XG4gICAgaWYgKCFyZXNvdXJjZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChyZXNvdXJjZS50ZW5hbnRJZCAhPT0gaW5wdXQudGVuYW50SWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChyZXNvdXJjZS5vd25lclByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBncmFudHMgPSBhc0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UmVzb3VyY2VHcmFudHM/LihcbiAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWRcbiAgICAgIClcbiAgICApLmZpbHRlcihcbiAgICAgIChncmFudCkgPT5cbiAgICAgICAgZ3JhbnQucHJpbmNpcGFsSWQgPT09IGlucHV0LnByaW5jaXBhbElkICYmXG4gICAgICAgIGdyYW50LnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgaXNUaW1lVmFsaWQoYXQsIGdyYW50LnN0YXJ0c0F0LCBncmFudC5leHBpcmVzQXQpXG4gICAgKTtcbiAgICBpZiAoZ3JhbnRzLmxlbmd0aCA+IDApIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgdmlzaWJpbGl0eSA9IHJlc291cmNlLnZpc2liaWxpdHk7XG4gICAgaWYgKFxuICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlByaXZhdGUgfHxcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5SZXNvdXJjZUFjbFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdVbml0IHx8XG4gICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuT3JnU3VidHJlZVxuICAgICkge1xuICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSBhc0FycmF5KFxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oXG4gICAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgICAgcmVzb3VyY2Uub3JnVW5pdElkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlRlbmFudCkge1xuICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSBhc0FycmF5KFxuICAgICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oXG4gICAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgU2NvcGVLaW5kLlRlbmFudCxcbiAgICAgICAgICBpbnB1dC50ZW5hbnRJZFxuICAgICAgICApXG4gICAgICApO1xuICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoXG4gICAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICAgIHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgcmVxdWlyZUFjY2VzcyhpbnB1dDogQ2FuQWNjZXNzSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCEoYXdhaXQgdGhpcy5jYW5BY2Nlc3MoaW5wdXQsIC4uLmFyZ3MpKSkge1xuICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgYEFjY2VzcyBkZW5pZWQgZm9yICR7aW5wdXQucGVybWlzc2lvbktleX0gb24gJHtpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkID8/IHNjb3BlS2V5KGlucHV0LnNjb3BlS2luZCA/PyBTY29wZUtpbmQuUmVzb3VyY2UsIGlucHV0LnNjb3BlSWQgPz8gXCJcIil9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBidWlsZEFjY2Vzc0NvbnRleHQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGltcG9ydChcIi4uL3R5cGVzXCIpLkFjY2Vzc0NvbnRleHQ+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGFzQXJyYXkoXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz8uKHRlbmFudElkLCBwcmluY2lwYWxJZClcbiAgICApO1xuICAgIGNvbnN0IGdyYW50cyA9IGFzQXJyYXkoXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RQcmluY2lwYWxHcmFudHM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgICByZXR1cm4gYnVpbGRBY2Nlc3NDb250ZXh0KHtcbiAgICAgIHRlbmFudElkLFxuICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIGdyYW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkQXJhbmdvQ29udGV4dChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMuYnVpbGRBY2Nlc3NDb250ZXh0KFxuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGFsbG93ZWRPcmdVbml0SWRzID1cbiAgICAgIGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgIHJldHVybiBidWlsZEFyYW5nb0NvbnRleHQoe1xuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIHBlcm1pc3Npb25LZXksXG4gICAgICBhbGxvd2VkT3JnVW5pdElkcyxcbiAgICAgIGFsbG93ZWRSZXNvdXJjZUlkcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkUWRyYW50RmlsdGVyKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uS2V5OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKSB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPVxuICAgICAgYWNjZXNzLmFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb25LZXldID8/IFtdO1xuICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgcmV0dXJuIGJ1aWxkUWRyYW50RmlsdGVyKHtcbiAgICAgIHRlbmFudElkLFxuICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgYWxsb3dlZE9yZ1VuaXRJZHMsXG4gICAgICBhbGxvd2VkUmVzb3VyY2VJZHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHouc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dGh6LnNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELDRDQUErRDtBQUMvRCw0Q0FBaUg7QUFDakgsU0FBUyxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU87SUFDaEMsT0FBTyxHQUFHLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBQ0QsTUFBYSxZQUFZO0lBQ3JCLFlBQVksV0FBVyxHQUFHLEVBQUU7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUk7UUFDMUIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5SCxPQUFPLElBQUEsa0JBQU8sRUFBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLGFBQWE7Z0JBQzdGLElBQUEsc0JBQVcsRUFBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUI7WUFDMUIsT0FBTyxLQUFLLENBQUM7UUFDakIsTUFBTSxR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LENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFBLDZCQUFrQixFQUFDO1lBQ3RCLFFBQVE7WUFDUixXQUFXO1lBQ1gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7U0FDckIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUk7UUFDakUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzdFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxjQUFjO2FBQzNDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFBLDRCQUFpQixFQUFDO1lBQ3JCLFFBQVE7WUFDUixXQUFXO1lBQ1gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7U0FDckIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBekZELG9DQXlGQztBQUNELDg4WkFBODhaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBSZXNvdXJjZVZpc2liaWxpdHksIFNjb3BlS2luZCwgfSBmcm9tIFwiLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgYXNBcnJheSwgYnVpbGRBY2Nlc3NDb250ZXh0LCBidWlsZEFyYW5nb0NvbnRleHQsIGJ1aWxkUWRyYW50RmlsdGVyLCBpc1RpbWVWYWxpZCwgfSBmcm9tIFwiLi8uLi91dGlscy5qc1wiO1xuZnVuY3Rpb24gc2NvcGVLZXkoc2NvcGVLaW5kLCBzY29wZUlkKSB7XG4gICAgcmV0dXJuIGAke3Njb3BlS2luZH06JHtzY29wZUlkfWA7XG59XG5leHBvcnQgY2xhc3MgQXV0aHpTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihkYXRhU291cmNlcyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGFzeW5jIGNhbkFjY2VzcyhpbnB1dCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBhdCA9IGlucHV0LmF0ID8/IG5ldyBEYXRlKCk7XG4gICAgICAgIGlmIChpbnB1dC5zY29wZUtpbmQgJiYgaW5wdXQuc2NvcGVJZCkge1xuICAgICAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oaW5wdXQudGVuYW50SWQsIGlucHV0LnNjb3BlS2luZCwgaW5wdXQuc2NvcGVJZCk7XG4gICAgICAgICAgICByZXR1cm4gYXNBcnJheShwZXJtaXNzaW9ucykuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubG9hZFJlc291cmNlPy4oaW5wdXQudGVuYW50SWQsIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpO1xuICAgICAgICBpZiAoIXJlc291cmNlKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAocmVzb3VyY2UudGVuYW50SWQgIT09IGlucHV0LnRlbmFudElkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAocmVzb3VyY2Uub3duZXJQcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgZ3JhbnRzID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RSZXNvdXJjZUdyYW50cz8uKGlucHV0LnRlbmFudElkLCBpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkKSkuZmlsdGVyKChncmFudCkgPT4gZ3JhbnQucHJpbmNpcGFsSWQgPT09IGlucHV0LnByaW5jaXBhbElkICYmXG4gICAgICAgICAgICBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgZ3JhbnQuc3RhcnRzQXQsIGdyYW50LmV4cGlyZXNBdCkpO1xuICAgICAgICBpZiAoZ3JhbnRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgdmlzaWJpbGl0eSA9IHJlc291cmNlLnZpc2liaWxpdHk7XG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUHJpdmF0ZSB8fFxuICAgICAgICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlJlc291cmNlQWNsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdVbml0IHx8XG4gICAgICAgICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuT3JnU3VidHJlZSkge1xuICAgICAgICAgICAgY29uc3QgZWZmZWN0aXZlUGVybWlzc2lvbnMgPSBhc0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgU2NvcGVLaW5kLk9yZ1VuaXQsIHJlc291cmNlLm9yZ1VuaXRJZCkpO1xuICAgICAgICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuVGVuYW50KSB7XG4gICAgICAgICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IGFzQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKGlucHV0LnRlbmFudElkLCBTY29wZUtpbmQuVGVuYW50LCBpbnB1dC50ZW5hbnRJZCkpO1xuICAgICAgICAgICAgcmV0dXJuIGVmZmVjdGl2ZVBlcm1pc3Npb25zLnNvbWUoKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBwZXJtaXNzaW9uLnN0YXJ0c0F0LCBwZXJtaXNzaW9uLmV4cGlyZXNBdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWlyZUFjY2VzcyhpbnB1dCwgLi4uYXJncykge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmNhbkFjY2VzcyhpbnB1dCwgLi4uYXJncykpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBBY2Nlc3MgZGVuaWVkIGZvciAke2lucHV0LnBlcm1pc3Npb25LZXl9IG9uICR7aW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCA/PyBzY29wZUtleShpbnB1dC5zY29wZUtpbmQgPz8gU2NvcGVLaW5kLlJlc291cmNlLCBpbnB1dC5zY29wZUlkID8/IFwiXCIpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGJ1aWxkQWNjZXNzQ29udGV4dCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXNBcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz8uKHRlbmFudElkLCBwcmluY2lwYWxJZCkpO1xuICAgICAgICBjb25zdCBncmFudHMgPSBhc0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdFByaW5jaXBhbEdyYW50cz8uKHRlbmFudElkLCBwcmluY2lwYWxJZCkpO1xuICAgICAgICByZXR1cm4gYnVpbGRBY2Nlc3NDb250ZXh0KHtcbiAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgICAgIGdyYW50cyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGJ1aWxkQXJhbmdvQ29udGV4dCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPSBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAgICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgICAgIHJldHVybiBidWlsZEFyYW5nb0NvbnRleHQoe1xuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWxJZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25LZXksXG4gICAgICAgICAgICBhbGxvd2VkT3JnVW5pdElkcyxcbiAgICAgICAgICAgIGFsbG93ZWRSZXNvdXJjZUlkcyxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGJ1aWxkUWRyYW50RmlsdGVyKHRlbmFudElkLCBwcmluY2lwYWxJZCwgcGVybWlzc2lvbktleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCB0aGlzLmJ1aWxkQWNjZXNzQ29udGV4dCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9IGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgICAgY29uc3QgYWxsb3dlZFJlc291cmNlSWRzID0gYWNjZXNzLnJlc291cmNlR3JhbnRzXG4gICAgICAgICAgICAuZmlsdGVyKChncmFudCkgPT4gZ3JhbnQucGVybWlzc2lvbktleSA9PT0gcGVybWlzc2lvbktleSlcbiAgICAgICAgICAgIC5tYXAoKGdyYW50KSA9PiBncmFudC5yZXNvdXJjZUlkKTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUWRyYW50RmlsdGVyKHtcbiAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHMsXG4gICAgICAgICAgICBhbGxvd2VkUmVzb3VyY2VJZHMsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlYVjBhSG91YzJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5dVlXMWxjM0JoWTJWekwzTmxjblpwWTJWekwyRjFkR2g2TG5ObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGNFUXNUMEZCVHl4RlFVZE1MR3RDUVVGclFpeEZRVU5zUWl4VFFVRlRMRWRCUTFZc2MwSkJRV2xDTzBGQlEyeENMRTlCUVU4c1JVRkRUQ3hQUVVGUExFVkJRMUFzYTBKQlFXdENMRVZCUTJ4Q0xHdENRVUZyUWl4RlFVTnNRaXhwUWtGQmFVSXNSVUZEYWtJc1YwRkJWeXhIUVVOYUxITkNRVUZwUWp0QlFVVnNRaXhUUVVGVExGRkJRVkVzUTBGQlF5eFRRVUZ2UWl4RlFVRkZMRTlCUVdVN1NVRkRja1FzVDBGQlR5eEhRVUZITEZOQlFWTXNTVUZCU1N4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVOdVF5eERRVUZETzBGQlJVUXNUVUZCVFN4UFFVRlBMRmxCUVZrN1NVRkhka0lzV1VGQldTeGpRVUZuUXl4RlFVRkZPMUZCUXpWRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMGxCUTJwRExFTkJRVU03U1VGRlJDdzJSRUZCTmtRN1NVRkROMFFzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRnhRaXhGUVVGRkxFZEJRVWNzU1VGQlZ6dFJRVU51UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zUlVGQlJTeEpRVUZKTEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkZiRU1zU1VGQlNTeExRVUZMTEVOQlFVTXNVMEZCVXl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dFpRVU55UXl4TlFVRk5MRmRCUVZjc1IwRkRaaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNaME5CUVdkRExFVkJRVVVzUTBGRGRrUXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkRaQ3hMUVVGTExFTkJRVU1zVTBGQlV5eEZRVU5tTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTJRc1EwRkJRenRaUVVOS0xFOUJRVThzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkRPVUlzUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVTmlMRlZCUVZVc1EwRkJReXhoUVVGaExFdEJRVXNzUzBGQlN5eERRVUZETEdGQlFXRTdaMEpCUTJoRUxGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlF6ZEVMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4dFFrRkJiVUk3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVVTNReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRM0JFTEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUTJRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTXhRaXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEZGQlFWRTdXVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVNMVFpeEpRVUZKTEZGQlFWRXNRMEZCUXl4UlFVRlJMRXRCUVVzc1MwRkJTeXhEUVVGRExGRkJRVkU3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVVjJSQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1MwRkJTeXhMUVVGTExFTkJRVU1zVjBGQlZ6dFpRVUZGTEU5QlFVOHNTVUZCU1N4RFFVRkRPMUZCUldwRkxFMUJRVTBzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZEY0VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRM3BETEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUTJRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTXhRaXhEUVVOR0xFTkJRVU1zVFVGQlRTeERRVU5PTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkRVaXhMUVVGTExFTkJRVU1zVjBGQlZ5eExRVUZMTEV0QlFVc3NRMEZCUXl4WFFVRlhPMWxCUTNaRExFdEJRVXNzUTBGQlF5eGhRVUZoTEV0QlFVc3NTMEZCU3l4RFFVRkRMR0ZCUVdFN1dVRkRNME1zVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZEYmtRc1EwRkJRenRSUVVOR0xFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRPMWxCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03VVVGRmJrTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU4yUXl4SlFVTkZMRlZCUVZVc1MwRkJTeXhyUWtGQmEwSXNRMEZCUXl4UFFVRlBPMWxCUTNwRExGVkJRVlVzUzBGQlN5eHJRa0ZCYTBJc1EwRkJReXhYUVVGWExFVkJRemRETEVOQlFVTTdXVUZEUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVObUxFTkJRVU03VVVGRlJDeEpRVU5GTEZWQlFWVXNTMEZCU3l4clFrRkJhMElzUTBGQlF5eFBRVUZQTzFsQlEzcERMRlZCUVZVc1MwRkJTeXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRVZCUXpWRExFTkJRVU03V1VGRFJDeE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFOUJRVThzUTBGRGJFTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHZERRVUZuUXl4RlFVRkZMRU5CUTNaRUxFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlEyUXNVMEZCVXl4RFFVRkRMRTlCUVU4c1JVRkRha0lzVVVGQlVTeERRVUZETEZOQlFWTXNRMEZEYmtJc1EwRkRSaXhEUVVGRE8xbEJRMFlzVDBGQlR5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRemxDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkRZaXhWUVVGVkxFTkJRVU1zWVVGQllTeExRVUZMTEV0QlFVc3NRMEZCUXl4aFFVRmhPMmRDUVVOb1JDeFhRVUZYTEVOQlFVTXNSVUZCUlN4RlFVRkZMRlZCUVZVc1EwRkJReXhSUVVGUkxFVkJRVVVzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTTNSQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVVZFTEVsQlFVa3NWVUZCVlN4TFFVRkxMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpkRExFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1QwRkJUeXhEUVVOc1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1owTkJRV2RETEVWQlFVVXNRMEZEZGtRc1MwRkJTeXhEUVVGRExGRkJRVkVzUlVGRFpDeFRRVUZUTEVOQlFVTXNUVUZCVFN4RlFVTm9RaXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVU5tTEVOQlEwWXNRMEZCUXp0WlFVTkdMRTlCUVU4c2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVTTVRaXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlEySXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1MwRkJTeXhMUVVGTExFTkJRVU1zWVVGQllUdG5Ra0ZEYUVRc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeFZRVUZWTEVOQlFVTXNVVUZCVVN4RlFVRkZMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGRE4wUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkZSQ3hQUVVGUExFdEJRVXNzUTBGQlF6dEpRVU5tTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRWEZDTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUTNaRUxFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROVU1zVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVNeFFpeHhRa0ZCY1VJc1MwRkJTeXhEUVVGRExHRkJRV0VzVDBGQlR5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFbEJRVWtzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRWxCUVVrc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRMjVLTEVOQlFVTTdVVUZEU2l4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkRkRUlzVVVGQlowSXNSVUZEYUVJc1YwRkJiVUk3U1VGRGJrSXNOa1JCUVRaRU8wbEJRemRFTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1YwRkJWeXhIUVVGSExFOUJRVThzUTBGRGVrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVU42UlN4RFFVRkRPMUZCUTBZc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVU53UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlEzQkZMRU5CUVVNN1VVRkRSaXhQUVVGUExHdENRVUZyUWl4RFFVRkRPMWxCUTNoQ0xGRkJRVkU3V1VGRFVpeFhRVUZYTzFsQlExZ3NWMEZCVnp0WlFVTllMRTFCUVUwN1UwRkRVQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVU4wUWl4UlFVRm5RaXhGUVVOb1FpeFhRVUZ0UWl4RlFVTnVRaXhoUVVGeFFpeEZRVU55UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGRE1VTXNVVUZCVVN4RlFVTlNMRmRCUVZjc1JVRkRXQ3hIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlEwWXNUVUZCVFN4cFFrRkJhVUlzUjBGRGNrSXNUVUZCVFN4RFFVRkRMRFpDUVVFMlFpeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVNMVJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFMUJRVTBzUTBGQlF5eGpRVUZqTzJGQlF6ZERMRTFCUVUwc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1MwRkJTeXhoUVVGaExFTkJRVU03WVVGRGVFUXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVDBGQlR5eHJRa0ZCYTBJc1EwRkJRenRaUVVONFFpeFJRVUZSTzFsQlExSXNWMEZCVnp0WlFVTllMR0ZCUVdFN1dVRkRZaXhwUWtGQmFVSTdXVUZEYWtJc2EwSkJRV3RDTzFOQlEyNUNMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRM0pDTEZGQlFXZENMRVZCUTJoQ0xGZEJRVzFDTEVWQlEyNUNMR0ZCUVhGQ0xFVkJRM0pDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVNeFF5eFJRVUZSTEVWQlExSXNWMEZCVnl4RlFVTllMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03VVVGRFJpeE5RVUZOTEdsQ1FVRnBRaXhIUVVOeVFpeE5RVUZOTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUXpWRUxFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV003WVVGRE4wTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4TFFVRkxMR0ZCUVdFc1EwRkJRenRoUVVONFJDeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTndReXhQUVVGUExHbENRVUZwUWl4RFFVRkRPMWxCUTNaQ0xGRkJRVkU3V1VGRFVpeFhRVUZYTzFsQlExZ3NZVUZCWVR0WlFVTmlMR2xDUVVGcFFqdFpRVU5xUWl4clFrRkJhMEk3VTBGRGJrSXNRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dRWFYwYUc5eWFYcGhkR2x2YmtWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCQmRYUm9la1JoZEdGVGIzVnlZMlZ6TEZ4dUlDQkRZVzVCWTJObGMzTkpibkIxZEN4Y2JpQWdVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVMRnh1SUNCVFkyOXdaVXRwYm1Rc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1lYTkJjbkpoZVN4Y2JpQWdZblZwYkdSQlkyTmxjM05EYjI1MFpYaDBMRnh1SUNCaWRXbHNaRUZ5WVc1bmIwTnZiblJsZUhRc1hHNGdJR0oxYVd4a1VXUnlZVzUwUm1sc2RHVnlMRnh1SUNCcGMxUnBiV1ZXWVd4cFpDeGNibjBnWm5KdmJTQmNJaTR1TDNWMGFXeHpYQ0k3WEc1Y2JtWjFibU4wYVc5dUlITmpiM0JsUzJWNUtITmpiM0JsUzJsdVpEb2dVMk52Y0dWTGFXNWtMQ0J6WTI5d1pVbGtPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnWUNSN2MyTnZjR1ZMYVc1a2ZUb2tlM05qYjNCbFNXUjlZRHRjYm4xY2JseHVaWGh3YjNKMElHTnNZWE56SUVGMWRHaDZVMlZ5ZG1salpTQjdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWkdGMFlWTnZkWEpqWlhNNklFRjFkR2g2UkdGMFlWTnZkWEpqWlhNN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb1pHRjBZVk52ZFhKalpYTTZJRUYxZEdoNlJHRjBZVk52ZFhKalpYTWdQU0I3ZlNrZ2UxeHVJQ0FnSUhSb2FYTXVaR0YwWVZOdmRYSmpaWE1nUFNCa1lYUmhVMjkxY21ObGN6dGNiaUFnZlZ4dVhHNGdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGRXNTFjMlZrTFhaaGNuTmNiaUFnWVhONWJtTWdZMkZ1UVdOalpYTnpLR2x1Y0hWME9pQkRZVzVCWTJObGMzTkpibkIxZEN3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0JqYjI1emRDQmhkQ0E5SUdsdWNIVjBMbUYwSUQ4L0lHNWxkeUJFWVhSbEtDazdYRzVjYmlBZ0lDQnBaaUFvYVc1d2RYUXVjMk52Y0dWTGFXNWtJQ1ltSUdsdWNIVjBMbk5qYjNCbFNXUXBJSHRjYmlBZ0lDQWdJR052Ym5OMElIQmxjbTFwYzNOcGIyNXpJRDFjYmlBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYUmhVMjkxY21ObGN5NXNhWE4wUldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ym5OR2IzSlRZMjl3WlQ4dUtGeHVJQ0FnSUNBZ0lDQWdJR2x1Y0hWMExuUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ0lDQWdJR2x1Y0hWMExuTmpiM0JsUzJsdVpDeGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRDNXpZMjl3WlVsa1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z1lYTkJjbkpoZVNod1pYSnRhWE56YVc5dWN5a3VjMjl0WlNoY2JpQWdJQ0FnSUNBZ0tIQmxjbTFwYzNOcGIyNHBJRDArWEc0Z0lDQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJpNXdaWEp0YVhOemFXOXVTMlY1SUQwOVBTQnBibkIxZEM1d1pYSnRhWE56YVc5dVMyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2FYTlVhVzFsVm1Gc2FXUW9ZWFFzSUhCbGNtMXBjM05wYjI0dWMzUmhjblJ6UVhRc0lIQmxjbTFwYzNOcGIyNHVaWGh3YVhKbGMwRjBLVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVdsdWNIVjBMbkpsYzI5MWNtTmxVSEp2ZEdWamRHVmtTV1FwSUhKbGRIVnliaUJtWVd4elpUdGNibHh1SUNBZ0lHTnZibk4wSUhKbGMyOTFjbU5sSUQwZ1lYZGhhWFFnZEdocGN5NWtZWFJoVTI5MWNtTmxjeTVzYjJGa1VtVnpiM1Z5WTJVL0xpaGNiaUFnSUNBZ0lHbHVjSFYwTG5SbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnYVc1d2RYUXVjbVZ6YjNWeVkyVlFjbTkwWldOMFpXUkpaRnh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLQ0Z5WlhOdmRYSmpaU2tnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUdsbUlDaHlaWE52ZFhKalpTNTBaVzVoYm5SSlpDQWhQVDBnYVc1d2RYUXVkR1Z1WVc1MFNXUXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JseHVJQ0FnSUdsbUlDaHlaWE52ZFhKalpTNXZkMjVsY2xCeWFXNWphWEJoYkVsa0lEMDlQU0JwYm5CMWRDNXdjbWx1WTJsd1lXeEpaQ2tnY21WMGRYSnVJSFJ5ZFdVN1hHNWNiaUFnSUNCamIyNXpkQ0JuY21GdWRITWdQU0JoYzBGeWNtRjVLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhSaFUyOTFjbU5sY3k1c2FYTjBVbVZ6YjNWeVkyVkhjbUZ1ZEhNL0xpaGNiaUFnSUNBZ0lDQWdhVzV3ZFhRdWRHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lHbHVjSFYwTG5KbGMyOTFjbU5sVUhKdmRHVmpkR1ZrU1dSY2JpQWdJQ0FnSUNsY2JpQWdJQ0FwTG1acGJIUmxjaWhjYmlBZ0lDQWdJQ2huY21GdWRDa2dQVDVjYmlBZ0lDQWdJQ0FnWjNKaGJuUXVjSEpwYm1OcGNHRnNTV1FnUFQwOUlHbHVjSFYwTG5CeWFXNWphWEJoYkVsa0lDWW1YRzRnSUNBZ0lDQWdJR2R5WVc1MExuQmxjbTFwYzNOcGIyNUxaWGtnUFQwOUlHbHVjSFYwTG5CbGNtMXBjM05wYjI1TFpYa2dKaVpjYmlBZ0lDQWdJQ0FnYVhOVWFXMWxWbUZzYVdRb1lYUXNJR2R5WVc1MExuTjBZWEowYzBGMExDQm5jbUZ1ZEM1bGVIQnBjbVZ6UVhRcFhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb1ozSmhiblJ6TG14bGJtZDBhQ0ErSURBcElISmxkSFZ5YmlCMGNuVmxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RtbHphV0pwYkdsMGVTQTlJSEpsYzI5MWNtTmxMblpwYzJsaWFXeHBkSGs3WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnZG1semFXSnBiR2wwZVNBOVBUMGdVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVMbEJ5YVhaaGRHVWdmSHhjYmlBZ0lDQWdJSFpwYzJsaWFXeHBkSGtnUFQwOUlGSmxjMjkxY21ObFZtbHphV0pwYkdsMGVTNVNaWE52ZFhKalpVRmpiRnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUhacGMybGlhV3hwZEhrZ1BUMDlJRkpsYzI5MWNtTmxWbWx6YVdKcGJHbDBlUzVQY21kVmJtbDBJSHg4WEc0Z0lDQWdJQ0IyYVhOcFltbHNhWFI1SUQwOVBTQlNaWE52ZFhKalpWWnBjMmxpYVd4cGRIa3VUM0puVTNWaWRISmxaVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1pXWm1aV04wYVhabFVHVnliV2x6YzJsdmJuTWdQU0JoYzBGeWNtRjVLRnh1SUNBZ0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1SaGRHRlRiM1Z5WTJWekxteHBjM1JGWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1YzBadmNsTmpiM0JsUHk0b1hHNGdJQ0FnSUNBZ0lDQWdhVzV3ZFhRdWRHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdVMk52Y0dWTGFXNWtMazl5WjFWdWFYUXNYRzRnSUNBZ0lDQWdJQ0FnY21WemIzVnlZMlV1YjNKblZXNXBkRWxrWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ym5NdWMyOXRaU2hjYmlBZ0lDQWdJQ0FnS0hCbGNtMXBjM05wYjI0cElEMCtYRzRnSUNBZ0lDQWdJQ0FnY0dWeWJXbHpjMmx2Ymk1d1pYSnRhWE56YVc5dVMyVjVJRDA5UFNCcGJuQjFkQzV3WlhKdGFYTnphVzl1UzJWNUlDWW1YRzRnSUNBZ0lDQWdJQ0FnYVhOVWFXMWxWbUZzYVdRb1lYUXNJSEJsY20xcGMzTnBiMjR1YzNSaGNuUnpRWFFzSUhCbGNtMXBjM05wYjI0dVpYaHdhWEpsYzBGMEtWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kbWx6YVdKcGJHbDBlU0E5UFQwZ1VtVnpiM1Z5WTJWV2FYTnBZbWxzYVhSNUxsUmxibUZ1ZENrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ym5NZ1BTQmhjMEZ5Y21GNUtGeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbVJoZEdGVGIzVnlZMlZ6TG14cGMzUkZabVpsWTNScGRtVlFaWEp0YVhOemFXOXVjMFp2Y2xOamIzQmxQeTRvWEc0Z0lDQWdJQ0FnSUNBZ2FXNXdkWFF1ZEdWdVlXNTBTV1FzWEc0Z0lDQWdJQ0FnSUNBZ1UyTnZjR1ZMYVc1a0xsUmxibUZ1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQnBibkIxZEM1MFpXNWhiblJKWkZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1ekxuTnZiV1VvWEc0Z0lDQWdJQ0FnSUNod1pYSnRhWE56YVc5dUtTQTlQbHh1SUNBZ0lDQWdJQ0FnSUhCbGNtMXBjM05wYjI0dWNHVnliV2x6YzJsdmJrdGxlU0E5UFQwZ2FXNXdkWFF1Y0dWeWJXbHpjMmx2Ymt0bGVTQW1KbHh1SUNBZ0lDQWdJQ0FnSUdselZHbHRaVlpoYkdsa0tHRjBMQ0J3WlhKdGFYTnphVzl1TG5OMFlYSjBjMEYwTENCd1pYSnRhWE56YVc5dUxtVjRjR2x5WlhOQmRDbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ4ZFdseVpVRmpZMlZ6Y3locGJuQjFkRG9nUTJGdVFXTmpaWE56U1c1d2RYUXNJQzR1TG1GeVozTTZJR0Z1ZVZ0ZEtUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnYVdZZ0tDRW9ZWGRoYVhRZ2RHaHBjeTVqWVc1QlkyTmxjM01vYVc1d2RYUXNJQzR1TG1GeVozTXBLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVGMWRHaHZjbWw2WVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lFRmpZMlZ6Y3lCa1pXNXBaV1FnWm05eUlDUjdhVzV3ZFhRdWNHVnliV2x6YzJsdmJrdGxlWDBnYjI0Z0pIdHBibkIxZEM1eVpYTnZkWEpqWlZCeWIzUmxZM1JsWkVsa0lEOC9JSE5qYjNCbFMyVjVLR2x1Y0hWMExuTmpiM0JsUzJsdVpDQS9QeUJUWTI5d1pVdHBibVF1VW1WemIzVnlZMlVzSUdsdWNIVjBMbk5qYjNCbFNXUWdQejhnWENKY0lpbDlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmlkV2xzWkVGalkyVnpjME52Ym5SbGVIUW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGRXNTFjMlZrTFhaaGNuTmNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBHbHRjRzl5ZENoY0lpNHVMM1I1Y0dWelhDSXBMa0ZqWTJWemMwTnZiblJsZUhRK0lIdGNiaUFnSUNCamIyNXpkQ0J3WlhKdGFYTnphVzl1Y3lBOUlHRnpRWEp5WVhrb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZUYjNWeVkyVnpMbXhwYzNSRlptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN6OHVLSFJsYm1GdWRFbGtMQ0J3Y21sdVkybHdZV3hKWkNsY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHZHlZVzUwY3lBOUlHRnpRWEp5WVhrb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZUYjNWeVkyVnpMbXhwYzNSUWNtbHVZMmx3WVd4SGNtRnVkSE0vTGloMFpXNWhiblJKWkN3Z2NISnBibU5wY0dGc1NXUXBYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnWW5WcGJHUkJZMk5sYzNORGIyNTBaWGgwS0h0Y2JpQWdJQ0FnSUhSbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnY0hKcGJtTnBjR0ZzU1dRc1hHNGdJQ0FnSUNCd1pYSnRhWE56YVc5dWN5eGNiaUFnSUNBZ0lHZHlZVzUwY3l4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdKMWFXeGtRWEpoYm1kdlEyOXVkR1Y0ZENoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnlhVzVqYVhCaGJFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHVnliV2x6YzJsdmJrdGxlVG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUdGalkyVnpjeUE5SUdGM1lXbDBJSFJvYVhNdVluVnBiR1JCWTJObGMzTkRiMjUwWlhoMEtGeHVJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNCd2NtbHVZMmx3WVd4SlpDeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHRnNiRzkzWldSUGNtZFZibWwwU1dSeklEMWNiaUFnSUNBZ0lHRmpZMlZ6Y3k1aGJHeHZkMlZrVDNKblZXNXBkRWxrYzBKNVVHVnliV2x6YzJsdmJsdHdaWEp0YVhOemFXOXVTMlY1WFNBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCaGJHeHZkMlZrVW1WemIzVnlZMlZKWkhNZ1BTQmhZMk5sYzNNdWNtVnpiM1Z5WTJWSGNtRnVkSE5jYmlBZ0lDQWdJQzVtYVd4MFpYSW9LR2R5WVc1MEtTQTlQaUJuY21GdWRDNXdaWEp0YVhOemFXOXVTMlY1SUQwOVBTQndaWEp0YVhOemFXOXVTMlY1S1Z4dUlDQWdJQ0FnTG0xaGNDZ29aM0poYm5RcElEMCtJR2R5WVc1MExuSmxjMjkxY21ObFNXUXBPMXh1SUNBZ0lISmxkSFZ5YmlCaWRXbHNaRUZ5WVc1bmIwTnZiblJsZUhRb2UxeHVJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNCd2NtbHVZMmx3WVd4SlpDeGNiaUFnSUNBZ0lIQmxjbTFwYzNOcGIyNUxaWGtzWEc0Z0lDQWdJQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjeXhjYmlBZ0lDQWdJR0ZzYkc5M1pXUlNaWE52ZFhKalpVbGtjeXhjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR0oxYVd4a1VXUnlZVzUwUm1sc2RHVnlLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J3WlhKdGFYTnphVzl1UzJWNU9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdZV05qWlhOeklEMGdZWGRoYVhRZ2RHaHBjeTVpZFdsc1pFRmpZMlZ6YzBOdmJuUmxlSFFvWEc0Z0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJSEJ5YVc1amFYQmhiRWxrTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWVd4c2IzZGxaRTl5WjFWdWFYUkpaSE1nUFZ4dUlDQWdJQ0FnWVdOalpYTnpMbUZzYkc5M1pXUlBjbWRWYm1sMFNXUnpRbmxRWlhKdGFYTnphVzl1VzNCbGNtMXBjM05wYjI1TFpYbGRJRDgvSUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJR0ZzYkc5M1pXUlNaWE52ZFhKalpVbGtjeUE5SUdGalkyVnpjeTV5WlhOdmRYSmpaVWR5WVc1MGMxeHVJQ0FnSUNBZ0xtWnBiSFJsY2lnb1ozSmhiblFwSUQwK0lHZHlZVzUwTG5CbGNtMXBjM05wYjI1TFpYa2dQVDA5SUhCbGNtMXBjM05wYjI1TFpYa3BYRzRnSUNBZ0lDQXViV0Z3S0NobmNtRnVkQ2tnUFQ0Z1ozSmhiblF1Y21WemIzVnlZMlZKWkNrN1hHNGdJQ0FnY21WMGRYSnVJR0oxYVd4a1VXUnlZVzUwUm1sc2RHVnlLSHRjYmlBZ0lDQWdJSFJsYm1GdWRFbGtMRnh1SUNBZ0lDQWdjSEpwYm1OcGNHRnNTV1FzWEc0Z0lDQWdJQ0J3WlhKdGFYTnphVzl1UzJWNUxGeHVJQ0FnSUNBZ1lXeHNiM2RsWkU5eVoxVnVhWFJKWkhNc1hHNGdJQ0FnSUNCaGJHeHZkMlZrVW1WemIzVnlZMlZKWkhNc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19
101
+ //# sourceMappingURL=authz.service.js.map
102
+ //# sourceMappingURL=authz.service.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/services/authz.service.cjs","sourceRoot":"","sources":["namespaces/services/authz.service.js"],"names":[],"mappings":"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"}