@pipeline-builder/api-core 5.2.6 → 5.2.7

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 (181) hide show
  1. package/lib/constants/ai-providers.js +1 -1
  2. package/lib/constants/http-status.js +1 -1
  3. package/lib/constants/index.js +1 -1
  4. package/lib/constants/time.js +1 -1
  5. package/lib/errors/app-errors.js +1 -1
  6. package/lib/errors/index.js +1 -1
  7. package/lib/helpers/access-helpers.d.ts +19 -0
  8. package/lib/helpers/access-helpers.js +24 -4
  9. package/lib/helpers/content-disposition.js +1 -1
  10. package/lib/helpers/crud-helpers.js +1 -1
  11. package/lib/helpers/index.d.ts +1 -1
  12. package/lib/helpers/index.js +2 -2
  13. package/lib/helpers/org-hierarchy-http.js +1 -1
  14. package/lib/helpers/org-hierarchy.js +1 -1
  15. package/lib/helpers/restore-helpers.js +1 -1
  16. package/lib/helpers/sse-helpers.js +13 -2
  17. package/lib/helpers/support-calendar.js +1 -1
  18. package/lib/index.js +1 -1
  19. package/lib/middleware/ask-provenance.js +1 -1
  20. package/lib/middleware/assurance.js +1 -1
  21. package/lib/middleware/auth.js +1 -1
  22. package/lib/middleware/deferred-quota-check.js +1 -1
  23. package/lib/middleware/ecosystem-guard.js +1 -1
  24. package/lib/middleware/index.js +1 -1
  25. package/lib/middleware/jwt-verify.js +1 -1
  26. package/lib/middleware/mongo-sanitize.js +1 -1
  27. package/lib/middleware/on-behalf.js +1 -1
  28. package/lib/middleware/permission-gates.js +1 -1
  29. package/lib/middleware/quota-exempt-routes.js +1 -1
  30. package/lib/middleware/revocation.js +1 -1
  31. package/lib/middleware/route-table.js +16 -1
  32. package/lib/middleware/service-tokens.js +1 -1
  33. package/lib/middleware/step-up.js +1 -1
  34. package/lib/middleware/system-org.d.ts +18 -5
  35. package/lib/middleware/system-org.js +19 -6
  36. package/lib/openapi/extend-zod.js +1 -1
  37. package/lib/openapi/index.js +1 -1
  38. package/lib/openapi/registry.js +1 -1
  39. package/lib/openapi/routes/ask-routes.js +1 -1
  40. package/lib/openapi/routes/billing-routes.js +1 -1
  41. package/lib/openapi/routes/image-registry-routes.js +1 -1
  42. package/lib/openapi/routes/index.js +1 -1
  43. package/lib/openapi/routes/message-routes.js +1 -1
  44. package/lib/openapi/routes/pipeline-routes.js +1 -1
  45. package/lib/openapi/routes/pipeline-template-routes.js +1 -1
  46. package/lib/openapi/routes/plugin-routes.js +1 -1
  47. package/lib/openapi/routes/quota-routes.js +1 -1
  48. package/lib/openapi/schema-registry.js +1 -1
  49. package/lib/routes/health.js +1 -1
  50. package/lib/routes/index.js +1 -1
  51. package/lib/services/ai-call-weight.js +1 -1
  52. package/lib/services/alert-delivery.js +1 -1
  53. package/lib/services/api-key-exchange.js +1 -1
  54. package/lib/services/audit-context.js +1 -1
  55. package/lib/services/audit-spool.js +1 -1
  56. package/lib/services/cache-service.js +1 -1
  57. package/lib/services/circuit-breaker.js +1 -1
  58. package/lib/services/compliance-client.js +1 -1
  59. package/lib/services/compliance-event-subscriber.js +1 -1
  60. package/lib/services/durable-event-bus.js +1 -1
  61. package/lib/services/ecosystem-notify-client.d.ts +7 -1
  62. package/lib/services/ecosystem-notify-client.js +9 -3
  63. package/lib/services/entity-events.js +1 -1
  64. package/lib/services/env-redis.js +1 -1
  65. package/lib/services/http-client.js +19 -3
  66. package/lib/services/index.d.ts +1 -1
  67. package/lib/services/index.js +2 -2
  68. package/lib/services/jwks-cache.js +1 -1
  69. package/lib/services/leader-lock.js +1 -1
  70. package/lib/services/notification-channels.js +1 -1
  71. package/lib/services/org-ai-client.js +1 -1
  72. package/lib/services/pagerduty-inbound.js +1 -1
  73. package/lib/services/pagerduty.js +1 -1
  74. package/lib/services/quota-increment-batcher.js +1 -1
  75. package/lib/services/quota.js +1 -1
  76. package/lib/services/remote-audit-client.js +1 -1
  77. package/lib/services/retry-forever.js +1 -1
  78. package/lib/services/retry-strategy.js +1 -1
  79. package/lib/services/s3-client.js +1 -1
  80. package/lib/services/scheduler.js +1 -1
  81. package/lib/services/service-boot.js +1 -1
  82. package/lib/services/service-keys.js +2 -2
  83. package/lib/services/sse-ticket-store.js +1 -1
  84. package/lib/services/system-notification.js +1 -1
  85. package/lib/services/token-revocation.js +1 -1
  86. package/lib/services/version-vuln-policy.d.ts +11 -0
  87. package/lib/services/version-vuln-policy.js +33 -7
  88. package/lib/types/ai-catalog.js +1 -1
  89. package/lib/types/ask-proposals.d.ts +23 -0
  90. package/lib/types/ask-proposals.js +29 -1
  91. package/lib/types/audit-events.js +1 -1
  92. package/lib/types/build-catalog.d.ts +65 -0
  93. package/lib/types/build-catalog.js +95 -1
  94. package/lib/types/catalog-metadata.js +1 -1
  95. package/lib/types/common.js +1 -1
  96. package/lib/types/compliance-exemption.js +1 -1
  97. package/lib/types/ecosystem-notifications.d.ts +9 -0
  98. package/lib/types/ecosystem-notifications.js +15 -6
  99. package/lib/types/ecosystem.d.ts +1 -6
  100. package/lib/types/ecosystem.js +18 -5
  101. package/lib/types/error-codes.js +1 -1
  102. package/lib/types/feature-flags.d.ts +17 -1
  103. package/lib/types/feature-flags.js +1 -1
  104. package/lib/types/http.js +1 -1
  105. package/lib/types/index.d.ts +3 -3
  106. package/lib/types/index.js +4 -4
  107. package/lib/types/metadata-keys.js +1 -1
  108. package/lib/types/permissions.d.ts +60 -13
  109. package/lib/types/permissions.js +63 -14
  110. package/lib/types/pipeline-template.js +1 -1
  111. package/lib/types/pipeline.js +1 -1
  112. package/lib/types/plugin-catalog.js +1 -1
  113. package/lib/types/plugin-health.js +1 -1
  114. package/lib/types/plugin-scan.d.ts +69 -0
  115. package/lib/types/plugin-scan.js +77 -1
  116. package/lib/types/quota-catalog.js +15 -2
  117. package/lib/types/quota-tiers.d.ts +27 -160
  118. package/lib/types/quota-tiers.js +47 -255
  119. package/lib/types/remote-audit-actions.d.ts +1 -1
  120. package/lib/types/remote-audit-actions.js +9 -1
  121. package/lib/types/reserved-tags.js +1 -1
  122. package/lib/types/tier-limits.d.ts +210 -0
  123. package/lib/types/tier-limits.js +254 -0
  124. package/lib/types/usage-projection.js +1 -1
  125. package/lib/types/visibility.js +1 -1
  126. package/lib/types/wire-vocabulary.d.ts +7 -0
  127. package/lib/types/wire-vocabulary.js +7 -1
  128. package/lib/utils/alias-resolver.js +1 -1
  129. package/lib/utils/api-key.js +1 -1
  130. package/lib/utils/audit.js +1 -1
  131. package/lib/utils/aws-scrub.js +1 -1
  132. package/lib/utils/compliance-attributes.js +1 -1
  133. package/lib/utils/concurrency-gate.d.ts +98 -0
  134. package/lib/utils/concurrency-gate.js +110 -0
  135. package/lib/utils/concurrency.js +1 -1
  136. package/lib/utils/crash-handlers.js +1 -1
  137. package/lib/utils/date.js +1 -1
  138. package/lib/utils/dsse.js +1 -1
  139. package/lib/utils/env.d.ts +11 -0
  140. package/lib/utils/env.js +14 -1
  141. package/lib/utils/headers.js +1 -1
  142. package/lib/utils/identity.js +1 -1
  143. package/lib/utils/index.d.ts +1 -0
  144. package/lib/utils/index.js +2 -1
  145. package/lib/utils/jwk.js +2 -2
  146. package/lib/utils/logger.js +1 -1
  147. package/lib/utils/metric-emitter.js +1 -1
  148. package/lib/utils/object.js +1 -1
  149. package/lib/utils/params.js +1 -1
  150. package/lib/utils/plugin-compliance.d.ts +9 -1
  151. package/lib/utils/plugin-compliance.js +1 -1
  152. package/lib/utils/proof-of-work.js +1 -1
  153. package/lib/utils/response.js +1 -1
  154. package/lib/utils/retention.js +1 -1
  155. package/lib/utils/safe-require.js +1 -1
  156. package/lib/utils/secret-encryption.js +1 -1
  157. package/lib/utils/secret-rotation.js +1 -1
  158. package/lib/utils/secure-compare.js +1 -1
  159. package/lib/utils/sensitive-patterns.js +1 -1
  160. package/lib/utils/service-registry.js +1 -1
  161. package/lib/utils/ssrf.js +1 -1
  162. package/lib/validation/ai-schemas.js +1 -1
  163. package/lib/validation/common-schemas.js +1 -1
  164. package/lib/validation/dockerfile-static.js +1 -1
  165. package/lib/validation/index.d.ts +1 -1
  166. package/lib/validation/index.js +2 -2
  167. package/lib/validation/message-schemas.d.ts +73 -0
  168. package/lib/validation/message-schemas.js +63 -2
  169. package/lib/validation/middleware.js +1 -1
  170. package/lib/validation/pipeline-schemas.js +1 -1
  171. package/lib/validation/pipeline-template-schemas.js +1 -1
  172. package/lib/validation/plugin-base-images.js +1 -1
  173. package/lib/validation/plugin-catalog-detect.js +1 -1
  174. package/lib/validation/plugin-catalog-metadata.js +1 -1
  175. package/lib/validation/plugin-heuristics.js +1 -1
  176. package/lib/validation/plugin-lint.js +1 -1
  177. package/lib/validation/plugin-name-confusable.js +1 -1
  178. package/lib/validation/plugin-schemas.js +1 -1
  179. package/lib/validation/plugin-spec-schema.js +1 -1
  180. package/lib/validation/plugin-template-contract.js +1 -1
  181. package/package.json +11 -4
package/lib/utils/ssrf.js CHANGED
@@ -299,4 +299,4 @@ function makeResponse(status, statusText, headers, body, redirected) {
299
299
  json: () => JSON.parse(body.toString('utf8')),
300
300
  };
