[object Object]

← back to Govarbitrage

Phase 4: dashboard (cards + full-column TanStack table + CSV/profiles), listing detail, API routes — builds + serves live

270f05946e28953b5335e053528cf3b869964184 · 2026-07-09 22:38:10 -0700 · Steve Abrams

Files touched

Diff

commit 270f05946e28953b5335e053528cf3b869964184
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jul 9 22:38:10 2026 -0700

    Phase 4: dashboard (cards + full-column TanStack table + CSV/profiles), listing detail, API routes — builds + serves live
---
 eslint.config.mjs                  |  28 ++++
 next.config.ts                     |   7 +-
 src/app/api/listings/[id]/route.ts |  24 +++
 src/app/api/listings/route.ts      |  25 +++
 src/app/globals.css                |  72 +++++++++
 src/app/layout.tsx                 |  16 ++
 src/app/listings/[id]/page.tsx     | 266 ++++++++++++++++++++++++++++++
 src/app/page.tsx                   |  33 ++++
 src/components/dashboard-cards.tsx |  32 ++++
 src/components/listings-table.tsx  | 320 +++++++++++++++++++++++++++++++++++++
 src/components/ui/badge.tsx        |  27 ++++
 src/components/ui/button.tsx       |  29 ++++
 src/components/ui/card.tsx         |  22 +++
 src/components/ui/input.tsx        |  13 ++
 src/lib/dashboard.ts               |  41 +++++
 src/lib/listings.ts                | 184 +++++++++++++++++++++
 tsconfig.json                      |  30 +++-
 tsconfig.tsbuildinfo               |   1 +
 18 files changed, 1160 insertions(+), 10 deletions(-)

diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..dac3578
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,28 @@
+import { dirname } from "node:path";
+import { fileURLToPath } from "node:url";
+import { FlatCompat } from "@eslint/eslintrc";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+
+const compat = new FlatCompat({ baseDirectory: __dirname });
+
+const eslintConfig = [
+  ...compat.extends("next/core-web-vitals", "next/typescript"),
+  {
+    ignores: [
+      "node_modules/**",
+      ".next/**",
+      "extension/**",
+      "prisma/seed.ts",
+    ],
+  },
+  {
+    rules: {
+      "@typescript-eslint/no-explicit-any": "warn",
+      "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
+    },
+  },
+];
+
+export default eslintConfig;
diff --git a/next.config.ts b/next.config.ts
index 949f2a1..00e5e73 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -1,6 +1,9 @@
 import type { NextConfig } from "next";
+import { fileURLToPath } from "node:url";
 
 const nextConfig: NextConfig = {
+  // Pin the workspace root (a stray parent lockfile confuses Turbopack's inference).
+  turbopack: { root: fileURLToPath(new URL(".", import.meta.url)) },
   // Prisma 7 client is generated into node_modules; keep it external to the
   // server bundle so the query engine binary resolves at runtime.
   serverExternalPackages: ["@prisma/client", "bullmq", "ioredis"],
@@ -10,10 +13,6 @@ const nextConfig: NextConfig = {
       { protocol: "http", hostname: "**" },
     ],
   },
-  eslint: {
-    // Lint is run explicitly via `npm run lint`; don't fail production builds on it.
-    ignoreDuringBuilds: false,
-  },
 };
 
 export default nextConfig;
