@atlasauth/emulator-core 0.1.0 → 0.3.0
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.
- package/dist/adopt.d.ts +50 -0
- package/dist/adopt.js +57 -0
- package/dist/adopt.js.map +1 -0
- package/dist/coverage.d.ts +15 -0
- package/dist/coverage.js +31 -0
- package/dist/coverage.js.map +1 -0
- package/dist/crypto-util.d.ts +10 -0
- package/dist/crypto-util.js +76 -0
- package/dist/crypto-util.js.map +1 -0
- package/dist/custom-html.d.ts +57 -0
- package/dist/custom-html.js +491 -0
- package/dist/custom-html.js.map +1 -0
- package/dist/engine.d.ts +34 -3
- package/dist/engine.js +57 -8
- package/dist/engine.js.map +1 -1
- package/dist/error-catalog.js +16 -0
- package/dist/error-catalog.js.map +1 -1
- package/dist/event-gate.d.ts +3 -0
- package/dist/event-gate.js +430 -0
- package/dist/event-gate.js.map +1 -0
- package/dist/generic.js +14 -2
- package/dist/generic.js.map +1 -1
- package/dist/handlers/access-signals.d.ts +48 -0
- package/dist/handlers/access-signals.js +76 -0
- package/dist/handlers/access-signals.js.map +1 -0
- package/dist/handlers/approvals.d.ts +2 -0
- package/dist/handlers/approvals.js +418 -0
- package/dist/handlers/approvals.js.map +1 -0
- package/dist/handlers/authz-data.d.ts +2 -0
- package/dist/handlers/authz-data.js +627 -0
- package/dist/handlers/authz-data.js.map +1 -0
- package/dist/handlers/authz-layers.d.ts +229 -0
- package/dist/handlers/authz-layers.js +786 -0
- package/dist/handlers/authz-layers.js.map +1 -0
- package/dist/handlers/authz-state.d.ts +80 -0
- package/dist/handlers/authz-state.js +175 -0
- package/dist/handlers/authz-state.js.map +1 -0
- package/dist/handlers/authz.d.ts +2 -0
- package/dist/handlers/authz.js +410 -0
- package/dist/handlers/authz.js.map +1 -0
- package/dist/handlers/billing.d.ts +100 -0
- package/dist/handlers/billing.js +877 -0
- package/dist/handlers/billing.js.map +1 -0
- package/dist/handlers/cedar-ext.d.ts +35 -0
- package/dist/handlers/cedar-ext.js +174 -0
- package/dist/handlers/cedar-ext.js.map +1 -0
- package/dist/handlers/cedar.d.ts +146 -0
- package/dist/handlers/cedar.js +689 -0
- package/dist/handlers/cedar.js.map +1 -0
- package/dist/handlers/connections.d.ts +5 -0
- package/dist/handlers/connections.js +561 -0
- package/dist/handlers/connections.js.map +1 -0
- package/dist/handlers/control.js +6 -1
- package/dist/handlers/control.js.map +1 -1
- package/dist/handlers/device.d.ts +47 -0
- package/dist/handlers/device.js +665 -0
- package/dist/handlers/device.js.map +1 -0
- package/dist/handlers/emu3-misc.d.ts +38 -0
- package/dist/handlers/emu3-misc.js +1056 -0
- package/dist/handlers/emu3-misc.js.map +1 -0
- package/dist/handlers/emu4-actions-access.d.ts +46 -0
- package/dist/handlers/emu4-actions-access.js +107 -0
- package/dist/handlers/emu4-actions-access.js.map +1 -0
- package/dist/handlers/emu4-actions-catalog-extra.d.ts +3 -0
- package/dist/handlers/emu4-actions-catalog-extra.js +204 -0
- package/dist/handlers/emu4-actions-catalog-extra.js.map +1 -0
- package/dist/handlers/emu4-actions-catalog.d.ts +3 -0
- package/dist/handlers/emu4-actions-catalog.js +143 -0
- package/dist/handlers/emu4-actions-catalog.js.map +1 -0
- package/dist/handlers/emu4-actions-def.d.ts +50 -0
- package/dist/handlers/emu4-actions-def.js +250 -0
- package/dist/handlers/emu4-actions-def.js.map +1 -0
- package/dist/handlers/emu4-actions-sandbox.d.ts +36 -0
- package/dist/handlers/emu4-actions-sandbox.js +318 -0
- package/dist/handlers/emu4-actions-sandbox.js.map +1 -0
- package/dist/handlers/emu4-actions-typegen.d.ts +5 -0
- package/dist/handlers/emu4-actions-typegen.js +73 -0
- package/dist/handlers/emu4-actions-typegen.js.map +1 -0
- package/dist/handlers/emu4-actions.d.ts +2 -0
- package/dist/handlers/emu4-actions.js +506 -0
- package/dist/handlers/emu4-actions.js.map +1 -0
- package/dist/handlers/emu4-authz-trust.d.ts +40 -0
- package/dist/handlers/emu4-authz-trust.js +488 -0
- package/dist/handlers/emu4-authz-trust.js.map +1 -0
- package/dist/handlers/emu4-authz.d.ts +2 -0
- package/dist/handlers/emu4-authz.js +752 -0
- package/dist/handlers/emu4-authz.js.map +1 -0
- package/dist/handlers/emu4-billing-core.d.ts +23 -0
- package/dist/handlers/emu4-billing-core.js +22 -0
- package/dist/handlers/emu4-billing-core.js.map +1 -0
- package/dist/handlers/emu4-billing-x.d.ts +2 -0
- package/dist/handlers/emu4-billing-x.js +489 -0
- package/dist/handlers/emu4-billing-x.js.map +1 -0
- package/dist/handlers/emu4-billing.d.ts +14 -0
- package/dist/handlers/emu4-billing.js +846 -0
- package/dist/handlers/emu4-billing.js.map +1 -0
- package/dist/handlers/emu4-clones.d.ts +2 -0
- package/dist/handlers/emu4-clones.js +322 -0
- package/dist/handlers/emu4-clones.js.map +1 -0
- package/dist/handlers/emu4-compliance.d.ts +8 -0
- package/dist/handlers/emu4-compliance.js +39 -0
- package/dist/handlers/emu4-compliance.js.map +1 -0
- package/dist/handlers/emu4-config.d.ts +14 -0
- package/dist/handlers/emu4-config.js +148 -0
- package/dist/handlers/emu4-config.js.map +1 -0
- package/dist/handlers/emu4-cookies.d.ts +8 -0
- package/dist/handlers/emu4-cookies.js +248 -0
- package/dist/handlers/emu4-cookies.js.map +1 -0
- package/dist/handlers/emu4-erasure.d.ts +2 -0
- package/dist/handlers/emu4-erasure.js +587 -0
- package/dist/handlers/emu4-erasure.js.map +1 -0
- package/dist/handlers/emu4-federation.d.ts +8 -0
- package/dist/handlers/emu4-federation.js +18 -0
- package/dist/handlers/emu4-federation.js.map +1 -0
- package/dist/handlers/emu4-journey-math.d.ts +42 -0
- package/dist/handlers/emu4-journey-math.js +99 -0
- package/dist/handlers/emu4-journey-math.js.map +1 -0
- package/dist/handlers/emu4-messaging.d.ts +21 -0
- package/dist/handlers/emu4-messaging.js +595 -0
- package/dist/handlers/emu4-messaging.js.map +1 -0
- package/dist/handlers/emu4-minors.d.ts +7 -0
- package/dist/handlers/emu4-minors.js +408 -0
- package/dist/handlers/emu4-minors.js.map +1 -0
- package/dist/handlers/emu4-oauth-audit.d.ts +5 -0
- package/dist/handlers/emu4-oauth-audit.js +17 -0
- package/dist/handlers/emu4-oauth-audit.js.map +1 -0
- package/dist/handlers/emu4-oauth-auth.d.ts +83 -0
- package/dist/handlers/emu4-oauth-auth.js +363 -0
- package/dist/handlers/emu4-oauth-auth.js.map +1 -0
- package/dist/handlers/emu4-oauth-delivery.d.ts +68 -0
- package/dist/handlers/emu4-oauth-delivery.js +207 -0
- package/dist/handlers/emu4-oauth-delivery.js.map +1 -0
- package/dist/handlers/emu4-oauth-keys.d.ts +11 -0
- package/dist/handlers/emu4-oauth-keys.js +268 -0
- package/dist/handlers/emu4-oauth-keys.js.map +1 -0
- package/dist/handlers/emu4-oauth-pub.d.ts +36 -0
- package/dist/handlers/emu4-oauth-pub.js +420 -0
- package/dist/handlers/emu4-oauth-pub.js.map +1 -0
- package/dist/handlers/emu4-oauth.d.ts +10 -0
- package/dist/handlers/emu4-oauth.js +23 -0
- package/dist/handlers/emu4-oauth.js.map +1 -0
- package/dist/handlers/emu4-policies.d.ts +2 -0
- package/dist/handlers/emu4-policies.js +408 -0
- package/dist/handlers/emu4-policies.js.map +1 -0
- package/dist/handlers/emu4-region.d.ts +2 -0
- package/dist/handlers/emu4-region.js +189 -0
- package/dist/handlers/emu4-region.js.map +1 -0
- package/dist/handlers/emu4-saml.d.ts +12 -0
- package/dist/handlers/emu4-saml.js +532 -0
- package/dist/handlers/emu4-saml.js.map +1 -0
- package/dist/handlers/emu4-shared.d.ts +44 -0
- package/dist/handlers/emu4-shared.js +90 -0
- package/dist/handlers/emu4-shared.js.map +1 -0
- package/dist/handlers/emu4-snapshots.d.ts +38 -0
- package/dist/handlers/emu4-snapshots.js +231 -0
- package/dist/handlers/emu4-snapshots.js.map +1 -0
- package/dist/handlers/emu4-sns.d.ts +9 -0
- package/dist/handlers/emu4-sns.js +21 -0
- package/dist/handlers/emu4-sns.js.map +1 -0
- package/dist/handlers/emu4-trust-binding.d.ts +27 -0
- package/dist/handlers/emu4-trust-binding.js +344 -0
- package/dist/handlers/emu4-trust-binding.js.map +1 -0
- package/dist/handlers/emu4-trust.d.ts +35 -0
- package/dist/handlers/emu4-trust.js +543 -0
- package/dist/handlers/emu4-trust.js.map +1 -0
- package/dist/handlers/federation.d.ts +2 -0
- package/dist/handlers/federation.js +481 -0
- package/dist/handlers/federation.js.map +1 -0
- package/dist/handlers/fga-engine.d.ts +78 -0
- package/dist/handlers/fga-engine.js +663 -0
- package/dist/handlers/fga-engine.js.map +1 -0
- package/dist/handlers/governance.d.ts +2 -0
- package/dist/handlers/governance.js +460 -0
- package/dist/handlers/governance.js.map +1 -0
- package/dist/handlers/hooks.js +17 -1
- package/dist/handlers/hooks.js.map +1 -1
- package/dist/handlers/index.d.ts +5 -1
- package/dist/handlers/index.js +45 -3
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/keys.js +6 -1
- package/dist/handlers/keys.js.map +1 -1
- package/dist/handlers/machines.js +61 -8
- package/dist/handlers/machines.js.map +1 -1
- package/dist/handlers/messaging.d.ts +6 -0
- package/dist/handlers/messaging.js +893 -0
- package/dist/handlers/messaging.js.map +1 -0
- package/dist/handlers/oauth-adv.d.ts +191 -0
- package/dist/handlers/oauth-adv.js +1305 -0
- package/dist/handlers/oauth-adv.js.map +1 -0
- package/dist/handlers/oauth-flows.d.ts +52 -0
- package/dist/handlers/oauth-flows.js +480 -0
- package/dist/handlers/oauth-flows.js.map +1 -0
- package/dist/handlers/oauth.d.ts +96 -0
- package/dist/handlers/oauth.js +793 -0
- package/dist/handlers/oauth.js.map +1 -0
- package/dist/handlers/orgs.js +6 -0
- package/dist/handlers/orgs.js.map +1 -1
- package/dist/handlers/passkeys.d.ts +3 -0
- package/dist/handlers/passkeys.js +293 -0
- package/dist/handlers/passkeys.js.map +1 -0
- package/dist/handlers/platform.d.ts +20 -0
- package/dist/handlers/platform.js +472 -0
- package/dist/handlers/platform.js.map +1 -0
- package/dist/handlers/round2.d.ts +8 -0
- package/dist/handlers/round2.js +372 -0
- package/dist/handlers/round2.js.map +1 -0
- package/dist/handlers/scim.d.ts +4 -0
- package/dist/handlers/scim.js +595 -0
- package/dist/handlers/scim.js.map +1 -0
- package/dist/handlers/sessions.d.ts +9 -3
- package/dist/handlers/sessions.js +76 -38
- package/dist/handlers/sessions.js.map +1 -1
- package/dist/handlers/support.d.ts +20 -0
- package/dist/handlers/support.js +62 -0
- package/dist/handlers/support.js.map +1 -0
- package/dist/handlers/users.js +7 -0
- package/dist/handlers/users.js.map +1 -1
- package/dist/handlers/workflows.d.ts +2 -0
- package/dist/handlers/workflows.js +428 -0
- package/dist/handlers/workflows.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/jwe.d.ts +18 -0
- package/dist/jwe.js +101 -0
- package/dist/jwe.js.map +1 -0
- package/dist/jws.d.ts +41 -0
- package/dist/jws.js +135 -0
- package/dist/jws.js.map +1 -0
- package/dist/messages.d.ts +7 -0
- package/dist/messages.js +8 -4
- package/dist/messages.js.map +1 -1
- package/dist/messaging-callbacks.d.ts +100 -0
- package/dist/messaging-callbacks.js +767 -0
- package/dist/messaging-callbacks.js.map +1 -0
- package/dist/openapi.js +41 -1
- package/dist/openapi.js.map +1 -1
- package/dist/parity-bin.js +3 -1
- package/dist/parity-bin.js.map +1 -1
- package/dist/parity-emu3-authz.d.ts +3 -0
- package/dist/parity-emu3-authz.js +61 -0
- package/dist/parity-emu3-authz.js.map +1 -0
- package/dist/parity-emu3-billing.d.ts +3 -0
- package/dist/parity-emu3-billing.js +25 -0
- package/dist/parity-emu3-billing.js.map +1 -0
- package/dist/parity-emu3-messaging.d.ts +3 -0
- package/dist/parity-emu3-messaging.js +27 -0
- package/dist/parity-emu3-messaging.js.map +1 -0
- package/dist/parity-emu3-misc.d.ts +2 -0
- package/dist/parity-emu3-misc.js +63 -0
- package/dist/parity-emu3-misc.js.map +1 -0
- package/dist/parity-emu3-oauth.d.ts +2 -0
- package/dist/parity-emu3-oauth.js +39 -0
- package/dist/parity-emu3-oauth.js.map +1 -0
- package/dist/parity-emu4-actions.d.ts +2 -0
- package/dist/parity-emu4-actions.js +38 -0
- package/dist/parity-emu4-actions.js.map +1 -0
- package/dist/parity-emu4-authz.d.ts +3 -0
- package/dist/parity-emu4-authz.js +68 -0
- package/dist/parity-emu4-authz.js.map +1 -0
- package/dist/parity-emu4-billing.d.ts +6 -0
- package/dist/parity-emu4-billing.js +44 -0
- package/dist/parity-emu4-billing.js.map +1 -0
- package/dist/parity-emu4-compliance.d.ts +2 -0
- package/dist/parity-emu4-compliance.js +92 -0
- package/dist/parity-emu4-compliance.js.map +1 -0
- package/dist/parity-emu4-federation.d.ts +2 -0
- package/dist/parity-emu4-federation.js +33 -0
- package/dist/parity-emu4-federation.js.map +1 -0
- package/dist/parity-emu4-messaging.d.ts +3 -0
- package/dist/parity-emu4-messaging.js +42 -0
- package/dist/parity-emu4-messaging.js.map +1 -0
- package/dist/parity-emu4-oauth.d.ts +2 -0
- package/dist/parity-emu4-oauth.js +55 -0
- package/dist/parity-emu4-oauth.js.map +1 -0
- package/dist/parity-emu4-trust.d.ts +2 -0
- package/dist/parity-emu4-trust.js +41 -0
- package/dist/parity-emu4-trust.js.map +1 -0
- package/dist/parity-routes.d.ts +14 -0
- package/dist/parity-routes.js +439 -0
- package/dist/parity-routes.js.map +1 -0
- package/dist/parity.d.ts +10 -3
- package/dist/parity.js +14 -5
- package/dist/parity.js.map +1 -1
- package/dist/sns-cert.d.ts +9 -0
- package/dist/sns-cert.js +101 -0
- package/dist/sns-cert.js.map +1 -0
- package/dist/tokens.d.ts +85 -3
- package/dist/tokens.js +196 -24
- package/dist/tokens.js.map +1 -1
- package/dist/webauthn-virtual.d.ts +70 -0
- package/dist/webauthn-virtual.js +186 -0
- package/dist/webauthn-virtual.js.map +1 -0
- package/dist/webhook-ext.d.ts +16 -0
- package/dist/webhook-ext.js +218 -0
- package/dist/webhook-ext.js.map +1 -0
- package/dist/webhooks.d.ts +3 -0
- package/dist/webhooks.js +37 -3
- package/dist/webhooks.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity-routes.js","sourceRoot":"","sources":["../src/parity-routes.ts"],"names":[],"mappings":";;;AA8aA,0CAWC;AAzbD,qCAAqE;AAErE,2DAA8D;AAC9D,+DAAkE;AAClE,mEAAsE;AACtE,yDAA4D;AAC5D,2DAA8D;AAC9D,qEAAwE;AACxE,qEAAwE;AACxE,2DAA8D;AAC9D,mEAAsE;AACtE,+DAAkE;AAClE,+DAAkE;AAClE,2DAA8D;AAC9D,2DAA8D;AAE9D;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,6CAA6C,CAAC;AACpE,MAAM,cAAc,GAAG,6CAA6C,CAAC;AACrE,MAAM,EAAE,GAAG,8BAA8B,CAAC;AAE1C,MAAM,CAAC,GAAG,CAAC,EAAU,EAAE,MAA+B,EAAE,IAAY,EAAE,OAA+B,EAAE,EAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAE9I,QAAA,mBAAmB,GAAoB;IAClD,iBAAiB;IACjB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACrK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,yBAAyB,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;IAClH,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACpG,gCAAgC;IAChC,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,CAAC;IACtD,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,yBAAyB,CAAC;IAC1D,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,wBAAwB,CAAC;IAChD,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,0BAA0B,CAAC;IACpD,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,4BAA4B,EAAE,EAAE,CAAC;IAC1H,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,2CAA2C,CAAC;IACzE,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,CAAC;IAClG,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC3G,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;IACxH,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,6CAA6C,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IAC7G,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,CAAC;IACtH,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,iBAAiB,CAAC;IAC/C,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,2BAA2B,CAAC;IACjD,CAAC,CAAC,mBAAmB,EAAE,QAAQ,EAAE,6CAA6C,CAAC;IAC/E,8BAA8B;IAC9B,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACtI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACtI,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;IACjF,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;IACrG,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IAC9C,CAAC,CAAC,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,CAAC;IAC1D,6CAA6C;IAC7C,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,sCAAsC,EAAE,cAAc,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3L,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,uBAAuB,CAAC;IAC9C,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC;IACzF,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,yCAAyC,CAAC;IACtE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChG,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAChG,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,wCAAwC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IACrG,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC/F,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,mCAAmC,CAAC;IAC3D,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,8BAA8B,CAAC;IAC1D,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,mCAAmC,CAAC;IACjE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,2CAA2C,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3F,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,uCAAuC,CAAC;IACjE,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3E,iBAAiB;IACjB,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrN,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,gCAAgC,CAAC;IACtD,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC;IAC1C,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACzE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC/E,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,CAAC;IACpD,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3E,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACvJ,CAAC,CAAC,oBAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9E,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC;IAChD,4CAA4C;IAC5C,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3I,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,sBAAsB,CAAC;IAC1C,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;IAChF,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3F,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;IAC9E,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC;IACzF,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IAC7N,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,4BAA4B,CAAC;IAClD,CAAC,CAAC,gBAAgB,EAAE,OAAO,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;IAC1G,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;IACzL,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,iCAAiC,CAAC;IAC1D,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9G,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,CAAC;IACjI,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,EAAE,CAAC;IACpK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,4BAA4B,CAAC;IACnD,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,6BAA6B,CAAC;IACrD,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,mCAAmC,CAAC;IAClE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,qBAAqB,CAAC;IAC9C,kCAAkC;IAClC,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;IAC1K,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,6BAA6B,CAAC;IACvD,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,qBAAqB,CAAC;IAC9C,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7E,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;IAC/E,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;IAClM,CAAC,CAAC,wBAAwB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;IACrK,CAAC,CAAC,yBAAyB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,CAAC;IACrI,CAAC,CAAC,wBAAwB,EAAE,MAAM,EAAE,6CAA6C,CAAC;IAClF,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,4BAA4B,CAAC;IACzD,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACzG,CAAC,CAAC,0BAA0B,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACvI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;IACnM,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;IAC1I,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,2BAA2B,CAAC;IACrD,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IACnF,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,EAAE,CAAC;IACvI,yCAAyC;IACzC,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACvI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;IACvO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;IACpK,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;IAC/K,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACtI,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5I,gCAAgC;IAChC,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClK,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnK,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClF,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7H,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3J,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxJ,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnI,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9J,CAAC,CAAC,oBAAoB,EAAE,QAAQ,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9F,CAAC,CAAC,yBAAyB,EAAE,QAAQ,EAAE,uCAAuC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpG,eAAe;IACf,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrO,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3E,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7M,CAAC,CAAC,wBAAwB,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9N,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9J,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACvK,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAChT,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,2CAA2C,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5F,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,2CAA2C,EAAE,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAChI,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrJ,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpF,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,wCAAwC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC9F,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC1D,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC/D,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpG,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7G,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,iCAAiC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/I,uBAAuB;IACvB,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC7V,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAClE,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5E,CAAC,CAAC,qBAAqB,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChI,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,EAAE,CAAC;IAClK,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,mDAAmD,kBAAkB,CAAC,EAAE,CAAC,+FAA+F,cAAc,+CAA+C,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5U,CAAC,CAAC,4BAA4B,EAAE,KAAK,EAAE,wDAAwD,kBAAkB,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChL,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9V,CAAC,CAAC,yBAAyB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxP,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzK,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACpP,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACjI,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvI,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/R,CAAC,CAAC,0BAA0B,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACpP,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,iDAAiD,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,+CAA+C,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACnV,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC7J,CAAC,CAAC,0BAA0B,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC7K,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,wCAAwC,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC3H,CAAC,CAAC,qBAAqB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAClF,aAAa;IACb,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACxL,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,wCAAwC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpF,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACzG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5I,CAAC,CAAC,qBAAqB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;IACrK,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;IACxJ,CAAC,CAAC,sBAAsB,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACtF,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,4CAA4C,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACrW,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,yEAAyE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjN,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACxK,CAAC,CAAC,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,+CAA+C,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACtT,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,4CAA4C,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3T,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,6CAA6C,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/S,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACtJ,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC1K,CAAC,CAAC,kBAAkB,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,+CAA+C,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5U,CAAC,CAAC,mBAAmB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9I,CAAC,CAAC,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5I,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACnF,qGAAqG;IACrG,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACxK,CAAC,CAAC,+BAA+B,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrN,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACxJ,CAAC,CAAC,4BAA4B,EAAE,MAAM,EAAE,gCAAgC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/O,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/F,CAAC,CAAC,wBAAwB,EAAE,QAAQ,EAAE,wDAAwD,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACtH,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACzE,gBAAgB;IAChB,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,0BAA0B,CAAC;IACvD,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IAChD,CAAC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,CAAC;CACpD,CAAC;AAGF,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,6CAA6C,EAAE,CAAC,EAAE,6CAA6C,EAAE,CAAC;AAC7I,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACxE,MAAM,MAAM,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AAEpD,uIAAuI;AACvI,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,KAAa,EAAmB,EAAE,CAAC;IACpE,CAAC,CAAC,GAAG,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC;IACtU,CAAC,CAAC,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,qDAAqD,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,wBAAwB,EAAE,EAAE,CAAC;CAC7L,CAAC;AAEF;;;GAGG;AACU,QAAA,kBAAkB,GAAoB;IACjD,iBAAiB;IACjB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACvK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACnG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IACjH,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvH,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;IACjJ,6CAA6C;IAC7C,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,eAAe,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnS,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjF,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC3F,CAAC,CAAC,oBAAoB,EAAE,OAAO,EAAE,oCAAoC,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/H,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5H,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChJ,CAAC,CAAC,qBAAqB,EAAE,QAAQ,EAAE,oCAAoC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjG,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC7G,CAAC,CAAC,gBAAgB,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC7G,wDAAwD;IACxD,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAE,8CAA8C,EAAE,mCAAmC,CAAC,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACxa,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1B,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,kDAAkD,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACzH,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC9J,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1B,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,uDAAuD,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC9G,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,8DAA8D,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC/I,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;IAC1B,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,8DAA8D,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACtJ,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,2BAA2B,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACnS,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACtG,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACtK,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,8CAA8C,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACrQ,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,oCAAoC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACpQ,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC1J,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,6CAA6C,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAClK,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,mCAAmC,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACxP,CAAC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACrF,qBAAqB;IACrB,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC1Q,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,oCAAoC,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC7L,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,8CAA8C,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACjG,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzF,CAAC,CAAC,+BAA+B,EAAE,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxK,CAAC,CAAC,+BAA+B,EAAE,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/I,CAAC,CAAC,iCAAiC,EAAE,QAAQ,EAAE,wDAAwD,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChI,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACjF,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpG,CAAC,CAAC,sBAAsB,EAAE,MAAM,EAAE,oDAAoD,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/G,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9G,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrH,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,0CAA0C,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrL,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzJ,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/L,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC7F,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAClH,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC3L,CAAC,CAAC,qBAAqB,EAAE,QAAQ,EAAE,qCAAqC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACnI,sCAAsC;IACtC,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChK,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC7E,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACvF,CAAC,CAAC,sBAAsB,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5H,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC9M,CAAC,CAAC,uBAAuB,EAAE,QAAQ,EAAE,8BAA8B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC7F,qDAAqD;IACrD,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACvK,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC1K,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACpQ,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/H,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnF,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5F,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnH,CAAC,CAAC,mBAAmB,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC1F,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACvE,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAClF,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnG,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5G,mBAAmB;IACnB,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACrF,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjJ,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnE,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACzH,mDAAmD;IACnD,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjK,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACxH,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACnI,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACzF,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,2CAA2C,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/H,CAAC,CAAC,yBAAyB,EAAE,KAAK,EAAE,uDAAuD,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtI,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,2CAA2C,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC1J,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACpO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACpG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC/G,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC3E,kBAAkB;IAClB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC5E,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/E,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAClK,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChF,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9E,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACxF,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACvL,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,+CAA+C,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/H,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,iDAAiD,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzG,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAClF,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACtI,CAAC,CAAC,sBAAsB,EAAE,QAAQ,EAAE,iCAAiC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC9F,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC1G,CAAC,CAAC,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC7I,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpP,CAAC,CAAC,wBAAwB,EAAE,QAAQ,EAAE,qCAAqC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpG,gBAAgB;IAChB,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1O,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACrG,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,oCAAoC,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACjH,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,iDAAiD,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC/K,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,wCAAwC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACpF,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACpF,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,wCAAwC,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACpI,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC3N,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACtO,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,mEAAmE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1J,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACrO,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,iCAAiC,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACvL,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC/J,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACjH,wEAAwE;IACxE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,sCAAsC,EAAE,cAAc,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC3M,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACjF,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,2CAA2C,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC5I,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrF,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzK,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC7G,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpF,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzF,CAAC,CAAC,sBAAsB,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChH,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/F,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzL,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACvP,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACvJ,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrH,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACjI,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC5I,CAAC,CAAC,oBAAoB,EAAE,MAAM,EAAE,2CAA2C,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpK,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,4CAA4C,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC5I,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACrN,CAAC,CAAC,qBAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpK,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpF,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/F,mFAAmF;IACnF,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACzH,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACxJ,CAAC,CAAC,oBAAoB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAClI,CAAC,CAAC,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACxG,CAAC,CAAC,uBAAuB,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACnH,CAAC,CAAC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC5F,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpG,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,qCAAqC,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACjI,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,+CAA+C,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC9O,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,uDAAuD,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACnJ,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,uDAAuD,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACxJ,CAAC,CAAC,sBAAsB,EAAE,QAAQ,EAAE,2DAA2D,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACvH,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrN,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACtE,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC7E,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC1G,CAAC,CAAC,qBAAqB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACtF,0DAA0D;IAC1D,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAClO,CAAC,CAAC,qBAAqB,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC5F,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACrI,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,oDAAoD,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACzN,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,wCAAwC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC/F,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,gDAAgD,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACjI,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,uDAAuD,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACrH,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC7F,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC7F,CAAC,CAAC,wBAAwB,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC9I,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACzI,CAAC,CAAC,wBAAwB,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC3G,CAAC,CAAC,yBAAyB,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAClH,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACtG,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;CACzG,CAAC;AAEF,0DAA0D;AAC7C,QAAA,kBAAkB,GAAoB,CAAC,GAAG,8BAAqB,EAAE,GAAG,2BAAmB,EAAE,GAAG,0BAAkB,EAAE,GAAG,2CAAuB,EAAE,GAAG,+CAAyB,EAAE,GAAG,mDAA2B,EAAE,GAAG,yCAAsB,EAAE,GAAG,2CAAuB,EAAE,GAAG,2CAAuB,EAAE,GAAG,2CAAuB,EAAE,GAAG,+CAAyB,EAAE,GAAG,+CAAyB,EAAE,GAAG,mDAA2B,EAAE,GAAG,2CAAuB,EAAE,GAAG,qDAA4B,EAAE,GAAG,qDAA4B,CAAC,CAAC;AAEhgB,sGAAsG;AACzF,QAAA,aAAa,GAA2B;IACnD,uCAAuC,EAAE,2HAA2H;CACrK,CAAC;AAEF,0LAA0L;AAC1L,SAAgB,eAAe,CAAC,MAAc,EAAE,WAA4B,0BAAkB;IAC5F,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvH,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,qBAAa,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAAE,SAAS;QAC3G,6EAA6E;QAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,SAAS;QACtD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9J,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/parity.d.ts
CHANGED
|
@@ -14,7 +14,13 @@ export interface ParityRequest {
|
|
|
14
14
|
body?: Record<string, unknown>;
|
|
15
15
|
/** Send no Authorization header. */
|
|
16
16
|
anonymous?: boolean;
|
|
17
|
-
/**
|
|
17
|
+
/** Extra request headers; `{{var}}` is substituted (for example `authorization: 'Bearer {{scimToken}}'`). */
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
/** Send this as `application/x-www-form-urlencoded` instead of JSON (the OAuth endpoints). */
|
|
20
|
+
form?: Record<string, string>;
|
|
21
|
+
/** The feature group the request needs on the reference instance (`oauth`, `scim`, `agents`, `passkeys`, `device`, `round2`); runParity can select groups. */
|
|
22
|
+
group?: string;
|
|
23
|
+
/** variable name -> dotted path into the JSON response; `location#code` reads a query parameter of the Location header */
|
|
18
24
|
capture?: Record<string, string>;
|
|
19
25
|
/** Response keys whose presence is allowed to differ (dotted paths), e.g. optional fields. */
|
|
20
26
|
tolerate?: string[];
|
|
@@ -39,8 +45,9 @@ export declare function runParity(opts: {
|
|
|
39
45
|
requests: ParityRequest[];
|
|
40
46
|
emulator: ParityTarget;
|
|
41
47
|
reference: ParityTarget;
|
|
42
|
-
fetchImpl?: typeof fetch;
|
|
48
|
+
fetchImpl?: typeof fetch; /** Only run these feature groups (requests without a group always run). */
|
|
49
|
+
groups?: string[];
|
|
43
50
|
}): Promise<ParityResult[]>;
|
|
44
|
-
/**
|
|
51
|
+
/** The request list for the first-round resources: the ones the emulator models by hand, plus the error shapes. See `parity-routes.ts` for the rest. */
|
|
45
52
|
export declare const defaultParityRequests: ParityRequest[];
|
|
46
53
|
export {};
|
package/dist/parity.js
CHANGED
|
@@ -48,10 +48,13 @@ function diffShape(a, b, path = '', tolerate = []) {
|
|
|
48
48
|
const get = (obj, dotted) => dotted.split('.').reduce((o, k) => (o == null ? undefined : o[k]), obj);
|
|
49
49
|
async function runOne(target, req, vars, f) {
|
|
50
50
|
const sub = (s) => s.replace(/\{\{(\w+)\}\}/g, (_, n) => vars[n] ?? '');
|
|
51
|
+
const extra = Object.fromEntries(Object.entries(req.headers ?? {}).map(([k, v]) => [k, sub(v)]));
|
|
52
|
+
const form = req.form ? new URLSearchParams(Object.fromEntries(Object.entries(req.form).map(([k, v]) => [k, sub(v)]))).toString() : undefined;
|
|
51
53
|
const res = await f(`${target.baseUrl.replace(/\/+$/, '')}${sub(req.path)}`, {
|
|
52
54
|
method: req.method,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
redirect: 'manual',
|
|
56
|
+
headers: { 'content-type': form ? 'application/x-www-form-urlencoded' : 'application/json', ...(req.anonymous || extra.authorization ? {} : { authorization: `Bearer ${target.secretKey}` }), ...extra },
|
|
57
|
+
body: form ?? (req.body ? sub(JSON.stringify(req.body)) : undefined),
|
|
55
58
|
});
|
|
56
59
|
const text = await res.text();
|
|
57
60
|
let json = null;
|
|
@@ -62,7 +65,13 @@ async function runOne(target, req, vars, f) {
|
|
|
62
65
|
json = text;
|
|
63
66
|
}
|
|
64
67
|
for (const [name, p] of Object.entries(req.capture ?? {})) {
|
|
65
|
-
const
|
|
68
|
+
const [head, param] = p.split('#');
|
|
69
|
+
const v = param ? (() => { try {
|
|
70
|
+
return new URL(res.headers.get(head) ?? '', 'http://x').searchParams.get(param) ?? undefined;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return undefined;
|
|
74
|
+
} })() : get(json, p);
|
|
66
75
|
if (v !== undefined)
|
|
67
76
|
vars[name] = String(v);
|
|
68
77
|
}
|
|
@@ -74,7 +83,7 @@ async function runParity(opts) {
|
|
|
74
83
|
const varsE = { rand };
|
|
75
84
|
const varsR = { rand };
|
|
76
85
|
const results = [];
|
|
77
|
-
for (const req of opts.requests) {
|
|
86
|
+
for (const req of opts.requests.filter((q) => !q.group || !opts.groups || opts.groups.includes(q.group))) {
|
|
78
87
|
const [e, r] = [await runOne(opts.emulator, req, varsE, f), await runOne(opts.reference, req, varsR, f)];
|
|
79
88
|
const diffs = [];
|
|
80
89
|
if (e.status !== r.status)
|
|
@@ -85,7 +94,7 @@ async function runParity(opts) {
|
|
|
85
94
|
}
|
|
86
95
|
return results;
|
|
87
96
|
}
|
|
88
|
-
/**
|
|
97
|
+
/** The request list for the first-round resources: the ones the emulator models by hand, plus the error shapes. See `parity-routes.ts` for the rest. */
|
|
89
98
|
exports.defaultParityRequests = [
|
|
90
99
|
{ id: 'no key', method: 'GET', path: '/v1/users', anonymous: true },
|
|
91
100
|
{ id: 'unknown route', method: 'GET', path: '/v1/definitely_not_a_route' },
|
package/dist/parity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../src/parity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../src/parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function toPem(label: string, der: Uint8Array): string;
|
|
2
|
+
/** The DER inside a PEM block with this label, or null. */
|
|
3
|
+
export declare function fromPem(pem: string, label: string): Uint8Array | null;
|
|
4
|
+
/** A self-signed certificate (PEM) for an RSA key pair, valid 2020-2049, subject `sns.us-east-1.amazonaws.com`. */
|
|
5
|
+
export declare function selfSignedCertificate(spki: Uint8Array, pkcs8: Uint8Array): Promise<string>;
|
|
6
|
+
/** The SubjectPublicKeyInfo of a certificate PEM, or null when it is not a parseable certificate. */
|
|
7
|
+
export declare function certificatePublicKey(pem: string): Uint8Array | null;
|
|
8
|
+
/** The only place SNS serves certificates from the emulator's point of view: the path of the built-in certificate. */
|
|
9
|
+
export declare const SNS_CERT_PATH = "/SimpleNotificationService-emulator.pem";
|
package/dist/sns-cert.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SNS_CERT_PATH = void 0;
|
|
4
|
+
exports.toPem = toPem;
|
|
5
|
+
exports.fromPem = fromPem;
|
|
6
|
+
exports.selfSignedCertificate = selfSignedCertificate;
|
|
7
|
+
exports.certificatePublicKey = certificatePublicKey;
|
|
8
|
+
/**
|
|
9
|
+
* The X.509 certificate the emulator "serves" as Amazon SNS's signing certificate. Amazon signs each SNS message with a private
|
|
10
|
+
* key and tells the receiver where to fetch the matching certificate (`SigningCertURL`); the receiver checks the URL is an
|
|
11
|
+
* `sns.<region>.amazonaws.com` HTTPS URL, fetches the certificate and verifies the signature against its public key. The emulator
|
|
12
|
+
* builds a real self-signed certificate (hand-encoded DER, Web Crypto only, no node: imports) around its test RSA key, and the
|
|
13
|
+
* URL resolves to it without any network access.
|
|
14
|
+
*/
|
|
15
|
+
const enc = new TextEncoder();
|
|
16
|
+
const toB64 = (b) => {
|
|
17
|
+
let s = '';
|
|
18
|
+
for (const x of b)
|
|
19
|
+
s += String.fromCharCode(x);
|
|
20
|
+
return btoa(s);
|
|
21
|
+
};
|
|
22
|
+
const fromB64 = (s) => Uint8Array.from(atob(s), (c) => c.charCodeAt(0));
|
|
23
|
+
function toPem(label, der) {
|
|
24
|
+
return `-----BEGIN ${label}-----\n${(toB64(der).match(/.{1,64}/g) ?? []).join('\n')}\n-----END ${label}-----\n`;
|
|
25
|
+
}
|
|
26
|
+
/** The DER inside a PEM block with this label, or null. */
|
|
27
|
+
function fromPem(pem, label) {
|
|
28
|
+
const m = new RegExp(`-----BEGIN ${label}-----([A-Za-z0-9+/=\\s]+)-----END ${label}-----`).exec(pem);
|
|
29
|
+
if (!m)
|
|
30
|
+
return null;
|
|
31
|
+
try {
|
|
32
|
+
return fromB64(m[1].replace(/\s+/g, ''));
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// ── DER ──
|
|
39
|
+
const cat = (...parts) => {
|
|
40
|
+
const out = new Uint8Array(parts.reduce((n, p) => n + p.length, 0));
|
|
41
|
+
let o = 0;
|
|
42
|
+
for (const p of parts)
|
|
43
|
+
(out.set(p, o), (o += p.length));
|
|
44
|
+
return out;
|
|
45
|
+
};
|
|
46
|
+
const lenBytes = (n) => (n < 0x80 ? Uint8Array.of(n) : n < 0x100 ? Uint8Array.of(0x81, n) : Uint8Array.of(0x82, n >> 8, n & 0xff));
|
|
47
|
+
const tlv = (tag, ...body) => {
|
|
48
|
+
const v = cat(...body);
|
|
49
|
+
return cat(Uint8Array.of(tag), lenBytes(v.length), v);
|
|
50
|
+
};
|
|
51
|
+
const SHA256_WITH_RSA = tlv(0x30, Uint8Array.of(0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b), Uint8Array.of(0x05, 0x00));
|
|
52
|
+
const name = (cn) => tlv(0x30, tlv(0x31, tlv(0x30, Uint8Array.of(0x06, 0x03, 0x55, 0x04, 0x03), tlv(0x0c, enc.encode(cn)))));
|
|
53
|
+
/** A self-signed certificate (PEM) for an RSA key pair, valid 2020-2049, subject `sns.us-east-1.amazonaws.com`. */
|
|
54
|
+
async function selfSignedCertificate(spki, pkcs8) {
|
|
55
|
+
const subject = name('sns.us-east-1.amazonaws.com');
|
|
56
|
+
const tbs = tlv(0x30, tlv(0xa0, tlv(0x02, Uint8Array.of(2))), tlv(0x02, Uint8Array.of(0x01, 0x5c, 0x3a, 0x7e)), SHA256_WITH_RSA, subject, tlv(0x30, tlv(0x17, enc.encode('200101000000Z')), tlv(0x17, enc.encode('491231235959Z'))), subject, spki);
|
|
57
|
+
const key = await crypto.subtle.importKey('pkcs8', pkcs8, { name: 'RSASSA-PKCS1-v1_5', hash: 'SHA-256' }, false, ['sign']);
|
|
58
|
+
const sig = new Uint8Array(await crypto.subtle.sign('RSASSA-PKCS1-v1_5', key, tbs));
|
|
59
|
+
return toPem('CERTIFICATE', tlv(0x30, tbs, SHA256_WITH_RSA, tlv(0x03, Uint8Array.of(0), sig)));
|
|
60
|
+
}
|
|
61
|
+
function read(b, p) {
|
|
62
|
+
if (p + 2 > b.length)
|
|
63
|
+
return null;
|
|
64
|
+
let len = b[p + 1];
|
|
65
|
+
let value = p + 2;
|
|
66
|
+
if (len & 0x80) {
|
|
67
|
+
const n = len & 0x7f;
|
|
68
|
+
if (n < 1 || n > 3 || p + 2 + n > b.length)
|
|
69
|
+
return null;
|
|
70
|
+
len = 0;
|
|
71
|
+
for (let i = 0; i < n; i++)
|
|
72
|
+
len = (len << 8) | b[p + 2 + i];
|
|
73
|
+
value = p + 2 + n;
|
|
74
|
+
}
|
|
75
|
+
return value + len <= b.length ? { tag: b[p], start: p, value, end: value + len } : null;
|
|
76
|
+
}
|
|
77
|
+
/** The SubjectPublicKeyInfo of a certificate PEM, or null when it is not a parseable certificate. */
|
|
78
|
+
function certificatePublicKey(pem) {
|
|
79
|
+
const der = fromPem(pem, 'CERTIFICATE');
|
|
80
|
+
if (!der)
|
|
81
|
+
return null;
|
|
82
|
+
const cert = read(der, 0);
|
|
83
|
+
const tbs = cert && cert.tag === 0x30 ? read(der, cert.value) : null;
|
|
84
|
+
if (!tbs || tbs.tag !== 0x30)
|
|
85
|
+
return null;
|
|
86
|
+
let p = tbs.value;
|
|
87
|
+
const kids = [];
|
|
88
|
+
while (p < tbs.end) {
|
|
89
|
+
const n = read(der, p);
|
|
90
|
+
if (!n)
|
|
91
|
+
return null;
|
|
92
|
+
kids.push(n);
|
|
93
|
+
p = n.end;
|
|
94
|
+
}
|
|
95
|
+
const off = kids[0]?.tag === 0xa0 ? 1 : 0; // [0] version is optional (v1)
|
|
96
|
+
const spki = kids[off + 5]; // serial, sigAlg, issuer, validity, subject, spki
|
|
97
|
+
return spki && spki.tag === 0x30 ? der.slice(spki.start, spki.end) : null;
|
|
98
|
+
}
|
|
99
|
+
/** The only place SNS serves certificates from the emulator's point of view: the path of the built-in certificate. */
|
|
100
|
+
exports.SNS_CERT_PATH = '/SimpleNotificationService-emulator.pem';
|
|
101
|
+
//# sourceMappingURL=sns-cert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sns-cert.js","sourceRoot":"","sources":["../src/sns-cert.ts"],"names":[],"mappings":"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"}
|
package/dist/tokens.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Engine } from './engine';
|
|
2
2
|
import type { Obj } from './openapi';
|
|
3
|
+
import { type OpDecryptAlg } from './jwe';
|
|
3
4
|
/** The issuer used when none is given: a reserved `.invalid` host, so no production verifier can ever be configured with it. */
|
|
4
5
|
export declare const DEFAULT_TEST_ISSUER = "https://emulator.atlas.invalid";
|
|
5
6
|
export interface MintSessionInput {
|
|
@@ -9,17 +10,29 @@ export interface MintSessionInput {
|
|
|
9
10
|
claims?: Obj;
|
|
10
11
|
ttlSeconds?: number;
|
|
11
12
|
}
|
|
13
|
+
/** The algorithms an instance key may use (the same list the real provider publishes). */
|
|
14
|
+
export declare const SIGNING_ALGS: readonly ["RS256", "ES256", "ES384", "PS256", "EdDSA"];
|
|
15
|
+
export type SigningAlg = (typeof SIGNING_ALGS)[number];
|
|
16
|
+
export declare const isSigningAlg: (v: unknown) => v is SigningAlg;
|
|
17
|
+
/** How long the previous key stays published after a rotation unless the caller says otherwise. */
|
|
18
|
+
export declare const DEFAULT_KEY_GRACE_S = 86400;
|
|
12
19
|
/**
|
|
13
20
|
* Real signed tokens. Keys are generated in memory on first use and never written anywhere, so a token
|
|
14
21
|
* this engine signs can only verify against this engine's own JWKS. Every token also carries
|
|
15
22
|
* `atlas_emulator: true`, and the issuer defaults to a reserved host.
|
|
23
|
+
*
|
|
24
|
+
* The key set follows the real provider: one current key signs, a staged key is published before it signs, a previous
|
|
25
|
+
* key stays published until its grace ends (the engine clock), an emergency rotation publishes only the new key.
|
|
16
26
|
*/
|
|
17
27
|
export declare class TokenService {
|
|
18
28
|
private readonly engine;
|
|
19
|
-
private
|
|
29
|
+
private keys;
|
|
20
30
|
private initializing;
|
|
21
31
|
private issuerUrl;
|
|
22
32
|
private rotations;
|
|
33
|
+
private enc;
|
|
34
|
+
/** Keys for the algorithms the OP signs responses with that differ from the instance key (as the real provider's OP key table). */
|
|
35
|
+
private opKeys;
|
|
23
36
|
constructor(engine: Engine);
|
|
24
37
|
get issuer(): string;
|
|
25
38
|
/** The HTTP server calls this once it knows its origin. Drops keys made for the old issuer. */
|
|
@@ -27,21 +40,76 @@ export declare class TokenService {
|
|
|
27
40
|
reset(): void;
|
|
28
41
|
private make;
|
|
29
42
|
private ensure;
|
|
43
|
+
/** Start signing with a staged key that is due, and drop previous keys whose grace has ended. */
|
|
44
|
+
private settle;
|
|
45
|
+
/** The clock-driven transitions, when a key exists already (an engine that never signed is left alone). */
|
|
46
|
+
settleIfStarted(): Promise<void>;
|
|
47
|
+
/** Make sure the first key exists and the clock-driven transitions have run; every entry point calls this first. */
|
|
48
|
+
ready(): Promise<void>;
|
|
30
49
|
private current;
|
|
50
|
+
private currentRec;
|
|
31
51
|
jwks(): Promise<{
|
|
32
52
|
keys: Obj[];
|
|
33
53
|
}>;
|
|
34
|
-
/**
|
|
35
|
-
|
|
54
|
+
/** The published key set a relying party reads: the signing keys, plus the encryption key once a client registered for encrypted request objects. */
|
|
55
|
+
publishedJwks(): Promise<{
|
|
56
|
+
keys: Obj[];
|
|
57
|
+
}>;
|
|
58
|
+
/** Make the key clients encrypt request objects to (and publish it). Idempotent per algorithm. */
|
|
59
|
+
ensureEncryptionKey(alg: OpDecryptAlg): Promise<Obj>;
|
|
60
|
+
/** The plaintext of a JWE addressed to one of this engine's encryption keys (by `kid`, else by `alg`); null when it cannot be decrypted. */
|
|
61
|
+
decryptEncrypted(jwe: string): Promise<string | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Publish a new signing key. Immediately it signs and the old key stays published for `graceSeconds` (default 24 h);
|
|
64
|
+
* `emergency` publishes only the new key; `staged` publishes it now and starts signing at `activatesAt`.
|
|
65
|
+
* The caller checks the real provider's one-key-at-a-time rules (`keyState`).
|
|
66
|
+
*/
|
|
67
|
+
rotate(alg?: SigningAlg, opts?: {
|
|
68
|
+
graceSeconds?: number;
|
|
69
|
+
emergency?: boolean;
|
|
70
|
+
staged?: boolean;
|
|
71
|
+
activatesAt?: number;
|
|
72
|
+
trigger?: string;
|
|
73
|
+
}): Promise<{
|
|
36
74
|
kid: string;
|
|
75
|
+
alg: SigningAlg;
|
|
37
76
|
previous_kid: string;
|
|
77
|
+
previous_retires_at: number | null;
|
|
78
|
+
emergency: boolean;
|
|
79
|
+
staged?: true;
|
|
80
|
+
activates_at?: number;
|
|
81
|
+
}>;
|
|
82
|
+
/** The staged key, unpublished; null when none is staged. */
|
|
83
|
+
cancelStaged(): Promise<string | null>;
|
|
84
|
+
/** The key set as the rotation rules see it. */
|
|
85
|
+
keyState(): Promise<{
|
|
86
|
+
currentKid: string;
|
|
87
|
+
alg: SigningAlg;
|
|
88
|
+
staged: {
|
|
89
|
+
kid: string;
|
|
90
|
+
alg: string;
|
|
91
|
+
activatesAt: number;
|
|
92
|
+
} | null;
|
|
93
|
+
previousRetiresAt: number | null;
|
|
38
94
|
}>;
|
|
95
|
+
/** The published keys, newest first, with their state. */
|
|
39
96
|
signingKeys(): Promise<Obj[]>;
|
|
40
97
|
mintSession(input: MintSessionInput): Promise<{
|
|
41
98
|
jwt: string;
|
|
42
99
|
claims: Obj;
|
|
43
100
|
expiresIn: number;
|
|
44
101
|
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Sign any claim set with the current key: `iss`, `iat`, `exp` and `atlas_emulator` are filled in, everything else is yours.
|
|
104
|
+
* `idToken` uses the OIDC ID-token minting path (aud, nonce, auth_time stay as given).
|
|
105
|
+
*/
|
|
106
|
+
signClaims(claims: Obj, ttlSeconds?: number): Promise<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Sign claims in a chosen algorithm (an authorization response or ID token the client registered an algorithm for).
|
|
109
|
+
* The instance key signs when it already has that algorithm (or none is asked); otherwise a key of that algorithm is
|
|
110
|
+
* made once and published beside it.
|
|
111
|
+
*/
|
|
112
|
+
signClaimsAs(alg: string | null | undefined, claims: Obj, ttlSeconds?: number): Promise<string>;
|
|
45
113
|
/** Verify as a resource server would: against the engine JWKS, issuer and clock. */
|
|
46
114
|
verify(token: string): Promise<{
|
|
47
115
|
ok: true;
|
|
@@ -50,5 +118,19 @@ export declare class TokenService {
|
|
|
50
118
|
ok: false;
|
|
51
119
|
reason: string;
|
|
52
120
|
}>;
|
|
121
|
+
/**
|
|
122
|
+
* Verify any token this engine signed, whatever its `token_use` (session, machine, access, id): signature against
|
|
123
|
+
* the JWKS, issuer, `exp` and `nbf`. `verify` is the session-only check a resource server would run; this one is
|
|
124
|
+
* for the engine's own routes (machine verify, introspection, token exchange).
|
|
125
|
+
*/
|
|
126
|
+
verifyAny(token: string, opts?: {
|
|
127
|
+
ignoreExp?: boolean;
|
|
128
|
+
}): Promise<{
|
|
129
|
+
ok: true;
|
|
130
|
+
claims: Obj;
|
|
131
|
+
} | {
|
|
132
|
+
ok: false;
|
|
133
|
+
reason: string;
|
|
134
|
+
}>;
|
|
53
135
|
secret(prefix: string): string;
|
|
54
136
|
}
|