301
301
  }
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zc3JmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxJQUFJLFlBQVksRUFBdUIsTUFBTSxPQUFPLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQztBQUUzQix5R0FBeUc7QUFDekcsTUFBTSxlQUFlLEdBQTZDO0lBQ2hFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQjtJQUNqQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVO0lBQzNCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQjtJQUN4QyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXO0lBQzdCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLG1EQUFtRDtJQUN4RSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVO0lBQzlCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLHdFQUF3RTtJQUMzRixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxhQUFhO0lBQ2hDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGtDQUFrQztJQUN2RCxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVO0lBQy9CLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGVBQWU7SUFDbkMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLEVBQUUsYUFBYTtJQUNuQyxDQUFDLGFB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SSxFQUFFLEdBQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBTTtLQUN0RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFNoYXJlZCBTU1JGIGd1YXJkIGZvciB1c2VyL3RlbmFudC1zdXBwbGllZCBvdXRib3VuZCBVUkxzICh3ZWJob29rIHRhcmdldHMsXG4gKiBjYWxsYmFja3MsIOKApikuIFByb21vdGVkIHRvIGFwaS1jb3JlIHNvIGV2ZXJ5IHNlcnZpY2UgdGhhdCBsZXRzIGFuIG9yZyBwb2ludFxuICogdGhlIHBsYXRmb3JtIGF0IGFuIGFyYml0cmFyeSBVUkwgZW5mb3JjZXMgdGhlIFNBTUUgZGVueWxpc3QgaW5zdGVhZCBvZiBlYWNoXG4gKiByZS1kZXJpdmluZyBpdCAodGhlIGNvbXBsaWFuY2Ugbm90aWZpZXIgYW5kIHRoZSBwbGF0Zm9ybSBhbGVydCByZWxheSBib3RoXG4gKiBjb25zdW1lIHRoaXMpLlxuICpcbiAqIFRoZSBndWFyZCByZXNvbHZlcyB0aGUgaG9zdCB1cCBmcm9udCBhbmQgcmVqZWN0cyBhbnkgYWRkcmVzcyB0aGF0IGlzIOKAlCBvclxuICogcmVzb2x2ZXMgdG8g4oCUIGEgbG9vcGJhY2sgLyBwcml2YXRlIC8gbGluay1sb2NhbCAvIHVuaXF1ZS1sb2NhbCAvIGNhcnJpZXItZ3JhZGVcbiAqIE5BVCAvIGNsb3VkLW1ldGFkYXRhIHJhbmdlLCBzbyBhIHRlbmFudCBjYW4ndCBhaW0gYSB3ZWJob29rIGF0XG4gKiBgMTY5LjI1NC4xNjkuMjU0YCBvciBhbiBpbi1jbHVzdGVyIHNlcnZpY2UuXG4gKlxuICogVFdPIFBPU1RVUkVTLCBPTkUgU1VSVklWT1IuIGBhc3NlcnRTYWZlVXJsYCBvbmx5ICp2YWxpZGF0ZXMqIGEgVVJMOiBpdFxuICogcmVzb2x2ZXMgdGhlIGhvc3QsIGNoZWNrcyB0aGUgYWRkcmVzc2VzIGFuZCB0aGVuIHRocm93cyB0aGUgaG9zdG5hbWUgYXdheS5cbiAqIEFueXRoaW5nIHRoYXQgZ29lcyBvbiB0byBgZmV0Y2godXJsKWAgcmUtcmVzb2x2ZXMgRE5TIGFuZCBjYW4gdGhlcmVmb3JlIGJlXG4gKiBwb2ludGVkIGF0IGEgcHJpdmF0ZSBhZGRyZXNzIGJldHdlZW4gdGhlIGNoZWNrIGFuZCB0aGUgY29ubmVjdCAoY2xhc3NpY1xuICogRE5TIHJlYmluZGluZykuIHtAbGluayBzYWZlRmV0Y2h9IGlzIHRoZSBwb3N0dXJlIHRoYXQgYWN0dWFsbHkgaG9sZHM6IGl0XG4gKiByZXNvbHZlcywgUElOUyB0aGUgdmV0dGVkIElQIGludG8gdGhlIHNvY2tldCdzIGBsb29rdXBgLCByZWZ1c2VzIHJlZGlyZWN0cyxcbiAqIGFuZCBjYXBzIGJvdGggdGhlIHJlc3BvbnNlIHNpemUgYW5kIHRoZSB3YWxsLWNsb2NrIHRpbWUuXG4gKlxuICogU286IHVzZSB7QGxpbmsgc2FmZUZldGNofSBmb3IgZXZlcnkgb3V0Ym91bmQgcmVxdWVzdCB0byBhIHVzZXIvdGVuYW50LXN1cHBsaWVkXG4gKiBVUkwuIGBhc3NlcnRTYWZlVXJsYCBpcyBmb3IgTk9OLUZFVENIIHZhbGlkYXRpb24gb25seSDigJQgcmVqZWN0aW5nIGEgYmFkIFVSTCBhdFxuICogY3JlYXRlL3VwZGF0ZSB0aW1lIGJlZm9yZSBpdCBpcyBldmVyIHN0b3JlZC4gTmV2ZXIgcGFpciBpdCB3aXRoIGBmZXRjaGAuXG4gKi9cblxuaW1wb3J0IHsgbG9va3VwIH0gZnJvbSAnZG5zL3Byb21pc2VzJztcbmltcG9ydCB7IHJlcXVlc3QgYXMgaHR0cFJlcXVlc3QgfSBmcm9tICdodHRwJztcbmltcG9ydCB7IHJlcXVlc3QgYXMgaHR0cHNSZXF1ZXN0LCB0eXBlIFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnaHR0cHMnO1xuaW1wb3J0IHsgaXNJUCB9IGZyb20gJ25ldCc7XG5cbi8qKiBJUHY0IHJhbmdlcyB0aGF0IGFyZSBOT1QgcHVibGljbHkgcm91dGFibGUgdW5pY2FzdDogW2ZpcnN0IG9jdGV0cyBhcyBhIDMyLWJpdCBpbnQsIHByZWZpeCBsZW5ndGhdLiAqL1xuY29uc3QgSVBWNF9OT05fR0xPQkFMOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFtzdHJpbmcsIG51bWJlcl0+ID0gW1xuICBbJzAuMC4wLjAnLCA4XSwgLy8gXCJ0aGlzIG5ldHdvcmtcIlxuICBbJzEwLjAuMC4wJywgOF0sIC8vIHByaXZhdGVcbiAgWycxMDAuNjQuMC4wJywgMTBdLCAvLyBjYXJyaWVyLWdyYWRlIE5BVFxuICBbJzEyNy4wLjAuMCcsIDhdLCAvLyBsb29wYmFja1xuICBbJzE2OS4yNTQuMC4wJywgMTZdLCAvLyBsaW5rLWxvY2FsLCBpbmNsLiAxNjkuMjU0LjE2OS4yNTQgY2xvdWQgbWV0YWRhdGFcbiAgWycxNzIuMTYuMC4wJywgMTJdLCAvLyBwcml2YXRlXG4gIFsnMTkyLjAuMC4wJywgMjRdLCAvLyBJRVRGIHByb3RvY29sIGFzc2lnbm1lbnRzIChpbmNsLiAxOTIuMC4wLjE5MiBtZXRhZGF0YSBvbiBzb21lIGNsb3VkcylcbiAgWycxOTIuMC4yLjAnLCAyNF0sIC8vIFRFU1QtTkVULTFcbiAgWycxOTIuODguOTkuMCcsIDI0XSwgLy8gNnRvNCByZWxheSBhbnljYXN0IChkZXByZWNhdGVkKVxuICBbJzE5Mi4xNjguMC4wJywgMTZdLCAvLyBwcml2YXRlXG4gIFsnMTk4LjE4LjAuMCcsIDE1XSwgLy8gYmVuY2htYXJraW5nXG4gIFsnMTk4LjUxLjEwMC4wJywgMjRdLCAvLyBURVNULU5FVC0yXG4gIFsnMjAzLjAuMTEzLjAnLCAyNF0sIC8vIFRFU1QtTkVULTNcbiAgWycyMjQuMC4wLjAnLCA0XSwgLy8gbXVsdGljYXN0XG4gIFsnMjQwLjAuMC4wJywgNF0sIC8vIHJlc2VydmVkLCBpbmNsLiAyNTUuMjU1LjI1NS4yNTUgYnJvYWRjYXN0XG5dO1xuXG5mdW5jdGlvbiBpcHY0VG9JbnQoaXA6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICBjb25zdCBtID0gaXAubWF0Y2goL14oXFxkezEsM30pXFwuKFxcZHsxLDN9KVxcLihcXGR7MSwzfSlcXC4oXFxkezEsM30pJC8pO1xuICBpZiAoIW0pIHJldHVybiBudWxsO1xuICBjb25zdCBvY3RldHMgPSBtLnNsaWNlKDEpLm1hcChOdW1iZXIpO1xuICBpZiAob2N0ZXRzLnNvbWUoKG8pID0+IG8gPiAyNTUpKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuICgob2N0ZXRzWzBdICogMjU2ICsgb2N0ZXRzWzFdKSAqIDI1NiArIG9jdGV0c1syXSkgKiAyNTYgKyBvY3RldHNbM107XG59XG5cbmNvbnN0IElQVjRfTk9OX0dMT0JBTF9JTlQgPSBJUFY0X05PTl9HTE9CQUwubWFwKChbYmFzZSwgYml0c10pID0+IFtpcHY0VG9JbnQoYmFzZSkhLCBiaXRzXSBhcyBjb25zdCk7XG5cbmZ1bmN0aW9uIGlzTm9uR2xvYmFsVjQobjogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiBJUFY0X05PTl9HTE9CQUxfSU5ULnNvbWUoKFtiYXNlLCBiaXRzXSkgPT4ge1xuICAgIGNvbnN0IHNpemUgPSAyICoqICgzMiAtIGJpdHMpO1xuICAgIHJldHVybiBuID49IGJhc2UgJiYgbiA8IGJhc2UgKyBzaXplO1xuICB9KTtcbn1cblxuLyoqIFBhcnNlIGFuIElQdjYgbGl0ZXJhbCBpbnRvIGl0cyBlaWdodCAxNi1iaXQgZ3JvdXBzIChudWxsIHdoZW4gbWFsZm9ybWVkKS4gKi9cbmZ1bmN0aW9uIHBhcnNlSXB2NihpcDogc3RyaW5nKTogbnVtYmVyW10gfCBudWxsIHtcbiAgbGV0IGFkZHIgPSBpcC5zcGxpdCgnJScpWzBdOyAvLyBkcm9wIGEgem9uZSBpZCAoZmU4MDo6MSVldGgwKVxuICAvLyBBbiBlbWJlZGRlZCBkb3R0ZWQgSVB2NCB0YWlsICg6OmZmZmY6MS4yLjMuNCwgNjQ6ZmY5Yjo6MS4yLjMuNCkg4oaSIHR3byBncm91cHMuXG4gIGNvbnN0IHRhaWwgPSBhZGRyLm1hdGNoKC8oXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30pJC8pO1xuICBpZiAodGFpbCkge1xuICAgIGNvbnN0IG4gPSBpcHY0VG9JbnQodGFpbFsxXSk7XG4gICAgaWYgKG4gPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIGFkZHIgPSBgJHthZGRyLnNsaWNlKDAsIC10YWlsWzFdLmxlbmd0aCl9JHtNYXRoLmZsb29yKG4gLyA2NTUzNikudG9TdHJpbmcoMTYpfTokeyhuICUgNjU1MzYpLnRvU3RyaW5nKDE2KX1gO1xuICB9XG4gIGNvbnN0IGhhbHZlcyA9IGFkZHIuc3BsaXQoJzo6Jyk7XG4gIGlmIChoYWx2ZXMubGVuZ3RoID4gMikgcmV0dXJuIG51bGw7XG4gIGNvbnN0IHBhcnNlID0gKHBhcnQ6IHN0cmluZyk6IG51bWJlcltdIHwgbnVsbCA9PiB7XG4gICAgaWYgKHBhcnQgPT09ICcnKSByZXR1cm4gW107XG4gICAgY29uc3QgZ3JvdXBzID0gcGFydC5zcGxpdCgnOicpO1xuICAgIGNvbnN0IG91dDogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGcgb2YgZ3JvdXBzKSB7XG4gICAgICBpZiAoIS9eWzAtOWEtZl17MSw0fSQvaS50ZXN0KGcpKSByZXR1cm4gbnVsbDtcbiAgICAgIG91dC5wdXNoKHBhcnNlSW50KGcsIDE2KSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH07XG4gIGNvbnN0IGhlYWQgPSBwYXJzZShoYWx2ZXNbMF0pO1xuICBjb25zdCByZXN0ID0gaGFsdmVzLmxlbmd0aCA9PT0gMiA/IHBhcnNlKGhhbHZlc1sxXSkgOiBbXTtcbiAgaWYgKCFoZWFkIHx8ICFyZXN0KSByZXR1cm4gbnVsbDtcbiAgaWYgKGhhbHZlcy5sZW5ndGggPT09IDEpIHJldHVybiBoZWFkLmxlbmd0aCA9PT0gOCA/IGhlYWQgOiBudWxsO1xuICBjb25zdCB6ZXJvcyA9IDggLSBoZWFkLmxlbmd0aCAtIHJlc3QubGVuZ3RoO1xuICBpZiAoemVyb3MgPCAxKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIFsuLi5oZWFkLCAuLi5uZXcgQXJyYXk8bnVtYmVyPih6ZXJvcykuZmlsbCgwKSwgLi4ucmVzdF07XG59XG5cbmNvbnN0IHY0RnJvbUdyb3VwcyA9IChoaTogbnVtYmVyLCBsbzogbnVtYmVyKTogbnVtYmVyID0+IGhpICogNjU1MzYgKyBsbztcblxuLyoqXG4gKiBUcnVlIGZvciBhbnkgYWRkcmVzcyB0aGF0IGlzIE5PVCBwdWJsaWNseSByb3V0YWJsZSB1bmljYXN0IOKAlCB0aGUgcmFuZ2VzIGFuXG4gKiBvdXRib3VuZCB0ZW5hbnQgd2ViaG9vayBtdXN0IG5ldmVyIHJlYWNoLlxuICpcbiAqIEFuIEFMTE9XTElTVCwgbm90IGEgZGVueWxpc3Q6IGFuIElQdjYgYWRkcmVzcyBpcyBhY2NlcHRhYmxlIG9ubHkgaW5zaWRlIHRoZVxuICogZ2xvYmFsLXVuaWNhc3QgYmxvY2sgYDIwMDA6Oi8zYCAoc28gbGluay1sb2NhbCBgZmU4MDo6LzEwYCwgc2l0ZS1sb2NhbFxuICogYGZlYzA6Oi8xMGAsIHVuaXF1ZS1sb2NhbCBgZmMwMDo6LzdgLCBtdWx0aWNhc3QsIGxvb3BiYWNrLCB1bnNwZWNpZmllZCBhbmRcbiAqIGV2ZXJ5IGZ1dHVyZSBzcGVjaWFsIHJhbmdlIGFyZSByZWZ1c2VkIGJ5IGRlZmF1bHQpLiBGb3JtYXRzIHRoYXQgRU1CRUQgYW5cbiAqIElQdjQgYWRkcmVzcyBhcmUgdW53cmFwcGVkIGFuZCBqdWRnZWQgYnkgdGhhdCBhZGRyZXNzIOKAlCBJUHY0LW1hcHBlZFxuICogYDo6ZmZmZjowOjAvOTZgIChkb3R0ZWQgb3IgaGV4KSwgTkFUNjQgYDY0OmZmOWI6Oi85NmAgYW5kIDZ0bzQgYDIwMDI6Oi8xNmAg4oCUXG4gKiBzbyBgOjpmZmZmOjdmMDA6MWAgb3IgYDIwMDI6YTlmZTphOWZlOjpgIGNhbid0IHNtdWdnbGUgbG9vcGJhY2sgb3IgdGhlXG4gKiBtZXRhZGF0YSBlbmRwb2ludCBwYXN0IHRoZSBjaGVjay4gQW55dGhpbmcgdW5wYXJzZWFibGUgaXMgcmVmdXNlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpdmF0ZUFkZHJlc3MoaXA6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBhZGRyID0gaXAucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCB2NCA9IGlwdjRUb0ludChhZGRyKTtcbiAgaWYgKHY0ICE9PSBudWxsKSByZXR1cm4gaXNOb25HbG9iYWxWNCh2NCk7XG4gIGlmICgvXlxcZHsxLDN9KFxcLlxcZHsxLDN9KXszfSQvLnRlc3QoYWRkcikpIHJldHVybiB0cnVlOyAvLyBvdXQtb2YtcmFuZ2Ugb2N0ZXRcblxuICBjb25zdCBnID0gcGFyc2VJcHY2KGFkZHIpO1xuICBpZiAoIWcpIHJldHVybiB0cnVlOyAvLyBub3QgYW4gYWRkcmVzcyB3ZSBjYW4gcmVhc29uIGFib3V0IOKGkiByZWZ1c2VcblxuICAvLyBJUHY0LW1hcHBlZCA6OmZmZmY6YS5iLmMuZFxuICBpZiAoZ1swXSA9PT0gMCAmJiBnWzFdID09PSAwICYmIGdbMl0gPT09IDAgJiYgZ1szXSA9PT0gMCAmJiBnWzRdID09PSAwICYmIGdbNV0gPT09IDB4ZmZmZikge1xuICAgIHJldHVybiBpc05vbkdsb2JhbFY0KHY0RnJvbUdyb3VwcyhnWzZdLCBnWzddKSk7XG4gIH1cbiAgLy8gTkFUNjQgd2VsbC1rbm93biBwcmVmaXggNjQ6ZmY5Yjo6Lzk2IOKAlCB0aGUgdGFyZ2V0IGlzIHRoZSBlbWJlZGRlZCBJUHY0LlxuICBpZiAoZ1swXSA9PT0gMHg2NCAmJiBnWzFdID09PSAweGZmOWIgJiYgZ1syXSA9PT0gMCAmJiBnWzNdID09PSAwICYmIGdbNF0gPT09IDAgJiYgZ1s1XSA9PT0gMCkge1xuICAgIHJldHVybiBpc05vbkdsb2JhbFY0KHY0RnJvbUdyb3VwcyhnWzZdLCBnWzddKSk7XG4gIH1cbiAgLy8gNnRvNCAyMDAyOlY0SEk6VjRMTzo6LzQ4IOKAlCB0aGUgdHVubmVsIGVuZHBvaW50IGlzIHRoZSBlbWJlZGRlZCBJUHY0LlxuICBpZiAoZ1swXSA9PT0gMHgyMDAyKSByZXR1cm4gaXNOb25HbG9iYWxWNCh2NEZyb21Hcm91cHMoZ1sxXSwgZ1syXSkpO1xuXG4gIC8vIE9ubHkgZ2xvYmFsIHVuaWNhc3QgMjAwMDo6LzMgZnJvbSBoZXJlIG9uLlxuICBpZiAoZ1swXSA8IDB4MjAwMCB8fCBnWzBdID4gMHgzZmZmKSByZXR1cm4gdHJ1ZTtcbiAgLy8g4oCmbWludXMgaXRzIHNwZWNpYWwtcHVycG9zZSBjYXJ2ZS1vdXRzOlxuICBpZiAoZ1swXSA9PT0gMHgyMDAxICYmIGdbMV0gPCAweDAyMDApIHJldHVybiB0cnVlOyAvLyAyMDAxOjovMjMgSUVURiBwcm90b2NvbCBhc3NpZ25tZW50cyAoVGVyZWRvLCBiZW5jaG1hcmtpbmcsIE9SQ0hJROKApilcbiAgaWYgKGdbMF0gPT09IDB4MjAwMSAmJiBnWzFdID09PSAweDBkYjgpIHJldHVybiB0cnVlOyAvLyAyMDAxOmRiODo6LzMyIGRvY3VtZW50YXRpb25cbiAgaWYgKGdbMF0gPT09IDB4M2ZmZiAmJiBnWzFdIDwgMHgxMDAwKSByZXR1cm4gdHJ1ZTsgLy8gM2ZmZjo6LzIwIGRvY3VtZW50YXRpb25cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIGFzc2VydFNhZmVVcmx9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWZlVXJsT3B0aW9ucyB7XG4gIC8qKiBBbGxvd2VkIFVSTCBwcm90b2NvbHMgKGRlZmF1bHQ6IGBbJ2h0dHBzOiddYCkuICovXG4gIHByb3RvY29scz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgRE5TLXJlc29sdmVkLCBTU1JGLXZldHRlZCB0YXJnZXQgdG8gY29ubmVjdCB0byBieSBQSU5ORUQgSVAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlubmVkVGFyZ2V0IHtcbiAgLyoqIE9yaWdpbmFsIGhvc3RuYW1lIOKAlCBwcmVzZXJ2ZWQgZm9yIHRoZSBIb3N0IGhlYWRlciBhbmQgVExTIFNOSS4gKi9cbiAgaG9zdDogc3RyaW5nO1xuICAvKiogVGhlIGV4YWN0IHZhbGlkYXRlZCBJUCB0aGUgc29ja2V0IG11c3QgY29ubmVjdCB0byAobm8gcmUtcmVzb2x1dGlvbikuICovXG4gIGFkZHJlc3M6IHN0cmluZztcbiAgZmFtaWx5OiBudW1iZXI7XG4gIHBvcnQ6IG51bWJlcjtcbiAgLyoqIGAnaHR0cHM6J2Agb3IgYCdodHRwOidgLiAqL1xuICBwcm90b2NvbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYW5kIHZldCBhbiBvdXRib3VuZCBVUkwsIHJldHVybmluZyB0aGUgcGlubmVkIHRhcmdldCB0byBjb25uZWN0IHRvLlxuICpcbiAqIFJlamVjdHMgYSBVUkwgdGhhdCBpcyBtYWxmb3JtZWQsIHVzZXMgYSBkaXNhbGxvd2VkIHByb3RvY29sLCBvciBwb2ludHMgYXQgYVxuICogcHJpdmF0ZS9sb29wYmFjay9saW5rLWxvY2FsL21ldGFkYXRhIGFkZHJlc3MgKGJ5IElQIGxpdGVyYWwgb3IgYnkgRE5TXG4gKiByZXNvbHV0aW9uKS4gUmVqZWN0cyBpZiBBTlkgcmVzb2x1dGlvbiBpcyBwcml2YXRlIChkZWZlbmNlIGluIGRlcHRoKSwgdGhlblxuICogcGlucyB0aGUgZmlyc3QgdmV0dGVkIGFkZHJlc3Mgc28gdGhlIGNvbm5lY3Rpb24gY2FuIG5ldmVyIHJlYWNoIGFuIGFkZHJlc3NcbiAqIHRoaXMgZnVuY3Rpb24gZGlkIG5vdCBhcHByb3ZlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVNhZmVUYXJnZXQocmF3VXJsOiBzdHJpbmcsIG9wdHM6IFNhZmVVcmxPcHRpb25zID0ge30pOiBQcm9taXNlPFBpbm5lZFRhcmdldD4ge1xuICBjb25zdCBwcm90b2NvbHMgPSBvcHRzLnByb3RvY29scyA/PyBbJ2h0dHBzOiddO1xuICBsZXQgdTogVVJMO1xuICB0cnkgeyB1ID0gbmV3IFVSTChyYXdVcmwpOyB9IGNhdGNoIHsgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHVybCcpOyB9XG4gIGlmICghcHJvdG9jb2xzLmluY2x1ZGVzKHUucHJvdG9jb2wpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1cmwgbXVzdCB1c2UgJHtwcm90b2NvbHMubWFwKChwKSA9PiBwLnJlcGxhY2UoLzokLywgJycpKS5qb2luKCcvJyl9YCk7XG4gIH1cbiAgY29uc3QgaG9zdCA9IHUuaG9zdG5hbWUucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgY29uc3QgcG9ydCA9IHUucG9ydCA/IE51bWJlcih1LnBvcnQpIDogKHUucHJvdG9jb2wgPT09ICdodHRwOicgPyA4MCA6IDQ0Myk7XG4gIGNvbnN0IGxpdGVyYWxGYW1pbHkgPSBpc0lQKGhvc3QpO1xuICBpZiAobGl0ZXJhbEZhbWlseSkge1xuICAgIGlmIChpc1ByaXZhdGVBZGRyZXNzKGhvc3QpKSB0aHJvdyBuZXcgRXJyb3IoJ3VybCB0YXJnZXRzIGEgcHJpdmF0ZSBhZGRyZXNzJyk7XG4gICAgcmV0dXJuIHsgaG9zdCwgYWRkcmVzczogaG9zdCwgZmFtaWx5OiBsaXRlcmFsRmFtaWx5LCBwb3J0LCBwcm90b2NvbDogdS5wcm90b2NvbCB9O1xuICB9XG4gIGxldCBhZGRyczogeyBhZGRyZXNzOiBzdHJpbmc7IGZhbWlseTogbnVtYmVyIH1bXTtcbiAgdHJ5IHsgYWRkcnMgPSBhd2FpdCBsb29rdXAoaG9zdCwgeyBhbGw6IHRydWUgfSk7IH0gY2F0Y2ggeyB0aHJvdyBuZXcgRXJyb3IoJ3VybCBob3N0IGRpZCBub3QgcmVzb2x2ZScpOyB9XG4gIGlmIChhZGRycy5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcigndXJsIGhvc3QgZGlkIG5vdCByZXNvbHZlJyk7XG4gIGlmIChhZGRycy5zb21lKChhKSA9PiBpc1ByaXZhdGVBZGRyZXNzKGEuYWRkcmVzcykpKSB0aHJvdyBuZXcgRXJyb3IoJ3VybCByZXNvbHZlcyB0byBhIHByaXZhdGUgYWRkcmVzcycpO1xuICByZXR1cm4geyBob3N0LCBhZGRyZXNzOiBhZGRyc1swXS5hZGRyZXNzLCBmYW1pbHk6IGFkZHJzWzBdLmZhbWlseSwgcG9ydCwgcHJvdG9jb2w6IHUucHJvdG9jb2wgfTtcbn1cblxuLyoqXG4gKiBWQUxJREFUSU9OIE9OTFkg4oCUIG5ldmVyIHBhaXIgdGhpcyB3aXRoIGEgYGZldGNoYC5cbiAqXG4gKiBSZXNvbHZlcyB0aGUgaG9zdCBhbmQgdGhyb3dzIHdoZW4gdGhlIFVSTCBpcyBtYWxmb3JtZWQsIHVzZXMgYSBkaXNhbGxvd2VkXG4gKiBwcm90b2NvbCwgb3IgcmVzb2x2ZXMgdG8gYSBwcml2YXRlL2xvb3BiYWNrL2xpbmstbG9jYWwvbWV0YWRhdGEgYWRkcmVzcy4gVXNlXG4gKiBpdCB0byByZWplY3QgYSBiYWQgVVJMIGF0IGNyZWF0ZS91cGRhdGUgdGltZSAoYmVmb3JlIGl0IGlzIHN0b3JlZCksIG9yIGluIGFueVxuICogb3RoZXIgcGxhY2Ugd2hlcmUgbm90aGluZyBpcyBhYm91dCB0byBjb25uZWN0LiBGb3IgYW4gYWN0dWFsIG91dGJvdW5kIHJlcXVlc3RcbiAqIHVzZSB7QGxpbmsgc2FmZUZldGNofSwgd2hpY2ggcGlucyB0aGUgYWRkcmVzcyBpdCB2ZXR0ZWQg4oCUIHZhbGlkYXRpbmcgaGVyZSBhbmRcbiAqIHRoZW4gbGV0dGluZyBgZmV0Y2hgIHJlLXJlc29sdmUgaXMgYSBETlMtcmViaW5kaW5nIFRPQ1RPVSBob2xlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0U2FmZVVybChyYXdVcmw6IHN0cmluZywgb3B0czogU2FmZVVybE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCByZXNvbHZlU2FmZVRhcmdldChyYXdVcmwsIG9wdHMpO1xufVxuXG4vKiogRGVmYXVsdCB3YWxsLWNsb2NrIGNhcCBmb3Igb25lIHtAbGluayBzYWZlRmV0Y2h9IHJlcXVlc3QuICovXG5leHBvcnQgY29uc3QgU0FGRV9GRVRDSF9USU1FT1VUX01TID0gMTBfMDAwO1xuLyoqIERlZmF1bHQgcmVzcG9uc2UtYm9keSBjYXAgZm9yIHtAbGluayBzYWZlRmV0Y2h9ICg1IE1pQikuICovXG5leHBvcnQgY29uc3QgU0FGRV9GRVRDSF9NQVhfQllURVMgPSA1ICogMTAyNCAqIDEwMjQ7XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgc2FmZUZldGNofS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZUZldGNoT3B0aW9ucyBleHRlbmRzIFNhZmVVcmxPcHRpb25zIHtcbiAgbWV0aG9kPzogc3RyaW5nO1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgYm9keT86IHN0cmluZyB8IEJ1ZmZlcjtcbiAgLyoqIENhbGxlciBhYm9ydCAoY29tcG9zZWQgd2l0aCBgdGltZW91dE1zYCkuICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAvKiogV2FsbC1jbG9jayBjYXAgZm9yIHRoZSB3aG9sZSByZXF1ZXN0IChkZWZhdWx0IHtAbGluayBTQUZFX0ZFVENIX1RJTUVPVVRfTVN9KS4gKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKiogQm9keS1zaXplIGNhcDsgZXhjZWVkaW5nIGl0IGFib3J0cyBhbmQgdGhyb3dzIChkZWZhdWx0IHtAbGluayBTQUZFX0ZFVENIX01BWF9CWVRFU30pLiAqL1xuICBtYXhSZXNwb25zZUJ5dGVzPzogbnVtYmVyO1xufVxuXG4vKiogTm9ybWFsaXplZCByZXNwb25zZSBmcm9tIHtAbGluayBzYWZlRmV0Y2h9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWZlRmV0Y2hSZXNwb25zZSB7XG4gIC8qKiBUcnVlIG9ubHkgZm9yIGEgMnh4LiBBIHJlZnVzZWQgcmVkaXJlY3QgaXMgbmV2ZXIgYG9rYC4gKi9cbiAgb2s6IGJvb2xlYW47XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIG9yaWdpbiBhbnN3ZXJlZCB3aXRoIGEgM3h4IOKAlCBSRUZVU0VELCBuZXZlciBmb2xsb3dlZC4gKi9cbiAgcmVkaXJlY3RlZDogYm9vbGVhbjtcbiAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFJhdyBib2R5IGJ5dGVzIChlbXB0eSBmb3IgYSByZWZ1c2VkIHJlZGlyZWN0LCB3aG9zZSBib2R5IGlzIGRpc2NhcmRlZCkuICovXG4gIGJvZHk6IEJ1ZmZlcjtcbiAgdGV4dCgpOiBzdHJpbmc7XG4gIGpzb248VCA9IHVua25vd24+KCk6IFQ7XG59XG5cbi8qKlxuICogU1NSRi1zYWZlIG91dGJvdW5kIHJlcXVlc3QgdG8gYSB1c2VyL3RlbmFudC1zdXBwbGllZCBVUkwuXG4gKlxuICogLSByZXNvbHZlcyArIHZldHMgdGhlIGhvc3QsIHRoZW4gUElOUyB0aGUgZXhhY3QgdmFsaWRhdGVkIElQIGludG8gdGhlIHNvY2tldFxuICogICBgbG9va3VwYCBzbyBgbmV0LmNvbm5lY3RgIG5ldmVyIHJlLXJlc29sdmVzIOKAlCB0aGlzIGlzIHdoYXQgZGVmZWF0cyBETlNcbiAqICAgcmViaW5kaW5nLiBTTkkgKyBIb3N0IHN0YXkgdGhlIG9yaWdpbmFsIGhvc3RuYW1lIHNvIFRMUyB2ZXJpZmljYXRpb24gaXNcbiAqICAgdW5jaGFuZ2VkLlxuICogLSBSRUZVU0VTIHJlZGlyZWN0czogYGh0dHAocykucmVxdWVzdGAgbmV2ZXIgZm9sbG93cyBvbmUsIGFuZCBhIDN4eCBjb21lcyBiYWNrXG4gKiAgIGFzIGB7IHJlZGlyZWN0ZWQ6IHRydWUsIG9rOiBmYWxzZSB9YCBmb3IgdGhlIGNhbGxlciB0byByZWNvcmQgYXMgYSBmYWlsdXJlLlxuICogLSBjYXBzIHRoZSByZXNwb25zZSBib2R5ICh7QGxpbmsgU2FmZUZldGNoT3B0aW9ucy5tYXhSZXNwb25zZUJ5dGVzfSkgYW5kIHRoZVxuICogICB3YWxsIGNsb2NrICh7QGxpbmsgU2FmZUZldGNoT3B0aW9ucy50aW1lb3V0TXN9KS5cbiAqXG4gKiBUaHJvd3Mgb24gYSByZWplY3RlZCBVUkwsIGEgdHJhbnNwb3J0IGVycm9yLCBhIHRpbWVvdXQsIG9yIGFuIG92ZXJzaXplZCBib2R5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2FmZUZldGNoKHJhd1VybDogc3RyaW5nLCBvcHRzOiBTYWZlRmV0Y2hPcHRpb25zID0ge30pOiBQcm9taXNlPFNhZmVGZXRjaFJlc3BvbnNlPiB7XG4gIGNvbnN0IG1heEJ5dGVzID0gb3B0cy5tYXhSZXNwb25zZUJ5dGVzID8/IFNBRkVfRkVUQ0hfTUFYX0JZVEVTO1xuICBjb25zdCBwaW4gPSBhd2FpdCByZXNvbHZlU2FmZVRhcmdldChyYXdVcmwsIG9wdHMpO1xuICBjb25zdCB1ID0gbmV3IFVSTChyYXdVcmwpO1xuICBjb25zdCBib2R5ID0gb3B0cy5ib2R5ID09PSB1bmRlZmluZWRcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogKEJ1ZmZlci5pc0J1ZmZlcihvcHRzLmJvZHkpID8gb3B0cy5ib2R5IDogQnVmZmVyLmZyb20ob3B0cy5ib2R5LCAndXRmOCcpKTtcblxuICAvLyBDb21wb3NlIHRoZSBjYWxsZXIncyBhYm9ydCB3aXRoIG91ciBvd24gZGVhZGxpbmUgc28gd2hpY2hldmVyIGZpcmVzIGZpcnN0IHdpbnMuXG4gIGNvbnN0IHRpbWVvdXQgPSBBYm9ydFNpZ25hbC50aW1lb3V0KG9wdHMudGltZW91dE1zID8/IFNBRkVfRkVUQ0hfVElNRU9VVF9NUyk7XG4gIGNvbnN0IHNpZ25hbCA9IG9wdHMuc2lnbmFsID8gQWJvcnRTaWduYWwuYW55KFtvcHRzLnNpZ25hbCwgdGltZW91dF0pIDogdGltZW91dDtcblxuICBjb25zdCBvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICBtZXRob2Q6IG9wdHMubWV0aG9kID8/ICdHRVQnLFxuICAgIGhvc3RuYW1lOiBwaW4uaG9zdCxcbiAgICBwb3J0OiBwaW4ucG9ydCxcbiAgICBwYXRoOiBgJHt1LnBhdGhuYW1lfSR7dS5zZWFyY2h9YCxcbiAgICBzZXJ2ZXJuYW1lOiBwaW4ucHJvdG9jb2wgPT09ICdodHRwczonID8gcGluLmhvc3QgOiB1bmRlZmluZWQsXG4gICAgc2lnbmFsLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIC4uLm9wdHMuaGVhZGVycyxcbiAgICAgIC4uLihib2R5ID8geyAnQ29udGVudC1MZW5ndGgnOiBTdHJpbmcoYm9keS5ieXRlTGVuZ3RoKSB9IDoge30pLFxuICAgIH0sXG4gICAgLy8gUGluIHRoZSB2ZXR0ZWQgSVA6IG5ldC5jb25uZWN0IHVzZXMgdGhpcyBpbnN0ZWFkIG9mIHJlLXJlc29sdmluZyB0aGUgaG9zdC5cbiAgICBsb29rdXA6ICgoX2hvc3RuYW1lOiBzdHJpbmcsIF9sb29rdXBPcHRzOiB1bmtub3duLCBjYjogKGVycjogRXJyb3IgfCBudWxsLCBhZGRyZXNzOiBzdHJpbmcsIGZhbWlseTogbnVtYmVyKSA9PiB2b2lkKSA9PiB7XG4gICAgICBjYihudWxsLCBwaW4uYWRkcmVzcywgcGluLmZhbWlseSk7XG4gICAgfSkgYXMgdW5rbm93biBhcyBSZXF1ZXN0T3B0aW9uc1snbG9va3VwJ10sXG4gIH07XG5cbiAgY29uc3Qgc2VuZCA9IHBpbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyBodHRwc1JlcXVlc3QgOiBodHRwUmVxdWVzdDtcblxuICByZXR1cm4gbmV3IFByb21pc2U8U2FmZUZldGNoUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBjbGllbnRSZXEgPSBzZW5kKG9wdGlvbnMsIChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IHJlcy5zdGF0dXNDb2RlID8/IDA7XG4gICAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhyZXMuaGVhZGVycykpIHtcbiAgICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkgaGVhZGVyc1trXSA9IEFycmF5LmlzQXJyYXkodikgPyB2LmpvaW4oJywgJykgOiBTdHJpbmcodik7XG4gICAgICB9XG4gICAgICBjb25zdCByZWRpcmVjdGVkID0gc3RhdHVzID49IDMwMCAmJiBzdGF0dXMgPCA0MDA7XG4gICAgICBpZiAocmVkaXJlY3RlZCkge1xuICAgICAgICAvLyBOZXZlciBmb2xsb3csIG5ldmVyIGJ1ZmZlciDigJQgZHJhaW4gc28gdGhlIHNvY2tldCBjYW4gYmUgcmVsZWFzZWQuXG4gICAgICAgIHJlcy5yZXN1bWUoKTtcbiAgICAgICAgcmVzLm9uKCdlbmQnLCAoKSA9PiByZXNvbHZlKG1ha2VSZXNwb25zZShzdGF0dXMsIHJlcy5zdGF0dXNNZXNzYWdlLCBoZWFkZXJzLCBCdWZmZXIuYWxsb2MoMCksIHRydWUpKSk7XG4gICAgICAgIHJlcy5vbignZXJyb3InLCByZWplY3QpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBFYXJseSByZWplY3Qgb24gYSBkZWNsYXJlZCBvdmVyc2l6ZSBiZWZvcmUgYnVmZmVyaW5nIGFueXRoaW5nLlxuICAgICAgY29uc3QgZGVjbGFyZWQgPSBOdW1iZXIoaGVhZGVyc1snY29udGVudC1sZW5ndGgnXSk7XG4gICAgICBpZiAoTnVtYmVyLmlzRmluaXRlKGRlY2xhcmVkKSAmJiBkZWNsYXJlZCA+IG1heEJ5dGVzKSB7XG4gICAgICAgIHJlcy5kZXN0cm95KCk7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFJlc3BvbnNlIGJvZHkgZXhjZWVkcyAke21heEJ5dGVzfSBieXRlc2ApKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICAgICAgbGV0IHJlY2VpdmVkID0gMDtcbiAgICAgIHJlcy5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICAgIHJlY2VpdmVkICs9IGNodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgIGlmIChyZWNlaXZlZCA+IG1heEJ5dGVzKSB7XG4gICAgICAgICAgcmVzLmRlc3Ryb3koKTtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXNwb25zZSBib2R5IGV4Y2VlZHMgJHttYXhCeXRlc30gYnl0ZXNgKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgIH0pO1xuICAgICAgcmVzLm9uKCdlbmQnLCAoKSA9PiByZXNvbHZlKG1ha2VSZXNwb25zZShzdGF0dXMsIHJlcy5zdGF0dXNNZXNzYWdlLCBoZWFkZXJzLCBCdWZmZXIuY29uY2F0KGNodW5rcyksIGZhbHNlKSkpO1xuICAgICAgcmVzLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgfSk7XG4gICAgY2xpZW50UmVxLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgY2xpZW50UmVxLmVuZChib2R5KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNwb25zZShcbiAgc3RhdHVzOiBudW1iZXIsXG4gIHN0YXR1c1RleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgYm9keTogQnVmZmVyLFxuICByZWRpcmVjdGVkOiBib29sZWFuLFxuKTogU2FmZUZldGNoUmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIG9rOiBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCxcbiAgICBzdGF0dXMsXG4gICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dCA/PyAnJyxcbiAgICByZWRpcmVjdGVkLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keSxcbiAgICB0ZXh0OiAoKSA9PiBib2R5LnRvU3RyaW5nKCd1dGY4JyksXG4gICAganNvbjogPFQ+KCkgPT4gSlNPTi5wYXJzZShib2R5LnRvU3RyaW5nKCd1dGY4JykpIGFzIFQsXG4gIH07XG59XG4iXX0=
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyZi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NzcmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUF1QixNQUFNLE9BQU8sQ0FBQztBQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTNCLHlHQUF5RztBQUN6RyxNQUFNLGVBQWUsR0FBNkM7SUFDaEUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCO0lBQ2pDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVU7SUFDM0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsb0JBQW9CO0lBQ3hDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVc7SUFDN0IsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsbURBQW1EO0lBQ3hFLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVU7SUFDOUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsd0VBQXdFO0lBQzNGLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLGFBQWE7SUFDaEMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsa0NBQWtDO0lBQ3ZELENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFVBQVU7SUFDL0IsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsZUFBZTtJQUNuQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FB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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFNO0tBQ3RELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU2hhcmVkIFNTUkYgZ3VhcmQgZm9yIHVzZXIvdGVuYW50LXN1cHBsaWVkIG91dGJvdW5kIFVSTHMgKHdlYmhvb2sgdGFyZ2V0cyxcbiAqIGNhbGxiYWNrcywg4oCmKS4gUHJvbW90ZWQgdG8gYXBpLWNvcmUgc28gZXZlcnkgc2VydmljZSB0aGF0IGxldHMgYW4gb3JnIHBvaW50XG4gKiB0aGUgcGxhdGZvcm0gYXQgYW4gYXJiaXRyYXJ5IFVSTCBlbmZvcmNlcyB0aGUgU0FNRSBkZW55bGlzdCBpbnN0ZWFkIG9mIGVhY2hcbiAqIHJlLWRlcml2aW5nIGl0ICh0aGUgY29tcGxpYW5jZSBub3RpZmllciBhbmQgdGhlIHBsYXRmb3JtIGFsZXJ0IHJlbGF5IGJvdGhcbiAqIGNvbnN1bWUgdGhpcykuXG4gKlxuICogVGhlIGd1YXJkIHJlc29sdmVzIHRoZSBob3N0IHVwIGZyb250IGFuZCByZWplY3RzIGFueSBhZGRyZXNzIHRoYXQgaXMg4oCUIG9yXG4gKiByZXNvbHZlcyB0byDigJQgYSBsb29wYmFjayAvIHByaXZhdGUgLyBsaW5rLWxvY2FsIC8gdW5pcXVlLWxvY2FsIC8gY2Fycmllci1ncmFkZVxuICogTkFUIC8gY2xvdWQtbWV0YWRhdGEgcmFuZ2UsIHNvIGEgdGVuYW50IGNhbid0IGFpbSBhIHdlYmhvb2sgYXRcbiAqIGAxNjkuMjU0LjE2OS4yNTRgIG9yIGFuIGluLWNsdXN0ZXIgc2VydmljZS5cbiAqXG4gKiBUV08gUE9TVFVSRVMsIE9ORSBTVVJWSVZPUi4gYGFzc2VydFNhZmVVcmxgIG9ubHkgKnZhbGlkYXRlcyogYSBVUkw6IGl0XG4gKiByZXNvbHZlcyB0aGUgaG9zdCwgY2hlY2tzIHRoZSBhZGRyZXNzZXMgYW5kIHRoZW4gdGhyb3dzIHRoZSBob3N0bmFtZSBhd2F5LlxuICogQW55dGhpbmcgdGhhdCBnb2VzIG9uIHRvIGBmZXRjaCh1cmwpYCByZS1yZXNvbHZlcyBETlMgYW5kIGNhbiB0aGVyZWZvcmUgYmVcbiAqIHBvaW50ZWQgYXQgYSBwcml2YXRlIGFkZHJlc3MgYmV0d2VlbiB0aGUgY2hlY2sgYW5kIHRoZSBjb25uZWN0IChjbGFzc2ljXG4gKiBETlMgcmViaW5kaW5nKS4ge0BsaW5rIHNhZmVGZXRjaH0gaXMgdGhlIHBvc3R1cmUgdGhhdCBhY3R1YWxseSBob2xkczogaXRcbiAqIHJlc29sdmVzLCBQSU5TIHRoZSB2ZXR0ZWQgSVAgaW50byB0aGUgc29ja2V0J3MgYGxvb2t1cGAsIHJlZnVzZXMgcmVkaXJlY3RzLFxuICogYW5kIGNhcHMgYm90aCB0aGUgcmVzcG9uc2Ugc2l6ZSBhbmQgdGhlIHdhbGwtY2xvY2sgdGltZS5cbiAqXG4gKiBTbzogdXNlIHtAbGluayBzYWZlRmV0Y2h9IGZvciBldmVyeSBvdXRib3VuZCByZXF1ZXN0IHRvIGEgdXNlci90ZW5hbnQtc3VwcGxpZWRcbiAqIFVSTC4gYGFzc2VydFNhZmVVcmxgIGlzIGZvciBOT04tRkVUQ0ggdmFsaWRhdGlvbiBvbmx5IOKAlCByZWplY3RpbmcgYSBiYWQgVVJMIGF0XG4gKiBjcmVhdGUvdXBkYXRlIHRpbWUgYmVmb3JlIGl0IGlzIGV2ZXIgc3RvcmVkLiBOZXZlciBwYWlyIGl0IHdpdGggYGZldGNoYC5cbiAqL1xuXG5pbXBvcnQgeyBsb29rdXAgfSBmcm9tICdkbnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVxdWVzdCBhcyBodHRwUmVxdWVzdCB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgcmVxdWVzdCBhcyBodHRwc1JlcXVlc3QsIHR5cGUgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBpc0lQIH0gZnJvbSAnbmV0JztcblxuLyoqIElQdjQgcmFuZ2VzIHRoYXQgYXJlIE5PVCBwdWJsaWNseSByb3V0YWJsZSB1bmljYXN0OiBbZmlyc3Qgb2N0ZXRzIGFzIGEgMzItYml0IGludCwgcHJlZml4IGxlbmd0aF0uICovXG5jb25zdCBJUFY0X05PTl9HTE9CQUw6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgW3N0cmluZywgbnVtYmVyXT4gPSBbXG4gIFsnMC4wLjAuMCcsIDhdLCAvLyBcInRoaXMgbmV0d29ya1wiXG4gIFsnMTAuMC4wLjAnLCA4XSwgLy8gcHJpdmF0ZVxuICBbJzEwMC42NC4wLjAnLCAxMF0sIC8vIGNhcnJpZXItZ3JhZGUgTkFUXG4gIFsnMTI3LjAuMC4wJywgOF0sIC8vIGxvb3BiYWNrXG4gIFsnMTY5LjI1NC4wLjAnLCAxNl0sIC8vIGxpbmstbG9jYWwsIGluY2wuIDE2OS4yNTQuMTY5LjI1NCBjbG91ZCBtZXRhZGF0YVxuICBbJzE3Mi4xNi4wLjAnLCAxMl0sIC8vIHByaXZhdGVcbiAgWycxOTIuMC4wLjAnLCAyNF0sIC8vIElFVEYgcHJvdG9jb2wgYXNzaWdubWVudHMgKGluY2wuIDE5Mi4wLjAuMTkyIG1ldGFkYXRhIG9uIHNvbWUgY2xvdWRzKVxuICBbJzE5Mi4wLjIuMCcsIDI0XSwgLy8gVEVTVC1ORVQtMVxuICBbJzE5Mi44OC45OS4wJywgMjRdLCAvLyA2dG80IHJlbGF5IGFueWNhc3QgKGRlcHJlY2F0ZWQpXG4gIFsnMTkyLjE2OC4wLjAnLCAxNl0sIC8vIHByaXZhdGVcbiAgWycxOTguMTguMC4wJywgMTVdLCAvLyBiZW5jaG1hcmtpbmdcbiAgWycxOTguNTEuMTAwLjAnLCAyNF0sIC8vIFRFU1QtTkVULTJcbiAgWycyMDMuMC4xMTMuMCcsIDI0XSwgLy8gVEVTVC1ORVQtM1xuICBbJzIyNC4wLjAuMCcsIDRdLCAvLyBtdWx0aWNhc3RcbiAgWycyNDAuMC4wLjAnLCA0XSwgLy8gcmVzZXJ2ZWQsIGluY2wuIDI1NS4yNTUuMjU1LjI1NSBicm9hZGNhc3Rcbl07XG5cbmZ1bmN0aW9uIGlwdjRUb0ludChpcDogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gIGNvbnN0IG0gPSBpcC5tYXRjaCgvXihcXGR7MSwzfSlcXC4oXFxkezEsM30pXFwuKFxcZHsxLDN9KVxcLihcXGR7MSwzfSkkLyk7XG4gIGlmICghbSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IG9jdGV0cyA9IG0uc2xpY2UoMSkubWFwKE51bWJlcik7XG4gIGlmIChvY3RldHMuc29tZSgobykgPT4gbyA+IDI1NSkpIHJldHVybiBudWxsO1xuICByZXR1cm4gKChvY3RldHNbMF0gKiAyNTYgKyBvY3RldHNbMV0pICogMjU2ICsgb2N0ZXRzWzJdKSAqIDI1NiArIG9jdGV0c1szXTtcbn1cblxuY29uc3QgSVBWNF9OT05fR0xPQkFMX0lOVCA9IElQVjRfTk9OX0dMT0JBTC5tYXAoKFtiYXNlLCBiaXRzXSkgPT4gW2lwdjRUb0ludChiYXNlKSEsIGJpdHNdIGFzIGNvbnN0KTtcblxuZnVuY3Rpb24gaXNOb25HbG9iYWxWNChuOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIElQVjRfTk9OX0dMT0JBTF9JTlQuc29tZSgoW2Jhc2UsIGJpdHNdKSA9PiB7XG4gICAgY29uc3Qgc2l6ZSA9IDIgKiogKDMyIC0gYml0cyk7XG4gICAgcmV0dXJuIG4gPj0gYmFzZSAmJiBuIDwgYmFzZSArIHNpemU7XG4gIH0pO1xufVxuXG4vKiogUGFyc2UgYW4gSVB2NiBsaXRlcmFsIGludG8gaXRzIGVpZ2h0IDE2LWJpdCBncm91cHMgKG51bGwgd2hlbiBtYWxmb3JtZWQpLiAqL1xuZnVuY3Rpb24gcGFyc2VJcHY2KGlwOiBzdHJpbmcpOiBudW1iZXJbXSB8IG51bGwge1xuICBsZXQgYWRkciA9IGlwLnNwbGl0KCclJylbMF07IC8vIGRyb3AgYSB6b25lIGlkIChmZTgwOjoxJWV0aDApXG4gIC8vIEFuIGVtYmVkZGVkIGRvdHRlZCBJUHY0IHRhaWwgKDo6ZmZmZjoxLjIuMy40LCA2NDpmZjliOjoxLjIuMy40KSDihpIgdHdvIGdyb3Vwcy5cbiAgY29uc3QgdGFpbCA9IGFkZHIubWF0Y2goLyhcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSkkLyk7XG4gIGlmICh0YWlsKSB7XG4gICAgY29uc3QgbiA9IGlwdjRUb0ludCh0YWlsWzFdKTtcbiAgICBpZiAobiA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgYWRkciA9IGAke2FkZHIuc2xpY2UoMCwgLXRhaWxbMV0ubGVuZ3RoKX0ke01hdGguZmxvb3IobiAvIDY1NTM2KS50b1N0cmluZygxNil9OiR7KG4gJSA2NTUzNikudG9TdHJpbmcoMTYpfWA7XG4gIH1cbiAgY29uc3QgaGFsdmVzID0gYWRkci5zcGxpdCgnOjonKTtcbiAgaWYgKGhhbHZlcy5sZW5ndGggPiAyKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgcGFyc2UgPSAocGFydDogc3RyaW5nKTogbnVtYmVyW10gfCBudWxsID0+IHtcbiAgICBpZiAocGFydCA9PT0gJycpIHJldHVybiBbXTtcbiAgICBjb25zdCBncm91cHMgPSBwYXJ0LnNwbGl0KCc6Jyk7XG4gICAgY29uc3Qgb3V0OiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZyBvZiBncm91cHMpIHtcbiAgICAgIGlmICghL15bMC05YS1mXXsxLDR9JC9pLnRlc3QoZykpIHJldHVybiBudWxsO1xuICAgICAgb3V0LnB1c2gocGFyc2VJbnQoZywgMTYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfTtcbiAgY29uc3QgaGVhZCA9IHBhcnNlKGhhbHZlc1swXSk7XG4gIGNvbnN0IHJlc3QgPSBoYWx2ZXMubGVuZ3RoID09PSAyID8gcGFyc2UoaGFsdmVzWzFdKSA6IFtdO1xuICBpZiAoIWhlYWQgfHwgIXJlc3QpIHJldHVybiBudWxsO1xuICBpZiAoaGFsdmVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGhlYWQubGVuZ3RoID09PSA4ID8gaGVhZCA6IG51bGw7XG4gIGNvbnN0IHplcm9zID0gOCAtIGhlYWQubGVuZ3RoIC0gcmVzdC5sZW5ndGg7XG4gIGlmICh6ZXJvcyA8IDEpIHJldHVybiBudWxsO1xuICByZXR1cm4gWy4uLmhlYWQsIC4uLm5ldyBBcnJheTxudW1iZXI+KHplcm9zKS5maWxsKDApLCAuLi5yZXN0XTtcbn1cblxuY29uc3QgdjRGcm9tR3JvdXBzID0gKGhpOiBudW1iZXIsIGxvOiBudW1iZXIpOiBudW1iZXIgPT4gaGkgKiA2NTUzNiArIGxvO1xuXG4vKipcbiAqIFRydWUgZm9yIGFueSBhZGRyZXNzIHRoYXQgaXMgTk9UIHB1YmxpY2x5IHJvdXRhYmxlIHVuaWNhc3Qg4oCUIHRoZSByYW5nZXMgYW5cbiAqIG91dGJvdW5kIHRlbmFudCB3ZWJob29rIG11c3QgbmV2ZXIgcmVhY2guXG4gKlxuICogQW4gQUxMT1dMSVNULCBub3QgYSBkZW55bGlzdDogYW4gSVB2NiBhZGRyZXNzIGlzIGFjY2VwdGFibGUgb25seSBpbnNpZGUgdGhlXG4gKiBnbG9iYWwtdW5pY2FzdCBibG9jayBgMjAwMDo6LzNgIChzbyBsaW5rLWxvY2FsIGBmZTgwOjovMTBgLCBzaXRlLWxvY2FsXG4gKiBgZmVjMDo6LzEwYCwgdW5pcXVlLWxvY2FsIGBmYzAwOjovN2AsIG11bHRpY2FzdCwgbG9vcGJhY2ssIHVuc3BlY2lmaWVkIGFuZFxuICogZXZlcnkgZnV0dXJlIHNwZWNpYWwgcmFuZ2UgYXJlIHJlZnVzZWQgYnkgZGVmYXVsdCkuIEZvcm1hdHMgdGhhdCBFTUJFRCBhblxuICogSVB2NCBhZGRyZXNzIGFyZSB1bndyYXBwZWQgYW5kIGp1ZGdlZCBieSB0aGF0IGFkZHJlc3Mg4oCUIElQdjQtbWFwcGVkXG4gKiBgOjpmZmZmOjA6MC85NmAgKGRvdHRlZCBvciBoZXgpLCBOQVQ2NCBgNjQ6ZmY5Yjo6Lzk2YCBhbmQgNnRvNCBgMjAwMjo6LzE2YCDigJRcbiAqIHNvIGA6OmZmZmY6N2YwMDoxYCBvciBgMjAwMjphOWZlOmE5ZmU6OmAgY2FuJ3Qgc211Z2dsZSBsb29wYmFjayBvciB0aGVcbiAqIG1ldGFkYXRhIGVuZHBvaW50IHBhc3QgdGhlIGNoZWNrLiBBbnl0aGluZyB1bnBhcnNlYWJsZSBpcyByZWZ1c2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcml2YXRlQWRkcmVzcyhpcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGFkZHIgPSBpcC5yZXBsYWNlKC9eXFxbfFxcXSQvZywgJycpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHY0ID0gaXB2NFRvSW50KGFkZHIpO1xuICBpZiAodjQgIT09IG51bGwpIHJldHVybiBpc05vbkdsb2JhbFY0KHY0KTtcbiAgaWYgKC9eXFxkezEsM30oXFwuXFxkezEsM30pezN9JC8udGVzdChhZGRyKSkgcmV0dXJuIHRydWU7IC8vIG91dC1vZi1yYW5nZSBvY3RldFxuXG4gIGNvbnN0IGcgPSBwYXJzZUlwdjYoYWRkcik7XG4gIGlmICghZykgcmV0dXJuIHRydWU7IC8vIG5vdCBhbiBhZGRyZXNzIHdlIGNhbiByZWFzb24gYWJvdXQg4oaSIHJlZnVzZVxuXG4gIC8vIElQdjQtbWFwcGVkIDo6ZmZmZjphLmIuYy5kXG4gIGlmIChnWzBdID09PSAwICYmIGdbMV0gPT09IDAgJiYgZ1syXSA9PT0gMCAmJiBnWzNdID09PSAwICYmIGdbNF0gPT09IDAgJiYgZ1s1XSA9PT0gMHhmZmZmKSB7XG4gICAgcmV0dXJuIGlzTm9uR2xvYmFsVjQodjRGcm9tR3JvdXBzKGdbNl0sIGdbN10pKTtcbiAgfVxuICAvLyBOQVQ2NCB3ZWxsLWtub3duIHByZWZpeCA2NDpmZjliOjovOTYg4oCUIHRoZSB0YXJnZXQgaXMgdGhlIGVtYmVkZGVkIElQdjQuXG4gIGlmIChnWzBdID09PSAweDY0ICYmIGdbMV0gPT09IDB4ZmY5YiAmJiBnWzJdID09PSAwICYmIGdbM10gPT09IDAgJiYgZ1s0XSA9PT0gMCAmJiBnWzVdID09PSAwKSB7XG4gICAgcmV0dXJuIGlzTm9uR2xvYmFsVjQodjRGcm9tR3JvdXBzKGdbNl0sIGdbN10pKTtcbiAgfVxuICAvLyA2dG80IDIwMDI6VjRISTpWNExPOjovNDgg4oCUIHRoZSB0dW5uZWwgZW5kcG9pbnQgaXMgdGhlIGVtYmVkZGVkIElQdjQuXG4gIGlmIChnWzBdID09PSAweDIwMDIpIHJldHVybiBpc05vbkdsb2JhbFY0KHY0RnJvbUdyb3VwcyhnWzFdLCBnWzJdKSk7XG5cbiAgLy8gT25seSBnbG9iYWwgdW5pY2FzdCAyMDAwOjovMyBmcm9tIGhlcmUgb24uXG4gIGlmIChnWzBdIDwgMHgyMDAwIHx8IGdbMF0gPiAweDNmZmYpIHJldHVybiB0cnVlO1xuICAvLyDigKZtaW51cyBpdHMgc3BlY2lhbC1wdXJwb3NlIGNhcnZlLW91dHM6XG4gIGlmIChnWzBdID09PSAweDIwMDEgJiYgZ1sxXSA8IDB4MDIwMCkgcmV0dXJuIHRydWU7IC8vIDIwMDE6Oi8yMyBJRVRGIHByb3RvY29sIGFzc2lnbm1lbnRzIChUZXJlZG8sIGJlbmNobWFya2luZywgT1JDSElE4oCmKVxuICBpZiAoZ1swXSA9PT0gMHgyMDAxICYmIGdbMV0gPT09IDB4MGRiOCkgcmV0dXJuIHRydWU7IC8vIDIwMDE6ZGI4OjovMzIgZG9jdW1lbnRhdGlvblxuICBpZiAoZ1swXSA9PT0gMHgzZmZmICYmIGdbMV0gPCAweDEwMDApIHJldHVybiB0cnVlOyAvLyAzZmZmOjovMjAgZG9jdW1lbnRhdGlvblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgYXNzZXJ0U2FmZVVybH0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZmVVcmxPcHRpb25zIHtcbiAgLyoqIEFsbG93ZWQgVVJMIHByb3RvY29scyAoZGVmYXVsdDogYFsnaHR0cHM6J11gKS4gKi9cbiAgcHJvdG9jb2xzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBETlMtcmVzb2x2ZWQsIFNTUkYtdmV0dGVkIHRhcmdldCB0byBjb25uZWN0IHRvIGJ5IFBJTk5FRCBJUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaW5uZWRUYXJnZXQge1xuICAvKiogT3JpZ2luYWwgaG9zdG5hbWUg4oCUIHByZXNlcnZlZCBmb3IgdGhlIEhvc3QgaGVhZGVyIGFuZCBUTFMgU05JLiAqL1xuICBob3N0OiBzdHJpbmc7XG4gIC8qKiBUaGUgZXhhY3QgdmFsaWRhdGVkIElQIHRoZSBzb2NrZXQgbXVzdCBjb25uZWN0IHRvIChubyByZS1yZXNvbHV0aW9uKS4gKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICBmYW1pbHk6IG51bWJlcjtcbiAgcG9ydDogbnVtYmVyO1xuICAvKiogYCdodHRwczonYCBvciBgJ2h0dHA6J2AuICovXG4gIHByb3RvY29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhbmQgdmV0IGFuIG91dGJvdW5kIFVSTCwgcmV0dXJuaW5nIHRoZSBwaW5uZWQgdGFyZ2V0IHRvIGNvbm5lY3QgdG8uXG4gKlxuICogUmVqZWN0cyBhIFVSTCB0aGF0IGlzIG1hbGZvcm1lZCwgdXNlcyBhIGRpc2FsbG93ZWQgcHJvdG9jb2wsIG9yIHBvaW50cyBhdCBhXG4gKiBwcml2YXRlL2xvb3BiYWNrL2xpbmstbG9jYWwvbWV0YWRhdGEgYWRkcmVzcyAoYnkgSVAgbGl0ZXJhbCBvciBieSBETlNcbiAqIHJlc29sdXRpb24pLiBSZWplY3RzIGlmIEFOWSByZXNvbHV0aW9uIGlzIHByaXZhdGUgKGRlZmVuY2UgaW4gZGVwdGgpLCB0aGVuXG4gKiBwaW5zIHRoZSBmaXJzdCB2ZXR0ZWQgYWRkcmVzcyBzbyB0aGUgY29ubmVjdGlvbiBjYW4gbmV2ZXIgcmVhY2ggYW4gYWRkcmVzc1xuICogdGhpcyBmdW5jdGlvbiBkaWQgbm90IGFwcHJvdmUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlU2FmZVRhcmdldChyYXdVcmw6IHN0cmluZywgb3B0czogU2FmZVVybE9wdGlvbnMgPSB7fSk6IFByb21pc2U8UGlubmVkVGFyZ2V0PiB7XG4gIGNvbnN0IHByb3RvY29scyA9IG9wdHMucHJvdG9jb2xzID8/IFsnaHR0cHM6J107XG4gIGxldCB1OiBVUkw7XG4gIHRyeSB7IHUgPSBuZXcgVVJMKHJhd1VybCk7IH0gY2F0Y2ggeyB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgdXJsJyk7IH1cbiAgaWYgKCFwcm90b2NvbHMuaW5jbHVkZXModS5wcm90b2NvbCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVybCBtdXN0IHVzZSAke3Byb3RvY29scy5tYXAoKHApID0+IHAucmVwbGFjZSgvOiQvLCAnJykpLmpvaW4oJy8nKX1gKTtcbiAgfVxuICBjb25zdCBob3N0ID0gdS5ob3N0bmFtZS5yZXBsYWNlKC9eXFxbfFxcXSQvZywgJycpO1xuICBjb25zdCBwb3J0ID0gdS5wb3J0ID8gTnVtYmVyKHUucG9ydCkgOiAodS5wcm90b2NvbCA9PT0gJ2h0dHA6JyA/IDgwIDogNDQzKTtcbiAgY29uc3QgbGl0ZXJhbEZhbWlseSA9IGlzSVAoaG9zdCk7XG4gIGlmIChsaXRlcmFsRmFtaWx5KSB7XG4gICAgaWYgKGlzUHJpdmF0ZUFkZHJlc3MoaG9zdCkpIHRocm93IG5ldyBFcnJvcigndXJsIHRhcmdldHMgYSBwcml2YXRlIGFkZHJlc3MnKTtcbiAgICByZXR1cm4geyBob3N0LCBhZGRyZXNzOiBob3N0LCBmYW1pbHk6IGxpdGVyYWxGYW1pbHksIHBvcnQsIHByb3RvY29sOiB1LnByb3RvY29sIH07XG4gIH1cbiAgbGV0IGFkZHJzOiB7IGFkZHJlc3M6IHN0cmluZzsgZmFtaWx5OiBudW1iZXIgfVtdO1xuICB0cnkgeyBhZGRycyA9IGF3YWl0IGxvb2t1cChob3N0LCB7IGFsbDogdHJ1ZSB9KTsgfSBjYXRjaCB7IHRocm93IG5ldyBFcnJvcigndXJsIGhvc3QgZGlkIG5vdCByZXNvbHZlJyk7IH1cbiAgaWYgKGFkZHJzLmxlbmd0aCA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKCd1cmwgaG9zdCBkaWQgbm90IHJlc29sdmUnKTtcbiAgaWYgKGFkZHJzLnNvbWUoKGEpID0+IGlzUHJpdmF0ZUFkZHJlc3MoYS5hZGRyZXNzKSkpIHRocm93IG5ldyBFcnJvcigndXJsIHJlc29sdmVzIHRvIGEgcHJpdmF0ZSBhZGRyZXNzJyk7XG4gIHJldHVybiB7IGhvc3QsIGFkZHJlc3M6IGFkZHJzWzBdLmFkZHJlc3MsIGZhbWlseTogYWRkcnNbMF0uZmFtaWx5LCBwb3J0LCBwcm90b2NvbDogdS5wcm90b2NvbCB9O1xufVxuXG4vKipcbiAqIFZBTElEQVRJT04gT05MWSDigJQgbmV2ZXIgcGFpciB0aGlzIHdpdGggYSBgZmV0Y2hgLlxuICpcbiAqIFJlc29sdmVzIHRoZSBob3N0IGFuZCB0aHJvd3Mgd2hlbiB0aGUgVVJMIGlzIG1hbGZvcm1lZCwgdXNlcyBhIGRpc2FsbG93ZWRcbiAqIHByb3RvY29sLCBvciByZXNvbHZlcyB0byBhIHByaXZhdGUvbG9vcGJhY2svbGluay1sb2NhbC9tZXRhZGF0YSBhZGRyZXNzLiBVc2VcbiAqIGl0IHRvIHJlamVjdCBhIGJhZCBVUkwgYXQgY3JlYXRlL3VwZGF0ZSB0aW1lIChiZWZvcmUgaXQgaXMgc3RvcmVkKSwgb3IgaW4gYW55XG4gKiBvdGhlciBwbGFjZSB3aGVyZSBub3RoaW5nIGlzIGFib3V0IHRvIGNvbm5lY3QuIEZvciBhbiBhY3R1YWwgb3V0Ym91bmQgcmVxdWVzdFxuICogdXNlIHtAbGluayBzYWZlRmV0Y2h9LCB3aGljaCBwaW5zIHRoZSBhZGRyZXNzIGl0IHZldHRlZCDigJQgdmFsaWRhdGluZyBoZXJlIGFuZFxuICogdGhlbiBsZXR0aW5nIGBmZXRjaGAgcmUtcmVzb2x2ZSBpcyBhIEROUy1yZWJpbmRpbmcgVE9DVE9VIGhvbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3NlcnRTYWZlVXJsKHJhd1VybDogc3RyaW5nLCBvcHRzOiBTYWZlVXJsT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlc29sdmVTYWZlVGFyZ2V0KHJhd1VybCwgb3B0cyk7XG59XG5cbi8qKiBEZWZhdWx0IHdhbGwtY2xvY2sgY2FwIGZvciBvbmUge0BsaW5rIHNhZmVGZXRjaH0gcmVxdWVzdC4gKi9cbmV4cG9ydCBjb25zdCBTQUZFX0ZFVENIX1RJTUVPVVRfTVMgPSAxMF8wMDA7XG4vKiogRGVmYXVsdCByZXNwb25zZS1ib2R5IGNhcCBmb3Ige0BsaW5rIHNhZmVGZXRjaH0gKDUgTWlCKS4gKi9cbmV4cG9ydCBjb25zdCBTQUZFX0ZFVENIX01BWF9CWVRFUyA9IDUgKiAxMDI0ICogMTAyNDtcblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayBzYWZlRmV0Y2h9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWZlRmV0Y2hPcHRpb25zIGV4dGVuZHMgU2FmZVVybE9wdGlvbnMge1xuICBtZXRob2Q/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBib2R5Pzogc3RyaW5nIHwgQnVmZmVyO1xuICAvKiogQ2FsbGVyIGFib3J0IChjb21wb3NlZCB3aXRoIGB0aW1lb3V0TXNgKS4gKi9cbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIC8qKiBXYWxsLWNsb2NrIGNhcCBmb3IgdGhlIHdob2xlIHJlcXVlc3QgKGRlZmF1bHQge0BsaW5rIFNBRkVfRkVUQ0hfVElNRU9VVF9NU30pLiAqL1xuICB0aW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKiBCb2R5LXNpemUgY2FwOyBleGNlZWRpbmcgaXQgYWJvcnRzIGFuZCB0aHJvd3MgKGRlZmF1bHQge0BsaW5rIFNBRkVfRkVUQ0hfTUFYX0JZVEVTfSkuICovXG4gIG1heFJlc3BvbnNlQnl0ZXM/OiBudW1iZXI7XG59XG5cbi8qKiBOb3JtYWxpemVkIHJlc3BvbnNlIGZyb20ge0BsaW5rIHNhZmVGZXRjaH0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZmVGZXRjaFJlc3BvbnNlIHtcbiAgLyoqIFRydWUgb25seSBmb3IgYSAyeHguIEEgcmVmdXNlZCByZWRpcmVjdCBpcyBuZXZlciBgb2tgLiAqL1xuICBvazogYm9vbGVhbjtcbiAgc3RhdHVzOiBudW1iZXI7XG4gIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiB0aGUgb3JpZ2luIGFuc3dlcmVkIHdpdGggYSAzeHgg4oCUIFJFRlVTRUQsIG5ldmVyIGZvbGxvd2VkLiAqL1xuICByZWRpcmVjdGVkOiBib29sZWFuO1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogUmF3IGJvZHkgYnl0ZXMgKGVtcHR5IGZvciBhIHJlZnVzZWQgcmVkaXJlY3QsIHdob3NlIGJvZHkgaXMgZGlzY2FyZGVkKS4gKi9cbiAgYm9keTogQnVmZmVyO1xuICB0ZXh0KCk6IHN0cmluZztcbiAganNvbjxUID0gdW5rbm93bj4oKTogVDtcbn1cblxuLyoqXG4gKiBTU1JGLXNhZmUgb3V0Ym91bmQgcmVxdWVzdCB0byBhIHVzZXIvdGVuYW50LXN1cHBsaWVkIFVSTC5cbiAqXG4gKiAtIHJlc29sdmVzICsgdmV0cyB0aGUgaG9zdCwgdGhlbiBQSU5TIHRoZSBleGFjdCB2YWxpZGF0ZWQgSVAgaW50byB0aGUgc29ja2V0XG4gKiAgIGBsb29rdXBgIHNvIGBuZXQuY29ubmVjdGAgbmV2ZXIgcmUtcmVzb2x2ZXMg4oCUIHRoaXMgaXMgd2hhdCBkZWZlYXRzIEROU1xuICogICByZWJpbmRpbmcuIFNOSSArIEhvc3Qgc3RheSB0aGUgb3JpZ2luYWwgaG9zdG5hbWUgc28gVExTIHZlcmlmaWNhdGlvbiBpc1xuICogICB1bmNoYW5nZWQuXG4gKiAtIFJFRlVTRVMgcmVkaXJlY3RzOiBgaHR0cChzKS5yZXF1ZXN0YCBuZXZlciBmb2xsb3dzIG9uZSwgYW5kIGEgM3h4IGNvbWVzIGJhY2tcbiAqICAgYXMgYHsgcmVkaXJlY3RlZDogdHJ1ZSwgb2s6IGZhbHNlIH1gIGZvciB0aGUgY2FsbGVyIHRvIHJlY29yZCBhcyBhIGZhaWx1cmUuXG4gKiAtIGNhcHMgdGhlIHJlc3BvbnNlIGJvZHkgKHtAbGluayBTYWZlRmV0Y2hPcHRpb25zLm1heFJlc3BvbnNlQnl0ZXN9KSBhbmQgdGhlXG4gKiAgIHdhbGwgY2xvY2sgKHtAbGluayBTYWZlRmV0Y2hPcHRpb25zLnRpbWVvdXRNc30pLlxuICpcbiAqIFRocm93cyBvbiBhIHJlamVjdGVkIFVSTCwgYSB0cmFuc3BvcnQgZXJyb3IsIGEgdGltZW91dCwgb3IgYW4gb3ZlcnNpemVkIGJvZHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYWZlRmV0Y2gocmF3VXJsOiBzdHJpbmcsIG9wdHM6IFNhZmVGZXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8U2FmZUZldGNoUmVzcG9uc2U+IHtcbiAgY29uc3QgbWF4Qnl0ZXMgPSBvcHRzLm1heFJlc3BvbnNlQnl0ZXMgPz8gU0FGRV9GRVRDSF9NQVhfQllURVM7XG4gIGNvbnN0IHBpbiA9IGF3YWl0IHJlc29sdmVTYWZlVGFyZ2V0KHJhd1VybCwgb3B0cyk7XG4gIGNvbnN0IHUgPSBuZXcgVVJMKHJhd1VybCk7XG4gIGNvbnN0IGJvZHkgPSBvcHRzLmJvZHkgPT09IHVuZGVmaW5lZFxuICAgID8gdW5kZWZpbmVkXG4gICAgOiAoQnVmZmVyLmlzQnVmZmVyKG9wdHMuYm9keSkgPyBvcHRzLmJvZHkgOiBCdWZmZXIuZnJvbShvcHRzLmJvZHksICd1dGY4JykpO1xuXG4gIC8vIENvbXBvc2UgdGhlIGNhbGxlcidzIGFib3J0IHdpdGggb3VyIG93biBkZWFkbGluZSBzbyB3aGljaGV2ZXIgZmlyZXMgZmlyc3Qgd2lucy5cbiAgY29uc3QgdGltZW91dCA9IEFib3J0U2lnbmFsLnRpbWVvdXQob3B0cy50aW1lb3V0TXMgPz8gU0FGRV9GRVRDSF9USU1FT1VUX01TKTtcbiAgY29uc3Qgc2lnbmFsID0gb3B0cy5zaWduYWwgPyBBYm9ydFNpZ25hbC5hbnkoW29wdHMuc2lnbmFsLCB0aW1lb3V0XSkgOiB0aW1lb3V0O1xuXG4gIGNvbnN0IG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zID0ge1xuICAgIG1ldGhvZDogb3B0cy5tZXRob2QgPz8gJ0dFVCcsXG4gICAgaG9zdG5hbWU6IHBpbi5ob3N0LFxuICAgIHBvcnQ6IHBpbi5wb3J0LFxuICAgIHBhdGg6IGAke3UucGF0aG5hbWV9JHt1LnNlYXJjaH1gLFxuICAgIHNlcnZlcm5hbWU6IHBpbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyBwaW4uaG9zdCA6IHVuZGVmaW5lZCxcbiAgICBzaWduYWwsXG4gICAgaGVhZGVyczoge1xuICAgICAgLi4ub3B0cy5oZWFkZXJzLFxuICAgICAgLi4uKGJvZHkgPyB7ICdDb250ZW50LUxlbmd0aCc6IFN0cmluZyhib2R5LmJ5dGVMZW5ndGgpIH0gOiB7fSksXG4gICAgfSxcbiAgICAvLyBQaW4gdGhlIHZldHRlZCBJUDogbmV0LmNvbm5lY3QgdXNlcyB0aGlzIGluc3RlYWQgb2YgcmUtcmVzb2x2aW5nIHRoZSBob3N0LlxuICAgIGxvb2t1cDogKChfaG9zdG5hbWU6IHN0cmluZywgX2xvb2t1cE9wdHM6IHVua25vd24sIGNiOiAoZXJyOiBFcnJvciB8IG51bGwsIGFkZHJlc3M6IHN0cmluZywgZmFtaWx5OiBudW1iZXIpID0+IHZvaWQpID0+IHtcbiAgICAgIGNiKG51bGwsIHBpbi5hZGRyZXNzLCBwaW4uZmFtaWx5KTtcbiAgICB9KSBhcyB1bmtub3duIGFzIFJlcXVlc3RPcHRpb25zWydsb29rdXAnXSxcbiAgfTtcblxuICBjb25zdCBzZW5kID0gcGluLnByb3RvY29sID09PSAnaHR0cHM6JyA/IGh0dHBzUmVxdWVzdCA6IGh0dHBSZXF1ZXN0O1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxTYWZlRmV0Y2hSZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudFJlcSA9IHNlbmQob3B0aW9ucywgKHJlcykgPT4ge1xuICAgICAgY29uc3Qgc3RhdHVzID0gcmVzLnN0YXR1c0NvZGUgPz8gMDtcbiAgICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHJlcy5oZWFkZXJzKSkge1xuICAgICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSBoZWFkZXJzW2tdID0gQXJyYXkuaXNBcnJheSh2KSA/IHYuam9pbignLCAnKSA6IFN0cmluZyh2KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlZGlyZWN0ZWQgPSBzdGF0dXMgPj0gMzAwICYmIHN0YXR1cyA8IDQwMDtcbiAgICAgIGlmIChyZWRpcmVjdGVkKSB7XG4gICAgICAgIC8vIE5ldmVyIGZvbGxvdywgbmV2ZXIgYnVmZmVyIOKAlCBkcmFpbiBzbyB0aGUgc29ja2V0IGNhbiBiZSByZWxlYXNlZC5cbiAgICAgICAgcmVzLnJlc3VtZSgpO1xuICAgICAgICByZXMub24oJ2VuZCcsICgpID0+IHJlc29sdmUobWFrZVJlc3BvbnNlKHN0YXR1cywgcmVzLnN0YXR1c01lc3NhZ2UsIGhlYWRlcnMsIEJ1ZmZlci5hbGxvYygwKSwgdHJ1ZSkpKTtcbiAgICAgICAgcmVzLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIEVhcmx5IHJlamVjdCBvbiBhIGRlY2xhcmVkIG92ZXJzaXplIGJlZm9yZSBidWZmZXJpbmcgYW55dGhpbmcuXG4gICAgICBjb25zdCBkZWNsYXJlZCA9IE51bWJlcihoZWFkZXJzWydjb250ZW50LWxlbmd0aCddKTtcbiAgICAgIGlmIChOdW1iZXIuaXNGaW5pdGUoZGVjbGFyZWQpICYmIGRlY2xhcmVkID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgcmVzLmRlc3Ryb3koKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgUmVzcG9uc2UgYm9keSBleGNlZWRzICR7bWF4Qnl0ZXN9IGJ5dGVzYCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgICBsZXQgcmVjZWl2ZWQgPSAwO1xuICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgcmVjZWl2ZWQgKz0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgaWYgKHJlY2VpdmVkID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICByZXMuZGVzdHJveSgpO1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFJlc3BvbnNlIGJvZHkgZXhjZWVkcyAke21heEJ5dGVzfSBieXRlc2ApKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG4gICAgICByZXMub24oJ2VuZCcsICgpID0+IHJlc29sdmUobWFrZVJlc3BvbnNlKHN0YXR1cywgcmVzLnN0YXR1c01lc3NhZ2UsIGhlYWRlcnMsIEJ1ZmZlci5jb25jYXQoY2h1bmtzKSwgZmFsc2UpKSk7XG4gICAgICByZXMub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgICBjbGllbnRSZXEub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICBjbGllbnRSZXEuZW5kKGJvZHkpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc3BvbnNlKFxuICBzdGF0dXM6IG51bWJlcixcbiAgc3RhdHVzVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBib2R5OiBCdWZmZXIsXG4gIHJlZGlyZWN0ZWQ6IGJvb2xlYW4sXG4pOiBTYWZlRmV0Y2hSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgb2s6IHN0YXR1cyA+PSAyMDAgJiYgc3RhdHVzIDwgMzAwLFxuICAgIHN0YXR1cyxcbiAgICBzdGF0dXNUZXh0OiBzdGF0dXNUZXh0ID8/ICcnLFxuICAgIHJlZGlyZWN0ZWQsXG4gICAgaGVhZGVycyxcbiAgICBib2R5LFxuICAgIHRleHQ6ICgpID0+IGJvZHkudG9TdHJpbmcoJ3V0ZjgnKSxcbiAgICBqc29uOiA8VD4oKSA9PiBKU09OLnBhcnNlKGJvZHkudG9TdHJpbmcoJ3V0ZjgnKSkgYXMgVCxcbiAgfTtcbn1cbiJdfQ==
@@ -102,4 +102,4 @@ export const AnalyzeFromUrlBodySchema = z.object({
102
102
  /** Optional authentication token for accessing private repositories. */
103
103
  repoToken: z.string().min(1).optional(),
104
104
  });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2FpLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXhFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDO0FBRWhELHdCQUF3QjtBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLHdEQUF3RDtJQUN4RCxNQUFNLEVBQUUsQ0FBQztTQUNOLE1BQU0sRUFBRTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEVBQUUsMERBQTBELENBQUM7U0FDbEUsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixpQkFBaUIsc0JBQXNCLENBQUM7SUFFcEYscUVBQXFFO0lBQ3JFLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxnRUFBZ0UsQ0FBQztJQUU3RixxRUFBcUU7SUFDckUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdFQUFnRSxDQUFDO0lBRTFGLCtFQUErRTtJQUMvRSxNQUFNLEVBQUUsQ0FB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U0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IFZpc2liaWxpdHlTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IEJVSUxEX0NMQVNTRVMsIEJVSUxEX1NJWkVTIH0gZnJvbSAnLi4vdHlwZXMvYnVpbGQtY2F0YWxvZy5qcyc7XG5pbXBvcnQgeyBlbnZJbnQgfSBmcm9tICcuLi91dGlscy9lbnYuanMnO1xuXG5jb25zdCBNQVhfUFJPTVBUX0xFTkdUSCA9IGVudkludCgnTUFYX1BST01QVF9MRU5HVEgnLCA1MDAwLCB7IG1pbjogMSB9KTtcblxuLyoqXG4gKiBMYXJnZXN0IGBwcmV2aW91c0NvbmZpZ2AgKHNlcmlhbGl6ZWQgSlNPTiwgY2hhcnMpIGFuIGl0ZXJhdGl2ZSByZWZpbmVtZW50IG1heVxuICogc2VuZCBiYWNrLiBJdCByaWRlcyBpbiB0aGUgbW9kZWwncyBwcm9tcHQgb24gZXZlcnkgcmVmaW5lbWVudCwgc28gYW5cbiAqIHVuYm91bmRlZCBvbmUgdHVybmVkIGEgc2luZ2xlIGBhaUNhbGxzYCB1bml0IGludG8gYW4gYXJiaXRyYXJpbHkgbGFyZ2UgaW5wdXRcbiAqIGJpbGw7IGEgcmVhbCBnZW5lcmF0ZWQgcGlwZWxpbmUgY29uZmlnIGlzIGEgZmV3IEtCLlxuICovXG5leHBvcnQgY29uc3QgTUFYX1BSRVZJT1VTX0NPTkZJR19DSEFSUyA9IDY0XzAwMDtcblxuLy8gQUkgR2VuZXJhdGlvbiBSZXF1ZXN0XG5cbi8qKlxuICogU2NoZW1hIGZvciBBSSBnZW5lcmF0aW9uIHJlcXVlc3QgYm9keS5cbiAqIFVzZWQgYnkgYm90aCBQT1NUIC9waXBlbGluZXMvZ2VuZXJhdGUgYW5kIFBPU1QgL3BsdWdpbnMvZ2VuZXJhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBBSUdlbmVyYXRlQm9keVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqIE5hdHVyYWwgbGFuZ3VhZ2UgZGVzY3JpcHRpb24gb2Ygd2hhdCB0byBnZW5lcmF0ZS4gKi9cbiAgcHJvbXB0OiB6XG4gICAgLnN0cmluZygpXG4gICAgLm1pbigxLCAnQSBwcm9tcHQgd2l0aCBhIG5hdHVyYWwgbGFuZ3VhZ2UgZGVzY3JpcHRpb24gaXMgcmVxdWlyZWQnKVxuICAgIC5tYXgoTUFYX1BST01QVF9MRU5HVEgsIGBQcm9tcHQgbXVzdCBiZSAke01BWF9QUk9NUFRfTEVOR1RIfSBjaGFyYWN0ZXJzIG9yIGZld2VyYCksXG5cbiAgLyoqIEFJIHByb3ZpZGVyIGlkZW50aWZpZXIgKGUuZy4gXCJhbnRocm9waWNcIiwgXCJvcGVuYWlcIiwgXCJnb29nbGVcIikuICovXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLm1pbigxLCAnQSBwcm92aWRlciBpcyByZXF1aXJlZCAoZS5nLiwgXCJhbnRocm9waWNcIiwgXCJvcGVuYWlcIiwgXCJnb29nbGVcIiknKSxcblxuICAvKiogQUkgbW9kZWwgaWRlbnRpZmllciAoZS5nLiBcImNsYXVkZS1zb25uZXQtNS01XCIsIFwiZ3B0LTUuNi1zb2xcIikuICovXG4gIG1vZGVsOiB6LnN0cmluZygpLm1pbigxLCAnQSBtb2RlbCBpcyByZXF1aXJlZCAoZS5nLiwgXCJjbGF1ZGUtc29ubmV0LTUtNVwiLCBcImdwdC01LjYtc29sXCIpJyksXG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBBUEkga2V5IHRvIG92ZXJyaWRlIHRoZSBzZXJ2ZXIvb3JnIGtleSBmb3IgdGhpcyByZXF1ZXN0LiAqL1xuICBhcGlLZXk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG5cbiAgLyoqIFByZXZpb3VzIHBpcGVsaW5lIGNvbmZpZyBmb3IgaXRlcmF0aXZlIHJlZmluZW1lbnQuICovXG4gIHByZXZpb3VzQ29uZmlnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSlcbiAgICAucmVmaW5lKCh2KSA9PiBKU09OLnN0cmluZ2lmeSh2KS5sZW5ndGggPD0gTUFYX1BSRVZJT1VTX0NPTkZJR19DSEFSUywgYHByZXZpb3VzQ29uZmlnIG11c3Qgc2VyaWFsaXplIHRvICR7TUFYX1BSRVZJT1VTX0NPTkZJR19DSEFSU30gY2hhcmFjdGVycyBvciBmZXdlcmApXG4gICAgLm9wdGlvbmFsKCksXG5cbiAgLyoqIEZhbGxiYWNrIEFJIHByb3ZpZGVycyBpZiBwcmltYXJ5IGZhaWxzIChlLmcuLCBbXCJvcGVuYWlcIiwgXCJnb29nbGVcIl0pLiAqL1xuICBmYWxsYmFja1Byb3ZpZGVyczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbi8vIFBsdWdpbiBEZXBsb3ktR2VuZXJhdGVkIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIFBPU1QgL3BsdWdpbnMvZGVwbG95LWdlbmVyYXRlZCByZXF1ZXN0IGJvZHkuXG4gKiBWYWxpZGF0ZXMgdGhlIEFJLWdlbmVyYXRlZCBwbHVnaW4gY29uZmlndXJhdGlvbiBiZWZvcmUgRG9ja2VyIGJ1aWxkLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luRGVwbG95R2VuZXJhdGVkU2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogUGx1Z2luIG5hbWUgKGxvd2VyY2FzZSwgYWxwaGFudW1lcmljIHdpdGggaHlwaGVucykuICovXG4gIG5hbWU6IHouc3RyaW5nKCkubWluKDEsICdQbHVnaW4gbmFtZSBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbi4gKi9cbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvKiogU2VtYW50aWMgdmVyc2lvbiAoZS5nLiBcIjEuMC4wXCIpLiAqL1xuICB2ZXJzaW9uOiB6LnN0cmluZygpLm1pbigxLCAnVmVyc2lvbiBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBQbHVnaW4gZXhlY3V0aW9uIHR5cGUuICovXG4gIHBsdWdpblR5cGU6IHouZW51bShbJ0NvZGVCdWlsZFN0ZXAnLCAnU2hlbGxTdGVwJywgJ01hbnVhbEFwcHJvdmFsU3RlcCddKS5kZWZhdWx0KCdDb2RlQnVpbGRTdGVwJyksXG5cbiAgLyoqIEFXUyBDb2RlQnVpbGQgY29tcHV0ZSBzaXplLiAqL1xuICBjb21wdXRlVHlwZTogei5lbnVtKFsnU01BTEwnLCAnTUVESVVNJywgJ0xBUkdFJywgJ1gyX0xBUkdFJ10pLmRlZmF1bHQoJ01FRElVTScpLFxuXG4gIC8qKiBLZXl3b3JkcyBmb3IgY2F0ZWdvcml6YXRpb24uICovXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCkuZGVmYXVsdChbXSksXG5cbiAgLyoqIFByaW1hcnkgb3V0cHV0IGRpcmVjdG9yeSBwYXRoLiAqL1xuICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcblxuICAvKiogQ29tbWFuZHMgdG8gaW5zdGFsbCBkZXBlbmRlbmNpZXMuICovXG4gIGluc3RhbGxDb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLmRlZmF1bHQoW10pLFxuXG4gIC8qKiBCdWlsZC9leGVjdXRpb24gY29tbWFuZHMuICovXG4gIGNvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm1pbigxLCAnQXQgbGVhc3Qgb25lIGJ1aWxkIGNvbW1hbmQgaXMgcmVxdWlyZWQnKSxcblxuICAvKiogRW52aXJvbm1lbnQgdmFyaWFibGVzLiAqL1xuICBlbnY6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG5cbiAgLyoqIERvY2tlciBidWlsZCBhcmd1bWVudHMgcGFzc2VkIHZpYSAtLWJ1aWxkLWFyZyBhdCBpbWFnZSBidWlsZCB0aW1lLiAqL1xuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG5cbiAgLyoqIENvbXBsZXRlIERvY2tlcmZpbGUgY29udGVudCBmb3IgdGhlIGJ1aWxkIGVudmlyb25tZW50LiAqL1xuICBkb2NrZXJmaWxlOiB6LnN0cmluZygpLm1pbigxLCAnRG9ja2VyZmlsZSBjb250ZW50IGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEFjY2VzcyB2aXNpYmlsaXR5LiAqL1xuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLmRlZmF1bHQoJ3ByaXZhdGUnKSxcblxuICAvKiogU2NoZWR1bGluZyBjbGFzcyBmb3IgdGhlIGltYWdlIGJ1aWxkIChEMTEpOyBzZWUgYFBsdWdpblVwbG9hZEJvZHlTY2hlbWFgLiAqL1xuICBidWlsZENsYXNzOiB6LmVudW0oQlVJTERfQ0xBU1NFUykub3B0aW9uYWwoKSxcblxuICAvKiogTWFjaGluZSBzaXplIGZvciB0aGUgaW1hZ2UgYnVpbGQgKEQxMyk7IHJlZnVzZWQgYWJvdmUgdGhlIHRpZXIncyBjZWlsaW5nLiAqL1xuICBidWlsZFNpemU6IHouZW51bShCVUlMRF9TSVpFUykub3B0aW9uYWwoKSxcbn0pO1xuXG4vLyBBSSBHZW5lcmF0ZSBGcm9tIFVSTCBSZXF1ZXN0XG5cbi8qKlxuICogU2NoZW1hIGZvciBQT1NUIC9waXBlbGluZXMvZ2VuZXJhdGUvZnJvbS11cmwvc3RyZWFtIHJlcXVlc3QgYm9keS5cbiAqIFZhbGlkYXRlcyBHaXQgVVJMICsgQUkgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBmb3IgcmVwby1iYXNlZCBwaXBlbGluZSBnZW5lcmF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgQUlHZW5lcmF0ZUZyb21VcmxCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogR2l0IHJlcG9zaXRvcnkgVVJMIChIVFRQUywgU1NILCBvciBnaXRAIGZvcm1hdCkuICovXG4gIGdpdFVybDogei5zdHJpbmcoKS5taW4oMSwgJ0EgR2l0IHJlcG9zaXRvcnkgVVJMIGlzIHJlcXVpcmVkJykubWF4KDUwMCwgJ1VSTCBtdXN0IGJlIDUwMCBjaGFyYWN0ZXJzIG9yIGZld2VyJyksXG5cbiAgLyoqIEFJIHByb3ZpZGVyIGlkZW50aWZpZXIgKGUuZy4gXCJhbnRocm9waWNcIiwgXCJvcGVuYWlcIiwgXCJnb29nbGVcIikuICovXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLm1pbigxLCAnQSBwcm92aWRlciBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBBSSBtb2RlbCBpZGVudGlmaWVyIChlLmcuIFwiY2xhdWRlLXNvbm5ldC01LTVcIiwgXCJncHQtNS42LXNvbFwiKS4gKi9cbiAgbW9kZWw6IHouc3RyaW5nKCkubWluKDEsICdBIG1vZGVsIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBBUEkga2V5IHRvIG92ZXJyaWRlIHRoZSBzZXJ2ZXIgY29uZmlnLiAqL1xuICBhcGlLZXk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG5cbiAgLyoqIE9wdGlvbmFsIGF1dGhlbnRpY2F0aW9uIHRva2VuIGZvciBhY2Nlc3NpbmcgcHJpdmF0ZSByZXBvc2l0b3JpZXMuICovXG4gIHJlcG9Ub2tlbjogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vLyBSZXBvc2l0b3J5IEFuYWx5c2lzIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIFBPU1QgL3BpcGVsaW5lcy9hbmFseXplL2Zyb20tdXJsIOKAlCByZXBvc2l0b3J5IGFuYWx5c2lzIE9OTFkgKG5vIEFJXG4gKiBjYWxsLCBubyBgYWlDYWxsc2Agc2xvdCk6IHRoZSBBc2sgYWdlbnQncyBgcHJvcG9zZV9wbHVnaW5fZnJvbV9yZXBvYCByZWFkcyB0aGVcbiAqIGFuYWx5c2lzIHN1bW1hcnkgZnJvbSBpdCBiZWZvcmUgZHJhZnRpbmcgdGhyb3VnaCB0aGUgcGx1Z2luIGdlbmVyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IEFuYWx5emVGcm9tVXJsQm9keVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqIEdpdCByZXBvc2l0b3J5IFVSTCAoSFRUUFMsIFNTSCwgb3IgZ2l0QCBmb3JtYXQpLiAqL1xuICBnaXRVcmw6IHouc3RyaW5nKCkubWluKDEsICdBIEdpdCByZXBvc2l0b3J5IFVSTCBpcyByZXF1aXJlZCcpLm1heCg1MDAsICdVUkwgbXVzdCBiZSA1MDAgY2hhcmFjdGVycyBvciBmZXdlcicpLFxuXG4gIC8qKiBPcHRpb25hbCBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgYWNjZXNzaW5nIHByaXZhdGUgcmVwb3NpdG9yaWVzLiAqL1xuICByZXBvVG9rZW46IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2NoZW1hcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vYWktc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFeEU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUM7QUFFaEQsd0JBQXdCO0FBRXhCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0Msd0RBQXdEO0lBQ3hELE1BQU0sRUFBRSxDQUFDO1NBQ04sTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSwwREFBMEQsQ0FBQztTQUNsRSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLGlCQUFpQixzQkFBc0IsQ0FBQztJQUVwRixxRUFBcUU7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdFQUFnRSxDQUFDO0lBRTdGLHFFQUFxRTtJQUNyRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZ0VBQWdFLENBQUM7SUFFMUYsK0VBQStFO0lBQy9FLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFF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QUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgVmlzaWJpbGl0eVNjaGVtYSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuaW1wb3J0IHsgQlVJTERfQ0xBU1NFUywgQlVJTERfU0laRVMgfSBmcm9tICcuLi90eXBlcy9idWlsZC1jYXRhbG9nLmpzJztcbmltcG9ydCB7IGVudkludCB9IGZyb20gJy4uL3V0aWxzL2Vudi5qcyc7XG5cbmNvbnN0IE1BWF9QUk9NUFRfTEVOR1RIID0gZW52SW50KCdNQVhfUFJPTVBUX0xFTkdUSCcsIDUwMDAsIHsgbWluOiAxIH0pO1xuXG4vKipcbiAqIExhcmdlc3QgYHByZXZpb3VzQ29uZmlnYCAoc2VyaWFsaXplZCBKU09OLCBjaGFycykgYW4gaXRlcmF0aXZlIHJlZmluZW1lbnQgbWF5XG4gKiBzZW5kIGJhY2suIEl0IHJpZGVzIGluIHRoZSBtb2RlbCdzIHByb21wdCBvbiBldmVyeSByZWZpbmVtZW50LCBzbyBhblxuICogdW5ib3VuZGVkIG9uZSB0dXJuZWQgYSBzaW5nbGUgYGFpQ2FsbHNgIHVuaXQgaW50byBhbiBhcmJpdHJhcmlseSBsYXJnZSBpbnB1dFxuICogYmlsbDsgYSByZWFsIGdlbmVyYXRlZCBwaXBlbGluZSBjb25maWcgaXMgYSBmZXcgS0IuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfUFJFVklPVVNfQ09ORklHX0NIQVJTID0gNjRfMDAwO1xuXG4vLyBBSSBHZW5lcmF0aW9uIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIEFJIGdlbmVyYXRpb24gcmVxdWVzdCBib2R5LlxuICogVXNlZCBieSBib3RoIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZSBhbmQgUE9TVCAvcGx1Z2lucy9nZW5lcmF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFJR2VuZXJhdGVCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogTmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRvIGdlbmVyYXRlLiAqL1xuICBwcm9tcHQ6IHpcbiAgICAuc3RyaW5nKClcbiAgICAubWluKDEsICdBIHByb21wdCB3aXRoIGEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCcpXG4gICAgLm1heChNQVhfUFJPTVBUX0xFTkdUSCwgYFByb21wdCBtdXN0IGJlICR7TUFYX1BST01QVF9MRU5HVEh9IGNoYXJhY3RlcnMgb3IgZmV3ZXJgKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkIChlLmcuLCBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKScpLFxuXG4gIC8qKiBBSSBtb2RlbCBpZGVudGlmaWVyIChlLmcuIFwiY2xhdWRlLXNvbm5ldC01LTVcIiwgXCJncHQtNS42LXNvbFwiKS4gKi9cbiAgbW9kZWw6IHouc3RyaW5nKCkubWluKDEsICdBIG1vZGVsIGlzIHJlcXVpcmVkIChlLmcuLCBcImNsYXVkZS1zb25uZXQtNS01XCIsIFwiZ3B0LTUuNi1zb2xcIiknKSxcblxuICAvKiogT3B0aW9uYWwgY3VzdG9tIEFQSSBrZXkgdG8gb3ZlcnJpZGUgdGhlIHNlcnZlci9vcmcga2V5IGZvciB0aGlzIHJlcXVlc3QuICovXG4gIGFwaUtleTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcblxuICAvKiogUHJldmlvdXMgcGlwZWxpbmUgY29uZmlnIGZvciBpdGVyYXRpdmUgcmVmaW5lbWVudC4gKi9cbiAgcHJldmlvdXNDb25maWc6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKVxuICAgIC5yZWZpbmUoKHYpID0+IEpTT04uc3RyaW5naWZ5KHYpLmxlbmd0aCA8PSBNQVhfUFJFVklPVVNfQ09ORklHX0NIQVJTLCBgcHJldmlvdXNDb25maWcgbXVzdCBzZXJpYWxpemUgdG8gJHtNQVhfUFJFVklPVVNfQ09ORklHX0NIQVJTfSBjaGFyYWN0ZXJzIG9yIGZld2VyYClcbiAgICAub3B0aW9uYWwoKSxcblxuICAvKiogRmFsbGJhY2sgQUkgcHJvdmlkZXJzIGlmIHByaW1hcnkgZmFpbHMgKGUuZy4sIFtcIm9wZW5haVwiLCBcImdvb2dsZVwiXSkuICovXG4gIGZhbGxiYWNrUHJvdmlkZXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuLy8gUGx1Z2luIERlcGxveS1HZW5lcmF0ZWQgUmVxdWVzdFxuXG4vKipcbiAqIFNjaGVtYSBmb3IgUE9TVCAvcGx1Z2lucy9kZXBsb3ktZ2VuZXJhdGVkIHJlcXVlc3QgYm9keS5cbiAqIFZhbGlkYXRlcyB0aGUgQUktZ2VuZXJhdGVkIHBsdWdpbiBjb25maWd1cmF0aW9uIGJlZm9yZSBEb2NrZXIgYnVpbGQuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5EZXBsb3lHZW5lcmF0ZWRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKiBQbHVnaW4gbmFtZSAobG93ZXJjYXNlLCBhbHBoYW51bWVyaWMgd2l0aCBoeXBoZW5zKS4gKi9cbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSwgJ1BsdWdpbiBuYW1lIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uLiAqL1xuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBTZW1hbnRpYyB2ZXJzaW9uIChlLmcuIFwiMS4wLjBcIikuICovXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEsICdWZXJzaW9uIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIFBsdWdpbiBleGVjdXRpb24gdHlwZS4gKi9cbiAgcGx1Z2luVHlwZTogei5lbnVtKFsnQ29kZUJ1aWxkU3RlcCcsICdTaGVsbFN0ZXAnLCAnTWFudWFsQXBwcm92YWxTdGVwJ10pLmRlZmF1bHQoJ0NvZGVCdWlsZFN0ZXAnKSxcblxuICAvKiogQVdTIENvZGVCdWlsZCBjb21wdXRlIHNpemUuICovXG4gIGNvbXB1dGVUeXBlOiB6LmVudW0oWydTTUFMTCcsICdNRURJVU0nLCAnTEFSR0UnLCAnWDJfTEFSR0UnXSkuZGVmYXVsdCgnTUVESVVNJyksXG5cbiAgLyoqIEtleXdvcmRzIGZvciBjYXRlZ29yaXphdGlvbi4gKi9cbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZWZhdWx0KFtdKSxcblxuICAvKiogUHJpbWFyeSBvdXRwdXQgZGlyZWN0b3J5IHBhdGguICovXG4gIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBDb21tYW5kcyB0byBpbnN0YWxsIGRlcGVuZGVuY2llcy4gKi9cbiAgaW5zdGFsbENvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCkuZGVmYXVsdChbXSksXG5cbiAgLyoqIEJ1aWxkL2V4ZWN1dGlvbiBjb21tYW5kcy4gKi9cbiAgY29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkubWluKDEsICdBdCBsZWFzdCBvbmUgYnVpbGQgY29tbWFuZCBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMuICovXG4gIGVudjogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcblxuICAvKiogRG9ja2VyIGJ1aWxkIGFyZ3VtZW50cyBwYXNzZWQgdmlhIC0tYnVpbGQtYXJnIGF0IGltYWdlIGJ1aWxkIHRpbWUuICovXG4gIGJ1aWxkQXJnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcblxuICAvKiogQ29tcGxldGUgRG9ja2VyZmlsZSBjb250ZW50IGZvciB0aGUgYnVpbGQgZW52aXJvbm1lbnQuICovXG4gIGRvY2tlcmZpbGU6IHouc3RyaW5nKCkubWluKDEsICdEb2NrZXJmaWxlIGNvbnRlbnQgaXMgcmVxdWlyZWQnKSxcblxuICAvKiogQWNjZXNzIHZpc2liaWxpdHkuICovXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEuZGVmYXVsdCgncHJpdmF0ZScpLFxuXG4gIC8qKiBTY2hlZHVsaW5nIGNsYXNzIGZvciB0aGUgaW1hZ2UgYnVpbGQgKEQxMSk7IHNlZSBgUGx1Z2luVXBsb2FkQm9keVNjaGVtYWAuICovXG4gIGJ1aWxkQ2xhc3M6IHouZW51bShCVUlMRF9DTEFTU0VTKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBNYWNoaW5lIHNpemUgZm9yIHRoZSBpbWFnZSBidWlsZCAoRDEzKTsgcmVmdXNlZCBhYm92ZSB0aGUgdGllcidzIGNlaWxpbmcuICovXG4gIGJ1aWxkU2l6ZTogei5lbnVtKEJVSUxEX1NJWkVTKS5vcHRpb25hbCgpLFxufSk7XG5cbi8vIEFJIEdlbmVyYXRlIEZyb20gVVJMIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZS9mcm9tLXVybC9zdHJlYW0gcmVxdWVzdCBib2R5LlxuICogVmFsaWRhdGVzIEdpdCBVUkwgKyBBSSBwcm92aWRlciBjb25maWd1cmF0aW9uIGZvciByZXBvLWJhc2VkIHBpcGVsaW5lIGdlbmVyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBBSUdlbmVyYXRlRnJvbVVybEJvZHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKiBHaXQgcmVwb3NpdG9yeSBVUkwgKEhUVFBTLCBTU0gsIG9yIGdpdEAgZm9ybWF0KS4gKi9cbiAgZ2l0VXJsOiB6LnN0cmluZygpLm1pbigxLCAnQSBHaXQgcmVwb3NpdG9yeSBVUkwgaXMgcmVxdWlyZWQnKS5tYXgoNTAwLCAnVVJMIG11c3QgYmUgNTAwIGNoYXJhY3RlcnMgb3IgZmV3ZXInKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEFJIG1vZGVsIGlkZW50aWZpZXIgKGUuZy4gXCJjbGF1ZGUtc29ubmV0LTUtNVwiLCBcImdwdC01LjYtc29sXCIpLiAqL1xuICBtb2RlbDogei5zdHJpbmcoKS5taW4oMSwgJ0EgbW9kZWwgaXMgcmVxdWlyZWQnKSxcblxuICAvKiogT3B0aW9uYWwgY3VzdG9tIEFQSSBrZXkgdG8gb3ZlcnJpZGUgdGhlIHNlcnZlciBjb25maWcuICovXG4gIGFwaUtleTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcblxuICAvKiogT3B0aW9uYWwgYXV0aGVudGljYXRpb24gdG9rZW4gZm9yIGFjY2Vzc2luZyBwcml2YXRlIHJlcG9zaXRvcmllcy4gKi9cbiAgcmVwb1Rva2VuOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxufSk7XG5cbi8vIFJlcG9zaXRvcnkgQW5hbHlzaXMgUmVxdWVzdFxuXG4vKipcbiAqIFNjaGVtYSBmb3IgUE9TVCAvcGlwZWxpbmVzL2FuYWx5emUvZnJvbS11cmwg4oCUIHJlcG9zaXRvcnkgYW5hbHlzaXMgT05MWSAobm8gQUlcbiAqIGNhbGwsIG5vIGBhaUNhbGxzYCBzbG90KTogdGhlIEFzayBhZ2VudCdzIGBwcm9wb3NlX3BsdWdpbl9mcm9tX3JlcG9gIHJlYWRzIHRoZVxuICogYW5hbHlzaXMgc3VtbWFyeSBmcm9tIGl0IGJlZm9yZSBkcmFmdGluZyB0aHJvdWdoIHRoZSBwbHVnaW4gZ2VuZXJhdG9yLlxuICovXG5leHBvcnQgY29uc3QgQW5hbHl6ZUZyb21VcmxCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogR2l0IHJlcG9zaXRvcnkgVVJMIChIVFRQUywgU1NILCBvciBnaXRAIGZvcm1hdCkuICovXG4gIGdpdFVybDogei5zdHJpbmcoKS5taW4oMSwgJ0EgR2l0IHJlcG9zaXRvcnkgVVJMIGlzIHJlcXVpcmVkJykubWF4KDUwMCwgJ1VSTCBtdXN0IGJlIDUwMCBjaGFyYWN0ZXJzIG9yIGZld2VyJyksXG5cbiAgLyoqIE9wdGlvbmFsIGF1dGhlbnRpY2F0aW9uIHRva2VuIGZvciBhY2Nlc3NpbmcgcHJpdmF0ZSByZXBvc2l0b3JpZXMuICovXG4gIHJlcG9Ub2tlbjogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuIl19