diff --git a/src/app/api/listings/[id]/route.ts b/src/app/api/listings/[id]/route.ts
new file mode 100644
index 0000000..27083c1
--- /dev/null
+++ b/src/app/api/listings/[id]/route.ts
@@ -0,0 +1,24 @@
+import { NextRequest, NextResponse } from "next/server";
+import { prisma } from "@/lib/db";
+
+export const dynamic = "force-dynamic";
+
+export async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
+  const { id } = await params;
+  const listing = await prisma.listing.findUnique({
+    where: { id },
+    include: {
+      research: true,
+      costBreakdown: true,
+      scores: { orderBy: { value: "desc" } },
+      comparables: { orderBy: { price: "desc" } },
+      notes: { orderBy: { createdAt: "desc" } },
+      events: { orderBy: { createdAt: "desc" }, take: 20 },
+      buyerLeads: { orderBy: { createdAt: "desc" } },
+      buyerPage: true,
+      outcome: true,
+    },
+  });
+  if (!listing) return NextResponse.json({ error: "Not found" }, { status: 404 });
+  return NextResponse.json(listing);
+}
diff --git a/src/app/api/listings/route.ts b/src/app/api/listings/route.ts
new file mode 100644
index 0000000..8ad41b1
--- /dev/null
+++ b/src/app/api/listings/route.ts
@@ -0,0 +1,25 @@
+import { NextRequest, NextResponse } from "next/server";
+import { queryListings, type ListingRow, type QueryParams } from "@/lib/listings";
+
+export const dynamic = "force-dynamic";
+
+export async function GET(req: NextRequest) {
+  const sp = req.nextUrl.searchParams;
+  const params: QueryParams = {
+    search: sp.get("search") || undefined,
+    source: sp.get("source") || undefined,
+    category: sp.get("category") || undefined,
+    condition: sp.get("condition") || undefined,
+    risk: sp.get("risk") || undefined,
+    closingWithinHours: sp.get("closingWithinHours")
+      ? Number(sp.get("closingWithinHours"))
+      : undefined,
+    sort: (sp.get("sort") as keyof ListingRow) || undefined,
+    dir: (sp.get("dir") as "asc" | "desc") || undefined,
+    page: sp.get("page") ? Number(sp.get("page")) : undefined,
+    pageSize: sp.get("pageSize") ? Number(sp.get("pageSize")) : undefined,
+    profile: sp.get("profile") || undefined,
+  };
+  const result = await queryListings(params);
+  return NextResponse.json(result);
+}
diff --git a/src/app/globals.css b/src/app/globals.css
new file mode 100644
index 0000000..532774f
--- /dev/null
+++ b/src/app/globals.css
@@ -0,0 +1,72 @@
+@import "tailwindcss";
+
+@custom-variant dark (&:where(.dark, .dark *));
+
+/* Design tokens. Dark-first; .dark overrides flow through via @theme inline. */
+:root {
+  --background: hsl(0 0% 100%);
+  --foreground: hsl(222 47% 11%);
+  --card: hsl(0 0% 100%);
+  --card-foreground: hsl(222 47% 11%);
+  --muted: hsl(210 40% 96%);
+  --muted-foreground: hsl(215 16% 47%);
+  --border: hsl(214 32% 91%);
+  --primary: hsl(221 83% 53%);
+  --primary-foreground: hsl(0 0% 100%);
+  --accent: hsl(210 40% 94%);
+  --positive: hsl(142 71% 45%);
+  --negative: hsl(0 72% 51%);
+  --warning: hsl(38 92% 50%);
+}
+
+.dark {
+  --background: hsl(222 24% 8%);
+  --foreground: hsl(210 40% 96%);
+  --card: hsl(222 22% 11%);
+  --card-foreground: hsl(210 40% 96%);
+  --muted: hsl(217 24% 16%);
+  --muted-foreground: hsl(215 20% 65%);
+  --border: hsl(217 24% 20%);
+  --primary: hsl(217 91% 60%);
+  --primary-foreground: hsl(222 47% 11%);
+  --accent: hsl(217 24% 18%);
+  --positive: hsl(142 69% 58%);
+  --negative: hsl(0 84% 65%);
+  --warning: hsl(38 92% 60%);
+}
+
+@theme inline {
+  --color-background: var(--background);
+  --color-foreground: var(--foreground);
+  --color-card: var(--card);
+  --color-card-foreground: var(--card-foreground);
+  --color-muted: var(--muted);
+  --color-muted-foreground: var(--muted-foreground);
+  --color-border: var(--border);
+  --color-primary: var(--primary);
+  --color-primary-foreground: var(--primary-foreground);
+  --color-accent: var(--accent);
+  --color-positive: var(--positive);
+  --color-negative: var(--negative);
+  --color-warning: var(--warning);
+}
+
+* {
+  border-color: var(--border);
+}
+
+body {
+  background: var(--background);
+  color: var(--foreground);
+  font-feature-settings: "tnum" 1;
+}
+
+/* Thin, dark scrollbars for the wide table. */
+::-webkit-scrollbar {
+  height: 10px;
+  width: 10px;
+}
+::-webkit-scrollbar-thumb {
+  background: var(--border);
+  border-radius: 6px;
+}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
new file mode 100644
index 0000000..d6d68a8
--- /dev/null
+++ b/src/app/layout.tsx
@@ -0,0 +1,16 @@
+import type { Metadata } from "next";
+import "./globals.css";
+
+export const metadata: Metadata = {
+  title: "GovArbitrage — Government Surplus Arbitrage",
+  description:
+    "Discover, research, value, and score government-surplus auction listings for resale arbitrage.",
+};
+
+export default function RootLayout({ children }: { children: React.ReactNode }) {
+  return (
+    <html lang="en" className="dark">
+      <body className="min-h-screen antialiased">{children}</body>
+    </html>
+  );
+}
diff --git a/src/app/listings/[id]/page.tsx b/src/app/listings/[id]/page.tsx
new file mode 100644
index 0000000..ad8d34e
--- /dev/null
+++ b/src/app/listings/[id]/page.tsx
@@ -0,0 +1,266 @@
+import { notFound } from "next/navigation";
+import Link from "next/link";
+import { prisma } from "@/lib/db";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { formatMoney, formatPercent, countdown } from "@/lib/utils";
+
+export const dynamic = "force-dynamic";
+
+const n = (d: unknown): number => (d == null ? 0 : Number(d));
+
+export default async function ListingDetail({ params }: { params: Promise<{ id: string }> }) {
+  const { id } = await params;
+  const listing = await prisma.listing.findUnique({
+    where: { id },
+    include: {
+      research: true,
+      costBreakdown: true,
+      scores: { orderBy: { value: "desc" } },
+      comparables: { orderBy: { price: "desc" } },
+      notes: { orderBy: { createdAt: "desc" } },
+      events: { orderBy: { createdAt: "desc" }, take: 20 },
+      buyerLeads: { orderBy: { createdAt: "desc" } },
+      buyerPage: true,
+      outcome: true,
+    },
+  });
+  if (!listing) notFound();
+
+  const r = listing.research;
+  const c = listing.costBreakdown;
+
+  const valuationRows: [string, number | null | undefined][] = [
+    ["New Retail", n(r?.newRetail)],
+    ["New Replacement", n(r?.newReplacement)],
+    ["Avg Retail", n(r?.avgRetail)],
+    ["Used Sold", n(r?.usedSoldPrice)],
+    ["Used Asking", n(r?.usedAskingPrice)],
+    ["Wholesale", n(r?.wholesaleValue)],
+    ["Liquidation", n(r?.liquidationValue)],
+    ["Sell Today", n(r?.sellTodayValue)],
+    ["7-Day Value", n(r?.value7Day)],
+    ["30-Day Value", n(r?.value30Day)],
+    ["90-Day Value", n(r?.value90Day)],
+    ["Expected Sale", n(r?.expectedSalePrice)],
+  ];
+
+  const costRows: [string, number][] = c
+    ? [
+        ["Winning Bid", n(c.winningBid)],
+        ["Buyer Premium", n(c.buyerPremium)],
+        ["Sales Tax", n(c.salesTax)],
+        ["Shipping", n(c.shipping)],
+        ["Freight", n(c.freight)],
+        ["Insurance", n(c.insurance)],
+        ["Packing", n(c.packing)],
+        ["Pickup Labor", n(c.pickupLabor)],
+        ["Testing", n(c.testing)],
+        ["Repairs", n(c.repairs)],
+        ["Certification", n(c.certification)],
+        ["Marketplace Fees", n(c.marketplaceFees)],
+        ["Payment Fees", n(c.paymentFees)],
+        ["Storage", n(c.storage)],
+        ["Photography", n(c.photography)],
+        ["Listing Labor", n(c.listingLabor)],
+      ]
+    : [];
+
+  return (
+    <main className="mx-auto max-w-6xl space-y-5 p-5">
+      <div className="flex items-center gap-3 text-sm">
+        <Link href="/" className="text-primary hover:underline">
+          ← Dashboard
+        </Link>
+        <Badge variant="primary">{listing.source.replace(/_/g, " ")}</Badge>
+        <span className="text-muted-foreground">#{listing.sourceAuctionId}</span>
+        {listing.sourceUrl && (
+          <a href={listing.sourceUrl} target="_blank" rel="noopener noreferrer" className="text-primary hover:underline">
+            View source ↗
+          </a>
+        )}
+      </div>
+
+      <h1 className="text-2xl font-semibold tracking-tight">{listing.title}</h1>
+
+      {/* Gallery */}
+      <div className="flex gap-3 overflow-x-auto">
+        {listing.imageUrls.length ? (
+          listing.imageUrls.map((u) => (
+            // eslint-disable-next-line @next/next/no-img-element
+            <img key={u} src={u} alt={listing.title} className="h-48 w-72 flex-shrink-0 rounded-lg border object-cover" />
+          ))
+        ) : (
+          <div className="flex h-48 w-72 items-center justify-center rounded-lg border text-muted-foreground">
+            No images
+          </div>
+        )}
+      </div>
+
+      {/* Headline metrics */}
+      <div className="grid grid-cols-2 gap-3 md:grid-cols-5">
+        <Metric label="Current Bid" value={formatMoney(n(listing.currentBid))} />
+        <Metric label="Rec. Max Bid" value={formatMoney(n(c?.recommendedMaxBid))} accent />
+        <Metric label="Expected Net" value={formatMoney(n(c?.expectedNetProfit))} accent />
+        <Metric label="ROI" value={formatPercent(n(c?.roi))} accent />
+        <Metric label="Closes" value={countdown(listing.closingAt)} />
+      </div>
+
+      <div className="grid gap-5 md:grid-cols-2">
+        {/* Valuation ladder */}
+        <Card>
+          <CardHeader>
+            <CardTitle>Valuation</CardTitle>
+          </CardHeader>
+          <CardContent className="space-y-1">
+            {valuationRows.map(([label, val]) => (
+              <Row key={label} label={label} value={formatMoney(val)} />
+            ))}
+            <Row label="Probability of Sale" value={formatPercent(n(r?.probabilityOfSale))} />
+            <Row label="Days Until Sold" value={`${r?.daysUntilSold ?? "—"}`} />
+            <Row label="Confidence" value={`${Math.round(n(r?.confidenceScore))}/100`} />
+          </CardContent>
+        </Card>
+
+        {/* Cost breakdown */}
+        <Card>
+          <CardHeader>
+            <CardTitle>Cost Breakdown &amp; Profit</CardTitle>
+          </CardHeader>
+          <CardContent className="space-y-1">
+            {costRows.map(([label, val]) => (
+              <Row key={label} label={label} value={formatMoney(val)} />
+            ))}
+            <div className="my-2 border-t" />
+            <Row label="Total Investment" value={formatMoney(n(c?.totalInvestment))} strong />
+            <Row label="Expected Returns" value={formatMoney(n(c?.expectedReturns))} strong />
+            <Row label="Expected Net Profit" value={formatMoney(n(c?.expectedNetProfit))} strong />
+            <Row label="ROI" value={formatPercent(n(c?.roi))} strong />
+            <Row label="Annualized" value={formatPercent(n(c?.annualizedReturn))} />
+          </CardContent>
+        </Card>
+      </div>
+
+      {/* Score explanations */}
+      <Card>
+        <CardHeader>
+          <CardTitle>Scoring — why each profile scored this listing</CardTitle>
+        </CardHeader>
+        <CardContent className="grid gap-3 md:grid-cols-3">
+          {listing.scores.map((s) => (
+            <div key={s.id} className="rounded-lg border p-3">
+              <div className="mb-1 flex items-center justify-between">
+                <span className="text-sm font-medium">{s.profile.replace(/_/g, " ")}</span>
+                <Badge variant={s.value >= 70 ? "positive" : s.value >= 50 ? "warning" : "outline"}>
+                  {Math.round(s.value)}
+                </Badge>
+              </div>
+              <p className="text-xs text-muted-foreground">{s.explanation}</p>
+            </div>
+          ))}
+        </CardContent>
+      </Card>
+
+      <div className="grid gap-5 md:grid-cols-2">
+        {/* Comparables */}
+        <Card>
+          <CardHeader>
+            <CardTitle>Comparable Sales &amp; Listings</CardTitle>
+          </CardHeader>
+          <CardContent className="space-y-1">
+            {listing.comparables.length === 0 && <p className="text-sm text-muted-foreground">None.</p>}
+            {listing.comparables.map((cp) => (
+              <div key={cp.id} className="flex items-center justify-between text-sm">
+                <span className="flex items-center gap-2">
+                  <Badge variant="outline">{cp.kind}</Badge>
+                  <span className="truncate">{cp.title}</span>
+                </span>
+                <span className="tabular-nums">{formatMoney(n(cp.price))}</span>
+              </div>
+            ))}
+          </CardContent>
+        </Card>
+
+        {/* Terms + risk */}
+        <Card>
+          <CardHeader>
+            <CardTitle>Auction Terms &amp; Risk</CardTitle>
+          </CardHeader>
+          <CardContent className="space-y-2 text-sm">
+            <div>
+              <span className="text-muted-foreground">Condition: </span>
+              {listing.condition.replace(/_/g, " ")} · Qty {listing.quantity} · {n(listing.weightLbs)} lb
+            </div>
+            <div>
+              <span className="text-muted-foreground">Location: </span>
+              {[listing.locationCity, listing.locationState, listing.locationZip].filter(Boolean).join(", ") || "—"}
+            </div>
+            <p className="text-muted-foreground">{listing.auctionTerms}</p>
+            {r?.summary && <p className="rounded-md bg-muted p-2 text-xs">{r.summary}</p>}
+          </CardContent>
+        </Card>
+      </div>
+
+      {/* Buyer workflow (compliant) */}
+      <Card>
+        <CardHeader>
+          <CardTitle>Buyer Interest (contingent — no ownership represented pre-win)</CardTitle>
+        </CardHeader>
+        <CardContent className="space-y-2 text-sm">
+          {listing.buyerPage ? (
+            <div>
+              Interest page: <span className="font-medium">/{listing.buyerPage.slug}</span> ·{" "}
+              {listing.buyerPage.published ? <Badge variant="positive">Published</Badge> : <Badge variant="outline">Draft</Badge>} ·
+              est. delivered {formatMoney(n(listing.buyerPage.estDelivered))}
+            </div>
+          ) : (
+            <p className="text-muted-foreground">No buyer-interest page yet.</p>
+          )}
+          {listing.buyerLeads.map((l) => (
+            <div key={l.id} className="flex items-center justify-between rounded-md border p-2">
+              <span>
+                {l.name} — {l.email} {l.contingent && <Badge variant="outline">contingent</Badge>}
+              </span>
+              <span className="tabular-nums">{formatMoney(n(l.offer))}</span>
+            </div>
+          ))}
+        </CardContent>
+      </Card>
+
+      {/* History */}
+      <Card>
+        <CardHeader>
+          <CardTitle>History</CardTitle>
+        </CardHeader>
+        <CardContent className="space-y-1 text-xs text-muted-foreground">
+          {listing.events.map((e) => (
+            <div key={e.id} className="flex justify-between">
+              <span>{e.message}</span>
+              <span>{new Date(e.createdAt).toLocaleString()}</span>
+            </div>
+          ))}
+        </CardContent>
+      </Card>
+    </main>
+  );
+}
+
+function Metric({ label, value, accent }: { label: string; value: string; accent?: boolean }) {
+  return (
+    <Card>
+      <CardContent className="p-3">
+        <div className="text-xs text-muted-foreground">{label}</div>
+        <div className={`text-lg font-semibold tabular-nums ${accent ? "text-primary" : ""}`}>{value}</div>
+      </CardContent>
+    </Card>
+  );
+}
+
+function Row({ label, value, strong }: { label: string; value: string; strong?: boolean }) {
+  return (
+    <div className={`flex justify-between text-sm ${strong ? "font-semibold" : ""}`}>
+      <span className="text-muted-foreground">{label}</span>
+      <span className="tabular-nums">{value}</span>
+    </div>
+  );
+}
diff --git a/src/app/page.tsx b/src/app/page.tsx
new file mode 100644
index 0000000..317d8d3
--- /dev/null
+++ b/src/app/page.tsx
@@ -0,0 +1,33 @@
+import { getDashboardStats } from "@/lib/dashboard";
+import { DashboardCards } from "@/components/dashboard-cards";
+import { ListingsTable } from "@/components/listings-table";
+
+export const dynamic = "force-dynamic";
+
+export default async function DashboardPage() {
+  const stats = await getDashboardStats();
+
+  return (
+    <main className="mx-auto max-w-[1800px] space-y-5 p-5">
+      <header className="flex items-center justify-between">
+        <div>
+          <h1 className="text-xl font-semibold tracking-tight">
+            Gov<span className="text-primary">Arbitrage</span>
+          </h1>
+          <p className="text-sm text-muted-foreground">
+            Government-surplus auction arbitrage — research, valuation, scoring & drop-ship feasibility.
+          </p>
+        </div>
+        <a
+          href="/selling-avenues"
+          className="text-sm text-primary underline-offset-4 hover:underline"
+        >
+          Selling avenues →
+        </a>
+      </header>
+
+      <DashboardCards stats={stats} />
+      <ListingsTable />
+    </main>
+  );
+}
diff --git a/src/components/dashboard-cards.tsx b/src/components/dashboard-cards.tsx
new file mode 100644
index 0000000..9f7a5ce
--- /dev/null
+++ b/src/components/dashboard-cards.tsx
@@ -0,0 +1,32 @@
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { formatMoney, formatPercent } from "@/lib/utils";
+import type { DashboardStats } from "@/lib/dashboard";
+
+export function DashboardCards({ stats }: { stats: DashboardStats }) {
+  const cards: { title: string; value: string; hint?: string }[] = [
+    { title: "Active Auctions", value: String(stats.activeAuctions) },
+    { title: "Closing Today", value: String(stats.closingToday), hint: "next 24h" },
+    { title: "Highest Profit", value: formatMoney(stats.highestProfit), hint: "single lot" },
+    { title: "Highest ROI", value: formatPercent(stats.highestRoi), hint: "single lot" },
+    { title: "Cash Required", value: formatMoney(stats.cashRequired), hint: "sum of max bids" },
+    { title: "Expected Profit", value: formatMoney(stats.expectedProfit), hint: "portfolio net" },
+    { title: "Highest Score", value: String(Math.round(stats.highestScore)), hint: "opportunity" },
+    { title: "Pending Research", value: String(stats.pendingResearch) },
+  ];
+
+  return (
+    <div className="grid grid-cols-2 gap-3 md:grid-cols-4">
+      {cards.map((c) => (
+        <Card key={c.title}>
+          <CardHeader className="pb-1">
+            <CardTitle>{c.title}</CardTitle>
+          </CardHeader>
+          <CardContent>
+            <div className="text-2xl font-semibold tabular-nums">{c.value}</div>
+            {c.hint && <div className="text-xs text-muted-foreground">{c.hint}</div>}
+          </CardContent>
+        </Card>
+      ))}
+    </div>
+  );
+}
diff --git a/src/components/listings-table.tsx b/src/components/listings-table.tsx
new file mode 100644
index 0000000..27d9162
--- /dev/null
+++ b/src/components/listings-table.tsx
@@ -0,0 +1,320 @@
+"use client";
+
+import { useEffect, useMemo, useState } from "react";
+import {
+  flexRender,
+  getCoreRowModel,
+  getSortedRowModel,
+  useReactTable,
+  type ColumnDef,
+  type SortingState,
+  type VisibilityState,
+} from "@tanstack/react-table";
+import { useRouter } from "next/navigation";
+import type { ListingRow } from "@/lib/listings";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Input } from "@/components/ui/input";
+import { cn, formatMoney, formatPercent, countdown } from "@/lib/utils";
+
+type ColType = "text" | "money" | "score" | "pct" | "risk" | "dropship" | "countdown" | "source";
+
+interface ColMeta {
+  key: keyof ListingRow;
+  label: string;
+  type: ColType;
+}
+
+// The full column set from the spec, in display order.
+const COLUMNS: ColMeta[] = [
+  { key: "title", label: "Title", type: "text" },
+  { key: "source", label: "Source", type: "source" },
+  { key: "sourceAuctionId", label: "Auction #", type: "text" },
+  { key: "category", label: "Category", type: "text" },
+  { key: "manufacturer", label: "Manufacturer", type: "text" },
+  { key: "model", label: "Model", type: "text" },
+  { key: "condition", label: "Condition", type: "text" },
+  { key: "quantity", label: "Qty", type: "score" },
+  { key: "currentBid", label: "Current Bid", type: "money" },
+  { key: "currentCost", label: "Current Cost", type: "money" },
+  { key: "recommendedMaxBid", label: "Rec. Max Bid", type: "money" },
+  { key: "retailLow", label: "Retail Low", type: "money" },
+  { key: "retailAverage", label: "Retail Avg", type: "money" },
+  { key: "retailHigh", label: "Retail High", type: "money" },
+  { key: "usedLow", label: "Used Low", type: "money" },
+  { key: "usedAverage", label: "Used Avg", type: "money" },
+  { key: "usedHigh", label: "Used High", type: "money" },
+  { key: "wholesale", label: "Wholesale", type: "money" },
+  { key: "liquidation", label: "Liquidation", type: "money" },
+  { key: "sellNow", label: "Sell Now", type: "money" },
+  { key: "value7Day", label: "7-Day", type: "money" },
+  { key: "value30Day", label: "30-Day", type: "money" },
+  { key: "value90Day", label: "90-Day", type: "money" },
+  { key: "expectedSale", label: "Expected Sale", type: "money" },
+  { key: "shipping", label: "Shipping", type: "money" },
+  { key: "freight", label: "Freight", type: "money" },
+  { key: "repairs", label: "Repairs", type: "money" },
+  { key: "marketplaceFees", label: "Mkt Fees", type: "money" },
+  { key: "netProfit", label: "Net Profit", type: "money" },
+  { key: "roi", label: "ROI", type: "pct" },
+  { key: "risk", label: "Risk", type: "risk" },
+  { key: "confidence", label: "Confidence", type: "score" },
+  { key: "opportunityScore", label: "Opportunity", type: "score" },
+  { key: "arbitrageScore", label: "Arbitrage", type: "score" },
+  { key: "demandScore", label: "Demand", type: "score" },
+  { key: "velocityScore", label: "Velocity", type: "score" },
+  { key: "logisticsScore", label: "Logistics", type: "score" },
+  { key: "conditionScore", label: "Cond.", type: "score" },
+  { key: "competitionScore", label: "Comp.", type: "score" },
+  { key: "buyerScore", label: "Buyer", type: "score" },
+  { key: "dropShip", label: "Drop Ship", type: "dropship" },
+  { key: "closingAt", label: "Countdown", type: "countdown" },
+  { key: "researchStatus", label: "Research", type: "text" },
+];
+
+const PROFILES = [
+  ["OVERALL_OPPORTUNITY", "Overall Opportunity"],
+  ["BEST_ARBITRAGE", "Best Arbitrage"],
+  ["QUICK_FLIP", "Quick Flip"],
+  ["COLLECTOR", "Collector"],
+  ["LOCAL_PICKUP", "Local Pickup"],
+  ["EASY_FREIGHT", "Easy Freight"],
+  ["PARTS_ONLY", "Parts Only"],
+  ["HIGH_CONFIDENCE", "High Confidence"],
+  ["HIGH_PROFIT", "High Profit"],
+] as const;
+
+const SOURCES = ["GOVDEALS", "PUBLIC_SURPLUS", "GSA_AUCTIONS", "COUNTY", "STATE_SURPLUS", "UNIVERSITY_SURPLUS"];
+const CONDITIONS = ["NEW", "LIKE_NEW", "USED_GOOD", "USED_FAIR", "FOR_PARTS", "UNKNOWN"];
+const RISKS = ["LOW", "MEDIUM", "HIGH"];
+
+function scoreColor(v: number) {
+  if (v >= 75) return "text-[var(--positive)]";
+  if (v >= 50) return "text-[var(--warning)]";
+  return "text-muted-foreground";
+}
+
+function renderCell(row: ListingRow, meta: ColMeta) {
+  const v = row[meta.key];
+  switch (meta.type) {
+    case "money":
+      return <span className="tabular-nums">{formatMoney(v as number | null)}</span>;
+    case "pct":
+      return (
+        <span className={cn("tabular-nums", (v as number) >= 0.4 ? "text-[var(--positive)]" : "")}>
+          {formatPercent(v as number)}
+        </span>
+      );
+    case "score":
+      return <span className={cn("tabular-nums font-medium", scoreColor(Number(v)))}>{v == null ? "—" : Math.round(Number(v))}</span>;
+    case "risk":
+      return (
+        <Badge variant={v === "LOW" ? "positive" : v === "HIGH" ? "negative" : "warning"}>{String(v)}</Badge>
+      );
+    case "dropship":
+      return <Badge variant={v === "EASY" ? "positive" : v === "INFEASIBLE" ? "negative" : "outline"}>{String(v)}</Badge>;
+    case "source":
+      return <Badge variant="primary">{String(v).replace(/_/g, " ")}</Badge>;
+    case "countdown":
+      return <span className="tabular-nums">{countdown(v as string | null)}</span>;
+    default:
+      return <span className="truncate">{v == null || v === "" ? "—" : String(v)}</span>;
+  }
+}
+
+export function ListingsTable() {
+  const router = useRouter();
+  const [rows, setRows] = useState<ListingRow[]>([]);
+  const [loading, setLoading] = useState(true);
+  const [search, setSearch] = useState("");
+  const [source, setSource] = useState("");
+  const [condition, setCondition] = useState("");
+  const [risk, setRisk] = useState("");
+  const [profile, setProfile] = useState("OVERALL_OPPORTUNITY");
+  const [sorting, setSorting] = useState<SortingState>([{ id: "opportunityScore", desc: true }]);
+  const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});
+  const [showColMenu, setShowColMenu] = useState(false);
+
+  // Server-side search + filtering + profile selection.
+  useEffect(() => {
+    const ctrl = new AbortController();
+    const t = setTimeout(async () => {
+      setLoading(true);
+      const qs = new URLSearchParams({ pageSize: "200", profile });
+      if (search) qs.set("search", search);
+      if (source) qs.set("source", source);
+      if (condition) qs.set("condition", condition);
+      if (risk) qs.set("risk", risk);
+      try {
+        const res = await fetch(`/api/listings?${qs}`, { signal: ctrl.signal });
+        const data = await res.json();
+        setRows(data.rows ?? []);
+      } catch {
+        /* aborted */
+      } finally {
+        setLoading(false);
+      }
+    }, 250);
+    return () => {
+      clearTimeout(t);
+      ctrl.abort();
+    };
+  }, [search, source, condition, risk, profile]);
+
+  const columns = useMemo<ColumnDef<ListingRow>[]>(
+    () =>
+      COLUMNS.map((meta) => ({
+        accessorKey: meta.key,
+        header: meta.label,
+        cell: ({ row }) => renderCell(row.original, meta),
+      })),
+    [],
+  );
+
+  const table = useReactTable({
+    data: rows,
+    columns,
+    state: { sorting, columnVisibility },
+    onSortingChange: setSorting,
+    onColumnVisibilityChange: setColumnVisibility,
+    getCoreRowModel: getCoreRowModel(),
+    getSortedRowModel: getSortedRowModel(),
+  });
+
+  function exportCsv() {
+    const visible = COLUMNS.filter((c) => columnVisibility[c.key] !== false);
+    const header = visible.map((c) => c.label).join(",");
+    const lines = rows.map((r) =>
+      visible.map((c) => JSON.stringify(r[c.key] ?? "")).join(","),
+    );
+    const csv = [header, ...lines].join("\n");
+    const blob = new Blob([csv], { type: "text/csv" });
+    const url = URL.createObjectURL(blob);
+    const a = document.createElement("a");
+    a.href = url;
+    a.download = "govarbitrage-listings.csv";
+    a.click();
+    URL.revokeObjectURL(url);
+  }
+
+  return (
+    <div className="space-y-3">
+      <div className="flex flex-wrap items-center gap-2">
+        <Input
+          placeholder="Search title, mfr, model, auction #…"
+          value={search}
+          onChange={(e) => setSearch(e.target.value)}
+          className="max-w-xs"
+        />
+        <Select value={profile} onChange={setProfile} options={PROFILES.map(([v, l]) => [v, l])} label="Profile" />
+        <Select value={source} onChange={setSource} options={[["", "All sources"], ...SOURCES.map((s) => [s, s.replace(/_/g, " ")] as [string, string])]} />
+        <Select value={condition} onChange={setCondition} options={[["", "All conditions"], ...CONDITIONS.map((c) => [c, c.replace(/_/g, " ")] as [string, string])]} />
+        <Select value={risk} onChange={setRisk} options={[["", "All risk"], ...RISKS.map((r) => [r, r] as [string, string])]} />
+        <div className="relative">
+          <Button variant="outline" size="sm" onClick={() => setShowColMenu((s) => !s)}>
+            Columns
+          </Button>
+          {showColMenu && (
+            <div className="absolute z-20 mt-1 max-h-80 w-56 overflow-auto rounded-md border bg-card p-2 shadow-lg">
+              {table.getAllLeafColumns().map((col) => (
+                <label key={col.id} className="flex items-center gap-2 py-0.5 text-xs">
+                  <input
+                    type="checkbox"
+                    checked={col.getIsVisible()}
+                    onChange={col.getToggleVisibilityHandler()}
+                  />
+                  {COLUMNS.find((c) => c.key === col.id)?.label ?? col.id}
+                </label>
+              ))}
+            </div>
+          )}
+        </div>
+        <Button variant="outline" size="sm" onClick={exportCsv}>
+          Export CSV
+        </Button>
+        <span className="ml-auto text-xs text-muted-foreground">
+          {loading ? "Loading…" : `${rows.length} listings`}
+        </span>
+      </div>
+
+      <div className="overflow-auto rounded-xl border">
+        <table className="w-full border-collapse text-sm">
+          <thead className="sticky top-0 z-10 bg-card">
+            {table.getHeaderGroups().map((hg) => (
+              <tr key={hg.id}>
+                {hg.headers.map((header, i) => (
+                  <th
+                    key={header.id}
+                    onClick={header.column.getToggleSortingHandler()}
+                    className={cn(
+                      "cursor-pointer select-none whitespace-nowrap border-b px-3 py-2 text-left text-xs font-semibold text-muted-foreground hover:text-foreground",
+                      i === 0 && "sticky left-0 z-20 bg-card",
+                    )}
+                  >
+                    {flexRender(header.column.columnDef.header, header.getContext())}
+                    {{ asc: " ▲", desc: " ▼" }[header.column.getIsSorted() as string] ?? ""}
+                  </th>
+                ))}
+              </tr>
+            ))}
+          </thead>
+          <tbody>
+            {table.getRowModel().rows.map((row) => (
+              <tr
+                key={row.id}
+                onClick={() => router.push(`/listings/${row.original.id}`)}
+                className="cursor-pointer border-b hover:bg-accent/50"
+              >
+                {row.getVisibleCells().map((cell, i) => (
+                  <td
+                    key={cell.id}
+                    className={cn(
+                      "whitespace-nowrap px-3 py-2",
+                      i === 0 && "sticky left-0 z-10 max-w-[280px] truncate bg-card font-medium",
+                    )}
+                  >
+                    {flexRender(cell.column.columnDef.cell, cell.getContext())}
+                  </td>
+                ))}
+              </tr>
+            ))}
+            {!loading && rows.length === 0 && (
+              <tr>
+                <td colSpan={COLUMNS.length} className="px-3 py-10 text-center text-muted-foreground">
+                  No listings match your filters.
+                </td>
+              </tr>
+            )}
+          </tbody>
+        </table>
+      </div>
+    </div>
+  );
+}
+
+function Select({
+  value,
+  onChange,
+  options,
+  label,
+}: {
+  value: string;
+  onChange: (v: string) => void;
+  options: [string, string][];
+  label?: string;
+}) {
+  return (
+    <select
+      value={value}
+      onChange={(e) => onChange(e.target.value)}
+      title={label}
+      className="h-8 rounded-md border bg-transparent px-2 text-xs outline-none focus-visible:ring-2 focus-visible:ring-primary"
+    >
+      {options.map(([v, l]) => (
+        <option key={v} value={v} className="bg-card">
+          {l}
+        </option>
+      ))}
+    </select>
+  );
+}
diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx
new file mode 100644
index 0000000..e6ed8a5
--- /dev/null
+++ b/src/components/ui/badge.tsx
@@ -0,0 +1,27 @@
+import { cva, type VariantProps } from "class-variance-authority";
+import { cn } from "@/lib/utils";
+
+const badgeVariants = cva(
+  "inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium whitespace-nowrap",
+  {
+    variants: {
+      variant: {
+        default: "bg-accent text-foreground",
+        primary: "bg-primary/15 text-primary",
+        positive: "bg-[var(--positive)]/15 text-[var(--positive)]",
+        negative: "bg-[var(--negative)]/15 text-[var(--negative)]",
+        warning: "bg-[var(--warning)]/15 text-[var(--warning)]",
+        outline: "border text-muted-foreground",
+      },
+    },
+    defaultVariants: { variant: "default" },
+  },
+);
+
+export function Badge({
+  className,
+  variant,
+  ...props
+}: React.HTMLAttributes<HTMLSpanElement> & VariantProps<typeof badgeVariants>) {
+  return <span className={cn(badgeVariants({ variant }), className)} {...props} />;
+}
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
new file mode 100644
index 0000000..c17f58f
--- /dev/null
+++ b/src/components/ui/button.tsx
@@ -0,0 +1,29 @@
+import { cva, type VariantProps } from "class-variance-authority";
+import { cn } from "@/lib/utils";
+
+const buttonVariants = cva(
+  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors disabled:opacity-50 disabled:pointer-events-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
+  {
+    variants: {
+      variant: {
+        default: "bg-primary text-primary-foreground hover:opacity-90",
+        outline: "border bg-transparent hover:bg-accent",
+        ghost: "hover:bg-accent",
+      },
+      size: {
+        default: "h-9 px-4",
+        sm: "h-8 px-3 text-xs",
+        icon: "h-9 w-9",
+      },
+    },
+    defaultVariants: { variant: "default", size: "default" },
+  },
+);
+
+export interface ButtonProps
+  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
+    VariantProps<typeof buttonVariants> {}
+
+export function Button({ className, variant, size, ...props }: ButtonProps) {
+  return <button className={cn(buttonVariants({ variant, size }), className)} {...props} />;
+}
diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx
new file mode 100644
index 0000000..d66fb43
--- /dev/null
+++ b/src/components/ui/card.tsx
@@ -0,0 +1,22 @@
+import { cn } from "@/lib/utils";
+
+export function Card({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
+  return (
+    <div
+      className={cn("rounded-xl border bg-card text-card-foreground shadow-sm", className)}
+      {...props}
+    />
+  );
+}
+
+export function CardHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
+  return <div className={cn("flex flex-col gap-1 p-4", className)} {...props} />;
+}
+
+export function CardTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
+  return <div className={cn("text-sm font-medium text-muted-foreground", className)} {...props} />;
+}
+
+export function CardContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {
+  return <div className={cn("p-4 pt-0", className)} {...props} />;
+}
diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx
new file mode 100644
index 0000000..f06ad15
--- /dev/null
+++ b/src/components/ui/input.tsx
@@ -0,0 +1,13 @@
+import { cn } from "@/lib/utils";
+
+export function Input({ className, ...props }: React.InputHTMLAttributes<HTMLInputElement>) {
+  return (
+    <input
+      className={cn(
+        "h-9 w-full rounded-md border bg-transparent px-3 text-sm outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary",
+        className,
+      )}
+      {...props}
+    />
+  );
+}
diff --git a/src/lib/dashboard.ts b/src/lib/dashboard.ts
new file mode 100644
index 0000000..4867e81
--- /dev/null
+++ b/src/lib/dashboard.ts
@@ -0,0 +1,41 @@
+import { prisma } from "@/lib/db";
+
+export interface DashboardStats {
+  activeAuctions: number;
+  closingToday: number;
+  highestProfit: number;
+  highestRoi: number;
+  cashRequired: number; // sum of recommended max bids across active opportunities
+  expectedProfit: number; // sum of expected net profit
+  highestScore: number;
+  pendingResearch: number;
+}
+
+/** Aggregate the summary-card metrics in a single pass. */
+export async function getDashboardStats(): Promise<DashboardStats> {
+  const now = new Date();
+  const endOfDay = new Date(now);
+  endOfDay.setHours(23, 59, 59, 999);
+
+  const [activeAuctions, closingToday, pendingResearch, costAgg, topScore] = await Promise.all([
+    prisma.listing.count({ where: { closingAt: { gte: now } } }),
+    prisma.listing.count({ where: { closingAt: { gte: now, lte: endOfDay } } }),
+    prisma.listing.count({ where: { researchStatus: { in: ["PENDING", "QUEUED", "IN_PROGRESS"] } } }),
+    prisma.costBreakdown.aggregate({
+      _sum: { expectedNetProfit: true, recommendedMaxBid: true },
+      _max: { expectedNetProfit: true, roi: true },
+    }),
+    prisma.score.aggregate({ where: { profile: "OVERALL_OPPORTUNITY" }, _max: { value: true } }),
+  ]);
+
+  return {
+    activeAuctions,
+    closingToday,
+    highestProfit: Number(costAgg._max.expectedNetProfit ?? 0),
+    highestRoi: Number(costAgg._max.roi ?? 0),
+    cashRequired: Number(costAgg._sum.recommendedMaxBid ?? 0),
+    expectedProfit: Number(costAgg._sum.expectedNetProfit ?? 0),
+    highestScore: Number(topScore._max.value ?? 0),
+    pendingResearch,
+  };
+}
diff --git a/src/lib/listings.ts b/src/lib/listings.ts
new file mode 100644
index 0000000..509e855
--- /dev/null
+++ b/src/lib/listings.ts
@@ -0,0 +1,184 @@
+import { prisma } from "@/lib/db";
+import type { Prisma } from "@prisma/client";
+
+// Flat row shape backing the dashboard table — every sortable column the spec
+// lists, denormalized from Listing + Research + CostBreakdown + the chosen Score.
+export interface ListingRow {
+  id: string;
+  source: string;
+  sourceAuctionId: string;
+  sourceUrl: string | null;
+  title: string;
+  category: string | null;
+  manufacturer: string | null;
+  model: string | null;
+  condition: string;
+  quantity: number;
+  currentBid: number;
+  currentCost: number; // bid + premium + tax (acquisition-in)
+  recommendedMaxBid: number;
+  retailLow: number | null;
+  retailAverage: number | null;
+  retailHigh: number | null;
+  usedLow: number | null;
+  usedAverage: number | null;
+  usedHigh: number | null;
+  wholesale: number | null;
+  liquidation: number | null;
+  sellNow: number | null;
+  value7Day: number | null;
+  value30Day: number | null;
+  value90Day: number | null;
+  expectedSale: number | null;
+  shipping: number;
+  freight: number;
+  repairs: number;
+  marketplaceFees: number;
+  netProfit: number;
+  roi: number;
+  risk: string;
+  confidence: number | null;
+  opportunityScore: number;
+  arbitrageScore: number;
+  demandScore: number;
+  velocityScore: number;
+  logisticsScore: number;
+  conditionScore: number;
+  competitionScore: number;
+  buyerScore: number;
+  dropShip: string;
+  closingAt: string | null;
+  researchStatus: string;
+  imageUrl: string | null;
+}
+
+type FullListing = Prisma.ListingGetPayload<{
+  include: { research: true; costBreakdown: true; scores: true };
+}>;
+
+const num = (d: Prisma.Decimal | number | null | undefined): number =>
+  d == null ? 0 : typeof d === "number" ? d : Number(d);
+const numN = (d: Prisma.Decimal | number | null | undefined): number | null =>
+  d == null ? null : typeof d === "number" ? d : Number(d);
+
+export function flattenListing(l: FullListing, profile = "OVERALL_OPPORTUNITY"): ListingRow {
+  const r = l.research;
+  const c = l.costBreakdown;
+  const s = l.scores.find((x) => x.profile === profile) ?? l.scores[0];
+  const currentCost = c ? num(c.winningBid) + num(c.buyerPremium) + num(c.salesTax) : num(l.currentBid);
+  return {
+    id: l.id,
+    source: l.source,
+    sourceAuctionId: l.sourceAuctionId,
+    sourceUrl: l.sourceUrl,
+    title: l.title,
+    category: l.category,
+    manufacturer: l.manufacturer,
+    model: l.model,
+    condition: l.condition,
+    quantity: l.quantity,
+    currentBid: num(l.currentBid),
+    currentCost,
+    recommendedMaxBid: num(c?.recommendedMaxBid),
+    retailLow: numN(r?.avgRetail),
+    retailAverage: numN(r?.avgRetail),
+    retailHigh: numN(r?.newRetail),
+    usedLow: numN(r?.usedLow),
+    usedAverage: numN(r?.usedSoldPrice),
+    usedHigh: numN(r?.usedHigh),
+    wholesale: numN(r?.wholesaleValue),
+    liquidation: numN(r?.liquidationValue),
+    sellNow: numN(r?.sellTodayValue),
+    value7Day: numN(r?.value7Day),
+    value30Day: numN(r?.value30Day),
+    value90Day: numN(r?.value90Day),
+    expectedSale: numN(r?.expectedSalePrice),
+    shipping: num(c?.shipping),
+    freight: num(c?.freight),
+    repairs: num(c?.repairs),
+    marketplaceFees: num(c?.marketplaceFees),
+    netProfit: num(c?.expectedNetProfit),
+    roi: num(c?.roi),
+    risk: s?.risk ?? "MEDIUM",
+    confidence: numN(r?.confidenceScore),
+    opportunityScore: s?.value ?? 0,
+    arbitrageScore: s?.arbitrage ?? 0,
+    demandScore: s?.demand ?? 0,
+    velocityScore: s?.velocity ?? 0,
+    logisticsScore: s?.logistics ?? 0,
+    conditionScore: s?.condition ?? 0,
+    competitionScore: s?.competition ?? 0,
+    buyerScore: s?.buyer ?? 0,
+    dropShip: s?.dropShip ?? "MODERATE",
+    closingAt: l.closingAt ? l.closingAt.toISOString() : null,
+    researchStatus: l.researchStatus,
+    imageUrl: l.imageUrls[0] ?? null,
+  };
+}
+
+export interface QueryParams {
+  search?: string;
+  source?: string;
+  category?: string;
+  condition?: string;
+  risk?: string;
+  closingWithinHours?: number;
+  sort?: keyof ListingRow;
+  dir?: "asc" | "desc";
+  page?: number;
+  pageSize?: number;
+  profile?: string;
+}
+
+export async function queryListings(params: QueryParams) {
+  const {
+    search,
+    source,
+    category,
+    condition,
+    risk,
+    closingWithinHours,
+    sort = "opportunityScore",
+    dir = "desc",
+    page = 1,
+    pageSize = 50,
+    profile = "OVERALL_OPPORTUNITY",
+  } = params;
+
+  const where: Prisma.ListingWhereInput = {};
+  if (source) where.source = source as Prisma.ListingWhereInput["source"];
+  if (condition) where.condition = condition as Prisma.ListingWhereInput["condition"];
+  if (category) where.category = { contains: category, mode: "insensitive" };
+  if (search) {
+    where.OR = [
+      { title: { contains: search, mode: "insensitive" } },
+      { manufacturer: { contains: search, mode: "insensitive" } },
+      { model: { contains: search, mode: "insensitive" } },
+      { sourceAuctionId: { contains: search, mode: "insensitive" } },
+    ];
+  }
+  if (closingWithinHours) {
+    where.closingAt = { lte: new Date(Date.now() + closingWithinHours * 3_600_000), gte: new Date() };
+  }
+
+  const all = await prisma.listing.findMany({
+    where,
+    include: { research: true, costBreakdown: true, scores: true },
+  });
+
+  let rows = all.map((l) => flattenListing(l, profile));
+  if (risk) rows = rows.filter((r) => r.risk === risk);
+
+  rows.sort((a, b) => {
+    const av = a[sort];
+    const bv = b[sort];
+    if (typeof av === "number" && typeof bv === "number") return dir === "asc" ? av - bv : bv - av;
+    const as = String(av ?? "");
+    const bs = String(bv ?? "");
+    return dir === "asc" ? as.localeCompare(bs) : bs.localeCompare(as);
+  });
+
+  const total = rows.length;
+  const start = (page - 1) * pageSize;
+  return { rows: rows.slice(start, start + pageSize), total, page, pageSize };
+}
diff --git a/tsconfig.json b/tsconfig.json
index 0b0dc58..1519ebf 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,11 @@
 {
   "compilerOptions": {
     "target": "ES2022",
-    "lib": ["dom", "dom.iterable", "ES2022"],
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "ES2022"
+    ],
     "allowJs": true,
     "skipLibCheck": true,
     "strict": true,
@@ -11,14 +15,28 @@
     "moduleResolution": "bundler",
     "resolveJsonModule": true,
     "isolatedModules": true,
-    "jsx": "preserve",
+    "jsx": "react-jsx",
     "incremental": true,
     "verbatimModuleSyntax": false,
-    "plugins": [{ "name": "next" }],
+    "plugins": [
+      {
+        "name": "next"
+      }
+    ],
     "paths": {
-      "@/*": ["./src/*"]
+      "@/*": [
+        "./src/*"
+      ]
     }
   },
