@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
@@ -271,5 +271,5 @@ class GoogleDocsService extends index_js_1.HttpApiService {
271
271
  }
272
272
  }
273
273
  exports.GoogleDocsService = GoogleDocsService;
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR29vZ2xlRG9jc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vZ29vZ2xlLWRvY3MvR29vZ2xlRG9jc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsNEJBQXVCO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUNyRSxPQUFPLEVBQ0wsY0FBYyxFQUVkLFNBQVMsR0FDVixxQ0FBMEI7QUE4RDNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQXVDO0lBQTlFOztRQUNFOztXQUVHO1FBQ2dCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO0lBd09qRCxDQUFDO0lBdE9DOzs7O09BSUc7SUFDTyxjQUFjO1FBQ3RCLE9BQU8sZ0NBQWdDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLFdBQVcsQ0FDbkIsTUFBK0I7UUFFL0IsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNyRSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxxQkFBcUI7UUFHN0IsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNw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QWtCRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBNkI7UUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLGNBQWMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQ2hFO2dCQUNFLFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxjQUFjLEVBQUU7NEJBQ2QsWUFBWSxFQUFFO2dDQUNaLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQ0FDaEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSzs2QkFDcEM7NEJBQ0QsV0FBVyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRTt5QkFDakM7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUNGLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLWRvY3Mvc2VydmljZVxuICogQHN1bW1hcnkgR29vZ2xlIERvY3MgQVBJIGludGVncmF0aW9uIHNlcnZpY2UgZm9yIGRvY3VtZW50IGNvbnRlbnQgb3BlcmF0aW9ucy5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIEdvb2dsZSBEb2NzIGRvY3VtZW50IG9wZXJhdGlvbnMgKGdldCwgY3JlYXRlLCBiYXRjaFxuICogdXBkYXRlLCBhcHBlbmQgdGV4dCwgYW5kIHJlcGxhY2UtYWxsKSBhcyBhbiB1bmRlY29yYXRlZCBjbGllbnQtYmFzZWQgc2VydmljZVxuICogYnVpbHQgb24ge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQ29uZmlndXJhdGlvbiBjb21lcyBmcm9tIGFuIGV4cGxpY2l0XG4gKiBgR29vZ2xlRG9jc1NlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8uZ29vZ2xlRG9jc2AgZW52aXJvbm1lbnQgc2xpY2UuIEFuIE9BdXRoXG4gKiBhY2Nlc3MgdG9rZW4gaXMgc2VudCBhcyBhIGJlYXJlciB0b2tlbiB3aGVuIHByZXNlbnQ7IG90aGVyd2lzZSBhbiBBUEkga2V5IGlzXG4gKiBzZW50IGFzIGBYLUdvb2ctQXBpLUtleWAgKHdyaXRlcyBnZW5lcmFsbHkgcmVxdWlyZSBPQXV0aCkuIENyZWRlbnRpYWxzIGFyZVxuICogcmVmZXJlbmNlZCBmcm9tIGNvbmZpZ3VyYXRpb24gKGFuZCwgZnJvbSBhcy1ncmFwaCBub2RlcywgZnJvbSB0aGUgcmVzb2x2ZWRcbiAqIGBnb29nbGUtZG9jc2AgY3JlZGVudGlhbCBzZWNyZXQpIGFuZCBhcmUgbmV2ZXIgZW1iZWRkZWQgaW4gc291cmNlLiBGYWlsdXJlc1xuICogYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJb0Vudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuaW1wb3J0IHtcbiAgSHR0cEFwaVNlcnZpY2UsXG4gIHR5cGUgSHR0cEFwaVNlcnZpY2VDb25maWcsXG4gIGh0dHBFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9odHRwXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBHb29nbGUgRG9jcyBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHtAbGluayBIdHRwQXBpU2VydmljZUNvbmZpZ30gd2l0aCBhbiBvcHRpb25hbCBPQXV0aFxuICogYHRva2VuYCAocHJlZmVycmVkKSBhbmQgYW4gb3B0aW9uYWwgYGFwaUtleWAuIFdoZW4gb21pdHRlZCwgdGhlXG4gKiBgaW8uZ29vZ2xlRG9jc2AgZW52aXJvbm1lbnQgc2xpY2Ugc3VwcGxpZXMgdGhlIHNhbWUgdmFsdWVzIChwbHVzIG9wdGlvbmFsXG4gKiBgYmFzZVVybGAvYHRpbWVvdXRgKS4gQXQgbGVhc3Qgb25lIGNyZWRlbnRpYWwgaXMgcmVxdWlyZWQ7IHRoZSB0b2tlbiB3aW5zXG4gKiB3aGVuIGJvdGggYXJlIHNldC5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLWRvY3Mvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZURvY3NTZXJ2aWNlQ29uZmlnIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdvb2dsZSBPQXV0aCBhY2Nlc3MgdG9rZW5cbiAgICogQHN1bW1hcnkgU2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gIHdoZW4gcHJlc2VudC5cbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdvb2dsZSBBUEkga2V5XG4gICAqIEBzdW1tYXJ5IFNlbnQgYXMgYFgtR29vZy1BcGktS2V5YCBvbmx5IHdoZW4gbm8gT0F1dGggdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICovXG4gIGFwaUtleT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIHJlcGxhY2luZyBhbGwgbWF0Y2hpbmcgdGV4dCBpbiBhIGRvY3VtZW50XG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSBgZG9jdW1lbnRJZGAsIHRoZSBgZmluZGAgdGV4dCwgaXRzIGByZXBsYWNlYG1lbnQsIGFuZFxuICogd2hldGhlciBtYXRjaGluZyBpcyBjYXNlLXNlbnNpdGl2ZS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLWRvY3Mvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZURvY3NSZXBsYWNlSW5wdXQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERvY3VtZW50IElEIHRvIHVwZGF0ZVxuICAgKi9cbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRleHQgdG8gc2VhcmNoIGZvclxuICAgKi9cbiAgZmluZDogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlcGxhY2VtZW50IHRleHQgKGRlZmF1bHRzIHRvIHRoZSBlbXB0eSBzdHJpbmcpXG4gICAqL1xuICByZXBsYWNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBtYXRjaGluZyBpcyBjYXNlLXNlbnNpdGl2ZSAoZGVmYXVsdCBgZmFsc2VgKVxuICAgKi9cbiAgbWF0Y2hDYXNlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWluaW1hbCBHb29nbGUgRG9jcyBib2R5IGRlc2NyaXB0b3IgdXNlZCBmb3IgYXBwZW5kIHBvc2l0aW9uaW5nXG4gKiBAc3VtbWFyeSBDYXB0dXJlcyB0aGUgYm9keSBjb250ZW50IGVudHJpZXMgd2hvc2UgYGVuZEluZGV4YCBsb2NhdGVzIHRoZSBlbmRcbiAqIG9mIHRoZSBkb2N1bWVudC5cbiAqL1xuaW50ZXJmYWNlIEdvb2dsZURvY0JvZHkge1xuICBib2R5Pzoge1xuICAgIGNvbnRlbnQ/OiBBcnJheTx7IGVuZEluZGV4PzogbnVtYmVyIH0+O1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHb29nbGUgRG9jcyBBUEkgaW50ZWdyYXRpb24gc2VydmljZVxuICogQHN1bW1hcnkgQW4gdW5kZWNvcmF0ZWQgSFRUUCBzZXJ2aWNlIGZvciByZWFkaW5nIGFuZCBjcmVhdGluZyBkb2N1bWVudHMsXG4gKiBydW5uaW5nIHJhdyBiYXRjaCB1cGRhdGVzLCBhcHBlbmRpbmcgdGV4dCwgYW5kIHJlcGxhY2luZyBhbGwgbWF0Y2hpbmcgdGV4dC5cbiAqIEV2ZXJ5IG9wZXJhdGlvbiBuZWVkcyBlaXRoZXIgYW4gT0F1dGggdG9rZW4gb3IgYW4gQVBJIGtleTsgbWlzc2luZ1xuICogY3JlZGVudGlhbHMgb3IgaWRlbnRpZmllcnMgcmFpc2UgYEludGVybmFsRXJyb3JgLCBhbmQgdHJhbnNwb3J0IGZhaWx1cmVzIGFyZVxuICogbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgR29vZ2xlRG9jc1NlcnZpY2VcbiAqIEBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgR29vZ2xlRG9jc1NlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9pby9nb29nbGUtZG9jc1wiO1xuICpcbiAqIGNvbnN0IGRvY3MgPSBuZXcgR29vZ2xlRG9jc1NlcnZpY2UoKTtcbiAqIGF3YWl0IGRvY3MuaW5pdGlhbGl6ZSh7XG4gKiAgIHRva2VuOiBwcm9jZXNzLmVudi5HUkFQSF9DUkVERU5USUFMX0dPT0dMRV9ET0NTX1RPS0VOLFxuICogfSk7XG4gKiBhd2FpdCBkb2NzLmFwcGVuZFRleHQocHJvY2Vzcy5lbnYuR09PR0xFX0RPQ19JRCA/PyBcIlwiLCBcIk5ldyBwYXJhZ3JhcGhcIik7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgYXV0b251bWJlclxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgU2VydmljZSBhcyBHb29nbGVEb2NzU2VydmljZVxuICogICBwYXJ0aWNpcGFudCBBUEkgYXMgR29vZ2xlIERvY3MgQVBJXG4gKiAgIENhbGxlci0+PlNlcnZpY2U6IGFwcGVuZFRleHQoZG9jdW1lbnRJZCwgdGV4dClcbiAqICAgYWN0aXZhdGUgU2VydmljZVxuICogICBTZXJ2aWNlLT4+U2VydmljZTogcmVxdWlyZUF1dGgoKVxuICogICBTZXJ2aWNlLT4+QVBJOiBHRVQgL2RvY3VtZW50cy97aWR9XG4gKiAgIGFjdGl2YXRlIEFQSVxuICogICBBUEktLT4+U2VydmljZTogYm9keSBjb250ZW50IGVuZEluZGV4XG4gKiAgIGRlYWN0aXZhdGUgQVBJXG4gKiAgIFNlcnZpY2UtPj5BUEk6IFBPU1QgL2RvY3VtZW50cy97aWR9OmJhdGNoVXBkYXRlXG4gKiAgIGFjdGl2YXRlIEFQSVxuICogICBBUEktLT4+U2VydmljZTogYmF0Y2ggdXBkYXRlIHJlc3VsdFxuICogICBkZWFjdGl2YXRlIEFQSVxuICogICBTZXJ2aWNlLS0+PkNhbGxlcjogYmF0Y2ggdXBkYXRlIHJlc3VsdFxuICogICBkZWFjdGl2YXRlIFNlcnZpY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2lvL2dvb2dsZS1kb2NzL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdvb2dsZURvY3NTZXJ2aWNlIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2U8R29vZ2xlRG9jc1NlcnZpY2VDb25maWc+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZU5hbWUgPSBcIkdvb2dsZSBEb2NzXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgR29vZ2xlIERvY3MgQVBJIGJhc2UgVVJMXG4gICAqIEBzdW1tYXJ5IFVzZWQgd2hlbiB0aGUgcmVzb2x2ZWQgY29uZmlnIGNhcnJpZXMgbm8gYGJhc2VVcmxgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2RvY3MuZ29vZ2xlYXBpcy5jb20vdjFcImAuXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodHRwczovL2RvY3MuZ29vZ2xlYXBpcy5jb20vdjFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHb29nbGUgRG9jcyBhdXRoZW50aWNhdGlvbiBoZWFkZXJzXG4gICAqIEBzdW1tYXJ5IFByZWZlcnMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCwgZmFsbHMgYmFjayB0b1xuICAgKiBgWC1Hb29nLUFwaS1LZXk6IDxhcGlLZXk+YCwgYW5kIHJldHVybnMgbm8gaGVhZGVycyB3aGVuIG5laXRoZXIgaXMgc2V0LlxuICAgKiBAcGFyYW0ge0dvb2dsZURvY3NTZXJ2aWNlQ29uZmlnfSBjb25maWcgLSBUaGUgcmVzb2x2ZWQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhlbnRpY2F0aW9uIGhlYWRlcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoXG4gICAgY29uZmlnOiBHb29nbGVEb2NzU2VydmljZUNvbmZpZ1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAoY29uZmlnLnRva2VuKSByZXR1cm4geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Y29uZmlnLnRva2VufWAgfTtcbiAgICBpZiAoY29uZmlnLmFwaUtleSkgcmV0dXJuIHsgXCJYLUdvb2ctQXBpLUtleVwiOiBjb25maWcuYXBpS2V5IH07XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyB0aGUgR29vZ2xlIERvY3MgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIGVudmlyb25tZW50XG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBgaW8uZ29vZ2xlRG9jc2Agc2xpY2UgYW5kIHJldHVybnMgYSBwYXJ0aWFsIGNvbmZpZyB3aGVuXG4gICAqIGEgdG9rZW4gb3IgQVBJIGtleSBpcyBjb25maWd1cmVkLCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuIFZhbHVlcyBwYXNzXG4gICAqIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICogQHJldHVybnMge1BhcnRpYWw8R29vZ2xlRG9jc1NlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTpcbiAgICB8IFBhcnRpYWw8R29vZ2xlRG9jc1NlcnZpY2VDb25maWc+XG4gICAgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudiA9IElvRW52aXJvbm1lbnQuaW8uZ29vZ2xlRG9jcztcbiAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICBjb25zdCBhcGlLZXkgPSBlbnZTdHJpbmcoZW52Py5hcGlLZXkpO1xuICAgIGlmICghdG9rZW4gJiYgIWFwaUtleSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW4sXG4gICAgICBhcGlLZXksXG4gICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgYW4gT0F1dGggdG9rZW4gb3IgQVBJIGtleSBpcyBjb25maWd1cmVkXG4gICAqIEBzdW1tYXJ5IENhbGxlZCBieSBldmVyeSBvcGVyYXRpb24gYmVmb3JlIGl0IHRvdWNoZXMgdGhlIG5ldHdvcmsuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5laXRoZXIgYSB0b2tlbiBub3IgYW4gQVBJIGtleSBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcXVpcmVBdXRoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25maWcudG9rZW4gJiYgIXRoaXMuY29uZmlnLmFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiR29vZ2xlIERvY3MgcmVxdWlyZXMgYW4gT0F1dGggdG9rZW4gb3IgYW4gQVBJIGtleVwiXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmV0Y2hlcyBhIEdvb2dsZSBEb2NzIGRvY3VtZW50XG4gICAqIEBzdW1tYXJ5IGBHRVRgcyBgL2RvY3VtZW50cy88aWQ+YCBhbmQgcmV0dXJucyB0aGUgZnVsbCBkb2N1bWVudCBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZG9jdW1lbnRJZCAtIFRoZSBkb2N1bWVudCBJRC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBkb2N1bWVudCBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCBvciB0aGUgZG9jdW1lbnQgSUQgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGRvY3VtZW50IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIGdldERvY3VtZW50KGRvY3VtZW50SWQ6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICBpZiAoIWRvY3VtZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR29vZ2xlIERvY3MgcmVxdWlyZXMgYSBkb2N1bWVudCBpZFwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0PEdvb2dsZURvY0JvZHk+KFxuICAgICAgICBgL2RvY3VtZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudElkKX1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBEb2NzXCIsIFwiZ2V0IGRvY3VtZW50XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBHb29nbGUgRG9jcyBkb2N1bWVudFxuICAgKiBAc3VtbWFyeSBgUE9TVGBzIGEgbmV3IGRvY3VtZW50IHdpdGggdGhlIGdpdmVuIHRpdGxlIGFuZCByZXR1cm5zIGl0c1xuICAgKiBwYXlsb2FkIChpbmNsdWRpbmcgYGRvY3VtZW50SWRgKS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIC0gVGhlIG5ldyBkb2N1bWVudCB0aXRsZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBjcmVhdGVkIGRvY3VtZW50IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gY3JlZGVudGlhbCBpcyBjb25maWd1cmVkIG9yIHRoZSB0aXRsZSBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlRG9jdW1lbnQodGl0bGU6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICBpZiAoIXRpdGxlKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdvb2dsZSBEb2NzIHJlcXVpcmVzIGEgZG9jdW1lbnQgdGl0bGVcIik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvZG9jdW1lbnRzXCIsIHsgdGl0bGUgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIERvY3NcIiwgXCJjcmVhdGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXBwbGllcyBhIHJhdyBHb29nbGUgRG9jcyBiYXRjaCB1cGRhdGVcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgYHJlcXVlc3RzYCBhcnJheSB0byBgL2RvY3VtZW50cy88aWQ+OmJhdGNoVXBkYXRlYFxuICAgKiB1bmNoYW5nZWQsIGFsbG93aW5nIGFueSBEb2NzIEFQSSByZXF1ZXN0IHR5cGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkb2N1bWVudElkIC0gVGhlIGRvY3VtZW50IElELlxuICAgKiBAcGFyYW0ge3Vua25vd25bXX0gcmVxdWVzdHMgLSBUaGUgRG9jcyBBUEkgcmVxdWVzdCBvYmplY3RzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCwgb3IgdGhlIGRvY3VtZW50IElEIG9yIHJlcXVlc3RzIGFyZSBtaXNzaW5nLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIHJlamVjdHMgYSByZXF1ZXN0LlxuICAgKi9cbiAgYXN5bmMgYmF0Y2hVcGRhdGUoXG4gICAgZG9jdW1lbnRJZDogc3RyaW5nLFxuICAgIHJlcXVlc3RzOiB1bmtub3duW11cbiAgKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQXV0aCgpO1xuICAgIGlmICghZG9jdW1lbnRJZCB8fCAhQXJyYXkuaXNBcnJheShyZXF1ZXN0cykgfHwgIXJlcXVlc3RzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiR29vZ2xlIERvY3MgYmF0Y2hVcGRhdGUgcmVxdWlyZXMgYSBkb2N1bWVudCBpZCBhbmQgcmVxdWVzdHNcIlxuICAgICAgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChcbiAgICAgICAgYC9kb2N1bWVudHMvJHtlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnRJZCl9OmJhdGNoVXBkYXRlYCxcbiAgICAgICAgeyByZXF1ZXN0cyB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBEb2NzXCIsIFwiYmF0Y2ggdXBkYXRlXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFwcGVuZHMgdGV4dCB0byB0aGUgZW5kIG9mIGEgR29vZ2xlIERvY3MgZG9jdW1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGRvY3VtZW50IHRvIGZpbmQgdGhlIGZpbmFsIGBlbmRJbmRleGAsIHRoZW4gaW5zZXJ0cyB0aGVcbiAgICogdGV4dCBqdXN0IGJlZm9yZSBpdCB0aHJvdWdoIGEgYGJhdGNoVXBkYXRlYC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRvY3VtZW50SWQgLSBUaGUgZG9jdW1lbnQgSUQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gVGhlIHRleHQgdG8gYXBwZW5kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCwgb3IgdGhlIGRvY3VtZW50IElEIG9yIHRleHQgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGRvY3VtZW50IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgcmVqZWN0cyB0aGUgdXBkYXRlLlxuICAgKi9cbiAgYXN5bmMgYXBwZW5kVGV4dChkb2N1bWVudElkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICBpZiAoIWRvY3VtZW50SWQgfHwgIXRleHQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIkdvb2dsZSBEb2NzIGFwcGVuZFRleHQgcmVxdWlyZXMgYSBkb2N1bWVudCBpZCBhbmQgdGV4dFwiXG4gICAgICApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQ8R29vZ2xlRG9jQm9keT4oXG4gICAgICAgIGAvZG9jdW1lbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50SWQpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250ZW50ID0gZG9jdW1lbnQuZGF0YS5ib2R5Py5jb250ZW50ID8/IFtdO1xuICAgICAgY29uc3QgbGFzdCA9IGNvbnRlbnRbY29udGVudC5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gbGFzdD8uZW5kSW5kZXggPz8gMTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChcbiAgICAgICAgYC9kb2N1bWVudHMvJHtlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnRJZCl9OmJhdGNoVXBkYXRlYCxcbiAgICAgICAge1xuICAgICAgICAgIHJlcXVlc3RzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGluc2VydFRleHQ6IHtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogeyBpbmRleDogTWF0aC5tYXgoZW5kSW5kZXggLSAxLCAxKSB9LFxuICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIERvY3NcIiwgXCJhcHBlbmQgdGV4dFwiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXBsYWNlcyBhbGwgbWF0Y2hpbmcgdGV4dCBpbiBhIEdvb2dsZSBEb2NzIGRvY3VtZW50XG4gICAqIEBzdW1tYXJ5IFNlbmRzIGEgYHJlcGxhY2VBbGxUZXh0YCByZXF1ZXN0IGhvbm9yaW5nIHRoZSBgbWF0Y2hDYXNlYCBvcHRpb25cbiAgICogYW5kIHJldHVybnMgdGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge0dvb2dsZURvY3NSZXBsYWNlSW5wdXR9IGlucHV0IC0gVGhlIGRvY3VtZW50LCBmaW5kL3JlcGxhY2UgdGV4dCwgYW5kIGNhc2Ugb3B0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCwgb3IgdGhlIGRvY3VtZW50IElEIG9yIGZpbmQgdGV4dCBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgZG9jdW1lbnQgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSByZWplY3RzIHRoZSB1cGRhdGUuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF3YWl0IGRvY3MucmVwbGFjZUFsbFRleHQoe1xuICAgKiAgIGRvY3VtZW50SWQ6IFwiYWJjMTIzXCIsXG4gICAqICAgZmluZDogXCJUT0RPXCIsXG4gICAqICAgcmVwbGFjZTogXCJET05FXCIsXG4gICAqICAgbWF0Y2hDYXNlOiB0cnVlLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyByZXBsYWNlQWxsVGV4dChpbnB1dDogR29vZ2xlRG9jc1JlcGxhY2VJbnB1dCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICBpZiAoIWlucHV0LmRvY3VtZW50SWQgfHwgIWlucHV0LmZpbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIkdvb2dsZSBEb2NzIHJlcGxhY2VBbGxUZXh0IHJlcXVpcmVzIGEgZG9jdW1lbnQgaWQgYW5kIGZpbmQgdGV4dFwiXG4gICAgICApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KFxuICAgICAgICBgL2RvY3VtZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChpbnB1dC5kb2N1bWVudElkKX06YmF0Y2hVcGRhdGVgLFxuICAgICAgICB7XG4gICAgICAgICAgcmVxdWVzdHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVwbGFjZUFsbFRleHQ6IHtcbiAgICAgICAgICAgICAgICBjb250YWluc1RleHQ6IHtcbiAgICAgICAgICAgICAgICAgIHRleHQ6IGlucHV0LmZpbmQsXG4gICAgICAgICAgICAgICAgICBtYXRjaENhc2U6IGlucHV0Lm1hdGNoQ2FzZSA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlcGxhY2VUZXh0OiBpbnB1dC5yZXBsYWNlID8/IFwiXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIERvY3NcIiwgXCJyZXBsYWNlIGFsbCB0ZXh0XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR29vZ2xlRG9jc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHb29nbGVEb2NzU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCwyREFBd0Q7QUFDeEQsd0RBQW9EO0FBQ3BELDRFQUEwRTtBQUMxRSwyREFBMEU7QUFDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHlCQUFjO0lBQ2pEO1FBQ0ksS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEI7O1dBRUc7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWM7UUFDVixPQUFPLGdDQUFnQyxDQUFDO0lBQzVDLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUMsTUFBTTtRQUNkLElBQUksTUFBTSxDQUFDLEtBQUs7WUFDWixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDdkQsSUFBSSxNQUFNLENBQUMsTUFBTTtZQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0MsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gscUJBQXFCO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLDhCQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFBLCtCQUFTLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUEsK0JBQVMsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDakIs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UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLDZCQUFhLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO2dCQUN0RyxRQUFRLEVBQUU7b0JBQ047d0JBQ0ksY0FBYyxFQUFFOzRCQUNaLFlBQVksRUFBRTtnQ0FDVixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0NBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUs7NkJBQ3RDOzRCQUNELFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUU7eUJBQ25DO3FCQUNKO2lCQUNKO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFBLG9CQUFTLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFsTkQsOENBa05DO0FBQ0QsODd0QkFBODd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLWRvY3Mvc2VydmljZVxuICogQHN1bW1hcnkgR29vZ2xlIERvY3MgQVBJIGludGVncmF0aW9uIHNlcnZpY2UgZm9yIGRvY3VtZW50IGNvbnRlbnQgb3BlcmF0aW9ucy5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIEdvb2dsZSBEb2NzIGRvY3VtZW50IG9wZXJhdGlvbnMgKGdldCwgY3JlYXRlLCBiYXRjaFxuICogdXBkYXRlLCBhcHBlbmQgdGV4dCwgYW5kIHJlcGxhY2UtYWxsKSBhcyBhbiB1bmRlY29yYXRlZCBjbGllbnQtYmFzZWQgc2VydmljZVxuICogYnVpbHQgb24ge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQ29uZmlndXJhdGlvbiBjb21lcyBmcm9tIGFuIGV4cGxpY2l0XG4gKiBgR29vZ2xlRG9jc1NlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8uZ29vZ2xlRG9jc2AgZW52aXJvbm1lbnQgc2xpY2UuIEFuIE9BdXRoXG4gKiBhY2Nlc3MgdG9rZW4gaXMgc2VudCBhcyBhIGJlYXJlciB0b2tlbiB3aGVuIHByZXNlbnQ7IG90aGVyd2lzZSBhbiBBUEkga2V5IGlzXG4gKiBzZW50IGFzIGBYLUdvb2ctQXBpLUtleWAgKHdyaXRlcyBnZW5lcmFsbHkgcmVxdWlyZSBPQXV0aCkuIENyZWRlbnRpYWxzIGFyZVxuICogcmVmZXJlbmNlZCBmcm9tIGNvbmZpZ3VyYXRpb24gKGFuZCwgZnJvbSBhcy1ncmFwaCBub2RlcywgZnJvbSB0aGUgcmVzb2x2ZWRcbiAqIGBnb29nbGUtZG9jc2AgY3JlZGVudGlhbCBzZWNyZXQpIGFuZCBhcmUgbmV2ZXIgZW1iZWRkZWQgaW4gc291cmNlLiBGYWlsdXJlc1xuICogYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJb0Vudmlyb25tZW50IH0gZnJvbSBcIi4vLi4vZW52aXJvbm1lbnQuanNcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2Vudmlyb25tZW50VmFsdWUuanNcIjtcbmltcG9ydCB7IEh0dHBBcGlTZXJ2aWNlLCBodHRwRXJyb3IsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2h0dHAvaW5kZXguanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEdvb2dsZSBEb2NzIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIHJlYWRpbmcgYW5kIGNyZWF0aW5nIGRvY3VtZW50cyxcbiAqIHJ1bm5pbmcgcmF3IGJhdGNoIHVwZGF0ZXMsIGFwcGVuZGluZyB0ZXh0LCBhbmQgcmVwbGFjaW5nIGFsbCBtYXRjaGluZyB0ZXh0LlxuICogRXZlcnkgb3BlcmF0aW9uIG5lZWRzIGVpdGhlciBhbiBPQXV0aCB0b2tlbiBvciBhbiBBUEkga2V5OyBtaXNzaW5nXG4gKiBjcmVkZW50aWFscyBvciBpZGVudGlmaWVycyByYWlzZSBgSW50ZXJuYWxFcnJvcmAsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlXG4gKiBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBHb29nbGVEb2NzU2VydmljZVxuICogQGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VcbiAqIEBjYXRlZ29yeSBJT1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBHb29nbGVEb2NzU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2lvL2dvb2dsZS1kb2NzXCI7XG4gKlxuICogY29uc3QgZG9jcyA9IG5ldyBHb29nbGVEb2NzU2VydmljZSgpO1xuICogYXdhaXQgZG9jcy5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfR09PR0xFX0RPQ1NfVE9LRU4sXG4gKiB9KTtcbiAqIGF3YWl0IGRvY3MuYXBwZW5kVGV4dChwcm9jZXNzLmVudi5HT09HTEVfRE9DX0lEID8/IFwiXCIsIFwiTmV3IHBhcmFncmFwaFwiKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBhdXRvbnVtYmVyXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIEdvb2dsZURvY3NTZXJ2aWNlXG4gKiAgIHBhcnRpY2lwYW50IEFQSSBhcyBHb29nbGUgRG9jcyBBUElcbiAqICAgQ2FsbGVyLT4+U2VydmljZTogYXBwZW5kVGV4dChkb2N1bWVudElkLCB0ZXh0KVxuICogICBhY3RpdmF0ZSBTZXJ2aWNlXG4gKiAgIFNlcnZpY2UtPj5TZXJ2aWNlOiByZXF1aXJlQXV0aCgpXG4gKiAgIFNlcnZpY2UtPj5BUEk6IEdFVCAvZG9jdW1lbnRzL3tpZH1cbiAqICAgYWN0aXZhdGUgQVBJXG4gKiAgIEFQSS0tPj5TZXJ2aWNlOiBib2R5IGNvbnRlbnQgZW5kSW5kZXhcbiAqICAgZGVhY3RpdmF0ZSBBUElcbiAqICAgU2VydmljZS0+PkFQSTogUE9TVCAvZG9jdW1lbnRzL3tpZH06YmF0Y2hVcGRhdGVcbiAqICAgYWN0aXZhdGUgQVBJXG4gKiAgIEFQSS0tPj5TZXJ2aWNlOiBiYXRjaCB1cGRhdGUgcmVzdWx0XG4gKiAgIGRlYWN0aXZhdGUgQVBJXG4gKiAgIFNlcnZpY2UtLT4+Q2FsbGVyOiBiYXRjaCB1cGRhdGUgcmVzdWx0XG4gKiAgIGRlYWN0aXZhdGUgU2VydmljZVxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLWRvY3Mvc2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgR29vZ2xlRG9jc1NlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IFwiR29vZ2xlIERvY3NcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBHb29nbGUgRG9jcyBBUEkgYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2RvY3MuZ29vZ2xlYXBpcy5jb20vdjFcImAuXG4gICAgICovXG4gICAgZGVmYXVsdEJhc2VVcmwoKSB7XG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vZG9jcy5nb29nbGVhcGlzLmNvbS92MVwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHb29nbGUgRG9jcyBhdXRoZW50aWNhdGlvbiBoZWFkZXJzXG4gICAgICogQHN1bW1hcnkgUHJlZmVycyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gLCBmYWxscyBiYWNrIHRvXG4gICAgICogYFgtR29vZy1BcGktS2V5OiA8YXBpS2V5PmAsIGFuZCByZXR1cm5zIG5vIGhlYWRlcnMgd2hlbiBuZWl0aGVyIGlzIHNldC5cbiAgICAgKiBAcGFyYW0ge0dvb2dsZURvY3NTZXJ2aWNlQ29uZmlnfSBjb25maWcgLSBUaGUgcmVzb2x2ZWQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBUaGUgYXV0aGVudGljYXRpb24gaGVhZGVycy5cbiAgICAgKi9cbiAgICBhdXRoSGVhZGVycyhjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy50b2tlbilcbiAgICAgICAgICAgIHJldHVybiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9O1xuICAgICAgICBpZiAoY29uZmlnLmFwaUtleSlcbiAgICAgICAgICAgIHJldHVybiB7IFwiWC1Hb29nLUFwaS1LZXlcIjogY29uZmlnLmFwaUtleSB9O1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyB0aGUgR29vZ2xlIERvY3MgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIGVudmlyb25tZW50XG4gICAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBpby5nb29nbGVEb2NzYCBzbGljZSBhbmQgcmV0dXJucyBhIHBhcnRpYWwgY29uZmlnIHdoZW5cbiAgICAgKiBhIHRva2VuIG9yIEFQSSBrZXkgaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzc1xuICAgICAqIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxHb29nbGVEb2NzU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gY3JlZGVudGlhbCBpcyBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpIHtcbiAgICAgICAgY29uc3QgZW52ID0gSW9FbnZpcm9ubWVudC5pby5nb29nbGVEb2NzO1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICAgICAgY29uc3QgYXBpS2V5ID0gZW52U3RyaW5nKGVudj8uYXBpS2V5KTtcbiAgICAgICAgaWYgKCF0b2tlbiAmJiAhYXBpS2V5KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgYXBpS2V5LFxuICAgICAgICAgICAgYmFzZVVybDogZW52U3RyaW5nKGVudi5iYXNlVXJsKSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGVudk51bWJlcihlbnYudGltZW91dCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgYW4gT0F1dGggdG9rZW4gb3IgQVBJIGtleSBpcyBjb25maWd1cmVkXG4gICAgICogQHN1bW1hcnkgQ2FsbGVkIGJ5IGV2ZXJ5IG9wZXJhdGlvbiBiZWZvcmUgaXQgdG91Y2hlcyB0aGUgbmV0d29yay5cbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5laXRoZXIgYSB0b2tlbiBub3IgYW4gQVBJIGtleSBpcyBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIHJlcXVpcmVBdXRoKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLnRva2VuICYmICF0aGlzLmNvbmZpZy5hcGlLZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR29vZ2xlIERvY3MgcmVxdWlyZXMgYW4gT0F1dGggdG9rZW4gb3IgYW4gQVBJIGtleVwiKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmV0Y2hlcyBhIEdvb2dsZSBEb2NzIGRvY3VtZW50XG4gICAgICogQHN1bW1hcnkgYEdFVGBzIGAvZG9jdW1lbnRzLzxpZD5gIGFuZCByZXR1cm5zIHRoZSBmdWxsIGRvY3VtZW50IHBheWxvYWQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRvY3VtZW50SWQgLSBUaGUgZG9jdW1lbnQgSUQuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBkb2N1bWVudCBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gY3JlZGVudGlhbCBpcyBjb25maWd1cmVkIG9yIHRoZSBkb2N1bWVudCBJRCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBhc3luYyBnZXREb2N1bWVudChkb2N1bWVudElkKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgaWYgKCFkb2N1bWVudElkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdvb2dsZSBEb2NzIHJlcXVpcmVzIGEgZG9jdW1lbnQgaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KGAvZG9jdW1lbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50SWQpfWApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJHb29nbGUgRG9jc1wiLCBcImdldCBkb2N1bWVudFwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBHb29nbGUgRG9jcyBkb2N1bWVudFxuICAgICAqIEBzdW1tYXJ5IGBQT1NUYHMgYSBuZXcgZG9jdW1lbnQgd2l0aCB0aGUgZ2l2ZW4gdGl0bGUgYW5kIHJldHVybnMgaXRzXG4gICAgICogcGF5bG9hZCAoaW5jbHVkaW5nIGBkb2N1bWVudElkYCkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIC0gVGhlIG5ldyBkb2N1bWVudCB0aXRsZS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGNyZWF0ZWQgZG9jdW1lbnQgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCBvciB0aGUgdGl0bGUgaXMgZW1wdHkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZURvY3VtZW50KHRpdGxlKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgaWYgKCF0aXRsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHb29nbGUgRG9jcyByZXF1aXJlcyBhIGRvY3VtZW50IHRpdGxlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvZG9jdW1lbnRzXCIsIHsgdGl0bGUgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBEb2NzXCIsIFwiY3JlYXRlIGRvY3VtZW50XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwbGllcyBhIHJhdyBHb29nbGUgRG9jcyBiYXRjaCB1cGRhdGVcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBgcmVxdWVzdHNgIGFycmF5IHRvIGAvZG9jdW1lbnRzLzxpZD46YmF0Y2hVcGRhdGVgXG4gICAgICogdW5jaGFuZ2VkLCBhbGxvd2luZyBhbnkgRG9jcyBBUEkgcmVxdWVzdCB0eXBlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkb2N1bWVudElkIC0gVGhlIGRvY3VtZW50IElELlxuICAgICAqIEBwYXJhbSB7dW5rbm93bltdfSByZXF1ZXN0cyAtIFRoZSBEb2NzIEFQSSByZXF1ZXN0IG9iamVjdHMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBiYXRjaCB1cGRhdGUgcmVzcG9uc2UgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCwgb3IgdGhlIGRvY3VtZW50IElEIG9yIHJlcXVlc3RzIGFyZSBtaXNzaW5nLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGRvY3VtZW50IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSByZWplY3RzIGEgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBhc3luYyBiYXRjaFVwZGF0ZShkb2N1bWVudElkLCByZXF1ZXN0cykge1xuICAgICAgICB0aGlzLnJlcXVpcmVBdXRoKCk7XG4gICAgICAgIGlmICghZG9jdW1lbnRJZCB8fCAhQXJyYXkuaXNBcnJheShyZXF1ZXN0cykgfHwgIXJlcXVlc3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHb29nbGUgRG9jcyBiYXRjaFVwZGF0ZSByZXF1aXJlcyBhIGRvY3VtZW50IGlkIGFuZCByZXF1ZXN0c1wiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGAvZG9jdW1lbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50SWQpfTpiYXRjaFVwZGF0ZWAsIHsgcmVxdWVzdHMgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBEb2NzXCIsIFwiYmF0Y2ggdXBkYXRlXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwZW5kcyB0ZXh0IHRvIHRoZSBlbmQgb2YgYSBHb29nbGUgRG9jcyBkb2N1bWVudFxuICAgICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBkb2N1bWVudCB0byBmaW5kIHRoZSBmaW5hbCBgZW5kSW5kZXhgLCB0aGVuIGluc2VydHMgdGhlXG4gICAgICogdGV4dCBqdXN0IGJlZm9yZSBpdCB0aHJvdWdoIGEgYGJhdGNoVXBkYXRlYC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZG9jdW1lbnRJZCAtIFRoZSBkb2N1bWVudCBJRC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIFRoZSB0ZXh0IHRvIGFwcGVuZC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gY3JlZGVudGlhbCBpcyBjb25maWd1cmVkLCBvciB0aGUgZG9jdW1lbnQgSUQgb3IgdGV4dCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgcmVqZWN0cyB0aGUgdXBkYXRlLlxuICAgICAqL1xuICAgIGFzeW5jIGFwcGVuZFRleHQoZG9jdW1lbnRJZCwgdGV4dCkge1xuICAgICAgICB0aGlzLnJlcXVpcmVBdXRoKCk7XG4gICAgICAgIGlmICghZG9jdW1lbnRJZCB8fCAhdGV4dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHb29nbGUgRG9jcyBhcHBlbmRUZXh0IHJlcXVpcmVzIGEgZG9jdW1lbnQgaWQgYW5kIHRleHRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KGAvZG9jdW1lbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50SWQpfWApO1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGRvY3VtZW50LmRhdGEuYm9keT8uY29udGVudCA/PyBbXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBjb250ZW50W2NvbnRlbnQubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IGxhc3Q/LmVuZEluZGV4ID8/IDE7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoYC9kb2N1bWVudHMvJHtlbmNvZGVVUklDb21wb25lbnQoZG9jdW1lbnRJZCl9OmJhdGNoVXBkYXRlYCwge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydFRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogeyBpbmRleDogTWF0aC5tYXgoZW5kSW5kZXggLSAxLCAxKSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIERvY3NcIiwgXCJhcHBlbmQgdGV4dFwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcGxhY2VzIGFsbCBtYXRjaGluZyB0ZXh0IGluIGEgR29vZ2xlIERvY3MgZG9jdW1lbnRcbiAgICAgKiBAc3VtbWFyeSBTZW5kcyBhIGByZXBsYWNlQWxsVGV4dGAgcmVxdWVzdCBob25vcmluZyB0aGUgYG1hdGNoQ2FzZWAgb3B0aW9uXG4gICAgICogYW5kIHJldHVybnMgdGhlIGJhdGNoIHVwZGF0ZSByZXNwb25zZSBwYXlsb2FkLlxuICAgICAqIEBwYXJhbSB7R29vZ2xlRG9jc1JlcGxhY2VJbnB1dH0gaW5wdXQgLSBUaGUgZG9jdW1lbnQsIGZpbmQvcmVwbGFjZSB0ZXh0LCBhbmQgY2FzZSBvcHRpb24uXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBiYXRjaCB1cGRhdGUgcmVzcG9uc2UgcGF5bG9hZC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIGNyZWRlbnRpYWwgaXMgY29uZmlndXJlZCwgb3IgdGhlIGRvY3VtZW50IElEIG9yIGZpbmQgdGV4dCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgcmVqZWN0cyB0aGUgdXBkYXRlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiBhd2FpdCBkb2NzLnJlcGxhY2VBbGxUZXh0KHtcbiAgICAgKiAgIGRvY3VtZW50SWQ6IFwiYWJjMTIzXCIsXG4gICAgICogICBmaW5kOiBcIlRPRE9cIixcbiAgICAgKiAgIHJlcGxhY2U6IFwiRE9ORVwiLFxuICAgICAqICAgbWF0Y2hDYXNlOiB0cnVlLFxuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGFzeW5jIHJlcGxhY2VBbGxUZXh0KGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgaWYgKCFpbnB1dC5kb2N1bWVudElkIHx8ICFpbnB1dC5maW5kKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdvb2dsZSBEb2NzIHJlcGxhY2VBbGxUZXh0IHJlcXVpcmVzIGEgZG9jdW1lbnQgaWQgYW5kIGZpbmQgdGV4dFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGAvZG9jdW1lbnRzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0LmRvY3VtZW50SWQpfTpiYXRjaFVwZGF0ZWAsIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0czogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlQWxsVGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zVGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpbnB1dC5maW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaENhc2U6IGlucHV0Lm1hdGNoQ2FzZSA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VUZXh0OiBpbnB1dC5yZXBsYWNlID8/IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIERvY3NcIiwgXCJyZXBsYWNlIGFsbCB0ZXh0XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVIyOXZaMnhsUkc5amMxTmxjblpwWTJVdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZhVzh2WjI5dloyeGxMV1J2WTNNdlIyOXZaMnhsUkc5amMxTmxjblpwWTJVdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096czdPenM3T3p0SFFWbEhPMEZCUTBnc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJRM2hFTEU5QlFVOHNSVUZCUlN4aFFVRmhMRVZCUVVVc05FSkJRWFZDTzBGQlF5OURMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTERKRFFVRnpRenRCUVVOeVJTeFBRVUZQTEVWQlEwd3NZMEZCWXl4RlFVVmtMRk5CUVZNc1IwRkRWaXh4UTBGQk1FSTdRVUU0UkROQ096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCZDBOSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEdsQ1FVRnJRaXhUUVVGUkxHTkJRWFZETzBsQlFUbEZPenRSUVVORk96dFhRVVZITzFGQlEyZENMR2RDUVVGWExFZEJRVWNzWVVGQllTeERRVUZETzBsQmQwOXFSQ3hEUVVGRE8wbEJkRTlET3pzN08wOUJTVWM3U1VGRFR5eGpRVUZqTzFGQlEzUkNMRTlCUVU4c1owTkJRV2RETEVOQlFVTTdTVUZETVVNc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEZkQlFWY3NRMEZEYmtJc1RVRkJLMEk3VVVGRkwwSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTenRaUVVGRkxFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNWVUZCVlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU55UlN4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTk8xbEJRVVVzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTTVSQ3hQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU5hTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRUeXh4UWtGQmNVSTdVVUZITjBJc1RVRkJUU3hIUVVGSExFZEJRVWNzWVVGQllTeERRVUZETEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNN1VVRkRlRU1zVFVGQlRTeExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU53UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTNSRExFbEJRVWtzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5PMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRGVFTXNUMEZCVHp0WlFVTk1MRXRCUVVzN1dVRkRUQ3hOUVVGTk8xbEJRMDRzVDBGQlR5eEZRVUZGTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJReTlDTEU5QlFVOHNSVUZCUlN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF6dFRRVU5vUXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMDhzVjBGQlZ6dFJRVU51UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlF6bERMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTEcxRVFVRnRSQ3hEUVVOd1JDeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVTklMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQmEwSTdVVUZEYkVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU5vUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExHOURRVUZ2UXl4RFFVRkRMRU5CUVVNN1VVRkRhRVVzUTBGQlF6dFJRVU5FTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUTNCRExHTkJRV01zYTBKQlFXdENMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzUTBGREwwTXNRMEZCUXp0WlFVTkdMRTlCUVU4c1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU4yUWl4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNVMEZCVXl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hqUVVGakxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZUVRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOSUxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCWVR0UlFVTm9ReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEYmtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlExZ3NUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXgxUTBGQmRVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RkxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZEYWtVc1QwRkJUeXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETzFGQlEzWkNMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1lVRkJZU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRek5FTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN1QwRlZSenRKUVVOSUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlEyWXNWVUZCYTBJc1JVRkRiRUlzVVVGQmJVSTdVVUZGYmtJc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXhWUVVGVkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUTJoRkxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMRFpFUVVFMlJDeERRVU01UkN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVORUxFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEzSkRMR05CUVdNc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMR05CUVdNc1JVRkRNVVFzUlVGQlJTeFJRVUZSTEVWQlFVVXNRMEZEWWl4RFFVRkRPMWxCUTBZc1QwRkJUeXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETzFGQlEzWkNMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1lVRkJZU3hGUVVGRkxHTkJRV01zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNTVUZCV1R0UlFVTXZReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEYmtJc1NVRkJTU3hEUVVGRExGVkJRVlVzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUTNwQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMSGRFUVVGM1JDeERRVU42UkN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVORUxFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlEzQkRMR05CUVdNc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1EwRkRMME1zUTBGQlF6dFpRVU5HTEUxQlFVMHNUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRiRVFzVFVGQlRTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZWtNc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeEZRVUZGTEZGQlFWRXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRja01zVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRGNrTXNZMEZCWXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNZMEZCWXl4RlFVTXhSRHRuUWtGRFJTeFJRVUZSTEVWQlFVVTdiMEpCUTFJN2QwSkJRMFVzVlVGQlZTeEZRVUZGT3pSQ1FVTldMRkZCUVZFc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVTdORUpCUXpsRExFbEJRVWs3ZVVKQlEwdzdjVUpCUTBZN2FVSkJRMFk3WVVGRFJpeERRVU5HTEVOQlFVTTdXVUZEUml4UFFVRlBMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU03VVVGRGRrSXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZOQlFWTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1lVRkJZU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzWkVMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wbEJSVVE3T3pzN096czdPenM3T3pzN096czdPenRQUVd0Q1J6dEpRVU5JTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJOa0k3VVVGRGFFUXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUTNKRExFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMR2xGUVVGcFJTeERRVU5zUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVORUxFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEzSkRMR05CUVdNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhqUVVGakxFVkJRMmhGTzJkQ1FVTkZMRkZCUVZFc1JVRkJSVHR2UWtGRFVqdDNRa0ZEUlN4alFVRmpMRVZCUVVVN05FSkJRMlFzV1VGQldTeEZRVUZGTzJkRFFVTmFMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNUdG5RMEZEYUVJc1UwRkJVeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVsQlFVa3NTMEZCU3pzMlFrRkRjRU03TkVKQlEwUXNWMEZCVnl4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUlVGQlJUdDVRa0ZEYWtNN2NVSkJRMFk3YVVKQlEwWTdZVUZEUml4RFFVTkdMRU5CUVVNN1dVRkRSaXhQUVVGUExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEZGtJc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhoUVVGaExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE5VUXNRMEZCUXp0SlFVTklMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUUcxdlpIVnNaU0JwYm5SbFozSmhkR2x2Ym5NdmFXOHZaMjl2WjJ4bExXUnZZM012YzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1IyOXZaMnhsSUVSdlkzTWdRVkJKSUdsdWRHVm5jbUYwYVc5dUlITmxjblpwWTJVZ1ptOXlJR1J2WTNWdFpXNTBJR052Ym5SbGJuUWdiM0JsY21GMGFXOXVjeTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJGZUhCdmMyVnpJRWR2YjJkc1pTQkViMk56SUdSdlkzVnRaVzUwSUc5d1pYSmhkR2x2Ym5NZ0tHZGxkQ3dnWTNKbFlYUmxMQ0JpWVhSamFGeHVJQ29nZFhCa1lYUmxMQ0JoY0hCbGJtUWdkR1Y0ZEN3Z1lXNWtJSEpsY0d4aFkyVXRZV3hzS1NCaGN5QmhiaUIxYm1SbFkyOXlZWFJsWkNCamJHbGxiblF0WW1GelpXUWdjMlZ5ZG1salpWeHVJQ29nWW5WcGJIUWdiMjRnZTBCc2FXNXJJRWgwZEhCQmNHbFRaWEoyYVdObGZTNGdRMjl1Wm1sbmRYSmhkR2x2YmlCamIyMWxjeUJtY205dElHRnVJR1Y0Y0d4cFkybDBYRzRnS2lCZ1IyOXZaMnhsUkc5amMxTmxjblpwWTJWRGIyNW1hV2RnSUc5eUlIUm9aU0JnYVc4dVoyOXZaMnhsUkc5amMyQWdaVzUyYVhKdmJtMWxiblFnYzJ4cFkyVXVJRUZ1SUU5QmRYUm9YRzRnS2lCaFkyTmxjM01nZEc5clpXNGdhWE1nYzJWdWRDQmhjeUJoSUdKbFlYSmxjaUIwYjJ0bGJpQjNhR1Z1SUhCeVpYTmxiblE3SUc5MGFHVnlkMmx6WlNCaGJpQkJVRWtnYTJWNUlHbHpYRzRnS2lCelpXNTBJR0Z6SUdCWUxVZHZiMmN0UVhCcExVdGxlV0FnS0hkeWFYUmxjeUJuWlc1bGNtRnNiSGtnY21WeGRXbHlaU0JQUVhWMGFDa3VJRU55WldSbGJuUnBZV3h6SUdGeVpWeHVJQ29nY21WbVpYSmxibU5sWkNCbWNtOXRJR052Ym1acFozVnlZWFJwYjI0Z0tHRnVaQ3dnWm5KdmJTQmhjeTFuY21Gd2FDQnViMlJsY3l3Z1puSnZiU0IwYUdVZ2NtVnpiMngyWldSY2JpQXFJR0JuYjI5bmJHVXRaRzlqYzJBZ1kzSmxaR1Z1ZEdsaGJDQnpaV055WlhRcElHRnVaQ0JoY21VZ2JtVjJaWElnWlcxaVpXUmtaV1FnYVc0Z2MyOTFjbU5sTGlCR1lXbHNkWEpsYzF4dUlDb2dZWEpsSUcxaGNIQmxaQ0IwYnlCa1pXTmhaaUJsY25KdmNuTWdkbWxoSUh0QWJHbHVheUJvZEhSd1JYSnliM0o5TGx4dUlDb3ZYRzVwYlhCdmNuUWdleUJKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkpiMFZ1ZG1seWIyNXRaVzUwSUgwZ1puSnZiU0JjSWk0dUwyVnVkbWx5YjI1dFpXNTBYQ0k3WEc1cGJYQnZjblFnZXlCbGJuWk9kVzFpWlhJc0lHVnVkbE4wY21sdVp5QjlJR1p5YjIwZ1hDSXVMaTh1TGk5emFHRnlaV1F2Wlc1MmFYSnZibTFsYm5SV1lXeDFaVndpTzF4dWFXMXdiM0owSUh0Y2JpQWdTSFIwY0VGd2FWTmxjblpwWTJVc1hHNGdJSFI1Y0dVZ1NIUjBjRUZ3YVZObGNuWnBZMlZEYjI1bWFXY3NYRzRnSUdoMGRIQkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlvZEhSd1hDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnZibVpwWjNWeVlYUnBiMjRnWm05eUlIUm9aU0JIYjI5bmJHVWdSRzlqY3lCelpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQkZlSFJsYm1SeklIdEFiR2x1YXlCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFozMGdkMmwwYUNCaGJpQnZjSFJwYjI1aGJDQlBRWFYwYUZ4dUlDb2dZSFJ2YTJWdVlDQW9jSEpsWm1WeWNtVmtLU0JoYm1RZ1lXNGdiM0IwYVc5dVlXd2dZR0Z3YVV0bGVXQXVJRmRvWlc0Z2IyMXBkSFJsWkN3Z2RHaGxYRzRnS2lCZ2FXOHVaMjl2WjJ4bFJHOWpjMkFnWlc1MmFYSnZibTFsYm5RZ2MyeHBZMlVnYzNWd2NHeHBaWE1nZEdobElITmhiV1VnZG1Gc2RXVnpJQ2h3YkhWeklHOXdkR2x2Ym1Gc1hHNGdLaUJnWW1GelpWVnliR0F2WUhScGJXVnZkWFJnS1M0Z1FYUWdiR1ZoYzNRZ2IyNWxJR055WldSbGJuUnBZV3dnYVhNZ2NtVnhkV2x5WldRN0lIUm9aU0IwYjJ0bGJpQjNhVzV6WEc0Z0tpQjNhR1Z1SUdKdmRHZ2dZWEpsSUhObGRDNWNiaUFxSUVCallYUmxaMjl5ZVNCSlQxeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBwYm5SbFozSmhkR2x2Ym5NdmFXOHZaMjl2WjJ4bExXUnZZM012YzJWeWRtbGpaVnh1SUNvdlhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFZHZiMmRzWlVSdlkzTlRaWEoyYVdObFEyOXVabWxuSUdWNGRHVnVaSE1nU0hSMGNFRndhVk5sY25acFkyVkRiMjVtYVdjZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFZHZiMmRzWlNCUFFYVjBhQ0JoWTJObGMzTWdkRzlyWlc1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVTJWdWRDQmhjeUJnUVhWMGFHOXlhWHBoZEdsdmJqb2dRbVZoY21WeUlEeDBiMnRsYmo1Z0lIZG9aVzRnY0hKbGMyVnVkQzVjYmlBZ0lDb3ZYRzRnSUhSdmEyVnVQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRWR2YjJkc1pTQkJVRWtnYTJWNVhHNGdJQ0FxSUVCemRXMXRZWEo1SUZObGJuUWdZWE1nWUZndFIyOXZaeTFCY0drdFMyVjVZQ0J2Ym14NUlIZG9aVzRnYm04Z1QwRjFkR2dnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkM1Y2JpQWdJQ292WEc0Z0lHRndhVXRsZVQ4NklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1NXNXdkWFFnWm05eUlISmxjR3hoWTJsdVp5QmhiR3dnYldGMFkyaHBibWNnZEdWNGRDQnBiaUJoSUdSdlkzVnRaVzUwWEc0Z0tpQkFjM1Z0YldGeWVTQkRZWEp5YVdWeklIUm9aU0JnWkc5amRXMWxiblJKWkdBc0lIUm9aU0JnWm1sdVpHQWdkR1Y0ZEN3Z2FYUnpJR0J5WlhCc1lXTmxZRzFsYm5Rc0lHRnVaRnh1SUNvZ2QyaGxkR2hsY2lCdFlYUmphR2x1WnlCcGN5QmpZWE5sTFhObGJuTnBkR2wyWlM1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dloyOXZaMnhsTFdSdlkzTXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkdmIyZHNaVVJ2WTNOU1pYQnNZV05sU1c1d2RYUWdlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVJ2WTNWdFpXNTBJRWxFSUhSdklIVndaR0YwWlZ4dUlDQWdLaTljYmlBZ1pHOWpkVzFsYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGUmxlSFFnZEc4Z2MyVmhjbU5vSUdadmNseHVJQ0FnS2k5Y2JpQWdabWx1WkRvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbGNHeGhZMlZ0Wlc1MElIUmxlSFFnS0dSbFptRjFiSFJ6SUhSdklIUm9aU0JsYlhCMGVTQnpkSEpwYm1jcFhHNGdJQ0FxTDF4dUlDQnlaWEJzWVdObE9pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1YyaGxkR2hsY2lCdFlYUmphR2x1WnlCcGN5QmpZWE5sTFhObGJuTnBkR2wyWlNBb1pHVm1ZWFZzZENCZ1ptRnNjMlZnS1Z4dUlDQWdLaTljYmlBZ2JXRjBZMmhEWVhObFB6b2dZbTl2YkdWaGJqdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdUV2x1YVcxaGJDQkhiMjluYkdVZ1JHOWpjeUJpYjJSNUlHUmxjMk55YVhCMGIzSWdkWE5sWkNCbWIzSWdZWEJ3Wlc1a0lIQnZjMmwwYVc5dWFXNW5YRzRnS2lCQWMzVnRiV0Z5ZVNCRFlYQjBkWEpsY3lCMGFHVWdZbTlrZVNCamIyNTBaVzUwSUdWdWRISnBaWE1nZDJodmMyVWdZR1Z1WkVsdVpHVjRZQ0JzYjJOaGRHVnpJSFJvWlNCbGJtUmNiaUFxSUc5bUlIUm9aU0JrYjJOMWJXVnVkQzVjYmlBcUwxeHVhVzUwWlhKbVlXTmxJRWR2YjJkc1pVUnZZMEp2WkhrZ2UxeHVJQ0JpYjJSNVB6b2dlMXh1SUNBZ0lHTnZiblJsYm5RL09pQkJjbkpoZVR4N0lHVnVaRWx1WkdWNFB6b2diblZ0WW1WeUlIMCtPMXh1SUNCOU8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkhiMjluYkdVZ1JHOWpjeUJCVUVrZ2FXNTBaV2R5WVhScGIyNGdjMlZ5ZG1salpWeHVJQ29nUUhOMWJXMWhjbmtnUVc0Z2RXNWtaV052Y21GMFpXUWdTRlJVVUNCelpYSjJhV05sSUdadmNpQnlaV0ZrYVc1bklHRnVaQ0JqY21WaGRHbHVaeUJrYjJOMWJXVnVkSE1zWEc0Z0tpQnlkVzV1YVc1bklISmhkeUJpWVhSamFDQjFjR1JoZEdWekxDQmhjSEJsYm1ScGJtY2dkR1Y0ZEN3Z1lXNWtJSEpsY0d4aFkybHVaeUJoYkd3Z2JXRjBZMmhwYm1jZ2RHVjRkQzVjYmlBcUlFVjJaWEo1SUc5d1pYSmhkR2x2YmlCdVpXVmtjeUJsYVhSb1pYSWdZVzRnVDBGMWRHZ2dkRzlyWlc0Z2IzSWdZVzRnUVZCSklHdGxlVHNnYldsemMybHVaMXh1SUNvZ1kzSmxaR1Z1ZEdsaGJITWdiM0lnYVdSbGJuUnBabWxsY25NZ2NtRnBjMlVnWUVsdWRHVnlibUZzUlhKeWIzSmdMQ0JoYm1RZ2RISmhibk53YjNKMElHWmhhV3gxY21WeklHRnlaVnh1SUNvZ2JXRndjR1ZrSUhSdklHUmxZMkZtSUdWeWNtOXljeUIyYVdFZ2UwQnNhVzVySUdoMGRIQkZjbkp2Y24wdVhHNGdLaUJBWTJ4aGMzTWdSMjl2WjJ4bFJHOWpjMU5sY25acFkyVmNiaUFxSUVCbGVIUmxibVJ6SUVoMGRIQkJjR2xUWlhKMmFXTmxYRzRnS2lCQVkyRjBaV2R2Y25rZ1NVOWNiaUFxSUVCbGVHRnRjR3hsWEc0Z0tpQmdZR0IwYzF4dUlDb2dhVzF3YjNKMElIc2dSMjl2WjJ4bFJHOWpjMU5sY25acFkyVWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMmx1ZEdWbmNtRjBhVzl1Y3k5cGJ5OW5iMjluYkdVdFpHOWpjMXdpTzF4dUlDcGNiaUFxSUdOdmJuTjBJR1J2WTNNZ1BTQnVaWGNnUjI5dloyeGxSRzlqYzFObGNuWnBZMlVvS1R0Y2JpQXFJR0YzWVdsMElHUnZZM011YVc1cGRHbGhiR2w2WlNoN1hHNGdLaUFnSUhSdmEyVnVPaUJ3Y205alpYTnpMbVZ1ZGk1SFVrRlFTRjlEVWtWRVJVNVVTVUZNWDBkUFQwZE1SVjlFVDBOVFgxUlBTMFZPTEZ4dUlDb2dmU2s3WEc0Z0tpQmhkMkZwZENCa2IyTnpMbUZ3Y0dWdVpGUmxlSFFvY0hKdlkyVnpjeTVsYm5ZdVIwOVBSMHhGWDBSUFExOUpSQ0EvUHlCY0lsd2lMQ0JjSWs1bGR5QndZWEpoWjNKaGNHaGNJaWs3WEc0Z0tpQmdZR0JjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ1lYVjBiMjUxYldKbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRZV3hzWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1UyVnlkbWxqWlNCaGN5QkhiMjluYkdWRWIyTnpVMlZ5ZG1salpWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkJVRWtnWVhNZ1IyOXZaMnhsSUVSdlkzTWdRVkJKWEc0Z0tpQWdJRU5oYkd4bGNpMCtQbE5sY25acFkyVTZJR0Z3Y0dWdVpGUmxlSFFvWkc5amRXMWxiblJKWkN3Z2RHVjRkQ2xjYmlBcUlDQWdZV04wYVhaaGRHVWdVMlZ5ZG1salpWeHVJQ29nSUNCVFpYSjJhV05sTFQ0K1UyVnlkbWxqWlRvZ2NtVnhkV2x5WlVGMWRHZ29LVnh1SUNvZ0lDQlRaWEoyYVdObExUNCtRVkJKT2lCSFJWUWdMMlJ2WTNWdFpXNTBjeTk3YVdSOVhHNGdLaUFnSUdGamRHbDJZWFJsSUVGUVNWeHVJQ29nSUNCQlVFa3RMVDQrVTJWeWRtbGpaVG9nWW05a2VTQmpiMjUwWlc1MElHVnVaRWx1WkdWNFhHNGdLaUFnSUdSbFlXTjBhWFpoZEdVZ1FWQkpYRzRnS2lBZ0lGTmxjblpwWTJVdFBqNUJVRWs2SUZCUFUxUWdMMlJ2WTNWdFpXNTBjeTk3YVdSOU9tSmhkR05vVlhCa1lYUmxYRzRnS2lBZ0lHRmpkR2wyWVhSbElFRlFTVnh1SUNvZ0lDQkJVRWt0TFQ0K1UyVnlkbWxqWlRvZ1ltRjBZMmdnZFhCa1lYUmxJSEpsYzNWc2RGeHVJQ29nSUNCa1pXRmpkR2wyWVhSbElFRlFTVnh1SUNvZ0lDQlRaWEoyYVdObExTMCtQa05oYkd4bGNqb2dZbUYwWTJnZ2RYQmtZWFJsSUhKbGMzVnNkRnh1SUNvZ0lDQmtaV0ZqZEdsMllYUmxJRk5sY25acFkyVmNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2YVc1MFpXZHlZWFJwYjI1ekwybHZMMmR2YjJkc1pTMWtiMk56TDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVkdmIyZHNaVVJ2WTNOVFpYSjJhV05sSUdWNGRHVnVaSE1nU0hSMGNFRndhVk5sY25acFkyVThSMjl2WjJ4bFJHOWpjMU5sY25acFkyVkRiMjVtYVdjK0lIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlVhR1VnY0hKdmRtbGtaWElnYm1GdFpTQjFjMlZrSUdsdUlHVnljbTl5SUcxbGMzTmhaMlZ6WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ2NtVmhaRzl1YkhrZ2MyVnlkbWxqWlU1aGJXVWdQU0JjSWtkdmIyZHNaU0JFYjJOelhDSTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJVYUdVZ1IyOXZaMnhsSUVSdlkzTWdRVkJKSUdKaGMyVWdWVkpNWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRlZ6WldRZ2QyaGxiaUIwYUdVZ2NtVnpiMngyWldRZ1kyOXVabWxuSUdOaGNuSnBaWE1nYm04Z1lHSmhjMlZWY214Z0xseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCZ1hDSm9kSFJ3Y3pvdkwyUnZZM011WjI5dloyeGxZWEJwY3k1amIyMHZkakZjSW1BdVhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdaR1ZtWVhWc2RFSmhjMlZWY213b0tUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWENKb2RIUndjem92TDJSdlkzTXVaMjl2WjJ4bFlYQnBjeTVqYjIwdmRqRmNJanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRblZwYkdSeklIUm9aU0JIYjI5bmJHVWdSRzlqY3lCaGRYUm9aVzUwYVdOaGRHbHZiaUJvWldGa1pYSnpYRzRnSUNBcUlFQnpkVzF0WVhKNUlGQnlaV1psY25NZ1lFRjFkR2h2Y21sNllYUnBiMjQ2SUVKbFlYSmxjaUE4ZEc5clpXNCtZQ3dnWm1Gc2JITWdZbUZqYXlCMGIxeHVJQ0FnS2lCZ1dDMUhiMjluTFVGd2FTMUxaWGs2SUR4aGNHbExaWGsrWUN3Z1lXNWtJSEpsZEhWeWJuTWdibThnYUdWaFpHVnljeUIzYUdWdUlHNWxhWFJvWlhJZ2FYTWdjMlYwTGx4dUlDQWdLaUJBY0dGeVlXMGdlMGR2YjJkc1pVUnZZM05UWlhKMmFXTmxRMjl1Wm1sbmZTQmpiMjVtYVdjZ0xTQlVhR1VnY21WemIyeDJaV1FnYzJWeWRtbGpaU0JqYjI1bWFXZDFjbUYwYVc5dUxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QbjBnVkdobElHRjFkR2hsYm5ScFkyRjBhVzl1SUdobFlXUmxjbk11WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1lYVjBhRWhsWVdSbGNuTW9YRzRnSUNBZ1kyOXVabWxuT2lCSGIyOW5iR1ZFYjJOelUyVnlkbWxqWlVOdmJtWnBaMXh1SUNBcE9pQlNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrSUh0Y2JpQWdJQ0JwWmlBb1kyOXVabWxuTG5SdmEyVnVLU0J5WlhSMWNtNGdleUJCZFhSb2IzSnBlbUYwYVc5dU9pQmdRbVZoY21WeUlDUjdZMjl1Wm1sbkxuUnZhMlZ1ZldBZ2ZUdGNiaUFnSUNCcFppQW9ZMjl1Wm1sbkxtRndhVXRsZVNrZ2NtVjBkWEp1SUhzZ1hDSllMVWR2YjJjdFFYQnBMVXRsZVZ3aU9pQmpiMjVtYVdjdVlYQnBTMlY1SUgwN1hHNGdJQ0FnY21WMGRYSnVJSHQ5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTWldGa2N5QjBhR1VnUjI5dloyeGxJRVJ2WTNNZ1kzSmxaR1Z1ZEdsaGJITWdZVzVrSUdSbFptRjFiSFJ6SUdaeWIyMGdkR2hsSUdWdWRtbHliMjV0Wlc1MFhHNGdJQ0FxSUVCemRXMXRZWEo1SUZKbFlXUnpJSFJvWlNCZ2FXOHVaMjl2WjJ4bFJHOWpjMkFnYzJ4cFkyVWdZVzVrSUhKbGRIVnlibk1nWVNCd1lYSjBhV0ZzSUdOdmJtWnBaeUIzYUdWdVhHNGdJQ0FxSUdFZ2RHOXJaVzRnYjNJZ1FWQkpJR3RsZVNCcGN5QmpiMjVtYVdkMWNtVmtMQ0JnZFc1a1pXWnBibVZrWUNCdmRHaGxjbmRwYzJVdUlGWmhiSFZsY3lCd1lYTnpYRzRnSUNBcUlIUm9jbTkxWjJnZ1lHVnVkbE4wY21sdVoyQXZZR1Z1ZGs1MWJXSmxjbUFnZEc4Z2NtVnFaV04wSUhWdWMyVjBMV3hsWVdZZ2NISnZlR2xsY3k1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCaGNuUnBZV3c4UjI5dloyeGxSRzlqYzFObGNuWnBZMlZEYjI1bWFXYytJSHdnZFc1a1pXWnBibVZrZlNCQklIQmhjblJwWVd3Z1kyOXVabWxuTENCdmNpQmdkVzVrWldacGJtVmtZQ0IzYUdWdUlHNXZJR055WldSbGJuUnBZV3dnYVhNZ1kyOXVabWxuZFhKbFpDNWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JqYjI1bWFXZEdjbTl0Ulc1MmFYSnZibTFsYm5Rb0tUcGNiaUFnSUNCOElGQmhjblJwWVd3OFIyOXZaMnhsUkc5amMxTmxjblpwWTJWRGIyNW1hV2MrWEc0Z0lDQWdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJR052Ym5OMElHVnVkaUE5SUVsdlJXNTJhWEp2Ym0xbGJuUXVhVzh1WjI5dloyeGxSRzlqY3p0Y2JpQWdJQ0JqYjI1emRDQjBiMnRsYmlBOUlHVnVkbE4wY21sdVp5aGxiblkvTG5SdmEyVnVLVHRjYmlBZ0lDQmpiMjV6ZENCaGNHbExaWGtnUFNCbGJuWlRkSEpwYm1jb1pXNTJQeTVoY0dsTFpYa3BPMXh1SUNBZ0lHbG1JQ2doZEc5clpXNGdKaVlnSVdGd2FVdGxlU2tnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ2RHOXJaVzRzWEc0Z0lDQWdJQ0JoY0dsTFpYa3NYRzRnSUNBZ0lDQmlZWE5sVlhKc09pQmxiblpUZEhKcGJtY29aVzUyTG1KaGMyVlZjbXdwTEZ4dUlDQWdJQ0FnZEdsdFpXOTFkRG9nWlc1MlRuVnRZbVZ5S0dWdWRpNTBhVzFsYjNWMEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCQmMzTmxjblJ6SUhSb1lYUWdZVzRnVDBGMWRHZ2dkRzlyWlc0Z2IzSWdRVkJKSUd0bGVTQnBjeUJqYjI1bWFXZDFjbVZrWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRU5oYkd4bFpDQmllU0JsZG1WeWVTQnZjR1Z5WVhScGIyNGdZbVZtYjNKbElHbDBJSFJ2ZFdOb1pYTWdkR2hsSUc1bGRIZHZjbXN1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHQyYjJsa2ZWeHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHNWxhWFJvWlhJZ1lTQjBiMnRsYmlCdWIzSWdZVzRnUVZCSklHdGxlU0JwY3lCamIyNW1hV2QxY21Wa0xseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJSEpsY1hWcGNtVkJkWFJvS0NrNklIWnZhV1FnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVqYjI1bWFXY3VkRzlyWlc0Z0ppWWdJWFJvYVhNdVkyOXVabWxuTG1Gd2FVdGxlU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpUjI5dloyeGxJRVJ2WTNNZ2NtVnhkV2x5WlhNZ1lXNGdUMEYxZEdnZ2RHOXJaVzRnYjNJZ1lXNGdRVkJKSUd0bGVWd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JtVjBZMmhsY3lCaElFZHZiMmRzWlNCRWIyTnpJR1J2WTNWdFpXNTBYRzRnSUNBcUlFQnpkVzF0WVhKNUlHQkhSVlJnY3lCZ0wyUnZZM1Z0Wlc1MGN5ODhhV1ErWUNCaGJtUWdjbVYwZFhKdWN5QjBhR1VnWm5Wc2JDQmtiMk4xYldWdWRDQndZWGxzYjJGa0xseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWkc5amRXMWxiblJKWkNBdElGUm9aU0JrYjJOMWJXVnVkQ0JKUkM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZFc1cmJtOTNiajU5SUZSb1pTQmtiMk4xYldWdWRDQndZWGxzYjJGa0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHNXZJR055WldSbGJuUnBZV3dnYVhNZ1kyOXVabWxuZFhKbFpDQnZjaUIwYUdVZ1pHOWpkVzFsYm5RZ1NVUWdhWE1nWlcxd2RIa3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdkR2hsSUdSdlkzVnRaVzUwSUdSdlpYTWdibTkwSUdWNGFYTjBJQ2hJVkZSUUlEUXdOQ2t1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMEpoWkZKbGNYVmxjM1JGY25KdmNuMGdWMmhsYmlCSGIyOW5iR1VnY21WcVpXTjBjeUIwYUdVZ2NtVnhkV1Z6ZEM1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdkbGRFUnZZM1Z0Wlc1MEtHUnZZM1Z0Wlc1MFNXUTZJSE4wY21sdVp5azZJRkJ5YjIxcGMyVThkVzVyYm05M2JqNGdlMXh1SUNBZ0lIUm9hWE11Y21WeGRXbHlaVUYxZEdnb0tUdGNiaUFnSUNCcFppQW9JV1J2WTNWdFpXNTBTV1FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRndpUjI5dloyeGxJRVJ2WTNNZ2NtVnhkV2x5WlhNZ1lTQmtiMk4xYldWdWRDQnBaRndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1amJHbGxiblF1WjJWMFBFZHZiMmRzWlVSdlkwSnZaSGsrS0Z4dUlDQWdJQ0FnSUNCZ0wyUnZZM1Z0Wlc1MGN5OGtlMlZ1WTI5a1pWVlNTVU52YlhCdmJtVnVkQ2hrYjJOMWJXVnVkRWxrS1gxZ1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzQnZibk5sTG1SaGRHRTdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR2gwZEhCRmNuSnZjaWhjSWtkdmIyZHNaU0JFYjJOelhDSXNJRndpWjJWMElHUnZZM1Z0Wlc1MFhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOeVpXRjBaWE1nWVNCSGIyOW5iR1VnUkc5amN5QmtiMk4xYldWdWRGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1VFOVRWR0J6SUdFZ2JtVjNJR1J2WTNWdFpXNTBJSGRwZEdnZ2RHaGxJR2RwZG1WdUlIUnBkR3hsSUdGdVpDQnlaWFIxY201eklHbDBjMXh1SUNBZ0tpQndZWGxzYjJGa0lDaHBibU5zZFdScGJtY2dZR1J2WTNWdFpXNTBTV1JnS1M1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJwZEd4bElDMGdWR2hsSUc1bGR5QmtiMk4xYldWdWRDQjBhWFJzWlM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4ZFc1cmJtOTNiajU5SUZSb1pTQmpjbVZoZEdWa0lHUnZZM1Z0Wlc1MElIQmhlV3h2WVdRdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2JtOGdZM0psWkdWdWRHbGhiQ0JwY3lCamIyNW1hV2QxY21Wa0lHOXlJSFJvWlNCMGFYUnNaU0JwY3lCbGJYQjBlUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRbUZrVW1WeGRXVnpkRVZ5Y205eWZTQlhhR1Z1SUVkdmIyZHNaU0J5WldwbFkzUnpJSFJvWlNCeVpYRjFaWE4wTGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWTNKbFlYUmxSRzlqZFcxbGJuUW9kR2wwYkdVNklITjBjbWx1WnlrNklGQnliMjFwYzJVOGRXNXJibTkzYmo0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVRjFkR2dvS1R0Y2JpQWdJQ0JwWmlBb0lYUnBkR3hsS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjSWtkdmIyZHNaU0JFYjJOeklISmxjWFZwY21WeklHRWdaRzlqZFcxbGJuUWdkR2wwYkdWY0lpazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExuQnZjM1FvWENJdlpHOWpkVzFsYm5SelhDSXNJSHNnZEdsMGJHVWdmU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6Y0c5dWMyVXVaR0YwWVR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lSMjl2WjJ4bElFUnZZM05jSWl3Z1hDSmpjbVZoZEdVZ1pHOWpkVzFsYm5SY0lpd2daWEp5YjNJcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUVhCd2JHbGxjeUJoSUhKaGR5QkhiMjluYkdVZ1JHOWpjeUJpWVhSamFDQjFjR1JoZEdWY2JpQWdJQ29nUUhOMWJXMWhjbmtnWUZCUFUxUmdjeUIwYUdVZ1lISmxjWFZsYzNSellDQmhjbkpoZVNCMGJ5QmdMMlJ2WTNWdFpXNTBjeTg4YVdRK09tSmhkR05vVlhCa1lYUmxZRnh1SUNBZ0tpQjFibU5vWVc1blpXUXNJR0ZzYkc5M2FXNW5JR0Z1ZVNCRWIyTnpJRUZRU1NCeVpYRjFaWE4wSUhSNWNHVXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCa2IyTjFiV1Z1ZEVsa0lDMGdWR2hsSUdSdlkzVnRaVzUwSUVsRUxseHVJQ0FnS2lCQWNHRnlZVzBnZTNWdWEyNXZkMjViWFgwZ2NtVnhkV1Z6ZEhNZ0xTQlVhR1VnUkc5amN5QkJVRWtnY21WeGRXVnpkQ0J2WW1wbFkzUnpMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDFibXR1YjNkdVBuMGdWR2hsSUdKaGRHTm9JSFZ3WkdGMFpTQnlaWE53YjI1elpTQndZWGxzYjJGa0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHNXZJR055WldSbGJuUnBZV3dnYVhNZ1kyOXVabWxuZFhKbFpDd2diM0lnZEdobElHUnZZM1Z0Wlc1MElFbEVJRzl5SUhKbGNYVmxjM1J6SUdGeVpTQnRhWE56YVc1bkxseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlIUm9aU0JrYjJOMWJXVnVkQ0JrYjJWeklHNXZkQ0JsZUdsemRDQW9TRlJVVUNBME1EUXBMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdENZV1JTWlhGMVpYTjBSWEp5YjNKOUlGZG9aVzRnUjI5dloyeGxJSEpsYW1WamRITWdZU0J5WlhGMVpYTjBMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdZbUYwWTJoVmNHUmhkR1VvWEc0Z0lDQWdaRzlqZFcxbGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lISmxjWFZsYzNSek9pQjFibXR1YjNkdVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4MWJtdHViM2R1UGlCN1hHNGdJQ0FnZEdocGN5NXlaWEYxYVhKbFFYVjBhQ2dwTzF4dUlDQWdJR2xtSUNnaFpHOWpkVzFsYm5SSlpDQjhmQ0FoUVhKeVlYa3VhWE5CY25KaGVTaHlaWEYxWlhOMGN5a2dmSHdnSVhKbGNYVmxjM1J6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpUjI5dloyeGxJRVJ2WTNNZ1ltRjBZMmhWY0dSaGRHVWdjbVZ4ZFdseVpYTWdZU0JrYjJOMWJXVnVkQ0JwWkNCaGJtUWdjbVZ4ZFdWemRITmNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjRzl6ZENoY2JpQWdJQ0FnSUNBZ1lDOWtiMk4xYldWdWRITXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvWkc5amRXMWxiblJKWkNsOU9tSmhkR05vVlhCa1lYUmxZQ3hjYmlBZ0lDQWdJQ0FnZXlCeVpYRjFaWE4wY3lCOVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMzQnZibk5sTG1SaGRHRTdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR2gwZEhCRmNuSnZjaWhjSWtkdmIyZHNaU0JFYjJOelhDSXNJRndpWW1GMFkyZ2dkWEJrWVhSbFhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVGd2NHVnVaSE1nZEdWNGRDQjBieUIwYUdVZ1pXNWtJRzltSUdFZ1IyOXZaMnhsSUVSdlkzTWdaRzlqZFcxbGJuUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVmhaSE1nZEdobElHUnZZM1Z0Wlc1MElIUnZJR1pwYm1RZ2RHaGxJR1pwYm1Gc0lHQmxibVJKYm1SbGVHQXNJSFJvWlc0Z2FXNXpaWEowY3lCMGFHVmNiaUFnSUNvZ2RHVjRkQ0JxZFhOMElHSmxabTl5WlNCcGRDQjBhSEp2ZFdkb0lHRWdZR0poZEdOb1ZYQmtZWFJsWUM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR1J2WTNWdFpXNTBTV1FnTFNCVWFHVWdaRzlqZFcxbGJuUWdTVVF1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBaWGgwSUMwZ1ZHaGxJSFJsZUhRZ2RHOGdZWEJ3Wlc1a0xseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4MWJtdHViM2R1UG4wZ1ZHaGxJR0poZEdOb0lIVndaR0YwWlNCeVpYTndiMjV6WlNCd1lYbHNiMkZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUc1dklHTnlaV1JsYm5ScFlXd2dhWE1nWTI5dVptbG5kWEpsWkN3Z2IzSWdkR2hsSUdSdlkzVnRaVzUwSUVsRUlHOXlJSFJsZUhRZ2FYTWdaVzF3ZEhrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTA1dmRFWnZkVzVrUlhKeWIzSjlJRmRvWlc0Z2RHaGxJR1J2WTNWdFpXNTBJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJIYjI5bmJHVWdjbVZxWldOMGN5QjBhR1VnZFhCa1lYUmxMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdZWEJ3Wlc1a1ZHVjRkQ2hrYjJOMWJXVnVkRWxrT2lCemRISnBibWNzSUhSbGVIUTZJSE4wY21sdVp5azZJRkJ5YjIxcGMyVThkVzVyYm05M2JqNGdlMXh1SUNBZ0lIUm9hWE11Y21WeGRXbHlaVUYxZEdnb0tUdGNiaUFnSUNCcFppQW9JV1J2WTNWdFpXNTBTV1FnZkh3Z0lYUmxlSFFwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWtkdmIyZHNaU0JFYjJOeklHRndjR1Z1WkZSbGVIUWdjbVZ4ZFdseVpYTWdZU0JrYjJOMWJXVnVkQ0JwWkNCaGJtUWdkR1Y0ZEZ3aVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWkc5amRXMWxiblFnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1blpYUThSMjl2WjJ4bFJHOWpRbTlrZVQ0b1hHNGdJQ0FnSUNBZ0lHQXZaRzlqZFcxbGJuUnpMeVI3Wlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0dSdlkzVnRaVzUwU1dRcGZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNTBaVzUwSUQwZ1pHOWpkVzFsYm5RdVpHRjBZUzVpYjJSNVB5NWpiMjUwWlc1MElEOC9JRnRkTzF4dUlDQWdJQ0FnWTI5dWMzUWdiR0Z6ZENBOUlHTnZiblJsYm5SYlkyOXVkR1Z1ZEM1c1pXNW5kR2dnTFNBeFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdWdVpFbHVaR1Y0SUQwZ2JHRnpkRDh1Wlc1a1NXNWtaWGdnUHo4Z01UdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdWNHOXpkQ2hjYmlBZ0lDQWdJQ0FnWUM5a2IyTjFiV1Z1ZEhNdkpIdGxibU52WkdWVlVrbERiMjF3YjI1bGJuUW9aRzlqZFcxbGJuUkpaQ2w5T21KaGRHTm9WWEJrWVhSbFlDeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUhKbGNYVmxjM1J6T2lCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2x1YzJWeWRGUmxlSFE2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2IyTmhkR2x2YmpvZ2V5QnBibVJsZURvZ1RXRjBhQzV0WVhnb1pXNWtTVzVrWlhnZ0xTQXhMQ0F4S1NCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmxlSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpjRzl1YzJVdVpHRjBZVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYUhSMGNFVnljbTl5S0Z3aVIyOXZaMnhsSUVSdlkzTmNJaXdnWENKaGNIQmxibVFnZEdWNGRGd2lMQ0JsY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCU1pYQnNZV05sY3lCaGJHd2diV0YwWTJocGJtY2dkR1Y0ZENCcGJpQmhJRWR2YjJkc1pTQkViMk56SUdSdlkzVnRaVzUwWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk5sYm1SeklHRWdZSEpsY0d4aFkyVkJiR3hVWlhoMFlDQnlaWEYxWlhOMElHaHZibTl5YVc1bklIUm9aU0JnYldGMFkyaERZWE5sWUNCdmNIUnBiMjVjYmlBZ0lDb2dZVzVrSUhKbGRIVnlibk1nZEdobElHSmhkR05vSUhWd1pHRjBaU0J5WlhOd2IyNXpaU0J3WVhsc2IyRmtMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwZHZiMmRzWlVSdlkzTlNaWEJzWVdObFNXNXdkWFI5SUdsdWNIVjBJQzBnVkdobElHUnZZM1Z0Wlc1MExDQm1hVzVrTDNKbGNHeGhZMlVnZEdWNGRDd2dZVzVrSUdOaGMyVWdiM0IwYVc5dUxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4MWJtdHViM2R1UG4wZ1ZHaGxJR0poZEdOb0lIVndaR0YwWlNCeVpYTndiMjV6WlNCd1lYbHNiMkZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUc1dklHTnlaV1JsYm5ScFlXd2dhWE1nWTI5dVptbG5kWEpsWkN3Z2IzSWdkR2hsSUdSdlkzVnRaVzUwSUVsRUlHOXlJR1pwYm1RZ2RHVjRkQ0JwY3lCbGJYQjBlUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdUbTkwUm05MWJtUkZjbkp2Y24wZ1YyaGxiaUIwYUdVZ1pHOWpkVzFsYm5RZ1pHOWxjeUJ1YjNRZ1pYaHBjM1FnS0VoVVZGQWdOREEwS1M1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UW1Ga1VtVnhkV1Z6ZEVWeWNtOXlmU0JYYUdWdUlFZHZiMmRzWlNCeVpXcGxZM1J6SUhSb1pTQjFjR1JoZEdVdVhHNGdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQXFJR0JnWUhSelhHNGdJQ0FxSUdGM1lXbDBJR1J2WTNNdWNtVndiR0ZqWlVGc2JGUmxlSFFvZTF4dUlDQWdLaUFnSUdSdlkzVnRaVzUwU1dRNklGd2lZV0pqTVRJelhDSXNYRzRnSUNBcUlDQWdabWx1WkRvZ1hDSlVUMFJQWENJc1hHNGdJQ0FxSUNBZ2NtVndiR0ZqWlRvZ1hDSkVUMDVGWENJc1hHNGdJQ0FxSUNBZ2JXRjBZMmhEWVhObE9pQjBjblZsTEZ4dUlDQWdLaUI5S1R0Y2JpQWdJQ29nWUdCZ1hHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCeVpYQnNZV05sUVd4c1ZHVjRkQ2hwYm5CMWREb2dSMjl2WjJ4bFJHOWpjMUpsY0d4aFkyVkpibkIxZENrNklGQnliMjFwYzJVOGRXNXJibTkzYmo0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVRjFkR2dvS1R0Y2JpQWdJQ0JwWmlBb0lXbHVjSFYwTG1SdlkzVnRaVzUwU1dRZ2ZId2dJV2x1Y0hWMExtWnBibVFwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSWtkdmIyZHNaU0JFYjJOeklISmxjR3hoWTJWQmJHeFVaWGgwSUhKbGNYVnBjbVZ6SUdFZ1pHOWpkVzFsYm5RZ2FXUWdZVzVrSUdacGJtUWdkR1Y0ZEZ3aVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1d2IzTjBLRnh1SUNBZ0lDQWdJQ0JnTDJSdlkzVnRaVzUwY3k4a2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaHBibkIxZEM1a2IyTjFiV1Z1ZEVsa0tYMDZZbUYwWTJoVmNHUmhkR1ZnTEZ4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ4ZFdWemRITTZJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVndiR0ZqWlVGc2JGUmxlSFE2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNTBZV2x1YzFSbGVIUTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSbGVIUTZJR2x1Y0hWMExtWnBibVFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCdFlYUmphRU5oYzJVNklHbHVjSFYwTG0xaGRHTm9RMkZ6WlNBL1B5Qm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjR3hoWTJWVVpYaDBPaUJwYm5CMWRDNXlaWEJzWVdObElEOC9JRndpWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lGMHNYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6Y0c5dWMyVXVaR0YwWVR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lSMjl2WjJ4bElFUnZZM05jSWl3Z1hDSnlaWEJzWVdObElHRnNiQ0IwWlhoMFhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSmRmUT09Il19
274
+ //# sourceMappingURL=GoogleDocsService.js.map
275
+ //# sourceMappingURL=GoogleDocsService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/google-docs/GoogleDocsService.cjs","sourceRoot":"","sources":["io/google-docs/GoogleDocsService.js"],"names":[],"mappings":"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"}
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./GoogleDocsService.cjs"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vZ29vZ2xlLWRvY3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vR29vZ2xlRG9jc1NlcnZpY2VcIjtcbiJdfQ==
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQXVDO0FBQ3ZDLDhUQUE4VCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0dvb2dsZURvY3NTZXJ2aWNlLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZhVzh2WjI5dloyeGxMV1J2WTNNdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNkVU5CUVc5RElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2laWGh3YjNKMElDb2dabkp2YlNCY0lpNHZSMjl2WjJ4bFJHOWpjMU5sY25acFkyVmNJanRjYmlKZGZRPT0iXX0=
18
+ //# sourceMappingURL=index.js.map
19
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/google-docs/index.cjs","sourceRoot":"","sources":["io/google-docs/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,iCAAiC"}
@@ -284,5 +284,5 @@ class GoogleSheetsService extends index_js_1.HttpApiService {
284
284
  }
