@gemeentenijmegen/webapp 1.1.10 → 1.1.12

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 (1899) hide show
  1. package/.jsii +11 -11
  2. package/assets/webapp/auth/auth.lambda/index.js +63 -66
  3. package/assets/webapp/login/login.lambda/index.js +18 -21
  4. package/assets/webapp/logout/logout.lambda/index.js +18 -2
  5. package/lib/webapp/Criticality.js +1 -1
  6. package/lib/webapp/Webapp.js +1 -1
  7. package/lib/webapp/Webpage.js +1 -1
  8. package/lib/webapp/util/Files.js +1 -1
  9. package/node_modules/@aws/lambda-invoke-store/LICENSE +175 -0
  10. package/node_modules/@aws/lambda-invoke-store/README.md +182 -0
  11. package/node_modules/@aws/lambda-invoke-store/dist/invoke-store.d.ts +52 -0
  12. package/node_modules/@aws/lambda-invoke-store/dist/invoke-store.js +90 -0
  13. package/node_modules/@aws/lambda-invoke-store/package.json +36 -0
  14. package/node_modules/@aws-cdk/cloud-assembly-schema/.jsii +6005 -0
  15. package/node_modules/@aws-cdk/cloud-assembly-schema/.jsii.tabl.json +1 -0
  16. package/node_modules/@aws-cdk/cloud-assembly-schema/CONTRIBUTING.md +66 -0
  17. package/node_modules/@aws-cdk/cloud-assembly-schema/LICENSE +202 -0
  18. package/node_modules/@aws-cdk/cloud-assembly-schema/NOTICE +46 -0
  19. package/node_modules/@aws-cdk/cloud-assembly-schema/README.md +53 -0
  20. package/node_modules/@aws-cdk/cloud-assembly-schema/cli-version.json +1 -0
  21. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/aws-destination.d.ts +35 -0
  22. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/aws-destination.js +3 -0
  23. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/docker-image-asset.d.ts +171 -0
  24. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/docker-image-asset.js +3 -0
  25. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/file-asset.d.ts +75 -0
  26. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/file-asset.js +18 -0
  27. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/index.d.ts +4 -0
  28. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/index.js +21 -0
  29. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/schema.d.ts +27 -0
  30. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/assets/schema.js +3 -0
  31. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.d.ts +295 -0
  32. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.js +3 -0
  33. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/context-queries.d.ts +451 -0
  34. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/context-queries.js +102 -0
  35. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.d.ts +5 -0
  36. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.js +22 -0
  37. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.d.ts +23 -0
  38. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.js +10 -0
  39. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/metadata-schema.d.ts +302 -0
  40. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/metadata-schema.js +38 -0
  41. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/schema.d.ts +147 -0
  42. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/schema.js +34 -0
  43. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/index.d.ts +4 -0
  44. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/index.js +21 -0
  45. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/common.d.ts +178 -0
  46. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/common.js +22 -0
  47. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/deploy.d.ts +92 -0
  48. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/deploy.js +3 -0
  49. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/destroy.d.ts +18 -0
  50. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/destroy.js +3 -0
  51. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/index.d.ts +3 -0
  52. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/commands/index.js +20 -0
  53. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/index.d.ts +3 -0
  54. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/index.js +20 -0
  55. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/schema.d.ts +35 -0
  56. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/schema.js +3 -0
  57. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/test-case.d.ts +186 -0
  58. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/integ-tests/test-case.js +3 -0
  59. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/manifest.d.ts +134 -0
  60. package/node_modules/@aws-cdk/cloud-assembly-schema/lib/manifest.js +295 -0
  61. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/.editorconfig +10 -0
  62. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/LICENSE +21 -0
  63. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/README.md +421 -0
  64. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/attribute.js +978 -0
  65. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/helpers.js +390 -0
  66. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/index.d.ts +142 -0
  67. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/index.js +15 -0
  68. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/scan.js +75 -0
  69. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/lib/validator.js +336 -0
  70. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema/package.json +42 -0
  71. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/LICENSE +15 -0
  72. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/README.md +664 -0
  73. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/bin/semver.js +191 -0
  74. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/comparator.js +143 -0
  75. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/index.js +7 -0
  76. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/range.js +556 -0
  77. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/classes/semver.js +319 -0
  78. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/clean.js +8 -0
  79. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/cmp.js +54 -0
  80. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/coerce.js +62 -0
  81. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-build.js +9 -0
  82. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare-loose.js +5 -0
  83. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/compare.js +7 -0
  84. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/diff.js +60 -0
  85. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/eq.js +5 -0
  86. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gt.js +5 -0
  87. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/gte.js +5 -0
  88. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/inc.js +21 -0
  89. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lt.js +5 -0
  90. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/lte.js +5 -0
  91. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/major.js +5 -0
  92. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/minor.js +5 -0
  93. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/neq.js +5 -0
  94. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/parse.js +18 -0
  95. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/patch.js +5 -0
  96. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/prerelease.js +8 -0
  97. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rcompare.js +5 -0
  98. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/rsort.js +5 -0
  99. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/satisfies.js +12 -0
  100. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/sort.js +5 -0
  101. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/functions/valid.js +8 -0
  102. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/index.js +91 -0
  103. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/constants.js +37 -0
  104. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/debug.js +11 -0
  105. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/identifiers.js +25 -0
  106. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/lrucache.js +42 -0
  107. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/parse-options.js +17 -0
  108. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/internal/re.js +223 -0
  109. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/package.json +78 -0
  110. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/preload.js +4 -0
  111. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/range.bnf +16 -0
  112. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/gtr.js +6 -0
  113. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/intersects.js +9 -0
  114. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/ltr.js +6 -0
  115. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/max-satisfying.js +27 -0
  116. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-satisfying.js +26 -0
  117. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/min-version.js +63 -0
  118. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/outside.js +82 -0
  119. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/simplify.js +49 -0
  120. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/subset.js +249 -0
  121. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/to-comparators.js +10 -0
  122. package/node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver/ranges/valid.js +13 -0
  123. package/node_modules/@aws-cdk/cloud-assembly-schema/package.json +133 -0
  124. package/node_modules/@aws-cdk/cloud-assembly-schema/rosetta/default.ts-fixture +3 -0
  125. package/node_modules/@aws-cdk/cloud-assembly-schema/schema/README.md +5 -0
  126. package/node_modules/@aws-cdk/cloud-assembly-schema/schema/assets.schema.json +271 -0
  127. package/node_modules/@aws-cdk/cloud-assembly-schema/schema/cloud-assembly.schema.json +1189 -0
  128. package/node_modules/@aws-cdk/cloud-assembly-schema/schema/integ.schema.json +493 -0
  129. package/node_modules/@aws-cdk/cloud-assembly-schema/schema/version.json +5 -0
  130. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/endpoint/ruleset.js +3 -3
  131. package/node_modules/@aws-sdk/client-dynamodb/dist-cjs/index.js +5197 -5425
  132. package/node_modules/@aws-sdk/client-dynamodb/dist-es/endpoint/ruleset.js +3 -3
  133. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/index.js +1 -0
  134. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/models_0.js +22 -0
  135. package/node_modules/@aws-sdk/client-dynamodb/dist-es/models/models_1.js +1 -0
  136. package/node_modules/@aws-sdk/client-dynamodb/dist-es/protocols/Aws_json1_0.js +15 -2
  137. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchExecuteStatementCommand.d.ts +10 -3
  138. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchGetItemCommand.d.ts +16 -7
  139. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/BatchWriteItemCommand.d.ts +16 -7
  140. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateBackupCommand.d.ts +2 -0
  141. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateGlobalTableCommand.d.ts +2 -0
  142. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/CreateTableCommand.d.ts +2 -0
  143. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteBackupCommand.d.ts +2 -0
  144. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteItemCommand.d.ts +16 -7
  145. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteResourcePolicyCommand.d.ts +2 -0
  146. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DeleteTableCommand.d.ts +2 -0
  147. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeBackupCommand.d.ts +2 -0
  148. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContinuousBackupsCommand.d.ts +2 -0
  149. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeContributorInsightsCommand.d.ts +3 -0
  150. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeEndpointsCommand.d.ts +2 -0
  151. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeExportCommand.d.ts +2 -0
  152. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeGlobalTableCommand.d.ts +2 -0
  153. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeGlobalTableSettingsCommand.d.ts +2 -0
  154. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeImportCommand.d.ts +2 -0
  155. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeKinesisStreamingDestinationCommand.d.ts +2 -0
  156. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeLimitsCommand.d.ts +2 -0
  157. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTableCommand.d.ts +2 -0
  158. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTableReplicaAutoScalingCommand.d.ts +2 -0
  159. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DescribeTimeToLiveCommand.d.ts +2 -0
  160. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/DisableKinesisStreamingDestinationCommand.d.ts +2 -0
  161. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/EnableKinesisStreamingDestinationCommand.d.ts +2 -0
  162. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteStatementCommand.d.ts +16 -7
  163. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExecuteTransactionCommand.d.ts +16 -7
  164. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ExportTableToPointInTimeCommand.d.ts +2 -0
  165. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/GetItemCommand.d.ts +16 -7
  166. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/GetResourcePolicyCommand.d.ts +2 -0
  167. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ImportTableCommand.d.ts +2 -0
  168. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListBackupsCommand.d.ts +2 -0
  169. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListContributorInsightsCommand.d.ts +3 -0
  170. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListExportsCommand.d.ts +2 -0
  171. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListGlobalTablesCommand.d.ts +2 -0
  172. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListImportsCommand.d.ts +2 -0
  173. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListTablesCommand.d.ts +2 -0
  174. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ListTagsOfResourceCommand.d.ts +2 -0
  175. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutItemCommand.d.ts +16 -7
  176. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/PutResourcePolicyCommand.d.ts +2 -0
  177. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/QueryCommand.d.ts +16 -7
  178. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableFromBackupCommand.d.ts +2 -0
  179. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/RestoreTableToPointInTimeCommand.d.ts +2 -0
  180. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/ScanCommand.d.ts +16 -7
  181. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TagResourceCommand.d.ts +2 -0
  182. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactGetItemsCommand.d.ts +16 -7
  183. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/TransactWriteItemsCommand.d.ts +18 -8
  184. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UntagResourceCommand.d.ts +2 -0
  185. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContinuousBackupsCommand.d.ts +2 -0
  186. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateContributorInsightsCommand.d.ts +4 -0
  187. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateGlobalTableCommand.d.ts +2 -0
  188. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateGlobalTableSettingsCommand.d.ts +2 -0
  189. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateItemCommand.d.ts +16 -7
  190. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateKinesisStreamingDestinationCommand.d.ts +2 -0
  191. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTableCommand.d.ts +2 -0
  192. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTableReplicaAutoScalingCommand.d.ts +2 -0
  193. package/node_modules/@aws-sdk/client-dynamodb/dist-types/commands/UpdateTimeToLiveCommand.d.ts +2 -0
  194. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/index.d.ts +1 -0
  195. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/models_0.d.ts +151 -79
  196. package/node_modules/@aws-sdk/client-dynamodb/dist-types/models/models_1.d.ts +73 -0
  197. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/commands/TransactWriteItemsCommand.d.ts +2 -4
  198. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/index.d.ts +1 -0
  199. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/models_0.d.ts +24 -6
  200. package/node_modules/@aws-sdk/client-dynamodb/dist-types/ts3.4/models/models_1.d.ts +11 -0
  201. package/node_modules/@aws-sdk/client-dynamodb/package.json +41 -42
  202. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +11771 -11916
  203. package/node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js +55 -55
  204. package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +2 -0
  205. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +2 -0
  206. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +2 -0
  207. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +2 -0
  208. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataConfigurationCommand.d.ts +2 -0
  209. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +2 -0
  210. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +2 -0
  211. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +2 -0
  212. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketAnalyticsConfigurationCommand.d.ts +2 -0
  213. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +2 -0
  214. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCorsCommand.d.ts +2 -0
  215. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +2 -0
  216. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +2 -0
  217. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketInventoryConfigurationCommand.d.ts +2 -0
  218. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +2 -0
  219. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataConfigurationCommand.d.ts +2 -0
  220. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +2 -0
  221. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetricsConfigurationCommand.d.ts +2 -0
  222. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketOwnershipControlsCommand.d.ts +2 -0
  223. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +2 -0
  224. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketReplicationCommand.d.ts +2 -0
  225. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +2 -0
  226. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketWebsiteCommand.d.ts +2 -0
  227. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +2 -0
  228. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectTaggingCommand.d.ts +2 -0
  229. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +2 -0
  230. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +2 -0
  231. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAccelerateConfigurationCommand.d.ts +2 -0
  232. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAclCommand.d.ts +2 -0
  233. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAnalyticsConfigurationCommand.d.ts +2 -0
  234. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketCorsCommand.d.ts +2 -0
  235. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +2 -0
  236. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +2 -0
  237. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketInventoryConfigurationCommand.d.ts +2 -0
  238. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +2 -0
  239. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLocationCommand.d.ts +2 -0
  240. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLoggingCommand.d.ts +2 -0
  241. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataConfigurationCommand.d.ts +2 -0
  242. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +2 -0
  243. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetricsConfigurationCommand.d.ts +2 -0
  244. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +2 -0
  245. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +2 -0
  246. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +2 -0
  247. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyStatusCommand.d.ts +2 -0
  248. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketReplicationCommand.d.ts +2 -0
  249. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketRequestPaymentCommand.d.ts +2 -0
  250. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +2 -0
  251. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketVersioningCommand.d.ts +2 -0
  252. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketWebsiteCommand.d.ts +2 -0
  253. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAclCommand.d.ts +2 -0
  254. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +2 -0
  255. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +2 -0
  256. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLegalHoldCommand.d.ts +2 -0
  257. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLockConfigurationCommand.d.ts +2 -0
  258. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectRetentionCommand.d.ts +2 -0
  259. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTaggingCommand.d.ts +2 -0
  260. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTorrentCommand.d.ts +2 -0
  261. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetPublicAccessBlockCommand.d.ts +2 -0
  262. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +2 -0
  263. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +2 -0
  264. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketAnalyticsConfigurationsCommand.d.ts +2 -0
  265. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +2 -0
  266. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketInventoryConfigurationsCommand.d.ts +2 -0
  267. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketMetricsConfigurationsCommand.d.ts +2 -0
  268. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketsCommand.d.ts +2 -0
  269. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +2 -0
  270. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +2 -0
  271. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +2 -0
  272. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +2 -0
  273. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +2 -0
  274. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +2 -0
  275. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +2 -0
  276. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +2 -0
  277. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAnalyticsConfigurationCommand.d.ts +2 -0
  278. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +2 -0
  279. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +2 -0
  280. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +2 -0
  281. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +2 -0
  282. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +2 -0
  283. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +2 -0
  284. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +2 -0
  285. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +2 -0
  286. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +2 -0
  287. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +2 -0
  288. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +2 -0
  289. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +2 -0
  290. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +2 -0
  291. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +2 -0
  292. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +2 -0
  293. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +2 -0
  294. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +2 -0
  295. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +2 -0
  296. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +2 -0
  297. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +2 -0
  298. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +2 -0
  299. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +2 -0
  300. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RenameObjectCommand.d.ts +2 -0
  301. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +2 -0
  302. package/node_modules/@aws-sdk/client-s3/dist-types/commands/SelectObjectContentCommand.d.ts +2 -0
  303. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.d.ts +2 -0
  304. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataJournalTableConfigurationCommand.d.ts +2 -0
  305. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +2 -0
  306. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +2 -0
  307. package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +2 -0
  308. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +4 -4
  309. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +1 -1
  310. package/node_modules/@aws-sdk/client-s3/package.json +62 -63
  311. package/node_modules/@aws-sdk/client-secrets-manager/dist-cjs/index.js +1582 -1740
  312. package/node_modules/@aws-sdk/client-secrets-manager/dist-es/protocols/Aws_json1_1.js +1 -1
  313. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/BatchGetSecretValueCommand.d.ts +2 -0
  314. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/CancelRotateSecretCommand.d.ts +2 -0
  315. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/CreateSecretCommand.d.ts +2 -0
  316. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DeleteResourcePolicyCommand.d.ts +2 -0
  317. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DeleteSecretCommand.d.ts +2 -0
  318. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/DescribeSecretCommand.d.ts +2 -0
  319. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetRandomPasswordCommand.d.ts +2 -0
  320. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetResourcePolicyCommand.d.ts +2 -0
  321. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/GetSecretValueCommand.d.ts +2 -0
  322. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ListSecretVersionIdsCommand.d.ts +2 -0
  323. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ListSecretsCommand.d.ts +2 -0
  324. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/PutResourcePolicyCommand.d.ts +2 -0
  325. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/PutSecretValueCommand.d.ts +2 -0
  326. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RemoveRegionsFromReplicationCommand.d.ts +2 -0
  327. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ReplicateSecretToRegionsCommand.d.ts +2 -0
  328. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RestoreSecretCommand.d.ts +2 -0
  329. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/RotateSecretCommand.d.ts +2 -0
  330. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/StopReplicationToReplicaCommand.d.ts +2 -0
  331. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/TagResourceCommand.d.ts +2 -0
  332. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UntagResourceCommand.d.ts +2 -0
  333. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UpdateSecretCommand.d.ts +2 -0
  334. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/UpdateSecretVersionStageCommand.d.ts +2 -0
  335. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/commands/ValidateResourcePolicyCommand.d.ts +2 -0
  336. package/node_modules/@aws-sdk/client-secrets-manager/package.json +39 -40
  337. package/node_modules/@aws-sdk/client-ssm/dist-cjs/endpoint/ruleset.js +1 -1
  338. package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +12508 -13696
  339. package/node_modules/@aws-sdk/client-ssm/dist-es/endpoint/ruleset.js +1 -1
  340. package/node_modules/@aws-sdk/client-ssm/dist-es/protocols/Aws_json1_1.js +1 -1
  341. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/AddTagsToResourceCommand.d.ts +2 -0
  342. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/AssociateOpsItemRelatedItemCommand.d.ts +2 -0
  343. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CancelCommandCommand.d.ts +2 -0
  344. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CancelMaintenanceWindowExecutionCommand.d.ts +2 -0
  345. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateActivationCommand.d.ts +2 -0
  346. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateAssociationBatchCommand.d.ts +2 -0
  347. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateAssociationCommand.d.ts +2 -0
  348. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateDocumentCommand.d.ts +2 -0
  349. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateMaintenanceWindowCommand.d.ts +2 -0
  350. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateOpsItemCommand.d.ts +2 -0
  351. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateOpsMetadataCommand.d.ts +2 -0
  352. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreatePatchBaselineCommand.d.ts +2 -0
  353. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/CreateResourceDataSyncCommand.d.ts +2 -0
  354. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteActivationCommand.d.ts +2 -0
  355. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteAssociationCommand.d.ts +2 -0
  356. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteDocumentCommand.d.ts +2 -0
  357. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteInventoryCommand.d.ts +2 -0
  358. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteMaintenanceWindowCommand.d.ts +2 -0
  359. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteOpsItemCommand.d.ts +2 -0
  360. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteOpsMetadataCommand.d.ts +2 -0
  361. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteParameterCommand.d.ts +2 -0
  362. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteParametersCommand.d.ts +2 -0
  363. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeletePatchBaselineCommand.d.ts +2 -0
  364. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteResourceDataSyncCommand.d.ts +2 -0
  365. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeleteResourcePolicyCommand.d.ts +2 -0
  366. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterManagedInstanceCommand.d.ts +2 -0
  367. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterPatchBaselineForPatchGroupCommand.d.ts +2 -0
  368. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterTargetFromMaintenanceWindowCommand.d.ts +2 -0
  369. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DeregisterTaskFromMaintenanceWindowCommand.d.ts +2 -0
  370. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeActivationsCommand.d.ts +2 -0
  371. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationCommand.d.ts +2 -0
  372. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationExecutionTargetsCommand.d.ts +2 -0
  373. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAssociationExecutionsCommand.d.ts +2 -0
  374. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAutomationExecutionsCommand.d.ts +2 -0
  375. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAutomationStepExecutionsCommand.d.ts +2 -0
  376. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeAvailablePatchesCommand.d.ts +2 -0
  377. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeDocumentCommand.d.ts +2 -0
  378. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeDocumentPermissionCommand.d.ts +2 -0
  379. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeEffectiveInstanceAssociationsCommand.d.ts +2 -0
  380. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeEffectivePatchesForPatchBaselineCommand.d.ts +2 -0
  381. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstanceAssociationsStatusCommand.d.ts +2 -0
  382. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstanceInformationCommand.d.ts +2 -0
  383. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchStatesCommand.d.ts +2 -0
  384. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchStatesForPatchGroupCommand.d.ts +2 -0
  385. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePatchesCommand.d.ts +2 -0
  386. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInstancePropertiesCommand.d.ts +2 -0
  387. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeInventoryDeletionsCommand.d.ts +2 -0
  388. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionTaskInvocationsCommand.d.ts +2 -0
  389. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionTasksCommand.d.ts +2 -0
  390. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowExecutionsCommand.d.ts +2 -0
  391. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowScheduleCommand.d.ts +2 -0
  392. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowTargetsCommand.d.ts +2 -0
  393. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowTasksCommand.d.ts +2 -0
  394. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowsCommand.d.ts +2 -0
  395. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeMaintenanceWindowsForTargetCommand.d.ts +2 -0
  396. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeOpsItemsCommand.d.ts +2 -0
  397. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeParametersCommand.d.ts +2 -0
  398. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchBaselinesCommand.d.ts +2 -0
  399. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchGroupStateCommand.d.ts +2 -0
  400. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchGroupsCommand.d.ts +2 -0
  401. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribePatchPropertiesCommand.d.ts +2 -0
  402. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DescribeSessionsCommand.d.ts +2 -0
  403. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/DisassociateOpsItemRelatedItemCommand.d.ts +2 -0
  404. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetAccessTokenCommand.d.ts +2 -0
  405. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetAutomationExecutionCommand.d.ts +2 -0
  406. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetCalendarStateCommand.d.ts +2 -0
  407. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetCommandInvocationCommand.d.ts +2 -0
  408. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetConnectionStatusCommand.d.ts +2 -0
  409. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDefaultPatchBaselineCommand.d.ts +2 -0
  410. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDeployablePatchSnapshotForInstanceCommand.d.ts +3 -0
  411. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetDocumentCommand.d.ts +2 -0
  412. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetExecutionPreviewCommand.d.ts +2 -0
  413. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetInventoryCommand.d.ts +2 -0
  414. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetInventorySchemaCommand.d.ts +2 -0
  415. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowCommand.d.ts +2 -0
  416. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionCommand.d.ts +2 -0
  417. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionTaskCommand.d.ts +2 -0
  418. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowExecutionTaskInvocationCommand.d.ts +2 -0
  419. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetMaintenanceWindowTaskCommand.d.ts +2 -0
  420. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsItemCommand.d.ts +2 -0
  421. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsMetadataCommand.d.ts +2 -0
  422. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetOpsSummaryCommand.d.ts +2 -0
  423. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParameterCommand.d.ts +2 -0
  424. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParameterHistoryCommand.d.ts +2 -0
  425. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParametersByPathCommand.d.ts +2 -0
  426. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetParametersCommand.d.ts +2 -0
  427. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetPatchBaselineCommand.d.ts +2 -0
  428. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetPatchBaselineForPatchGroupCommand.d.ts +2 -0
  429. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetResourcePoliciesCommand.d.ts +2 -0
  430. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/GetServiceSettingCommand.d.ts +2 -0
  431. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/LabelParameterVersionCommand.d.ts +2 -0
  432. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListAssociationVersionsCommand.d.ts +2 -0
  433. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListAssociationsCommand.d.ts +2 -0
  434. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListCommandInvocationsCommand.d.ts +2 -0
  435. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListCommandsCommand.d.ts +2 -0
  436. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListComplianceItemsCommand.d.ts +2 -0
  437. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListComplianceSummariesCommand.d.ts +2 -0
  438. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentMetadataHistoryCommand.d.ts +2 -0
  439. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentVersionsCommand.d.ts +2 -0
  440. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListDocumentsCommand.d.ts +2 -0
  441. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListInventoryEntriesCommand.d.ts +2 -0
  442. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesCommand.d.ts +2 -0
  443. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListNodesSummaryCommand.d.ts +2 -0
  444. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsItemEventsCommand.d.ts +2 -0
  445. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsItemRelatedItemsCommand.d.ts +2 -0
  446. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListOpsMetadataCommand.d.ts +2 -0
  447. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListResourceComplianceSummariesCommand.d.ts +2 -0
  448. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListResourceDataSyncCommand.d.ts +2 -0
  449. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ListTagsForResourceCommand.d.ts +2 -0
  450. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ModifyDocumentPermissionCommand.d.ts +2 -0
  451. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutComplianceItemsCommand.d.ts +2 -0
  452. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutInventoryCommand.d.ts +2 -0
  453. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutParameterCommand.d.ts +2 -0
  454. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/PutResourcePolicyCommand.d.ts +2 -0
  455. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterDefaultPatchBaselineCommand.d.ts +2 -0
  456. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterPatchBaselineForPatchGroupCommand.d.ts +2 -0
  457. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterTargetWithMaintenanceWindowCommand.d.ts +2 -0
  458. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RegisterTaskWithMaintenanceWindowCommand.d.ts +2 -0
  459. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/RemoveTagsFromResourceCommand.d.ts +2 -0
  460. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ResetServiceSettingCommand.d.ts +2 -0
  461. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/ResumeSessionCommand.d.ts +2 -0
  462. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/SendAutomationSignalCommand.d.ts +2 -0
  463. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/SendCommandCommand.d.ts +2 -0
  464. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartAccessRequestCommand.d.ts +2 -0
  465. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartAssociationsOnceCommand.d.ts +2 -0
  466. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartAutomationExecutionCommand.d.ts +2 -0
  467. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartChangeRequestExecutionCommand.d.ts +2 -0
  468. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartExecutionPreviewCommand.d.ts +2 -0
  469. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StartSessionCommand.d.ts +2 -0
  470. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/StopAutomationExecutionCommand.d.ts +2 -0
  471. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/TerminateSessionCommand.d.ts +2 -0
  472. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UnlabelParameterVersionCommand.d.ts +2 -0
  473. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateAssociationCommand.d.ts +2 -0
  474. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateAssociationStatusCommand.d.ts +2 -0
  475. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentCommand.d.ts +2 -0
  476. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentDefaultVersionCommand.d.ts +2 -0
  477. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateDocumentMetadataCommand.d.ts +2 -0
  478. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowCommand.d.ts +2 -0
  479. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowTargetCommand.d.ts +2 -0
  480. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateMaintenanceWindowTaskCommand.d.ts +2 -0
  481. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateManagedInstanceRoleCommand.d.ts +2 -0
  482. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateOpsItemCommand.d.ts +2 -0
  483. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateOpsMetadataCommand.d.ts +2 -0
  484. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdatePatchBaselineCommand.d.ts +2 -0
  485. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateResourceDataSyncCommand.d.ts +2 -0
  486. package/node_modules/@aws-sdk/client-ssm/dist-types/commands/UpdateServiceSettingCommand.d.ts +2 -0
  487. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_0.d.ts +24 -5
  488. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_1.d.ts +9 -0
  489. package/node_modules/@aws-sdk/client-ssm/dist-types/models/models_2.d.ts +18 -3
  490. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/models/models_1.d.ts +1 -0
  491. package/node_modules/@aws-sdk/client-ssm/package.json +40 -41
  492. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +478 -596
  493. package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +2 -0
  494. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +2 -0
  495. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +2 -0
  496. package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +2 -0
  497. package/node_modules/@aws-sdk/client-sso/package.json +36 -36
  498. package/node_modules/@aws-sdk/core/dist-cjs/index.js +1969 -6
  499. package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +48 -88
  500. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +35 -74
  501. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +273 -365
  502. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1582 -1669
  503. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +89 -0
  504. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +40 -0
  505. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js +2 -1
  506. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -0
  507. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +6 -1
  508. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +6 -1
  509. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +24 -36
  510. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +15 -61
  511. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +28 -11
  512. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +48 -21
  513. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReplacer.js +1 -1
  514. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +29 -42
  515. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +10 -6
  516. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +17 -70
  517. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +5 -13
  518. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +20 -20
  519. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js +2 -13
  520. package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +1 -1
  521. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +1 -1
  522. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +1 -1
  523. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +1 -1
  524. package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +1 -1
  525. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +1 -1
  526. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +49 -0
  527. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +23 -0
  528. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +1 -0
  529. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +7 -1
  530. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +7 -1
  531. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +8 -3
  532. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +6 -1
  533. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +1 -1
  534. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  535. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +6 -2
  536. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +6 -2
  537. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +1 -1
  538. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +6 -2
  539. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/XmlCodec.d.ts +1 -1
  540. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +37 -0
  541. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +33 -0
  542. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +1 -0
  543. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +10 -1
  544. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +10 -1
  545. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +13 -2
  546. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -0
  547. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +1 -0
  548. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +3 -1
  549. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +3 -1
  550. package/node_modules/@aws-sdk/core/package.json +15 -17
  551. package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +38 -73
  552. package/node_modules/@aws-sdk/credential-provider-env/package.json +6 -5
  553. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +4 -2
  554. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js +4 -2
  555. package/node_modules/@aws-sdk/credential-provider-http/package.json +11 -10
  556. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +194 -259
  557. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js +1 -2
  558. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js +1 -1
  559. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveAssumeRoleCredentials.d.ts +2 -1
  560. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveProfileData.d.ts +4 -0
  561. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +3 -1
  562. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveProfileData.d.ts +1 -0
  563. package/node_modules/@aws-sdk/credential-provider-ini/package.json +16 -15
  564. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +72 -132
  565. package/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js +3 -1
  566. package/node_modules/@aws-sdk/credential-provider-node/package.json +16 -14
  567. package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +71 -106
  568. package/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js +2 -1
  569. package/node_modules/@aws-sdk/credential-provider-process/package.json +7 -6
  570. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +176 -233
  571. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-CVy8iqsZ.js +14 -0
  572. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js +8 -0
  573. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js +7 -2
  574. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/resolveSSOCredentials.d.ts +1 -1
  575. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/resolveSSOCredentials.d.ts +3 -0
  576. package/node_modules/@aws-sdk/credential-provider-sso/package.json +9 -8
  577. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +3 -1
  578. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +16 -25
  579. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js +3 -1
  580. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +8 -6
  581. package/node_modules/@aws-sdk/endpoint-cache/package.json +2 -1
  582. package/node_modules/@aws-sdk/middleware-bucket-endpoint/dist-cjs/index.js +334 -450
  583. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +8 -7
  584. package/node_modules/@aws-sdk/middleware-endpoint-discovery/dist-cjs/index.js +170 -211
  585. package/node_modules/@aws-sdk/middleware-endpoint-discovery/package.json +9 -8
  586. package/node_modules/@aws-sdk/middleware-expect-continue/dist-cjs/index.js +30 -60
  587. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +7 -6
  588. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +381 -478
  589. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/getCrc32ChecksumAlgorithmFunction.d.ts +1 -1
  590. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/stringHasher.d.ts +1 -1
  591. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/getCrc32ChecksumAlgorithmFunction.d.ts +1 -1
  592. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/stringHasher.d.ts +1 -1
  593. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +16 -15
  594. package/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js +35 -63
  595. package/node_modules/@aws-sdk/middleware-host-header/package.json +7 -6
  596. package/node_modules/@aws-sdk/middleware-location-constraint/dist-cjs/index.js +23 -57
  597. package/node_modules/@aws-sdk/middleware-location-constraint/dist-es/index.js +4 -7
  598. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +6 -5
  599. package/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js +44 -75
  600. package/node_modules/@aws-sdk/middleware-logger/dist-types/loggerMiddleware.d.ts +1 -1
  601. package/node_modules/@aws-sdk/middleware-logger/package.json +6 -5
  602. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js +20 -67
  603. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.js +32 -0
  604. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/recursionDetectionMiddleware.native.js +5 -0
  605. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/configuration.js +7 -0
  606. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/getRecursionDetectionPlugin.js +7 -0
  607. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js +2 -37
  608. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/recursionDetectionMiddleware.browser.js +1 -0
  609. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/recursionDetectionMiddleware.js +28 -0
  610. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/recursionDetectionMiddleware.native.js +1 -0
  611. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/configuration.d.ts +5 -0
  612. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/getRecursionDetectionPlugin.d.ts +5 -0
  613. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/index.d.ts +2 -18
  614. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/recursionDetectionMiddleware.browser.d.ts +6 -0
  615. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/recursionDetectionMiddleware.d.ts +6 -0
  616. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/recursionDetectionMiddleware.native.d.ts +6 -0
  617. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/configuration.d.ts +3 -0
  618. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/getRecursionDetectionPlugin.d.ts +4 -0
  619. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/index.d.ts +2 -18
  620. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/recursionDetectionMiddleware.browser.d.ts +5 -0
  621. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/recursionDetectionMiddleware.d.ts +5 -0
  622. package/node_modules/@aws-sdk/middleware-recursion-detection/dist-types/ts3.4/recursionDetectionMiddleware.native.d.ts +5 -0
  623. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +13 -7
  624. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +512 -638
  625. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js +15 -10
  626. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +19 -18
  627. package/node_modules/@aws-sdk/middleware-ssec/dist-cjs/index.js +65 -92
  628. package/node_modules/@aws-sdk/middleware-ssec/package.json +6 -5
  629. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +170 -203
  630. package/node_modules/@aws-sdk/middleware-user-agent/package.json +10 -9
  631. package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -2
  632. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +585 -833
  633. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +797 -928
  634. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js +13 -0
  635. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/protocols/Aws_restJson1.js +2 -0
  636. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +6 -4
  637. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +1 -1
  638. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +1 -1
  639. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +2 -0
  640. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +1 -1
  641. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/models_0.d.ts +36 -3
  642. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +2 -0
  643. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +2 -0
  644. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/defaultStsRoleAssumers.d.ts +1 -1
  645. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/models_0.d.ts +15 -0
  646. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/defaultStsRoleAssumers.d.ts +1 -1
  647. package/node_modules/@aws-sdk/nested-clients/package.json +37 -36
  648. package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +37 -100
  649. package/node_modules/@aws-sdk/region-config-resolver/dist-es/index.js +1 -1
  650. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/awsRegionConfig.js +2 -0
  651. package/node_modules/@aws-sdk/region-config-resolver/dist-types/extensions/index.d.ts +2 -2
  652. package/node_modules/@aws-sdk/region-config-resolver/dist-types/index.d.ts +1 -1
  653. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/awsRegionConfig.d.ts +15 -0
  654. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/index.d.ts +1 -1
  655. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/awsRegionConfig.d.ts +11 -0
  656. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -7
  657. package/node_modules/@aws-sdk/s3-request-presigner/dist-cjs/index.js +123 -177
  658. package/node_modules/@aws-sdk/s3-request-presigner/package.json +11 -10
  659. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +108 -137
  660. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +9 -8
  661. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +147 -222
  662. package/node_modules/@aws-sdk/token-providers/package.json +11 -9
  663. package/node_modules/@aws-sdk/types/dist-cjs/index.js +18 -290
  664. package/node_modules/@aws-sdk/types/package.json +3 -2
  665. package/node_modules/@aws-sdk/util-arn-parser/package.json +2 -1
  666. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +395 -466
  667. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/partitions.json +40 -37
  668. package/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json +40 -37
  669. package/node_modules/@aws-sdk/util-endpoints/package.json +8 -8
  670. package/node_modules/@aws-sdk/util-format-url/dist-cjs/index.js +30 -58
  671. package/node_modules/@aws-sdk/util-format-url/package.json +5 -4
  672. package/node_modules/@aws-sdk/util-locate-window/package.json +2 -1
  673. package/node_modules/@aws-sdk/util-user-agent-browser/README.md +22 -3
  674. package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/createUserAgentStringParsingProvider.js +57 -0
  675. package/node_modules/@aws-sdk/util-user-agent-browser/dist-cjs/index.js +39 -8
  676. package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/createUserAgentStringParsingProvider.js +20 -0
  677. package/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js +37 -6
  678. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/createUserAgentStringParsingProvider.d.ts +14 -0
  679. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.d.ts +14 -4
  680. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/index.native.d.ts +4 -3
  681. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/createUserAgentStringParsingProvider.d.ts +9 -0
  682. package/node_modules/@aws-sdk/util-user-agent-browser/dist-types/ts3.4/index.d.ts +5 -0
  683. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +4 -3
  684. package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +50 -94
  685. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/crt-availability.d.ts +1 -2
  686. package/node_modules/@aws-sdk/util-user-agent-node/dist-types/defaultUserAgent.d.ts +10 -5
  687. package/node_modules/@aws-sdk/util-user-agent-node/package.json +6 -5
  688. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +106 -155
  689. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +18 -0
  690. package/node_modules/@aws-sdk/xml-builder/dist-es/index.js +1 -0
  691. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js +57 -0
  692. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +15 -0
  693. package/node_modules/@aws-sdk/xml-builder/dist-types/index.d.ts +4 -0
  694. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/index.d.ts +1 -0
  695. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.browser.d.ts +1 -0
  696. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -0
  697. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.browser.d.ts +9 -0
  698. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.d.ts +4 -0
  699. package/node_modules/@aws-sdk/xml-builder/package.json +11 -2
  700. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/.jsii +135 -5
  701. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/lib/index.js +1 -1
  702. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/.jsii +224 -86
  703. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/index.d.ts +1 -0
  704. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/index.js +2 -1
  705. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/bedrock-inference-helper.js +2 -2
  706. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-defaults.d.ts +1 -1
  707. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-defaults.js +1 -1
  708. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.d.ts +1 -1
  709. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/cloudfront-distribution-helper.js +21 -2
  710. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/{test/integ.lamddb-no-arguments.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js → node_modules/@aws-solutions-constructs/core/lib/constructs-feature-flags.d.ts} +9 -9
  711. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/constructs-feature-flags.js +63 -0
  712. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-helper.d.ts +0 -2
  713. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/dynamodb-table-helper.js +4 -2
  714. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/kendra-helper.js +4 -2
  715. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/pipes-defaults.js +1 -2
  716. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/sqs-helper.js +46 -41
  717. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/utils.js +1 -1
  718. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-defaults.d.ts +3 -0
  719. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-defaults.js +21 -16
  720. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-helper.d.ts +5 -1
  721. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/vpc-helper.js +31 -4
  722. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/lib/waf-helper.js +5 -2
  723. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/package.json +5 -4
  724. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/TwoLogGroups.json +365 -0
  725. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/bedrock-inference-helper.test.js +2 -6
  726. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.js +123 -1
  727. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/{test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js → node_modules/@aws-solutions-constructs/core/test/constructs-feature-flags.test.d.ts} +1 -9
  728. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/constructs-feature-flags.test.js +50 -0
  729. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/dynamo-table.test.js +12 -6
  730. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/lambda/index.js +1 -1
  731. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/pipes-helper.test.js +2 -2
  732. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/step-function-helper.test.js +1 -1
  733. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/test-helper.d.ts +6 -0
  734. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/test-helper.js +84 -1
  735. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/vpc-helper.test.js +31 -1
  736. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/node_modules/@aws-solutions-constructs/core/test/waf-helper.test.js +35 -1
  737. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +6 -6
  738. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js +2 -1
  739. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js +2 -1
  740. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/cdk.out +1 -1
  741. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/integ.json +2 -2
  742. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.assets.json +6 -6
  743. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddb-deployFunctionWithExistingVpc.template.json +1 -136
  744. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/lamddbdeployFunctionWithExistingVpcIntegDefaultTestDeployAssertEE08E38E.assets.json +2 -2
  745. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/manifest.json +475 -10
  746. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/tree.json +1 -1
  747. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js +2 -1
  748. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/cdk.out +1 -1
  749. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/integ.json +2 -2
  750. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.assets.json +6 -6
  751. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddb-deployFunctionWithVpc.template.json +1 -136
  752. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/lamddbdeployFunctionWithVpcIntegDefaultTestDeployAssert0AB8275C.assets.json +2 -2
  753. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/manifest.json +475 -10
  754. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/tree.json +1 -1
  755. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-no-arguments.js +2 -1
  756. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js +2 -1
  757. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js +2 -1
  758. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js +2 -1
  759. package/node_modules/@gemeentenijmegen/apiclient/node_modules/@gemeentenijmegen/utils/package.json +8 -8
  760. package/node_modules/@gemeentenijmegen/apiclient/package.json +9 -9
  761. package/node_modules/@gemeentenijmegen/apigateway-http/package.json +5 -5
  762. package/node_modules/@gemeentenijmegen/session/lib/index.d.ts +5 -0
  763. package/node_modules/@gemeentenijmegen/session/lib/index.js +17 -1
  764. package/node_modules/@gemeentenijmegen/session/package.json +6 -6
  765. package/node_modules/@gemeentenijmegen/utils/lib/authenticate.d.ts +13 -0
  766. package/node_modules/@gemeentenijmegen/utils/lib/authenticate.js +52 -0
  767. package/node_modules/@gemeentenijmegen/utils/lib/index.d.ts +3 -2
  768. package/node_modules/@gemeentenijmegen/utils/lib/index.js +8 -6
  769. package/node_modules/@gemeentenijmegen/utils/package.json +9 -8
  770. package/node_modules/@smithy/abort-controller/dist-cjs/index.js +28 -80
  771. package/node_modules/@smithy/abort-controller/dist-es/AbortController.js +1 -3
  772. package/node_modules/@smithy/abort-controller/dist-es/AbortSignal.js +2 -2
  773. package/node_modules/@smithy/abort-controller/package.json +3 -2
  774. package/node_modules/@smithy/chunked-blob-reader/dist-cjs/index.js +9 -37
  775. package/node_modules/@smithy/chunked-blob-reader/package.json +5 -4
  776. package/node_modules/@smithy/chunked-blob-reader-native/dist-cjs/index.js +28 -55
  777. package/node_modules/@smithy/chunked-blob-reader-native/package.json +6 -5
  778. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +167 -214
  779. package/node_modules/@smithy/config-resolver/dist-es/regionConfig/checkRegion.js +10 -0
  780. package/node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js +5 -5
  781. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +1 -1
  782. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +1 -1
  783. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveCustomEndpointsConfig.d.ts +2 -2
  784. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig.d.ts +1 -1
  785. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/utils/getEndpointFromRegion.d.ts +1 -1
  786. package/node_modules/@smithy/config-resolver/dist-types/regionConfig/checkRegion.d.ts +9 -0
  787. package/node_modules/@smithy/config-resolver/dist-types/regionConfig/config.d.ts +1 -1
  788. package/node_modules/@smithy/config-resolver/dist-types/regionConfig/resolveRegionConfig.d.ts +1 -1
  789. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/EndpointVariant.d.ts +1 -1
  790. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/PartitionHash.d.ts +1 -1
  791. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/RegionHash.d.ts +1 -1
  792. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getHostnameFromVariants.d.ts +1 -1
  793. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getRegionInfo.d.ts +3 -3
  794. package/node_modules/@smithy/config-resolver/dist-types/regionInfo/getResolvedPartition.d.ts +1 -1
  795. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/regionConfig/checkRegion.d.ts +9 -0
  796. package/node_modules/@smithy/config-resolver/package.json +7 -5
  797. package/node_modules/@smithy/core/dist-cjs/index.js +308 -413
  798. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +985 -939
  799. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +211 -0
  800. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +797 -799
  801. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +576 -807
  802. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +671 -720
  803. package/node_modules/@smithy/core/dist-es/index.js +1 -1
  804. package/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +0 -1
  805. package/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js +0 -1
  806. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +82 -53
  807. package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +42 -19
  808. package/node_modules/@smithy/core/dist-es/submodules/cbor/byte-printer.js +35 -1
  809. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +18 -18
  810. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +5 -5
  811. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +1 -1
  812. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +206 -0
  813. package/node_modules/@smithy/core/dist-es/submodules/event-streams/index.js +1 -0
  814. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +99 -17
  815. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +52 -101
  816. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +38 -12
  817. package/node_modules/@smithy/core/dist-es/submodules/protocols/SerdeContext.js +6 -0
  818. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +2 -0
  819. package/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js +9 -7
  820. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +23 -21
  821. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js +5 -1
  822. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js +3 -0
  823. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +9 -10
  824. package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +5 -6
  825. package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +27 -11
  826. package/node_modules/@smithy/core/dist-es/submodules/schema/index.js +2 -0
  827. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -1
  828. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +3 -1
  829. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ErrorSchema.js +12 -24
  830. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js +11 -22
  831. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js +13 -23
  832. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +143 -195
  833. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js +13 -13
  834. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/Schema.js +17 -3
  835. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js +17 -22
  836. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js +13 -29
  837. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/operation.js +7 -0
  838. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/sentinels.js +14 -14
  839. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +22 -0
  840. package/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js +1 -53
  841. package/node_modules/@smithy/core/dist-es/submodules/serde/generateIdempotencyToken.js +2 -0
  842. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  843. package/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +110 -0
  844. package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +6 -24
  845. package/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js +1 -1
  846. package/node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js +4 -2
  847. package/node_modules/@smithy/core/dist-types/getSmithyContext.d.ts +1 -1
  848. package/node_modules/@smithy/core/dist-types/index.d.ts +1 -1
  849. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.d.ts +2 -2
  850. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/getHttpAuthSchemePlugin.d.ts +2 -2
  851. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/httpAuthSchemeMiddleware.d.ts +1 -1
  852. package/node_modules/@smithy/core/dist-types/middleware-http-auth-scheme/resolveAuthOptions.d.ts +1 -1
  853. package/node_modules/@smithy/core/dist-types/middleware-http-signing/getHttpSigningMiddleware.d.ts +1 -1
  854. package/node_modules/@smithy/core/dist-types/middleware-http-signing/httpSigningMiddleware.d.ts +1 -1
  855. package/node_modules/@smithy/core/dist-types/normalizeProvider.d.ts +1 -1
  856. package/node_modules/@smithy/core/dist-types/submodules/cbor/CborCodec.d.ts +15 -11
  857. package/node_modules/@smithy/core/dist-types/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
  858. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-decode.d.ts +1 -1
  859. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-types.d.ts +1 -1
  860. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor.d.ts +1 -1
  861. package/node_modules/@smithy/core/dist-types/submodules/cbor/parseCborBody.d.ts +2 -2
  862. package/node_modules/@smithy/core/dist-types/submodules/event-streams/EventStreamSerde.d.ts +60 -0
  863. package/node_modules/@smithy/core/dist-types/submodules/event-streams/index.d.ts +1 -0
  864. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpBindingProtocol.d.ts +9 -1
  865. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpProtocol.d.ts +47 -4
  866. package/node_modules/@smithy/core/dist-types/submodules/protocols/RpcProtocol.d.ts +1 -1
  867. package/node_modules/@smithy/core/dist-types/submodules/protocols/SerdeContext.d.ts +8 -0
  868. package/node_modules/@smithy/core/dist-types/submodules/protocols/collect-stream-body.d.ts +1 -1
  869. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +2 -0
  870. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/FromStringShapeDeserializer.d.ts +3 -4
  871. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/HttpInterceptingShapeDeserializer.d.ts +6 -3
  872. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/HttpInterceptingShapeSerializer.d.ts +5 -2
  873. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/ToStringShapeSerializer.d.ts +3 -4
  874. package/node_modules/@smithy/core/dist-types/submodules/protocols/serde/determineTimestampFormat.d.ts +2 -2
  875. package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +14 -5
  876. package/node_modules/@smithy/core/dist-types/submodules/schema/index.d.ts +2 -0
  877. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/getSchemaSerdePlugin.d.ts +2 -2
  878. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/schemaDeserializationMiddleware.d.ts +2 -2
  879. package/node_modules/@smithy/core/dist-types/submodules/schema/middleware/schemaSerializationMiddleware.d.ts +2 -2
  880. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/ErrorSchema.d.ts +10 -14
  881. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/ListSchema.d.ts +5 -5
  882. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/MapSchema.d.ts +5 -9
  883. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +31 -29
  884. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/OperationSchema.d.ts +5 -2
  885. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/Schema.d.ts +6 -1
  886. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/SimpleSchema.d.ts +11 -6
  887. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/StructureSchema.d.ts +5 -6
  888. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/operation.d.ts +7 -0
  889. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +3 -1
  890. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +7 -0
  891. package/node_modules/@smithy/core/dist-types/submodules/serde/copyDocumentWithTransform.d.ts +2 -1
  892. package/node_modules/@smithy/core/dist-types/submodules/serde/generateIdempotencyToken.d.ts +2 -0
  893. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  894. package/node_modules/@smithy/core/dist-types/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  895. package/node_modules/@smithy/core/dist-types/ts3.4/index.d.ts +1 -1
  896. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/CborCodec.d.ts +15 -11
  897. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
  898. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/cbor-types.d.ts +1 -1
  899. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/cbor.d.ts +1 -1
  900. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/event-streams/EventStreamSerde.d.ts +60 -0
  901. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/event-streams/index.d.ts +1 -0
  902. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpBindingProtocol.d.ts +9 -1
  903. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpProtocol.d.ts +47 -4
  904. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/SerdeContext.d.ts +8 -0
  905. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +2 -0
  906. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/FromStringShapeDeserializer.d.ts +3 -4
  907. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/HttpInterceptingShapeDeserializer.d.ts +5 -2
  908. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/HttpInterceptingShapeSerializer.d.ts +5 -2
  909. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/ToStringShapeSerializer.d.ts +3 -4
  910. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/serde/determineTimestampFormat.d.ts +1 -1
  911. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/TypeRegistry.d.ts +13 -4
  912. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/index.d.ts +2 -0
  913. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/ErrorSchema.d.ts +10 -14
  914. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/ListSchema.d.ts +5 -5
  915. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/MapSchema.d.ts +5 -9
  916. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +31 -29
  917. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/OperationSchema.d.ts +5 -2
  918. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/Schema.d.ts +6 -1
  919. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/SimpleSchema.d.ts +10 -5
  920. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/StructureSchema.d.ts +5 -9
  921. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/operation.d.ts +7 -0
  922. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/sentinels.d.ts +2 -0
  923. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +7 -0
  924. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/copyDocumentWithTransform.d.ts +1 -0
  925. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/generateIdempotencyToken.d.ts +2 -0
  926. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +2 -0
  927. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
  928. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/DefaultIdentityProviderConfig.d.ts +1 -1
  929. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.d.ts +1 -1
  930. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.d.ts +1 -1
  931. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/httpAuthSchemes/noAuth.d.ts +1 -1
  932. package/node_modules/@smithy/core/dist-types/util-identity-and-auth/memoizeIdentityProvider.d.ts +1 -1
  933. package/node_modules/@smithy/core/event-streams.d.ts +7 -0
  934. package/node_modules/@smithy/core/event-streams.js +6 -0
  935. package/node_modules/@smithy/core/package.json +20 -9
  936. package/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +340 -413
  937. package/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +2 -1
  938. package/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +1 -1
  939. package/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +1 -1
  940. package/node_modules/@smithy/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +2 -2
  941. package/node_modules/@smithy/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +3 -3
  942. package/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +1 -1
  943. package/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +1 -1
  944. package/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +1 -1
  945. package/node_modules/@smithy/credential-provider-imds/dist-types/types.d.ts +1 -1
  946. package/node_modules/@smithy/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +2 -2
  947. package/node_modules/@smithy/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +1 -1
  948. package/node_modules/@smithy/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +2 -2
  949. package/node_modules/@smithy/credential-provider-imds/package.json +6 -5
  950. package/node_modules/@smithy/eventstream-codec/dist-cjs/index.js +372 -459
  951. package/node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js +3 -0
  952. package/node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js +2 -0
  953. package/node_modules/@smithy/eventstream-codec/dist-es/Int64.js +2 -1
  954. package/node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js +1 -0
  955. package/node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js +1 -0
  956. package/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js +1 -0
  957. package/node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js +1 -0
  958. package/node_modules/@smithy/eventstream-codec/dist-types/EventStreamCodec.d.ts +2 -2
  959. package/node_modules/@smithy/eventstream-codec/dist-types/HeaderMarshaller.d.ts +1 -1
  960. package/node_modules/@smithy/eventstream-codec/dist-types/Int64.d.ts +1 -1
  961. package/node_modules/@smithy/eventstream-codec/dist-types/Message.d.ts +1 -1
  962. package/node_modules/@smithy/eventstream-codec/dist-types/MessageDecoderStream.d.ts +1 -1
  963. package/node_modules/@smithy/eventstream-codec/dist-types/MessageEncoderStream.d.ts +1 -1
  964. package/node_modules/@smithy/eventstream-codec/dist-types/SmithyMessageDecoderStream.d.ts +1 -1
  965. package/node_modules/@smithy/eventstream-codec/dist-types/SmithyMessageEncoderStream.d.ts +1 -1
  966. package/node_modules/@smithy/eventstream-codec/dist-types/TestVectors.fixture.d.ts +1 -1
  967. package/node_modules/@smithy/eventstream-codec/dist-types/vectorTypes.fixture.d.ts +1 -1
  968. package/node_modules/@smithy/eventstream-codec/package.json +5 -4
  969. package/node_modules/@smithy/eventstream-serde-browser/dist-cjs/index.js +51 -97
  970. package/node_modules/@smithy/eventstream-serde-browser/dist-es/EventStreamMarshaller.js +1 -0
  971. package/node_modules/@smithy/eventstream-serde-browser/dist-types/EventStreamMarshaller.d.ts +1 -1
  972. package/node_modules/@smithy/eventstream-serde-browser/dist-types/provider.d.ts +1 -1
  973. package/node_modules/@smithy/eventstream-serde-browser/package.json +4 -3
  974. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/index.js +4 -33
  975. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/EventStreamSerdeConfig.d.ts +1 -1
  976. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +3 -2
  977. package/node_modules/@smithy/eventstream-serde-node/dist-cjs/index.js +44 -80
  978. package/node_modules/@smithy/eventstream-serde-node/dist-es/EventStreamMarshaller.js +1 -0
  979. package/node_modules/@smithy/eventstream-serde-node/dist-types/EventStreamMarshaller.d.ts +1 -1
  980. package/node_modules/@smithy/eventstream-serde-node/dist-types/provider.d.ts +1 -1
  981. package/node_modules/@smithy/eventstream-serde-node/dist-types/utils.d.ts +1 -1
  982. package/node_modules/@smithy/eventstream-serde-node/package.json +4 -3
  983. package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/index.js +120 -171
  984. package/node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js +2 -0
  985. package/node_modules/@smithy/eventstream-serde-universal/dist-types/EventStreamMarshaller.d.ts +1 -1
  986. package/node_modules/@smithy/eventstream-serde-universal/dist-types/getUnmarshalledStream.d.ts +2 -2
  987. package/node_modules/@smithy/eventstream-serde-universal/dist-types/provider.d.ts +1 -1
  988. package/node_modules/@smithy/eventstream-serde-universal/package.json +8 -5
  989. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +190 -238
  990. package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +2 -0
  991. package/node_modules/@smithy/fetch-http-handler/dist-types/create-request.d.ts +1 -1
  992. package/node_modules/@smithy/fetch-http-handler/dist-types/fetch-http-handler.d.ts +3 -2
  993. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +1 -1
  994. package/node_modules/@smithy/fetch-http-handler/dist-types/ts3.4/fetch-http-handler.d.ts +2 -1
  995. package/node_modules/@smithy/fetch-http-handler/package.json +9 -8
  996. package/node_modules/@smithy/hash-blob-browser/dist-cjs/index.js +10 -36
  997. package/node_modules/@smithy/hash-blob-browser/dist-types/index.d.ts +1 -1
  998. package/node_modules/@smithy/hash-blob-browser/package.json +6 -5
  999. package/node_modules/@smithy/hash-node/dist-cjs/index.js +38 -63
  1000. package/node_modules/@smithy/hash-node/dist-es/index.js +3 -0
  1001. package/node_modules/@smithy/hash-node/dist-types/index.d.ts +1 -1
  1002. package/node_modules/@smithy/hash-node/package.json +5 -4
  1003. package/node_modules/@smithy/hash-stream-node/dist-cjs/index.js +58 -92
  1004. package/node_modules/@smithy/hash-stream-node/dist-es/HashCalculator.js +1 -0
  1005. package/node_modules/@smithy/hash-stream-node/dist-types/HashCalculator.d.ts +3 -2
  1006. package/node_modules/@smithy/hash-stream-node/dist-types/fileStreamHasher.d.ts +2 -2
  1007. package/node_modules/@smithy/hash-stream-node/dist-types/readableStreamHasher.d.ts +2 -2
  1008. package/node_modules/@smithy/hash-stream-node/dist-types/ts3.4/HashCalculator.d.ts +2 -1
  1009. package/node_modules/@smithy/hash-stream-node/package.json +5 -4
  1010. package/node_modules/@smithy/invalid-dependency/dist-cjs/index.js +7 -38
  1011. package/node_modules/@smithy/invalid-dependency/dist-types/invalidProvider.d.ts +1 -1
  1012. package/node_modules/@smithy/invalid-dependency/package.json +3 -2
  1013. package/node_modules/@smithy/is-array-buffer/dist-cjs/index.js +4 -30
  1014. package/node_modules/@smithy/is-array-buffer/package.json +5 -4
  1015. package/node_modules/@smithy/md5-js/dist-cjs/index.js +153 -186
  1016. package/node_modules/@smithy/md5-js/dist-es/index.js +5 -0
  1017. package/node_modules/@smithy/md5-js/dist-types/index.d.ts +1 -1
  1018. package/node_modules/@smithy/md5-js/package.json +6 -5
  1019. package/node_modules/@smithy/middleware-content-length/dist-cjs/index.js +39 -64
  1020. package/node_modules/@smithy/middleware-content-length/dist-types/index.d.ts +1 -1
  1021. package/node_modules/@smithy/middleware-content-length/package.json +6 -5
  1022. package/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js +1 -1
  1023. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +219 -277
  1024. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/getEndpointFromInstructions.d.ts +3 -3
  1025. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/getEndpointUrlConfig.d.ts +1 -1
  1026. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/toEndpointV1.d.ts +1 -1
  1027. package/node_modules/@smithy/middleware-endpoint/dist-types/endpointMiddleware.d.ts +3 -3
  1028. package/node_modules/@smithy/middleware-endpoint/dist-types/getEndpointPlugin.d.ts +3 -3
  1029. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +1 -1
  1030. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointRequiredConfig.d.ts +1 -1
  1031. package/node_modules/@smithy/middleware-endpoint/dist-types/service-customizations/s3.d.ts +1 -1
  1032. package/node_modules/@smithy/middleware-endpoint/package.json +9 -8
  1033. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +327 -394
  1034. package/node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.browser.js +1 -1
  1035. package/node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js +2 -2
  1036. package/node_modules/@smithy/middleware-retry/dist-es/AdaptiveRetryStrategy.js +1 -0
  1037. package/node_modules/@smithy/middleware-retry/dist-es/StandardRetryStrategy.js +6 -2
  1038. package/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js +1 -1
  1039. package/node_modules/@smithy/middleware-retry/dist-types/AdaptiveRetryStrategy.d.ts +4 -3
  1040. package/node_modules/@smithy/middleware-retry/dist-types/StandardRetryStrategy.d.ts +2 -2
  1041. package/node_modules/@smithy/middleware-retry/dist-types/configurations.d.ts +2 -2
  1042. package/node_modules/@smithy/middleware-retry/dist-types/defaultRetryQuota.d.ts +1 -1
  1043. package/node_modules/@smithy/middleware-retry/dist-types/omitRetryHeadersMiddleware.d.ts +1 -1
  1044. package/node_modules/@smithy/middleware-retry/dist-types/retryDecider.d.ts +1 -1
  1045. package/node_modules/@smithy/middleware-retry/dist-types/retryMiddleware.d.ts +2 -2
  1046. package/node_modules/@smithy/middleware-retry/dist-types/ts3.4/AdaptiveRetryStrategy.d.ts +2 -1
  1047. package/node_modules/@smithy/middleware-retry/dist-types/types.d.ts +1 -1
  1048. package/node_modules/@smithy/middleware-retry/dist-types/util.d.ts +1 -1
  1049. package/node_modules/@smithy/middleware-retry/package.json +13 -13
  1050. package/node_modules/@smithy/middleware-serde/dist-cjs/index.js +89 -118
  1051. package/node_modules/@smithy/middleware-serde/dist-types/deserializerMiddleware.d.ts +1 -1
  1052. package/node_modules/@smithy/middleware-serde/dist-types/serdePlugin.d.ts +1 -1
  1053. package/node_modules/@smithy/middleware-serde/dist-types/serializerMiddleware.d.ts +1 -1
  1054. package/node_modules/@smithy/middleware-serde/package.json +6 -5
  1055. package/node_modules/@smithy/middleware-stack/dist-cjs/index.js +274 -302
  1056. package/node_modules/@smithy/middleware-stack/dist-types/MiddlewareStack.d.ts +1 -1
  1057. package/node_modules/@smithy/middleware-stack/dist-types/types.d.ts +1 -1
  1058. package/node_modules/@smithy/middleware-stack/package.json +3 -2
  1059. package/node_modules/@smithy/node-config-provider/dist-cjs/index.js +51 -98
  1060. package/node_modules/@smithy/node-config-provider/dist-types/configLoader.d.ts +4 -4
  1061. package/node_modules/@smithy/node-config-provider/dist-types/fromEnv.d.ts +1 -1
  1062. package/node_modules/@smithy/node-config-provider/dist-types/fromSharedConfigFiles.d.ts +2 -2
  1063. package/node_modules/@smithy/node-config-provider/dist-types/fromStatic.d.ts +1 -1
  1064. package/node_modules/@smithy/node-config-provider/package.json +5 -4
  1065. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +690 -769
  1066. package/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +26 -15
  1067. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +2 -1
  1068. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +1 -1
  1069. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +4 -2
  1070. package/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +3 -1
  1071. package/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +1 -1
  1072. package/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +21 -0
  1073. package/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +2 -3
  1074. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +1 -4
  1075. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +3 -1
  1076. package/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +2 -2
  1077. package/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +2 -2
  1078. package/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +3 -2
  1079. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +4 -4
  1080. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +2 -2
  1081. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +3 -2
  1082. package/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +2 -1
  1083. package/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +4 -4
  1084. package/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +1 -1
  1085. package/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +6 -0
  1086. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +1 -1
  1087. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +1 -1
  1088. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +1 -1
  1089. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +2 -1
  1090. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +2 -1
  1091. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +2 -1
  1092. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +2 -1
  1093. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +6 -0
  1094. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +2 -1
  1095. package/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +3 -3
  1096. package/node_modules/@smithy/node-http-handler/package.json +6 -5
  1097. package/node_modules/@smithy/property-provider/dist-cjs/index.js +105 -158
  1098. package/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +1 -1
  1099. package/node_modules/@smithy/property-provider/dist-es/ProviderError.js +2 -1
  1100. package/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +1 -1
  1101. package/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +2 -1
  1102. package/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +1 -1
  1103. package/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +2 -1
  1104. package/node_modules/@smithy/property-provider/dist-types/chain.d.ts +1 -1
  1105. package/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +1 -1
  1106. package/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +1 -1
  1107. package/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +2 -1
  1108. package/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +2 -1
  1109. package/node_modules/@smithy/property-provider/package.json +3 -2
  1110. package/node_modules/@smithy/protocol-http/dist-cjs/index.js +154 -247
  1111. package/node_modules/@smithy/protocol-http/dist-es/Field.js +3 -0
  1112. package/node_modules/@smithy/protocol-http/dist-es/Fields.js +2 -1
  1113. package/node_modules/@smithy/protocol-http/dist-es/httpRequest.js +11 -0
  1114. package/node_modules/@smithy/protocol-http/dist-es/httpResponse.js +4 -0
  1115. package/node_modules/@smithy/protocol-http/dist-types/Field.d.ts +2 -1
  1116. package/node_modules/@smithy/protocol-http/dist-types/Fields.d.ts +2 -2
  1117. package/node_modules/@smithy/protocol-http/dist-types/extensions/httpExtensionConfiguration.d.ts +1 -1
  1118. package/node_modules/@smithy/protocol-http/dist-types/httpRequest.d.ts +2 -1
  1119. package/node_modules/@smithy/protocol-http/dist-types/httpResponse.d.ts +1 -1
  1120. package/node_modules/@smithy/protocol-http/dist-types/ts3.4/Field.d.ts +2 -1
  1121. package/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpRequest.d.ts +2 -1
  1122. package/node_modules/@smithy/protocol-http/dist-types/types.d.ts +1 -1
  1123. package/node_modules/@smithy/protocol-http/package.json +3 -2
  1124. package/node_modules/@smithy/querystring-builder/dist-cjs/index.js +21 -47
  1125. package/node_modules/@smithy/querystring-builder/dist-types/index.d.ts +1 -1
  1126. package/node_modules/@smithy/querystring-builder/package.json +4 -3
  1127. package/node_modules/@smithy/querystring-parser/dist-cjs/index.js +22 -48
  1128. package/node_modules/@smithy/querystring-parser/dist-types/index.d.ts +1 -1
  1129. package/node_modules/@smithy/querystring-parser/package.json +3 -2
  1130. package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +70 -103
  1131. package/node_modules/@smithy/service-error-classification/dist-es/index.js +3 -2
  1132. package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +1 -1
  1133. package/node_modules/@smithy/service-error-classification/package.json +3 -2
  1134. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js +5 -1
  1135. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js +173 -189
  1136. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js +9 -5
  1137. package/node_modules/@smithy/shared-ini-file-loader/dist-es/constants.js +1 -0
  1138. package/node_modules/@smithy/shared-ini-file-loader/dist-es/externalDataInterceptor.js +16 -0
  1139. package/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js +1 -1
  1140. package/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js +4 -0
  1141. package/node_modules/@smithy/shared-ini-file-loader/dist-es/index.js +2 -1
  1142. package/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js +1 -1
  1143. package/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js +1 -1
  1144. package/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js +5 -1
  1145. package/node_modules/@smithy/shared-ini-file-loader/dist-types/constants.d.ts +4 -0
  1146. package/node_modules/@smithy/shared-ini-file-loader/dist-types/externalDataInterceptor.d.ts +9 -0
  1147. package/node_modules/@smithy/shared-ini-file-loader/dist-types/getConfigData.d.ts +1 -1
  1148. package/node_modules/@smithy/shared-ini-file-loader/dist-types/getSSOTokenFromFile.d.ts +5 -1
  1149. package/node_modules/@smithy/shared-ini-file-loader/dist-types/getSsoSessionData.d.ts +1 -1
  1150. package/node_modules/@smithy/shared-ini-file-loader/dist-types/index.d.ts +2 -1
  1151. package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +2 -5
  1152. package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSsoSessionData.d.ts +1 -1
  1153. package/node_modules/@smithy/shared-ini-file-loader/dist-types/mergeConfigFiles.d.ts +1 -1
  1154. package/node_modules/@smithy/shared-ini-file-loader/dist-types/parseIni.d.ts +1 -1
  1155. package/node_modules/@smithy/shared-ini-file-loader/dist-types/parseKnownFiles.d.ts +2 -2
  1156. package/node_modules/@smithy/shared-ini-file-loader/dist-types/slurpFile.d.ts +2 -0
  1157. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/constants.d.ts +4 -0
  1158. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/externalDataInterceptor.d.ts +9 -0
  1159. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/getSSOTokenFromFile.d.ts +5 -1
  1160. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/index.d.ts +2 -1
  1161. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +1 -4
  1162. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/slurpFile.d.ts +2 -0
  1163. package/node_modules/@smithy/shared-ini-file-loader/dist-types/types.d.ts +1 -1
  1164. package/node_modules/@smithy/shared-ini-file-loader/package.json +3 -2
  1165. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +525 -651
  1166. package/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js +2 -1
  1167. package/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js +1 -1
  1168. package/node_modules/@smithy/signature-v4/dist-es/SignatureV4Base.js +6 -0
  1169. package/node_modules/@smithy/signature-v4/dist-types/SignatureV4.d.ts +3 -2
  1170. package/node_modules/@smithy/signature-v4/dist-types/SignatureV4Base.d.ts +1 -1
  1171. package/node_modules/@smithy/signature-v4/dist-types/credentialDerivation.d.ts +1 -1
  1172. package/node_modules/@smithy/signature-v4/dist-types/getCanonicalHeaders.d.ts +1 -1
  1173. package/node_modules/@smithy/signature-v4/dist-types/getCanonicalQuery.d.ts +1 -1
  1174. package/node_modules/@smithy/signature-v4/dist-types/getPayloadHash.d.ts +1 -1
  1175. package/node_modules/@smithy/signature-v4/dist-types/headerUtil.d.ts +1 -1
  1176. package/node_modules/@smithy/signature-v4/dist-types/suite.fixture.d.ts +1 -1
  1177. package/node_modules/@smithy/signature-v4/dist-types/ts3.4/SignatureV4.d.ts +2 -1
  1178. package/node_modules/@smithy/signature-v4/package.json +9 -8
  1179. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +557 -714
  1180. package/node_modules/@smithy/smithy-client/dist-es/client.js +4 -1
  1181. package/node_modules/@smithy/smithy-client/dist-es/command.js +23 -20
  1182. package/node_modules/@smithy/smithy-client/dist-es/exceptions.js +4 -0
  1183. package/node_modules/@smithy/smithy-client/dist-es/schemaLogFilter.js +34 -0
  1184. package/node_modules/@smithy/smithy-client/dist-types/NoOpLogger.d.ts +1 -1
  1185. package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +1 -1
  1186. package/node_modules/@smithy/smithy-client/dist-types/command.d.ts +3 -3
  1187. package/node_modules/@smithy/smithy-client/dist-types/create-aggregated-client.d.ts +1 -1
  1188. package/node_modules/@smithy/smithy-client/dist-types/exceptions.d.ts +1 -1
  1189. package/node_modules/@smithy/smithy-client/dist-types/extensions/defaultExtensionConfiguration.d.ts +2 -2
  1190. package/node_modules/@smithy/smithy-client/dist-types/extensions/retry.d.ts +1 -1
  1191. package/node_modules/@smithy/smithy-client/dist-types/schemaLogFilter.d.ts +9 -0
  1192. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/command.d.ts +3 -3
  1193. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/schemaLogFilter.d.ts +9 -0
  1194. package/node_modules/@smithy/smithy-client/package.json +8 -7
  1195. package/node_modules/@smithy/types/dist-cjs/index.js +80 -133
  1196. package/node_modules/@smithy/types/dist-es/index.js +2 -0
  1197. package/node_modules/@smithy/types/dist-es/schema/schema-deprecated.js +1 -0
  1198. package/node_modules/@smithy/types/dist-es/schema/static-schemas.js +1 -0
  1199. package/node_modules/@smithy/types/dist-types/auth/HttpAuthScheme.d.ts +4 -4
  1200. package/node_modules/@smithy/types/dist-types/auth/HttpAuthSchemeProvider.d.ts +2 -2
  1201. package/node_modules/@smithy/types/dist-types/auth/HttpSigner.d.ts +2 -2
  1202. package/node_modules/@smithy/types/dist-types/auth/IdentityProviderConfig.d.ts +2 -2
  1203. package/node_modules/@smithy/types/dist-types/blob/blob-payload-input-types.d.ts +1 -1
  1204. package/node_modules/@smithy/types/dist-types/checksum.d.ts +1 -1
  1205. package/node_modules/@smithy/types/dist-types/client.d.ts +4 -4
  1206. package/node_modules/@smithy/types/dist-types/command.d.ts +2 -2
  1207. package/node_modules/@smithy/types/dist-types/connection/manager.d.ts +2 -2
  1208. package/node_modules/@smithy/types/dist-types/encode.d.ts +1 -1
  1209. package/node_modules/@smithy/types/dist-types/endpoint.d.ts +1 -1
  1210. package/node_modules/@smithy/types/dist-types/endpoints/EndpointRuleObject.d.ts +2 -2
  1211. package/node_modules/@smithy/types/dist-types/endpoints/ErrorRuleObject.d.ts +1 -1
  1212. package/node_modules/@smithy/types/dist-types/endpoints/RuleSetObject.d.ts +1 -1
  1213. package/node_modules/@smithy/types/dist-types/endpoints/TreeRuleObject.d.ts +3 -3
  1214. package/node_modules/@smithy/types/dist-types/endpoints/shared.d.ts +1 -1
  1215. package/node_modules/@smithy/types/dist-types/eventStream.d.ts +3 -3
  1216. package/node_modules/@smithy/types/dist-types/extensions/checksum.d.ts +2 -2
  1217. package/node_modules/@smithy/types/dist-types/extensions/defaultClientConfiguration.d.ts +1 -1
  1218. package/node_modules/@smithy/types/dist-types/extensions/defaultExtensionConfiguration.d.ts +2 -2
  1219. package/node_modules/@smithy/types/dist-types/extensions/retry.d.ts +2 -2
  1220. package/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +19 -12
  1221. package/node_modules/@smithy/types/dist-types/http.d.ts +2 -2
  1222. package/node_modules/@smithy/types/dist-types/identity/apiKeyIdentity.d.ts +1 -1
  1223. package/node_modules/@smithy/types/dist-types/identity/awsCredentialIdentity.d.ts +1 -1
  1224. package/node_modules/@smithy/types/dist-types/identity/tokenIdentity.d.ts +1 -1
  1225. package/node_modules/@smithy/types/dist-types/index.d.ts +2 -0
  1226. package/node_modules/@smithy/types/dist-types/retry.d.ts +1 -1
  1227. package/node_modules/@smithy/types/dist-types/schema/schema-deprecated.d.ts +136 -0
  1228. package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +31 -62
  1229. package/node_modules/@smithy/types/dist-types/schema/static-schemas.d.ts +82 -0
  1230. package/node_modules/@smithy/types/dist-types/serde.d.ts +5 -5
  1231. package/node_modules/@smithy/types/dist-types/shapes.d.ts +2 -2
  1232. package/node_modules/@smithy/types/dist-types/signature.d.ts +2 -2
  1233. package/node_modules/@smithy/types/dist-types/stream.d.ts +3 -3
  1234. package/node_modules/@smithy/types/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +17 -10
  1235. package/node_modules/@smithy/types/dist-types/ts3.4/index.d.ts +2 -0
  1236. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema-deprecated.d.ts +142 -0
  1237. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +35 -66
  1238. package/node_modules/@smithy/types/dist-types/ts3.4/schema/static-schemas.d.ts +101 -0
  1239. package/node_modules/@smithy/types/dist-types/ts3.4/serde.d.ts +2 -2
  1240. package/node_modules/@smithy/types/dist-types/uri.d.ts +1 -1
  1241. package/node_modules/@smithy/types/dist-types/util.d.ts +3 -3
  1242. package/node_modules/@smithy/types/dist-types/waiter.d.ts +1 -1
  1243. package/node_modules/@smithy/types/package.json +2 -1
  1244. package/node_modules/@smithy/url-parser/dist-cjs/index.js +20 -46
  1245. package/node_modules/@smithy/url-parser/dist-types/index.d.ts +1 -1
  1246. package/node_modules/@smithy/url-parser/package.json +4 -3
  1247. package/node_modules/@smithy/util-base64/dist-cjs/constants.browser.js +9 -32
  1248. package/node_modules/@smithy/util-base64/dist-cjs/index.js +16 -24
  1249. package/node_modules/@smithy/util-base64/dist-cjs/toBase64.browser.js +1 -2
  1250. package/node_modules/@smithy/util-base64/dist-es/constants.browser.js +9 -28
  1251. package/node_modules/@smithy/util-base64/dist-types/constants.browser.d.ts +5 -6
  1252. package/node_modules/@smithy/util-base64/dist-types/ts3.4/constants.browser.d.ts +5 -6
  1253. package/node_modules/@smithy/util-base64/package.json +7 -6
  1254. package/node_modules/@smithy/util-body-length-browser/dist-cjs/index.js +26 -53
  1255. package/node_modules/@smithy/util-body-length-browser/package.json +5 -4
  1256. package/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +29 -50
  1257. package/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js +8 -6
  1258. package/node_modules/@smithy/util-body-length-node/package.json +5 -4
  1259. package/node_modules/@smithy/util-buffer-from/dist-cjs/index.js +17 -44
  1260. package/node_modules/@smithy/util-buffer-from/package.json +6 -5
  1261. package/node_modules/@smithy/util-config-provider/dist-cjs/index.js +26 -60
  1262. package/node_modules/@smithy/util-config-provider/dist-types/booleanSelector.d.ts +1 -1
  1263. package/node_modules/@smithy/util-config-provider/dist-types/numberSelector.d.ts +1 -1
  1264. package/node_modules/@smithy/util-config-provider/package.json +5 -4
  1265. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/index.js +9 -22
  1266. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.js +13 -12
  1267. package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.native.js +2 -2
  1268. package/node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js +11 -8
  1269. package/node_modules/@smithy/util-defaults-mode-browser/package.json +5 -5
  1270. package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js +65 -110
  1271. package/node_modules/@smithy/util-defaults-mode-node/dist-types/defaultsModeConfig.d.ts +1 -1
  1272. package/node_modules/@smithy/util-defaults-mode-node/package.json +8 -7
  1273. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +435 -507
  1274. package/node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js +3 -2
  1275. package/node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js +1 -11
  1276. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +15 -2
  1277. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js +17 -2
  1278. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js +1 -13
  1279. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js +25 -2
  1280. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js +1 -21
  1281. package/node_modules/@smithy/util-endpoints/dist-types/debug/toDebugString.d.ts +3 -3
  1282. package/node_modules/@smithy/util-endpoints/dist-types/getEndpointUrlConfig.d.ts +1 -1
  1283. package/node_modules/@smithy/util-endpoints/dist-types/lib/parseURL.d.ts +1 -1
  1284. package/node_modules/@smithy/util-endpoints/dist-types/resolveEndpoint.d.ts +2 -2
  1285. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/callFunction.d.ts +1 -2
  1286. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/evaluateExpression.d.ts +7 -2
  1287. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/evaluateRules.d.ts +6 -1
  1288. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/evaluateTreeRule.d.ts +1 -3
  1289. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/getEndpointProperties.d.ts +6 -0
  1290. package/node_modules/@smithy/util-endpoints/dist-types/ts3.4/utils/getEndpointProperty.d.ts +1 -3
  1291. package/node_modules/@smithy/util-endpoints/dist-types/types/EndpointFunctions.d.ts +1 -1
  1292. package/node_modules/@smithy/util-endpoints/dist-types/types/EndpointRuleObject.d.ts +1 -1
  1293. package/node_modules/@smithy/util-endpoints/dist-types/types/ErrorRuleObject.d.ts +1 -1
  1294. package/node_modules/@smithy/util-endpoints/dist-types/types/RuleSetObject.d.ts +1 -1
  1295. package/node_modules/@smithy/util-endpoints/dist-types/types/TreeRuleObject.d.ts +1 -1
  1296. package/node_modules/@smithy/util-endpoints/dist-types/types/shared.d.ts +1 -1
  1297. package/node_modules/@smithy/util-endpoints/dist-types/utils/callFunction.d.ts +1 -2
  1298. package/node_modules/@smithy/util-endpoints/dist-types/utils/customEndpointFunctions.d.ts +1 -1
  1299. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateCondition.d.ts +1 -1
  1300. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateConditions.d.ts +1 -1
  1301. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateEndpointRule.d.ts +2 -2
  1302. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateErrorRule.d.ts +1 -1
  1303. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateExpression.d.ts +7 -2
  1304. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateRules.d.ts +7 -2
  1305. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateTemplate.d.ts +1 -1
  1306. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateTreeRule.d.ts +1 -3
  1307. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointHeaders.d.ts +1 -1
  1308. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointProperties.d.ts +7 -1
  1309. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointProperty.d.ts +1 -3
  1310. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointUrl.d.ts +1 -1
  1311. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +1 -1
  1312. package/node_modules/@smithy/util-endpoints/package.json +6 -5
  1313. package/node_modules/@smithy/util-hex-encoding/dist-cjs/index.js +29 -58
  1314. package/node_modules/@smithy/util-hex-encoding/package.json +5 -4
  1315. package/node_modules/@smithy/util-middleware/dist-cjs/index.js +11 -41
  1316. package/node_modules/@smithy/util-middleware/dist-types/getSmithyContext.d.ts +1 -1
  1317. package/node_modules/@smithy/util-middleware/dist-types/normalizeProvider.d.ts +1 -1
  1318. package/node_modules/@smithy/util-middleware/package.json +3 -2
  1319. package/node_modules/@smithy/util-retry/dist-cjs/index.js +260 -340
  1320. package/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js +4 -1
  1321. package/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js +1 -0
  1322. package/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js +17 -8
  1323. package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +5 -3
  1324. package/node_modules/@smithy/util-retry/dist-types/AdaptiveRetryStrategy.d.ts +2 -2
  1325. package/node_modules/@smithy/util-retry/dist-types/DefaultRateLimiter.d.ts +1 -1
  1326. package/node_modules/@smithy/util-retry/dist-types/StandardRetryStrategy.d.ts +1 -1
  1327. package/node_modules/@smithy/util-retry/dist-types/defaultRetryBackoffStrategy.d.ts +1 -1
  1328. package/node_modules/@smithy/util-retry/dist-types/defaultRetryToken.d.ts +1 -1
  1329. package/node_modules/@smithy/util-retry/package.json +7 -4
  1330. package/node_modules/@smithy/util-stream/dist-cjs/ByteArrayCollector.js +3 -2
  1331. package/node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.js +7 -3
  1332. package/node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.browser.js +2 -3
  1333. package/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js +1 -1
  1334. package/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js +2 -3
  1335. package/node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js +1 -2
  1336. package/node_modules/@smithy/util-stream/dist-cjs/headStream.js +4 -8
  1337. package/node_modules/@smithy/util-stream/dist-cjs/index.js +78 -97
  1338. package/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js +1 -2
  1339. package/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js +1 -2
  1340. package/node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js +3 -7
  1341. package/node_modules/@smithy/util-stream/dist-es/ByteArrayCollector.js +3 -2
  1342. package/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js +12 -7
  1343. package/node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.js +5 -0
  1344. package/node_modules/@smithy/util-stream/dist-es/headStream.js +3 -6
  1345. package/node_modules/@smithy/util-stream/dist-types/ByteArrayCollector.d.ts +1 -1
  1346. package/node_modules/@smithy/util-stream/dist-types/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  1347. package/node_modules/@smithy/util-stream/dist-types/checksum/ChecksumStream.browser.d.ts +1 -1
  1348. package/node_modules/@smithy/util-stream/dist-types/checksum/ChecksumStream.d.ts +3 -2
  1349. package/node_modules/@smithy/util-stream/dist-types/checksum/createChecksumStream.browser.d.ts +1 -1
  1350. package/node_modules/@smithy/util-stream/dist-types/checksum/createChecksumStream.d.ts +3 -3
  1351. package/node_modules/@smithy/util-stream/dist-types/getAwsChunkedEncodingStream.browser.d.ts +1 -1
  1352. package/node_modules/@smithy/util-stream/dist-types/getAwsChunkedEncodingStream.d.ts +1 -1
  1353. package/node_modules/@smithy/util-stream/dist-types/headStream.d.ts +1 -1
  1354. package/node_modules/@smithy/util-stream/dist-types/sdk-stream-mixin.browser.d.ts +1 -1
  1355. package/node_modules/@smithy/util-stream/dist-types/sdk-stream-mixin.d.ts +1 -1
  1356. package/node_modules/@smithy/util-stream/dist-types/ts3.4/ByteArrayCollector.d.ts +1 -1
  1357. package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
  1358. package/node_modules/@smithy/util-stream/dist-types/ts3.4/checksum/ChecksumStream.d.ts +2 -1
  1359. package/node_modules/@smithy/util-stream/package.json +13 -12
  1360. package/node_modules/@smithy/util-uri-escape/dist-cjs/index.js +6 -40
  1361. package/node_modules/@smithy/util-uri-escape/package.json +5 -4
  1362. package/node_modules/@smithy/util-utf8/dist-cjs/index.js +27 -60
  1363. package/node_modules/@smithy/util-utf8/package.json +6 -5
  1364. package/node_modules/@smithy/util-waiter/dist-cjs/index.js +152 -190
  1365. package/node_modules/@smithy/util-waiter/dist-types/createWaiter.d.ts +1 -1
  1366. package/node_modules/@smithy/util-waiter/dist-types/poller.d.ts +1 -1
  1367. package/node_modules/@smithy/util-waiter/dist-types/utils/validate.d.ts +1 -1
  1368. package/node_modules/@smithy/util-waiter/dist-types/waiter.d.ts +1 -1
  1369. package/node_modules/@smithy/util-waiter/package.json +4 -3
  1370. package/node_modules/@smithy/uuid/LICENSE +201 -0
  1371. package/node_modules/@smithy/uuid/README.md +10 -0
  1372. package/node_modules/@smithy/uuid/dist-cjs/index.js +36 -0
  1373. package/node_modules/@smithy/uuid/dist-cjs/randomUUID.js +6 -0
  1374. package/node_modules/@smithy/uuid/dist-cjs/randomUUID.native.js +4 -0
  1375. package/node_modules/@smithy/uuid/dist-es/index.js +1 -0
  1376. package/node_modules/@smithy/uuid/dist-es/randomUUID.browser.js +1 -0
  1377. package/node_modules/@smithy/uuid/dist-es/randomUUID.js +2 -0
  1378. package/node_modules/@smithy/uuid/dist-es/randomUUID.native.js +1 -0
  1379. package/node_modules/@smithy/uuid/dist-es/v4.js +31 -0
  1380. package/node_modules/@smithy/uuid/dist-types/index.d.ts +1 -0
  1381. package/node_modules/@smithy/uuid/dist-types/randomUUID.browser.d.ts +1 -0
  1382. package/node_modules/@smithy/uuid/dist-types/randomUUID.d.ts +2 -0
  1383. package/node_modules/@smithy/uuid/dist-types/randomUUID.native.d.ts +1 -0
  1384. package/node_modules/@smithy/uuid/dist-types/ts3.4/index.d.ts +1 -0
  1385. package/node_modules/@smithy/uuid/dist-types/ts3.4/randomUUID.browser.d.ts +1 -0
  1386. package/node_modules/@smithy/uuid/dist-types/ts3.4/randomUUID.d.ts +2 -0
  1387. package/node_modules/@smithy/uuid/dist-types/ts3.4/randomUUID.native.d.ts +1 -0
  1388. package/node_modules/@smithy/uuid/dist-types/ts3.4/v4.d.ts +19 -0
  1389. package/node_modules/@smithy/uuid/dist-types/v4.d.ts +19 -0
  1390. package/node_modules/@smithy/uuid/package.json +66 -0
  1391. package/node_modules/@types/aws-lambda/README.md +1 -1
  1392. package/node_modules/@types/aws-lambda/package.json +3 -3
  1393. package/node_modules/@types/aws-lambda/trigger/connect-contact-flow.d.ts +1 -1
  1394. package/node_modules/@types/aws-lambda/trigger/dynamodb-stream.d.ts +20 -12
  1395. package/node_modules/@types/aws-lambda/trigger/sns.d.ts +2 -2
  1396. package/node_modules/axios/CHANGELOG.md +58 -0
  1397. package/node_modules/axios/README.md +87 -10
  1398. package/node_modules/axios/dist/axios.js +355 -289
  1399. package/node_modules/axios/dist/axios.js.map +1 -1
  1400. package/node_modules/axios/dist/axios.min.js +2 -2
  1401. package/node_modules/axios/dist/axios.min.js.map +1 -1
  1402. package/node_modules/axios/dist/browser/axios.cjs +286 -213
  1403. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  1404. package/node_modules/axios/dist/esm/axios.js +286 -213
  1405. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  1406. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  1407. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  1408. package/node_modules/axios/dist/node/axios.cjs +377 -213
  1409. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  1410. package/node_modules/axios/index.d.cts +12 -5
  1411. package/node_modules/axios/index.d.ts +13 -4
  1412. package/node_modules/axios/lib/adapters/adapters.js +6 -4
  1413. package/node_modules/axios/lib/adapters/fetch.js +221 -162
  1414. package/node_modules/axios/lib/adapters/http.js +18 -0
  1415. package/node_modules/axios/lib/adapters/xhr.js +11 -8
  1416. package/node_modules/axios/lib/core/Axios.js +0 -2
  1417. package/node_modules/axios/lib/core/AxiosError.js +10 -3
  1418. package/node_modules/axios/lib/core/dispatchRequest.js +1 -1
  1419. package/node_modules/axios/lib/defaults/index.js +1 -1
  1420. package/node_modules/axios/lib/env/data.js +1 -1
  1421. package/node_modules/axios/lib/helpers/buildURL.js +1 -3
  1422. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +73 -0
  1423. package/node_modules/axios/lib/helpers/resolveConfig.js +13 -9
  1424. package/node_modules/axios/lib/utils.js +5 -3
  1425. package/node_modules/axios/package.json +18 -12
  1426. package/node_modules/bowser/CHANGELOG.md +1 -1
  1427. package/node_modules/bowser/README.md +2 -4
  1428. package/node_modules/bowser/bundled.js +1 -1
  1429. package/node_modules/bowser/es5.js +1 -1
  1430. package/node_modules/bowser/index.d.ts +71 -6
  1431. package/node_modules/bowser/package.json +4 -3
  1432. package/node_modules/bowser/src/constants.js +3 -0
  1433. package/node_modules/bowser/src/parser-browsers.js +15 -0
  1434. package/node_modules/bowser/src/parser-platforms.js +17 -1
  1435. package/node_modules/bowser/src/parser.js +20 -5
  1436. package/node_modules/bowser/src/utils.js +2 -2
  1437. package/node_modules/follow-redirects/package.json +1 -1
  1438. package/node_modules/oidc-token-hash/README.md +1 -0
  1439. package/node_modules/oidc-token-hash/lib/index.js +0 -10
  1440. package/node_modules/oidc-token-hash/package.json +1 -1
  1441. package/package.json +19 -19
  1442. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/config.js +0 -12
  1443. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/getRealRegion.js +0 -6
  1444. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/index.js +0 -2
  1445. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/isFipsRegion.js +0 -1
  1446. package/node_modules/@aws-sdk/region-config-resolver/dist-es/regionConfig/resolveRegionConfig.js +0 -24
  1447. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/config.d.ts +0 -17
  1448. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/getRealRegion.d.ts +0 -4
  1449. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/index.d.ts +0 -8
  1450. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/isFipsRegion.d.ts +0 -4
  1451. package/node_modules/@aws-sdk/region-config-resolver/dist-types/regionConfig/resolveRegionConfig.d.ts +0 -37
  1452. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/config.d.ts +0 -8
  1453. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/getRealRegion.d.ts +0 -1
  1454. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/index.d.ts +0 -2
  1455. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/isFipsRegion.d.ts +0 -1
  1456. package/node_modules/@aws-sdk/region-config-resolver/dist-types/ts3.4/regionConfig/resolveRegionConfig.d.ts +0 -14
  1457. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-add-secondary-index.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  1458. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +0 -1
  1459. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithExistingVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +0 -1
  1460. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +0 -1
  1461. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +0 -1
  1462. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-deployFunctionWithVpc.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  1463. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-point-in-time-recovery.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  1464. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-set-billing-mode.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  1465. package/node_modules/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.lamddb-use-existing-func.js.snapshot/asset.a0c6248ec595d3ceec1177aa5ac5b494fdf4c66f1b88aa48086befd44f193d8c/index.js +0 -21
  1466. package/node_modules/@smithy/abort-controller/dist-cjs/AbortController.js +0 -1
  1467. package/node_modules/@smithy/abort-controller/dist-cjs/AbortSignal.js +0 -1
  1468. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +0 -1
  1469. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +0 -1
  1470. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/index.js +0 -1
  1471. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/resolveCustomEndpointsConfig.js +0 -1
  1472. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js +0 -1
  1473. package/node_modules/@smithy/config-resolver/dist-cjs/endpointsConfig/utils/getEndpointFromRegion.js +0 -1
  1474. package/node_modules/@smithy/config-resolver/dist-cjs/regionConfig/config.js +0 -1
  1475. package/node_modules/@smithy/config-resolver/dist-cjs/regionConfig/getRealRegion.js +0 -1
  1476. package/node_modules/@smithy/config-resolver/dist-cjs/regionConfig/index.js +0 -1
  1477. package/node_modules/@smithy/config-resolver/dist-cjs/regionConfig/isFipsRegion.js +0 -1
  1478. package/node_modules/@smithy/config-resolver/dist-cjs/regionConfig/resolveRegionConfig.js +0 -1
  1479. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/EndpointVariant.js +0 -1
  1480. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/EndpointVariantTag.js +0 -1
  1481. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/PartitionHash.js +0 -1
  1482. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/RegionHash.js +0 -1
  1483. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/getHostnameFromVariants.js +0 -1
  1484. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/getRegionInfo.js +0 -1
  1485. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/getResolvedHostname.js +0 -1
  1486. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/getResolvedPartition.js +0 -1
  1487. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/getResolvedSigningRegion.js +0 -1
  1488. package/node_modules/@smithy/config-resolver/dist-cjs/regionInfo/index.js +0 -1
  1489. package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +0 -1
  1490. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +0 -1
  1491. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +0 -1
  1492. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +0 -1
  1493. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +0 -1
  1494. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +0 -1
  1495. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +0 -1
  1496. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +0 -1
  1497. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +0 -1
  1498. package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +0 -1
  1499. package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +0 -1
  1500. package/node_modules/@smithy/core/dist-cjs/protocols/requestBuilder.js +0 -1
  1501. package/node_modules/@smithy/core/dist-cjs/setFeature.js +0 -1
  1502. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +0 -1
  1503. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +0 -1
  1504. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +0 -1
  1505. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +0 -1
  1506. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +0 -1
  1507. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +0 -1
  1508. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +0 -1
  1509. package/node_modules/@smithy/credential-provider-imds/dist-cjs/config/Endpoint.js +0 -1
  1510. package/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointConfigOptions.js +0 -1
  1511. package/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointMode.js +0 -1
  1512. package/node_modules/@smithy/credential-provider-imds/dist-cjs/config/EndpointModeConfigOptions.js +0 -1
  1513. package/node_modules/@smithy/credential-provider-imds/dist-cjs/error/InstanceMetadataV1FallbackError.js +0 -1
  1514. package/node_modules/@smithy/credential-provider-imds/dist-cjs/fromContainerMetadata.js +0 -1
  1515. package/node_modules/@smithy/credential-provider-imds/dist-cjs/fromInstanceMetadata.js +0 -1
  1516. package/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/ImdsCredentials.js +0 -1
  1517. package/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/RemoteProviderInit.js +0 -1
  1518. package/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/httpRequest.js +0 -1
  1519. package/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/index.js +0 -1
  1520. package/node_modules/@smithy/credential-provider-imds/dist-cjs/remoteProvider/retry.js +0 -1
  1521. package/node_modules/@smithy/credential-provider-imds/dist-cjs/types.js +0 -1
  1522. package/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/getExtendedInstanceMetadataCredentials.js +0 -1
  1523. package/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/getInstanceMetadataEndpoint.js +0 -1
  1524. package/node_modules/@smithy/credential-provider-imds/dist-cjs/utils/staticStabilityProvider.js +0 -1
  1525. package/node_modules/@smithy/eventstream-codec/dist-cjs/EventStreamCodec.js +0 -1
  1526. package/node_modules/@smithy/eventstream-codec/dist-cjs/HeaderMarshaller.js +0 -1
  1527. package/node_modules/@smithy/eventstream-codec/dist-cjs/Int64.js +0 -1
  1528. package/node_modules/@smithy/eventstream-codec/dist-cjs/Message.js +0 -1
  1529. package/node_modules/@smithy/eventstream-codec/dist-cjs/MessageDecoderStream.js +0 -1
  1530. package/node_modules/@smithy/eventstream-codec/dist-cjs/MessageEncoderStream.js +0 -1
  1531. package/node_modules/@smithy/eventstream-codec/dist-cjs/SmithyMessageDecoderStream.js +0 -1
  1532. package/node_modules/@smithy/eventstream-codec/dist-cjs/SmithyMessageEncoderStream.js +0 -1
  1533. package/node_modules/@smithy/eventstream-codec/dist-cjs/TestVectors.fixture.js +0 -1
  1534. package/node_modules/@smithy/eventstream-codec/dist-cjs/splitMessage.js +0 -1
  1535. package/node_modules/@smithy/eventstream-codec/dist-cjs/vectorTypes.fixture.js +0 -1
  1536. package/node_modules/@smithy/eventstream-serde-browser/dist-cjs/EventStreamMarshaller.js +0 -1
  1537. package/node_modules/@smithy/eventstream-serde-browser/dist-cjs/provider.js +0 -1
  1538. package/node_modules/@smithy/eventstream-serde-browser/dist-cjs/utils.js +0 -1
  1539. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/EventStreamSerdeConfig.js +0 -1
  1540. package/node_modules/@smithy/eventstream-serde-node/dist-cjs/EventStreamMarshaller.js +0 -1
  1541. package/node_modules/@smithy/eventstream-serde-node/dist-cjs/provider.js +0 -1
  1542. package/node_modules/@smithy/eventstream-serde-node/dist-cjs/utils.js +0 -1
  1543. package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/EventStreamMarshaller.js +0 -1
  1544. package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/getChunkedStream.js +0 -1
  1545. package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/getUnmarshalledStream.js +0 -1
  1546. package/node_modules/@smithy/eventstream-serde-universal/dist-cjs/provider.js +0 -1
  1547. package/node_modules/@smithy/fetch-http-handler/dist-cjs/create-request.js +0 -1
  1548. package/node_modules/@smithy/fetch-http-handler/dist-cjs/fetch-http-handler.js +0 -1
  1549. package/node_modules/@smithy/fetch-http-handler/dist-cjs/request-timeout.js +0 -1
  1550. package/node_modules/@smithy/fetch-http-handler/dist-cjs/stream-collector.js +0 -1
  1551. package/node_modules/@smithy/hash-stream-node/dist-cjs/HashCalculator.js +0 -1
  1552. package/node_modules/@smithy/hash-stream-node/dist-cjs/fileStreamHasher.js +0 -1
  1553. package/node_modules/@smithy/hash-stream-node/dist-cjs/readableStreamHasher.js +0 -1
  1554. package/node_modules/@smithy/invalid-dependency/dist-cjs/invalidFunction.js +0 -1
  1555. package/node_modules/@smithy/invalid-dependency/dist-cjs/invalidProvider.js +0 -1
  1556. package/node_modules/@smithy/md5-js/dist-cjs/constants.js +0 -1
  1557. package/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/createConfigValueProvider.js +0 -1
  1558. package/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromInstructions.js +0 -1
  1559. package/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/index.js +0 -1
  1560. package/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/toEndpointV1.js +0 -1
  1561. package/node_modules/@smithy/middleware-endpoint/dist-cjs/endpointMiddleware.js +0 -1
  1562. package/node_modules/@smithy/middleware-endpoint/dist-cjs/getEndpointPlugin.js +0 -1
  1563. package/node_modules/@smithy/middleware-endpoint/dist-cjs/resolveEndpointConfig.js +0 -1
  1564. package/node_modules/@smithy/middleware-endpoint/dist-cjs/resolveEndpointRequiredConfig.js +0 -1
  1565. package/node_modules/@smithy/middleware-endpoint/dist-cjs/service-customizations/index.js +0 -1
  1566. package/node_modules/@smithy/middleware-endpoint/dist-cjs/service-customizations/s3.js +0 -1
  1567. package/node_modules/@smithy/middleware-endpoint/dist-cjs/types.js +0 -1
  1568. package/node_modules/@smithy/middleware-retry/dist-cjs/AdaptiveRetryStrategy.js +0 -1
  1569. package/node_modules/@smithy/middleware-retry/dist-cjs/StandardRetryStrategy.js +0 -1
  1570. package/node_modules/@smithy/middleware-retry/dist-cjs/configurations.js +0 -1
  1571. package/node_modules/@smithy/middleware-retry/dist-cjs/defaultRetryQuota.js +0 -1
  1572. package/node_modules/@smithy/middleware-retry/dist-cjs/delayDecider.js +0 -1
  1573. package/node_modules/@smithy/middleware-retry/dist-cjs/omitRetryHeadersMiddleware.js +0 -1
  1574. package/node_modules/@smithy/middleware-retry/dist-cjs/retryDecider.js +0 -1
  1575. package/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js +0 -1
  1576. package/node_modules/@smithy/middleware-retry/dist-cjs/types.js +0 -1
  1577. package/node_modules/@smithy/middleware-retry/dist-cjs/util.js +0 -1
  1578. package/node_modules/@smithy/middleware-serde/dist-cjs/deserializerMiddleware.js +0 -1
  1579. package/node_modules/@smithy/middleware-serde/dist-cjs/serdePlugin.js +0 -1
  1580. package/node_modules/@smithy/middleware-serde/dist-cjs/serializerMiddleware.js +0 -1
  1581. package/node_modules/@smithy/middleware-stack/dist-cjs/MiddlewareStack.js +0 -1
  1582. package/node_modules/@smithy/middleware-stack/dist-cjs/types.js +0 -1
  1583. package/node_modules/@smithy/node-config-provider/dist-cjs/configLoader.js +0 -1
  1584. package/node_modules/@smithy/node-config-provider/dist-cjs/fromEnv.js +0 -1
  1585. package/node_modules/@smithy/node-config-provider/dist-cjs/fromSharedConfigFiles.js +0 -1
  1586. package/node_modules/@smithy/node-config-provider/dist-cjs/fromStatic.js +0 -1
  1587. package/node_modules/@smithy/node-config-provider/dist-cjs/getSelectorName.js +0 -1
  1588. package/node_modules/@smithy/node-http-handler/dist-cjs/constants.js +0 -1
  1589. package/node_modules/@smithy/node-http-handler/dist-cjs/get-transformed-headers.js +0 -1
  1590. package/node_modules/@smithy/node-http-handler/dist-cjs/node-http-handler.js +0 -1
  1591. package/node_modules/@smithy/node-http-handler/dist-cjs/node-http2-connection-manager.js +0 -1
  1592. package/node_modules/@smithy/node-http-handler/dist-cjs/node-http2-connection-pool.js +0 -1
  1593. package/node_modules/@smithy/node-http-handler/dist-cjs/node-http2-handler.js +0 -1
  1594. package/node_modules/@smithy/node-http-handler/dist-cjs/readable.mock.js +0 -1
  1595. package/node_modules/@smithy/node-http-handler/dist-cjs/server.mock.js +0 -1
  1596. package/node_modules/@smithy/node-http-handler/dist-cjs/set-connection-timeout.js +0 -1
  1597. package/node_modules/@smithy/node-http-handler/dist-cjs/set-socket-keep-alive.js +0 -1
  1598. package/node_modules/@smithy/node-http-handler/dist-cjs/set-socket-timeout.js +0 -1
  1599. package/node_modules/@smithy/node-http-handler/dist-cjs/stream-collector/collector.js +0 -1
  1600. package/node_modules/@smithy/node-http-handler/dist-cjs/stream-collector/index.js +0 -1
  1601. package/node_modules/@smithy/node-http-handler/dist-cjs/stream-collector/readable.mock.js +0 -1
  1602. package/node_modules/@smithy/node-http-handler/dist-cjs/timing.js +0 -1
  1603. package/node_modules/@smithy/node-http-handler/dist-cjs/write-request-body.js +0 -1
  1604. package/node_modules/@smithy/property-provider/dist-cjs/CredentialsProviderError.js +0 -1
  1605. package/node_modules/@smithy/property-provider/dist-cjs/ProviderError.js +0 -1
  1606. package/node_modules/@smithy/property-provider/dist-cjs/TokenProviderError.js +0 -1
  1607. package/node_modules/@smithy/property-provider/dist-cjs/chain.js +0 -1
  1608. package/node_modules/@smithy/property-provider/dist-cjs/fromStatic.js +0 -1
  1609. package/node_modules/@smithy/property-provider/dist-cjs/memoize.js +0 -1
  1610. package/node_modules/@smithy/protocol-http/dist-cjs/Field.js +0 -1
  1611. package/node_modules/@smithy/protocol-http/dist-cjs/Fields.js +0 -1
  1612. package/node_modules/@smithy/protocol-http/dist-cjs/extensions/httpExtensionConfiguration.js +0 -1
  1613. package/node_modules/@smithy/protocol-http/dist-cjs/extensions/index.js +0 -1
  1614. package/node_modules/@smithy/protocol-http/dist-cjs/httpHandler.js +0 -1
  1615. package/node_modules/@smithy/protocol-http/dist-cjs/httpRequest.js +0 -1
  1616. package/node_modules/@smithy/protocol-http/dist-cjs/httpResponse.js +0 -1
  1617. package/node_modules/@smithy/protocol-http/dist-cjs/isValidHostname.js +0 -1
  1618. package/node_modules/@smithy/protocol-http/dist-cjs/types.js +0 -1
  1619. package/node_modules/@smithy/service-error-classification/dist-cjs/constants.js +0 -1
  1620. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigData.js +0 -1
  1621. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getConfigFilepath.js +0 -1
  1622. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getCredentialsFilepath.js +0 -1
  1623. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getProfileName.js +0 -1
  1624. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSsoSessionData.js +0 -1
  1625. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSharedConfigFiles.js +0 -1
  1626. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/loadSsoSessionData.js +0 -1
  1627. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/mergeConfigFiles.js +0 -1
  1628. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseIni.js +0 -1
  1629. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/parseKnownFiles.js +0 -1
  1630. package/node_modules/@smithy/shared-ini-file-loader/dist-cjs/types.js +0 -1
  1631. package/node_modules/@smithy/signature-v4/dist-cjs/HeaderFormatter.js +0 -1
  1632. package/node_modules/@smithy/signature-v4/dist-cjs/SignatureV4.js +0 -1
  1633. package/node_modules/@smithy/signature-v4/dist-cjs/SignatureV4Base.js +0 -1
  1634. package/node_modules/@smithy/signature-v4/dist-cjs/constants.js +0 -1
  1635. package/node_modules/@smithy/signature-v4/dist-cjs/credentialDerivation.js +0 -1
  1636. package/node_modules/@smithy/signature-v4/dist-cjs/getCanonicalHeaders.js +0 -1
  1637. package/node_modules/@smithy/signature-v4/dist-cjs/getCanonicalQuery.js +0 -1
  1638. package/node_modules/@smithy/signature-v4/dist-cjs/getPayloadHash.js +0 -1
  1639. package/node_modules/@smithy/signature-v4/dist-cjs/headerUtil.js +0 -1
  1640. package/node_modules/@smithy/signature-v4/dist-cjs/moveHeadersToQuery.js +0 -1
  1641. package/node_modules/@smithy/signature-v4/dist-cjs/prepareRequest.js +0 -1
  1642. package/node_modules/@smithy/signature-v4/dist-cjs/signature-v4a-container.js +0 -1
  1643. package/node_modules/@smithy/signature-v4/dist-cjs/suite.fixture.js +0 -1
  1644. package/node_modules/@smithy/signature-v4/dist-cjs/utilDate.js +0 -1
  1645. package/node_modules/@smithy/smithy-client/dist-cjs/NoOpLogger.js +0 -1
  1646. package/node_modules/@smithy/smithy-client/dist-cjs/client.js +0 -1
  1647. package/node_modules/@smithy/smithy-client/dist-cjs/collect-stream-body.js +0 -1
  1648. package/node_modules/@smithy/smithy-client/dist-cjs/command.js +0 -1
  1649. package/node_modules/@smithy/smithy-client/dist-cjs/constants.js +0 -1
  1650. package/node_modules/@smithy/smithy-client/dist-cjs/create-aggregated-client.js +0 -1
  1651. package/node_modules/@smithy/smithy-client/dist-cjs/default-error-handler.js +0 -1
  1652. package/node_modules/@smithy/smithy-client/dist-cjs/defaults-mode.js +0 -1
  1653. package/node_modules/@smithy/smithy-client/dist-cjs/emitWarningIfUnsupportedVersion.js +0 -1
  1654. package/node_modules/@smithy/smithy-client/dist-cjs/exceptions.js +0 -1
  1655. package/node_modules/@smithy/smithy-client/dist-cjs/extended-encode-uri-component.js +0 -1
  1656. package/node_modules/@smithy/smithy-client/dist-cjs/extensions/checksum.js +0 -1
  1657. package/node_modules/@smithy/smithy-client/dist-cjs/extensions/defaultExtensionConfiguration.js +0 -1
  1658. package/node_modules/@smithy/smithy-client/dist-cjs/extensions/index.js +0 -1
  1659. package/node_modules/@smithy/smithy-client/dist-cjs/extensions/retry.js +0 -1
  1660. package/node_modules/@smithy/smithy-client/dist-cjs/get-array-if-single-item.js +0 -1
  1661. package/node_modules/@smithy/smithy-client/dist-cjs/get-value-from-text-node.js +0 -1
  1662. package/node_modules/@smithy/smithy-client/dist-cjs/is-serializable-header-value.js +0 -1
  1663. package/node_modules/@smithy/smithy-client/dist-cjs/object-mapping.js +0 -1
  1664. package/node_modules/@smithy/smithy-client/dist-cjs/resolve-path.js +0 -1
  1665. package/node_modules/@smithy/smithy-client/dist-cjs/ser-utils.js +0 -1
  1666. package/node_modules/@smithy/smithy-client/dist-cjs/serde-json.js +0 -1
  1667. package/node_modules/@smithy/types/dist-cjs/abort-handler.js +0 -1
  1668. package/node_modules/@smithy/types/dist-cjs/abort.js +0 -1
  1669. package/node_modules/@smithy/types/dist-cjs/auth/HttpApiKeyAuth.js +0 -1
  1670. package/node_modules/@smithy/types/dist-cjs/auth/HttpAuthScheme.js +0 -1
  1671. package/node_modules/@smithy/types/dist-cjs/auth/HttpAuthSchemeProvider.js +0 -1
  1672. package/node_modules/@smithy/types/dist-cjs/auth/HttpSigner.js +0 -1
  1673. package/node_modules/@smithy/types/dist-cjs/auth/IdentityProviderConfig.js +0 -1
  1674. package/node_modules/@smithy/types/dist-cjs/auth/auth.js +0 -1
  1675. package/node_modules/@smithy/types/dist-cjs/auth/index.js +0 -1
  1676. package/node_modules/@smithy/types/dist-cjs/blob/blob-payload-input-types.js +0 -1
  1677. package/node_modules/@smithy/types/dist-cjs/checksum.js +0 -1
  1678. package/node_modules/@smithy/types/dist-cjs/client.js +0 -1
  1679. package/node_modules/@smithy/types/dist-cjs/command.js +0 -1
  1680. package/node_modules/@smithy/types/dist-cjs/connection/config.js +0 -1
  1681. package/node_modules/@smithy/types/dist-cjs/connection/index.js +0 -1
  1682. package/node_modules/@smithy/types/dist-cjs/connection/manager.js +0 -1
  1683. package/node_modules/@smithy/types/dist-cjs/connection/pool.js +0 -1
  1684. package/node_modules/@smithy/types/dist-cjs/crypto.js +0 -1
  1685. package/node_modules/@smithy/types/dist-cjs/downlevel-ts3.4/transform/type-transform.js +0 -1
  1686. package/node_modules/@smithy/types/dist-cjs/encode.js +0 -1
  1687. package/node_modules/@smithy/types/dist-cjs/endpoint.js +0 -1
  1688. package/node_modules/@smithy/types/dist-cjs/endpoints/EndpointRuleObject.js +0 -1
  1689. package/node_modules/@smithy/types/dist-cjs/endpoints/ErrorRuleObject.js +0 -1
  1690. package/node_modules/@smithy/types/dist-cjs/endpoints/RuleSetObject.js +0 -1
  1691. package/node_modules/@smithy/types/dist-cjs/endpoints/TreeRuleObject.js +0 -1
  1692. package/node_modules/@smithy/types/dist-cjs/endpoints/index.js +0 -1
  1693. package/node_modules/@smithy/types/dist-cjs/endpoints/shared.js +0 -1
  1694. package/node_modules/@smithy/types/dist-cjs/eventStream.js +0 -1
  1695. package/node_modules/@smithy/types/dist-cjs/extensions/checksum.js +0 -1
  1696. package/node_modules/@smithy/types/dist-cjs/extensions/defaultClientConfiguration.js +0 -1
  1697. package/node_modules/@smithy/types/dist-cjs/extensions/defaultExtensionConfiguration.js +0 -1
  1698. package/node_modules/@smithy/types/dist-cjs/extensions/index.js +0 -1
  1699. package/node_modules/@smithy/types/dist-cjs/extensions/retry.js +0 -1
  1700. package/node_modules/@smithy/types/dist-cjs/externals-check/browser-externals-check.js +0 -1
  1701. package/node_modules/@smithy/types/dist-cjs/feature-ids.js +0 -1
  1702. package/node_modules/@smithy/types/dist-cjs/http/httpHandlerInitialization.js +0 -1
  1703. package/node_modules/@smithy/types/dist-cjs/http.js +0 -1
  1704. package/node_modules/@smithy/types/dist-cjs/identity/apiKeyIdentity.js +0 -1
  1705. package/node_modules/@smithy/types/dist-cjs/identity/awsCredentialIdentity.js +0 -1
  1706. package/node_modules/@smithy/types/dist-cjs/identity/identity.js +0 -1
  1707. package/node_modules/@smithy/types/dist-cjs/identity/index.js +0 -1
  1708. package/node_modules/@smithy/types/dist-cjs/identity/tokenIdentity.js +0 -1
  1709. package/node_modules/@smithy/types/dist-cjs/logger.js +0 -1
  1710. package/node_modules/@smithy/types/dist-cjs/middleware.js +0 -1
  1711. package/node_modules/@smithy/types/dist-cjs/pagination.js +0 -1
  1712. package/node_modules/@smithy/types/dist-cjs/profile.js +0 -1
  1713. package/node_modules/@smithy/types/dist-cjs/response.js +0 -1
  1714. package/node_modules/@smithy/types/dist-cjs/retry.js +0 -1
  1715. package/node_modules/@smithy/types/dist-cjs/schema/schema.js +0 -1
  1716. package/node_modules/@smithy/types/dist-cjs/schema/sentinels.js +0 -1
  1717. package/node_modules/@smithy/types/dist-cjs/schema/traits.js +0 -1
  1718. package/node_modules/@smithy/types/dist-cjs/serde.js +0 -1
  1719. package/node_modules/@smithy/types/dist-cjs/shapes.js +0 -1
  1720. package/node_modules/@smithy/types/dist-cjs/signature.js +0 -1
  1721. package/node_modules/@smithy/types/dist-cjs/stream.js +0 -1
  1722. package/node_modules/@smithy/types/dist-cjs/streaming-payload/streaming-blob-common-types.js +0 -1
  1723. package/node_modules/@smithy/types/dist-cjs/streaming-payload/streaming-blob-payload-input-types.js +0 -1
  1724. package/node_modules/@smithy/types/dist-cjs/streaming-payload/streaming-blob-payload-output-types.js +0 -1
  1725. package/node_modules/@smithy/types/dist-cjs/transfer.js +0 -1
  1726. package/node_modules/@smithy/types/dist-cjs/transform/client-method-transforms.js +0 -1
  1727. package/node_modules/@smithy/types/dist-cjs/transform/client-payload-blob-type-narrow.js +0 -1
  1728. package/node_modules/@smithy/types/dist-cjs/transform/exact.js +0 -1
  1729. package/node_modules/@smithy/types/dist-cjs/transform/mutable.js +0 -1
  1730. package/node_modules/@smithy/types/dist-cjs/transform/no-undefined.js +0 -1
  1731. package/node_modules/@smithy/types/dist-cjs/transform/type-transform.js +0 -1
  1732. package/node_modules/@smithy/types/dist-cjs/uri.js +0 -1
  1733. package/node_modules/@smithy/types/dist-cjs/util.js +0 -1
  1734. package/node_modules/@smithy/types/dist-cjs/waiter.js +0 -1
  1735. package/node_modules/@smithy/util-body-length-browser/dist-cjs/calculateBodyLength.js +0 -1
  1736. package/node_modules/@smithy/util-body-length-node/dist-cjs/calculateBodyLength.js +0 -1
  1737. package/node_modules/@smithy/util-config-provider/dist-cjs/booleanSelector.js +0 -1
  1738. package/node_modules/@smithy/util-config-provider/dist-cjs/numberSelector.js +0 -1
  1739. package/node_modules/@smithy/util-config-provider/dist-cjs/types.js +0 -1
  1740. package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/constants.js +0 -1
  1741. package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/defaultsModeConfig.js +0 -1
  1742. package/node_modules/@smithy/util-defaults-mode-node/dist-cjs/resolveDefaultsModeConfig.js +0 -1
  1743. package/node_modules/@smithy/util-endpoints/dist-cjs/cache/EndpointCache.js +0 -1
  1744. package/node_modules/@smithy/util-endpoints/dist-cjs/debug/debugId.js +0 -1
  1745. package/node_modules/@smithy/util-endpoints/dist-cjs/debug/index.js +0 -1
  1746. package/node_modules/@smithy/util-endpoints/dist-cjs/debug/toDebugString.js +0 -1
  1747. package/node_modules/@smithy/util-endpoints/dist-cjs/getEndpointUrlConfig.js +0 -1
  1748. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/booleanEquals.js +0 -1
  1749. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/getAttr.js +0 -1
  1750. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/getAttrPathList.js +0 -1
  1751. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/index.js +0 -1
  1752. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/isIpAddress.js +0 -1
  1753. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/isSet.js +0 -1
  1754. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/isValidHostLabel.js +0 -1
  1755. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/not.js +0 -1
  1756. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/parseURL.js +0 -1
  1757. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/stringEquals.js +0 -1
  1758. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/substring.js +0 -1
  1759. package/node_modules/@smithy/util-endpoints/dist-cjs/lib/uriEncode.js +0 -1
  1760. package/node_modules/@smithy/util-endpoints/dist-cjs/resolveEndpoint.js +0 -1
  1761. package/node_modules/@smithy/util-endpoints/dist-cjs/types/EndpointError.js +0 -1
  1762. package/node_modules/@smithy/util-endpoints/dist-cjs/types/EndpointFunctions.js +0 -1
  1763. package/node_modules/@smithy/util-endpoints/dist-cjs/types/EndpointRuleObject.js +0 -1
  1764. package/node_modules/@smithy/util-endpoints/dist-cjs/types/ErrorRuleObject.js +0 -1
  1765. package/node_modules/@smithy/util-endpoints/dist-cjs/types/RuleSetObject.js +0 -1
  1766. package/node_modules/@smithy/util-endpoints/dist-cjs/types/TreeRuleObject.js +0 -1
  1767. package/node_modules/@smithy/util-endpoints/dist-cjs/types/index.js +0 -1
  1768. package/node_modules/@smithy/util-endpoints/dist-cjs/types/shared.js +0 -1
  1769. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/callFunction.js +0 -1
  1770. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/customEndpointFunctions.js +0 -1
  1771. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/endpointFunctions.js +0 -1
  1772. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateCondition.js +0 -1
  1773. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateConditions.js +0 -1
  1774. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateEndpointRule.js +0 -1
  1775. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateErrorRule.js +0 -1
  1776. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateExpression.js +0 -1
  1777. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateRules.js +0 -1
  1778. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateTemplate.js +0 -1
  1779. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/evaluateTreeRule.js +0 -1
  1780. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/getEndpointHeaders.js +0 -1
  1781. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/getEndpointProperties.js +0 -1
  1782. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/getEndpointProperty.js +0 -1
  1783. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/getEndpointUrl.js +0 -1
  1784. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/getReferenceValue.js +0 -1
  1785. package/node_modules/@smithy/util-endpoints/dist-cjs/utils/index.js +0 -1
  1786. package/node_modules/@smithy/util-middleware/dist-cjs/getSmithyContext.js +0 -1
  1787. package/node_modules/@smithy/util-middleware/dist-cjs/normalizeProvider.js +0 -1
  1788. package/node_modules/@smithy/util-retry/dist-cjs/AdaptiveRetryStrategy.js +0 -1
  1789. package/node_modules/@smithy/util-retry/dist-cjs/ConfiguredRetryStrategy.js +0 -1
  1790. package/node_modules/@smithy/util-retry/dist-cjs/DefaultRateLimiter.js +0 -1
  1791. package/node_modules/@smithy/util-retry/dist-cjs/StandardRetryStrategy.js +0 -1
  1792. package/node_modules/@smithy/util-retry/dist-cjs/config.js +0 -1
  1793. package/node_modules/@smithy/util-retry/dist-cjs/constants.js +0 -1
  1794. package/node_modules/@smithy/util-retry/dist-cjs/defaultRetryBackoffStrategy.js +0 -1
  1795. package/node_modules/@smithy/util-retry/dist-cjs/defaultRetryToken.js +0 -1
  1796. package/node_modules/@smithy/util-retry/dist-cjs/types.js +0 -1
  1797. package/node_modules/@smithy/util-stream/dist-cjs/blob/Uint8ArrayBlobAdapter.js +0 -1
  1798. package/node_modules/@smithy/util-stream/dist-cjs/blob/transforms.js +0 -1
  1799. package/node_modules/@smithy/util-stream/dist-es/blob/transforms.js +0 -15
  1800. package/node_modules/@smithy/util-stream/dist-types/blob/transforms.d.ts +0 -9
  1801. package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/transforms.d.ts +0 -9
  1802. package/node_modules/@smithy/util-uri-escape/dist-cjs/escape-uri-path.js +0 -1
  1803. package/node_modules/@smithy/util-uri-escape/dist-cjs/escape-uri.js +0 -1
  1804. package/node_modules/@smithy/util-utf8/dist-cjs/fromUtf8.browser.js +0 -1
  1805. package/node_modules/@smithy/util-utf8/dist-cjs/fromUtf8.js +0 -1
  1806. package/node_modules/@smithy/util-utf8/dist-cjs/toUint8Array.js +0 -1
  1807. package/node_modules/@smithy/util-utf8/dist-cjs/toUtf8.browser.js +0 -1
  1808. package/node_modules/@smithy/util-utf8/dist-cjs/toUtf8.js +0 -1
  1809. package/node_modules/@smithy/util-waiter/dist-cjs/createWaiter.js +0 -1
  1810. package/node_modules/@smithy/util-waiter/dist-cjs/poller.js +0 -1
  1811. package/node_modules/@smithy/util-waiter/dist-cjs/utils/index.js +0 -1
  1812. package/node_modules/@smithy/util-waiter/dist-cjs/utils/sleep.js +0 -1
  1813. package/node_modules/@smithy/util-waiter/dist-cjs/utils/validate.js +0 -1
  1814. package/node_modules/@smithy/util-waiter/dist-cjs/waiter.js +0 -1
  1815. package/node_modules/@types/uuid/LICENSE +0 -21
  1816. package/node_modules/@types/uuid/README.md +0 -15
  1817. package/node_modules/@types/uuid/index.d.mts +0 -12
  1818. package/node_modules/@types/uuid/index.d.ts +0 -86
  1819. package/node_modules/@types/uuid/package.json +0 -54
  1820. package/node_modules/oidc-token-hash/lib/shake256.js +0 -7
  1821. package/node_modules/uuid/CHANGELOG.md +0 -274
  1822. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  1823. package/node_modules/uuid/LICENSE.md +0 -9
  1824. package/node_modules/uuid/README.md +0 -466
  1825. package/node_modules/uuid/dist/bin/uuid +0 -2
  1826. package/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
  1827. package/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
  1828. package/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
  1829. package/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
  1830. package/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
  1831. package/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
  1832. package/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
  1833. package/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
  1834. package/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
  1835. package/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
  1836. package/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
  1837. package/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
  1838. package/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
  1839. package/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
  1840. package/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
  1841. package/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
  1842. package/node_modules/uuid/dist/esm-browser/index.js +0 -9
  1843. package/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  1844. package/node_modules/uuid/dist/esm-browser/native.js +0 -4
  1845. package/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  1846. package/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  1847. package/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  1848. package/node_modules/uuid/dist/esm-browser/rng.js +0 -18
  1849. package/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  1850. package/node_modules/uuid/dist/esm-browser/stringify.js +0 -33
  1851. package/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  1852. package/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  1853. package/node_modules/uuid/dist/esm-browser/v35.js +0 -66
  1854. package/node_modules/uuid/dist/esm-browser/v4.js +0 -29
  1855. package/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  1856. package/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  1857. package/node_modules/uuid/dist/esm-browser/version.js +0 -11
  1858. package/node_modules/uuid/dist/esm-node/index.js +0 -9
  1859. package/node_modules/uuid/dist/esm-node/md5.js +0 -13
  1860. package/node_modules/uuid/dist/esm-node/native.js +0 -4
  1861. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  1862. package/node_modules/uuid/dist/esm-node/parse.js +0 -35
  1863. package/node_modules/uuid/dist/esm-node/regex.js +0 -1
  1864. package/node_modules/uuid/dist/esm-node/rng.js +0 -12
  1865. package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  1866. package/node_modules/uuid/dist/esm-node/stringify.js +0 -33
  1867. package/node_modules/uuid/dist/esm-node/v1.js +0 -95
  1868. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  1869. package/node_modules/uuid/dist/esm-node/v35.js +0 -66
  1870. package/node_modules/uuid/dist/esm-node/v4.js +0 -29
  1871. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  1872. package/node_modules/uuid/dist/esm-node/validate.js +0 -7
  1873. package/node_modules/uuid/dist/esm-node/version.js +0 -11
  1874. package/node_modules/uuid/dist/index.js +0 -79
  1875. package/node_modules/uuid/dist/md5-browser.js +0 -223
  1876. package/node_modules/uuid/dist/md5.js +0 -23
  1877. package/node_modules/uuid/dist/native-browser.js +0 -11
  1878. package/node_modules/uuid/dist/native.js +0 -15
  1879. package/node_modules/uuid/dist/nil.js +0 -8
  1880. package/node_modules/uuid/dist/parse.js +0 -45
  1881. package/node_modules/uuid/dist/regex.js +0 -8
  1882. package/node_modules/uuid/dist/rng-browser.js +0 -25
  1883. package/node_modules/uuid/dist/rng.js +0 -24
  1884. package/node_modules/uuid/dist/sha1-browser.js +0 -104
  1885. package/node_modules/uuid/dist/sha1.js +0 -23
  1886. package/node_modules/uuid/dist/stringify.js +0 -44
  1887. package/node_modules/uuid/dist/uuid-bin.js +0 -85
  1888. package/node_modules/uuid/dist/v1.js +0 -107
  1889. package/node_modules/uuid/dist/v3.js +0 -16
  1890. package/node_modules/uuid/dist/v35.js +0 -80
  1891. package/node_modules/uuid/dist/v4.js +0 -43
  1892. package/node_modules/uuid/dist/v5.js +0 -16
  1893. package/node_modules/uuid/dist/validate.js +0 -17
  1894. package/node_modules/uuid/dist/version.js +0 -21
  1895. package/node_modules/uuid/package.json +0 -135
  1896. package/node_modules/uuid/wrapper.mjs +0 -10
  1897. /package/node_modules/@smithy/core/dist-es/{protocols → request-builder}/requestBuilder.js +0 -0
  1898. /package/node_modules/@smithy/core/dist-types/{protocols → request-builder}/requestBuilder.d.ts +0 -0
  1899. /package/node_modules/@smithy/core/dist-types/ts3.4/{protocols → request-builder}/requestBuilder.d.ts +0 -0
