{"version":3,"file":"tanstack-angular-router-experimental.mjs","sources":["../../../projects/router/src/lib/distinct-until-ref-changed.ts","../../../projects/router/src/lib/default-not-found.ts","../../../projects/router/src/lib/is-dev-mode.ts","../../../projects/router/src/lib/router.ts","../../../projects/router/src/lib/router-state.ts","../../../projects/router/src/lib/outlet.ts","../../../projects/router/src/lib/match.ts","../../../projects/router/src/lib/loader-data.ts","../../../projects/router/src/lib/loader-deps.ts","../../../projects/router/src/lib/params.ts","../../../projects/router/src/lib/route-context.ts","../../../projects/router/src/lib/search.ts","../../../projects/router/src/lib/route.ts","../../../projects/router/src/lib/default-error.ts","../../../projects/router/src/lib/transitioner.ts","../../../projects/router/src/lib/matches.ts","../../../projects/router/src/lib/link.ts","../../../projects/router/src/lib/match-route.ts","../../../projects/router/src/lib/file-route.ts","../../../projects/router/src/lib/router-root.ts","../../../projects/router/src/lib/can-go-back.ts","../../../projects/router/src/lib/location.ts","../../../projects/router/src/lib/router-devtools.ts","../../../projects/router/src/tanstack-angular-router-experimental.ts"],"sourcesContent":["import { distinctUntilChanged } from 'rxjs';\n\nexport function distinctUntilRefChanged<T>() {\n  return distinctUntilChanged<T>(Object.is);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'default-not-found,DefaultNotFound',\n  template: `\n    <p>Page not found</p>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { style: 'display: contents;' },\n})\nexport class DefaultNotFound {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n} from '@angular/core';\n\nexport function isDevMode({ injector }: { injector?: Injector } = {}) {\n  !injector && assertInInjectionContext(isDevMode);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const document = inject(DOCUMENT);\n    const window = document.defaultView;\n    return !!window && 'ng' in window;\n  });\n}\n","import {\n  ApplicationRef,\n  createEnvironmentInjector,\n  EnvironmentInjector,\n  inject,\n  InjectionToken,\n  Injector,\n  type Provider,\n} from '@angular/core';\nimport type { HistoryLocation, RouterHistory } from '@tanstack/history';\nimport {\n  type AnyRoute,\n  type AnyRouter,\n  type CreateRouterFn,\n  rootRouteId,\n  type RouterConstructorOptions,\n  RouterCore,\n  type RouterState,\n  type TrailingSlashOption,\n} from '@tanstack/router-core';\nimport { BehaviorSubject, type Observable } from 'rxjs';\nimport type { RouteComponent } from './route';\n\ndeclare module '@tanstack/history' {\n  interface HistoryState {\n    __tempLocation?: HistoryLocation;\n    __tempKey?: string;\n    __hashScrollIntoViewOptions?: boolean | ScrollIntoViewOptions;\n  }\n}\n\ndeclare module '@tanstack/router-core' {\n  export interface RouterOptionsExtensions {\n    /**\n     * The default `component` a route should use if no component is provided.\n     *\n     * @default Outlet\n     * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultcomponent-property)\n     */\n    defaultComponent?: () => RouteComponent;\n    /**\n     * The default `errorComponent` a route should use if no error component is provided.\n     *\n     * @default ErrorComponent\n     * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaulterrorcomponent-property)\n     * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)\n     */\n    defaultErrorComponent?: () => RouteComponent;\n    /**\n     * The default `pendingComponent` a route should use if no pending component is provided.\n     *\n     * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultpendingcomponent-property)\n     * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#showing-a-pending-component)\n     */\n    defaultPendingComponent?: () => RouteComponent;\n    /**\n     * The default `notFoundComponent` a route should use if no notFound component is provided.\n     *\n     * @default NotFound\n     * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultnotfoundcomponent-property)\n     * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/not-found-errors#default-router-wide-not-found-handling)\n     */\n    defaultNotFoundComponent?: () => RouteComponent;\n    /**\n     * The default `onCatch` handler for errors caught by the Router ErrorBoundary\n     *\n     * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)\n     * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)\n     */\n    defaultOnCatch?: (error: Error) => void;\n  }\n}\n\nexport const ROUTER = new InjectionToken<NgRouter<AnyRoute>>('ROUTER');\nexport const ROUTER_STATE = new InjectionToken<\n  Observable<RouterState<AnyRoute>>\n>('ROUTER_STATE');\n\nexport function injectRouter() {\n  return inject(ROUTER);\n}\n\nexport function injectRouterState() {\n  return inject(ROUTER_STATE);\n}\n\nexport function provideRouter(router: AnyRouter) {\n  return [\n    { provide: ROUTER, useValue: router },\n    {\n      provide: ROUTER_STATE,\n      useFactory: () => {\n        const state = new BehaviorSubject(router.state);\n        const appRef = inject(ApplicationRef);\n\n        const unsub = router.__store.subscribe(({ currentVal }) => {\n          state.next(currentVal);\n        });\n\n        appRef.onDestroy(() => {\n          state.complete();\n          unsub();\n        });\n\n        return state.asObservable();\n      },\n    },\n  ];\n}\n\nexport const createRouter: CreateRouterFn = (options) => {\n  return new NgRouter(options);\n};\n\nexport class NgRouter<\n  in out TRouteTree extends AnyRoute,\n  in out TTrailingSlashOption extends TrailingSlashOption = 'never',\n  in out TDefaultStructuralSharingOption extends boolean = false,\n  in out TRouterHistory extends RouterHistory = RouterHistory,\n  in out TDehydrated extends Record<string, any> = Record<string, any>,\n> extends RouterCore<\n  TRouteTree,\n  TTrailingSlashOption,\n  TDefaultStructuralSharingOption,\n  TRouterHistory,\n  TDehydrated\n> {\n  private injectors = new Map<string, Injector>();\n  private envInjectors = new Map<string, EnvironmentInjector>();\n\n  constructor(\n    options: RouterConstructorOptions<\n      TRouteTree,\n      TTrailingSlashOption,\n      TDefaultStructuralSharingOption,\n      TRouterHistory,\n      TDehydrated\n    >\n  ) {\n    super(options);\n  }\n\n  getRouteInjector(\n    routeId: string,\n    parent: Injector,\n    providers: Provider[] = []\n  ) {\n    const existingInjector = this.injectors.get(routeId);\n    if (existingInjector) return existingInjector;\n\n    const injector = Injector.create({\n      providers,\n      parent,\n      name: routeId,\n    });\n\n    // cache\n    this.injectors.set(routeId, injector);\n    return injector;\n  }\n\n  getRouteEnvInjector(\n    routeId: string,\n    parent: EnvironmentInjector,\n    providers: Provider[] = [],\n    router: AnyRouter\n  ) {\n    const existingInjector = this.envInjectors.get(routeId);\n    if (existingInjector) return existingInjector;\n\n    let route = router.routesById[routeId] || router.routesByPath[routeId];\n\n    // walk up the route hierarchy to build the providers\n    while (route) {\n      if (route.options?.providers) {\n        providers.push(...route.options.providers);\n      }\n\n      const parentInjector = route.parentRoute\n        ? this.envInjectors.get(route.parentRoute.id)\n        : null;\n\n      if (parentInjector) {\n        parent = parentInjector;\n        break;\n      }\n\n      route = route.parentRoute;\n    }\n\n    const envInjector = createEnvironmentInjector(providers, parent, routeId);\n\n    // if routeId is rootRouteId, we'll switch existing injectors' parent to the __root__ injector\n    if (routeId === rootRouteId) {\n      this.envInjectors.forEach((ele) => {\n        if ('parent' in ele && ele.parent === parent) {\n          ele.parent = envInjector;\n        }\n      });\n    }\n\n    // cache\n    this.envInjectors.set(routeId, envInjector);\n    return envInjector;\n  }\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n  type ValueEqualityFn,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  type AnyRouter,\n  type RegisteredRouter,\n  type RouterState,\n  shallow,\n} from '@tanstack/router-core';\nimport { distinctUntilChanged, map, Observable } from 'rxjs';\nimport { injectRouterState } from './router';\n\nexport type RouterStateResult<\n  TRouter extends AnyRouter,\n  TSelected,\n> = unknown extends TSelected ? RouterState<TRouter['routeTree']> : TSelected;\n\nexport type RouterStateOptions<TRouter extends AnyRouter, TSelected> = {\n  select?: (state: RouterState<TRouter['routeTree']>) => TSelected;\n  equal?: ValueEqualityFn<\n    RouterStateResult<NoInfer<TRouter>, NoInfer<TSelected>>\n  >;\n  injector?: Injector;\n};\n\nexport function routerState$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  select,\n  injector,\n  equal = shallow,\n}: RouterStateOptions<TRouter, TSelected>) {\n  !injector && assertInInjectionContext(routerState$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const rootRouterState = injectRouterState();\n    if (select)\n      return rootRouterState.pipe(\n        map((s) => select(s) as any),\n        distinctUntilChanged(equal)\n      );\n    return rootRouterState.pipe(distinctUntilChanged(equal) as any);\n  }) as Observable<RouterStateResult<TRouter, TSelected>>;\n}\n\nexport function routerState<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  select,\n  injector,\n  equal = shallow,\n}: RouterStateOptions<TRouter, TSelected> = {}) {\n  !injector && assertInInjectionContext(routerState);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () =>\n    toSignal(routerState$({ select, injector, equal }), { injector })\n  ) as Signal<RouterStateResult<TRouter, TSelected>>;\n}\n","import {\n  afterNextRender,\n  ChangeDetectionStrategy,\n  Component,\n  ComponentRef,\n  DestroyRef,\n  Directive,\n  EnvironmentInjector,\n  inject,\n  InjectionToken,\n  Injector,\n  input,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport {\n  createControlledPromise,\n  getLocationChangeInfo,\n  isNotFound,\n  isRedirect,\n  pick,\n  rootRouteId,\n} from '@tanstack/router-core';\nimport {\n  catchError,\n  combineLatest,\n  distinctUntilChanged,\n  filter,\n  map,\n  of,\n  Subscription,\n  switchMap,\n  throwError,\n  withLatestFrom,\n} from 'rxjs';\nimport invariant from 'tiny-invariant';\nimport warning from 'tiny-warning';\nimport { DefaultError } from './default-error';\nimport { DefaultNotFound } from './default-not-found';\nimport { distinctUntilRefChanged } from './distinct-until-ref-changed';\nimport { isDevMode } from './is-dev-mode';\nimport { ERROR_COMPONENT_CONTEXT, NOT_FOUND_COMPONENT_CONTEXT } from './route';\nimport { injectRouter } from './router';\nimport { routerState$ } from './router-state';\n\n@Directive()\nexport class OnRendered {\n  private match = inject(RouteMatch);\n  private router = injectRouter();\n\n  private parentRouteId$ = combineLatest([\n    this.match.matchId$,\n    routerState$({ select: (s) => s.matches }),\n  ]).pipe(\n    map(\n      ([matchId, matches]) =>\n        matches.find((d) => d.id === matchId)?.routeId as string\n    ),\n    distinctUntilRefChanged()\n  );\n  private location$ = routerState$({\n    select: (s) => s.resolvedLocation?.state.key,\n  });\n\n  constructor() {\n    let subscription: Subscription;\n    afterNextRender(() => {\n      subscription = combineLatest([\n        this.parentRouteId$,\n        this.location$,\n      ]).subscribe(([parentRouteId]) => {\n        if (!parentRouteId || parentRouteId !== rootRouteId) return;\n        this.router.emit({\n          type: 'onRendered',\n          ...getLocationChangeInfo(this.router.state),\n        });\n      });\n    });\n\n    inject(DestroyRef).onDestroy(() => {\n      subscription?.unsubscribe();\n    });\n  }\n}\n\nexport const MATCH_ID = new InjectionToken<string>('MATCH_ID');\n\n@Component({\n  selector: 'route-match,RouteMatch',\n  template: ``,\n  hostDirectives: [OnRendered],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[attr.data-matchId]': 'matchId()',\n  },\n})\nexport class RouteMatch {\n  matchId = input.required<string>();\n\n  private isDevMode = isDevMode();\n  private router = injectRouter();\n  private vcr = inject(ViewContainerRef);\n  private injector = inject(Injector);\n  private environmentInjector = inject(EnvironmentInjector);\n\n  matchId$ = toObservable(this.matchId);\n  private resetKey$ = routerState$({ select: (s) => s.loadedAt.toString() });\n  private matches$ = routerState$({ select: (s) => s.matches });\n  private routeId$ = combineLatest([this.matchId$, this.matches$]).pipe(\n    map(\n      ([matchId, matches]) =>\n        matches.find((d) => d.id === matchId)?.routeId as string\n    ),\n    distinctUntilRefChanged()\n  );\n\n  private route$ = this.routeId$.pipe(\n    map((routeId) => this.router.routesById[routeId]),\n    distinctUntilRefChanged()\n  );\n  private pendingComponent$ = this.route$.pipe(\n    map(\n      (route) =>\n        route.options.pendingComponent ||\n        this.router.options.defaultPendingComponent\n    ),\n    distinctUntilRefChanged()\n  );\n  private errorComponent$ = this.route$.pipe(\n    map(\n      (route) =>\n        route.options.errorComponent ||\n        this.router.options.defaultErrorComponent\n    ),\n    distinctUntilRefChanged()\n  );\n  private onCatch$ = this.route$.pipe(\n    map((route) => route.options.onCatch || this.router.options.defaultOnCatch),\n    distinctUntilRefChanged()\n  );\n\n  private matchIndex$ = combineLatest([this.matchId$, this.matches$]).pipe(\n    map(([matchId, matches]) => matches.findIndex((d) => d.id === matchId)),\n    distinctUntilRefChanged()\n  );\n  private matchState$ = combineLatest([this.matchIndex$, this.matches$]).pipe(\n    map(([matchIndex, matches]) => matches[matchIndex]),\n    filter((match) => !!match),\n    map((match) => ({\n      routeId: match.routeId as string,\n      match: pick(match, ['id', 'status', 'error']),\n    }))\n  );\n\n  private matchRoute$ = this.matchState$.pipe(\n    map(({ routeId }) => this.router.routesById[routeId]),\n    distinctUntilRefChanged()\n  );\n  private match$ = this.matchState$.pipe(\n    map(({ match }) => match),\n    distinctUntilChanged(\n      (a, b) => !!a && !!b && a.id === b.id && a.status === b.status\n    )\n  );\n  private matchLoad$ = this.match$.pipe(\n    withLatestFrom(this.matchRoute$),\n    switchMap(([match, matchRoute]) => {\n      const loadPromise = this.router.getMatch(match.id)?.loadPromise;\n      if (!loadPromise) return Promise.resolve() as any;\n\n      if (match.status === 'pending') {\n        const pendingMinMs =\n          matchRoute.options.pendingMinMs ??\n          this.router.options.defaultPendingMinMs;\n        let minPendingPromise = this.router.getMatch(\n          match.id\n        )?.minPendingPromise;\n\n        if (pendingMinMs && !minPendingPromise) {\n          // Create a promise that will resolve after the minPendingMs\n          if (!this.router.isServer) {\n            minPendingPromise = createControlledPromise<void>();\n            Promise.resolve().then(() => {\n              this.router.updateMatch(match.id, (prev) => ({\n                ...prev,\n                minPendingPromise,\n              }));\n            });\n\n            setTimeout(() => {\n              minPendingPromise?.resolve();\n              // We've handled the minPendingPromise, so we can delete it\n              this.router.updateMatch(match.id, (prev) => ({\n                ...prev,\n                minPendingPromise: undefined,\n              }));\n            }, pendingMinMs);\n          }\n        }\n\n        return minPendingPromise?.then(() => loadPromise) || loadPromise;\n      }\n\n      return loadPromise;\n    }),\n    distinctUntilRefChanged()\n  );\n\n  private run$ = this.routeId$.pipe(\n    switchMap((routeId) => {\n      invariant(\n        routeId,\n        `Could not find routeId for matchId \"${this.matchId()}\". Please file an issue!`\n      );\n      return combineLatest([\n        this.match$,\n        this.matchRoute$,\n        this.resetKey$,\n      ]).pipe(\n        switchMap(([match, route]) => {\n          if (match.status === 'notFound') {\n            invariant(isNotFound(match.error), 'Expected a notFound error');\n            let notFoundCmp: Type<any> | undefined;\n            if (!route.options.notFoundComponent) {\n              notFoundCmp = this.router.options.defaultNotFoundComponent?.();\n              if (!notFoundCmp) {\n                if (this.isDevMode) {\n                  warning(\n                    route.options.notFoundComponent,\n                    `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Page not found</p>)`\n                  );\n                }\n                notFoundCmp = DefaultNotFound;\n              }\n            } else {\n              notFoundCmp = route.options.notFoundComponent?.();\n            }\n\n            if (!notFoundCmp) return of(null);\n\n            const injector = this.router.getRouteInjector(\n              route.id + '-not-found',\n              this.injector,\n              [{ provide: NOT_FOUND_COMPONENT_CONTEXT, useValue: {} }]\n            );\n            return of({\n              component: notFoundCmp,\n              injector,\n              environmentInjector: null,\n              clearView: true,\n            } as const);\n          }\n\n          if (match.status === 'redirected' || match.status === 'pending') {\n            if (match.status === 'redirected') {\n              invariant(isRedirect(match.error), 'Expected a redirect error');\n            }\n\n            return this.matchLoad$.pipe(\n              withLatestFrom(this.pendingComponent$),\n              switchMap(([, pendingComponent]) => {\n                const pendingCmp = pendingComponent?.();\n                if (!pendingCmp) return of(null);\n                return of({\n                  component: pendingCmp,\n                  injector: null,\n                  environmentInjector: null,\n                  clearView: true,\n                } as const);\n              })\n            );\n          }\n\n          if (match.status === 'error') {\n            return of(null).pipe(\n              withLatestFrom(this.errorComponent$),\n              switchMap(([, errorComponent]) => {\n                const errorCmp = errorComponent?.() || DefaultError;\n                const injector = this.router.getRouteInjector(\n                  route.id + '-error',\n                  this.injector,\n                  [\n                    {\n                      provide: ERROR_COMPONENT_CONTEXT,\n                      useValue: {\n                        error: match.error,\n                        info: { componentStack: '' },\n                        reset: () => void this.router.invalidate(),\n                      },\n                    },\n                  ]\n                );\n                return of({\n                  component: errorCmp,\n                  injector,\n                  environmentInjector: null,\n                  clearView: true,\n                } as const);\n              })\n            );\n          }\n\n          if (match.status === 'success') {\n            const successComponent = route.options.component?.() || Outlet;\n\n            if (this.cmp === successComponent) {\n              return of({ clearView: false } as const);\n            }\n\n            this.cmpRef = undefined;\n            this.cmp = successComponent;\n            const injector = this.router.getRouteInjector(\n              route.id,\n              this.injector\n            );\n            const environmentInjector = this.router.getRouteEnvInjector(\n              route.id,\n              this.environmentInjector,\n              route.options.providers || [],\n              this.router\n            );\n\n            return of({\n              component: successComponent,\n              injector: Injector.create({\n                providers: [{ provide: MATCH_ID, useValue: match.id }],\n                parent: injector,\n              }),\n              environmentInjector,\n              clearView: true,\n            } as const);\n          }\n\n          return of(null);\n        })\n      );\n    }),\n    catchError((error) =>\n      of(null).pipe(\n        withLatestFrom(this.onCatch$),\n        switchMap(([, onCatch]) => throwError(() => [error, onCatch]))\n      )\n    )\n  );\n\n  private cmp?: Type<any>;\n  private cmpRef?: ComponentRef<any>;\n\n  constructor() {\n    let subscription: Subscription;\n\n    afterNextRender(() => {\n      subscription = this.run$.subscribe({\n        next: (runData) => {\n          if (!runData) return;\n          if (!runData.clearView) {\n            this.cmpRef?.changeDetectorRef.markForCheck();\n            return;\n          }\n          const { component, injector, environmentInjector } = runData;\n          this.vcr.clear();\n\n          this.cmpRef = this.vcr.createComponent(component, {\n            injector: injector || undefined,\n            environmentInjector: environmentInjector || undefined,\n          });\n          this.cmpRef.changeDetectorRef.markForCheck();\n        },\n        error: (error) => {\n          if (Array.isArray(error)) {\n            const [errorToThrow, onCatch] = error;\n            if (onCatch) onCatch(errorToThrow);\n            console.error(errorToThrow);\n            return;\n          }\n          console.error(error);\n        },\n      });\n    });\n\n    inject(DestroyRef).onDestroy(() => {\n      subscription?.unsubscribe();\n      this.vcr.clear();\n      this.cmp = undefined;\n      this.cmpRef = undefined;\n    });\n  }\n}\n\n@Component({\n  selector: 'outlet,Outlet',\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Outlet {\n  private matchId = inject(MATCH_ID);\n  private router = injectRouter();\n  private vcr = inject(ViewContainerRef);\n  private isDevMode = isDevMode();\n\n  protected readonly defaultPendingComponent =\n    this.router.options.defaultPendingComponent?.();\n\n  private matches$ = routerState$({ select: (s) => s.matches });\n  private routeId$ = this.matches$.pipe(\n    map(\n      (matches) => matches.find((d) => d.id === this.matchId)?.routeId as string\n    ),\n    distinctUntilRefChanged()\n  );\n  private route$ = this.routeId$.pipe(\n    map((routeId) => this.router.routesById[routeId]),\n    distinctUntilRefChanged()\n  );\n  private parentGlobalNotFound$ = this.matches$.pipe(\n    map((matches) => {\n      const parentMatch = matches.find((d) => d.id === this.matchId);\n      if (!parentMatch) {\n        warning(\n          false,\n          `Could not find parent match for matchId \"${this.matchId}\". Please file an issue!`\n        );\n        return false;\n      }\n      return parentMatch.globalNotFound;\n    })\n  );\n\n  private childMatchId$ = this.matches$.pipe(\n    map((matches) => {\n      const index = matches.findIndex((d) => d.id === this.matchId);\n      if (index === -1) return null;\n      return matches[index + 1]?.id;\n    }),\n    distinctUntilRefChanged()\n  );\n  private matchLoad$ = this.childMatchId$.pipe(\n    switchMap((childMatchId) => {\n      if (!childMatchId) return Promise.resolve() as any;\n      const loadPromise = this.router.getMatch(childMatchId)?.loadPromise;\n      if (!loadPromise) return Promise.resolve() as any;\n      return loadPromise;\n    })\n  );\n\n  private renderedId?: string;\n  private cmpRef?: ComponentRef<any>;\n\n  private run$ = combineLatest([\n    this.parentGlobalNotFound$,\n    this.childMatchId$,\n  ]).pipe(\n    switchMap(([parentGlobalNotFound, childMatchId]) => {\n      if (parentGlobalNotFound) {\n        return this.route$.pipe(\n          map((route) => {\n            let notFoundCmp: Type<any> | undefined = undefined;\n\n            if (!route.options.notFoundComponent) {\n              notFoundCmp = this.router.options.defaultNotFoundComponent?.();\n              if (!notFoundCmp) {\n                if (this.isDevMode) {\n                  warning(\n                    route.options.notFoundComponent,\n                    `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Page not found</p>)`\n                  );\n                }\n                notFoundCmp = DefaultNotFound;\n              }\n            } else {\n              notFoundCmp = route.options.notFoundComponent?.();\n            }\n\n            if (!notFoundCmp) return null;\n\n            this.renderedId = route.id + '-not-found';\n            const injector = this.router.getRouteInjector(\n              route.id + '-not-found',\n              this.vcr.injector,\n              [{ provide: NOT_FOUND_COMPONENT_CONTEXT, useValue: {} }]\n            );\n            return {\n              component: notFoundCmp,\n              injector,\n              clearView: true,\n              childMatchId: null,\n            } as const;\n          })\n        );\n      }\n\n      if (!childMatchId) return of(null);\n\n      if (this.renderedId === childMatchId) {\n        return of({ clearView: false } as const);\n      }\n\n      this.cmpRef = undefined;\n\n      if (childMatchId === rootRouteId) {\n        return this.matchLoad$.pipe(\n          map(() => {\n            return {\n              component: this.defaultPendingComponent,\n              injector: null,\n              clearView: true,\n              childMatchId: null,\n            } as const;\n          })\n        );\n      }\n\n      this.renderedId = childMatchId;\n      return of({\n        component: RouteMatch,\n        injector: null,\n        clearView: true,\n        childMatchId,\n      } as const);\n    }),\n    catchError((error) => throwError(() => error))\n  );\n\n  constructor() {\n    let subscription: Subscription;\n    afterNextRender(() => {\n      subscription = this.run$.subscribe({\n        next: (runData) => {\n          if (!runData) return;\n          if (!runData.clearView) {\n            this.cmpRef?.changeDetectorRef.markForCheck();\n            return;\n          }\n          const { component, injector, childMatchId } = runData;\n          this.vcr.clear();\n          if (!component) return;\n          this.cmpRef = this.vcr.createComponent(component, {\n            injector: injector || undefined,\n          });\n          if (childMatchId) {\n            this.cmpRef.setInput('matchId', childMatchId);\n          }\n          this.cmpRef.changeDetectorRef.markForCheck();\n        },\n        error: (error) => {\n          console.error(error);\n        },\n      });\n    });\n\n    inject(DestroyRef).onDestroy(() => {\n      subscription?.unsubscribe();\n      this.vcr.clear();\n      this.cmpRef = undefined;\n      this.renderedId = undefined;\n    });\n  }\n}\n","import {\n  assertInInjectionContext,\n  computed,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  MakeRouteMatch,\n  MakeRouteMatchUnion,\n  RegisteredRouter,\n  StrictOrFrom,\n  ThrowConstraint,\n  ThrowOrOptional,\n} from '@tanstack/router-core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport invariant from 'tiny-invariant';\nimport { MATCH_ID } from './outlet';\nimport { routerState$ } from './router-state';\n\nexport interface MatchBaseOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> {\n  select?: (\n    match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n  ) => TSelected;\n  shouldThrow?: TThrow;\n  injector?: Injector;\n}\n\nexport type MatchRoute<TObservable extends boolean, out TFrom> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: MatchBaseOptions<TRouter, TFrom, true, true, TSelected>\n) => TObservable extends true\n  ? Observable<MatchResult<TRouter, TFrom, true, TSelected>>\n  : Signal<MatchResult<TRouter, TFrom, true, TSelected>>;\n\nexport type MatchOptions<\n  TRouter extends AnyRouter,\n  TFrom extends string | undefined,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n  MatchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;\n\nexport type MatchResult<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TSelected,\n> = unknown extends TSelected\n  ? TStrict extends true\n    ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n    : MakeRouteMatchUnion<TRouter>\n  : TSelected;\n\nexport function match$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: MatchOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Observable<\n  ThrowOrOptional<MatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(match$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const closestMatchId = inject(MATCH_ID, { optional: true });\n    const nearestMatchId = computed(() => {\n      if (opts.from) return null;\n      return closestMatchId;\n    });\n\n    return combineLatest([\n      routerState$({ select: (s) => s.matches, injector }),\n      toObservable(nearestMatchId),\n    ]).pipe(\n      map(([matches, matchId]) => {\n        const match = matches.find((d) => {\n          return opts.from ? opts.from === d.routeId : d.id === matchId;\n        });\n        invariant(\n          !((opts.shouldThrow ?? true) && !match),\n          `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`\n        );\n        if (match === undefined) {\n          return undefined;\n        }\n\n        return opts.select ? opts.select(match) : match;\n      })\n    ) as any;\n  });\n}\n\nexport function match<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: MatchOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Signal<\n  ThrowOrOptional<MatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(match);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(match$({ injector, ...opts } as any), { injector });\n  }) as any;\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  ResolveUseLoaderData,\n  StrictOrFrom,\n  UseLoaderDataResult,\n} from '@tanstack/router-core';\n\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\nimport { match$ } from './match';\n\nexport interface LoaderDataBaseOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TSelected,\n> {\n  select?: (match: ResolveUseLoaderData<TRouter, TFrom, TStrict>) => TSelected;\n  injector?: Injector;\n}\n\nexport type LoaderDataOptions<\n  TRouter extends AnyRouter,\n  TFrom extends string | undefined,\n  TStrict extends boolean,\n  TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n  LoaderDataBaseOptions<TRouter, TFrom, TStrict, TSelected>;\n\nexport type LoaderDataRoute<TObservable extends boolean, out TId> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: LoaderDataBaseOptions<TRouter, TId, true, TSelected>\n) => TObservable extends true\n  ? Observable<UseLoaderDataResult<TRouter, TId, true, TSelected>>\n  : Signal<UseLoaderDataResult<TRouter, TId, true, TSelected>>;\n\nexport function loaderData$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: LoaderDataOptions<TRouter, TFrom, TStrict, TSelected>): Observable<\n  UseLoaderDataResult<TRouter, TFrom, TStrict, TSelected>\n> {\n  !injector && assertInInjectionContext(loaderData$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return match$({\n      injector,\n      from: opts.from,\n      strict: opts.strict,\n      select: (s) => (opts.select ? opts.select(s.loaderData) : s.loaderData),\n    }) as any;\n  });\n}\n\nexport function loaderData<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: LoaderDataOptions<TRouter, TFrom, TStrict, TSelected>): Signal<\n  UseLoaderDataResult<TRouter, TFrom, TStrict, TSelected>\n> {\n  !injector && assertInInjectionContext(loaderData);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(loaderData$({ injector, ...opts } as any), { injector });\n  }) as any;\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  ResolveUseLoaderDeps,\n  StrictOrFrom,\n  UseLoaderDepsResult,\n} from '@tanstack/router-core';\nimport { Observable } from 'rxjs';\nimport { match$ } from './match';\n\nexport interface LoaderDepsBaseOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TSelected,\n> {\n  select?: (deps: ResolveUseLoaderDeps<TRouter, TFrom>) => TSelected;\n  injector?: Injector;\n}\n\nexport type LoaderDepsOptions<\n  TRouter extends AnyRouter,\n  TFrom extends string | undefined,\n  TSelected,\n> = StrictOrFrom<TRouter, TFrom> &\n  LoaderDepsBaseOptions<TRouter, TFrom, TSelected>;\n\nexport type LoaderDepsRoute<TObservable extends boolean, out TId> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: LoaderDepsBaseOptions<TRouter, TId, TSelected>\n) => TObservable extends true\n  ? Observable<UseLoaderDepsResult<TRouter, TId, TSelected>>\n  : Signal<UseLoaderDepsResult<TRouter, TId, TSelected>>;\n\nexport function loaderDeps$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: LoaderDepsOptions<TRouter, TFrom, TSelected>): Observable<\n  UseLoaderDepsResult<TRouter, TFrom, TSelected>\n> {\n  !injector && assertInInjectionContext(loaderDeps$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const { select, ...rest } = opts;\n    return match$({\n      ...rest,\n      select: (s) => {\n        return select ? select(s.loaderDeps) : s.loaderDeps;\n      },\n    }) as Observable<UseLoaderDepsResult<TRouter, TFrom, TSelected>>;\n  });\n}\n\nexport function loaderDeps<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: LoaderDepsOptions<TRouter, TFrom, TSelected>): Signal<\n  UseLoaderDepsResult<TRouter, TFrom, TSelected>\n> {\n  !injector && assertInInjectionContext(loaderDeps);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(loaderDeps$({ injector, ...opts } as any), { injector });\n  }) as any;\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  ResolveUseParams,\n  StrictOrFrom,\n  ThrowConstraint,\n  ThrowOrOptional,\n  UseParamsResult,\n} from '@tanstack/router-core';\nimport { Observable } from 'rxjs';\nimport { match$ } from './match';\n\nexport interface ParamsBaseOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> {\n  select?: (params: ResolveUseParams<TRouter, TFrom, TStrict>) => TSelected;\n  shouldThrow?: TThrow;\n  injector?: Injector;\n}\n\nexport type ParamsOptions<\n  TRouter extends AnyRouter,\n  TFrom extends string | undefined,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n  ParamsBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;\n\nexport type ParamsRoute<TObservable extends boolean, out TFrom> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: ParamsBaseOptions<\n    TRouter,\n    TFrom,\n    /* TStrict */ true,\n    /* TThrow */ true,\n    TSelected\n  >\n) => TObservable extends true\n  ? Observable<UseParamsResult<TRouter, TFrom, true, TSelected>>\n  : Signal<UseParamsResult<TRouter, TFrom, true, TSelected>>;\n\nexport function params$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: ParamsOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Observable<\n  ThrowOrOptional<UseParamsResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(params);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return match$({\n      from: opts.from!,\n      strict: opts.strict,\n      shouldThrow: opts.shouldThrow,\n      select: (match) => {\n        return opts.select ? opts.select(match.params) : match.params;\n      },\n    }) as any;\n  });\n}\n\nexport function params<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: ParamsOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Signal<\n  ThrowOrOptional<UseParamsResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(params);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(params$({ injector, ...opts } as any)) as any;\n  });\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  UseRouteContextBaseOptions,\n  UseRouteContextOptions,\n  UseRouteContextResult,\n} from '@tanstack/router-core';\nimport { Observable } from 'rxjs';\nimport { match$ } from './match';\n\nexport type RouteContextRoute<TObservable extends boolean, out TFrom> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected> & {\n    injector?: Injector;\n  }\n) => TObservable extends true\n  ? Observable<UseRouteContextResult<TRouter, TFrom, true, TSelected>>\n  : Signal<UseRouteContextResult<TRouter, TFrom, true, TSelected>>;\n\nexport function routeContext$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected> & {\n  injector?: Injector;\n}): Observable<UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>> {\n  !injector && assertInInjectionContext(routeContext);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return match$({\n      ...(opts as any),\n      select: (match) => {\n        return opts.select ? opts.select(match.context) : match.context;\n      },\n    }) as any;\n  });\n}\n\nexport function routeContext<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected> & {\n  injector?: Injector;\n}): Signal<UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>> {\n  !injector && assertInInjectionContext(routeContext);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(routeContext$({ injector, ...opts } as any)) as any;\n  });\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  ResolveUseSearch,\n  StrictOrFrom,\n  ThrowConstraint,\n  ThrowOrOptional,\n  UseSearchResult,\n} from '@tanstack/router-core';\nimport { Observable } from 'rxjs';\nimport { match$ } from './match';\n\nexport interface SearchBaseOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> {\n  select?: (state: ResolveUseSearch<TRouter, TFrom, TStrict>) => TSelected;\n  shouldThrow?: TThrow;\n  injector?: Injector;\n}\n\nexport type SearchOptions<\n  TRouter extends AnyRouter,\n  TFrom,\n  TStrict extends boolean,\n  TThrow extends boolean,\n  TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n  SearchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;\n\nexport type SearchRoute<TObservable extends boolean, out TFrom> = <\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>(\n  opts?: SearchBaseOptions<\n    TRouter,\n    TFrom,\n    /* TStrict */ true,\n    /* TThrow */ true,\n    TSelected\n  >\n) => TObservable extends true\n  ? Observable<UseSearchResult<TRouter, TFrom, true, TSelected>>\n  : Signal<UseSearchResult<TRouter, TFrom, true, TSelected>>;\n\nexport function search$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: SearchOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Observable<\n  ThrowOrOptional<UseSearchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(search);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return match$({\n      from: opts.from!,\n      strict: opts.strict,\n      shouldThrow: opts.shouldThrow,\n      select: (match) => {\n        return opts.select ? opts.select(match.search) : match.search;\n      },\n    }) as any;\n  });\n}\n\nexport function search<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string | undefined = undefined,\n  TStrict extends boolean = true,\n  TThrow extends boolean = true,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: SearchOptions<\n  TRouter,\n  TFrom,\n  TStrict,\n  ThrowConstraint<TStrict, TThrow>,\n  TSelected\n>): Signal<\n  ThrowOrOptional<UseSearchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n  !injector && assertInInjectionContext(search);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(search$({ injector, ...opts } as any)) as any;\n  });\n}\n","import {\n  InjectionToken,\n  Provider,\n  runInInjectionContext,\n  type Type,\n} from '@angular/core';\nimport {\n  AnyContext,\n  AnyRoute,\n  AnyRouter,\n  BaseRootRoute,\n  BaseRoute,\n  BaseRouteApi,\n  ConstrainLiteral,\n  ErrorComponentProps,\n  NotFoundRouteProps,\n  RegisteredRouter,\n  ResolveFullPath,\n  ResolveId,\n  ResolveParams,\n  RootRouteId,\n  RootRouteOptions,\n  RouteConstraints,\n  RouteIds,\n  RouteOptions,\n} from '@tanstack/router-core';\nimport { loaderData, loaderData$, LoaderDataRoute } from './loader-data';\nimport { loaderDeps, loaderDeps$, LoaderDepsRoute } from './loader-deps';\nimport { match, match$, MatchRoute } from './match';\nimport { params, params$, ParamsRoute } from './params';\nimport {\n  routeContext,\n  routeContext$,\n  RouteContextRoute,\n} from './route-context';\nimport { search, search$, SearchRoute } from './search';\n\ndeclare module '@tanstack/router-core' {\n  export interface UpdatableRouteOptionsExtensions {\n    component?: () => RouteComponent;\n    errorComponent?: false | null | (() => RouteComponent);\n    notFoundComponent?: () => RouteComponent;\n    pendingComponent?: () => RouteComponent;\n    providers?: Provider[];\n  }\n\n  export interface RouteExtensions<\n    TId extends string,\n    TFullPath extends string,\n  > {\n    match$: MatchRoute<true, TId>;\n    match: MatchRoute<false, TId>;\n    routeContext$: RouteContextRoute<true, TId>;\n    routeContext: RouteContextRoute<false, TId>;\n    search$: SearchRoute<true, TId>;\n    search: SearchRoute<false, TId>;\n    params$: ParamsRoute<true, TId>;\n    params: ParamsRoute<false, TId>;\n    loaderDeps$: LoaderDepsRoute<true, TId>;\n    loaderDeps: LoaderDepsRoute<false, TId>;\n    loaderData$: LoaderDataRoute<true, TId>;\n    loaderData: LoaderDataRoute<false, TId>;\n  }\n}\n\nexport const ERROR_COMPONENT_CONTEXT = new InjectionToken<ErrorComponentProps>(\n  'ERROR_COMPONENT_CONTEXT'\n);\nexport const NOT_FOUND_COMPONENT_CONTEXT =\n  new InjectionToken<NotFoundRouteProps>('NOT_FOUND_COMPONENT_CONTEXT');\n\nexport type RouteComponent<TComponent extends object = object> =\n  Type<TComponent>;\n\nexport function routeApi<\n  const TId,\n  TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n  return new RouteApi<TId, TRouter>({ id });\n}\n\nexport class RouteApi<\n  TId,\n  TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n  /**\n   * @deprecated Use the `getRouteApi` function instead.\n   */\n  constructor({ id }: { id: TId }) {\n    super({ id });\n  }\n\n  match$: MatchRoute<true, TId> = (opts) =>\n    match$({ ...opts, from: this.id } as any) as any;\n  match: MatchRoute<false, TId> = (opts) =>\n    match({ ...opts, from: this.id } as any) as any;\n\n  routeContext$: RouteContextRoute<true, TId> = (opts) =>\n    routeContext$({ ...opts, from: this.id } as any);\n  routeContext: RouteContextRoute<false, TId> = (opts) =>\n    routeContext({ ...opts, from: this.id } as any);\n\n  search$: SearchRoute<true, TId> = (opts) =>\n    search$({ ...opts, from: this.id } as any) as any;\n  search: SearchRoute<false, TId> = (opts) =>\n    search({ ...opts, from: this.id } as any) as any;\n\n  params$: ParamsRoute<true, TId> = (opts) =>\n    params$({ ...opts, from: this.id } as any) as any;\n  params: ParamsRoute<false, TId> = (opts) =>\n    params({ ...opts, from: this.id } as any) as any;\n\n  loaderDeps$: LoaderDepsRoute<true, TId> = (opts) =>\n    loaderDeps$({ ...opts, from: this.id } as any);\n  loaderDeps: LoaderDepsRoute<false, TId> = (opts) =>\n    loaderDeps({ ...opts, from: this.id, strict: false } as any);\n\n  loaderData$: LoaderDataRoute<true, TId> = (opts) =>\n    loaderData$({ ...opts, from: this.id } as any);\n  loaderData: LoaderDataRoute<false, TId> = (opts) =>\n    loaderData({ ...opts, from: this.id, strict: false } as any);\n}\n\nexport class Route<\n  in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n  in out TPath extends RouteConstraints['TPath'] = '/',\n  in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n    TParentRoute,\n    TPath\n  >,\n  in out TCustomId extends RouteConstraints['TCustomId'] = string,\n  in out TId extends RouteConstraints['TId'] = ResolveId<\n    TParentRoute,\n    TCustomId,\n    TPath\n  >,\n  in out TSearchValidator = undefined,\n  in out TParams = ResolveParams<TPath>,\n  in out TRouterContext = AnyContext,\n  in out TRouteContextFn = AnyContext,\n  in out TBeforeLoadFn = AnyContext,\n  in out TLoaderDeps extends Record<string, any> = {},\n  in out TLoaderFn = undefined,\n  in out TChildren = unknown,\n  in out TFileRouteTypes = unknown,\n> extends BaseRoute<\n  TParentRoute,\n  TPath,\n  TFullPath,\n  TCustomId,\n  TId,\n  TSearchValidator,\n  TParams,\n  TRouterContext,\n  TRouteContextFn,\n  TBeforeLoadFn,\n  TLoaderDeps,\n  TLoaderFn,\n  TChildren,\n  TFileRouteTypes\n> {\n  /**\n   * @deprecated Use the `createRoute` function instead.\n   */\n  constructor(\n    options?: RouteOptions<\n      TParentRoute,\n      TId,\n      TCustomId,\n      TFullPath,\n      TPath,\n      TSearchValidator,\n      TParams,\n      TLoaderDeps,\n      TLoaderFn,\n      TRouterContext,\n      TRouteContextFn,\n      TBeforeLoadFn\n    >\n  ) {\n    super(options);\n  }\n\n  match$: MatchRoute<true, TId> = (opts) =>\n    match$({ ...opts, from: this.id } as any) as any;\n  match: MatchRoute<false, TId> = (opts) =>\n    match({ ...opts, from: this.id } as any) as any;\n\n  routeContext$: RouteContextRoute<true, TId> = (opts) =>\n    routeContext$({ ...opts, from: this.id } as any);\n  routeContext: RouteContextRoute<false, TId> = (opts) =>\n    routeContext({ ...opts, from: this.id } as any);\n\n  search$: SearchRoute<true, TId> = (opts) =>\n    search$({ ...opts, from: this.id } as any) as any;\n  search: SearchRoute<false, TId> = (opts) =>\n    search({ ...opts, from: this.id } as any) as any;\n\n  params$: ParamsRoute<true, TId> = (opts) =>\n    params$({ ...opts, from: this.id } as any) as any;\n  params: ParamsRoute<false, TId> = (opts) =>\n    params({ ...opts, from: this.id } as any) as any;\n\n  loaderDeps$: LoaderDepsRoute<true, TId> = (opts) =>\n    loaderDeps$({ ...opts, from: this.id } as any);\n  loaderDeps: LoaderDepsRoute<false, TId> = (opts) =>\n    loaderDeps({ ...opts, from: this.id } as any);\n\n  loaderData$: LoaderDataRoute<true, TId> = (opts) =>\n    loaderData$({ ...opts, from: this.id } as any);\n  loaderData: LoaderDataRoute<false, TId> = (opts) =>\n    loaderData({ ...opts, from: this.id } as any);\n}\n\nexport function createRoute<\n  TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n  TPath extends RouteConstraints['TPath'] = '/',\n  TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n    TParentRoute,\n    TPath\n  >,\n  TCustomId extends RouteConstraints['TCustomId'] = string,\n  TId extends RouteConstraints['TId'] = ResolveId<\n    TParentRoute,\n    TCustomId,\n    TPath\n  >,\n  TSearchValidator = undefined,\n  TParams = ResolveParams<TPath>,\n  TRouteContextFn = AnyContext,\n  TBeforeLoadFn = AnyContext,\n  TLoaderDeps extends Record<string, any> = {},\n  TLoaderFn = undefined,\n  TChildren = unknown,\n>(\n  options: RouteOptions<\n    TParentRoute,\n    TId,\n    TCustomId,\n    TFullPath,\n    TPath,\n    TSearchValidator,\n    TParams,\n    TLoaderDeps,\n    TLoaderFn,\n    AnyContext,\n    TRouteContextFn,\n    TBeforeLoadFn\n  >\n): Route<\n  TParentRoute,\n  TPath,\n  TFullPath,\n  TCustomId,\n  TId,\n  TSearchValidator,\n  TParams,\n  AnyContext,\n  TRouteContextFn,\n  TBeforeLoadFn,\n  TLoaderDeps,\n  TLoaderFn,\n  TChildren,\n  unknown\n> {\n  if (options.loader) {\n    options.loader = runFnInInjectionContext(options.loader);\n  }\n\n  if (options.shouldReload && typeof options.shouldReload === 'function') {\n    options.shouldReload = runFnInInjectionContext(options.shouldReload);\n  }\n\n  if (options.beforeLoad) {\n    options.beforeLoad = runFnInInjectionContext(options.beforeLoad);\n  }\n\n  return new Route<\n    TParentRoute,\n    TPath,\n    TFullPath,\n    TCustomId,\n    TId,\n    TSearchValidator,\n    TParams,\n    AnyContext,\n    TRouteContextFn,\n    TBeforeLoadFn,\n    TLoaderDeps,\n    TLoaderFn,\n    TChildren,\n    unknown\n  >(options);\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>;\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n  return <\n    TRouteContextFn = AnyContext,\n    TBeforeLoadFn = AnyContext,\n    TSearchValidator = undefined,\n    TLoaderDeps extends Record<string, any> = {},\n    TLoaderFn = undefined,\n  >(\n    options?: RootRouteOptions<\n      TSearchValidator,\n      TRouterContext,\n      TRouteContextFn,\n      TBeforeLoadFn,\n      TLoaderDeps,\n      TLoaderFn\n    >\n  ) => {\n    return createRootRoute<\n      TSearchValidator,\n      TRouterContext,\n      TRouteContextFn,\n      TBeforeLoadFn,\n      TLoaderDeps,\n      TLoaderFn\n    >(options as any);\n  };\n}\n\nexport class RootRoute<\n  in out TSearchValidator = undefined,\n  in out TRouterContext = {},\n  in out TRouteContextFn = AnyContext,\n  in out TBeforeLoadFn = AnyContext,\n  in out TLoaderDeps extends Record<string, any> = {},\n  in out TLoaderFn = undefined,\n  in out TChildren = unknown,\n  in out TFileRouteTypes = unknown,\n> extends BaseRootRoute<\n  TSearchValidator,\n  TRouterContext,\n  TRouteContextFn,\n  TBeforeLoadFn,\n  TLoaderDeps,\n  TLoaderFn,\n  TChildren,\n  TFileRouteTypes\n> {\n  /**\n   * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n   */\n  constructor(\n    options?: RootRouteOptions<\n      TSearchValidator,\n      TRouterContext,\n      TRouteContextFn,\n      TBeforeLoadFn,\n      TLoaderDeps,\n      TLoaderFn\n    >\n  ) {\n    super(options);\n  }\n\n  match$: MatchRoute<true, RootRouteId> = (opts) =>\n    match$({ ...opts, from: this.id } as any) as any;\n  match: MatchRoute<false, RootRouteId> = (opts) =>\n    match({ ...opts, from: this.id } as any) as any;\n\n  routeContext$: RouteContextRoute<true, RootRouteId> = (opts) =>\n    routeContext$({ ...opts, from: this.id } as any);\n  routeContext: RouteContextRoute<false, RootRouteId> = (opts) =>\n    routeContext({ ...opts, from: this.id } as any);\n\n  search$: SearchRoute<true, RootRouteId> = (opts) =>\n    search$({ ...opts, from: this.id } as any) as any;\n  search: SearchRoute<false, RootRouteId> = (opts) =>\n    search({ ...opts, from: this.id } as any) as any;\n\n  params$: ParamsRoute<true, RootRouteId> = (opts) =>\n    params$({ ...opts, from: this.id } as any) as any;\n  params: ParamsRoute<false, RootRouteId> = (opts) =>\n    params({ ...opts, from: this.id } as any) as any;\n\n  loaderDeps$: LoaderDepsRoute<true, RootRouteId> = (opts) =>\n    loaderDeps$({ ...opts, from: this.id } as any);\n  loaderDeps: LoaderDepsRoute<false, RootRouteId> = (opts) =>\n    loaderDeps({ ...opts, from: this.id } as any);\n\n  loaderData$: LoaderDataRoute<true, RootRouteId> = (opts) =>\n    loaderData$({ ...opts, from: this.id } as any);\n  loaderData: LoaderDataRoute<false, RootRouteId> = (opts) =>\n    loaderData({ ...opts, from: this.id } as any);\n}\n\nexport function createRootRoute<\n  TSearchValidator = undefined,\n  TRouterContext = {},\n  TRouteContextFn = AnyContext,\n  TBeforeLoadFn = AnyContext,\n  TLoaderDeps extends Record<string, any> = {},\n  TLoaderFn = undefined,\n>(\n  options?: RootRouteOptions<\n    TSearchValidator,\n    TRouterContext,\n    TRouteContextFn,\n    TBeforeLoadFn,\n    TLoaderDeps,\n    TLoaderFn\n  >\n): RootRoute<\n  TSearchValidator,\n  TRouterContext,\n  TRouteContextFn,\n  TBeforeLoadFn,\n  TLoaderDeps,\n  TLoaderFn,\n  unknown,\n  unknown\n> {\n  return new RootRoute<\n    TSearchValidator,\n    TRouterContext,\n    TRouteContextFn,\n    TBeforeLoadFn,\n    TLoaderDeps,\n    TLoaderFn\n  >(options);\n}\n\nexport class NotFoundRoute<\n  TParentRoute extends AnyRootRoute,\n  TRouterContext = AnyContext,\n  TRouteContextFn = AnyContext,\n  TBeforeLoadFn = AnyContext,\n  TSearchValidator = undefined,\n  TLoaderDeps extends Record<string, any> = {},\n  TLoaderFn = undefined,\n  TChildren = unknown,\n> extends Route<\n  TParentRoute,\n  '/404',\n  '/404',\n  '404',\n  '404',\n  TSearchValidator,\n  {},\n  TRouterContext,\n  TRouteContextFn,\n  TBeforeLoadFn,\n  TLoaderDeps,\n  TLoaderFn,\n  TChildren\n> {\n  constructor(\n    options: Omit<\n      RouteOptions<\n        TParentRoute,\n        string,\n        string,\n        string,\n        string,\n        TSearchValidator,\n        {},\n        TLoaderDeps,\n        TLoaderFn,\n        TRouterContext,\n        TRouteContextFn,\n        TBeforeLoadFn\n      >,\n      | 'caseSensitive'\n      | 'parseParams'\n      | 'stringifyParams'\n      | 'path'\n      | 'id'\n      | 'params'\n    >\n  ) {\n    super({\n      ...(options as any),\n      id: '404',\n    });\n  }\n}\n\nfunction runFnInInjectionContext<TFn extends (...args: any[]) => any>(fn: TFn) {\n  const originalFn = fn;\n  return (...args: Parameters<TFn>) => {\n    const { context, location, route } = args[0];\n    const routeInjector = context.getRouteInjector(route?.id || location.href);\n    return runInInjectionContext(routeInjector, originalFn.bind(null, ...args));\n  };\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  signal,\n} from '@angular/core';\nimport { ERROR_COMPONENT_CONTEXT } from './route';\n\n@Component({\n  selector: 'default-error,DefaultError',\n  template: `\n    <div style=\"display: flex; align-items: center; gap: 0.5rem\">\n      <strong style=\"font-size: 1rem\">Something went wrong!</strong>\n      <button\n        style=\"appearance: none; font-size: 0.6em; border: 1px solid currentColor; padding: 0.1rem 0.2rem; font-weight: bold; border-radius: 0.25rem\"\n        (click)=\"show.set(!show())\"\n      >\n        {{ show() ? 'Hide Error' : 'Show Error' }}\n      </button>\n    </div>\n    <div style=\"height: 0.25rem\"></div>\n    @if (show()) {\n      <div>\n        <pre\n          style=\"font-size: 0.7em; border: 1px solid red; border-radius: 0.25rem; padding: 0.3rem; color: red; overflow: auto\"\n        >\n          @if (context.error.message; as message) {\n            <code>{{ message }}</code>\n          }\n        </pre>\n      </div>\n    }\n  `,\n  styles: `\n    :host {\n      display: block;\n      padding: 0.5rem;\n      max-width: 100%;\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultError {\n  protected context = inject(ERROR_COMPONENT_CONTEXT);\n  protected show = signal(false);\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  afterNextRender,\n  ChangeDetectorRef,\n  DestroyRef,\n  Directive,\n  inject,\n  OnInit,\n  untracked,\n} from '@angular/core';\nimport { getLocationChangeInfo, trimPathRight } from '@tanstack/router-core';\nimport {\n  BehaviorSubject,\n  combineLatest,\n  distinctUntilChanged,\n  map,\n  pairwise,\n  Subscription,\n  tap,\n} from 'rxjs';\nimport { injectRouter } from './router';\nimport { routerState$ } from './router-state';\n\n@Directive()\nexport class Transitioner implements OnInit {\n  private router = injectRouter();\n  private destroyRef = inject(DestroyRef);\n  private document = inject(DOCUMENT);\n  private cdr = inject(ChangeDetectorRef);\n\n  private matches$ = routerState$({ select: (s) => s.matches });\n  private hasPendingMatches$ = this.matches$.pipe(\n    map((matches) => matches.some((d) => d.status === 'pending')),\n    distinctUntilChanged(() => false)\n  );\n  private isLoading$ = routerState$({\n    select: (s) => s.isLoading,\n    equal: () => false,\n  });\n  private previousIsLoading$ = this.isLoading$.pipe(\n    pairwise(),\n    map(([prev, curr]) => prev ?? curr)\n  );\n\n  private isTransitioning$ = new BehaviorSubject(false);\n  private isAnyPending$ = combineLatest([\n    this.isLoading$,\n    this.isTransitioning$,\n    this.hasPendingMatches$,\n  ]).pipe(\n    map(\n      ([isLoading, isTransitioning, hasPendingMatches]) =>\n        isLoading || isTransitioning || hasPendingMatches\n    ),\n    distinctUntilChanged(() => false)\n  );\n  private previousIsAnyPending$ = this.isAnyPending$.pipe(\n    pairwise(),\n    map(([prev, curr]) => prev ?? curr)\n  );\n\n  private isPagePending$ = combineLatest([\n    this.isLoading$,\n    this.hasPendingMatches$,\n  ]).pipe(\n    map(([isLoading, hasPendingMatches]) => isLoading || hasPendingMatches),\n    distinctUntilChanged(() => false)\n  );\n  private previousIsPagePending$ = this.isPagePending$.pipe(\n    pairwise(),\n    map(([prev, curr]) => prev ?? curr)\n  );\n\n  private mountLoadForRouter = { router: this.router, mounted: false };\n\n  private load$ = combineLatest([\n    this.previousIsLoading$,\n    this.isLoading$,\n  ]).pipe(\n    tap(([previousIsLoading, isLoading]) => {\n      if (previousIsLoading && !isLoading) {\n        this.router.emit({\n          type: 'onLoad',\n          ...getLocationChangeInfo(this.router.state),\n        });\n        this.router.__store.setState((s) => ({ ...s, status: 'idle' }));\n      }\n    })\n  );\n  private pagePending$ = combineLatest([\n    this.previousIsPagePending$,\n    this.isPagePending$,\n  ]).pipe(\n    tap(([previousIsPagePending, isPagePending]) => {\n      // emit onBeforeRouteMount\n      if (previousIsPagePending && !isPagePending) {\n        this.router.emit({\n          type: 'onBeforeRouteMount',\n          ...getLocationChangeInfo(this.router.state),\n        });\n      }\n    })\n  );\n  private pending$ = combineLatest([\n    this.previousIsAnyPending$,\n    this.isAnyPending$,\n  ]).pipe(\n    tap(([previousIsAnyPending, isAnyPending]) => {\n      // The router was pending and now it's not\n      if (previousIsAnyPending && !isAnyPending) {\n        this.router.emit({\n          type: 'onResolved',\n          ...getLocationChangeInfo(this.router.state),\n        });\n\n        this.router.__store.setState((s) => ({\n          ...s,\n          status: 'idle',\n          resolvedLocation: s.location,\n        }));\n        if (\n          typeof this.document !== 'undefined' &&\n          'querySelector' in this.document\n        ) {\n          const hashScrollIntoViewOptions =\n            this.router.state.location.state.__hashScrollIntoViewOptions ??\n            true;\n\n          if (\n            hashScrollIntoViewOptions &&\n            this.router.state.location.hash !== ''\n          ) {\n            const el = this.document.getElementById(\n              this.router.state.location.hash\n            );\n            if (el) el.scrollIntoView(hashScrollIntoViewOptions);\n          }\n        }\n      }\n    })\n  );\n\n  constructor() {\n    if (!this.router.isServer) {\n      this.router.startTransition = (fn) => {\n        this.isTransitioning$.next(true);\n        fn();\n        this.isTransitioning$.next(false);\n        this.cdr.detectChanges();\n      };\n    }\n\n    const subscription = new Subscription();\n\n    // Try to load the initial location\n    afterNextRender(() => {\n      untracked(() => {\n        const window = this.document.defaultView;\n        if (\n          (typeof window !== 'undefined' && this.router.clientSsr) ||\n          (this.mountLoadForRouter.router === this.router &&\n            this.mountLoadForRouter.mounted)\n        ) {\n          return;\n        }\n        this.mountLoadForRouter = { router: this.router, mounted: true };\n        const tryLoad = async () => {\n          try {\n            await this.router.load();\n            this.router.__store.setState((s) => ({ ...s, status: 'idle' }));\n          } catch (err) {\n            console.error(err);\n          }\n        };\n        void tryLoad();\n      });\n\n      subscription.add(this.load$.subscribe());\n      subscription.add(this.pagePending$.subscribe());\n      subscription.add(this.pending$.subscribe());\n    });\n\n    this.destroyRef.onDestroy(() => subscription.unsubscribe());\n  }\n\n  ngOnInit() {\n    // Subscribe to location changes\n    // and try to load the new location\n    const unsub = this.router.history.subscribe(() => this.router.load());\n\n    const nextLocation = this.router.buildLocation({\n      to: this.router.latestLocation.pathname,\n      search: true,\n      params: true,\n      hash: true,\n      state: true,\n      _includeValidateSearch: true,\n    });\n\n    if (\n      trimPathRight(this.router.latestLocation.href) !==\n      trimPathRight(nextLocation.href)\n    ) {\n      void this.router.commitLocation({ ...nextLocation, replace: true });\n    }\n\n    this.destroyRef.onDestroy(() => unsub());\n  }\n}\n","import {\n  afterNextRender,\n  assertInInjectionContext,\n  ComponentRef,\n  DestroyRef,\n  Directive,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n  ViewContainerRef,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  MakeRouteMatchUnion,\n  RegisteredRouter,\n  RouterState,\n} from '@tanstack/router-core';\nimport {\n  combineLatest,\n  map,\n  Observable,\n  of,\n  Subscription,\n  switchMap,\n} from 'rxjs';\nimport { DefaultError } from './default-error';\nimport { distinctUntilRefChanged } from './distinct-until-ref-changed';\nimport { MATCH_ID, RouteMatch } from './outlet';\nimport { ERROR_COMPONENT_CONTEXT } from './route';\nimport { injectRouter } from './router';\nimport { routerState$ } from './router-state';\nimport { Transitioner } from './transitioner';\n\n@Directive({ hostDirectives: [Transitioner] })\nexport class Matches {\n  private router = injectRouter();\n  private injector = inject(Injector);\n  private vcr = inject(ViewContainerRef);\n\n  private defaultPendingComponent =\n    this.router.options.defaultPendingComponent?.();\n\n  private resetKey$ = routerState$({ select: (s) => s.loadedAt.toString() });\n  private rootMatchId$ = routerState$({ select: (s) => s.matches[0]?.id });\n\n  private matchLoad$ = this.rootMatchId$.pipe(\n    switchMap((rootMatchId) => {\n      if (!rootMatchId) return of({ pending: false });\n      const loadPromise = this.router.getMatch(rootMatchId)?.loadPromise;\n      if (!loadPromise) return of({ pending: false });\n      return of({ pending: true }).pipe(\n        switchMap(() => loadPromise.then(() => ({ pending: false })))\n      );\n    })\n  );\n\n  private cmpRef?: ComponentRef<any>;\n\n  private run$ = this.matchLoad$.pipe(\n    switchMap(({ pending }) => {\n      if (pending) {\n        if (this.defaultPendingComponent) {\n          return of({\n            component: this.defaultPendingComponent,\n            clearView: true,\n            matchId: null,\n          } as const);\n        }\n        return of(null);\n      }\n\n      return combineLatest([this.rootMatchId$, this.resetKey$]).pipe(\n        map(([matchId]) => {\n          if (!matchId) return null;\n          if (this.cmpRef) return { clearView: false } as const;\n          return {\n            component: RouteMatch,\n            matchId,\n            clearView: true,\n          } as const;\n        })\n      );\n    })\n  );\n\n  constructor() {\n    let subscription: Subscription;\n    afterNextRender(() => {\n      subscription = this.run$.subscribe({\n        next: (runData) => {\n          if (!runData) return;\n          if (!runData.clearView) {\n            this.cmpRef?.changeDetectorRef.markForCheck();\n            return;\n          }\n          const { component, matchId } = runData;\n          this.vcr.clear();\n          this.cmpRef = this.vcr.createComponent(component);\n          if (matchId) {\n            this.cmpRef.setInput('matchId', matchId);\n          }\n          this.cmpRef.changeDetectorRef.markForCheck();\n        },\n        error: (error) => {\n          console.error(error);\n          const injector = Injector.create({\n            providers: [\n              {\n                provide: ERROR_COMPONENT_CONTEXT,\n                useValue: {\n                  error: error,\n                  info: { componentStack: '' },\n                  reset: () => void this.router.invalidate(),\n                },\n              },\n            ],\n            parent: this.injector,\n          });\n          this.vcr.clear();\n          const ref = this.vcr.createComponent(DefaultError, { injector });\n          ref.changeDetectorRef.markForCheck();\n          this.cmpRef = undefined;\n        },\n      });\n    });\n\n    inject(DestroyRef).onDestroy(() => {\n      subscription?.unsubscribe();\n      this.vcr.clear();\n      this.cmpRef = undefined;\n    });\n  }\n}\n\nexport interface MatchesBaseOptions<TRouter extends AnyRouter, TSelected> {\n  select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected;\n  injector?: Injector;\n}\n\nexport type MatchesResult<\n  TRouter extends AnyRouter,\n  TSelected,\n> = unknown extends TSelected ? Array<MakeRouteMatchUnion<TRouter>> : TSelected;\n\nexport function matches$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: MatchesBaseOptions<TRouter, TSelected> = {}): Observable<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(matches$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return routerState$({\n      injector,\n      select: (state: RouterState<TRouter['routeTree']>) => {\n        const matches = state.matches;\n        return opts.select\n          ? opts.select(matches as Array<MakeRouteMatchUnion<TRouter>>)\n          : matches;\n      },\n    }) as Observable<MatchesResult<TRouter, TSelected>>;\n  });\n}\n\nexport function matches<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({ injector, ...opts }: MatchesBaseOptions<TRouter, TSelected> = {}): Signal<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(matches);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(matches$({ injector, ...opts })) as Signal<\n      MatchesResult<TRouter, TSelected>\n    >;\n  });\n}\n\nexport function parentMatches$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: MatchesBaseOptions<TRouter, TSelected> = {}): Observable<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(parentMatches$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const closestMatch = inject(MATCH_ID);\n    return routerState$({ injector, select: (s) => s.matches }).pipe(\n      map((matches) => {\n        const sliced = matches.slice(\n          0,\n          matches.findIndex((d) => d.id === closestMatch)\n        );\n        return opts.select\n          ? opts.select(sliced as Array<MakeRouteMatchUnion<TRouter>>)\n          : sliced;\n      }),\n      distinctUntilRefChanged() as any\n    ) as Observable<MatchesResult<TRouter, TSelected>>;\n  });\n}\n\nexport function parentMatches<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({ injector, ...opts }: MatchesBaseOptions<TRouter, TSelected> = {}): Signal<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(parentMatches);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(parentMatches$({ injector, ...opts })) as Signal<\n      MatchesResult<TRouter, TSelected>\n    >;\n  });\n}\nexport function childMatches$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  injector,\n  ...opts\n}: MatchesBaseOptions<TRouter, TSelected> = {}): Observable<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(childMatches$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const closestMatch = inject(MATCH_ID);\n    return routerState$({ injector, select: (s) => s.matches }).pipe(\n      map((matches) => {\n        const sliced = matches.slice(\n          matches.findIndex((d) => d.id === closestMatch) + 1\n        );\n        return opts.select\n          ? opts.select(sliced as Array<MakeRouteMatchUnion<TRouter>>)\n          : sliced;\n      }),\n      distinctUntilRefChanged() as any\n    ) as Observable<MatchesResult<TRouter, TSelected>>;\n  });\n}\n\nexport function childMatches<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({ injector, ...opts }: MatchesBaseOptions<TRouter, TSelected> = {}): Signal<\n  MatchesResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(childMatches);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(childMatches$({ injector, ...opts })) as Signal<\n      MatchesResult<TRouter, TSelected>\n    >;\n  });\n}\n","import {\n  afterRenderEffect,\n  computed,\n  Directive,\n  ElementRef,\n  inject,\n  input,\n  signal,\n  untracked,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  Constrain,\n  deepEqual,\n  exactPathTest,\n  InferFrom,\n  InferMaskFrom,\n  InferMaskTo,\n  InferTo,\n  LinkOptions,\n  preloadWarning,\n  RegisteredRouter,\n  removeTrailingSlash,\n} from '@tanstack/router-core';\nimport { combineLatest, map } from 'rxjs';\nimport { distinctUntilRefChanged } from './distinct-until-ref-changed';\nimport { matches$ } from './matches';\nimport { injectRouter } from './router';\nimport { routerState, routerState$ } from './router-state';\n\n@Directive({\n  selector: 'a[link]',\n  exportAs: 'link',\n  host: {\n    '(click)': 'handleClick($event)',\n    '(focus)': 'handleFocus()',\n    '(touchstart)': 'handleClick($event)',\n    '(mouseenter)': 'handleMouseEnter($event)',\n    '(mouseleave)': 'handleMouseLeave()',\n    '[class]': 'activeClass()',\n    '[attr.data-active]': 'isActive()',\n    '[attr.data-type]': 'type()',\n    '[attr.data-transitioning]':\n      'transitioning() ? \"transitioning\" : undefined',\n    '[attr.href]': 'hostHref()',\n    '[attr.role]': 'disabled() ? \"link\" : undefined',\n    '[attr.aria-disabled]': 'disabled()',\n    '[attr.aria-current]': 'isActive() ? \"page\" : undefined',\n    '[attr.data-from]': 'from()',\n  },\n})\nexport class Link {\n  linkOptions = input.required({\n    alias: 'link',\n    transform: (\n      value:\n        | (Omit<LinkOptions, 'activeOptions'> & {\n            activeOptions?: LinkOptions['activeOptions'] & { class?: string };\n          })\n        | NonNullable<LinkOptions['to']>\n    ) => {\n      return (typeof value === 'object' ? value : { to: value }) as Omit<\n        LinkOptions,\n        'activeOptions'\n      > & { activeOptions?: LinkOptions['activeOptions'] & { class?: string } };\n    },\n  });\n  linkActiveOptions = input(\n    { class: 'active' },\n    {\n      alias: 'linkActive',\n      transform: (\n        value: (LinkOptions['activeOptions'] & { class?: string }) | string\n      ) => {\n        if (typeof value === 'string') return { class: value };\n\n        if (!value.class) value.class = 'active';\n        return value;\n      },\n    }\n  );\n\n  private router = injectRouter();\n  hostElement = inject<ElementRef<HTMLAnchorElement>>(ElementRef);\n\n  private currentSearch = routerState({ select: (s) => s.location.searchStr });\n\n  protected disabled = computed(() => this.linkOptions()['disabled']);\n  private to = computed(() => this.linkOptions()['to']);\n  private userFrom = computed(() => this.linkOptions()['from']);\n  private userReloadDocument = computed(\n    () => this.linkOptions()['reloadDocument']\n  );\n  private userPreload = computed(() => this.linkOptions()['preload']);\n  private userPreloadDelay = computed(() => this.linkOptions()['preloadDelay']);\n\n  private activeOptions = computed(\n    () => this.linkOptions().activeOptions || this.linkActiveOptions() || {}\n  );\n  private exactActiveOptions = computed(() => this.activeOptions().exact);\n  private includeHashActiveOptions = computed(\n    () => this.activeOptions().includeHash\n  );\n  private includeSearchActiveOptions = computed(\n    () => this.activeOptions().includeSearch\n  );\n\n  protected type = computed(() => {\n    const to = this.to();\n    try {\n      new URL(`${to}`);\n      return 'external';\n    } catch {\n      return 'internal';\n    }\n  });\n\n  // when `from` is not supplied, use the leaf route of the current matches as the `from` location\n  // so relative routing works as expected\n  protected from = toSignal(\n    combineLatest([\n      toObservable(this.userFrom),\n      matches$({ select: (matches) => matches[matches.length - 1]?.fullPath }),\n    ]).pipe(\n      map(([userFrom, from]) => userFrom ?? from),\n      distinctUntilRefChanged()\n    )\n  );\n\n  private navigateOptions = computed(() => {\n    return { ...this.linkOptions(), from: this.from() };\n  });\n\n  private next = computed(() => {\n    const [options] = [this.navigateOptions(), this.currentSearch()];\n    try {\n      return this.router.buildLocation(options as any);\n    } catch (err) {\n      return null;\n    }\n  });\n\n  private preload = computed(() => {\n    const userReloadDocument = this.userReloadDocument();\n    if (userReloadDocument) return false;\n    const userPreload = this.userPreload();\n    if (userPreload) return userPreload;\n    return this.router.options.defaultPreload;\n  });\n\n  private preloadDelay = computed(() => {\n    const userPreloadDelay = this.userPreloadDelay();\n    if (userPreloadDelay) return userPreloadDelay;\n    return this.router.options.defaultPreloadDelay;\n  });\n\n  protected hostHref = computed(() => {\n    const [type, to] = [this.type(), this.to()];\n    if (type === 'external') return to;\n\n    const disabled = this.disabled();\n    if (disabled) return undefined;\n\n    const next = this.next();\n    if (!next) return undefined;\n\n    return next.maskedLocation\n      ? this.router.history.createHref(next.maskedLocation.href)\n      : this.router.history.createHref(next.href);\n  });\n\n  transitioning = signal(false);\n\n  isActive = toSignal(\n    combineLatest([\n      toObservable(this.next),\n      toObservable(this.exactActiveOptions),\n      toObservable(this.includeSearchActiveOptions),\n      toObservable(this.includeHashActiveOptions),\n      routerState$({ select: (s) => s.location }),\n    ]).pipe(\n      map(\n        ([next, exact, includeSearchOptions, includeHashOptions, location]) => {\n          if (!next) return false;\n          if (exact) {\n            const testExact = exactPathTest(\n              location.pathname,\n              next.pathname,\n              this.router.basepath\n            );\n            if (!testExact) return false;\n          } else {\n            const currentPathSplit = removeTrailingSlash(\n              location.pathname,\n              this.router.basepath\n            ).split('/');\n            const nextPathSplit = removeTrailingSlash(\n              next.pathname,\n              this.router.basepath\n            ).split('/');\n            const pathIsFuzzyEqual = nextPathSplit.every(\n              (d, i) => d === currentPathSplit[i]\n            );\n            if (!pathIsFuzzyEqual) {\n              return false;\n            }\n          }\n\n          const includeSearch = includeSearchOptions ?? true;\n          if (includeSearch) {\n            const searchTest = deepEqual(location.search, next.search, {\n              partial: !exact,\n              ignoreUndefined: !(includeSearchOptions ?? true),\n            });\n            if (!searchTest) {\n              return false;\n            }\n          }\n\n          const includeHash = includeHashOptions ?? true;\n          if (includeHash) {\n            return location.hash === next.hash;\n          }\n\n          return true;\n        }\n      )\n    )\n  );\n  protected activeClass = computed(() =>\n    this.isActive() ? this.activeOptions().class || 'active' : ''\n  );\n\n  constructor() {\n    afterRenderEffect(() => {\n      const [disabled, preload] = [\n        untracked(this.disabled),\n        untracked(this.preload),\n      ];\n      if (!disabled && preload === 'render') {\n        this.doPreload();\n      }\n    });\n\n    afterRenderEffect((onCleanup) => {\n      const unsub = this.router.subscribe('onResolved', () => {\n        this.transitioning.set(false);\n      });\n      onCleanup(() => unsub());\n    });\n  }\n\n  protected handleClick(event: MouseEvent) {\n    if (this.type() === 'external') return;\n\n    const [disabled, target] = [\n      this.disabled(),\n      this.hostElement.nativeElement.target,\n    ];\n\n    if (\n      disabled ||\n      this.isCtrlEvent(event) ||\n      event.defaultPrevented ||\n      (target && target !== '_self') ||\n      event.button !== 0\n    ) {\n      return;\n    }\n\n    event.preventDefault();\n    this.transitioning.set(true);\n\n    this.router.navigate(this.navigateOptions() as any);\n  }\n\n  protected handleFocus() {\n    if (this.disabled() || this.type() === 'external') return;\n    if (this.preload()) {\n      this.doPreload();\n    }\n  }\n\n  private preloadTimeout: ReturnType<typeof setTimeout> | null = null;\n  protected handleMouseEnter(event: MouseEvent) {\n    if (\n      this.disabled() ||\n      !this.preload() ||\n      this.isActive() ||\n      this.type() === 'external'\n    )\n      return;\n\n    this.preloadTimeout = setTimeout(() => {\n      this.preloadTimeout = null;\n      this.doPreload();\n    }, this.preloadDelay());\n  }\n\n  protected handleMouseLeave() {\n    if (this.disabled() || this.type() === 'external') return;\n    if (this.preloadTimeout) {\n      clearTimeout(this.preloadTimeout);\n      this.preloadTimeout = null;\n    }\n  }\n\n  private doPreload() {\n    this.router.preloadRoute(this.navigateOptions() as any).catch((err) => {\n      console.warn(err);\n      console.warn(preloadWarning);\n    });\n  }\n\n  private isCtrlEvent(e: MouseEvent) {\n    return e.metaKey || e.altKey || e.ctrlKey || e.shiftKey;\n  }\n}\n\nexport type ValidateLinkOptions<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TOptions = unknown,\n  TDefaultFrom extends string = string,\n> = Constrain<\n  TOptions,\n  Omit<\n    LinkOptions<\n      TRouter,\n      InferFrom<TOptions, TDefaultFrom>,\n      InferTo<TOptions>,\n      InferMaskFrom<TOptions>,\n      InferMaskTo<TOptions>\n    >,\n    'activeOptions'\n  > &\n    Partial<Omit<HTMLAnchorElement, 'search'>> & {\n      label?: string | (() => string);\n      activeOptions?: LinkOptions<\n        TRouter,\n        InferFrom<TOptions, TDefaultFrom>,\n        InferTo<TOptions>,\n        InferMaskFrom<TOptions>,\n        InferMaskTo<TOptions>\n      >['activeOptions'] & { class?: string };\n    }\n>;\n\nexport type ValidateLinkOptionsArray<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>,\n  TDefaultFrom extends string = string,\n> = {\n  [K in keyof TOptions]: ValidateLinkOptions<\n    TRouter,\n    TOptions[K],\n    TDefaultFrom\n  >;\n};\n\nexport type LinkOptionsFnOptions<\n  TOptions,\n  TRouter extends AnyRouter = RegisteredRouter,\n> =\n  TOptions extends ReadonlyArray<any>\n    ? ValidateLinkOptionsArray<TRouter, TOptions>\n    : ValidateLinkOptions<TRouter, TOptions>;\n\nexport type LinkOptionsFn = <\n  const TOptions,\n  TRouter extends AnyRouter = RegisteredRouter,\n>(\n  options: LinkOptionsFnOptions<TOptions, TRouter>\n) => TOptions;\n\nexport const linkOptions: LinkOptionsFn = (options) => {\n  return options as any;\n};\n","import {\n  assertInInjectionContext,\n  computed,\n  Directive,\n  inject,\n  Injector,\n  input,\n  runInInjectionContext,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  DeepPartial,\n  MakeOptionalPathParams,\n  MakeOptionalSearchParams,\n  MaskOptions,\n  RegisteredRouter,\n  MatchRouteOptions as TanstackMatchRouteOptions,\n  ToSubOptionsProps,\n} from '@tanstack/router-core';\nimport { combineLatest, map, switchMap } from 'rxjs';\nimport { Link } from './link';\nimport { injectRouter } from './router';\nimport { routerState$ } from './router-state';\n\nexport type MatchRouteOptions<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TFrom extends string = string,\n  TTo extends string | undefined = undefined,\n  TMaskFrom extends string = TFrom,\n  TMaskTo extends string = '',\n> = ToSubOptionsProps<TRouter, TFrom, TTo> &\n  DeepPartial<MakeOptionalSearchParams<TRouter, TFrom, TTo>> &\n  DeepPartial<MakeOptionalPathParams<TRouter, TFrom, TTo>> &\n  MaskOptions<TRouter, TMaskFrom, TMaskTo> &\n  TanstackMatchRouteOptions & { injector?: Injector };\n\nexport function matchRoute$<TRouter extends AnyRouter = RegisteredRouter>({\n  injector,\n}: { injector?: Injector } = {}) {\n  !injector && assertInInjectionContext(matchRoute$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const router = injectRouter();\n    const status$ = routerState$({ select: (s) => s.status });\n\n    return <\n      const TFrom extends string = string,\n      const TTo extends string | undefined = undefined,\n      const TMaskFrom extends string = TFrom,\n      const TMaskTo extends string = '',\n    >(\n      opts: MatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n    ) => {\n      const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n      return status$.pipe(\n        map(() =>\n          router.matchRoute(rest as any, {\n            pending,\n            caseSensitive,\n            fuzzy,\n            includeSearch,\n          })\n        )\n      );\n    };\n  });\n}\n\nexport function matchRoute<TRouter extends AnyRouter = RegisteredRouter>({\n  injector,\n}: { injector?: Injector } = {}) {\n  !injector && assertInInjectionContext(matchRoute);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    const matchRoute$Return = matchRoute$({ injector });\n    return <\n      const TFrom extends string = string,\n      const TTo extends string | undefined = undefined,\n      const TMaskFrom extends string = TFrom,\n      const TMaskTo extends string = '',\n    >(\n      opts: MatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n    ) => {\n      return toSignal(matchRoute$Return(opts as any), { injector });\n    };\n  });\n}\n\nexport type MakeMatchRouteOptions<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TFrom extends string = string,\n  TTo extends string | undefined = undefined,\n  TMaskFrom extends string = TFrom,\n  TMaskTo extends string = '',\n> = MatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>;\n\n@Directive({ selector: '[match]', exportAs: 'matchRoute' })\nexport class MatchRoute<\n  TRouter extends AnyRouter = RegisteredRouter,\n  const TFrom extends string = string,\n  const TTo extends string | undefined = undefined,\n  const TMaskFrom extends string = TFrom,\n  const TMaskTo extends string = '',\n> {\n  matchRoute = input<\n    Partial<MakeMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>>\n  >({}, { alias: 'match' });\n\n  private status$ = routerState$({ select: (s) => s.status });\n  private matchRouteFn = matchRoute$<TRouter>();\n\n  private parentLink = inject(Link, { optional: true });\n  private options = computed(() => {\n    const parentLinkOptions = this.parentLink?.linkOptions();\n    if (!parentLinkOptions) return this.matchRoute();\n    return { ...parentLinkOptions, ...this.matchRoute() };\n  });\n\n  match$ = combineLatest([toObservable(this.options), this.status$]).pipe(\n    switchMap(([matchRoute]) => this.matchRouteFn(matchRoute as any))\n  );\n  match = toSignal(this.match$);\n}\n","import {\n  AnyContext,\n  AnyRoute,\n  AnyRouter,\n  Constrain,\n  ConstrainLiteral,\n  FileBaseRouteOptions,\n  FileRoutesByPath,\n  LazyRouteOptions,\n  RegisteredRouter,\n  ResolveParams,\n  RouteById,\n  RouteConstraints,\n  RouteIds,\n  RouteLoaderFn,\n  UpdatableRouteOptions,\n} from '@tanstack/router-core';\nimport warning from 'tiny-warning';\nimport { loaderData, loaderData$, LoaderDataRoute } from './loader-data';\nimport { loaderDeps, loaderDeps$, LoaderDepsRoute } from './loader-deps';\nimport { match, match$, MatchRoute } from './match';\nimport { params, params$, ParamsRoute } from './params';\nimport { createRoute, Route } from './route';\nimport {\n  routeContext,\n  routeContext$,\n  RouteContextRoute,\n} from './route-context';\nimport { search, search$, SearchRoute } from './search';\n\nexport function createFileRoute<\n  TFilePath extends keyof FileRoutesByPath,\n  TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],\n  TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'],\n  TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'],\n  TFullPath extends\n    RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath'],\n>(\n  path: TFilePath\n): FileRoute<TFilePath, TParentRoute, TId, TPath, TFullPath>['createRoute'] {\n  return new FileRoute<TFilePath, TParentRoute, TId, TPath, TFullPath>(path, {\n    silent: true,\n  }).createRoute;\n}\n\n/**\n @deprecated It's no longer recommended to use the `FileRoute` class directly.\n  Instead, use `createFileRoute('/path/to/file')(options)` to create a file route.\n */\nexport class FileRoute<\n  TFilePath extends keyof FileRoutesByPath,\n  TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],\n  TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'],\n  TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'],\n  TFullPath extends\n    RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath'],\n> {\n  silent?: boolean;\n\n  constructor(\n    public path: TFilePath,\n    _opts?: { silent: boolean }\n  ) {\n    this.silent = _opts?.silent;\n  }\n\n  createRoute = <\n    TSearchValidator = undefined,\n    TParams = ResolveParams<TPath>,\n    TRouteContextFn = AnyContext,\n    TBeforeLoadFn = AnyContext,\n    TLoaderDeps extends Record<string, any> = {},\n    TLoaderFn = undefined,\n    TChildren = unknown,\n  >(\n    options?: FileBaseRouteOptions<\n      TParentRoute,\n      TId,\n      TPath,\n      TSearchValidator,\n      TParams,\n      TLoaderDeps,\n      TLoaderFn,\n      AnyContext,\n      TRouteContextFn,\n      TBeforeLoadFn\n    > &\n      UpdatableRouteOptions<\n        TParentRoute,\n        TId,\n        TFullPath,\n        TParams,\n        TSearchValidator,\n        TLoaderFn,\n        TLoaderDeps,\n        AnyContext,\n        TRouteContextFn,\n        TBeforeLoadFn\n      >\n  ): Route<\n    TParentRoute,\n    TPath,\n    TFullPath,\n    TFilePath,\n    TId,\n    TSearchValidator,\n    TParams,\n    AnyContext,\n    TRouteContextFn,\n    TBeforeLoadFn,\n    TLoaderDeps,\n    TLoaderFn,\n    TChildren,\n    unknown\n  > => {\n    warning(\n      this.silent,\n      'FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.'\n    );\n    const route = createRoute(options as any);\n    (route as any).isRoot = false;\n    return route as any;\n  };\n}\n\n/**\n @deprecated It's recommended not to split loaders into separate files.\n  Instead, place the loader function in the the main route file, inside the\n  `createFileRoute('/path/to/file)(options)` options.\n */\nexport function FileRouteLoader<\n  TFilePath extends keyof FileRoutesByPath,\n  TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],\n>(\n  _path: TFilePath\n): <TLoaderFn>(\n  loaderFn: Constrain<\n    TLoaderFn,\n    RouteLoaderFn<\n      TRoute['parentRoute'],\n      TRoute['types']['id'],\n      TRoute['types']['params'],\n      TRoute['types']['loaderDeps'],\n      TRoute['types']['routerContext'],\n      TRoute['types']['routeContextFn'],\n      TRoute['types']['beforeLoadFn']\n    >\n  >\n) => TLoaderFn {\n  warning(\n    false,\n    `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`\n  );\n  return (loaderFn) => loaderFn as any;\n}\n\nexport class LazyRoute<TRoute extends AnyRoute> {\n  options: {\n    id: string;\n  } & LazyRouteOptions;\n\n  constructor(\n    opts: {\n      id: string;\n    } & LazyRouteOptions\n  ) {\n    this.options = opts;\n  }\n\n  match$: MatchRoute<true, TRoute['id']> = (opts) =>\n    match$({ ...opts, from: this.options.id } as any) as any;\n  match: MatchRoute<false, TRoute['id']> = (opts) =>\n    match({ ...opts, from: this.options.id } as any) as any;\n\n  routeContext$: RouteContextRoute<true, TRoute['id']> = (opts) =>\n    routeContext$({ ...opts, from: this.options.id } as any);\n  routeContext: RouteContextRoute<false, TRoute['id']> = (opts) =>\n    routeContext({ ...opts, from: this.options.id } as any);\n\n  search$: SearchRoute<true, TRoute['id']> = (opts) =>\n    search$({ ...opts, from: this.options.id } as any) as any;\n  search: SearchRoute<false, TRoute['id']> = (opts) =>\n    search({ ...opts, from: this.options.id } as any) as any;\n\n  params$: ParamsRoute<true, TRoute['id']> = (opts) =>\n    params$({ ...opts, from: this.options.id } as any) as any;\n  params: ParamsRoute<false, TRoute['id']> = (opts) =>\n    params({ ...opts, from: this.options.id } as any) as any;\n\n  loaderDeps$: LoaderDepsRoute<true, TRoute['id']> = (opts) =>\n    loaderDeps$({ ...opts, from: this.options.id } as any);\n  loaderDeps: LoaderDepsRoute<false, TRoute['id']> = (opts) =>\n    loaderDeps({ ...opts, from: this.options.id } as any);\n\n  loaderData$: LoaderDataRoute<true, TRoute['id']> = (opts) =>\n    loaderData$({ ...opts, from: this.options.id } as any);\n  loaderData: LoaderDataRoute<false, TRoute['id']> = (opts) =>\n    loaderData({ ...opts, from: this.options.id } as any);\n}\n\nexport function createLazyRoute<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TId extends string = string,\n  TRoute extends AnyRoute = RouteById<TRouter['routeTree'], TId>,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n  return (opts: LazyRouteOptions) => {\n    return new LazyRoute<TRoute>({\n      id: id,\n      ...opts,\n    });\n  };\n}\nexport function createLazyFileRoute<\n  TFilePath extends keyof FileRoutesByPath,\n  TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],\n>(id: TFilePath) {\n  return (opts: LazyRouteOptions) => new LazyRoute<TRoute>({ id, ...opts });\n}\n","import {\n  Directive,\n  effect,\n  EnvironmentInjector,\n  inject,\n  input,\n  Provider,\n} from '@angular/core';\nimport {\n  AnyRoute,\n  type AnyRouter,\n  type RegisteredRouter,\n  type RouterOptions,\n} from '@tanstack/router-core';\nimport { Matches } from './matches';\nimport { injectRouter, NgRouter } from './router';\n\nexport type RouterRootOptions<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<\n  RouterOptions<\n    TRouter['routeTree'],\n    NonNullable<TRouter['options']['trailingSlash']>,\n    false,\n    TRouter['history'],\n    TDehydrated\n  >,\n  'context'\n> & {\n  router: TRouter;\n  context?: Partial<\n    RouterOptions<\n      TRouter['routeTree'],\n      NonNullable<TRouter['options']['trailingSlash']>,\n      false,\n      TRouter['history'],\n      TDehydrated\n    >['context']\n  >;\n};\n\n@Directive({\n  selector: 'router-root,RouterRoot',\n  hostDirectives: [Matches],\n})\nexport class RouterRoot<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TDehydrated extends Record<string, any> = Record<string, any>,\n> {\n  router = input<RouterRootOptions<TRouter, TDehydrated>['router']>(\n    injectRouter() as unknown as TRouter\n  );\n  options = input<Omit<RouterRootOptions<TRouter, TDehydrated>, 'router'>>({});\n\n  constructor() {\n    const environmentInjector = inject(EnvironmentInjector);\n    effect(() => {\n      const [router, options] = [this.router(), this.options()];\n      router.update({\n        ...router.options,\n        ...options,\n        context: {\n          ...router.options.context,\n          ...options.context,\n          getRouteInjector(routeId: string, providers: Provider[] = []) {\n            return (\n              router as unknown as NgRouter<AnyRoute>\n            ).getRouteEnvInjector(\n              routeId,\n              environmentInjector,\n              providers,\n              router\n            );\n          },\n        },\n      });\n    });\n  }\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { routerState$ } from './router-state';\n\nexport function canGoBack$({ injector }: { injector?: Injector } = {}) {\n  !injector && assertInInjectionContext(canGoBack$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return routerState$({\n      select: (s) => s.location.state.__TSR_index !== 0,\n      injector,\n    });\n  });\n}\n\nexport function canGoBack({ injector }: { injector?: Injector } = {}) {\n  !injector && assertInInjectionContext(canGoBack);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(canGoBack$({ injector }));\n  });\n}\n","import {\n  assertInInjectionContext,\n  inject,\n  Injector,\n  runInInjectionContext,\n  Signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n  AnyRouter,\n  RegisteredRouter,\n  RouterState,\n} from '@tanstack/router-core';\nimport { Observable } from 'rxjs';\nimport { routerState$ } from './router-state';\n\nexport interface LocationBaseOptions<TRouter extends AnyRouter, TSelected> {\n  select?: (state: RouterState<TRouter['routeTree']>['location']) => TSelected;\n  injector?: Injector;\n}\n\nexport type LocationResult<\n  TRouter extends AnyRouter,\n  TSelected,\n> = unknown extends TSelected\n  ? RouterState<TRouter['routeTree']>['location']\n  : TSelected;\n\nexport function location$<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({\n  injector,\n  select,\n}: LocationBaseOptions<TRouter, TSelected> = {}): Observable<\n  LocationResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(location$);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return routerState$({\n      injector,\n      select: (state) => (select ? select(state.location) : state.location),\n    }) as Observable<LocationResult<TRouter, TSelected>>;\n  });\n}\n\nexport function location<\n  TRouter extends AnyRouter = RegisteredRouter,\n  TSelected = unknown,\n>({ injector, select }: LocationBaseOptions<TRouter, TSelected> = {}): Signal<\n  LocationResult<TRouter, TSelected>\n> {\n  !injector && assertInInjectionContext(location);\n\n  if (!injector) {\n    injector = inject(Injector);\n  }\n\n  return runInInjectionContext(injector, () => {\n    return toSignal(location$({ injector, select })) as Signal<\n      LocationResult<TRouter, TSelected>\n    >;\n  });\n}\n","import {\n  afterNextRender,\n  booleanAttribute,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  NgZone,\n  signal,\n  untracked,\n} from '@angular/core';\nimport { TanStackRouterDevtoolsCore } from '@tanstack/router-devtools-core';\nimport { injectRouter } from './router';\n\n@Directive({\n  selector: 'router-devtools,RouterDevtools',\n  host: { style: 'display: block;' },\n})\nexport class RouterDevtools {\n  private injectedRouter = injectRouter();\n  private host = inject<ElementRef<HTMLDivElement>>(ElementRef);\n  private ngZone = inject(NgZone);\n\n  router = input(this.injectedRouter);\n  initialIsOpen = input(undefined, { transform: booleanAttribute });\n  panelOptions = input<Partial<HTMLDivElement>>({});\n  closeButtonOptions = input<Partial<HTMLButtonElement>>({});\n  toggleButtonOptions = input<Partial<HTMLButtonElement>>({});\n  shadowDOMTarget = input<ShadowRoot>();\n  containerElement = input<string | HTMLElement>();\n  position = input<'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'>();\n\n  private devtools = signal<TanStackRouterDevtoolsCore | null>(null);\n\n  constructor() {\n    afterNextRender(() => {\n      const router = untracked(this.router);\n      const [\n        initialIsOpen,\n        panelOptions,\n        closeButtonOptions,\n        toggleButtonOptions,\n        shadowDOMTarget,\n        containerElement,\n        position,\n        activeRouterState,\n      ] = [\n        untracked(this.initialIsOpen),\n        untracked(this.panelOptions),\n        untracked(this.closeButtonOptions),\n        untracked(this.toggleButtonOptions),\n        untracked(this.shadowDOMTarget),\n        untracked(this.containerElement),\n        untracked(this.position),\n        router.state,\n      ];\n\n      // initial devTools\n      this.devtools.set(\n        new TanStackRouterDevtoolsCore({\n          router,\n          routerState: activeRouterState,\n          initialIsOpen,\n          position,\n          panelProps: panelOptions,\n          closeButtonProps: closeButtonOptions,\n          toggleButtonProps: toggleButtonOptions,\n          shadowDOMTarget,\n          containerElement,\n        })\n      );\n    });\n\n    effect(() => {\n      const devtools = this.devtools();\n      if (!devtools) return;\n      this.ngZone.runOutsideAngular(() => devtools.setRouter(this.router()));\n    });\n\n    effect((onCleanup) => {\n      const devtools = this.devtools();\n      if (!devtools) return;\n      this.ngZone.runOutsideAngular(() => {\n        const unsub = untracked(this.router).__store.subscribe(\n          ({ currentVal }) => {\n            devtools.setRouterState(currentVal);\n          }\n        );\n        onCleanup(() => unsub());\n      });\n    });\n\n    effect(() => {\n      const devtools = this.devtools();\n      if (!devtools) return;\n\n      this.ngZone.runOutsideAngular(() => {\n        devtools.setOptions({\n          initialIsOpen: this.initialIsOpen(),\n          panelProps: this.panelOptions(),\n          closeButtonProps: this.closeButtonOptions(),\n          toggleButtonProps: this.toggleButtonOptions(),\n          position: this.position(),\n          containerElement: this.containerElement(),\n          shadowDOMTarget: this.shadowDOMTarget(),\n        });\n      });\n    });\n\n    effect((onCleanup) => {\n      const devtools = this.devtools();\n      if (!devtools) return;\n      this.ngZone.runOutsideAngular(() =>\n        devtools.mount(this.host.nativeElement)\n      );\n      onCleanup(() => {\n        this.ngZone.runOutsideAngular(() => devtools.unmount());\n      });\n    });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Transitioner","i1.Matches"],"mappings":";;;;;;;;;;;;;;SAEgB,uBAAuB,GAAA;AACrC,IAAA,OAAO,oBAAoB,CAAI,MAAM,CAAC,EAAE,CAAC;AAC3C;;MCMa,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EANhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAIU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACtC,iBAAA;;;SCDe,SAAS,CAAC,EAAE,QAAQ,KAA8B,EAAE,EAAA;AAClE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,SAAS,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW;AACnC,QAAA,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM;AACnC,KAAC,CAAC;AACJ;;MCqDa,MAAM,GAAG,IAAI,cAAc,CAAqB,QAAQ;MACxD,YAAY,GAAG,IAAI,cAAc,CAE5C,cAAc;SAEA,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB;SAEgB,iBAAiB,GAAA;AAC/B,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B;AAEM,SAAU,aAAa,CAAC,MAAiB,EAAA;IAC7C,OAAO;AACL,QAAA,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AACrC,QAAA;AACE,YAAA,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,MAAK;gBACf,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/C,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAErC,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AACxD,oBAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;AACxB,iBAAC,CAAC;AAEF,gBAAA,MAAM,CAAC,SAAS,CAAC,MAAK;oBACpB,KAAK,CAAC,QAAQ,EAAE;AAChB,oBAAA,KAAK,EAAE;AACT,iBAAC,CAAC;AAEF,gBAAA,OAAO,KAAK,CAAC,YAAY,EAAE;aAC5B;AACF,SAAA;KACF;AACH;AAEa,MAAA,YAAY,GAAmB,CAAC,OAAO,KAAI;AACtD,IAAA,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC;AAC9B;AAEM,MAAO,QAMX,SAAQ,UAMT,CAAA;AACS,IAAA,SAAS,GAAG,IAAI,GAAG,EAAoB;AACvC,IAAA,YAAY,GAAG,IAAI,GAAG,EAA+B;AAE7D,IAAA,WAAA,CACE,OAMC,EAAA;QAED,KAAK,CAAC,OAAO,CAAC;;AAGhB,IAAA,gBAAgB,CACd,OAAe,EACf,MAAgB,EAChB,YAAwB,EAAE,EAAA;QAE1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACpD,QAAA,IAAI,gBAAgB;AAAE,YAAA,OAAO,gBAAgB;AAE7C,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS;YACT,MAAM;AACN,YAAA,IAAI,EAAE,OAAO;AACd,SAAA,CAAC;;QAGF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;AACrC,QAAA,OAAO,QAAQ;;IAGjB,mBAAmB,CACjB,OAAe,EACf,MAA2B,EAC3B,SAAwB,GAAA,EAAE,EAC1B,MAAiB,EAAA;QAEjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACvD,QAAA,IAAI,gBAAgB;AAAE,YAAA,OAAO,gBAAgB;AAE7C,QAAA,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;;QAGtE,OAAO,KAAK,EAAE;AACZ,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE;gBAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;;AAG5C,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC;AAC3B,kBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;kBAC1C,IAAI;YAER,IAAI,cAAc,EAAE;gBAClB,MAAM,GAAG,cAAc;gBACvB;;AAGF,YAAA,KAAK,GAAG,KAAK,CAAC,WAAW;;QAG3B,MAAM,WAAW,GAAG,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;;AAGzE,QAAA,IAAI,OAAO,KAAK,WAAW,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAChC,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;AAC5C,oBAAA,GAAG,CAAC,MAAM,GAAG,WAAW;;AAE5B,aAAC,CAAC;;;QAIJ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;AAC3C,QAAA,OAAO,WAAW;;AAErB;;AC9KK,SAAU,YAAY,CAG1B,EACA,MAAM,EACN,QAAQ,EACR,KAAK,GAAG,OAAO,GACwB,EAAA;AACvC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,eAAe,GAAG,iBAAiB,EAAE;AAC3C,QAAA,IAAI,MAAM;YACR,OAAO,eAAe,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAQ,CAAC,EAC5B,oBAAoB,CAAC,KAAK,CAAC,CAC5B;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAQ,CAAC;AACjE,KAAC,CAAsD;AACzD;AAEgB,SAAA,WAAW,CAGzB,EACA,MAAM,EACN,QAAQ,EACR,KAAK,GAAG,OAAO,GAAA,GAC2B,EAAE,EAAA;AAC5C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;IAG7B,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CACjB;AACpD;;MC1Ba,UAAU,CAAA;AACb,IAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;IAC1B,MAAM,GAAG,YAAY,EAAE;IAEvB,cAAc,GAAG,aAAa,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ;AACnB,QAAA,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3C,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CACD,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,OAAiB,CAC3D,EACD,uBAAuB,EAAE,CAC1B;IACO,SAAS,GAAG,YAAY,CAAC;AAC/B,QAAA,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG;AAC7C,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,YAA0B;QAC9B,eAAe,CAAC,MAAK;YACnB,YAAY,GAAG,aAAa,CAAC;AAC3B,gBAAA,IAAI,CAAC,cAAc;AACnB,gBAAA,IAAI,CAAC,SAAS;aACf,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAI;AAC/B,gBAAA,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,WAAW;oBAAE;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,iBAAA,CAAC;AACJ,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;YAChC,YAAY,EAAE,WAAW,EAAE;AAC7B,SAAC,CAAC;;uGAnCO,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB;;AAwCM,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAS,UAAU,CAAC;MAWjD,UAAU,CAAA;AACrB,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAU;IAE1B,SAAS,GAAG,SAAS,EAAE;IACvB,MAAM,GAAG,YAAY,EAAE;AACvB,IAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC9B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAEzD,IAAA,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,IAAA,SAAS,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClE,IAAA,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,QAAQ,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACnE,GAAG,CACD,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,OAAiB,CAC3D,EACD,uBAAuB,EAAE,CAC1B;IAEO,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACjD,uBAAuB,EAAE,CAC1B;AACO,IAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC1C,GAAG,CACD,CAAC,KAAK,KACJ,KAAK,CAAC,OAAO,CAAC,gBAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAC9C,EACD,uBAAuB,EAAE,CAC1B;AACO,IAAA,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACxC,GAAG,CACD,CAAC,KAAK,KACJ,KAAK,CAAC,OAAO,CAAC,cAAc;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAC5C,EACD,uBAAuB,EAAE,CAC1B;AACO,IAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAC3E,uBAAuB,EAAE,CAC1B;IAEO,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACtE,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EACvE,uBAAuB,EAAE,CAC1B;IACO,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACzE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,EACnD,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,EAC1B,GAAG,CAAC,CAAC,KAAK,MAAM;QACd,OAAO,EAAE,KAAK,CAAC,OAAiB;AAChC,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC9C,CAAC,CAAC,CACJ;AAEO,IAAA,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACzC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACrD,uBAAuB,EAAE,CAC1B;IACO,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,EACzB,oBAAoB,CAClB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAC/D,CACF;IACO,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACnC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,KAAI;AAChC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW;AAC/D,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,OAAO,CAAC,OAAO,EAAS;AAEjD,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAC9B,YAAA,MAAM,YAAY,GAChB,UAAU,CAAC,OAAO,CAAC,YAAY;AAC/B,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB;AACzC,YAAA,IAAI,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC1C,KAAK,CAAC,EAAE,CACT,EAAE,iBAAiB;AAEpB,YAAA,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE;;AAEtC,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACzB,iBAAiB,GAAG,uBAAuB,EAAQ;AACnD,oBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,wBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM;AAC3C,4BAAA,GAAG,IAAI;4BACP,iBAAiB;AAClB,yBAAA,CAAC,CAAC;AACL,qBAAC,CAAC;oBAEF,UAAU,CAAC,MAAK;wBACd,iBAAiB,EAAE,OAAO,EAAE;;AAE5B,wBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM;AAC3C,4BAAA,GAAG,IAAI;AACP,4BAAA,iBAAiB,EAAE,SAAS;AAC7B,yBAAA,CAAC,CAAC;qBACJ,EAAE,YAAY,CAAC;;;YAIpB,OAAO,iBAAiB,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,WAAW;;AAGlE,QAAA,OAAO,WAAW;AACpB,KAAC,CAAC,EACF,uBAAuB,EAAE,CAC1B;AAEO,IAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/B,SAAS,CAAC,CAAC,OAAO,KAAI;QACpB,SAAS,CACP,OAAO,EACP,CAAuC,oCAAA,EAAA,IAAI,CAAC,OAAO,EAAE,CAA0B,wBAAA,CAAA,CAChF;AACD,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,SAAS;AACf,SAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAI;AAC3B,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE;gBAC/B,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC;AAC/D,gBAAA,IAAI,WAAkC;AACtC,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBACpC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,IAAI;oBAC9D,IAAI,CAAC,WAAW,EAAE;AAChB,wBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,4BAAA,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAC/B,CAAA,sDAAA,EAAyD,KAAK,CAAC,EAAE,CAAA,uPAAA,CAAyP,CAC3T;;wBAEH,WAAW,GAAG,eAAe;;;qBAE1B;oBACL,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAI;;AAGnD,gBAAA,IAAI,CAAC,WAAW;AAAE,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AAEjC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC3C,KAAK,CAAC,EAAE,GAAG,YAAY,EACvB,IAAI,CAAC,QAAQ,EACb,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzD;AACD,gBAAA,OAAO,EAAE,CAAC;AACR,oBAAA,SAAS,EAAE,WAAW;oBACtB,QAAQ;AACR,oBAAA,mBAAmB,EAAE,IAAI;AACzB,oBAAA,SAAS,EAAE,IAAI;AACP,iBAAA,CAAC;;AAGb,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAC/D,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE;oBACjC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC;;gBAGjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,EACtC,SAAS,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAI;AACjC,oBAAA,MAAM,UAAU,GAAG,gBAAgB,IAAI;AACvC,oBAAA,IAAI,CAAC,UAAU;AAAE,wBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AAChC,oBAAA,OAAO,EAAE,CAAC;AACR,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,mBAAmB,EAAE,IAAI;AACzB,wBAAA,SAAS,EAAE,IAAI;AACP,qBAAA,CAAC;iBACZ,CAAC,CACH;;AAGH,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC5B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAClB,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,EACpC,SAAS,CAAC,CAAC,GAAG,cAAc,CAAC,KAAI;AAC/B,oBAAA,MAAM,QAAQ,GAAG,cAAc,IAAI,IAAI,YAAY;AACnD,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC3C,KAAK,CAAC,EAAE,GAAG,QAAQ,EACnB,IAAI,CAAC,QAAQ,EACb;AACE,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,QAAQ,EAAE;gCACR,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,gCAAA,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;gCAC5B,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC3C,6BAAA;AACF,yBAAA;AACF,qBAAA,CACF;AACD,oBAAA,OAAO,EAAE,CAAC;AACR,wBAAA,SAAS,EAAE,QAAQ;wBACnB,QAAQ;AACR,wBAAA,mBAAmB,EAAE,IAAI;AACzB,wBAAA,SAAS,EAAE,IAAI;AACP,qBAAA,CAAC;iBACZ,CAAC,CACH;;AAGH,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,MAAM;AAE9D,gBAAA,IAAI,IAAI,CAAC,GAAG,KAAK,gBAAgB,EAAE;oBACjC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAW,CAAC;;AAG1C,gBAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,gBAAA,IAAI,CAAC,GAAG,GAAG,gBAAgB;AAC3B,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC3C,KAAK,CAAC,EAAE,EACR,IAAI,CAAC,QAAQ,CACd;AACD,gBAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CACzD,KAAK,CAAC,EAAE,EACR,IAAI,CAAC,mBAAmB,EACxB,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAC7B,IAAI,CAAC,MAAM,CACZ;AAED,gBAAA,OAAO,EAAE,CAAC;AACR,oBAAA,SAAS,EAAE,gBAAgB;AAC3B,oBAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;AACxB,wBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;AACtD,wBAAA,MAAM,EAAE,QAAQ;qBACjB,CAAC;oBACF,mBAAmB;AACnB,oBAAA,SAAS,EAAE,IAAI;AACP,iBAAA,CAAC;;AAGb,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;SAChB,CAAC,CACH;KACF,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KACf,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACX,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7B,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAC/D,CACF,CACF;AAEO,IAAA,GAAG;AACH,IAAA,MAAM;AAEd,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,YAA0B;QAE9B,eAAe,CAAC,MAAK;AACnB,YAAA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,gBAAA,IAAI,EAAE,CAAC,OAAO,KAAI;AAChB,oBAAA,IAAI,CAAC,OAAO;wBAAE;AACd,oBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,wBAAA,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE;wBAC7C;;oBAEF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO;AAC5D,oBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;oBAEhB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE;wBAChD,QAAQ,EAAE,QAAQ,IAAI,SAAS;wBAC/B,mBAAmB,EAAE,mBAAmB,IAAI,SAAS;AACtD,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE;iBAC7C;AACD,gBAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,wBAAA,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,KAAK;AACrC,wBAAA,IAAI,OAAO;4BAAE,OAAO,CAAC,YAAY,CAAC;AAClC,wBAAA,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;wBAC3B;;AAEF,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;iBACrB;AACF,aAAA,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;YAChC,YAAY,EAAE,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,GAAG,GAAG,SAAS;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACzB,SAAC,CAAC;;uGAjSO,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAlDV,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA2CX,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOD,UAAU,EAAA,UAAA,EAAA,CAAA;kBATtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAE,CAAA;oBACZ,cAAc,EAAE,CAAC,UAAU,CAAC;oBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,qBAAqB,EAAE,WAAW;AACnC,qBAAA;AACF,iBAAA;;MA2SY,MAAM,CAAA;AACT,IAAA,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC1B,MAAM,GAAG,YAAY,EAAE;AACvB,IAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC9B,SAAS,GAAG,SAAS,EAAE;IAEZ,uBAAuB,GACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,IAAI;AAEzC,IAAA,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACrD,IAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACnC,GAAG,CACD,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,OAAiB,CAC3E,EACD,uBAAuB,EAAE,CAC1B;IACO,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACjD,uBAAuB,EAAE,CAC1B;AACO,IAAA,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChD,GAAG,CAAC,CAAC,OAAO,KAAI;AACd,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC;QAC9D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CACL,KAAK,EACL,CAAA,yCAAA,EAA4C,IAAI,CAAC,OAAO,CAA0B,wBAAA,CAAA,CACnF;AACD,YAAA,OAAO,KAAK;;QAEd,OAAO,WAAW,CAAC,cAAc;KAClC,CAAC,CACH;AAEO,IAAA,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACxC,GAAG,CAAC,CAAC,OAAO,KAAI;AACd,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC;QAC7D,IAAI,KAAK,KAAK,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;QAC7B,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE;AAC/B,KAAC,CAAC,EACF,uBAAuB,EAAE,CAC1B;AACO,IAAA,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAC1C,SAAS,CAAC,CAAC,YAAY,KAAI;AACzB,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,OAAO,CAAC,OAAO,EAAS;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW;AACnE,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,OAAO,CAAC,OAAO,EAAS;AACjD,QAAA,OAAO,WAAW;KACnB,CAAC,CACH;AAEO,IAAA,UAAU;AACV,IAAA,MAAM;IAEN,IAAI,GAAG,aAAa,CAAC;AAC3B,QAAA,IAAI,CAAC,qBAAqB;AAC1B,QAAA,IAAI,CAAC,aAAa;AACnB,KAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,oBAAoB,EAAE,YAAY,CAAC,KAAI;QACjD,IAAI,oBAAoB,EAAE;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,GAAG,CAAC,CAAC,KAAK,KAAI;gBACZ,IAAI,WAAW,GAA0B,SAAS;AAElD,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBACpC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,IAAI;oBAC9D,IAAI,CAAC,WAAW,EAAE;AAChB,wBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,4BAAA,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAC/B,CAAA,sDAAA,EAAyD,KAAK,CAAC,EAAE,CAAA,uPAAA,CAAyP,CAC3T;;wBAEH,WAAW,GAAG,eAAe;;;qBAE1B;oBACL,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAI;;AAGnD,gBAAA,IAAI,CAAC,WAAW;AAAE,oBAAA,OAAO,IAAI;gBAE7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,GAAG,YAAY;AACzC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC3C,KAAK,CAAC,EAAE,GAAG,YAAY,EACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,EACjB,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzD;gBACD,OAAO;AACL,oBAAA,SAAS,EAAE,WAAW;oBACtB,QAAQ;AACR,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,YAAY,EAAE,IAAI;iBACV;aACX,CAAC,CACH;;AAGH,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AAElC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;YACpC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAW,CAAC;;AAG1C,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AAEvB,QAAA,IAAI,YAAY,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,GAAG,CAAC,MAAK;gBACP,OAAO;oBACL,SAAS,EAAE,IAAI,CAAC,uBAAuB;AACvC,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,YAAY,EAAE,IAAI;iBACV;aACX,CAAC,CACH;;AAGH,QAAA,IAAI,CAAC,UAAU,GAAG,YAAY;AAC9B,QAAA,OAAO,EAAE,CAAC;AACR,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,IAAI;YACf,YAAY;AACJ,SAAA,CAAC;AACb,KAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAC/C;AAED,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,YAA0B;QAC9B,eAAe,CAAC,MAAK;AACnB,YAAA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,gBAAA,IAAI,EAAE,CAAC,OAAO,KAAI;AAChB,oBAAA,IAAI,CAAC,OAAO;wBAAE;AACd,oBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,wBAAA,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE;wBAC7C;;oBAEF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO;AACrD,oBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,oBAAA,IAAI,CAAC,SAAS;wBAAE;oBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE;wBAChD,QAAQ,EAAE,QAAQ,IAAI,SAAS;AAChC,qBAAA,CAAC;oBACF,IAAI,YAAY,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;;AAE/C,oBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE;iBAC7C;AACD,gBAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;iBACrB;AACF,aAAA,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;YAChC,YAAY,EAAE,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC7B,SAAC,CAAC;;uGAjKO,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,yEAHP,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGD,MAAM,EAAA,UAAA,EAAA,CAAA;kBALlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAAE,CAAA;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACxUK,SAAU,MAAM,CAMpB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3D,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAK;YACnC,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,OAAO,IAAI;AAC1B,YAAA,OAAO,cAAc;AACvB,SAAC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACpD,YAAY,CAAC,cAAc,CAAC;AAC7B,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAI;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;gBAC/B,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO;AAC/D,aAAC,CAAC;AACF,YAAA,SAAS,CACP,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EACvC,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,GAAG,yBAAyB,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,GAAG,kBAAkB,CAAA,CAAE,CAC3F;AACD,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,OAAO,SAAS;;AAGlB,YAAA,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK;SAChD,CAAC,CACI;AACV,KAAC,CAAC;AACJ;AAEM,SAAU,KAAK,CAMnB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC;IAE5C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AACrE,KAAC,CAAQ;AACX;;ACpGM,SAAU,WAAW,CAKzB,EACA,QAAQ,EACR,GAAG,IAAI,EAC+C,EAAA;AAGtD,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,MAAM,CAAC;YACZ,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;AACxE,SAAA,CAAQ;AACX,KAAC,CAAC;AACJ;AAEM,SAAU,UAAU,CAKxB,EACA,QAAQ,EACR,GAAG,IAAI,EAC+C,EAAA;AAGtD,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1E,KAAC,CAAQ;AACX;;AClDM,SAAU,WAAW,CAIzB,EACA,QAAQ,EACR,GAAG,IAAI,EACsC,EAAA;AAG7C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AAChC,QAAA,OAAO,MAAM,CAAC;AACZ,YAAA,GAAG,IAAI;AACP,YAAA,MAAM,EAAE,CAAC,CAAC,KAAI;AACZ,gBAAA,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU;aACpD;AACF,SAAA,CAA+D;AAClE,KAAC,CAAC;AACJ;AAEM,SAAU,UAAU,CAIxB,EACA,QAAQ,EACR,GAAG,IAAI,EACsC,EAAA;AAG7C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1E,KAAC,CAAQ;AACX;;ACjCM,SAAU,OAAO,CAMrB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,MAAM,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAK;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;gBAChB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;aAC9D;AACF,SAAA,CAAQ;AACX,KAAC,CAAC;AACJ;AAEM,SAAU,MAAM,CAMpB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,CAAQ;AAC/D,KAAC,CAAC;AACJ;;AC1FM,SAAU,aAAa,CAK3B,EACA,QAAQ,EACR,GAAG,IAAI,EAGR,EAAA;AACC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,MAAM,CAAC;AACZ,YAAA,GAAI,IAAY;AAChB,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;gBAChB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO;aAChE;AACF,SAAA,CAAQ;AACX,KAAC,CAAC;AACJ;AAEM,SAAU,YAAY,CAK1B,EACA,QAAQ,EACR,GAAG,IAAI,EAGR,EAAA;AACC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,CAAQ;AACrE,KAAC,CAAC;AACJ;;ACpBM,SAAU,OAAO,CAMrB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,MAAM,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAK;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,MAAM,EAAE,CAAC,KAAK,KAAI;gBAChB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;aAC9D;AACF,SAAA,CAAQ;AACX,KAAC,CAAC;AACJ;AAEM,SAAU,MAAM,CAMpB,EACA,QAAQ,EACR,GAAG,IAAI,EAOR,EAAA;AAGC,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,MAAM,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAS,CAAC,CAAQ;AAC/D,KAAC,CAAC;AACJ;;MCtDa,uBAAuB,GAAG,IAAI,cAAc,CACvD,yBAAyB;MAEd,2BAA2B,GACtC,IAAI,cAAc,CAAqB,6BAA6B;AAKhE,SAAU,QAAQ,CAGtB,EAAyD,EAAA;AACzD,IAAA,OAAO,IAAI,QAAQ,CAAe,EAAE,EAAE,EAAE,CAAC;AAC3C;AAEM,MAAO,QAGX,SAAQ,YAA0B,CAAA;AAClC;;AAEG;IACH,WAAY,CAAA,EAAE,EAAE,EAAe,EAAA;AAC7B,QAAA,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;;AAGf,IAAA,MAAM,GAA0B,CAAC,IAAI,KACnC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAClD,IAAA,KAAK,GAA2B,CAAC,IAAI,KACnC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAEjD,IAAA,aAAa,GAAiC,CAAC,IAAI,KACjD,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAClD,IAAA,YAAY,GAAkC,CAAC,IAAI,KACjD,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAEjD,IAAA,OAAO,GAA2B,CAAC,IAAI,KACrC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAA4B,CAAC,IAAI,KACrC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,OAAO,GAA2B,CAAC,IAAI,KACrC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAA4B,CAAC,IAAI,KACrC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,WAAW,GAA+B,CAAC,IAAI,KAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;IAChD,UAAU,GAAgC,CAAC,IAAI,KAC7C,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAS,CAAC;AAE9D,IAAA,WAAW,GAA+B,CAAC,IAAI,KAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;IAChD,UAAU,GAAgC,CAAC,IAAI,KAC7C,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAS,CAAC;AAC/D;AAEK,MAAO,KAsBX,SAAQ,SAeT,CAAA;AACC;;AAEG;AACH,IAAA,WAAA,CACE,OAaC,EAAA;QAED,KAAK,CAAC,OAAO,CAAC;;AAGhB,IAAA,MAAM,GAA0B,CAAC,IAAI,KACnC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAClD,IAAA,KAAK,GAA2B,CAAC,IAAI,KACnC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAEjD,IAAA,aAAa,GAAiC,CAAC,IAAI,KACjD,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAClD,IAAA,YAAY,GAAkC,CAAC,IAAI,KACjD,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAEjD,IAAA,OAAO,GAA2B,CAAC,IAAI,KACrC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAA4B,CAAC,IAAI,KACrC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,OAAO,GAA2B,CAAC,IAAI,KACrC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAA4B,CAAC,IAAI,KACrC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,WAAW,GAA+B,CAAC,IAAI,KAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD,IAAA,UAAU,GAAgC,CAAC,IAAI,KAC7C,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAE/C,IAAA,WAAW,GAA+B,CAAC,IAAI,KAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD,IAAA,UAAU,GAAgC,CAAC,IAAI,KAC7C,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD;AAEK,SAAU,WAAW,CAqBzB,OAaC,EAAA;AAiBD,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;;IAG1D,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,EAAE;QACtE,OAAO,CAAC,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC;;AAGtE,IAAA,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC;;AAGlE,IAAA,OAAO,IAAI,KAAK,CAed,OAAO,CAAC;AACZ;SAIgB,0BAA0B,GAAA;IACxC,OAAO,CAOL,OAOC,KACC;AACF,QAAA,OAAO,eAAe,CAOpB,OAAc,CAAC;AACnB,KAAC;AACH;AAEM,MAAO,SASX,SAAQ,aAST,CAAA;AACC;;AAEG;AACH,IAAA,WAAA,CACE,OAOC,EAAA;QAED,KAAK,CAAC,OAAO,CAAC;;AAGhB,IAAA,MAAM,GAAkC,CAAC,IAAI,KAC3C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAClD,IAAA,KAAK,GAAmC,CAAC,IAAI,KAC3C,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAEjD,IAAA,aAAa,GAAyC,CAAC,IAAI,KACzD,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAClD,IAAA,YAAY,GAA0C,CAAC,IAAI,KACzD,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAEjD,IAAA,OAAO,GAAmC,CAAC,IAAI,KAC7C,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAAoC,CAAC,IAAI,KAC7C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,OAAO,GAAmC,CAAC,IAAI,KAC7C,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AACnD,IAAA,MAAM,GAAoC,CAAC,IAAI,KAC7C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAQ;AAElD,IAAA,WAAW,GAAuC,CAAC,IAAI,KACrD,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD,IAAA,UAAU,GAAwC,CAAC,IAAI,KACrD,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAE/C,IAAA,WAAW,GAAuC,CAAC,IAAI,KACrD,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD,IAAA,UAAU,GAAwC,CAAC,IAAI,KACrD,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAS,CAAC;AAChD;AAEK,SAAU,eAAe,CAQ7B,OAOC,EAAA;AAWD,IAAA,OAAO,IAAI,SAAS,CAOlB,OAAO,CAAC;AACZ;AAEM,MAAO,aASX,SAAQ,KAcT,CAAA;AACC,IAAA,WAAA,CACE,OAqBC,EAAA;AAED,QAAA,KAAK,CAAC;AACJ,YAAA,GAAI,OAAe;AACnB,YAAA,EAAE,EAAE,KAAK;AACV,SAAA,CAAC;;AAEL;AAED,SAAS,uBAAuB,CAAsC,EAAO,EAAA;IAC3E,MAAM,UAAU,GAAG,EAAE;AACrB,IAAA,OAAO,CAAC,GAAG,IAAqB,KAAI;AAClC,QAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC1E,QAAA,OAAO,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7E,KAAC;AACH;;MC/ba,YAAY,CAAA;AACb,IAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACzC,IAAA,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;uGAFnB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAhCb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAUU,YAAY,EAAA,UAAA,EAAA,CAAA;kBAlCxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAC5B,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAQgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA;;;MChBpC,YAAY,CAAA;IACf,MAAM,GAAG,YAAY,EAAE;AACvB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE/B,IAAA,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACrD,IAAA,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7C,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,EAC7D,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAClC;IACO,UAAU,GAAG,YAAY,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS;AAC1B,QAAA,KAAK,EAAE,MAAM,KAAK;AACnB,KAAA,CAAC;IACM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAC/C,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CACpC;AAEO,IAAA,gBAAgB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;IAC7C,aAAa,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU;AACf,QAAA,IAAI,CAAC,gBAAgB;AACrB,QAAA,IAAI,CAAC,kBAAkB;AACxB,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CACD,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,iBAAiB,CAAC,KAC9C,SAAS,IAAI,eAAe,IAAI,iBAAiB,CACpD,EACD,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAClC;IACO,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACrD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CACpC;IAEO,cAAc,GAAG,aAAa,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU;AACf,QAAA,IAAI,CAAC,kBAAkB;KACxB,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAC,KAAK,SAAS,IAAI,iBAAiB,CAAC,EACvE,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAClC;IACO,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACvD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CACpC;AAEO,IAAA,kBAAkB,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;IAE5D,KAAK,GAAG,aAAa,CAAC;AAC5B,QAAA,IAAI,CAAC,kBAAkB;AACvB,QAAA,IAAI,CAAC,UAAU;AAChB,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAAI;AACrC,QAAA,IAAI,iBAAiB,IAAI,CAAC,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,aAAA,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;KAElE,CAAC,CACH;IACO,YAAY,GAAG,aAAa,CAAC;AACnC,QAAA,IAAI,CAAC,sBAAsB;AAC3B,QAAA,IAAI,CAAC,cAAc;AACpB,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,qBAAqB,EAAE,aAAa,CAAC,KAAI;;AAE7C,QAAA,IAAI,qBAAqB,IAAI,CAAC,aAAa,EAAE;AAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,aAAA,CAAC;;KAEL,CAAC,CACH;IACO,QAAQ,GAAG,aAAa,CAAC;AAC/B,QAAA,IAAI,CAAC,qBAAqB;AAC1B,QAAA,IAAI,CAAC,aAAa;AACnB,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,YAAY,CAAC,KAAI;;AAE3C,QAAA,IAAI,oBAAoB,IAAI,CAAC,YAAY,EAAE;AACzC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;AACnC,gBAAA,GAAG,CAAC;AACJ,gBAAA,MAAM,EAAE,MAAM;gBACd,gBAAgB,EAAE,CAAC,CAAC,QAAQ;AAC7B,aAAA,CAAC,CAAC;AACH,YAAA,IACE,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW;AACpC,gBAAA,eAAe,IAAI,IAAI,CAAC,QAAQ,EAChC;AACA,gBAAA,MAAM,yBAAyB,GAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B;AAC5D,oBAAA,IAAI;AAEN,gBAAA,IACE,yBAAyB;oBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EACtC;AACA,oBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAChC;AACD,oBAAA,IAAI,EAAE;AAAE,wBAAA,EAAE,CAAC,cAAc,CAAC,yBAAyB,CAAC;;;;KAI3D,CAAC,CACH;AAED,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,KAAI;AACnC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,gBAAA,EAAE,EAAE;AACJ,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,aAAC;;AAGH,QAAA,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE;;QAGvC,eAAe,CAAC,MAAK;YACnB,SAAS,CAAC,MAAK;AACb,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;gBACxC,IACE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;qBACtD,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AAC7C,wBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAClC;oBACA;;AAEF,gBAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAChE,gBAAA,MAAM,OAAO,GAAG,YAAW;AACzB,oBAAA,IAAI;AACF,wBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;oBAC/D,OAAO,GAAG,EAAE;AACZ,wBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;;AAEtB,iBAAC;gBACD,KAAK,OAAO,EAAE;AAChB,aAAC,CAAC;YAEF,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAC/C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC7C,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;;IAG7D,QAAQ,GAAA;;;QAGN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAErE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAC7C,YAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ;AACvC,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,sBAAsB,EAAE,IAAI;AAC7B,SAAA,CAAC;QAEF,IACE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9C,YAAA,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAChC;AACA,YAAA,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;QAGrE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;;uGAtL/B,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MCaY,OAAO,CAAA;IACV,MAAM,GAAG,YAAY,EAAE;AACvB,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAE9B,uBAAuB,GAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,IAAI;AAEzC,IAAA,SAAS,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IAClE,YAAY,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AAEhE,IAAA,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACzC,SAAS,CAAC,CAAC,WAAW,KAAI;AACxB,QAAA,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;AAClE,QAAA,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/C,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAC/B,SAAS,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAC9D;KACF,CAAC,CACH;AAEO,IAAA,MAAM;AAEN,IAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACjC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,KAAI;QACxB,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,gBAAA,OAAO,EAAE,CAAC;oBACR,SAAS,EAAE,IAAI,CAAC,uBAAuB;AACvC,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,OAAO,EAAE,IAAI;AACL,iBAAA,CAAC;;AAEb,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;QAGjB,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAI;AAChB,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,IAAI;YACzB,IAAI,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAW;YACrD,OAAO;AACL,gBAAA,SAAS,EAAE,UAAU;gBACrB,OAAO;AACP,gBAAA,SAAS,EAAE,IAAI;aACP;SACX,CAAC,CACH;KACF,CAAC,CACH;AAED,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,YAA0B;QAC9B,eAAe,CAAC,MAAK;AACnB,YAAA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,gBAAA,IAAI,EAAE,CAAC,OAAO,KAAI;AAChB,oBAAA,IAAI,CAAC,OAAO;wBAAE;AACd,oBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACtB,wBAAA,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE;wBAC7C;;AAEF,oBAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO;AACtC,oBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;oBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;oBACjD,IAAI,OAAO,EAAE;wBACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;;AAE1C,oBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE;iBAC7C;AACD,gBAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,oBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,oBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/B,wBAAA,SAAS,EAAE;AACT,4BAAA;AACE,gCAAA,OAAO,EAAE,uBAAuB;AAChC,gCAAA,QAAQ,EAAE;AACR,oCAAA,KAAK,EAAE,KAAK;AACZ,oCAAA,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;oCAC5B,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC3C,iCAAA;AACF,6BAAA;AACF,yBAAA;wBACD,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC;AAChE,oBAAA,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACpC,oBAAA,IAAI,CAAC,MAAM,GAAG,SAAS;iBACxB;AACF,aAAA,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;YAChC,YAAY,EAAE,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACzB,SAAC,CAAC;;uGAhGO,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBADnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE;;AA+GvC,SAAU,QAAQ,CAGtB,EACA,QAAQ,EACR,GAAG,IAAI,EAAA,GACmC,EAAE,EAAA;AAG5C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,YAAY,CAAC;YAClB,QAAQ;AACR,YAAA,MAAM,EAAE,CAAC,KAAwC,KAAI;AACnD,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;gBAC7B,OAAO,IAAI,CAAC;AACV,sBAAE,IAAI,CAAC,MAAM,CAAC,OAA8C;sBAC1D,OAAO;aACZ;AACF,SAAA,CAAkD;AACrD,KAAC,CAAC;AACJ;AAEM,SAAU,OAAO,CAGrB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAA,GAA6C,EAAE,EAAA;AAGlE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,OAAO,CAAC;IAE9C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAE9C;AACH,KAAC,CAAC;AACJ;AAEM,SAAU,cAAc,CAG5B,EACA,QAAQ,EACR,GAAG,IAAI,EAAA,GACmC,EAAE,EAAA;AAG5C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,cAAc,CAAC;IAErD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,OAAO,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC9D,GAAG,CAAC,CAAC,OAAO,KAAI;YACd,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAC1B,CAAC,EACD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAChD;YACD,OAAO,IAAI,CAAC;AACV,kBAAE,IAAI,CAAC,MAAM,CAAC,MAA6C;kBACzD,MAAM;AACZ,SAAC,CAAC,EACF,uBAAuB,EAAS,CACgB;AACpD,KAAC,CAAC;AACJ;AAEM,SAAU,aAAa,CAG3B,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAA,GAA6C,EAAE,EAAA;AAGlE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,aAAa,CAAC;IAEpD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAEpD;AACH,KAAC,CAAC;AACJ;AACM,SAAU,aAAa,CAG3B,EACA,QAAQ,EACR,GAAG,IAAI,EAAA,GACmC,EAAE,EAAA;AAG5C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,aAAa,CAAC;IAEpD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,OAAO,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC9D,GAAG,CAAC,CAAC,OAAO,KAAI;YACd,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAC1B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,CACpD;YACD,OAAO,IAAI,CAAC;AACV,kBAAE,IAAI,CAAC,MAAM,CAAC,MAA6C;kBACzD,MAAM;AACZ,SAAC,CAAC,EACF,uBAAuB,EAAS,CACgB;AACpD,KAAC,CAAC;AACJ;AAEM,SAAU,YAAY,CAG1B,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAA,GAA6C,EAAE,EAAA;AAGlE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,YAAY,CAAC;IAEnD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAEnD;AACH,KAAC,CAAC;AACJ;;MC/Oa,IAAI,CAAA;AACf,IAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC3B,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,SAAS,EAAE,CACT,KAIkC,KAChC;AACF,YAAA,QAAQ,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;SAI1D;AACF,KAAA,CAAC;IACF,iBAAiB,GAAG,KAAK,CACvB,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB;AACE,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,SAAS,EAAE,CACT,KAAmE,KACjE;YACF,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,gBAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YAEtD,IAAI,CAAC,KAAK,CAAC,KAAK;AAAE,gBAAA,KAAK,CAAC,KAAK,GAAG,QAAQ;AACxC,YAAA,OAAO,KAAK;SACb;AACF,KAAA,CACF;IAEO,MAAM,GAAG,YAAY,EAAE;AAC/B,IAAA,WAAW,GAAG,MAAM,CAAgC,UAAU,CAAC;AAEvD,IAAA,aAAa,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AAElE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC;AAC3D,IAAA,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;AACrD,IAAA,kBAAkB,GAAG,QAAQ,CACnC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,CAC3C;AACO,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;AAC3D,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,CAAC;IAErE,aAAa,GAAG,QAAQ,CAC9B,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,CACzE;AACO,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC;AAC/D,IAAA,wBAAwB,GAAG,QAAQ,CACzC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CACvC;AACO,IAAA,0BAA0B,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CACzC;AAES,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AAC7B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;AACpB,QAAA,IAAI;AACF,YAAA,IAAI,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,CAAE,CAAC;AAChB,YAAA,OAAO,UAAU;;AACjB,QAAA,MAAM;AACN,YAAA,OAAO,UAAU;;AAErB,KAAC,CAAC;;;AAIQ,IAAA,IAAI,GAAG,QAAQ,CACvB,aAAa,CAAC;AACZ,QAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KACzE,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,EAC3C,uBAAuB,EAAE,CAC1B,CACF;AAEO,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACrD,KAAC,CAAC;AAEM,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AAC3B,QAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAChE,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAc,CAAC;;QAChD,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,IAAI;;AAEf,KAAC,CAAC;AAEM,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,QAAA,IAAI,kBAAkB;AAAE,YAAA,OAAO,KAAK;AACpC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,WAAW;AAAE,YAAA,OAAO,WAAW;AACnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;AAC3C,KAAC,CAAC;AAEM,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACnC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,IAAI,gBAAgB;AAAE,YAAA,OAAO,gBAAgB;AAC7C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB;AAChD,KAAC,CAAC;AAEQ,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,IAAI,KAAK,UAAU;AAAE,YAAA,OAAO,EAAE;AAElC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,SAAS;AAE9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,SAAS;QAE3B,OAAO,IAAI,CAAC;AACV,cAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;AACzD,cAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,KAAC,CAAC;AAEF,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;AAE7B,IAAA,QAAQ,GAAG,QAAQ,CACjB,aAAa,CAAC;AACZ,QAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrC,QAAA,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC;AAC7C,QAAA,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC;AAC3C,QAAA,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC5C,KAAA,CAAC,CAAC,IAAI,CACL,GAAG,CACD,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,KAAI;AACpE,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;QACvB,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,SAAS,GAAG,aAAa,CAC7B,QAAQ,CAAC,QAAQ,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB;AACD,YAAA,IAAI,CAAC,SAAS;AAAE,gBAAA,OAAO,KAAK;;aACvB;AACL,YAAA,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,QAAQ,CAAC,QAAQ,EACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC,KAAK,CAAC,GAAG,CAAC;AACZ,YAAA,MAAM,aAAa,GAAG,mBAAmB,CACvC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrB,CAAC,KAAK,CAAC,GAAG,CAAC;YACZ,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAC1C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CACpC;YACD,IAAI,CAAC,gBAAgB,EAAE;AACrB,gBAAA,OAAO,KAAK;;;AAIhB,QAAA,MAAM,aAAa,GAAG,oBAAoB,IAAI,IAAI;QAClD,IAAI,aAAa,EAAE;YACjB,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACzD,OAAO,EAAE,CAAC,KAAK;AACf,gBAAA,eAAe,EAAE,EAAE,oBAAoB,IAAI,IAAI,CAAC;AACjD,aAAA,CAAC;YACF,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,OAAO,KAAK;;;AAIhB,QAAA,MAAM,WAAW,GAAG,kBAAkB,IAAI,IAAI;QAC9C,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;;AAGpC,QAAA,OAAO,IAAI;KACZ,CACF,CACF,CACF;IACS,WAAW,GAAG,QAAQ,CAAC,MAC/B,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,IAAI,QAAQ,GAAG,EAAE,CAC9D;AAED,IAAA,WAAA,GAAA;QACE,iBAAiB,CAAC,MAAK;AACrB,YAAA,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG;AAC1B,gBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB;AACD,YAAA,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,SAAS,EAAE;;AAEpB,SAAC,CAAC;AAEF,QAAA,iBAAiB,CAAC,CAAC,SAAS,KAAI;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,MAAK;AACrD,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,aAAC,CAAC;AACF,YAAA,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1B,SAAC,CAAC;;AAGM,IAAA,WAAW,CAAC,KAAiB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;YAAE;AAEhC,QAAA,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG;YACzB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM;SACtC;AAED,QAAA,IACE,QAAQ;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,YAAA,KAAK,CAAC,gBAAgB;AACtB,aAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AAC9B,YAAA,KAAK,CAAC,MAAM,KAAK,CAAC,EAClB;YACA;;QAGF,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAS,CAAC;;IAG3C,WAAW,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;YAAE;AACnD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE;;;IAIZ,cAAc,GAAyC,IAAI;AACzD,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QAC1C,IACE,IAAI,CAAC,QAAQ,EAAE;YACf,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;YAE1B;AAEF,QAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC1B,IAAI,CAAC,SAAS,EAAE;AAClB,SAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;;IAGf,gBAAgB,GAAA;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU;YAAE;AACnD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;;IAItB,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAI;AACpE,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACjB,YAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9B,SAAC,CAAC;;AAGI,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ;;uGAxQ9C,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAJ,IAAI,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,iDAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mCAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,mCAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAJ,IAAI,EAAA,UAAA,EAAA,CAAA;kBArBhB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,cAAc,EAAE,qBAAqB;AACrC,wBAAA,cAAc,EAAE,0BAA0B;AAC1C,wBAAA,cAAc,EAAE,oBAAoB;AACpC,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,oBAAoB,EAAE,YAAY;AAClC,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,2BAA2B,EACzB,+CAA+C;AACjD,wBAAA,aAAa,EAAE,YAAY;AAC3B,wBAAA,aAAa,EAAE,iCAAiC;AAChD,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,qBAAqB,EAAE,iCAAiC;AACxD,wBAAA,kBAAkB,EAAE,QAAQ;AAC7B,qBAAA;AACF,iBAAA;;AAoUY,MAAA,WAAW,GAAkB,CAAC,OAAO,KAAI;AACpD,IAAA,OAAO,OAAc;AACvB;;SCpVgB,WAAW,CAA+C,EACxE,QAAQ,MACmB,EAAE,EAAA;AAC7B,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAEzD,OAAO,CAML,IAAgE,KAC9D;AACF,YAAA,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AACtE,YAAA,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,MACF,MAAM,CAAC,UAAU,CAAC,IAAW,EAAE;gBAC7B,OAAO;gBACP,aAAa;gBACb,KAAK;gBACL,aAAa;aACd,CAAC,CACH,CACF;AACH,SAAC;AACH,KAAC,CAAC;AACJ;SAEgB,UAAU,CAA+C,EACvE,QAAQ,MACmB,EAAE,EAAA;AAC7B,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;QAC1C,MAAM,iBAAiB,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnD,OAAO,CAML,IAAgE,KAC9D;YACF,OAAO,QAAQ,CAAC,iBAAiB,CAAC,IAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC/D,SAAC;AACH,KAAC,CAAC;AACJ;MAWa,UAAU,CAAA;IAOrB,UAAU,GAAG,KAAK,CAEhB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAEjB,IAAA,OAAO,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IACnD,YAAY,GAAG,WAAW,EAAW;IAErC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE;AACxD,QAAA,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE;QAChD,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;AACvD,KAAC,CAAC;AAEF,IAAA,MAAM,GAAG,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACrE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,UAAiB,CAAC,CAAC,CAClE;AACD,IAAA,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;uGAxBlB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE;;;AC3EpD,SAAU,eAAe,CAQ7B,IAAe,EAAA;AAEf,IAAA,OAAO,IAAI,SAAS,CAAiD,IAAI,EAAE;AACzE,QAAA,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,WAAW;AAChB;AAEA;;;AAGG;MACU,SAAS,CAAA;AAWX,IAAA,IAAA;AAHT,IAAA,MAAM;IAEN,WACS,CAAA,IAAe,EACtB,KAA2B,EAAA;QADpB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAGX,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,MAAM;;AAG7B,IAAA,WAAW,GAAG,CASZ,OAuBG,KAgBD;AACF,QAAA,OAAO,CACL,IAAI,CAAC,MAAM,EACX,iIAAiI,CAClI;AACD,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,OAAc,CAAC;AACxC,QAAA,KAAa,CAAC,MAAM,GAAG,KAAK;AAC7B,QAAA,OAAO,KAAY;AACrB,KAAC;AACF;AAED;;;;AAIG;AACG,SAAU,eAAe,CAI7B,KAAgB,EAAA;AAehB,IAAA,OAAO,CACL,KAAK,EACL,CAAA,0MAAA,CAA4M,CAC7M;AACD,IAAA,OAAO,CAAC,QAAQ,KAAK,QAAe;AACtC;MAEa,SAAS,CAAA;AACpB,IAAA,OAAO;AAIP,IAAA,WAAA,CACE,IAEoB,EAAA;AAEpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;IAGrB,MAAM,GAAmC,CAAC,IAAI,KAC5C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAC1D,KAAK,GAAoC,CAAC,IAAI,KAC5C,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAEzD,aAAa,GAA0C,CAAC,IAAI,KAC1D,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;IAC1D,YAAY,GAA2C,CAAC,IAAI,KAC1D,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;IAEzD,OAAO,GAAoC,CAAC,IAAI,KAC9C,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAC3D,MAAM,GAAqC,CAAC,IAAI,KAC9C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAE1D,OAAO,GAAoC,CAAC,IAAI,KAC9C,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAC3D,MAAM,GAAqC,CAAC,IAAI,KAC9C,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAQ;IAE1D,WAAW,GAAwC,CAAC,IAAI,KACtD,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;IACxD,UAAU,GAAyC,CAAC,IAAI,KACtD,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;IAEvD,WAAW,GAAwC,CAAC,IAAI,KACtD,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;IACxD,UAAU,GAAyC,CAAC,IAAI,KACtD,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC;AACxD;AAEK,SAAU,eAAe,CAI7B,EAAyD,EAAA;IACzD,OAAO,CAAC,IAAsB,KAAI;QAChC,OAAO,IAAI,SAAS,CAAS;AAC3B,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,GAAG,IAAI;AACR,SAAA,CAAC;AACJ,KAAC;AACH;AACM,SAAU,mBAAmB,CAGjC,EAAa,EAAA;AACb,IAAA,OAAO,CAAC,IAAsB,KAAK,IAAI,SAAS,CAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;AAC3E;;MC3Ka,UAAU,CAAA;AAIrB,IAAA,MAAM,GAAG,KAAK,CACZ,YAAY,EAAwB,CACrC;AACD,IAAA,OAAO,GAAG,KAAK,CAA0D,EAAE,CAAC;AAE5E,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACvD,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC;gBACZ,GAAG,MAAM,CAAC,OAAO;AACjB,gBAAA,GAAG,OAAO;AACV,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO;oBACzB,GAAG,OAAO,CAAC,OAAO;AAClB,oBAAA,gBAAgB,CAAC,OAAe,EAAE,SAAA,GAAwB,EAAE,EAAA;AAC1D,wBAAA,OACE,MACD,CAAC,mBAAmB,CACnB,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,MAAM,CACP;qBACF;AACF,iBAAA;AACF,aAAA,CAAC;AACJ,SAAC,CAAC;;uGA/BO,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,OAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,cAAc,EAAE,CAAC,OAAO,CAAC;AAC1B,iBAAA;;;SCpCe,UAAU,CAAC,EAAE,QAAQ,KAA8B,EAAE,EAAA;AACnE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,YAAY,CAAC;AAClB,YAAA,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC;YACjD,QAAQ;AACT,SAAA,CAAC;AACJ,KAAC,CAAC;AACJ;SAEgB,SAAS,CAAC,EAAE,QAAQ,KAA8B,EAAE,EAAA;AAClE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,SAAS,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;QAC1C,OAAO,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3C,KAAC,CAAC;AACJ;;ACNM,SAAU,SAAS,CAGvB,EACA,QAAQ,EACR,MAAM,MACqC,EAAE,EAAA;AAG7C,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,SAAS,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;AAC1C,QAAA,OAAO,YAAY,CAAC;YAClB,QAAQ;YACR,MAAM,EAAE,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtE,SAAA,CAAmD;AACtD,KAAC,CAAC;AACJ;AAEM,SAAU,QAAQ,CAGtB,EAAE,QAAQ,EAAE,MAAM,KAA8C,EAAE,EAAA;AAGlE,IAAA,CAAC,QAAQ,IAAI,wBAAwB,CAAC,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;AAG7B,IAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAK;QAC1C,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAE9C;AACH,KAAC,CAAC;AACJ;;MCjDa,cAAc,CAAA;IACjB,cAAc,GAAG,YAAY,EAAE;AAC/B,IAAA,IAAI,GAAG,MAAM,CAA6B,UAAU,CAAC;AACrD,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAE/B,IAAA,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;IACnC,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjE,IAAA,YAAY,GAAG,KAAK,CAA0B,EAAE,CAAC;AACjD,IAAA,kBAAkB,GAAG,KAAK,CAA6B,EAAE,CAAC;AAC1D,IAAA,mBAAmB,GAAG,KAAK,CAA6B,EAAE,CAAC;IAC3D,eAAe,GAAG,KAAK,EAAc;IACrC,gBAAgB,GAAG,KAAK,EAAwB;IAChD,QAAQ,GAAG,KAAK,EAA6D;AAErE,IAAA,QAAQ,GAAG,MAAM,CAAoC,IAAI,CAAC;AAElE,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAK;YACnB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,YAAA,MAAM,CACJ,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EAClB,GAAG;AACF,gBAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7B,gBAAA,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5B,gBAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAClC,gBAAA,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACnC,gBAAA,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AAC/B,gBAAA,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAChC,gBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,gBAAA,MAAM,CAAC,KAAK;aACb;;AAGD,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,IAAI,0BAA0B,CAAC;gBAC7B,MAAM;AACN,gBAAA,WAAW,EAAE,iBAAiB;gBAC9B,aAAa;gBACb,QAAQ;AACR,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,gBAAgB,EAAE,kBAAkB;AACpC,gBAAA,iBAAiB,EAAE,mBAAmB;gBACtC,eAAe;gBACf,gBAAgB;AACjB,aAAA,CAAC,CACH;AACH,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ;gBAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACxE,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ;gBAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,gBAAA,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CACpD,CAAC,EAAE,UAAU,EAAE,KAAI;AACjB,oBAAA,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;AACrC,iBAAC,CACF;AACD,gBAAA,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1B,aAAC,CAAC;AACJ,SAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ;gBAAE;AAEf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;gBACjC,QAAQ,CAAC,UAAU,CAAC;AAClB,oBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACnC,oBAAA,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;AAC/B,oBAAA,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC3C,oBAAA,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE;AAC7C,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,oBAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzC,oBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;AACxC,iBAAA,CAAC;AACJ,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACnB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ;gBAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CACxC;YACD,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;AACzD,aAAC,CAAC;AACJ,SAAC,CAAC;;uGApGO,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;AACnC,iBAAA;;;AClBD;;AAEG;;;;"}