285
285
  }
286
286
  exports.GoogleSheetsService = GoogleSheetsService;
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR29vZ2xlU2hlZXRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pby9nb29nbGUtc2hlZXRzL0dvb2dsZVNoZWV0c1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLDRCQUF1QjtBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDckUsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEdBQ1YscUNBQTBCO0FBd0QzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBeUM7SUFBbEY7O1FBQ0U7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxlQUFlLENBQUM7SUFtUm5ELENBQUM7SUFqUkM7Ozs7T0FJRztJQUNPLGNBQWM7UUFDdEIsT0FBTywrQ0FBK0MsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLFdBQVcsQ0FDbkIsTUFBaUM7UUFFakMsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNyRSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08scUJBQXFCO1FBRzdCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsTUFB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QUFTLENBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2lvL2dvb2dsZS1zaGVldHMvc2VydmljZVxuICogQHN1bW1hcnkgR29vZ2xlIFNoZWV0cyBBUEkgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBzcHJlYWRzaGVldCB2YWx1ZXMuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgR29vZ2xlIFNoZWV0cyB2NCB2YWx1ZXMgQVBJIChgZ2V0YCwgYHVwZGF0ZWAsXG4gKiBgYXBwZW5kYCwgYGNsZWFyYCkgYW5kIHNwcmVhZHNoZWV0IGNyZWF0aW9uIGFzIGFuIHVuZGVjb3JhdGVkXG4gKiBjbGllbnQtYmFzZWQgc2VydmljZSBidWlsdCBvblxuICoge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQXV0aGVudGljYXRpb24gYWNjZXB0cyBlaXRoZXIgYW4gT0F1dGggdG9rZW5cbiAqIChiZWFyZXIpIG9yIGEgcGxhaW4gQVBJIGtleSAoYFgtR29vZy1BcGktS2V5YCk7IGNvbmZpZ3VyYXRpb24gY29tZXMgZnJvbSBhblxuICogZXhwbGljaXQgYEdvb2dsZVNoZWV0c1NlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8uZ29vZ2xlU2hlZXRzYCBlbnZpcm9ubWVudFxuICogc2xpY2UsIGFuZCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IElvRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQge1xuICBIdHRwQXBpU2VydmljZSxcbiAgdHlwZSBIdHRwQXBpU2VydmljZUNvbmZpZyxcbiAgaHR0cEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2h0dHBcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIEdvb2dsZSBTaGVldHMgc2VydmljZVxuICogQHN1bW1hcnkgRXh0ZW5kcyB7QGxpbmsgSHR0cEFwaVNlcnZpY2VDb25maWd9IHdpdGggZWl0aGVyIGFuIE9BdXRoIHRva2VuXG4gKiAocHJlZmVycmVkLCBzZW50IGFzIGEgYmVhcmVyIHRva2VuKSBvciBhbiBBUEkga2V5IChzZW50IGFzXG4gKiBgWC1Hb29nLUFwaS1LZXlgOyByZWFkLW9ubHkgYWdhaW5zdCBwdWJsaWMgc3ByZWFkc2hlZXRzKS4gV2hlbiBvbWl0dGVkLCB0aGVcbiAqIGBpby5nb29nbGVTaGVldHNgIGVudmlyb25tZW50IHNsaWNlIHN1cHBsaWVzIGJvdGggKGFuZCBvcHRpb25hbFxuICogYGJhc2VVcmxgL2B0aW1lb3V0YCkuXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2lvL2dvb2dsZS1zaGVldHMvc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZVNoZWV0c1NlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR29vZ2xlIE9BdXRoIGFjY2VzcyB0b2tlblxuICAgKiBAc3VtbWFyeSBTZW50IGFzIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmA7IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgQVBJIGtleS5cbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdvb2dsZSBBUEkga2V5XG4gICAqIEBzdW1tYXJ5IFNlbnQgYXMgYFgtR29vZy1BcGktS2V5YCB3aGVuIG5vIE9BdXRoIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBhcGlLZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlc3VsdCBvZiBhIEdvb2dsZSBTaGVldHMgdmFsdWVzIHJlYWQgb3Igd3JpdGVcbiAqIEBzdW1tYXJ5IEVjaG9lcyB0aGUgdGFyZ2V0IGBzcHJlYWRzaGVldElkYCBhbmQgdGhlIEExIGByYW5nZWAgR29vZ2xlXG4gKiBhY3R1YWxseSBzZXJ2ZWQsIHRoZSBgbWFqb3JEaW1lbnNpb25gIG9mIHRoZSBwYXlsb2FkLCBhbmQgdGhlIGdyaWRcbiAqIGB2YWx1ZXNgIGFzIGFuIGFycmF5IG9mIHJvd3MgKGFycmF5cyBvZiBjZWxsIHN0cmluZ3MpLlxuICogQGNhdGVnb3J5IElPXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9nb29nbGUtc2hlZXRzL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQge1xuICBzcHJlYWRzaGVldElkOiBzdHJpbmc7XG4gIHJhbmdlOiBzdHJpbmc7XG4gIG1ham9yRGltZW5zaW9uPzogc3RyaW5nO1xuICB2YWx1ZXM6IHN0cmluZ1tdW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciB3cml0aW5nIHZhbHVlcyBpbnRvIGEgR29vZ2xlIFNoZWV0cyByYW5nZVxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgdGFyZ2V0IGBzcHJlYWRzaGVldElkYCBhbmQgQTEgYHJhbmdlYCwgdGhlIHJvd1xuICogYHZhbHVlc2AgdG8gd3JpdGUsIGFuZCB0aGUgYHZhbHVlSW5wdXRPcHRpb25gIGNvbnRyb2xsaW5nIGhvdyBHb29nbGVcbiAqIGludGVycHJldHMgdGhlIGNlbGxzIChgXCJSQVdcImAgc3RvcmVzIHRleHQgYXMtaXMsIGBcIlVTRVJfRU5URVJFRFwiYCBhcHBsaWVzXG4gKiBzcHJlYWRzaGVldCBwYXJzaW5nIGFuZCBmb3JtdWxhczsgZGVmYXVsdHMgdG8gYFwiVVNFUl9FTlRFUkVEXCJgKS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLXNoZWV0cy9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlU2hlZXRzV3JpdGVJbnB1dCB7XG4gIHNwcmVhZHNoZWV0SWQ6IHN0cmluZztcbiAgcmFuZ2U6IHN0cmluZztcbiAgdmFsdWVzOiB1bmtub3duW11bXTtcbiAgdmFsdWVJbnB1dE9wdGlvbj86IFwiUkFXXCIgfCBcIlVTRVJfRU5URVJFRFwiO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHb29nbGUgU2hlZXRzIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIHJlYWRpbmcsXG4gKiB1cGRhdGluZywgYXBwZW5kaW5nLCBhbmQgY2xlYXJpbmcgdmFsdWVzIGluIEExIHJhbmdlcyBvZiBhIHNwcmVhZHNoZWV0LCBhbmRcbiAqIGZvciBjcmVhdGluZyBuZXcgc3ByZWFkc2hlZXRzLiBFdmVyeSBvcGVyYXRpb24gcmVxdWlyZXMgZWl0aGVyIGFuIE9BdXRoXG4gKiB0b2tlbiBvciBhbiBBUEkga2V5IChgcmVxdWlyZUF1dGgoKWApOyByYW5nZXMgYW5kIHNwcmVhZHNoZWV0IElEcyBhcmVcbiAqIFVSTC1lbmNvZGVkLCBhbmQgdHJhbnNwb3J0IGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYVxuICoge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgR29vZ2xlU2hlZXRzU2VydmljZVxuICogQGNhdGVnb3J5IElPXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IEdvb2dsZVNoZWV0c1NlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9pby9nb29nbGUtc2hlZXRzXCI7XG4gKlxuICogY29uc3Qgc2hlZXRzID0gbmV3IEdvb2dsZVNoZWV0c1NlcnZpY2UoKTtcbiAqIGF3YWl0IHNoZWV0cy5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfR09PR0xFX1NIRUVUU19UT0tFTixcbiAqIH0pO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHNoZWV0cy5jcmVhdGVTcHJlYWRzaGVldChcIk1ldHJpY3NcIik7XG4gKiBhd2FpdCBzaGVldHMudXBkYXRlVmFsdWVzKHtcbiAqICAgc3ByZWFkc2hlZXRJZDogY3JlYXRlZC5zcHJlYWRzaGVldElkLFxuICogICByYW5nZTogXCJTaGVldDEhQTE6QjJcIixcbiAqICAgdmFsdWVzOiBbXG4gKiAgICAgW1wiZGF0ZVwiLCBcImNvdW50XCJdLFxuICogICAgIFtcIjIwMjYtMDEtMDFcIiwgXCI0MlwiXSxcbiAqICAgXSxcbiAqIH0pO1xuICogYGBgXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9nb29nbGUtc2hlZXRzL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdvb2dsZVNoZWV0c1NlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZTxHb29nbGVTaGVldHNTZXJ2aWNlQ29uZmlnPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2VOYW1lID0gXCJHb29nbGUgU2hlZXRzXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgR29vZ2xlIFNoZWV0cyB2NCB2YWx1ZXMgQVBJIGJhc2UgVVJMXG4gICAqIEBzdW1tYXJ5IFVzZWQgd2hlbiB0aGUgcmVzb2x2ZWQgY29uZmlnIGNhcnJpZXMgbm8gYGJhc2VVcmxgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL3NoZWV0cy5nb29nbGVhcGlzLmNvbS92NC9zcHJlYWRzaGVldHNcImAuXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodHRwczovL3NoZWV0cy5nb29nbGVhcGlzLmNvbS92NC9zcHJlYWRzaGVldHNcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHb29nbGUgU2hlZXRzIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gIGhlYWRlciB3aGVuIHRoZVxuICAgKiBjb25maWcgY2FycmllcyBhbiBPQXV0aCB0b2tlbiwgb3RoZXJ3aXNlIHRoZSBgWC1Hb29nLUFwaS1LZXlgIGhlYWRlciB3aGVuXG4gICAqIGFuIEFQSSBrZXkgaXMgY29uZmlndXJlZCwgYW5kIG5vIGhlYWRlcnMgb3RoZXJ3aXNlLlxuICAgKiBAcGFyYW0ge0dvb2dsZVNoZWV0c1NlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBUaGUgYXV0aG9yaXphdGlvbiBoZWFkZXJzIChlbXB0eSB3aXRob3V0IGEgdG9rZW4gb3IgQVBJIGtleSkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoXG4gICAgY29uZmlnOiBHb29nbGVTaGVldHNTZXJ2aWNlQ29uZmlnXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGlmIChjb25maWcudG9rZW4pIHJldHVybiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9O1xuICAgIGlmIChjb25maWcuYXBpS2V5KSByZXR1cm4geyBcIlgtR29vZy1BcGktS2V5XCI6IGNvbmZpZy5hcGlLZXkgfTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBHb29nbGUgU2hlZXRzIGNyZWRlbnRpYWxzIGFuZCBkZWZhdWx0cyBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGlvLmdvb2dsZVNoZWV0c2AgZW52aXJvbm1lbnQgc2xpY2UgYW5kIHJldHVybnMgYVxuICAgKiBwYXJ0aWFsIGNvbmZpZyB3aGVuIGEgdG9rZW4gb3IgQVBJIGtleSBpcyBjb25maWd1cmVkLCBgdW5kZWZpbmVkYFxuICAgKiBvdGhlcndpc2UuIFZhbHVlcyBwYXNzIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0XG4gICAqIHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICogQHJldHVybnMge1BhcnRpYWw8R29vZ2xlU2hlZXRzU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbmVpdGhlciB0b2tlbiBub3IgQVBJIGtleSBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOlxuICAgIHwgUGFydGlhbDxHb29nbGVTaGVldHNTZXJ2aWNlQ29uZmlnPlxuICAgIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBJb0Vudmlyb25tZW50LmlvLmdvb2dsZVNoZWV0cztcbiAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICBjb25zdCBhcGlLZXkgPSBlbnZTdHJpbmcoZW52Py5hcGlLZXkpO1xuICAgIGlmICghdG9rZW4gJiYgIWFwaUtleSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW4sXG4gICAgICBhcGlLZXksXG4gICAgICBiYXNlVXJsOiBlbnZTdHJpbmcoZW52LmJhc2VVcmwpLFxuICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgdGhlIHNlcnZpY2Ugd2FzIGNvbmZpZ3VyZWQgd2l0aCBPQXV0aCBjcmVkZW50aWFsc1xuICAgKiBAc3VtbWFyeSBUaHJvd3Mgd2hlbiB0aGUgcmVzb2x2ZWQgY29uZmlnIGNhcnJpZXMgbmVpdGhlciBhIGB0b2tlbmAgbm9yIGFuXG4gICAqIGBhcGlLZXlgOyBldmVyeSBvcGVyYXRpb24gY2FsbHMgdGhpcyBiZWZvcmUgaXNzdWluZyByZXF1ZXN0cy5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbmVpdGhlciBhbiBPQXV0aCB0b2tlbiBub3IgYW4gQVBJIGtleSBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcXVpcmVBdXRoKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgIGlmICghY29uZmlnLnRva2VuICYmICFjb25maWcuYXBpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCJHb29nbGUgU2hlZXRzIHJlcXVpcmVzIGFuIE9BdXRoIHRva2VuIG9yIGFuIEFQSSBrZXlcIlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVSTC1lbmNvZGVzIGFuIEExIHJhbmdlIGZvciB0aGUgdmFsdWVzIEFQSSBwYXRoXG4gICAqIEBzdW1tYXJ5IFJhbmdlcyBzdWNoIGFzIGBTaGVldDEhQTE6QjJgIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IG11c3QgYmVcbiAgICogcGVyY2VudC1lbmNvZGVkOyBhbGwgb3BlcmF0aW9ucyByb3V0ZSB0aGUgcmFuZ2UgdGhyb3VnaCB0aGlzIGhlbHBlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhbmdlIC0gVGhlIEExIG5vdGF0aW9uIHJhbmdlIHRvIGVuY29kZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIFVSTC1lbmNvZGVkIHJhbmdlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJhbmdlUGF0aChyYW5nZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHJhbmdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdmFsdWVzIGZyb20gYW4gQTEgcmFuZ2Ugb2YgYSBzcHJlYWRzaGVldFxuICAgKiBAc3VtbWFyeSBgR0VUYHMgdGhlIHZhbHVlcyBlbmRwb2ludCBmb3IgdGhlIGdpdmVuIGBzcHJlYWRzaGVldElkYCBhbmRcbiAgICogYHJhbmdlYCBhbmQgcmV0dXJucyB0aGUgc2VydmVkIHJhbmdlLCBtYWpvciBkaW1lbnNpb24sIGFuZCB0aGUgZ3JpZFxuICAgKiB2YWx1ZXMgKHJvd3Mgb2YgY2VsbCBzdHJpbmdzKS4gUmVxdWlyZXMgY3JlZGVudGlhbHMgYW5kIGJvdGggYXJndW1lbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3ByZWFkc2hlZXRJZCAtIFRoZSBzcHJlYWRzaGVldCB0byByZWFkIGZyb20uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYW5nZSAtIFRoZSBBMSBub3RhdGlvbiByYW5nZSB0byByZWFkIChlLmcuIGBcIlNoZWV0MSFBMTpDMTBcImApLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+fSBUaGUgc2VydmVkIHJhbmdlIGFuZCBncmlkIHZhbHVlcy5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgc3ByZWFkc2hlZXQgSUQvcmFuZ2UgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHNwcmVhZHNoZWV0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzIChlLmcuIGludmFsaWQgcmFuZ2UpLlxuICAgKi9cbiAgYXN5bmMgZ2V0VmFsdWVzKFxuICAgIHNwcmVhZHNoZWV0SWQ6IHN0cmluZyxcbiAgICByYW5nZTogc3RyaW5nXG4gICk6IFByb21pc2U8R29vZ2xlU2hlZXRzVmFsdWVzUmVzdWx0PiB7XG4gICAgdGhpcy5yZXF1aXJlQXV0aCgpO1xuICAgIGlmICghc3ByZWFkc2hlZXRJZCB8fCAhcmFuZ2UpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIkdvb2dsZSBTaGVldHMgZ2V0VmFsdWVzIHJlcXVpcmVzIGEgc3ByZWFkc2hlZXQgSUQgYW5kIHJhbmdlXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldDxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+KFxuICAgICAgICBgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHNwcmVhZHNoZWV0SWQpfS92YWx1ZXMvJHt0aGlzLnJhbmdlUGF0aChyYW5nZSl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNwcmVhZHNoZWV0SWQsXG4gICAgICAgIHJhbmdlOiByZXNwb25zZS5kYXRhLnJhbmdlID8/IHJhbmdlLFxuICAgICAgICBtYWpvckRpbWVuc2lvbjogcmVzcG9uc2UuZGF0YS5tYWpvckRpbWVuc2lvbixcbiAgICAgICAgdmFsdWVzOiByZXNwb25zZS5kYXRhLnZhbHVlcyA/PyBbXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBTaGVldHNcIiwgXCJnZXQgdmFsdWVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE92ZXJ3cml0ZXMgdmFsdWVzIGluIGFuIEExIHJhbmdlIG9mIGEgc3ByZWFkc2hlZXRcbiAgICogQHN1bW1hcnkgYFBVVGBzIHRoZSByb3cgdmFsdWVzIHRvIHRoZSB2YWx1ZXMgZW5kcG9pbnQgZm9yIHRoZSBnaXZlblxuICAgKiBgc3ByZWFkc2hlZXRJZGAgYW5kIGByYW5nZWAuIENlbGxzIGFyZSBpbnRlcnByZXRlZCBhY2NvcmRpbmcgdG9cbiAgICogYHZhbHVlSW5wdXRPcHRpb25gIChgXCJVU0VSX0VOVEVSRURcImAgYnkgZGVmYXVsdCwgYFwiUkFXXCJgIHRvIHN0b3JlIHRleHRcbiAgICogdmVyYmF0aW0pLCBhbmQgdGhlIGV4aXN0aW5nIHJhbmdlIGNvbnRlbnQgaXMgcmVwbGFjZWQuXG4gICAqIEBwYXJhbSB7R29vZ2xlU2hlZXRzV3JpdGVJbnB1dH0gaW5wdXQgLSBUaGUgdGFyZ2V0IHNwcmVhZHNoZWV0LCByYW5nZSwgdmFsdWVzLCBhbmQgaW5wdXQgaW50ZXJwcmV0YXRpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdvb2dsZVNoZWV0c1ZhbHVlc1Jlc3VsdD59IFRoZSBzZXJ2ZWQgcmFuZ2UgYW5kIHRoZSB3cml0dGVuIHZhbHVlcy5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZy5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgc3ByZWFkc2hlZXQgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMgKGUuZy4gaW52YWxpZCByYW5nZSkuXG4gICAqL1xuICBhc3luYyB1cGRhdGVWYWx1ZXMoXG4gICAgaW5wdXQ6IEdvb2dsZVNoZWV0c1dyaXRlSW5wdXRcbiAgKTogUHJvbWlzZTxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+IHtcbiAgICB0aGlzLnJlcXVpcmVBdXRoKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0PEdvb2dsZVNoZWV0c1ZhbHVlc1Jlc3VsdD4oXG4gICAgICAgIGAvJHtlbmNvZGVVUklDb21wb25lbnQoaW5wdXQuc3ByZWFkc2hlZXRJZCl9L3ZhbHVlcy8ke3RoaXMucmFuZ2VQYXRoKFxuICAgICAgICAgIGlucHV0LnJhbmdlXG4gICAgICAgICl9YCxcbiAgICAgICAge1xuICAgICAgICAgIHJhbmdlOiBpbnB1dC5yYW5nZSxcbiAgICAgICAgICBtYWpvckRpbWVuc2lvbjogXCJST1dTXCIsXG4gICAgICAgICAgdmFsdWVzOiBpbnB1dC52YWx1ZXMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHZhbHVlSW5wdXRPcHRpb246IGlucHV0LnZhbHVlSW5wdXRPcHRpb24gPz8gXCJVU0VSX0VOVEVSRURcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3ByZWFkc2hlZXRJZDogaW5wdXQuc3ByZWFkc2hlZXRJZCxcbiAgICAgICAgcmFuZ2U6IHJlc3BvbnNlLmRhdGEucmFuZ2UgPz8gaW5wdXQucmFuZ2UsXG4gICAgICAgIG1ham9yRGltZW5zaW9uOiByZXNwb25zZS5kYXRhLm1ham9yRGltZW5zaW9uID8/IFwiUk9XU1wiLFxuICAgICAgICB2YWx1ZXM6IHJlc3BvbnNlLmRhdGEudmFsdWVzID8/IGlucHV0LnZhbHVlcyxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBTaGVldHNcIiwgXCJ1cGRhdGUgdmFsdWVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFwcGVuZHMgdmFsdWVzIGFmdGVyIHRoZSBsYXN0IHJvdyBvZiBhbiBBMSByYW5nZSdzIHRhYmxlXG4gICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIHJvdyB2YWx1ZXMgdG8gdGhlIGA6YXBwZW5kYCBlbmRwb2ludCBmb3IgdGhlIGdpdmVuXG4gICAqIGBzcHJlYWRzaGVldElkYCBhbmQgYHJhbmdlYCwgaW5zZXJ0aW5nIG5ldyByb3dzIGFmdGVyIGV4aXN0aW5nIHRhYmxlIGRhdGFcbiAgICogKGBpbnNlcnREYXRhT3B0aW9uOiBcIklOU0VSVF9ST1dTXCJgKS4gQ2VsbHMgYXJlIGludGVycHJldGVkIGFjY29yZGluZyB0b1xuICAgKiBgdmFsdWVJbnB1dE9wdGlvbmAgKGBcIlVTRVJfRU5URVJFRFwiYCBieSBkZWZhdWx0KS4gVXNlIGEgc2luZ2xlLXJvdyBvclxuICAgKiBzaW5nbGUtY29sdW1uIEExIHJhbmdlIHRvIGFuY2hvciB0aGUgdGFibGU7IEdvb2dsZSByZXBvcnRzIHRoZSByYW5nZSB0aGVcbiAgICogZGF0YSBhY3R1YWxseSBsYW5kZWQgaW4uXG4gICAqIEBwYXJhbSB7R29vZ2xlU2hlZXRzV3JpdGVJbnB1dH0gaW5wdXQgLSBUaGUgdGFyZ2V0IHNwcmVhZHNoZWV0LCBhbmNob3IgcmFuZ2UsIHZhbHVlcywgYW5kIGlucHV0IGludGVycHJldGF0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+fSBUaGUgcmFuZ2UgdGhlIGFwcGVuZGVkIHJvd3MgbGFuZGVkIGluIGFuZCB0aGUgYXBwZW5kZWQgdmFsdWVzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBzcHJlYWRzaGVldCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdvb2dsZSBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cyAoZS5nLiBpbnZhbGlkIHJhbmdlKS5cbiAgICovXG4gIGFzeW5jIGFwcGVuZFZhbHVlcyhcbiAgICBpbnB1dDogR29vZ2xlU2hlZXRzV3JpdGVJbnB1dFxuICApOiBQcm9taXNlPEdvb2dsZVNoZWV0c1ZhbHVlc1Jlc3VsdD4ge1xuICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0PEdvb2dsZVNoZWV0c1ZhbHVlc1Jlc3VsdD4oXG4gICAgICAgIGAvJHtlbmNvZGVVUklDb21wb25lbnQoaW5wdXQuc3ByZWFkc2hlZXRJZCl9L3ZhbHVlcy8ke3RoaXMucmFuZ2VQYXRoKFxuICAgICAgICAgIGlucHV0LnJhbmdlXG4gICAgICAgICl9OmFwcGVuZGAsXG4gICAgICAgIHtcbiAgICAgICAgICByYW5nZTogaW5wdXQucmFuZ2UsXG4gICAgICAgICAgbWFqb3JEaW1lbnNpb246IFwiUk9XU1wiLFxuICAgICAgICAgIHZhbHVlczogaW5wdXQudmFsdWVzLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICB2YWx1ZUlucHV0T3B0aW9uOiBpbnB1dC52YWx1ZUlucHV0T3B0aW9uID8/IFwiVVNFUl9FTlRFUkVEXCIsXG4gICAgICAgICAgICBpbnNlcnREYXRhT3B0aW9uOiBcIklOU0VSVF9ST1dTXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNwcmVhZHNoZWV0SWQ6IGlucHV0LnNwcmVhZHNoZWV0SWQsXG4gICAgICAgIHJhbmdlOiByZXNwb25zZS5kYXRhLnJhbmdlID8/IGlucHV0LnJhbmdlLFxuICAgICAgICBtYWpvckRpbWVuc2lvbjogcmVzcG9uc2UuZGF0YS5tYWpvckRpbWVuc2lvbiA/PyBcIlJPV1NcIixcbiAgICAgICAgdmFsdWVzOiByZXNwb25zZS5kYXRhLnZhbHVlcyA/PyBbXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBTaGVldHNcIiwgXCJhcHBlbmQgdmFsdWVzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENsZWFycyBhbGwgdmFsdWVzIGluIGFuIEExIHJhbmdlIG9mIGEgc3ByZWFkc2hlZXRcbiAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgYDpjbGVhcmAgZW5kcG9pbnQgZm9yIHRoZSBnaXZlbiBgc3ByZWFkc2hlZXRJZGAgYW5kXG4gICAqIGByYW5nZWAsIGVtcHR5aW5nIHRoZSBjZWxscyB3aGlsZSBwcmVzZXJ2aW5nIGZvcm1hdHRpbmcsIGFuZCByZXR1cm5zIHRoZVxuICAgKiByYW5nZSBHb29nbGUgYWN0dWFsbHkgY2xlYXJlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNwcmVhZHNoZWV0SWQgLSBUaGUgc3ByZWFkc2hlZXQgdG8gY2xlYXIgdmFsdWVzIGluLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmFuZ2UgLSBUaGUgQTEgbm90YXRpb24gcmFuZ2UgdG8gY2xlYXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtzcHJlYWRzaGVldElkOiBzdHJpbmcsIGNsZWFyZWRSYW5nZTogc3RyaW5nfT59IFRoZSBjbGVhcmVkIHJhbmdlIGFzIHJlcG9ydGVkIGJ5IEdvb2dsZS5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZy5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgc3ByZWFkc2hlZXQgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMgKGUuZy4gaW52YWxpZCByYW5nZSkuXG4gICAqL1xuICBhc3luYyBjbGVhclZhbHVlcyhcbiAgICBzcHJlYWRzaGVldElkOiBzdHJpbmcsXG4gICAgcmFuZ2U6IHN0cmluZ1xuICApOiBQcm9taXNlPHsgc3ByZWFkc2hlZXRJZDogc3RyaW5nOyBjbGVhcmVkUmFuZ2U6IHN0cmluZyB9PiB7XG4gICAgdGhpcy5yZXF1aXJlQXV0aCgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3Q8eyBjbGVhcmVkUmFuZ2U/OiBzdHJpbmcgfT4oXG4gICAgICAgIGAvJHtlbmNvZGVVUklDb21wb25lbnQoc3ByZWFkc2hlZXRJZCl9L3ZhbHVlcy8ke3RoaXMucmFuZ2VQYXRoKFxuICAgICAgICAgIHJhbmdlXG4gICAgICAgICl9OmNsZWFyYCxcbiAgICAgICAge31cbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcHJlYWRzaGVldElkLFxuICAgICAgICBjbGVhcmVkUmFuZ2U6IHJlc3BvbnNlLmRhdGEuY2xlYXJlZFJhbmdlID8/IHJhbmdlLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIFNoZWV0c1wiLCBcImNsZWFyIHZhbHVlc1wiLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IHNwcmVhZHNoZWV0IHdpdGggdGhlIGdpdmVuIHRpdGxlXG4gICAqIEBzdW1tYXJ5IGBQT1NUYHMgYSBzcHJlYWRzaGVldCByZXNvdXJjZSB3aXRoIGBwcm9wZXJ0aWVzLnRpdGxlYCB0byB0aGVcbiAgICogc3ByZWFkc2hlZXRzIGVuZHBvaW50IGFuZCByZXR1cm5zIHRoZSBuZXcgc3ByZWFkc2hlZXQncyBJRCBhbmQgVVJMLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSBUaGUgdGl0bGUgZm9yIHRoZSBuZXcgc3ByZWFkc2hlZXQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtzcHJlYWRzaGVldElkOiBzdHJpbmcsIHNwcmVhZHNoZWV0VXJsPzogc3RyaW5nfT59IFRoZSBjcmVhdGVkIHNwcmVhZHNoZWV0J3MgSUQgYW5kIFVSTC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgdGl0bGUgaXMgZW1wdHkuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBIVFRQIDQwNC5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAqL1xuICBhc3luYyBjcmVhdGVTcHJlYWRzaGVldChcbiAgICB0aXRsZTogc3RyaW5nXG4gICk6IFByb21pc2U8eyBzcHJlYWRzaGVldElkOiBzdHJpbmc7IHNwcmVhZHNoZWV0VXJsPzogc3RyaW5nIH0+IHtcbiAgICB0aGlzLnJlcXVpcmVBdXRoKCk7XG4gICAgaWYgKCF0aXRsZSkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiR29vZ2xlIFNoZWV0cyBjcmVhdGVTcHJlYWRzaGVldCByZXF1aXJlcyBhIHRpdGxlXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3Q8e1xuICAgICAgICBzcHJlYWRzaGVldElkOiBzdHJpbmc7XG4gICAgICAgIHNwcmVhZHNoZWV0VXJsPzogc3RyaW5nO1xuICAgICAgfT4oXCIvXCIsIHtcbiAgICAgICAgcHJvcGVydGllczogeyB0aXRsZSB9LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcHJlYWRzaGVldElkOiByZXNwb25zZS5kYXRhLnNwcmVhZHNoZWV0SWQsXG4gICAgICAgIHNwcmVhZHNoZWV0VXJsOiByZXNwb25zZS5kYXRhLnNwcmVhZHNoZWV0VXJsLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIFNoZWV0c1wiLCBcImNyZWF0ZSBzcHJlYWRzaGVldFwiLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR29vZ2xlU2hlZXRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkdvb2dsZVNoZWV0c1NlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILDJEQUF3RDtBQUN4RCx3REFBb0Q7QUFDcEQsNEVBQTBFO0FBQzFFLDJEQUEwRTtBQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLHlCQUFjO0lBQ25EO1FBQ0ksS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEI7O1dBRUc7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztJQUN2QyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWM7UUFDVixPQUFPLCtDQUErQyxDQUFDO0lBQzNELENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFDLE1BQU07UUFDZCxJQUFJLE1BQU0sQ0FBQyxLQUFLO1lBQ1osT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELElBQUksTUFBTSxDQUFDLE1BQU07WUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9DLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxxQkFBcUI7UUFDakIsTUFBTSxHQUFHLEdBQUcsOEJBQWEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUEsK0JBQVMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBQSwrQkFBUyxFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTTtZQUNqQixPQUFPLFNB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QztDQUNKO0FBNU9ELGtEQTRPQztBQUNELGswMEJBQWswMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2lvL2dvb2dsZS1zaGVldHMvc2VydmljZVxuICogQHN1bW1hcnkgR29vZ2xlIFNoZWV0cyBBUEkgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBzcHJlYWRzaGVldCB2YWx1ZXMuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgR29vZ2xlIFNoZWV0cyB2NCB2YWx1ZXMgQVBJIChgZ2V0YCwgYHVwZGF0ZWAsXG4gKiBgYXBwZW5kYCwgYGNsZWFyYCkgYW5kIHNwcmVhZHNoZWV0IGNyZWF0aW9uIGFzIGFuIHVuZGVjb3JhdGVkXG4gKiBjbGllbnQtYmFzZWQgc2VydmljZSBidWlsdCBvblxuICoge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQXV0aGVudGljYXRpb24gYWNjZXB0cyBlaXRoZXIgYW4gT0F1dGggdG9rZW5cbiAqIChiZWFyZXIpIG9yIGEgcGxhaW4gQVBJIGtleSAoYFgtR29vZy1BcGktS2V5YCk7IGNvbmZpZ3VyYXRpb24gY29tZXMgZnJvbSBhblxuICogZXhwbGljaXQgYEdvb2dsZVNoZWV0c1NlcnZpY2VDb25maWdgIG9yIHRoZSBgaW8uZ29vZ2xlU2hlZXRzYCBlbnZpcm9ubWVudFxuICogc2xpY2UsIGFuZCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IElvRW52aXJvbm1lbnQgfSBmcm9tIFwiLi8uLi9lbnZpcm9ubWVudC5qc1wiO1xuaW1wb3J0IHsgZW52TnVtYmVyLCBlbnZTdHJpbmcgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZS5qc1wiO1xuaW1wb3J0IHsgSHR0cEFwaVNlcnZpY2UsIGh0dHBFcnJvciwgfSBmcm9tIFwiLi8uLi8uLi9zaGFyZWQvaHR0cC9pbmRleC5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gR29vZ2xlIFNoZWV0cyBBUEkgaW50ZWdyYXRpb24gc2VydmljZVxuICogQHN1bW1hcnkgQW4gdW5kZWNvcmF0ZWQgSFRUUCBzZXJ2aWNlIGZvciByZWFkaW5nLFxuICogdXBkYXRpbmcsIGFwcGVuZGluZywgYW5kIGNsZWFyaW5nIHZhbHVlcyBpbiBBMSByYW5nZXMgb2YgYSBzcHJlYWRzaGVldCwgYW5kXG4gKiBmb3IgY3JlYXRpbmcgbmV3IHNwcmVhZHNoZWV0cy4gRXZlcnkgb3BlcmF0aW9uIHJlcXVpcmVzIGVpdGhlciBhbiBPQXV0aFxuICogdG9rZW4gb3IgYW4gQVBJIGtleSAoYHJlcXVpcmVBdXRoKClgKTsgcmFuZ2VzIGFuZCBzcHJlYWRzaGVldCBJRHMgYXJlXG4gKiBVUkwtZW5jb2RlZCwgYW5kIHRyYW5zcG9ydCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWFcbiAqIHtAbGluayBodHRwRXJyb3J9LlxuICogQGNsYXNzIEdvb2dsZVNoZWV0c1NlcnZpY2VcbiAqIEBjYXRlZ29yeSBJT1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBHb29nbGVTaGVldHNTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLXNoZWV0c1wiO1xuICpcbiAqIGNvbnN0IHNoZWV0cyA9IG5ldyBHb29nbGVTaGVldHNTZXJ2aWNlKCk7XG4gKiBhd2FpdCBzaGVldHMuaW5pdGlhbGl6ZSh7XG4gKiAgIHRva2VuOiBwcm9jZXNzLmVudi5HUkFQSF9DUkVERU5USUFMX0dPT0dMRV9TSEVFVFNfVE9LRU4sXG4gKiB9KTtcbiAqIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBzaGVldHMuY3JlYXRlU3ByZWFkc2hlZXQoXCJNZXRyaWNzXCIpO1xuICogYXdhaXQgc2hlZXRzLnVwZGF0ZVZhbHVlcyh7XG4gKiAgIHNwcmVhZHNoZWV0SWQ6IGNyZWF0ZWQuc3ByZWFkc2hlZXRJZCxcbiAqICAgcmFuZ2U6IFwiU2hlZXQxIUExOkIyXCIsXG4gKiAgIHZhbHVlczogW1xuICogICAgIFtcImRhdGVcIiwgXCJjb3VudFwiXSxcbiAqICAgICBbXCIyMDI2LTAxLTAxXCIsIFwiNDJcIl0sXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLXNoZWV0cy9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBHb29nbGVTaGVldHNTZXJ2aWNlIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwcm92aWRlciBuYW1lIHVzZWQgaW4gZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VydmljZU5hbWUgPSBcIkdvb2dsZSBTaGVldHNcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBHb29nbGUgU2hlZXRzIHY0IHZhbHVlcyBBUEkgYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL3NoZWV0cy5nb29nbGVhcGlzLmNvbS92NC9zcHJlYWRzaGVldHNcImAuXG4gICAgICovXG4gICAgZGVmYXVsdEJhc2VVcmwoKSB7XG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vc2hlZXRzLmdvb2dsZWFwaXMuY29tL3Y0L3NwcmVhZHNoZWV0c1wiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBHb29nbGUgU2hlZXRzIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgaGVhZGVyIHdoZW4gdGhlXG4gICAgICogY29uZmlnIGNhcnJpZXMgYW4gT0F1dGggdG9rZW4sIG90aGVyd2lzZSB0aGUgYFgtR29vZy1BcGktS2V5YCBoZWFkZXIgd2hlblxuICAgICAqIGFuIEFQSSBrZXkgaXMgY29uZmlndXJlZCwgYW5kIG5vIGhlYWRlcnMgb3RoZXJ3aXNlLlxuICAgICAqIEBwYXJhbSB7R29vZ2xlU2hlZXRzU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhvcml6YXRpb24gaGVhZGVycyAoZW1wdHkgd2l0aG91dCBhIHRva2VuIG9yIEFQSSBrZXkpLlxuICAgICAqL1xuICAgIGF1dGhIZWFkZXJzKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLnRva2VuKVxuICAgICAgICAgICAgcmV0dXJuIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2NvbmZpZy50b2tlbn1gIH07XG4gICAgICAgIGlmIChjb25maWcuYXBpS2V5KVxuICAgICAgICAgICAgcmV0dXJuIHsgXCJYLUdvb2ctQXBpLUtleVwiOiBjb25maWcuYXBpS2V5IH07XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBHb29nbGUgU2hlZXRzIGNyZWRlbnRpYWxzIGFuZCBkZWZhdWx0cyBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBgaW8uZ29vZ2xlU2hlZXRzYCBlbnZpcm9ubWVudCBzbGljZSBhbmQgcmV0dXJucyBhXG4gICAgICogcGFydGlhbCBjb25maWcgd2hlbiBhIHRva2VuIG9yIEFQSSBrZXkgaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGBcbiAgICAgKiBvdGhlcndpc2UuIFZhbHVlcyBwYXNzIHRocm91Z2ggYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0XG4gICAgICogdW5zZXQtbGVhZiBwcm94aWVzLlxuICAgICAqIEByZXR1cm5zIHtQYXJ0aWFsPEdvb2dsZVNoZWV0c1NlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5laXRoZXIgdG9rZW4gbm9yIEFQSSBrZXkgaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IElvRW52aXJvbm1lbnQuaW8uZ29vZ2xlU2hlZXRzO1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICAgICAgY29uc3QgYXBpS2V5ID0gZW52U3RyaW5nKGVudj8uYXBpS2V5KTtcbiAgICAgICAgaWYgKCF0b2tlbiAmJiAhYXBpS2V5KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgYXBpS2V5LFxuICAgICAgICAgICAgYmFzZVVybDogZW52U3RyaW5nKGVudi5iYXNlVXJsKSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGVudk51bWJlcihlbnYudGltZW91dCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NlcnRzIHRoYXQgdGhlIHNlcnZpY2Ugd2FzIGNvbmZpZ3VyZWQgd2l0aCBPQXV0aCBjcmVkZW50aWFsc1xuICAgICAqIEBzdW1tYXJ5IFRocm93cyB3aGVuIHRoZSByZXNvbHZlZCBjb25maWcgY2FycmllcyBuZWl0aGVyIGEgYHRva2VuYCBub3IgYW5cbiAgICAgKiBgYXBpS2V5YDsgZXZlcnkgb3BlcmF0aW9uIGNhbGxzIHRoaXMgYmVmb3JlIGlzc3VpbmcgcmVxdWVzdHMuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBuZWl0aGVyIGFuIE9BdXRoIHRva2VuIG5vciBhbiBBUEkga2V5IGlzIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgcmVxdWlyZUF1dGgoKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBpZiAoIWNvbmZpZy50b2tlbiAmJiAhY29uZmlnLmFwaUtleSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHb29nbGUgU2hlZXRzIHJlcXVpcmVzIGFuIE9BdXRoIHRva2VuIG9yIGFuIEFQSSBrZXlcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVSTC1lbmNvZGVzIGFuIEExIHJhbmdlIGZvciB0aGUgdmFsdWVzIEFQSSBwYXRoXG4gICAgICogQHN1bW1hcnkgUmFuZ2VzIHN1Y2ggYXMgYFNoZWV0MSFBMTpCMmAgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZVxuICAgICAqIHBlcmNlbnQtZW5jb2RlZDsgYWxsIG9wZXJhdGlvbnMgcm91dGUgdGhlIHJhbmdlIHRocm91Z2ggdGhpcyBoZWxwZXIuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJhbmdlIC0gVGhlIEExIG5vdGF0aW9uIHJhbmdlIHRvIGVuY29kZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgVVJMLWVuY29kZWQgcmFuZ2UuXG4gICAgICovXG4gICAgcmFuZ2VQYXRoKHJhbmdlKSB7XG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQocmFuZ2UpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdmFsdWVzIGZyb20gYW4gQTEgcmFuZ2Ugb2YgYSBzcHJlYWRzaGVldFxuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyB0aGUgdmFsdWVzIGVuZHBvaW50IGZvciB0aGUgZ2l2ZW4gYHNwcmVhZHNoZWV0SWRgIGFuZFxuICAgICAqIGByYW5nZWAgYW5kIHJldHVybnMgdGhlIHNlcnZlZCByYW5nZSwgbWFqb3IgZGltZW5zaW9uLCBhbmQgdGhlIGdyaWRcbiAgICAgKiB2YWx1ZXMgKHJvd3Mgb2YgY2VsbCBzdHJpbmdzKS4gUmVxdWlyZXMgY3JlZGVudGlhbHMgYW5kIGJvdGggYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzcHJlYWRzaGVldElkIC0gVGhlIHNwcmVhZHNoZWV0IHRvIHJlYWQgZnJvbS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmFuZ2UgLSBUaGUgQTEgbm90YXRpb24gcmFuZ2UgdG8gcmVhZCAoZS5nLiBgXCJTaGVldDEhQTE6QzEwXCJgKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+fSBUaGUgc2VydmVkIHJhbmdlIGFuZCBncmlkIHZhbHVlcy5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nIG9yIHRoZSBzcHJlYWRzaGVldCBJRC9yYW5nZSBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBzcHJlYWRzaGVldCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMgKGUuZy4gaW52YWxpZCByYW5nZSkuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VmFsdWVzKHNwcmVhZHNoZWV0SWQsIHJhbmdlKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgaWYgKCFzcHJlYWRzaGVldElkIHx8ICFyYW5nZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHb29nbGUgU2hlZXRzIGdldFZhbHVlcyByZXF1aXJlcyBhIHNwcmVhZHNoZWV0IElEIGFuZCByYW5nZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQoYC8ke2VuY29kZVVSSUNvbXBvbmVudChzcHJlYWRzaGVldElkKX0vdmFsdWVzLyR7dGhpcy5yYW5nZVBhdGgocmFuZ2UpfWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzcHJlYWRzaGVldElkLFxuICAgICAgICAgICAgICAgIHJhbmdlOiByZXNwb25zZS5kYXRhLnJhbmdlID8/IHJhbmdlLFxuICAgICAgICAgICAgICAgIG1ham9yRGltZW5zaW9uOiByZXNwb25zZS5kYXRhLm1ham9yRGltZW5zaW9uLFxuICAgICAgICAgICAgICAgIHZhbHVlczogcmVzcG9uc2UuZGF0YS52YWx1ZXMgPz8gW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIFNoZWV0c1wiLCBcImdldCB2YWx1ZXNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPdmVyd3JpdGVzIHZhbHVlcyBpbiBhbiBBMSByYW5nZSBvZiBhIHNwcmVhZHNoZWV0XG4gICAgICogQHN1bW1hcnkgYFBVVGBzIHRoZSByb3cgdmFsdWVzIHRvIHRoZSB2YWx1ZXMgZW5kcG9pbnQgZm9yIHRoZSBnaXZlblxuICAgICAqIGBzcHJlYWRzaGVldElkYCBhbmQgYHJhbmdlYC4gQ2VsbHMgYXJlIGludGVycHJldGVkIGFjY29yZGluZyB0b1xuICAgICAqIGB2YWx1ZUlucHV0T3B0aW9uYCAoYFwiVVNFUl9FTlRFUkVEXCJgIGJ5IGRlZmF1bHQsIGBcIlJBV1wiYCB0byBzdG9yZSB0ZXh0XG4gICAgICogdmVyYmF0aW0pLCBhbmQgdGhlIGV4aXN0aW5nIHJhbmdlIGNvbnRlbnQgaXMgcmVwbGFjZWQuXG4gICAgICogQHBhcmFtIHtHb29nbGVTaGVldHNXcml0ZUlucHV0fSBpbnB1dCAtIFRoZSB0YXJnZXQgc3ByZWFkc2hlZXQsIHJhbmdlLCB2YWx1ZXMsIGFuZCBpbnB1dCBpbnRlcnByZXRhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHb29nbGVTaGVldHNWYWx1ZXNSZXN1bHQ+fSBUaGUgc2VydmVkIHJhbmdlIGFuZCB0aGUgd3JpdHRlbiB2YWx1ZXMuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZy5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBzcHJlYWRzaGVldCBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMgKGUuZy4gaW52YWxpZCByYW5nZSkuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlVmFsdWVzKGlucHV0KSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucHV0KGAvJHtlbmNvZGVVUklDb21wb25lbnQoaW5wdXQuc3ByZWFkc2hlZXRJZCl9L3ZhbHVlcy8ke3RoaXMucmFuZ2VQYXRoKGlucHV0LnJhbmdlKX1gLCB7XG4gICAgICAgICAgICAgICAgcmFuZ2U6IGlucHV0LnJhbmdlLFxuICAgICAgICAgICAgICAgIG1ham9yRGltZW5zaW9uOiBcIlJPV1NcIixcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGlucHV0LnZhbHVlcyxcbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVJbnB1dE9wdGlvbjogaW5wdXQudmFsdWVJbnB1dE9wdGlvbiA/PyBcIlVTRVJfRU5URVJFRFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3ByZWFkc2hlZXRJZDogaW5wdXQuc3ByZWFkc2hlZXRJZCxcbiAgICAgICAgICAgICAgICByYW5nZTogcmVzcG9uc2UuZGF0YS5yYW5nZSA/PyBpbnB1dC5yYW5nZSxcbiAgICAgICAgICAgICAgICBtYWpvckRpbWVuc2lvbjogcmVzcG9uc2UuZGF0YS5tYWpvckRpbWVuc2lvbiA/PyBcIlJPV1NcIixcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHJlc3BvbnNlLmRhdGEudmFsdWVzID8/IGlucHV0LnZhbHVlcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJHb29nbGUgU2hlZXRzXCIsIFwidXBkYXRlIHZhbHVlc1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFwcGVuZHMgdmFsdWVzIGFmdGVyIHRoZSBsYXN0IHJvdyBvZiBhbiBBMSByYW5nZSdzIHRhYmxlXG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgcm93IHZhbHVlcyB0byB0aGUgYDphcHBlbmRgIGVuZHBvaW50IGZvciB0aGUgZ2l2ZW5cbiAgICAgKiBgc3ByZWFkc2hlZXRJZGAgYW5kIGByYW5nZWAsIGluc2VydGluZyBuZXcgcm93cyBhZnRlciBleGlzdGluZyB0YWJsZSBkYXRhXG4gICAgICogKGBpbnNlcnREYXRhT3B0aW9uOiBcIklOU0VSVF9ST1dTXCJgKS4gQ2VsbHMgYXJlIGludGVycHJldGVkIGFjY29yZGluZyB0b1xuICAgICAqIGB2YWx1ZUlucHV0T3B0aW9uYCAoYFwiVVNFUl9FTlRFUkVEXCJgIGJ5IGRlZmF1bHQpLiBVc2UgYSBzaW5nbGUtcm93IG9yXG4gICAgICogc2luZ2xlLWNvbHVtbiBBMSByYW5nZSB0byBhbmNob3IgdGhlIHRhYmxlOyBHb29nbGUgcmVwb3J0cyB0aGUgcmFuZ2UgdGhlXG4gICAgICogZGF0YSBhY3R1YWxseSBsYW5kZWQgaW4uXG4gICAgICogQHBhcmFtIHtHb29nbGVTaGVldHNXcml0ZUlucHV0fSBpbnB1dCAtIFRoZSB0YXJnZXQgc3ByZWFkc2hlZXQsIGFuY2hvciByYW5nZSwgdmFsdWVzLCBhbmQgaW5wdXQgaW50ZXJwcmV0YXRpb24uXG4gICAgICogQHJldHVybnMge1Byb21pc2U8R29vZ2xlU2hlZXRzVmFsdWVzUmVzdWx0Pn0gVGhlIHJhbmdlIHRoZSBhcHBlbmRlZCByb3dzIGxhbmRlZCBpbiBhbmQgdGhlIGFwcGVuZGVkIHZhbHVlcy5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIGNyZWRlbnRpYWxzIGFyZSBtaXNzaW5nLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHNwcmVhZHNoZWV0IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cyAoZS5nLiBpbnZhbGlkIHJhbmdlKS5cbiAgICAgKi9cbiAgICBhc3luYyBhcHBlbmRWYWx1ZXMoaW5wdXQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQXV0aCgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGAvJHtlbmNvZGVVUklDb21wb25lbnQoaW5wdXQuc3ByZWFkc2hlZXRJZCl9L3ZhbHVlcy8ke3RoaXMucmFuZ2VQYXRoKGlucHV0LnJhbmdlKX06YXBwZW5kYCwge1xuICAgICAgICAgICAgICAgIHJhbmdlOiBpbnB1dC5yYW5nZSxcbiAgICAgICAgICAgICAgICBtYWpvckRpbWVuc2lvbjogXCJST1dTXCIsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBpbnB1dC52YWx1ZXMsXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSW5wdXRPcHRpb246IGlucHV0LnZhbHVlSW5wdXRPcHRpb24gPz8gXCJVU0VSX0VOVEVSRURcIixcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0RGF0YU9wdGlvbjogXCJJTlNFUlRfUk9XU1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3ByZWFkc2hlZXRJZDogaW5wdXQuc3ByZWFkc2hlZXRJZCxcbiAgICAgICAgICAgICAgICByYW5nZTogcmVzcG9uc2UuZGF0YS5yYW5nZSA/PyBpbnB1dC5yYW5nZSxcbiAgICAgICAgICAgICAgICBtYWpvckRpbWVuc2lvbjogcmVzcG9uc2UuZGF0YS5tYWpvckRpbWVuc2lvbiA/PyBcIlJPV1NcIixcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHJlc3BvbnNlLmRhdGEudmFsdWVzID8/IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdvb2dsZSBTaGVldHNcIiwgXCJhcHBlbmQgdmFsdWVzXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xlYXJzIGFsbCB2YWx1ZXMgaW4gYW4gQTEgcmFuZ2Ugb2YgYSBzcHJlYWRzaGVldFxuICAgICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIGA6Y2xlYXJgIGVuZHBvaW50IGZvciB0aGUgZ2l2ZW4gYHNwcmVhZHNoZWV0SWRgIGFuZFxuICAgICAqIGByYW5nZWAsIGVtcHR5aW5nIHRoZSBjZWxscyB3aGlsZSBwcmVzZXJ2aW5nIGZvcm1hdHRpbmcsIGFuZCByZXR1cm5zIHRoZVxuICAgICAqIHJhbmdlIEdvb2dsZSBhY3R1YWxseSBjbGVhcmVkLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzcHJlYWRzaGVldElkIC0gVGhlIHNwcmVhZHNoZWV0IHRvIGNsZWFyIHZhbHVlcyBpbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmFuZ2UgLSBUaGUgQTEgbm90YXRpb24gcmFuZ2UgdG8gY2xlYXIuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8e3NwcmVhZHNoZWV0SWQ6IHN0cmluZywgY2xlYXJlZFJhbmdlOiBzdHJpbmd9Pn0gVGhlIGNsZWFyZWQgcmFuZ2UgYXMgcmVwb3J0ZWQgYnkgR29vZ2xlLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gY3JlZGVudGlhbHMgYXJlIG1pc3NpbmcuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgc3ByZWFkc2hlZXQgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIEdvb2dsZSBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdvb2dsZSBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzIChlLmcuIGludmFsaWQgcmFuZ2UpLlxuICAgICAqL1xuICAgIGFzeW5jIGNsZWFyVmFsdWVzKHNwcmVhZHNoZWV0SWQsIHJhbmdlKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZUF1dGgoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHNwcmVhZHNoZWV0SWQpfS92YWx1ZXMvJHt0aGlzLnJhbmdlUGF0aChyYW5nZSl9OmNsZWFyYCwge30pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzcHJlYWRzaGVldElkLFxuICAgICAgICAgICAgICAgIGNsZWFyZWRSYW5nZTogcmVzcG9uc2UuZGF0YS5jbGVhcmVkUmFuZ2UgPz8gcmFuZ2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiR29vZ2xlIFNoZWV0c1wiLCBcImNsZWFyIHZhbHVlc1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgc3ByZWFkc2hlZXQgd2l0aCB0aGUgZ2l2ZW4gdGl0bGVcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIGEgc3ByZWFkc2hlZXQgcmVzb3VyY2Ugd2l0aCBgcHJvcGVydGllcy50aXRsZWAgdG8gdGhlXG4gICAgICogc3ByZWFkc2hlZXRzIGVuZHBvaW50IGFuZCByZXR1cm5zIHRoZSBuZXcgc3ByZWFkc2hlZXQncyBJRCBhbmQgVVJMLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIFRoZSB0aXRsZSBmb3IgdGhlIG5ldyBzcHJlYWRzaGVldC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7c3ByZWFkc2hlZXRJZDogc3RyaW5nLCBzcHJlYWRzaGVldFVybD86IHN0cmluZ30+fSBUaGUgY3JlYXRlZCBzcHJlYWRzaGVldCdzIElEIGFuZCBVUkwuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBjcmVkZW50aWFscyBhcmUgbWlzc2luZyBvciB0aGUgdGl0bGUgaXMgZW1wdHkuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiBHb29nbGUgYW5zd2VycyB3aXRoIEhUVFAgNDA0LlxuICAgICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR29vZ2xlIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlU3ByZWFkc2hlZXQodGl0bGUpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQXV0aCgpO1xuICAgICAgICBpZiAoIXRpdGxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdvb2dsZSBTaGVldHMgY3JlYXRlU3ByZWFkc2hlZXQgcmVxdWlyZXMgYSB0aXRsZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KFwiL1wiLCB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllczogeyB0aXRsZSB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNwcmVhZHNoZWV0SWQ6IHJlc3BvbnNlLmRhdGEuc3ByZWFkc2hlZXRJZCxcbiAgICAgICAgICAgICAgICBzcHJlYWRzaGVldFVybDogcmVzcG9uc2UuZGF0YS5zcHJlYWRzaGVldFVybCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJHb29nbGUgU2hlZXRzXCIsIFwiY3JlYXRlIHNwcmVhZHNoZWV0XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVIyOXZaMnhsVTJobFpYUnpVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlwYnk5bmIyOW5iR1V0YzJobFpYUnpMMGR2YjJkc1pWTm9aV1YwYzFObGNuWnBZMlV1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdSMEZWUnp0QlFVTklMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVFVGQlRTeDVRa0ZCZVVJc1EwRkJRenRCUVVONFJDeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRFJDUVVGMVFqdEJRVU12UXl4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxGTkJRVk1zUlVGQlJTd3lRMEZCYzBNN1FVRkRja1VzVDBGQlR5eEZRVU5NTEdOQlFXTXNSVUZGWkN4VFFVRlRMRWRCUTFZc2NVTkJRVEJDTzBGQmQwUXpRanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdRVUZEU0N4TlFVRk5MRTlCUVU4c2JVSkJRVzlDTEZOQlFWRXNZMEZCZVVNN1NVRkJiRVk3TzFGQlEwVTdPMWRCUlVjN1VVRkRaMElzWjBKQlFWY3NSMEZCUnl4bFFVRmxMRU5CUVVNN1NVRnRVbTVFTEVOQlFVTTdTVUZxVWtNN096czdUMEZKUnp0SlFVTlBMR05CUVdNN1VVRkRkRUlzVDBGQlR5d3JRMEZCSzBNc1EwRkJRenRKUVVONlJDeERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOUExGZEJRVmNzUTBGRGJrSXNUVUZCYVVNN1VVRkZha01zU1VGQlNTeE5RVUZOTEVOQlFVTXNTMEZCU3p0WlFVRkZMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzVlVGQlZTeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVOeVJTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5PMWxCUVVVc1QwRkJUeXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU01UkN4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOYUxFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTA4c2NVSkJRWEZDTzFGQlJ6ZENMRTFCUVUwc1IwRkJSeXhIUVVGSExHRkJRV0VzUTBGQlF5eEZRVUZGTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpGRExFMUJRVTBzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNUVUZCVFR0WlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRM2hETEU5QlFVODdXVUZEVEN4TFFVRkxPMWxCUTB3c1RVRkJUVHRaUVVOT0xFOUJRVThzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJRenRaUVVNdlFpeFBRVUZQTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU03VTBGRGFFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eFhRVUZYTzFGQlEyNUNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETTBJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGNFTXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzY1VSQlFYRkVMRU5CUTNSRUxFTkJRVU03VVVGRFNpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOUExGTkJRVk1zUTBGQlF5eExRVUZoTzFGQlF5OUNMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRia01zUTBGQlF6dEpRVVZFT3pzN096czdPenM3T3pzN1QwRlpSenRKUVVOSUxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlEySXNZVUZCY1VJc1JVRkRja0lzUzBGQllUdFJRVVZpTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOdVFpeEpRVUZKTEVOQlFVTXNZVUZCWVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRE4wSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzTmtSQlFUWkVMRU5CUXpsRUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkRjRU1zU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXhoUVVGaExFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRM2hGTEVOQlFVTTdXVUZEUml4UFFVRlBPMmRDUVVOTUxHRkJRV0U3WjBKQlEySXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEV0QlFVczdaMEpCUTI1RExHTkJRV01zUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNN1owSkJRelZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeEZRVUZGTzJGQlEyNURMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1UwRkJVeXhEUVVGRExHVkJRV1VzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRVFzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN08wOUJXVWM3U1VGRFNDeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVTm9RaXhMUVVFMlFqdFJRVVUzUWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGJrSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkRjRU1zU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEZkQlFWY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRiRVVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEV2l4RlFVRkZMRVZCUTBnN1owSkJRMFVzUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4TFFVRkxPMmRDUVVOc1FpeGpRVUZqTEVWQlFVVXNUVUZCVFR0blFrRkRkRUlzVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4TlFVRk5PMkZCUTNKQ0xFVkJRMFE3WjBKQlEwVXNUVUZCVFN4RlFVRkZPMjlDUVVOT0xHZENRVUZuUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4alFVRmpPMmxDUVVNelJEdGhRVU5HTEVOQlEwWXNRMEZCUXp0WlFVTkdMRTlCUVU4N1owSkJRMHdzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4aFFVRmhPMmRDUVVOc1F5eExRVUZMTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVczdaMEpCUTNwRExHTkJRV01zUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1NVRkJTU3hOUVVGTk8yZENRVU4wUkN4TlFVRk5MRVZCUVVVc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwN1lVRkROME1zUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZCUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeFRRVUZUTEVOQlFVTXNaVUZCWlN4RlFVRkZMR1ZCUVdVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU16UkN4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096czdPenRQUVdOSE8wbEJRMGdzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZEYUVJc1MwRkJOa0k3VVVGRk4wSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUTNKRExFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTJ4RkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlExb3NVMEZCVXl4RlFVTldPMmRDUVVORkxFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3p0blFrRkRiRUlzWTBGQll5eEZRVUZGTEUxQlFVMDdaMEpCUTNSQ0xFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNUVUZCVFR0aFFVTnlRaXhGUVVORU8yZENRVU5GTEUxQlFVMHNSVUZCUlR0dlFrRkRUaXhuUWtGQlowSXNSVUZCUlN4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NZMEZCWXp0dlFrRkRNVVFzWjBKQlFXZENMRVZCUVVVc1lVRkJZVHRwUWtGRGFFTTdZVUZEUml4RFFVTkdMRU5CUVVNN1dVRkRSaXhQUVVGUE8yZENRVU5NTEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1lVRkJZVHRuUWtGRGJFTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxPMmRDUVVONlF5eGpRVUZqTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFbEJRVWtzVFVGQlRUdG5Ra0ZEZEVRc1RVRkJUU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRVZCUVVVN1lVRkRia01zUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZCUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeFRRVUZUTEVOQlFVTXNaVUZCWlN4RlFVRkZMR1ZCUVdVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU16UkN4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096czdUMEZaUnp0SlFVTklMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRMllzWVVGQmNVSXNSVUZEY2tJc1MwRkJZVHRSUVVWaUxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVU55UXl4SlFVRkpMR3RDUVVGclFpeERRVUZETEdGQlFXRXNRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRelZFTEV0QlFVc3NRMEZEVGl4UlFVRlJMRVZCUTFRc1JVRkJSU3hEUVVOSUxFTkJRVU03V1VGRFJpeFBRVUZQTzJkQ1FVTk1MR0ZCUVdFN1owSkJRMklzV1VGQldTeEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hKUVVGSkxFdEJRVXM3WVVGRGJFUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc1pVRkJaU3hGUVVGRkxHTkJRV01zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdPenM3TzA5QlZVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRXRCUVdFN1VVRkZZaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdVVUZEYmtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlExZ3NUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYTBSQlFXdEVMRU5CUTI1RUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkhjRU1zUjBGQlJ5eEZRVUZGTzJkQ1FVTk9MRlZCUVZVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJUdGhRVU4wUWl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hQUVVGUE8yZENRVU5NTEdGQlFXRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0U3WjBKQlF6RkRMR05CUVdNc1JVRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTTdZVUZETjBNc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTJZc1RVRkJUU3hUUVVGVExFTkJRVU1zWlVGQlpTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEyaEZMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwybHZMMmR2YjJkc1pTMXphR1ZsZEhNdmMyVnlkbWxqWlZ4dUlDb2dRSE4xYlcxaGNua2dSMjl2WjJ4bElGTm9aV1YwY3lCQlVFa2dhVzUwWldkeVlYUnBiMjRnYzJWeWRtbGpaU0JtYjNJZ2NtVmhaR2x1WnlCaGJtUWdkM0pwZEdsdVp5QnpjSEpsWVdSemFHVmxkQ0IyWVd4MVpYTXVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGh3YjNObGN5QjBhR1VnUjI5dloyeGxJRk5vWldWMGN5QjJOQ0IyWVd4MVpYTWdRVkJKSUNoZ1oyVjBZQ3dnWUhWd1pHRjBaV0FzWEc0Z0tpQmdZWEJ3Wlc1a1lDd2dZR05zWldGeVlDa2dZVzVrSUhOd2NtVmhaSE5vWldWMElHTnlaV0YwYVc5dUlHRnpJR0Z1SUhWdVpHVmpiM0poZEdWa1hHNGdLaUJqYkdsbGJuUXRZbUZ6WldRZ2MyVnlkbWxqWlNCaWRXbHNkQ0J2Ymx4dUlDb2dlMEJzYVc1cklFaDBkSEJCY0dsVFpYSjJhV05sZlM0Z1FYVjBhR1Z1ZEdsallYUnBiMjRnWVdOalpYQjBjeUJsYVhSb1pYSWdZVzRnVDBGMWRHZ2dkRzlyWlc1Y2JpQXFJQ2hpWldGeVpYSXBJRzl5SUdFZ2NHeGhhVzRnUVZCSklHdGxlU0FvWUZndFIyOXZaeTFCY0drdFMyVjVZQ2s3SUdOdmJtWnBaM1Z5WVhScGIyNGdZMjl0WlhNZ1puSnZiU0JoYmx4dUlDb2daWGh3YkdsamFYUWdZRWR2YjJkc1pWTm9aV1YwYzFObGNuWnBZMlZEYjI1bWFXZGdJRzl5SUhSb1pTQmdhVzh1WjI5dloyeGxVMmhsWlhSellDQmxiblpwY205dWJXVnVkRnh1SUNvZ2MyeHBZMlVzSUdGdVpDQm1ZV2xzZFhKbGN5QmhjbVVnYldGd2NHVmtJSFJ2SUdSbFkyRm1JR1Z5Y205eWN5QjJhV0VnZTBCc2FXNXJJR2gwZEhCRmNuSnZjbjB1WEc0Z0tpOWNibWx0Y0c5eWRDQjdJRWx1ZEdWeWJtRnNSWEp5YjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFbHZSVzUyYVhKdmJtMWxiblFnZlNCbWNtOXRJRndpTGk0dlpXNTJhWEp2Ym0xbGJuUmNJanRjYm1sdGNHOXlkQ0I3SUdWdWRrNTFiV0psY2l3Z1pXNTJVM1J5YVc1bklIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlsYm5acGNtOXViV1Z1ZEZaaGJIVmxYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQklkSFJ3UVhCcFUyVnlkbWxqWlN4Y2JpQWdkSGx3WlNCSWRIUndRWEJwVTJWeWRtbGpaVU52Ym1acFp5eGNiaUFnYUhSMGNFVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aUxpNHZMaTR2YzJoaGNtVmtMMmgwZEhCY0lqdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXVabWxuZFhKaGRHbHZiaUJtYjNJZ2RHaGxJRWR2YjJkc1pTQlRhR1ZsZEhNZ2MyVnlkbWxqWlZ4dUlDb2dRSE4xYlcxaGNua2dSWGgwWlc1a2N5QjdRR3hwYm1zZ1NIUjBjRUZ3YVZObGNuWnBZMlZEYjI1bWFXZDlJSGRwZEdnZ1pXbDBhR1Z5SUdGdUlFOUJkWFJvSUhSdmEyVnVYRzRnS2lBb2NISmxabVZ5Y21Wa0xDQnpaVzUwSUdGeklHRWdZbVZoY21WeUlIUnZhMlZ1S1NCdmNpQmhiaUJCVUVrZ2EyVjVJQ2h6Wlc1MElHRnpYRzRnS2lCZ1dDMUhiMjluTFVGd2FTMUxaWGxnT3lCeVpXRmtMVzl1YkhrZ1lXZGhhVzV6ZENCd2RXSnNhV01nYzNCeVpXRmtjMmhsWlhSektTNGdWMmhsYmlCdmJXbDBkR1ZrTENCMGFHVmNiaUFxSUdCcGJ5NW5iMjluYkdWVGFHVmxkSE5nSUdWdWRtbHliMjV0Wlc1MElITnNhV05sSUhOMWNIQnNhV1Z6SUdKdmRHZ2dLR0Z1WkNCdmNIUnBiMjVoYkZ4dUlDb2dZR0poYzJWVmNteGdMMkIwYVcxbGIzVjBZQ2t1WEc0Z0tpQkFZMkYwWldkdmNua2dTVTljYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNmFXNTBaV2R5WVhScGIyNXpMMmx2TDJkdmIyZHNaUzF6YUdWbGRITXZjMlZ5ZG1salpWeHVJQ292WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkdmIyZHNaVk5vWldWMGMxTmxjblpwWTJWRGIyNW1hV2NnWlhoMFpXNWtjeUJJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWnlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1IyOXZaMnhsSUU5QmRYUm9JR0ZqWTJWemN5QjBiMnRsYmx4dUlDQWdLaUJBYzNWdGJXRnllU0JUWlc1MElHRnpJR0JCZFhSb2IzSnBlbUYwYVc5dU9pQkNaV0Z5WlhJZ1BIUnZhMlZ1UG1BN0lIUmhhMlZ6SUhCeVpXTmxaR1Z1WTJVZ2IzWmxjaUIwYUdVZ1FWQkpJR3RsZVM1Y2JpQWdJQ292WEc0Z0lIUnZhMlZ1UHpvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVkdmIyZHNaU0JCVUVrZ2EyVjVYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTmxiblFnWVhNZ1lGZ3RSMjl2WnkxQmNHa3RTMlY1WUNCM2FHVnVJRzV2SUU5QmRYUm9JSFJ2YTJWdUlHbHpJR052Ym1acFozVnlaV1F1WEc0Z0lDQXFMMXh1SUNCaGNHbExaWGsvT2lCemRISnBibWM3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbGMzVnNkQ0J2WmlCaElFZHZiMmRzWlNCVGFHVmxkSE1nZG1Gc2RXVnpJSEpsWVdRZ2IzSWdkM0pwZEdWY2JpQXFJRUJ6ZFcxdFlYSjVJRVZqYUc5bGN5QjBhR1VnZEdGeVoyVjBJR0J6Y0hKbFlXUnphR1ZsZEVsa1lDQmhibVFnZEdobElFRXhJR0J5WVc1blpXQWdSMjl2WjJ4bFhHNGdLaUJoWTNSMVlXeHNlU0J6WlhKMlpXUXNJSFJvWlNCZ2JXRnFiM0pFYVcxbGJuTnBiMjVnSUc5bUlIUm9aU0J3WVhsc2IyRmtMQ0JoYm1RZ2RHaGxJR2R5YVdSY2JpQXFJR0IyWVd4MVpYTmdJR0Z6SUdGdUlHRnljbUY1SUc5bUlISnZkM01nS0dGeWNtRjVjeUJ2WmlCalpXeHNJSE4wY21sdVozTXBMbHh1SUNvZ1FHTmhkR1ZuYjNKNUlFbFBYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OXBieTluYjI5bmJHVXRjMmhsWlhSekwzTmxjblpwWTJWY2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JIYjI5bmJHVlRhR1ZsZEhOV1lXeDFaWE5TWlhOMWJIUWdlMXh1SUNCemNISmxZV1J6YUdWbGRFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhKaGJtZGxPaUJ6ZEhKcGJtYzdYRzRnSUcxaGFtOXlSR2x0Wlc1emFXOXVQem9nYzNSeWFXNW5PMXh1SUNCMllXeDFaWE02SUhOMGNtbHVaMXRkVzEwN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVjSFYwSUdadmNpQjNjbWwwYVc1bklIWmhiSFZsY3lCcGJuUnZJR0VnUjI5dloyeGxJRk5vWldWMGN5QnlZVzVuWlZ4dUlDb2dRSE4xYlcxaGNua2dRMkZ5Y21sbGN5QjBhR1VnZEdGeVoyVjBJR0J6Y0hKbFlXUnphR1ZsZEVsa1lDQmhibVFnUVRFZ1lISmhibWRsWUN3Z2RHaGxJSEp2ZDF4dUlDb2dZSFpoYkhWbGMyQWdkRzhnZDNKcGRHVXNJR0Z1WkNCMGFHVWdZSFpoYkhWbFNXNXdkWFJQY0hScGIyNWdJR052Ym5SeWIyeHNhVzVuSUdodmR5QkhiMjluYkdWY2JpQXFJR2x1ZEdWeWNISmxkSE1nZEdobElHTmxiR3h6SUNoZ1hDSlNRVmRjSW1BZ2MzUnZjbVZ6SUhSbGVIUWdZWE10YVhNc0lHQmNJbFZUUlZKZlJVNVVSVkpGUkZ3aVlDQmhjSEJzYVdWelhHNGdLaUJ6Y0hKbFlXUnphR1ZsZENCd1lYSnphVzVuSUdGdVpDQm1iM0p0ZFd4aGN6c2daR1ZtWVhWc2RITWdkRzhnWUZ3aVZWTkZVbDlGVGxSRlVrVkVYQ0pnS1M1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dloyOXZaMnhsTFhOb1pXVjBjeTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1IyOXZaMnhsVTJobFpYUnpWM0pwZEdWSmJuQjFkQ0I3WEc0Z0lITndjbVZoWkhOb1pXVjBTV1E2SUhOMGNtbHVaenRjYmlBZ2NtRnVaMlU2SUhOMGNtbHVaenRjYmlBZ2RtRnNkV1Z6T2lCMWJtdHViM2R1VzExYlhUdGNiaUFnZG1Gc2RXVkpibkIxZEU5d2RHbHZiajg2SUZ3aVVrRlhYQ0lnZkNCY0lsVlRSVkpmUlU1VVJWSkZSRndpTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCSGIyOW5iR1VnVTJobFpYUnpJRUZRU1NCcGJuUmxaM0poZEdsdmJpQnpaWEoyYVdObFhHNGdLaUJBYzNWdGJXRnllU0JCYmlCMWJtUmxZMjl5WVhSbFpDQklWRlJRSUhObGNuWnBZMlVnWm05eUlISmxZV1JwYm1jc1hHNGdLaUIxY0dSaGRHbHVaeXdnWVhCd1pXNWthVzVuTENCaGJtUWdZMnhsWVhKcGJtY2dkbUZzZFdWeklHbHVJRUV4SUhKaGJtZGxjeUJ2WmlCaElITndjbVZoWkhOb1pXVjBMQ0JoYm1SY2JpQXFJR1p2Y2lCamNtVmhkR2x1WnlCdVpYY2djM0J5WldGa2MyaGxaWFJ6TGlCRmRtVnllU0J2Y0dWeVlYUnBiMjRnY21WeGRXbHlaWE1nWldsMGFHVnlJR0Z1SUU5QmRYUm9YRzRnS2lCMGIydGxiaUJ2Y2lCaGJpQkJVRWtnYTJWNUlDaGdjbVZ4ZFdseVpVRjFkR2dvS1dBcE95QnlZVzVuWlhNZ1lXNWtJSE53Y21WaFpITm9aV1YwSUVsRWN5QmhjbVZjYmlBcUlGVlNUQzFsYm1OdlpHVmtMQ0JoYm1RZ2RISmhibk53YjNKMElHWmhhV3gxY21WeklHRnlaU0J0WVhCd1pXUWdkRzhnWkdWallXWWdaWEp5YjNKeklIWnBZVnh1SUNvZ2UwQnNhVzVySUdoMGRIQkZjbkp2Y24wdVhHNGdLaUJBWTJ4aGMzTWdSMjl2WjJ4bFUyaGxaWFJ6VTJWeWRtbGpaVnh1SUNvZ1FHTmhkR1ZuYjNKNUlFbFBYRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnZEhOY2JpQXFJR2x0Y0c5eWRDQjdJRWR2YjJkc1pWTm9aV1YwYzFObGNuWnBZMlVnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJsdWRHVm5jbUYwYVc5dWN5OXBieTluYjI5bmJHVXRjMmhsWlhSelhDSTdYRzRnS2x4dUlDb2dZMjl1YzNRZ2MyaGxaWFJ6SUQwZ2JtVjNJRWR2YjJkc1pWTm9aV1YwYzFObGNuWnBZMlVvS1R0Y2JpQXFJR0YzWVdsMElITm9aV1YwY3k1cGJtbDBhV0ZzYVhwbEtIdGNiaUFxSUNBZ2RHOXJaVzQ2SUhCeWIyTmxjM011Wlc1MkxrZFNRVkJJWDBOU1JVUkZUbFJKUVV4ZlIwOVBSMHhGWDFOSVJVVlVVMTlVVDB0RlRpeGNiaUFxSUgwcE8xeHVJQ29nWTI5dWMzUWdZM0psWVhSbFpDQTlJR0YzWVdsMElITm9aV1YwY3k1amNtVmhkR1ZUY0hKbFlXUnphR1ZsZENoY0lrMWxkSEpwWTNOY0lpazdYRzRnS2lCaGQyRnBkQ0J6YUdWbGRITXVkWEJrWVhSbFZtRnNkV1Z6S0h0Y2JpQXFJQ0FnYzNCeVpXRmtjMmhsWlhSSlpEb2dZM0psWVhSbFpDNXpjSEpsWVdSemFHVmxkRWxrTEZ4dUlDb2dJQ0J5WVc1blpUb2dYQ0pUYUdWbGRERWhRVEU2UWpKY0lpeGNiaUFxSUNBZ2RtRnNkV1Z6T2lCYlhHNGdLaUFnSUNBZ1cxd2laR0YwWlZ3aUxDQmNJbU52ZFc1MFhDSmRMRnh1SUNvZ0lDQWdJRnRjSWpJd01qWXRNREV0TURGY0lpd2dYQ0kwTWx3aVhTeGNiaUFxSUNBZ1hTeGNiaUFxSUgwcE8xeHVJQ29nWUdCZ1hHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbWx1ZEdWbmNtRjBhVzl1Y3k5cGJ5OW5iMjluYkdVdGMyaGxaWFJ6TDNObGNuWnBZMlZjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVkdmIyZHNaVk5vWldWMGMxTmxjblpwWTJVZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVHhIYjI5bmJHVlRhR1ZsZEhOVFpYSjJhV05sUTI5dVptbG5QaUI3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVkdobElIQnliM1pwWkdWeUlHNWhiV1VnZFhObFpDQnBiaUJsY25KdmNpQnRaWE56WVdkbGMxeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJSEpsWVdSdmJteDVJSE5sY25acFkyVk9ZVzFsSUQwZ1hDSkhiMjluYkdVZ1UyaGxaWFJ6WENJN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlVhR1VnUjI5dloyeGxJRk5vWldWMGN5QjJOQ0IyWVd4MVpYTWdRVkJKSUdKaGMyVWdWVkpNWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRlZ6WldRZ2QyaGxiaUIwYUdVZ2NtVnpiMngyWldRZ1kyOXVabWxuSUdOaGNuSnBaWE1nYm04Z1lHSmhjMlZWY214Z0xseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN2MzUnlhVzVuZlNCZ1hDSm9kSFJ3Y3pvdkwzTm9aV1YwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzkyTkM5emNISmxZV1J6YUdWbGRITmNJbUF1WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1pHVm1ZWFZzZEVKaGMyVlZjbXdvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdYQ0pvZEhSd2N6b3ZMM05vWldWMGN5NW5iMjluYkdWaGNHbHpMbU52YlM5Mk5DOXpjSEpsWVdSemFHVmxkSE5jSWp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUW5WcGJHUnpJSFJvWlNCSGIyOW5iR1VnVTJobFpYUnpJR0YxZEdodmNtbDZZWFJwYjI0Z2FHVmhaR1Z5YzF4dUlDQWdLaUJBYzNWdGJXRnllU0JTWlhSMWNtNXpJSFJvWlNCZ1FYVjBhRzl5YVhwaGRHbHZiam9nUW1WaGNtVnlJRHgwYjJ0bGJqNWdJR2hsWVdSbGNpQjNhR1Z1SUhSb1pWeHVJQ0FnS2lCamIyNW1hV2NnWTJGeWNtbGxjeUJoYmlCUFFYVjBhQ0IwYjJ0bGJpd2diM1JvWlhKM2FYTmxJSFJvWlNCZ1dDMUhiMjluTFVGd2FTMUxaWGxnSUdobFlXUmxjaUIzYUdWdVhHNGdJQ0FxSUdGdUlFRlFTU0JyWlhrZ2FYTWdZMjl1Wm1sbmRYSmxaQ3dnWVc1a0lHNXZJR2hsWVdSbGNuTWdiM1JvWlhKM2FYTmxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwZHZiMmRzWlZOb1pXVjBjMU5sY25acFkyVkRiMjVtYVdkOUlHTnZibVpwWnlBdElGUm9aU0J5WlhOdmJIWmxaQ0J6WlhKMmFXTmxJR052Ym1acFozVnlZWFJwYjI0dVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytmU0JVYUdVZ1lYVjBhRzl5YVhwaGRHbHZiaUJvWldGa1pYSnpJQ2hsYlhCMGVTQjNhWFJvYjNWMElHRWdkRzlyWlc0Z2IzSWdRVkJKSUd0bGVTa3VYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWVhWMGFFaGxZV1JsY25Nb1hHNGdJQ0FnWTI5dVptbG5PaUJIYjI5bmJHVlRhR1ZsZEhOVFpYSjJhV05sUTI5dVptbG5YRzRnSUNrNklGSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejRnZTF4dUlDQWdJR2xtSUNoamIyNW1hV2N1ZEc5clpXNHBJSEpsZEhWeWJpQjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGpiMjVtYVdjdWRHOXJaVzU5WUNCOU8xeHVJQ0FnSUdsbUlDaGpiMjVtYVdjdVlYQnBTMlY1S1NCeVpYUjFjbTRnZXlCY0lsZ3RSMjl2WnkxQmNHa3RTMlY1WENJNklHTnZibVpwWnk1aGNHbExaWGtnZlR0Y2JpQWdJQ0J5WlhSMWNtNGdlMzA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsWVdSeklIUm9aU0JIYjI5bmJHVWdVMmhsWlhSeklHTnlaV1JsYm5ScFlXeHpJR0Z1WkNCa1pXWmhkV3gwY3lCbWNtOXRJSFJvWlNCbGJuWnBjbTl1YldWdWRGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCU1pXRmtjeUIwYUdVZ1lHbHZMbWR2YjJkc1pWTm9aV1YwYzJBZ1pXNTJhWEp2Ym0xbGJuUWdjMnhwWTJVZ1lXNWtJSEpsZEhWeWJuTWdZVnh1SUNBZ0tpQndZWEowYVdGc0lHTnZibVpwWnlCM2FHVnVJR0VnZEc5clpXNGdiM0lnUVZCSklHdGxlU0JwY3lCamIyNW1hV2QxY21Wa0xDQmdkVzVrWldacGJtVmtZRnh1SUNBZ0tpQnZkR2hsY25kcGMyVXVJRlpoYkhWbGN5QndZWE56SUhSb2NtOTFaMmdnWUdWdWRsTjBjbWx1WjJBdllHVnVkazUxYldKbGNtQWdkRzhnY21WcVpXTjBYRzRnSUNBcUlIVnVjMlYwTFd4bFlXWWdjSEp2ZUdsbGN5NWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQmhjblJwWVd3OFIyOXZaMnhsVTJobFpYUnpVMlZ5ZG1salpVTnZibVpwWno0Z2ZDQjFibVJsWm1sdVpXUjlJRUVnY0dGeWRHbGhiQ0JqYjI1bWFXY3NJRzl5SUdCMWJtUmxabWx1WldSZ0lIZG9aVzRnYm1WcGRHaGxjaUIwYjJ0bGJpQnViM0lnUVZCSklHdGxlU0JwY3lCamIyNW1hV2QxY21Wa0xseHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR052Ym1acFowWnliMjFGYm5acGNtOXViV1Z1ZENncE9seHVJQ0FnSUh3Z1VHRnlkR2xoYkR4SGIyOW5iR1ZUYUdWbGRITlRaWEoyYVdObFEyOXVabWxuUGx4dUlDQWdJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0JqYjI1emRDQmxibllnUFNCSmIwVnVkbWx5YjI1dFpXNTBMbWx2TG1kdmIyZHNaVk5vWldWMGN6dGNiaUFnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJR1Z1ZGxOMGNtbHVaeWhsYm5ZL0xuUnZhMlZ1S1R0Y2JpQWdJQ0JqYjI1emRDQmhjR2xMWlhrZ1BTQmxiblpUZEhKcGJtY29aVzUyUHk1aGNHbExaWGtwTzF4dUlDQWdJR2xtSUNnaGRHOXJaVzRnSmlZZ0lXRndhVXRsZVNrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdkRzlyWlc0c1hHNGdJQ0FnSUNCaGNHbExaWGtzWEc0Z0lDQWdJQ0JpWVhObFZYSnNPaUJsYm5aVGRISnBibWNvWlc1MkxtSmhjMlZWY213cExGeHVJQ0FnSUNBZ2RHbHRaVzkxZERvZ1pXNTJUblZ0WW1WeUtHVnVkaTUwYVcxbGIzVjBLU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkJjM05sY25SeklIUm9ZWFFnZEdobElITmxjblpwWTJVZ2QyRnpJR052Ym1acFozVnlaV1FnZDJsMGFDQlBRWFYwYUNCamNtVmtaVzUwYVdGc2MxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVWFISnZkM01nZDJobGJpQjBhR1VnY21WemIyeDJaV1FnWTI5dVptbG5JR05oY25KcFpYTWdibVZwZEdobGNpQmhJR0IwYjJ0bGJtQWdibTl5SUdGdVhHNGdJQ0FxSUdCaGNHbExaWGxnT3lCbGRtVnllU0J2Y0dWeVlYUnBiMjRnWTJGc2JITWdkR2hwY3lCaVpXWnZjbVVnYVhOemRXbHVaeUJ5WlhGMVpYTjBjeTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM1p2YVdSOVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2JtVnBkR2hsY2lCaGJpQlBRWFYwYUNCMGIydGxiaUJ1YjNJZ1lXNGdRVkJKSUd0bGVTQnBjeUJqYjI1bWFXZDFjbVZrTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lISmxjWFZwY21WQmRYUm9LQ2s2SUhadmFXUWdlMXh1SUNBZ0lHTnZibk4wSUdOdmJtWnBaeUE5SUhSb2FYTXVZMjl1Wm1sbk8xeHVJQ0FnSUdsbUlDZ2hZMjl1Wm1sbkxuUnZhMlZ1SUNZbUlDRmpiMjVtYVdjdVlYQnBTMlY1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKSGIyOW5iR1VnVTJobFpYUnpJSEpsY1hWcGNtVnpJR0Z1SUU5QmRYUm9JSFJ2YTJWdUlHOXlJR0Z1SUVGUVNTQnJaWGxjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRlZTVEMxbGJtTnZaR1Z6SUdGdUlFRXhJSEpoYm1kbElHWnZjaUIwYUdVZ2RtRnNkV1Z6SUVGUVNTQndZWFJvWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRkpoYm1kbGN5QnpkV05vSUdGeklHQlRhR1ZsZERFaFFURTZRakpnSUdOdmJuUmhhVzRnWTJoaGNtRmpkR1Z5Y3lCMGFHRjBJRzExYzNRZ1ltVmNiaUFnSUNvZ2NHVnlZMlZ1ZEMxbGJtTnZaR1ZrT3lCaGJHd2diM0JsY21GMGFXOXVjeUJ5YjNWMFpTQjBhR1VnY21GdVoyVWdkR2h5YjNWbmFDQjBhR2x6SUdobGJIQmxjaTVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlISmhibWRsSUMwZ1ZHaGxJRUV4SUc1dmRHRjBhVzl1SUhKaGJtZGxJSFJ2SUdWdVkyOWtaUzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlM04wY21sdVozMGdWR2hsSUZWU1RDMWxibU52WkdWa0lISmhibWRsTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lISmhibWRsVUdGMGFDaHlZVzVuWlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdaVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLSEpoYm1kbEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVmhaSE1nZG1Gc2RXVnpJR1p5YjIwZ1lXNGdRVEVnY21GdVoyVWdiMllnWVNCemNISmxZV1J6YUdWbGRGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCZ1IwVlVZSE1nZEdobElIWmhiSFZsY3lCbGJtUndiMmx1ZENCbWIzSWdkR2hsSUdkcGRtVnVJR0J6Y0hKbFlXUnphR1ZsZEVsa1lDQmhibVJjYmlBZ0lDb2dZSEpoYm1kbFlDQmhibVFnY21WMGRYSnVjeUIwYUdVZ2MyVnlkbVZrSUhKaGJtZGxMQ0J0WVdwdmNpQmthVzFsYm5OcGIyNHNJR0Z1WkNCMGFHVWdaM0pwWkZ4dUlDQWdLaUIyWVd4MVpYTWdLSEp2ZDNNZ2IyWWdZMlZzYkNCemRISnBibWR6S1M0Z1VtVnhkV2x5WlhNZ1kzSmxaR1Z1ZEdsaGJITWdZVzVrSUdKdmRHZ2dZWEpuZFcxbGJuUnpMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2MzQnlaV0ZrYzJobFpYUkpaQ0F0SUZSb1pTQnpjSEpsWVdSemFHVmxkQ0IwYnlCeVpXRmtJR1p5YjIwdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J5WVc1blpTQXRJRlJvWlNCQk1TQnViM1JoZEdsdmJpQnlZVzVuWlNCMGJ5QnlaV0ZrSUNobExtY3VJR0JjSWxOb1pXVjBNU0ZCTVRwRE1UQmNJbUFwTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhIYjI5bmJHVlRhR1ZsZEhOV1lXeDFaWE5TWlhOMWJIUStmU0JVYUdVZ2MyVnlkbVZrSUhKaGJtZGxJR0Z1WkNCbmNtbGtJSFpoYkhWbGN5NWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQmpjbVZrWlc1MGFXRnNjeUJoY21VZ2JXbHpjMmx1WnlCdmNpQjBhR1VnYzNCeVpXRmtjMmhsWlhRZ1NVUXZjbUZ1WjJVZ2FYTWdaVzF3ZEhrdVhHNGdJQ0FxSUVCMGFISnZkM01nZTA1dmRFWnZkVzVrUlhKeWIzSjlJRmRvWlc0Z2RHaGxJSE53Y21WaFpITm9aV1YwSUdSdlpYTWdibTkwSUdWNGFYTjBJQ2hJVkZSUUlEUXdOQ2t1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlME52Ym1ac2FXTjBSWEp5YjNKOUlGZG9aVzRnUjI5dloyeGxJR0Z1YzNkbGNuTWdkMmwwYUNCSVZGUlFJRFF3T1M1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UW1Ga1VtVnhkV1Z6ZEVWeWNtOXlmU0JYYUdWdUlFZHZiMmRzWlNCaGJuTjNaWEp6SUhkcGRHZ2dZVzU1SUc5MGFHVnlJRWhVVkZBZ1pYSnliM0lnYzNSaGRIVnpJQ2hsTG1jdUlHbHVkbUZzYVdRZ2NtRnVaMlVwTGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWjJWMFZtRnNkV1Z6S0Z4dUlDQWdJSE53Y21WaFpITm9aV1YwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J5WVc1blpUb2djM1J5YVc1blhHNGdJQ2s2SUZCeWIyMXBjMlU4UjI5dloyeGxVMmhsWlhSelZtRnNkV1Z6VW1WemRXeDBQaUI3WEc0Z0lDQWdkR2hwY3k1eVpYRjFhWEpsUVhWMGFDZ3BPMXh1SUNBZ0lHbG1JQ2doYzNCeVpXRmtjMmhsWlhSSlpDQjhmQ0FoY21GdVoyVXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmNJa2R2YjJkc1pTQlRhR1ZsZEhNZ1oyVjBWbUZzZFdWeklISmxjWFZwY21WeklHRWdjM0J5WldGa2MyaGxaWFFnU1VRZ1lXNWtJSEpoYm1kbFhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtZGxkRHhIYjI5bmJHVlRhR1ZsZEhOV1lXeDFaWE5TWlhOMWJIUStLRnh1SUNBZ0lDQWdJQ0JnTHlSN1pXNWpiMlJsVlZKSlEyOXRjRzl1Wlc1MEtITndjbVZoWkhOb1pXVjBTV1FwZlM5MllXeDFaWE12Skh0MGFHbHpMbkpoYm1kbFVHRjBhQ2h5WVc1blpTbDlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJSE53Y21WaFpITm9aV1YwU1dRc1hHNGdJQ0FnSUNBZ0lISmhibWRsT2lCeVpYTndiMjV6WlM1a1lYUmhMbkpoYm1kbElEOC9JSEpoYm1kbExGeHVJQ0FnSUNBZ0lDQnRZV3B2Y2tScGJXVnVjMmx2YmpvZ2NtVnpjRzl1YzJVdVpHRjBZUzV0WVdwdmNrUnBiV1Z1YzJsdmJpeGNiaUFnSUNBZ0lDQWdkbUZzZFdWek9pQnlaWE53YjI1elpTNWtZWFJoTG5aaGJIVmxjeUEvUHlCYlhTeGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJR2gwZEhCRmNuSnZjaWhjSWtkdmIyZHNaU0JUYUdWbGRITmNJaXdnWENKblpYUWdkbUZzZFdWelhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUU5MlpYSjNjbWwwWlhNZ2RtRnNkV1Z6SUdsdUlHRnVJRUV4SUhKaGJtZGxJRzltSUdFZ2MzQnlaV0ZrYzJobFpYUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1lGQlZWR0J6SUhSb1pTQnliM2NnZG1Gc2RXVnpJSFJ2SUhSb1pTQjJZV3gxWlhNZ1pXNWtjRzlwYm5RZ1ptOXlJSFJvWlNCbmFYWmxibHh1SUNBZ0tpQmdjM0J5WldGa2MyaGxaWFJKWkdBZ1lXNWtJR0J5WVc1blpXQXVJRU5sYkd4eklHRnlaU0JwYm5SbGNuQnlaWFJsWkNCaFkyTnZjbVJwYm1jZ2RHOWNiaUFnSUNvZ1lIWmhiSFZsU1c1d2RYUlBjSFJwYjI1Z0lDaGdYQ0pWVTBWU1gwVk9WRVZTUlVSY0ltQWdZbmtnWkdWbVlYVnNkQ3dnWUZ3aVVrRlhYQ0pnSUhSdklITjBiM0psSUhSbGVIUmNiaUFnSUNvZ2RtVnlZbUYwYVcwcExDQmhibVFnZEdobElHVjRhWE4wYVc1bklISmhibWRsSUdOdmJuUmxiblFnYVhNZ2NtVndiR0ZqWldRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UjI5dloyeGxVMmhsWlhSelYzSnBkR1ZKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnZEdGeVoyVjBJSE53Y21WaFpITm9aV1YwTENCeVlXNW5aU3dnZG1Gc2RXVnpMQ0JoYm1RZ2FXNXdkWFFnYVc1MFpYSndjbVYwWVhScGIyNHVYRzRnSUNBcUlFQnlaWFIxY201eklIdFFjbTl0YVhObFBFZHZiMmRzWlZOb1pXVjBjMVpoYkhWbGMxSmxjM1ZzZEQ1OUlGUm9aU0J6WlhKMlpXUWdjbUZ1WjJVZ1lXNWtJSFJvWlNCM2NtbDBkR1Z1SUhaaGJIVmxjeTVjYmlBZ0lDb2dRSFJvY205M2N5QjdTVzUwWlhKdVlXeEZjbkp2Y24wZ1YyaGxiaUJqY21Wa1pXNTBhV0ZzY3lCaGNtVWdiV2x6YzJsdVp5NWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1RtOTBSbTkxYm1SRmNuSnZjbjBnVjJobGJpQjBhR1VnYzNCeVpXRmtjMmhsWlhRZ1pHOWxjeUJ1YjNRZ1pYaHBjM1FnS0VoVVZGQWdOREEwS1M1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UTI5dVpteHBZM1JGY25KdmNuMGdWMmhsYmlCSGIyOW5iR1VnWVc1emQyVnljeUIzYVhSb0lFaFVWRkFnTkRBNUxseHVJQ0FnS2lCQWRHaHliM2R6SUh0Q1lXUlNaWEYxWlhOMFJYSnliM0o5SUZkb1pXNGdSMjl2WjJ4bElHRnVjM2RsY25NZ2QybDBhQ0JoYm5rZ2IzUm9aWElnU0ZSVVVDQmxjbkp2Y2lCemRHRjBkWE1nS0dVdVp5NGdhVzUyWVd4cFpDQnlZVzVuWlNrdVhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCMWNHUmhkR1ZXWVd4MVpYTW9YRzRnSUNBZ2FXNXdkWFE2SUVkdmIyZHNaVk5vWldWMGMxZHlhWFJsU1c1d2RYUmNiaUFnS1RvZ1VISnZiV2x6WlR4SGIyOW5iR1ZUYUdWbGRITldZV3gxWlhOU1pYTjFiSFErSUh0Y2JpQWdJQ0IwYUdsekxuSmxjWFZwY21WQmRYUm9LQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1amJHbGxiblF1Y0hWMFBFZHZiMmRzWlZOb1pXVjBjMVpoYkhWbGMxSmxjM1ZzZEQ0b1hHNGdJQ0FnSUNBZ0lHQXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvYVc1d2RYUXVjM0J5WldGa2MyaGxaWFJKWkNsOUwzWmhiSFZsY3k4a2UzUm9hWE11Y21GdVoyVlFZWFJvS0Z4dUlDQWdJQ0FnSUNBZ0lHbHVjSFYwTG5KaGJtZGxYRzRnSUNBZ0lDQWdJQ2w5WUN4Y2JpQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpoYm1kbE9pQnBibkIxZEM1eVlXNW5aU3hjYmlBZ0lDQWdJQ0FnSUNCdFlXcHZja1JwYldWdWMybHZiam9nWENKU1QxZFRYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1Z6T2lCcGJuQjFkQzUyWVd4MVpYTXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQndZWEpoYlhNNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxTVzV3ZFhSUGNIUnBiMjQ2SUdsdWNIVjBMblpoYkhWbFNXNXdkWFJQY0hScGIyNGdQejhnWENKVlUwVlNYMFZPVkVWU1JVUmNJaXhjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdjM0J5WldGa2MyaGxaWFJKWkRvZ2FXNXdkWFF1YzNCeVpXRmtjMmhsWlhSSlpDeGNiaUFnSUNBZ0lDQWdjbUZ1WjJVNklISmxjM0J2Ym5ObExtUmhkR0V1Y21GdVoyVWdQejhnYVc1d2RYUXVjbUZ1WjJVc1hHNGdJQ0FnSUNBZ0lHMWhhbTl5UkdsdFpXNXphVzl1T2lCeVpYTndiMjV6WlM1a1lYUmhMbTFoYW05eVJHbHRaVzV6YVc5dUlEOC9JRndpVWs5WFUxd2lMRnh1SUNBZ0lDQWdJQ0IyWVd4MVpYTTZJSEpsYzNCdmJuTmxMbVJoZEdFdWRtRnNkV1Z6SUQ4L0lHbHVjSFYwTG5aaGJIVmxjeXhjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrZHZiMmRzWlNCVGFHVmxkSE5jSWl3Z1hDSjFjR1JoZEdVZ2RtRnNkV1Z6WENJc0lHVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRUZ3Y0dWdVpITWdkbUZzZFdWeklHRm1kR1Z5SUhSb1pTQnNZWE4wSUhKdmR5QnZaaUJoYmlCQk1TQnlZVzVuWlNkeklIUmhZbXhsWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJR0JRVDFOVVlITWdkR2hsSUhKdmR5QjJZV3gxWlhNZ2RHOGdkR2hsSUdBNllYQndaVzVrWUNCbGJtUndiMmx1ZENCbWIzSWdkR2hsSUdkcGRtVnVYRzRnSUNBcUlHQnpjSEpsWVdSemFHVmxkRWxrWUNCaGJtUWdZSEpoYm1kbFlDd2dhVzV6WlhKMGFXNW5JRzVsZHlCeWIzZHpJR0ZtZEdWeUlHVjRhWE4wYVc1bklIUmhZbXhsSUdSaGRHRmNiaUFnSUNvZ0tHQnBibk5sY25SRVlYUmhUM0IwYVc5dU9pQmNJa2xPVTBWU1ZGOVNUMWRUWENKZ0tTNGdRMlZzYkhNZ1lYSmxJR2x1ZEdWeWNISmxkR1ZrSUdGalkyOXlaR2x1WnlCMGIxeHVJQ0FnS2lCZ2RtRnNkV1ZKYm5CMWRFOXdkR2x2Ym1BZ0tHQmNJbFZUUlZKZlJVNVVSVkpGUkZ3aVlDQmllU0JrWldaaGRXeDBLUzRnVlhObElHRWdjMmx1WjJ4bExYSnZkeUJ2Y2x4dUlDQWdLaUJ6YVc1bmJHVXRZMjlzZFcxdUlFRXhJSEpoYm1kbElIUnZJR0Z1WTJodmNpQjBhR1VnZEdGaWJHVTdJRWR2YjJkc1pTQnlaWEJ2Y25SeklIUm9aU0J5WVc1blpTQjBhR1ZjYmlBZ0lDb2daR0YwWVNCaFkzUjFZV3hzZVNCc1lXNWtaV1FnYVc0dVhHNGdJQ0FxSUVCd1lYSmhiU0I3UjI5dloyeGxVMmhsWlhSelYzSnBkR1ZKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnZEdGeVoyVjBJSE53Y21WaFpITm9aV1YwTENCaGJtTm9iM0lnY21GdVoyVXNJSFpoYkhWbGN5d2dZVzVrSUdsdWNIVjBJR2x1ZEdWeWNISmxkR0YwYVc5dUxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VISnZiV2x6WlR4SGIyOW5iR1ZUYUdWbGRITldZV3gxWlhOU1pYTjFiSFErZlNCVWFHVWdjbUZ1WjJVZ2RHaGxJR0Z3Y0dWdVpHVmtJSEp2ZDNNZ2JHRnVaR1ZrSUdsdUlHRnVaQ0IwYUdVZ1lYQndaVzVrWldRZ2RtRnNkV1Z6TGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUdOeVpXUmxiblJwWVd4eklHRnlaU0J0YVhOemFXNW5MbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJSFJvWlNCemNISmxZV1J6YUdWbGRDQmtiMlZ6SUc1dmRDQmxlR2x6ZENBb1NGUlVVQ0EwTURRcExseHVJQ0FnS2lCQWRHaHliM2R6SUh0RGIyNW1iR2xqZEVWeWNtOXlmU0JYYUdWdUlFZHZiMmRzWlNCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1Ea3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJIYjI5bmJHVWdZVzV6ZDJWeWN5QjNhWFJvSUdGdWVTQnZkR2hsY2lCSVZGUlFJR1Z5Y205eUlITjBZWFIxY3lBb1pTNW5MaUJwYm5aaGJHbGtJSEpoYm1kbEtTNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHRndjR1Z1WkZaaGJIVmxjeWhjYmlBZ0lDQnBibkIxZERvZ1IyOXZaMnhsVTJobFpYUnpWM0pwZEdWSmJuQjFkRnh1SUNBcE9pQlFjbTl0YVhObFBFZHZiMmRzWlZOb1pXVjBjMVpoYkhWbGMxSmxjM1ZzZEQ0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVRjFkR2dvS1R0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1d2IzTjBQRWR2YjJkc1pWTm9aV1YwYzFaaGJIVmxjMUpsYzNWc2RENG9YRzRnSUNBZ0lDQWdJR0F2Skh0bGJtTnZaR1ZWVWtsRGIyMXdiMjVsYm5Rb2FXNXdkWFF1YzNCeVpXRmtjMmhsWlhSSlpDbDlMM1poYkhWbGN5OGtlM1JvYVhNdWNtRnVaMlZRWVhSb0tGeHVJQ0FnSUNBZ0lDQWdJR2x1Y0hWMExuSmhibWRsWEc0Z0lDQWdJQ0FnSUNsOU9tRndjR1Z1WkdBc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0J5WVc1blpUb2dhVzV3ZFhRdWNtRnVaMlVzWEc0Z0lDQWdJQ0FnSUNBZ2JXRnFiM0pFYVcxbGJuTnBiMjQ2SUZ3aVVrOVhVMXdpTEZ4dUlDQWdJQ0FnSUNBZ0lIWmhiSFZsY3pvZ2FXNXdkWFF1ZG1Gc2RXVnpMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdjR0Z5WVcxek9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVWx1Y0hWMFQzQjBhVzl1T2lCcGJuQjFkQzUyWVd4MVpVbHVjSFYwVDNCMGFXOXVJRDgvSUZ3aVZWTkZVbDlGVGxSRlVrVkVYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnBibk5sY25SRVlYUmhUM0IwYVc5dU9pQmNJa2xPVTBWU1ZGOVNUMWRUWENJc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUhOd2NtVmhaSE5vWldWMFNXUTZJR2x1Y0hWMExuTndjbVZoWkhOb1pXVjBTV1FzWEc0Z0lDQWdJQ0FnSUhKaGJtZGxPaUJ5WlhOd2IyNXpaUzVrWVhSaExuSmhibWRsSUQ4L0lHbHVjSFYwTG5KaGJtZGxMRnh1SUNBZ0lDQWdJQ0J0WVdwdmNrUnBiV1Z1YzJsdmJqb2djbVZ6Y0c5dWMyVXVaR0YwWVM1dFlXcHZja1JwYldWdWMybHZiaUEvUHlCY0lsSlBWMU5jSWl4Y2JpQWdJQ0FnSUNBZ2RtRnNkV1Z6T2lCeVpYTndiMjV6WlM1a1lYUmhMblpoYkhWbGN5QS9QeUJiWFN4Y2JpQWdJQ0FnSUgwN1hHNGdJQ0FnZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHaDBkSEJGY25KdmNpaGNJa2R2YjJkc1pTQlRhR1ZsZEhOY0lpd2dYQ0poY0hCbGJtUWdkbUZzZFdWelhDSXNJR1Z5Y205eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOc1pXRnljeUJoYkd3Z2RtRnNkV1Z6SUdsdUlHRnVJRUV4SUhKaGJtZGxJRzltSUdFZ2MzQnlaV0ZrYzJobFpYUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1lGQlBVMVJnY3lCMGFHVWdZRHBqYkdWaGNtQWdaVzVrY0c5cGJuUWdabTl5SUhSb1pTQm5hWFpsYmlCZ2MzQnlaV0ZrYzJobFpYUkpaR0FnWVc1a1hHNGdJQ0FxSUdCeVlXNW5aV0FzSUdWdGNIUjVhVzVuSUhSb1pTQmpaV3hzY3lCM2FHbHNaU0J3Y21WelpYSjJhVzVuSUdadmNtMWhkSFJwYm1jc0lHRnVaQ0J5WlhSMWNtNXpJSFJvWlZ4dUlDQWdLaUJ5WVc1blpTQkhiMjluYkdVZ1lXTjBkV0ZzYkhrZ1kyeGxZWEpsWkM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE53Y21WaFpITm9aV1YwU1dRZ0xTQlVhR1VnYzNCeVpXRmtjMmhsWlhRZ2RHOGdZMnhsWVhJZ2RtRnNkV1Z6SUdsdUxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnY21GdVoyVWdMU0JVYUdVZ1FURWdibTkwWVhScGIyNGdjbUZ1WjJVZ2RHOGdZMnhsWVhJdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEh0emNISmxZV1J6YUdWbGRFbGtPaUJ6ZEhKcGJtY3NJR05zWldGeVpXUlNZVzVuWlRvZ2MzUnlhVzVuZlQ1OUlGUm9aU0JqYkdWaGNtVmtJSEpoYm1kbElHRnpJSEpsY0c5eWRHVmtJR0o1SUVkdmIyZHNaUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdTVzUwWlhKdVlXeEZjbkp2Y24wZ1YyaGxiaUJqY21Wa1pXNTBhV0ZzY3lCaGNtVWdiV2x6YzJsdVp5NWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1RtOTBSbTkxYm1SRmNuSnZjbjBnVjJobGJpQjBhR1VnYzNCeVpXRmtjMmhsWlhRZ1pHOWxjeUJ1YjNRZ1pYaHBjM1FnS0VoVVZGQWdOREEwS1M1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UTI5dVpteHBZM1JGY25KdmNuMGdWMmhsYmlCSGIyOW5iR1VnWVc1emQyVnljeUIzYVhSb0lFaFVWRkFnTkRBNUxseHVJQ0FnS2lCQWRHaHliM2R6SUh0Q1lXUlNaWEYxWlhOMFJYSnliM0o5SUZkb1pXNGdSMjl2WjJ4bElHRnVjM2RsY25NZ2QybDBhQ0JoYm5rZ2IzUm9aWElnU0ZSVVVDQmxjbkp2Y2lCemRHRjBkWE1nS0dVdVp5NGdhVzUyWVd4cFpDQnlZVzVuWlNrdVhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCamJHVmhjbFpoYkhWbGN5aGNiaUFnSUNCemNISmxZV1J6YUdWbGRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtRnVaMlU2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBIc2djM0J5WldGa2MyaGxaWFJKWkRvZ2MzUnlhVzVuT3lCamJHVmhjbVZrVW1GdVoyVTZJSE4wY21sdVp5QjlQaUI3WEc0Z0lDQWdkR2hwY3k1eVpYRjFhWEpsUVhWMGFDZ3BPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11WTJ4cFpXNTBMbkJ2YzNROGV5QmpiR1ZoY21Wa1VtRnVaMlUvT2lCemRISnBibWNnZlQ0b1hHNGdJQ0FnSUNBZ0lHQXZKSHRsYm1OdlpHVlZVa2xEYjIxd2IyNWxiblFvYzNCeVpXRmtjMmhsWlhSSlpDbDlMM1poYkhWbGN5OGtlM1JvYVhNdWNtRnVaMlZRWVhSb0tGeHVJQ0FnSUNBZ0lDQWdJSEpoYm1kbFhHNGdJQ0FnSUNBZ0lDbDlPbU5zWldGeVlDeGNiaUFnSUNBZ0lDQWdlMzFjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0J6Y0hKbFlXUnphR1ZsZEVsa0xGeHVJQ0FnSUNBZ0lDQmpiR1ZoY21Wa1VtRnVaMlU2SUhKbGMzQnZibk5sTG1SaGRHRXVZMnhsWVhKbFpGSmhibWRsSUQ4L0lISmhibWRsTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lSMjl2WjJ4bElGTm9aV1YwYzF3aUxDQmNJbU5zWldGeUlIWmhiSFZsYzF3aUxDQmxjbkp2Y2lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEY21WaGRHVnpJR0VnYm1WM0lITndjbVZoWkhOb1pXVjBJSGRwZEdnZ2RHaGxJR2RwZG1WdUlIUnBkR3hsWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJR0JRVDFOVVlITWdZU0J6Y0hKbFlXUnphR1ZsZENCeVpYTnZkWEpqWlNCM2FYUm9JR0J3Y205d1pYSjBhV1Z6TG5ScGRHeGxZQ0IwYnlCMGFHVmNiaUFnSUNvZ2MzQnlaV0ZrYzJobFpYUnpJR1Z1WkhCdmFXNTBJR0Z1WkNCeVpYUjFjbTV6SUhSb1pTQnVaWGNnYzNCeVpXRmtjMmhsWlhRbmN5QkpSQ0JoYm1RZ1ZWSk1MbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHbDBiR1VnTFNCVWFHVWdkR2wwYkdVZ1ptOXlJSFJvWlNCdVpYY2djM0J5WldGa2MyaGxaWFF1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSHR6Y0hKbFlXUnphR1ZsZEVsa09pQnpkSEpwYm1jc0lITndjbVZoWkhOb1pXVjBWWEpzUHpvZ2MzUnlhVzVuZlQ1OUlGUm9aU0JqY21WaGRHVmtJSE53Y21WaFpITm9aV1YwSjNNZ1NVUWdZVzVrSUZWU1RDNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnVjJobGJpQmpjbVZrWlc1MGFXRnNjeUJoY21VZ2JXbHpjMmx1WnlCdmNpQjBhR1VnZEdsMGJHVWdhWE1nWlcxd2RIa3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdSMjl2WjJ4bElHRnVjM2RsY25NZ2QybDBhQ0JJVkZSUUlEUXdOQzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRMjl1Wm14cFkzUkZjbkp2Y24wZ1YyaGxiaUJIYjI5bmJHVWdZVzV6ZDJWeWN5QjNhWFJvSUVoVVZGQWdOREE1TGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRDWVdSU1pYRjFaWE4wUlhKeWIzSjlJRmRvWlc0Z1IyOXZaMnhsSUdGdWMzZGxjbk1nZDJsMGFDQmhibmtnYjNSb1pYSWdTRlJVVUNCbGNuSnZjaUJ6ZEdGMGRYTXVYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QmpjbVZoZEdWVGNISmxZV1J6YUdWbGRDaGNiaUFnSUNCMGFYUnNaVG9nYzNSeWFXNW5YRzRnSUNrNklGQnliMjFwYzJVOGV5QnpjSEpsWVdSemFHVmxkRWxrT2lCemRISnBibWM3SUhOd2NtVmhaSE5vWldWMFZYSnNQem9nYzNSeWFXNW5JSDArSUh0Y2JpQWdJQ0IwYUdsekxuSmxjWFZwY21WQmRYUm9LQ2s3WEc0Z0lDQWdhV1lnS0NGMGFYUnNaU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpUjI5dloyeGxJRk5vWldWMGN5QmpjbVZoZEdWVGNISmxZV1J6YUdWbGRDQnlaWEYxYVhKbGN5QmhJSFJwZEd4bFhDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExuQnZjM1E4ZTF4dUlDQWdJQ0FnSUNCemNISmxZV1J6YUdWbGRFbGtPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQWdJSE53Y21WaFpITm9aV1YwVlhKc1B6b2djM1J5YVc1bk8xeHVJQ0FnSUNBZ2ZUNG9YQ0l2WENJc0lIdGNiaUFnSUNBZ0lDQWdjSEp2Y0dWeWRHbGxjem9nZXlCMGFYUnNaU0I5TEZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnSUNCemNISmxZV1J6YUdWbGRFbGtPaUJ5WlhOd2IyNXpaUzVrWVhSaExuTndjbVZoWkhOb1pXVjBTV1FzWEc0Z0lDQWdJQ0FnSUhOd2NtVmhaSE5vWldWMFZYSnNPaUJ5WlhOd2IyNXpaUzVrWVhSaExuTndjbVZoWkhOb1pXVjBWWEpzTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lSMjl2WjJ4bElGTm9aV1YwYzF3aUxDQmNJbU55WldGMFpTQnpjSEpsWVdSemFHVmxkRndpTENCbGNuSnZjaWs3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
287
+ //# sourceMappingURL=GoogleSheetsService.js.map
288
+ //# sourceMappingURL=GoogleSheetsService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/google-sheets/GoogleSheetsService.cjs","sourceRoot":"","sources":["io/google-sheets/GoogleSheetsService.js"],"names":[],"mappings":"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"}
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  * @description Re-exports the Google Sheets client-based service and its types.
21
21
  */