@@ -86,4 +86,4 @@ export const BaseFilterSchema = z.object({
86
86
  ownerId: z.string().min(1).optional(),
87
87
  lifecycle: LifecycleSchema.optional(),
88
88
  });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9jb21tb24tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLDJFQUEyRTtBQUMzRSxPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsd0VBQXdFO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFckQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNqQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7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QyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzNFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN2QyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3hDLHdFQUF3RTtJQUN4RSxvREFBb0Q7SUFDcEQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFNBQVMsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO0NBQ3RDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vLyBNdXN0IHJ1biBiZWZvcmUgYW55IHouKiBzY2hlbWEgY3JlYXRpb24g4oCUIFpvZCA0IHJlcXVpcmVzIGVhZ2VyIGV4dGVuc2lvblxuaW1wb3J0ICcuLi9vcGVuYXBpL2V4dGVuZC16b2QuanMnO1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBDUklUSUNBTElUWV9MRVZFTFMsIExJRkVDWUNMRV9TVEFHRVMsIE9XTkVSX1RZUEVTIH0gZnJvbSAnLi4vdHlwZXMvY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5pbXBvcnQgeyBWSVNJQklMSVRJRVMgfSBmcm9tICcuLi90eXBlcy92aXNpYmlsaXR5LmpzJztcbmltcG9ydCB7IGVudkludCB9IGZyb20gJy4uL3V0aWxzL2Vudi5qcyc7XG5cbi8qKiBUaGUgc2hhcmVkIHRocmVlLXJ1bmcgc2hhcmluZyBsYWRkZXIg4oCUIHNlZSB0aGUgYFZpc2liaWxpdHlgIHR5cGUuICovXG5leHBvcnQgY29uc3QgVmlzaWJpbGl0eVNjaGVtYSA9IHouZW51bShWSVNJQklMSVRJRVMpO1xuXG4vKipcbiAqIERldmVsb3Blci1wb3J0YWwgY2F0YWxvZy1tZXRhZGF0YSBzY2hlbWFzIOKAlCBzaGFyZWQgYnkgcGlwZWxpbmUgYW5kIHBsdWdpblxuICogY3JlYXRlL3VwZGF0ZSBib2RpZXMgKGFuZCB0aGUgZmlsdGVyIHNjaGVtYSBiZWxvdykuIE1pcnJvciB0aGUgc2hhcmVkIHR5cGVzXG4gKiBpbiBgdHlwZXMvY2F0YWxvZy1tZXRhZGF0YS50c2AuXG4gKi9cbmV4cG9ydCBjb25zdCBMaWZlY3ljbGVTY2hlbWEgPSB6LmVudW0oTElGRUNZQ0xFX1NUQUdFUyk7XG5leHBvcnQgY29uc3QgQ3JpdGljYWxpdHlTY2hlbWEgPSB6LmVudW0oQ1JJVElDQUxJVFlfTEVWRUxTKTtcbmV4cG9ydCBjb25zdCBPd25lclR5cGVTY2hlbWEgPSB6LmVudW0oT1dORVJfVFlQRVMpO1xuXG5leHBvcnQgY29uc3QgRW50aXR5TGlua1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgdGl0bGU6IHouc3RyaW5nKCkubWluKDEpLm1heCgxMjApLFxuICB1cmw6IHouc3RyaW5nKCkudXJsKCkubWF4KDIwNDgpLFxuICBpY29uOiB6LnN0cmluZygpLm1heCg0MCkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKiogVHlwZWQgY2xhc3NpZmljYXRpb24gbGFiZWxzOiBgeyB0ZWFtOiAncGF5bWVudHMnLCB0aWVyOiAnZ29sZCcgfWAuICovXG5leHBvcnQgY29uc3QgRW50aXR5TGFiZWxzU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKS5taW4oMSkubWF4KDYzKSwgei5zdHJpbmcoKS5tYXgoMjU1KSk7XG5cbi8qKlxuICogQ2F0YWxvZy1tZXRhZGF0YSBmaWVsZHMgY29tbW9uIHRvIGNhdGFsb2cgZW50aXRpZXMuIFNwcmVhZCBpbnRvIGNyZWF0ZS91cGRhdGVcbiAqIGJvZHkgc2NoZW1hcyBzbyBwaXBlbGluZXMgYW5kIHBsdWdpbnMgYWNjZXB0IGlkZW50aWNhbCBvd25lcnNoaXAvbGlmZWN5Y2xlL1xuICogY2xhc3NpZmljYXRpb24gaW5wdXQuIEFsbCBvcHRpb25hbCDigJQgb3duZXIgZGVmYXVsdHMgdG8gdGhlIGNyZWF0b3Igc2VydmVyLXNpZGUuXG4gKi9cbmV4cG9ydCBjb25zdCBDYXRhbG9nTWV0YWRhdGFTaGFwZSA9IHtcbiAgb3duZXJJZDogei5zdHJpbmcoKS5taW4oMSkubWF4KDI1NSkub3B0aW9uYWwoKSxcbiAgb3duZXJUeXBlOiBPd25lclR5cGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgbGlmZWN5Y2xlOiBMaWZlY3ljbGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgY3JpdGljYWxpdHk6IENyaXRpY2FsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGxhYmVsczogRW50aXR5TGFiZWxzU2NoZW1hLm9wdGlvbmFsKCksXG4gIGxpbmtzOiB6LmFycmF5KEVudGl0eUxpbmtTY2hlbWEpLm1heCg1MCkub3B0aW9uYWwoKSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogU29ydCBvcmRlciBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFNvcnRPcmRlclNjaGVtYSA9IHouZW51bShbJ2FzYycsICdkZXNjJ10pO1xuXG4vKipcbiAqIFBhZ2luYXRpb24gcGFyYW1ldGVycyBzY2hlbWEuXG4gKlxuICogYE1BWF9QQUdFX0xJTUlUYCAvIGBERUZBVUxUX1BBR0VfTElNSVRgIGFyZSB0aGUgU0lOR0xFIHNvdXJjZSBmb3IgdGhlc2UgdmFsdWVzXG4gKiBhY3Jvc3MgdGhlIG1vbm9yZXBvIOKAlCBwaXBlbGluZS1jb3JlJ3MgYENvcmVDb25zdGFudHNgIGFuZCBwaXBlbGluZS1kYXRhJ3NcbiAqIGBDcnVkU2VydmljZWAgaW1wb3J0IHRoZW0gZnJvbSBoZXJlIGluc3RlYWQgb2YgcmUtcmVhZGluZyB0aGUgZW52ICh3aGljaCBkcmlmdGVkKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9QQUdFX0xJTUlUID0gZW52SW50KCdNQVhfUEFHRV9MSU1JVCcsIDEwMDAsIHsgbWluOiAxIH0pO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFHRV9MSU1JVCA9IGVudkludCgnREVGQVVMVF9QQUdFX0xJTUlUJywgMTAwLCB7IG1pbjogMSB9KTtcbi8qKiBDZWlsaW5nIG9uIG9mZnNldC1iYXNlZCBwYWdpbmcg4oCUIGJleW9uZCB0aGlzLCBkZWVwIHBhZ2luZyBtdXN0IHVzZSB0aGUgY3Vyc29yIEFQSVxuICogIChhbiB1bmJvdW5kZWQgb2Zmc2V0IGlzIGEgc2Nhbi1hbmQtZGlzY2FyZCBEb1MgYW1wbGlmaWVyIG9uIGhvdCBsaXN0IHJvdXRlcykuICovXG5leHBvcnQgY29uc3QgTUFYX1BBR0VfT0ZGU0VUID0gZW52SW50KCdNQVhfUEFHRV9PRkZTRVQnLCAxMDAwMDAsIHsgbWluOiAwIH0pO1xuXG4vKipcbiAqIEJvb2xlYW4gcXVlcnkgcGFyYW1ldGVyIHNjaGVtYVxuICogSGFuZGxlcyBzdHJpbmcgXCJ0cnVlXCIvXCJmYWxzZVwiIGFuZCBib29sZWFuIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgQm9vbGVhblF1ZXJ5U2NoZW1hID0gei51bmlvbihbXG4gIHouYm9vbGVhbigpLFxuICB6LmVudW0oWyd0cnVlJywgJ2ZhbHNlJ10pLnRyYW5zZm9ybSh2YWwgPT4gdmFsID09PSAndHJ1ZScpLFxuICB6LnN0cmluZygpLnRyYW5zZm9ybSh2YWwgPT4gdmFsID09PSAndHJ1ZScpLFxuXSk7XG5cbi8qKlxuICogVVVJRCBzY2hlbWEgd2l0aCB2YWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBVVUlEU2NoZW1hID0gei5zdHJpbmcoKS51dWlkKHtcbiAgbWVzc2FnZTogJ0ludmFsaWQgVVVJRCBmb3JtYXQnLFxufSk7XG5cbi8qKlxuICogT3B0aW9uYWwgVVVJRCBzY2hlbWEgKGZvciBwYXJ0aWFsIFVVSURzIG9yIHByZWZpeGVzKVxuICovXG5leHBvcnQgY29uc3QgVVVJRFByZWZpeFNjaGVtYSA9IHouc3RyaW5nKCkucmVnZXgoL15bMC05YS1mLV0rJC9pLCB7XG4gIG1lc3NhZ2U6ICdJbnZhbGlkIFVVSUQgcHJlZml4IGZvcm1hdCcsXG59KTtcblxuLyoqXG4gKiBCYXNlIGZpbHRlciBzY2hlbWEgZm9yIGVudGl0aWVzIHdpdGggY29tbW9uIGZpZWxkc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUZpbHRlclNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHoudW5pb24oW1VVSURTY2hlbWEsIHouYXJyYXkoVVVJRFNjaGVtYSksIFVVSURQcmVmaXhTY2hlbWFdKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgLy8gRGV2ZWxvcGVyLXBvcnRhbCBjYXRhbG9nIGZpbHRlcnMgKGFwcGxpZWQgb25seSBieSBlbnRpdGllcyB0aGF0IGNhcnJ5XG4gIC8vIG93bmVyL2xpZmVjeWNsZSBjb2x1bW5zIOKAlCBwaXBlbGluZXMgYW5kIHBsdWdpbnMpLlxuICBvd25lcklkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBsaWZlY3ljbGU6IExpZmVjeWNsZVNjaGVtYS5vcHRpb25hbCgpLFxufSk7XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNjaGVtYXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2NvbW1vbi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsMkVBQTJFO0FBQzNFLE9BQU8sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qyx3RUFBd0U7QUFDeEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztJQUMvQixJQUFJLEVBQUUs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LEVBQUU7SUFDM0UsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsd0VBQXdFO0lBQ3hFLG9EQUFvRDtJQUNwRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIE11c3QgcnVuIGJlZm9yZSBhbnkgei4qIHNjaGVtYSBjcmVhdGlvbiDigJQgWm9kIDQgcmVxdWlyZXMgZWFnZXIgZXh0ZW5zaW9uXG5pbXBvcnQgJy4uL29wZW5hcGkvZXh0ZW5kLXpvZC5qcyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IENSSVRJQ0FMSVRZX0xFVkVMUywgTElGRUNZQ0xFX1NUQUdFUywgT1dORVJfVFlQRVMgfSBmcm9tICcuLi90eXBlcy9jYXRhbG9nLW1ldGFkYXRhLmpzJztcbmltcG9ydCB7IFZJU0lCSUxJVElFUyB9IGZyb20gJy4uL3R5cGVzL3Zpc2liaWxpdHkuanMnO1xuaW1wb3J0IHsgZW52SW50IH0gZnJvbSAnLi4vdXRpbHMvZW52LmpzJztcblxuLyoqIFRoZSBzaGFyZWQgdGhyZWUtcnVuZyBzaGFyaW5nIGxhZGRlciDigJQgc2VlIHRoZSBgVmlzaWJpbGl0eWAgdHlwZS4gKi9cbmV4cG9ydCBjb25zdCBWaXNpYmlsaXR5U2NoZW1hID0gei5lbnVtKFZJU0lCSUxJVElFUyk7XG5cbi8qKlxuICogRGV2ZWxvcGVyLXBvcnRhbCBjYXRhbG9nLW1ldGFkYXRhIHNjaGVtYXMg4oCUIHNoYXJlZCBieSBwaXBlbGluZSBhbmQgcGx1Z2luXG4gKiBjcmVhdGUvdXBkYXRlIGJvZGllcyAoYW5kIHRoZSBmaWx0ZXIgc2NoZW1hIGJlbG93KS4gTWlycm9yIHRoZSBzaGFyZWQgdHlwZXNcbiAqIGluIGB0eXBlcy9jYXRhbG9nLW1ldGFkYXRhLnRzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IExpZmVjeWNsZVNjaGVtYSA9IHouZW51bShMSUZFQ1lDTEVfU1RBR0VTKTtcbmV4cG9ydCBjb25zdCBDcml0aWNhbGl0eVNjaGVtYSA9IHouZW51bShDUklUSUNBTElUWV9MRVZFTFMpO1xuZXhwb3J0IGNvbnN0IE93bmVyVHlwZVNjaGVtYSA9IHouZW51bShPV05FUl9UWVBFUyk7XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlMaW5rU2NoZW1hID0gei5vYmplY3Qoe1xuICB0aXRsZTogei5zdHJpbmcoKS5taW4oMSkubWF4KDEyMCksXG4gIHVybDogei5zdHJpbmcoKS51cmwoKS5tYXgoMjA0OCksXG4gIGljb246IHouc3RyaW5nKCkubWF4KDQwKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKiBUeXBlZCBjbGFzc2lmaWNhdGlvbiBsYWJlbHM6IGB7IHRlYW06ICdwYXltZW50cycsIHRpZXI6ICdnb2xkJyB9YC4gKi9cbmV4cG9ydCBjb25zdCBFbnRpdHlMYWJlbHNTY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLm1pbigxKS5tYXgoNjMpLCB6LnN0cmluZygpLm1heCgyNTUpKTtcblxuLyoqXG4gKiBDYXRhbG9nLW1ldGFkYXRhIGZpZWxkcyBjb21tb24gdG8gY2F0YWxvZyBlbnRpdGllcy4gU3ByZWFkIGludG8gY3JlYXRlL3VwZGF0ZVxuICogYm9keSBzY2hlbWFzIHNvIHBpcGVsaW5lcyBhbmQgcGx1Z2lucyBhY2NlcHQgaWRlbnRpY2FsIG93bmVyc2hpcC9saWZlY3ljbGUvXG4gKiBjbGFzc2lmaWNhdGlvbiBpbnB1dC4gQWxsIG9wdGlvbmFsIOKAlCBvd25lciBkZWZhdWx0cyB0byB0aGUgY3JlYXRvciBzZXJ2ZXItc2lkZS5cbiAqL1xuZXhwb3J0IGNvbnN0IENhdGFsb2dNZXRhZGF0YVNoYXBlID0ge1xuICBvd25lcklkOiB6LnN0cmluZygpLm1pbigxKS5tYXgoMjU1KS5vcHRpb25hbCgpLFxuICBvd25lclR5cGU6IE93bmVyVHlwZVNjaGVtYS5vcHRpb25hbCgpLFxuICBsaWZlY3ljbGU6IExpZmVjeWNsZVNjaGVtYS5vcHRpb25hbCgpLFxuICBjcml0aWNhbGl0eTogQ3JpdGljYWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgbGFiZWxzOiBFbnRpdHlMYWJlbHNTY2hlbWEub3B0aW9uYWwoKSxcbiAgbGlua3M6IHouYXJyYXkoRW50aXR5TGlua1NjaGVtYSkubWF4KDUwKS5vcHRpb25hbCgpLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBTb3J0IG9yZGVyIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgU29ydE9yZGVyU2NoZW1hID0gei5lbnVtKFsnYXNjJywgJ2Rlc2MnXSk7XG5cbi8qKlxuICogUGFnaW5hdGlvbiBwYXJhbWV0ZXJzIHNjaGVtYS5cbiAqXG4gKiBgTUFYX1BBR0VfTElNSVRgIC8gYERFRkFVTFRfUEFHRV9MSU1JVGAgYXJlIHRoZSBTSU5HTEUgc291cmNlIGZvciB0aGVzZSB2YWx1ZXNcbiAqIGFjcm9zcyB0aGUgbW9ub3JlcG8g4oCUIHBpcGVsaW5lLWNvcmUncyBgQ29yZUNvbnN0YW50c2AgYW5kIHBpcGVsaW5lLWRhdGEnc1xuICogYENydWRTZXJ2aWNlYCBpbXBvcnQgdGhlbSBmcm9tIGhlcmUgaW5zdGVhZCBvZiByZS1yZWFkaW5nIHRoZSBlbnYgKHdoaWNoIGRyaWZ0ZWQpLlxuICovXG5leHBvcnQgY29uc3QgTUFYX1BBR0VfTElNSVQgPSBlbnZJbnQoJ01BWF9QQUdFX0xJTUlUJywgMTAwMCwgeyBtaW46IDEgfSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX0xJTUlUID0gZW52SW50KCdERUZBVUxUX1BBR0VfTElNSVQnLCAxMDAsIHsgbWluOiAxIH0pO1xuLyoqIENlaWxpbmcgb24gb2Zmc2V0LWJhc2VkIHBhZ2luZyDigJQgYmV5b25kIHRoaXMsIGRlZXAgcGFnaW5nIG11c3QgdXNlIHRoZSBjdXJzb3IgQVBJXG4gKiAgKGFuIHVuYm91bmRlZCBvZmZzZXQgaXMgYSBzY2FuLWFuZC1kaXNjYXJkIERvUyBhbXBsaWZpZXIgb24gaG90IGxpc3Qgcm91dGVzKS4gKi9cbmV4cG9ydCBjb25zdCBNQVhfUEFHRV9PRkZTRVQgPSBlbnZJbnQoJ01BWF9QQUdFX09GRlNFVCcsIDEwMDAwMCwgeyBtaW46IDAgfSk7XG5cbi8qKlxuICogQm9vbGVhbiBxdWVyeSBwYXJhbWV0ZXIgc2NoZW1hXG4gKiBIYW5kbGVzIHN0cmluZyBcInRydWVcIi9cImZhbHNlXCIgYW5kIGJvb2xlYW4gdmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCBCb29sZWFuUXVlcnlTY2hlbWEgPSB6LnVuaW9uKFtcbiAgei5ib29sZWFuKCksXG4gIHouZW51bShbJ3RydWUnLCAnZmFsc2UnXSkudHJhbnNmb3JtKHZhbCA9PiB2YWwgPT09ICd0cnVlJyksXG4gIHouc3RyaW5nKCkudHJhbnNmb3JtKHZhbCA9PiB2YWwgPT09ICd0cnVlJyksXG5dKTtcblxuLyoqXG4gKiBVVUlEIHNjaGVtYSB3aXRoIHZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFVVSURTY2hlbWEgPSB6LnN0cmluZygpLnV1aWQoe1xuICBtZXNzYWdlOiAnSW52YWxpZCBVVUlEIGZvcm1hdCcsXG59KTtcblxuLyoqXG4gKiBPcHRpb25hbCBVVUlEIHNjaGVtYSAoZm9yIHBhcnRpYWwgVVVJRHMgb3IgcHJlZml4ZXMpXG4gKi9cbmV4cG9ydCBjb25zdCBVVUlEUHJlZml4U2NoZW1hID0gei5zdHJpbmcoKS5yZWdleCgvXlswLTlhLWYtXSskL2ksIHtcbiAgbWVzc2FnZTogJ0ludmFsaWQgVVVJRCBwcmVmaXggZm9ybWF0Jyxcbn0pO1xuXG4vKipcbiAqIEJhc2UgZmlsdGVyIHNjaGVtYSBmb3IgZW50aXRpZXMgd2l0aCBjb21tb24gZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlRmlsdGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei51bmlvbihbVVVJRFNjaGVtYSwgei5hcnJheShVVUlEU2NoZW1hKSwgVVVJRFByZWZpeFNjaGVtYV0pLm9wdGlvbmFsKCksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICAvLyBEZXZlbG9wZXItcG9ydGFsIGNhdGFsb2cgZmlsdGVycyAoYXBwbGllZCBvbmx5IGJ5IGVudGl0aWVzIHRoYXQgY2FycnlcbiAgLy8gb3duZXIvbGlmZWN5Y2xlIGNvbHVtbnMg4oCUIHBpcGVsaW5lcyBhbmQgcGx1Z2lucykuXG4gIG93bmVySWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGxpZmVjeWNsZTogTGlmZWN5Y2xlU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
