@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
@@ -159,4 +159,4 @@ export function findContractKeys(payload) {
159
159
  export function contractKeysMessage(keys) {
160
160
  return `These fields define what the plugin runs and can only change by uploading a new version: ${keys.join(', ')}`;
161
161
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsY0FBYyxHQUVmLE1BQU0sNEJBQTRCLENBQUM7QUFFcEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQzNELFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztJQUN0RixjQUFjLEVBQUUsY0FBYztJQUM5QixTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7SUFDL0IsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxtQkFBbUI7SUFDMUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxrQkFBa0I7SUFDdEUsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxXQUFXLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYztJQUN2RSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVU7SUFDckMsd0JBQXdCO0NBQ3pCLENBQUMsQ0FBQztBQUVILHFEQUFxRDtBQUNyRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQVU7SUFDeEMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFH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bGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQbHVnaW4gQ0FUQUxPRyBtZXRhZGF0YTogdGhlIGRlc2NyaXB0aXZlIGZpZWxkcyBhIHBsdWdpbiB2ZXJzaW9uIHNob3dzIGluIHRoZVxuICogY2F0YWxvZywgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSBhbmQgdGhlbiBhY2NlcHRlZCBvciBlZGl0ZWQgYnkgdGhlIHVzZXJcbiAqIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS5cbiAqXG4gKiBPTkUgdmFsaWRhdG9yIGZvciBib3RoIHBhdGhzOiBhIHZhbHVlIGRldGVjdGVkIGZyb20gdGhlIHBhY2thZ2UgKHNwZWMsXG4gKiBSRUFETUUsIHRoZSBwbHVnaW4ncyBvd24gRG9ja2VyZmlsZSBsYWJlbHMpIGFuZCBhIHZhbHVlIHR5cGVkIGludG8gYSBmb3JtIG9yXG4gKiBzZW50IGJ5IHRoZSBDTEkgcGFzcyB0aGUgc2FtZSBydWxlcy4gU2hhcmVkIGZyb20gYXBpLWNvcmUgc28gdGhlIHBsdWdpblxuICogc2VydmljZSwgdGhlIGZyb250ZW5kIGFuZCB0aGUgQ0xJIGNhbid0IGRyaWZ0LlxuICpcbiAqIE9ubHkgREVTQ1JJUFRJVkUgZmllbGRzIGxpdmUgaGVyZS4gRXhlY3V0aW9uLWNvbnRyYWN0IGZpZWxkcyAoY29tbWFuZHMsIGVudixcbiAqIHNlY3JldHMsIGNvbXB1dGUgdHlwZSwg4oCmKSBhcmUgc3BlYy1vbmx5IOKAlCBjaGFuZ2luZyBvbmUgaXMgYSBuZXcgdmVyc2lvbiB3aXRoIGFcbiAqIG5ldyBkaWdlc3Qg4oCUIGFuZCBhbiBlZGl0IHBheWxvYWQgbmFtaW5nIG9uZSBpcyByZWZ1c2VkXG4gKiAoe0BsaW5rIGZpbmRDb250cmFjdEtleXN9KS5cbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7XG4gIFBMVUdJTl9DQVRBTE9HX0ZJRUxEUyxcbiAgUExVR0lOX0NBVEVHT1JJRVMsXG4gIFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTLFxuICBQTFVHSU5fREVTQ1JJUFRJT05fTUFYLFxuICBQTFVHSU5fRElTUExBWV9OQU1FX01BWCxcbiAgUExVR0lOX0tFWVdPUkRfTUFYX0xFTkdUSCxcbiAgUExVR0lOX0tFWVdPUkRTX01BWCxcbiAgUExVR0lOX1JFQURNRV9NQVhfQllURVMsXG4gIFBMVUdJTl9TVU1NQVJZX01BWCxcbiAgUExVR0lOX1VSTF9NQVgsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLFxufSBmcm9tICcuLi90eXBlcy9wbHVnaW4tY2F0YWxvZy5qcyc7XG5cbi8qKlxuICogQWNjZXB0ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzIOKAlCBhIGNvbXBhY3QgYWxsb3dsaXN0IG9mIHRoZSBpZHMgdGhhdFxuICogY292ZXIgZWZmZWN0aXZlbHkgZXZlcnkgcHVibGlzaGVkIHBsdWdpbiwgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgfjcwMC1lbnRyeVxuICogU1BEWCBsaXN0IChhbiB1bmZhbWlsaWFyIGlkIGlzIHdvcnRoIGEgaHVtYW4gbG9vaykuIENhc2Utc2Vuc2l0aXZlLCBleGFjdGx5XG4gKiBhcyBTUERYIHNwZWxscyB0aGVtLiBgTGljZW5zZVJlZi1Qcm9wcmlldGFyeWAgaXMgdGhlIFNQRFgtc2FuY3Rpb25lZFxuICogc3BlbGxpbmcgZm9yIFwibm90IG9wZW4gc291cmNlXCIuXG4gKi9cbmV4cG9ydCBjb25zdCBTUERYX0xJQ0VOU0VfSURTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdBcGFjaGUtMi4wJywgJ01JVCcsICdNSVQtMCcsICdJU0MnLCAnMEJTRCcsICdVbmxpY2Vuc2UnLCAnQ0MwLTEuMCcsICdabGliJywgJ0JTTC0xLjAnLFxuICAnQlNELTItQ2xhdXNlJywgJ0JTRC0zLUNsYXVzZScsXG4gICdNUEwtMi4wJywgJ0VQTC0xLjAnLCAnRVBMLTIuMCcsXG4gICdMR1BMLTIuMS1vbmx5JywgJ0xHUEwtMi4xLW9yLWxhdGVyJywgJ0xHUEwtMy4wLW9ubHknLCAnTEdQTC0zLjAtb3ItbGF0ZXInLFxuICAnR1BMLTIuMC1vbmx5JywgJ0dQTC0yLjAtb3ItbGF0ZXInLCAnR1BMLTMuMC1vbmx5JywgJ0dQTC0zLjAtb3ItbGF0ZXInLFxuICAnQUdQTC0zLjAtb25seScsICdBR1BMLTMuMC1vci1sYXRlcicsXG4gICdDQy1CWS00LjAnLCAnQ0MtQlktU0EtNC4wJywgJ1B5dGhvbi0yLjAnLCAnUG9zdGdyZVNRTCcsICdBcnRpc3RpYy0yLjAnLFxuICAnQlVTTC0xLjEnLCAnRWxhc3RpYy0yLjAnLCAnU1NQTC0xLjAnLFxuICAnTGljZW5zZVJlZi1Qcm9wcmlldGFyeScsXG5dKTtcblxuLyoqIFRydWUgd2hlbiBgaWRgIGlzIGFuIGFjY2VwdGVkIFNQRFggaWRlbnRpZmllci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbG93ZWRTcGR4SWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gU1BEWF9MSUNFTlNFX0lEUy5oYXMoaWQpO1xufVxuXG4vKipcbiAqIFVSTCBzaG9ydGVuZXJzIHJlZnVzZWQgaW4gcHJvamVjdCBsaW5rczogYSBzaG9ydGVuZXIgaGlkZXMgdGhlIGRlc3RpbmF0aW9uXG4gKiBmcm9tIHRoZSByZXZpZXdlciBhbmQgY2FuIGJlIHJlLXBvaW50ZWQgYWZ0ZXIgYXBwcm92YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBVUkxfU0hPUlRFTkVSX0hPU1RTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdiaXQubHknLCAndC5jbycsICd0aW55dXJsLmNvbScsICdnb28uZ2wnLCAnb3cubHknLCAnaXMuZ2QnLCAnYnVmZi5seScsICdyZWJyYW5kLmx5JywgJ2N1dHQubHknLCAnc2hvcnR1cmwuYXQnLFxuXSk7XG5cbi8qKlxuICogV2h5IGByYXdgIGlzIG5vdCBhbiBhY2NlcHRhYmxlIHByb2plY3QgVVJMLCBvciBgbnVsbGAgd2hlbiBpdCBpczogbXVzdCBwYXJzZSxcbiAqIGJlIGBodHRwczpgLCBjYXJyeSBubyB1c2VyaW5mbywgYW5kIG5vdCBwb2ludCBhdCBhIGtub3duIHNob3J0ZW5lciAodGhlIGhvc3RcbiAqIG9yIGFueSBwYXJlbnQgZG9tYWluIG9mIGl0KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2plY3RVcmxQcm9ibGVtKHJhdzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChyYXcubGVuZ3RoID4gUExVR0lOX1VSTF9NQVgpIHJldHVybiBgbXVzdCBiZSBhdCBtb3N0ICR7UExVR0lOX1VSTF9NQVh9IGNoYXJhY3RlcnNgO1xuICBsZXQgdXJsOiBVUkw7XG4gIHRyeSB7XG4gICAgdXJsID0gbmV3IFVSTChyYXcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ211c3QgYmUgYW4gYWJzb2x1dGUgVVJMJztcbiAgfVxuICBpZiAodXJsLnByb3RvY29sICE9PSAnaHR0cHM6JykgcmV0dXJuICdtdXN0IHVzZSBodHRwcyc7XG4gIGlmICh1cmwudXNlcm5hbWUgfHwgdXJsLnBhc3N3b3JkKSByZXR1cm4gJ211c3Qgbm90IGVtYmVkIGNyZWRlbnRpYWxzJztcbiAgY29uc3QgaG9zdCA9IHVybC5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLiQvLCAnJyk7XG4gIGNvbnN0IGxhYmVscyA9IGhvc3Quc3BsaXQoJy4nKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgaWYgKFVSTF9TSE9SVEVORVJfSE9TVFMuaGFzKGxhYmVscy5zbGljZShpKS5qb2luKCcuJykpKSByZXR1cm4gYG11c3Qgbm90IHVzZSBhIFVSTCBzaG9ydGVuZXIgKCR7aG9zdH0pYDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqIEN1cmF0ZWQgaWNvbiAvIGJhZGdlIGtleTogYSBmaWxlIG5hbWUgdW5kZXIgYGRlcGxveS9wbHVnaW5zL19pY29ucy9gLiAqL1xuZXhwb3J0IGNvbnN0IElDT05fS0VZX1BBVFRFUk4gPSAvXlthLXowLTktXSskLztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpZWxkIHNjaGVtYXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IHV0ZjhCeXRlcyA9ICh2OiBzdHJpbmcpOiBudW1iZXIgPT4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHYpLmxlbmd0aDtcblxuLyoqIGBodHRwczpgIHByb2plY3QgVVJMLCBubyBzaG9ydGVuZXJzLCBubyBjcmVkZW50aWFscy4gKi9cbmV4cG9ydCBjb25zdCBQcm9qZWN0VXJsU2NoZW1hID0gei5zdHJpbmcoKS5zdXBlclJlZmluZSgodiwgY3R4KSA9PiB7XG4gIGNvbnN0IHByb2JsZW0gPSBwcm9qZWN0VXJsUHJvYmxlbSh2KTtcbiAgaWYgKHByb2JsZW0pIGN0eC5hZGRJc3N1ZSh7IGNvZGU6ICdjdXN0b20nLCBtZXNzYWdlOiBwcm9ibGVtIH0pO1xufSk7XG5cbi8qKiBDdXJhdGVkIGljb24gLyBiYWRnZSBrZXkuICovXG5leHBvcnQgY29uc3QgSWNvbktleVNjaGVtYSA9IHouc3RyaW5nKCkubWF4KDY0KS5yZWdleChJQ09OX0tFWV9QQVRURVJOLCAnbXVzdCBtYXRjaCBeW2EtejAtOS1dKyQnKTtcblxuLyoqXG4gKiBJY29uIGFzIHN0b3JlZDogYHsga2V5LCBiYWRnZT8gfWAuIEEgYmFyZSBrZXkgc3RyaW5nIGlzIGFjY2VwdGVkIGFuZFxuICogbm9ybWFsaXplZCBmaXJzdCwgc28gYSBiYWQga2V5IHJlcG9ydHMgdGhlIGtleSBydWxlIChub3QgYSBiYXJlIHVuaW9uIG1pc3MpLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luSWNvblNjaGVtYSA9IHoucHJlcHJvY2VzcyhcbiAgKHYpID0+ICh0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyB7IGtleTogdiB9IDogdiksXG4gIHoub2JqZWN0KHsga2V5OiBJY29uS2V5U2NoZW1hLCBiYWRnZTogSWNvbktleVNjaGVtYS5vcHRpb25hbCgpIH0pLnN0cmljdCgpLFxuKTtcblxuLyoqIEEgbm9uLWVtcHR5IHNpbmdsZS1saW5lLWlzaCB0ZXh0IGZpZWxkIHdpdGggYSBjaGFyYWN0ZXIgY2FwLiAqL1xuY29uc3QgdGV4dCA9IChtYXg6IG51bWJlcikgPT4gei5zdHJpbmcoKS50cmltKCkubWluKDEsICdtdXN0IG5vdCBiZSBlbXB0eScpLm1heChtYXgsIGBtdXN0IGJlIGF0IG1vc3QgJHttYXh9IGNoYXJhY3RlcnNgKTtcblxuLyoqXG4gKiBQZXItZmllbGQgdmFsaWRhdG9ycyBmb3IgZXZlcnkgREVTQ1JJUFRJVkUgZmllbGQuIEEgZGV0ZWN0ZWQgdmFsdWVcbiAqIGFuZCBhIHVzZXItdHlwZWQgdmFsdWUgYm90aCBnbyB0aHJvdWdoIHRoZXNlLlxuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BUyA9IHtcbiAgc3VtbWFyeTogdGV4dChQTFVHSU5fU1VNTUFSWV9NQVgpLFxuICBkZXNjcmlwdGlvbjogdGV4dChQTFVHSU5fREVTQ1JJUFRJT05fTUFYKSxcbiAgZGlzcGxheU5hbWU6IHRleHQoUExVR0lOX0RJU1BMQVlfTkFNRV9NQVgpLFxuICBjYXRlZ29yeTogei5lbnVtKFBMVUdJTl9DQVRFR09SSUVTLCB7IG1lc3NhZ2U6IGBtdXN0IGJlIG9uZSBvZjogJHtQTFVHSU5fQ0FURUdPUklFUy5qb2luKCcsICcpfWAgfSksXG4gIGtleXdvcmRzOiB6LmFycmF5KFxuICAgIHouc3RyaW5nKCkudHJpbSgpLm1pbigxLCAna2V5d29yZHMgbXVzdCBub3QgYmUgZW1wdHknKS5tYXgoUExVR0lOX0tFWVdPUkRfTUFYX0xFTkdUSCwgYGVhY2gga2V5d29yZCBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RIfSBjaGFyYWN0ZXJzYCksXG4gICkubWF4KFBMVUdJTl9LRVlXT1JEU19NQVgsIGBhdCBtb3N0ICR7UExVR0lOX0tFWVdPUkRTX01BWH0ga2V5d29yZHNgKSxcbiAgbGljZW5zZTogei5zdHJpbmcoKS5yZWZpbmUoaXNBbGxvd2VkU3BkeElkLCB7IG1lc3NhZ2U6ICdtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIChlLmcuIEFwYWNoZS0yLjAsIE1JVCknIH0pLFxuICBob21lcGFnZVVybDogUHJvamVjdFVybFNjaGVtYSxcbiAgc291cmNlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBkb2N1bWVudGF0aW9uVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBpY29uOiBQbHVnaW5JY29uU2NoZW1hLFxuICBjaGFuZ2Vsb2c6IHouc3RyaW5nKCkucmVmaW5lKCh2KSA9PiB1dGY4Qnl0ZXModikgPD0gUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsIHtcbiAgICBtZXNzYWdlOiBgbXVzdCBiZSBhdCBtb3N0ICR7UExVR0lOX0NIQU5HRUxPR19NQVhfQllURVN9IGJ5dGVzYCxcbiAgfSksXG4gIHJlYWRtZTogei5zdHJpbmcoKS5yZWZpbmUoKHYpID0+IHV0ZjhCeXRlcyh2KSA8PSBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUywge1xuICAgIG1lc3NhZ2U6IGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fUkVBRE1FX01BWF9CWVRFU30gYnl0ZXNgLFxuICB9KSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIHouWm9kVHlwZT47XG5cbi8qKlxuICogQ2F0YWxvZyBFRElUUyAodGhlIHVwbG9hZCdzIGBtZXRhZGF0YWAgcGFydCwgYSBgUFVUIC9wbHVnaW5zLzppZGAgYm9keSdzXG4gKiBkZXNjcmlwdGl2ZSBrZXlzLCB0aGUgQ0xJJ3MgYC0tbWV0YWRhdGFgIGZpbGUpLiBgbnVsbGAgY2xlYXJzIGEgZmllbGQuXG4gKiBTdHJpY3Q6IGFuIHVua25vd24ga2V5IGlzIGFuIGVycm9yLCBuZXZlciBzaWxlbnRseSBkcm9wcGVkLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hID0gei5vYmplY3QoXG4gIE9iamVjdC5mcm9tRW50cmllcyhQTFVHSU5fQ0FUQUxPR19GSUVMRFMubWFwKChmKSA9PiBbZiwgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tmXS5udWxsYWJsZSgpLm9wdGlvbmFsKCldKSkgYXMge1xuICAgIFtLIGluIFBsdWdpbkNhdGFsb2dGaWVsZF06IHouWm9kT3B0aW9uYWw8ei5ab2ROdWxsYWJsZTx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tLXT4+O1xuICB9LFxuKS5zdHJpY3QoKTtcbmV4cG9ydCB0eXBlIFBsdWdpbkNhdGFsb2dFZGl0cyA9IHouaW5mZXI8dHlwZW9mIFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYT47XG5cbi8qKlxuICogVmFsaWRhdGUgb25lIGZpZWxkJ3MgdmFsdWUuIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgdmFsdWUgKHRyaW1tZWQgdGV4dCwgYW5cbiAqIGljb24gc3RyaW5nIGFzIGB7IGtleSB9YCkgb3IgdGhlIHJlYXNvbiBpdCB3YXMgcmVmdXNlZCDigJQgc28gYSBkZXRlY3RlZCB2YWx1ZVxuICogdGhhdCBmYWlscyBpcyBzaG93biBCTEFOSyBXSVRIIFRIRSBSRUFTT04gcmF0aGVyIHRoYW4gc2lsZW50bHkgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ2F0YWxvZ0ZpZWxkPEYgZXh0ZW5kcyBQbHVnaW5DYXRhbG9nRmllbGQ+KFxuICBmaWVsZDogRixcbiAgdmFsdWU6IHVua25vd24sXG4pOiB7IG9rOiB0cnVlOyB2YWx1ZTogei5pbmZlcjx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tGXT4gfSB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nIH0ge1xuICBjb25zdCByZXN1bHQgPSAoUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tmaWVsZF0gYXMgei5ab2RUeXBlKS5zYWZlUGFyc2UodmFsdWUpO1xuICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHJldHVybiB7IG9rOiB0cnVlLCB2YWx1ZTogcmVzdWx0LmRhdGEgYXMgei5pbmZlcjx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tGXT4gfTtcbiAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogcmVzdWx0LmVycm9yLmlzc3Vlcy5tYXAoKGkpID0+IGkubWVzc2FnZSkuam9pbignOyAnKSB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhlY3V0aW9uIGNvbnRyYWN0IChuZXZlciBlZGl0YWJsZSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogS2V5cyB0aGF0IGRlc2NyaWJlIFdIQVQgUlVOUy4gVGhleSBjb21lIG9ubHkgZnJvbSB0aGUgc3BlYzogY2hhbmdpbmcgb25lIGlzIGFcbiAqIG5ldyB2ZXJzaW9uLCBhIG5ldyBkaWdlc3QgYW5kIGEgcmV2aWV3IGRpZmYuIEEgbWV0YWRhdGEgZWRpdFxuICogbmFtaW5nIGFueSBvZiB0aGVtIGlzIHJlZnVzZWQgd2l0aCA0MDAg4oCUIHRoZSByZWZ1c2FsIGlzIHRoZSBBUEkncywgbm90IGp1c3RcbiAqIHRoZSBVSSdzLiBgbmFtZWAvYHZlcnNpb25gIGtleSB0aGUgcHVzaGVkIGltYWdlIGFuZCBhcmUgaW1tdXRhYmxlIHRvby5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9DT05UUkFDVF9GSUVMRFMgPSBbXG4gICduYW1lJywgJ3ZlcnNpb24nLFxuICAnY29tbWFuZHMnLCAnaW5zdGFsbENvbW1hbmRzJywgJ2VudicsICdidWlsZEFyZ3MnLCAnc2VjcmV0cycsXG4gICdtZXRhZGF0YScsICdyZXF1aXJlZE1ldGFkYXRhJywgJ3JlcXVpcmVkVmFycycsICdtZXRhZGF0YVR5cGVzJywgJ3ZhcnNUeXBlcycsXG4gICduZXR3b3JrJywgJ25ldHdvcmtFZ3Jlc3MnLCAnY29tcHV0ZVR5cGUnLCAncGx1Z2luVHlwZScsICdwcmltYXJ5T3V0cHV0RGlyZWN0b3J5JyxcbiAgJ3Ntb2tlVGVzdCcsICd0aW1lb3V0JywgJ2ZhaWx1cmVCZWhhdmlvcicsICdkb2NrZXJmaWxlJywgJ2J1aWxkVHlwZScsXG5dIGFzIGNvbnN0O1xuXG4vKiogVGhlIGV4ZWN1dGlvbi1jb250cmFjdCBrZXlzIHByZXNlbnQgaW4gYHBheWxvYWRgIChlbXB0eSB3aGVuIG5vbmUpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb250cmFjdEtleXMocGF5bG9hZDogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKCFwYXlsb2FkIHx8IHR5cGVvZiBwYXlsb2FkICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHBheWxvYWQpKSByZXR1cm4gW107XG4gIHJldHVybiBQTFVHSU5fQ09OVFJBQ1RfRklFTERTLmZpbHRlcigoaykgPT4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBheWxvYWQsIGspKTtcbn1cblxuLyoqIFRoZSBtZXNzYWdlIGEgY29udHJhY3Qta2V5IHJlZnVzYWwgY2Fycmllcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250cmFjdEtleXNNZXNzYWdlKGtleXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBUaGVzZSBmaWVsZHMgZGVmaW5lIHdoYXQgdGhlIHBsdWdpbiBydW5zIGFuZCBjYW4gb25seSBjaGFuZ2UgYnkgdXBsb2FkaW5nIGEgbmV3IHZlcnNpb246ICR7a2V5cy5qb2luKCcsICcpfWA7XG59XG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1jYXRhbG9nLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEdBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBd0IsSUFBSSxHQUFHLENBQUM7SUFDM0QsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQ3RGLGNBQWMsRUFBRSxjQUFjO0lBQzlCLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMvQixlQUFlLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQjtJQUMxRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQjtJQUN0RSxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjO0lBQ3ZFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVTtJQUNyQyx3QkFBd0I7Q0FDekIsQ0FBQyxDQUFDO0FBRUgscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFBVTtJQUN4QyxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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dHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFBsdWdpbiBDQVRBTE9HIG1ldGFkYXRhOiB0aGUgZGVzY3JpcHRpdmUgZmllbGRzIGEgcGx1Z2luIHZlcnNpb24gc2hvd3MgaW4gdGhlXG4gKiBjYXRhbG9nLCBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlIGFuZCB0aGVuIGFjY2VwdGVkIG9yIGVkaXRlZCBieSB0aGUgdXNlclxuICogKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLlxuICpcbiAqIE9ORSB2YWxpZGF0b3IgZm9yIGJvdGggcGF0aHM6IGEgdmFsdWUgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSAoc3BlYyxcbiAqIFJFQURNRSwgdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlIGxhYmVscykgYW5kIGEgdmFsdWUgdHlwZWQgaW50byBhIGZvcm0gb3JcbiAqIHNlbnQgYnkgdGhlIENMSSBwYXNzIHRoZSBzYW1lIHJ1bGVzLiBTaGFyZWQgZnJvbSBhcGktY29yZSBzbyB0aGUgcGx1Z2luXG4gKiBzZXJ2aWNlLCB0aGUgZnJvbnRlbmQgYW5kIHRoZSBDTEkgY2FuJ3QgZHJpZnQuXG4gKlxuICogT25seSBERVNDUklQVElWRSBmaWVsZHMgbGl2ZSBoZXJlLiBFeGVjdXRpb24tY29udHJhY3QgZmllbGRzIChjb21tYW5kcywgZW52LFxuICogc2VjcmV0cywgY29tcHV0ZSB0eXBlLCDigKYpIGFyZSBzcGVjLW9ubHkg4oCUIGNoYW5naW5nIG9uZSBpcyBhIG5ldyB2ZXJzaW9uIHdpdGggYVxuICogbmV3IGRpZ2VzdCDigJQgYW5kIGFuIGVkaXQgcGF5bG9hZCBuYW1pbmcgb25lIGlzIHJlZnVzZWRcbiAqICh7QGxpbmsgZmluZENvbnRyYWN0S2V5c30pLlxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLFxuICBQTFVHSU5fQ0FURUdPUklFUyxcbiAgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsXG4gIFBMVUdJTl9ERVNDUklQVElPTl9NQVgsXG4gIFBMVUdJTl9ESVNQTEFZX05BTUVfTUFYLFxuICBQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RILFxuICBQTFVHSU5fS0VZV09SRFNfTUFYLFxuICBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUyxcbiAgUExVR0lOX1NVTU1BUllfTUFYLFxuICBQTFVHSU5fVVJMX01BWCxcbiAgdHlwZSBQbHVnaW5DYXRhbG9nRmllbGQsXG59IGZyb20gJy4uL3R5cGVzL3BsdWdpbi1jYXRhbG9nLmpzJztcblxuLyoqXG4gKiBBY2NlcHRlZCBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMg4oCUIGEgY29tcGFjdCBhbGxvd2xpc3Qgb2YgdGhlIGlkcyB0aGF0XG4gKiBjb3ZlciBlZmZlY3RpdmVseSBldmVyeSBwdWJsaXNoZWQgcGx1Z2luLCByYXRoZXIgdGhhbiB0aGUgZnVsbCB+NzAwLWVudHJ5XG4gKiBTUERYIGxpc3QgKGFuIHVuZmFtaWxpYXIgaWQgaXMgd29ydGggYSBodW1hbiBsb29rKS4gQ2FzZS1zZW5zaXRpdmUsIGV4YWN0bHlcbiAqIGFzIFNQRFggc3BlbGxzIHRoZW0uIGBMaWNlbnNlUmVmLVByb3ByaWV0YXJ5YCBpcyB0aGUgU1BEWC1zYW5jdGlvbmVkXG4gKiBzcGVsbGluZyBmb3IgXCJub3Qgb3BlbiBzb3VyY2VcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNQRFhfTElDRU5TRV9JRFM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ0FwYWNoZS0yLjAnLCAnTUlUJywgJ01JVC0wJywgJ0lTQycsICcwQlNEJywgJ1VubGljZW5zZScsICdDQzAtMS4wJywgJ1psaWInLCAnQlNMLTEuMCcsXG4gICdCU0QtMi1DbGF1c2UnLCAnQlNELTMtQ2xhdXNlJyxcbiAgJ01QTC0yLjAnLCAnRVBMLTEuMCcsICdFUEwtMi4wJyxcbiAgJ0xHUEwtMi4xLW9ubHknLCAnTEdQTC0yLjEtb3ItbGF0ZXInLCAnTEdQTC0zLjAtb25seScsICdMR1BMLTMuMC1vci1sYXRlcicsXG4gICdHUEwtMi4wLW9ubHknLCAnR1BMLTIuMC1vci1sYXRlcicsICdHUEwtMy4wLW9ubHknLCAnR1BMLTMuMC1vci1sYXRlcicsXG4gICdBR1BMLTMuMC1vbmx5JywgJ0FHUEwtMy4wLW9yLWxhdGVyJyxcbiAgJ0NDLUJZLTQuMCcsICdDQy1CWS1TQS00LjAnLCAnUHl0aG9uLTIuMCcsICdQb3N0Z3JlU1FMJywgJ0FydGlzdGljLTIuMCcsXG4gICdCVVNMLTEuMScsICdFbGFzdGljLTIuMCcsICdTU1BMLTEuMCcsXG4gICdMaWNlbnNlUmVmLVByb3ByaWV0YXJ5Jyxcbl0pO1xuXG4vKiogVHJ1ZSB3aGVuIGBpZGAgaXMgYW4gYWNjZXB0ZWQgU1BEWCBpZGVudGlmaWVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsb3dlZFNwZHhJZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBTUERYX0xJQ0VOU0VfSURTLmhhcyhpZCk7XG59XG5cbi8qKlxuICogVVJMIHNob3J0ZW5lcnMgcmVmdXNlZCBpbiBwcm9qZWN0IGxpbmtzOiBhIHNob3J0ZW5lciBoaWRlcyB0aGUgZGVzdGluYXRpb25cbiAqIGZyb20gdGhlIHJldmlld2VyIGFuZCBjYW4gYmUgcmUtcG9pbnRlZCBhZnRlciBhcHByb3ZhbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVSTF9TSE9SVEVORVJfSE9TVFM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2JpdC5seScsICd0LmNvJywgJ3Rpbnl1cmwuY29tJywgJ2dvby5nbCcsICdvdy5seScsICdpcy5nZCcsICdidWZmLmx5JywgJ3JlYnJhbmQubHknLCAnY3V0dC5seScsICdzaG9ydHVybC5hdCcsXG5dKTtcblxuLyoqXG4gKiBXaHkgYHJhd2AgaXMgbm90IGFuIGFjY2VwdGFibGUgcHJvamVjdCBVUkwsIG9yIGBudWxsYCB3aGVuIGl0IGlzOiBtdXN0IHBhcnNlLFxuICogYmUgYGh0dHBzOmAsIGNhcnJ5IG5vIHVzZXJpbmZvLCBhbmQgbm90IHBvaW50IGF0IGEga25vd24gc2hvcnRlbmVyICh0aGUgaG9zdFxuICogb3IgYW55IHBhcmVudCBkb21haW4gb2YgaXQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdFVybFByb2JsZW0ocmF3OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHJhdy5sZW5ndGggPiBQTFVHSU5fVVJMX01BWCkgcmV0dXJuIGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fVVJMX01BWH0gY2hhcmFjdGVyc2A7XG4gIGxldCB1cmw6IFVSTDtcbiAgdHJ5IHtcbiAgICB1cmwgPSBuZXcgVVJMKHJhdyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwnO1xuICB9XG4gIGlmICh1cmwucHJvdG9jb2wgIT09ICdodHRwczonKSByZXR1cm4gJ211c3QgdXNlIGh0dHBzJztcbiAgaWYgKHVybC51c2VybmFtZSB8fCB1cmwucGFzc3dvcmQpIHJldHVybiAnbXVzdCBub3QgZW1iZWQgY3JlZGVudGlhbHMnO1xuICBjb25zdCBob3N0ID0gdXJsLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwuJC8sICcnKTtcbiAgY29uc3QgbGFiZWxzID0gaG9zdC5zcGxpdCgnLicpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoVVJMX1NIT1JURU5FUl9IT1NUUy5oYXMobGFiZWxzLnNsaWNlKGkpLmpvaW4oJy4nKSkpIHJldHVybiBgbXVzdCBub3QgdXNlIGEgVVJMIHNob3J0ZW5lciAoJHtob3N0fSlgO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogQ3VyYXRlZCBpY29uIC8gYmFkZ2Uga2V5OiBhIGZpbGUgbmFtZSB1bmRlciBgZGVwbG95L3BsdWdpbnMvX2ljb25zL2AuICovXG5leHBvcnQgY29uc3QgSUNPTl9LRVlfUEFUVEVSTiA9IC9eW2EtejAtOS1dKyQvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmllbGQgc2NoZW1hc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgdXRmOEJ5dGVzID0gKHY6IHN0cmluZyk6IG51bWJlciA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodikubGVuZ3RoO1xuXG4vKiogYGh0dHBzOmAgcHJvamVjdCBVUkwsIG5vIHNob3J0ZW5lcnMsIG5vIGNyZWRlbnRpYWxzLiAqL1xuZXhwb3J0IGNvbnN0IFByb2plY3RVcmxTY2hlbWEgPSB6LnN0cmluZygpLnN1cGVyUmVmaW5lKCh2LCBjdHgpID0+IHtcbiAgY29uc3QgcHJvYmxlbSA9IHByb2plY3RVcmxQcm9ibGVtKHYpO1xuICBpZiAocHJvYmxlbSkgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIG1lc3NhZ2U6IHByb2JsZW0gfSk7XG59KTtcblxuLyoqIEN1cmF0ZWQgaWNvbiAvIGJhZGdlIGtleS4gKi9cbmV4cG9ydCBjb25zdCBJY29uS2V5U2NoZW1hID0gei5zdHJpbmcoKS5tYXgoNjQpLnJlZ2V4KElDT05fS0VZX1BBVFRFUk4sICdtdXN0IG1hdGNoIF5bYS16MC05LV0rJCcpO1xuXG4vKipcbiAqIEljb24gYXMgc3RvcmVkOiBgeyBrZXksIGJhZGdlPyB9YC4gQSBiYXJlIGtleSBzdHJpbmcgaXMgYWNjZXB0ZWQgYW5kXG4gKiBub3JtYWxpemVkIGZpcnN0LCBzbyBhIGJhZCBrZXkgcmVwb3J0cyB0aGUga2V5IHJ1bGUgKG5vdCBhIGJhcmUgdW5pb24gbWlzcykuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5JY29uU2NoZW1hID0gei5wcmVwcm9jZXNzKFxuICAodikgPT4gKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHsga2V5OiB2IH0gOiB2KSxcbiAgei5vYmplY3QoeyBrZXk6IEljb25LZXlTY2hlbWEsIGJhZGdlOiBJY29uS2V5U2NoZW1hLm9wdGlvbmFsKCkgfSkuc3RyaWN0KCksXG4pO1xuXG4vKiogQSBub24tZW1wdHkgc2luZ2xlLWxpbmUtaXNoIHRleHQgZmllbGQgd2l0aCBhIGNoYXJhY3RlciBjYXAuICovXG5jb25zdCB0ZXh0ID0gKG1heDogbnVtYmVyKSA9PiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSwgJ211c3Qgbm90IGJlIGVtcHR5JykubWF4KG1heCwgYG11c3QgYmUgYXQgbW9zdCAke21heH0gY2hhcmFjdGVyc2ApO1xuXG4vKipcbiAqIFBlci1maWVsZCB2YWxpZGF0b3JzIGZvciBldmVyeSBERVNDUklQVElWRSBmaWVsZC4gQSBkZXRlY3RlZCB2YWx1ZVxuICogYW5kIGEgdXNlci10eXBlZCB2YWx1ZSBib3RoIGdvIHRocm91Z2ggdGhlc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTID0ge1xuICBzdW1tYXJ5OiB0ZXh0KFBMVUdJTl9TVU1NQVJZX01BWCksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KFBMVUdJTl9ERVNDUklQVElPTl9NQVgpLFxuICBkaXNwbGF5TmFtZTogdGV4dChQTFVHSU5fRElTUExBWV9OQU1FX01BWCksXG4gIGNhdGVnb3J5OiB6LmVudW0oUExVR0lOX0NBVEVHT1JJRVMsIHsgbWVzc2FnZTogYG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9DQVRFR09SSUVTLmpvaW4oJywgJyl9YCB9KSxcbiAga2V5d29yZHM6IHouYXJyYXkoXG4gICAgei5zdHJpbmcoKS50cmltKCkubWluKDEsICdrZXl3b3JkcyBtdXN0IG5vdCBiZSBlbXB0eScpLm1heChQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RILCBgZWFjaCBrZXl3b3JkIG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9LRVlXT1JEX01BWF9MRU5HVEh9IGNoYXJhY3RlcnNgKSxcbiAgKS5tYXgoUExVR0lOX0tFWVdPUkRTX01BWCwgYGF0IG1vc3QgJHtQTFVHSU5fS0VZV09SRFNfTUFYfSBrZXl3b3Jkc2ApLFxuICBsaWNlbnNlOiB6LnN0cmluZygpLnJlZmluZShpc0FsbG93ZWRTcGR4SWQsIHsgbWVzc2FnZTogJ211c3QgYmUgYSBzdXBwb3J0ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXIgKGUuZy4gQXBhY2hlLTIuMCwgTUlUKScgfSksXG4gIGhvbWVwYWdlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBzb3VyY2VVcmw6IFByb2plY3RVcmxTY2hlbWEsXG4gIGRvY3VtZW50YXRpb25Vcmw6IFByb2plY3RVcmxTY2hlbWEsXG4gIGljb246IFBsdWdpbkljb25TY2hlbWEsXG4gIGNoYW5nZWxvZzogei5zdHJpbmcoKS5yZWZpbmUoKHYpID0+IHV0ZjhCeXRlcyh2KSA8PSBQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFUywge1xuICAgIG1lc3NhZ2U6IGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFU30gYnl0ZXNgLFxuICB9KSxcbiAgcmVhZG1lOiB6LnN0cmluZygpLnJlZmluZSgodikgPT4gdXRmOEJ5dGVzKHYpIDw9IFBMVUdJTl9SRUFETUVfTUFYX0JZVEVTLCB7XG4gICAgbWVzc2FnZTogYG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9SRUFETUVfTUFYX0JZVEVTfSBieXRlc2AsXG4gIH0pLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgei5ab2RUeXBlPjtcblxuLyoqXG4gKiBDYXRhbG9nIEVESVRTICh0aGUgdXBsb2FkJ3MgYG1ldGFkYXRhYCBwYXJ0LCBhIGBQVVQgL3BsdWdpbnMvOmlkYCBib2R5J3NcbiAqIGRlc2NyaXB0aXZlIGtleXMsIHRoZSBDTEkncyBgLS1tZXRhZGF0YWAgZmlsZSkuIGBudWxsYCBjbGVhcnMgYSBmaWVsZC5cbiAqIFN0cmljdDogYW4gdW5rbm93biBrZXkgaXMgYW4gZXJyb3IsIG5ldmVyIHNpbGVudGx5IGRyb3BwZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEgPSB6Lm9iamVjdChcbiAgT2JqZWN0LmZyb21FbnRyaWVzKFBMVUdJTl9DQVRBTE9HX0ZJRUxEUy5tYXAoKGYpID0+IFtmLCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW2ZdLm51bGxhYmxlKCkub3B0aW9uYWwoKV0pKSBhcyB7XG4gICAgW0sgaW4gUGx1Z2luQ2F0YWxvZ0ZpZWxkXTogei5ab2RPcHRpb25hbDx6LlpvZE51bGxhYmxlPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0tdPj47XG4gIH0sXG4pLnN0cmljdCgpO1xuZXhwb3J0IHR5cGUgUGx1Z2luQ2F0YWxvZ0VkaXRzID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hPjtcblxuLyoqXG4gKiBWYWxpZGF0ZSBvbmUgZmllbGQncyB2YWx1ZS4gUmV0dXJucyB0aGUgbm9ybWFsaXplZCB2YWx1ZSAodHJpbW1lZCB0ZXh0LCBhblxuICogaWNvbiBzdHJpbmcgYXMgYHsga2V5IH1gKSBvciB0aGUgcmVhc29uIGl0IHdhcyByZWZ1c2VkIOKAlCBzbyBhIGRldGVjdGVkIHZhbHVlXG4gKiB0aGF0IGZhaWxzIGlzIHNob3duIEJMQU5LIFdJVEggVEhFIFJFQVNPTiByYXRoZXIgdGhhbiBzaWxlbnRseSBkcm9wcGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDYXRhbG9nRmllbGQ8RiBleHRlbmRzIFBsdWdpbkNhdGFsb2dGaWVsZD4oXG4gIGZpZWxkOiBGLFxuICB2YWx1ZTogdW5rbm93bixcbik6IHsgb2s6IHRydWU7IHZhbHVlOiB6LmluZmVyPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0ZdPiB9IHwgeyBvazogZmFsc2U7IGVycm9yOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHJlc3VsdCA9IChQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW2ZpZWxkXSBhcyB6LlpvZFR5cGUpLnNhZmVQYXJzZSh2YWx1ZSk7XG4gIGlmIChyZXN1bHQuc3VjY2VzcykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiByZXN1bHQuZGF0YSBhcyB6LmluZmVyPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0ZdPiB9O1xuICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcCgoaSkgPT4gaS5tZXNzYWdlKS5qb2luKCc7ICcpIH07XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gY29udHJhY3QgKG5ldmVyIGVkaXRhYmxlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBLZXlzIHRoYXQgZGVzY3JpYmUgV0hBVCBSVU5TLiBUaGV5IGNvbWUgb25seSBmcm9tIHRoZSBzcGVjOiBjaGFuZ2luZyBvbmUgaXMgYVxuICogbmV3IHZlcnNpb24sIGEgbmV3IGRpZ2VzdCBhbmQgYSByZXZpZXcgZGlmZi4gQSBtZXRhZGF0YSBlZGl0XG4gKiBuYW1pbmcgYW55IG9mIHRoZW0gaXMgcmVmdXNlZCB3aXRoIDQwMCDigJQgdGhlIHJlZnVzYWwgaXMgdGhlIEFQSSdzLCBub3QganVzdFxuICogdGhlIFVJJ3MuIGBuYW1lYC9gdmVyc2lvbmAga2V5IHRoZSBwdXNoZWQgaW1hZ2UgYW5kIGFyZSBpbW11dGFibGUgdG9vLlxuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0NPTlRSQUNUX0ZJRUxEUyA9IFtcbiAgJ25hbWUnLCAndmVyc2lvbicsXG4gICdjb21tYW5kcycsICdpbnN0YWxsQ29tbWFuZHMnLCAnZW52JywgJ2J1aWxkQXJncycsICdzZWNyZXRzJyxcbiAgJ21ldGFkYXRhJywgJ3JlcXVpcmVkTWV0YWRhdGEnLCAncmVxdWlyZWRWYXJzJywgJ21ldGFkYXRhVHlwZXMnLCAndmFyc1R5cGVzJyxcbiAgJ25ldHdvcmsnLCAnbmV0d29ya0VncmVzcycsICdjb21wdXRlVHlwZScsICdwbHVnaW5UeXBlJywgJ3ByaW1hcnlPdXRwdXREaXJlY3RvcnknLFxuICAnc21va2VUZXN0JywgJ3RpbWVvdXQnLCAnZmFpbHVyZUJlaGF2aW9yJywgJ2RvY2tlcmZpbGUnLCAnYnVpbGRUeXBlJyxcbl0gYXMgY29uc3Q7XG5cbi8qKiBUaGUgZXhlY3V0aW9uLWNvbnRyYWN0IGtleXMgcHJlc2VudCBpbiBgcGF5bG9hZGAgKGVtcHR5IHdoZW4gbm9uZSkuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbnRyYWN0S2V5cyhwYXlsb2FkOiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAoIXBheWxvYWQgfHwgdHlwZW9mIHBheWxvYWQgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocGF5bG9hZCkpIHJldHVybiBbXTtcbiAgcmV0dXJuIFBMVUdJTl9DT05UUkFDVF9GSUVMRFMuZmlsdGVyKChrKSA9PiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGF5bG9hZCwgaykpO1xufVxuXG4vKiogVGhlIG1lc3NhZ2UgYSBjb250cmFjdC1rZXkgcmVmdXNhbCBjYXJyaWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyYWN0S2V5c01lc3NhZ2Uoa2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYFRoZXNlIGZpZWxkcyBkZWZpbmUgd2hhdCB0aGUgcGx1Z2luIHJ1bnMgYW5kIGNhbiBvbmx5IGNoYW5nZSBieSB1cGxvYWRpbmcgYSBuZXcgdmVyc2lvbjogJHtrZXlzLmpvaW4oJywgJyl9YDtcbn1cbiJdfQ==
@@ -208,4 +208,4 @@ export function scanPluginSourceHeuristics(files) {
208
208
  export function blockingHeuristics(report) {
209
209
  return report.findings.filter((f) => f.severity === 'high');
210
210
  }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWhldXJpc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4taGV1cmlzdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBK0JsRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNwRCx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0QsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUMzQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDeEIsc0dBQXNHO0FBQ3RHLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFlL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQSxzREFBc0QsQ0FBQztBQUUvRSxNQUFNLFVBQVUsR0FBd0I7SUFDdEM7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsSUFBSSxFQUFFLDhNQUE4TTtLQUNyTjtJQUNEO1FBQ0UsRUFBRSxFQUFFLGlCQUFpQjtRQUNyQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsdURBQXVEO1FBQ2hFLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFBLDJDQUEyQyxLQUFLLCtFQUErRSxLQUFLLHdDQUF3QyxLQUFLLHNIQUFzSCxFQUFFLEdBQUcsQ0FBQztLQUN6VTtJQUNEO1FBQ0UsRUFBRSxF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SUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzSCxHQUFHLENBQUM7b0JBQ0YsRUFBRSxFQUFFLGVBQWU7b0JBQ25CLFFBQVEsRUFBRSxNQUFNO29CQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztvQkFDdEMsT0FBTyxFQUFFLHNDQUFzQztpQkFDaEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELDhDQUE4QztBQUM5QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBMEM7SUFDM0UsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogTWFsd2FyZSBoZXVyaXN0aWNzIG92ZXIgYSBwbHVnaW4gUEFDS0FHRSdzIHNvdXJjZSAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCxcbiAqIHRoZSBhdXRvbWF0ZWQgc3VibWlzc2lvbiBnYXRlKTogdGhlIERvY2tlcmZpbGUsIHRoZSBzcGVjIGFuZCBldmVyeSBvdGhlciB0ZXh0IGZpbGUgaW4gdGhlXG4gKiB6aXAuIEEgcGx1Z2luIHJ1bnMgaW5zaWRlIGEgY3VzdG9tZXIncyBDb2RlQnVpbGQgd2l0aCB0aGUgY3VzdG9tZXIncyBrZXlzLCBzb1xuICogdGhlIHBhdHRlcm5zIGxvb2tlZCBmb3IgYXJlIHRoZSBvbmVzIHRoYXQgYWJ1c2UgZXhhY3RseSB0aGF0OlxuICpcbiAqICAtIGNyeXB0by1taW5lciBzaWduYXR1cmVzICh4bXJpZywgYHN0cmF0dW0rdGNwOi8vYCwgY3J5cHRvbmlnaHQsIOKApik7XG4gKiAgLSBvYmZ1c2NhdGVkIGV4ZWN1dGlvbiAoYSBiYXNlNjQvaGV4IGJsb2IgZGVjb2RlZCBpbnRvIGEgc2hlbGwgb3IgYGV2YWxgLFxuICogICAgYGV2YWwgXCIkKOKApiB8IGJhc2U2NCAtZClcImAsIGxvbmcgc2luZ2xlLWxpbmUgZW5jb2RlZCBwYXlsb2Fkcyk7XG4gKiAgLSBjcmVkZW50aWFsIGFjY2VzcyAoYEFXU19TRUNSRVRfQUNDRVNTX0tFWWAsIGBBV1NfU0VTU0lPTl9UT0tFTmAsIHRoZSBFQ1MgL1xuICogICAgQ29kZUJ1aWxkIGNvbnRhaW5lci1jcmVkZW50aWFsIGVuZHBvaW50cyBhbmQgdmFyaWFibGVzLCBJTURTXG4gKiAgICBgMTY5LjI1NC4xNjkuMjU0YCAvIGBmZDAwOmVjMjo6MjU0YCwgYH4vLmF3cy9jcmVkZW50aWFsc2AsXG4gKiAgICBgL3Zhci9ydW4vc2VjcmV0c2ApO1xuICogIC0gcmV2ZXJzZSBzaGVsbHMgYW5kIHVuY2hlY2tlZCBwaXBlLXRvLXNoZWxsIGRvd25sb2FkcztcbiAqICAtIHNlY3JldC1sb29raW5nIGxpdGVyYWxzIChgQUtJQeKApmAsIGBnaHBf4oCmYCwgYHhveGIt4oCmYCwgUEVNIHByaXZhdGUga2V5cywgYVxuICogICAgaGlnaC1lbnRyb3B5IHZhbHVlIGFzc2lnbmVkIHRvIGEgYCpfVE9LRU5gIC8gYCpfU0VDUkVUYCAvIGAqX1BBU1NXT1JEYCAvXG4gKiAgICBgKl9LRVlgIG5hbWUpLlxuICpcbiAqIGBoaWdoYCBmaW5kaW5ncyBmYWlsIHRoZSBhbm9ueW1vdXMtc3VibWlzc2lvbiBnYXRlOyBgbWVkaXVtYCBvbmVzIGFyZSBzaG93blxuICogdG8gbW9kZXJhdG9ycyBvbmx5LiBUaGUgQ0xJIChgcGx1Z2luIHZhbGlkYXRlYCAvIGBwbHVnaW4gcHVibGlzaGApIHJ1bnMgdGhlXG4gKiBzYW1lIHNjYW4gc28gYW4gYXV0aG9yIHNlZXMgaXQgYmVmb3JlIHVwbG9hZGluZy4gUHVyZSBhbmQgYm91bmRlZDogZmlsZXMgYW5kXG4gKiBsaW5lcyBhcmUgc2l6ZS1jYXBwZWQsIGJpbmFyeSBmaWxlcyBhcmUgc2tpcHBlZCwgYW5kIGZpbmRpbmdzIGFyZSBjYXBwZWQuXG4gKi9cblxuaW1wb3J0IHsgcGlwZUluc3RhbGxlcnMgfSBmcm9tICcuL3BsdWdpbi1saW50LmpzJztcblxuZXhwb3J0IHR5cGUgSGV1cmlzdGljU2V2ZXJpdHkgPSAnaGlnaCcgfCAnbWVkaXVtJztcblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNGaW5kaW5nIHtcbiAgLyoqIFJ1bGUgaWQgKHN0YWJsZTsgbW9kZXJhdG9ycyBmaWx0ZXIgb24gaXQpLiAqL1xuICBpZDogc3RyaW5nO1xuICBzZXZlcml0eTogSGV1cmlzdGljU2V2ZXJpdHk7XG4gIC8qKiBUaGUgZmlsZSwgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2Ugcm9vdC4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogMS1iYXNlZCBsaW5lIG51bWJlci4gKi9cbiAgbGluZTogbnVtYmVyO1xuICAvKiogVGhlIG9mZmVuZGluZyBsaW5lLCB0cmltbWVkIGFuZCBjYXBwZWQsIHdpdGggc2VjcmV0IHZhbHVlcyBtYXNrZWQuICovXG4gIGV4Y2VycHQ6IHN0cmluZztcbiAgLyoqIFdoYXQgdGhlIHJ1bGUgbWVhbnMuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNzUmVwb3J0IHtcbiAgZmluZGluZ3M6IEhldXJpc3RpY0ZpbmRpbmdbXTtcbiAgLyoqIEZpbGVzIHNjYW5uZWQuICovXG4gIHNjYW5uZWRGaWxlczogbnVtYmVyO1xuICAvKiogRmlsZXMgc2tpcHBlZCAoYmluYXJ5LCBvdmVyIHRoZSBzaXplIGNhcCwgb3IgcGFzdCB0aGUgdG90YWwgYnVkZ2V0KS4gKi9cbiAgc2tpcHBlZEZpbGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNzSW5wdXRGaWxlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmcgfCBVaW50OEFycmF5O1xufVxuXG4vKiogQSBzaW5nbGUgZmlsZSBsYXJnZXIgdGhhbiB0aGlzIGlzIG5vdCBzY2FubmVkIChsaXN0ZWQgaW4gYHNraXBwZWRGaWxlc2ApLiAqL1xuZXhwb3J0IGNvbnN0IEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMgPSA1MTIgKiAxMDI0O1xuLyoqIFRvdGFsIGJ5dGVzIHNjYW5uZWQgcGVyIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfVE9UQUxfQllURVMgPSAxNiAqIDEwMjQgKiAxMDI0O1xuLyoqIEZpbmRpbmdzIGtlcHQgcGVyIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfRklORElOR1MgPSAyMDA7XG5jb25zdCBFWENFUlBUX01BWCA9IDE2MDtcbi8qKiBBIGxpbmUgbG9uZ2VyIHRoYW4gdGhpcyBpcyBzY2FubmVkIG9ubHkgZm9yIHRoZSBlbmNvZGVkLWJsb2IgcnVsZSAoYW5kIHRydW5jYXRlZCBmb3IgdGhlIHJlc3QpLiAqL1xuY29uc3QgTElORV9TQ0FOX01BWCA9IDggKiAxMDI0O1xuXG5pbnRlcmZhY2UgTGluZVJ1bGUge1xuICBpZDogc3RyaW5nO1xuICBzZXZlcml0eTogSGV1cmlzdGljU2V2ZXJpdHk7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdGVzdDogUmVnRXhwO1xuICAvKiogU2V2ZXJpdHkgaW4gZG9jdW1lbnRhdGlvbiBmaWxlcyAoUkVBRE1FLCAqLm1kKSwgd2hlcmUgbWVudGlvbmluZyBhIG5hbWUgaXNuJ3QgdXNpbmcgaXQuICovXG4gIGRvY1NldmVyaXR5PzogSGV1cmlzdGljU2V2ZXJpdHkgfCBudWxsO1xuICAvKiogTWFzayBzZWNyZXQtbG9va2luZyB2YWx1ZXMgaW4gdGhlIGV4Y2VycHQuICovXG4gIHNlY3JldD86IGJvb2xlYW47XG4gIC8qKiBPbmx5IG9uIGNvZGUgbGluZXM6IGEgYCNgIC8gYC8vYCBjb21tZW50IHRoYXQgTUVOVElPTlMgdGhlIHBhdHRlcm4gaXNuJ3QgdXNpbmcgaXQuICovXG4gIGNvZGVPbmx5PzogYm9vbGVhbjtcbn1cblxuY29uc3QgU0hFTEwgPSBTdHJpbmcucmF3YCg/OnN1ZG9cXHMrKT8oPzpcXC91c3IpPyg/OlxcL2JpblxcLyk/KD86YmF8ZGF8enxrKT9zaFxcYmA7XG5cbmNvbnN0IExJTkVfUlVMRVM6IHJlYWRvbmx5IExpbmVSdWxlW10gPSBbXG4gIHtcbiAgICBpZDogJ21pbmVyLXNpZ25hdHVyZScsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBtZXNzYWdlOiAnQ3J5cHRvLW1pbmVyIHNpZ25hdHVyZScsXG4gICAgdGVzdDogL1xcYnhtcmlnXFxifHN0cmF0dW1cXCsoPzp0Y3B8c3NsfHRscyk6XFwvXFwvfFxcYmNyeXB0b25pZ2h0XFxifFxcYm1pbmVyZFxcYnxcXGJuaWNlaGFzaFxcYnxcXGJjcHVtaW5lclxcYnxcXGJ4bXItc3Rha1xcYnxcXGJldGhtaW5lclxcYnxcXGJuYm1pbmVyXFxifFxcYnBob2VuaXhtaW5lclxcYnxcXGJsb2xtaW5lclxcYnxcXGJzdXBwb3J0eG1yXFxifFxcYm1pbmV4bXJcXGJ8XFxibW9uZXJvb2NlYW5cXGIvaSxcbiAgfSxcbiAge1xuICAgIGlkOiAnb2JmdXNjYXRlZC1leGVjJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdFbmNvZGVkIHBheWxvYWQgZGVjb2RlZCBzdHJhaWdodCBpbnRvIGEgc2hlbGwgb3IgZXZhbCcsXG4gICAgdGVzdDogbmV3IFJlZ0V4cChTdHJpbmcucmF3YGJhc2U2NFxccysoPzotZHwtRHwtLWRlY29kZSlcXGJbXlxcbl0qXFx8XFxzKiR7U0hFTEx9fFxcYmV2YWxcXGJbXlxcbl0qXFwkXFwoW15cXG5dKmJhc2U2NFxccysoPzotZHwtRHwtLWRlY29kZSl8XFxieHhkXFxzKy1yXFxiW15cXG5dKlxcfFxccyoke1NIRUxMfXwoPzpcXFxceFswLTlhLWZBLUZdezJ9KXs4LH1bXlxcbl0qXFx8XFxzKiR7U0hFTEx9fFxcYmV4ZWNcXHMqXFwoXFxzKig/OmJhc2U2NFxcLmI2NGRlY29kZXxfX2ltcG9ydF9fXFwoXFxzKlsnXCJdKD86YmFzZTY0fHpsaWIpWydcIl0pfFxcYmV2YWxcXHMqXFwoXFxzKig/OmF0b2J8QnVmZmVyXFwuZnJvbSlcXHMqXFwoYCwgJ2knKSxcbiAgfSxcbiAge1xuICAgIGlkOiAncmV2ZXJzZS1zaGVsbCcsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBtZXNzYWdlOiAnUmV2ZXJzZS1zaGVsbCBwYXR0ZXJuJyxcbiAgICB0ZXN0OiAvXFwvZGV2XFwvdGNwXFwvXFxkfFxcYm5jKD86YXQpP1xcYlteXFxuXSpcXHMtKD86ZXxjKVxccytcXFMqc2hcXGJ8XFxibmNhdFxcYlteXFxuXSotLSg/OmV4ZWN8c2gtZXhlYylcXGJ8XFxic29jYXRcXGJbXlxcbl0qXFxiZXhlYzovaSxcbiAgfSxcbiAge1xuICAgIGlkOiAnY3JlZGVudGlhbC1hY2Nlc3MnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgZG9jU2V2ZXJpdHk6ICdtZWRpdW0nLFxuICAgIGNvZGVPbmx5OiB0cnVlLFxuICAgIG1lc3NhZ2U6ICdSZWFkcyBjbG91ZCBvciBidWlsZCBjcmVkZW50aWFscycsXG4gICAgdGVzdDogL1xcYkFXU19TRUNSRVRfQUNDRVNTX0tFWVxcYnxcXGJBV1NfU0VTU0lPTl9UT0tFTlxcYnxcXGJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTXyg/OlJFTEFUSVZFfEZVTEwpX1VSSVxcYnxcXGJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4oPzpfRklMRSk/XFxifFxcYkNPREVCVUlMRF9bQS1aMC05X10qKD86VE9LRU58Q1JFREVOVElBTHxTRUNSRVR8QVVUSClbQS1aMC05X10qXFxifDE2OVxcLjI1NFxcLjE2OVxcLjI1NHwxNjlcXC4yNTRcXC4xNzBcXC4yfGZkMDA6ZWMyOjoyNTR8XFwuYXdzXFwvY3JlZGVudGlhbHN8XFwvdmFyXFwvcnVuXFwvc2VjcmV0c1xcYi8sXG4gIH0sXG4gIHtcbiAgICBpZDogJ3BpcGUtdG8tc2hlbGwnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgZG9jU2V2ZXJpdHk6IG51bGwsXG4gICAgY29kZU9ubHk6IHRydWUsXG4gICAgbWVzc2FnZTogJ0Rvd25sb2FkIHBpcGVkIHN0cmFpZ2h0IGludG8gYSBzaGVsbCcsXG4gICAgdGVzdDogbmV3IFJlZ0V4cChTdHJpbmcucmF3YFxcYig/OmN1cmx8d2dldClcXGJbXlxcbnxdKlxcfFxccyoke1NIRUxMfWAsICdpJyksXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NlY3JldC1saXRlcmFsJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdTZWNyZXQtbG9va2luZyBsaXRlcmFsJyxcbiAgICBzZWNyZXQ6IHRydWUsXG4gICAgdGVzdDogL1xcYig/OkFLSUF8QVNJQSlbMC05QS1aXXsxNn1cXGJ8XFxiZ2hbcG91c3JdX1tBLVphLXowLTldezM2LH1cXGJ8XFxiZ2l0aHViX3BhdF9bQS1aYS16MC05X117NDAsfVxcYnxcXGJ4b3hbYmFwXS1bQS1aYS16MC05LV17MTAsfXwtLS0tLUJFR0lOICg/OlJTQSB8RUMgfERTQSB8T1BFTlNTSCB8UEdQIHxFTkNSWVBURUQgKT9QUklWQVRFIEtFWS0tLS0tfFxcYmdscGF0LVtBLVphLXowLTlfLV17MjAsfVxcYnxcXGJza19saXZlX1tBLVphLXowLTldezE2LH1cXGIvLFxuICB9LFxuXTtcblxuLyoqIGBOQU1FPXZhbHVlYCAvIGBOQU1FOiB2YWx1ZWAgLyBgRU5WIE5BTUUgdmFsdWVgIGFzc2lnbm1lbnRzIHRvIGEgc2VjcmV0LWxvb2tpbmcgbmFtZS4gKi9cbmNvbnN0IFNFQ1JFVF9BU1NJR05NRU5UID0gL1xcYihbQS1aYS16MC05X10qKD86VE9LRU58U0VDUkVUfFBBU1NXT1JEfFBBU1NXRHxBUElfS0VZfFBSSVZBVEVfS0VZfEFDQ0VTU19LRVl8X0tFWSkpXFxiW1wiJ10/XFxzKig/Ols6PV18XFxzKVxccypbXCInXT8oW15cXHNcIidgLDspXXsxNix9KS9pO1xuLyoqIEEgbG9uZyBzaW5nbGUtdG9rZW4gYmFzZTY0IG9yIGhleCBydW4gKGFuIGVtYmVkZGVkIHBheWxvYWQpLiAqL1xuY29uc3QgRU5DT0RFRF9CTE9CID0gL1tBLVphLXowLTkrL117MjQwLH09ezAsMn18XFxiWzAtOWEtZkEtRl17MjQwLH1cXGIvO1xuXG4vKiogU2hhbm5vbiBlbnRyb3B5IG9mIGBzYCwgaW4gYml0cyBwZXIgY2hhcmFjdGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYW5ub25FbnRyb3B5KHM6IHN0cmluZyk6IG51bWJlciB7XG4gIGlmICghcykgcmV0dXJuIDA7XG4gIGNvbnN0IGNvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgY2ggb2YgcykgY291bnRzLnNldChjaCwgKGNvdW50cy5nZXQoY2gpID8/IDApICsgMSk7XG4gIGxldCBoID0gMDtcbiAgZm9yIChjb25zdCBuIG9mIGNvdW50cy52YWx1ZXMoKSkge1xuICAgIGNvbnN0IHAgPSBuIC8gcy5sZW5ndGg7XG4gICAgaCAtPSBwICogTWF0aC5sb2cyKHApO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG4vKiogV2hldGhlciBhIHNlY3JldC1hc3NpZ25tZW50IHZhbHVlIGxvb2tzIGxpa2UgYSByZWFsIGNyZWRlbnRpYWwgKG5vdCBhIHBsYWNlaG9sZGVyIG9yIGEgcmVmZXJlbmNlKS4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZVNlY3JldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKC9bJF18XFx7XFx7fDx8PnxcXCp7Myx9fHh7Nix9fGNoYW5nZW1lfGV4YW1wbGV8cGxhY2Vob2xkZXJ8eW91clstX10vaS50ZXN0KHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gc2hhbm5vbkVudHJvcHkodmFsdWUpID49IDMuNTtcbn1cblxuZnVuY3Rpb24gaXNEb2NGaWxlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gLyhefFxcLylyZWFkbWUoXFwuW2Etel0rKT8kL2kudGVzdChwYXRoKSB8fCAvXFwuKG1kfG1hcmtkb3dufHJzdHx0eHR8YWRvYykkL2kudGVzdChwYXRoKTtcbn1cblxuZnVuY3Rpb24gbWFzayhsaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbGluZVxuICAgIC5yZXBsYWNlKC9cXGIoKD86QUtJQXxBU0lBKVswLTlBLVpdezR9KVswLTlBLVpdezEyfVxcYi9nLCAnJDHigKYnKVxuICAgIC5yZXBsYWNlKC9cXGIoZ2hbcG91c3JdX3xnaXRodWJfcGF0X3x4b3hbYmFwXS18Z2xwYXQtfHNrX2xpdmVfKVtBLVphLXowLTlfLV0rL2csICckMeKApicpXG4gICAgLnJlcGxhY2UoU0VDUkVUX0FTU0lHTk1FTlQsIChtLCBfbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiBtLnJlcGxhY2UodmFsdWUsIGAke3ZhbHVlLnNsaWNlKDAsIDQpfeKApmApKTtcbn1cblxuZnVuY3Rpb24gZXhjZXJwdE9mKGxpbmU6IHN0cmluZywgc2VjcmV0OiBib29sZWFuKTogc3RyaW5nIHtcbiAgY29uc3QgdCA9IChzZWNyZXQgPyBtYXNrKGxpbmUpIDogbGluZSkudHJpbSgpO1xuICByZXR1cm4gdC5sZW5ndGggPiBFWENFUlBUX01BWCA/IGAke3Quc2xpY2UoMCwgRVhDRVJQVF9NQVggLSAxKX3igKZgIDogdDtcbn1cblxuLyoqIFdoZXRoZXIgYSBkZWNvZGVkIGJ1ZmZlciBsb29rcyBiaW5hcnkgKGEgTlVMIGluIGl0cyBmaXJzdCA4IEtpQikuICovXG5mdW5jdGlvbiBpc0JpbmFyeShieXRlczogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICBjb25zdCBuID0gTWF0aC5taW4oYnl0ZXMubGVuZ3RoLCA4MTkyKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIGlmIChieXRlc1tpXSA9PT0gMCkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYXNUZXh0KGNvbnRlbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiB7IHRleHQ6IHN0cmluZyB8IG51bGw7IGJ5dGVzOiBudW1iZXIgfSB7XG4gIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHJldHVybiB7IHRleHQ6IGNvbnRlbnQuaW5jbHVkZXMoJ1xcdTAwMDAnKSA/IG51bGwgOiBjb250ZW50LCBieXRlczogQnVmZmVyLmJ5dGVMZW5ndGgoY29udGVudCkgfTtcbiAgaWYgKGlzQmluYXJ5KGNvbnRlbnQpKSByZXR1cm4geyB0ZXh0OiBudWxsLCBieXRlczogY29udGVudC5sZW5ndGggfTtcbiAgcmV0dXJuIHsgdGV4dDogQnVmZmVyLmZyb20oY29udGVudCkudG9TdHJpbmcoJ3V0ZjgnKSwgYnl0ZXM6IGNvbnRlbnQubGVuZ3RoIH07XG59XG5cbi8qKlxuICogU2NhbiBhIHBsdWdpbiBwYWNrYWdlJ3MgZmlsZXMuIGBmaWxlc2AgcGF0aHMgYXJlIHBhY2thZ2UtcmVsYXRpdmU7IGFcbiAqIERvY2tlcmZpbGUgaXMgcmVjb2duaXNlZCBieSBuYW1lIChgRG9ja2VyZmlsZWAsIGAqLkRvY2tlcmZpbGVgLFxuICogYERvY2tlcmZpbGUuKmApLiBEZXRlcm1pbmlzdGljOiBmaW5kaW5ncyBjb21lIGJhY2sgaW4gZmlsZSB0aGVuIGxpbmUgb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2FuUGx1Z2luU291cmNlSGV1cmlzdGljcyhmaWxlczogcmVhZG9ubHkgSGV1cmlzdGljc0lucHV0RmlsZVtdKTogSGV1cmlzdGljc1JlcG9ydCB7XG4gIGNvbnN0IGZpbmRpbmdzOiBIZXVyaXN0aWNGaW5kaW5nW10gPSBbXTtcbiAgY29uc3Qgc2tpcHBlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGxldCBzY2FubmVkRmlsZXMgPSAwO1xuICBsZXQgYnVkZ2V0ID0gSEVVUklTVElDU19NQVhfVE9UQUxfQllURVM7XG5cbiAgY29uc3QgYWRkID0gKGY6IEhldXJpc3RpY0ZpbmRpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtmLmlkfXwke2YucGF0aH18JHtmLmxpbmV9YDtcbiAgICBpZiAoc2Vlbi5oYXMoa2V5KSB8fCBmaW5kaW5ncy5sZW5ndGggPj0gSEVVUklTVElDU19NQVhfRklORElOR1MpIHJldHVybjtcbiAgICBzZWVuLmFkZChrZXkpO1xuICAgIGZpbmRpbmdzLnB1c2goZik7XG4gIH07XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgeyB0ZXh0LCBieXRlcyB9ID0gYXNUZXh0KGZpbGUuY29udGVudCk7XG4gICAgaWYgKHRleHQgPT09IG51bGwgfHwgYnl0ZXMgPiBIRVVSSVNUSUNTX01BWF9GSUxFX0JZVEVTIHx8IGJ5dGVzID4gYnVkZ2V0KSB7XG4gICAgICBza2lwcGVkRmlsZXMucHVzaChmaWxlLnBhdGgpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJ1ZGdldCAtPSBieXRlcztcbiAgICBzY2FubmVkRmlsZXMrKztcbiAgICBjb25zdCBkb2MgPSBpc0RvY0ZpbGUoZmlsZS5wYXRoKTtcbiAgICBjb25zdCBsaW5lcyA9IHRleHQucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpO1xuXG4gICAgbGluZXMuZm9yRWFjaCgocmF3LCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBpZHggKyAxO1xuICAgICAgaWYgKEVOQ09ERURfQkxPQi50ZXN0KHJhdykpIHtcbiAgICAgICAgYWRkKHsgaWQ6ICdlbmNvZGVkLWJsb2InLCBzZXZlcml0eTogJ21lZGl1bScsIHBhdGg6IGZpbGUucGF0aCwgbGluZSwgZXhjZXJwdDogZXhjZXJwdE9mKHJhdywgZmFsc2UpLCBtZXNzYWdlOiAnTG9uZyBzaW5nbGUtbGluZSBlbmNvZGVkIHBheWxvYWQnIH0pO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2NhbiA9IHJhdy5sZW5ndGggPiBMSU5FX1NDQU5fTUFYID8gcmF3LnNsaWNlKDAsIExJTkVfU0NBTl9NQVgpIDogcmF3O1xuICAgICAgY29uc3QgY29tbWVudCA9IC9eXFxzKigjfFxcL1xcLykvLnRlc3Qoc2Nhbik7XG4gICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgTElORV9SVUxFUykge1xuICAgICAgICBpZiAocnVsZS5jb2RlT25seSAmJiBjb21tZW50KSBjb250aW51ZTtcbiAgICAgICAgaWYgKCFydWxlLnRlc3QudGVzdChzY2FuKSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHNldmVyaXR5ID0gZG9jICYmIHJ1bGUuZG9jU2V2ZXJpdHkgIT09IHVuZGVmaW5lZCA/IHJ1bGUuZG9jU2V2ZXJpdHkgOiBydWxlLnNldmVyaXR5O1xuICAgICAgICBpZiAoc2V2ZXJpdHkgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICBhZGQoeyBpZDogcnVsZS5pZCwgc2V2ZXJpdHksIHBhdGg6IGZpbGUucGF0aCwgbGluZSwgZXhjZXJwdDogZXhjZXJwdE9mKHNjYW4sIHJ1bGUuc2VjcmV0ID09PSB0cnVlKSwgbWVzc2FnZTogcnVsZS5tZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgYXNzaWdubWVudCA9IFNFQ1JFVF9BU1NJR05NRU5ULmV4ZWMoc2Nhbik7XG4gICAgICBpZiAoYXNzaWdubWVudCAmJiBsb29rc0xpa2VTZWNyZXRWYWx1ZShhc3NpZ25tZW50WzJdISkpIHtcbiAgICAgICAgYWRkKHtcbiAgICAgICAgICBpZDogJ3NlY3JldC1kZWZhdWx0JyxcbiAgICAgICAgICBzZXZlcml0eTogZG9jID8gJ21lZGl1bScgOiAnaGlnaCcsXG4gICAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgZXhjZXJwdDogZXhjZXJwdE9mKHNjYW4sIHRydWUpLFxuICAgICAgICAgIG1lc3NhZ2U6IGBIaWdoLWVudHJvcHkgdmFsdWUgYXNzaWduZWQgdG8gJHthc3NpZ25tZW50WzFdfWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRG9ja2VyZmlsZSBSVU4gbGluZXMgdGhhdCBwaXBlIGEgZG93bmxvYWQgaW50byBhIHNoZWxsLCBjb250aW51YXRpb24tam9pbmVkXG4gICAgLy8gKHRoZSBsaW5lIHJ1bGUgYWJvdmUgb25seSBzZWVzIG9uZSBwaHlzaWNhbCBsaW5lKS5cbiAgICBpZiAoLyhefFxcLykoRG9ja2VyZmlsZShcXC5bXi9dKyk/fFteL10rXFwuRG9ja2VyZmlsZSkkL2kudGVzdChmaWxlLnBhdGgpKSB7XG4gICAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHBpcGVJbnN0YWxsZXJzKHRleHQpKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzLmZpbmRJbmRleCgobCkgPT4gbC50cmltKCkgIT09ICcnICYmIGluc3RydWN0aW9uLnN0YXJ0c1dpdGgobC50cmltKCkucmVwbGFjZSgvXFxcXFxccyokLywgJycpLnRyaW0oKSkpO1xuICAgICAgICBhZGQoe1xuICAgICAgICAgIGlkOiAncGlwZS10by1zaGVsbCcsXG4gICAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgbGluZTogZmlyc3RMaW5lID49IDAgPyBmaXJzdExpbmUgKyAxIDogMSxcbiAgICAgICAgICBleGNlcnB0OiBleGNlcnB0T2YoaW5zdHJ1Y3Rpb24sIGZhbHNlKSxcbiAgICAgICAgICBtZXNzYWdlOiAnRG93bmxvYWQgcGlwZWQgc3RyYWlnaHQgaW50byBhIHNoZWxsJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmluZGluZ3MsIHNjYW5uZWRGaWxlcywgc2tpcHBlZEZpbGVzIH07XG59XG5cbi8qKiBUaGUgZmluZGluZ3MgdGhhdCBmYWlsIGEgZ2F0ZSAoYGhpZ2hgKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibG9ja2luZ0hldXJpc3RpY3MocmVwb3J0OiBQaWNrPEhldXJpc3RpY3NSZXBvcnQsICdmaW5kaW5ncyc+KTogSGV1cmlzdGljRmluZGluZ1tdIHtcbiAgcmV0dXJuIHJlcG9ydC5maW5kaW5ncy5maWx0ZXIoKGYpID0+IGYuc2V2ZXJpdHkgPT09ICdoaWdoJyk7XG59XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWhldXJpc3RpY3MuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1oZXVyaXN0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUErQmxELGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BELHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUMzRCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQzNDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUN4QixzR0FBc0c7QUFDdEcsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQWUvQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBLHNEQUFzRCxDQUFDO0FBRS9FLE1BQU0sVUFBVSxHQUF3QjtJQUN0QztRQUNFLEVBQUUsRUFBRSxpQkFBaUI7UUFDckIsUUFBUSxFQUFFLE1BQU07UUFDaEIsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxJQUFJLEVBQUUsOE1BQThNO0tBQ3JOO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSx1REFBdUQ7UUFDaEUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUEsMkNBQTJDLEtBQUssK0VBQStFLEtBQUssd0NBQXdDLEtBQUssc0hBQXNILEVBQUUsR0FBRyxDQUFDO0tBQ3pVO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsZUFBZTtRQUNuQixR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QUFFLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNILEdBQUcsQ0FBQztvQkFDRixFQUFFLEVBQUUsZUFBZTtvQkFDbkIsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO29CQUN0QyxPQUFPLEVBQUUsc0NBQXNDO2lCQUNoRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsOENBQThDO0FBQzlDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUEwQztJQUMzRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBNYWx3YXJlIGhldXJpc3RpY3Mgb3ZlciBhIHBsdWdpbiBQQUNLQUdFJ3Mgc291cmNlIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kLFxuICogdGhlIGF1dG9tYXRlZCBzdWJtaXNzaW9uIGdhdGUpOiB0aGUgRG9ja2VyZmlsZSwgdGhlIHNwZWMgYW5kIGV2ZXJ5IG90aGVyIHRleHQgZmlsZSBpbiB0aGVcbiAqIHppcC4gQSBwbHVnaW4gcnVucyBpbnNpZGUgYSBjdXN0b21lcidzIENvZGVCdWlsZCB3aXRoIHRoZSBjdXN0b21lcidzIGtleXMsIHNvXG4gKiB0aGUgcGF0dGVybnMgbG9va2VkIGZvciBhcmUgdGhlIG9uZXMgdGhhdCBhYnVzZSBleGFjdGx5IHRoYXQ6XG4gKlxuICogIC0gY3J5cHRvLW1pbmVyIHNpZ25hdHVyZXMgKHhtcmlnLCBgc3RyYXR1bSt0Y3A6Ly9gLCBjcnlwdG9uaWdodCwg4oCmKTtcbiAqICAtIG9iZnVzY2F0ZWQgZXhlY3V0aW9uIChhIGJhc2U2NC9oZXggYmxvYiBkZWNvZGVkIGludG8gYSBzaGVsbCBvciBgZXZhbGAsXG4gKiAgICBgZXZhbCBcIiQo4oCmIHwgYmFzZTY0IC1kKVwiYCwgbG9uZyBzaW5nbGUtbGluZSBlbmNvZGVkIHBheWxvYWRzKTtcbiAqICAtIGNyZWRlbnRpYWwgYWNjZXNzIChgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZYCwgYEFXU19TRVNTSU9OX1RPS0VOYCwgdGhlIEVDUyAvXG4gKiAgICBDb2RlQnVpbGQgY29udGFpbmVyLWNyZWRlbnRpYWwgZW5kcG9pbnRzIGFuZCB2YXJpYWJsZXMsIElNRFNcbiAqICAgIGAxNjkuMjU0LjE2OS4yNTRgIC8gYGZkMDA6ZWMyOjoyNTRgLCBgfi8uYXdzL2NyZWRlbnRpYWxzYCxcbiAqICAgIGAvdmFyL3J1bi9zZWNyZXRzYCk7XG4gKiAgLSByZXZlcnNlIHNoZWxscyBhbmQgdW5jaGVja2VkIHBpcGUtdG8tc2hlbGwgZG93bmxvYWRzO1xuICogIC0gc2VjcmV0LWxvb2tpbmcgbGl0ZXJhbHMgKGBBS0lB4oCmYCwgYGdocF/igKZgLCBgeG94Yi3igKZgLCBQRU0gcHJpdmF0ZSBrZXlzLCBhXG4gKiAgICBoaWdoLWVudHJvcHkgdmFsdWUgYXNzaWduZWQgdG8gYSBgKl9UT0tFTmAgLyBgKl9TRUNSRVRgIC8gYCpfUEFTU1dPUkRgIC9cbiAqICAgIGAqX0tFWWAgbmFtZSkuXG4gKlxuICogYGhpZ2hgIGZpbmRpbmdzIGZhaWwgdGhlIGFub255bW91cy1zdWJtaXNzaW9uIGdhdGU7IGBtZWRpdW1gIG9uZXMgYXJlIHNob3duXG4gKiB0byBtb2RlcmF0b3JzIG9ubHkuIFRoZSBDTEkgKGBwbHVnaW4gdmFsaWRhdGVgIC8gYHBsdWdpbiBwdWJsaXNoYCkgcnVucyB0aGVcbiAqIHNhbWUgc2NhbiBzbyBhbiBhdXRob3Igc2VlcyBpdCBiZWZvcmUgdXBsb2FkaW5nLiBQdXJlIGFuZCBib3VuZGVkOiBmaWxlcyBhbmRcbiAqIGxpbmVzIGFyZSBzaXplLWNhcHBlZCwgYmluYXJ5IGZpbGVzIGFyZSBza2lwcGVkLCBhbmQgZmluZGluZ3MgYXJlIGNhcHBlZC5cbiAqL1xuXG5pbXBvcnQgeyBwaXBlSW5zdGFsbGVycyB9IGZyb20gJy4vcGx1Z2luLWxpbnQuanMnO1xuXG5leHBvcnQgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSA9ICdoaWdoJyB8ICdtZWRpdW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY0ZpbmRpbmcge1xuICAvKiogUnVsZSBpZCAoc3RhYmxlOyBtb2RlcmF0b3JzIGZpbHRlciBvbiBpdCkuICovXG4gIGlkOiBzdHJpbmc7XG4gIHNldmVyaXR5OiBIZXVyaXN0aWNTZXZlcml0eTtcbiAgLyoqIFRoZSBmaWxlLCByZWxhdGl2ZSB0byB0aGUgcGFja2FnZSByb290LiAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiAxLWJhc2VkIGxpbmUgbnVtYmVyLiAqL1xuICBsaW5lOiBudW1iZXI7XG4gIC8qKiBUaGUgb2ZmZW5kaW5nIGxpbmUsIHRyaW1tZWQgYW5kIGNhcHBlZCwgd2l0aCBzZWNyZXQgdmFsdWVzIG1hc2tlZC4gKi9cbiAgZXhjZXJwdDogc3RyaW5nO1xuICAvKiogV2hhdCB0aGUgcnVsZSBtZWFucy4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY3NSZXBvcnQge1xuICBmaW5kaW5nczogSGV1cmlzdGljRmluZGluZ1tdO1xuICAvKiogRmlsZXMgc2Nhbm5lZC4gKi9cbiAgc2Nhbm5lZEZpbGVzOiBudW1iZXI7XG4gIC8qKiBGaWxlcyBza2lwcGVkIChiaW5hcnksIG92ZXIgdGhlIHNpemUgY2FwLCBvciBwYXN0IHRoZSB0b3RhbCBidWRnZXQpLiAqL1xuICBza2lwcGVkRmlsZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY3NJbnB1dEZpbGUge1xuICBwYXRoOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXk7XG59XG5cbi8qKiBBIHNpbmdsZSBmaWxlIGxhcmdlciB0aGFuIHRoaXMgaXMgbm90IHNjYW5uZWQgKGxpc3RlZCBpbiBgc2tpcHBlZEZpbGVzYCkuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyA9IDUxMiAqIDEwMjQ7XG4vKiogVG90YWwgYnl0ZXMgc2Nhbm5lZCBwZXIgcGFja2FnZS4gKi9cbmV4cG9ydCBjb25zdCBIRVVSSVNUSUNTX01BWF9UT1RBTF9CWVRFUyA9IDE2ICogMTAyNCAqIDEwMjQ7XG4vKiogRmluZGluZ3Mga2VwdCBwZXIgcGFja2FnZS4gKi9cbmV4cG9ydCBjb25zdCBIRVVSSVNUSUNTX01BWF9GSU5ESU5HUyA9IDIwMDtcbmNvbnN0IEVYQ0VSUFRfTUFYID0gMTYwO1xuLyoqIEEgbGluZSBsb25nZXIgdGhhbiB0aGlzIGlzIHNjYW5uZWQgb25seSBmb3IgdGhlIGVuY29kZWQtYmxvYiBydWxlIChhbmQgdHJ1bmNhdGVkIGZvciB0aGUgcmVzdCkuICovXG5jb25zdCBMSU5FX1NDQU5fTUFYID0gOCAqIDEwMjQ7XG5cbmludGVyZmFjZSBMaW5lUnVsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNldmVyaXR5OiBIZXVyaXN0aWNTZXZlcml0eTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0ZXN0OiBSZWdFeHA7XG4gIC8qKiBTZXZlcml0eSBpbiBkb2N1bWVudGF0aW9uIGZpbGVzIChSRUFETUUsICoubWQpLCB3aGVyZSBtZW50aW9uaW5nIGEgbmFtZSBpc24ndCB1c2luZyBpdC4gKi9cbiAgZG9jU2V2ZXJpdHk/OiBIZXVyaXN0aWNTZXZlcml0eSB8IG51bGw7XG4gIC8qKiBNYXNrIHNlY3JldC1sb29raW5nIHZhbHVlcyBpbiB0aGUgZXhjZXJwdC4gKi9cbiAgc2VjcmV0PzogYm9vbGVhbjtcbiAgLyoqIE9ubHkgb24gY29kZSBsaW5lczogYSBgI2AgLyBgLy9gIGNvbW1lbnQgdGhhdCBNRU5USU9OUyB0aGUgcGF0dGVybiBpc24ndCB1c2luZyBpdC4gKi9cbiAgY29kZU9ubHk/OiBib29sZWFuO1xufVxuXG5jb25zdCBTSEVMTCA9IFN0cmluZy5yYXdgKD86c3Vkb1xccyspPyg/OlxcL3Vzcik/KD86XFwvYmluXFwvKT8oPzpiYXxkYXx6fGspP3NoXFxiYDtcblxuY29uc3QgTElORV9SVUxFUzogcmVhZG9ubHkgTGluZVJ1bGVbXSA9IFtcbiAge1xuICAgIGlkOiAnbWluZXItc2lnbmF0dXJlJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdDcnlwdG8tbWluZXIgc2lnbmF0dXJlJyxcbiAgICB0ZXN0OiAvXFxieG1yaWdcXGJ8c3RyYXR1bVxcKyg/OnRjcHxzc2x8dGxzKTpcXC9cXC98XFxiY3J5cHRvbmlnaHRcXGJ8XFxibWluZXJkXFxifFxcYm5pY2VoYXNoXFxifFxcYmNwdW1pbmVyXFxifFxcYnhtci1zdGFrXFxifFxcYmV0aG1pbmVyXFxifFxcYm5ibWluZXJcXGJ8XFxicGhvZW5peG1pbmVyXFxifFxcYmxvbG1pbmVyXFxifFxcYnN1cHBvcnR4bXJcXGJ8XFxibWluZXhtclxcYnxcXGJtb25lcm9vY2VhblxcYi9pLFxuICB9LFxuICB7XG4gICAgaWQ6ICdvYmZ1c2NhdGVkLWV4ZWMnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgbWVzc2FnZTogJ0VuY29kZWQgcGF5bG9hZCBkZWNvZGVkIHN0cmFpZ2h0IGludG8gYSBzaGVsbCBvciBldmFsJyxcbiAgICB0ZXN0OiBuZXcgUmVnRXhwKFN0cmluZy5yYXdgYmFzZTY0XFxzKyg/Oi1kfC1EfC0tZGVjb2RlKVxcYlteXFxuXSpcXHxcXHMqJHtTSEVMTH18XFxiZXZhbFxcYlteXFxuXSpcXCRcXChbXlxcbl0qYmFzZTY0XFxzKyg/Oi1kfC1EfC0tZGVjb2RlKXxcXGJ4eGRcXHMrLXJcXGJbXlxcbl0qXFx8XFxzKiR7U0hFTEx9fCg/OlxcXFx4WzAtOWEtZkEtRl17Mn0pezgsfVteXFxuXSpcXHxcXHMqJHtTSEVMTH18XFxiZXhlY1xccypcXChcXHMqKD86YmFzZTY0XFwuYjY0ZGVjb2RlfF9faW1wb3J0X19cXChcXHMqWydcIl0oPzpiYXNlNjR8emxpYilbJ1wiXSl8XFxiZXZhbFxccypcXChcXHMqKD86YXRvYnxCdWZmZXJcXC5mcm9tKVxccypcXChgLCAnaScpLFxuICB9LFxuICB7XG4gICAgaWQ6ICdyZXZlcnNlLXNoZWxsJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdSZXZlcnNlLXNoZWxsIHBhdHRlcm4nLFxuICAgIHRlc3Q6IC9cXC9kZXZcXC90Y3BcXC9cXGR8XFxibmMoPzphdCk/XFxiW15cXG5dKlxccy0oPzplfGMpXFxzK1xcUypzaFxcYnxcXGJuY2F0XFxiW15cXG5dKi0tKD86ZXhlY3xzaC1leGVjKVxcYnxcXGJzb2NhdFxcYlteXFxuXSpcXGJleGVjOi9pLFxuICB9LFxuICB7XG4gICAgaWQ6ICdjcmVkZW50aWFsLWFjY2VzcycsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBkb2NTZXZlcml0eTogJ21lZGl1bScsXG4gICAgY29kZU9ubHk6IHRydWUsXG4gICAgbWVzc2FnZTogJ1JlYWRzIGNsb3VkIG9yIGJ1aWxkIGNyZWRlbnRpYWxzJyxcbiAgICB0ZXN0OiAvXFxiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXFxifFxcYkFXU19TRVNTSU9OX1RPS0VOXFxifFxcYkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfKD86UkVMQVRJVkV8RlVMTClfVVJJXFxifFxcYkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTig/Ol9GSUxFKT9cXGJ8XFxiQ09ERUJVSUxEX1tBLVowLTlfXSooPzpUT0tFTnxDUkVERU5USUFMfFNFQ1JFVHxBVVRIKVtBLVowLTlfXSpcXGJ8MTY5XFwuMjU0XFwuMTY5XFwuMjU0fDE2OVxcLjI1NFxcLjE3MFxcLjJ8ZmQwMDplYzI6OjI1NHxcXC5hd3NcXC9jcmVkZW50aWFsc3xcXC92YXJcXC9ydW5cXC9zZWNyZXRzXFxiLyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGlwZS10by1zaGVsbCcsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBkb2NTZXZlcml0eTogbnVsbCxcbiAgICBjb2RlT25seTogdHJ1ZSxcbiAgICBtZXNzYWdlOiAnRG93bmxvYWQgcGlwZWQgc3RyYWlnaHQgaW50byBhIHNoZWxsJyxcbiAgICB0ZXN0OiBuZXcgUmVnRXhwKFN0cmluZy5yYXdgXFxiKD86Y3VybHx3Z2V0KVxcYlteXFxufF0qXFx8XFxzKiR7U0hFTEx9YCwgJ2knKSxcbiAgfSxcbiAge1xuICAgIGlkOiAnc2VjcmV0LWxpdGVyYWwnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgbWVzc2FnZTogJ1NlY3JldC1sb29raW5nIGxpdGVyYWwnLFxuICAgIHNlY3JldDogdHJ1ZSxcbiAgICB0ZXN0OiAvXFxiKD86QUtJQXxBU0lBKVswLTlBLVpdezE2fVxcYnxcXGJnaFtwb3Vzcl1fW0EtWmEtejAtOV17MzYsfVxcYnxcXGJnaXRodWJfcGF0X1tBLVphLXowLTlfXXs0MCx9XFxifFxcYnhveFtiYXBdLVtBLVphLXowLTktXXsxMCx9fC0tLS0tQkVHSU4gKD86UlNBIHxFQyB8RFNBIHxPUEVOU1NIIHxQR1AgfEVOQ1JZUFRFRCApP1BSSVZBVEUgS0VZLS0tLS18XFxiZ2xwYXQtW0EtWmEtejAtOV8tXXsyMCx9XFxifFxcYnNrX2xpdmVfW0EtWmEtejAtOV17MTYsfVxcYi8sXG4gIH0sXG5dO1xuXG4vKiogYE5BTUU9dmFsdWVgIC8gYE5BTUU6IHZhbHVlYCAvIGBFTlYgTkFNRSB2YWx1ZWAgYXNzaWdubWVudHMgdG8gYSBzZWNyZXQtbG9va2luZyBuYW1lLiAqL1xuY29uc3QgU0VDUkVUX0FTU0lHTk1FTlQgPSAvXFxiKFtBLVphLXowLTlfXSooPzpUT0tFTnxTRUNSRVR8UEFTU1dPUkR8UEFTU1dEfEFQSV9LRVl8UFJJVkFURV9LRVl8QUNDRVNTX0tFWXxfS0VZKSlcXGJbXCInXT9cXHMqKD86Wzo9XXxcXHMpXFxzKltcIiddPyhbXlxcc1wiJ2AsOyldezE2LH0pL2k7XG4vKiogQSBsb25nIHNpbmdsZS10b2tlbiBiYXNlNjQgb3IgaGV4IHJ1biAoYW4gZW1iZWRkZWQgcGF5bG9hZCkuICovXG5jb25zdCBFTkNPREVEX0JMT0IgPSAvW0EtWmEtejAtOSsvXXsyNDAsfT17MCwyfXxcXGJbMC05YS1mQS1GXXsyNDAsfVxcYi87XG5cbi8qKiBTaGFubm9uIGVudHJvcHkgb2YgYHNgLCBpbiBiaXRzIHBlciBjaGFyYWN0ZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc2hhbm5vbkVudHJvcHkoczogc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKCFzKSByZXR1cm4gMDtcbiAgY29uc3QgY291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBjaCBvZiBzKSBjb3VudHMuc2V0KGNoLCAoY291bnRzLmdldChjaCkgPz8gMCkgKyAxKTtcbiAgbGV0IGggPSAwO1xuICBmb3IgKGNvbnN0IG4gb2YgY291bnRzLnZhbHVlcygpKSB7XG4gICAgY29uc3QgcCA9IG4gLyBzLmxlbmd0aDtcbiAgICBoIC09IHAgKiBNYXRoLmxvZzIocCk7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cbi8qKiBXaGV0aGVyIGEgc2VjcmV0LWFzc2lnbm1lbnQgdmFsdWUgbG9va3MgbGlrZSBhIHJlYWwgY3JlZGVudGlhbCAobm90IGEgcGxhY2Vob2xkZXIgb3IgYSByZWZlcmVuY2UpLiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlU2VjcmV0VmFsdWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoL1skXXxcXHtcXHt8PHw+fFxcKnszLH18eHs2LH18Y2hhbmdlbWV8ZXhhbXBsZXxwbGFjZWhvbGRlcnx5b3VyWy1fXS9pLnRlc3QodmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBzaGFubm9uRW50cm9weSh2YWx1ZSkgPj0gMy41O1xufVxuXG5mdW5jdGlvbiBpc0RvY0ZpbGUocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvKF58XFwvKXJlYWRtZShcXC5bYS16XSspPyQvaS50ZXN0KHBhdGgpIHx8IC9cXC4obWR8bWFya2Rvd258cnN0fHR4dHxhZG9jKSQvaS50ZXN0KHBhdGgpO1xufVxuXG5mdW5jdGlvbiBtYXNrKGxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBsaW5lXG4gICAgLnJlcGxhY2UoL1xcYigoPzpBS0lBfEFTSUEpWzAtOUEtWl17NH0pWzAtOUEtWl17MTJ9XFxiL2csICckMeKApicpXG4gICAgLnJlcGxhY2UoL1xcYihnaFtwb3Vzcl1ffGdpdGh1Yl9wYXRffHhveFtiYXBdLXxnbHBhdC18c2tfbGl2ZV8pW0EtWmEtejAtOV8tXSsvZywgJyQx4oCmJylcbiAgICAucmVwbGFjZShTRUNSRVRfQVNTSUdOTUVOVCwgKG0sIF9uYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IG0ucmVwbGFjZSh2YWx1ZSwgYCR7dmFsdWUuc2xpY2UoMCwgNCl94oCmYCkpO1xufVxuXG5mdW5jdGlvbiBleGNlcnB0T2YobGluZTogc3RyaW5nLCBzZWNyZXQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBjb25zdCB0ID0gKHNlY3JldCA/IG1hc2sobGluZSkgOiBsaW5lKS50cmltKCk7XG4gIHJldHVybiB0Lmxlbmd0aCA+IEVYQ0VSUFRfTUFYID8gYCR7dC5zbGljZSgwLCBFWENFUlBUX01BWCAtIDEpfeKApmAgOiB0O1xufVxuXG4vKiogV2hldGhlciBhIGRlY29kZWQgYnVmZmVyIGxvb2tzIGJpbmFyeSAoYSBOVUwgaW4gaXRzIGZpcnN0IDggS2lCKS4gKi9cbmZ1bmN0aW9uIGlzQmluYXJ5KGJ5dGVzOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gIGNvbnN0IG4gPSBNYXRoLm1pbihieXRlcy5sZW5ndGgsIDgxOTIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgaWYgKGJ5dGVzW2ldID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhc1RleHQoY29udGVudDogc3RyaW5nIHwgVWludDhBcnJheSk6IHsgdGV4dDogc3RyaW5nIHwgbnVsbDsgYnl0ZXM6IG51bWJlciB9IHtcbiAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgcmV0dXJuIHsgdGV4dDogY29udGVudC5pbmNsdWRlcygnXFx1MDAwMCcpID8gbnVsbCA6IGNvbnRlbnQsIGJ5dGVzOiBCdWZmZXIuYnl0ZUxlbmd0aChjb250ZW50KSB9O1xuICBpZiAoaXNCaW5hcnkoY29udGVudCkpIHJldHVybiB7IHRleHQ6IG51bGwsIGJ5dGVzOiBjb250ZW50Lmxlbmd0aCB9O1xuICByZXR1cm4geyB0ZXh0OiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZygndXRmOCcpLCBieXRlczogY29udGVudC5sZW5ndGggfTtcbn1cblxuLyoqXG4gKiBTY2FuIGEgcGx1Z2luIHBhY2thZ2UncyBmaWxlcy4gYGZpbGVzYCBwYXRocyBhcmUgcGFja2FnZS1yZWxhdGl2ZTsgYVxuICogRG9ja2VyZmlsZSBpcyByZWNvZ25pc2VkIGJ5IG5hbWUgKGBEb2NrZXJmaWxlYCwgYCouRG9ja2VyZmlsZWAsXG4gKiBgRG9ja2VyZmlsZS4qYCkuIERldGVybWluaXN0aWM6IGZpbmRpbmdzIGNvbWUgYmFjayBpbiBmaWxlIHRoZW4gbGluZSBvcmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjYW5QbHVnaW5Tb3VyY2VIZXVyaXN0aWNzKGZpbGVzOiByZWFkb25seSBIZXVyaXN0aWNzSW5wdXRGaWxlW10pOiBIZXVyaXN0aWNzUmVwb3J0IHtcbiAgY29uc3QgZmluZGluZ3M6IEhldXJpc3RpY0ZpbmRpbmdbXSA9IFtdO1xuICBjb25zdCBza2lwcGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgbGV0IHNjYW5uZWRGaWxlcyA9IDA7XG4gIGxldCBidWRnZXQgPSBIRVVSSVNUSUNTX01BWF9UT1RBTF9CWVRFUztcblxuICBjb25zdCBhZGQgPSAoZjogSGV1cmlzdGljRmluZGluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGtleSA9IGAke2YuaWR9fCR7Zi5wYXRofXwke2YubGluZX1gO1xuICAgIGlmIChzZWVuLmhhcyhrZXkpIHx8IGZpbmRpbmdzLmxlbmd0aCA+PSBIRVVSSVNUSUNTX01BWF9GSU5ESU5HUykgcmV0dXJuO1xuICAgIHNlZW4uYWRkKGtleSk7XG4gICAgZmluZGluZ3MucHVzaChmKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCB7IHRleHQsIGJ5dGVzIH0gPSBhc1RleHQoZmlsZS5jb250ZW50KTtcbiAgICBpZiAodGV4dCA9PT0gbnVsbCB8fCBieXRlcyA+IEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMgfHwgYnl0ZXMgPiBidWRnZXQpIHtcbiAgICAgIHNraXBwZWRGaWxlcy5wdXNoKGZpbGUucGF0aCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgYnVkZ2V0IC09IGJ5dGVzO1xuICAgIHNjYW5uZWRGaWxlcysrO1xuICAgIGNvbnN0IGRvYyA9IGlzRG9jRmlsZShmaWxlLnBhdGgpO1xuICAgIGNvbnN0IGxpbmVzID0gdGV4dC5yZXBsYWNlKC9cXHJcXG4/L2csICdcXG4nKS5zcGxpdCgnXFxuJyk7XG5cbiAgICBsaW5lcy5mb3JFYWNoKChyYXcsIGlkeCkgPT4ge1xuICAgICAgY29uc3QgbGluZSA9IGlkeCArIDE7XG4gICAgICBpZiAoRU5DT0RFRF9CTE9CLnRlc3QocmF3KSkge1xuICAgICAgICBhZGQoeyBpZDogJ2VuY29kZWQtYmxvYicsIHNldmVyaXR5OiAnbWVkaXVtJywgcGF0aDogZmlsZS5wYXRoLCBsaW5lLCBleGNlcnB0OiBleGNlcnB0T2YocmF3LCBmYWxzZSksIG1lc3NhZ2U6ICdMb25nIHNpbmdsZS1saW5lIGVuY29kZWQgcGF5bG9hZCcgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzY2FuID0gcmF3Lmxlbmd0aCA+IExJTkVfU0NBTl9NQVggPyByYXcuc2xpY2UoMCwgTElORV9TQ0FOX01BWCkgOiByYXc7XG4gICAgICBjb25zdCBjb21tZW50ID0gL15cXHMqKCN8XFwvXFwvKS8udGVzdChzY2FuKTtcbiAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBMSU5FX1JVTEVTKSB7XG4gICAgICAgIGlmIChydWxlLmNvZGVPbmx5ICYmIGNvbW1lbnQpIGNvbnRpbnVlO1xuICAgICAgICBpZiAoIXJ1bGUudGVzdC50ZXN0KHNjYW4pKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2V2ZXJpdHkgPSBkb2MgJiYgcnVsZS5kb2NTZXZlcml0eSAhPT0gdW5kZWZpbmVkID8gcnVsZS5kb2NTZXZlcml0eSA6IHJ1bGUuc2V2ZXJpdHk7XG4gICAgICAgIGlmIChzZXZlcml0eSA9PT0gbnVsbCkgY29udGludWU7XG4gICAgICAgIGFkZCh7IGlkOiBydWxlLmlkLCBzZXZlcml0eSwgcGF0aDogZmlsZS5wYXRoLCBsaW5lLCBleGNlcnB0OiBleGNlcnB0T2Yoc2NhbiwgcnVsZS5zZWNyZXQgPT09IHRydWUpLCBtZXNzYWdlOiBydWxlLm1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBhc3NpZ25tZW50ID0gU0VDUkVUX0FTU0lHTk1FTlQuZXhlYyhzY2FuKTtcbiAgICAgIGlmIChhc3NpZ25tZW50ICYmIGxvb2tzTGlrZVNlY3JldFZhbHVlKGFzc2lnbm1lbnRbMl0hKSkge1xuICAgICAgICBhZGQoe1xuICAgICAgICAgIGlkOiAnc2VjcmV0LWRlZmF1bHQnLFxuICAgICAgICAgIHNldmVyaXR5OiBkb2MgPyAnbWVkaXVtJyA6ICdoaWdoJyxcbiAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgbGluZSxcbiAgICAgICAgICBleGNlcnB0OiBleGNlcnB0T2Yoc2NhbiwgdHJ1ZSksXG4gICAgICAgICAgbWVzc2FnZTogYEhpZ2gtZW50cm9weSB2YWx1ZSBhc3NpZ25lZCB0byAke2Fzc2lnbm1lbnRbMV19YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBEb2NrZXJmaWxlIFJVTiBsaW5lcyB0aGF0IHBpcGUgYSBkb3dubG9hZCBpbnRvIGEgc2hlbGwsIGNvbnRpbnVhdGlvbi1qb2luZWRcbiAgICAvLyAodGhlIGxpbmUgcnVsZSBhYm92ZSBvbmx5IHNlZXMgb25lIHBoeXNpY2FsIGxpbmUpLlxuICAgIGlmICgvKF58XFwvKShEb2NrZXJmaWxlKFxcLlteL10rKT98W14vXStcXC5Eb2NrZXJmaWxlKSQvaS50ZXN0KGZpbGUucGF0aCkpIHtcbiAgICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgcGlwZUluc3RhbGxlcnModGV4dCkpIHtcbiAgICAgICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXMuZmluZEluZGV4KChsKSA9PiBsLnRyaW0oKSAhPT0gJycgJiYgaW5zdHJ1Y3Rpb24uc3RhcnRzV2l0aChsLnRyaW0oKS5yZXBsYWNlKC9cXFxcXFxzKiQvLCAnJykudHJpbSgpKSk7XG4gICAgICAgIGFkZCh7XG4gICAgICAgICAgaWQ6ICdwaXBlLXRvLXNoZWxsJyxcbiAgICAgICAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgICAgICAgIHBhdGg6IGZpbGUucGF0aCxcbiAgICAgICAgICBsaW5lOiBmaXJzdExpbmUgPj0gMCA/IGZpcnN0TGluZSArIDEgOiAxLFxuICAgICAgICAgIGV4Y2VycHQ6IGV4Y2VycHRPZihpbnN0cnVjdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIG1lc3NhZ2U6ICdEb3dubG9hZCBwaXBlZCBzdHJhaWdodCBpbnRvIGEgc2hlbGwnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBmaW5kaW5ncywgc2Nhbm5lZEZpbGVzLCBza2lwcGVkRmlsZXMgfTtcbn1cblxuLyoqIFRoZSBmaW5kaW5ncyB0aGF0IGZhaWwgYSBnYXRlIChgaGlnaGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJsb2NraW5nSGV1cmlzdGljcyhyZXBvcnQ6IFBpY2s8SGV1cmlzdGljc1JlcG9ydCwgJ2ZpbmRpbmdzJz4pOiBIZXVyaXN0aWNGaW5kaW5nW10ge1xuICByZXR1cm4gcmVwb3J0LmZpbmRpbmdzLmZpbHRlcigoZikgPT4gZi5zZXZlcml0eSA9PT0gJ2hpZ2gnKTtcbn1cbiJdfQ==
@@ -133,4 +133,4 @@ export function lintPluginSpec(spec, specText) {
133
133
  }
134
134
  return findings;
135
135
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tbGludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU96RCw0REFBNEQ7QUFDNUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXNCLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvTCxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXNCLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXZJLHdGQUF3RjtBQUN4RixNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBZTtJQUNwRCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUztRQUNoQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLFNBQVM7UUFDWCxDQUFDO1FBQ0QsR0FBRyxJQUFJLEdB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QUNELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5RSxHQUFHLENBQUMsa0VBQWtFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQUUsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdkgsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFBRSxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUN0SSxNQUFNLFFBQVEsR0FBRyx5RkFBeUYsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUgsSUFBSSxRQUFRO1FBQUUsR0FBRyxDQUFDLDhGQUE4RixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0ksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxxR0FBcUcsRUFBRSxDQUFDLENBQUM7SUFDdEosQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgY2F0YWxvZydzIFNUQVRJQyBwbHVnaW4gY2hlY2tzIChkZXBsb3kvYmluL3Rlc3QtcGx1Z2lucy5zaCksIGZvciBhIHBsdWdpblxuICogZGlyZWN0b3J5IG91dHNpZGUgdGhlIHJlcG86IHRoZSBzcGVjIGZpZWxkcyB0aGUgY2F0YWxvZyB0b29saW5nIHJlcXVpcmVzIGFuZFxuICogdGhlIERvY2tlcmZpbGUgcnVsZXMgKGRlcGxveS9wbHVnaW5zL1JFQURNRS5tZCBcIkRvY2tlcmZpbGUgcnVsZXNcIikuIFNoYXJlZFxuICogZnJvbSBhcGktY29yZSBzbyB0aGUgQ0xJIChgcGx1Z2luIHZhbGlkYXRlIC0tbGludGAsIGBwbHVnaW4gcHVibGlzaGApIGFuZCB0aGVcbiAqIHBsdWdpbiBzZXJ2aWNlIChBSSBnZW5lcmF0aW9uKSBhcHBseSBPTkUgaW1wbGVtZW50YXRpb24gKHBsdWdpbi1lY29zeXN0ZW0gVzYpOlxuICpcbiAqICAtIHRoZSBmaW5hbCBzdGFnZSBlbmRzIGFzIGEgbm9uLXJvb3QgYFVTRVJgLCBzZXQgaW4gdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlO1xuICogIC0gZXZlcnkgZG93bmxvYWQgZ29lcyB0aHJvdWdoIGBmZXRjaC12ZXJpZmllZGAgKG5vIHJhdyBjdXJsL3dnZXQsIG5vIGBBREQgPHVybD5gXG4gKiAgICB3aXRob3V0IGAtLWNoZWNrc3VtPWApO1xuICogIC0gbm8gcGlwZS10by1zaGVsbCBpbnN0YWxsZXJzO1xuICogIC0gbm8gc2VjcmV0cyBpbiBgRU5WYC9gQVJHYDsgYXB0IGNhY2hlcyBjbGVhbmVkOyBhIGBXT1JLRElSYDtcbiAqICAtIHRoZSBzcGVjIG5ldmVyIGRvd25sb2FkcyBhIHRvb2wgYXQgcnVudGltZS5cbiAqXG4gKiBPbmx5IHRoZSByZXBvLWxheW91dCBydWxlcyAobmFtZSA9IGRpcmVjdG9yeSwgY2F0ZWdvcnkgPSBwYXJlbnQgZGlyZWN0b3J5KVxuICogYXJlIGxlZnQgdG8gdGVzdC1wbHVnaW5zLnNoOiBhIHB1Ymxpc2hlcidzIHBsdWdpbiBkb2Vzbid0IGxpdmUgaW4gdGhhdCB0cmVlLlxuICogV2FybmluZ3MgbmV2ZXIgZmFpbDsgZXJyb3JzIGRvLlxuICovXG5cbmltcG9ydCB7IHBhcnNlRG9ja2VyZmlsZSB9IGZyb20gJy4vZG9ja2VyZmlsZS1zdGF0aWMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkxpbnRGaW5kaW5nIHtcbiAgbGV2ZWw6ICdlcnJvcicgfCAnd2FybmluZyc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIFNwZWMgZmllbGRzIHRlc3QtcGx1Z2lucy5zaCByZXF1aXJlcyBvbiBldmVyeSBwbHVnaW4uICovXG5leHBvcnQgY29uc3QgUExVR0lOX0xJTlRfUkVRVUlSRURfRklFTERTOiByZWFkb25seSBzdHJpbmdbXSA9IFsnbmFtZScsICdkZXNjcmlwdGlvbicsICdrZXl3b3JkcycsICdjYXRlZ29yeScsICd2ZXJzaW9uJywgJ3BsdWdpblR5cGUnLCAnY29tcHV0ZVR5cGUnLCAndGltZW91dCcsICdmYWlsdXJlQmVoYXZpb3InLCAnc2VjcmV0cyddO1xuLyoqIOKApmFuZCBvbiBldmVyeSBDb2RlQnVpbGRTdGVwLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9MSU5UX0NPREVCVUlMRF9GSUVMRFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWydwcmltYXJ5T3V0cHV0RGlyZWN0b3J5JywgJ2RvY2tlcmZpbGUnLCAnaW5zdGFsbENvbW1hbmRzJywgJ2NvbW1hbmRzJ107XG5cbi8qKiBMb2dpY2FsIERvY2tlcmZpbGUgaW5zdHJ1Y3Rpb25zOiBjb21tZW50IGxpbmVzIGRyb3BwZWQsIGBcXGAgY29udGludWF0aW9ucyBqb2luZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGJ1ZiA9ICcnO1xuICBmb3IgKGNvbnN0IHJhdyBvZiBjb250ZW50LnJlcGxhY2UoL1xcclxcbj8vZywgJ1xcbicpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmICgvXlxccyojLy50ZXN0KHJhdykpIGNvbnRpbnVlO1xuICAgIGlmICgvXFxcXFxccyokLy50ZXN0KHJhdykpIHtcbiAgICAgIGJ1ZiArPSBgJHtyYXcucmVwbGFjZSgvXFxcXFxccyokLywgJycpfSBgO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJ1ZiArPSByYXc7XG4gICAgaWYgKC9cXFMvLnRlc3QoYnVmKSkgb3V0LnB1c2goYnVmLnRyaW0oKSk7XG4gICAgYnVmID0gJyc7XG4gIH1cbiAgaWYgKC9cXFMvLnRlc3QoYnVmKSkgb3V0LnB1c2goYnVmLnRyaW0oKSk7XG4gIHJldHVybiBvdXQ7XG59XG5cbmNvbnN0IGluc3RydWN0aW9uT2YgPSAobGluZTogc3RyaW5nKTogc3RyaW5nID0+ICgvXihcXFMrKS8uZXhlYyhsaW5lKT8uWzFdID8/ICcnKS50b1VwcGVyQ2FzZSgpO1xuXG4vKiogUlVOIGluc3RydWN0aW9ucyB0aGF0IHBpcGUgaW50byBhIHNoZWxsIChgY3VybCDigKYgfCBiYXNoYCkuICovXG5leHBvcnQgZnVuY3Rpb24gcGlwZUluc3RhbGxlcnMoY29udGVudDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KS5maWx0ZXIobCA9PlxuICAgIGluc3RydWN0aW9uT2YobCkgPT09ICdSVU4nICYmIC8oXnxbXnxdKVxcfFxccyooc3Vkb1xccyspPyhcXC91c3IpPyhcXC9iaW5cXC8pPyhiYXxkYXx6fGspP3NoKFxcc3wkKS8udGVzdChsKSk7XG59XG5cbi8qKiBjdXJsL3dnZXQgRE9XTkxPQURTIGluIFJVTiwgYW5kIGBBREQgPHVybD5gIHdpdGhvdXQgYC0tY2hlY2tzdW09YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXdEb3dubG9hZHMoY29udGVudDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBmb3VuZDogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGRvY2tlcmZpbGVJbnN0cnVjdGlvbnMoY29udGVudCkpIHtcbiAgICBjb25zdCBpbnN0ciA9IGluc3RydWN0aW9uT2YobGluZSk7XG4gICAgaWYgKGluc3RyID09PSAnQUREJyAmJiAvaHR0cHM/OlxcL1xcLy8udGVzdChsaW5lKSAmJiAhLy0tY2hlY2tzdW09Ly50ZXN0KGxpbmUpKSB7XG4gICAgICBmb3VuZC5wdXNoKGBBREQgJHtsaW5lfWApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChpbnN0ciAhPT0gJ1JVTicpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGJvZHkgPSBsaW5lLnJlcGxhY2UoL15cXHMqcnVuXFxzKy9pLCAnJyk7XG4gICAgZm9yIChsZXQgcGFydCBvZiBib2R5LnNwbGl0KC8mJnxcXHxcXHx8O3xcXHx8XFwkXFwofGB8XFwofFxcey8pKSB7XG4gICAgICBmb3IgKDs7KSB7XG4gICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoL15cXHMrLywgJycpO1xuICAgICAgICBjb25zdCBwcmVmaXggPSAvXihpZnx0aGVufGRvfGVsc2V8ZWxpZnx3aGlsZXx1bnRpbHwhfHN1ZG98ZXhlY3xjb21tYW5kfHRpbWV8LS1bYS16LV0rKD1cXFMqKT98W0EtWmEtel9dW0EtWmEtejAtOV9dKj1cXFMqKVxccysvLmV4ZWMocGFydCk7XG4gICAgICAgIGlmICghcHJlZml4KSBicmVhaztcbiAgICAgICAgcGFydCA9IHBhcnQuc2xpY2UocHJlZml4WzBdLmxlbmd0aCk7XG4gICAgICB9XG4gICAgICBpZiAoL14oY3VybHx3Z2V0KShcXHN8JCkvLnRlc3QocGFydCkgJiYgKC86XFwvXFwvLy50ZXN0KHBhcnQpIHx8IC9cXCQvLnRlc3QocGFydCkgfHwgL1xccygtb3wtT3wtLW91dHB1dHwtLW91dHB1dC1kb2N1bWVudCkoW1xccz1dfCQpLy50ZXN0KHBhcnQpKSkge1xuICAgICAgICBmb3VuZC5wdXNoKHBhcnQudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG4vKiogTGludCBhIERvY2tlcmZpbGUgYWdhaW5zdCB0aGUgY2F0YWxvZydzIHJ1bGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbnRQbHVnaW5Eb2NrZXJmaWxlKGNvbnRlbnQ6IHN0cmluZyk6IFBsdWdpbkxpbnRGaW5kaW5nW10ge1xuICBjb25zdCBmaW5kaW5nczogUGx1Z2luTGludEZpbmRpbmdbXSA9IFtdO1xuICBjb25zdCBlcnIgPSAobWVzc2FnZTogc3RyaW5nKSA9PiBmaW5kaW5ncy5wdXNoKHsgbGV2ZWw6ICdlcnJvcicsIG1lc3NhZ2UgfSk7XG4gIGNvbnN0IGluc3RydWN0aW9ucyA9IGRvY2tlcmZpbGVJbnN0cnVjdGlvbnMoY29udGVudCk7XG4gIGlmICghaW5zdHJ1Y3Rpb25zLnNvbWUobCA9PiBpbnN0cnVjdGlvbk9mKGwpID09PSAnRlJPTScpKSB7XG4gICAgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIEZST00gaW5zdHJ1Y3Rpb24nKTtcbiAgICByZXR1cm4gZmluZGluZ3M7XG4gIH1cbiAgaWYgKCFpbnN0cnVjdGlvbnMuc29tZShsID0+IGluc3RydWN0aW9uT2YobCkgPT09ICdXT1JLRElSJykpIGVycignRG9ja2VyZmlsZTogbWlzc2luZyBXT1JLRElSIGluc3RydWN0aW9uJyk7XG4gIGlmICgvXihFTlZ8QVJHKVxccysoLipUT0tFTnwuKlNFQ1JFVHwuKlBBU1NXT1JEfC4qQVBJX0tFWXwuKlBSSVZBVEVfS0VZKS9tLnRlc3QoY29udGVudCkpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IHBvdGVudGlhbCBzZWNyZXQgaW4gYW4gRU5WL0FSRyBpbnN0cnVjdGlvbiAocGFzcyBzZWNyZXRzIGF0IHJ1biB0aW1lIHZpYSB0aGUgc3BlY1xcJ3MgYHNlY3JldHNgKScpO1xuICB9XG4gIGNvbnN0IGZpbmFsVXNlciA9IHBhcnNlRG9ja2VyZmlsZShjb250ZW50KS5maW5hbFVzZXI7XG4gIGNvbnN0IHVzZXJQYXJ0ID0gKGZpbmFsVXNlciA/PyAnJykuc3BsaXQoJzonKVswXTtcbiAgaWYgKCFmaW5hbFVzZXIpIGVycignRG9ja2VyZmlsZTogdGhlIGZpbmFsIHN0YWdlIHNldHMgbm8gVVNFUiAoZW5kIHdpdGggYFVTRVIgMTAwMDoxMDAwYCknKTtcbiAgZWxzZSBpZiAodXNlclBhcnQgPT09ICdyb290JyB8fCB1c2VyUGFydCA9PT0gJzAnKSBlcnIoYERvY2tlcmZpbGU6IHRoZSBmaW5hbCBzdGFnZSBydW5zIGFzIHJvb3QgKFVTRVIgJHtmaW5hbFVzZXJ9KTsgZW5kIHdpdGggXFxgVVNFUiAxMDAwOjEwMDBcXGBgKTtcbiAgY29uc3QgcGlwZXMgPSBwaXBlSW5zdGFsbGVycyhjb250ZW50KTtcbiAgaWYgKHBpcGVzLmxlbmd0aCkgZXJyKGBEb2NrZXJmaWxlOiBwaXBlcyBhIGRvd25sb2FkIGludG8gYSBzaGVsbCAodXNlIGEgcGlubmVkIHJlbGVhc2UgdmlhIGZldGNoLXZlcmlmaWVkLCBhIGZldGNoLWFwdC1rZXkgYXB0IHJlcG8sIG9yIGFuIGVjb3N5c3RlbSBiYXNlKTogJHtwaXBlc1swXSEuc2xpY2UoMCwgMTYwKX1gKTtcbiAgY29uc3QgZG93bmxvYWRzID0gcmF3RG93bmxvYWRzKGNvbnRlbnQpO1xuICBpZiAoZG93bmxvYWRzLmxlbmd0aCkgZXJyKGBEb2NrZXJmaWxlOiByYXcgZG93bmxvYWQgbm90IHZpYSBmZXRjaC12ZXJpZmllZDogJHtkb3dubG9hZHNbMF0hLnNsaWNlKDAsIDE2MCl9YCk7XG4gIGlmICgvYXB0LWdldCBpbnN0YWxsLy50ZXN0KGNvbnRlbnQpICYmICEvcm0gLXJmIFxcL3ZhclxcL2xpYlxcL2FwdFxcL2xpc3RzLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIGFwdCBjYWNoZSBjbGVhbnVwIChybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyopJyk7XG4gIH1cbiAgcmV0dXJuIGZpbmRpbmdzO1xufVxuXG4vKiogTGludCB0aGUgc3BlYyBkb2N1bWVudCAoYXMgcGFyc2VkKSB0aGUgd2F5IHRlc3QtcGx1Z2lucy5zaCBkb2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbnRQbHVnaW5TcGVjKHNwZWM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzcGVjVGV4dDogc3RyaW5nKTogUGx1Z2luTGludEZpbmRpbmdbXSB7XG4gIGNvbnN0IGZpbmRpbmdzOiBQbHVnaW5MaW50RmluZGluZ1tdID0gW107XG4gIGNvbnN0IGVyciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IGZpbmRpbmdzLnB1c2goeyBsZXZlbDogJ2Vycm9yJywgbWVzc2FnZSB9KTtcbiAgZm9yIChjb25zdCBmIG9mIFBMVUdJTl9MSU5UX1JFUVVJUkVEX0ZJRUxEUykgaWYgKCEoZiBpbiBzcGVjKSkgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkOiAke2Z9YCk7XG4gIGlmIChzcGVjLnBsdWdpblR5cGUgPT09ICdDb2RlQnVpbGRTdGVwJyB8fCBzcGVjLnBsdWdpblR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgZiBvZiBQTFVHSU5fTElOVF9DT0RFQlVJTERfRklFTERTKSBpZiAoIShmIGluIHNwZWMpKSBlcnIoYHBsdWdpbi1zcGVjLnlhbWw6IG1pc3NpbmcgQ29kZUJ1aWxkIGZpZWxkOiAke2Z9YCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzcGVjLnZlcnNpb24gPT09ICdzdHJpbmcnICYmICEvXlxcZCtcXC5cXGQrXFwuXFxkKyQvLnRlc3Qoc3BlYy52ZXJzaW9uKSkge1xuICAgIGVycihgcGx1Z2luLXNwZWMueWFtbDogY2F0YWxvZyB2ZXJzaW9ucyBhcmUgcGxhaW4gc2VtdmVyIHgueS56IChnb3QgJHtzcGVjLnZlcnNpb259KWApO1xuICB9XG4gIGlmICh0eXBlb2Ygc3BlYy5kZXNjcmlwdGlvbiAhPT0gJ3N0cmluZycgfHwgc3BlYy5kZXNjcmlwdGlvbi50cmltKCkgPT09ICcnKSBlcnIoJ3BsdWdpbi1zcGVjLnlhbWw6IGVtcHR5IGRlc2NyaXB0aW9uJyk7XG4gIGlmICgna2V5d29yZHMnIGluIHNwZWMgJiYgKCFBcnJheS5pc0FycmF5KHNwZWMua2V5d29yZHMpIHx8IHNwZWMua2V5d29yZHMubGVuZ3RoID09PSAwKSkgZXJyKCdwbHVnaW4tc3BlYy55YW1sOiBlbXB0eSBrZXl3b3JkcyBsaXN0Jyk7XG4gIGNvbnN0IGRvd25sb2FkID0gLyhjdXJsfHdnZXQpXFxzLipodHRwcz86XFwvXFwvW15cXHNcIl0qKHJlbGVhc2VzXFwvZG93bmxvYWRcXC98XFwudGFyXFwuZ3p8XFwudGd6fFxcLnRhclxcLnh6fFxcLnppcCkvLmV4ZWMoc3BlY1RleHQpO1xuICBpZiAoZG93bmxvYWQpIGVycihgcGx1Z2luLXNwZWMueWFtbDogZG93bmxvYWRzIGEgdG9vbCBhdCBydW50aW1lIChiYWtlIGl0IGludG8gdGhlIGltYWdlIHZpYSBmZXRjaC12ZXJpZmllZCk6ICR7ZG93bmxvYWRbMF0uc2xpY2UoMCwgMTYwKX1gKTtcbiAgaWYgKC9eXFxzKi0gXFx8L20udGVzdChzcGVjVGV4dCkgJiYgIS9zZXQgLWUvLnRlc3Qoc3BlY1RleHQpKSB7XG4gICAgZmluZGluZ3MucHVzaCh7IGxldmVsOiAnd2FybmluZycsIG1lc3NhZ2U6ICdwbHVnaW4tc3BlYy55YW1sOiBtdWx0aS1saW5lIGNvbW1hbmQocykgd2l0aG91dCBgc2V0IC1lYCDigJQgaW50ZXJtZWRpYXRlIGZhaWx1cmVzIHdpbGwgc2lsZW50bHkgcGFzcycgfSk7XG4gIH1cbiAgcmV0dXJuIGZpbmRpbmdzO1xufVxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1saW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3pELDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQy9MLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0IsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFdkksd0ZBQXdGO0FBQ3hGLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFlO0lBQ3BELE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxTQUFTO1FBQ2hDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDdkMsU0FBUztRQUNYLENBQUM7UUFDRCxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ1gsSUFB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QUksQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzlFLEdBQUcsQ0FBQyxrRUFBa0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7UUFBRSxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2SCxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUFFLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQ3RJLE1BQU0sUUFBUSxHQUFHLHlGQUF5RixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxSCxJQUFJLFFBQVE7UUFBRSxHQUFHLENBQUMsOEZBQThGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3SSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDM0QsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLHFHQUFxRyxFQUFFLENBQUMsQ0FBQztJQUN0SixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBjYXRhbG9nJ3MgU1RBVElDIHBsdWdpbiBjaGVja3MgKGRlcGxveS9iaW4vdGVzdC1wbHVnaW5zLnNoKSwgZm9yIGEgcGx1Z2luXG4gKiBkaXJlY3Rvcnkgb3V0c2lkZSB0aGUgcmVwbzogdGhlIHNwZWMgZmllbGRzIHRoZSBjYXRhbG9nIHRvb2xpbmcgcmVxdWlyZXMgYW5kXG4gKiB0aGUgRG9ja2VyZmlsZSBydWxlcyAoZGVwbG95L3BsdWdpbnMvUkVBRE1FLm1kIFwiRG9ja2VyZmlsZSBydWxlc1wiKS4gU2hhcmVkXG4gKiBmcm9tIGFwaS1jb3JlIHNvIHRoZSBDTEkgKGBwbHVnaW4gdmFsaWRhdGUgLS1saW50YCwgYHBsdWdpbiBwdWJsaXNoYCkgYW5kIHRoZVxuICogcGx1Z2luIHNlcnZpY2UgKEFJIGdlbmVyYXRpb24pIGFwcGx5IE9ORSBpbXBsZW1lbnRhdGlvbiAocGx1Z2luLWVjb3N5c3RlbSBXNik6XG4gKlxuICogIC0gdGhlIGZpbmFsIHN0YWdlIGVuZHMgYXMgYSBub24tcm9vdCBgVVNFUmAsIHNldCBpbiB0aGUgcGx1Z2luJ3Mgb3duIERvY2tlcmZpbGU7XG4gKiAgLSBldmVyeSBkb3dubG9hZCBnb2VzIHRocm91Z2ggYGZldGNoLXZlcmlmaWVkYCAobm8gcmF3IGN1cmwvd2dldCwgbm8gYEFERCA8dXJsPmBcbiAqICAgIHdpdGhvdXQgYC0tY2hlY2tzdW09YCk7XG4gKiAgLSBubyBwaXBlLXRvLXNoZWxsIGluc3RhbGxlcnM7XG4gKiAgLSBubyBzZWNyZXRzIGluIGBFTlZgL2BBUkdgOyBhcHQgY2FjaGVzIGNsZWFuZWQ7IGEgYFdPUktESVJgO1xuICogIC0gdGhlIHNwZWMgbmV2ZXIgZG93bmxvYWRzIGEgdG9vbCBhdCBydW50aW1lLlxuICpcbiAqIE9ubHkgdGhlIHJlcG8tbGF5b3V0IHJ1bGVzIChuYW1lID0gZGlyZWN0b3J5LCBjYXRlZ29yeSA9IHBhcmVudCBkaXJlY3RvcnkpXG4gKiBhcmUgbGVmdCB0byB0ZXN0LXBsdWdpbnMuc2g6IGEgcHVibGlzaGVyJ3MgcGx1Z2luIGRvZXNuJ3QgbGl2ZSBpbiB0aGF0IHRyZWUuXG4gKiBXYXJuaW5ncyBuZXZlciBmYWlsOyBlcnJvcnMgZG8uXG4gKi9cblxuaW1wb3J0IHsgcGFyc2VEb2NrZXJmaWxlIH0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTGludEZpbmRpbmcge1xuICBsZXZlbDogJ2Vycm9yJyB8ICd3YXJuaW5nJztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKiogU3BlYyBmaWVsZHMgdGVzdC1wbHVnaW5zLnNoIHJlcXVpcmVzIG9uIGV2ZXJ5IHBsdWdpbi4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTElOVF9SRVFVSVJFRF9GSUVMRFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWyduYW1lJywgJ2Rlc2NyaXB0aW9uJywgJ2tleXdvcmRzJywgJ2NhdGVnb3J5JywgJ3ZlcnNpb24nLCAncGx1Z2luVHlwZScsICdjb21wdXRlVHlwZScsICd0aW1lb3V0JywgJ2ZhaWx1cmVCZWhhdmlvcicsICdzZWNyZXRzJ107XG4vKiog4oCmYW5kIG9uIGV2ZXJ5IENvZGVCdWlsZFN0ZXAuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0xJTlRfQ09ERUJVSUxEX0ZJRUxEUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJ3ByaW1hcnlPdXRwdXREaXJlY3RvcnknLCAnZG9ja2VyZmlsZScsICdpbnN0YWxsQ29tbWFuZHMnLCAnY29tbWFuZHMnXTtcblxuLyoqIExvZ2ljYWwgRG9ja2VyZmlsZSBpbnN0cnVjdGlvbnM6IGNvbW1lbnQgbGluZXMgZHJvcHBlZCwgYFxcYCBjb250aW51YXRpb25zIGpvaW5lZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb2NrZXJmaWxlSW5zdHJ1Y3Rpb25zKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgb3V0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgYnVmID0gJyc7XG4gIGZvciAoY29uc3QgcmF3IG9mIGNvbnRlbnQucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpKSB7XG4gICAgaWYgKC9eXFxzKiMvLnRlc3QocmF3KSkgY29udGludWU7XG4gICAgaWYgKC9cXFxcXFxzKiQvLnRlc3QocmF3KSkge1xuICAgICAgYnVmICs9IGAke3Jhdy5yZXBsYWNlKC9cXFxcXFxzKiQvLCAnJyl9IGA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgYnVmICs9IHJhdztcbiAgICBpZiAoL1xcUy8udGVzdChidWYpKSBvdXQucHVzaChidWYudHJpbSgpKTtcbiAgICBidWYgPSAnJztcbiAgfVxuICBpZiAoL1xcUy8udGVzdChidWYpKSBvdXQucHVzaChidWYudHJpbSgpKTtcbiAgcmV0dXJuIG91dDtcbn1cblxuY29uc3QgaW5zdHJ1Y3Rpb25PZiA9IChsaW5lOiBzdHJpbmcpOiBzdHJpbmcgPT4gKC9eKFxcUyspLy5leGVjKGxpbmUpPy5bMV0gPz8gJycpLnRvVXBwZXJDYXNlKCk7XG5cbi8qKiBSVU4gaW5zdHJ1Y3Rpb25zIHRoYXQgcGlwZSBpbnRvIGEgc2hlbGwgKGBjdXJsIOKApiB8IGJhc2hgKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaXBlSW5zdGFsbGVycyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBkb2NrZXJmaWxlSW5zdHJ1Y3Rpb25zKGNvbnRlbnQpLmZpbHRlcihsID0+XG4gICAgaW5zdHJ1Y3Rpb25PZihsKSA9PT0gJ1JVTicgJiYgLyhefFtefF0pXFx8XFxzKihzdWRvXFxzKyk/KFxcL3Vzcik/KFxcL2JpblxcLyk/KGJhfGRhfHp8ayk/c2goXFxzfCQpLy50ZXN0KGwpKTtcbn1cblxuLyoqIGN1cmwvd2dldCBET1dOTE9BRFMgaW4gUlVOLCBhbmQgYEFERCA8dXJsPmAgd2l0aG91dCBgLS1jaGVja3N1bT1gLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhd0Rvd25sb2Fkcyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGZvdW5kOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KSkge1xuICAgIGNvbnN0IGluc3RyID0gaW5zdHJ1Y3Rpb25PZihsaW5lKTtcbiAgICBpZiAoaW5zdHIgPT09ICdBREQnICYmIC9odHRwcz86XFwvXFwvLy50ZXN0KGxpbmUpICYmICEvLS1jaGVja3N1bT0vLnRlc3QobGluZSkpIHtcbiAgICAgIGZvdW5kLnB1c2goYEFERCAke2xpbmV9YCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGluc3RyICE9PSAnUlVOJykgY29udGludWU7XG4gICAgY29uc3QgYm9keSA9IGxpbmUucmVwbGFjZSgvXlxccypydW5cXHMrL2ksICcnKTtcbiAgICBmb3IgKGxldCBwYXJ0IG9mIGJvZHkuc3BsaXQoLyYmfFxcfFxcfHw7fFxcfHxcXCRcXCh8YHxcXCh8XFx7LykpIHtcbiAgICAgIGZvciAoOzspIHtcbiAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgvXlxccysvLCAnJyk7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IC9eKGlmfHRoZW58ZG98ZWxzZXxlbGlmfHdoaWxlfHVudGlsfCF8c3Vkb3xleGVjfGNvbW1hbmR8dGltZXwtLVthLXotXSsoPVxcUyopP3xbQS1aYS16X11bQS1aYS16MC05X10qPVxcUyopXFxzKy8uZXhlYyhwYXJ0KTtcbiAgICAgICAgaWYgKCFwcmVmaXgpIGJyZWFrO1xuICAgICAgICBwYXJ0ID0gcGFydC5zbGljZShwcmVmaXhbMF0ubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIGlmICgvXihjdXJsfHdnZXQpKFxcc3wkKS8udGVzdChwYXJ0KSAmJiAoLzpcXC9cXC8vLnRlc3QocGFydCkgfHwgL1xcJC8udGVzdChwYXJ0KSB8fCAvXFxzKC1vfC1PfC0tb3V0cHV0fC0tb3V0cHV0LWRvY3VtZW50KShbXFxzPV18JCkvLnRlc3QocGFydCkpKSB7XG4gICAgICAgIGZvdW5kLnB1c2gocGFydC50cmltKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZm91bmQ7XG59XG5cbi8qKiBMaW50IGEgRG9ja2VyZmlsZSBhZ2FpbnN0IHRoZSBjYXRhbG9nJ3MgcnVsZXMuICovXG5leHBvcnQgZnVuY3Rpb24gbGludFBsdWdpbkRvY2tlcmZpbGUoY29udGVudDogc3RyaW5nKTogUGx1Z2luTGludEZpbmRpbmdbXSB7XG4gIGNvbnN0IGZpbmRpbmdzOiBQbHVnaW5MaW50RmluZGluZ1tdID0gW107XG4gIGNvbnN0IGVyciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IGZpbmRpbmdzLnB1c2goeyBsZXZlbDogJ2Vycm9yJywgbWVzc2FnZSB9KTtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KTtcbiAgaWYgKCFpbnN0cnVjdGlvbnMuc29tZShsID0+IGluc3RydWN0aW9uT2YobCkgPT09ICdGUk9NJykpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IG1pc3NpbmcgRlJPTSBpbnN0cnVjdGlvbicpO1xuICAgIHJldHVybiBmaW5kaW5ncztcbiAgfVxuICBpZiAoIWluc3RydWN0aW9ucy5zb21lKGwgPT4gaW5zdHJ1Y3Rpb25PZihsKSA9PT0gJ1dPUktESVInKSkgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIFdPUktESVIgaW5zdHJ1Y3Rpb24nKTtcbiAgaWYgKC9eKEVOVnxBUkcpXFxzKyguKlRPS0VOfC4qU0VDUkVUfC4qUEFTU1dPUkR8LipBUElfS0VZfC4qUFJJVkFURV9LRVkpL20udGVzdChjb250ZW50KSkge1xuICAgIGVycignRG9ja2VyZmlsZTogcG90ZW50aWFsIHNlY3JldCBpbiBhbiBFTlYvQVJHIGluc3RydWN0aW9uIChwYXNzIHNlY3JldHMgYXQgcnVuIHRpbWUgdmlhIHRoZSBzcGVjXFwncyBgc2VjcmV0c2ApJyk7XG4gIH1cbiAgY29uc3QgZmluYWxVc2VyID0gcGFyc2VEb2NrZXJmaWxlKGNvbnRlbnQpLmZpbmFsVXNlcjtcbiAgY29uc3QgdXNlclBhcnQgPSAoZmluYWxVc2VyID8/ICcnKS5zcGxpdCgnOicpWzBdO1xuICBpZiAoIWZpbmFsVXNlcikgZXJyKCdEb2NrZXJmaWxlOiB0aGUgZmluYWwgc3RhZ2Ugc2V0cyBubyBVU0VSIChlbmQgd2l0aCBgVVNFUiAxMDAwOjEwMDBgKScpO1xuICBlbHNlIGlmICh1c2VyUGFydCA9PT0gJ3Jvb3QnIHx8IHVzZXJQYXJ0ID09PSAnMCcpIGVycihgRG9ja2VyZmlsZTogdGhlIGZpbmFsIHN0YWdlIHJ1bnMgYXMgcm9vdCAoVVNFUiAke2ZpbmFsVXNlcn0pOyBlbmQgd2l0aCBcXGBVU0VSIDEwMDA6MTAwMFxcYGApO1xuICBjb25zdCBwaXBlcyA9IHBpcGVJbnN0YWxsZXJzKGNvbnRlbnQpO1xuICBpZiAocGlwZXMubGVuZ3RoKSBlcnIoYERvY2tlcmZpbGU6IHBpcGVzIGEgZG93bmxvYWQgaW50byBhIHNoZWxsICh1c2UgYSBwaW5uZWQgcmVsZWFzZSB2aWEgZmV0Y2gtdmVyaWZpZWQsIGEgZmV0Y2gtYXB0LWtleSBhcHQgcmVwbywgb3IgYW4gZWNvc3lzdGVtIGJhc2UpOiAke3BpcGVzWzBdIS5zbGljZSgwLCAxNjApfWApO1xuICBjb25zdCBkb3dubG9hZHMgPSByYXdEb3dubG9hZHMoY29udGVudCk7XG4gIGlmIChkb3dubG9hZHMubGVuZ3RoKSBlcnIoYERvY2tlcmZpbGU6IHJhdyBkb3dubG9hZCBub3QgdmlhIGZldGNoLXZlcmlmaWVkOiAke2Rvd25sb2Fkc1swXSEuc2xpY2UoMCwgMTYwKX1gKTtcbiAgaWYgKC9hcHQtZ2V0IGluc3RhbGwvLnRlc3QoY29udGVudCkgJiYgIS9ybSAtcmYgXFwvdmFyXFwvbGliXFwvYXB0XFwvbGlzdHMvLnRlc3QoY29udGVudCkpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IG1pc3NpbmcgYXB0IGNhY2hlIGNsZWFudXAgKHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKiknKTtcbiAgfVxuICByZXR1cm4gZmluZGluZ3M7XG59XG5cbi8qKiBMaW50IHRoZSBzcGVjIGRvY3VtZW50IChhcyBwYXJzZWQpIHRoZSB3YXkgdGVzdC1wbHVnaW5zLnNoIGRvZXMuICovXG5leHBvcnQgZnVuY3Rpb24gbGludFBsdWdpblNwZWMoc3BlYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHNwZWNUZXh0OiBzdHJpbmcpOiBQbHVnaW5MaW50RmluZGluZ1tdIHtcbiAgY29uc3QgZmluZGluZ3M6IFBsdWdpbkxpbnRGaW5kaW5nW10gPSBbXTtcbiAgY29uc3QgZXJyID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gZmluZGluZ3MucHVzaCh7IGxldmVsOiAnZXJyb3InLCBtZXNzYWdlIH0pO1xuICBmb3IgKGNvbnN0IGYgb2YgUExVR0lOX0xJTlRfUkVRVUlSRURfRklFTERTKSBpZiAoIShmIGluIHNwZWMpKSBlcnIoYHBsdWdpbi1zcGVjLnlhbWw6IG1pc3NpbmcgcmVxdWlyZWQgZmllbGQ6ICR7Zn1gKTtcbiAgaWYgKHNwZWMucGx1Z2luVHlwZSA9PT0gJ0NvZGVCdWlsZFN0ZXAnIHx8IHNwZWMucGx1Z2luVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIFBMVUdJTl9MSU5UX0NPREVCVUlMRF9GSUVMRFMpIGlmICghKGYgaW4gc3BlYykpIGVycihgcGx1Z2luLXNwZWMueWFtbDogbWlzc2luZyBDb2RlQnVpbGQgZmllbGQ6ICR7Zn1gKTtcbiAgfVxuICBpZiAodHlwZW9mIHNwZWMudmVyc2lvbiA9PT0gJ3N0cmluZycgJiYgIS9eXFxkK1xcLlxcZCtcXC5cXGQrJC8udGVzdChzcGVjLnZlcnNpb24pKSB7XG4gICAgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBjYXRhbG9nIHZlcnNpb25zIGFyZSBwbGFpbiBzZW12ZXIgeC55LnogKGdvdCAke3NwZWMudmVyc2lvbn0pYCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzcGVjLmRlc2NyaXB0aW9uICE9PSAnc3RyaW5nJyB8fCBzcGVjLmRlc2NyaXB0aW9uLnRyaW0oKSA9PT0gJycpIGVycigncGx1Z2luLXNwZWMueWFtbDogZW1wdHkgZGVzY3JpcHRpb24nKTtcbiAgaWYgKCdrZXl3b3JkcycgaW4gc3BlYyAmJiAoIUFycmF5LmlzQXJyYXkoc3BlYy5rZXl3b3JkcykgfHwgc3BlYy5rZXl3b3Jkcy5sZW5ndGggPT09IDApKSBlcnIoJ3BsdWdpbi1zcGVjLnlhbWw6IGVtcHR5IGtleXdvcmRzIGxpc3QnKTtcbiAgY29uc3QgZG93bmxvYWQgPSAvKGN1cmx8d2dldClcXHMuKmh0dHBzPzpcXC9cXC9bXlxcc1wiXSoocmVsZWFzZXNcXC9kb3dubG9hZFxcL3xcXC50YXJcXC5nenxcXC50Z3p8XFwudGFyXFwueHp8XFwuemlwKS8uZXhlYyhzcGVjVGV4dCk7XG4gIGlmIChkb3dubG9hZCkgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBkb3dubG9hZHMgYSB0b29sIGF0IHJ1bnRpbWUgKGJha2UgaXQgaW50byB0aGUgaW1hZ2UgdmlhIGZldGNoLXZlcmlmaWVkKTogJHtkb3dubG9hZFswXS5zbGljZSgwLCAxNjApfWApO1xuICBpZiAoL15cXHMqLSBcXHwvbS50ZXN0KHNwZWNUZXh0KSAmJiAhL3NldCAtZS8udGVzdChzcGVjVGV4dCkpIHtcbiAgICBmaW5kaW5ncy5wdXNoKHsgbGV2ZWw6ICd3YXJuaW5nJywgbWVzc2FnZTogJ3BsdWdpbi1zcGVjLnlhbWw6IG11bHRpLWxpbmUgY29tbWFuZChzKSB3aXRob3V0IGBzZXQgLWVgIOKAlCBpbnRlcm1lZGlhdGUgZmFpbHVyZXMgd2lsbCBzaWxlbnRseSBwYXNzJyB9KTtcbiAgfVxuICByZXR1cm4gZmluZGluZ3M7XG59XG4iXX0=
@@ -78,4 +78,4 @@ export function findConfusableName(candidate, names) {
78
78
  export function isConfusableName(candidate, names) {
79
79
  return findConfusableName(candidate, names) !== null;
80
80
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW5hbWUtY29uZnVzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1uYW1lLWNvbmZ1c2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxVQUFVLEdBQW9DLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqRixNQUFNLFdBQVcsR0FBcUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFekYsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFZO0lBQ2xELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVO1FBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUI7SUFDdkYsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLO1FBQUUsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzVELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLEtBQUs7WUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLEtBQXVCO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLFNBQVM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO0lBQy9ELENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsS0FBdUI7SUFDekUsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBDb25mdXNhYmxlIHBsdWdpbiBuYW1lcyAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCk6XG4gKiBhIG5ldyBjb21tdW5pdHkgbGlzdGluZyDigJQgYW4gYW5vbnltb3VzIHN1Ym1pc3Npb24gb3IgYSBgbmV3X2xpc3RpbmdgXG4gKiByZXF1ZXN0IOKAlCBtYXkgbm90IGxvb2sgbGlrZSBvbmUgb2YgdGhlIGRpcmVjdG9yeSdzIG1vc3QtaW5zdGFsbGVkIHBsdWdpbnNcbiAqIChgdGVycmFmMHJtYCwgYGt1YmUtY3RsYCwgYGRvY2tlcl9idWlsZGAsIGB0ZnNlY2Ag4oaSIGB0ZnNlZGApLlxuICpcbiAqIFR3byBuYW1lcyBhcmUgQ09ORlVTQUJMRSB3aGVuLCBhZnRlciB7QGxpbmsgbm9ybWFsaXplQ29uZnVzYWJsZU5hbWV9XG4gKiAobG93ZXJjYXNlOyBzdHJpcCBgLWAsIGBfYCwgYC5gOyBgcm5g4oaSYG1gLCBgdnZg4oaSYHdgLCBgMGDihpJgb2AsIGAxYOKGkmBsYCxcbiAqIGAzYOKGkmBlYCwgYDVg4oaSYHNgKSwgdGhleSBhcmUgZXF1YWwgb3Igb25lIERhbWVyYXXigJNMZXZlbnNodGVpbiBlZGl0IGFwYXJ0XG4gKiAoYW4gaW5zZXJ0aW9uLCBkZWxldGlvbiwgc3Vic3RpdHV0aW9uIG9yIGFkamFjZW50IHRyYW5zcG9zaXRpb24pLlxuICpcbiAqIFB1cmUsIHNvIHRoZSBDTEkgY2FuIHdhcm4gYmVmb3JlIGEgcHVibGlzaCBhbmQgdGhlIHBsdWdpbiBzZXJ2aWNlIGRlY2lkZXNcbiAqIHdpdGggdGhlIHNhbWUgcnVsZS5cbiAqL1xuXG5jb25zdCBNVUxUSV9DSEFSOiBSZWFkb25seUFycmF5PFtSZWdFeHAsIHN0cmluZ10+ID0gW1svcm4vZywgJ20nXSwgWy92di9nLCAndyddXTtcbmNvbnN0IFNJTkdMRV9DSEFSOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHsgMDogJ28nLCAxOiAnbCcsIDM6ICdlJywgNTogJ3MnIH07XG5cbi8qKiBUaGUgY29tcGFyaXNvbiBmb3JtIG9mIGEgcGx1Z2luIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IG91dCA9IG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV8uXS9nLCAnJyk7XG4gIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiBNVUxUSV9DSEFSKSBvdXQgPSBvdXQucmVwbGFjZShmcm9tLCB0byk7XG4gIHJldHVybiBvdXQucmVwbGFjZSgvWzAxMzVdL2csIChjKSA9PiBTSU5HTEVfQ0hBUltjXSA/PyBjKTtcbn1cblxuLyoqXG4gKiBPcHRpbWFsLXN0cmluZy1hbGlnbm1lbnQgRGFtZXJhdeKAk0xldmVuc2h0ZWluIGRpc3RhbmNlIGJldHdlZW4gYGFgIGFuZCBgYmAsXG4gKiBnaXZpbmcgdXAgKHJldHVybmluZyBgbGltaXQgKyAxYCkgb25jZSBpdCBtdXN0IGV4Y2VlZCBgbGltaXRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGFtZXJhdUxldmVuc2h0ZWluKGE6IHN0cmluZywgYjogc3RyaW5nLCBsaW1pdCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk6IG51bWJlciB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gMDtcbiAgaWYgKE1hdGguYWJzKGEubGVuZ3RoIC0gYi5sZW5ndGgpID4gbGltaXQpIHJldHVybiBsaW1pdCArIDE7XG4gIGlmIChhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGIubGVuZ3RoO1xuICBpZiAoYi5sZW5ndGggPT09IDApIHJldHVybiBhLmxlbmd0aDtcbiAgbGV0IHByZXZQcmV2OiBudW1iZXJbXSA9IFtdO1xuICBsZXQgcHJldiA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGIubGVuZ3RoICsgMSB9LCAoXywgaikgPT4gaik7XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGEubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjdXIgPSBbaV07XG4gICAgbGV0IHJvd01pbiA9IGk7XG4gICAgZm9yIChsZXQgaiA9IDE7IGogPD0gYi5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3QgY29zdCA9IGFbaSAtIDFdID09PSBiW2ogLSAxXSA/IDAgOiAxO1xuICAgICAgbGV0IGQgPSBNYXRoLm1pbihwcmV2W2pdISArIDEsIGN1cltqIC0gMV0hICsgMSwgcHJldltqIC0gMV0hICsgY29zdCk7XG4gICAgICBpZiAoaSA+IDEgJiYgaiA+IDEgJiYgYVtpIC0gMV0gPT09IGJbaiAtIDJdICYmIGFbaSAtIDJdID09PSBiW2ogLSAxXSkgZCA9IE1hdGgubWluKGQsIHByZXZQcmV2W2ogLSAyXSEgKyAxKTtcbiAgICAgIGN1ci5wdXNoKGQpO1xuICAgICAgcm93TWluID0gTWF0aC5taW4ocm93TWluLCBkKTtcbiAgICB9XG4gICAgaWYgKHJvd01pbiA+IGxpbWl0KSByZXR1cm4gbGltaXQgKyAxO1xuICAgIHByZXZQcmV2ID0gcHJldjtcbiAgICBwcmV2ID0gY3VyO1xuICB9XG4gIHJldHVybiBwcmV2W2IubGVuZ3RoXSE7XG59XG5cbi8qKlxuICogVGhlIGZpcnN0IG9mIGBuYW1lc2AgdGhhdCBgY2FuZGlkYXRlYCBpcyBjb25mdXNhYmxlIHdpdGggKHNlZSB0aGUgbW9kdWxlXG4gKiBub3RlKSwgb3IgbnVsbC4gQW4gRVhBQ1QgbWF0Y2ggY291bnRzIHRvbyDigJQgdGhlIGNhbGxlciBkZWNpZGVzIHdoZXRoZXIgdGhlXG4gKiBzYW1lIG5hbWUgaXMgYSBjb25mbGljdCBvciB0aGUgc2FtZSBsaXN0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZTogc3RyaW5nLCBuYW1lczogSXRlcmFibGU8c3RyaW5nPik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBjID0gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUoY2FuZGlkYXRlKTtcbiAgaWYgKGMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgY29uc3QgbiA9IG5vcm1hbGl6ZUNvbmZ1c2FibGVOYW1lKG5hbWUpO1xuICAgIGlmIChuLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG4gICAgaWYgKGMgPT09IG4gfHwgZGFtZXJhdUxldmVuc2h0ZWluKGMsIG4sIDEpIDw9IDEpIHJldHVybiBuYW1lO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogV2hldGhlciBgY2FuZGlkYXRlYCBpcyBjb25mdXNhYmxlIHdpdGggYW55IG9mIGBuYW1lc2AuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb25mdXNhYmxlTmFtZShjYW5kaWRhdGU6IHN0cmluZywgbmFtZXM6IEl0ZXJhYmxlPHN0cmluZz4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGZpbmRDb25mdXNhYmxlTmFtZShjYW5kaWRhdGUsIG5hbWVzKSAhPT0gbnVsbDtcbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW5hbWUtY29uZnVzYWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLW5hbWUtY29uZnVzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLFVBQVUsR0FBb0MsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLE1BQU0sV0FBVyxHQUFxQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUV6Riw0Q0FBNEM7QUFDNUMsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQVk7SUFDbEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkQsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVU7UUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQjtJQUN2RixJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUs7UUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDNUQsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsS0FBSztZQUFFLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsS0FBdUI7SUFDM0UsTUFBTSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsU0FBUztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7SUFDL0QsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxLQUF1QjtJQUN6RSxPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENvbmZ1c2FibGUgcGx1Z2luIG5hbWVzIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKTpcbiAqIGEgbmV3IGNvbW11bml0eSBsaXN0aW5nIOKAlCBhbiBhbm9ueW1vdXMgc3VibWlzc2lvbiBvciBhIGBuZXdfbGlzdGluZ2BcbiAqIHJlcXVlc3Qg4oCUIG1heSBub3QgbG9vayBsaWtlIG9uZSBvZiB0aGUgZGlyZWN0b3J5J3MgbW9zdC1pbnN0YWxsZWQgcGx1Z2luc1xuICogKGB0ZXJyYWYwcm1gLCBga3ViZS1jdGxgLCBgZG9ja2VyX2J1aWxkYCwgYHRmc2VjYCDihpIgYHRmc2VkYCkuXG4gKlxuICogVHdvIG5hbWVzIGFyZSBDT05GVVNBQkxFIHdoZW4sIGFmdGVyIHtAbGluayBub3JtYWxpemVDb25mdXNhYmxlTmFtZX1cbiAqIChsb3dlcmNhc2U7IHN0cmlwIGAtYCwgYF9gLCBgLmA7IGBybmDihpJgbWAsIGB2dmDihpJgd2AsIGAwYOKGkmBvYCwgYDFg4oaSYGxgLFxuICogYDNg4oaSYGVgLCBgNWDihpJgc2ApLCB0aGV5IGFyZSBlcXVhbCBvciBvbmUgRGFtZXJhdeKAk0xldmVuc2h0ZWluIGVkaXQgYXBhcnRcbiAqIChhbiBpbnNlcnRpb24sIGRlbGV0aW9uLCBzdWJzdGl0dXRpb24gb3IgYWRqYWNlbnQgdHJhbnNwb3NpdGlvbikuXG4gKlxuICogUHVyZSwgc28gdGhlIENMSSBjYW4gd2FybiBiZWZvcmUgYSBwdWJsaXNoIGFuZCB0aGUgcGx1Z2luIHNlcnZpY2UgZGVjaWRlc1xuICogd2l0aCB0aGUgc2FtZSBydWxlLlxuICovXG5cbmNvbnN0IE1VTFRJX0NIQVI6IFJlYWRvbmx5QXJyYXk8W1JlZ0V4cCwgc3RyaW5nXT4gPSBbWy9ybi9nLCAnbSddLCBbL3Z2L2csICd3J11dO1xuY29uc3QgU0lOR0xFX0NIQVI6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0geyAwOiAnbycsIDE6ICdsJywgMzogJ2UnLCA1OiAncycgfTtcblxuLyoqIFRoZSBjb21wYXJpc29uIGZvcm0gb2YgYSBwbHVnaW4gbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVDb25mdXNhYmxlTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgb3V0ID0gbmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stXy5dL2csICcnKTtcbiAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIE1VTFRJX0NIQVIpIG91dCA9IG91dC5yZXBsYWNlKGZyb20sIHRvKTtcbiAgcmV0dXJuIG91dC5yZXBsYWNlKC9bMDEzNV0vZywgKGMpID0+IFNJTkdMRV9DSEFSW2NdID8/IGMpO1xufVxuXG4vKipcbiAqIE9wdGltYWwtc3RyaW5nLWFsaWdubWVudCBEYW1lcmF14oCTTGV2ZW5zaHRlaW4gZGlzdGFuY2UgYmV0d2VlbiBgYWAgYW5kIGBiYCxcbiAqIGdpdmluZyB1cCAocmV0dXJuaW5nIGBsaW1pdCArIDFgKSBvbmNlIGl0IG11c3QgZXhjZWVkIGBsaW1pdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYW1lcmF1TGV2ZW5zaHRlaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcsIGxpbWl0ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTogbnVtYmVyIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiAwO1xuICBpZiAoTWF0aC5hYnMoYS5sZW5ndGggLSBiLmxlbmd0aCkgPiBsaW1pdCkgcmV0dXJuIGxpbWl0ICsgMTtcbiAgaWYgKGEubGVuZ3RoID09PSAwKSByZXR1cm4gYi5sZW5ndGg7XG4gIGlmIChiLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGEubGVuZ3RoO1xuICBsZXQgcHJldlByZXY6IG51bWJlcltdID0gW107XG4gIGxldCBwcmV2ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogYi5sZW5ndGggKyAxIH0sIChfLCBqKSA9PiBqKTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gYS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1ciA9IFtpXTtcbiAgICBsZXQgcm93TWluID0gaTtcbiAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBiLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBjb3N0ID0gYVtpIC0gMV0gPT09IGJbaiAtIDFdID8gMCA6IDE7XG4gICAgICBsZXQgZCA9IE1hdGgubWluKHByZXZbal0hICsgMSwgY3VyW2ogLSAxXSEgKyAxLCBwcmV2W2ogLSAxXSEgKyBjb3N0KTtcbiAgICAgIGlmIChpID4gMSAmJiBqID4gMSAmJiBhW2kgLSAxXSA9PT0gYltqIC0gMl0gJiYgYVtpIC0gMl0gPT09IGJbaiAtIDFdKSBkID0gTWF0aC5taW4oZCwgcHJldlByZXZbaiAtIDJdISArIDEpO1xuICAgICAgY3VyLnB1c2goZCk7XG4gICAgICByb3dNaW4gPSBNYXRoLm1pbihyb3dNaW4sIGQpO1xuICAgIH1cbiAgICBpZiAocm93TWluID4gbGltaXQpIHJldHVybiBsaW1pdCArIDE7XG4gICAgcHJldlByZXYgPSBwcmV2O1xuICAgIHByZXYgPSBjdXI7XG4gIH1cbiAgcmV0dXJuIHByZXZbYi5sZW5ndGhdITtcbn1cblxuLyoqXG4gKiBUaGUgZmlyc3Qgb2YgYG5hbWVzYCB0aGF0IGBjYW5kaWRhdGVgIGlzIGNvbmZ1c2FibGUgd2l0aCAoc2VlIHRoZSBtb2R1bGVcbiAqIG5vdGUpLCBvciBudWxsLiBBbiBFWEFDVCBtYXRjaCBjb3VudHMgdG9vIOKAlCB0aGUgY2FsbGVyIGRlY2lkZXMgd2hldGhlciB0aGVcbiAqIHNhbWUgbmFtZSBpcyBhIGNvbmZsaWN0IG9yIHRoZSBzYW1lIGxpc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29uZnVzYWJsZU5hbWUoY2FuZGlkYXRlOiBzdHJpbmcsIG5hbWVzOiBJdGVyYWJsZTxzdHJpbmc+KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGMgPSBub3JtYWxpemVDb25mdXNhYmxlTmFtZShjYW5kaWRhdGUpO1xuICBpZiAoYy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICBjb25zdCBuID0gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUobmFtZSk7XG4gICAgaWYgKG4ubGVuZ3RoID09PSAwKSBjb250aW51ZTtcbiAgICBpZiAoYyA9PT0gbiB8fCBkYW1lcmF1TGV2ZW5zaHRlaW4oYywgbiwgMSkgPD0gMSkgcmV0dXJuIG5hbWU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKiBXaGV0aGVyIGBjYW5kaWRhdGVgIGlzIGNvbmZ1c2FibGUgd2l0aCBhbnkgb2YgYG5hbWVzYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZTogc3RyaW5nLCBuYW1lczogSXRlcmFibGU8c3RyaW5nPik6IGJvb2xlYW4ge1xuICByZXR1cm4gZmluZENvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZSwgbmFtZXMpICE9PSBudWxsO1xufVxuIl19
@@ -108,4 +108,4 @@ export const PluginUploadBodySchema = z.object({
108
108
  */
109
109
  buildSize: z.enum(BUILD_SIZES).optional(),
110
110
  });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN4RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsdUVBQXVFO0lBQ3ZFLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLE9BQU8sRUFBRSxD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QUcsd0JBQXdCLENBQUMsS0FBSztJQUNqQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2Qzs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DOzs7OztPQUtHO0lBQ0gsY0FBYyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzVDOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYSB9IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuaW1wb3J0IHsgQlVJTERfQ0xBU1NFUywgQlVJTERfU0laRVMgfSBmcm9tICcuLi90eXBlcy9idWlsZC1jYXRhbG9nLmpzJztcbmltcG9ydCB7IFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiB9IGZyb20gJy4uL3R5cGVzL2Vjb3N5c3RlbS5qcyc7XG5cbi8qKlxuICogUGx1Z2luIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpbkZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgLyoqIFJlc29sdmUgdGhyb3VnaCB0aGlzIHB1Ymxpc2hlcidzIGluc3RhbGxlZCBsaXN0aW5nOyBsb29rdXAgb25seS4gKi9cbiAgcHVibGlzaGVyOiB6LnN0cmluZygpLm1heCgzOSkucmVnZXgoUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3JkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiBjcmVhdGlvbiBzY2hlbWEg4oCUIHVzZWQgZm9yIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBhbmQgZGlyZWN0IEFQSSBjcmVhdGlvbi5cbiAqIEN1cnJlbnRseSBubyByb3V0ZSB1c2VzIHRoaXMgZGlyZWN0bHk7IHBsdWdpbnMgYXJlIGNyZWF0ZWQgdmlhIHVwbG9hZCBvciBBSSBnZW5lcmF0aW9uLlxuICogUmV0YWluZWQgZm9yIGZ1dHVyZSBkaXJlY3QtY3JlYXRlIGVuZHBvaW50IGFuZCBPcGVuQVBJIHNwZWMgY29tcGxldGVuZXNzLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gSUQgaXMgcmVxdWlyZWQnKSxcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSwgJ1BsdWdpbiBuYW1lIGlzIHJlcXVpcmVkJyksXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEsICdWZXJzaW9uIGlzIHJlcXVpcmVkJyksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29tcHV0ZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGluc3RhbGxDb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzRGVmYXVsdDogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHRpbWVvdXQ6IHoubnVtYmVyKCkuaW50KCkucG9zaXRpdmUoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIGZhaWx1cmVCZWhhdmlvcjogei5lbnVtKFsnZmFpbCcsICd3YXJuJywgJ2lnbm9yZSddKS5vcHRpb25hbCgpLFxuICBzZWNyZXRzOiB6LmFycmF5KHoub2JqZWN0KHtcbiAgICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICByZXF1aXJlZDogei5ib29sZWFuKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSkpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBQbHVnaW4gdXBkYXRlIHNjaGVtYSAoYFBVVCAvcGx1Z2lucy86aWRgKS5cbiAqXG4gKiBERVNDUklQVElWRSBjYXRhbG9nIGZpZWxkcyBvbmx5IHBsdXMgdGhlIHZlcnNpb24ncyBvcGVyYXRpb25hbFxuICogZmxhZ3MgYW5kIGRldmVsb3Blci1wb3J0YWwgbWV0YWRhdGEuIEV4ZWN1dGlvbi1jb250cmFjdCBrZXlzIChjb21tYW5kcywgZW52LFxuICogc2VjcmV0cywgY29tcHV0ZSB0eXBlLCDigKYpIGFyZSBuZXZlciBhY2NlcHRlZCDigJQgdGhlIHJvdXRlIHJlZnVzZXMgdGhlbSB3aXRoIGFcbiAqIDQwMCBuYW1pbmcgdGhlIGtleXMgYmVmb3JlIHRoaXMgc2NoZW1hIHJ1bnMsIGFuZCBgLnN0cmljdCgpYCByZWZ1c2VzIGFueXRoaW5nXG4gKiBlbHNlIHVua25vd24gcmF0aGVyIHRoYW4gc2lsZW50bHkgZHJvcHBpbmcgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5VcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICAuLi5QbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEuc2hhcGUsXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KCk7XG5cbi8qKlxuICogUGx1Z2luIHVwbG9hZCBib2R5IHNjaGVtYSAobXVsdGlwYXJ0IGZvcm0tZGF0YSB0ZXh0IGZpZWxkcylcbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpblVwbG9hZEJvZHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIENhdGFsb2cgbWV0YWRhdGEgZWRpdHMgYXMgYSBKU09OIG9iamVjdCAoYSB7QGxpbmsgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hfVxuICAgKiBkb2N1bWVudCkuIEFic2VudCDih5IgZXZlcnkgdmFsdWUgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSBpcyBhY2NlcHRlZC5cbiAgICovXG4gIG1ldGFkYXRhOiB6LnN0cmluZygpLm1heCgyNTYgKiAxMDI0KS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogYHRydWVgOiBvbmNlIHRoZSBidWlsZCBjb21wbGV0ZXMsIHN1Ym1pdCBhIHB1Ymxpc2ggcmVxdWVzdCAobmV3IGxpc3RpbmcsIG9yXG4gICAqIG5ldyB2ZXJzaW9uIG9mIHRoZSBvcmcncyBleGlzdGluZyBsaXN0aW5nKSBmb3IgdGhlIGJ1aWx0IHZlcnNpb24gYXMgdGhlXG4gICAqIHVwbG9hZGVyIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gTmVlZHMgYHBsdWdpbnM6cHVibGlzaGAgYW5kXG4gICAqIGB2aXNpYmlsaXR5PXB1YmxpY2AuIFRoZSBPZmZpY2lhbCBjYXRhbG9nIGxvYWRlciBhbHdheXMgc2V0cyBpdC5cbiAgICovXG4gIHB1Ymxpc2hSZXF1ZXN0OiB6LmVudW0oWyd0cnVlJywgJ2ZhbHNlJ10pLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBgdHJ1ZWA6IHRoaXMgdXBsb2FkIGlzIHRoZSBTRVRVUCBjYXRhbG9nIGxvYWQgKGRlcGxveS9iaW4vbG9hZC1wbHVnaW5zLnNoKS5cbiAgICogSG9ub3VyZWQgb25seSBmb3IgYSBzeXN0ZW0tb3JnIGJ1aWxkLCB3aGVyZSBhbiBpbWFnZSB0aGUgc2NhbiBnYXRlcyByZWZ1c2VcbiAgICogaXMgS0VQVCBpbiB0aGUgcmVnaXN0cnkgZm9yIHByb21vdGlvbiAoYFBPU1QgL3BsdWdpbnMva2VwdC1zZXR1cC1pbWFnZXMvOmlkL3Byb21vdGVgKVxuICAgKiBpbnN0ZWFkIG9mIGRpc2NhcmRlZC4gSWdub3JlZCAobm9ybWFsIGRpc2NhcmQpIGZvciBhbnkgb3RoZXIgb3JnLlxuICAgKi9cbiAgc2V0dXBMb2FkOiB6LmVudW0oWyd0cnVlJywgJ2ZhbHNlJ10pLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBTY2hlZHVsaW5nIGNsYXNzIGZvciB0aGlzIGJ1aWxkIChEMTEpLiBgc3RhbmRhcmRgIGlzIHRoZSBkZWZhdWx0IGFuZCB0aGVcbiAgICogb25seSBjbGFzcyBhbiB1cmdlbnQgZml4IHNob3VsZCB1c2U7IGBiYXRjaGAgdHJhZGVzIHN0YXJ0IGxhdGVuY3kgZm9yIG1vcmVcbiAgICogcGVyLW9yZyBoZWFkcm9vbSwgYW5kIGV2ZXJ5IHRpZXIgaGFzIGJvdGgg4oCUIGEgZnJlZSBhY2NvdW50IG11c3Qgc3RpbGwgYmVcbiAgICogYWJsZSB0byBwdXNoIG9uZSB1cmdlbnQgYnVpbGQgdGhyb3VnaC5cbiAgICpcbiAgICogTm90IGEgQnVsbE1RIHByaW9yaXR5OiBwcmlvcml0aWVzIGFyZSBwZXItcXVldWUgaW50ZWdlcnMgYW5kIGJ1aWxkcyBhcmVcbiAgICogYWxyZWFkeSBzcGxpdCBhY3Jvc3Mgb25lIHF1ZXVlIFBFUiBUSUVSLCBzbyBhIHByaW9yaXR5IHdvdWxkIG9ubHkgb3JkZXIgYVxuICAgKiB0aWVyIGFnYWluc3QgaXRzZWxmLiBUaGUgY2xhc3MgaXMgYSBqb2IgZmllbGQgdGhlIHdvcmtlciBhZG1pdHMgYWdhaW5zdCxcbiAgICogd2hpY2ggaXMgd2hlcmUgdGhlIGNvbnRlbnRpb24gYWN0dWFsbHkgaXMuXG4gICAqL1xuICBidWlsZENsYXNzOiB6LmVudW0oQlVJTERfQ0xBU1NFUykub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIE1hY2hpbmUgc2l6ZSBmb3IgdGhpcyBidWlsZCAoRDEzKS4gQ3JlZGl0LW5ldXRyYWwgcGVyIGJ1aWxkIOKAlCBhIGAyeGAgYnVpbGRcbiAgICogYnVybnMgdGhlIHNhbWUgY3JlZGl0cyB0d2ljZSBhcyBmYXN0IOKAlCBzbyB0aGlzIGlzIGEgY2FwYWJpbGl0eSBnYXRlLCBub3QgYVxuICAgKiBwcmljZTogYFRJRVJfQlVJTERfU0laRVNgIHNheXMgd2hpY2ggdGllciBtYXkgYXNrIGZvciB3aGljaCwgYW5kIGEgcmVxdWVzdFxuICAgKiBhYm92ZSB0aGUgdGllcidzIGNlaWxpbmcgaXMgcmVmdXNlZCByYXRoZXIgdGhhbiBzaWxlbnRseSBkb3duZ3JhZGVkLlxuICAgKi9cbiAgYnVpbGRTaXplOiB6LmVudW0oQlVJTERfU0laRVMpLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjaGVtYXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyx1RUFBdUU7SUFDdkUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hFLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVB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QUFLO0lBQ2pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVaOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDOzs7T0FHRztJQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0M7Ozs7O09BS0c7SUFDSCxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNwRDs7Ozs7T0FLRztJQUNILFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DOzs7Ozs7Ozs7O09BVUc7SUFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDNUM7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgQmFzZUZpbHRlclNjaGVtYSwgQm9vbGVhblF1ZXJ5U2NoZW1hLCBWaXNpYmlsaXR5U2NoZW1hLCBDYXRhbG9nTWV0YWRhdGFTaGFwZSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuaW1wb3J0IHsgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hIH0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5pbXBvcnQgeyBCVUlMRF9DTEFTU0VTLCBCVUlMRF9TSVpFUyB9IGZyb20gJy4uL3R5cGVzL2J1aWxkLWNhdGFsb2cuanMnO1xuaW1wb3J0IHsgUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOIH0gZnJvbSAnLi4vdHlwZXMvZWNvc3lzdGVtLmpzJztcblxuLyoqXG4gKiBQbHVnaW4gZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGx1Z2luRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICAvKiogUmVzb2x2ZSB0aHJvdWdoIHRoaXMgcHVibGlzaGVyJ3MgaW5zdGFsbGVkIGxpc3Rpbmc7IGxvb2t1cCBvbmx5LiAqL1xuICBwdWJsaXNoZXI6IHouc3RyaW5nKCkubWF4KDM5KS5yZWdleChQVUJMSVNIRVJfSEFORExFX1BBVFRFUk4pLm9wdGlvbmFsKCksXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ0lkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBwbHVnaW5UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogUGx1Z2luIGNyZWF0aW9uIHNjaGVtYSDigJQgdXNlZCBmb3IgT3BlbkFQSSBkb2N1bWVudGF0aW9uIGFuZCBkaXJlY3QgQVBJIGNyZWF0aW9uLlxuICogQ3VycmVudGx5IG5vIHJvdXRlIHVzZXMgdGhpcyBkaXJlY3RseTsgcGx1Z2lucyBhcmUgY3JlYXRlZCB2aWEgdXBsb2FkIG9yIEFJIGdlbmVyYXRpb24uXG4gKiBSZXRhaW5lZCBmb3IgZnV0dXJlIGRpcmVjdC1jcmVhdGUgZW5kcG9pbnQgYW5kIE9wZW5BUEkgc3BlYyBjb21wbGV0ZW5lc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5DcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSwgJ09yZ2FuaXphdGlvbiBJRCBpcyByZXF1aXJlZCcpLFxuICBuYW1lOiB6LnN0cmluZygpLm1pbigxLCAnUGx1Z2luIG5hbWUgaXMgcmVxdWlyZWQnKSxcbiAgdmVyc2lvbjogei5zdHJpbmcoKS5taW4oMSwgJ1ZlcnNpb24gaXMgcmVxdWlyZWQnKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjb21wdXRlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBlbnY6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGJ1aWxkQXJnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgaW5zdGFsbENvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGNvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmFpbHVyZUJlaGF2aW9yOiB6LmVudW0oWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10pLm9wdGlvbmFsKCksXG4gIHNlY3JldHM6IHouYXJyYXkoei5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB9KSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiB1cGRhdGUgc2NoZW1hIChgUFVUIC9wbHVnaW5zLzppZGApLlxuICpcbiAqIERFU0NSSVBUSVZFIGNhdGFsb2cgZmllbGRzIG9ubHkgcGx1cyB0aGUgdmVyc2lvbidzIG9wZXJhdGlvbmFsXG4gKiBmbGFncyBhbmQgZGV2ZWxvcGVyLXBvcnRhbCBtZXRhZGF0YS4gRXhlY3V0aW9uLWNvbnRyYWN0IGtleXMgKGNvbW1hbmRzLCBlbnYsXG4gKiBzZWNyZXRzLCBjb21wdXRlIHR5cGUsIOKApikgYXJlIG5ldmVyIGFjY2VwdGVkIOKAlCB0aGUgcm91dGUgcmVmdXNlcyB0aGVtIHdpdGggYVxuICogNDAwIG5hbWluZyB0aGUga2V5cyBiZWZvcmUgdGhpcyBzY2hlbWEgcnVucywgYW5kIGAuc3RyaWN0KClgIHJlZnVzZXMgYW55dGhpbmdcbiAqIGVsc2UgdW5rbm93biByYXRoZXIgdGhhbiBzaWxlbnRseSBkcm9wcGluZyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpblVwZGF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLi4uQ2F0YWxvZ01ldGFkYXRhU2hhcGUsXG4gIC4uLlBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYS5zaGFwZSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KS5zdHJpY3QoKTtcblxuLyoqXG4gKiBQbHVnaW4gdXBsb2FkIGJvZHkgc2NoZW1hIChtdWx0aXBhcnQgZm9ybS1kYXRhIHRleHQgZmllbGRzKVxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luVXBsb2FkQm9keVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogQ2F0YWxvZyBtZXRhZGF0YSBlZGl0cyBhcyBhIEpTT04gb2JqZWN0IChhIHtAbGluayBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWF9XG4gICAqIGRvY3VtZW50KS4gQWJzZW50IOKHkiBldmVyeSB2YWx1ZSBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlIGlzIGFjY2VwdGVkLlxuICAgKi9cbiAgbWV0YWRhdGE6IHouc3RyaW5nKCkubWF4KDI1NiAqIDEwMjQpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBgdHJ1ZWA6IG9uY2UgdGhlIGJ1aWxkIGNvbXBsZXRlcywgc3VibWl0IGEgcHVibGlzaCByZXF1ZXN0IChuZXcgbGlzdGluZywgb3JcbiAgICogbmV3IHZlcnNpb24gb2YgdGhlIG9yZydzIGV4aXN0aW5nIGxpc3RpbmcpIGZvciB0aGUgYnVpbHQgdmVyc2lvbiBhcyB0aGVcbiAgICogdXBsb2FkZXIgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBOZWVkcyBgcGx1Z2luczpwdWJsaXNoYCBhbmRcbiAgICogYHZpc2liaWxpdHk9cHVibGljYC4gVGhlIE9mZmljaWFsIGNhdGFsb2cgbG9hZGVyIGFsd2F5cyBzZXRzIGl0LlxuICAgKi9cbiAgcHVibGlzaFJlcXVlc3Q6IHouZW51bShbJ3RydWUnLCAnZmFsc2UnXSkub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIGB0cnVlYDogdGhpcyB1cGxvYWQgaXMgdGhlIFNFVFVQIGNhdGFsb2cgbG9hZCAoZGVwbG95L2Jpbi9sb2FkLXBsdWdpbnMuc2gpLlxuICAgKiBIb25vdXJlZCBvbmx5IGZvciBhIHN5c3RlbS1vcmcgYnVpbGQsIHdoZXJlIGFuIGltYWdlIHRoZSBzY2FuIGdhdGVzIHJlZnVzZVxuICAgKiBpcyBLRVBUIGluIHRoZSByZWdpc3RyeSBmb3IgcHJvbW90aW9uIChgUE9TVCAvcGx1Z2lucy9rZXB0LXNldHVwLWltYWdlcy86aWQvcHJvbW90ZWApXG4gICAqIGluc3RlYWQgb2YgZGlzY2FyZGVkLiBJZ25vcmVkIChub3JtYWwgZGlzY2FyZCkgZm9yIGFueSBvdGhlciBvcmcuXG4gICAqL1xuICBzZXR1cExvYWQ6IHouZW51bShbJ3RydWUnLCAnZmFsc2UnXSkub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIFNjaGVkdWxpbmcgY2xhc3MgZm9yIHRoaXMgYnVpbGQgKEQxMSkuIGBzdGFuZGFyZGAgaXMgdGhlIGRlZmF1bHQgYW5kIHRoZVxuICAgKiBvbmx5IGNsYXNzIGFuIHVyZ2VudCBmaXggc2hvdWxkIHVzZTsgYGJhdGNoYCB0cmFkZXMgc3RhcnQgbGF0ZW5jeSBmb3IgbW9yZVxuICAgKiBwZXItb3JnIGhlYWRyb29tLCBhbmQgZXZlcnkgdGllciBoYXMgYm90aCDigJQgYSBmcmVlIGFjY291bnQgbXVzdCBzdGlsbCBiZVxuICAgKiBhYmxlIHRvIHB1c2ggb25lIHVyZ2VudCBidWlsZCB0aHJvdWdoLlxuICAgKlxuICAgKiBOb3QgYSBCdWxsTVEgcHJpb3JpdHk6IHByaW9yaXRpZXMgYXJlIHBlci1xdWV1ZSBpbnRlZ2VycyBhbmQgYnVpbGRzIGFyZVxuICAgKiBhbHJlYWR5IHNwbGl0IGFjcm9zcyBvbmUgcXVldWUgUEVSIFRJRVIsIHNvIGEgcHJpb3JpdHkgd291bGQgb25seSBvcmRlciBhXG4gICAqIHRpZXIgYWdhaW5zdCBpdHNlbGYuIFRoZSBjbGFzcyBpcyBhIGpvYiBmaWVsZCB0aGUgd29ya2VyIGFkbWl0cyBhZ2FpbnN0LFxuICAgKiB3aGljaCBpcyB3aGVyZSB0aGUgY29udGVudGlvbiBhY3R1YWxseSBpcy5cbiAgICovXG4gIGJ1aWxkQ2xhc3M6IHouZW51bShCVUlMRF9DTEFTU0VTKS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogTWFjaGluZSBzaXplIGZvciB0aGlzIGJ1aWxkIChEMTMpLiBDcmVkaXQtbmV1dHJhbCBwZXIgYnVpbGQg4oCUIGEgYDJ4YCBidWlsZFxuICAgKiBidXJucyB0aGUgc2FtZSBjcmVkaXRzIHR3aWNlIGFzIGZhc3Qg4oCUIHNvIHRoaXMgaXMgYSBjYXBhYmlsaXR5IGdhdGUsIG5vdCBhXG4gICAqIHByaWNlOiBgVElFUl9CVUlMRF9TSVpFU2Agc2F5cyB3aGljaCB0aWVyIG1heSBhc2sgZm9yIHdoaWNoLCBhbmQgYSByZXF1ZXN0XG4gICAqIGFib3ZlIHRoZSB0aWVyJ3MgY2VpbGluZyBpcyByZWZ1c2VkIHJhdGhlciB0aGFuIHNpbGVudGx5IGRvd25ncmFkZWQuXG4gICAqL1xuICBidWlsZFNpemU6IHouZW51bShCVUlMRF9TSVpFUykub3B0aW9uYWwoKSxcbn0pO1xuIl19
@@ -160,4 +160,4 @@ export function pluginSpecRequiredFieldsProblem(spec) {
160
160
  }
161
161
  return null;
162
162
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLXNwZWMtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsYUFBYSxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLGVBQWUsR0FDL0UsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RSxnRkFBZ0Y7QUFDaEYsZUFBZTtBQUNmLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFVLENBQUM7QUFDMUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQVUsQ0FBQztBQUN0RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBVSxDQUFDO0FBR3hGLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDbEQsaUZBQWlGO0FBQ2pGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHNEQUFzRCxDQUFDO0FBRTdGLGdGQUFnRjtBQUNoRiw0Q0FBNEM7QUFDNUMsZ0ZBQWdGO0FBRWhGLCtDQUErQztBQUMvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFbkM7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QUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHBsdWdpbiBQQUNLQUdFIHNjaGVtYXM6IGBwbHVnaW4tc3BlYy55YW1sYCBhbmQgYGNvbmZpZy55YW1sYCwgZXhhY3RseSBhc1xuICogdGhlIHBsdWdpbiBzZXJ2aWNlIHZhbGlkYXRlcyBhbiB1cGxvYWQuIFNoYXJlZCBmcm9tIGFwaS1jb3JlIHNvIHRoZSB1cGxvYWRcbiAqIHBhdGggKGFwaS9wbHVnaW4pIGFuZCB0aGUgQ0xJIChgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGVgIC9cbiAqIGBwbHVnaW4gcHVibGlzaGApIGFwcGx5IE9ORSBzY2hlbWEgYW5kIGNhbid0IGRyaWZ0LlxuICpcbiAqIFB1cmU6IG5vIFlBTUwgcGFyc2luZywgbm8gZmlsZXN5c3RlbS4gQ2FsbGVycyBwYXJzZSAod2l0aCB0aGVpciBvd24gc2l6ZSBhbmRcbiAqIGFsaWFzIGJvdW5kcykgYW5kIGhhbmQgdGhlIHJlc3VsdGluZyBvYmplY3QgdG8ge0BsaW5rIGNoZWNrUGx1Z2luU3BlY30gL1xuICoge0BsaW5rIGNoZWNrUGx1Z2luQ29uZmlnfS5cbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtcbiAgSWNvbktleVNjaGVtYSwgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BUywgUHJvamVjdFVybFNjaGVtYSwgaXNBbGxvd2VkU3BkeElkLFxufSBmcm9tICcuL3BsdWdpbi1jYXRhbG9nLW1ldGFkYXRhLmpzJztcbmltcG9ydCB7IFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTIH0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLWNhdGFsb2cuanMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVm9jYWJ1bGFyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgUExVR0lOX1RZUEVTID0gWydDb2RlQnVpbGRTdGVwJywgJ1NoZWxsU3RlcCcsICdNYW51YWxBcHByb3ZhbFN0ZXAnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBQTFVHSU5fQ09NUFVURV9UWVBFUyA9IFsnU01BTEwnLCAnTUVESVVNJywgJ0xBUkdFJywgJ1gyX0xBUkdFJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0ZBSUxVUkVfQkVIQVZJT1JTID0gWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0JVSUxEX1RZUEVTID0gWydidWlsZF9pbWFnZScsICdwcmVidWlsdCcsICdtZXRhZGF0YV9vbmx5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5CdWlsZFR5cGUgPSB0eXBlb2YgUExVR0lOX0JVSUxEX1RZUEVTW251bWJlcl07XG5cbi8qKiBQbHVnaW4gbmFtZTogbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgaHlwaGVucy4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTkFNRV9QQVRURVJOID0gL15bYS16MC05LV0rJC87XG4vKiogUGx1Z2luIHZlcnNpb246IHNlbXZlciwgd2l0aCBvcHRpb25hbCBgLXByZXJlbGVhc2VgIGFuZCBgK2J1aWxkYCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fVkVSU0lPTl9QQVRURVJOID0gL15cXGQrXFwuXFxkK1xcLlxcZCsoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbmV0d29yay5lZ3Jlc3MgKHNwZWMtb25seSB0cnVzdCBtZXRhZGF0YSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNYXggZGVjbGFyZWQgYG5ldHdvcmsuZWdyZXNzYCBob3N0bmFtZXMuICovXG5leHBvcnQgY29uc3QgRUdSRVNTX01BWF9IT1NUUyA9IDUwO1xuXG4vKipcbiAqIEEgYmFyZSBETlMgaG9zdG5hbWUsIG9wdGlvbmFsbHkgd2l0aCBPTkUgbGVhZGluZyBgKi5gIHdpbGRjYXJkIGxhYmVsLiBOb1xuICogc2NoZW1lLCBwb3J0LCBwYXRoLCB1c2VyaW5mbyBvciBJUCBsaXRlcmFsIOKAlCBhIGRlY2xhcmVkIGVncmVzcyB0YXJnZXQgaXMgYVxuICogbmFtZSB0aGUgcmV2aWV3ZXIgY2FuIHJlYWQuXG4gKi9cbmNvbnN0IEVHUkVTU19IT1NUX1BBVFRFUk4gPSAvXig/OlxcKlxcLik/KD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16XVthLXowLTktXXswLDYxfVthLXowLTldJC87XG5cbi8qKiBUcnVlIHdoZW4gYGhvc3RgIGlzIGFuIGFjY2VwdGFibGUgYG5ldHdvcmsuZWdyZXNzYCBlbnRyeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWdyZXNzSG9zdChob3N0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGhvc3QubGVuZ3RoIDw9IDI1MyAmJiBFR1JFU1NfSE9TVF9QQVRURVJOLnRlc3QoaG9zdCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb25maWcueWFtbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IFBsdWdpbkNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luU3BlYzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkb2NrZXJmaWxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGJ1aWxkVHlwZTogei5lbnVtKFBMVUdJTl9CVUlMRF9UWVBFUykub3B0aW9uYWwoKSxcbiAgLy8gRGV0ZXJtaW5pc3RpYyBidWlsZCB0YWcgd3JpdHRlbiBieSBidWlsZC1wbHVnaW4taW1hZ2VzLnNoXG4gIC8vIChgcC08bmFtZT4tPHNoYTI1NjoxMj5gKS4gSW5mb3JtYXRpb25hbCBvbmx5IG9uIHRoZSB1cGxvYWQgcGF0aCDigJRcbiAgLy8gdGhlIHBsYXRmb3JtIGRvZXNuJ3QgYWN0IG9uIGl0LCBidXQgaXQgbGl2ZXMgaW4gdGhlIHNhbWUgY29uZmlnXG4gIC8vIGZpbGUgYXMgdGhlIHJlc3Qgb2YgdGhlIGJ1aWxkIG1ldGFkYXRhIHNvIHJlLXJ1bnMgY2FuIHNob3J0LWNpcmN1aXRcbiAgLy8gdW5jaGFuZ2VkIHBsdWdpbnMgd2l0aG91dCBuZWVkaW5nIGEgc2VwYXJhdGUgLmltYWdlLWhhc2ggc2lkZWNhci5cbiAgaW1hZ2VUYWc6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pLnN0cmljdCgpXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAncHJlYnVpbHQnICYmIGQuZG9ja2VyZmlsZSksIHtcbiAgICBtZXNzYWdlOiAnZG9ja2VyZmlsZSBpcyBub3QgYWxsb3dlZCB3aGVuIGJ1aWxkVHlwZSBpcyBwcmVidWlsdCcsXG4gIH0pXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAnbWV0YWRhdGFfb25seScgJiYgZC5kb2NrZXJmaWxlKSwge1xuICAgIG1lc3NhZ2U6ICdkb2NrZXJmaWxlIGlzIG5vdCBhbGxvd2VkIHdoZW4gYnVpbGRUeXBlIGlzIG1ldGFkYXRhX29ubHknLFxuICB9KTtcbmV4cG9ydCB0eXBlIFBsdWdpbkNvbmZpZ0lucHV0ID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ29uZmlnU2NoZW1hPjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHBsdWdpbi1zcGVjLnlhbWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIG5hbWUvdmVyc2lvbi9jb21tYW5kcyBhcmUgdGhlIHJlcXVpcmVkLWZpZWxkIGNvbnRyYWN0LCBidXQgdGhleSdyZSBjaGVja2VkIGJ5XG4vLyB7QGxpbmsgcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbX0gKHRoZSBzdGFibGUgXCJuYW1lLCB2ZXJzaW9uLCBhbmRcbi8vIGNvbW1hbmRzIGFyZSByZXF1aXJlZFwiIG1lc3NhZ2UgYW5kIHRoZSBNYW51YWxBcHByb3ZhbFN0ZXAgY2FydmUtb3V0KS4gSGVyZVxuLy8gdGhleSdyZSBvcHRpb25hbCBzdHJpbmdzOyB0aGUgc2NoZW1hJ3Mgam9iIGlzIHRvIHJlamVjdCBtYWxmb3JtZWQgKnR5cGVzKiBvblxuLy8gdGhlIGZpZWxkcyB0aGF0IGZsb3cgZG93bnN0cmVhbSB1bmNoZWNrZWQuXG5leHBvcnQgY29uc3QgUGx1Z2luU3BlY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouZW51bShQTFVHSU5fVFlQRVMpLm9wdGlvbmFsKCksXG4gIGNvbXB1dGVUeXBlOiB6LmVudW0oUExVR0lOX0NPTVBVVEVfVFlQRVMpLm9wdGlvbmFsKCksXG4gIC8vID49IDAgbWludXRlczogTWFudWFsQXBwcm92YWxTdGVwIHNwZWNzIGxlZ2l0aW1hdGVseSBkZWNsYXJlIGB0aW1lb3V0OiAwYC5cbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLm9wdGlvbmFsKCksXG4gIGZhaWx1cmVCZWhhdmlvcjogei5lbnVtKFBMVUdJTl9GQUlMVVJFX0JFSEFWSU9SUykub3B0aW9uYWwoKSxcbiAgc2VjcmV0czogei5hcnJheSh6Lm9iamVjdCh7XG4gICAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIH0pKS5vcHRpb25hbCgpLFxuICAvLyBBY2NlcHQgYW4gZXhwbGljaXQgYHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IG51bGxgIChhIE1hbnVhbEFwcHJvdmFsU3RlcCAvXG4gIC8vIG91dHB1dC1sZXNzIHN0ZXAgbGVnaXRpbWF0ZWx5IGRlY2xhcmVzIGl0KSBhbmQgbm9ybWFsaXplIGl0IHRvIGB1bmRlZmluZWRgLlxuICAvLyBXaXRob3V0IGAubnVsbGlzaCgpYCBhIHByZXNlbnQgWUFNTCBgbnVsbGAgZmFpbHMgdGhlIGJhcmUgc3RyaW5nIGNoZWNrIGFuZFxuICAvLyA0MDBzIHRoZSB3aG9sZSB1cGxvYWQuXG4gIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHouc3RyaW5nKCkubnVsbGlzaCgpLnRyYW5zZm9ybSgodikgPT4gdiA/PyB1bmRlZmluZWQpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKSwgei5ib29sZWFuKCldKSkub3B0aW9uYWwoKSxcbiAgZG9ja2VyZmlsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgY29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHJlcXVpcmVkTWV0YWRhdGE6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgcmVxdWlyZWRWYXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIC8vIEtlcHQgYXMgZnJlZS1zdHJpbmcgbWFwcyByYXRoZXIgdGhhbiBhIHZhbHVlIGVudW06IHNoaXBwZWQgc3BlY3MgdXNlIGJvdGhcbiAgLy8gYGJvb2xgIGFuZCBgYm9vbGVhbmAsIGFuZCB0aGUgY29lcmNpb24tdnMtZGVjbGFyZWQtdHlwZSBjb25zaXN0ZW5jeSBpc1xuICAvLyBlbmZvcmNlZCBzZXBhcmF0ZWx5IGJ5IHRoZSB0ZW1wbGF0ZSBjb250cmFjdCBjaGVjay4gVGhlIHNjaGVtYSBvbmx5XG4gIC8vIGd1YXJhbnRlZXMgdGhleSdyZSBzdHJpbmctdmFsdWVkIHJlY29yZHMgaGVyZS5cbiAgbWV0YWRhdGFUeXBlczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmFyc1R5cGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAvLyBBIGNvbW1hbmQgdGhlIGJ1aWxkIHRvb2xpbmcgcnVucyBhZ2FpbnN0IHRoZSBidWlsdCBpbWFnZVxuICAvLyAoYnVpbGQtcGx1Z2luLWltYWdlcy5zaCwgdGVzdC1wbHVnaW5zLnNoIC0tYnVpbGQsIGBwbHVnaW4gdGVzdGApLlxuICBzbW9rZVRlc3Q6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgLy8gRG9jdW1lbnRhdGlvbiArIHRydXN0IG1ldGFkYXRhLiBUaGUgUkVBRE1FIGlzIE5PVCBhIHNwZWMgZmllbGQg4oCUIGl0XG4gIC8vIGlzIFJFQURNRS5tZCBhdCB0aGUgemlwIHJvb3QuXG4gIGxpY2Vuc2U6IHouc3RyaW5nKCkucmVmaW5lKGlzQWxsb3dlZFNwZHhJZCwge1xuICAgIG1lc3NhZ2U6ICdtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIChlLmcuIEFwYWNoZS0yLjAsIE1JVCknLFxuICB9KS5vcHRpb25hbCgpLFxuICBjaGFuZ2Vsb2c6IHouc3RyaW5nKCkucmVmaW5lKCh2KSA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodikubGVuZ3RoIDw9IFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTLCB7XG4gICAgbWVzc2FnZTogYG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTfSBieXRlc2AsXG4gIH0pLm9wdGlvbmFsKCksXG4gIGhvbWVwYWdlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLm9wdGlvbmFsKCksXG4gIHNvdXJjZVVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICAvLyBDYXRhbG9nIG1ldGFkYXRhOiB0aGUgY2FyZCBvbmUtbGluZXIgYW5kIHRoZSBkb2NzIGxpbmsuIFNhbWVcbiAgLy8gdmFsaWRhdG9ycyBhcyBhIHZhbHVlIHR5cGVkIGludG8gdGhlIHVwbG9hZCBmb3JtLlxuICBzdW1tYXJ5OiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTLnN1bW1hcnkub3B0aW9uYWwoKSxcbiAgZG9jdW1lbnRhdGlvblVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICBpY29uOiB6LnVuaW9uKFtcbiAgICBJY29uS2V5U2NoZW1hLFxuICAgIHoub2JqZWN0KHsga2V5OiBJY29uS2V5U2NoZW1hLCBiYWRnZTogSWNvbktleVNjaGVtYS5vcHRpb25hbCgpIH0pLnN0cmljdCgpLFxuICBdKS5vcHRpb25hbCgpLFxuICBuZXR3b3JrOiB6Lm9iamVjdCh7XG4gICAgZWdyZXNzOiB6LmFycmF5KHouc3RyaW5nKCkucmVmaW5lKGlzVmFsaWRFZ3Jlc3NIb3N0LCB7XG4gICAgICBtZXNzYWdlOiAnbXVzdCBiZSBhIGJhcmUgaG9zdG5hbWUgKG5vIHNjaGVtZSwgcG9ydCBvciBwYXRoOyBvbmUgbGVhZGluZyAqLiBhbGxvd2VkKScsXG4gICAgfSkpLm1heChFR1JFU1NfTUFYX0hPU1RTKS5vcHRpb25hbCgpLFxuICB9KS5zdHJpY3QoKS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KCk7XG5leHBvcnQgdHlwZSBQbHVnaW5TcGVjSW5wdXQgPSB6LmluZmVyPHR5cGVvZiBQbHVnaW5TcGVjU2NoZW1hPjtcblxuLyoqXG4gKiBSZXN1bHQgb2YgY2hlY2tpbmcgYSBwYXJzZWQgWUFNTCBkb2N1bWVudCBhZ2FpbnN0IGEgcGFja2FnZSBzY2hlbWE6XG4gKiBgaXNzdWVzYCBhcmUgdGhlIGluZGl2aWR1YWwgcHJvYmxlbXMsIGBtZXNzYWdlYCB0aGUgb25lLWxpbmUgZm9ybSB0aGUgdXBsb2FkXG4gKiBBUEkgcmVwb3J0cyAoYHBsdWdpbi1zcGVjLnlhbWw6IDxwYXRoPjogPHByb2JsZW0+OyDigKZgKS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFja2FnZUNoZWNrPFQ+ID0geyBvazogdHJ1ZTsgdmFsdWU6IFQgfSB8IHsgb2s6IGZhbHNlOyBpc3N1ZXM6IHN0cmluZ1tdOyBtZXNzYWdlOiBzdHJpbmcgfTtcblxuY29uc3QgaXNNYXBwaW5nID0gKHJhdzogdW5rbm93bik6IHJhdyBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PlxuICB0eXBlb2YgcmF3ID09PSAnb2JqZWN0JyAmJiByYXcgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocmF3KTtcblxuZnVuY3Rpb24gY2hlY2tBZ2FpbnN0PFQ+KGZpbGU6IHN0cmluZywgcmF3OiB1bmtub3duLCBzY2hlbWE6IHouWm9kVHlwZTxUPiwgd2l0aFBhdGg6IGJvb2xlYW4pOiBQYWNrYWdlQ2hlY2s8VD4ge1xuICBpZiAoIWlzTWFwcGluZyhyYXcpKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGAke2ZpbGV9IG11c3QgYmUgYSBZQU1MIG1hcHBpbmdgO1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzOiBbbWVzc2FnZV0sIG1lc3NhZ2UgfTtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKHJhdyk7XG4gIGlmIChyZXN1bHQuc3VjY2VzcykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiByZXN1bHQuZGF0YSB9O1xuICBjb25zdCBpc3N1ZXMgPSByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcChpID0+ICh3aXRoUGF0aCA/IGAke2kucGF0aC5qb2luKCcuJykgfHwgJyhyb290KSd9OiAke2kubWVzc2FnZX1gIDogaS5tZXNzYWdlKSk7XG4gIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzLCBtZXNzYWdlOiBgJHtmaWxlfTogJHtpc3N1ZXMuam9pbignOyAnKX1gIH07XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgcGx1Z2luLXNwZWMueWFtbGAgZG9jdW1lbnQgYWdhaW5zdCB7QGxpbmsgUGx1Z2luU3BlY1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5TcGVjKHJhdzogdW5rbm93bik6IFBhY2thZ2VDaGVjazxQbHVnaW5TcGVjSW5wdXQ+IHtcbiAgcmV0dXJuIGNoZWNrQWdhaW5zdCgncGx1Z2luLXNwZWMueWFtbCcsIHJhdywgUGx1Z2luU3BlY1NjaGVtYSwgdHJ1ZSk7XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgY29uZmlnLnlhbWxgIGRvY3VtZW50IGFnYWluc3Qge0BsaW5rIFBsdWdpbkNvbmZpZ1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5Db25maWcocmF3OiB1bmtub3duKTogUGFja2FnZUNoZWNrPFBsdWdpbkNvbmZpZ0lucHV0PiB7XG4gIHJldHVybiBjaGVja0FnYWluc3QoJ2NvbmZpZy55YW1sJywgcmF3LCBQbHVnaW5Db25maWdTY2hlbWEsIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBUaGUgcmVxdWlyZWQtZmllbGQgY29udHJhY3Q6IGBuYW1lYCBhbmQgYHZlcnNpb25gIGFsd2F5cywgYGNvbW1hbmRzYCBmb3JcbiAqIGV2ZXJ5IHR5cGUgZXhjZXB0IGBNYW51YWxBcHByb3ZhbFN0ZXBgLiBSZXR1cm5zIHRoZSB1cGxvYWQncyBtZXNzYWdlLCBvciBudWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbShzcGVjOiBQaWNrPFBsdWdpblNwZWNJbnB1dCwgJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ2NvbW1hbmRzJyB8ICdwbHVnaW5UeXBlJz4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNBcHByb3ZhbFN0ZXAgPSBzcGVjLnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xuICBpZiAoIXNwZWMubmFtZSB8fCAhc3BlYy52ZXJzaW9uIHx8ICghaXNBcHByb3ZhbFN0ZXAgJiYgIXNwZWMuY29tbWFuZHMpKSB7XG4gICAgcmV0dXJuICdJbnZhbGlkIHNwZWM6IG5hbWUsIHZlcnNpb24sIGFuZCBjb21tYW5kcyBhcmUgcmVxdWlyZWQnO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMtc2NoZW1hLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tc3BlYy1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7O0dBU0c7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFDTCxhQUFhLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxHQUMvRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLGdGQUFnRjtBQUNoRixlQUFlO0FBQ2YsZ0ZBQWdGO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLENBQVUsQ0FBQztBQUMxRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQVUsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFVLENBQUM7QUFHeEYsMERBQTBEO0FBQzFELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUNsRCxpRkFBaUY7QUFDakYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsc0RBQXNELENBQUM7QUFFN0YsZ0ZBQWdGO0FBQ2hGLDRDQUE0QztBQUM1QyxnRkFBZ0Y7QUFFaEYsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUVuQzs7OztHQUlHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxvRkFBb0YsQ0FBQztBQUVqSCxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELGdGQUFnRjtBQUNoRixjQUFjO0FBQ2QsZ0ZBQWdGO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsNERBQTREO0lBQzVELG9FQUFvRTtJQUNwRSxrRUFBa0U7SUFDbEUsc0VBQXNFO0lBQ3RFLG9FQUFvRTtJQUNwRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUMxRCxPQUFPLEVBQUUsc0RBQXNEO0NBQ2hFLENBQUM7S0FDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxlQUFlLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9ELE9BQU8sRUFBRSwyREFBMkQ7Q0FDckUsQ0FBQyxDQUFDO0FBR0wsZ0ZBQWdGO0FBQ2hGLG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFFaEYsZ0ZBQWdGO0FBQ2hGLDBFQUEwRTtBQUMxRSw2RUFBNkU7QUFDN0UsK0VBQStFO0FBQy9FLDZDQUE2QztBQUM3QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsNEVBQTRFO0lBQzVFLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xELGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzVELE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO1FBQ3JCLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQ25DLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNkLDRFQUE0RTtJQUM1RSw4RUFBOEU7SUFDOUUsNkVBQTZFO0lBQzdFLHlCQUF5QjtJQUN6QixzQkFBc0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzdFLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pGLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNoRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RELGdCQUFnQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2hELFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM1Qyw0RUFBNEU7SUFDNUUseUVBQXlFO0lBQ3pFLHNFQUFzRTtJQUN0RSxpREFBaUQ7SUFDakQsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RELDJEQUEyRDtJQUMzRCxvRUFBb0U7SUFDcEUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsc0VBQXNFO0lBQ3RFLGdDQUFnQztJQUNoQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7UUFDMUMsT0FBTyxFQUFFLG9FQUFvRTtLQUM5RSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSwwQkFBMEIsRUFBRTtRQUNwRyxPQUFPLEVBQUUsbUJBQW1CLDBCQUEwQixRQUFRO0tBQy9ELENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0lBQ3hDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsK0RBQStEO0lBQy9ELG9EQUFvRDtJQUNwRCxPQUFPLEVBQUUsNEJBQTRCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtJQUN4RCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDWixhQUFhO1FBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQzNFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDYixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNoQixNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ25ELE9BQU8sRUFBRSwyRUFBMkU7U0FDckYsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxFQUFFO0tBQ3JDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBVVosTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQWtDLEVBQUUsQ0FDakUsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWpFLFNBQVMsWUFBWSxDQUFJLElBQVksRUFBRSxHQUFZLEVBQUUsTUFBb0IsRUFBRSxRQUFpQjtJQUMxRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLHlCQUF5QixDQUFDO1FBQ2pELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLElBQUksTUFBTSxDQUFDLE9BQU87UUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RILE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDekUsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVk7SUFDMUMsT0FBTyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVk7SUFDNUMsT0FBTyxZQUFZLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUFDLElBQTJFO0lBQ3pILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssb0JBQW9CLENBQUM7SUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLHdEQUF3RCxDQUFDO0lBQ2xFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgcGx1Z2luIFBBQ0tBR0Ugc2NoZW1hczogYHBsdWdpbi1zcGVjLnlhbWxgIGFuZCBgY29uZmlnLnlhbWxgLCBleGFjdGx5IGFzXG4gKiB0aGUgcGx1Z2luIHNlcnZpY2UgdmFsaWRhdGVzIGFuIHVwbG9hZC4gU2hhcmVkIGZyb20gYXBpLWNvcmUgc28gdGhlIHVwbG9hZFxuICogcGF0aCAoYXBpL3BsdWdpbikgYW5kIHRoZSBDTEkgKGBwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2YWxpZGF0ZWAgL1xuICogYHBsdWdpbiBwdWJsaXNoYCkgYXBwbHkgT05FIHNjaGVtYSBhbmQgY2FuJ3QgZHJpZnQuXG4gKlxuICogUHVyZTogbm8gWUFNTCBwYXJzaW5nLCBubyBmaWxlc3lzdGVtLiBDYWxsZXJzIHBhcnNlICh3aXRoIHRoZWlyIG93biBzaXplIGFuZFxuICogYWxpYXMgYm91bmRzKSBhbmQgaGFuZCB0aGUgcmVzdWx0aW5nIG9iamVjdCB0byB7QGxpbmsgY2hlY2tQbHVnaW5TcGVjfSAvXG4gKiB7QGxpbmsgY2hlY2tQbHVnaW5Db25maWd9LlxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge1xuICBJY29uS2V5U2NoZW1hLCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTLCBQcm9qZWN0VXJsU2NoZW1hLCBpc0FsbG93ZWRTcGR4SWQsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuaW1wb3J0IHsgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMgfSBmcm9tICcuLi90eXBlcy9wbHVnaW4tY2F0YWxvZy5qcyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBWb2NhYnVsYXJpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBQTFVHSU5fVFlQRVMgPSBbJ0NvZGVCdWlsZFN0ZXAnLCAnU2hlbGxTdGVwJywgJ01hbnVhbEFwcHJvdmFsU3RlcCddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9DT01QVVRFX1RZUEVTID0gWydTTUFMTCcsICdNRURJVU0nLCAnTEFSR0UnLCAnWDJfTEFSR0UnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBQTFVHSU5fRkFJTFVSRV9CRUhBVklPUlMgPSBbJ2ZhaWwnLCAnd2FybicsICdpZ25vcmUnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBQTFVHSU5fQlVJTERfVFlQRVMgPSBbJ2J1aWxkX2ltYWdlJywgJ3ByZWJ1aWx0JywgJ21ldGFkYXRhX29ubHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkJ1aWxkVHlwZSA9IHR5cGVvZiBQTFVHSU5fQlVJTERfVFlQRVNbbnVtYmVyXTtcblxuLyoqIFBsdWdpbiBuYW1lOiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBoeXBoZW5zLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9OQU1FX1BBVFRFUk4gPSAvXlthLXowLTktXSskLztcbi8qKiBQbHVnaW4gdmVyc2lvbjogc2VtdmVyLCB3aXRoIG9wdGlvbmFsIGAtcHJlcmVsZWFzZWAgYW5kIGArYnVpbGRgIG1ldGFkYXRhLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9WRVJTSU9OX1BBVFRFUk4gPSAvXlxcZCtcXC5cXGQrXFwuXFxkKygtW2EtekEtWjAtOS4tXSspPyhcXCtbYS16QS1aMC05Li1dKyk/JC87XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBuZXR3b3JrLmVncmVzcyAoc3BlYy1vbmx5IHRydXN0IG1ldGFkYXRhKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIE1heCBkZWNsYXJlZCBgbmV0d29yay5lZ3Jlc3NgIGhvc3RuYW1lcy4gKi9cbmV4cG9ydCBjb25zdCBFR1JFU1NfTUFYX0hPU1RTID0gNTA7XG5cbi8qKlxuICogQSBiYXJlIEROUyBob3N0bmFtZSwgb3B0aW9uYWxseSB3aXRoIE9ORSBsZWFkaW5nIGAqLmAgd2lsZGNhcmQgbGFiZWwuIE5vXG4gKiBzY2hlbWUsIHBvcnQsIHBhdGgsIHVzZXJpbmZvIG9yIElQIGxpdGVyYWwg4oCUIGEgZGVjbGFyZWQgZWdyZXNzIHRhcmdldCBpcyBhXG4gKiBuYW1lIHRoZSByZXZpZXdlciBjYW4gcmVhZC5cbiAqL1xuY29uc3QgRUdSRVNTX0hPU1RfUEFUVEVSTiA9IC9eKD86XFwqXFwuKT8oPzpbYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT9cXC4pK1thLXpdW2EtejAtOS1dezAsNjF9W2EtejAtOV0kLztcblxuLyoqIFRydWUgd2hlbiBgaG9zdGAgaXMgYW4gYWNjZXB0YWJsZSBgbmV0d29yay5lZ3Jlc3NgIGVudHJ5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFZ3Jlc3NIb3N0KGhvc3Q6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaG9zdC5sZW5ndGggPD0gMjUzICYmIEVHUkVTU19IT1NUX1BBVFRFUk4udGVzdChob3N0KTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGNvbmZpZy55YW1sXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgUGx1Z2luQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICBwbHVnaW5TcGVjOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGRvY2tlcmZpbGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYnVpbGRUeXBlOiB6LmVudW0oUExVR0lOX0JVSUxEX1RZUEVTKS5vcHRpb25hbCgpLFxuICAvLyBEZXRlcm1pbmlzdGljIGJ1aWxkIHRhZyB3cml0dGVuIGJ5IGJ1aWxkLXBsdWdpbi1pbWFnZXMuc2hcbiAgLy8gKGBwLTxuYW1lPi08c2hhMjU2OjEyPmApLiBJbmZvcm1hdGlvbmFsIG9ubHkgb24gdGhlIHVwbG9hZCBwYXRoIOKAlFxuICAvLyB0aGUgcGxhdGZvcm0gZG9lc24ndCBhY3Qgb24gaXQsIGJ1dCBpdCBsaXZlcyBpbiB0aGUgc2FtZSBjb25maWdcbiAgLy8gZmlsZSBhcyB0aGUgcmVzdCBvZiB0aGUgYnVpbGQgbWV0YWRhdGEgc28gcmUtcnVucyBjYW4gc2hvcnQtY2lyY3VpdFxuICAvLyB1bmNoYW5nZWQgcGx1Z2lucyB3aXRob3V0IG5lZWRpbmcgYSBzZXBhcmF0ZSAuaW1hZ2UtaGFzaCBzaWRlY2FyLlxuICBpbWFnZVRhZzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KClcbiAgLnJlZmluZShkID0+ICEoZC5idWlsZFR5cGUgPT09ICdwcmVidWlsdCcgJiYgZC5kb2NrZXJmaWxlKSwge1xuICAgIG1lc3NhZ2U6ICdkb2NrZXJmaWxlIGlzIG5vdCBhbGxvd2VkIHdoZW4gYnVpbGRUeXBlIGlzIHByZWJ1aWx0JyxcbiAgfSlcbiAgLnJlZmluZShkID0+ICEoZC5idWlsZFR5cGUgPT09ICdtZXRhZGF0YV9vbmx5JyAmJiBkLmRvY2tlcmZpbGUpLCB7XG4gICAgbWVzc2FnZTogJ2RvY2tlcmZpbGUgaXMgbm90IGFsbG93ZWQgd2hlbiBidWlsZFR5cGUgaXMgbWV0YWRhdGFfb25seScsXG4gIH0pO1xuZXhwb3J0IHR5cGUgUGx1Z2luQ29uZmlnSW5wdXQgPSB6LmluZmVyPHR5cGVvZiBQbHVnaW5Db25maWdTY2hlbWE+O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcGx1Z2luLXNwZWMueWFtbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gbmFtZS92ZXJzaW9uL2NvbW1hbmRzIGFyZSB0aGUgcmVxdWlyZWQtZmllbGQgY29udHJhY3QsIGJ1dCB0aGV5J3JlIGNoZWNrZWQgYnlcbi8vIHtAbGluayBwbHVnaW5TcGVjUmVxdWlyZWRGaWVsZHNQcm9ibGVtfSAodGhlIHN0YWJsZSBcIm5hbWUsIHZlcnNpb24sIGFuZFxuLy8gY29tbWFuZHMgYXJlIHJlcXVpcmVkXCIgbWVzc2FnZSBhbmQgdGhlIE1hbnVhbEFwcHJvdmFsU3RlcCBjYXJ2ZS1vdXQpLiBIZXJlXG4vLyB0aGV5J3JlIG9wdGlvbmFsIHN0cmluZ3M7IHRoZSBzY2hlbWEncyBqb2IgaXMgdG8gcmVqZWN0IG1hbGZvcm1lZCAqdHlwZXMqIG9uXG4vLyB0aGUgZmllbGRzIHRoYXQgZmxvdyBkb3duc3RyZWFtIHVuY2hlY2tlZC5cbmV4cG9ydCBjb25zdCBQbHVnaW5TcGVjU2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHZlcnNpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5lbnVtKFBMVUdJTl9UWVBFUykub3B0aW9uYWwoKSxcbiAgY29tcHV0ZVR5cGU6IHouZW51bShQTFVHSU5fQ09NUFVURV9UWVBFUykub3B0aW9uYWwoKSxcbiAgLy8gPj0gMCBtaW51dGVzOiBNYW51YWxBcHByb3ZhbFN0ZXAgc3BlY3MgbGVnaXRpbWF0ZWx5IGRlY2xhcmUgYHRpbWVvdXQ6IDBgLlxuICB0aW1lb3V0OiB6Lm51bWJlcigpLmludCgpLm5vbm5lZ2F0aXZlKCkub3B0aW9uYWwoKSxcbiAgZmFpbHVyZUJlaGF2aW9yOiB6LmVudW0oUExVR0lOX0ZBSUxVUkVfQkVIQVZJT1JTKS5vcHRpb25hbCgpLFxuICBzZWNyZXRzOiB6LmFycmF5KHoub2JqZWN0KHtcbiAgICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICByZXF1aXJlZDogei5ib29sZWFuKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSkpLm9wdGlvbmFsKCksXG4gIC8vIEFjY2VwdCBhbiBleHBsaWNpdCBgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogbnVsbGAgKGEgTWFudWFsQXBwcm92YWxTdGVwIC9cbiAgLy8gb3V0cHV0LWxlc3Mgc3RlcCBsZWdpdGltYXRlbHkgZGVjbGFyZXMgaXQpIGFuZCBub3JtYWxpemUgaXQgdG8gYHVuZGVmaW5lZGAuXG4gIC8vIFdpdGhvdXQgYC5udWxsaXNoKClgIGEgcHJlc2VudCBZQU1MIGBudWxsYCBmYWlscyB0aGUgYmFyZSBzdHJpbmcgY2hlY2sgYW5kXG4gIC8vIDQwMHMgdGhlIHdob2xlIHVwbG9hZC5cbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsaXNoKCkudHJhbnNmb3JtKCh2KSA9PiB2ID8/IHVuZGVmaW5lZCksXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpLCB6LmJvb2xlYW4oKV0pKS5vcHRpb25hbCgpLFxuICBkb2NrZXJmaWxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGluc3RhbGxDb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBlbnY6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGJ1aWxkQXJnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgcmVxdWlyZWRNZXRhZGF0YTogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICByZXF1aXJlZFZhcnM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgLy8gS2VwdCBhcyBmcmVlLXN0cmluZyBtYXBzIHJhdGhlciB0aGFuIGEgdmFsdWUgZW51bTogc2hpcHBlZCBzcGVjcyB1c2UgYm90aFxuICAvLyBgYm9vbGAgYW5kIGBib29sZWFuYCwgYW5kIHRoZSBjb2VyY2lvbi12cy1kZWNsYXJlZC10eXBlIGNvbnNpc3RlbmN5IGlzXG4gIC8vIGVuZm9yY2VkIHNlcGFyYXRlbHkgYnkgdGhlIHRlbXBsYXRlIGNvbnRyYWN0IGNoZWNrLiBUaGUgc2NoZW1hIG9ubHlcbiAgLy8gZ3VhcmFudGVlcyB0aGV5J3JlIHN0cmluZy12YWx1ZWQgcmVjb3JkcyBoZXJlLlxuICBtZXRhZGF0YVR5cGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB2YXJzVHlwZXM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIC8vIEEgY29tbWFuZCB0aGUgYnVpbGQgdG9vbGluZyBydW5zIGFnYWluc3QgdGhlIGJ1aWx0IGltYWdlXG4gIC8vIChidWlsZC1wbHVnaW4taW1hZ2VzLnNoLCB0ZXN0LXBsdWdpbnMuc2ggLS1idWlsZCwgYHBsdWdpbiB0ZXN0YCkuXG4gIHNtb2tlVGVzdDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAvLyBEb2N1bWVudGF0aW9uICsgdHJ1c3QgbWV0YWRhdGEuIFRoZSBSRUFETUUgaXMgTk9UIGEgc3BlYyBmaWVsZCDigJQgaXRcbiAgLy8gaXMgUkVBRE1FLm1kIGF0IHRoZSB6aXAgcm9vdC5cbiAgbGljZW5zZTogei5zdHJpbmcoKS5yZWZpbmUoaXNBbGxvd2VkU3BkeElkLCB7XG4gICAgbWVzc2FnZTogJ211c3QgYmUgYSBzdXBwb3J0ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXIgKGUuZy4gQXBhY2hlLTIuMCwgTUlUKScsXG4gIH0pLm9wdGlvbmFsKCksXG4gIGNoYW5nZWxvZzogei5zdHJpbmcoKS5yZWZpbmUoKHYpID0+IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2KS5sZW5ndGggPD0gUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsIHtcbiAgICBtZXNzYWdlOiBgbXVzdCBiZSBhdCBtb3N0ICR7UExVR0lOX0NIQU5HRUxPR19NQVhfQllURVN9IGJ5dGVzYCxcbiAgfSkub3B0aW9uYWwoKSxcbiAgaG9tZXBhZ2VVcmw6IFByb2plY3RVcmxTY2hlbWEub3B0aW9uYWwoKSxcbiAgc291cmNlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLm9wdGlvbmFsKCksXG4gIC8vIENhdGFsb2cgbWV0YWRhdGE6IHRoZSBjYXJkIG9uZS1saW5lciBhbmQgdGhlIGRvY3MgbGluay4gU2FtZVxuICAvLyB2YWxpZGF0b3JzIGFzIGEgdmFsdWUgdHlwZWQgaW50byB0aGUgdXBsb2FkIGZvcm0uXG4gIHN1bW1hcnk6IFBMVUdJTl9DQVRBTE9HX0ZJRUxEX1NDSEVNQVMuc3VtbWFyeS5vcHRpb25hbCgpLFxuICBkb2N1bWVudGF0aW9uVXJsOiBQcm9qZWN0VXJsU2NoZW1hLm9wdGlvbmFsKCksXG4gIGljb246IHoudW5pb24oW1xuICAgIEljb25LZXlTY2hlbWEsXG4gICAgei5vYmplY3QoeyBrZXk6IEljb25LZXlTY2hlbWEsIGJhZGdlOiBJY29uS2V5U2NoZW1hLm9wdGlvbmFsKCkgfSkuc3RyaWN0KCksXG4gIF0pLm9wdGlvbmFsKCksXG4gIG5ldHdvcms6IHoub2JqZWN0KHtcbiAgICBlZ3Jlc3M6IHouYXJyYXkoei5zdHJpbmcoKS5yZWZpbmUoaXNWYWxpZEVncmVzc0hvc3QsIHtcbiAgICAgIG1lc3NhZ2U6ICdtdXN0IGJlIGEgYmFyZSBob3N0bmFtZSAobm8gc2NoZW1lLCBwb3J0IG9yIHBhdGg7IG9uZSBsZWFkaW5nICouIGFsbG93ZWQpJyxcbiAgICB9KSkubWF4KEVHUkVTU19NQVhfSE9TVFMpLm9wdGlvbmFsKCksXG4gIH0pLnN0cmljdCgpLm9wdGlvbmFsKCksXG59KS5zdHJpY3QoKTtcbmV4cG9ydCB0eXBlIFBsdWdpblNwZWNJbnB1dCA9IHouaW5mZXI8dHlwZW9mIFBsdWdpblNwZWNTY2hlbWE+O1xuXG4vKipcbiAqIFJlc3VsdCBvZiBjaGVja2luZyBhIHBhcnNlZCBZQU1MIGRvY3VtZW50IGFnYWluc3QgYSBwYWNrYWdlIHNjaGVtYTpcbiAqIGBpc3N1ZXNgIGFyZSB0aGUgaW5kaXZpZHVhbCBwcm9ibGVtcywgYG1lc3NhZ2VgIHRoZSBvbmUtbGluZSBmb3JtIHRoZSB1cGxvYWRcbiAqIEFQSSByZXBvcnRzIChgcGx1Z2luLXNwZWMueWFtbDogPHBhdGg+OiA8cHJvYmxlbT47IOKApmApLlxuICovXG5leHBvcnQgdHlwZSBQYWNrYWdlQ2hlY2s8VD4gPSB7IG9rOiB0cnVlOyB2YWx1ZTogVCB9IHwgeyBvazogZmFsc2U7IGlzc3Vlczogc3RyaW5nW107IG1lc3NhZ2U6IHN0cmluZyB9O1xuXG5jb25zdCBpc01hcHBpbmcgPSAocmF3OiB1bmtub3duKTogcmF3IGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+XG4gIHR5cGVvZiByYXcgPT09ICdvYmplY3QnICYmIHJhdyAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShyYXcpO1xuXG5mdW5jdGlvbiBjaGVja0FnYWluc3Q8VD4oZmlsZTogc3RyaW5nLCByYXc6IHVua25vd24sIHNjaGVtYTogei5ab2RUeXBlPFQ+LCB3aXRoUGF0aDogYm9vbGVhbik6IFBhY2thZ2VDaGVjazxUPiB7XG4gIGlmICghaXNNYXBwaW5nKHJhdykpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYCR7ZmlsZX0gbXVzdCBiZSBhIFlBTUwgbWFwcGluZ2A7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBpc3N1ZXM6IFttZXNzYWdlXSwgbWVzc2FnZSB9O1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2UocmF3KTtcbiAgaWYgKHJlc3VsdC5zdWNjZXNzKSByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWU6IHJlc3VsdC5kYXRhIH07XG4gIGNvbnN0IGlzc3VlcyA9IHJlc3VsdC5lcnJvci5pc3N1ZXMubWFwKGkgPT4gKHdpdGhQYXRoID8gYCR7aS5wYXRoLmpvaW4oJy4nKSB8fCAnKHJvb3QpJ306ICR7aS5tZXNzYWdlfWAgOiBpLm1lc3NhZ2UpKTtcbiAgcmV0dXJuIHsgb2s6IGZhbHNlLCBpc3N1ZXMsIG1lc3NhZ2U6IGAke2ZpbGV9OiAke2lzc3Vlcy5qb2luKCc7ICcpfWAgfTtcbn1cblxuLyoqIENoZWNrIGEgcGFyc2VkIGBwbHVnaW4tc3BlYy55YW1sYCBkb2N1bWVudCBhZ2FpbnN0IHtAbGluayBQbHVnaW5TcGVjU2NoZW1hfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BsdWdpblNwZWMocmF3OiB1bmtub3duKTogUGFja2FnZUNoZWNrPFBsdWdpblNwZWNJbnB1dD4ge1xuICByZXR1cm4gY2hlY2tBZ2FpbnN0KCdwbHVnaW4tc3BlYy55YW1sJywgcmF3LCBQbHVnaW5TcGVjU2NoZW1hLCB0cnVlKTtcbn1cblxuLyoqIENoZWNrIGEgcGFyc2VkIGBjb25maWcueWFtbGAgZG9jdW1lbnQgYWdhaW5zdCB7QGxpbmsgUGx1Z2luQ29uZmlnU2NoZW1hfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BsdWdpbkNvbmZpZyhyYXc6IHVua25vd24pOiBQYWNrYWdlQ2hlY2s8UGx1Z2luQ29uZmlnSW5wdXQ+IHtcbiAgcmV0dXJuIGNoZWNrQWdhaW5zdCgnY29uZmlnLnlhbWwnLCByYXcsIFBsdWdpbkNvbmZpZ1NjaGVtYSwgZmFsc2UpO1xufVxuXG4vKipcbiAqIFRoZSByZXF1aXJlZC1maWVsZCBjb250cmFjdDogYG5hbWVgIGFuZCBgdmVyc2lvbmAgYWx3YXlzLCBgY29tbWFuZHNgIGZvclxuICogZXZlcnkgdHlwZSBleGNlcHQgYE1hbnVhbEFwcHJvdmFsU3RlcGAuIFJldHVybnMgdGhlIHVwbG9hZCdzIG1lc3NhZ2UsIG9yIG51bGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbHVnaW5TcGVjUmVxdWlyZWRGaWVsZHNQcm9ibGVtKHNwZWM6IFBpY2s8UGx1Z2luU3BlY0lucHV0LCAnbmFtZScgfCAndmVyc2lvbicgfCAnY29tbWFuZHMnIHwgJ3BsdWdpblR5cGUnPik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBpc0FwcHJvdmFsU3RlcCA9IHNwZWMucGx1Z2luVHlwZSA9PT0gJ01hbnVhbEFwcHJvdmFsU3RlcCc7XG4gIGlmICghc3BlYy5uYW1lIHx8ICFzcGVjLnZlcnNpb24gfHwgKCFpc0FwcHJvdmFsU3RlcCAmJiAhc3BlYy5jb21tYW5kcykpIHtcbiAgICByZXR1cm4gJ0ludmFsaWQgc3BlYzogbmFtZSwgdmVyc2lvbiwgYW5kIGNvbW1hbmRzIGFyZSByZXF1aXJlZCc7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -110,4 +110,4 @@ export function formatPluginTemplateIssue(issue) {
110
110
  return issue.message;
111
111
  return `[${issue.field}${issue.line !== undefined ? `:${issue.line}:${issue.col}` : ''}] ${issue.message}`;
112
112
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXRlbXBsYXRlLWNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLXRlbXBsYXRlLWNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7R0FVRztBQUVILG1EQUFtRDtBQUNuRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFVLENBQUM7QUFFbEYsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFFckgsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFhO0lBQ3BELE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEgsQ0FBQztBQTZCRCxNQUFNLGNBQWMsR0FBcUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBRTFHLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBVSxFQUFZLEVBQUUsQ0FDMUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFlLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxD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SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELGtHQUFrRztBQUNsRyxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBMEI7SUFDbEUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDcEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBwbHVnaW4gc3BlYydzIGB7eyAuLi4gfX1gIFRFTVBMQVRFIENPTlRSQUNULCBleGFjdGx5IGFzIHRoZSBwbHVnaW5cbiAqIHNlcnZpY2UgY2hlY2tzIGFuIHVwbG9hZC4gU2hhcmVkIGZyb20gYXBpLWNvcmUgc28gdGhlIHVwbG9hZCBwYXRoXG4gKiAoYXBpL3BsdWdpbikgYW5kIHRoZSBDTEkgKGBwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2YWxpZGF0ZWAgLyBgdGVzdGAgL1xuICogYHB1Ymxpc2hgKSBhcHBseSBPTkUgY2hlY2sgYW5kIGNhbid0IGRyaWZ0IChwbHVnaW4tZWNvc3lzdGVtIFc2KS5cbiAqXG4gKiBQdXJlOiBpdCByZXR1cm5zIGlzc3VlcyBhbmQgbmV2ZXIgdGhyb3dzLiBUaGUgdGVtcGxhdGUgZW5naW5lICh0b2tlbml6ZXIgYW5kXG4gKiBzY29wZSB2YWxpZGF0b3IpIGxpdmVzIGluIHBpcGVsaW5lLWNvcmUsIHdoaWNoIGRlcGVuZHMgb24gYXBpLWNvcmUsIHNvIHRoZVxuICogY2FsbGVyIGhhbmRzIGl0IGluIGFzIHtAbGluayBQbHVnaW5UZW1wbGF0ZUVuZ2luZX07IHBpcGVsaW5lLWNvcmUncyBtb2R1bGVcbiAqIHNhdGlzZmllcyB0aGUgaW50ZXJmYWNlIGFzLWlzLlxuICovXG5cbi8qKiBTY29wZSByb290cyBhIHBsdWdpbiB0ZW1wbGF0ZSBtYXkgcmVmZXJlbmNlLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9URU1QTEFURV9TQ09QRV9ST09UUyA9IFsncGlwZWxpbmUnLCAncGx1Z2luJywgJ2VudiddIGFzIGNvbnN0O1xuXG4vKiogU3BlYyBmaWVsZHMgd2hvc2Ugc3RyaW5ncyBtYXkgY2FycnkgYHt7IC4uLiB9fWAgdGVtcGxhdGVzLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9URU1QTEFUQUJMRV9GSUVMRFMgPSBbJ2Rlc2NyaXB0aW9uJywgJ2NvbW1hbmRzJywgJ2luc3RhbGxDb21tYW5kcycsICdlbnYnLCAnYnVpbGRBcmdzJ10gYXMgY29uc3Q7XG5cbi8qKiBUcnVlIHdoZW4gYSB3YWxrZWQgZmllbGQgcGF0aCAoYGNvbW1hbmRzWzJdYCwgYGVudi5TVEFHRWApIGlzIHRlbXBsYXRhYmxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGx1Z2luVGVtcGxhdGFibGVGaWVsZChmaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBQTFVHSU5fVEVNUExBVEFCTEVfRklFTERTLnNvbWUoKGYpID0+IGZpZWxkID09PSBmIHx8IGZpZWxkLnN0YXJ0c1dpdGgoYCR7Zn1bYCkgfHwgZmllbGQuc3RhcnRzV2l0aChgJHtmfS5gKSk7XG59XG5cbi8qKiBUaGUgc2xpY2Ugb2YgcGlwZWxpbmUtY29yZSdzIHRlbXBsYXRlIGVuZ2luZSB0aGlzIGNoZWNrIHVzZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblRlbXBsYXRlRW5naW5lIHtcbiAgYWxsb3dlZFNjb3BlUm9vdHMocm9vdHM6IHN0cmluZ1tdKTogKHBhdGg6IHN0cmluZ1tdKSA9PiBib29sZWFuO1xuICB2YWxpZGF0ZVRlbXBsYXRlcyhcbiAgICBkb2M6IG9iamVjdCxcbiAgICBpc1RlbXBsYXRhYmxlOiAoZmllbGQ6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgICBpc0tub3duUGF0aDogKHBhdGg6IHN0cmluZ1tdKSA9PiBib29sZWFuLFxuICApOiB7IGVycm9yczogUmVhZG9ubHlBcnJheTx7IGZpZWxkOiBzdHJpbmc7IGxpbmU/OiBudW1iZXI7IGNvbD86IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0+IH07XG4gIHRva2VuaXplKHNvdXJjZTogc3RyaW5nKTogUmVhZG9ubHlBcnJheTx7IGtpbmQ6IHN0cmluZzsgcGF0aD86IHN0cmluZ1tdOyBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7IGNvZXJjZT86IHN0cmluZyB9Pjtcbn1cblxuLyoqXG4gKiBPbmUgdGVtcGxhdGUtY29udHJhY3QgcHJvYmxlbS5cbiAqIC0gYHRlbXBsYXRlYDogYSBwYXJzZSBlcnJvciwgdW5rbm93biBzY29wZSByb290IG9yIHJlc2VydmVkIGBzZWNyZXRzLipgIHBhdGguXG4gKiAtIGB1bmRlY2xhcmVkYDogYHt7IHBpcGVsaW5lLm1ldGFkYXRhLlggfX1gIC8gYHt7IHBpcGVsaW5lLnZhcnMuWCB9fWAgd2l0aG91dFxuICogICBgWGAgaW4gYHJlcXVpcmVkTWV0YWRhdGFgIC8gYHJlcXVpcmVkVmFyc2AgKGFuZCBubyBgfCBkZWZhdWx0OmApLlxuICogLSBgdHlwZS1taXNtYXRjaGA6IGEgYHwgbnVtYmVyfGJvb2x8anNvbmAgZmlsdGVyIHdob3NlIGRlY2xhcmVkIHR5cGUgZGlmZmVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5UZW1wbGF0ZUlzc3VlIHtcbiAga2luZDogJ3RlbXBsYXRlJyB8ICd1bmRlY2xhcmVkJyB8ICd0eXBlLW1pc21hdGNoJztcbiAgLyoqIFRoZSBzcGVjIGZpZWxkIChgY29tbWFuZHNbMF1gKSBmb3IgYHRlbXBsYXRlYCBpc3N1ZXM7IHRoZSBzY29wZSBwYXRoIG90aGVyd2lzZS4gKi9cbiAgZmllbGQ6IHN0cmluZztcbiAgbGluZT86IG51bWJlcjtcbiAgY29sPzogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmNvbnN0IENPRVJDRV9UT19UWVBFOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHsgbnVtYmVyOiAnbnVtYmVyJywgYm9vbDogJ2Jvb2wnLCBqc29uOiAnanNvbicgfTtcblxuY29uc3Qgc3RyaW5nTGlzdCA9ICh2OiB1bmtub3duKTogc3RyaW5nW10gPT5cbiAgKEFycmF5LmlzQXJyYXkodikgPyB2LmZpbHRlcigoeCk6IHggaXMgc3RyaW5nID0+IHR5cGVvZiB4ID09PSAnc3RyaW5nJykgOiBbXSk7XG5jb25zdCBzdHJpbmdWYWx1ZXMgPSAodjogdW5rbm93bik6IHN0cmluZ1tdID0+XG4gICh2ICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2KVxuICAgID8gT2JqZWN0LnZhbHVlcyh2IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5maWx0ZXIoKHgpOiB4IGlzIHN0cmluZyA9PiB0eXBlb2YgeCA9PT0gJ3N0cmluZycpXG4gICAgOiBbXSk7XG5jb25zdCBzdHJpbmdNYXAgPSAodjogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT5cbiAgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHYpID8gdiBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IDoge30pO1xuXG4vKipcbiAqIEV2ZXJ5IGB7eyAuLi4gfX1gIHByb2JsZW0gaW4gYSBwbHVnaW4gc3BlYzogcGFyc2UgZXJyb3JzIGFuZCBzY29wZSByb290c1xuICogKG9ubHkgYHBpcGVsaW5lYCwgYHBsdWdpbmAsIGBlbnZgOyBgc2VjcmV0c2AgaXMgcmVzZXJ2ZWQpLCB0aGVuIHBlclxuICogYHt7IHBpcGVsaW5lLm1ldGFkYXRhLlggfX1gIC8gYHt7IHBpcGVsaW5lLnZhcnMuWCB9fWAgcmVmZXJlbmNlIChhKSB0aGF0IGBYYFxuICogaXMgZGVjbGFyZWQgaW4gYHJlcXVpcmVkTWV0YWRhdGFgIC8gYHJlcXVpcmVkVmFyc2AgdW5sZXNzIGl0IGhhcyBhXG4gKiBgfCBkZWZhdWx0OmAsIGFuZCAoYikgdGhhdCBhIGNvZXJjaW9uIGZpbHRlciBtYXRjaGVzIHRoZSBkZWNsYXJlZCB0eXBlIGluXG4gKiBgbWV0YWRhdGFUeXBlc2AgLyBgdmFyc1R5cGVzYCAodW5kZWNsYXJlZCA9IGBzdHJpbmdgOyBgYm9vbGVhbmAgPSBgYm9vbGApLlxuICpcbiAqIFRha2VzIHRoZSByYXcgc3BlYyBvYmplY3QsIHNvIGEgc3BlYyB0aGF0IGZhaWxlZCB0aGUgc2NoZW1hIGlzIHN0aWxsIGNoZWNrZWQuXG4gKiBJc3N1ZXMgYXJlIGRlLWR1cGxpY2F0ZWQ7IGFuIGVtcHR5IGFycmF5IG1lYW5zIHRoZSBzcGVjIHBhc3Nlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUGx1Z2luVGVtcGxhdGVzKHNwZWM6IG9iamVjdCwgZW5naW5lOiBQbHVnaW5UZW1wbGF0ZUVuZ2luZSk6IFBsdWdpblRlbXBsYXRlSXNzdWVbXSB7XG4gIGNvbnN0IHMgPSBzcGVjIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCBkb2MgPSB7XG4gICAgZGVzY3JpcHRpb246IHMuZGVzY3JpcHRpb24sXG4gICAgY29tbWFuZHM6IHMuY29tbWFuZHMsXG4gICAgaW5zdGFsbENvbW1hbmRzOiBzLmluc3RhbGxDb21tYW5kcyxcbiAgICBlbnY6IHMuZW52LFxuICAgIGJ1aWxkQXJnczogcy5idWlsZEFyZ3MsXG4gIH07XG4gIGNvbnN0IGlzc3VlczogUGx1Z2luVGVtcGxhdGVJc3N1ZVtdID0gW107XG5cbiAgY29uc3QgeyBlcnJvcnMgfSA9IGVuZ2luZS52YWxpZGF0ZVRlbXBsYXRlcyhkb2MsIGlzUGx1Z2luVGVtcGxhdGFibGVGaWVsZCwgZW5naW5lLmFsbG93ZWRTY29wZVJvb3RzKFsuLi5QTFVHSU5fVEVNUExBVEVfU0NPUEVfUk9PVFNdKSk7XG4gIGZvciAoY29uc3QgZSBvZiBlcnJvcnMpIHtcbiAgICBpc3N1ZXMucHVzaCh7IGtpbmQ6ICd0ZW1wbGF0ZScsIGZpZWxkOiBlLmZpZWxkLCAuLi4oZS5saW5lICE9PSB1bmRlZmluZWQgJiYgeyBsaW5lOiBlLmxpbmUsIGNvbDogZS5jb2wgfSksIG1lc3NhZ2U6IGUubWVzc2FnZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVpcmVkID0geyBtZXRhZGF0YTogbmV3IFNldChzdHJpbmdMaXN0KHMucmVxdWlyZWRNZXRhZGF0YSkpLCB2YXJzOiBuZXcgU2V0KHN0cmluZ0xpc3Qocy5yZXF1aXJlZFZhcnMpKSB9O1xuICBjb25zdCB0eXBlcyA9IHsgbWV0YWRhdGE6IHN0cmluZ01hcChzLm1ldGFkYXRhVHlwZXMpLCB2YXJzOiBzdHJpbmdNYXAocy52YXJzVHlwZXMpIH07XG4gIGNvbnN0IHNvdXJjZXMgPSBbXG4gICAgLi4uKHR5cGVvZiBzLmRlc2NyaXB0aW9uID09PSAnc3RyaW5nJyA/IFtzLmRlc2NyaXB0aW9uXSA6IFtdKSxcbiAgICAuLi5zdHJpbmdMaXN0KHMuY29tbWFuZHMpLCAuLi5zdHJpbmdMaXN0KHMuaW5zdGFsbENvbW1hbmRzKSwgLi4uc3RyaW5nVmFsdWVzKHMuZW52KSwgLi4uc3RyaW5nVmFsdWVzKHMuYnVpbGRBcmdzKSxcbiAgXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBhZGQgPSAoaXNzdWU6IFBsdWdpblRlbXBsYXRlSXNzdWUpID0+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtpc3N1ZS5raW5kfVxcdTAwMDAke2lzc3VlLm1lc3NhZ2V9YDtcbiAgICBpZiAoIXNlZW4uaGFzKGtleSkpIHsgc2Vlbi5hZGQoa2V5KTsgaXNzdWVzLnB1c2goaXNzdWUpOyB9XG4gIH07XG5cbiAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgIGlmICghc291cmNlLmluY2x1ZGVzKCd7eycpKSBjb250aW51ZTtcbiAgICBsZXQgdG9rZW5zO1xuICAgIHRyeSB7IHRva2VucyA9IGVuZ2luZS50b2tlbml6ZShzb3VyY2UpOyB9IGNhdGNoIHsgY29udGludWU7IC8qIHJlcG9ydGVkIGFzIGEgYHRlbXBsYXRlYCBpc3N1ZSBhYm92ZSAqLyB9XG4gICAgZm9yIChjb25zdCB0IG9mIHRva2Vucykge1xuICAgICAgaWYgKHQua2luZCAhPT0gJ2V4cHInIHx8ICF0LnBhdGgpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgW3Jvb3QsIHN1Yiwga2V5XSA9IHQucGF0aDtcbiAgICAgIGlmIChyb290ICE9PSAncGlwZWxpbmUnIHx8IChzdWIgIT09ICdtZXRhZGF0YScgJiYgc3ViICE9PSAndmFycycpIHx8ICFrZXkpIGNvbnRpbnVlO1xuICAgICAgY29uc3Qgc2NvcGVQYXRoID0gYHBpcGVsaW5lLiR7c3VifS4ke2tleX1gO1xuICAgICAgY29uc3QgZGVjbGFyZWRJbiA9IHN1YiA9PT0gJ21ldGFkYXRhJyA/ICdyZXF1aXJlZE1ldGFkYXRhJyA6ICdyZXF1aXJlZFZhcnMnO1xuICAgICAgY29uc3QgdHlwZXNJbiA9IHN1YiA9PT0gJ21ldGFkYXRhJyA/ICdtZXRhZGF0YVR5cGVzJyA6ICd2YXJzVHlwZXMnO1xuXG4gICAgICBpZiAodC5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhcmVxdWlyZWRbc3ViXS5oYXMoa2V5KSkge1xuICAgICAgICBhZGQoeyBraW5kOiAndW5kZWNsYXJlZCcsIGZpZWxkOiBzY29wZVBhdGgsIG1lc3NhZ2U6IGAke3Njb3BlUGF0aH0gaXMgbm90IGRlY2xhcmVkIGluICcke2RlY2xhcmVkSW59JyAoZGVjbGFyZSBpdCwgb3IgYWRkICd8IGRlZmF1bHQ6IC4uLicpYCB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gdC5jb2VyY2UgPyBDT0VSQ0VfVE9fVFlQRVt0LmNvZXJjZV0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoZXhwZWN0ZWQpIHtcbiAgICAgICAgLy8gU2hpcHBlZCBzcGVjcyBzcGVsbCB0aGUgYm9vbGVhbiB0eXBlIGJvdGggYGJvb2xgIGFuZCBgYm9vbGVhbmA7IHRoZVxuICAgICAgICAvLyBzdG9yZWQgY29udHJhY3QgKGFuZCB0aGUgZmlsdGVyKSB1c2UgYGJvb2xgLlxuICAgICAgICBjb25zdCByYXcgPSB0eXBlc1tzdWJdW2tleV0gPz8gJ3N0cmluZyc7XG4gICAgICAgIGNvbnN0IGRlY2xhcmVkID0gcmF3ID09PSAnYm9vbGVhbicgPyAnYm9vbCcgOiByYXc7XG4gICAgICAgIGlmIChkZWNsYXJlZCAhPT0gZXhwZWN0ZWQpIHtcbiAgICAgICAgICBhZGQoe1xuICAgICAgICAgICAga2luZDogJ3R5cGUtbWlzbWF0Y2gnLFxuICAgICAgICAgICAgZmllbGQ6IHNjb3BlUGF0aCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGAke3Njb3BlUGF0aH0gdXNlcyAnfCAke3QuY29lcmNlfScgYnV0IGRlY2xhcmVkIHR5cGUgaXMgJyR7ZGVjbGFyZWR9JyAoYWRkICcke2tleX06ICR7ZXhwZWN0ZWR9JyB0byAke3R5cGVzSW59KWAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGlzc3Vlcztcbn1cblxuLyoqIE9uZSBsaW5lIHBlciBpc3N1ZTogYFtjb21tYW5kc1swXToxOjVdIG1lc3NhZ2VgIGZvciB0ZW1wbGF0ZSBpc3N1ZXMsIHRoZSBtZXNzYWdlIG90aGVyd2lzZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQbHVnaW5UZW1wbGF0ZUlzc3VlKGlzc3VlOiBQbHVnaW5UZW1wbGF0ZUlzc3VlKTogc3RyaW5nIHtcbiAgaWYgKGlzc3VlLmtpbmQgIT09ICd0ZW1wbGF0ZScpIHJldHVybiBpc3N1ZS5tZXNzYWdlO1xuICByZXR1cm4gYFske2lzc3VlLmZpZWxkfSR7aXNzdWUubGluZSAhPT0gdW5kZWZpbmVkID8gYDoke2lzc3VlLmxpbmV9OiR7aXNzdWUuY29sfWAgOiAnJ31dICR7aXNzdWUubWVzc2FnZX1gO1xufVxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXRlbXBsYXRlLWNvbnRyYWN0LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tdGVtcGxhdGUtY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7OztHQVVHO0FBRUgsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQVUsQ0FBQztBQUVsRixpRUFBaUU7QUFDakUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxXQUFXLENBQVUsQ0FBQztBQUVySCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWE7SUFDcEQsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0SCxDQUFDO0FBNkJELE1BQU0sY0FBYyxHQUFxQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFMUcsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFVLEVBQVksRUFBRSxDQUMxQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNoRixN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QUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsa0dBQWtHO0FBQ2xHLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUEwQjtJQUNsRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNwRCxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUM3RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHBsdWdpbiBzcGVjJ3MgYHt7IC4uLiB9fWAgVEVNUExBVEUgQ09OVFJBQ1QsIGV4YWN0bHkgYXMgdGhlIHBsdWdpblxuICogc2VydmljZSBjaGVja3MgYW4gdXBsb2FkLiBTaGFyZWQgZnJvbSBhcGktY29yZSBzbyB0aGUgdXBsb2FkIHBhdGhcbiAqIChhcGkvcGx1Z2luKSBhbmQgdGhlIENMSSAoYHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHZhbGlkYXRlYCAvIGB0ZXN0YCAvXG4gKiBgcHVibGlzaGApIGFwcGx5IE9ORSBjaGVjayBhbmQgY2FuJ3QgZHJpZnQgKHBsdWdpbi1lY29zeXN0ZW0gVzYpLlxuICpcbiAqIFB1cmU6IGl0IHJldHVybnMgaXNzdWVzIGFuZCBuZXZlciB0aHJvd3MuIFRoZSB0ZW1wbGF0ZSBlbmdpbmUgKHRva2VuaXplciBhbmRcbiAqIHNjb3BlIHZhbGlkYXRvcikgbGl2ZXMgaW4gcGlwZWxpbmUtY29yZSwgd2hpY2ggZGVwZW5kcyBvbiBhcGktY29yZSwgc28gdGhlXG4gKiBjYWxsZXIgaGFuZHMgaXQgaW4gYXMge0BsaW5rIFBsdWdpblRlbXBsYXRlRW5naW5lfTsgcGlwZWxpbmUtY29yZSdzIG1vZHVsZVxuICogc2F0aXNmaWVzIHRoZSBpbnRlcmZhY2UgYXMtaXMuXG4gKi9cblxuLyoqIFNjb3BlIHJvb3RzIGEgcGx1Z2luIHRlbXBsYXRlIG1heSByZWZlcmVuY2UuICovXG5leHBvcnQgY29uc3QgUExVR0lOX1RFTVBMQVRFX1NDT1BFX1JPT1RTID0gWydwaXBlbGluZScsICdwbHVnaW4nLCAnZW52J10gYXMgY29uc3Q7XG5cbi8qKiBTcGVjIGZpZWxkcyB3aG9zZSBzdHJpbmdzIG1heSBjYXJyeSBge3sgLi4uIH19YCB0ZW1wbGF0ZXMuICovXG5leHBvcnQgY29uc3QgUExVR0lOX1RFTVBMQVRBQkxFX0ZJRUxEUyA9IFsnZGVzY3JpcHRpb24nLCAnY29tbWFuZHMnLCAnaW5zdGFsbENvbW1hbmRzJywgJ2VudicsICdidWlsZEFyZ3MnXSBhcyBjb25zdDtcblxuLyoqIFRydWUgd2hlbiBhIHdhbGtlZCBmaWVsZCBwYXRoIChgY29tbWFuZHNbMl1gLCBgZW52LlNUQUdFYCkgaXMgdGVtcGxhdGFibGUuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQbHVnaW5UZW1wbGF0YWJsZUZpZWxkKGZpZWxkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIFBMVUdJTl9URU1QTEFUQUJMRV9GSUVMRFMuc29tZSgoZikgPT4gZmllbGQgPT09IGYgfHwgZmllbGQuc3RhcnRzV2l0aChgJHtmfVtgKSB8fCBmaWVsZC5zdGFydHNXaXRoKGAke2Z9LmApKTtcbn1cblxuLyoqIFRoZSBzbGljZSBvZiBwaXBlbGluZS1jb3JlJ3MgdGVtcGxhdGUgZW5naW5lIHRoaXMgY2hlY2sgdXNlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luVGVtcGxhdGVFbmdpbmUge1xuICBhbGxvd2VkU2NvcGVSb290cyhyb290czogc3RyaW5nW10pOiAocGF0aDogc3RyaW5nW10pID0+IGJvb2xlYW47XG4gIHZhbGlkYXRlVGVtcGxhdGVzKFxuICAgIGRvYzogb2JqZWN0LFxuICAgIGlzVGVtcGxhdGFibGU6IChmaWVsZDogc3RyaW5nKSA9PiBib29sZWFuLFxuICAgIGlzS25vd25QYXRoOiAocGF0aDogc3RyaW5nW10pID0+IGJvb2xlYW4sXG4gICk6IHsgZXJyb3JzOiBSZWFkb25seUFycmF5PHsgZmllbGQ6IHN0cmluZzsgbGluZT86IG51bWJlcjsgY29sPzogbnVtYmVyOyBtZXNzYWdlOiBzdHJpbmcgfT4gfTtcbiAgdG9rZW5pemUoc291cmNlOiBzdHJpbmcpOiBSZWFkb25seUFycmF5PHsga2luZDogc3RyaW5nOyBwYXRoPzogc3RyaW5nW107IGRlZmF1bHRWYWx1ZT86IHN0cmluZzsgY29lcmNlPzogc3RyaW5nIH0+O1xufVxuXG4vKipcbiAqIE9uZSB0ZW1wbGF0ZS1jb250cmFjdCBwcm9ibGVtLlxuICogLSBgdGVtcGxhdGVgOiBhIHBhcnNlIGVycm9yLCB1bmtub3duIHNjb3BlIHJvb3Qgb3IgcmVzZXJ2ZWQgYHNlY3JldHMuKmAgcGF0aC5cbiAqIC0gYHVuZGVjbGFyZWRgOiBge3sgcGlwZWxpbmUubWV0YWRhdGEuWCB9fWAgLyBge3sgcGlwZWxpbmUudmFycy5YIH19YCB3aXRob3V0XG4gKiAgIGBYYCBpbiBgcmVxdWlyZWRNZXRhZGF0YWAgLyBgcmVxdWlyZWRWYXJzYCAoYW5kIG5vIGB8IGRlZmF1bHQ6YCkuXG4gKiAtIGB0eXBlLW1pc21hdGNoYDogYSBgfCBudW1iZXJ8Ym9vbHxqc29uYCBmaWx0ZXIgd2hvc2UgZGVjbGFyZWQgdHlwZSBkaWZmZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblRlbXBsYXRlSXNzdWUge1xuICBraW5kOiAndGVtcGxhdGUnIHwgJ3VuZGVjbGFyZWQnIHwgJ3R5cGUtbWlzbWF0Y2gnO1xuICAvKiogVGhlIHNwZWMgZmllbGQgKGBjb21tYW5kc1swXWApIGZvciBgdGVtcGxhdGVgIGlzc3VlczsgdGhlIHNjb3BlIHBhdGggb3RoZXJ3aXNlLiAqL1xuICBmaWVsZDogc3RyaW5nO1xuICBsaW5lPzogbnVtYmVyO1xuICBjb2w/OiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuY29uc3QgQ09FUkNFX1RPX1RZUEU6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0geyBudW1iZXI6ICdudW1iZXInLCBib29sOiAnYm9vbCcsIGpzb246ICdqc29uJyB9O1xuXG5jb25zdCBzdHJpbmdMaXN0ID0gKHY6IHVua25vd24pOiBzdHJpbmdbXSA9PlxuICAoQXJyYXkuaXNBcnJheSh2KSA/IHYuZmlsdGVyKCh4KTogeCBpcyBzdHJpbmcgPT4gdHlwZW9mIHggPT09ICdzdHJpbmcnKSA6IFtdKTtcbmNvbnN0IHN0cmluZ1ZhbHVlcyA9ICh2OiB1bmtub3duKTogc3RyaW5nW10gPT5cbiAgKHYgJiYgdHlwZW9mIHYgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHYpXG4gICAgPyBPYmplY3QudmFsdWVzKHYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmZpbHRlcigoeCk6IHggaXMgc3RyaW5nID0+IHR5cGVvZiB4ID09PSAnc3RyaW5nJylcbiAgICA6IFtdKTtcbmNvbnN0IHN0cmluZ01hcCA9ICh2OiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PlxuICAodiAmJiB0eXBlb2YgdiA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodikgPyB2IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4gOiB7fSk7XG5cbi8qKlxuICogRXZlcnkgYHt7IC4uLiB9fWAgcHJvYmxlbSBpbiBhIHBsdWdpbiBzcGVjOiBwYXJzZSBlcnJvcnMgYW5kIHNjb3BlIHJvb3RzXG4gKiAob25seSBgcGlwZWxpbmVgLCBgcGx1Z2luYCwgYGVudmA7IGBzZWNyZXRzYCBpcyByZXNlcnZlZCksIHRoZW4gcGVyXG4gKiBge3sgcGlwZWxpbmUubWV0YWRhdGEuWCB9fWAgLyBge3sgcGlwZWxpbmUudmFycy5YIH19YCByZWZlcmVuY2UgKGEpIHRoYXQgYFhgXG4gKiBpcyBkZWNsYXJlZCBpbiBgcmVxdWlyZWRNZXRhZGF0YWAgLyBgcmVxdWlyZWRWYXJzYCB1bmxlc3MgaXQgaGFzIGFcbiAqIGB8IGRlZmF1bHQ6YCwgYW5kIChiKSB0aGF0IGEgY29lcmNpb24gZmlsdGVyIG1hdGNoZXMgdGhlIGRlY2xhcmVkIHR5cGUgaW5cbiAqIGBtZXRhZGF0YVR5cGVzYCAvIGB2YXJzVHlwZXNgICh1bmRlY2xhcmVkID0gYHN0cmluZ2A7IGBib29sZWFuYCA9IGBib29sYCkuXG4gKlxuICogVGFrZXMgdGhlIHJhdyBzcGVjIG9iamVjdCwgc28gYSBzcGVjIHRoYXQgZmFpbGVkIHRoZSBzY2hlbWEgaXMgc3RpbGwgY2hlY2tlZC5cbiAqIElzc3VlcyBhcmUgZGUtZHVwbGljYXRlZDsgYW4gZW1wdHkgYXJyYXkgbWVhbnMgdGhlIHNwZWMgcGFzc2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5UZW1wbGF0ZXMoc3BlYzogb2JqZWN0LCBlbmdpbmU6IFBsdWdpblRlbXBsYXRlRW5naW5lKTogUGx1Z2luVGVtcGxhdGVJc3N1ZVtdIHtcbiAgY29uc3QgcyA9IHNwZWMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGRvYyA9IHtcbiAgICBkZXNjcmlwdGlvbjogcy5kZXNjcmlwdGlvbixcbiAgICBjb21tYW5kczogcy5jb21tYW5kcyxcbiAgICBpbnN0YWxsQ29tbWFuZHM6IHMuaW5zdGFsbENvbW1hbmRzLFxuICAgIGVudjogcy5lbnYsXG4gICAgYnVpbGRBcmdzOiBzLmJ1aWxkQXJncyxcbiAgfTtcbiAgY29uc3QgaXNzdWVzOiBQbHVnaW5UZW1wbGF0ZUlzc3VlW10gPSBbXTtcblxuICBjb25zdCB7IGVycm9ycyB9ID0gZW5naW5lLnZhbGlkYXRlVGVtcGxhdGVzKGRvYywgaXNQbHVnaW5UZW1wbGF0YWJsZUZpZWxkLCBlbmdpbmUuYWxsb3dlZFNjb3BlUm9vdHMoWy4uLlBMVUdJTl9URU1QTEFURV9TQ09QRV9ST09UU10pKTtcbiAgZm9yIChjb25zdCBlIG9mIGVycm9ycykge1xuICAgIGlzc3Vlcy5wdXNoKHsga2luZDogJ3RlbXBsYXRlJywgZmllbGQ6IGUuZmllbGQsIC4uLihlLmxpbmUgIT09IHVuZGVmaW5lZCAmJiB7IGxpbmU6IGUubGluZSwgY29sOiBlLmNvbCB9KSwgbWVzc2FnZTogZS5tZXNzYWdlIH0pO1xuICB9XG5cbiAgY29uc3QgcmVxdWlyZWQgPSB7IG1ldGFkYXRhOiBuZXcgU2V0KHN0cmluZ0xpc3Qocy5yZXF1aXJlZE1ldGFkYXRhKSksIHZhcnM6IG5ldyBTZXQoc3RyaW5nTGlzdChzLnJlcXVpcmVkVmFycykpIH07XG4gIGNvbnN0IHR5cGVzID0geyBtZXRhZGF0YTogc3RyaW5nTWFwKHMubWV0YWRhdGFUeXBlcyksIHZhcnM6IHN0cmluZ01hcChzLnZhcnNUeXBlcykgfTtcbiAgY29uc3Qgc291cmNlcyA9IFtcbiAgICAuLi4odHlwZW9mIHMuZGVzY3JpcHRpb24gPT09ICdzdHJpbmcnID8gW3MuZGVzY3JpcHRpb25dIDogW10pLFxuICAgIC4uLnN0cmluZ0xpc3Qocy5jb21tYW5kcyksIC4uLnN0cmluZ0xpc3Qocy5pbnN0YWxsQ29tbWFuZHMpLCAuLi5zdHJpbmdWYWx1ZXMocy5lbnYpLCAuLi5zdHJpbmdWYWx1ZXMocy5idWlsZEFyZ3MpLFxuICBdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGFkZCA9IChpc3N1ZTogUGx1Z2luVGVtcGxhdGVJc3N1ZSkgPT4ge1xuICAgIGNvbnN0IGtleSA9IGAke2lzc3VlLmtpbmR9XFx1MDAwMCR7aXNzdWUubWVzc2FnZX1gO1xuICAgIGlmICghc2Vlbi5oYXMoa2V5KSkgeyBzZWVuLmFkZChrZXkpOyBpc3N1ZXMucHVzaChpc3N1ZSk7IH1cbiAgfTtcblxuICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgaWYgKCFzb3VyY2UuaW5jbHVkZXMoJ3t7JykpIGNvbnRpbnVlO1xuICAgIGxldCB0b2tlbnM7XG4gICAgdHJ5IHsgdG9rZW5zID0gZW5naW5lLnRva2VuaXplKHNvdXJjZSk7IH0gY2F0Y2ggeyBjb250aW51ZTsgLyogcmVwb3J0ZWQgYXMgYSBgdGVtcGxhdGVgIGlzc3VlIGFib3ZlICovIH1cbiAgICBmb3IgKGNvbnN0IHQgb2YgdG9rZW5zKSB7XG4gICAgICBpZiAodC5raW5kICE9PSAnZXhwcicgfHwgIXQucGF0aCkgY29udGludWU7XG4gICAgICBjb25zdCBbcm9vdCwgc3ViLCBrZXldID0gdC5wYXRoO1xuICAgICAgaWYgKHJvb3QgIT09ICdwaXBlbGluZScgfHwgKHN1YiAhPT0gJ21ldGFkYXRhJyAmJiBzdWIgIT09ICd2YXJzJykgfHwgIWtleSkgY29udGludWU7XG4gICAgICBjb25zdCBzY29wZVBhdGggPSBgcGlwZWxpbmUuJHtzdWJ9LiR7a2V5fWA7XG4gICAgICBjb25zdCBkZWNsYXJlZEluID0gc3ViID09PSAnbWV0YWRhdGEnID8gJ3JlcXVpcmVkTWV0YWRhdGEnIDogJ3JlcXVpcmVkVmFycyc7XG4gICAgICBjb25zdCB0eXBlc0luID0gc3ViID09PSAnbWV0YWRhdGEnID8gJ21ldGFkYXRhVHlwZXMnIDogJ3ZhcnNUeXBlcyc7XG5cbiAgICAgIGlmICh0LmRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICFyZXF1aXJlZFtzdWJdLmhhcyhrZXkpKSB7XG4gICAgICAgIGFkZCh7IGtpbmQ6ICd1bmRlY2xhcmVkJywgZmllbGQ6IHNjb3BlUGF0aCwgbWVzc2FnZTogYCR7c2NvcGVQYXRofSBpcyBub3QgZGVjbGFyZWQgaW4gJyR7ZGVjbGFyZWRJbn0nIChkZWNsYXJlIGl0LCBvciBhZGQgJ3wgZGVmYXVsdDogLi4uJylgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhwZWN0ZWQgPSB0LmNvZXJjZSA/IENPRVJDRV9UT19UWVBFW3QuY29lcmNlXSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChleHBlY3RlZCkge1xuICAgICAgICAvLyBTaGlwcGVkIHNwZWNzIHNwZWxsIHRoZSBib29sZWFuIHR5cGUgYm90aCBgYm9vbGAgYW5kIGBib29sZWFuYDsgdGhlXG4gICAgICAgIC8vIHN0b3JlZCBjb250cmFjdCAoYW5kIHRoZSBmaWx0ZXIpIHVzZSBgYm9vbGAuXG4gICAgICAgIGNvbnN0IHJhdyA9IHR5cGVzW3N1Yl1ba2V5XSA/PyAnc3RyaW5nJztcbiAgICAgICAgY29uc3QgZGVjbGFyZWQgPSByYXcgPT09ICdib29sZWFuJyA/ICdib29sJyA6IHJhdztcbiAgICAgICAgaWYgKGRlY2xhcmVkICE9PSBleHBlY3RlZCkge1xuICAgICAgICAgIGFkZCh7XG4gICAgICAgICAgICBraW5kOiAndHlwZS1taXNtYXRjaCcsXG4gICAgICAgICAgICBmaWVsZDogc2NvcGVQYXRoLFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7c2NvcGVQYXRofSB1c2VzICd8ICR7dC5jb2VyY2V9JyBidXQgZGVjbGFyZWQgdHlwZSBpcyAnJHtkZWNsYXJlZH0nIChhZGQgJyR7a2V5fTogJHtleHBlY3RlZH0nIHRvICR7dHlwZXNJbn0pYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaXNzdWVzO1xufVxuXG4vKiogT25lIGxpbmUgcGVyIGlzc3VlOiBgW2NvbW1hbmRzWzBdOjE6NV0gbWVzc2FnZWAgZm9yIHRlbXBsYXRlIGlzc3VlcywgdGhlIG1lc3NhZ2Ugb3RoZXJ3aXNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFBsdWdpblRlbXBsYXRlSXNzdWUoaXNzdWU6IFBsdWdpblRlbXBsYXRlSXNzdWUpOiBzdHJpbmcge1xuICBpZiAoaXNzdWUua2luZCAhPT0gJ3RlbXBsYXRlJykgcmV0dXJuIGlzc3VlLm1lc3NhZ2U7XG4gIHJldHVybiBgWyR7aXNzdWUuZmllbGR9JHtpc3N1ZS5saW5lICE9PSB1bmRlZmluZWQgPyBgOiR7aXNzdWUubGluZX06JHtpc3N1ZS5jb2x9YCA6ICcnfV0gJHtpc3N1ZS5tZXNzYWdlfWA7XG59XG4iXX0=