22
22
  __exportStar(require("./GoogleSheetsService.cjs"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vZ29vZ2xlLXNoZWV0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gseUNBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9pby9nb29nbGUtc2hlZXRzXG4gKiBAc3VtbWFyeSBHb29nbGUgU2hlZXRzIFJFU1QgdjQgc2VydmljZSAodmFsdWVzIHJlYWQvd3JpdGUvYXBwZW5kL2NsZWFyLCBzcHJlYWRzaGVldCBjcmVhdGlvbikuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgR29vZ2xlIFNoZWV0cyBjbGllbnQtYmFzZWQgc2VydmljZSBhbmQgaXRzIHR5cGVzLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9Hb29nbGVTaGVldHNTZXJ2aWNlXCI7XG4iXX0=
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDJEQUF5QztBQUN6Qywwb0JBQTBvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vZ29vZ2xlLXNoZWV0c1xuICogQHN1bW1hcnkgR29vZ2xlIFNoZWV0cyBSRVNUIHY0IHNlcnZpY2UgKHZhbHVlcyByZWFkL3dyaXRlL2FwcGVuZC9jbGVhciwgc3ByZWFkc2hlZXQgY3JlYXRpb24pLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIEdvb2dsZSBTaGVldHMgY2xpZW50LWJhc2VkIHNlcnZpY2UgYW5kIGl0cyB0eXBlcy5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR29vZ2xlU2hlZXRzU2VydmljZS5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12YVc4dloyOXZaMnhsTFhOb1pXVjBjeTlwYm1SbGVDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096dEhRVWxITzBGQlEwZ3NlVU5CUVhORElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkFiVzlrZFd4bElHbHVkR1ZuY21GMGFXOXVjeTlwYnk5bmIyOW5iR1V0YzJobFpYUnpYRzRnS2lCQWMzVnRiV0Z5ZVNCSGIyOW5iR1VnVTJobFpYUnpJRkpGVTFRZ2RqUWdjMlZ5ZG1salpTQW9kbUZzZFdWeklISmxZV1F2ZDNKcGRHVXZZWEJ3Wlc1a0wyTnNaV0Z5TENCemNISmxZV1J6YUdWbGRDQmpjbVZoZEdsdmJpa3VYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVV0Wlhod2IzSjBjeUIwYUdVZ1IyOXZaMnhsSUZOb1pXVjBjeUJqYkdsbGJuUXRZbUZ6WldRZ2MyVnlkbWxqWlNCaGJtUWdhWFJ6SUhSNWNHVnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUhiMjluYkdWVGFHVmxkSE5UWlhKMmFXTmxYQ0k3WEc0aVhYMD0iXX0=
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/google-sheets/index.cjs","sourceRoot":"","sources":["io/google-sheets/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,2DAAyC;AACzC,iCAAiC"}
@@ -139,5 +139,5 @@ class GraphqlService extends index_js_1.HttpApiService {
139
139
  }
140
140
  }
141
141
  exports.GraphqlService = GraphqlService;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhxbFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vZ3JhcGhxbC9HcmFwaHFsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSw0QkFBdUI7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsMkNBQXNDO0FBQ3JFLE9BQU8sRUFDTCxjQUFjLEVBRWQsU0FBUyxHQUNWLHFDQUEwQjtBQW1FM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsY0FBb0M7SUFBeEU7O1FBQ0U7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7SUF5RzdDLENBQUM7SUF2R0M7Ozs7OztPQU1HO0lBQ08sY0FBYztRQUN0QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFrQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sV0FBVyxDQUFDLE1BQTRCO1FBQ2hELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08scUJBQXFCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNoQyxPQUFPO1lBQ0wsUUFBUTtZQUNSLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUMzQixPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQXFCO1FBRXJCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sSUFBSSxhQUFhLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQyxRQUFRLEVBQ1I7Z0JBQ0UsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzFCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTthQUNuQyxFQUNELEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDM0IsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbC9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBHZW5lcmljIEdyYXBoUUwgZW5kcG9pbnQgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgZXhlY3V0aW5nIHF1ZXJpZXMgYW5kIG11dGF0aW9ucy5cbiAqIEBkZXNjcmlwdGlvbiBQb3N0cyBHcmFwaFFMIGRvY3VtZW50cyB0byBhbnkgZW5kcG9pbnQgYXMgYW4gdW5kZWNvcmF0ZWRcbiAqIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uIHtAbGluayBIdHRwQXBpU2VydmljZX0uXG4gKiBUaGUgZW5kcG9pbnQgaXMgc3VwcGxpZWQgYXMgYGVuZHBvaW50YCAoYW4gYWxpYXMgbm9ybWFsaXplZCB0byBgYmFzZVVybGBcbiAqIGR1cmluZyBpbml0aWFsaXphdGlvbikgb3IgdGhlIGBpby5ncmFwaHFsYCBlbnZpcm9ubWVudCBzbGljZTsgYW4gb3B0aW9uYWxcbiAqIGJlYXJlciB0b2tlbiBpcyBhdHRhY2hlZCB0byBldmVyeSByZXF1ZXN0LCBwZXItcmVxdWVzdCBoZWFkZXJzIGNhbiBleHRlbmRcbiAqIGl0LCBhbmQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LiBHcmFwaFFMXG4gKiBmaWVsZC1sZXZlbCBgZXJyb3JzYCBhcmUgcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlIHJhdGhlciB0aGFuIHRocm93biDigJRcbiAqIGNhbGxlcnMgZGVjaWRlIGhvdyB0byBoYW5kbGUgcGFydGlhbCByZXN1bHRzLlxuICovXG5pbXBvcnQgeyB0eXBlIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBBeGlvc0luc3RhbmNlIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgeyBJb0Vudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuaW1wb3J0IHtcbiAgSHR0cEFwaVNlcnZpY2UsXG4gIHR5cGUgSHR0cEFwaVNlcnZpY2VDb25maWcsXG4gIGh0dHBFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9odHRwXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBHcmFwaFFMIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEV4dGVuZHMge0BsaW5rIEh0dHBBcGlTZXJ2aWNlQ29uZmlnfSB3aXRoIHRoZSBHcmFwaFFMIGBlbmRwb2ludGBcbiAqIFVSTCAobm9ybWFsaXplZCB0byBgYmFzZVVybGAgZHVyaW5nIGluaXRpYWxpemF0aW9uKSBhbmQgdGhlIG9wdGlvbmFsIGJlYXJlclxuICogdG9rZW4uIFdoZW4gb21pdHRlZCwgdGhlIGBpby5ncmFwaHFsYCBlbnZpcm9ubWVudCBzbGljZSBzdXBwbGllcyB0aGVcbiAqIGVuZHBvaW50IChhbmQgb3B0aW9uYWwgYHRva2VuYCwgYHRpbWVvdXRgKS5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhxbFNlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR3JhcGhRTCBlbmRwb2ludCBVUkxcbiAgICogQHN1bW1hcnkgQWxpYXNlZCB0byBgYmFzZVVybGAgYnkge0BsaW5rIEdyYXBocWxTZXJ2aWNlLmluaXRpYWxpemV9OyBldmVyeVxuICAgKiByZXF1ZXN0IGlzIHBvc3RlZCB0byB0aGlzIFVSTC5cbiAgICovXG4gIGVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJlYXJlciB0b2tlbiBmb3IgdGhlIGVuZHBvaW50XG4gICAqIEBzdW1tYXJ5IFNlbnQgYXMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCB3aXRoIGV2ZXJ5IHJlcXVlc3QuXG4gICAqL1xuICB0b2tlbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIGEgR3JhcGhRTCByZXF1ZXN0XG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSBgcXVlcnlgIGRvY3VtZW50LCB0aGUgYHZhcmlhYmxlc2AgbWFwIHJlZmVyZW5jZWQgYnlcbiAqIGl0LCB0aGUgb3B0aW9uYWwgYG9wZXJhdGlvbk5hbWVgIHdoZW4gdGhlIGRvY3VtZW50IGhvbGRzIG11bHRpcGxlIG5hbWVkXG4gKiBvcGVyYXRpb25zLCBhbmQgcGVyLXJlcXVlc3QgYGhlYWRlcnNgIG1lcmdlZCBpbnRvIHRoZSBjbGllbnQncyBkZWZhdWx0cy5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhxbFJlcXVlc3Qge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBHcmFwaFFMIHF1ZXJ5IG9yIG11dGF0aW9uIGRvY3VtZW50IChyZXF1aXJlZClcbiAgICovXG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVmFyaWFibGUgdmFsdWVzIGZvciB0aGUgZG9jdW1lbnQncyBkZWNsYXJlZCB2YXJpYWJsZXNcbiAgICovXG4gIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBvcGVyYXRpb24gdG8gZXhlY3V0ZSB3aGVuIHRoZSBkb2N1bWVudCBkZWZpbmVzIHNldmVyYWxcbiAgICovXG4gIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXh0cmEgaGVhZGVycyBtZXJnZWQgb3ZlciB0aGUgY2xpZW50J3MgZGVmYXVsdHMgZm9yIHRoaXMgcmVxdWVzdFxuICAgKi9cbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdyYXBoUUwgcmVzcG9uc2UgZW52ZWxvcGVcbiAqIEBzdW1tYXJ5IFRoZSBzdGFuZGFyZCBHcmFwaFFMIGV4ZWN1dGlvbiByZXN1bHQ6IGBkYXRhYCB3aGVuIHRoZSBvcGVyYXRpb25cbiAqIHByb2R1Y2VkIHJlc3VsdHMsIGZpZWxkLWxldmVsIGBlcnJvcnNgIChtZXNzYWdlIHBsdXMgcmVzcG9uc2UgcGF0aCkgd2hlblxuICogZXhlY3V0aW9uIHBhcnRpYWxseSBmYWlsZWQsIGFuZCBwcm92aWRlciBgZXh0ZW5zaW9uc2AuXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBgZGF0YWAgcGF5bG9hZC5cbiAqIEBjYXRlZ29yeSBJT1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhxbFJlc3BvbnNlPFQgPSB1bmtub3duPiB7XG4gIGRhdGE/OiBUO1xuICBlcnJvcnM/OiBBcnJheTx7IG1lc3NhZ2U6IHN0cmluZzsgcGF0aD86IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfT47XG4gIGV4dGVuc2lvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJpYyBHcmFwaFFMIGVuZHBvaW50IGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSB0aGF0IGBQT1NUYHMgR3JhcGhRTFxuICogZG9jdW1lbnRzIHRvIGFueSBlbmRwb2ludC4gVW5saWtlIHRoZSBvdGhlciBpbnRlZ3JhdGlvbiBzZXJ2aWNlcyB0aGVyZSBpc1xuICogbm8gZGVmYXVsdCBiYXNlIFVSTCDigJQgdGhlIGVuZHBvaW50IG11c3QgY29tZSBmcm9tIHRoZSBjb25maWcgKGBlbmRwb2ludGAgb3JcbiAqIGBiYXNlVXJsYCkgb3IgdGhlIGBpby5ncmFwaHFsYCBlbnZpcm9ubWVudCBzbGljZS4gSW5pdGlhbGl6YXRpb24gbm9ybWFsaXplc1xuICogdGhlIGBlbmRwb2ludGAgYWxpYXMgdG8gYGJhc2VVcmxgIGJlZm9yZSBkZWxlZ2F0aW5nIHRvIHRoZSBzaGFyZWRcbiAqIHtAbGluayBIdHRwQXBpU2VydmljZS5pbml0aWFsaXplfTsgdGhlIG9wdGlvbmFsIHRva2VuIGlzIHNlbnQgYXMgYSBiZWFyZXJcbiAqIGhlYWRlciBhbmQgcGVyLXJlcXVlc3QgaGVhZGVycyBleHRlbmQgaXQuIFRyYW5zcG9ydCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvXG4gKiBkZWNhZiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LCB3aGlsZSBHcmFwaFFMIGZpZWxkLWxldmVsIGBlcnJvcnNgIGFyZVxuICogcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlIGZvciB0aGUgY2FsbGVyIHRvIGludGVycHJldC5cbiAqIEBjbGFzcyBHcmFwaHFsU2VydmljZVxuICogQGNhdGVnb3J5IElPXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbFwiO1xuICpcbiAqIGNvbnN0IGdyYXBocWwgPSBuZXcgR3JhcGhxbFNlcnZpY2UoKTtcbiAqIGF3YWl0IGdyYXBocWwuaW5pdGlhbGl6ZSh7XG4gKiAgIGVuZHBvaW50OiBcImh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2dyYXBocWxcIixcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfR1JBUEhRTF9UT0tFTixcbiAqIH0pO1xuICogY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBncmFwaHFsLnJlcXVlc3Q8eyB1c2VyOiB7IG5hbWU6IHN0cmluZyB9IH0+KHtcbiAqICAgcXVlcnk6IGBxdWVyeSBHZXRVc2VyKCRpZDogSUQhKSB7XG4gKiAgICAgdXNlcihpZDogJGlkKSB7IG5hbWUgfVxuICogICB9YCxcbiAqICAgdmFyaWFibGVzOiB7IGlkOiBcIjEyM1wiIH0sXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbC9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaHFsU2VydmljZSBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlPEdyYXBocWxTZXJ2aWNlQ29uZmlnPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2VOYW1lID0gXCJHcmFwaFFMXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYWJzZW5jZSBvZiBhIGRlZmF1bHQgR3JhcGhRTCBlbmRwb2ludFxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBiZWNhdXNlIEdyYXBoUUwgZW5kcG9pbnRzIGFyZVxuICAgKiBwcm92aWRlci1zcGVjaWZpYzsge0BsaW5rIEdyYXBocWxTZXJ2aWNlLnJlcXVlc3R9IHJlamVjdHMgZXhlY3V0aW9uIHdoZW5cbiAgICogbm8gZW5kcG9pbnQgd2FzIGNvbmZpZ3VyZWQuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEFuIGVtcHR5IHN0cmluZy5cbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0QmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVzIHRoZSBgZW5kcG9pbnRgIGFsaWFzIGJlZm9yZSBzaGFyZWQgaW5pdGlhbGl6YXRpb25cbiAgICogQHN1bW1hcnkgV2hlbiB0aGUgcHJvdmlkZWQgY29uZmlnIGNhcnJpZXMgbm8gYGJhc2VVcmxgIGJ1dCBhbiBgZW5kcG9pbnRgLFxuICAgKiBjb3BpZXMgYGVuZHBvaW50YCBpbnRvIGBiYXNlVXJsYCBhbmQgZGVsZWdhdGVzIHRvXG4gICAqIHtAbGluayBIdHRwQXBpU2VydmljZS5pbml0aWFsaXplfSwgd2hpY2ggbWVyZ2VzIHRoZSBlbnZpcm9ubWVudCBzbGljZSBhbmRcbiAgICogYnVpbGRzIHRoZSBBeGlvcyBjbGllbnQuXG4gICAqIEBwYXJhbSB7Li4uTWF5YmVDb250ZXh0dWFsQXJnPGFueT59IGFyZ3MgLSBBbiBvcHRpb25hbCBgUGFydGlhbDxHcmFwaHFsU2VydmljZUNvbmZpZz5gLCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGEgZGVjYWYgYENvbnRleHRgLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y29uZmlnOiBHcmFwaHFsU2VydmljZUNvbmZpZywgY2xpZW50OiBBeGlvc0luc3RhbmNlfT59IFRoZSBtZXJnZWQgY29uZmlndXJhdGlvbiBhbmQgdGhlIGNvbmZpZ3VyZWQgQXhpb3MgaW5zdGFuY2UuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gYmFzZSBVUkwgY2FuIGJlIHJlc29sdmVkIGZyb20gdGhlIGNvbmZpZyBvciBlbnZpcm9ubWVudC5cbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx7IGNvbmZpZzogR3JhcGhxbFNlcnZpY2VDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgcHJvdmlkZWQgPSAoYXJnc1swXSA/PyB7fSkgYXMgUGFydGlhbDxHcmFwaHFsU2VydmljZUNvbmZpZz47XG4gICAgaWYgKCFwcm92aWRlZC5iYXNlVXJsICYmIHByb3ZpZGVkLmVuZHBvaW50KSB7XG4gICAgICBhcmdzWzBdID0geyAuLi5wcm92aWRlZCwgYmFzZVVybDogcHJvdmlkZWQuZW5kcG9pbnQgfTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmluaXRpYWxpemUoLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgR3JhcGhRTCBiZWFyZXIgYXV0aG9yaXphdGlvbiBoZWFkZXJzXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgaGVhZGVyIHdoZW4gdGhlXG4gICAqIGNvbmZpZyBjYXJyaWVzIGEgdG9rZW4sIGFuZCBubyBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIHtHcmFwaHFsU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGhlYWRlcnMgKGVtcHR5IHdpdGhvdXQgYSB0b2tlbikuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoY29uZmlnOiBHcmFwaHFsU2VydmljZUNvbmZpZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9IDoge307XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBHcmFwaFFMIGVuZHBvaW50IGFuZCB0b2tlbiBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGlvLmdyYXBocWxgIGVudmlyb25tZW50IHNsaWNlIGFuZCByZXR1cm5zIGEgcGFydGlhbFxuICAgKiBjb25maWcgKHdpdGggYGVuZHBvaW50YCBhbHNvIG1pcnJvcmVkIHRvIGBiYXNlVXJsYCkgd2hlbiBhbiBlbmRwb2ludCBpc1xuICAgKiBjb25maWd1cmVkLCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuIFZhbHVlcyBwYXNzIHRocm91Z2hcbiAgICogYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICogQHJldHVybnMge1BhcnRpYWw8R3JhcGhxbFNlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkfSBBIHBhcnRpYWwgY29uZmlnLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIEdyYXBoUUwgZW5kcG9pbnQgaXMgY29uZmlndXJlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTogUGFydGlhbDxHcmFwaHFsU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGVudiA9IElvRW52aXJvbm1lbnQuaW8uZ3JhcGhxbDtcbiAgICBjb25zdCBlbmRwb2ludCA9IGVudlN0cmluZyhlbnY/LmVuZHBvaW50KTtcbiAgICBpZiAoIWVuZHBvaW50KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBlbmRwb2ludCxcbiAgICAgIGJhc2VVcmw6IGVuZHBvaW50LFxuICAgICAgdG9rZW46IGVudlN0cmluZyhlbnYudG9rZW4pLFxuICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIEdyYXBoUUwgcXVlcnkgb3IgbXV0YXRpb24gYWdhaW5zdCB0aGUgY29uZmlndXJlZCBlbmRwb2ludFxuICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBzdGFuZGFyZCBHcmFwaFFMIHJlcXVlc3QgYm9keSAoYHF1ZXJ5YCxcbiAgICogYHZhcmlhYmxlc2AsIGBvcGVyYXRpb25OYW1lYCkgdG8gdGhlIHJlc29sdmVkIGVuZHBvaW50IHdpdGggdGhlIG9wdGlvbmFsXG4gICAqIHBlci1yZXF1ZXN0IGhlYWRlcnMgbWVyZ2VkIG92ZXIgdGhlIGNsaWVudCBkZWZhdWx0cy4gUmVxdWlyZXMgYVxuICAgKiBub24tZW1wdHkgcXVlcnkgYW5kIGEgY29uZmlndXJlZCBlbmRwb2ludC4gUmV0dXJucyB0aGUgcmF3IGV4ZWN1dGlvblxuICAgKiBlbnZlbG9wZTogZmllbGQtbGV2ZWwgYGVycm9yc2AgYXJlIHJlcG9ydGVkIGluIGBHcmFwaHFsUmVzcG9uc2UuZXJyb3JzYFxuICAgKiByYXRoZXIgdGhhbiB0aHJvd24sIHNvIGNhbGxlcnMgbXVzdCBpbnNwZWN0IHRoZW0gZm9yIHBhcnRpYWwgZmFpbHVyZXMuXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIGBkYXRhYCBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge0dyYXBocWxSZXF1ZXN0fSBpbnB1dCAtIFRoZSBxdWVyeSBkb2N1bWVudCwgdmFyaWFibGVzLCBvcGVyYXRpb24gbmFtZSwgYW5kIHBlci1yZXF1ZXN0IGhlYWRlcnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdyYXBocWxSZXNwb25zZTxUPj59IFRoZSBleGVjdXRpb24gZW52ZWxvcGUgd2l0aCBgZGF0YWAsIGBlcnJvcnNgLCBhbmQgYGV4dGVuc2lvbnNgLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIHRoZSBxdWVyeSBpcyBlbXB0eSBvciBubyBlbmRwb2ludCBpcyBjb25maWd1cmVkLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBlbmRwb2ludCBhbnN3ZXJzIHdpdGggSFRUUCA0MDQuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gdGhlIGVuZHBvaW50IGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIHRoZSBlbmRwb2ludCBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgYXN5bmMgcmVxdWVzdDxUID0gdW5rbm93bj4oXG4gICAgaW5wdXQ6IEdyYXBocWxSZXF1ZXN0XG4gICk6IFByb21pc2U8R3JhcGhxbFJlc3BvbnNlPFQ+PiB7XG4gICAgaWYgKCFpbnB1dC5xdWVyeSB8fCBpbnB1dC5xdWVyeS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkdyYXBoUUwgcmVxdWVzdCByZXF1aXJlcyBhIHF1ZXJ5XCIpO1xuICAgIH1cbiAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnLmVuZHBvaW50ID8/IHRoaXMuY29uZmlnLmJhc2VVcmw7XG4gICAgaWYgKCFlbmRwb2ludCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHcmFwaFFMIHJlcXVpcmVzIGFuIGVuZHBvaW50XCIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0PEdyYXBocWxSZXNwb25zZTxUPj4oXG4gICAgICAgIGVuZHBvaW50LFxuICAgICAgICB7XG4gICAgICAgICAgcXVlcnk6IGlucHV0LnF1ZXJ5LFxuICAgICAgICAgIHZhcmlhYmxlczogaW5wdXQudmFyaWFibGVzLFxuICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGlucHV0Lm9wZXJhdGlvbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHsgaGVhZGVyczogaW5wdXQuaGVhZGVycyB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIkdyYXBoUUxcIiwgXCJyZXF1ZXN0XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhxbFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaHFsU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBd0Q7QUFDeEQsd0RBQW9EO0FBQ3BELDRFQUEwRTtBQUMxRSwyREFBMEU7QUFDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQWEsY0FBZSxTQUFRLHlCQUFjO0lBQzlDO1FBQ0ksS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEI7O1dBRUc7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gsY0FBYztRQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLE1BQU07UUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILHFCQUFxQjtRQUNqQixNQUFNLEdBQUcsR0FBRyw4QkFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSwrQkFBUyxFQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUTtZQUNULE9BQU8sU0FBUyxDQUFDO1FBQ3JCLE9BQU87WUFDSCxRQUFRO1lBQ1IsT0FBTyxFQUFFLFFBQVE7WUFDakIsS0FBSyxFQUFFLElBQUEsK0JBQVMsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzNCLE9BQU8sRUFBRSxJQUFBLCtCQUFTLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztTQUNsQyxDQUFDO0lBQ04sQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sSUFBSSw2QkFBYSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM5QyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2FBQ3JDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFBLG9CQUFTLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBckdELHdDQXFHQztBQUNELDg4ZUFBODhlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgSW9FbnZpcm9ubWVudCB9IGZyb20gXCIuLy4uL2Vudmlyb25tZW50LmpzXCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlLmpzXCI7XG5pbXBvcnQgeyBIdHRwQXBpU2VydmljZSwgaHR0cEVycm9yLCB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9odHRwL2luZGV4LmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmljIEdyYXBoUUwgZW5kcG9pbnQgaW50ZWdyYXRpb24gc2VydmljZVxuICogQHN1bW1hcnkgQW4gdW5kZWNvcmF0ZWQgSFRUUCBzZXJ2aWNlIHRoYXQgYFBPU1RgcyBHcmFwaFFMXG4gKiBkb2N1bWVudHMgdG8gYW55IGVuZHBvaW50LiBVbmxpa2UgdGhlIG90aGVyIGludGVncmF0aW9uIHNlcnZpY2VzIHRoZXJlIGlzXG4gKiBubyBkZWZhdWx0IGJhc2UgVVJMIOKAlCB0aGUgZW5kcG9pbnQgbXVzdCBjb21lIGZyb20gdGhlIGNvbmZpZyAoYGVuZHBvaW50YCBvclxuICogYGJhc2VVcmxgKSBvciB0aGUgYGlvLmdyYXBocWxgIGVudmlyb25tZW50IHNsaWNlLiBJbml0aWFsaXphdGlvbiBub3JtYWxpemVzXG4gKiB0aGUgYGVuZHBvaW50YCBhbGlhcyB0byBgYmFzZVVybGAgYmVmb3JlIGRlbGVnYXRpbmcgdG8gdGhlIHNoYXJlZFxuICoge0BsaW5rIEh0dHBBcGlTZXJ2aWNlLmluaXRpYWxpemV9OyB0aGUgb3B0aW9uYWwgdG9rZW4gaXMgc2VudCBhcyBhIGJlYXJlclxuICogaGVhZGVyIGFuZCBwZXItcmVxdWVzdCBoZWFkZXJzIGV4dGVuZCBpdC4gVHJhbnNwb3J0IGZhaWx1cmVzIGFyZSBtYXBwZWQgdG9cbiAqIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0sIHdoaWxlIEdyYXBoUUwgZmllbGQtbGV2ZWwgYGVycm9yc2AgYXJlXG4gKiByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UgZm9yIHRoZSBjYWxsZXIgdG8gaW50ZXJwcmV0LlxuICogQGNsYXNzIEdyYXBocWxTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgSU9cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9pby9ncmFwaHFsXCI7XG4gKlxuICogY29uc3QgZ3JhcGhxbCA9IG5ldyBHcmFwaHFsU2VydmljZSgpO1xuICogYXdhaXQgZ3JhcGhxbC5pbml0aWFsaXplKHtcbiAqICAgZW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZ3JhcGhxbFwiLFxuICogICB0b2tlbjogcHJvY2Vzcy5lbnYuR1JBUEhfQ1JFREVOVElBTF9HUkFQSFFMX1RPS0VOLFxuICogfSk7XG4gKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdyYXBocWwucmVxdWVzdDx7IHVzZXI6IHsgbmFtZTogc3RyaW5nIH0gfT4oe1xuICogICBxdWVyeTogYHF1ZXJ5IEdldFVzZXIoJGlkOiBJRCEpIHtcbiAqICAgICB1c2VyKGlkOiAkaWQpIHsgbmFtZSB9XG4gKiAgIH1gLFxuICogICB2YXJpYWJsZXM6IHsgaWQ6IFwiMTIzXCIgfSxcbiAqIH0pO1xuICogYGBgXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9pby9ncmFwaHFsL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBocWxTZXJ2aWNlIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwcm92aWRlciBuYW1lIHVzZWQgaW4gZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2VydmljZU5hbWUgPSBcIkdyYXBoUUxcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBhYnNlbmNlIG9mIGEgZGVmYXVsdCBHcmFwaFFMIGVuZHBvaW50XG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgYmVjYXVzZSBHcmFwaFFMIGVuZHBvaW50cyBhcmVcbiAgICAgKiBwcm92aWRlci1zcGVjaWZpYzsge0BsaW5rIEdyYXBocWxTZXJ2aWNlLnJlcXVlc3R9IHJlamVjdHMgZXhlY3V0aW9uIHdoZW5cbiAgICAgKiBubyBlbmRwb2ludCB3YXMgY29uZmlndXJlZC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBbiBlbXB0eSBzdHJpbmcuXG4gICAgICovXG4gICAgZGVmYXVsdEJhc2VVcmwoKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTm9ybWFsaXplcyB0aGUgYGVuZHBvaW50YCBhbGlhcyBiZWZvcmUgc2hhcmVkIGluaXRpYWxpemF0aW9uXG4gICAgICogQHN1bW1hcnkgV2hlbiB0aGUgcHJvdmlkZWQgY29uZmlnIGNhcnJpZXMgbm8gYGJhc2VVcmxgIGJ1dCBhbiBgZW5kcG9pbnRgLFxuICAgICAqIGNvcGllcyBgZW5kcG9pbnRgIGludG8gYGJhc2VVcmxgIGFuZCBkZWxlZ2F0ZXMgdG9cbiAgICAgKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2UuaW5pdGlhbGl6ZX0sIHdoaWNoIG1lcmdlcyB0aGUgZW52aXJvbm1lbnQgc2xpY2UgYW5kXG4gICAgICogYnVpbGRzIHRoZSBBeGlvcyBjbGllbnQuXG4gICAgICogQHBhcmFtIHsuLi5NYXliZUNvbnRleHR1YWxBcmc8YW55Pn0gYXJncyAtIEFuIG9wdGlvbmFsIGBQYXJ0aWFsPEdyYXBocWxTZXJ2aWNlQ29uZmlnPmAsIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgYSBkZWNhZiBgQ29udGV4dGAuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8e2NvbmZpZzogR3JhcGhxbFNlcnZpY2VDb25maWcsIGNsaWVudDogQXhpb3NJbnN0YW5jZX0+fSBUaGUgbWVyZ2VkIGNvbmZpZ3VyYXRpb24gYW5kIHRoZSBjb25maWd1cmVkIEF4aW9zIGluc3RhbmNlLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gYmFzZSBVUkwgY2FuIGJlIHJlc29sdmVkIGZyb20gdGhlIGNvbmZpZyBvciBlbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZWQgPSAoYXJnc1swXSA/PyB7fSk7XG4gICAgICAgIGlmICghcHJvdmlkZWQuYmFzZVVybCAmJiBwcm92aWRlZC5lbmRwb2ludCkge1xuICAgICAgICAgICAgYXJnc1swXSA9IHsgLi4ucHJvdmlkZWQsIGJhc2VVcmw6IHByb3ZpZGVkLmVuZHBvaW50IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1cGVyLmluaXRpYWxpemUoLi4uYXJncyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIEdyYXBoUUwgYmVhcmVyIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgaGVhZGVyIHdoZW4gdGhlXG4gICAgICogY29uZmlnIGNhcnJpZXMgYSB0b2tlbiwgYW5kIG5vIGhlYWRlcnMgb3RoZXJ3aXNlLlxuICAgICAqIEBwYXJhbSB7R3JhcGhxbFNlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGhlYWRlcnMgKGVtcHR5IHdpdGhvdXQgYSB0b2tlbikuXG4gICAgICovXG4gICAgYXV0aEhlYWRlcnMoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9IDoge307XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyB0aGUgR3JhcGhRTCBlbmRwb2ludCBhbmQgdG9rZW4gZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgYGlvLmdyYXBocWxgIGVudmlyb25tZW50IHNsaWNlIGFuZCByZXR1cm5zIGEgcGFydGlhbFxuICAgICAqIGNvbmZpZyAod2l0aCBgZW5kcG9pbnRgIGFsc28gbWlycm9yZWQgdG8gYGJhc2VVcmxgKSB3aGVuIGFuIGVuZHBvaW50IGlzXG4gICAgICogY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzcyB0aHJvdWdoXG4gICAgICogYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxHcmFwaHFsU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gR3JhcGhRTCBlbmRwb2ludCBpcyBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpIHtcbiAgICAgICAgY29uc3QgZW52ID0gSW9FbnZpcm9ubWVudC5pby5ncmFwaHFsO1xuICAgICAgICBjb25zdCBlbmRwb2ludCA9IGVudlN0cmluZyhlbnY/LmVuZHBvaW50KTtcbiAgICAgICAgaWYgKCFlbmRwb2ludClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIGJhc2VVcmw6IGVuZHBvaW50LFxuICAgICAgICAgICAgdG9rZW46IGVudlN0cmluZyhlbnYudG9rZW4pLFxuICAgICAgICAgICAgdGltZW91dDogZW52TnVtYmVyKGVudi50aW1lb3V0KSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgR3JhcGhRTCBxdWVyeSBvciBtdXRhdGlvbiBhZ2FpbnN0IHRoZSBjb25maWd1cmVkIGVuZHBvaW50XG4gICAgICogQHN1bW1hcnkgYFBPU1RgcyB0aGUgc3RhbmRhcmQgR3JhcGhRTCByZXF1ZXN0IGJvZHkgKGBxdWVyeWAsXG4gICAgICogYHZhcmlhYmxlc2AsIGBvcGVyYXRpb25OYW1lYCkgdG8gdGhlIHJlc29sdmVkIGVuZHBvaW50IHdpdGggdGhlIG9wdGlvbmFsXG4gICAgICogcGVyLXJlcXVlc3QgaGVhZGVycyBtZXJnZWQgb3ZlciB0aGUgY2xpZW50IGRlZmF1bHRzLiBSZXF1aXJlcyBhXG4gICAgICogbm9uLWVtcHR5IHF1ZXJ5IGFuZCBhIGNvbmZpZ3VyZWQgZW5kcG9pbnQuIFJldHVybnMgdGhlIHJhdyBleGVjdXRpb25cbiAgICAgKiBlbnZlbG9wZTogZmllbGQtbGV2ZWwgYGVycm9yc2AgYXJlIHJlcG9ydGVkIGluIGBHcmFwaHFsUmVzcG9uc2UuZXJyb3JzYFxuICAgICAqIHJhdGhlciB0aGFuIHRocm93biwgc28gY2FsbGVycyBtdXN0IGluc3BlY3QgdGhlbSBmb3IgcGFydGlhbCBmYWlsdXJlcy5cbiAgICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBgZGF0YWAgcGF5bG9hZC5cbiAgICAgKiBAcGFyYW0ge0dyYXBocWxSZXF1ZXN0fSBpbnB1dCAtIFRoZSBxdWVyeSBkb2N1bWVudCwgdmFyaWFibGVzLCBvcGVyYXRpb24gbmFtZSwgYW5kIHBlci1yZXF1ZXN0IGhlYWRlcnMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8R3JhcGhxbFJlc3BvbnNlPFQ+Pn0gVGhlIGV4ZWN1dGlvbiBlbnZlbG9wZSB3aXRoIGBkYXRhYCwgYGVycm9yc2AsIGFuZCBgZXh0ZW5zaW9uc2AuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiB0aGUgcXVlcnkgaXMgZW1wdHkgb3Igbm8gZW5kcG9pbnQgaXMgY29uZmlndXJlZC5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBlbmRwb2ludCBhbnN3ZXJzIHdpdGggSFRUUCA0MDQuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiB0aGUgZW5kcG9pbnQgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiB0aGUgZW5kcG9pbnQgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICAgKi9cbiAgICBhc3luYyByZXF1ZXN0KGlucHV0KSB7XG4gICAgICAgIGlmICghaW5wdXQucXVlcnkgfHwgaW5wdXQucXVlcnkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJHcmFwaFFMIHJlcXVlc3QgcmVxdWlyZXMgYSBxdWVyeVwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuY29uZmlnLmVuZHBvaW50ID8/IHRoaXMuY29uZmlnLmJhc2VVcmw7XG4gICAgICAgIGlmICghZW5kcG9pbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiR3JhcGhRTCByZXF1aXJlcyBhbiBlbmRwb2ludFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KGVuZHBvaW50LCB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGlucHV0LnF1ZXJ5LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogaW5wdXQudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGlucHV0Lm9wZXJhdGlvbk5hbWUsXG4gICAgICAgICAgICB9LCB7IGhlYWRlcnM6IGlucHV0LmhlYWRlcnMgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIkdyYXBoUUxcIiwgXCJyZXF1ZXN0XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVIzSmhjR2h4YkZObGNuWnBZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmFXOHZaM0poY0doeGJDOUhjbUZ3YUhGc1UyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRmhRU3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRmVFUXNUMEZCVHl4RlFVRkZMR0ZCUVdFc1JVRkJSU3cwUWtGQmRVSTdRVUZETDBNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeFRRVUZUTEVWQlFVVXNNa05CUVhORE8wRkJRM0pGTEU5QlFVOHNSVUZEVEN4alFVRmpMRVZCUldRc1UwRkJVeXhIUVVOV0xIRkRRVUV3UWp0QlFXMUZNMEk3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFUaENSenRCUVVOSUxFMUJRVTBzVDBGQlR5eGpRVUZsTEZOQlFWRXNZMEZCYjBNN1NVRkJlRVU3TzFGQlEwVTdPMWRCUlVjN1VVRkRaMElzWjBKQlFWY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1NVRjVSemRETEVOQlFVTTdTVUYyUjBNN096czdPenRQUVUxSE8wbEJRMDhzWTBGQll6dFJRVU4wUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOYUxFTkJRVU03U1VGRlJEczdPenM3T3pzN08wOUJVMGM3U1VGRFNDeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRnJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhKUVVGSkxGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTXpReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRkZCUVZFc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUTNoRUxFTkJRVU03VVVGRFJDeFBRVUZQTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU51UXl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJRMDhzVjBGQlZ5eERRVUZETEUxQlFUUkNPMUZCUTJoRUxFOUJRVThzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hoUVVGaExFVkJRVVVzVlVGQlZTeE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlEzcEZMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwOHNjVUpCUVhGQ08xRkJRemRDTEUxQlFVMHNSMEZCUnl4SFFVRkhMR0ZCUVdFc1EwRkJReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETzFGQlEzSkRMRTFCUVUwc1VVRkJVU3hIUVVGSExGTkJRVk1zUTBGQlF5eEhRVUZITEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRNVU1zU1VGQlNTeERRVUZETEZGQlFWRTdXVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOb1F5eFBRVUZQTzFsQlEwd3NVVUZCVVR0WlFVTlNMRTlCUVU4c1JVRkJSU3hSUVVGUk8xbEJRMnBDTEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF6dFpRVU16UWl4UFFVRlBMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTTdVMEZEYUVNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3TzA5QlpVYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOWUxFdEJRWEZDTzFGQlJYSkNMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNCRUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNhME5CUVd0RExFTkJRVU1zUTBGQlF6dFJRVU01UkN4RFFVRkRPMUZCUTBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZETjBRc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXc0UWtGQk9FSXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVTnlReXhSUVVGUkxFVkJRMUk3WjBKQlEwVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTE8yZENRVU5zUWl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRExGTkJRVk03WjBKQlF6RkNMR0ZCUVdFc1JVRkJSU3hMUVVGTExFTkJRVU1zWVVGQllUdGhRVU51UXl4RlFVTkVMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZETTBJc1EwRkJRenRaUVVOR0xFOUJRVThzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0UlFVTjJRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTm1MRTFCUVUwc1UwRkJVeXhEUVVGRExGTkJRVk1zUlVGQlJTeFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRMME1zUTBGQlF6dEpRVU5JTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZhVzh2WjNKaGNHaHhiQzl6WlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCSFpXNWxjbWxqSUVkeVlYQm9VVXdnWlc1a2NHOXBiblFnYVc1MFpXZHlZWFJwYjI0Z2MyVnlkbWxqWlNCbWIzSWdaWGhsWTNWMGFXNW5JSEYxWlhKcFpYTWdZVzVrSUcxMWRHRjBhVzl1Y3k1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCUWIzTjBjeUJIY21Gd2FGRk1JR1J2WTNWdFpXNTBjeUIwYnlCaGJua2daVzVrY0c5cGJuUWdZWE1nWVc0Z2RXNWtaV052Y21GMFpXUmNiaUFxSUdOc2FXVnVkQzFpWVhObFpDQnpaWEoyYVdObElHSjFhV3gwSUc5dUlIdEFiR2x1YXlCSWRIUndRWEJwVTJWeWRtbGpaWDB1WEc0Z0tpQlVhR1VnWlc1a2NHOXBiblFnYVhNZ2MzVndjR3hwWldRZ1lYTWdZR1Z1WkhCdmFXNTBZQ0FvWVc0Z1lXeHBZWE1nYm05eWJXRnNhWHBsWkNCMGJ5QmdZbUZ6WlZWeWJHQmNiaUFxSUdSMWNtbHVaeUJwYm1sMGFXRnNhWHBoZEdsdmJpa2diM0lnZEdobElHQnBieTVuY21Gd2FIRnNZQ0JsYm5acGNtOXViV1Z1ZENCemJHbGpaVHNnWVc0Z2IzQjBhVzl1WVd4Y2JpQXFJR0psWVhKbGNpQjBiMnRsYmlCcGN5QmhkSFJoWTJobFpDQjBieUJsZG1WeWVTQnlaWEYxWlhOMExDQndaWEl0Y21WeGRXVnpkQ0JvWldGa1pYSnpJR05oYmlCbGVIUmxibVJjYmlBcUlHbDBMQ0JoYm1RZ1ptRnBiSFZ5WlhNZ1lYSmxJRzFoY0hCbFpDQjBieUJrWldOaFppQmxjbkp2Y25NZ2RtbGhJSHRBYkdsdWF5Qm9kSFJ3UlhKeWIzSjlMaUJIY21Gd2FGRk1YRzRnS2lCbWFXVnNaQzFzWlhabGJDQmdaWEp5YjNKellDQmhjbVVnY21WMGRYSnVaV1FnYVc0Z2RHaGxJSEpsYzNCdmJuTmxJSEpoZEdobGNpQjBhR0Z1SUhSb2NtOTNiaURpZ0pSY2JpQXFJR05oYkd4bGNuTWdaR1ZqYVdSbElHaHZkeUIwYnlCb1lXNWtiR1VnY0dGeWRHbGhiQ0J5WlhOMWJIUnpMbHh1SUNvdlhHNXBiWEJ2Y25RZ2V5QjBlWEJsSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1NXNTBaWEp1WVd4RmNuSnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkJlR2x2YzBsdWMzUmhibU5sSUgwZ1puSnZiU0JjSW1GNGFXOXpYQ0k3WEc1cGJYQnZjblFnZXlCSmIwVnVkbWx5YjI1dFpXNTBJSDBnWm5KdmJTQmNJaTR1TDJWdWRtbHliMjV0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJsYm5aT2RXMWlaWElzSUdWdWRsTjBjbWx1WnlCOUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZaVzUyYVhKdmJtMWxiblJXWVd4MVpWd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1NIUjBjRUZ3YVZObGNuWnBZMlVzWEc0Z0lIUjVjR1VnU0hSMGNFRndhVk5sY25acFkyVkRiMjVtYVdjc1hHNGdJR2gwZEhCRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOW9kSFJ3WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVOdmJtWnBaM1Z5WVhScGIyNGdabTl5SUhSb1pTQkhjbUZ3YUZGTUlITmxjblpwWTJWY2JpQXFJRUJ6ZFcxdFlYSjVJRVY0ZEdWdVpITWdlMEJzYVc1cklFaDBkSEJCY0dsVFpYSjJhV05sUTI5dVptbG5mU0IzYVhSb0lIUm9aU0JIY21Gd2FGRk1JR0JsYm1Sd2IybHVkR0JjYmlBcUlGVlNUQ0FvYm05eWJXRnNhWHBsWkNCMGJ5QmdZbUZ6WlZWeWJHQWdaSFZ5YVc1bklHbHVhWFJwWVd4cGVtRjBhVzl1S1NCaGJtUWdkR2hsSUc5d2RHbHZibUZzSUdKbFlYSmxjbHh1SUNvZ2RHOXJaVzR1SUZkb1pXNGdiMjFwZEhSbFpDd2dkR2hsSUdCcGJ5NW5jbUZ3YUhGc1lDQmxiblpwY205dWJXVnVkQ0J6YkdsalpTQnpkWEJ3YkdsbGN5QjBhR1ZjYmlBcUlHVnVaSEJ2YVc1MElDaGhibVFnYjNCMGFXOXVZV3dnWUhSdmEyVnVZQ3dnWUhScGJXVnZkWFJnS1M1Y2JpQXFJRUJqWVhSbFoyOXllU0JKVDF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12YVc4dlozSmhjR2h4YkM5elpYSjJhV05sWEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSM0poY0doeGJGTmxjblpwWTJWRGIyNW1hV2NnWlhoMFpXNWtjeUJJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWnlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1IzSmhjR2hSVENCbGJtUndiMmx1ZENCVlVreGNiaUFnSUNvZ1FITjFiVzFoY25rZ1FXeHBZWE5sWkNCMGJ5QmdZbUZ6WlZWeWJHQWdZbmtnZTBCc2FXNXJJRWR5WVhCb2NXeFRaWEoyYVdObExtbHVhWFJwWVd4cGVtVjlPeUJsZG1WeWVWeHVJQ0FnS2lCeVpYRjFaWE4wSUdseklIQnZjM1JsWkNCMGJ5QjBhR2x6SUZWU1RDNWNiaUFnSUNvdlhHNGdJR1Z1WkhCdmFXNTBQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRUpsWVhKbGNpQjBiMnRsYmlCbWIzSWdkR2hsSUdWdVpIQnZhVzUwWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk5sYm5RZ1lYTWdZRUYxZEdodmNtbDZZWFJwYjI0NklFSmxZWEpsY2lBOGRHOXJaVzQrWUNCM2FYUm9JR1YyWlhKNUlISmxjWFZsYzNRdVhHNGdJQ0FxTDF4dUlDQjBiMnRsYmo4NklITjBjbWx1Wnp0Y2JuMWNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1NXNXdkWFFnWm05eUlHRWdSM0poY0doUlRDQnlaWEYxWlhOMFhHNGdLaUJBYzNWdGJXRnllU0JEWVhKeWFXVnpJSFJvWlNCZ2NYVmxjbmxnSUdSdlkzVnRaVzUwTENCMGFHVWdZSFpoY21saFlteGxjMkFnYldGd0lISmxabVZ5Wlc1alpXUWdZbmxjYmlBcUlHbDBMQ0IwYUdVZ2IzQjBhVzl1WVd3Z1lHOXdaWEpoZEdsdmJrNWhiV1ZnSUhkb1pXNGdkR2hsSUdSdlkzVnRaVzUwSUdodmJHUnpJRzExYkhScGNHeGxJRzVoYldWa1hHNGdLaUJ2Y0dWeVlYUnBiMjV6TENCaGJtUWdjR1Z5TFhKbGNYVmxjM1FnWUdobFlXUmxjbk5nSUcxbGNtZGxaQ0JwYm5SdklIUm9aU0JqYkdsbGJuUW5jeUJrWldaaGRXeDBjeTVjYmlBcUlFQmpZWFJsWjI5eWVTQkpUMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZhVzh2WjNKaGNHaHhiQzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1IzSmhjR2h4YkZKbGNYVmxjM1FnZTF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZSb1pTQkhjbUZ3YUZGTUlIRjFaWEo1SUc5eUlHMTFkR0YwYVc5dUlHUnZZM1Z0Wlc1MElDaHlaWEYxYVhKbFpDbGNiaUFnSUNvdlhHNGdJSEYxWlhKNU9pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZtRnlhV0ZpYkdVZ2RtRnNkV1Z6SUdadmNpQjBhR1VnWkc5amRXMWxiblFuY3lCa1pXTnNZWEpsWkNCMllYSnBZV0pzWlhOY2JpQWdJQ292WEc0Z0lIWmhjbWxoWW14bGN6ODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K08xeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGUm9aU0J2Y0dWeVlYUnBiMjRnZEc4Z1pYaGxZM1YwWlNCM2FHVnVJSFJvWlNCa2IyTjFiV1Z1ZENCa1pXWnBibVZ6SUhObGRtVnlZV3hjYmlBZ0lDb3ZYRzRnSUc5d1pYSmhkR2x2Yms1aGJXVS9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGgwY21FZ2FHVmhaR1Z5Y3lCdFpYSm5aV1FnYjNabGNpQjBhR1VnWTJ4cFpXNTBKM01nWkdWbVlYVnNkSE1nWm05eUlIUm9hWE1nY21WeGRXVnpkRnh1SUNBZ0tpOWNiaUFnYUdWaFpHVnljejg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSE4wY21sdVp6NDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRWR5WVhCb1VVd2djbVZ6Y0c5dWMyVWdaVzUyWld4dmNHVmNiaUFxSUVCemRXMXRZWEo1SUZSb1pTQnpkR0Z1WkdGeVpDQkhjbUZ3YUZGTUlHVjRaV04xZEdsdmJpQnlaWE4xYkhRNklHQmtZWFJoWUNCM2FHVnVJSFJvWlNCdmNHVnlZWFJwYjI1Y2JpQXFJSEJ5YjJSMVkyVmtJSEpsYzNWc2RITXNJR1pwWld4a0xXeGxkbVZzSUdCbGNuSnZjbk5nSUNodFpYTnpZV2RsSUhCc2RYTWdjbVZ6Y0c5dWMyVWdjR0YwYUNrZ2QyaGxibHh1SUNvZ1pYaGxZM1YwYVc5dUlIQmhjblJwWVd4c2VTQm1ZV2xzWldRc0lHRnVaQ0J3Y205MmFXUmxjaUJnWlhoMFpXNXphVzl1YzJBdVhHNGdLaUJBZEdWdGNHeGhkR1VnVkNBdElGUm9aU0JsZUhCbFkzUmxaQ0IwZVhCbElHOW1JSFJvWlNCZ1pHRjBZV0FnY0dGNWJHOWhaQzVjYmlBcUlFQmpZWFJsWjI5eWVTQkpUMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZhVzh2WjNKaGNHaHhiQzl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1IzSmhjR2h4YkZKbGMzQnZibk5sUEZRZ1BTQjFibXR1YjNkdVBpQjdYRzRnSUdSaGRHRS9PaUJVTzF4dUlDQmxjbkp2Y25NL09pQkJjbkpoZVR4N0lHMWxjM05oWjJVNklITjBjbWx1WnpzZ2NHRjBhRDg2SUVGeWNtRjVQSE4wY21sdVp5QjhJRzUxYldKbGNqNGdmVDQ3WEc0Z0lHVjRkR1Z1YzJsdmJuTS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdSMlZ1WlhKcFl5QkhjbUZ3YUZGTUlHVnVaSEJ2YVc1MElHbHVkR1ZuY21GMGFXOXVJSE5sY25acFkyVmNiaUFxSUVCemRXMXRZWEo1SUVGdUlIVnVaR1ZqYjNKaGRHVmtJRWhVVkZBZ2MyVnlkbWxqWlNCMGFHRjBJR0JRVDFOVVlITWdSM0poY0doUlRGeHVJQ29nWkc5amRXMWxiblJ6SUhSdklHRnVlU0JsYm1Sd2IybHVkQzRnVlc1c2FXdGxJSFJvWlNCdmRHaGxjaUJwYm5SbFozSmhkR2x2YmlCelpYSjJhV05sY3lCMGFHVnlaU0JwYzF4dUlDb2dibThnWkdWbVlYVnNkQ0JpWVhObElGVlNUQ0RpZ0pRZ2RHaGxJR1Z1WkhCdmFXNTBJRzExYzNRZ1kyOXRaU0JtY205dElIUm9aU0JqYjI1bWFXY2dLR0JsYm1Sd2IybHVkR0FnYjNKY2JpQXFJR0JpWVhObFZYSnNZQ2tnYjNJZ2RHaGxJR0JwYnk1bmNtRndhSEZzWUNCbGJuWnBjbTl1YldWdWRDQnpiR2xqWlM0Z1NXNXBkR2xoYkdsNllYUnBiMjRnYm05eWJXRnNhWHBsYzF4dUlDb2dkR2hsSUdCbGJtUndiMmx1ZEdBZ1lXeHBZWE1nZEc4Z1lHSmhjMlZWY214Z0lHSmxabTl5WlNCa1pXeGxaMkYwYVc1bklIUnZJSFJvWlNCemFHRnlaV1JjYmlBcUlIdEFiR2x1YXlCSWRIUndRWEJwVTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsZlRzZ2RHaGxJRzl3ZEdsdmJtRnNJSFJ2YTJWdUlHbHpJSE5sYm5RZ1lYTWdZU0JpWldGeVpYSmNiaUFxSUdobFlXUmxjaUJoYm1RZ2NHVnlMWEpsY1hWbGMzUWdhR1ZoWkdWeWN5QmxlSFJsYm1RZ2FYUXVJRlJ5WVc1emNHOXlkQ0JtWVdsc2RYSmxjeUJoY21VZ2JXRndjR1ZrSUhSdlhHNGdLaUJrWldOaFppQmxjbkp2Y25NZ2RtbGhJSHRBYkdsdWF5Qm9kSFJ3UlhKeWIzSjlMQ0IzYUdsc1pTQkhjbUZ3YUZGTUlHWnBaV3hrTFd4bGRtVnNJR0JsY25KdmNuTmdJR0Z5WlZ4dUlDb2djbVYwZFhKdVpXUWdhVzRnZEdobElISmxjM0J2Ym5ObElHWnZjaUIwYUdVZ1kyRnNiR1Z5SUhSdklHbHVkR1Z5Y0hKbGRDNWNiaUFxSUVCamJHRnpjeUJIY21Gd2FIRnNVMlZ5ZG1salpWeHVJQ29nUUdOaGRHVm5iM0o1SUVsUFhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ1lHQmdkSE5jYmlBcUlHbHRjRzl5ZENCN0lFZHlZWEJvY1d4VFpYSjJhV05sSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5cGJuUmxaM0poZEdsdmJuTXZhVzh2WjNKaGNHaHhiRndpTzF4dUlDcGNiaUFxSUdOdmJuTjBJR2R5WVhCb2NXd2dQU0J1WlhjZ1IzSmhjR2h4YkZObGNuWnBZMlVvS1R0Y2JpQXFJR0YzWVdsMElHZHlZWEJvY1d3dWFXNXBkR2xoYkdsNlpTaDdYRzRnS2lBZ0lHVnVaSEJ2YVc1ME9pQmNJbWgwZEhCek9pOHZZWEJwTG1WNFlXMXdiR1V1WTI5dEwyZHlZWEJvY1d4Y0lpeGNiaUFxSUNBZ2RHOXJaVzQ2SUhCeWIyTmxjM011Wlc1MkxrZFNRVkJJWDBOU1JVUkZUbFJKUVV4ZlIxSkJVRWhSVEY5VVQwdEZUaXhjYmlBcUlIMHBPMXh1SUNvZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0JuY21Gd2FIRnNMbkpsY1hWbGMzUThleUIxYzJWeU9pQjdJRzVoYldVNklITjBjbWx1WnlCOUlIMCtLSHRjYmlBcUlDQWdjWFZsY25rNklHQnhkV1Z5ZVNCSFpYUlZjMlZ5S0NScFpEb2dTVVFoS1NCN1hHNGdLaUFnSUNBZ2RYTmxjaWhwWkRvZ0pHbGtLU0I3SUc1aGJXVWdmVnh1SUNvZ0lDQjlZQ3hjYmlBcUlDQWdkbUZ5YVdGaWJHVnpPaUI3SUdsa09pQmNJakV5TTF3aUlIMHNYRzRnS2lCOUtUdGNiaUFxSUdCZ1lGeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBwYm5SbFozSmhkR2x2Ym5NdmFXOHZaM0poY0doeGJDOXpaWEoyYVdObFhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5QkhjbUZ3YUhGc1UyVnlkbWxqWlNCbGVIUmxibVJ6SUVoMGRIQkJjR2xUWlhKMmFXTmxQRWR5WVhCb2NXeFRaWEoyYVdObFEyOXVabWxuUGlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZHaGxJSEJ5YjNacFpHVnlJRzVoYldVZ2RYTmxaQ0JwYmlCbGNuSnZjaUJ0WlhOellXZGxjMXh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUhKbFlXUnZibXg1SUhObGNuWnBZMlZPWVcxbElEMGdYQ0pIY21Gd2FGRk1YQ0k3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVWFHVWdZV0p6Wlc1alpTQnZaaUJoSUdSbFptRjFiSFFnUjNKaGNHaFJUQ0JsYm1Sd2IybHVkRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlNaWFIxY201eklHRnVJR1Z0Y0hSNUlITjBjbWx1WnlCaVpXTmhkWE5sSUVkeVlYQm9VVXdnWlc1a2NHOXBiblJ6SUdGeVpWeHVJQ0FnS2lCd2NtOTJhV1JsY2kxemNHVmphV1pwWXpzZ2UwQnNhVzVySUVkeVlYQm9jV3hUWlhKMmFXTmxMbkpsY1hWbGMzUjlJSEpsYW1WamRITWdaWGhsWTNWMGFXOXVJSGRvWlc1Y2JpQWdJQ29nYm04Z1pXNWtjRzlwYm5RZ2QyRnpJR052Ym1acFozVnlaV1F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHR6ZEhKcGJtZDlJRUZ1SUdWdGNIUjVJSE4wY21sdVp5NWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JrWldaaGRXeDBRbUZ6WlZWeWJDZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lISmxkSFZ5YmlCY0lsd2lPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQk9iM0p0WVd4cGVtVnpJSFJvWlNCZ1pXNWtjRzlwYm5SZ0lHRnNhV0Z6SUdKbFptOXlaU0J6YUdGeVpXUWdhVzVwZEdsaGJHbDZZWFJwYjI1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVjJobGJpQjBhR1VnY0hKdmRtbGtaV1FnWTI5dVptbG5JR05oY25KcFpYTWdibThnWUdKaGMyVlZjbXhnSUdKMWRDQmhiaUJnWlc1a2NHOXBiblJnTEZ4dUlDQWdLaUJqYjNCcFpYTWdZR1Z1WkhCdmFXNTBZQ0JwYm5SdklHQmlZWE5sVlhKc1lDQmhibVFnWkdWc1pXZGhkR1Z6SUhSdlhHNGdJQ0FxSUh0QWJHbHVheUJJZEhSd1FYQnBVMlZ5ZG1salpTNXBibWwwYVdGc2FYcGxmU3dnZDJocFkyZ2diV1Z5WjJWeklIUm9aU0JsYm5acGNtOXViV1Z1ZENCemJHbGpaU0JoYm1SY2JpQWdJQ29nWW5WcGJHUnpJSFJvWlNCQmVHbHZjeUJqYkdsbGJuUXVYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1OUlHRnlaM01nTFNCQmJpQnZjSFJwYjI1aGJDQmdVR0Z5ZEdsaGJEeEhjbUZ3YUhGc1UyVnlkbWxqWlVOdmJtWnBaejVnTENCdmNIUnBiMjVoYkd4NUlHWnZiR3h2ZDJWa0lHSjVJR0VnWkdWallXWWdZRU52Ym5SbGVIUmdMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDdZMjl1Wm1sbk9pQkhjbUZ3YUhGc1UyVnlkbWxqWlVOdmJtWnBaeXdnWTJ4cFpXNTBPaUJCZUdsdmMwbHVjM1JoYm1ObGZUNTlJRlJvWlNCdFpYSm5aV1FnWTI5dVptbG5kWEpoZEdsdmJpQmhibVFnZEdobElHTnZibVpwWjNWeVpXUWdRWGhwYjNNZ2FXNXpkR0Z1WTJVdVhHNGdJQ0FxSUVCMGFISnZkM01nZTBsdWRHVnlibUZzUlhKeWIzSjlJRmRvWlc0Z2JtOGdZbUZ6WlNCVlVrd2dZMkZ1SUdKbElISmxjMjlzZG1Wa0lHWnliMjBnZEdobElHTnZibVpwWnlCdmNpQmxiblpwY205dWJXVnVkQzVjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHg3SUdOdmJtWnBaem9nUjNKaGNHaHhiRk5sY25acFkyVkRiMjVtYVdjN0lHTnNhV1Z1ZERvZ1FYaHBiM05KYm5OMFlXNWpaU0I5UGlCN1hHNGdJQ0FnWTI5dWMzUWdjSEp2ZG1sa1pXUWdQU0FvWVhKbmMxc3dYU0EvUHlCN2ZTa2dZWE1nVUdGeWRHbGhiRHhIY21Gd2FIRnNVMlZ5ZG1salpVTnZibVpwWno0N1hHNGdJQ0FnYVdZZ0tDRndjbTkyYVdSbFpDNWlZWE5sVlhKc0lDWW1JSEJ5YjNacFpHVmtMbVZ1WkhCdmFXNTBLU0I3WEc0Z0lDQWdJQ0JoY21keld6QmRJRDBnZXlBdUxpNXdjbTkyYVdSbFpDd2dZbUZ6WlZWeWJEb2djSEp2ZG1sa1pXUXVaVzVrY0c5cGJuUWdmVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOMWNHVnlMbWx1YVhScFlXeHBlbVVvTGk0dVlYSm5jeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRUoxYVd4a2N5QjBhR1VnUjNKaGNHaFJUQ0JpWldGeVpYSWdZWFYwYUc5eWFYcGhkR2x2YmlCb1pXRmtaWEp6WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRkpsZEhWeWJuTWdkR2hsSUdCQmRYUm9iM0pwZW1GMGFXOXVPaUJDWldGeVpYSWdQSFJ2YTJWdVBtQWdhR1ZoWkdWeUlIZG9aVzRnZEdobFhHNGdJQ0FxSUdOdmJtWnBaeUJqWVhKeWFXVnpJR0VnZEc5clpXNHNJR0Z1WkNCdWJ5Qm9aV0ZrWlhKeklHOTBhR1Z5ZDJselpTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0SGNtRndhSEZzVTJWeWRtbGpaVU52Ym1acFozMGdZMjl1Wm1sbklDMGdWR2hsSUhKbGMyOXNkbVZrSUhObGNuWnBZMlVnWTI5dVptbG5kWEpoZEdsdmJpNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejU5SUZSb1pTQmhkWFJvYjNKcGVtRjBhVzl1SUdobFlXUmxjbk1nS0dWdGNIUjVJSGRwZEdodmRYUWdZU0IwYjJ0bGJpa3VYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWVhWMGFFaGxZV1JsY25Nb1kyOXVabWxuT2lCSGNtRndhSEZzVTJWeWRtbGpaVU52Ym1acFp5azZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJqYjI1bWFXY3VkRzlyWlc0Z1B5QjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGpiMjVtYVdjdWRHOXJaVzU5WUNCOUlEb2dlMzA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsWVdSeklIUm9aU0JIY21Gd2FGRk1JR1Z1WkhCdmFXNTBJR0Z1WkNCMGIydGxiaUJtY205dElIUm9aU0JsYm5acGNtOXViV1Z1ZEZ4dUlDQWdLaUJBYzNWdGJXRnllU0JTWldGa2N5QjBhR1VnWUdsdkxtZHlZWEJvY1d4Z0lHVnVkbWx5YjI1dFpXNTBJSE5zYVdObElHRnVaQ0J5WlhSMWNtNXpJR0VnY0dGeWRHbGhiRnh1SUNBZ0tpQmpiMjVtYVdjZ0tIZHBkR2dnWUdWdVpIQnZhVzUwWUNCaGJITnZJRzFwY25KdmNtVmtJSFJ2SUdCaVlYTmxWWEpzWUNrZ2QyaGxiaUJoYmlCbGJtUndiMmx1ZENCcGMxeHVJQ0FnS2lCamIyNW1hV2QxY21Wa0xDQmdkVzVrWldacGJtVmtZQ0J2ZEdobGNuZHBjMlV1SUZaaGJIVmxjeUJ3WVhOeklIUm9jbTkxWjJoY2JpQWdJQ29nWUdWdWRsTjBjbWx1WjJBdllHVnVkazUxYldKbGNtQWdkRzhnY21WcVpXTjBJSFZ1YzJWMExXeGxZV1lnY0hKdmVHbGxjeTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJoY25ScFlXdzhSM0poY0doeGJGTmxjblpwWTJWRGIyNW1hV2MrSUh3Z2RXNWtaV1pwYm1Wa2ZTQkJJSEJoY25ScFlXd2dZMjl1Wm1sbkxDQnZjaUJnZFc1a1pXWnBibVZrWUNCM2FHVnVJRzV2SUVkeVlYQm9VVXdnWlc1a2NHOXBiblFnYVhNZ1kyOXVabWxuZFhKbFpDNWNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JqYjI1bWFXZEdjbTl0Ulc1MmFYSnZibTFsYm5Rb0tUb2dVR0Z5ZEdsaGJEeEhjbUZ3YUhGc1UyVnlkbWxqWlVOdmJtWnBaejRnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdOdmJuTjBJR1Z1ZGlBOUlFbHZSVzUyYVhKdmJtMWxiblF1YVc4dVozSmhjR2h4YkR0Y2JpQWdJQ0JqYjI1emRDQmxibVJ3YjJsdWRDQTlJR1Z1ZGxOMGNtbHVaeWhsYm5ZL0xtVnVaSEJ2YVc1MEtUdGNiaUFnSUNCcFppQW9JV1Z1WkhCdmFXNTBLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCbGJtUndiMmx1ZEN4Y2JpQWdJQ0FnSUdKaGMyVlZjbXc2SUdWdVpIQnZhVzUwTEZ4dUlDQWdJQ0FnZEc5clpXNDZJR1Z1ZGxOMGNtbHVaeWhsYm5ZdWRHOXJaVzRwTEZ4dUlDQWdJQ0FnZEdsdFpXOTFkRG9nWlc1MlRuVnRZbVZ5S0dWdWRpNTBhVzFsYjNWMEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRmVHVmpkWFJsY3lCaElFZHlZWEJvVVV3Z2NYVmxjbmtnYjNJZ2JYVjBZWFJwYjI0Z1lXZGhhVzV6ZENCMGFHVWdZMjl1Wm1sbmRYSmxaQ0JsYm1Sd2IybHVkRnh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdVRTlUVkdCeklIUm9aU0J6ZEdGdVpHRnlaQ0JIY21Gd2FGRk1JSEpsY1hWbGMzUWdZbTlrZVNBb1lIRjFaWEo1WUN4Y2JpQWdJQ29nWUhaaGNtbGhZbXhsYzJBc0lHQnZjR1Z5WVhScGIyNU9ZVzFsWUNrZ2RHOGdkR2hsSUhKbGMyOXNkbVZrSUdWdVpIQnZhVzUwSUhkcGRHZ2dkR2hsSUc5d2RHbHZibUZzWEc0Z0lDQXFJSEJsY2kxeVpYRjFaWE4wSUdobFlXUmxjbk1nYldWeVoyVmtJRzkyWlhJZ2RHaGxJR05zYVdWdWRDQmtaV1poZFd4MGN5NGdVbVZ4ZFdseVpYTWdZVnh1SUNBZ0tpQnViMjR0Wlcxd2RIa2djWFZsY25rZ1lXNWtJR0VnWTI5dVptbG5kWEpsWkNCbGJtUndiMmx1ZEM0Z1VtVjBkWEp1Y3lCMGFHVWdjbUYzSUdWNFpXTjFkR2x2Ymx4dUlDQWdLaUJsYm5abGJHOXdaVG9nWm1sbGJHUXRiR1YyWld3Z1lHVnljbTl5YzJBZ1lYSmxJSEpsY0c5eWRHVmtJR2x1SUdCSGNtRndhSEZzVW1WemNHOXVjMlV1WlhKeWIzSnpZRnh1SUNBZ0tpQnlZWFJvWlhJZ2RHaGhiaUIwYUhKdmQyNHNJSE52SUdOaGJHeGxjbk1nYlhWemRDQnBibk53WldOMElIUm9aVzBnWm05eUlIQmhjblJwWVd3Z1ptRnBiSFZ5WlhNdVhHNGdJQ0FxSUVCMFpXMXdiR0YwWlNCVUlDMGdWR2hsSUdWNGNHVmpkR1ZrSUhSNWNHVWdiMllnZEdobElHQmtZWFJoWUNCd1lYbHNiMkZrTGx4dUlDQWdLaUJBY0dGeVlXMGdlMGR5WVhCb2NXeFNaWEYxWlhOMGZTQnBibkIxZENBdElGUm9aU0J4ZFdWeWVTQmtiMk4xYldWdWRDd2dkbUZ5YVdGaWJHVnpMQ0J2Y0dWeVlYUnBiMjRnYm1GdFpTd2dZVzVrSUhCbGNpMXlaWEYxWlhOMElHaGxZV1JsY25NdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEVkeVlYQm9jV3hTWlhOd2IyNXpaVHhVUGo1OUlGUm9aU0JsZUdWamRYUnBiMjRnWlc1MlpXeHZjR1VnZDJsMGFDQmdaR0YwWVdBc0lHQmxjbkp2Y25OZ0xDQmhibVFnWUdWNGRHVnVjMmx2Ym5OZ0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlIUm9aU0J4ZFdWeWVTQnBjeUJsYlhCMGVTQnZjaUJ1YnlCbGJtUndiMmx1ZENCcGN5QmpiMjVtYVdkMWNtVmtMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdE9iM1JHYjNWdVpFVnljbTl5ZlNCWGFHVnVJSFJvWlNCbGJtUndiMmx1ZENCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1EUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwTnZibVpzYVdOMFJYSnliM0o5SUZkb1pXNGdkR2hsSUdWdVpIQnZhVzUwSUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd09TNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJSFJvWlNCbGJtUndiMmx1ZENCaGJuTjNaWEp6SUhkcGRHZ2dZVzU1SUc5MGFHVnlJRWhVVkZBZ1pYSnliM0lnYzNSaGRIVnpMbHh1SUNBZ0tpOWNiaUFnWVhONWJtTWdjbVZ4ZFdWemREeFVJRDBnZFc1cmJtOTNiajRvWEc0Z0lDQWdhVzV3ZFhRNklFZHlZWEJvY1d4U1pYRjFaWE4wWEc0Z0lDazZJRkJ5YjIxcGMyVThSM0poY0doeGJGSmxjM0J2Ym5ObFBGUStQaUI3WEc0Z0lDQWdhV1lnS0NGcGJuQjFkQzV4ZFdWeWVTQjhmQ0JwYm5CMWRDNXhkV1Z5ZVM1MGNtbHRLQ2t1YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lrZHlZWEJvVVV3Z2NtVnhkV1Z6ZENCeVpYRjFhWEpsY3lCaElIRjFaWEo1WENJcE8xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQmxibVJ3YjJsdWRDQTlJSFJvYVhNdVkyOXVabWxuTG1WdVpIQnZhVzUwSUQ4L0lIUm9hWE11WTI5dVptbG5MbUpoYzJWVmNtdzdYRzRnSUNBZ2FXWWdLQ0ZsYm1Sd2IybHVkQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pIY21Gd2FGRk1JSEpsY1hWcGNtVnpJR0Z1SUdWdVpIQnZhVzUwWENJcE8xeHVJQ0FnSUgxY2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1d2IzTjBQRWR5WVhCb2NXeFNaWE53YjI1elpUeFVQajRvWEc0Z0lDQWdJQ0FnSUdWdVpIQnZhVzUwTEZ4dUlDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdjWFZsY25rNklHbHVjSFYwTG5GMVpYSjVMRnh1SUNBZ0lDQWdJQ0FnSUhaaGNtbGhZbXhsY3pvZ2FXNXdkWFF1ZG1GeWFXRmliR1Z6TEZ4dUlDQWdJQ0FnSUNBZ0lHOXdaWEpoZEdsdmJrNWhiV1U2SUdsdWNIVjBMbTl3WlhKaGRHbHZiazVoYldVc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSHNnYUdWaFpHVnljem9nYVc1d2RYUXVhR1ZoWkdWeWN5QjlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObExtUmhkR0U3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrZHlZWEJvVVV4Y0lpd2dYQ0p5WlhGMVpYTjBYQ0lzSUdWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==
142
+ //# sourceMappingURL=GraphqlService.js.map
143
+ //# sourceMappingURL=GraphqlService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/graphql/GraphqlService.cjs","sourceRoot":"","sources":["io/graphql/GraphqlService.js"],"names":[],"mappings":";;;AAAA,2DAAwD;AACxD,wDAAoD;AACpD,4EAA0E;AAC1E,2DAA0E;AAC1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAa,cAAe,SAAQ,yBAAc;IAC9C;QACI,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;QACpB;;WAEG;QACH,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACjC,CAAC;IACD;;;;;;OAMG;IACH,cAAc;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IACD;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;QACpB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IACD;;;;;;OAMG;IACH,WAAW,CAAC,MAAM;QACd,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD;;;;;;;OAOG;IACH,qBAAqB;QACjB,MAAM,GAAG,GAAG,8BAAa,CAAC,EAAE,CAAC,OAAO,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAA,+BAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YACT,OAAO,SAAS,CAAC;QACrB,OAAO;YACH,QAAQ;YACR,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,IAAA,+BAAS,EAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,OAAO,EAAE,IAAA,+BAAS,EAAC,GAAG,CAAC,OAAO,CAAC;SAClC,CAAC;IACN,CAAC;IACD;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,OAAO,CAAC,KAAK;QACf,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,6BAAa,CAAC,kCAAkC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,6BAAa,CAAC,8BAA8B,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC9C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;aACrC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,IAAA,oBAAS,EAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;CACJ;AArGD,wCAqGC;AACD,0CAA0C"}
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  * @description Re-exports the GraphQL client-based service and its types.
21
21
  */
22
22
  __exportStar(require("./GraphqlService.cjs"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW8vZ3JhcGhxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsb0NBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9pby9ncmFwaHFsXG4gKiBAc3VtbWFyeSBHZW5lcmljIEdyYXBoUUwgZW5kcG9pbnQgY2xpZW50IChxdWVyaWVzIGFuZCBtdXRhdGlvbnMpLlxuICogQGRlc2NyaXB0aW9uIFJlLWV4cG9ydHMgdGhlIEdyYXBoUUwgY2xpZW50LWJhc2VkIHNlcnZpY2UgYW5kIGl0cyB0eXBlcy5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhxbFNlcnZpY2VcIjtcbiJdfQ==
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILHNEQUFvQztBQUNwQyxza0JBQXNrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvaW8vZ3JhcGhxbFxuICogQHN1bW1hcnkgR2VuZXJpYyBHcmFwaFFMIGVuZHBvaW50IGNsaWVudCAocXVlcmllcyBhbmQgbXV0YXRpb25zKS5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBHcmFwaFFMIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGFuZCBpdHMgdHlwZXMuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBocWxTZXJ2aWNlLmpzXCI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZhVzh2WjNKaGNHaHhiQzlwYm1SbGVDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096dEhRVWxITzBGQlEwZ3NiME5CUVdsRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkFiVzlrZFd4bElHbHVkR1ZuY21GMGFXOXVjeTlwYnk5bmNtRndhSEZzWEc0Z0tpQkFjM1Z0YldGeWVTQkhaVzVsY21saklFZHlZWEJvVVV3Z1pXNWtjRzlwYm5RZ1kyeHBaVzUwSUNoeGRXVnlhV1Z6SUdGdVpDQnRkWFJoZEdsdmJuTXBMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsTFdWNGNHOXlkSE1nZEdobElFZHlZWEJvVVV3Z1kyeHBaVzUwTFdKaGMyVmtJSE5sY25acFkyVWdZVzVrSUdsMGN5QjBlWEJsY3k1Y2JpQXFMMXh1Wlhod2IzSjBJQ29nWm5KdmJTQmNJaTR2UjNKaGNHaHhiRk5sY25acFkyVmNJanRjYmlKZGZRPT0iXX0=
23
+ //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io/graphql/index.cjs","sourceRoot":"","sources":["io/graphql/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,sDAAoC;AACpC,iCAAiC"}