@@ -207,4 +207,4 @@ export const OCI_LABELS = {
207
207
  source: 'org.opencontainers.image.source',
208
208
  documentation: 'org.opencontainers.image.documentation',
209
209
  };
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyZmlsZS1zdGF0aWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9kb2NrZXJmaWxlLXN0YXRpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSCx5RkFBeUY7QUFDekYsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBNEJ4QywrRUFBK0U7QUFDL0UsU0FBUyxZQUFZLENBQUMsS0FBZTtJQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsU0FBUztRQUN2QixNQUFNLENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7UUFDcEIsMkVBQTJFO1FBQzNFLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFBRSxNQUFNO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBUyxZQUFZLENBQUMsT0FBZTtJQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxPQUFP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UUFBUSxFQUFFLG1DQUFtQztJQUM3QyxHQUFHLEVBQUUsOEJBQThCO0lBQ25DLE1BQU0sRUFBRSxpQ0FBaUM7SUFDekMsYUFBYSxFQUFFLHdDQUF3QztDQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU1RBVElDIHJlYWRpbmcgb2YgYSBwbHVnaW4ncyBvd24gRG9ja2VyZmlsZSAoY2F0YWxvZyBkZXRlY3Rpb24gYW5kIHRoZVxuICogYHJ1bkFzUm9vdGAgY29tcGxpYW5jZSBmYWN0KTogaXRzIGBMQUJFTGAgaW5zdHJ1Y3Rpb25zIGFuZCBpdHMgZmluYWwgYFVTRVJgLCB3aXRob3V0XG4gKiBidWlsZGluZyBhbnl0aGluZy5cbiAqXG4gKiAtIE9ubHkgdGhlIHBsdWdpbidzIE9XTiBpbnN0cnVjdGlvbnMgY291bnQuIFRoZSBidWlsdCBpbWFnZSdzIGNvbmZpZyBhbHNvXG4gKiAgIGNhcnJpZXMgZXZlcnkgbGFiZWwgaW5oZXJpdGVkIGZyb20gaXRzIGJhc2UgaW1hZ2UsIGFuZCB0aG9zZSBkZXNjcmliZSB0aGVcbiAqICAgYmFzZSBpbWFnZSwgbm90IHRoZSBwbHVnaW4g4oCUIHNvIGxhYmVscyBhcmUgbmV2ZXIgcmVhZCBmcm9tIGFuIGltYWdlLlxuICogLSBPbmx5IHRoZSBGSU5BTCBzdGFnZSBjb3VudHMgKHBsdXMgYW55IGVhcmxpZXIgc3RhZ2UgaXQgaXMgYnVpbHQgYEZST01gKTpcbiAqICAgbGFiZWxzIGFuZCBgVVNFUmAgc2V0IGluIGEgZGlzY2FyZGVkIGJ1aWxkIHN0YWdlIG5ldmVyIHJlYWNoIHRoZSBpbWFnZS5cbiAqIC0gQSB2YWx1ZSBjb250YWluaW5nIGAkYCBpcyBpZ25vcmVkOiBidWlsZCBhcmd1bWVudHMgYXJlbid0IGtub3duIGF0IHVwbG9hZCxcbiAqICAgc28gdGhlIHN0YXRpYyB0ZXh0IGlzIG5vdCB3aGF0IHRoZSBpbWFnZSB3b3VsZCBjYXJyeS5cbiAqIC0gVmFsdWVzIGFyZSB1bnRydXN0ZWQgdGV4dCwgZXhhY3RseSBsaWtlIHRoZSBzcGVjLlxuICpcbiAqIEhhbmRsZXMgdGhlIGAjIGVzY2FwZT1gIHBhcnNlciBkaXJlY3RpdmUsIGxpbmUgY29udGludWF0aW9ucyAod2l0aCBjb21tZW50XG4gKiBsaW5lcyBpbnNpZGUgYSBjb250aW51YXRpb24gc2tpcHBlZCwgYXMgRG9ja2VyIGRvZXMpLCBga2V5PXZhbHVlYCBwYWlycyB3aXRoXG4gKiBkb3VibGUgcXVvdGVzIChiYWNrc2xhc2ggZXNjYXBlcykgb3Igc2luZ2xlIHF1b3RlcyAobGl0ZXJhbCksIGFuZCB0aGUgbGVnYWN5XG4gKiBgTEFCRUwga2V5IHZhbHVlYCBmb3JtLlxuICovXG5cbi8qKiBNYXggRG9ja2VyZmlsZSB0ZXh0IHJlYWQgKGJ5dGVzKS4gTGFyZ2VyIGlucHV0cyBhcmUgdHJ1bmNhdGVkLCBuZXZlciBwYXJzZWQgd2hvbGUuICovXG5jb25zdCBNQVhfRE9DS0VSRklMRV9DSEFSUyA9IDI1NiAqIDEwMjQ7XG5cbmludGVyZmFjZSBTdGFnZSB7XG4gIC8qKiBMb3dlcmNhc2VkIGBBU2AgYWxpYXMsIGlmIGFueS4gKi9cbiAgYWxpYXM6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBMb3dlcmNhc2VkIGJhc2UgcmVmZXJlbmNlIChgRlJPTSA8YmFzZT5gKS4gKi9cbiAgYmFzZTogc3RyaW5nO1xuICAvKiogVGhlIGJhc2UgcmVmZXJlbmNlIGFzIHdyaXR0ZW4gKGltYWdlIHJlZnMgYXJlIGNhc2Utc2Vuc2l0aXZlIGluIHRhZ3MpLiAqL1xuICByYXdCYXNlOiBzdHJpbmc7XG4gIGxhYmVsczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIExhc3QgYFVTRVJgIGluIHRoZSBzdGFnZSAocmF3KSwgb3IgbnVsbCB3aGVuIHRoZSBzdGFnZSBzZXRzIG5vbmUuICovXG4gIHVzZXI6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBXaGF0IHRoZSBwbHVnaW4ncyBEb2NrZXJmaWxlIGl0c2VsZiBkZWNsYXJlcyBmb3IgaXRzIGZpbmFsIGltYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJmaWxlRmFjdHMge1xuICAvKiogVGhlIGZpbmFsIGltYWdlJ3Mgb3duIGxhYmVscyAobGF0ZXIgaW5zdHJ1Y3Rpb25zIHdpbikuICovXG4gIGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRoZSBmaW5hbCBpbWFnZSdzIG93biBgVVNFUmAsIG9yIG51bGwgd2hlbiB0aGUgRG9ja2VyZmlsZSBzZXRzIG5vbmUuICovXG4gIGZpbmFsVXNlcjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFRoZSBleHRlcm5hbCBpbWFnZSB0aGUgZmluYWwgc3RhZ2UgaXMgdWx0aW1hdGVseSBidWlsdCBgRlJPTWAgKGZvbGxvd2luZ1xuICAgKiBzdGFnZSBhbGlhc2VzKSwgYXMgd3JpdHRlbjsgbnVsbCB3aGVuIHRoZXJlIGlzIG5vIGBGUk9NYCwgaXQgaXMgYHNjcmF0Y2hgLFxuICAgKiBvciBpdCBkZXBlbmRzIG9uIGEgYnVpbGQgYXJndW1lbnQgKGAkYCksIHdoaWNoIGlzbid0IGtub3duIHN0YXRpY2FsbHkuXG4gICAqL1xuICBiYXNlSW1hZ2U6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBUaGUgZXNjYXBlIGNoYXJhY3RlciBmcm9tIGEgbGVhZGluZyBgIyBlc2NhcGU9YCBkaXJlY3RpdmUgKGRlZmF1bHQgYFxcYCkuICovXG5mdW5jdGlvbiBlc2NhcGVDaGFyT2YobGluZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgY29uc3QgdCA9IGxpbmUudHJpbSgpO1xuICAgIGlmICh0ID09PSAnJykgY29udGludWU7XG4gICAgY29uc3QgbSA9IC9eI1xccyplc2NhcGVcXHMqPVxccyooW2BcXFxcXSlcXHMqJC9pLmV4ZWModCk7XG4gICAgaWYgKG0pIHJldHVybiBtWzFdITtcbiAgICAvLyBQYXJzZXIgZGlyZWN0aXZlcyBtdXN0IGNvbWUgZmlyc3Q7IGFueSBvdGhlciBkaXJlY3RpdmUtc2hhcGVkIGNvbW1lbnQgaXNcbiAgICAvLyBza2lwcGVkLCBhbnl0aGluZyBlbHNlIGVuZHMgdGhlIGRpcmVjdGl2ZSBibG9jay5cbiAgICBpZiAoIS9eI1xccypcXHcrXFxzKj0vLnRlc3QodCkpIGJyZWFrO1xuICB9XG4gIHJldHVybiAnXFxcXCc7XG59XG5cbi8qKiBQaHlzaWNhbCBsaW5lcyDihpIgbG9naWNhbCBpbnN0cnVjdGlvbnMgKGNvbnRpbnVhdGlvbnMgam9pbmVkLCBjb21tZW50cyBkcm9wcGVkKS4gKi9cbmZ1bmN0aW9uIGxvZ2ljYWxMaW5lcyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zbGljZSgwLCBNQVhfRE9DS0VSRklMRV9DSEFSUykucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBlc2MgPSBlc2NhcGVDaGFyT2YobGluZXMpO1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjdXJyZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCByYXcgb2YgbGluZXMpIHtcbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnRyaW0oKTtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiAodHJpbW1lZCA9PT0gJycgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCcjJykpKSBjb250aW51ZTtcbiAgICAvLyBEb2NrZXIgc2tpcHMgY29tbWVudCBhbmQgZW1wdHkgbGluZXMgaW5zaWRlIGEgY29udGludWF0aW9uLlxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmICh0cmltbWVkID09PSAnJyB8fCB0cmltbWVkLnN0YXJ0c1dpdGgoJyMnKSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGNvbnRpbnVlZCA9IHJhdy5yZXBsYWNlKC9cXHMrJC8sICcnKS5lbmRzV2l0aChlc2MpO1xuICAgIGNvbnN0IGJvZHkgPSBjb250aW51ZWQgPyByYXcucmVwbGFjZSgvXFxzKyQvLCAnJykuc2xpY2UoMCwgLTEpIDogcmF3O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50ID09PSBudWxsID8gYm9keSA6IGAke2N1cnJlbnR9JHtib2R5fWA7XG4gICAgaWYgKCFjb250aW51ZWQpIHtcbiAgICAgIG91dC5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfVxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnRyaW0oKSkgb3V0LnB1c2goY3VycmVudC50cmltKCkpO1xuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIFNwbGl0IGBMQUJFTGAgYXJndW1lbnRzIGludG8gd29yZHMsIGhvbm91cmluZyBkb3VibGUgcXVvdGVzICh3aXRoIGJhY2tzbGFzaFxuICogZXNjYXBlcykgYW5kIHNpbmdsZSBxdW90ZXMgKGxpdGVyYWwpLiBSZXR1cm5zIG51bGwgb24gYW4gdW50ZXJtaW5hdGVkIHF1b3RlLlxuICovXG5mdW5jdGlvbiBzcGxpdFdvcmRzKGFyZ3M6IHN0cmluZyk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gIGNvbnN0IHdvcmRzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgd29yZCA9ICcnO1xuICBsZXQgaW5Xb3JkID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGMgPSBhcmdzW2ldITtcbiAgICBpZiAoYyA9PT0gJ1wiJykge1xuICAgICAgaW5Xb3JkID0gdHJ1ZTtcbiAgICAgIGxldCBqID0gaSArIDE7XG4gICAgICBmb3IgKDsgaiA8IGFyZ3MubGVuZ3RoICYmIGFyZ3Nbal0gIT09ICdcIic7IGorKykge1xuICAgICAgICBpZiAoYXJnc1tqXSA9PT0gJ1xcXFwnICYmIGogKyAxIDwgYXJncy5sZW5ndGgpIGorKztcbiAgICAgICAgd29yZCArPSBhcmdzW2pdO1xuICAgICAgfVxuICAgICAgaWYgKGogPj0gYXJncy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgICAgaSA9IGo7XG4gICAgfSBlbHNlIGlmIChjID09PSAnXFwnJykge1xuICAgICAgaW5Xb3JkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGVuZCA9IGFyZ3MuaW5kZXhPZignXFwnJywgaSArIDEpO1xuICAgICAgaWYgKGVuZCA8IDApIHJldHVybiBudWxsO1xuICAgICAgd29yZCArPSBhcmdzLnNsaWNlKGkgKyAxLCBlbmQpO1xuICAgICAgaSA9IGVuZDtcbiAgICB9IGVsc2UgaWYgKGMgPT09ICdcXFxcJyAmJiBpICsgMSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBpbldvcmQgPSB0cnVlO1xuICAgICAgd29yZCArPSBhcmdzWysraV07XG4gICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KGMpKSB7XG4gICAgICBpZiAoaW5Xb3JkKSB3b3Jkcy5wdXNoKHdvcmQpO1xuICAgICAgd29yZCA9ICcnO1xuICAgICAgaW5Xb3JkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluV29yZCA9IHRydWU7XG4gICAgICB3b3JkICs9IGM7XG4gICAgfVxuICB9XG4gIGlmIChpbldvcmQpIHdvcmRzLnB1c2god29yZCk7XG4gIHJldHVybiB3b3Jkcztcbn1cblxuLyoqIFRoZSBga2V5IOKGkiB2YWx1ZWAgcGFpcnMgb2Ygb25lIGBMQUJFTGAgaW5zdHJ1Y3Rpb24ncyBhcmd1bWVudHMuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMYWJlbEFyZ3MoYXJnczogc3RyaW5nKTogQXJyYXk8W3N0cmluZywgc3RyaW5nXT4ge1xuICBjb25zdCB0cmltbWVkID0gYXJncy50cmltKCk7XG4gIC8vIExlZ2FjeSBmb3JtOiBgTEFCRUwga2V5IHZhbHVlIHdpdGggc3BhY2VzYCAobm8gYD1gIGluIHRoZSBmaXJzdCB3b3JkKS5cbiAgY29uc3QgZmlyc3RXb3JkID0gL15cXFMrLy5leGVjKHRyaW1tZWQpPy5bMF0gPz8gJyc7XG4gIGlmIChmaXJzdFdvcmQgJiYgIWZpcnN0V29yZC5pbmNsdWRlcygnPScpKSB7XG4gICAgY29uc3Qgd29yZHMgPSBzcGxpdFdvcmRzKHRyaW1tZWQpO1xuICAgIGlmICghd29yZHMgfHwgd29yZHMubGVuZ3RoIDwgMikgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbW3dvcmRzWzBdISwgd29yZHMuc2xpY2UoMSkuam9pbignICcpXV07XG4gIH1cbiAgY29uc3Qgd29yZHMgPSBzcGxpdFdvcmRzKHRyaW1tZWQpO1xuICBpZiAoIXdvcmRzKSByZXR1cm4gW107XG4gIGNvbnN0IHBhaXJzOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiA9IFtdO1xuICBmb3IgKGNvbnN0IHcgb2Ygd29yZHMpIHtcbiAgICBjb25zdCBlcSA9IHcuaW5kZXhPZignPScpO1xuICAgIGlmIChlcSA8PSAwKSBjb250aW51ZTtcbiAgICBwYWlycy5wdXNoKFt3LnNsaWNlKDAsIGVxKSwgdy5zbGljZShlcSArIDEpXSk7XG4gIH1cbiAgcmV0dXJuIHBhaXJzO1xufVxuXG4vKiogUGFyc2Ugd2hhdCBgY29udGVudGAgZGVjbGFyZXMgZm9yIGl0cyBmaW5hbCBpbWFnZS4gTmV2ZXIgdGhyb3dzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRG9ja2VyZmlsZShjb250ZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9ja2VyZmlsZUZhY3RzIHtcbiAgY29uc3Qgc3RhZ2VzOiBTdGFnZVtdID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBsb2dpY2FsTGluZXMoY29udGVudCA/PyAnJykpIHtcbiAgICBjb25zdCBtID0gL14oXFxTKylcXHMqKC4qKSQvcy5leGVjKGxpbmUpO1xuICAgIGlmICghbSkgY29udGludWU7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBtWzFdIS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGFyZ3MgPSBtWzJdID8/ICcnO1xuICAgIGlmIChpbnN0cnVjdGlvbiA9PT0gJ0ZST00nKSB7XG4gICAgICAvLyBGUk9NIFstLXBsYXRmb3JtPeKApl0gPGltYWdlPiBbQVMgPG5hbWU+XVxuICAgICAgY29uc3Qgd29yZHMgPSBhcmdzLnNwbGl0KC9cXHMrLykuZmlsdGVyKCh3KSA9PiB3ICYmICF3LnN0YXJ0c1dpdGgoJy0tJykpO1xuICAgICAgY29uc3QgYXNJZHggPSB3b3Jkcy5maW5kSW5kZXgoKHcpID0+IHcudG9Mb3dlckNhc2UoKSA9PT0gJ2FzJyk7XG4gICAgICBzdGFnZXMucHVzaCh7XG4gICAgICAgIGJhc2U6ICh3b3Jkc1swXSA/PyAnJykudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgcmF3QmFzZTogd29yZHNbMF0gPz8gJycsXG4gICAgICAgIGFsaWFzOiBhc0lkeCA+PSAwICYmIHdvcmRzW2FzSWR4ICsgMV0gPyB3b3Jkc1thc0lkeCArIDFdIS50b0xvd2VyQ2FzZSgpIDogbnVsbCxcbiAgICAgICAgbGFiZWxzOiBuZXcgTWFwKCksXG4gICAgICAgIHVzZXI6IG51bGwsXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzdGFnZSA9IHN0YWdlc1tzdGFnZXMubGVuZ3RoIC0gMV07XG4gICAgaWYgKCFzdGFnZSkgY29udGludWU7IC8vIEluc3RydWN0aW9ucyBiZWZvcmUgdGhlIGZpcnN0IEZST00gKEFSRykgc2V0IG5vdGhpbmcgb24gdGhlIGltYWdlLlxuICAgIGlmIChpbnN0cnVjdGlvbiA9PT0gJ0xBQkVMJykge1xuICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgcGFyc2VMYWJlbEFyZ3MoYXJncykpIHtcbiAgICAgICAgaWYgKHYuaW5jbHVkZXMoJyQnKSB8fCBrLmluY2x1ZGVzKCckJykpIHtcbiAgICAgICAgICBzdGFnZS5sYWJlbHMuZGVsZXRlKGspO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHN0YWdlLmxhYmVscy5zZXQoaywgdik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbnN0cnVjdGlvbiA9PT0gJ1VTRVInKSB7XG4gICAgICBzdGFnZS51c2VyID0gYXJncy50cmltKCkgfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBpZiAoc3RhZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHsgbGFiZWxzOiB7fSwgZmluYWxVc2VyOiBudWxsLCBiYXNlSW1hZ2U6IG51bGwgfTtcblxuICAvLyBUaGUgZmluYWwgc3RhZ2UsIHByZWNlZGVkIGJ5IHRoZSBjaGFpbiBvZiBlYXJsaWVyIHN0YWdlcyBpdCBpcyBidWlsdCBGUk9NXG4gIC8vIChpdHMgb3duIGNvbnRlbnQsIG5vdCBhIGJhc2UgaW1hZ2UncyksIG9sZGVzdCBmaXJzdC5cbiAgY29uc3QgY2hhaW46IFN0YWdlW10gPSBbXTtcbiAgbGV0IGN1cnNvcjogU3RhZ2UgfCB1bmRlZmluZWQgPSBzdGFnZXNbc3RhZ2VzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxTdGFnZT4oKTtcbiAgd2hpbGUgKGN1cnNvciAmJiAhc2Vlbi5oYXMoY3Vyc29yKSkge1xuICAgIHNlZW4uYWRkKGN1cnNvcik7XG4gICAgY2hhaW4udW5zaGlmdChjdXJzb3IpO1xuICAgIGNvbnN0IGJhc2U6IHN0cmluZyA9IGN1cnNvci5iYXNlO1xuICAgIGNvbnN0IGlkeCA9IHN0YWdlcy5pbmRleE9mKGN1cnNvcik7XG4gICAgY3Vyc29yID0gc3RhZ2VzLnNsaWNlKDAsIGlkeCkucmV2ZXJzZSgpLmZpbmQoKHMpID0+IHMuYWxpYXMgIT09IG51bGwgJiYgcy5hbGlhcyA9PT0gYmFzZSk7XG4gIH1cblxuICBjb25zdCBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgbGV0IGZpbmFsVXNlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGZvciAoY29uc3QgcyBvZiBjaGFpbikge1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHMubGFiZWxzKSBsYWJlbHNba10gPSB2O1xuICAgIGlmIChzLnVzZXIgIT09IG51bGwpIGZpbmFsVXNlciA9IHMudXNlcjtcbiAgfVxuICBjb25zdCByb290ID0gY2hhaW5bMF0hLnJhd0Jhc2U7XG4gIGNvbnN0IGJhc2VJbWFnZSA9IHJvb3QgPT09ICcnIHx8IHJvb3QuaW5jbHVkZXMoJyQnKSB8fCByb290LnRvTG93ZXJDYXNlKCkgPT09ICdzY3JhdGNoJyA/IG51bGwgOiByb290O1xuICByZXR1cm4geyBsYWJlbHMsIGZpbmFsVXNlciwgYmFzZUltYWdlIH07XG59XG5cbi8qKiBUaGUgT0NJIGFubm90YXRpb24ga2V5cyB0aGUgY2F0YWxvZyByZWFkcy4gKi9cbmV4cG9ydCBjb25zdCBPQ0lfTEFCRUxTID0ge1xuICB0aXRsZTogJ29yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZScsXG4gIGRlc2NyaXB0aW9uOiAnb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uJyxcbiAgbGljZW5zZXM6ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXMnLFxuICB1cmw6ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsJyxcbiAgc291cmNlOiAnb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZScsXG4gIGRvY3VtZW50YXRpb246ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZG9jdW1lbnRhdGlvbicsXG59IGFzIGNvbnN0O1xuIl19
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyZmlsZS1zdGF0aWMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2RvY2tlcmZpbGUtc3RhdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVILHlGQUF5RjtBQUN6RixNQUFNLG9CQUFvQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUE0QnhDLCtFQUErRTtBQUMvRSxTQUFTLFlBQVksQ0FBQyxLQUFlO0lBQ25DLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFBRSxTQUFTO1FBQ3ZCLE1BQU0sQ0FBQyxHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQztRQUNwQiwyRUFBMkU7UUFDM0UsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUFFLE1BQU07SUFDckMsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixTQUFTLFlBQVksQ0FBQyxPQUFlO0lBQ25DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekYsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFD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O0lBQzdDLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkMsTUFBTSxFQUFFLGlDQUFpQztJQUN6QyxhQUFhLEVBQUUsd0NBQXdDO0NBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTVEFUSUMgcmVhZGluZyBvZiBhIHBsdWdpbidzIG93biBEb2NrZXJmaWxlIChjYXRhbG9nIGRldGVjdGlvbiBhbmQgdGhlXG4gKiBgcnVuQXNSb290YCBjb21wbGlhbmNlIGZhY3QpOiBpdHMgYExBQkVMYCBpbnN0cnVjdGlvbnMgYW5kIGl0cyBmaW5hbCBgVVNFUmAsIHdpdGhvdXRcbiAqIGJ1aWxkaW5nIGFueXRoaW5nLlxuICpcbiAqIC0gT25seSB0aGUgcGx1Z2luJ3MgT1dOIGluc3RydWN0aW9ucyBjb3VudC4gVGhlIGJ1aWx0IGltYWdlJ3MgY29uZmlnIGFsc29cbiAqICAgY2FycmllcyBldmVyeSBsYWJlbCBpbmhlcml0ZWQgZnJvbSBpdHMgYmFzZSBpbWFnZSwgYW5kIHRob3NlIGRlc2NyaWJlIHRoZVxuICogICBiYXNlIGltYWdlLCBub3QgdGhlIHBsdWdpbiDigJQgc28gbGFiZWxzIGFyZSBuZXZlciByZWFkIGZyb20gYW4gaW1hZ2UuXG4gKiAtIE9ubHkgdGhlIEZJTkFMIHN0YWdlIGNvdW50cyAocGx1cyBhbnkgZWFybGllciBzdGFnZSBpdCBpcyBidWlsdCBgRlJPTWApOlxuICogICBsYWJlbHMgYW5kIGBVU0VSYCBzZXQgaW4gYSBkaXNjYXJkZWQgYnVpbGQgc3RhZ2UgbmV2ZXIgcmVhY2ggdGhlIGltYWdlLlxuICogLSBBIHZhbHVlIGNvbnRhaW5pbmcgYCRgIGlzIGlnbm9yZWQ6IGJ1aWxkIGFyZ3VtZW50cyBhcmVuJ3Qga25vd24gYXQgdXBsb2FkLFxuICogICBzbyB0aGUgc3RhdGljIHRleHQgaXMgbm90IHdoYXQgdGhlIGltYWdlIHdvdWxkIGNhcnJ5LlxuICogLSBWYWx1ZXMgYXJlIHVudHJ1c3RlZCB0ZXh0LCBleGFjdGx5IGxpa2UgdGhlIHNwZWMuXG4gKlxuICogSGFuZGxlcyB0aGUgYCMgZXNjYXBlPWAgcGFyc2VyIGRpcmVjdGl2ZSwgbGluZSBjb250aW51YXRpb25zICh3aXRoIGNvbW1lbnRcbiAqIGxpbmVzIGluc2lkZSBhIGNvbnRpbnVhdGlvbiBza2lwcGVkLCBhcyBEb2NrZXIgZG9lcyksIGBrZXk9dmFsdWVgIHBhaXJzIHdpdGhcbiAqIGRvdWJsZSBxdW90ZXMgKGJhY2tzbGFzaCBlc2NhcGVzKSBvciBzaW5nbGUgcXVvdGVzIChsaXRlcmFsKSwgYW5kIHRoZSBsZWdhY3lcbiAqIGBMQUJFTCBrZXkgdmFsdWVgIGZvcm0uXG4gKi9cblxuLyoqIE1heCBEb2NrZXJmaWxlIHRleHQgcmVhZCAoYnl0ZXMpLiBMYXJnZXIgaW5wdXRzIGFyZSB0cnVuY2F0ZWQsIG5ldmVyIHBhcnNlZCB3aG9sZS4gKi9cbmNvbnN0IE1BWF9ET0NLRVJGSUxFX0NIQVJTID0gMjU2ICogMTAyNDtcblxuaW50ZXJmYWNlIFN0YWdlIHtcbiAgLyoqIExvd2VyY2FzZWQgYEFTYCBhbGlhcywgaWYgYW55LiAqL1xuICBhbGlhczogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIExvd2VyY2FzZWQgYmFzZSByZWZlcmVuY2UgKGBGUk9NIDxiYXNlPmApLiAqL1xuICBiYXNlOiBzdHJpbmc7XG4gIC8qKiBUaGUgYmFzZSByZWZlcmVuY2UgYXMgd3JpdHRlbiAoaW1hZ2UgcmVmcyBhcmUgY2FzZS1zZW5zaXRpdmUgaW4gdGFncykuICovXG4gIHJhd0Jhc2U6IHN0cmluZztcbiAgbGFiZWxzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogTGFzdCBgVVNFUmAgaW4gdGhlIHN0YWdlIChyYXcpLCBvciBudWxsIHdoZW4gdGhlIHN0YWdlIHNldHMgbm9uZS4gKi9cbiAgdXNlcjogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFdoYXQgdGhlIHBsdWdpbidzIERvY2tlcmZpbGUgaXRzZWxmIGRlY2xhcmVzIGZvciBpdHMgZmluYWwgaW1hZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlcmZpbGVGYWN0cyB7XG4gIC8qKiBUaGUgZmluYWwgaW1hZ2UncyBvd24gbGFiZWxzIChsYXRlciBpbnN0cnVjdGlvbnMgd2luKS4gKi9cbiAgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogVGhlIGZpbmFsIGltYWdlJ3Mgb3duIGBVU0VSYCwgb3IgbnVsbCB3aGVuIHRoZSBEb2NrZXJmaWxlIHNldHMgbm9uZS4gKi9cbiAgZmluYWxVc2VyOiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogVGhlIGV4dGVybmFsIGltYWdlIHRoZSBmaW5hbCBzdGFnZSBpcyB1bHRpbWF0ZWx5IGJ1aWx0IGBGUk9NYCAoZm9sbG93aW5nXG4gICAqIHN0YWdlIGFsaWFzZXMpLCBhcyB3cml0dGVuOyBudWxsIHdoZW4gdGhlcmUgaXMgbm8gYEZST01gLCBpdCBpcyBgc2NyYXRjaGAsXG4gICAqIG9yIGl0IGRlcGVuZHMgb24gYSBidWlsZCBhcmd1bWVudCAoYCRgKSwgd2hpY2ggaXNuJ3Qga25vd24gc3RhdGljYWxseS5cbiAgICovXG4gIGJhc2VJbWFnZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFRoZSBlc2NhcGUgY2hhcmFjdGVyIGZyb20gYSBsZWFkaW5nIGAjIGVzY2FwZT1gIGRpcmVjdGl2ZSAoZGVmYXVsdCBgXFxgKS4gKi9cbmZ1bmN0aW9uIGVzY2FwZUNoYXJPZihsaW5lczogc3RyaW5nW10pOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBjb25zdCB0ID0gbGluZS50cmltKCk7XG4gICAgaWYgKHQgPT09ICcnKSBjb250aW51ZTtcbiAgICBjb25zdCBtID0gL14jXFxzKmVzY2FwZVxccyo9XFxzKihbYFxcXFxdKVxccyokL2kuZXhlYyh0KTtcbiAgICBpZiAobSkgcmV0dXJuIG1bMV0hO1xuICAgIC8vIFBhcnNlciBkaXJlY3RpdmVzIG11c3QgY29tZSBmaXJzdDsgYW55IG90aGVyIGRpcmVjdGl2ZS1zaGFwZWQgY29tbWVudCBpc1xuICAgIC8vIHNraXBwZWQsIGFueXRoaW5nIGVsc2UgZW5kcyB0aGUgZGlyZWN0aXZlIGJsb2NrLlxuICAgIGlmICghL14jXFxzKlxcdytcXHMqPS8udGVzdCh0KSkgYnJlYWs7XG4gIH1cbiAgcmV0dXJuICdcXFxcJztcbn1cblxuLyoqIFBoeXNpY2FsIGxpbmVzIOKGkiBsb2dpY2FsIGluc3RydWN0aW9ucyAoY29udGludWF0aW9ucyBqb2luZWQsIGNvbW1lbnRzIGRyb3BwZWQpLiAqL1xuZnVuY3Rpb24gbG9naWNhbExpbmVzKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXMgPSBjb250ZW50LnNsaWNlKDAsIE1BWF9ET0NLRVJGSUxFX0NIQVJTKS5yZXBsYWNlKC9cXHJcXG4/L2csICdcXG4nKS5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IGVzYyA9IGVzY2FwZUNoYXJPZihsaW5lcyk7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGN1cnJlbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBmb3IgKGNvbnN0IHJhdyBvZiBsaW5lcykge1xuICAgIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpO1xuICAgIGlmIChjdXJyZW50ID09PSBudWxsICYmICh0cmltbWVkID09PSAnJyB8fCB0cmltbWVkLnN0YXJ0c1dpdGgoJyMnKSkpIGNvbnRpbnVlO1xuICAgIC8vIERvY2tlciBza2lwcyBjb21tZW50IGFuZCBlbXB0eSBsaW5lcyBpbnNpZGUgYSBjb250aW51YXRpb24uXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgKHRyaW1tZWQgPT09ICcnIHx8IHRyaW1tZWQuc3RhcnRzV2l0aCgnIycpKSkgY29udGludWU7XG4gICAgY29uc3QgY29udGludWVkID0gcmF3LnJlcGxhY2UoL1xccyskLywgJycpLmVuZHNXaXRoKGVzYyk7XG4gICAgY29uc3QgYm9keSA9IGNvbnRpbnVlZCA/IHJhdy5yZXBsYWNlKC9cXHMrJC8sICcnKS5zbGljZSgwLCAtMSkgOiByYXc7XG4gICAgY3VycmVudCA9IGN1cnJlbnQgPT09IG51bGwgPyBib2R5IDogYCR7Y3VycmVudH0ke2JvZHl9YDtcbiAgICBpZiAoIWNvbnRpbnVlZCkge1xuICAgICAgb3V0LnB1c2goY3VycmVudC50cmltKCkpO1xuICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgfVxuICB9XG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQudHJpbSgpKSBvdXQucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKlxuICogU3BsaXQgYExBQkVMYCBhcmd1bWVudHMgaW50byB3b3JkcywgaG9ub3VyaW5nIGRvdWJsZSBxdW90ZXMgKHdpdGggYmFja3NsYXNoXG4gKiBlc2NhcGVzKSBhbmQgc2luZ2xlIHF1b3RlcyAobGl0ZXJhbCkuIFJldHVybnMgbnVsbCBvbiBhbiB1bnRlcm1pbmF0ZWQgcXVvdGUuXG4gKi9cbmZ1bmN0aW9uIHNwbGl0V29yZHMoYXJnczogc3RyaW5nKTogc3RyaW5nW10gfCBudWxsIHtcbiAgY29uc3Qgd29yZHM6IHN0cmluZ1tdID0gW107XG4gIGxldCB3b3JkID0gJyc7XG4gIGxldCBpbldvcmQgPSBmYWxzZTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IGFyZ3NbaV0hO1xuICAgIGlmIChjID09PSAnXCInKSB7XG4gICAgICBpbldvcmQgPSB0cnVlO1xuICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgIGZvciAoOyBqIDwgYXJncy5sZW5ndGggJiYgYXJnc1tqXSAhPT0gJ1wiJzsgaisrKSB7XG4gICAgICAgIGlmIChhcmdzW2pdID09PSAnXFxcXCcgJiYgaiArIDEgPCBhcmdzLmxlbmd0aCkgaisrO1xuICAgICAgICB3b3JkICs9IGFyZ3Nbal07XG4gICAgICB9XG4gICAgICBpZiAoaiA+PSBhcmdzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgICBpID0gajtcbiAgICB9IGVsc2UgaWYgKGMgPT09ICdcXCcnKSB7XG4gICAgICBpbldvcmQgPSB0cnVlO1xuICAgICAgY29uc3QgZW5kID0gYXJncy5pbmRleE9mKCdcXCcnLCBpICsgMSk7XG4gICAgICBpZiAoZW5kIDwgMCkgcmV0dXJuIG51bGw7XG4gICAgICB3b3JkICs9IGFyZ3Muc2xpY2UoaSArIDEsIGVuZCk7XG4gICAgICBpID0gZW5kO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gJ1xcXFwnICYmIGkgKyAxIDwgYXJncy5sZW5ndGgpIHtcbiAgICAgIGluV29yZCA9IHRydWU7XG4gICAgICB3b3JkICs9IGFyZ3NbKytpXTtcbiAgICB9IGVsc2UgaWYgKC9cXHMvLnRlc3QoYykpIHtcbiAgICAgIGlmIChpbldvcmQpIHdvcmRzLnB1c2god29yZCk7XG4gICAgICB3b3JkID0gJyc7XG4gICAgICBpbldvcmQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5Xb3JkID0gdHJ1ZTtcbiAgICAgIHdvcmQgKz0gYztcbiAgICB9XG4gIH1cbiAgaWYgKGluV29yZCkgd29yZHMucHVzaCh3b3JkKTtcbiAgcmV0dXJuIHdvcmRzO1xufVxuXG4vKiogVGhlIGBrZXkg4oaSIHZhbHVlYCBwYWlycyBvZiBvbmUgYExBQkVMYCBpbnN0cnVjdGlvbidzIGFyZ3VtZW50cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxhYmVsQXJncyhhcmdzOiBzdHJpbmcpOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiB7XG4gIGNvbnN0IHRyaW1tZWQgPSBhcmdzLnRyaW0oKTtcbiAgLy8gTGVnYWN5IGZvcm06IGBMQUJFTCBrZXkgdmFsdWUgd2l0aCBzcGFjZXNgIChubyBgPWAgaW4gdGhlIGZpcnN0IHdvcmQpLlxuICBjb25zdCBmaXJzdFdvcmQgPSAvXlxcUysvLmV4ZWModHJpbW1lZCk/LlswXSA/PyAnJztcbiAgaWYgKGZpcnN0V29yZCAmJiAhZmlyc3RXb3JkLmluY2x1ZGVzKCc9JykpIHtcbiAgICBjb25zdCB3b3JkcyA9IHNwbGl0V29yZHModHJpbW1lZCk7XG4gICAgaWYgKCF3b3JkcyB8fCB3b3Jkcy5sZW5ndGggPCAyKSByZXR1cm4gW107XG4gICAgcmV0dXJuIFtbd29yZHNbMF0hLCB3b3Jkcy5zbGljZSgxKS5qb2luKCcgJyldXTtcbiAgfVxuICBjb25zdCB3b3JkcyA9IHNwbGl0V29yZHModHJpbW1lZCk7XG4gIGlmICghd29yZHMpIHJldHVybiBbXTtcbiAgY29uc3QgcGFpcnM6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+ID0gW107XG4gIGZvciAoY29uc3QgdyBvZiB3b3Jkcykge1xuICAgIGNvbnN0IGVxID0gdy5pbmRleE9mKCc9Jyk7XG4gICAgaWYgKGVxIDw9IDApIGNvbnRpbnVlO1xuICAgIHBhaXJzLnB1c2goW3cuc2xpY2UoMCwgZXEpLCB3LnNsaWNlKGVxICsgMSldKTtcbiAgfVxuICByZXR1cm4gcGFpcnM7XG59XG5cbi8qKiBQYXJzZSB3aGF0IGBjb250ZW50YCBkZWNsYXJlcyBmb3IgaXRzIGZpbmFsIGltYWdlLiBOZXZlciB0aHJvd3MuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEb2NrZXJmaWxlKGNvbnRlbnQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBEb2NrZXJmaWxlRmFjdHMge1xuICBjb25zdCBzdGFnZXM6IFN0YWdlW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxvZ2ljYWxMaW5lcyhjb250ZW50ID8/ICcnKSkge1xuICAgIGNvbnN0IG0gPSAvXihcXFMrKVxccyooLiopJC9zLmV4ZWMobGluZSk7XG4gICAgaWYgKCFtKSBjb250aW51ZTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbiA9IG1bMV0hLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgYXJncyA9IG1bMl0gPz8gJyc7XG4gICAgaWYgKGluc3RydWN0aW9uID09PSAnRlJPTScpIHtcbiAgICAgIC8vIEZST00gWy0tcGxhdGZvcm094oCmXSA8aW1hZ2U+IFtBUyA8bmFtZT5dXG4gICAgICBjb25zdCB3b3JkcyA9IGFyZ3Muc3BsaXQoL1xccysvKS5maWx0ZXIoKHcpID0+IHcgJiYgIXcuc3RhcnRzV2l0aCgnLS0nKSk7XG4gICAgICBjb25zdCBhc0lkeCA9IHdvcmRzLmZpbmRJbmRleCgodykgPT4gdy50b0xvd2VyQ2FzZSgpID09PSAnYXMnKTtcbiAgICAgIHN0YWdlcy5wdXNoKHtcbiAgICAgICAgYmFzZTogKHdvcmRzWzBdID8/ICcnKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICByYXdCYXNlOiB3b3Jkc1swXSA/PyAnJyxcbiAgICAgICAgYWxpYXM6IGFzSWR4ID49IDAgJiYgd29yZHNbYXNJZHggKyAxXSA/IHdvcmRzW2FzSWR4ICsgMV0hLnRvTG93ZXJDYXNlKCkgOiBudWxsLFxuICAgICAgICBsYWJlbHM6IG5ldyBNYXAoKSxcbiAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHN0YWdlID0gc3RhZ2VzW3N0YWdlcy5sZW5ndGggLSAxXTtcbiAgICBpZiAoIXN0YWdlKSBjb250aW51ZTsgLy8gSW5zdHJ1Y3Rpb25zIGJlZm9yZSB0aGUgZmlyc3QgRlJPTSAoQVJHKSBzZXQgbm90aGluZyBvbiB0aGUgaW1hZ2UuXG4gICAgaWYgKGluc3RydWN0aW9uID09PSAnTEFCRUwnKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBwYXJzZUxhYmVsQXJncyhhcmdzKSkge1xuICAgICAgICBpZiAodi5pbmNsdWRlcygnJCcpIHx8IGsuaW5jbHVkZXMoJyQnKSkge1xuICAgICAgICAgIHN0YWdlLmxhYmVscy5kZWxldGUoayk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc3RhZ2UubGFiZWxzLnNldChrLCB2KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGluc3RydWN0aW9uID09PSAnVVNFUicpIHtcbiAgICAgIHN0YWdlLnVzZXIgPSBhcmdzLnRyaW0oKSB8fCBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGFnZXMubGVuZ3RoID09PSAwKSByZXR1cm4geyBsYWJlbHM6IHt9LCBmaW5hbFVzZXI6IG51bGwsIGJhc2VJbWFnZTogbnVsbCB9O1xuXG4gIC8vIFRoZSBmaW5hbCBzdGFnZSwgcHJlY2VkZWQgYnkgdGhlIGNoYWluIG9mIGVhcmxpZXIgc3RhZ2VzIGl0IGlzIGJ1aWx0IEZST01cbiAgLy8gKGl0cyBvd24gY29udGVudCwgbm90IGEgYmFzZSBpbWFnZSdzKSwgb2xkZXN0IGZpcnN0LlxuICBjb25zdCBjaGFpbjogU3RhZ2VbXSA9IFtdO1xuICBsZXQgY3Vyc29yOiBTdGFnZSB8IHVuZGVmaW5lZCA9IHN0YWdlc1tzdGFnZXMubGVuZ3RoIC0gMV07XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PFN0YWdlPigpO1xuICB3aGlsZSAoY3Vyc29yICYmICFzZWVuLmhhcyhjdXJzb3IpKSB7XG4gICAgc2Vlbi5hZGQoY3Vyc29yKTtcbiAgICBjaGFpbi51bnNoaWZ0KGN1cnNvcik7XG4gICAgY29uc3QgYmFzZTogc3RyaW5nID0gY3Vyc29yLmJhc2U7XG4gICAgY29uc3QgaWR4ID0gc3RhZ2VzLmluZGV4T2YoY3Vyc29yKTtcbiAgICBjdXJzb3IgPSBzdGFnZXMuc2xpY2UoMCwgaWR4KS5yZXZlcnNlKCkuZmluZCgocykgPT4gcy5hbGlhcyAhPT0gbnVsbCAmJiBzLmFsaWFzID09PSBiYXNlKTtcbiAgfVxuXG4gIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBsZXQgZmluYWxVc2VyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCBzIG9mIGNoYWluKSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2Ygcy5sYWJlbHMpIGxhYmVsc1trXSA9IHY7XG4gICAgaWYgKHMudXNlciAhPT0gbnVsbCkgZmluYWxVc2VyID0gcy51c2VyO1xuICB9XG4gIGNvbnN0IHJvb3QgPSBjaGFpblswXSEucmF3QmFzZTtcbiAgY29uc3QgYmFzZUltYWdlID0gcm9vdCA9PT0gJycgfHwgcm9vdC5pbmNsdWRlcygnJCcpIHx8IHJvb3QudG9Mb3dlckNhc2UoKSA9PT0gJ3NjcmF0Y2gnID8gbnVsbCA6IHJvb3Q7XG4gIHJldHVybiB7IGxhYmVscywgZmluYWxVc2VyLCBiYXNlSW1hZ2UgfTtcbn1cblxuLyoqIFRoZSBPQ0kgYW5ub3RhdGlvbiBrZXlzIHRoZSBjYXRhbG9nIHJlYWRzLiAqL1xuZXhwb3J0IGNvbnN0IE9DSV9MQUJFTFMgPSB7XG4gIHRpdGxlOiAnb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlJyxcbiAgZGVzY3JpcHRpb246ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZGVzY3JpcHRpb24nLFxuICBsaWNlbnNlczogJ29yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlcycsXG4gIHVybDogJ29yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmwnLFxuICBzb3VyY2U6ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlJyxcbiAgZG9jdW1lbnRhdGlvbjogJ29yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kb2N1bWVudGF0aW9uJyxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -3,7 +3,7 @@ export * from './pipeline-schemas.js';
3
3
  export { PipelineTemplateFilterSchema, PipelineTemplateCreateSchema, PipelineTemplateUpdateSchema, InstantiateTemplateSchema, } from './pipeline-template-schemas.js';