-  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
-  "exclude": ["node_modules"]
+  "include": [
+    "next-env.d.ts",
+    "**/*.ts",
+    "**/*.tsx",
+    ".next/types/**/*.ts",
+    ".next/dev/types/**/*.ts"
+  ],
+  "exclude": [
+    "node_modules"
+  ]
 }
diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo
new file mode 100644
index 0000000..f5f796e
--- /dev/null
+++ b/tsconfig.tsbuildinfo
@@ -0,0 +1 @@
+{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/entry-constants.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/lib/bundler.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","./node_modules/next/dist/server/app-render/vary-params.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/shared/lib/app-router-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","./node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/client/components/readonly-url-search-params.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/segment-cache/types.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","./node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","./node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","./node_modules/next/dist/client/components/segment-cache/cache.d.ts","./node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","./node_modules/next/dist/client/components/segment-cache/navigation.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","./node_modules/next/dist/server/load-default-error-components.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/staged-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/get-supported-browsers.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/lib/cpu-profile.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/define-env.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/debug-channel.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/dist/server/web/exports/index.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/shared/lib/size-limit.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/build/adapter/build-complete.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/dist/client/components/catch-error.d.ts","./node_modules/next/dist/api/error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./next.config.ts","./node_modules/@vitest/spy/optional-types.d.ts","./node_modules/@vitest/spy/dist/index.d.ts","./node_modules/tinyrainbow/dist/index.d.ts","./node_modules/@standard-schema/spec/dist/index.d.ts","./node_modules/@vitest/pretty-format/dist/index.d.ts","./node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","./node_modules/@vitest/utils/dist/diff.d.ts","./node_modules/@vitest/utils/dist/display.d.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@vitest/expect/dist/index.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/rollup/dist/parseast.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/dist/node/module-runner.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/internal/terseroptions.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/lightningcss/node/ast.d.ts","./node_modules/lightningcss/node/targets.d.ts","./node_modules/lightningcss/node/index.d.ts","./node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/@vitest/utils/dist/types.d.ts","./node_modules/@vitest/utils/dist/helpers.d.ts","./node_modules/@vitest/utils/dist/timers.d.ts","./node_modules/@vitest/utils/dist/index.d.ts","./node_modules/@vitest/runner/dist/tasks.d-deyaimiu.d.ts","./node_modules/@vitest/runner/dist/index.d.ts","./node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","./node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","./node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","./node_modules/@vitest/snapshot/dist/index.d.ts","./node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","./node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","./node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","./node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","./node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","./node_modules/vitest/optional-types.d.ts","./node_modules/@vitest/runner/dist/utils.d.ts","./node_modules/tinybench/dist/index.d.ts","./node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","./node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","./node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","./node_modules/@vitest/mocker/dist/index.d.ts","./node_modules/@vitest/utils/dist/source-map.d.ts","./node_modules/vitest/dist/chunks/coverage.d.bztk59wp.d.ts","./node_modules/@vitest/utils/dist/serialize.d.ts","./node_modules/@vitest/utils/dist/error.d.ts","./node_modules/vitest/dist/browser.d.ts","./node_modules/vitest/browser/context.d.ts","./node_modules/@vitest/snapshot/dist/manager.d.ts","./node_modules/vitest/dist/chunks/reporters.d.dtokvv2s.d.ts","./node_modules/vitest/dist/chunks/plugin.d.dwfiij7i.d.ts","./node_modules/vitest/dist/config.d.ts","./node_modules/vitest/config.d.ts","./vitest.config.ts","./node_modules/@prisma/client/runtime/library.d.ts","./node_modules/.prisma/client/index.d.ts","./node_modules/.prisma/client/default.d.ts","./node_modules/@prisma/client/default.d.ts","./src/lib/db.ts","./src/lib/ai.ts","./node_modules/clsx/clsx.d.mts","./node_modules/tailwind-merge/dist/types.d.ts","./src/lib/utils.ts","./src/engines/demand.ts","./src/engines/types.ts","./src/engines/constants.ts","./src/engines/valuation.ts","./src/engines/freight.ts","./src/engines/costs.ts","./src/engines/scoring.ts","./src/pipeline/research.ts","./prisma/seed.ts","./src/lib/listings.ts","./src/app/api/listings/route.ts","./src/app/api/listings/[id]/route.ts","./node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","./node_modules/vitest/optional-runtime-types.d.ts","./node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","./node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","./node_modules/vitest/dist/runners.d.ts","./node_modules/expect-type/dist/utils.d.ts","./node_modules/expect-type/dist/overloads.d.ts","./node_modules/expect-type/dist/branding.d.ts","./node_modules/expect-type/dist/messages.d.ts","./node_modules/expect-type/dist/index.d.ts","./node_modules/vitest/dist/index.d.ts","./src/engines/costs.test.ts","./src/engines/scoring.test.ts","./src/engines/valuation.test.ts","./src/lib/dashboard.ts","./src/app/layout.tsx","./src/components/ui/card.tsx","./src/components/dashboard-cards.tsx","./node_modules/@tanstack/table-core/build/lib/utils.d.ts","./node_modules/@tanstack/table-core/build/lib/core/table.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnvisibility.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnordering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/core/headers.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/filterfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/sortingfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowsorting.d.ts","./node_modules/@tanstack/table-core/build/lib/aggregationfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columngrouping.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowexpanding.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnsizing.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpagination.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowselection.d.ts","./node_modules/@tanstack/table-core/build/lib/core/row.d.ts","./node_modules/@tanstack/table-core/build/lib/core/cell.d.ts","./node_modules/@tanstack/table-core/build/lib/core/column.d.ts","./node_modules/@tanstack/table-core/build/lib/types.d.ts","./node_modules/@tanstack/table-core/build/lib/columnhelper.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getcorerowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getexpandedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedminmaxvalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfaceteduniquevalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfilteredrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getgroupedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getpaginationrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getsortedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/index.d.ts","./node_modules/@tanstack/react-table/build/lib/index.d.ts","./node_modules/class-variance-authority/dist/types.d.ts","./node_modules/class-variance-authority/dist/index.d.ts","./src/components/ui/badge.tsx","./src/components/ui/button.tsx","./src/components/ui/input.tsx","./src/components/listings-table.tsx","./src/app/page.tsx","./src/app/listings/[id]/page.tsx","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[74,123,140,141,510],[74,123,140,141,597],[74,123,140,141,596],[74,123,140,141,679],[74,123,140,141],[74,123,140,141,598],[62,74,123,140,141,669],[74,123,140,141,650],[74,123,140,141,635,658],[74,123,140,141,658],[74,123,140,141,658,669],[74,123,140,141,644,658,669],[74,123,140,141,649,658,669],[74,123,140,141,639,658],[74,123,140,141,647,658,669],[74,123,140,141,645],[74,123,140,141,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668],[74,123,140,141,648],[74,123,140,141,635,636,637,638,639,640,641,642,643,645,646,648,650,651,652,653,654,655,656,657],[74,123,140,141,679,680,681,682,683],[74,123,140,141,679,681],[74,123,140,141,520,521],[74,120,121,123,140,141],[74,122,123,140,141],[123,140,141],[74,123,128,140,141,158],[74,123,124,129,134,140,141,143,155,166],[74,123,124,125,134,140,141,143],[69,70,71,74,123,140,141],[74,123,126,140,141,167],[74,123,127,128,135,140,141,144],[74,123,128,140,141,155,163],[74,123,129,131,134,140,141,143],[74,122,123,130,140,141],[74,123,131,132,140,141],[74,123,133,134,140,141],[74,122,123,134,140,141],[74,123,134,135,136,140,141,155,166],[74,123,134,135,136,140,141,150,155,158],[74,115,123,131,134,137,140,141,143,155,166],[74,123,134,135,137,138,140,141,143,155,163,166],[74,123,137,139,140,141,155,163,166],[72,73,74,75,76,77,78,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[74,123,134,140,141],[74,123,140,141,142,166],[74,123,131,134,140,141,143,155],[74,123,140,141,144],[74,123,140,141,145],[74,122,123,140,141,146],[74,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],[74,123,140,141,148],[74,123,140,141,149],[74,123,134,140,141,150,151],[74,123,140,141,150,152,167,169],[74,123,135,140,141],[74,123,134,140,141,155,156,158],[74,123,140,141,157,158],[74,123,140,141,155,156],[74,123,140,141,158],[74,123,140,141,159],[74,120,123,140,141,155,160,166],[74,123,134,140,141,161,162],[74,123,140,141,161,162],[74,123,128,140,141,143,155,163],[74,123,140,141,164],[74,123,140,141,143,165],[74,123,137,140,141,149,166],[74,123,128,140,141,167],[74,123,140,141,155,168],[74,123,140,141,142,169],[74,123,140,141,170],[74,115,123,140,141],[74,115,123,134,136,140,141,146,155,158,166,168,169,171],[74,123,140,141,155,172],[62,66,74,123,140,141,174,175,176,178,460,505],[62,74,123,140,141],[62,66,74,123,140,141,174,175,176,177,441,460,505],[62,66,74,123,140,141,174,175,177,178,460,505],[62,74,123,140,141,178,441,442],[62,74,123,140,141,178,441],[62,66,74,123,140,141,175,176,177,178,460,505],[62,66,74,123,140,141,174,176,177,178,460,505],[60,61,74,123,140,141],[74,123,140,141,513,514,515,518,519,522],[74,123,140,141,581],[74,123,140,141,581,582],[74,123,140,141,518,565,566],[74,123,140,141,518,565],[74,123,140,141,565],[74,123,140,141,516,565,569,570],[74,123,140,141,516,565,569],[74,123,140,141,512],[74,123,140,141,516,517],[74,123,140,141,516],[74,123,140,141,516,517,562,586],[74,123,140,141,562],[74,123,140,141,516,519,562,563,564],[74,123,140,141,602,671],[74,123,140,141,602],[74,123,140,141,622,623],[74,123,140,141,622,623,624,625],[74,123,140,141,622,624],[74,123,140,141,622],[74,123,140,141,555,556],[74,123,140,141,463],[74,123,140,141,465,466,467,468],[74,123,140,141,411,474,475],[74,123,140,141,183,184,186,198,222,337,348,456],[74,123,140,141,186,217,218,219,221,456],[74,123,140,141,186,354,356,358,359,361,456,458],[74,123,140,141,186,220,257,456],[74,123,140,141,184,186,197,198,204,210,215,336,337,338,347,456,458],[74,123,140,141,456],[74,123,140,141,193,199,218,238,333],[74,123,140,141,186],[74,123,140,141,179,193,199],[74,123,140,141,365],[74,123,140,141,362,363,365],[74,123,140,141,362,364,456],[74,123,137,140,141,238,435,453],[74,123,137,140,141,309,312,328,333,453],[74,123,137,140,141,281,453],[74,123,140,141,341],[74,123,140,141,340,341,342],[74,123,140,141,340],[68,74,123,137,140,141,179,186,198,204,210,216,218,222,223,236,237,304,334,335,348,456,460],[74,123,140,141,183,186,220,257,354,355,360,456,508],[74,123,140,141,220,508],[74,123,140,141,183,237,406,456,508],[74,123,140,141,508],[74,123,140,141,186,220,221,508],[74,123,140,141,357,508],[74,123,140,141,223,336,339,346],[62,74,123,140,141,411],[74,123,140,141,149,193,208],[74,123,140,141,193,208],[62,74,123,140,141,278],[62,74,123,140,141,208],[62,74,123,140,141,199,208,411],[74,123,140,141,193,264,278,279,490,497],[74,123,140,141,263,491,492,493,494,496],[74,123,140,141,314],[74,123,140,141,314,315],[74,123,140,141,197,199,266,267],[74,123,140,141,199,273,274],[74,123,140,141,199,268,276],[74,123,140,141,273],[74,123,140,141,191,199,266,267,268,269,270,271,272,273,276],[74,123,140,141,199,266,273,274,275,277],[74,123,140,141,199,267,269,270],[74,123,140,141,267,269,272,274],[74,123,140,141,495],[74,123,140,141,199],[62,74,123,140,141,187,484],[62,74,123,140,141,166],[62,74,123,140,141,220,255],[62,74,123,140,141,220,348],[74,123,140,141,253,258],[62,74,123,140,141,254,462],[62,66,74,123,137,140,141,174,175,176,177,178,460,504],[74,123,137,140,141,199],[74,123,137,140,141,198,203,284,301,343,344,348,403,405,456,457],[74,123,140,141,236,345],[74,123,140,141,460],[74,123,140,141,185],[62,74,123,140,141,190,193,408,424,426],[74,123,140,141,149,193,408,423,424,425,507],[74,123,140,141,417,418,419,420,421,422],[74,123,140,141,419],[74,123,140,141,423],[74,123,140,141,208,372,373,375],[62,74,123,140,141,199,366,367,368,369,374],[74,123,140,141,372,374],[74,123,140,141,370],[74,123,140,141,371],[62,74,123,140,141,208,254,462],[62,74,123,140,141,208,461,462],[62,74,123,140,141,208,462],[74,123,140,141,301,302],[74,123,140,141,302],[74,123,137,140,141,457,462],[74,123,140,141,331],[74,122,123,140,141,330],[74,123,140,141,193,199,205,207,309,322,326,328,405,408,445,446,453,457],[74,123,140,141,199,248,270],[74,123,140,141,309,320,323,328],[62,74,123,140,141,190,193,309,312,328,331,365,412,413,414,415,416,427,428,429,430,431,432,433,434,508],[74,123,140,141,190,193,218,309,316,317,318,321,322],[74,123,140,141,155,199,218,320,327,408,409,453],[74,123,140,141,324],[74,123,137,140,141,149,187,199,203,213,245,246,249,301,304,369,403,404,445,456,457,458,460,508],[74,123,140,141,190,191,193],[74,123,140,141,309],[74,122,123,140,141,218,245,246,303,304,305,306,307,308,457],[74,123,140,141,328],[74,122,123,140,141,192,193,203,207,243,309,316,317,318,319,320,323,324,325,326,327,446],[74,123,137,140,141,243,244,316,457,458],[74,123,140,141,218,246,301,304,309,405,457],[74,123,137,140,141,456,458],[74,123,137,140,141,155,453,457,458],[74,123,137,140,141,149,179,193,198,205,207,210,213,220,240,245,246,247,248,249,284,285,287,290,292,295,296,297,298,300,348,403,405,453,456,457,458],[74,123,137,140,141,155],[74,123,140,141,186,187,188,216,453,454,455,460,462,508],[74,123,140,141,183,184,456],[74,123,140,141,377],[74,123,137,140,141,155,166,195,361,365,366,367,368,369,375,376,508],[74,123,140,141,149,166,179,193,195,207,210,246,285,290,300,301,354,381,382,383,389,392,393,403,405,453,456],[74,123,140,141,210,216,223,236,246,304,456],[74,123,137,140,141,166,187,198,207,246,387,453,456],[74,123,140,141,407],[74,123,137,140,141,377,390,391,400],[74,123,140,141,453,456],[74,123,140,141,306,446],[74,123,140,141,207,245,348,462],[74,123,137,140,141,149,185,290,350,354,383,389,392,395,453],[74,123,137,140,141,223,236,354,396],[74,123,140,141,186,247,348,398,456,458],[74,123,137,140,141,166,369,456],[74,123,137,140,141,220,247,348,349,350,359,377,397,399,456],[68,74,123,137,140,141,245,402,460,462],[74,123,140,141,299,403],[74,123,137,140,141,149,193,196,198,199,205,207,213,222,223,236,246,249,285,287,297,300,301,348,381,382,383,384,386,388,403,405,453,462],[74,123,137,140,141,155,223,389,394,400,453],[74,123,140,141,226,227,228,229,230,231,232,233,234,235],[74,123,140,141,240,291],[74,123,140,141,293],[74,123,140,141,291],[74,123,140,141,293,294],[74,123,137,140,141,197,198,199,203,204,457],[74,123,137,140,141,149,185,187,205,209,245,248,249,283,403,453,458,460,462],[74,123,137,140,141,149,166,189,196,197,207,209,246,401,446,452,457],[74,123,140,141,316],[74,123,140,141,317],[74,123,140,141,199,210,445],[74,123,140,141,318],[74,123,140,141,192],[74,123,140,141,194,206],[74,123,137,140,141,194,198,205],[74,123,140,141,201,206],[74,123,140,141,202],[74,123,140,141,194,195],[74,123,140,141,194,250],[74,123,140,141,194],[74,123,140,141,196,240,289],[74,123,140,141,288],[74,123,140,141,193,195,196],[74,123,140,141,196,286],[74,123,140,141,193,195],[74,123,140,141,245,348],[74,123,140,141,445],[74,123,137,140,141,166,205,207,211,245,348,402,405,408,409,410,436,437,440,444,446,453,457],[74,123,140,141,259,262,264,265,278,279],[62,74,123,140,141,176,178,208,438,439],[62,74,123,140,141,176,178,208,438,439,443],[74,123,140,141,332],[74,123,140,141,218,239,244,245,309,310,311,312,313,315,328,329,331,334,402,405,456,458],[74,123,140,141,278],[74,123,137,140,141,283,453],[74,123,140,141,283],[74,123,137,140,141,205,251,280,282,284,402,453,460,462],[74,123,140,141,259,260,261,262,264,265,278,279,461],[68,74,123,137,140,141,149,166,194,195,207,213,245,246,249,348,400,401,403,453,456,457,460],[74,123,140,141,190,193,200],[74,123,140,141,244,246,378,381],[74,123,140,141,244,379,447,448,449,450,451],[74,123,137,140,141,240,456],[74,123,137,140,141],[74,123,140,141,243,328],[74,123,140,141,242],[74,123,140,141,244,297],[74,123,140,141,241,243,456],[74,123,137,140,141,189,244,378,379,380,453,456,457],[62,74,123,140,141,193,199,277],[62,74,123,140,141,191],[74,123,140,141,181,182],[62,74,123,140,141,187],[62,74,123,140,141,193,263],[62,68,74,123,140,141,245,249,460,462],[74,123,140,141,187,484,485],[62,74,123,140,141,258],[62,74,123,140,141,149,166,185,252,254,256,257,462],[74,123,140,141,193,220,457],[74,123,140,141,193,385],[62,74,123,135,137,140,141,149,183,185,258,356,460,461],[62,74,123,140,141,174,175,176,177,178,460,505],[62,63,64,65,66,74,123,140,141],[74,123,128,140,141],[74,123,140,141,351,352,353],[74,123,140,141,351],[62,66,74,123,137,139,140,141,149,173,174,175,176,177,178,179,185,213,218,395,423,458,459,462,505],[74,123,140,141,470],[74,123,140,141,472],[74,123,140,141,476],[74,123,140,141,478],[74,123,140,141,480,481,482],[74,123,140,141,486],[67,74,123,140,141,464,469,471,473,477,479,483,487,489,499,500,502,506,507,508,509],[74,123,140,141,488],[74,123,140,141,498],[74,123,140,141,254],[74,123,140,141,501],[74,122,123,140,141,244,378,379,381,447,448,450,451,503,505],[74,123,140,141,173],[74,123,140,141,549],[74,123,140,141,547,549],[74,123,140,141,538,546,547,548,550,552],[74,123,140,141,536],[74,123,140,141,539,544,549,552],[74,123,140,141,535,552],[74,123,140,141,539,540,543,544,545,552],[74,123,140,141,539,540,541,543,544,552],[74,123,140,141,536,537,538,539,540,544,545,546,548,549,550,552],[74,123,140,141,552],[74,123,140,141,534,536,537,538,539,540,541,543,544,545,546,547,548,549,550,551],[74,123,140,141,534,552],[74,123,140,141,539,541,542,544,545,552],[74,123,140,141,543,552],[74,123,140,141,544,545,549,552],[74,123,140,141,537,547],[74,123,140,141,528,560,561],[74,123,140,141,527,528],[74,123,140,141,155,173],[74,87,91,123,140,141,166],[74,87,123,140,141,155,166],[74,82,123,140,141],[74,84,87,123,140,141,163,166],[74,123,140,141,143,163],[74,82,123,140,141,173],[74,84,87,123,140,141,143,166],[74,79,80,83,86,123,134,140,141,155,166],[74,87,94,123,140,141],[74,79,85,123,140,141],[74,87,108,109,123,140,141],[74,83,87,123,140,141,158,166,173],[74,108,123,140,141,173],[74,81,82,123,140,141,173],[74,87,123,140,141],[74,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,114,123,140,141],[74,87,102,123,140,141],[74,87,94,95,123,140,141],[74,85,87,95,96,123,140,141],[74,86,123,140,141],[74,79,82,87,123,140,141],[74,87,91,95,96,123,140,141],[74,91,123,140,141],[74,85,87,90,123,140,141,166],[74,79,84,87,94,123,140,141],[74,123,140,141,155],[74,82,87,108,123,140,141,171,173],[74,123,140,141,524],[74,123,134,135,137,138,139,140,141,143,155,163,166,172,173,524,525,526,528,529,531,532,533,553,554,558,559,560,561],[74,123,140,141,524,525,526,530],[74,123,140,141,526],[74,123,140,141,557],[74,123,140,141,528,561],[74,123,140,141,588],[74,123,140,141,523,593,617],[74,123,140,141,513,516,518,519,563,564,565,567,568,571,572,584,585,587,617],[74,123,140,141,567,578,579,617],[74,123,140,141,567,568,575,617],[74,123,140,141,516,518,567,568,571,617],[74,123,140,141,531],[74,123,140,141,516,523,567,568,571,580,617],[74,123,140,141,561,591,593],[74,123,126,135,140,141,155,516,518,523,561,565,567,568,571,572,575,576,577,580,583,584,585,589,590,593,617],[74,123,140,141,531,567,568,571,617],[74,123,140,141,567,578,579,580,617],[74,123,140,141,531,567,572,573,574,617],[74,123,126,135,140,141,155,516,518,523,531,561,565,567,568,571,572,573,574,575,576,577,578,579,580,583,584,585,589,590,591,592,593,617],[74,123,140,141,513,516,518,523,531,565,567,568,571,572,573,574,575,576,578,579,580,583,617,618,619,620,621,626],[74,123,140,141,516,518,567,568,571,572,578,579,580,617,619],[74,123,140,141,599,612],[74,123,140,141,506,600],[74,123,140,141,506,614],[74,123,140,141,507,510],[74,123,140,141,489,499,600,604,633,673],[74,123,140,141,631,634,676],[74,123,140,141,604,631,633],[62,74,123,140,141,499,604,614,670,673,674,675],[74,123,140,141,604,672],[74,123,140,141,604],[74,123,140,141,606],[74,123,140,141,606,610,627],[74,123,140,141,604,606,607,609],[74,123,140,141,604,607],[74,123,140,141,611,627],[74,123,140,141,604,606],[74,123,140,141,608,627],[74,123,140,141,604,606,607],[74,123,140,141,600],[74,123,140,141,599],[74,123,140,141,599,600],[74,123,140,141,602,603],[74,123,140,141,600,601,604,605,606,608,609,610,611],[74,123,140,141,166,594]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc782ff85b2cb10075ecffc158af7bfb27ff97bf8491c917efea0c3d622d5ac4","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"6dcedaef57dff0d79a05ab0ab602cde74db803d1e765468bf91263786a383e1b","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"48773ca557b0319c2ee62ae249cf52a81709e8be139920d6479a66274de7c4ed","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"cd9304972e6d616197fb44fce00540a904f38b54306a1951b5dbeaf3c01ab5bd","impliedFormat":1},{"version":"77438e2c397a3db78407621cfc57241a305b310ddea2c185f1d555248297f587","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"7715134a0cf07dd41a9da2895d708625a3a303a0385e355ecaaf0b8bfaef2550","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e5c939d896565dcac0f6fbdbada11284e7728ef26a069561c09aa5aa4a788393","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"dad97c99382889e9c7d1a9d8275500ff71235130fae9f8916fdbf3641d56e592","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"b55eb9f72166093b5460d34b34f5d8699c968de3bc3fc696e40f2c93f2ebf650","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","impliedFormat":1},{"version":"c30436b130b6218b7714314dc41d3f459590db4bdf099eecd51cb1bda32109a8","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"6ee598cdfdd0fa52039dca135b3dfff7b49035dc13292143e0a93843e3861967","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"eb5acb58487367e502d994b57e2c58255d8241f481ea8efa8e79af23af3f41c2","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"f1f4095f04343ad6e6825eba41eb50f1555685560dde164179a467e65c4a921c","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8daa443eaf9a27fd382cc1f8ebe30330c0f4d89511cfb469166874806751d35","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"20e617abb7268261ffc6a9dc95fb32e2a02bae279120feb3cb0935378478cc4e","signature":"435a1e418e8338be3f39614b96b81a9aa2700bc8c27bc6b98f064ff9ce17c363"},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"49ab4f1d153a252779958fc87b700743d32b5ffa42addd70ae23ad3f429daa5c","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"e3cf0611709328b449ec13f8c436712d62003620ce480139fae46ce001c2ee9f","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fd8a5aefd8c3feb3936ca66f5aa89dff7bf6e6537b4158dbd0f6e0d65ed3b9e","impliedFormat":1},{"version":"a18642ddf216f162052a16cba0944892c4c4c977d3306a87cb673d46abbb0cbf","impliedFormat":1},{"version":"41c41c6e90133bb2a14f7561f29944771886e5535945b2b372e2f6ed6987746e","impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"cbb1c5ba5dbabe42c19ca31b83e48fec95895484fe1d1a8fb649b69ea224c5b8","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"53cf4076f42b29b8d411259d168d51b3a0274c42c8814e5b44dfa8803a35d4fc","impliedFormat":99},{"version":"a39461ee1f27cf3e6cfd63d21045713d26d521da55ea4d8efccb705f689e6dbb","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"2b39c6cf59088713babbfc3e20ee85f1375d40e66953156fa658346b8346f24f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"437b7613a30a2fcde463f7b707c6d5567a8823fbc51de50b8641bf5b1d126fad","impliedFormat":99},{"version":"63ea959e28c110923f495576e614fb8b36c09b6828b467b2c7cd7f03b03ccf9f","impliedFormat":99},{"version":"1601a95dbb33059fc3d12638ed2a9aecff899e339c5c0f3a0b28768866d385b4","impliedFormat":99},{"version":"56fc978580577d30f4c2cdb5b1eb9217b66ed66537dd27141256f426e4b8dd68","impliedFormat":99},{"version":"2c5413050a2580becf9d82dd7e3006b95623e96f145356bf73230cd635352f70","impliedFormat":99},{"version":"860bedc71ead192ea4a0ea5ef4686e65724d14b391ebd1a6671a7044e6bd8e15","impliedFormat":99},{"version":"7c0a845bee4a084cbb8654709f48e5f13e2f6d45e5e2dde7c57cadf79fd9e3d5","impliedFormat":99},{"version":"7fa6fdc6eeeb3850e6b3166836f8c9199594c4f4bed3cee02cac0ca33d71894d","impliedFormat":99},{"version":"e53757f3e6688e8be16b36ccbeedc85637e607353fc67ff7b6665d6005aeaa12","impliedFormat":99},{"version":"88ba2660f5b024c7afd02ea700bc0c677687e17e34f0a94c3256ddb55e0f1c5d","impliedFormat":99},{"version":"7bbff6783e96c691a41a7cf12dd5486b8166a01b0c57d071dbcfca55c9525ec4","impliedFormat":99},"f35b9394ab2ab6fa8ef96f1da7121fa35c20ff6bbbc4fc3dcd3d9939f2088778",{"version":"b845876de475c230a1e012150db8d2c2a62bd6835a93e8cd23ebb10f7de16266","impliedFormat":1},{"version":"386d15001d6b1e7c7c15231ae66ec6b9641e04b6a6a8047cb01c73db31125846","impliedFormat":1},{"version":"d5eb5865d4cbaa9985cc3cfb920b230cdcf3363f1e70903a08dc4baab80b0ce1","impliedFormat":1},{"version":"51ebca098538b252953b1ef83c165f25b52271bfb6049cd09d197dddd4cd43c5","impliedFormat":1},"fcc2e352acaf704cdeb56c3ac4faad61fcd1980d3b30b578e1b36cb5e473d4b6","0e3ac895662d6f12987ecea09aa8f12d6de2a05607503322c0655a9cbea896ff",{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"26c57c9f839e6d2048d6c25e81f805ba0ca32a28fd4d824399fd5456c9b0575b","impliedFormat":1},"2dd8be064ad2e359d5f6a2afa7d0d370002803a5a52d2ba454a5de746de0f841","13826bddff48ed1ef0094aa1f876654713cae0273ee378cc7305238563bbf95f","721724ebc3d4730552e56054973e8ea2005536558044a7a445219c4a2b2ecf2f","577f326dca745320d546c4a52a95ad3ccbb0e8e4e601a65e550201d5071e2086","914bb038739070238d31247b0664d87e9a9cb015f1046f0c06d0043c43bea18f","1dea6fd481abca43b854f1186b229337c8c8f6c8a8943ea3e8f84f19fb138853","81f6ebb2fb7b9439f7c9159d3f2ea245b872c4be9261b2dbded89a5e84ba8f1f","9554230a35fec1689830cf0d99e2af7560f2d537062627daca3f04d7a9c1b48c","992e69563fe8f1328f6969e682def08d602f5b81fd4589bb65ad0476e5c04e5f","26cf355af50cae7b544b66e803340a8863cab4b54e9190d249a67238907584aa","c6180e83ede5a756bf59ae31f877b7b9b948148ae3c1a39c783d3a6c0d50510e","e42dd43feeb17d7e8466c644fbd26adf9344dc98c9b96734f7407e241b2a51aa","20660576a0f0167bcf0df4d7306b42bcba81e7b3a01ac08486c8a43f2535312b",{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"dd51e53752b310bd20c9b1a87bbf12b1fe2be7fe40f505b43199496481096275","impliedFormat":1},{"version":"a87be4662442b3feeffc331ecafe6b36cafd08727e2d7f2425a5099577e7fd18","impliedFormat":1},{"version":"cd4cd9220a1ba793bc935e76d8e5481c110a90d9868ae7866a182ee71cdb6abb","impliedFormat":1},{"version":"0a7fb8619b10bc05fd933ca9ac1c8b2ab2220be7a57b57565c3ac158595494ef","impliedFormat":1},{"version":"c4a5f91feb9c5a6b2a91089d959c38391b79a961db3b9cc73b8877d57ad7dcdc","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},"ac6fa2819b7ad00239e244ebf66254b38c4946d112c97aee7e261ed11a5c7054","29a7f5cc3b6877b83b8eab680cee12d38aedab3eace2e1958e9364c8cecabde6","4cb5242c21fa3fd85dcc7a5543b524144f32cfe77502b184844b7cced5605425","67e88725289c3e26599ef76d86b14ef5c2d2d8ab8ea93d15988b63641dc7f8ca","ac182fef78e8105b0a0c9304f748762ba09ad9bdbda1c7242f57e18dcb1f4df4","e19e34a298a58faec541fb58680948639a2c78f3008e9845dd8d186c696f754f","32a06e6fca5898586ad83f1b37d401ad950afd0bba1a08f39d73e589393428af",{"version":"e7c2f40dc99121500ad108a4f86541d29cac105ed018f994c7c5a2836e77b257","impliedFormat":1},{"version":"90e930283286ab117ab89f00589cf89ab5e9992bc57e79f303b36ee14649bdd9","impliedFormat":1},{"version":"6d48a6c907c668a6d6eda66acec4242e367c983e073100e35c1e234c424ad1a4","impliedFormat":1},{"version":"68a0e898d6c39160f1326ef922508914498c7a2d0b5a0d9222b7928d343214eb","impliedFormat":1},{"version":"69d96a8522b301a9e923ac4e42dd37fc942763740b183dffa3d51aca87f978d5","impliedFormat":1},{"version":"ff2fadad64868f1542a69edeadf5c5519e9c89e33bec267605298f8d172417c7","impliedFormat":1},{"version":"2866ae69517d6605a28d0c8d5dff4f15a0b876eeb8e5a1cbc51631d9c6793d3f","impliedFormat":1},{"version":"f8c4434aa8cbd4ede2a75cbc5532b6a12c9cac67c3095ed907e54f3f89d2e628","impliedFormat":1},{"version":"0b8adc0ae60a47acf65575952eee568b3d497f9975e3162f408052a99e65f488","impliedFormat":1},{"version":"ede9879d22f7ce68a8c99e455acab32fc45091c6eed9625549742b03e1f1ac1a","impliedFormat":1},{"version":"0e8c007c6e404da951c3d98a489ac0a3e9b6567648b997c03445ac69d7938c1c","impliedFormat":1},{"version":"f2a4866bed198a7c804b58ee39efe74c66ecdcf2dfebef0b9895d534a50790c4","impliedFormat":1},{"version":"ad72538d0c5e417ee6621e1b54691c274bcacaa1807c9895c5fa6d40b45fb631","impliedFormat":1},{"version":"4f851c59f3112702f6178e76204f839e3156daa98b5b7d7e3fc407a6c5764118","impliedFormat":1},{"version":"57511f723968d2f41dd2d55b9fbc5d0f3107af4e4227db0fb357c904bd34e690","impliedFormat":1},{"version":"9585df69c074d82dda33eadd6e5dccd164659f59b09bd5a0d25874770cf6042d","impliedFormat":1},{"version":"f6f6ce3e3718c2e7592e09d91c43b44318d47bca8ee353426252c694127f2dcb","impliedFormat":1},{"version":"4f70076586b8e194ef3d1b9679d626a9a61d449ba7e91dfc73cbe3904b538aa0","impliedFormat":1},{"version":"6d5838c172ff503ef37765b86019b80e3abe370105b2e1c4510d6098b0e84414","impliedFormat":1},{"version":"1876dac2baa902e2b7ebed5e03b95f338192dc03a6e4b0731733d675ba4048f3","impliedFormat":1},{"version":"8086407dd2a53ce700125037abf419bddcce43c14b3cf5ea3ac1ebded5cad011","impliedFormat":1},{"version":"c2501eb4c4e05c2d4de551a4bace9c28d06a0d89b228443f69eb3d7f9049fbd6","impliedFormat":1},{"version":"1829f790849d54ea3d736c61fdefd3237bede9c5784f4c15dfdafb7e0a9b8f63","impliedFormat":1},{"version":"5392feeda1bf0a1cc755f7339ea486b7a4d0d019774da8057ddc85347359ed63","impliedFormat":1},{"version":"c998117afca3af8432598c7e8d530d8376d0ca4871a34137db8caa1e94d94818","impliedFormat":1},{"version":"4e465f7e9a161a5a5248a18af79dbfbf06e8e1255bfdc8f63ab15475a2ba48bd","impliedFormat":1},{"version":"e0353c5070349846fe9835d782a8ce338d6d4172c603d14a6b364d6354957a4e","impliedFormat":1},{"version":"323133630008263f857a6d8350e36fb7f6e8d221ec0a425b075c20290570c020","impliedFormat":1},{"version":"c04e691d64b97e264ca4d000c287a53f2a75527556962cdbe3e8e2b301dac906","impliedFormat":1},{"version":"3733dba5107de9152f98da9bcb21bf6c91ac385f3b22f30ed08d0dc5e74c966f","impliedFormat":1},{"version":"d3ec922ddd9677696ee0552f10e95c4e59f85bb8c93fd76cd41b2dd93988ff39","impliedFormat":1},{"version":"0492c0d35e05c0fdd638980e02f3a7cdec18b311959fc730d85ed7e1d4ff38a7","impliedFormat":1},{"version":"c7122ba860d3497fa04a112d424ee88b50c482360042972bcf0917c5b82f4484","impliedFormat":1},{"version":"838f52090a0d39dce3c42e0ccb0db8db250c712c1fa2cd36799910c8f8a7f7bf","impliedFormat":1},{"version":"116ec624095373939de9edb03619916226f5e5b6e93cd761c4bda4efecb104fc","impliedFormat":1},{"version":"8e6b8259bfd8c8c3d6ed79349b7f2f69476d255aede2cd6c0acb0869ad8c6fdd","impliedFormat":1},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},"4f54baaec251aa9f828a39a85a03e1d99aab20ac513d209c7e079205d36339fa","90761be39efe97af5bf38f549b00bf32dde1e158be0b66f5e1585f67b159591b","3da2168c6db272a11e951831f6f1263c7ccdad2b121ed943d55e4ca7fe24ec90","7686250eed38b7e2f668c9afd24063c25cdfd968910ceef620f85814fc22d74f","ecfd1c01f04e4c03217315be379f15053d8865262abdfd4f89a47407746f13e1","383e0e4c330b1a1a92ed5231eb0bca2179a58abb368f2df9f8dedc35fec6d4c5",{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[511,595,600,601,[604,616],[628,634],[673,678]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":9,"verbatimModuleSyntax":false},"referencedMap":[[511,1],[598,2],[597,3],[681,4],[679,5],[356,5],[599,6],[596,5],[515,5],[670,7],[649,8],[659,9],[656,9],[657,10],[641,10],[655,10],[636,9],[642,11],[645,12],[650,13],[638,11],[639,10],[652,14],[637,11],[643,11],[646,11],[651,11],[653,10],[640,10],[654,10],[648,15],[644,16],[669,17],[647,18],[658,19],[635,10],[660,10],[661,10],[662,10],[663,10],[664,10],[665,10],[666,10],[667,10],[668,10],[684,20],[680,4],[682,21],[683,4],[522,22],[520,5],[527,5],[685,5],[686,5],[120,23],[121,23],[122,24],[74,25],[123,26],[124,27],[125,28],[69,5],[72,29],[70,5],[71,5],[126,30],[127,31],[128,32],[129,33],[130,34],[131,35],[132,35],[133,36],[134,37],[135,38],[136,39],[75,5],[73,5],[137,40],[138,41],[139,42],[173,43],[140,44],[141,5],[142,45],[143,46],[144,47],[145,48],[146,49],[147,50],[148,51],[149,52],[150,53],[151,53],[152,54],[153,5],[154,55],[155,56],[157,57],[156,58],[158,59],[159,60],[160,61],[161,62],[162,63],[163,64],[164,65],[165,66],[166,67],[167,68],[168,69],[169,70],[170,71],[76,5],[77,5],[78,5],[116,72],[117,5],[118,5],[119,59],[171,73],[172,74],[177,75],[441,76],[178,77],[176,78],[443,79],[442,80],[174,81],[439,5],[175,82],[60,5],[62,83],[438,76],[208,76],[523,84],[582,85],[583,86],[581,5],[516,5],[567,87],[566,88],[578,87],[569,89],[571,90],[590,90],[570,91],[513,92],[512,5],[518,93],[519,94],[587,95],[563,96],[565,97],[586,5],[584,96],[564,5],[517,94],[562,5],[521,5],[672,98],[671,99],[602,5],[61,5],[532,5],[624,100],[626,101],[625,102],[623,103],[622,5],[555,5],[557,104],[556,5],[464,105],[469,106],[476,107],[459,108],[212,5],[220,109],[360,110],[363,111],[335,5],[348,112],[355,113],[237,5],[337,5],[218,5],[334,114],[380,115],[219,5],[210,116],[362,117],[364,118],[365,119],[436,120],[329,121],[282,122],[342,123],[343,124],[341,125],[340,5],[336,126],[361,127],[221,128],[406,5],[407,129],[248,130],[222,131],[249,130],[285,130],[188,130],[358,132],[357,5],[347,133],[454,5],[197,5],[475,134],[414,135],[415,136],[411,137],[493,5],[312,5],[416,138],[412,139],[498,140],[497,141],[492,5],[263,5],[315,142],[314,5],[491,143],[413,76],[268,144],[275,145],[277,146],[267,5],[272,147],[274,148],[276,149],[271,150],[269,5],[273,151],[494,5],[490,5],[496,152],[495,5],[266,153],[485,154],[488,155],[256,156],[255,157],[254,158],[501,76],[253,159],[242,5],[503,5],[504,76],[505,160],[180,5],[344,161],[345,162],[346,163],[184,5],[349,5],[204,164],[179,5],[428,76],[186,165],[427,166],[426,167],[417,5],[418,5],[425,5],[420,5],[423,168],[419,5],[421,169],[424,170],[422,169],[217,5],[214,5],[215,130],[369,5],[374,171],[375,172],[373,173],[371,174],[372,175],[367,5],[434,138],[209,138],[463,176],[470,177],[474,178],[303,179],[302,5],[297,5],[450,180],[458,181],[330,182],[331,183],[409,184],[319,5],[432,185],[307,76],[324,186],[435,187],[320,5],[323,188],[321,5],[433,189],[430,190],[429,5],[431,5],[327,5],[405,191],[192,192],[305,193],[309,194],[325,195],[328,196],[317,197],[310,198],[457,199],[383,200],[301,201],[189,202],[456,203],[185,204],[376,205],[368,5],[377,206],[394,207],[366,5],[393,208],[68,5],[388,209],[213,5],[408,210],[384,5],[198,5],[200,5],[339,5],[392,211],[216,5],[240,212],[326,213],[246,214],[306,5],[391,5],[370,5],[396,215],[397,216],[338,5],[399,217],[401,218],[400,219],[350,5],[390,202],[403,220],[300,221],[389,222],[395,223],[225,5],[229,5],[228,5],[227,5],[232,5],[226,5],[235,5],[234,5],[231,5],[230,5],[233,5],[236,224],[224,5],[292,225],[291,5],[296,226],[293,227],[295,228],[298,226],[294,227],[205,229],[284,230],[453,231],[451,5],[480,232],[482,233],[446,234],[481,235],[193,236],[190,236],[223,5],[207,237],[206,238],[202,239],[203,240],[211,241],[239,241],[250,241],[286,242],[251,242],[195,243],[194,5],[290,244],[289,245],[288,246],[287,247],[196,248],[437,249],[238,250],[445,251],[410,252],[440,253],[444,254],[333,255],[332,256],[313,257],[299,258],[281,259],[283,260],[280,261],[402,262],[304,5],[468,5],[201,263],[404,264],[452,265],[311,5],[241,266],[318,267],[316,268],[243,269],[378,270],[447,5],[244,271],[379,271],[466,5],[465,5],[467,5],[449,5],[448,5],[381,272],[308,5],[278,273],[199,274],[257,5],[183,275],[245,5],[472,76],[182,5],[484,276],[265,76],[478,138],[264,277],[461,278],[262,276],[187,5],[486,279],[260,76],[261,76],[252,5],[181,5],[259,280],[258,281],[247,282],[322,52],[382,52],[398,5],[386,283],[385,5],[270,153],[191,5],[279,76],[455,164],[462,284],[63,76],[66,285],[67,286],[64,76],[65,5],[359,287],[354,288],[353,5],[352,289],[351,5],[460,290],[471,291],[473,292],[477,293],[479,294],[483,295],[487,296],[510,297],[489,298],[499,299],[500,300],[502,301],[506,302],[509,164],[508,5],[507,303],[550,304],[548,305],[549,306],[537,307],[538,305],[545,308],[536,309],[541,310],[551,5],[542,311],[547,312],[553,313],[552,314],[535,315],[543,316],[544,317],[539,318],[546,304],[540,319],[529,320],[528,321],[387,322],[534,5],[603,5],[579,5],[514,5],[58,5],[59,5],[10,5],[11,5],[13,5],[12,5],[2,5],[14,5],[15,5],[16,5],[17,5],[18,5],[19,5],[20,5],[21,5],[3,5],[22,5],[23,5],[4,5],[24,5],[28,5],[25,5],[26,5],[27,5],[29,5],[30,5],[31,5],[5,5],[32,5],[33,5],[34,5],[35,5],[6,5],[39,5],[36,5],[37,5],[38,5],[40,5],[7,5],[41,5],[46,5],[47,5],[42,5],[43,5],[44,5],[45,5],[8,5],[51,5],[48,5],[49,5],[50,5],[52,5],[9,5],[53,5],[54,5],[55,5],[57,5],[56,5],[1,5],[94,323],[104,324],[93,323],[114,325],[85,326],[84,327],[113,303],[107,328],[112,329],[87,330],[101,331],[86,332],[110,333],[82,334],[81,303],[111,335],[83,336],[88,337],[89,5],[92,337],[79,5],[115,338],[105,339],[96,340],[97,341],[99,342],[95,343],[98,344],[108,303],[90,345],[91,346],[100,347],[80,348],[103,339],[102,337],[106,5],[109,349],[525,350],[561,351],[531,352],[526,350],[524,5],[530,353],[559,5],[554,5],[558,354],[533,5],[560,355],[589,356],[594,357],[588,358],[580,359],[576,360],[572,361],[585,5],[573,89],[620,362],[617,363],[592,364],[591,365],[574,366],[619,367],[568,5],[575,368],[593,369],[627,370],[621,371],[618,5],[577,5],[613,372],[616,373],[615,374],[632,375],[678,376],[677,377],[634,378],[676,379],[673,380],[674,380],[633,381],[675,381],[607,382],[628,383],[610,384],[605,381],[609,385],[629,386],[611,387],[606,5],[630,388],[608,389],[601,5],[631,390],[600,391],[614,392],[604,393],[612,394],[595,395]],"affectedFilesPendingEmit":[511,613,616,615,632,678,677,634,676,673,674,633,675,607,628,610,605,609,629,611,606,630,608,601,631,600,614,604,612,595],"version":"5.9.3"}
\ No newline at end of file

← 23bcc51 Phase 3: local-Ollama AI identification, research pipeline,  ·  back to Govarbitrage  ·  Phase 4b: ESLint 9 flat config (Next 16 native) — lint passe cd72087 →