@@ -445,7 +445,7 @@ test('Test no logging', () => {
445
445
  CheckPipeSourceAndTarget(template, prerequisiteId);
446
446
  CheckPipeRole(template, prerequisiteId);
447
447
  // One log group for the state machine, none for the pipe
448
- template.resourceCountIs('AWS::Logs::LogGroup', 1);
448
+ template.resourceCountIs("AWS::Logs::LogGroup", 1);
449
449
  });
450
450
  test('Override a subset of SQS source paramters', () => {
451
451
  const prerequisiteId = 'srcparamtest';
@@ -784,4 +784,4 @@ function CheckLogGroup(template) {
784
784
  },
785
785
  });
786
786
  }
787
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsa0RBQStDO0FBQy9DLHNFQUFnRTtBQUNoRSx3RUFBNEU7QUFDNUUsNkNBQW9DO0FBQ3BDLGdDQUFnQztBQUVoQyxpREFBaUQ7QUFFakQseUNBQXlDO0FBQ3pDLHVEQUF5RDtBQUN6RCxtREFBcUQ7QUFFckQsb0NBQW9DO0FBQ3BDLHNDQUFzQztBQUN0QyxvQ0FBb0M7QUFFcEMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxFQUFFLENBQUM7SUFFMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFVLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsMEVBQTBFO0lBQzFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxHQUFH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RTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFO2dDQUNOLG9CQUFvQjtnQ0FDcEIsbUJBQW1CO2dDQUNuQix3QkFBd0I7NkJBQ3pCOzRCQUNELE1BQU0sRUFBRSxPQUFPOzRCQUNmLFFBQVEsRUFBRTtnQ0FDUixZQUFZLEVBQUU7b0NBQ1osa0JBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGNBQWMsZUFBZSxDQUFDO29DQUN4RCxLQUFLO2lDQUNOOzZCQUNGO3lCQUNGO3FCQUNGO29CQUNELE9BQU8sRUFBRSxZQUFZO2lCQUN0QjtnQkFDRCxVQUFVLEVBQUUsY0FBYzthQUMzQjtZQUNEO2dCQUNFLGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFLHVCQUF1Qjs0QkFDL0IsTUFBTSxFQUFFLE9BQU87NEJBQ2YsUUFBUSxFQUFFO2dDQUNSLEdBQUcsRUFBRSxrQkFBSyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsY0FBYyxzQkFBc0IsQ0FBQzs2QkFDakY7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLFlBQVk7aUJBQ3RCO2dCQUNELFVBQVUsRUFBRSxjQUFjO2FBQzNCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBa0I7SUFDdkMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixFQUFFO1FBQ3BELFlBQVksRUFBRTtZQUNaLFVBQVUsRUFBRTtnQkFDVixFQUFFO2dCQUNGO29CQUNFLGtCQUFLLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUM7b0JBQzFEO3dCQUNFLFlBQVksRUFBRTs0QkFDWixDQUFDOzRCQUNELGtCQUFLLENBQUMsUUFBUSxFQUFFO3lCQUNqQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgYnVpbGRRdWV1ZSB9IGZyb20gXCIuLi9saWIvc3FzLWhlbHBlclwiO1xuaW1wb3J0IHsgYnVpbGRTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiLi4vbGliL3N0ZXAtZnVuY3Rpb24taGVscGVyXCI7XG5pbXBvcnQgeyBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtIH0gZnJvbSBcIi4uL2xpYi9keW5hbW9kYi10YWJsZS1oZWxwZXJcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZXN0IHNvdXJjZXMgYW5kIHRhcmdldHMgZ2VuZXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgU1FTIFNvdXJjZScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBidWlsZFF1ZXVlKHN0YWNrLCAndGVzdC1xdWV1ZScsIHt9KTtcbiAgY29uc3Qgc3FzU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlU3FzU291cmNlKGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZSk7XG5cbiAgZXhwZWN0KHNxc1NvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLnF1ZXVlQXJuKTtcbiAgZXhwZWN0KE9iamVjdC5rZXlzKHNxc1NvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBTUVMgU291cmNlIHdpdGggb3ZlcnJpZGVzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc3RhY2ssICd0ZXN0LXF1ZXVlJywge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLCB7XG4gICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICBiYXRjaFNpemU6IDEyMyxcbiAgICB9LFxuICB9KTtcblxuICBleHBlY3Qoc3FzU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm4pO1xuICAvLyBCZWNhdXNlIHNxc1F1ZXVlUGFyYW1ldGVycyB0eXBlIGluY2x1ZGUgJ0lSZXNvbHZhYmxlIHwnLCB3ZSBuZWVkIHRvIGV4dHJhY3QgdGhlIHByb3BlcnR5IHRoaXMgd2F5XG4gIGNvbnN0IGJhdGNoU2l6ZVByb3AgPVxuICAgIChzcXNTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5zcXNRdWV1ZVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlU3FzUXVldWVQYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKDEyMyk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgRERCIFN0cmVhbXMgU291cmNlJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcbiAgY29uc3QgdGFibGVTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0IVxuICB9KTtcblxuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlQXJuKS50b0VxdWFsKGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdD8udGFibGVTdHJlYW1Bcm4pO1xuICBleHBlY3QoT2JqZWN0LmtleXModGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDIpO1xuICBleHBlY3QodGFibGVTb3VyY2UuZGxxKS50b0JlRGVmaW5lZCgpO1xuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gdGhhdCB3ZSB1c2UgY3VzdG9tIERMUSBwcm9wcycsICgpID0+IHtcbiAgY29uc3QgcXVldWVOYW1lID0gJ3NvbWV0aGluZy11bmlxdWUtYXNkZic7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRUYWJsZVJlc3BvbnNlID0gYnVpbGREeW5hbW9EQlRhYmxlV2l0aFN0cmVhbShzdGFjaywge30pO1xuICBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0ISxcbiAgICBzcXNEbHFRdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWUsXG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgUXVldWVOYW1lOiBxdWV1ZU5hbWVcbiAgfSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIEREQiBTdHJlYW1zIFNvdXJjZSB3aXRoIG5vIERMUScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gIH0pO1xuXG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0Py50YWJsZVN0cmVhbUFybik7XG4gIGV4cGVjdChPYmplY3Qua2V5cyh0YWJsZVNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5kbHEpLnRvQmVVbmRlZmluZWQoKTtcbiAgY29uc3Qgc3RyZWFtUGFyYW10ZXJzID0gKHRhYmxlU291cmNlLnNvdXJjZVBhcmFtZXRlcnMuZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzISBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMubWF4aW11bVJldHJ5QXR0ZW1wdHMpLnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMuc3RhcnRpbmdQb3NpdGlvbikudG9CZURlZmluZWQoKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBEREIgU3RyZWFtcyBTb3VyY2Ugd2l0aCBvdmVycmlkZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGJhdGNoU2l6ZVZhbHVlID0gNDY0MjtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGR5bmFtb0RiU3RyZWFtUGFyYW1ldGVyczoge1xuICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgYmF0Y2hTaXplOiBiYXRjaFNpemVWYWx1ZVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3Q/LnRhYmxlU3RyZWFtQXJuKTtcbiAgLy8gQmVjYXVzZSBzcXNRdWV1ZVBhcmFtZXRlcnMgdHlwZSBpbmNsdWRlICdJUmVzb2x2YWJsZSB8Jywgd2UgbmVlZCB0byBleHRyYWN0IHRoZSBwcm9wZXJ0eSB0aGlzIHdheVxuICBjb25zdCBiYXRjaFNpemVQcm9wID1cbiAgICAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlRHluYW1vREJTdHJlYW1QYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKGJhdGNoU2l6ZVZhbHVlKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZVBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgyKTtcblxuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5tYXhpbXVtUmV0cnlBdHRlbXB0cykudG9FcXVhbCgzKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3Qoc3RyZWFtUGFyYW10ZXJzLnN0YXJ0aW5nUG9zaXRpb24pLnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBTdGVwIEZ1bmN0aW9ucyBUYXJnZXQnLCAoKSA9PiB7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd0ZXN0LXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICdzdHViLXN0YXRlLW1hY2hpbmUnKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnRklSRV9BTkRfRk9SR0VUJyk7XG4gIGV4cGVjdChPYmplY3Qua2V5cyhzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAvLyBiZXN0IHdlIGNhbiBkbyBoZXJlLCBjb25maXJtIHZhbHVlcyB3aGVuIHdlIGluc3RhbnRpYXRlIHRoZSBhY3R1YWwgcGlwZVxuICBleHBlY3Qoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgxKTtcbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIFN0ZXAgRnVuY3Rpb25zIFRhcmdldCB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzdGFjaywgJ3Rlc3Qtc3RhdGUtbWFjaGluZScsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3N0dWItc3RhdGUtbWFjaGluZScpXG4gICAgfVxuICB9KTtcbiAgY29uc3Qgc3RhdGVNYWNoaW5lVGFyZ2V0ID0gZGVmYXVsdHMuQ3JlYXRlU3RhdGVNYWNoaW5lVGFyZ2V0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lLCB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnUkVRVUVTVF9SRVNQT05TRScpO1xuICBleHBlY3QoT2JqZWN0LmtleXMoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBhcmFtZXRlcnMpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gRExRIGlzIG9mZiBidXQgbWF4IGNvbnN0cmFpbnQgc2V0JywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBkeW5hbW9EYlN0cmVhbVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgICBtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzOiAxMDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlOiBidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3QhLFxuICAgICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gcmV0cnkgYW5kIHJlY29yZCBhZ2UgY29uc3RyYWludHMgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG5vIERMUVxcbicpO1xufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGVzdCBwaXBlIGNyZWF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBwaXBlJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdhbGxkZWZhdWx0JztcbiAgY29uc3QgcGlwZUlkID0gJ2RlZmF1bHRwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7fVxuICB9KTtcblxuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgcGlwZSB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnb3ZlcnJpZGVzdGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdvdmVycmlkZXNwaXBlJztcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RGVzY3JpcHRpb24gPSAndGVzdC1kZXNjcmlwdGlvbic7XG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogdGVzdERlc2NyaXB0aW9uXG4gICAgfVxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gVGhlIGRlc2NyaXB0aW9uIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3QsIHNvIGNoZWNrIGl0IGhlcmVcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIERlc2NyaXB0aW9uOiB0ZXN0RGVzY3JpcHRpb25cbiAgfSk7XG5cbn0pO1xuXG50ZXN0KCdDcmVhdGUgYSBwaXBlIHdpdGggYSBmaWx0ZXInLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2ZpbHRlcnRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnZmlsdGVycGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RmlsdGVyUGF0dGVybiA9IGB7XG4gICAgXCJib2R5XCI6IHtcbiAgICAgIFwic3RhdGVcIjogW1wib3BlblwiXVxuICAgIH1cbiAgfWA7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIHNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgZmlsdGVyQ3JpdGVyaWE6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBbeyBwYXR0ZXJuOiB0ZXN0RmlsdGVyUGF0dGVybiB9XSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gU291cmNlUGFyYW1ldGVycyBpcyB1bmlxdWUgdG8gdGhpcyB0ZXN0LCBzbyBjaGVjayBpdCBoZXJlXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2VQYXJhbWV0ZXJzOiB7XG4gICAgICBGaWx0ZXJDcml0ZXJpYToge1xuICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgUGF0dGVybjogdGVzdEZpbHRlclBhdHRlcm5cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBMYW1iZGEgZnVuY3Rpb24gZW5yaWNobWVudCcsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnbGFtYmRhZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdsYW1iZGFlbnJpY2hwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IGVucmljaG1lbnRGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdlbnJpY2htZW50LWZ1bmN0aW9uJywge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYS10ZXN0YCksXG4gICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gIH0pO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGVucmljaG1lbnRGdW5jdGlvblxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBFbnJpY2htZW50IGlzIHVuaXF1ZSB0byB0aGlzIHRlc3Qgc28gY2hlY2sgaXQgaGVyZVxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgRW5yaWNobWVudDoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnZW5yaWNobWVudGZ1bmN0aW9uLionKSxcbiAgICAgICAgXCJBcm5cIlxuICAgICAgXVxuICAgIH0sXG4gIH0pO1xuICAvLyBUaGlzIGNoZWNrcyBmb3IgZXZlcnl0aGluZyBidXQgZW5yaWNobWVudFxuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIC8vIFRoaXMgY2hlY2tzIGZvciBlbnJpY2htZW50IHBlcm1pc3Npb25zXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ2VucmljaG1lbnRmdW5jdGlvbi4qJyksXG4gICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gICAgUG9saWN5TmFtZTogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgZW5yaWNobWVudHBvbGljeSR7cGlwZUlkfS4qYCksXG4gICAgUm9sZXM6IFtcbiAgICAgIHtcbiAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBQaXBlUm9sZSR7cGlwZUlkfS4qYClcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBzdGF0ZSBtYWNoaW5lIGVucmljaG1lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ3NtZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdzbWVucmljaHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgZW5yaWNobWVudFN0YXRlTWFjaGluZSA9IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmUoc3RhY2ssICdzdGF0ZS1tYWNoaW5lLWVucmljaG1lbnQnKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBlbnJpY2htZW50U3RhdGVNYWNoaW5lXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gTG9vayBmb3IgYWRkaXRpb25hbCBlbnJpY2htZW50IHBlcm1pc2lvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhpcyB3b24ndCBydW4gaWYgd2UgYWN0dWFsbHkgbGF1bmNoZWQgaXQgYXMgdGhlIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgaXMgbm90IEVYUFJFU1NcbiAgICAgICAgICBBY3Rpb246IFwic3RhdGVzOlN0YXJ0U3luY0V4ZWN1dGlvblwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ3N0YXRlbWFjaGluZWVucmljaG1lbnQuKicpLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY3lOYW1lOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBlbnJpY2htZW50cG9saWN5JHtwaXBlSWR9LipgKSxcbiAgICBSb2xlczogW1xuICAgICAge1xuICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFBpcGVSb2xlJHtwaXBlSWR9LipgKVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBFbnJpY2htZW50OiB7XG4gICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoXCJzdGF0ZW1hY2hpbmVlbnJpY2htZW50LipcIilcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdQcm92aWRlIHJlcGxhY2VtZW50IExvZ0NvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2xvZ2NvbmZpZ3Rlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnbG9nY29uZmlncGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBjdXN0b21Mb2dDb25maWd1cmF0aW9uOiBwaXBlcy5DZm5QaXBlLlBpcGVMb2dDb25maWd1cmF0aW9uUHJvcGVydHkgPSB7XG4gICAgczNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgYnVja2V0TmFtZTogbmV3IHMzLkJ1Y2tldChzdGFjaywgJ3Rlc3QnKS5idWNrZXROYW1lLFxuICAgIH0sXG4gICAgbGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuRVJST1JcbiAgfTtcbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IGN1c3RvbUxvZ0NvbmZpZ3VyYXRpb25cbiAgICB9XG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBMb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICBMZXZlbDogXCJFUlJPUlwiLFxuICAgICAgUzNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICBCdWNrZXROYW1lOiB7XG4gICAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKFwidGVzdC4qXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG59KTtcblxudGVzdCgnT3ZlcnJpZGUgdGhlIGRlZmF1bHQgbG9nIGxldmVsJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdsb2dsZXZlbHR0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ2xvZ2xldmVscGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUlxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuXG4gIC8vIExldmVsIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3RcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIExldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SLFxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnVGVzdCBubyBsb2dnaW5nJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdub2xvZ3MnO1xuICBjb25zdCBwaXBlSWQgPSAndGVzdHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgbG9nTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuT0ZGXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVTb3VyY2VBbmRUYXJnZXQodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIC8vIE9uZSBsb2cgZ3JvdXAgZm9yIHRoZSBzdGF0ZSBtYWNoaW5lLCBub25lIGZvciB0aGUgcGlwZVxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCAxKTtcbn0pO1xuXG50ZXN0KCdPdmVycmlkZSBhIHN1YnNldCBvZiBTUVMgc291cmNlIHBhcmFtdGVycycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnc3JjcGFyYW10ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ3NyY3BhcmFtcGlwZSc7XG4gIGNvbnN0IHRlc3RCYXRjaFNpemUgPSA3O1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIHNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgYmF0Y2hTaXplOiB0ZXN0QmF0Y2hTaXplLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2VQYXJhbWV0ZXJzOiB7XG4gICAgICBTcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgQmF0Y2hTaXplOiB0ZXN0QmF0Y2hTaXplXG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxudGVzdCgnUHJvdmlkZSBwaXBlTG9nUHJvcHMnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ3BpcGVsb2dwcm9wc3Rlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAncGlwZWxvZ3Byb3BzcGlwZSc7XG4gIC8vIFdoaWxlIHRoaXMgaXMgYW4gZW51bSB3ZSBuZWVkIHRvIHVzZSwgaW4gdGhlIHRlbXBsYXRlXG4gIC8vIGl0IGlzIGNvbnZlcnRlZCB0byBkYXlzLCBpbiB0aGlzIGNhc2UgMTIwXG4gIGNvbnN0IHRlc3RSZXRlbnRpb24gPSBSZXRlbnRpb25EYXlzLkZPVVJfTU9OVEhTO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgcGlwZUxvZ1Byb3BzOiB7XG4gICAgICByZXRlbnRpb246IHRlc3RSZXRlbnRpb25cbiAgICB9XG4gIH0pO1xuXG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcbiAgQ2hlY2tQaXBlTG9nQ29uZmlndXJhdGlvbih0ZW1wbGF0ZSwgcGlwZUlkKTtcblxuICAvLyBMb29rIGZvciBhZGRpdGlvbmFsIHByb3BlcnR5IHdlIHBhc3NlZCBpbiBwaXBlTG9nUHJvcHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywge1xuICAgIFJldGVudGlvbkluRGF5czogMTIwLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwcm92aWRpbmcgc291cmNlIGluIENmblByb3BzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZS5zb3VyY2VBcm5cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyB0YXJnZXQgaW4gQ2ZuUHJvcHMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LnRhcmdldEFybixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBhIHJvbGVBcm4nLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICByb2xlQXJuOiBcInNvbWUtYXJuXCIsXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgc291cmNlLCB0YXJnZXQsIHJvbGVBcm4sIG9yIGVucmljaG1lbnQnKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwcm92aWRpbmcgZW5yaWNobWVudCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIGVucmljaG1lbnQ6IFwiZnVuY3Rpb25Bcm5cIixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIGxvZyBsZXZlbCBhbmQgbG9nIGNvbmZpZ3VyYXRpb24gYXJlIGJvdGggcHJvdmlkZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUixcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IHsgc29tZTogXCJvYmplY3RcIiB9LFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IGxvZ0xldmVsIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcGlwZUxvZ1Byb3BzIGFuZCBsb2cgY29uZmlndXJhdGlvbiBhcmUgYm90aCBwcm92aWRlZCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIHBpcGVMb2dQcm9wczogeyBsb2dHcm91cE5hbWU6IFwiYW55dmFsdWVcIiB9LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbjogeyBzb21lOiBcIm9iamVjdFwiIH0sXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgcGlwZUxvZ1Byb3BzIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gZW5yaWNobWVudEZ1bmN0aW9uIGFuZCBlbnJpY2htZW50U3RhdGVNYWNoaW5lIGFyZSBib3RoIHByb3ZpZGVkJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgZW5yaWNobWVudEZ1bmN0aW9uOiB7IHBsYWNlOiBcImhvbGRlclwiIH0gYXMgdW5rbm93biBhcyBsYW1iZGEuRnVuY3Rpb24sXG4gICAgICBlbnJpY2htZW50U3RhdGVNYWNoaW5lOiB7IHBsYWNlOiBcImhvbGRlclwiIH0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gT25seSBvbmUgb2YgZW5yaWNobWVudEZ1bmN0aW9uIG9yIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgY2FuIGJlIHByb3ZpZGVkJyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcGlwZUxvZ1Byb3BzIGFuZCBsb2cgbGV2ZWwgaXMgc2V0IHRvIE9GRicsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGxvZ0xldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLk9GRixcbiAgICAgIHBpcGVMb2dQcm9wczogeyBsb2dHcm91cE5hbWU6IFwiYW55dmFsdWVcIiB9LFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nIGxldmVsIE9GRicpO1xufSk7XG5cbnRlc3QoJ1Rlc3QgYWxsIG9mIENoZWNrUGlwZXNQcm9wcycsICgpID0+IHtcbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrUGlwZXNQcm9wcyh7XG4gICAgICBwaXBlc1Byb3BzOiB7IHNvdXJjZTogXCJ2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0RvIG5vdCBzZXQgc291cmNlIGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0LlxcbicpO1xuXG4gIGNvbnN0IGFwcFR3byA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1BpcGVzUHJvcHMoe1xuICAgICAgcGlwZXNQcm9wczogeyB0YXJnZXQ6IFwidmFsdWVcIiB9LFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcFR3bykudG9UaHJvd0Vycm9yKCdEbyBub3Qgc2V0IHRhcmdldCBpbiBwaXBlc1Byb3BzLiBJdCBpcyBzZXQgYnkgdGhlIGNvbnN0cnVjdC5cXG4nKTtcblxufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2hhcmVkIHNldHVwIGZ1bmN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaW50ZXJmYWNlIFByZXJlcXVpc2l0ZXMge1xuICBzb3VyY2U6IGRlZmF1bHRzLkNyZWF0ZVNvdXJjZVJlc3BvbnNlLFxuICB0YXJnZXQ6IGRlZmF1bHRzLkNyZWF0ZVRhcmdldFJlc3BvbnNlLFxufVxuXG5mdW5jdGlvbiBDcmVhdGVQcmVyZXF1aXNpdGVzKHNjb3BlOiBTdGFjaywgaWQ6IHN0cmluZyk6IFByZXJlcXVpc2l0ZXMge1xuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBidWlsZFF1ZXVlKHNjb3BlLCBgJHtpZH0tc291cmNlLXF1ZXVlYCwge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc2NvcGUsIGAke2lkfS10YXJnZXQtc3RhdGUtbWFjaGluZWAsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzY29wZSwgYCR7aWR9LXN0ZXBzYClcbiAgICB9XG4gIH0pO1xuICBjb25zdCBzdGF0ZU1hY2hpbmVUYXJnZXQgPSBkZWZhdWx0cy5DcmVhdGVTdGF0ZU1hY2hpbmVUYXJnZXQoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUsIHtcbiAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICBpbnZvY2F0aW9uVHlwZTogJ1JFUVVFU1RfUkVTUE9OU0UnXG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBzb3VyY2U6IHNxc1NvdXJjZSxcbiAgICB0YXJnZXQ6IHN0YXRlTWFjaGluZVRhcmdldFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNoYXJlZCBmdW5jdGlvbnMgdGhhdCBjaGVjayBkZWZhdWx0IHNldHRpbmdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZTogZGVmYXVsdHMuQnVpbGRQaXBlc1Jlc3BvbnNlLCBwcmVyZXF1aXNpdGVzOiBQcmVyZXF1aXNpdGVzKSB7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlLnNvdXJjZSkudG9FcXVhbChwcmVyZXF1aXNpdGVzLnNvdXJjZS5zb3VyY2VBcm4pO1xuICBleHBlY3QocGlwZVJlc3BvbnNlLnBpcGUudGFyZ2V0KS50b0VxdWFsKHByZXJlcXVpc2l0ZXMudGFyZ2V0LnRhcmdldEFybik7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZVJvbGUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZVJvbGUubm9kZSkudG9CZURlZmluZWQoKTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGU6IFRlbXBsYXRlLFxuICBwaXBlSWQ6IHN0cmluZyxcbiAgcHJlcmVxdWlzaXRlSWQ6IHN0cmluZ1xuKSB7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlLCBwaXBlSWQpO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVTb3VyY2VBbmRUYXJnZXQodGVtcGxhdGU6IFRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZDogc3RyaW5nKSB7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2U6IHtcbiAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYCR7cHJlcmVxdWlzaXRlSWR9c291cmNlcXVldWUuKmApLFxuICAgICAgICBcIkFyblwiXG4gICAgICBdXG4gICAgfSxcbiAgICBUYXJnZXQ6IHtcbiAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgU3RhdGVNYWNoaW5lJHtwcmVyZXF1aXNpdGVJZH10YXJnZXRzdGF0ZW1hY2hpbmUuKmApLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlOiBUZW1wbGF0ZSwgcGlwZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIENsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgTG9nR3JvdXBBcm46IHtcbiAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgTG9nR3JvdXAke3BpcGVJZH0uKmApLFxuICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZVJvbGUodGVtcGxhdGU6IFRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZDogc3RyaW5nKSB7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlJvbGUnLCB7XG4gICAgQXNzdW1lUm9sZVBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzdHM6QXNzdW1lUm9sZVwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgU2VydmljZTogXCJwaXBlcy5hbWF6b25hd3MuY29tXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gICAgUG9saWNpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgXCJzcXM6UmVjZWl2ZU1lc3NhZ2VcIixcbiAgICAgICAgICAgICAgICBcInNxczpEZWxldGVNZXNzYWdlXCIsXG4gICAgICAgICAgICAgICAgXCJzcXM6R2V0UXVldWVBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYCR7cHJlcmVxdWlzaXRlSWR9c291cmNlcXVldWUuKmApLFxuICAgICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICAgICAgfSxcbiAgICAgICAgUG9saWN5TmFtZTogXCJzb3VyY2VQb2xpY3lcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgQWN0aW9uOiBcInN0YXRlczpTdGFydEV4ZWN1dGlvblwiLFxuICAgICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFN0YXRlTWFjaGluZSR7cHJlcmVxdWlzaXRlSWR9dGFyZ2V0c3RhdGVtYWNoaW5lLipgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgICAgICB9LFxuICAgICAgICBQb2xpY3lOYW1lOiBcInRhcmdldFBvbGljeVwiXG4gICAgICB9XG4gICAgXVxuICB9KTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZTogVGVtcGxhdGUpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywge1xuICAgIExvZ0dyb3VwTmFtZToge1xuICAgICAgXCJGbjo6Sm9pblwiOiBbXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFtcbiAgICAgICAgICBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCcvYXdzL3ZlbmRlZGxvZ3MvcGlwZXMvY29uc3RydWN0cycpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiRm46OlNlbGVjdFwiOiBbXG4gICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgIE1hdGNoLmFueVZhbHVlKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIF1cbiAgICB9LFxuICB9KTtcbn0iXX0=
787
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsa0RBQStDO0FBQy9DLHNFQUFnRTtBQUNoRSx3RUFBNEU7QUFDNUUsNkNBQW9DO0FBQ3BDLGdDQUFnQztBQUVoQyxpREFBaUQ7QUFFakQseUNBQXlDO0FBQ3pDLHVEQUF5RDtBQUN6RCxtREFBcUQ7QUFFckQsb0NBQW9DO0FBQ3BDLHNDQUFzQztBQUN0QyxvQ0FBb0M7QUFFcEMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxFQUFFLENBQUM7SUFFMUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFVLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsMEVBQTBFO0lBQzFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxHQUFH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RTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFO2dDQUNOLG9CQUFvQjtnQ0FDcEIsbUJBQW1CO2dDQUNuQix3QkFBd0I7NkJBQ3pCOzRCQUNELE1BQU0sRUFBRSxPQUFPOzRCQUNmLFFBQVEsRUFBRTtnQ0FDUixZQUFZLEVBQUU7b0NBQ1osa0JBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGNBQWMsZUFBZSxDQUFDO29DQUN4RCxLQUFLO2lDQUNOOzZCQUNGO3lCQUNGO3FCQUNGO29CQUNELE9BQU8sRUFBRSxZQUFZO2lCQUN0QjtnQkFDRCxVQUFVLEVBQUUsY0FBYzthQUMzQjtZQUNEO2dCQUNFLGNBQWMsRUFBRTtvQkFDZCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsTUFBTSxFQUFFLHVCQUF1Qjs0QkFDL0IsTUFBTSxFQUFFLE9BQU87NEJBQ2YsUUFBUSxFQUFFO2dDQUNSLEdBQUcsRUFBRSxrQkFBSyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsY0FBYyxzQkFBc0IsQ0FBQzs2QkFDakY7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLFlBQVk7aUJBQ3RCO2dCQUNELFVBQVUsRUFBRSxjQUFjO2FBQzNCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBa0I7SUFDdkMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixFQUFFO1FBQ3BELFlBQVksRUFBRTtZQUNaLFVBQVUsRUFBRTtnQkFDVixFQUFFO2dCQUNGO29CQUNFLGtCQUFLLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUM7b0JBQzFEO3dCQUNFLFlBQVksRUFBRTs0QkFDWixDQUFDOzRCQUNELGtCQUFLLENBQUMsUUFBUSxFQUFFO3lCQUNqQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgYnVpbGRRdWV1ZSB9IGZyb20gXCIuLi9saWIvc3FzLWhlbHBlclwiO1xuaW1wb3J0IHsgYnVpbGRTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiLi4vbGliL3N0ZXAtZnVuY3Rpb24taGVscGVyXCI7XG5pbXBvcnQgeyBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtIH0gZnJvbSBcIi4uL2xpYi9keW5hbW9kYi10YWJsZS1oZWxwZXJcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgTWF0Y2gsIFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZXN0IHNvdXJjZXMgYW5kIHRhcmdldHMgZ2VuZXJhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgU1FTIFNvdXJjZScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBidWlsZFF1ZXVlKHN0YWNrLCAndGVzdC1xdWV1ZScsIHt9KTtcbiAgY29uc3Qgc3FzU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlU3FzU291cmNlKGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZSk7XG5cbiAgZXhwZWN0KHNxc1NvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLnF1ZXVlQXJuKTtcbiAgZXhwZWN0KE9iamVjdC5rZXlzKHNxc1NvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBTUVMgU291cmNlIHdpdGggb3ZlcnJpZGVzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc3RhY2ssICd0ZXN0LXF1ZXVlJywge30pO1xuICBjb25zdCBzcXNTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVTcXNTb3VyY2UoYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlLCB7XG4gICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICBiYXRjaFNpemU6IDEyMyxcbiAgICB9LFxuICB9KTtcblxuICBleHBlY3Qoc3FzU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm4pO1xuICAvLyBCZWNhdXNlIHNxc1F1ZXVlUGFyYW1ldGVycyB0eXBlIGluY2x1ZGUgJ0lSZXNvbHZhYmxlIHwnLCB3ZSBuZWVkIHRvIGV4dHJhY3QgdGhlIHByb3BlcnR5IHRoaXMgd2F5XG4gIGNvbnN0IGJhdGNoU2l6ZVByb3AgPVxuICAgIChzcXNTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5zcXNRdWV1ZVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlU3FzUXVldWVQYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKDEyMyk7XG4gIC8vIGJlc3Qgd2UgY2FuIGRvIGhlcmUsIGNvbmZpcm0gdmFsdWVzIHdoZW4gd2UgaW5zdGFudGlhdGUgdGhlIGFjdHVhbCBwaXBlXG4gIGV4cGVjdChzcXNTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDEpO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIGRlZmF1bHQgRERCIFN0cmVhbXMgU291cmNlJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcbiAgY29uc3QgdGFibGVTb3VyY2UgPSBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0IVxuICB9KTtcblxuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlQXJuKS50b0VxdWFsKGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdD8udGFibGVTdHJlYW1Bcm4pO1xuICBleHBlY3QoT2JqZWN0LmtleXModGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICBleHBlY3QodGFibGVTb3VyY2Uuc291cmNlUG9saWN5LnN0YXRlbWVudENvdW50KS50b0VxdWFsKDIpO1xuICBleHBlY3QodGFibGVTb3VyY2UuZGxxKS50b0JlRGVmaW5lZCgpO1xuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gdGhhdCB3ZSB1c2UgY3VzdG9tIERMUSBwcm9wcycsICgpID0+IHtcbiAgY29uc3QgcXVldWVOYW1lID0gJ3NvbWV0aGluZy11bmlxdWUtYXNkZic7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgYnVpbGRUYWJsZVJlc3BvbnNlID0gYnVpbGREeW5hbW9EQlRhYmxlV2l0aFN0cmVhbShzdGFjaywge30pO1xuICBkZWZhdWx0cy5DcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2Uoc3RhY2ssIHtcbiAgICB0YWJsZTogYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0ISxcbiAgICBzcXNEbHFRdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWUsXG4gICAgfVxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgUXVldWVOYW1lOiBxdWV1ZU5hbWVcbiAgfSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIEREQiBTdHJlYW1zIFNvdXJjZSB3aXRoIG5vIERMUScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gIH0pO1xuXG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VBcm4pLnRvRXF1YWwoYnVpbGRUYWJsZVJlc3BvbnNlLnRhYmxlT2JqZWN0Py50YWJsZVN0cmVhbUFybik7XG4gIGV4cGVjdChPYmplY3Qua2V5cyh0YWJsZVNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzKS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5zb3VyY2VQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdCh0YWJsZVNvdXJjZS5kbHEpLnRvQmVVbmRlZmluZWQoKTtcbiAgY29uc3Qgc3RyZWFtUGFyYW10ZXJzID0gKHRhYmxlU291cmNlLnNvdXJjZVBhcmFtZXRlcnMuZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzISBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMubWF4aW11bVJldHJ5QXR0ZW1wdHMpLnRvQmVVbmRlZmluZWQoKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlVW5kZWZpbmVkKCk7XG4gIGV4cGVjdChzdHJlYW1QYXJhbXRlcnMuc3RhcnRpbmdQb3NpdGlvbikudG9CZURlZmluZWQoKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhbiBEREIgU3RyZWFtcyBTb3VyY2Ugd2l0aCBvdmVycmlkZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGJhdGNoU2l6ZVZhbHVlID0gNDY0MjtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFRhYmxlUmVzcG9uc2UgPSBidWlsZER5bmFtb0RCVGFibGVXaXRoU3RyZWFtKHN0YWNrLCB7fSk7XG4gIGNvbnN0IHRhYmxlU291cmNlID0gZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgdGFibGU6IGJ1aWxkVGFibGVSZXNwb25zZS50YWJsZU9iamVjdCEsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGR5bmFtb0RiU3RyZWFtUGFyYW1ldGVyczoge1xuICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgYmF0Y2hTaXplOiBiYXRjaFNpemVWYWx1ZVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZUFybikudG9FcXVhbChidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3Q/LnRhYmxlU3RyZWFtQXJuKTtcbiAgLy8gQmVjYXVzZSBzcXNRdWV1ZVBhcmFtZXRlcnMgdHlwZSBpbmNsdWRlICdJUmVzb2x2YWJsZSB8Jywgd2UgbmVlZCB0byBleHRyYWN0IHRoZSBwcm9wZXJ0eSB0aGlzIHdheVxuICBjb25zdCBiYXRjaFNpemVQcm9wID1cbiAgICAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlRHluYW1vREJTdHJlYW1QYXJhbWV0ZXJzUHJvcGVydHkpIS5iYXRjaFNpemU7XG4gIGV4cGVjdChiYXRjaFNpemVQcm9wKS50b0VxdWFsKGJhdGNoU2l6ZVZhbHVlKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHRhYmxlU291cmNlLnNvdXJjZVBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgyKTtcblxuICBjb25zdCBzdHJlYW1QYXJhbXRlcnMgPSAodGFibGVTb3VyY2Uuc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMhIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5tYXhpbXVtUmV0cnlBdHRlbXB0cykudG9FcXVhbCgzKTtcbiAgZXhwZWN0KHN0cmVhbVBhcmFtdGVycy5kZWFkTGV0dGVyQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3Qoc3RyZWFtUGFyYW10ZXJzLnN0YXJ0aW5nUG9zaXRpb24pLnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBTdGVwIEZ1bmN0aW9ucyBUYXJnZXQnLCAoKSA9PiB7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd0ZXN0LXN0YXRlLW1hY2hpbmUnLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICdzdHViLXN0YXRlLW1hY2hpbmUnKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnRklSRV9BTkRfRk9SR0VUJyk7XG4gIGV4cGVjdChPYmplY3Qua2V5cyhzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycykubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAvLyBiZXN0IHdlIGNhbiBkbyBoZXJlLCBjb25maXJtIHZhbHVlcyB3aGVuIHdlIGluc3RhbnRpYXRlIHRoZSBhY3R1YWwgcGlwZVxuICBleHBlY3Qoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBvbGljeS5zdGF0ZW1lbnRDb3VudCkudG9FcXVhbCgxKTtcbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIFN0ZXAgRnVuY3Rpb25zIFRhcmdldCB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzdGFjaywgJ3Rlc3Qtc3RhdGUtbWFjaGluZScsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3N0dWItc3RhdGUtbWFjaGluZScpXG4gICAgfVxuICB9KTtcbiAgY29uc3Qgc3RhdGVNYWNoaW5lVGFyZ2V0ID0gZGVmYXVsdHMuQ3JlYXRlU3RhdGVNYWNoaW5lVGFyZ2V0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lLCB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdSRVFVRVNUX1JFU1BPTlNFJ1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRBcm4pLnRvRXF1YWwoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuKTtcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLnN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnMpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IGludm9jYXRpb25UeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgIChzdGF0ZU1hY2hpbmVUYXJnZXQudGFyZ2V0UGFyYW1ldGVycy5zdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFN0YXRlTWFjaGluZVBhcmFtZXRlcnNQcm9wZXJ0eSkuaW52b2NhdGlvblR5cGU7XG4gIGV4cGVjdChpbnZvY2F0aW9uVHlwZSkudG9FcXVhbCgnUkVRVUVTVF9SRVNQT05TRScpO1xuICBleHBlY3QoT2JqZWN0LmtleXMoc3RhdGVNYWNoaW5lVGFyZ2V0LnRhcmdldFBhcmFtZXRlcnMpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgLy8gYmVzdCB3ZSBjYW4gZG8gaGVyZSwgY29uZmlybSB2YWx1ZXMgd2hlbiB3ZSBpbnN0YW50aWF0ZSB0aGUgYWN0dWFsIHBpcGVcbiAgZXhwZWN0KHN0YXRlTWFjaGluZVRhcmdldC50YXJnZXRQb2xpY3kuc3RhdGVtZW50Q291bnQpLnRvRXF1YWwoMSk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gRExRIGlzIG9mZiBidXQgbWF4IGNvbnN0cmFpbnQgc2V0JywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGJ1aWxkVGFibGVSZXNwb25zZSA9IGJ1aWxkRHluYW1vREJUYWJsZVdpdGhTdHJlYW0oc3RhY2ssIHt9KTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlKHN0YWNrLCB7XG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBkeW5hbW9EYlN0cmVhbVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBzdGFydGluZ1Bvc2l0aW9uOiAnTEFURVNUJyxcbiAgICAgICAgICBtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzOiAxMDBcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhYmxlOiBidWlsZFRhYmxlUmVzcG9uc2UudGFibGVPYmplY3QhLFxuICAgICAgZGVwbG95U3FzRGxxUXVldWU6IGZhbHNlXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gcmV0cnkgYW5kIHJlY29yZCBhZ2UgY29uc3RyYWludHMgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG5vIERMUVxcbicpO1xufSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVGVzdCBwaXBlIGNyZWF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudGVzdCgnQ3JlYXRlIGEgZGVmYXVsdCBwaXBlJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdhbGxkZWZhdWx0JztcbiAgY29uc3QgcGlwZUlkID0gJ2RlZmF1bHRwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7fVxuICB9KTtcblxuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG59KTtcblxudGVzdCgnQ3JlYXRlIGEgcGlwZSB3aXRoIG92ZXJyaWRlcycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnb3ZlcnJpZGVzdGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdvdmVycmlkZXNwaXBlJztcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RGVzY3JpcHRpb24gPSAndGVzdC1kZXNjcmlwdGlvbic7XG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGNsaWVudFByb3BzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogdGVzdERlc2NyaXB0aW9uXG4gICAgfVxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gVGhlIGRlc2NyaXB0aW9uIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3QsIHNvIGNoZWNrIGl0IGhlcmVcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIERlc2NyaXB0aW9uOiB0ZXN0RGVzY3JpcHRpb25cbiAgfSk7XG5cbn0pO1xuXG50ZXN0KCdDcmVhdGUgYSBwaXBlIHdpdGggYSBmaWx0ZXInLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2ZpbHRlcnRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnZmlsdGVycGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCB0ZXN0RmlsdGVyUGF0dGVybiA9IGB7XG4gICAgXCJib2R5XCI6IHtcbiAgICAgIFwic3RhdGVcIjogW1wib3BlblwiXVxuICAgIH1cbiAgfWA7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIHNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgZmlsdGVyQ3JpdGVyaWE6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBbeyBwYXR0ZXJuOiB0ZXN0RmlsdGVyUGF0dGVybiB9XSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gU291cmNlUGFyYW1ldGVycyBpcyB1bmlxdWUgdG8gdGhpcyB0ZXN0LCBzbyBjaGVjayBpdCBoZXJlXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBTb3VyY2VQYXJhbWV0ZXJzOiB7XG4gICAgICBGaWx0ZXJDcml0ZXJpYToge1xuICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgUGF0dGVybjogdGVzdEZpbHRlclBhdHRlcm5cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBMYW1iZGEgZnVuY3Rpb24gZW5yaWNobWVudCcsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAnbGFtYmRhZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdsYW1iZGFlbnJpY2hwaXBlJztcblxuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIGNvbnN0IGVucmljaG1lbnRGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdlbnJpY2htZW50LWZ1bmN0aW9uJywge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYS10ZXN0YCksXG4gICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gIH0pO1xuXG4gIGNvbnN0IHBpcGVSZXNwb25zZSA9IGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgcGlwZUlkLCB7XG4gICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgIGVucmljaG1lbnRGdW5jdGlvblxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICAvLyBFbnJpY2htZW50IGlzIHVuaXF1ZSB0byB0aGlzIHRlc3Qgc28gY2hlY2sgaXQgaGVyZVxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgRW5yaWNobWVudDoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnZW5yaWNobWVudGZ1bmN0aW9uLionKSxcbiAgICAgICAgXCJBcm5cIlxuICAgICAgXVxuICAgIH0sXG4gIH0pO1xuICAvLyBUaGlzIGNoZWNrcyBmb3IgZXZlcnl0aGluZyBidXQgZW5yaWNobWVudFxuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIC8vIFRoaXMgY2hlY2tzIGZvciBlbnJpY2htZW50IHBlcm1pc3Npb25zXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlBvbGljeScsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ2VucmljaG1lbnRmdW5jdGlvbi4qJyksXG4gICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH0sXG4gICAgUG9saWN5TmFtZTogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgZW5yaWNobWVudHBvbGljeSR7cGlwZUlkfS4qYCksXG4gICAgUm9sZXM6IFtcbiAgICAgIHtcbiAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBQaXBlUm9sZSR7cGlwZUlkfS4qYClcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NyZWF0ZSBhIHBpcGUgd2l0aCBzdGF0ZSBtYWNoaW5lIGVucmljaG1lbnQnLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ3NtZW5yaWNodGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdzbWVucmljaHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgZW5yaWNobWVudFN0YXRlTWFjaGluZSA9IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmUoc3RhY2ssICdzdGF0ZS1tYWNoaW5lLWVucmljaG1lbnQnKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBlbnJpY2htZW50U3RhdGVNYWNoaW5lXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZSwgcGlwZUlkLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZVJvbGUodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tMb2dHcm91cCh0ZW1wbGF0ZSk7XG5cbiAgLy8gTG9vayBmb3IgYWRkaXRpb25hbCBlbnJpY2htZW50IHBlcm1pc2lvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6SUFNOjpQb2xpY3knLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhpcyB3b24ndCBydW4gaWYgd2UgYWN0dWFsbHkgbGF1bmNoZWQgaXQgYXMgdGhlIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgaXMgbm90IEVYUFJFU1NcbiAgICAgICAgICBBY3Rpb246IFwic3RhdGVzOlN0YXJ0U3luY0V4ZWN1dGlvblwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiB7XG4gICAgICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ3N0YXRlbWFjaGluZWVucmljaG1lbnQuKicpLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY3lOYW1lOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBlbnJpY2htZW50cG9saWN5JHtwaXBlSWR9LipgKSxcbiAgICBSb2xlczogW1xuICAgICAge1xuICAgICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoYFBpcGVSb2xlJHtwaXBlSWR9LipgKVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBFbnJpY2htZW50OiB7XG4gICAgICBSZWY6IE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoXCJzdGF0ZW1hY2hpbmVlbnJpY2htZW50LipcIilcbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdQcm92aWRlIHJlcGxhY2VtZW50IExvZ0NvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZUlkID0gJ2xvZ2NvbmZpZ3Rlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnbG9nY29uZmlncGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBjdXN0b21Mb2dDb25maWd1cmF0aW9uOiBwaXBlcy5DZm5QaXBlLlBpcGVMb2dDb25maWd1cmF0aW9uUHJvcGVydHkgPSB7XG4gICAgczNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgYnVja2V0TmFtZTogbmV3IHMzLkJ1Y2tldChzdGFjaywgJ3Rlc3QnKS5idWNrZXROYW1lLFxuICAgIH0sXG4gICAgbGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuRVJST1JcbiAgfTtcbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgY2xpZW50UHJvcHM6IHtcbiAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IGN1c3RvbUxvZ0NvbmZpZ3VyYXRpb25cbiAgICB9XG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpQaXBlczo6UGlwZScsIHtcbiAgICBMb2dDb25maWd1cmF0aW9uOiB7XG4gICAgICBMZXZlbDogXCJFUlJPUlwiLFxuICAgICAgUzNMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICBCdWNrZXROYW1lOiB7XG4gICAgICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKFwidGVzdC4qXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG59KTtcblxudGVzdCgnT3ZlcnJpZGUgdGhlIGRlZmF1bHQgbG9nIGxldmVsJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdsb2dsZXZlbHR0ZXN0JztcbiAgY29uc3QgcGlwZUlkID0gJ2xvZ2xldmVscGlwZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBsb2dMZXZlbDogZGVmYXVsdHMuUGlwZXNMb2dMZXZlbC5FUlJPUlxuICB9KTtcbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuXG4gIC8vIExldmVsIGlzIHVuaXF1ZSB0byB0aGlzIHRlc3RcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIExvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIExldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SLFxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnVGVzdCBubyBsb2dnaW5nJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdub2xvZ3MnO1xuICBjb25zdCBwaXBlSWQgPSAndGVzdHBpcGUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCBwcmVyZXF1aXNpdGVJZCk7XG5cbiAgY29uc3QgcGlwZVJlc3BvbnNlID0gZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCBwaXBlSWQsIHtcbiAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgbG9nTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuT0ZGXG4gIH0pO1xuICBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlLCBwcmVyZXF1aXNpdGVzKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpQaXBlczo6UGlwZScsIDEpO1xuICBDaGVja1BpcGVTb3VyY2VBbmRUYXJnZXQodGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuXG4gIC8vIE9uZSBsb2cgZ3JvdXAgZm9yIHRoZSBzdGF0ZSBtYWNoaW5lLCBub25lIGZvciB0aGUgcGlwZVxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoXCJBV1M6OkxvZ3M6OkxvZ0dyb3VwXCIsIDEpO1xufSk7XG5cbnRlc3QoJ092ZXJyaWRlIGEgc3Vic2V0IG9mIFNRUyBzb3VyY2UgcGFyYW10ZXJzJywgKCkgPT4ge1xuICBjb25zdCBwcmVyZXF1aXNpdGVJZCA9ICdzcmNwYXJhbXRlc3QnO1xuICBjb25zdCBwaXBlSWQgPSAnc3JjcGFyYW1waXBlJztcbiAgY29uc3QgdGVzdEJhdGNoU2l6ZSA9IDc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBjbGllbnRQcm9wczoge1xuICAgICAgc291cmNlUGFyYW1ldGVyczoge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBiYXRjaFNpemU6IHRlc3RCYXRjaFNpemUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIENoZWNrUGlwZVJlc3BvbnNlUHJvcGVydGllcyhwaXBlUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXMpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKCdBV1M6OlBpcGVzOjpQaXBlJywgMSk7XG4gIENoZWNrUGlwZVJlc291cmNlKHRlbXBsYXRlLCBwaXBlSWQsIHByZXJlcXVpc2l0ZUlkKTtcbiAgQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZSwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlKTtcblxuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIFNvdXJjZVBhcmFtZXRlcnM6IHtcbiAgICAgIFNxc1F1ZXVlUGFyYW1ldGVyczoge1xuICAgICAgICBCYXRjaFNpemU6IHRlc3RCYXRjaFNpemVcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG50ZXN0KCdQcm92aWRlIHBpcGVMb2dQcm9wcycsICgpID0+IHtcbiAgY29uc3QgcHJlcmVxdWlzaXRlSWQgPSAncGlwZWxvZ3Byb3BzdGVzdCc7XG4gIGNvbnN0IHBpcGVJZCA9ICdwaXBlbG9ncHJvcHNwaXBlJztcbiAgLy8gV2hpbGUgdGhpcyBpcyBhbiBlbnVtIHdlIG5lZWQgdG8gdXNlLCBpbiB0aGUgdGVtcGxhdGVcbiAgLy8gaXQgaXMgY29udmVydGVkIHRvIGRheXMsIGluIHRoaXMgY2FzZSAxMjBcbiAgY29uc3QgdGVzdFJldGVudGlvbiA9IFJldGVudGlvbkRheXMuRk9VUl9NT05USFM7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssIHByZXJlcXVpc2l0ZUlkKTtcblxuICBjb25zdCBwaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssIHBpcGVJZCwge1xuICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICBwaXBlTG9nUHJvcHM6IHtcbiAgICAgIHJldGVudGlvbjogdGVzdFJldGVudGlvblxuICAgIH1cbiAgfSk7XG5cbiAgQ2hlY2tQaXBlUmVzcG9uc2VQcm9wZXJ0aWVzKHBpcGVSZXNwb25zZSwgcHJlcmVxdWlzaXRlcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCAxKTtcbiAgQ2hlY2tQaXBlUmVzb3VyY2UodGVtcGxhdGUsIHBpcGVJZCwgcHJlcmVxdWlzaXRlSWQpO1xuICBDaGVja1BpcGVSb2xlKHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrTG9nR3JvdXAodGVtcGxhdGUpO1xuICBDaGVja1BpcGVMb2dDb25maWd1cmF0aW9uKHRlbXBsYXRlLCBwaXBlSWQpO1xuXG4gIC8vIExvb2sgZm9yIGFkZGl0aW9uYWwgcHJvcGVydHkgd2UgcGFzc2VkIGluIHBpcGVMb2dQcm9wc1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCB7XG4gICAgUmV0ZW50aW9uSW5EYXlzOiAxMjAsXG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBzb3VyY2UgaW4gQ2ZuUHJvcHMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLnNvdXJjZUFyblxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcHJvdmlkaW5nIHRhcmdldCBpbiBDZm5Qcm9wcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQudGFyZ2V0QXJuLFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gcHJvdmlkaW5nIGEgcm9sZUFybicsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgIHJvbGVBcm46IFwic29tZS1hcm5cIixcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBzb3VyY2UsIHRhcmdldCwgcm9sZUFybiwgb3IgZW5yaWNobWVudCcpO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGZvciBlcnJvciB3aGVuIHByb3ZpZGluZyBlbnJpY2htZW50JywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgZW5yaWNobWVudDogXCJmdW5jdGlvbkFyblwiLFxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50Jyk7XG59KTtcblxudGVzdCgnQ2hlY2sgZm9yIGVycm9yIHdoZW4gbG9nIGxldmVsIGFuZCBsb2cgY29uZmlndXJhdGlvbiBhcmUgYm90aCBwcm92aWRlZCcsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IENyZWF0ZVByZXJlcXVpc2l0ZXMoc3RhY2ssICdsb2ctbGV2ZWwtdGVzdCcpO1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5CdWlsZFBpcGUoc3RhY2ssICd0ZXN0LXBpcGUnLCB7XG4gICAgICBzb3VyY2U6IHByZXJlcXVpc2l0ZXMuc291cmNlLFxuICAgICAgdGFyZ2V0OiBwcmVyZXF1aXNpdGVzLnRhcmdldCxcbiAgICAgIGxvZ0xldmVsOiBkZWZhdWx0cy5QaXBlc0xvZ0xldmVsLkVSUk9SLFxuICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbjogeyBzb21lOiBcIm9iamVjdFwiIH0sXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgbG9nTGV2ZWwgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwaXBlTG9nUHJvcHMgYW5kIGxvZyBjb25maWd1cmF0aW9uIGFyZSBib3RoIHByb3ZpZGVkJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgcGlwZUxvZ1Byb3BzOiB7IGxvZ0dyb3VwTmFtZTogXCJhbnl2YWx1ZVwiIH0sXG4gICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICBsb2dDb25maWd1cmF0aW9uOiB7IHNvbWU6IFwib2JqZWN0XCIgfSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBwaXBlTG9nUHJvcHMgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBlbnJpY2htZW50RnVuY3Rpb24gYW5kIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgYXJlIGJvdGggcHJvdmlkZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByZXJlcXVpc2l0ZXMgPSBDcmVhdGVQcmVyZXF1aXNpdGVzKHN0YWNrLCAnbG9nLWxldmVsLXRlc3QnKTtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQnVpbGRQaXBlKHN0YWNrLCAndGVzdC1waXBlJywge1xuICAgICAgc291cmNlOiBwcmVyZXF1aXNpdGVzLnNvdXJjZSxcbiAgICAgIHRhcmdldDogcHJlcmVxdWlzaXRlcy50YXJnZXQsXG4gICAgICBlbnJpY2htZW50RnVuY3Rpb246IHsgcGxhY2U6IFwiaG9sZGVyXCIgfSBhcyB1bmtub3duIGFzIGxhbWJkYS5GdW5jdGlvbixcbiAgICAgIGVucmljaG1lbnRTdGF0ZU1hY2hpbmU6IHsgcGxhY2U6IFwiaG9sZGVyXCIgfSBhcyB1bmtub3duIGFzIHNmbi5TdGF0ZU1hY2hpbmVcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBPbmx5IG9uZSBvZiBlbnJpY2htZW50RnVuY3Rpb24gb3IgZW5yaWNobWVudFN0YXRlTWFjaGluZSBjYW4gYmUgcHJvdmlkZWQnKTtcbn0pO1xuXG50ZXN0KCdDaGVjayBmb3IgZXJyb3Igd2hlbiBwaXBlTG9nUHJvcHMgYW5kIGxvZyBsZXZlbCBpcyBzZXQgdG8gT0ZGJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcmVyZXF1aXNpdGVzID0gQ3JlYXRlUHJlcmVxdWlzaXRlcyhzdGFjaywgJ2xvZy1sZXZlbC10ZXN0Jyk7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkJ1aWxkUGlwZShzdGFjaywgJ3Rlc3QtcGlwZScsIHtcbiAgICAgIHNvdXJjZTogcHJlcmVxdWlzaXRlcy5zb3VyY2UsXG4gICAgICB0YXJnZXQ6IHByZXJlcXVpc2l0ZXMudGFyZ2V0LFxuICAgICAgbG9nTGV2ZWw6IGRlZmF1bHRzLlBpcGVzTG9nTGV2ZWwuT0ZGLFxuICAgICAgcGlwZUxvZ1Byb3BzOiB7IGxvZ0dyb3VwTmFtZTogXCJhbnl2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgcGlwZUxvZ1Byb3BzIGFuZCBsb2cgbGV2ZWwgT0ZGJyk7XG59KTtcblxudGVzdCgnVGVzdCBhbGwgb2YgQ2hlY2tQaXBlc1Byb3BzJywgKCkgPT4ge1xuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ2hlY2tQaXBlc1Byb3BzKHtcbiAgICAgIHBpcGVzUHJvcHM6IHsgc291cmNlOiBcInZhbHVlXCIgfSxcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRG8gbm90IHNldCBzb3VyY2UgaW4gcGlwZXNQcm9wcy4gSXQgaXMgc2V0IGJ5IHRoZSBjb25zdHJ1Y3QuXFxuJyk7XG5cbiAgY29uc3QgYXBwVHdvID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrUGlwZXNQcm9wcyh7XG4gICAgICBwaXBlc1Byb3BzOiB7IHRhcmdldDogXCJ2YWx1ZVwiIH0sXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwVHdvKS50b1Rocm93RXJyb3IoJ0RvIG5vdCBzZXQgdGFyZ2V0IGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0LlxcbicpO1xuXG59KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTaGFyZWQgc2V0dXAgZnVuY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbnRlcmZhY2UgUHJlcmVxdWlzaXRlcyB7XG4gIHNvdXJjZTogZGVmYXVsdHMuQ3JlYXRlU291cmNlUmVzcG9uc2UsXG4gIHRhcmdldDogZGVmYXVsdHMuQ3JlYXRlVGFyZ2V0UmVzcG9uc2UsXG59XG5cbmZ1bmN0aW9uIENyZWF0ZVByZXJlcXVpc2l0ZXMoc2NvcGU6IFN0YWNrLCBpZDogc3RyaW5nKTogUHJlcmVxdWlzaXRlcyB7XG4gIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc2NvcGUsIGAke2lkfS1zb3VyY2UtcXVldWVgLCB7fSk7XG4gIGNvbnN0IHNxc1NvdXJjZSA9IGRlZmF1bHRzLkNyZWF0ZVNxc1NvdXJjZShidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUpO1xuXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBidWlsZFN0YXRlTWFjaGluZShzY29wZSwgYCR7aWR9LXRhcmdldC1zdGF0ZS1tYWNoaW5lYCwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHNjb3BlLCBgJHtpZH0tc3RlcHNgKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHN0YXRlTWFjaGluZVRhcmdldCA9IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSwge1xuICAgIHN0ZXBGdW5jdGlvblN0YXRlTWFjaGluZVBhcmFtZXRlcnM6IHtcbiAgICAgIGludm9jYXRpb25UeXBlOiAnUkVRVUVTVF9SRVNQT05TRSdcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNvdXJjZTogc3FzU291cmNlLFxuICAgIHRhcmdldDogc3RhdGVNYWNoaW5lVGFyZ2V0XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2hhcmVkIGZ1bmN0aW9ucyB0aGF0IGNoZWNrIGRlZmF1bHQgc2V0dGluZ3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBDaGVja1BpcGVSZXNwb25zZVByb3BlcnRpZXMocGlwZVJlc3BvbnNlOiBkZWZhdWx0cy5CdWlsZFBpcGVzUmVzcG9uc2UsIHByZXJlcXVpc2l0ZXM6IFByZXJlcXVpc2l0ZXMpIHtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QocGlwZVJlc3BvbnNlLnBpcGUuc291cmNlKS50b0VxdWFsKHByZXJlcXVpc2l0ZXMuc291cmNlLnNvdXJjZUFybik7XG4gIGV4cGVjdChwaXBlUmVzcG9uc2UucGlwZS50YXJnZXQpLnRvRXF1YWwocHJlcmVxdWlzaXRlcy50YXJnZXQudGFyZ2V0QXJuKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlUm9sZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHBpcGVSZXNwb25zZS5waXBlUm9sZS5ub2RlKS50b0JlRGVmaW5lZCgpO1xufVxuXG5mdW5jdGlvbiBDaGVja1BpcGVSZXNvdXJjZSh0ZW1wbGF0ZTogVGVtcGxhdGUsXG4gIHBpcGVJZDogc3RyaW5nLFxuICBwcmVyZXF1aXNpdGVJZDogc3RyaW5nXG4pIHtcbiAgQ2hlY2tQaXBlU291cmNlQW5kVGFyZ2V0KHRlbXBsYXRlLCBwcmVyZXF1aXNpdGVJZCk7XG4gIENoZWNrUGlwZUxvZ0NvbmZpZ3VyYXRpb24odGVtcGxhdGUsIHBpcGVJZCk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZVNvdXJjZUFuZFRhcmdldCh0ZW1wbGF0ZTogVGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlBpcGVzOjpQaXBlJywge1xuICAgIFNvdXJjZToge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgJHtwcmVyZXF1aXNpdGVJZH1zb3VyY2VxdWV1ZS4qYCksXG4gICAgICAgIFwiQXJuXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFRhcmdldDoge1xuICAgICAgUmVmOiBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBTdGF0ZU1hY2hpbmUke3ByZXJlcXVpc2l0ZUlkfXRhcmdldHN0YXRlbWFjaGluZS4qYCksXG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIENoZWNrUGlwZUxvZ0NvbmZpZ3VyYXRpb24odGVtcGxhdGU6IFRlbXBsYXRlLCBwaXBlSWQ6IHN0cmluZykge1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UGlwZXM6OlBpcGUnLCB7XG4gICAgTG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgQ2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICBMb2dHcm91cEFybjoge1xuICAgICAgICAgIFwiRm46OkdldEF0dFwiOiBbXG4gICAgICAgICAgICBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKGBMb2dHcm91cCR7cGlwZUlkfS4qYCksXG4gICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gQ2hlY2tQaXBlUm9sZSh0ZW1wbGF0ZTogVGVtcGxhdGUsIHByZXJlcXVpc2l0ZUlkOiBzdHJpbmcpIHtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OklBTTo6Um9sZScsIHtcbiAgICBBc3N1bWVSb2xlUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBcInN0czpBc3N1bWVSb2xlXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUHJpbmNpcGFsOiB7XG4gICAgICAgICAgICBTZXJ2aWNlOiBcInBpcGVzLmFtYXpvbmF3cy5jb21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfSxcbiAgICBQb2xpY2llczogW1xuICAgICAge1xuICAgICAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICAgICAgICAgIFwic3FzOkRlbGV0ZU1lc3NhZ2VcIixcbiAgICAgICAgICAgICAgICBcInNxczpHZXRRdWV1ZUF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICAgICAgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgJHtwcmVyZXF1aXNpdGVJZH1zb3VyY2VxdWV1ZS4qYCksXG4gICAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgICAgICB9LFxuICAgICAgICBQb2xpY3lOYW1lOiBcInNvdXJjZVBvbGljeVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBY3Rpb246IFwic3RhdGVzOlN0YXJ0RXhlY3V0aW9uXCIsXG4gICAgICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgICAgICBSZXNvdXJjZToge1xuICAgICAgICAgICAgICAgIFJlZjogTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cChgU3RhdGVNYWNoaW5lJHtwcmVyZXF1aXNpdGVJZH10YXJnZXRzdGF0ZW1hY2hpbmUuKmApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFBvbGljeU5hbWU6IFwidGFyZ2V0UG9saWN5XCJcbiAgICAgIH1cbiAgICBdXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDaGVja0xvZ0dyb3VwKHRlbXBsYXRlOiBUZW1wbGF0ZSkge1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCB7XG4gICAgTG9nR3JvdXBOYW1lOiB7XG4gICAgICBcIkZuOjpKb2luXCI6IFtcbiAgICAgICAgXCJcIixcbiAgICAgICAgW1xuICAgICAgICAgIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJy9hd3MvdmVuZGVkbG9ncy9waXBlcy9jb25zdHJ1Y3RzJyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJGbjo6U2VsZWN0XCI6IFtcbiAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgTWF0Y2guYW55VmFsdWUoKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgXVxuICAgIH0sXG4gIH0pO1xufSJdfQ==
@@ -438,4 +438,4 @@ test('Confirm existingStateMachine disables all other state machine props', () =
438
438
  // Assertion
439
439
  expect(app4).toThrowError('ERROR - If existingStateMachine is provided, no other state machine props are allowed\n');
440
440
  });
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbi1oZWxwZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0ZXAtZnVuY3Rpb24taGVscGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBeUM7QUFDekMsZ0NBQWdDO0FBQ2hDLHFEQUFxRDtBQUVyRCxnRUFBZ0U7QUFDaEUsb0ZBQW1FO0FBQ25FLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsaURBQWlEO0FBQ2pELHVEQUFrRDtBQUVsRCxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixzQkFBc0I7SUFDdEIsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7UUFDMUYsaUJBQWlCLEVBQUU7WUFDakIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQzVFLGdCQUFnQixFQUFFLGdCQUFnQjtTQUNuQztLQUNGLENBQUMsQ0FBQztJQUNILFlBQVk7SUFDWixNQUFNLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxRQUFRLENBQUMscUJBQXFCLENBQUMsa0NBQWtDLEVBQUU7UUFDakUsZ0JBQWdCLEVBQUUsZ0JBQWdCO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtJQUM5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U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsWUFBWTtJQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMseUZBQXlGLENBQUMsQ0FBQztJQUVySCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDaEIsUUFBUSxDQUFDLHNCQUFzQixDQUFDO1lBQzlCLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFnQztZQUM3RixhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQWtDO1NBQzFGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUNGLFlBQVk7SUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLHlGQUF5RixDQUFDLENBQUM7QUFFdkgsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBTdGFjaywgQXdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2ZuVGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgYnVpbGRMb2dHcm91cCB9IGZyb20gJy4uL2xpYi9jbG91ZHdhdGNoLWxvZy1ncm91cC1oZWxwZXInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3LyBjdXN0b20gcHJvcGVydGllcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpLFxuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogJ215U3RhdGVNYWNoaW5lJ1xuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpMb2dzOjpMb2dHcm91cFwiLCAxKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZVwiLCB7XG4gICAgU3RhdGVNYWNoaW5lTmFtZTogXCJteVN0YXRlTWFjaGluZVwiXG4gIH0pO1xufSk7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3LyBsb2dnaW5nIGVuYWJsZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIExvZyBncm91cFxuICAvLyBjb25zdCBsb2dHcm91cCA9IG5ldyBMb2dHcm91cChzdGFjaywgJ215TG9nR3JvdXAnLCBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKHN0YWNrKSk7XG4gIGNvbnN0IGxvZ0dyb3VwID0gYnVpbGRMb2dHcm91cChzdGFjaywgJ1N0YXRlTWFjaGluZUxvZ0dyb3VwJyk7XG5cbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKSxcbiAgICAgIGxvZ3M6IHtcbiAgICAgICAgZGVzdGluYXRpb246IGxvZ0dyb3VwLFxuICAgICAgICBsZXZlbDogc2ZuLkxvZ0xldmVsLkZBVEFMXG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpMb2dzOjpMb2dHcm91cFwiLCAxKTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmVcIiwge1xuICAgIExvZ2dpbmdDb25maWd1cmF0aW9uOiB7XG4gICAgICBEZXN0aW5hdGlvbnM6IFt7XG4gICAgICAgIENsb3VkV2F0Y2hMb2dzTG9nR3JvdXA6IHtcbiAgICAgICAgICBMb2dHcm91cEFybjoge1xuICAgICAgICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgICAgICAgXCJTdGF0ZU1hY2hpbmVMb2dHcm91cDE1QjkxQkNCXCIsXG4gICAgICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dLFxuICAgICAgTGV2ZWw6ICdGQVRBTCdcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NoZWNrIGRlZmF1bHQgQ2xvdWR3YXRjaCBwZXJtaXNzaW9ucycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKVxuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpJQU06OlBvbGljeVwiLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7fSwgLy8gcmVwcmVzZW50cyBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGUgdGVzdCBsYW1iZGEgZnVuY3Rpb25cbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6R2V0TG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpVcGRhdGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkRlbGV0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6TGlzdExvZ0RlbGl2ZXJpZXNcIixcbiAgICAgICAgICAgIFwibG9nczpQdXRSZXNvdXJjZVBvbGljeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1wiLFxuICAgICAgICAgICAgXCJsb2dzOkRlc2NyaWJlTG9nR3JvdXBzXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiBcIipcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NoZWNrIFN0YXRlIE1hY2hpbmUgSUFNIFBvbGljeSB3aXRoIDIgTGFtYmRhIGZ1Y3Rpb25zIGluIFN0YXRlIE1hY2hpbmUgRGVmaW5pdGlvbicsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gU3RhdGUgTWFjaGluZSBkZWZpbml0aW9uXG4gIGNvbnN0IHRhc2tPbmUgPSBuZXcgc2ZuVGFza3MuTGFtYmRhSW52b2tlKHN0YWNrLCAndGFzay1vbmUnLCB7XG4gICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdmaXJzdC1mdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18yMF9YLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUlubGluZShgZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7cmV0dXJuO31gKVxuICAgIH0pLFxuICB9KTtcblxuICBjb25zdCB0YXNrVHdvID0gbmV3IHNmblRhc2tzLkxhbWJkYUludm9rZShzdGFjaywgJ3Rhc2stdHdvJywge1xuICAgIGxhbWJkYUZ1bmN0aW9uOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnc2Vjb25kLWZ1bmN0aW9uJywge1xuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tSW5saW5lKGBleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHtyZXR1cm47fWApXG4gICAgfSksXG4gIH0pO1xuXG4gIC8vIC8vIExhdW5jaCB0aGUgY29uc3RydWN0XG4gIGNvbnN0IHN0YXJ0U3RhdGUgPSBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZSh0YXNrT25lLm5leHQodGFza1R3bykpO1xuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogc3RhcnRTdGF0ZVxuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpJQU06OlBvbGljeVwiLCB7XG4gICAgUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpHZXRMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOlVwZGF0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVsZXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpMaXN0TG9nRGVsaXZlcmllc1wiLFxuICAgICAgICAgICAgXCJsb2dzOlB1dFJlc291cmNlUG9saWN5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzXCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFwiKlwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnQ2hlY2sgU3RhdGUgTWFjaGluZSBJQU0gUG9saWN5IHdpdGggUzMgQVBJIGNhbGwgaW4gU3RhdGUgTWFjaGluZSBEZWZpbml0aW9uJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBzb3VyY2VCdWNrZXQgPSBuZXcgczMuQnVja2V0KHN0YWNrLCAnU291cmNlQnVja2V0Jywge1xuICAgIGV2ZW50QnJpZGdlRW5hYmxlZDogdHJ1ZSxcbiAgfSk7XG4gIGNvbnN0IGRlc3RpbmF0aW9uQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzdGFjaywgJ0Rlc3RpbmF0aW9uQnVja2V0Jywge30pO1xuXG4gIC8vIFN0YXRlIE1hY2hpbmUgZGVmaW5pdGlvblxuICBjb25zdCBzdGF0ZU1hY2hpbmVEZWZpbml0aW9uID0gbmV3IHNmblRhc2tzLkNhbGxBd3NTZXJ2aWNlKHN0YWNrLCAnQ29weSBTMyBvYmplY3QnLCB7XG4gICAgc2VydmljZTogJ3MzJyxcbiAgICBhY3Rpb246ICdjb3B5T2JqZWN0JyxcbiAgICBpYW1SZXNvdXJjZXM6IFtcbiAgICAgIHNvdXJjZUJ1Y2tldC5idWNrZXRBcm4sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldC5idWNrZXRBcm4sXG4gICAgXSxcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBDb3B5U291cmNlOiBzZm4uSnNvblBhdGguZm9ybWF0KFxuICAgICAgICAne30ve30nLFxuICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuc291cmNlQnVja2V0TmFtZScpLFxuICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuc291cmNlT2JqZWN0S2V5JylcbiAgICAgICksXG4gICAgICBCdWNrZXQ6IGRlc3RpbmF0aW9uQnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBLZXk6IHNmbi5Kc29uUGF0aC5mb3JtYXQoXG4gICAgICAgICd7fS97fScsXG4gICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5kZXN0aW5hdGlvbkZvbGRlcicpLFxuICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuc291cmNlT2JqZWN0S2V5JylcbiAgICAgICksXG4gICAgfSxcbiAgICByZXN1bHRQYXRoOiBzZm4uSnNvblBhdGguRElTQ0FSRCxcbiAgfSk7XG5cbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IHNmbi5EZWZpbml0aW9uQm9keS5mcm9tQ2hhaW5hYmxlKHN0YXRlTWFjaGluZURlZmluaXRpb24pXG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OklBTTo6UG9saWN5XCIsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwiczM6Y29weU9iamVjdFwiLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICAgICB7fSwgIC8vIFBsYWNlaG9sZGVycyBmb3Igc291cmNlIGFuZCBkZXN0aW5hdGlvbiBidWNrZXRzIHdpdGggc3RhY2sgSUQgc3BlY2lmaWMgbmFtZXNcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogW1xuICAgICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6R2V0TG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpVcGRhdGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkRlbGV0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6TGlzdExvZ0RlbGl2ZXJpZXNcIixcbiAgICAgICAgICAgIFwibG9nczpQdXRSZXNvdXJjZVBvbGljeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1wiLFxuICAgICAgICAgICAgXCJsb2dzOkRlc2NyaWJlTG9nR3JvdXBzXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIEVmZmVjdDogXCJBbGxvd1wiLFxuICAgICAgICAgIFJlc291cmNlOiBcIipcIlxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdDb3VudCBTdGF0ZSBNYWNoaW5lIENXIEFsYXJtcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKVxuICAgIH1cbiAgfSk7XG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5jbG91ZFdhdGNoQWxhcm1zIS5sZW5ndGgpLnRvRXF1YWwoMyk7XG59KTtcblxudGVzdCgnQ29uZmlybSBDbG91ZFdhdGNoIEFsYXJtIFByZWZpeCBpcyB1c2VkJywgKCkgPT4ge1xuICBjb25zdCBjdXN0b21QcmVmaXggPSBcIlNvbWVUZXh0XCI7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICd0ZXN0JylcbiAgICB9LFxuICAgIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXg6IGN1c3RvbVByZWZpeFxuICB9KTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLmNsb3VkV2F0Y2hBbGFybXMhLmxlbmd0aCkudG9FcXVhbCgzKTtcbiAgLy8gZXhwZWN0KCkgY2hlY2tzIGxvb2sgZm9yIHByb3BlcnRpZXMsIG5vdCB0aGUgcmVzb3VyY2UgSUQsIHNvIHdlIG5lZWQgdG9cbiAgLy8gZXhwbG9pdCBrbm93bGVkZ2Ugb2YgdGhlIGludGVybmFscyBvZiB0ZW1wbGF0ZS4gVGhpcyBtYXkgYmUgYnJpdHRsZSxcbiAgLy8gdGFrZSBjYXJlIGluIHRoZSBmdXR1cmVcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoKHRlbXBsYXRlIGFzIGFueSkudGVtcGxhdGUuUmVzb3VyY2VzKTtcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAke2N1c3RvbVByZWZpeH1FeGVjdXRpb25gKTtcbiAgY29uc3QgYWxhcm1zID0ga2V5cy5maWx0ZXIoYWxhcm1OYW1lID0+IHJlZ2V4LnRlc3QoYWxhcm1OYW1lKSk7XG4gIGV4cGVjdChhbGFybXMubGVuZ3RoKS50b0VxdWFsKDMpO1xufSk7XG5cbnRlc3QoJ1NraXAgY3JlYXRpbmcgQ1cgYWxhcm1zJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpXG4gICAgfSxcbiAgICBjcmVhdGVDbG91ZFdhdGNoQWxhcm1zOiBmYWxzZVxuICB9KTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLmNsb3VkV2F0Y2hBbGFybXMpLm5vdC50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3aXRoIGN1c3RvbSByb2xlJywgKCkgPT4ge1xuICBjb25zdCBkZXNjcmlwdGlvblRleHQgPSAnQ3VzdG9tIHJvbGUgZm9yIFN0YXRlIE1hY2hpbmUnO1xuXG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgY3VzdG9tUm9sZSA9IG5ldyBpYW0uUm9sZShzdGFjaywgJ2N1c3RvbS1yb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdzdGF0ZXMuYW1hem9uYXdzLmNvbScpLFxuICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvblRleHQsXG4gICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgIEludm9rZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke0F3cy5QQVJUSVRJT059OnMzOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06KmBdLFxuICAgICAgICAgIGFjdGlvbnM6IFsnczM6TGlzdEJ1Y2tldCddXG4gICAgICAgIH0pXVxuICAgICAgfSlcbiAgICB9XG4gIH0pO1xuXG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICd0ZXN0JyksXG4gICAgICByb2xlOiBjdXN0b21Sb2xlXG4gICAgfVxuICB9KTtcblxuICAvLyBBc3NlcnRpb25cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoXCJBV1M6OklBTTo6Um9sZVwiLCAyKTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuXG4gIC8vIENvbmZpcm0gdGhlIGNvcnJlY3Qgcm9sZSBpcyBhc3NpZ25lZCB0byB0aGUgU3RhdGUgTWFjaGluZVxuICBjb25zdCBzdGF0ZU1hY2hpbmUgPSB0ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKFwiQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmVcIik7XG4gIGNvbnN0IHJvbGVBcm4gPSBzdGF0ZU1hY2hpbmUuU3RhdGVNYWNoaW5lMkUwMUEzQTUuUHJvcGVydGllcy5Sb2xlQXJuO1xuICBleHBlY3Qocm9sZUFybltcIkZuOjpHZXRBdHRcIl0pLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyb2xlQXJuW1wiRm46OkdldEF0dFwiXVswXSkudG9FcXVhbCgnY3VzdG9tcm9sZTJFMDlCMzAxJyk7XG59KTtcblxudGVzdCgnQ29uZmlybSBmb3JtYXQgb2YgbmFtZScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2sodW5kZWZpbmVkLCAndGVzdHN0YWNrJyk7XG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6ICdteVN0YXRlTWFjaGluZScsXG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpLFxuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZVwiLCB7XG4gICAgU3RhdGVNYWNoaW5lTmFtZTogXCJteVN0YXRlTWFjaGluZVwiXG4gIH0pO1xuXG4gIC8vIFBlcmZvcm0gc29tZSBmYW5jeSBzdHVmZiB0byBleGFtaW5lIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIExvZ0dyb3VwTmFtZVxuICBjb25zdCBsb2dHcm91cCA9IHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OkxvZ3M6OkxvZ0dyb3VwXCIpO1xuICBjb25zdCBsb2dOYW1lID0gbG9nR3JvdXAuU3RhdGVNYWNoaW5lTG9nR3JvdXAxNUI5MUJDQi5Qcm9wZXJ0aWVzLkxvZ0dyb3VwTmFtZTtcblxuICBleHBlY3QobG9nTmFtZVsnRm46OkpvaW4nXSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGxvZ05hbWVbJ0ZuOjpKb2luJ10ubGVuZ3RoKS50b0VxdWFsKDIpO1xuICBleHBlY3QobG9nTmFtZVsnRm46OkpvaW4nXVsxXVsxXVsnRm46OlNlbGVjdCddWzFdWydGbjo6U3BsaXQnXVsxXS5SZWYpLnRvRXF1YWwoXCJBV1M6OlN0YWNrSWRcIik7XG59KTtcblxudGVzdCgnQ29uZmlybSBmb3JtYXQgb2YgbmFtZSB3aXRoIElEIHByb3ZpZGVkJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayh1bmRlZmluZWQsICd0ZXN0c3RhY2snKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd6eHonLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICd0ZXN0JyksXG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lXCIsIHt9KTtcblxuICAvLyBQZXJmb3JtIHNvbWUgZmFuY3kgc3R1ZmYgdG8gZXhhbWluZSB0aGUgc3BlY2lmaWNzIG9mIHRoZSBMb2dHcm91cE5hbWVcbiAgY29uc3QgbG9nR3JvdXAgPSB0ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKFwiQVdTOjpMb2dzOjpMb2dHcm91cFwiKTtcbiAgY29uc3QgbG9nTmFtZSA9IGxvZ0dyb3VwLlN0YXRlTWFjaGluZUxvZ0dyb3Vwenh6OThDMjhCRjguUHJvcGVydGllcy5Mb2dHcm91cE5hbWU7XG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddWzFdWzBdLmluY2x1ZGVzKCd6eHonKSkudG9CZVRydXRoeSgpO1xuXG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QobG9nTmFtZVsnRm46OkpvaW4nXS5sZW5ndGgpLnRvRXF1YWwoMik7XG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddWzFdWzFdWydGbjo6U2VsZWN0J11bMV1bJ0ZuOjpTcGxpdCddWzFdLlJlZikudG9FcXVhbChcIkFXUzo6U3RhY2tJZFwiKTtcbn0pO1xuXG50ZXN0KCdtdWx0aXBsZSBzdGF0ZSBtYWNoaW5lcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2sodW5kZWZpbmVkLCAndGVzdHN0YWNrJyk7XG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCAnb25lJywge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiAnbXlTdGF0ZU1hY2hpbmVPbmUnLFxuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3NtT25lJyksXG4gICAgfSxcbiAgICBjbG91ZFdhdGNoQWxhcm1zUHJlZml4OiAnb25lJ1xuICB9KTtcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZVR3byA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCAndHdvJywge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiAnbXlTdGF0ZU1hY2hpbmVUd28nLFxuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3NtVHdvJyksXG4gICAgfSxcbiAgICBjbG91ZFdhdGNoQWxhcm1zUHJlZml4OiAndHdvJ1xuICB9KTtcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZVRocmVlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogJ215U3RhdGVNYWNoaW5lVGhyZWUnLFxuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3NtVGhyZWUnKSxcbiAgICB9LFxuICAgIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXg6ICd0aHJlZSdcbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlVHdvLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2VUaHJlZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnQ29uZmlybSBjbG91ZFdhdGNoQWxhcm1zUHJlZml4IHJlcXVpcmVzIGNyZWF0ZUNsb3VkV2F0Y2hBbGFybXMnLCAoKSA9PiB7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrU3RhdGVNYWNoaW5lUHJvcHMoe1xuICAgICAgY3JlYXRlQ2xvdWRXYXRjaEFsYXJtczogZmFsc2UsXG4gICAgICBjbG91ZFdhdGNoQWxhcm1zUHJlZml4OiAncHJlZml4J1xuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFcnJvciAtIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXggaXMgaW52YWxpZCB3aGVuIGNyZWF0ZUNsb3VkV2F0Y2hBbGFybXMgaXMgZmFsc2VcXG4nKTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIGV4aXN0aW5nU3RhdGVNYWNoaW5lIGRpc2FibGVzIGFsbCBvdGhlciBzdGF0ZSBtYWNoaW5lIHByb3BzJywgKCkgPT4ge1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1N0YXRlTWFjaGluZVByb3BzKHtcbiAgICAgIGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqOiB7IHByZXRlbmQ6IFwiSSdtIEEgU3RhdGUgTWFjaGluZSA6LSlcIn0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lLFxuICAgICAgY2xvdWRXYXRjaEFsYXJtc1ByZWZpeDogJ3ByZWZpeCdcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHApLnRvVGhyb3dFcnJvcignRVJST1IgLSBJZiBleGlzdGluZ1N0YXRlTWFjaGluZSBpcyBwcm92aWRlZCwgbm8gb3RoZXIgc3RhdGUgbWFjaGluZSBwcm9wcyBhcmUgYWxsb3dlZFxcbicpO1xuXG4gIGNvbnN0IGFwcDIgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ2hlY2tTdGF0ZU1hY2hpbmVQcm9wcyh7XG4gICAgICBleGlzdGluZ1N0YXRlTWFjaGluZU9iajogeyBwcmV0ZW5kOiBcIkknbSBBIFN0YXRlIE1hY2hpbmUgOi0pXCJ9IGFzIHVua25vd24gYXMgc2ZuLlN0YXRlTWFjaGluZSxcbiAgICAgIHN0YXRlTWFjaGluZVByb3BzOiB7IHByZXRlbmQ6IFwiSSdtIFN0YXRlIE1hY2hpbmUgUHJvcHMgOi0pXCJ9IGFzIHVua25vd24gYXMgc2ZuLlN0YXRlTWFjaGluZVByb3BzLFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcDIpLnRvVGhyb3dFcnJvcignRVJST1IgLSBJZiBleGlzdGluZ1N0YXRlTWFjaGluZSBpcyBwcm92aWRlZCwgbm8gb3RoZXIgc3RhdGUgbWFjaGluZSBwcm9wcyBhcmUgYWxsb3dlZFxcbicpO1xuXG4gIGNvbnN0IGFwcDMgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ2hlY2tTdGF0ZU1hY2hpbmVQcm9wcyh7XG4gICAgICBleGlzdGluZ1N0YXRlTWFjaGluZU9iajogeyBwcmV0ZW5kOiBcIkknbSBBIFN0YXRlIE1hY2hpbmUgOi0pXCJ9IGFzIHVua25vd24gYXMgc2ZuLlN0YXRlTWFjaGluZSxcbiAgICAgIGNyZWF0ZUNsb3VkV2F0Y2hBbGFybXM6IGZhbHNlXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwMykudG9UaHJvd0Vycm9yKCdFUlJPUiAtIElmIGV4aXN0aW5nU3RhdGVNYWNoaW5lIGlzIHByb3ZpZGVkLCBubyBvdGhlciBzdGF0ZSBtYWNoaW5lIHByb3BzIGFyZSBhbGxvd2VkXFxuJyk7XG5cbiAgY29uc3QgYXBwNCA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1N0YXRlTWFjaGluZVByb3BzKHtcbiAgICAgIGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqOiB7IHByZXRlbmQ6IFwiSSdtIEEgU3RhdGUgTWFjaGluZSA6LSlcIn0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lLFxuICAgICAgbG9nR3JvdXBQcm9wczogeyBwcmV0ZW5kOiBcIkknbSBTdGF0ZSBNYWNoaW5lIFByb3BzIDotKVwifSBhcyB1bmtub3duIGFzIGxvZ3MuTG9nR3JvdXBQcm9wcyxcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHA0KS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gSWYgZXhpc3RpbmdTdGF0ZU1hY2hpbmUgaXMgcHJvdmlkZWQsIG5vIG90aGVyIHN0YXRlIG1hY2hpbmUgcHJvcHMgYXJlIGFsbG93ZWRcXG4nKTtcblxufSk7XG4iXX0=
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbi1oZWxwZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0ZXAtZnVuY3Rpb24taGVscGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBeUM7QUFDekMsZ0NBQWdDO0FBQ2hDLHFEQUFxRDtBQUVyRCxnRUFBZ0U7QUFDaEUsb0ZBQW1FO0FBQ25FLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsaURBQWlEO0FBQ2pELHVEQUFrRDtBQUVsRCxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixzQkFBc0I7SUFDdEIsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7UUFDMUYsaUJBQWlCLEVBQUU7WUFDakIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQzVFLGdCQUFnQixFQUFFLGdCQUFnQjtTQUNuQztLQUNGLENBQUMsQ0FBQztJQUNILFlBQVk7SUFDWixNQUFNLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxRQUFRLENBQUMscUJBQXFCLENBQUMsa0NBQWtDLEVBQUU7UUFDakUsZ0JBQWdCLEVBQUUsZ0JBQWdCO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtJQUM5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U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsWUFBWTtJQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMseUZBQXlGLENBQUMsQ0FBQztJQUVySCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7UUFDaEIsUUFBUSxDQUFDLHNCQUFzQixDQUFDO1lBQzlCLHVCQUF1QixFQUFFLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFnQztZQUM3RixhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQWtDO1NBQzFGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUNGLFlBQVk7SUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLHlGQUF5RixDQUFDLENBQUM7QUFFdkgsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBTdGFjaywgQXdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2ZuVGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgYnVpbGRMb2dHcm91cCB9IGZyb20gJy4uL2xpYi9jbG91ZHdhdGNoLWxvZy1ncm91cC1oZWxwZXInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnYXdzLWNkay1saWIvYXNzZXJ0aW9ucyc7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3LyBjdXN0b20gcHJvcGVydGllcycsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpLFxuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogJ215U3RhdGVNYWNoaW5lJ1xuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpMb2dzOjpMb2dHcm91cFwiLCAxKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZVwiLCB7XG4gICAgU3RhdGVNYWNoaW5lTmFtZTogXCJteVN0YXRlTWFjaGluZVwiXG4gIH0pO1xufSk7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3LyBsb2dnaW5nIGVuYWJsZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIExvZyBncm91cFxuICAvLyBjb25zdCBsb2dHcm91cCA9IG5ldyBMb2dHcm91cChzdGFjaywgJ215TG9nR3JvdXAnLCBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKHN0YWNrKSk7XG4gIGNvbnN0IGxvZ0dyb3VwID0gYnVpbGRMb2dHcm91cChzdGFjaywgJ1N0YXRlTWFjaGluZUxvZ0dyb3VwJyk7XG5cbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKSxcbiAgICAgIGxvZ3M6IHtcbiAgICAgICAgZGVzdGluYXRpb246IGxvZ0dyb3VwLFxuICAgICAgICBsZXZlbDogc2ZuLkxvZ0xldmVsLkZBVEFMXG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFwiQVdTOjpMb2dzOjpMb2dHcm91cFwiLCAxKTtcblxuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZVwiLCB7XG4gICAgTG9nZ2luZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIERlc3RpbmF0aW9uczogW3tcbiAgICAgICAgQ2xvdWRXYXRjaExvZ3NMb2dHcm91cDoge1xuICAgICAgICAgIExvZ0dyb3VwQXJuOiB7XG4gICAgICAgICAgICBcIkZuOjpHZXRBdHRcIjogW1xuICAgICAgICAgICAgICBcIlN0YXRlTWFjaGluZUxvZ0dyb3VwMTVCOTFCQ0JcIixcbiAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0sXG4gICAgICBMZXZlbDogJ0ZBVEFMJ1xuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnQ2hlY2sgZGVmYXVsdCBDbG91ZHdhdGNoIHBlcm1pc3Npb25zJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpXG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OklBTTo6UG9saWN5XCIsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHt9LCAvLyByZXByZXNlbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIHRoZSB0ZXN0IGxhbWJkYSBmdW5jdGlvblxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpHZXRMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOlVwZGF0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVsZXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpMaXN0TG9nRGVsaXZlcmllc1wiLFxuICAgICAgICAgICAgXCJsb2dzOlB1dFJlc291cmNlUG9saWN5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzXCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFwiKlwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBWZXJzaW9uOiBcIjIwMTItMTAtMTdcIlxuICAgIH1cbiAgfSk7XG59KTtcblxudGVzdCgnQ2hlY2sgU3RhdGUgTWFjaGluZSBJQU0gUG9saWN5IHdpdGggMiBMYW1iZGEgZnVjdGlvbnMgaW4gU3RhdGUgTWFjaGluZSBEZWZpbml0aW9uJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAvLyBTdGF0ZSBNYWNoaW5lIGRlZmluaXRpb25cbiAgY29uc3QgdGFza09uZSA9IG5ldyBzZm5UYXNrcy5MYW1iZGFJbnZva2Uoc3RhY2ssICd0YXNrLW9uZScsIHtcbiAgICBsYW1iZGFGdW5jdGlvbjogbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ2ZpcnN0LWZ1bmN0aW9uJywge1xuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tSW5saW5lKGBleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHtyZXR1cm47fWApXG4gICAgfSksXG4gIH0pO1xuXG4gIGNvbnN0IHRhc2tUd28gPSBuZXcgc2ZuVGFza3MuTGFtYmRhSW52b2tlKHN0YWNrLCAndGFzay10d28nLCB7XG4gICAgbGFtYmRhRnVuY3Rpb246IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdzZWNvbmQtZnVuY3Rpb24nLCB7XG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21JbmxpbmUoYGV4cG9ydHMuaGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge3JldHVybjt9YClcbiAgICB9KSxcbiAgfSk7XG5cbiAgLy8gLy8gTGF1bmNoIHRoZSBjb25zdHJ1Y3RcbiAgY29uc3Qgc3RhcnRTdGF0ZSA9IHNmbi5EZWZpbml0aW9uQm9keS5mcm9tQ2hhaW5hYmxlKHRhc2tPbmUubmV4dCh0YXNrVHdvKSk7XG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBzdGFydFN0YXRlXG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OklBTTo6UG9saWN5XCIsIHtcbiAgICBQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge31cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge31cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246IFtcbiAgICAgICAgICAgIFwibG9nczpDcmVhdGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkdldExvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6VXBkYXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpEZWxldGVMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOkxpc3RMb2dEZWxpdmVyaWVzXCIsXG4gICAgICAgICAgICBcImxvZ3M6UHV0UmVzb3VyY2VQb2xpY3lcIixcbiAgICAgICAgICAgIFwibG9nczpEZXNjcmliZVJlc291cmNlUG9saWNpZXNcIixcbiAgICAgICAgICAgIFwibG9nczpEZXNjcmliZUxvZ0dyb3Vwc1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBFZmZlY3Q6IFwiQWxsb3dcIixcbiAgICAgICAgICBSZXNvdXJjZTogXCIqXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFZlcnNpb246IFwiMjAxMi0xMC0xN1wiXG4gICAgfVxuICB9KTtcbn0pO1xuXG50ZXN0KCdDaGVjayBTdGF0ZSBNYWNoaW5lIElBTSBQb2xpY3kgd2l0aCBTMyBBUEkgY2FsbCBpbiBTdGF0ZSBNYWNoaW5lIERlZmluaXRpb24nLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHNvdXJjZUJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc3RhY2ssICdTb3VyY2VCdWNrZXQnLCB7XG4gICAgZXZlbnRCcmlkZ2VFbmFibGVkOiB0cnVlLFxuICB9KTtcbiAgY29uc3QgZGVzdGluYXRpb25CdWNrZXQgPSBuZXcgczMuQnVja2V0KHN0YWNrLCAnRGVzdGluYXRpb25CdWNrZXQnLCB7fSk7XG5cbiAgLy8gU3RhdGUgTWFjaGluZSBkZWZpbml0aW9uXG4gIGNvbnN0IHN0YXRlTWFjaGluZURlZmluaXRpb24gPSBuZXcgc2ZuVGFza3MuQ2FsbEF3c1NlcnZpY2Uoc3RhY2ssICdDb3B5IFMzIG9iamVjdCcsIHtcbiAgICBzZXJ2aWNlOiAnczMnLFxuICAgIGFjdGlvbjogJ2NvcHlPYmplY3QnLFxuICAgIGlhbVJlc291cmNlczogW1xuICAgICAgc291cmNlQnVja2V0LmJ1Y2tldEFybixcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0LmJ1Y2tldEFybixcbiAgICBdLFxuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIENvcHlTb3VyY2U6IHNmbi5Kc29uUGF0aC5mb3JtYXQoXG4gICAgICAgICd7fS97fScsXG4gICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5zb3VyY2VCdWNrZXROYW1lJyksXG4gICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5zb3VyY2VPYmplY3RLZXknKVxuICAgICAgKSxcbiAgICAgIEJ1Y2tldDogZGVzdGluYXRpb25CdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIEtleTogc2ZuLkpzb25QYXRoLmZvcm1hdChcbiAgICAgICAgJ3t9L3t9JyxcbiAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmRlc3RpbmF0aW9uRm9sZGVyJyksXG4gICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5zb3VyY2VPYmplY3RLZXknKVxuICAgICAgKSxcbiAgICB9LFxuICAgIHJlc3VsdFBhdGg6IHNmbi5Kc29uUGF0aC5ESVNDQVJELFxuICB9KTtcblxuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogc2ZuLkRlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoc3RhdGVNYWNoaW5lRGVmaW5pdGlvbilcbiAgICB9XG4gIH0pO1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6SUFNOjpQb2xpY3lcIiwge1xuICAgIFBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogXCJzMzpjb3B5T2JqZWN0XCIsXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgICAgIHt9LCAgLy8gUGxhY2Vob2xkZXJzIGZvciBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGJ1Y2tldHMgd2l0aCBzdGFjayBJRCBzcGVjaWZpYyBuYW1lc1xuICAgICAgICAgICAge31cbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiBbXG4gICAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpHZXRMb2dEZWxpdmVyeVwiLFxuICAgICAgICAgICAgXCJsb2dzOlVwZGF0ZUxvZ0RlbGl2ZXJ5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVsZXRlTG9nRGVsaXZlcnlcIixcbiAgICAgICAgICAgIFwibG9nczpMaXN0TG9nRGVsaXZlcmllc1wiLFxuICAgICAgICAgICAgXCJsb2dzOlB1dFJlc291cmNlUG9saWN5XCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVSZXNvdXJjZVBvbGljaWVzXCIsXG4gICAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgRWZmZWN0OiBcIkFsbG93XCIsXG4gICAgICAgICAgUmVzb3VyY2U6IFwiKlwiXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgVmVyc2lvbjogXCIyMDEyLTEwLTE3XCJcbiAgICB9XG4gIH0pO1xufSk7XG5cbnRlc3QoJ0NvdW50IFN0YXRlIE1hY2hpbmUgQ1cgQWxhcm1zJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAndGVzdCcpXG4gICAgfVxuICB9KTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLmNsb3VkV2F0Y2hBbGFybXMhLmxlbmd0aCkudG9FcXVhbCgzKTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIENsb3VkV2F0Y2ggQWxhcm0gUHJlZml4IGlzIHVzZWQnLCAoKSA9PiB7XG4gIGNvbnN0IGN1c3RvbVByZWZpeCA9IFwiU29tZVRleHRcIjtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKVxuICAgIH0sXG4gICAgY2xvdWRXYXRjaEFsYXJtc1ByZWZpeDogY3VzdG9tUHJlZml4XG4gIH0pO1xuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UuY2xvdWRXYXRjaEFsYXJtcyEubGVuZ3RoKS50b0VxdWFsKDMpO1xuICAvLyBleHBlY3QoKSBjaGVja3MgbG9vayBmb3IgcHJvcGVydGllcywgbm90IHRoZSByZXNvdXJjZSBJRCwgc28gd2UgbmVlZCB0b1xuICAvLyBleHBsb2l0IGtub3dsZWRnZSBvZiB0aGUgaW50ZXJuYWxzIG9mIHRlbXBsYXRlLiBUaGlzIG1heSBiZSBicml0dGxlLFxuICAvLyB0YWtlIGNhcmUgaW4gdGhlIGZ1dHVyZVxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cygodGVtcGxhdGUgYXMgYW55KS50ZW1wbGF0ZS5SZXNvdXJjZXMpO1xuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCR7Y3VzdG9tUHJlZml4fUV4ZWN1dGlvbmApO1xuICBjb25zdCBhbGFybXMgPSBrZXlzLmZpbHRlcihhbGFybU5hbWUgPT4gcmVnZXgudGVzdChhbGFybU5hbWUpKTtcbiAgZXhwZWN0KGFsYXJtcy5sZW5ndGgpLnRvRXF1YWwoMyk7XG59KTtcblxudGVzdCgnU2tpcCBjcmVhdGluZyBDVyBhbGFybXMnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEJ1aWxkIHN0YXRlIG1hY2hpbmVcbiAgY29uc3QgYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkU3RhdGVNYWNoaW5lKHN0YWNrLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICd0ZXN0JylcbiAgICB9LFxuICAgIGNyZWF0ZUNsb3VkV2F0Y2hBbGFybXM6IGZhbHNlXG4gIH0pO1xuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UuY2xvdWRXYXRjaEFsYXJtcykubm90LnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnVGVzdCBkZXBsb3ltZW50IHdpdGggY3VzdG9tIHJvbGUnLCAoKSA9PiB7XG4gIGNvbnN0IGRlc2NyaXB0aW9uVGV4dCA9ICdDdXN0b20gcm9sZSBmb3IgU3RhdGUgTWFjaGluZSc7XG5cbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBjdXN0b21Sb2xlID0gbmV3IGlhbS5Sb2xlKHN0YWNrLCAnY3VzdG9tLXJvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3N0YXRlcy5hbWF6b25hd3MuY29tJyksXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uVGV4dCxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgSW52b2tlUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW25ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7QXdzLlBBUlRJVElPTn06czM6JHtBd3MuUkVHSU9OfToke0F3cy5BQ0NPVU5UX0lEfToqYF0sXG4gICAgICAgICAgYWN0aW9uczogWydzMzpMaXN0QnVja2V0J11cbiAgICAgICAgfSldXG4gICAgICB9KVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKSxcbiAgICAgIHJvbGU6IGN1c3RvbVJvbGVcbiAgICB9XG4gIH0pO1xuXG4gIC8vIEFzc2VydGlvblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcyhcIkFXUzo6SUFNOjpSb2xlXCIsIDIpO1xuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZS5zdGF0ZU1hY2hpbmUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgLy8gQ29uZmlybSB0aGUgY29ycmVjdCByb2xlIGlzIGFzc2lnbmVkIHRvIHRoZSBTdGF0ZSBNYWNoaW5lXG4gIGNvbnN0IHN0YXRlTWFjaGluZSA9IHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZVwiKTtcbiAgY29uc3Qgcm9sZUFybiA9IHN0YXRlTWFjaGluZS5TdGF0ZU1hY2hpbmUyRTAxQTNBNS5Qcm9wZXJ0aWVzLlJvbGVBcm47XG4gIGV4cGVjdChyb2xlQXJuW1wiRm46OkdldEF0dFwiXSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJvbGVBcm5bXCJGbjo6R2V0QXR0XCJdWzBdKS50b0VxdWFsKCdjdXN0b21yb2xlMkUwOUIzMDEnKTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIGZvcm1hdCBvZiBuYW1lJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayh1bmRlZmluZWQsICd0ZXN0c3RhY2snKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssIGRlZmF1bHRzLmlkUGxhY2Vob2xkZXIsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogJ215U3RhdGVNYWNoaW5lJyxcbiAgICAgIGRlZmluaXRpb25Cb2R5OiBkZWZhdWx0cy5DcmVhdGVUZXN0U3RhdGVNYWNoaW5lRGVmaW5pdGlvbkJvZHkoc3RhY2ssICd0ZXN0JyksXG4gICAgfVxuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lXCIsIHtcbiAgICBTdGF0ZU1hY2hpbmVOYW1lOiBcIm15U3RhdGVNYWNoaW5lXCJcbiAgfSk7XG5cbiAgLy8gUGVyZm9ybSBzb21lIGZhbmN5IHN0dWZmIHRvIGV4YW1pbmUgdGhlIHNwZWNpZmljcyBvZiB0aGUgTG9nR3JvdXBOYW1lXG4gIGNvbnN0IGxvZ0dyb3VwID0gdGVtcGxhdGUuZmluZFJlc291cmNlcyhcIkFXUzo6TG9nczo6TG9nR3JvdXBcIik7XG4gIGNvbnN0IGxvZ05hbWUgPSBsb2dHcm91cC5TdGF0ZU1hY2hpbmVMb2dHcm91cDE1QjkxQkNCLlByb3BlcnRpZXMuTG9nR3JvdXBOYW1lO1xuXG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QobG9nTmFtZVsnRm46OkpvaW4nXS5sZW5ndGgpLnRvRXF1YWwoMik7XG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddWzFdWzFdWydGbjo6U2VsZWN0J11bMV1bJ0ZuOjpTcGxpdCddWzFdLlJlZikudG9FcXVhbChcIkFXUzo6U3RhY2tJZFwiKTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIGZvcm1hdCBvZiBuYW1lIHdpdGggSUQgcHJvdmlkZWQnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKHVuZGVmaW5lZCwgJ3Rlc3RzdGFjaycpO1xuICAvLyBCdWlsZCBzdGF0ZSBtYWNoaW5lXG4gIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgJ3p4eicsIHtcbiAgICBzdGF0ZU1hY2hpbmVQcm9wczoge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IGRlZmF1bHRzLkNyZWF0ZVRlc3RTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQm9keShzdGFjaywgJ3Rlc3QnKSxcbiAgICB9XG4gIH0pO1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmVcIiwge30pO1xuXG4gIC8vIFBlcmZvcm0gc29tZSBmYW5jeSBzdHVmZiB0byBleGFtaW5lIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIExvZ0dyb3VwTmFtZVxuICBjb25zdCBsb2dHcm91cCA9IHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OkxvZ3M6OkxvZ0dyb3VwXCIpO1xuICBjb25zdCBsb2dOYW1lID0gbG9nR3JvdXAuU3RhdGVNYWNoaW5lTG9nR3JvdXB6eHo5OEMyOEJGOC5Qcm9wZXJ0aWVzLkxvZ0dyb3VwTmFtZTtcbiAgZXhwZWN0KGxvZ05hbWVbJ0ZuOjpKb2luJ11bMV1bMF0uaW5jbHVkZXMoJ3p4eicpKS50b0JlVHJ1dGh5KCk7XG5cbiAgZXhwZWN0KGxvZ05hbWVbJ0ZuOjpKb2luJ10pLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChsb2dOYW1lWydGbjo6Sm9pbiddLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgZXhwZWN0KGxvZ05hbWVbJ0ZuOjpKb2luJ11bMV1bMV1bJ0ZuOjpTZWxlY3QnXVsxXVsnRm46OlNwbGl0J11bMV0uUmVmKS50b0VxdWFsKFwiQVdTOjpTdGFja0lkXCIpO1xufSk7XG5cbnRlc3QoJ211bHRpcGxlIHN0YXRlIG1hY2hpbmVzJywgKCkgPT4ge1xuICAvLyBTdGFja1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayh1bmRlZmluZWQsICd0ZXN0c3RhY2snKTtcbiAgLy8gQnVpbGQgc3RhdGUgbWFjaGluZVxuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICdvbmUnLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6ICdteVN0YXRlTWFjaGluZU9uZScsXG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAnc21PbmUnKSxcbiAgICB9LFxuICAgIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXg6ICdvbmUnXG4gIH0pO1xuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlVHdvID0gZGVmYXVsdHMuYnVpbGRTdGF0ZU1hY2hpbmUoc3RhY2ssICd0d28nLCB7XG4gICAgc3RhdGVNYWNoaW5lUHJvcHM6IHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6ICdteVN0YXRlTWFjaGluZVR3bycsXG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAnc21Ud28nKSxcbiAgICB9LFxuICAgIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXg6ICd0d28nXG4gIH0pO1xuICBjb25zdCBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlVGhyZWUgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZShzdGFjaywgZGVmYXVsdHMuaWRQbGFjZWhvbGRlciwge1xuICAgIHN0YXRlTWFjaGluZVByb3BzOiB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiAnbXlTdGF0ZU1hY2hpbmVUaHJlZScsXG4gICAgICBkZWZpbml0aW9uQm9keTogZGVmYXVsdHMuQ3JlYXRlVGVzdFN0YXRlTWFjaGluZURlZmluaXRpb25Cb2R5KHN0YWNrLCAnc21UaHJlZScpLFxuICAgIH0sXG4gICAgY2xvdWRXYXRjaEFsYXJtc1ByZWZpeDogJ3RocmVlJ1xuICB9KTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2VUd28uc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoYnVpbGRTdGF0ZU1hY2hpbmVSZXNwb25zZVRocmVlLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXggcmVxdWlyZXMgY3JlYXRlQ2xvdWRXYXRjaEFsYXJtcycsICgpID0+IHtcblxuICBjb25zdCBhcHAgPSAoKSA9PiB7XG4gICAgZGVmYXVsdHMuQ2hlY2tTdGF0ZU1hY2hpbmVQcm9wcyh7XG4gICAgICBjcmVhdGVDbG91ZFdhdGNoQWxhcm1zOiBmYWxzZSxcbiAgICAgIGNsb3VkV2F0Y2hBbGFybXNQcmVmaXg6ICdwcmVmaXgnXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwKS50b1Rocm93RXJyb3IoJ0Vycm9yIC0gY2xvdWRXYXRjaEFsYXJtc1ByZWZpeCBpcyBpbnZhbGlkIHdoZW4gY3JlYXRlQ2xvdWRXYXRjaEFsYXJtcyBpcyBmYWxzZVxcbicpO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gZXhpc3RpbmdTdGF0ZU1hY2hpbmUgZGlzYWJsZXMgYWxsIG90aGVyIHN0YXRlIG1hY2hpbmUgcHJvcHMnLCAoKSA9PiB7XG5cbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrU3RhdGVNYWNoaW5lUHJvcHMoe1xuICAgICAgZXhpc3RpbmdTdGF0ZU1hY2hpbmVPYmo6IHsgcHJldGVuZDogXCJJJ20gQSBTdGF0ZSBNYWNoaW5lIDotKVwifSBhcyB1bmtub3duIGFzIHNmbi5TdGF0ZU1hY2hpbmUsXG4gICAgICBjbG91ZFdhdGNoQWxhcm1zUHJlZml4OiAncHJlZml4J1xuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvd0Vycm9yKCdFUlJPUiAtIElmIGV4aXN0aW5nU3RhdGVNYWNoaW5lIGlzIHByb3ZpZGVkLCBubyBvdGhlciBzdGF0ZSBtYWNoaW5lIHByb3BzIGFyZSBhbGxvd2VkXFxuJyk7XG5cbiAgY29uc3QgYXBwMiA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1N0YXRlTWFjaGluZVByb3BzKHtcbiAgICAgIGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqOiB7IHByZXRlbmQ6IFwiSSdtIEEgU3RhdGUgTWFjaGluZSA6LSlcIn0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lLFxuICAgICAgc3RhdGVNYWNoaW5lUHJvcHM6IHsgcHJldGVuZDogXCJJJ20gU3RhdGUgTWFjaGluZSBQcm9wcyA6LSlcIn0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lUHJvcHMsXG4gICAgfSk7XG4gIH07XG4gIC8vIEFzc2VydGlvblxuICBleHBlY3QoYXBwMikudG9UaHJvd0Vycm9yKCdFUlJPUiAtIElmIGV4aXN0aW5nU3RhdGVNYWNoaW5lIGlzIHByb3ZpZGVkLCBubyBvdGhlciBzdGF0ZSBtYWNoaW5lIHByb3BzIGFyZSBhbGxvd2VkXFxuJyk7XG5cbiAgY29uc3QgYXBwMyA9ICgpID0+IHtcbiAgICBkZWZhdWx0cy5DaGVja1N0YXRlTWFjaGluZVByb3BzKHtcbiAgICAgIGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqOiB7IHByZXRlbmQ6IFwiSSdtIEEgU3RhdGUgTWFjaGluZSA6LSlcIn0gYXMgdW5rbm93biBhcyBzZm4uU3RhdGVNYWNoaW5lLFxuICAgICAgY3JlYXRlQ2xvdWRXYXRjaEFsYXJtczogZmFsc2VcbiAgICB9KTtcbiAgfTtcbiAgLy8gQXNzZXJ0aW9uXG4gIGV4cGVjdChhcHAzKS50b1Rocm93RXJyb3IoJ0VSUk9SIC0gSWYgZXhpc3RpbmdTdGF0ZU1hY2hpbmUgaXMgcHJvdmlkZWQsIG5vIG90aGVyIHN0YXRlIG1hY2hpbmUgcHJvcHMgYXJlIGFsbG93ZWRcXG4nKTtcblxuICBjb25zdCBhcHA0ID0gKCkgPT4ge1xuICAgIGRlZmF1bHRzLkNoZWNrU3RhdGVNYWNoaW5lUHJvcHMoe1xuICAgICAgZXhpc3RpbmdTdGF0ZU1hY2hpbmVPYmo6IHsgcHJldGVuZDogXCJJJ20gQSBTdGF0ZSBNYWNoaW5lIDotKVwifSBhcyB1bmtub3duIGFzIHNmbi5TdGF0ZU1hY2hpbmUsXG4gICAgICBsb2dHcm91cFByb3BzOiB7IHByZXRlbmQ6IFwiSSdtIFN0YXRlIE1hY2hpbmUgUHJvcHMgOi0pXCJ9IGFzIHVua25vd24gYXMgbG9ncy5Mb2dHcm91cFByb3BzLFxuICAgIH0pO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcDQpLnRvVGhyb3dFcnJvcignRVJST1IgLSBJZiBleGlzdGluZ1N0YXRlTWFjaGluZSBpcyBwcm92aWRlZCwgbm8gb3RoZXIgc3RhdGUgbWFjaGluZSBwcm9wcyBhcmUgYWxsb3dlZFxcbicpO1xuXG59KTtcbiJdfQ==
@@ -51,3 +51,9 @@ export declare function CreateShortUniqueTestName(stub: string): string;
51
51
  * @param stack - The stack to suppress cfn nag lambda rules on
52
52
  */
53
53
  export declare function SuppressCfnNagLambdaWarnings(stack: Stack): void;
54
+ /**
55
+ * Used to assume explicit control over feature flags in integ-runner tests
56
+ *
57
+ * @param stack - The stack for the integration test
58
+ */
59
+ export declare function SetConsistentFeatureFlags(stack: Stack): void;