4
4
  export * from './plugin-schemas.js';
5
5
  export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractKeys, contractKeysMessage, ICON_KEY_PATTERN, PluginCatalogEditsSchema, type PluginCatalogEdits, PLUGIN_CONTRACT_FIELDS, } from './plugin-catalog-metadata.js';
6
- export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, } from './message-schemas.js';
6
+ export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageSentBySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, MessageHideSchema, MessageBulkIdsSchema, MessageBulkReadSchema, MESSAGE_BULK_MAX_IDS, } from './message-schemas.js';
7
7
  export * from './ai-schemas.js';
8
8
  export { validate, validateQuery, validateBody, } from './middleware.js';
9
9
  export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, type PluginBuildType, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, type PluginSpecInput, type PackageCheck, } from './plugin-spec-schema.js';
@@ -5,7 +5,7 @@ export * from './pipeline-schemas.js';
5
5
  export { PipelineTemplateFilterSchema, PipelineTemplateCreateSchema, PipelineTemplateUpdateSchema, InstantiateTemplateSchema, } from './pipeline-template-schemas.js';
6
6
  export * from './plugin-schemas.js';
7
7
  export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractKeys, contractKeysMessage, ICON_KEY_PATTERN, PluginCatalogEditsSchema, PLUGIN_CONTRACT_FIELDS, } from './plugin-catalog-metadata.js';
