Files
klz-cables.com/.pnpm-store/v10/files/fc/bab1610bb0477e80f0216c382b87d372f17f2a6dca65a4adeb3a4d0783b73fd6bc3767808737bc3cc2e267256cf1092f09d894c2d7155aa09d8755141c0e00
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
24 KiB
Plaintext

{"version":3,"file":"index.js","sources":["../../../src/server/index.ts"],"sourcesContent":["// import/export got a false positive, and affects most of our index barrel files\n// can be removed once following issue is fixed: https://github.com/import-js/eslint-plugin-import/issues/703\n/* eslint-disable import/export */\nimport {\n ATTR_HTTP_ROUTE,\n ATTR_URL_QUERY,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_TARGET,\n} from '@opentelemetry/semantic-conventions';\nimport type { EventProcessor } from '@sentry/core';\nimport {\n applySdkMetadata,\n debug,\n extractTraceparentData,\n getClient,\n getGlobalScope,\n GLOBAL_OBJ,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n stripUrlQueryAndFragment,\n} from '@sentry/core';\nimport type { NodeClient, NodeOptions } from '@sentry/node';\nimport { getDefaultIntegrations, httpIntegration, init as nodeInit } from '@sentry/node';\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { devErrorSymbolicationEventProcessor } from '../common/devErrorSymbolicationEventProcessor';\nimport { getVercelEnv } from '../common/getVercelEnv';\nimport { ATTR_NEXT_ROUTE, ATTR_NEXT_SPAN_NAME, ATTR_NEXT_SPAN_TYPE } from '../common/nextSpanAttributes';\nimport {\n TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL,\n TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL,\n TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,\n} from '../common/span-attributes-with-logic-attached';\nimport { isBuild } from '../common/utils/isBuild';\nimport { isCloudflareWaitUntilAvailable } from '../common/utils/responseEnd';\nimport { setUrlProcessingMetadata } from '../common/utils/setUrlProcessingMetadata';\nimport { distDirRewriteFramesIntegration } from './distDirRewriteFramesIntegration';\nimport { handleOnSpanStart } from './handleOnSpanStart';\nimport { prepareSafeIdGeneratorContext } from './prepareSafeIdGeneratorContext';\nimport { maybeCompleteCronCheckIn } from './vercelCronsMonitoring';\n\nexport * from '@sentry/node';\n\nexport { captureUnderscoreErrorException } from '../common/pages-router-instrumentation/_error';\n\n// Override core span methods with Next.js-specific implementations that support Cache Components\nexport { startSpan, startSpanManual, startInactiveSpan } from '../common/utils/nextSpan';\n\nconst globalWithInjectedValues = GLOBAL_OBJ as typeof GLOBAL_OBJ & {\n _sentryRewriteFramesDistDir?: string;\n _sentryRewritesTunnelPath?: string;\n _sentryRelease?: string;\n};\n\n/**\n * A passthrough error boundary for the server that doesn't depend on any react. Error boundaries don't catch SSR errors\n * so they should simply be a passthrough.\n */\nexport const ErrorBoundary = (props: React.PropsWithChildren<unknown>): React.ReactNode => {\n if (!props.children) {\n return null;\n }\n\n if (typeof props.children === 'function') {\n return (props.children as () => React.ReactNode)();\n }\n\n // since Next.js >= 10 requires React ^16.6.0 we are allowed to return children like this here\n return props.children as React.ReactNode;\n};\n\n/**\n * A passthrough redux enhancer for the server that doesn't depend on anything from the `@sentry/react` package.\n */\nexport function createReduxEnhancer() {\n return (createStore: unknown) => createStore;\n}\n\n/**\n * A passthrough error boundary wrapper for the server that doesn't depend on any react. Error boundaries don't catch\n * SSR errors so they should simply be a passthrough.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withErrorBoundary<P extends Record<string, any>>(\n WrappedComponent: React.ComponentType<P>,\n): React.FC<P> {\n return WrappedComponent as React.FC<P>;\n}\n\n/**\n * Just a passthrough since we're on the server and showing the report dialog on the server doesn't make any sense.\n */\nexport function showReportDialog(): void {\n return;\n}\n\n/**\n * Returns the runtime configuration for the SDK based on the environment.\n * When running on OpenNext/Cloudflare, returns cloudflare runtime config.\n */\nfunction getCloudflareRuntimeConfig(): { runtime: { name: string } } | undefined {\n if (isCloudflareWaitUntilAvailable()) {\n // todo: add version information?\n return { runtime: { name: 'cloudflare' } };\n }\n return undefined;\n}\n\n/** Inits the Sentry NextJS SDK on node. */\nexport function init(options: NodeOptions): NodeClient | undefined {\n prepareSafeIdGeneratorContext();\n if (isBuild()) {\n return;\n }\n\n if (!DEBUG_BUILD && options.debug) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.',\n );\n }\n\n const customDefaultIntegrations = getDefaultIntegrations(options)\n .filter(integration => integration.name !== 'Http')\n .concat(\n // We are using the HTTP integration without instrumenting incoming HTTP requests because Next.js does that by itself.\n httpIntegration({\n disableIncomingRequestSpans: true,\n }),\n );\n\n // Turn off Next.js' own fetch instrumentation (only when we manage OTEL)\n // https://github.com/lforst/nextjs-fork/blob/1994fd186defda77ad971c36dc3163db263c993f/packages/next/src/server/lib/patch-fetch.ts#L245\n // Enable with custom OTel setup: https://github.com/getsentry/sentry-javascript/issues/17581\n if (!options.skipOpenTelemetrySetup) {\n process.env.NEXT_OTEL_FETCH_DISABLED = '1';\n }\n\n // This value is injected at build time, based on the output directory specified in the build config. Though a default\n // is set there, we set it here as well, just in case something has gone wrong with the injection.\n const distDirName = process.env._sentryRewriteFramesDistDir || globalWithInjectedValues._sentryRewriteFramesDistDir;\n if (distDirName) {\n customDefaultIntegrations.push(distDirRewriteFramesIntegration({ distDirName }));\n }\n\n // Detect if running on OpenNext/Cloudflare and get runtime config\n const cloudflareConfig = getCloudflareRuntimeConfig();\n\n const opts: NodeOptions = {\n environment: process.env.SENTRY_ENVIRONMENT || getVercelEnv(false) || process.env.NODE_ENV,\n release: process.env._sentryRelease || globalWithInjectedValues._sentryRelease,\n defaultIntegrations: customDefaultIntegrations,\n ...options,\n // Override runtime to 'cloudflare' when running on OpenNext/Cloudflare\n ...cloudflareConfig,\n };\n\n if (DEBUG_BUILD && opts.debug) {\n debug.enable();\n }\n\n DEBUG_BUILD && debug.log('Initializing SDK...');\n\n if (sdkAlreadyInitialized()) {\n DEBUG_BUILD && debug.log('SDK already initialized');\n return;\n }\n\n // Use appropriate SDK metadata based on the runtime environment\n applySdkMetadata(opts, 'nextjs', ['nextjs', cloudflareConfig ? 'cloudflare' : 'node']);\n\n const client = nodeInit(opts);\n\n client?.on('beforeSampling', ({ spanAttributes }, samplingDecision) => {\n // There are situations where the Next.js Node.js server forwards requests for the Edge Runtime server (e.g. in\n // middleware) and this causes spans for Sentry ingest requests to be created. These are not exempt from our tracing\n // because we didn't get the chance to do `suppressTracing`, since this happens outside of userland.\n // We need to drop these spans.\n if (\n // eslint-disable-next-line deprecation/deprecation\n (typeof spanAttributes[SEMATTRS_HTTP_TARGET] === 'string' &&\n // eslint-disable-next-line deprecation/deprecation\n spanAttributes[SEMATTRS_HTTP_TARGET].includes('sentry_key') &&\n // eslint-disable-next-line deprecation/deprecation\n spanAttributes[SEMATTRS_HTTP_TARGET].includes('sentry_client')) ||\n (typeof spanAttributes[ATTR_URL_QUERY] === 'string' &&\n spanAttributes[ATTR_URL_QUERY].includes('sentry_key') &&\n spanAttributes[ATTR_URL_QUERY].includes('sentry_client'))\n ) {\n samplingDecision.decision = false;\n }\n });\n\n client?.on('spanStart', handleOnSpanStart);\n client?.on('spanEnd', maybeCompleteCronCheckIn);\n\n getGlobalScope().addEventProcessor(\n Object.assign(\n (event => {\n if (event.type === 'transaction') {\n // Filter out transactions for static assets\n // This regex matches the default path to the static assets (`_next/static`) and could potentially filter out too many transactions.\n // We match `/_next/static/` anywhere in the transaction name because its location may change with the basePath setting.\n if (event.transaction?.match(/^GET (\\/.*)?\\/_next\\/static\\//)) {\n return null;\n }\n\n // Filter out transactions for requests to the tunnel route\n if (\n (globalWithInjectedValues._sentryRewritesTunnelPath &&\n event.transaction === `POST ${globalWithInjectedValues._sentryRewritesTunnelPath}`) ||\n (process.env._sentryRewritesTunnelPath &&\n event.transaction === `POST ${process.env._sentryRewritesTunnelPath}`)\n ) {\n return null;\n }\n\n // Filter out requests to resolve source maps for stack frames in dev mode\n if (event.transaction?.match(/\\/__nextjs_original-stack-frame/)) {\n return null;\n }\n\n // Filter out /404 transactions which seem to be created excessively\n if (\n // Pages router\n event.transaction === '/404' ||\n // App router (could be \"GET /404\", \"POST /404\", ...)\n event.transaction?.match(/^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH) \\/(404|_not-found)$/)\n ) {\n return null;\n }\n\n // Filter transactions that we explicitly want to drop.\n if (event.contexts?.trace?.data?.[TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION]) {\n return null;\n }\n\n // Next.js 13 sometimes names the root transactions like this containing useless tracing.\n if (event.transaction === 'NextServer.getRequestHandler') {\n return null;\n }\n\n // Next.js 13 is not correctly picking up tracing data for trace propagation so we use a back-fill strategy\n if (typeof event.contexts?.trace?.data?.[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL] === 'string') {\n const traceparentData = extractTraceparentData(\n event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL],\n );\n\n if (traceparentData?.parentSampled === false) {\n return null;\n }\n }\n\n return event;\n } else {\n return event;\n }\n }) satisfies EventProcessor,\n { id: 'NextLowQualityTransactionsFilter' },\n ),\n );\n\n getGlobalScope().addEventProcessor(\n Object.assign(\n ((event, hint) => {\n if (event.type !== undefined) {\n return event;\n }\n\n const originalException = hint.originalException;\n\n const isPostponeError =\n typeof originalException === 'object' &&\n originalException !== null &&\n '$$typeof' in originalException &&\n originalException.$$typeof === Symbol.for('react.postpone');\n\n if (isPostponeError) {\n // Postpone errors are used for partial-pre-rendering (PPR)\n return null;\n }\n\n // We don't want to capture suspense errors as they are simply used by React/Next.js for control flow\n const exceptionMessage = event.exception?.values?.[0]?.value;\n if (\n exceptionMessage?.includes('Suspense Exception: This is not a real error!') ||\n exceptionMessage?.includes('Suspense Exception: This is not a real error, and should not leak')\n ) {\n return null;\n }\n\n return event;\n }) satisfies EventProcessor,\n { id: 'DropReactControlFlowErrors' },\n ),\n );\n\n // Use the preprocessEvent hook instead of an event processor, so that the users event processors receive the most\n // up-to-date value, but also so that the logic that detects changes to the transaction names to set the source to\n // \"custom\", doesn't trigger.\n client?.on('preprocessEvent', event => {\n // Enhance route handler transactions\n if (\n event.type === 'transaction' &&\n event.contexts?.trace?.data?.[ATTR_NEXT_SPAN_TYPE] === 'BaseServer.handleRequest'\n ) {\n event.contexts.trace.data[SEMANTIC_ATTRIBUTE_SENTRY_OP] = 'http.server';\n event.contexts.trace.op = 'http.server';\n\n if (event.transaction) {\n event.transaction = stripUrlQueryAndFragment(event.transaction);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const method = event.contexts.trace.data[SEMATTRS_HTTP_METHOD];\n // eslint-disable-next-line deprecation/deprecation\n const target = event.contexts?.trace?.data?.[SEMATTRS_HTTP_TARGET];\n const route = event.contexts.trace.data[ATTR_HTTP_ROUTE] || event.contexts.trace.data[ATTR_NEXT_ROUTE];\n const spanName = event.contexts.trace.data[ATTR_NEXT_SPAN_NAME];\n\n if (typeof method === 'string' && typeof route === 'string' && !route.startsWith('middleware')) {\n const cleanRoute = route.replace(/\\/route$/, '');\n event.transaction = `${method} ${cleanRoute}`;\n event.contexts.trace.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n // Preserve next.route in case it did not get hoisted\n event.contexts.trace.data[ATTR_NEXT_ROUTE] = cleanRoute;\n }\n\n // backfill transaction name for pages that would otherwise contain unparameterized routes\n if (event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL] && event.transaction !== 'GET /_app') {\n event.transaction = `${method} ${event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]}`;\n }\n\n const middlewareMatch =\n typeof spanName === 'string' && spanName.match(/^middleware (GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)/);\n\n if (middlewareMatch) {\n const normalizedName = `middleware ${middlewareMatch[1]}`;\n event.transaction = normalizedName;\n event.contexts.trace.op = 'http.server.middleware';\n }\n\n // Next.js overrides transaction names for page loads that throw an error\n // but we want to keep the original target name\n if (event.transaction === 'GET /_error' && target) {\n event.transaction = `${method ? `${method} ` : ''}${target}`;\n }\n }\n\n // Next.js 13 is not correctly picking up tracing data for trace propagation so we use a back-fill strategy\n if (\n event.type === 'transaction' &&\n typeof event.contexts?.trace?.data?.[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL] === 'string'\n ) {\n const traceparentData = extractTraceparentData(event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);\n\n if (traceparentData?.traceId) {\n event.contexts.trace.trace_id = traceparentData.traceId;\n }\n\n if (traceparentData?.parentSpanId) {\n event.contexts.trace.parent_span_id = traceparentData.parentSpanId;\n }\n }\n\n setUrlProcessingMetadata(event);\n });\n\n if (process.env.NODE_ENV === 'development') {\n getGlobalScope().addEventProcessor(devErrorSymbolicationEventProcessor);\n }\n\n try {\n // @ts-expect-error `process.turbopack` is a magic string that will be replaced by Next.js\n if (process.turbopack) {\n getGlobalScope().setTag('turbopack', true);\n }\n } catch {\n // Noop\n // The statement above can throw because process is not defined on the client\n }\n\n DEBUG_BUILD && debug.log('SDK successfully initialized');\n\n return client;\n}\n\nfunction sdkAlreadyInitialized(): boolean {\n return !!getClient();\n}\n\nexport * from '../common';\n\nexport { wrapApiHandlerWithSentry } from '../common/pages-router-instrumentation/wrapApiHandlerWithSentry';\n"],"names":["nodeInit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;;AA6CA,MAAM,wBAAA,GAA2B;;AAIjC;;AAEA;AACA;AACA;AACA;AACO,MAAM,aAAA,GAAgB,CAAC,KAAK,KAAwD;AAC3F,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACvB,IAAI,OAAO,IAAI;AACf,EAAE;;AAEF,EAAE,IAAI,OAAO,KAAK,CAAC,QAAA,KAAa,UAAU,EAAE;AAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,QAAA,IAAoC;AACtD,EAAE;;AAEF;AACA,EAAE,OAAO,KAAK,CAAC,QAAA;AACf;;AAEA;AACA;AACA;AACO,SAAS,mBAAmB,GAAG;AACtC,EAAE,OAAO,CAAC,WAAW,KAAc,WAAW;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB;AACjC,EAAE,gBAAgB;AAClB,EAAe;AACf,EAAE,OAAO,gBAAA;AACT;;AAEA;AACA;AACA;AACO,SAAS,gBAAgB,GAAS;AACzC,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,SAAS,0BAA0B,GAA8C;AACjF,EAAE,IAAI,8BAA8B,EAAE,EAAE;AACxC;AACA,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAA,EAAa,EAAG;AAC9C,EAAE;AACF,EAAE,OAAO,SAAS;AAClB;;AAEA;AACO,SAAS,IAAI,CAAC,OAAO,EAAuC;AACnE,EAAE,6BAA6B,EAAE;AACjC,EAAE,IAAI,OAAO,EAAE,EAAE;AACjB,IAAI;AACJ,EAAE;;AAEF,EAAE,IAAI,CAAC,WAAA,IAAe,OAAO,CAAC,KAAK,EAAE;AACrC;AACA,IAAI,OAAO,CAAC,IAAI;AAChB,MAAM,wQAAwQ;AAC9Q,KAAK;AACL,EAAE;;AAEF,EAAE,MAAM,yBAAA,GAA4B,sBAAsB,CAAC,OAAO;AAClE,KAAK,MAAM,CAAC,WAAA,IAAe,WAAW,CAAC,IAAA,KAAS,MAAM;AACtD,KAAK,MAAM;AACX;AACA,MAAM,eAAe,CAAC;AACtB,QAAQ,2BAA2B,EAAE,IAAI;AACzC,OAAO,CAAC;AACR,KAAK;;AAEL;AACA;AACA;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACvC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAA,GAA2B,GAAG;AAC9C,EAAE;;AAEF;AACA;AACA,EAAE,MAAM,WAAA,GAAc,OAAO,CAAC,GAAG,CAAC,2BAAA,IAA+B,wBAAwB,CAAC,2BAA2B;AACrH,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,yBAAyB,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,WAAA,EAAa,CAAC,CAAC;AACpF,EAAE;;AAEF;AACA,EAAE,MAAM,gBAAA,GAAmB,0BAA0B,EAAE;;AAEvD,EAAE,MAAM,IAAI,GAAgB;AAC5B,IAAI,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAA,IAAsB,YAAY,CAAC,KAAK,CAAA,IAAK,OAAO,CAAC,GAAG,CAAC,QAAQ;AAC9F,IAAI,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAA,IAAkB,wBAAwB,CAAC,cAAc;AAClF,IAAI,mBAAmB,EAAE,yBAAyB;AAClD,IAAI,GAAG,OAAO;AACd;AACA,IAAI,GAAG,gBAAgB;AACvB,GAAG;;AAEH,EAAE,IAAI,WAAA,IAAe,IAAI,CAAC,KAAK,EAAE;AACjC,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,EAAE;;AAEF,EAAE,eAAe,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;;AAEjD,EAAE,IAAI,qBAAqB,EAAE,EAAE;AAC/B,IAAI,eAAe,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;AACvD,IAAI;AACJ,EAAE;;AAEF;AACA,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,mBAAmB,YAAA,GAAe,MAAM,CAAC,CAAC;;AAExF,EAAE,MAAM,MAAA,GAASA,MAAQ,CAAC,IAAI,CAAC;;AAE/B,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,cAAA,EAAgB,EAAE,gBAAgB,KAAK;AACzE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,MAAM,CAAC,OAAO,cAAc,CAAC,oBAAoB,CAAA,KAAM,QAAA;AACvD;AACA,QAAQ,cAAc,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAA;AAClE;AACA,QAAQ,cAAc,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;AACtE,OAAO,OAAO,cAAc,CAAC,cAAc,CAAA,KAAM,QAAA;AACjD,QAAQ,cAAc,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAA;AAC5D,QAAQ,cAAc,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;AAChE,MAAM;AACN,MAAM,gBAAgB,CAAC,QAAA,GAAW,KAAK;AACvC,IAAI;AACJ,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAC5C,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,wBAAwB,CAAC;;AAEjD,EAAE,cAAc,EAAE,CAAC,iBAAiB;AACpC,IAAI,MAAM,CAAC,MAAM;AACjB,OAAO,SAAS;AAChB,QAAQ,IAAI,KAAK,CAAC,IAAA,KAAS,aAAa,EAAE;AAC1C;AACA;AACA;AACA,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,+BAA+B,CAAC,EAAE;AACzE,YAAY,OAAO,IAAI;AACvB,UAAU;;AAEV;AACA,UAAU;AACV,YAAY,CAAC,wBAAwB,CAAC,yBAAA;AACtC,cAAc,KAAK,CAAC,WAAA,KAAgB,CAAC,KAAK,EAAE,wBAAwB,CAAC,yBAAyB,CAAC,CAAA;AACA,aAAA,OAAA,CAAA,GAAA,CAAA,yBAAA;AACA,cAAA,KAAA,CAAA,WAAA,KAAA,CAAA,KAAA,EAAA,OAAA,CAAA,GAAA,CAAA,yBAAA,CAAA,CAAA;AACA,YAAA;AACA,YAAA,OAAA,IAAA;AACA,UAAA;;AAEA;AACA,UAAA,IAAA,KAAA,CAAA,WAAA,EAAA,KAAA,CAAA,iCAAA,CAAA,EAAA;AACA,YAAA,OAAA,IAAA;AACA,UAAA;;AAEA;AACA,UAAA;AACA;AACA,YAAA,KAAA,CAAA,WAAA,KAAA,MAAA;AACA;AACA,YAAA,KAAA,CAAA,WAAA,EAAA,KAAA,CAAA,6EAAA;AACA,YAAA;AACA,YAAA,OAAA,IAAA;AACA,UAAA;;AAEA;AACA,UAAA,IAAA,KAAA,CAAA,QAAA,EAAA,KAAA,EAAA,IAAA,GAAA,wCAAA,CAAA,EAAA;AACA,YAAA,OAAA,IAAA;AACA,UAAA;;AAEA;AACA,UAAA,IAAA,KAAA,CAAA,WAAA,KAAA,8BAAA,EAAA;AACA,YAAA,OAAA,IAAA;AACA,UAAA;;AAEA;AACA,UAAA,IAAA,OAAA,KAAA,CAAA,QAAA,EAAA,KAAA,EAAA,IAAA,GAAA,sCAAA,CAAA,KAAA,QAAA,EAAA;AACA,YAAA,MAAA,eAAA,GAAA,sBAAA;AACA,cAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,sCAAA,CAAA;AACA,aAAA;;AAEA,YAAA,IAAA,eAAA,EAAA,aAAA,KAAA,KAAA,EAAA;AACA,cAAA,OAAA,IAAA;AACA,YAAA;AACA,UAAA;;AAEA,UAAA,OAAA,KAAA;AACA,QAAA,CAAA,MAAA;AACA,UAAA,OAAA,KAAA;AACA,QAAA;AACA,MAAA,CAAA;AACA,MAAA,EAAA,EAAA,EAAA,kCAAA,EAAA;AACA,KAAA;AACA,GAAA;;AAEA,EAAA,cAAA,EAAA,CAAA,iBAAA;AACA,IAAA,MAAA,CAAA,MAAA;AACA,OAAA,CAAA,KAAA,EAAA,IAAA,KAAA;AACA,QAAA,IAAA,KAAA,CAAA,IAAA,KAAA,SAAA,EAAA;AACA,UAAA,OAAA,KAAA;AACA,QAAA;;AAEA,QAAA,MAAA,iBAAA,GAAA,IAAA,CAAA,iBAAA;;AAEA,QAAA,MAAA,eAAA;AACA,UAAA,OAAA,iBAAA,KAAA,QAAA;AACA,UAAA,iBAAA,KAAA,IAAA;AACA,UAAA,UAAA,IAAA,iBAAA;AACA,UAAA,iBAAA,CAAA,QAAA,KAAA,MAAA,CAAA,GAAA,CAAA,gBAAA,CAAA;;AAEA,QAAA,IAAA,eAAA,EAAA;AACA;AACA,UAAA,OAAA,IAAA;AACA,QAAA;;AAEA;AACA,QAAA,MAAA,gBAAA,GAAA,KAAA,CAAA,SAAA,EAAA,MAAA,GAAA,CAAA,CAAA,EAAA,KAAA;AACA,QAAA;AACA,UAAA,gBAAA,EAAA,QAAA,CAAA,+CAAA,CAAA;AACA,UAAA,gBAAA,EAAA,QAAA,CAAA,mEAAA;AACA,UAAA;AACA,UAAA,OAAA,IAAA;AACA,QAAA;;AAEA,QAAA,OAAA,KAAA;AACA,MAAA,CAAA;AACA,MAAA,EAAA,EAAA,EAAA,4BAAA,EAAA;AACA,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA,EAAA,MAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,KAAA,IAAA;AACA;AACA,IAAA;AACA,MAAA,KAAA,CAAA,IAAA,KAAA,aAAA;AACA,MAAA,KAAA,CAAA,QAAA,EAAA,KAAA,EAAA,IAAA,GAAA,mBAAA,CAAA,KAAA;AACA,MAAA;AACA,MAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,4BAAA,CAAA,GAAA,aAAA;AACA,MAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,EAAA,GAAA,aAAA;;AAEA,MAAA,IAAA,KAAA,CAAA,WAAA,EAAA;AACA,QAAA,KAAA,CAAA,WAAA,GAAA,wBAAA,CAAA,KAAA,CAAA,WAAA,CAAA;AACA,MAAA;;AAEA;AACA,MAAA,MAAA,MAAA,GAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,oBAAA,CAAA;AACA;AACA,MAAA,MAAA,MAAA,GAAA,KAAA,CAAA,QAAA,EAAA,KAAA,EAAA,IAAA,GAAA,oBAAA,CAAA;AACA,MAAA,MAAA,KAAA,GAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,eAAA,CAAA,IAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,eAAA,CAAA;AACA,MAAA,MAAA,QAAA,GAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,mBAAA,CAAA;;AAEA,MAAA,IAAA,OAAA,MAAA,KAAA,QAAA,IAAA,OAAA,KAAA,KAAA,QAAA,IAAA,CAAA,KAAA,CAAA,UAAA,CAAA,YAAA,CAAA,EAAA;AACA,QAAA,MAAA,UAAA,GAAA,KAAA,CAAA,OAAA,CAAA,UAAA,EAAA,EAAA,CAAA;AACA,QAAA,KAAA,CAAA,WAAA,GAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,gCAAA,CAAA,GAAA,OAAA;AACA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,eAAA,CAAA,GAAA,UAAA;AACA,MAAA;;AAEA;AACA,MAAA,IAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,sCAAA,CAAA,IAAA,KAAA,CAAA,WAAA,KAAA,WAAA,EAAA;AACA,QAAA,KAAA,CAAA,WAAA,GAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,sCAAA,CAAA,CAAA,CAAA;AACA,MAAA;;AAEA,MAAA,MAAA,eAAA;AACA,QAAA,OAAA,QAAA,KAAA,QAAA,IAAA,QAAA,CAAA,KAAA,CAAA,sDAAA,CAAA;;AAEA,MAAA,IAAA,eAAA,EAAA;AACA,QAAA,MAAA,cAAA,GAAA,CAAA,WAAA,EAAA,eAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,QAAA,KAAA,CAAA,WAAA,GAAA,cAAA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,EAAA,GAAA,wBAAA;AACA,MAAA;;AAEA;AACA;AACA,MAAA,IAAA,KAAA,CAAA,WAAA,KAAA,aAAA,IAAA,MAAA,EAAA;AACA,QAAA,KAAA,CAAA,WAAA,GAAA,CAAA,EAAA,MAAA,GAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AACA,MAAA;AACA,IAAA;;AAEA;AACA,IAAA;AACA,MAAA,KAAA,CAAA,IAAA,KAAA,aAAA;AACA,MAAA,OAAA,KAAA,CAAA,QAAA,EAAA,KAAA,EAAA,IAAA,GAAA,sCAAA,CAAA,KAAA;AACA,MAAA;AACA,MAAA,MAAA,eAAA,GAAA,sBAAA,CAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,IAAA,CAAA,sCAAA,CAAA,CAAA;;AAEA,MAAA,IAAA,eAAA,EAAA,OAAA,EAAA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,QAAA,GAAA,eAAA,CAAA,OAAA;AACA,MAAA;;AAEA,MAAA,IAAA,eAAA,EAAA,YAAA,EAAA;AACA,QAAA,KAAA,CAAA,QAAA,CAAA,KAAA,CAAA,cAAA,GAAA,eAAA,CAAA,YAAA;AACA,MAAA;AACA,IAAA;;AAEA,IAAA,wBAAA,CAAA,KAAA,CAAA;AACA,EAAA,CAAA,CAAA;;AAEA,EAAA,IAAA,OAAA,CAAA,GAAA,CAAA,QAAA,KAAA,aAAA,EAAA;AACA,IAAA,cAAA,EAAA,CAAA,iBAAA,CAAA,mCAAA,CAAA;AACA,EAAA;;AAEA,EAAA,IAAA;AACA;AACA,IAAA,IAAA,OAAA,CAAA,SAAA,EAAA;AACA,MAAA,cAAA,EAAA,CAAA,MAAA,CAAA,WAAA,EAAA,IAAA,CAAA;AACA,IAAA;AACA,EAAA,CAAA,CAAA,MAAA;AACA;AACA;AACA,EAAA;;AAEA,EAAA,WAAA,IAAA,KAAA,CAAA,GAAA,CAAA,8BAAA,CAAA;;AAEA,EAAA,OAAA,MAAA;AACA;;AAEA,SAAA,qBAAA,GAAA;AACA,EAAA,OAAA,CAAA,CAAA,SAAA,EAAA;AACA;;;;"}