8
- export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, } from './message-schemas.js';
8
+ export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageSentBySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, MessageHideSchema, MessageBulkIdsSchema, MessageBulkReadSchema, MESSAGE_BULK_MAX_IDS, } from './message-schemas.js';
9
9
  export * from './ai-schemas.js';
10
10
  export { validate, validateQuery, validateBody, } from './middleware.js';
11
11
  export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, } from './plugin-spec-schema.js';
@@ -16,4 +16,4 @@ export { lintPluginDockerfile, lintPluginSpec } from './plugin-lint.js';
16
16
  export * from './plugin-base-images.js';
17
17
  export { shannonEntropy, scanPluginSourceHeuristics, blockingHeuristics, HEURISTICS_MAX_FILE_BYTES, HEURISTICS_MAX_FINDINGS, } from './plugin-heuristics.js';
18
18
  export { findConfusableName } from './plugin-name-confusable.js';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQix3QkFBd0IsRUFFeEIsc0JBQXNCLEdBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLGFBQWEsRUFDYixZQUFZLEdBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsK0JBQStCLEVBQy9CLFlBQVksRUFDWixvQkFBb0IsRUFFcEIsbUJBQW1CLEVBQ25CLHNCQUFzQixHQUd2QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUl0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QiwyQkFBMkIsR0FHNUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBQ2hHLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBS2xCLHlCQUF5QixFQUN6Qix1QkFBdUIsR0FDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQge1xuICBWaXNpYmlsaXR5U2NoZW1hLFxuICBNQVhfUEFHRV9MSU1JVCxcbiAgREVGQVVMVF9QQUdFX0xJTUlULFxuICBVVUlEUHJlZml4U2NoZW1hLFxufSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUtc2NoZW1hcy5qcyc7XG5leHBvcnQge1xuICBQaXBlbGluZVRlbXBsYXRlRmlsdGVyU2NoZW1hLFxuICBQaXBlbGluZVRlbXBsYXRlQ3JlYXRlU2NoZW1hLFxuICBQaXBlbGluZVRlbXBsYXRlVXBkYXRlU2NoZW1hLFxuICBJbnN0YW50aWF0ZVRlbXBsYXRlU2NoZW1hLFxufSBmcm9tICcuL3BpcGVsaW5lLXRlbXBsYXRlLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW4tc2NoZW1hcy5qcyc7XG5leHBvcnQge1xuICBpc0FsbG93ZWRTcGR4SWQsXG4gIHByb2plY3RVcmxQcm9ibGVtLFxuICB2YWxpZGF0ZUNhdGFsb2dGaWVsZCxcbiAgZmluZENvbnRyYWN0S2V5cyxcbiAgY29udHJhY3RLZXlzTWVzc2FnZSxcbiAgSUNPTl9LRVlfUEFUVEVSTixcbiAgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dFZGl0cyxcbiAgUExVR0lOX0NPTlRSQUNUX0ZJRUxEUyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5leHBvcnQge1xuICBpc0FsbG93ZWRBdHRhY2htZW50VHlwZSxcbiAgTWVzc2FnZVR5cGVTY2hlbWEsXG4gIE1lc3NhZ2VQcmlvcml0eVNjaGVtYSxcbiAgTWVzc2FnZUZpbHRlclNjaGVtYSxcbiAgTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9CWVRFUyxcbiAgTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfTUlNRSxcbiAgTWVzc2FnZUNyZWF0ZVNjaGVtYSxcbiAgTWVzc2FnZVJlcGx5U2NoZW1hLFxuICBNZXNzYWdlRWRpdFNjaGVtYSxcbn0gZnJvbSAnLi9tZXNzYWdlLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9haS1zY2hlbWFzLmpzJztcbmV4cG9ydCB7XG4gIHZhbGlkYXRlLFxuICB2YWxpZGF0ZVF1ZXJ5LFxuICB2YWxpZGF0ZUJvZHksXG59IGZyb20gJy4vbWlkZGxld2FyZS5qcyc7XG5leHBvcnQge1xuICBpc1ZhbGlkRWdyZXNzSG9zdCxcbiAgY2hlY2tQbHVnaW5TcGVjLFxuICBjaGVja1BsdWdpbkNvbmZpZyxcbiAgcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbSxcbiAgUExVR0lOX1RZUEVTLFxuICBQTFVHSU5fQ09NUFVURV9UWVBFUyxcbiAgdHlwZSBQbHVnaW5CdWlsZFR5cGUsXG4gIFBMVUdJTl9OQU1FX1BBVFRFUk4sXG4gIFBMVUdJTl9WRVJTSU9OX1BBVFRFUk4sXG4gIHR5cGUgUGx1Z2luU3BlY0lucHV0LFxuICB0eXBlIFBhY2thZ2VDaGVjayxcbn0gZnJvbSAnLi9wbHVnaW4tc3BlYy1zY2hlbWEuanMnO1xuZXhwb3J0IHtcbiAgc3RyaXBJbmxpbmVNYXJrZG93bixcbiAgcmVhZG1lVGl0bGUsXG4gIHJlYWRtZUZpcnN0UGFyYWdyYXBoLFxuICBmaXJzdFNlbnRlbmNlLFxuICBkZXRlY3RDYXRhbG9nTWV0YWRhdGEsXG4gIHJlc29sdmVDYXRhbG9nTWV0YWRhdGEsXG4gIGFjY2VwdEFsbENhdGFsb2dNZXRhZGF0YSxcbiAgcGFyc2VDYXRhbG9nRWRpdHMsXG4gIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCxcbiAgdHlwZSBEZXRlY3RlZEZpZWxkLFxuICB0eXBlIENhdGFsb2dTcGVjRmllbGRzLFxuICB0eXBlIFJlc29sdmVkQ2F0YWxvZyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1kZXRlY3QuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VMYWJlbEFyZ3MsXG4gIHBhcnNlRG9ja2VyZmlsZSxcbiAgT0NJX0xBQkVMUyxcbn0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5leHBvcnQge1xuICBpc1BsdWdpblRlbXBsYXRhYmxlRmllbGQsXG4gIGNoZWNrUGx1Z2luVGVtcGxhdGVzLFxuICBmb3JtYXRQbHVnaW5UZW1wbGF0ZUlzc3VlLFxuICBQTFVHSU5fVEVNUExBVEVfU0NPUEVfUk9PVFMsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVFbmdpbmUsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVJc3N1ZSxcbn0gZnJvbSAnLi9wbHVnaW4tdGVtcGxhdGUtY29udHJhY3QuanMnO1xuZXhwb3J0IHsgbGludFBsdWdpbkRvY2tlcmZpbGUsIGxpbnRQbHVnaW5TcGVjLCB0eXBlIFBsdWdpbkxpbnRGaW5kaW5nIH0gZnJvbSAnLi9wbHVnaW4tbGludC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1iYXNlLWltYWdlcy5qcyc7XG5leHBvcnQge1xuICBzaGFubm9uRW50cm9weSxcbiAgc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MsXG4gIGJsb2NraW5nSGV1cmlzdGljcyxcbiAgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSxcbiAgdHlwZSBIZXVyaXN0aWNGaW5kaW5nLFxuICB0eXBlIEhldXJpc3RpY3NSZXBvcnQsXG4gIHR5cGUgSGV1cmlzdGljc0lucHV0RmlsZSxcbiAgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyxcbiAgSEVVUklTVElDU19NQVhfRklORElOR1MsXG59IGZyb20gJy4vcGx1Z2luLWhldXJpc3RpY3MuanMnO1xuZXhwb3J0IHsgZmluZENvbmZ1c2FibGVOYW1lIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1jb25mdXNhYmxlLmpzJztcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUV4QixzQkFBc0IsR0FDdkIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixZQUFZLEVBQ1osb0JBQW9CLEVBRXBCLG1CQUFtQixFQUNuQixzQkFBc0IsR0FHdkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixxQkFBcUIsR0FJdEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFDZixVQUFVLEdBQ1gsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsMkJBQTJCLEdBRzVCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUtsQix5QkFBeUIsRUFDekIsdUJBQXVCLEdBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IHtcbiAgVmlzaWJpbGl0eVNjaGVtYSxcbiAgTUFYX1BBR0VfTElNSVQsXG4gIERFRkFVTFRfUEFHRV9MSU1JVCxcbiAgVVVJRFByZWZpeFNjaGVtYSxcbn0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lLXNjaGVtYXMuanMnO1xuZXhwb3J0IHtcbiAgUGlwZWxpbmVUZW1wbGF0ZUZpbHRlclNjaGVtYSxcbiAgUGlwZWxpbmVUZW1wbGF0ZUNyZWF0ZVNjaGVtYSxcbiAgUGlwZWxpbmVUZW1wbGF0ZVVwZGF0ZVNjaGVtYSxcbiAgSW5zdGFudGlhdGVUZW1wbGF0ZVNjaGVtYSxcbn0gZnJvbSAnLi9waXBlbGluZS10ZW1wbGF0ZS1zY2hlbWFzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLXNjaGVtYXMuanMnO1xuZXhwb3J0IHtcbiAgaXNBbGxvd2VkU3BkeElkLFxuICBwcm9qZWN0VXJsUHJvYmxlbSxcbiAgdmFsaWRhdGVDYXRhbG9nRmllbGQsXG4gIGZpbmRDb250cmFjdEtleXMsXG4gIGNvbnRyYWN0S2V5c01lc3NhZ2UsXG4gIElDT05fS0VZX1BBVFRFUk4sXG4gIFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYSxcbiAgdHlwZSBQbHVnaW5DYXRhbG9nRWRpdHMsXG4gIFBMVUdJTl9DT05UUkFDVF9GSUVMRFMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuZXhwb3J0IHtcbiAgaXNBbGxvd2VkQXR0YWNobWVudFR5cGUsXG4gIE1lc3NhZ2VUeXBlU2NoZW1hLFxuICBNZXNzYWdlUHJpb3JpdHlTY2hlbWEsXG4gIE1lc3NhZ2VTZW50QnlTY2hlbWEsXG4gIE1lc3NhZ2VGaWx0ZXJTY2hlbWEsXG4gIE1FU1NBR0VfQVRUQUNITUVOVF9NQVhfQllURVMsXG4gIE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX01JTUUsXG4gIE1lc3NhZ2VDcmVhdGVTY2hlbWEsXG4gIE1lc3NhZ2VSZXBseVNjaGVtYSxcbiAgTWVzc2FnZUVkaXRTY2hlbWEsXG4gIE1lc3NhZ2VIaWRlU2NoZW1hLFxuICBNZXNzYWdlQnVsa0lkc1NjaGVtYSxcbiAgTWVzc2FnZUJ1bGtSZWFkU2NoZW1hLFxuICBNRVNTQUdFX0JVTEtfTUFYX0lEUyxcbn0gZnJvbSAnLi9tZXNzYWdlLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9haS1zY2hlbWFzLmpzJztcbmV4cG9ydCB7XG4gIHZhbGlkYXRlLFxuICB2YWxpZGF0ZVF1ZXJ5LFxuICB2YWxpZGF0ZUJvZHksXG59IGZyb20gJy4vbWlkZGxld2FyZS5qcyc7XG5leHBvcnQge1xuICBpc1ZhbGlkRWdyZXNzSG9zdCxcbiAgY2hlY2tQbHVnaW5TcGVjLFxuICBjaGVja1BsdWdpbkNvbmZpZyxcbiAgcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbSxcbiAgUExVR0lOX1RZUEVTLFxuICBQTFVHSU5fQ09NUFVURV9UWVBFUyxcbiAgdHlwZSBQbHVnaW5CdWlsZFR5cGUsXG4gIFBMVUdJTl9OQU1FX1BBVFRFUk4sXG4gIFBMVUdJTl9WRVJTSU9OX1BBVFRFUk4sXG4gIHR5cGUgUGx1Z2luU3BlY0lucHV0LFxuICB0eXBlIFBhY2thZ2VDaGVjayxcbn0gZnJvbSAnLi9wbHVnaW4tc3BlYy1zY2hlbWEuanMnO1xuZXhwb3J0IHtcbiAgc3RyaXBJbmxpbmVNYXJrZG93bixcbiAgcmVhZG1lVGl0bGUsXG4gIHJlYWRtZUZpcnN0UGFyYWdyYXBoLFxuICBmaXJzdFNlbnRlbmNlLFxuICBkZXRlY3RDYXRhbG9nTWV0YWRhdGEsXG4gIHJlc29sdmVDYXRhbG9nTWV0YWRhdGEsXG4gIGFjY2VwdEFsbENhdGFsb2dNZXRhZGF0YSxcbiAgcGFyc2VDYXRhbG9nRWRpdHMsXG4gIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCxcbiAgdHlwZSBEZXRlY3RlZEZpZWxkLFxuICB0eXBlIENhdGFsb2dTcGVjRmllbGRzLFxuICB0eXBlIFJlc29sdmVkQ2F0YWxvZyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1kZXRlY3QuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VMYWJlbEFyZ3MsXG4gIHBhcnNlRG9ja2VyZmlsZSxcbiAgT0NJX0xBQkVMUyxcbn0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5leHBvcnQge1xuICBpc1BsdWdpblRlbXBsYXRhYmxlRmllbGQsXG4gIGNoZWNrUGx1Z2luVGVtcGxhdGVzLFxuICBmb3JtYXRQbHVnaW5UZW1wbGF0ZUlzc3VlLFxuICBQTFVHSU5fVEVNUExBVEVfU0NPUEVfUk9PVFMsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVFbmdpbmUsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVJc3N1ZSxcbn0gZnJvbSAnLi9wbHVnaW4tdGVtcGxhdGUtY29udHJhY3QuanMnO1xuZXhwb3J0IHsgbGludFBsdWdpbkRvY2tlcmZpbGUsIGxpbnRQbHVnaW5TcGVjLCB0eXBlIFBsdWdpbkxpbnRGaW5kaW5nIH0gZnJvbSAnLi9wbHVnaW4tbGludC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1iYXNlLWltYWdlcy5qcyc7XG5leHBvcnQge1xuICBzaGFubm9uRW50cm9weSxcbiAgc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MsXG4gIGJsb2NraW5nSGV1cmlzdGljcyxcbiAgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSxcbiAgdHlwZSBIZXVyaXN0aWNGaW5kaW5nLFxuICB0eXBlIEhldXJpc3RpY3NSZXBvcnQsXG4gIHR5cGUgSGV1cmlzdGljc0lucHV0RmlsZSxcbiAgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyxcbiAgSEVVUklTVElDU19NQVhfRklORElOR1MsXG59IGZyb20gJy4vcGx1Z2luLWhldXJpc3RpY3MuanMnO1xuZXhwb3J0IHsgZmluZENvbmZ1c2FibGVOYW1lIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1jb25mdXNhYmxlLmpzJztcbiJdfQ==
@@ -14,6 +14,14 @@ export declare const MessagePrioritySchema: z.ZodEnum<{
14
14
  normal: "normal";
15
15
  urgent: "urgent";
16
16
  }>;
17
+ /**
18
+ * Sender filter, relative to the viewer (see `MESSAGE_SENT_BY`).
19
+ */
20
+ export declare const MessageSentBySchema: z.ZodEnum<{
21
+ me: "me";
22
+ org: "org";
23
+ others: "others";
24
+ }>;
17
25
  /**
18
26
  * Channel/inbox-bucket schema. Open-ended string up to 50 chars so we
19
27
  * can add new channels (support, help, billing, …) without a schema
@@ -56,6 +64,8 @@ export declare const MessageFilterSchema: z.ZodObject<{
56
64
  experimental: "experimental";
57
65
  production: "production";
58
66
  }>>;
67
+ senderUserId: z.ZodOptional<z.ZodString>;
68
+ counterpartyOrgId: z.ZodOptional<z.ZodString>;
59
69
  threadId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"root">, z.ZodNull]>>;
60
70
  recipientOrgId: z.ZodOptional<z.ZodString>;
61
71
  messageType: z.ZodOptional<z.ZodEnum<{
@@ -72,6 +82,15 @@ export declare const MessageFilterSchema: z.ZodObject<{
72
82
  urgent: "urgent";
73
83
  }>>;
74
84
  channel: z.ZodOptional<z.ZodString>;
85
+ sentBy: z.ZodOptional<z.ZodEnum<{
86
+ me: "me";
87
+ org: "org";
88
+ others: "others";
89
+ }>>;
90
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
91
+ false: "false";
92
+ true: "true";
93
+ }>, z.ZodTransform<boolean, "false" | "true">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
75
94
  search: z.ZodOptional<z.ZodString>;
76
95
  }, z.core.$strip>;
77
96
  /**
@@ -151,3 +170,57 @@ export declare const MessageReplySchema: z.ZodObject<{
151
170
  export declare const MessageEditSchema: z.ZodObject<{
152
171
  content: z.ZodString;
153
172
  }, z.core.$strip>;
173
+ /** Most rows one bulk call (hide / unhide / read / delete) may name; a page of checkboxes is 25. */
174
+ export declare const MESSAGE_BULK_MAX_IDS = 200;
175
+ /**
176
+ * Bulk "remove from my inbox", scoped by the SAME filters the list takes —
177
+ * optionally narrowed further to an explicit `ids` selection (the inbox's
178
+ * checkboxes).
179
+ *
180
+ * Every field is optional and every one NARROWS: an empty body means "the whole
181
+ * tab". There is deliberately no `orgId` — the org comes from the authenticated
182
+ * route. `ids` cannot widen anything either: it is AND-ed with the same
183
+ * visibility conditions the list uses, so naming a row the caller cannot see
184
+ * simply matches nothing, and the write only ever stamps the caller's OWN
185
+ * `hiddenBy[orgId]`.
186
+ */
187
+ export declare const MessageHideSchema: z.ZodObject<{
188
+ senderUserId: z.ZodOptional<z.ZodString>;
189
+ counterpartyOrgId: z.ZodOptional<z.ZodString>;
190
+ ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
191
+ messageType: z.ZodOptional<z.ZodEnum<{
192
+ announcement: "announcement";
193
+ conversation: "conversation";
194
+ }>>;
195
+ isRead: z.ZodOptional<z.ZodBoolean>;
196
+ priority: z.ZodOptional<z.ZodEnum<{
197
+ high: "high";
198
+ normal: "normal";
199
+ urgent: "urgent";
200
+ }>>;
201
+ channel: z.ZodOptional<z.ZodString>;
202
+ sentBy: z.ZodOptional<z.ZodEnum<{
203
+ me: "me";
204
+ org: "org";
205
+ others: "others";
206
+ }>>;
207
+ search: z.ZodOptional<z.ZodString>;
208
+ }, z.core.$strip>;
209
+ /**
210
+ * `POST /messages/unhide` and `POST /messages/delete`: the ticked rows.
211
+ * Ids only — never a filter: restoring is the undo of a specific removal, and
212
+ * delete is per-row author-only, so neither may run against "everything
213
+ * matching".
214
+ */
215
+ export declare const MessageBulkIdsSchema: z.ZodObject<{
216
+ ids: z.ZodArray<z.ZodString>;
217
+ }, z.core.$strip>;
218
+ /**
219
+ * `POST /messages/read` — set THIS org's read state on the ticked rows.
220
+ * `isRead: true` also marks each thread's replies read (as opening it does);
221
+ * `false` clears the root's stamp only, which is what puts it back to unread.
222
+ */
223
+ export declare const MessageBulkReadSchema: z.ZodObject<{
224
+ ids: z.ZodArray<z.ZodString>;
225
+ isRead: z.ZodBoolean;
226
+ }, z.core.$strip>;