[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"all-docs-sidebar":3,"docs-\u002Fdocs\u002Fdrift-scanner\u002Fscanning":3269,"docs-siblings-\u002Fdocs\u002Fdrift-scanner\u002Fscanning":3516},[4,281,367,693,1062,1549],{"id":5,"title":6,"body":7,"description":270,"extension":271,"meta":272,"navigation":273,"order":274,"path":275,"section":276,"seo":277,"stem":278,"updatedAt":279,"__hash__":280},"docs\u002Fdocs\u002Fdrift-scanner\u002Fquickstart.md","Quickstart",{"type":8,"value":9,"toc":261},"minimark",[10,14,19,30,34,37,90,93,97,105,116,138,155,158,162,165,168,187,191,198,218,225,229,236,239],[11,12,13],"p",{},"This guide takes you from zero to a monitored PostgreSQL environment in about five minutes.",[15,16,18],"h2",{"id":17},"_1-create-an-account","1. Create an account",[11,20,21,22,29],{},"Sign up at ",[23,24,28],"a",{"href":25,"rel":26},"https:\u002F\u002Farcnull.com\u002Fregister",[27],"nofollow","arcnull.com\u002Fregister",". You only need an email address and a password. Once you are in, head to your dashboard.",[15,31,33],{"id":32},"_2-subscribe-to-drift-scanner","2. Subscribe to Drift Scanner",[11,35,36],{},"Drift Scanner has two tiers:",[38,39,40,59],"table",{},[41,42,43],"thead",{},[44,45,46,50,53,56],"tr",{},[47,48,49],"th",{},"Tier",[47,51,52],{},"Environments",[47,54,55],{},"Scan cadence",[47,57,58],{},"Manual scan rate limit",[60,61,62,77],"tbody",{},[44,63,64,68,71,74],{},[65,66,67],"td",{},"Free",[65,69,70],{},"2",[65,72,73],{},"Hourly cron (configurable)",[65,75,76],{},"3 per minute",[44,78,79,82,85,87],{},[65,80,81],{},"Pro",[65,83,84],{},"10",[65,86,73],{},[65,88,89],{},"10 per minute",[11,91,92],{},"Free is enough to try the product against a single staging database. You can upgrade from the dashboard at any time.",[15,94,96],{"id":95},"_3-add-your-first-environment","3. Add your first environment",[11,98,99,100,104],{},"An environment is a single PostgreSQL database you want to monitor. From the dashboard, open ",[101,102,103],"strong",{},"Drift → Environments → New environment"," and paste a JDBC URL.",[106,107,113],"pre",{"className":108,"code":110,"language":111,"meta":112},[109],"language-text","jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\n","text","",[114,115,110],"code",{"__ignoreMap":112},[11,117,118,119,122,123,126,127,130,131,134,135,137],{},"Provide a PostgreSQL username and password. We strongly recommend a ",[101,120,121],{},"read-only user"," — Drift Scanner only reads from ",[114,124,125],{},"pg_catalog"," and never issues DDL. A role with ",[114,128,129],{},"CONNECT"," on the database and ",[114,132,133],{},"USAGE"," on ",[114,136,125],{}," is enough.",[139,140,141],"blockquote",{},[11,142,143,146,147,150,151,154],{},[101,144,145],{},"SSRF restrictions."," Your JDBC host cannot resolve to loopback, private network ranges, link-local addresses, IPv6 unique-local addresses, or cloud-provider metadata endpoints (",[114,148,149],{},"169.254.0.0\u002F16",", ",[114,152,153],{},"100.64.0.0\u002F10","). These checks run at registration and again on every scan as defense-in-depth.",[11,156,157],{},"Credentials are encrypted at rest with AES-256-GCM before being persisted.",[15,159,161],{"id":160},"_4-wait-for-the-first-snapshot","4. Wait for the first snapshot",[11,163,164],{},"After you create the environment, Drift Scanner captures its first snapshot and stores it as the baseline. This typically takes under thirty seconds on a small database.",[11,166,167],{},"The snapshot includes:",[169,170,171,175,178,181,184],"ul",{},[172,173,174],"li",{},"Tables and columns (including types, defaults, nullability)",[172,176,177],{},"Indexes and constraints",[172,179,180],{},"Sequences",[172,182,183],{},"Views",[172,185,186],{},"Functions",[15,188,190],{"id":189},"_5-configure-alerts","5. Configure alerts",[11,192,193,194,197],{},"Open the environment's ",[101,195,196],{},"Alerts"," tab and wire up at least one channel:",[169,199,200,206,212],{},[172,201,202,205],{},[101,203,204],{},"Slack"," — paste an incoming webhook URL",[172,207,208,211],{},[101,209,210],{},"Custom webhook"," — we POST JSON to your endpoint",[172,213,214,217],{},[101,215,216],{},"Email"," — goes to the address on your account",[11,219,220,221,224],{},"See ",[23,222,196],{"href":223},"\u002Fdocs\u002Fdrift-scanner\u002Falerts"," for the webhook payload shape and delivery guarantees.",[15,226,228],{"id":227},"_6-youre-done","6. You're done",[11,230,231,232,235],{},"Scans now run automatically on the cron schedule you configured (defaults to hourly: ",[114,233,234],{},"0 0 * * * *","). Each scan takes a new snapshot, diffs it against the baseline, and — if the diff has any changes — raises a drift event and fires your alerts.",[11,237,238],{},"From here:",[169,240,241,247,254],{},[172,242,243,244],{},"Understand what an environment is in ",[23,245,52],{"href":246},"\u002Fdocs\u002Fdrift-scanner\u002Fenvironments",[172,248,249,250],{},"Learn how snapshots, diffs, and severity work in ",[23,251,253],{"href":252},"\u002Fdocs\u002Fdrift-scanner\u002Fscanning","Scanning & drift detection",[172,255,256,257],{},"Read the ",[23,258,260],{"href":259},"\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference","full API reference",{"title":112,"searchDepth":262,"depth":262,"links":263},2,[264,265,266,267,268,269],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},"Go from zero to a monitored PostgreSQL environment in five minutes. Register an account, add your first environment, configure alerts, and let scans run automatically.","md",{},true,1,"\u002Fdocs\u002Fdrift-scanner\u002Fquickstart","drift-scanner",{"title":6,"description":270},"docs\u002Fdrift-scanner\u002Fquickstart","2026-04-20","Sy-Hsr7uloPd_go3bSdQG8K9XqwL6d5Bxs4Mkk7_flM",{"id":282,"title":283,"body":284,"description":360,"extension":271,"meta":361,"navigation":273,"order":274,"path":362,"section":363,"seo":364,"stem":365,"updatedAt":279,"__hash__":366},"docs\u002Fdocs\u002Fintroduction.md","Introduction",{"type":8,"value":285,"toc":352},[286,289,298,302,306,309,316,320,323,329,333],[11,287,288],{},"Arcnull is developer infrastructure for teams that ship to PostgreSQL and build with AI agents. Pick the product you want to get started with.",[11,290,291,292,297],{},"This is the documentation hub. The marketing site lives at ",[23,293,296],{"href":294,"rel":295},"https:\u002F\u002Farcnull.com",[27],"arcnull.com",". If you are looking for pricing, product pages, or the blog, start there instead.",[15,299,301],{"id":300},"products","Products",[303,304,305],"h3",{"id":276},"Drift Scanner",[11,307,308],{},"A PostgreSQL schema drift detector. Point it at one or more environments, it takes a baseline snapshot, and every scheduled scan compares the current schema against that baseline. You get alerts with severity, recommended actions, and a full diff you can audit or acknowledge.",[11,310,311,312,315],{},"Start with the ",[23,313,314],{"href":275},"Drift Scanner quickstart",".",[303,317,319],{"id":318},"mcp-vault","MCP Vault",[11,321,322],{},"A governance proxy for AI agents calling Model Context Protocol (MCP) servers. Enforces policies, redacts PII, and records every tool call for EU AI Act auditability. Currently in early access.",[11,324,256,325,315],{},[23,326,328],{"href":327},"\u002Fdocs\u002Fmcp-vault\u002Fintroduction","MCP Vault introduction",[15,330,332],{"id":331},"getting-help","Getting help",[11,334,335,336,340,341,346,347,315],{},"If you are stuck, ",[23,337,339],{"href":338},"mailto:hello@arcnull.com","email us"," or reach out on ",[23,342,345],{"href":343,"rel":344},"https:\u002F\u002Fx.com\u002Farcnullhq",[27],"X",". Bug reports and feature requests are welcome on GitHub at ",[23,348,351],{"href":349,"rel":350},"https:\u002F\u002Fgithub.com\u002Farcnull-hq",[27],"arcnull-hq",{"title":112,"searchDepth":262,"depth":262,"links":353},[354,359],{"id":300,"depth":262,"text":301,"children":355},[356,358],{"id":276,"depth":357,"text":305},3,{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},"Welcome to the Arcnull documentation. Guides, API references, and concepts for every Arcnull product.",{},"\u002Fdocs\u002Fintroduction","getting-started",{"title":283,"description":360},"docs\u002Fintroduction","YUFCWHL-TUqXAbhqh7LLLaINh6Jie-HgQoPa6PtyVGw",{"id":368,"title":52,"body":369,"description":688,"extension":271,"meta":689,"navigation":273,"order":262,"path":246,"section":276,"seo":690,"stem":691,"updatedAt":279,"__hash__":692},"docs\u002Fdocs\u002Fdrift-scanner\u002Fenvironments.md",{"type":8,"value":370,"toc":677},[371,374,378,385,391,394,400,403,407,410,485,488,492,498,522,529,533,536,577,580,584,587,608,612,645,652,656,666,670,673],[11,372,373],{},"An environment represents one PostgreSQL database that Drift Scanner watches on your behalf. You can register many environments — one per database you want to track drift on, typically one per deploy target (production, staging, analytics replica, and so on).",[15,375,377],{"id":376},"jdbc-url-format","JDBC URL format",[11,379,380,381,384],{},"The URL must begin with ",[114,382,383],{},"jdbc:postgresql:\u002F\u002F"," and include a host, port, and database name:",[106,386,389],{"className":387,"code":388,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002F\u003Chost>:\u003Cport>\u002F\u003Cdatabase>[?param=value&...]\n",[114,390,388],{"__ignoreMap":112},[11,392,393],{},"Examples:",[106,395,398],{"className":396,"code":397,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\njdbc:postgresql:\u002F\u002Fdb.internal.example.net:5432\u002Fapp?sslmode=require\n",[114,399,397],{"__ignoreMap":112},[11,401,402],{},"The URL is validated at registration and again on every scan.",[303,404,406],{"id":405},"allowed-hosts","Allowed hosts",[11,408,409],{},"For security, the host portion cannot resolve to any of the following:",[169,411,412,425,439,447,454,469],{},[172,413,414,417,418,150,421,424],{},[101,415,416],{},"Loopback"," (",[114,419,420],{},"127.0.0.0\u002F8",[114,422,423],{},"::1",")",[172,426,427,417,430,150,433,150,436,424],{},[101,428,429],{},"Private IPv4",[114,431,432],{},"10.0.0.0\u002F8",[114,434,435],{},"172.16.0.0\u002F12",[114,437,438],{},"192.168.0.0\u002F16",[172,440,441,417,444,446],{},[101,442,443],{},"Link-local",[114,445,149],{}," — also includes AWS, GCP, and Azure metadata endpoints)",[172,448,449,417,452,424],{},[101,450,451],{},"Carrier-grade NAT",[114,453,153],{},[172,455,456,417,459,462,463,417,466,424],{},[101,457,458],{},"IPv6 link-local",[114,460,461],{},"fe80::\u002F10",") and ",[101,464,465],{},"unique-local",[114,467,468],{},"fc00::\u002F7",[172,470,471,474,475,478,479,150,482,424],{},[101,472,473],{},"Multicast"," and ",[101,476,477],{},"unspecified"," addresses (",[114,480,481],{},"0.0.0.0",[114,483,484],{},"::",[11,486,487],{},"If your database is on a private network, expose it to Drift Scanner through a public endpoint (with TLS and IP allowlisting) or wait for the bring-your-own-agent mode on the roadmap.",[15,489,491],{"id":490},"database-user-permissions","Database user permissions",[11,493,494,495,497],{},"Drift Scanner only reads from ",[114,496,125],{},". A read-only role with the minimum permissions below is enough:",[106,499,503],{"className":500,"code":501,"language":502,"meta":112,"style":112},"language-sql shiki shiki-themes github-light github-dark","CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\nGRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\nGRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n","sql",[114,504,505,512,517],{"__ignoreMap":112},[506,507,509],"span",{"class":508,"line":274},"line",[506,510,511],{},"CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\n",[506,513,514],{"class":508,"line":262},[506,515,516],{},"GRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\n",[506,518,519],{"class":508,"line":357},[506,520,521],{},"GRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n",[11,523,524,525,528],{},"We do ",[101,526,527],{},"not"," need DDL rights and never issue schema modifications. Your credentials are encrypted at rest using AES-256-GCM before persistence.",[15,530,532],{"id":531},"what-gets-captured","What gets captured",[11,534,535],{},"Each snapshot includes:",[169,537,538,544,550,556,562,567,572],{},[172,539,540,543],{},[101,541,542],{},"Tables"," — name, schema, kind",[172,545,546,549],{},[101,547,548],{},"Columns"," — name, type, default, nullability, ordinal position",[172,551,552,555],{},[101,553,554],{},"Indexes"," — name, columns, unique flag, method",[172,557,558,561],{},[101,559,560],{},"Constraints"," — primary keys, foreign keys, unique, check",[172,563,564,566],{},[101,565,180],{}," — name, start, increment",[172,568,569,571],{},[101,570,183],{}," — name, definition",[172,573,574,576],{},[101,575,186],{}," — name, argument types, return type, language",[11,578,579],{},"Snapshots include counts of tables, columns, and indexes at the top level for quick at-a-glance reporting.",[15,581,583],{"id":582},"what-is-not-captured","What is not captured",[11,585,586],{},"We intentionally ignore:",[169,588,589,597,603],{},[172,590,591,594,595,315],{},[101,592,593],{},"Table data."," We only read metadata from ",[114,596,125],{},[172,598,599,602],{},[101,600,601],{},"User and role grants."," On the roadmap.",[172,604,605,602],{},[101,606,607],{},"Extensions.",[15,609,611],{"id":610},"tier-caps","Tier caps",[38,613,614,623],{},[41,615,616],{},[44,617,618,620],{},[47,619,49],{},[47,621,622],{},"Max environments",[60,624,625,631,637],{},[44,626,627,629],{},[65,628,67],{},[65,630,70],{},[44,632,633,635],{},[65,634,81],{},[65,636,84],{},[44,638,639,642],{},[65,640,641],{},"Growth \u002F Scale",[65,643,644],{},"Unlimited",[11,646,647,648,651],{},"If you hit the cap, the API returns a ",[114,649,650],{},"400"," with a plan-limit message. Upgrade from the dashboard or deactivate an environment you no longer need.",[15,653,655],{"id":654},"cron-schedule","Cron schedule",[11,657,658,659,661,662,665],{},"Each environment has its own cron expression. The default is hourly (",[114,660,234],{},"). You can set anything that matches Spring's cron format — for example, ",[114,663,664],{},"0 *\u002F15 * * * *"," for every fifteen minutes. Tier-based rate limits still apply.",[15,667,669],{"id":668},"deactivating-an-environment","Deactivating an environment",[11,671,672],{},"Deactivating keeps history intact but stops future scans. It does not delete the environment. You can reactivate later from the dashboard.",[674,675,676],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":112,"searchDepth":262,"depth":262,"links":678},[679,682,683,684,685,686,687],{"id":376,"depth":262,"text":377,"children":680},[681],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},"An environment is one PostgreSQL database Drift Scanner monitors. This page covers JDBC URL rules, the minimum permissions we need, and what we capture in each snapshot.",{},{"title":52,"description":688},"docs\u002Fdrift-scanner\u002Fenvironments","_0CGQkQNaSPBlPlM6X3rVpsVHpAvY3RLxu4g_oeg7oY",{"id":694,"title":253,"body":695,"description":1057,"extension":271,"meta":1058,"navigation":273,"order":357,"path":252,"section":276,"seo":1059,"stem":1060,"updatedAt":279,"__hash__":1061},"docs\u002Fdocs\u002Fdrift-scanner\u002Fscanning.md",{"type":8,"value":696,"toc":1043},[697,707,711,718,721,725,728,748,751,755,762,804,808,811,815,818,832,836,839,854,858,861,881,906,910,917,989,995,999,1010,1014,1017,1025,1028,1032],[11,698,699,700,474,703,706],{},"Drift Scanner works off two primitives: ",[101,701,702],{},"snapshots",[101,704,705],{},"diffs",". Everything downstream — alerts, the event history, the dashboard summaries — is derived from these two things.",[15,708,710],{"id":709},"baselines","Baselines",[11,712,713,714,717],{},"The first snapshot captured for an environment becomes its ",[101,715,716],{},"baseline",". The baseline is the \"what the schema should look like\" reference. Drift Scanner compares every subsequent snapshot against it.",[11,719,720],{},"You can re-baseline at any time. Accepting drift (see below) tells Drift Scanner \"yes, the current state is the new truth\" and promotes the latest snapshot to the baseline.",[15,722,724],{"id":723},"scheduled-scans","Scheduled scans",[11,726,727],{},"On every tick of the environment's cron schedule, Drift Scanner:",[729,730,731,734,739,742,745],"ol",{},[172,732,733],{},"Connects to the database using the credentials you registered",[172,735,736,737],{},"Pulls metadata from ",[114,738,125],{},[172,740,741],{},"Builds a fresh snapshot and stores it",[172,743,744],{},"Diffs the new snapshot against the baseline",[172,746,747],{},"If the diff is non-empty, creates a drift event and fires alerts",[11,749,750],{},"A single scan on a modest database takes a few seconds. The service runs up to 100 concurrent environment scans platform-wide, with a 5-second connection timeout and a bulkhead of 20 concurrent drift scans.",[15,752,754],{"id":753},"manual-scans","Manual scans",[11,756,757,758,761],{},"You can trigger an ad-hoc scan from the dashboard or the API (",[114,759,760],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan","). Manual scans are rate-limited per tier:",[38,763,764,773],{},[41,765,766],{},[44,767,768,770],{},[47,769,49],{},[47,771,772],{},"Manual scans \u002F minute",[60,774,775,782,788,796],{},[44,776,777,779],{},[65,778,67],{},[65,780,781],{},"3",[44,783,784,786],{},[65,785,81],{},[65,787,84],{},[44,789,790,793],{},[65,791,792],{},"Growth",[65,794,795],{},"30",[44,797,798,801],{},[65,799,800],{},"Scale",[65,802,803],{},"60",[15,805,807],{"id":806},"diff-severity","Diff severity",[11,809,810],{},"Every change in a diff is assigned a severity. The event's overall severity is the highest severity of any single change.",[303,812,814],{"id":813},"info-safe-additions","INFO — safe additions",[11,816,817],{},"Changes that cannot break existing workloads. Examples:",[169,819,820,823,826,829],{},[172,821,822],{},"Adding a new index (non-unique)",[172,824,825],{},"Adding a new nullable column with a default",[172,827,828],{},"Adding a new table",[172,830,831],{},"Adding a new function",[303,833,835],{"id":834},"warning-risky-additions","WARNING — risky additions",[11,837,838],{},"Changes that are additive but can cause runtime pain in the wrong shape. Examples:",[169,840,841,848,851],{},[172,842,843,844,847],{},"Adding a ",[114,845,846],{},"NOT NULL"," column without a default (blocks inserts from older code paths)",[172,849,850],{},"Adding a unique index on a column that may already contain duplicates",[172,852,853],{},"Widening a primary key",[303,855,857],{"id":856},"breaking-destructive-changes","BREAKING — destructive changes",[11,859,860],{},"Changes that remove or rewrite committed schema. Examples:",[169,862,863,866,869,878],{},[172,864,865],{},"Dropping a column, table, index, or constraint",[172,867,868],{},"Changing a column type",[172,870,871,872,875,876,424],{},"Tightening a nullability constraint (",[114,873,874],{},"NULL"," → ",[114,877,846],{},[172,879,880],{},"Removing a foreign key",[11,882,883,884,150,887,150,889,150,892,150,895,150,898,901,902,905],{},"Each diff item carries ",[114,885,886],{},"severity",[114,888,38],{},[114,890,891],{},"column",[114,893,894],{},"changeType",[114,896,897],{},"description",[114,899,900],{},"recommendation",", and ",[114,903,904],{},"estimatedImpact"," — so you can surface actionable context in your alerts.",[15,907,909],{"id":908},"drift-events","Drift events",[11,911,912,913,916],{},"When a scan produces a non-empty diff, Drift Scanner writes a ",[114,914,915],{},"DriftEvent"," with:",[169,918,919,925,931,941,956,967,973,979],{},[172,920,921,924],{},[114,922,923],{},"id"," — event UUID",[172,926,927,930],{},[114,928,929],{},"envId"," — environment UUID",[172,932,933,936,937,940],{},[114,934,935],{},"baselineId"," \u002F ",[114,938,939],{},"currentId"," — the two snapshot IDs being compared",[172,942,943,945,946,150,949,952,953],{},[114,944,886],{}," — ",[114,947,948],{},"INFO",[114,950,951],{},"WARNING",", or ",[114,954,955],{},"BREAKING",[172,957,958,150,961,150,964],{},[114,959,960],{},"breakingCount",[114,962,963],{},"warningCount",[114,965,966],{},"infoCount",[172,968,969,972],{},[114,970,971],{},"acknowledged"," — did someone mark this as reviewed?",[172,974,975,978],{},[114,976,977],{},"detectedAt"," — when the scan that produced the event ran",[172,980,981,984,985,988],{},[114,982,983],{},"items"," — the full list of ",[114,986,987],{},"DiffItem","s",[11,990,991,992,315],{},"Events are paginated through ",[114,993,994],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents",[15,996,998],{"id":997},"acknowledging-an-event","Acknowledging an event",[11,1000,1001,1002,1005,1006,1009],{},"Call ",[114,1003,1004],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge"," (or click ",[101,1007,1008],{},"Acknowledge"," in the dashboard) to mark an event as reviewed. This does not change the baseline — it just signals that a human has seen it.",[15,1011,1013],{"id":1012},"accepting-drift-re-baselining","Accepting drift (re-baselining)",[11,1015,1016],{},"Acknowledgement and re-baselining are different. Re-baselining promotes the latest snapshot to become the new baseline, so future diffs are measured against it. Use this when:",[169,1018,1019,1022],{},[172,1020,1021],{},"You shipped an intentional migration and want to stop getting alerts about it",[172,1023,1024],{},"You manually hot-fixed the schema in production and have since committed it upstream",[11,1026,1027],{},"Re-baselining is available in the dashboard. It is not yet exposed as its own endpoint — use acknowledge + the next scheduled scan for now if you only care about silencing future alerts on already-seen drift.",[15,1029,1031],{"id":1030},"comparing-two-environments","Comparing two environments",[11,1033,1034,1035,1038,1039,1042],{},"You can also diff two environments directly (e.g. staging vs. production) via ",[114,1036,1037],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare"," — useful for \"did my staging soak miss something?\" audits. See the ",[23,1040,1041],{"href":259},"API reference"," for the request shape.",{"title":112,"searchDepth":262,"depth":262,"links":1044},[1045,1046,1047,1048,1053,1054,1055,1056],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":1049},[1050,1051,1052],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},"How snapshots, diffs, and severity work. Understand the difference between INFO, WARNING, and BREAKING changes, and how to accept drift as a new baseline.",{},{"title":253,"description":1057},"docs\u002Fdrift-scanner\u002Fscanning","aix0DhcpPCMTeX5z9uQq-yKWrO6ohclRhoeJVScQTQI",{"id":1063,"title":196,"body":1064,"description":1544,"extension":271,"meta":1545,"navigation":273,"order":1168,"path":223,"section":276,"seo":1546,"stem":1547,"updatedAt":279,"__hash__":1548},"docs\u002Fdocs\u002Fdrift-scanner\u002Falerts.md",{"type":8,"value":1065,"toc":1533},[1066,1069,1073,1076,1085,1102,1105,1111,1114,1118,1125,1403,1414,1417,1420,1424,1433,1478,1481,1487,1491,1498,1502,1512,1516,1530],[11,1067,1068],{},"Drift Scanner can push alerts to three channels per environment. All three are optional — you can enable any combination, and each event is delivered once per enabled channel.",[15,1070,1072],{"id":1071},"channels","Channels",[303,1074,204],{"id":1075},"slack",[11,1077,1078,1079,1084],{},"Paste an ",[23,1080,1083],{"href":1081,"rel":1082},"https:\u002F\u002Fapi.slack.com\u002Fmessaging\u002Fwebhooks",[27],"incoming webhook URL"," into the environment's alert configuration. Messages are posted as plain markdown with a coloured attachment bar matching severity:",[169,1086,1087,1092,1097],{},[172,1088,1089,1091],{},[114,1090,955],{}," → red",[172,1093,1094,1096],{},[114,1095,951],{}," → orange",[172,1098,1099,1101],{},[114,1100,948],{}," → green",[11,1103,1104],{},"Example payload (the message body we render into the Slack webhook):",[106,1106,1109],{"className":1107,"code":1108,"language":111,"meta":112},[109],"*Schema Drift Detected*\nEnvironment: `production`\nSeverity: *BREAKING*\nChanges: 1 breaking, 0 warning, 2 info\n\n*Top Changes:*\n* [BREAKING] COLUMN_DROPPED — users.email column dropped\n* [INFO] INDEX_ADDED — orders.created_at_idx added\n* [INFO] INDEX_ADDED — sessions.user_id_idx added\n",[114,1110,1108],{"__ignoreMap":112},[11,1112,1113],{},"Only the first five changes are included in the message body to keep Slack digestible — the full diff is always available via the API or dashboard.",[303,1115,1117],{"id":1116},"webhook","Webhook",[11,1119,1120,1121,1124],{},"A generic JSON webhook we POST to on every drift event. The payload matches the shape returned by ",[114,1122,1123],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}",":",[106,1126,1130],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},"language-json shiki shiki-themes github-light github-dark","{\n  \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n  \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"baselineId\": \"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\",\n  \"currentId\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n  \"severity\": \"BREAKING\",\n  \"breakingCount\": 1,\n  \"warningCount\": 0,\n  \"infoCount\": 2,\n  \"environmentName\": \"production\",\n  \"acknowledged\": false,\n  \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n  \"items\": [\n    {\n      \"severity\": \"BREAKING\",\n      \"table\": \"users\",\n      \"column\": \"email\",\n      \"changeType\": \"COLUMN_DROPPED\",\n      \"description\": \"users.email column dropped\",\n      \"recommendation\": \"Restore the column or update callers before rolling forward.\",\n      \"estimatedImpact\": \"High — authentication flows depend on this column.\"\n    }\n  ]\n}\n","json",[114,1131,1132,1138,1154,1166,1179,1192,1205,1218,1231,1243,1256,1269,1282,1291,1297,1309,1322,1335,1348,1361,1374,1385,1391,1397],{"__ignoreMap":112},[506,1133,1134],{"class":508,"line":274},[506,1135,1137],{"class":1136},"sVt8B","{\n",[506,1139,1140,1144,1147,1151],{"class":508,"line":262},[506,1141,1143],{"class":1142},"sj4cs","  \"id\"",[506,1145,1146],{"class":1136},": ",[506,1148,1150],{"class":1149},"sZZnC","\"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\"",[506,1152,1153],{"class":1136},",\n",[506,1155,1156,1159,1161,1164],{"class":508,"line":357},[506,1157,1158],{"class":1142},"  \"envId\"",[506,1160,1146],{"class":1136},[506,1162,1163],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"",[506,1165,1153],{"class":1136},[506,1167,1169,1172,1174,1177],{"class":508,"line":1168},4,[506,1170,1171],{"class":1142},"  \"baselineId\"",[506,1173,1146],{"class":1136},[506,1175,1176],{"class":1149},"\"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\"",[506,1178,1153],{"class":1136},[506,1180,1182,1185,1187,1190],{"class":508,"line":1181},5,[506,1183,1184],{"class":1142},"  \"currentId\"",[506,1186,1146],{"class":1136},[506,1188,1189],{"class":1149},"\"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\"",[506,1191,1153],{"class":1136},[506,1193,1195,1198,1200,1203],{"class":508,"line":1194},6,[506,1196,1197],{"class":1142},"  \"severity\"",[506,1199,1146],{"class":1136},[506,1201,1202],{"class":1149},"\"BREAKING\"",[506,1204,1153],{"class":1136},[506,1206,1208,1211,1213,1216],{"class":508,"line":1207},7,[506,1209,1210],{"class":1142},"  \"breakingCount\"",[506,1212,1146],{"class":1136},[506,1214,1215],{"class":1142},"1",[506,1217,1153],{"class":1136},[506,1219,1221,1224,1226,1229],{"class":508,"line":1220},8,[506,1222,1223],{"class":1142},"  \"warningCount\"",[506,1225,1146],{"class":1136},[506,1227,1228],{"class":1142},"0",[506,1230,1153],{"class":1136},[506,1232,1234,1237,1239,1241],{"class":508,"line":1233},9,[506,1235,1236],{"class":1142},"  \"infoCount\"",[506,1238,1146],{"class":1136},[506,1240,70],{"class":1142},[506,1242,1153],{"class":1136},[506,1244,1246,1249,1251,1254],{"class":508,"line":1245},10,[506,1247,1248],{"class":1142},"  \"environmentName\"",[506,1250,1146],{"class":1136},[506,1252,1253],{"class":1149},"\"production\"",[506,1255,1153],{"class":1136},[506,1257,1259,1262,1264,1267],{"class":508,"line":1258},11,[506,1260,1261],{"class":1142},"  \"acknowledged\"",[506,1263,1146],{"class":1136},[506,1265,1266],{"class":1142},"false",[506,1268,1153],{"class":1136},[506,1270,1272,1275,1277,1280],{"class":508,"line":1271},12,[506,1273,1274],{"class":1142},"  \"detectedAt\"",[506,1276,1146],{"class":1136},[506,1278,1279],{"class":1149},"\"2026-04-20T15:10:22.187Z\"",[506,1281,1153],{"class":1136},[506,1283,1285,1288],{"class":508,"line":1284},13,[506,1286,1287],{"class":1142},"  \"items\"",[506,1289,1290],{"class":1136},": [\n",[506,1292,1294],{"class":508,"line":1293},14,[506,1295,1296],{"class":1136},"    {\n",[506,1298,1300,1303,1305,1307],{"class":508,"line":1299},15,[506,1301,1302],{"class":1142},"      \"severity\"",[506,1304,1146],{"class":1136},[506,1306,1202],{"class":1149},[506,1308,1153],{"class":1136},[506,1310,1312,1315,1317,1320],{"class":508,"line":1311},16,[506,1313,1314],{"class":1142},"      \"table\"",[506,1316,1146],{"class":1136},[506,1318,1319],{"class":1149},"\"users\"",[506,1321,1153],{"class":1136},[506,1323,1325,1328,1330,1333],{"class":508,"line":1324},17,[506,1326,1327],{"class":1142},"      \"column\"",[506,1329,1146],{"class":1136},[506,1331,1332],{"class":1149},"\"email\"",[506,1334,1153],{"class":1136},[506,1336,1338,1341,1343,1346],{"class":508,"line":1337},18,[506,1339,1340],{"class":1142},"      \"changeType\"",[506,1342,1146],{"class":1136},[506,1344,1345],{"class":1149},"\"COLUMN_DROPPED\"",[506,1347,1153],{"class":1136},[506,1349,1351,1354,1356,1359],{"class":508,"line":1350},19,[506,1352,1353],{"class":1142},"      \"description\"",[506,1355,1146],{"class":1136},[506,1357,1358],{"class":1149},"\"users.email column dropped\"",[506,1360,1153],{"class":1136},[506,1362,1364,1367,1369,1372],{"class":508,"line":1363},20,[506,1365,1366],{"class":1142},"      \"recommendation\"",[506,1368,1146],{"class":1136},[506,1370,1371],{"class":1149},"\"Restore the column or update callers before rolling forward.\"",[506,1373,1153],{"class":1136},[506,1375,1377,1380,1382],{"class":508,"line":1376},21,[506,1378,1379],{"class":1142},"      \"estimatedImpact\"",[506,1381,1146],{"class":1136},[506,1383,1384],{"class":1149},"\"High — authentication flows depend on this column.\"\n",[506,1386,1388],{"class":508,"line":1387},22,[506,1389,1390],{"class":1136},"    }\n",[506,1392,1394],{"class":508,"line":1393},23,[506,1395,1396],{"class":1136},"  ]\n",[506,1398,1400],{"class":508,"line":1399},24,[506,1401,1402],{"class":1136},"}\n",[11,1404,1405,1406,1409,1410,1413],{},"The request is a standard ",[114,1407,1408],{},"POST"," with ",[114,1411,1412],{},"Content-Type: application\u002Fjson",". HTTP 2xx from your endpoint is treated as success; anything else triggers the retry policy below.",[303,1415,216],{"id":1416},"email",[11,1418,1419],{},"Email alerts are delivered via Resend to the email on file for your tenant. There is no per-environment override today — it lives on your tenant record. On the roadmap: per-environment recipients and digest mode.",[15,1421,1423],{"id":1422},"delivery-guarantees","Delivery guarantees",[11,1425,1426,1427,1432],{},"Each sender is isolated as its own Spring bean with ",[23,1428,1431],{"href":1429,"rel":1430},"https:\u002F\u002Fresilience4j.readme.io\u002F",[27],"Resilience4j"," wrapped around it, so a flaky Slack webhook can't degrade email or the generic webhook.",[38,1434,1435,1448],{},[41,1436,1437],{},[44,1438,1439,1442,1445],{},[47,1440,1441],{},"Channel",[47,1443,1444],{},"Retry policy",[47,1446,1447],{},"Circuit breaker",[60,1449,1450,1460,1468],{},[44,1451,1452,1454,1457],{},[65,1453,1117],{},[65,1455,1456],{},"3 attempts, 2s base with exponential backoff (x2)",[65,1458,1459],{},"Opens at 70% failure rate across a 10-call window; stays open 30s",[44,1461,1462,1464,1466],{},[65,1463,204],{},[65,1465,1456],{},[65,1467,1459],{},[44,1469,1470,1472,1475],{},[65,1471,216],{},[65,1473,1474],{},"3 attempts, 5s base",[65,1476,1477],{},"Opens at 50% failure rate across a 5-call window; stays open 120s",[11,1479,1480],{},"All three share a bulkhead of 5 concurrent calls per channel to keep one slow endpoint from blocking others.",[11,1482,1483,1484,1486],{},"Circuit-broken alerts are logged but not queued — if your webhook is down long enough to trip the breaker, backfill from ",[114,1485,994],{}," once it recovers.",[15,1488,1490],{"id":1489},"idempotency","Idempotency",[11,1492,1493,1494,1497],{},"Each dispatch uses a SHA-256 key derived from ",[114,1495,1496],{},"envId + baselineId + currentId",", so duplicate events (e.g. a retried scan) are detectable in logs.",[15,1499,1501],{"id":1500},"testing-alerts","Testing alerts",[11,1503,1504,1505,1508,1509,1511],{},"From the dashboard, each channel has a ",[101,1506,1507],{},"Send test event"," action that fires a synthetic ",[114,1510,948],{}," diff through the configured sender. Use this to verify your Slack channel or webhook endpoint is reachable before relying on it in production.",[15,1513,1515],{"id":1514},"roadmap","Roadmap",[169,1517,1518,1521,1524,1527],{},[172,1519,1520],{},"Per-environment email recipients",[172,1522,1523],{},"Digest mode (batched alerts every N minutes)",[172,1525,1526],{},"PagerDuty, Opsgenie, and Microsoft Teams channels",[172,1528,1529],{},"Signed webhook payloads (HMAC-SHA256 header)",[674,1531,1532],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":112,"searchDepth":262,"depth":262,"links":1534},[1535,1540,1541,1542,1543],{"id":1071,"depth":262,"text":1072,"children":1536},[1537,1538,1539],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},"Configure Slack, webhook, and email alerts for drift events. Includes the exact webhook payload shape, Slack message format, and resilience behaviour.",{},{"title":196,"description":1544},"docs\u002Fdrift-scanner\u002Falerts","Ry_PLC5LfwEC7Burk2wPsBkAHT_YCJASRRp8QIRKs4E",{"id":1550,"title":1041,"body":1551,"description":3264,"extension":271,"meta":3265,"navigation":273,"order":1181,"path":259,"section":276,"seo":3266,"stem":3267,"updatedAt":279,"__hash__":3268},"docs\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference.md",{"type":8,"value":1552,"toc":3242},[1553,1560,1634,1638,1644,1648,1651,1662,1668,1676,1680,1693,1756,1759,1784,1787,1790,1794,1803,1806,1876,1915,1922,2010,2014,2023,2026,2146,2150,2159,2163,2172,2182,2184,2188,2192,2201,2204,2316,2351,2353,2357,2366,2369,2371,2405,2408,2590,2592,2596,2609,2618,2620,2655,2657,2858,2860,2862,2866,2875,2882,3104,3108,3117,3121,3130,3133,3135,3139,3239],[11,1554,1555,1556,1559],{},"The Drift Scanner API lives at ",[114,1557,1558],{},"https:\u002F\u002Fdrift.arcnull.com",". All responses are wrapped in a standard envelope:",[106,1561,1563],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": { \u002F* typed payload *\u002F },\n  \"message\": \"Human-readable message (optional)\",\n  \"errorCode\": null,\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1564,1565,1569,1581,1596,1608,1620,1630],{"__ignoreMap":112},[506,1566,1567],{"class":508,"line":274},[506,1568,1137],{"class":1136},[506,1570,1571,1574,1576,1579],{"class":508,"line":262},[506,1572,1573],{"class":1142},"  \"success\"",[506,1575,1146],{"class":1136},[506,1577,1578],{"class":1142},"true",[506,1580,1153],{"class":1136},[506,1582,1583,1586,1589,1593],{"class":508,"line":357},[506,1584,1585],{"class":1142},"  \"data\"",[506,1587,1588],{"class":1136},": { ",[506,1590,1592],{"class":1591},"sJ8bj","\u002F* typed payload *\u002F",[506,1594,1595],{"class":1136}," },\n",[506,1597,1598,1601,1603,1606],{"class":508,"line":1168},[506,1599,1600],{"class":1142},"  \"message\"",[506,1602,1146],{"class":1136},[506,1604,1605],{"class":1149},"\"Human-readable message (optional)\"",[506,1607,1153],{"class":1136},[506,1609,1610,1613,1615,1618],{"class":508,"line":1181},[506,1611,1612],{"class":1142},"  \"errorCode\"",[506,1614,1146],{"class":1136},[506,1616,1617],{"class":1142},"null",[506,1619,1153],{"class":1136},[506,1621,1622,1625,1627],{"class":508,"line":1194},[506,1623,1624],{"class":1142},"  \"timestamp\"",[506,1626,1146],{"class":1136},[506,1628,1629],{"class":1149},"\"2026-04-20T15:10:22.187Z\"\n",[506,1631,1632],{"class":508,"line":1207},[506,1633,1402],{"class":1136},[15,1635,1637],{"id":1636},"base-url","Base URL",[106,1639,1642],{"className":1640,"code":1641,"language":111,"meta":112},[109],"https:\u002F\u002Fdrift.arcnull.com\n",[114,1643,1641],{"__ignoreMap":112},[15,1645,1647],{"id":1646},"authentication","Authentication",[11,1649,1650],{},"Every endpoint requires a JWT issued by the platform auth service. Pass it as a bearer token:",[106,1652,1656],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},"language-http shiki shiki-themes github-light github-dark","Authorization: Bearer \u003Cjwt>\n","http",[114,1657,1658],{"__ignoreMap":112},[506,1659,1660],{"class":508,"line":274},[506,1661,1654],{},[11,1663,1664,1665,1667],{},"You can mint a JWT by logging in through ",[114,1666,294],{}," and pulling the token from your dashboard, or by calling the auth API directly (see platform docs — coming soon).",[139,1669,1670],{},[11,1671,1672,1675],{},[101,1673,1674],{},"Customer API keys are coming soon."," A long-lived API key flow for server-to-server usage is on the roadmap. For now, use a JWT from a logged-in session. When API keys ship, you will be able to mint up to 1 (free) \u002F 5 (pro) \u002F 10+ (growth+) per tenant.",[15,1677,1679],{"id":1678},"errors","Errors",[11,1681,1682,1683,1686,1687,474,1690,1124],{},"Errors return ",[114,1684,1685],{},"success: false"," with an ",[114,1688,1689],{},"errorCode",[114,1691,1692],{},"message",[106,1694,1696],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},"{\n  \"success\": false,\n  \"data\": null,\n  \"message\": \"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\",\n  \"errorCode\": \"BAD_REQUEST\",\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1697,1698,1702,1712,1722,1733,1744,1752],{"__ignoreMap":112},[506,1699,1700],{"class":508,"line":274},[506,1701,1137],{"class":1136},[506,1703,1704,1706,1708,1710],{"class":508,"line":262},[506,1705,1573],{"class":1142},[506,1707,1146],{"class":1136},[506,1709,1266],{"class":1142},[506,1711,1153],{"class":1136},[506,1713,1714,1716,1718,1720],{"class":508,"line":357},[506,1715,1585],{"class":1142},[506,1717,1146],{"class":1136},[506,1719,1617],{"class":1142},[506,1721,1153],{"class":1136},[506,1723,1724,1726,1728,1731],{"class":508,"line":1168},[506,1725,1600],{"class":1142},[506,1727,1146],{"class":1136},[506,1729,1730],{"class":1149},"\"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\"",[506,1732,1153],{"class":1136},[506,1734,1735,1737,1739,1742],{"class":508,"line":1181},[506,1736,1612],{"class":1142},[506,1738,1146],{"class":1136},[506,1740,1741],{"class":1149},"\"BAD_REQUEST\"",[506,1743,1153],{"class":1136},[506,1745,1746,1748,1750],{"class":508,"line":1194},[506,1747,1624],{"class":1142},[506,1749,1146],{"class":1136},[506,1751,1629],{"class":1149},[506,1753,1754],{"class":508,"line":1207},[506,1755,1402],{"class":1136},[11,1757,1758],{},"Common HTTP statuses:",[169,1760,1761,1766,1772,1778],{},[172,1762,1763,1765],{},[114,1764,650],{}," — validation \u002F plan-limit \u002F SSRF rejection",[172,1767,1768,1771],{},[114,1769,1770],{},"401"," — missing or invalid JWT",[172,1773,1774,1777],{},[114,1775,1776],{},"404"," — resource not found for this tenant",[172,1779,1780,1783],{},[114,1781,1782],{},"429"," — manual scan rate limit exceeded",[1785,1786],"hr",{},[15,1788,52],{"id":1789},"environments",[303,1791,1793],{"id":1792},"register-an-environment","Register an environment",[106,1795,1797],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,1798,1799],{"__ignoreMap":112},[506,1800,1801],{"class":508,"line":274},[506,1802,1796],{},[11,1804,1805],{},"Request:",[106,1807,1809],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},"{\n  \"name\": \"production\",\n  \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n  \"username\": \"arcnull_scanner\",\n  \"password\": \"\u003Cstrong-password>\",\n  \"scanCron\": \"0 0 * * * *\"\n}\n",[114,1810,1811,1815,1826,1838,1850,1862,1872],{"__ignoreMap":112},[506,1812,1813],{"class":508,"line":274},[506,1814,1137],{"class":1136},[506,1816,1817,1820,1822,1824],{"class":508,"line":262},[506,1818,1819],{"class":1142},"  \"name\"",[506,1821,1146],{"class":1136},[506,1823,1253],{"class":1149},[506,1825,1153],{"class":1136},[506,1827,1828,1831,1833,1836],{"class":508,"line":357},[506,1829,1830],{"class":1142},"  \"jdbcUrl\"",[506,1832,1146],{"class":1136},[506,1834,1835],{"class":1149},"\"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\"",[506,1837,1153],{"class":1136},[506,1839,1840,1843,1845,1848],{"class":508,"line":1168},[506,1841,1842],{"class":1142},"  \"username\"",[506,1844,1146],{"class":1136},[506,1846,1847],{"class":1149},"\"arcnull_scanner\"",[506,1849,1153],{"class":1136},[506,1851,1852,1855,1857,1860],{"class":508,"line":1181},[506,1853,1854],{"class":1142},"  \"password\"",[506,1856,1146],{"class":1136},[506,1858,1859],{"class":1149},"\"\u003Cstrong-password>\"",[506,1861,1153],{"class":1136},[506,1863,1864,1867,1869],{"class":508,"line":1194},[506,1865,1866],{"class":1142},"  \"scanCron\"",[506,1868,1146],{"class":1136},[506,1870,1871],{"class":1149},"\"0 0 * * * *\"\n",[506,1873,1874],{"class":508,"line":1207},[506,1875,1402],{"class":1136},[169,1877,1878,1884,1894,1900,1906],{},[172,1879,1880,1883],{},[114,1881,1882],{},"name"," — 1-100 chars, must start with a letter or digit, letters\u002Fdigits\u002Fspaces\u002Fhyphens\u002Funderscores",[172,1885,1886,1889,1890,1893],{},[114,1887,1888],{},"jdbcUrl"," — must match ",[114,1891,1892],{},"jdbc:postgresql:\u002F\u002Fhost\u002Fdb(?params)?",", must not resolve to loopback, private, link-local, metadata, or CGNAT ranges",[172,1895,1896,1899],{},[114,1897,1898],{},"username"," — valid PostgreSQL identifier (up to 63 chars)",[172,1901,1902,1905],{},[114,1903,1904],{},"password"," — up to 512 chars",[172,1907,1908,1911,1912,1914],{},[114,1909,1910],{},"scanCron"," — optional Spring cron expression (6 fields); defaults to ",[114,1913,234],{}," (top of every hour)",[11,1916,1917,1918,1921],{},"Response: ",[114,1919,1920],{},"201 Created"," with the new environment.",[106,1923,1927],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments \\\n  -H \"Authorization: Bearer $JWT\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"production\",\n    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n    \"username\": \"arcnull_scanner\",\n    \"password\": \"secret\",\n    \"scanCron\": \"0 0 * * * *\"\n  }'\n","bash",[114,1928,1929,1947,1963,1972,1980,1985,1990,1995,2000,2005],{"__ignoreMap":112},[506,1930,1931,1935,1938,1941,1944],{"class":508,"line":274},[506,1932,1934],{"class":1933},"sScJk","curl",[506,1936,1937],{"class":1142}," -X",[506,1939,1940],{"class":1149}," POST",[506,1942,1943],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments",[506,1945,1946],{"class":1142}," \\\n",[506,1948,1949,1952,1955,1958,1961],{"class":508,"line":262},[506,1950,1951],{"class":1142},"  -H",[506,1953,1954],{"class":1149}," \"Authorization: Bearer ",[506,1956,1957],{"class":1136},"$JWT",[506,1959,1960],{"class":1149},"\"",[506,1962,1946],{"class":1142},[506,1964,1965,1967,1970],{"class":508,"line":357},[506,1966,1951],{"class":1142},[506,1968,1969],{"class":1149}," \"Content-Type: application\u002Fjson\"",[506,1971,1946],{"class":1142},[506,1973,1974,1977],{"class":508,"line":1168},[506,1975,1976],{"class":1142},"  -d",[506,1978,1979],{"class":1149}," '{\n",[506,1981,1982],{"class":508,"line":1181},[506,1983,1984],{"class":1149},"    \"name\": \"production\",\n",[506,1986,1987],{"class":508,"line":1194},[506,1988,1989],{"class":1149},"    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n",[506,1991,1992],{"class":508,"line":1207},[506,1993,1994],{"class":1149},"    \"username\": \"arcnull_scanner\",\n",[506,1996,1997],{"class":508,"line":1220},[506,1998,1999],{"class":1149},"    \"password\": \"secret\",\n",[506,2001,2002],{"class":508,"line":1233},[506,2003,2004],{"class":1149},"    \"scanCron\": \"0 0 * * * *\"\n",[506,2006,2007],{"class":508,"line":1245},[506,2008,2009],{"class":1149},"  }'\n",[303,2011,2013],{"id":2012},"list-environments","List environments",[106,2015,2017],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,2018,2019],{"__ignoreMap":112},[506,2020,2021],{"class":508,"line":274},[506,2022,2016],{},[11,2024,2025],{},"Returns all active environments for the authenticated tenant.",[106,2027,2029],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n      \"name\": \"production\",\n      \"status\": \"READY\",\n      \"scanCron\": \"0 0 * * * *\",\n      \"active\": true,\n      \"lastScanned\": \"2026-04-20T15:00:00Z\",\n      \"createdAt\": \"2026-04-19T09:14:23Z\"\n    }\n  ]\n}\n",[114,2030,2031,2035,2045,2051,2055,2066,2077,2089,2101,2112,2124,2134,2138,2142],{"__ignoreMap":112},[506,2032,2033],{"class":508,"line":274},[506,2034,1137],{"class":1136},[506,2036,2037,2039,2041,2043],{"class":508,"line":262},[506,2038,1573],{"class":1142},[506,2040,1146],{"class":1136},[506,2042,1578],{"class":1142},[506,2044,1153],{"class":1136},[506,2046,2047,2049],{"class":508,"line":357},[506,2048,1585],{"class":1142},[506,2050,1290],{"class":1136},[506,2052,2053],{"class":508,"line":1168},[506,2054,1296],{"class":1136},[506,2056,2057,2060,2062,2064],{"class":508,"line":1181},[506,2058,2059],{"class":1142},"      \"id\"",[506,2061,1146],{"class":1136},[506,2063,1163],{"class":1149},[506,2065,1153],{"class":1136},[506,2067,2068,2071,2073,2075],{"class":508,"line":1194},[506,2069,2070],{"class":1142},"      \"name\"",[506,2072,1146],{"class":1136},[506,2074,1253],{"class":1149},[506,2076,1153],{"class":1136},[506,2078,2079,2082,2084,2087],{"class":508,"line":1207},[506,2080,2081],{"class":1142},"      \"status\"",[506,2083,1146],{"class":1136},[506,2085,2086],{"class":1149},"\"READY\"",[506,2088,1153],{"class":1136},[506,2090,2091,2094,2096,2099],{"class":508,"line":1220},[506,2092,2093],{"class":1142},"      \"scanCron\"",[506,2095,1146],{"class":1136},[506,2097,2098],{"class":1149},"\"0 0 * * * *\"",[506,2100,1153],{"class":1136},[506,2102,2103,2106,2108,2110],{"class":508,"line":1233},[506,2104,2105],{"class":1142},"      \"active\"",[506,2107,1146],{"class":1136},[506,2109,1578],{"class":1142},[506,2111,1153],{"class":1136},[506,2113,2114,2117,2119,2122],{"class":508,"line":1245},[506,2115,2116],{"class":1142},"      \"lastScanned\"",[506,2118,1146],{"class":1136},[506,2120,2121],{"class":1149},"\"2026-04-20T15:00:00Z\"",[506,2123,1153],{"class":1136},[506,2125,2126,2129,2131],{"class":508,"line":1258},[506,2127,2128],{"class":1142},"      \"createdAt\"",[506,2130,1146],{"class":1136},[506,2132,2133],{"class":1149},"\"2026-04-19T09:14:23Z\"\n",[506,2135,2136],{"class":508,"line":1271},[506,2137,1390],{"class":1136},[506,2139,2140],{"class":508,"line":1284},[506,2141,1396],{"class":1136},[506,2143,2144],{"class":508,"line":1293},[506,2145,1402],{"class":1136},[303,2147,2149],{"id":2148},"get-an-environment","Get an environment",[106,2151,2153],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2154,2155],{"__ignoreMap":112},[506,2156,2157],{"class":508,"line":274},[506,2158,2152],{},[303,2160,2162],{"id":2161},"deactivate-an-environment","Deactivate an environment",[106,2164,2166],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},"DELETE \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2167,2168],{"__ignoreMap":112},[506,2169,2170],{"class":508,"line":274},[506,2171,2165],{},[11,2173,2174,2175,2178,2179,315],{},"Sets the environment's ",[114,2176,2177],{},"active"," flag to false. History is retained. Returns ",[114,2180,2181],{},"200 OK",[1785,2183],{},[15,2185,2187],{"id":2186},"scanning","Scanning",[303,2189,2191],{"id":2190},"trigger-a-manual-scan","Trigger a manual scan",[106,2193,2195],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan\n",[114,2196,2197],{"__ignoreMap":112},[506,2198,2199],{"class":508,"line":274},[506,2200,2194],{},[11,2202,2203],{},"Rate-limited per tier (free: 3\u002Fmin, pro: 10\u002Fmin). Returns the snapshot that was produced:",[106,2205,2207],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n    \"checksum\": \"sha256:9c3a...\",\n    \"tablesCount\": 42,\n    \"columnsCount\": 317,\n    \"indexesCount\": 88,\n    \"capturedAt\": \"2026-04-20T15:10:22.187Z\"\n  },\n  \"message\": \"Scan completed\"\n}\n",[114,2208,2209,2213,2223,2230,2241,2253,2265,2277,2289,2298,2303,2312],{"__ignoreMap":112},[506,2210,2211],{"class":508,"line":274},[506,2212,1137],{"class":1136},[506,2214,2215,2217,2219,2221],{"class":508,"line":262},[506,2216,1573],{"class":1142},[506,2218,1146],{"class":1136},[506,2220,1578],{"class":1142},[506,2222,1153],{"class":1136},[506,2224,2225,2227],{"class":508,"line":357},[506,2226,1585],{"class":1142},[506,2228,2229],{"class":1136},": {\n",[506,2231,2232,2235,2237,2239],{"class":508,"line":1168},[506,2233,2234],{"class":1142},"    \"id\"",[506,2236,1146],{"class":1136},[506,2238,1189],{"class":1149},[506,2240,1153],{"class":1136},[506,2242,2243,2246,2248,2251],{"class":508,"line":1181},[506,2244,2245],{"class":1142},"    \"checksum\"",[506,2247,1146],{"class":1136},[506,2249,2250],{"class":1149},"\"sha256:9c3a...\"",[506,2252,1153],{"class":1136},[506,2254,2255,2258,2260,2263],{"class":508,"line":1194},[506,2256,2257],{"class":1142},"    \"tablesCount\"",[506,2259,1146],{"class":1136},[506,2261,2262],{"class":1142},"42",[506,2264,1153],{"class":1136},[506,2266,2267,2270,2272,2275],{"class":508,"line":1207},[506,2268,2269],{"class":1142},"    \"columnsCount\"",[506,2271,1146],{"class":1136},[506,2273,2274],{"class":1142},"317",[506,2276,1153],{"class":1136},[506,2278,2279,2282,2284,2287],{"class":508,"line":1220},[506,2280,2281],{"class":1142},"    \"indexesCount\"",[506,2283,1146],{"class":1136},[506,2285,2286],{"class":1142},"88",[506,2288,1153],{"class":1136},[506,2290,2291,2294,2296],{"class":508,"line":1233},[506,2292,2293],{"class":1142},"    \"capturedAt\"",[506,2295,1146],{"class":1136},[506,2297,1629],{"class":1149},[506,2299,2300],{"class":508,"line":1245},[506,2301,2302],{"class":1136},"  },\n",[506,2304,2305,2307,2309],{"class":508,"line":1258},[506,2306,1600],{"class":1142},[506,2308,1146],{"class":1136},[506,2310,2311],{"class":1149},"\"Scan completed\"\n",[506,2313,2314],{"class":508,"line":1271},[506,2315,1402],{"class":1136},[106,2317,2319],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},"curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F$ENV_ID\u002Fscan \\\n  -H \"Authorization: Bearer $JWT\"\n",[114,2320,2321,2340],{"__ignoreMap":112},[506,2322,2323,2325,2327,2329,2332,2335,2338],{"class":508,"line":274},[506,2324,1934],{"class":1933},[506,2326,1937],{"class":1142},[506,2328,1940],{"class":1149},[506,2330,2331],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F",[506,2333,2334],{"class":1136},"$ENV_ID",[506,2336,2337],{"class":1149},"\u002Fscan",[506,2339,1946],{"class":1142},[506,2341,2342,2344,2346,2348],{"class":508,"line":262},[506,2343,1951],{"class":1142},[506,2345,1954],{"class":1149},[506,2347,1957],{"class":1136},[506,2349,2350],{"class":1149},"\"\n",[1785,2352],{},[15,2354,2356],{"id":2355},"compare-two-environments","Compare two environments",[106,2358,2360],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare\n",[114,2361,2362],{"__ignoreMap":112},[506,2363,2364],{"class":508,"line":274},[506,2365,2359],{},[11,2367,2368],{},"Diffs the latest snapshot of one environment against another — useful for \"did staging catch everything production ships?\"",[11,2370,1805],{},[106,2372,2374],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},"{\n  \"baseEnvId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"headEnvId\": \"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n}\n",[114,2375,2376,2380,2391,2401],{"__ignoreMap":112},[506,2377,2378],{"class":508,"line":274},[506,2379,1137],{"class":1136},[506,2381,2382,2385,2387,2389],{"class":508,"line":262},[506,2383,2384],{"class":1142},"  \"baseEnvId\"",[506,2386,1146],{"class":1136},[506,2388,1163],{"class":1149},[506,2390,1153],{"class":1136},[506,2392,2393,2396,2398],{"class":508,"line":357},[506,2394,2395],{"class":1142},"  \"headEnvId\"",[506,2397,1146],{"class":1136},[506,2399,2400],{"class":1149},"\"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n",[506,2402,2403],{"class":508,"line":1168},[506,2404,1402],{"class":1136},[11,2406,2407],{},"Response:",[106,2409,2411],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"severity\": \"WARNING\",\n    \"breakingCount\": 0,\n    \"warningCount\": 1,\n    \"infoCount\": 3,\n    \"items\": [\n      {\n        \"severity\": \"WARNING\",\n        \"table\": \"orders\",\n        \"column\": \"shipping_country\",\n        \"changeType\": \"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\",\n        \"description\": \"orders.shipping_country added as NOT NULL without default\",\n        \"recommendation\": \"Backfill and add a default before rolling forward.\",\n        \"estimatedImpact\": \"Inserts from older code paths will fail.\"\n      }\n    ]\n  }\n}\n",[114,2412,2413,2417,2427,2433,2445,2456,2467,2478,2485,2490,2501,2513,2525,2537,2549,2561,2571,2576,2581,2586],{"__ignoreMap":112},[506,2414,2415],{"class":508,"line":274},[506,2416,1137],{"class":1136},[506,2418,2419,2421,2423,2425],{"class":508,"line":262},[506,2420,1573],{"class":1142},[506,2422,1146],{"class":1136},[506,2424,1578],{"class":1142},[506,2426,1153],{"class":1136},[506,2428,2429,2431],{"class":508,"line":357},[506,2430,1585],{"class":1142},[506,2432,2229],{"class":1136},[506,2434,2435,2438,2440,2443],{"class":508,"line":1168},[506,2436,2437],{"class":1142},"    \"severity\"",[506,2439,1146],{"class":1136},[506,2441,2442],{"class":1149},"\"WARNING\"",[506,2444,1153],{"class":1136},[506,2446,2447,2450,2452,2454],{"class":508,"line":1181},[506,2448,2449],{"class":1142},"    \"breakingCount\"",[506,2451,1146],{"class":1136},[506,2453,1228],{"class":1142},[506,2455,1153],{"class":1136},[506,2457,2458,2461,2463,2465],{"class":508,"line":1194},[506,2459,2460],{"class":1142},"    \"warningCount\"",[506,2462,1146],{"class":1136},[506,2464,1215],{"class":1142},[506,2466,1153],{"class":1136},[506,2468,2469,2472,2474,2476],{"class":508,"line":1207},[506,2470,2471],{"class":1142},"    \"infoCount\"",[506,2473,1146],{"class":1136},[506,2475,781],{"class":1142},[506,2477,1153],{"class":1136},[506,2479,2480,2483],{"class":508,"line":1220},[506,2481,2482],{"class":1142},"    \"items\"",[506,2484,1290],{"class":1136},[506,2486,2487],{"class":508,"line":1233},[506,2488,2489],{"class":1136},"      {\n",[506,2491,2492,2495,2497,2499],{"class":508,"line":1245},[506,2493,2494],{"class":1142},"        \"severity\"",[506,2496,1146],{"class":1136},[506,2498,2442],{"class":1149},[506,2500,1153],{"class":1136},[506,2502,2503,2506,2508,2511],{"class":508,"line":1258},[506,2504,2505],{"class":1142},"        \"table\"",[506,2507,1146],{"class":1136},[506,2509,2510],{"class":1149},"\"orders\"",[506,2512,1153],{"class":1136},[506,2514,2515,2518,2520,2523],{"class":508,"line":1271},[506,2516,2517],{"class":1142},"        \"column\"",[506,2519,1146],{"class":1136},[506,2521,2522],{"class":1149},"\"shipping_country\"",[506,2524,1153],{"class":1136},[506,2526,2527,2530,2532,2535],{"class":508,"line":1284},[506,2528,2529],{"class":1142},"        \"changeType\"",[506,2531,1146],{"class":1136},[506,2533,2534],{"class":1149},"\"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\"",[506,2536,1153],{"class":1136},[506,2538,2539,2542,2544,2547],{"class":508,"line":1293},[506,2540,2541],{"class":1142},"        \"description\"",[506,2543,1146],{"class":1136},[506,2545,2546],{"class":1149},"\"orders.shipping_country added as NOT NULL without default\"",[506,2548,1153],{"class":1136},[506,2550,2551,2554,2556,2559],{"class":508,"line":1299},[506,2552,2553],{"class":1142},"        \"recommendation\"",[506,2555,1146],{"class":1136},[506,2557,2558],{"class":1149},"\"Backfill and add a default before rolling forward.\"",[506,2560,1153],{"class":1136},[506,2562,2563,2566,2568],{"class":508,"line":1311},[506,2564,2565],{"class":1142},"        \"estimatedImpact\"",[506,2567,1146],{"class":1136},[506,2569,2570],{"class":1149},"\"Inserts from older code paths will fail.\"\n",[506,2572,2573],{"class":508,"line":1324},[506,2574,2575],{"class":1136},"      }\n",[506,2577,2578],{"class":508,"line":1337},[506,2579,2580],{"class":1136},"    ]\n",[506,2582,2583],{"class":508,"line":1350},[506,2584,2585],{"class":1136},"  }\n",[506,2587,2588],{"class":508,"line":1363},[506,2589,1402],{"class":1136},[1785,2591],{},[15,2593,2595],{"id":2594},"migration-analysis","Migration analysis",[11,2597,2598,2599,936,2602,936,2605,2608],{},"Run a proposed ",[114,2600,2601],{},"CREATE TABLE",[114,2603,2604],{},"ALTER TABLE",[114,2606,2607],{},"DROP"," statement through the analyzer to get a pre-flight safety report.",[106,2610,2612],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fmigrations\u002Fanalyze\n",[114,2613,2614],{"__ignoreMap":112},[506,2615,2616],{"class":508,"line":274},[506,2617,2611],{},[11,2619,1805],{},[106,2621,2623],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},"{\n  \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n  \"environmentId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n}\n",[114,2624,2625,2629,2641,2651],{"__ignoreMap":112},[506,2626,2627],{"class":508,"line":274},[506,2628,1137],{"class":1136},[506,2630,2631,2634,2636,2639],{"class":508,"line":262},[506,2632,2633],{"class":1142},"  \"sql\"",[506,2635,1146],{"class":1136},[506,2637,2638],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\"",[506,2640,1153],{"class":1136},[506,2642,2643,2646,2648],{"class":508,"line":357},[506,2644,2645],{"class":1142},"  \"environmentId\"",[506,2647,1146],{"class":1136},[506,2649,2650],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n",[506,2652,2653],{"class":508,"line":1168},[506,2654,1402],{"class":1136},[11,2656,2407],{},[106,2658,2660],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"safe\": false,\n    \"overallRisk\": \"HIGH\",\n    \"recommendation\": \"Add as NULL, backfill, then tighten to NOT NULL.\",\n    \"operations\": [\n      {\n        \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n        \"operationType\": \"ADD_COLUMN\",\n        \"tableName\": \"users\",\n        \"lockType\": \"ACCESS EXCLUSIVE\",\n        \"estimatedDuration\": \"~45s\",\n        \"tableSize\": 2147483648,\n        \"rowCount\": 1200000,\n        \"safe\": false,\n        \"recommendation\": \"Adding a NOT NULL column without a default rewrites the table.\",\n        \"safeAlternative\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n      }\n    ]\n  }\n}\n",[114,2661,2662,2666,2676,2682,2693,2705,2717,2724,2728,2739,2751,2762,2774,2786,2798,2810,2821,2832,2842,2846,2850,2854],{"__ignoreMap":112},[506,2663,2664],{"class":508,"line":274},[506,2665,1137],{"class":1136},[506,2667,2668,2670,2672,2674],{"class":508,"line":262},[506,2669,1573],{"class":1142},[506,2671,1146],{"class":1136},[506,2673,1578],{"class":1142},[506,2675,1153],{"class":1136},[506,2677,2678,2680],{"class":508,"line":357},[506,2679,1585],{"class":1142},[506,2681,2229],{"class":1136},[506,2683,2684,2687,2689,2691],{"class":508,"line":1168},[506,2685,2686],{"class":1142},"    \"safe\"",[506,2688,1146],{"class":1136},[506,2690,1266],{"class":1142},[506,2692,1153],{"class":1136},[506,2694,2695,2698,2700,2703],{"class":508,"line":1181},[506,2696,2697],{"class":1142},"    \"overallRisk\"",[506,2699,1146],{"class":1136},[506,2701,2702],{"class":1149},"\"HIGH\"",[506,2704,1153],{"class":1136},[506,2706,2707,2710,2712,2715],{"class":508,"line":1194},[506,2708,2709],{"class":1142},"    \"recommendation\"",[506,2711,1146],{"class":1136},[506,2713,2714],{"class":1149},"\"Add as NULL, backfill, then tighten to NOT NULL.\"",[506,2716,1153],{"class":1136},[506,2718,2719,2722],{"class":508,"line":1207},[506,2720,2721],{"class":1142},"    \"operations\"",[506,2723,1290],{"class":1136},[506,2725,2726],{"class":508,"line":1220},[506,2727,2489],{"class":1136},[506,2729,2730,2733,2735,2737],{"class":508,"line":1233},[506,2731,2732],{"class":1142},"        \"sql\"",[506,2734,1146],{"class":1136},[506,2736,2638],{"class":1149},[506,2738,1153],{"class":1136},[506,2740,2741,2744,2746,2749],{"class":508,"line":1245},[506,2742,2743],{"class":1142},"        \"operationType\"",[506,2745,1146],{"class":1136},[506,2747,2748],{"class":1149},"\"ADD_COLUMN\"",[506,2750,1153],{"class":1136},[506,2752,2753,2756,2758,2760],{"class":508,"line":1258},[506,2754,2755],{"class":1142},"        \"tableName\"",[506,2757,1146],{"class":1136},[506,2759,1319],{"class":1149},[506,2761,1153],{"class":1136},[506,2763,2764,2767,2769,2772],{"class":508,"line":1271},[506,2765,2766],{"class":1142},"        \"lockType\"",[506,2768,1146],{"class":1136},[506,2770,2771],{"class":1149},"\"ACCESS EXCLUSIVE\"",[506,2773,1153],{"class":1136},[506,2775,2776,2779,2781,2784],{"class":508,"line":1284},[506,2777,2778],{"class":1142},"        \"estimatedDuration\"",[506,2780,1146],{"class":1136},[506,2782,2783],{"class":1149},"\"~45s\"",[506,2785,1153],{"class":1136},[506,2787,2788,2791,2793,2796],{"class":508,"line":1293},[506,2789,2790],{"class":1142},"        \"tableSize\"",[506,2792,1146],{"class":1136},[506,2794,2795],{"class":1142},"2147483648",[506,2797,1153],{"class":1136},[506,2799,2800,2803,2805,2808],{"class":508,"line":1299},[506,2801,2802],{"class":1142},"        \"rowCount\"",[506,2804,1146],{"class":1136},[506,2806,2807],{"class":1142},"1200000",[506,2809,1153],{"class":1136},[506,2811,2812,2815,2817,2819],{"class":508,"line":1311},[506,2813,2814],{"class":1142},"        \"safe\"",[506,2816,1146],{"class":1136},[506,2818,1266],{"class":1142},[506,2820,1153],{"class":1136},[506,2822,2823,2825,2827,2830],{"class":508,"line":1324},[506,2824,2553],{"class":1142},[506,2826,1146],{"class":1136},[506,2828,2829],{"class":1149},"\"Adding a NOT NULL column without a default rewrites the table.\"",[506,2831,1153],{"class":1136},[506,2833,2834,2837,2839],{"class":508,"line":1337},[506,2835,2836],{"class":1142},"        \"safeAlternative\"",[506,2838,1146],{"class":1136},[506,2840,2841],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n",[506,2843,2844],{"class":508,"line":1350},[506,2845,2575],{"class":1136},[506,2847,2848],{"class":508,"line":1363},[506,2849,2580],{"class":1136},[506,2851,2852],{"class":508,"line":1376},[506,2853,2585],{"class":1136},[506,2855,2856],{"class":508,"line":1387},[506,2857,1402],{"class":1136},[1785,2859],{},[15,2861,909],{"id":908},[303,2863,2865],{"id":2864},"list-events","List events",[106,2867,2869],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents?page=0&size=20\n",[114,2870,2871],{"__ignoreMap":112},[506,2872,2873],{"class":508,"line":274},[506,2874,2868],{},[11,2876,2877,2878,2881],{},"Paginated. Default ",[114,2879,2880],{},"size"," is 20, max 100.",[106,2883,2885],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n        \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n        \"baselineId\": \"0ce3b9a2-...\",\n        \"currentId\": \"b7d1a3c4-...\",\n        \"severity\": \"BREAKING\",\n        \"breakingCount\": 1,\n        \"warningCount\": 0,\n        \"infoCount\": 2,\n        \"acknowledged\": false,\n        \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n        \"items\": [ \u002F* ... *\u002F ]\n      }\n    ],\n    \"totalElements\": 34,\n    \"totalPages\": 2,\n    \"number\": 0,\n    \"size\": 20\n  }\n}\n",[114,2886,2887,2891,2901,2907,2914,2918,2929,2940,2952,2964,2974,2985,2996,3007,3018,3029,3043,3047,3052,3064,3075,3086,3096,3100],{"__ignoreMap":112},[506,2888,2889],{"class":508,"line":274},[506,2890,1137],{"class":1136},[506,2892,2893,2895,2897,2899],{"class":508,"line":262},[506,2894,1573],{"class":1142},[506,2896,1146],{"class":1136},[506,2898,1578],{"class":1142},[506,2900,1153],{"class":1136},[506,2902,2903,2905],{"class":508,"line":357},[506,2904,1585],{"class":1142},[506,2906,2229],{"class":1136},[506,2908,2909,2912],{"class":508,"line":1168},[506,2910,2911],{"class":1142},"    \"content\"",[506,2913,1290],{"class":1136},[506,2915,2916],{"class":508,"line":1181},[506,2917,2489],{"class":1136},[506,2919,2920,2923,2925,2927],{"class":508,"line":1194},[506,2921,2922],{"class":1142},"        \"id\"",[506,2924,1146],{"class":1136},[506,2926,1150],{"class":1149},[506,2928,1153],{"class":1136},[506,2930,2931,2934,2936,2938],{"class":508,"line":1207},[506,2932,2933],{"class":1142},"        \"envId\"",[506,2935,1146],{"class":1136},[506,2937,1163],{"class":1149},[506,2939,1153],{"class":1136},[506,2941,2942,2945,2947,2950],{"class":508,"line":1220},[506,2943,2944],{"class":1142},"        \"baselineId\"",[506,2946,1146],{"class":1136},[506,2948,2949],{"class":1149},"\"0ce3b9a2-...\"",[506,2951,1153],{"class":1136},[506,2953,2954,2957,2959,2962],{"class":508,"line":1233},[506,2955,2956],{"class":1142},"        \"currentId\"",[506,2958,1146],{"class":1136},[506,2960,2961],{"class":1149},"\"b7d1a3c4-...\"",[506,2963,1153],{"class":1136},[506,2965,2966,2968,2970,2972],{"class":508,"line":1245},[506,2967,2494],{"class":1142},[506,2969,1146],{"class":1136},[506,2971,1202],{"class":1149},[506,2973,1153],{"class":1136},[506,2975,2976,2979,2981,2983],{"class":508,"line":1258},[506,2977,2978],{"class":1142},"        \"breakingCount\"",[506,2980,1146],{"class":1136},[506,2982,1215],{"class":1142},[506,2984,1153],{"class":1136},[506,2986,2987,2990,2992,2994],{"class":508,"line":1271},[506,2988,2989],{"class":1142},"        \"warningCount\"",[506,2991,1146],{"class":1136},[506,2993,1228],{"class":1142},[506,2995,1153],{"class":1136},[506,2997,2998,3001,3003,3005],{"class":508,"line":1284},[506,2999,3000],{"class":1142},"        \"infoCount\"",[506,3002,1146],{"class":1136},[506,3004,70],{"class":1142},[506,3006,1153],{"class":1136},[506,3008,3009,3012,3014,3016],{"class":508,"line":1293},[506,3010,3011],{"class":1142},"        \"acknowledged\"",[506,3013,1146],{"class":1136},[506,3015,1266],{"class":1142},[506,3017,1153],{"class":1136},[506,3019,3020,3023,3025,3027],{"class":508,"line":1299},[506,3021,3022],{"class":1142},"        \"detectedAt\"",[506,3024,1146],{"class":1136},[506,3026,1279],{"class":1149},[506,3028,1153],{"class":1136},[506,3030,3031,3034,3037,3040],{"class":508,"line":1311},[506,3032,3033],{"class":1142},"        \"items\"",[506,3035,3036],{"class":1136},": [ ",[506,3038,3039],{"class":1591},"\u002F* ... *\u002F",[506,3041,3042],{"class":1136}," ]\n",[506,3044,3045],{"class":508,"line":1324},[506,3046,2575],{"class":1136},[506,3048,3049],{"class":508,"line":1337},[506,3050,3051],{"class":1136},"    ],\n",[506,3053,3054,3057,3059,3062],{"class":508,"line":1350},[506,3055,3056],{"class":1142},"    \"totalElements\"",[506,3058,1146],{"class":1136},[506,3060,3061],{"class":1142},"34",[506,3063,1153],{"class":1136},[506,3065,3066,3069,3071,3073],{"class":508,"line":1363},[506,3067,3068],{"class":1142},"    \"totalPages\"",[506,3070,1146],{"class":1136},[506,3072,70],{"class":1142},[506,3074,1153],{"class":1136},[506,3076,3077,3080,3082,3084],{"class":508,"line":1376},[506,3078,3079],{"class":1142},"    \"number\"",[506,3081,1146],{"class":1136},[506,3083,1228],{"class":1142},[506,3085,1153],{"class":1136},[506,3087,3088,3091,3093],{"class":508,"line":1387},[506,3089,3090],{"class":1142},"    \"size\"",[506,3092,1146],{"class":1136},[506,3094,3095],{"class":1142},"20\n",[506,3097,3098],{"class":508,"line":1393},[506,3099,2585],{"class":1136},[506,3101,3102],{"class":508,"line":1399},[506,3103,1402],{"class":1136},[303,3105,3107],{"id":3106},"get-a-single-event","Get a single event",[106,3109,3111],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\n",[114,3112,3113],{"__ignoreMap":112},[506,3114,3115],{"class":508,"line":274},[506,3116,3110],{},[303,3118,3120],{"id":3119},"acknowledge-an-event","Acknowledge an event",[106,3122,3124],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge\n",[114,3125,3126],{"__ignoreMap":112},[506,3127,3128],{"class":508,"line":274},[506,3129,3123],{},[11,3131,3132],{},"Marks the event as reviewed. Does not affect the baseline.",[1785,3134],{},[15,3136,3138],{"id":3137},"response-envelope-reference","Response envelope reference",[38,3140,3141,3154],{},[41,3142,3143],{},[44,3144,3145,3148,3151],{},[47,3146,3147],{},"Field",[47,3149,3150],{},"Type",[47,3152,3153],{},"Notes",[60,3155,3156,3176,3194,3208,3224],{},[44,3157,3158,3163,3168],{},[65,3159,3160],{},[114,3161,3162],{},"success",[65,3164,3165],{},[114,3166,3167],{},"boolean",[65,3169,3170,3172,3173,3175],{},[114,3171,1578],{}," for 2xx, ",[114,3174,1266],{}," otherwise",[44,3177,3178,3183,3188],{},[65,3179,3180],{},[114,3181,3182],{},"data",[65,3184,3185],{},[114,3186,3187],{},"T | null",[65,3189,3190,3191,3193],{},"Typed payload, ",[114,3192,1617],{}," on error",[44,3195,3196,3200,3205],{},[65,3197,3198],{},[114,3199,1692],{},[65,3201,3202],{},[114,3203,3204],{},"string?",[65,3206,3207],{},"Human-readable hint, useful for surfacing in UIs",[44,3209,3210,3214,3218],{},[65,3211,3212],{},[114,3213,1689],{},[65,3215,3216],{},[114,3217,3204],{},[65,3219,3220,3221,424],{},"Machine-readable code on error (e.g. ",[114,3222,3223],{},"BAD_REQUEST",[44,3225,3226,3231,3236],{},[65,3227,3228],{},[114,3229,3230],{},"timestamp",[65,3232,3233],{},[114,3234,3235],{},"string",[65,3237,3238],{},"ISO-8601 response time, useful for correlating with logs",[674,3240,3241],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":112,"searchDepth":262,"depth":262,"links":3243},[3244,3245,3246,3247,3253,3256,3257,3258,3263],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":3248},[3249,3250,3251,3252],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":3254},[3255],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":3259},[3260,3261,3262],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},"HTTP API for Drift Scanner. Register and list environments, trigger scans, diff environments, analyze migrations, and paginate through drift events.",{},{"title":1041,"description":3264},"docs\u002Fdrift-scanner\u002Fapi-reference","W4mKaRYV04G01wZEZupk-fh7Yw9IasIFf39Upwq5F6I",{"id":694,"title":253,"body":3270,"description":1057,"extension":271,"meta":3514,"navigation":273,"order":357,"path":252,"section":276,"seo":3515,"stem":1060,"updatedAt":279,"__hash__":1061},{"type":8,"value":3271,"toc":3500},[3272,3278,3280,3284,3286,3288,3290,3304,3306,3308,3312,3348,3350,3352,3354,3356,3366,3368,3370,3380,3382,3384,3398,3414,3416,3420,3468,3472,3474,3480,3482,3484,3490,3492,3494],[11,3273,699,3274,474,3276,706],{},[101,3275,702],{},[101,3277,705],{},[15,3279,710],{"id":709},[11,3281,713,3282,717],{},[101,3283,716],{},[11,3285,720],{},[15,3287,724],{"id":723},[11,3289,727],{},[729,3291,3292,3294,3298,3300,3302],{},[172,3293,733],{},[172,3295,736,3296],{},[114,3297,125],{},[172,3299,741],{},[172,3301,744],{},[172,3303,747],{},[11,3305,750],{},[15,3307,754],{"id":753},[11,3309,757,3310,761],{},[114,3311,760],{},[38,3313,3314,3322],{},[41,3315,3316],{},[44,3317,3318,3320],{},[47,3319,49],{},[47,3321,772],{},[60,3323,3324,3330,3336,3342],{},[44,3325,3326,3328],{},[65,3327,67],{},[65,3329,781],{},[44,3331,3332,3334],{},[65,3333,81],{},[65,3335,84],{},[44,3337,3338,3340],{},[65,3339,792],{},[65,3341,795],{},[44,3343,3344,3346],{},[65,3345,800],{},[65,3347,803],{},[15,3349,807],{"id":806},[11,3351,810],{},[303,3353,814],{"id":813},[11,3355,817],{},[169,3357,3358,3360,3362,3364],{},[172,3359,822],{},[172,3361,825],{},[172,3363,828],{},[172,3365,831],{},[303,3367,835],{"id":834},[11,3369,838],{},[169,3371,3372,3376,3378],{},[172,3373,843,3374,847],{},[114,3375,846],{},[172,3377,850],{},[172,3379,853],{},[303,3381,857],{"id":856},[11,3383,860],{},[169,3385,3386,3388,3390,3396],{},[172,3387,865],{},[172,3389,868],{},[172,3391,871,3392,875,3394,424],{},[114,3393,874],{},[114,3395,846],{},[172,3397,880],{},[11,3399,883,3400,150,3402,150,3404,150,3406,150,3408,150,3410,901,3412,905],{},[114,3401,886],{},[114,3403,38],{},[114,3405,891],{},[114,3407,894],{},[114,3409,897],{},[114,3411,900],{},[114,3413,904],{},[15,3415,909],{"id":908},[11,3417,912,3418,916],{},[114,3419,915],{},[169,3421,3422,3426,3430,3436,3446,3454,3458,3462],{},[172,3423,3424,924],{},[114,3425,923],{},[172,3427,3428,930],{},[114,3429,929],{},[172,3431,3432,936,3434,940],{},[114,3433,935],{},[114,3435,939],{},[172,3437,3438,945,3440,150,3442,952,3444],{},[114,3439,886],{},[114,3441,948],{},[114,3443,951],{},[114,3445,955],{},[172,3447,3448,150,3450,150,3452],{},[114,3449,960],{},[114,3451,963],{},[114,3453,966],{},[172,3455,3456,972],{},[114,3457,971],{},[172,3459,3460,978],{},[114,3461,977],{},[172,3463,3464,984,3466,988],{},[114,3465,983],{},[114,3467,987],{},[11,3469,991,3470,315],{},[114,3471,994],{},[15,3473,998],{"id":997},[11,3475,1001,3476,1005,3478,1009],{},[114,3477,1004],{},[101,3479,1008],{},[15,3481,1013],{"id":1012},[11,3483,1016],{},[169,3485,3486,3488],{},[172,3487,1021],{},[172,3489,1024],{},[11,3491,1027],{},[15,3493,1031],{"id":1030},[11,3495,1034,3496,1038,3498,1042],{},[114,3497,1037],{},[23,3499,1041],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":3501},[3502,3503,3504,3505,3510,3511,3512,3513],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":3506},[3507,3508,3509],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},{},{"title":253,"description":1057},[3517,3680,3729,3957,4204,4557],{"id":5,"title":6,"body":3518,"description":270,"extension":271,"meta":3678,"navigation":273,"order":274,"path":275,"section":276,"seo":3679,"stem":278,"updatedAt":279,"__hash__":280},{"type":8,"value":3519,"toc":3670},[3520,3522,3524,3529,3531,3533,3569,3571,3573,3577,3582,3594,3604,3606,3608,3610,3612,3624,3626,3630,3644,3648,3650,3654,3656],[11,3521,13],{},[15,3523,18],{"id":17},[11,3525,21,3526,29],{},[23,3527,28],{"href":25,"rel":3528},[27],[15,3530,33],{"id":32},[11,3532,36],{},[38,3534,3535,3547],{},[41,3536,3537],{},[44,3538,3539,3541,3543,3545],{},[47,3540,49],{},[47,3542,52],{},[47,3544,55],{},[47,3546,58],{},[60,3548,3549,3559],{},[44,3550,3551,3553,3555,3557],{},[65,3552,67],{},[65,3554,70],{},[65,3556,73],{},[65,3558,76],{},[44,3560,3561,3563,3565,3567],{},[65,3562,81],{},[65,3564,84],{},[65,3566,73],{},[65,3568,89],{},[11,3570,92],{},[15,3572,96],{"id":95},[11,3574,99,3575,104],{},[101,3576,103],{},[106,3578,3580],{"className":3579,"code":110,"language":111,"meta":112},[109],[114,3581,110],{"__ignoreMap":112},[11,3583,118,3584,122,3586,126,3588,130,3590,134,3592,137],{},[101,3585,121],{},[114,3587,125],{},[114,3589,129],{},[114,3591,133],{},[114,3593,125],{},[139,3595,3596],{},[11,3597,3598,146,3600,150,3602,154],{},[101,3599,145],{},[114,3601,149],{},[114,3603,153],{},[11,3605,157],{},[15,3607,161],{"id":160},[11,3609,164],{},[11,3611,167],{},[169,3613,3614,3616,3618,3620,3622],{},[172,3615,174],{},[172,3617,177],{},[172,3619,180],{},[172,3621,183],{},[172,3623,186],{},[15,3625,190],{"id":189},[11,3627,193,3628,197],{},[101,3629,196],{},[169,3631,3632,3636,3640],{},[172,3633,3634,205],{},[101,3635,204],{},[172,3637,3638,211],{},[101,3639,210],{},[172,3641,3642,217],{},[101,3643,216],{},[11,3645,220,3646,224],{},[23,3647,196],{"href":223},[15,3649,228],{"id":227},[11,3651,231,3652,235],{},[114,3653,234],{},[11,3655,238],{},[169,3657,3658,3662,3666],{},[172,3659,243,3660],{},[23,3661,52],{"href":246},[172,3663,249,3664],{},[23,3665,253],{"href":252},[172,3667,256,3668],{},[23,3669,260],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":3671},[3672,3673,3674,3675,3676,3677],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},{},{"title":6,"description":270},{"id":282,"title":283,"body":3681,"description":360,"extension":271,"meta":3727,"navigation":273,"order":274,"path":362,"section":363,"seo":3728,"stem":365,"updatedAt":279,"__hash__":366},{"type":8,"value":3682,"toc":3720},[3683,3685,3690,3692,3694,3696,3700,3702,3704,3708,3710],[11,3684,288],{},[11,3686,291,3687,297],{},[23,3688,296],{"href":294,"rel":3689},[27],[15,3691,301],{"id":300},[303,3693,305],{"id":276},[11,3695,308],{},[11,3697,311,3698,315],{},[23,3699,314],{"href":275},[303,3701,319],{"id":318},[11,3703,322],{},[11,3705,256,3706,315],{},[23,3707,328],{"href":327},[15,3709,332],{"id":331},[11,3711,335,3712,340,3714,346,3717,315],{},[23,3713,339],{"href":338},[23,3715,345],{"href":343,"rel":3716},[27],[23,3718,351],{"href":349,"rel":3719},[27],{"title":112,"searchDepth":262,"depth":262,"links":3721},[3722,3726],{"id":300,"depth":262,"text":301,"children":3723},[3724,3725],{"id":276,"depth":357,"text":305},{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},{},{"title":283,"description":360},{"id":368,"title":52,"body":3730,"description":688,"extension":271,"meta":3955,"navigation":273,"order":262,"path":246,"section":276,"seo":3956,"stem":691,"updatedAt":279,"__hash__":692},{"type":8,"value":3731,"toc":3944},[3732,3734,3736,3740,3745,3747,3752,3754,3756,3758,3810,3812,3814,3818,3834,3838,3840,3842,3872,3874,3876,3878,3894,3896,3926,3930,3932,3938,3940,3942],[11,3733,373],{},[15,3735,377],{"id":376},[11,3737,380,3738,384],{},[114,3739,383],{},[106,3741,3743],{"className":3742,"code":388,"language":111,"meta":112},[109],[114,3744,388],{"__ignoreMap":112},[11,3746,393],{},[106,3748,3750],{"className":3749,"code":397,"language":111,"meta":112},[109],[114,3751,397],{"__ignoreMap":112},[11,3753,402],{},[303,3755,406],{"id":405},[11,3757,409],{},[169,3759,3760,3768,3778,3784,3790,3800],{},[172,3761,3762,417,3764,150,3766,424],{},[101,3763,416],{},[114,3765,420],{},[114,3767,423],{},[172,3769,3770,417,3772,150,3774,150,3776,424],{},[101,3771,429],{},[114,3773,432],{},[114,3775,435],{},[114,3777,438],{},[172,3779,3780,417,3782,446],{},[101,3781,443],{},[114,3783,149],{},[172,3785,3786,417,3788,424],{},[101,3787,451],{},[114,3789,153],{},[172,3791,3792,417,3794,462,3796,417,3798,424],{},[101,3793,458],{},[114,3795,461],{},[101,3797,465],{},[114,3799,468],{},[172,3801,3802,474,3804,478,3806,150,3808,424],{},[101,3803,473],{},[101,3805,477],{},[114,3807,481],{},[114,3809,484],{},[11,3811,487],{},[15,3813,491],{"id":490},[11,3815,494,3816,497],{},[114,3817,125],{},[106,3819,3820],{"className":500,"code":501,"language":502,"meta":112,"style":112},[114,3821,3822,3826,3830],{"__ignoreMap":112},[506,3823,3824],{"class":508,"line":274},[506,3825,511],{},[506,3827,3828],{"class":508,"line":262},[506,3829,516],{},[506,3831,3832],{"class":508,"line":357},[506,3833,521],{},[11,3835,524,3836,528],{},[101,3837,527],{},[15,3839,532],{"id":531},[11,3841,535],{},[169,3843,3844,3848,3852,3856,3860,3864,3868],{},[172,3845,3846,543],{},[101,3847,542],{},[172,3849,3850,549],{},[101,3851,548],{},[172,3853,3854,555],{},[101,3855,554],{},[172,3857,3858,561],{},[101,3859,560],{},[172,3861,3862,566],{},[101,3863,180],{},[172,3865,3866,571],{},[101,3867,183],{},[172,3869,3870,576],{},[101,3871,186],{},[11,3873,579],{},[15,3875,583],{"id":582},[11,3877,586],{},[169,3879,3880,3886,3890],{},[172,3881,3882,594,3884,315],{},[101,3883,593],{},[114,3885,125],{},[172,3887,3888,602],{},[101,3889,601],{},[172,3891,3892,602],{},[101,3893,607],{},[15,3895,611],{"id":610},[38,3897,3898,3906],{},[41,3899,3900],{},[44,3901,3902,3904],{},[47,3903,49],{},[47,3905,622],{},[60,3907,3908,3914,3920],{},[44,3909,3910,3912],{},[65,3911,67],{},[65,3913,70],{},[44,3915,3916,3918],{},[65,3917,81],{},[65,3919,84],{},[44,3921,3922,3924],{},[65,3923,641],{},[65,3925,644],{},[11,3927,647,3928,651],{},[114,3929,650],{},[15,3931,655],{"id":654},[11,3933,658,3934,661,3936,665],{},[114,3935,234],{},[114,3937,664],{},[15,3939,669],{"id":668},[11,3941,672],{},[674,3943,676],{},{"title":112,"searchDepth":262,"depth":262,"links":3945},[3946,3949,3950,3951,3952,3953,3954],{"id":376,"depth":262,"text":377,"children":3947},[3948],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},{},{"title":52,"description":688},{"id":694,"title":253,"body":3958,"description":1057,"extension":271,"meta":4202,"navigation":273,"order":357,"path":252,"section":276,"seo":4203,"stem":1060,"updatedAt":279,"__hash__":1061},{"type":8,"value":3959,"toc":4188},[3960,3966,3968,3972,3974,3976,3978,3992,3994,3996,4000,4036,4038,4040,4042,4044,4054,4056,4058,4068,4070,4072,4086,4102,4104,4108,4156,4160,4162,4168,4170,4172,4178,4180,4182],[11,3961,699,3962,474,3964,706],{},[101,3963,702],{},[101,3965,705],{},[15,3967,710],{"id":709},[11,3969,713,3970,717],{},[101,3971,716],{},[11,3973,720],{},[15,3975,724],{"id":723},[11,3977,727],{},[729,3979,3980,3982,3986,3988,3990],{},[172,3981,733],{},[172,3983,736,3984],{},[114,3985,125],{},[172,3987,741],{},[172,3989,744],{},[172,3991,747],{},[11,3993,750],{},[15,3995,754],{"id":753},[11,3997,757,3998,761],{},[114,3999,760],{},[38,4001,4002,4010],{},[41,4003,4004],{},[44,4005,4006,4008],{},[47,4007,49],{},[47,4009,772],{},[60,4011,4012,4018,4024,4030],{},[44,4013,4014,4016],{},[65,4015,67],{},[65,4017,781],{},[44,4019,4020,4022],{},[65,4021,81],{},[65,4023,84],{},[44,4025,4026,4028],{},[65,4027,792],{},[65,4029,795],{},[44,4031,4032,4034],{},[65,4033,800],{},[65,4035,803],{},[15,4037,807],{"id":806},[11,4039,810],{},[303,4041,814],{"id":813},[11,4043,817],{},[169,4045,4046,4048,4050,4052],{},[172,4047,822],{},[172,4049,825],{},[172,4051,828],{},[172,4053,831],{},[303,4055,835],{"id":834},[11,4057,838],{},[169,4059,4060,4064,4066],{},[172,4061,843,4062,847],{},[114,4063,846],{},[172,4065,850],{},[172,4067,853],{},[303,4069,857],{"id":856},[11,4071,860],{},[169,4073,4074,4076,4078,4084],{},[172,4075,865],{},[172,4077,868],{},[172,4079,871,4080,875,4082,424],{},[114,4081,874],{},[114,4083,846],{},[172,4085,880],{},[11,4087,883,4088,150,4090,150,4092,150,4094,150,4096,150,4098,901,4100,905],{},[114,4089,886],{},[114,4091,38],{},[114,4093,891],{},[114,4095,894],{},[114,4097,897],{},[114,4099,900],{},[114,4101,904],{},[15,4103,909],{"id":908},[11,4105,912,4106,916],{},[114,4107,915],{},[169,4109,4110,4114,4118,4124,4134,4142,4146,4150],{},[172,4111,4112,924],{},[114,4113,923],{},[172,4115,4116,930],{},[114,4117,929],{},[172,4119,4120,936,4122,940],{},[114,4121,935],{},[114,4123,939],{},[172,4125,4126,945,4128,150,4130,952,4132],{},[114,4127,886],{},[114,4129,948],{},[114,4131,951],{},[114,4133,955],{},[172,4135,4136,150,4138,150,4140],{},[114,4137,960],{},[114,4139,963],{},[114,4141,966],{},[172,4143,4144,972],{},[114,4145,971],{},[172,4147,4148,978],{},[114,4149,977],{},[172,4151,4152,984,4154,988],{},[114,4153,983],{},[114,4155,987],{},[11,4157,991,4158,315],{},[114,4159,994],{},[15,4161,998],{"id":997},[11,4163,1001,4164,1005,4166,1009],{},[114,4165,1004],{},[101,4167,1008],{},[15,4169,1013],{"id":1012},[11,4171,1016],{},[169,4173,4174,4176],{},[172,4175,1021],{},[172,4177,1024],{},[11,4179,1027],{},[15,4181,1031],{"id":1030},[11,4183,1034,4184,1038,4186,1042],{},[114,4185,1037],{},[23,4187,1041],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":4189},[4190,4191,4192,4193,4198,4199,4200,4201],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":4194},[4195,4196,4197],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},{},{"title":253,"description":1057},{"id":1063,"title":196,"body":4205,"description":1544,"extension":271,"meta":4555,"navigation":273,"order":1168,"path":223,"section":276,"seo":4556,"stem":1547,"updatedAt":279,"__hash__":1548},{"type":8,"value":4206,"toc":4544},[4207,4209,4211,4213,4218,4232,4234,4239,4241,4243,4247,4455,4461,4463,4465,4467,4472,4510,4512,4516,4518,4522,4524,4530,4532,4542],[11,4208,1068],{},[15,4210,1072],{"id":1071},[303,4212,204],{"id":1075},[11,4214,1078,4215,1084],{},[23,4216,1083],{"href":1081,"rel":4217},[27],[169,4219,4220,4224,4228],{},[172,4221,4222,1091],{},[114,4223,955],{},[172,4225,4226,1096],{},[114,4227,951],{},[172,4229,4230,1101],{},[114,4231,948],{},[11,4233,1104],{},[106,4235,4237],{"className":4236,"code":1108,"language":111,"meta":112},[109],[114,4238,1108],{"__ignoreMap":112},[11,4240,1113],{},[303,4242,1117],{"id":1116},[11,4244,1120,4245,1124],{},[114,4246,1123],{},[106,4248,4249],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},[114,4250,4251,4255,4265,4275,4285,4295,4305,4315,4325,4335,4345,4355,4365,4371,4375,4385,4395,4405,4415,4425,4435,4443,4447,4451],{"__ignoreMap":112},[506,4252,4253],{"class":508,"line":274},[506,4254,1137],{"class":1136},[506,4256,4257,4259,4261,4263],{"class":508,"line":262},[506,4258,1143],{"class":1142},[506,4260,1146],{"class":1136},[506,4262,1150],{"class":1149},[506,4264,1153],{"class":1136},[506,4266,4267,4269,4271,4273],{"class":508,"line":357},[506,4268,1158],{"class":1142},[506,4270,1146],{"class":1136},[506,4272,1163],{"class":1149},[506,4274,1153],{"class":1136},[506,4276,4277,4279,4281,4283],{"class":508,"line":1168},[506,4278,1171],{"class":1142},[506,4280,1146],{"class":1136},[506,4282,1176],{"class":1149},[506,4284,1153],{"class":1136},[506,4286,4287,4289,4291,4293],{"class":508,"line":1181},[506,4288,1184],{"class":1142},[506,4290,1146],{"class":1136},[506,4292,1189],{"class":1149},[506,4294,1153],{"class":1136},[506,4296,4297,4299,4301,4303],{"class":508,"line":1194},[506,4298,1197],{"class":1142},[506,4300,1146],{"class":1136},[506,4302,1202],{"class":1149},[506,4304,1153],{"class":1136},[506,4306,4307,4309,4311,4313],{"class":508,"line":1207},[506,4308,1210],{"class":1142},[506,4310,1146],{"class":1136},[506,4312,1215],{"class":1142},[506,4314,1153],{"class":1136},[506,4316,4317,4319,4321,4323],{"class":508,"line":1220},[506,4318,1223],{"class":1142},[506,4320,1146],{"class":1136},[506,4322,1228],{"class":1142},[506,4324,1153],{"class":1136},[506,4326,4327,4329,4331,4333],{"class":508,"line":1233},[506,4328,1236],{"class":1142},[506,4330,1146],{"class":1136},[506,4332,70],{"class":1142},[506,4334,1153],{"class":1136},[506,4336,4337,4339,4341,4343],{"class":508,"line":1245},[506,4338,1248],{"class":1142},[506,4340,1146],{"class":1136},[506,4342,1253],{"class":1149},[506,4344,1153],{"class":1136},[506,4346,4347,4349,4351,4353],{"class":508,"line":1258},[506,4348,1261],{"class":1142},[506,4350,1146],{"class":1136},[506,4352,1266],{"class":1142},[506,4354,1153],{"class":1136},[506,4356,4357,4359,4361,4363],{"class":508,"line":1271},[506,4358,1274],{"class":1142},[506,4360,1146],{"class":1136},[506,4362,1279],{"class":1149},[506,4364,1153],{"class":1136},[506,4366,4367,4369],{"class":508,"line":1284},[506,4368,1287],{"class":1142},[506,4370,1290],{"class":1136},[506,4372,4373],{"class":508,"line":1293},[506,4374,1296],{"class":1136},[506,4376,4377,4379,4381,4383],{"class":508,"line":1299},[506,4378,1302],{"class":1142},[506,4380,1146],{"class":1136},[506,4382,1202],{"class":1149},[506,4384,1153],{"class":1136},[506,4386,4387,4389,4391,4393],{"class":508,"line":1311},[506,4388,1314],{"class":1142},[506,4390,1146],{"class":1136},[506,4392,1319],{"class":1149},[506,4394,1153],{"class":1136},[506,4396,4397,4399,4401,4403],{"class":508,"line":1324},[506,4398,1327],{"class":1142},[506,4400,1146],{"class":1136},[506,4402,1332],{"class":1149},[506,4404,1153],{"class":1136},[506,4406,4407,4409,4411,4413],{"class":508,"line":1337},[506,4408,1340],{"class":1142},[506,4410,1146],{"class":1136},[506,4412,1345],{"class":1149},[506,4414,1153],{"class":1136},[506,4416,4417,4419,4421,4423],{"class":508,"line":1350},[506,4418,1353],{"class":1142},[506,4420,1146],{"class":1136},[506,4422,1358],{"class":1149},[506,4424,1153],{"class":1136},[506,4426,4427,4429,4431,4433],{"class":508,"line":1363},[506,4428,1366],{"class":1142},[506,4430,1146],{"class":1136},[506,4432,1371],{"class":1149},[506,4434,1153],{"class":1136},[506,4436,4437,4439,4441],{"class":508,"line":1376},[506,4438,1379],{"class":1142},[506,4440,1146],{"class":1136},[506,4442,1384],{"class":1149},[506,4444,4445],{"class":508,"line":1387},[506,4446,1390],{"class":1136},[506,4448,4449],{"class":508,"line":1393},[506,4450,1396],{"class":1136},[506,4452,4453],{"class":508,"line":1399},[506,4454,1402],{"class":1136},[11,4456,1405,4457,1409,4459,1413],{},[114,4458,1408],{},[114,4460,1412],{},[303,4462,216],{"id":1416},[11,4464,1419],{},[15,4466,1423],{"id":1422},[11,4468,1426,4469,1432],{},[23,4470,1431],{"href":1429,"rel":4471},[27],[38,4473,4474,4484],{},[41,4475,4476],{},[44,4477,4478,4480,4482],{},[47,4479,1441],{},[47,4481,1444],{},[47,4483,1447],{},[60,4485,4486,4494,4502],{},[44,4487,4488,4490,4492],{},[65,4489,1117],{},[65,4491,1456],{},[65,4493,1459],{},[44,4495,4496,4498,4500],{},[65,4497,204],{},[65,4499,1456],{},[65,4501,1459],{},[44,4503,4504,4506,4508],{},[65,4505,216],{},[65,4507,1474],{},[65,4509,1477],{},[11,4511,1480],{},[11,4513,1483,4514,1486],{},[114,4515,994],{},[15,4517,1490],{"id":1489},[11,4519,1493,4520,1497],{},[114,4521,1496],{},[15,4523,1501],{"id":1500},[11,4525,1504,4526,1508,4528,1511],{},[101,4527,1507],{},[114,4529,948],{},[15,4531,1515],{"id":1514},[169,4533,4534,4536,4538,4540],{},[172,4535,1520],{},[172,4537,1523],{},[172,4539,1526],{},[172,4541,1529],{},[674,4543,1532],{},{"title":112,"searchDepth":262,"depth":262,"links":4545},[4546,4551,4552,4553,4554],{"id":1071,"depth":262,"text":1072,"children":4547},[4548,4549,4550],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},{},{"title":196,"description":1544},{"id":1550,"title":1041,"body":4558,"description":3264,"extension":271,"meta":5991,"navigation":273,"order":1181,"path":259,"section":276,"seo":5992,"stem":3267,"updatedAt":279,"__hash__":3268},{"type":8,"value":4559,"toc":5969},[4560,4564,4624,4626,4631,4633,4635,4643,4647,4653,4655,4663,4723,4725,4743,4745,4747,4749,4757,4759,4819,4845,4849,4915,4917,4925,4927,5035,5037,5045,5047,5055,5061,5063,5065,5067,5075,5077,5175,5205,5207,5209,5217,5219,5221,5251,5253,5411,5413,5415,5423,5431,5433,5463,5465,5643,5645,5647,5649,5657,5661,5859,5861,5869,5871,5879,5881,5883,5885,5967],[11,4561,1555,4562,1559],{},[114,4563,1558],{},[106,4565,4566],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},[114,4567,4568,4572,4582,4592,4602,4612,4620],{"__ignoreMap":112},[506,4569,4570],{"class":508,"line":274},[506,4571,1137],{"class":1136},[506,4573,4574,4576,4578,4580],{"class":508,"line":262},[506,4575,1573],{"class":1142},[506,4577,1146],{"class":1136},[506,4579,1578],{"class":1142},[506,4581,1153],{"class":1136},[506,4583,4584,4586,4588,4590],{"class":508,"line":357},[506,4585,1585],{"class":1142},[506,4587,1588],{"class":1136},[506,4589,1592],{"class":1591},[506,4591,1595],{"class":1136},[506,4593,4594,4596,4598,4600],{"class":508,"line":1168},[506,4595,1600],{"class":1142},[506,4597,1146],{"class":1136},[506,4599,1605],{"class":1149},[506,4601,1153],{"class":1136},[506,4603,4604,4606,4608,4610],{"class":508,"line":1181},[506,4605,1612],{"class":1142},[506,4607,1146],{"class":1136},[506,4609,1617],{"class":1142},[506,4611,1153],{"class":1136},[506,4613,4614,4616,4618],{"class":508,"line":1194},[506,4615,1624],{"class":1142},[506,4617,1146],{"class":1136},[506,4619,1629],{"class":1149},[506,4621,4622],{"class":508,"line":1207},[506,4623,1402],{"class":1136},[15,4625,1637],{"id":1636},[106,4627,4629],{"className":4628,"code":1641,"language":111,"meta":112},[109],[114,4630,1641],{"__ignoreMap":112},[15,4632,1647],{"id":1646},[11,4634,1650],{},[106,4636,4637],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},[114,4638,4639],{"__ignoreMap":112},[506,4640,4641],{"class":508,"line":274},[506,4642,1654],{},[11,4644,1664,4645,1667],{},[114,4646,294],{},[139,4648,4649],{},[11,4650,4651,1675],{},[101,4652,1674],{},[15,4654,1679],{"id":1678},[11,4656,1682,4657,1686,4659,474,4661,1124],{},[114,4658,1685],{},[114,4660,1689],{},[114,4662,1692],{},[106,4664,4665],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},[114,4666,4667,4671,4681,4691,4701,4711,4719],{"__ignoreMap":112},[506,4668,4669],{"class":508,"line":274},[506,4670,1137],{"class":1136},[506,4672,4673,4675,4677,4679],{"class":508,"line":262},[506,4674,1573],{"class":1142},[506,4676,1146],{"class":1136},[506,4678,1266],{"class":1142},[506,4680,1153],{"class":1136},[506,4682,4683,4685,4687,4689],{"class":508,"line":357},[506,4684,1585],{"class":1142},[506,4686,1146],{"class":1136},[506,4688,1617],{"class":1142},[506,4690,1153],{"class":1136},[506,4692,4693,4695,4697,4699],{"class":508,"line":1168},[506,4694,1600],{"class":1142},[506,4696,1146],{"class":1136},[506,4698,1730],{"class":1149},[506,4700,1153],{"class":1136},[506,4702,4703,4705,4707,4709],{"class":508,"line":1181},[506,4704,1612],{"class":1142},[506,4706,1146],{"class":1136},[506,4708,1741],{"class":1149},[506,4710,1153],{"class":1136},[506,4712,4713,4715,4717],{"class":508,"line":1194},[506,4714,1624],{"class":1142},[506,4716,1146],{"class":1136},[506,4718,1629],{"class":1149},[506,4720,4721],{"class":508,"line":1207},[506,4722,1402],{"class":1136},[11,4724,1758],{},[169,4726,4727,4731,4735,4739],{},[172,4728,4729,1765],{},[114,4730,650],{},[172,4732,4733,1771],{},[114,4734,1770],{},[172,4736,4737,1777],{},[114,4738,1776],{},[172,4740,4741,1783],{},[114,4742,1782],{},[1785,4744],{},[15,4746,52],{"id":1789},[303,4748,1793],{"id":1792},[106,4750,4751],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},[114,4752,4753],{"__ignoreMap":112},[506,4754,4755],{"class":508,"line":274},[506,4756,1796],{},[11,4758,1805],{},[106,4760,4761],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},[114,4762,4763,4767,4777,4787,4797,4807,4815],{"__ignoreMap":112},[506,4764,4765],{"class":508,"line":274},[506,4766,1137],{"class":1136},[506,4768,4769,4771,4773,4775],{"class":508,"line":262},[506,4770,1819],{"class":1142},[506,4772,1146],{"class":1136},[506,4774,1253],{"class":1149},[506,4776,1153],{"class":1136},[506,4778,4779,4781,4783,4785],{"class":508,"line":357},[506,4780,1830],{"class":1142},[506,4782,1146],{"class":1136},[506,4784,1835],{"class":1149},[506,4786,1153],{"class":1136},[506,4788,4789,4791,4793,4795],{"class":508,"line":1168},[506,4790,1842],{"class":1142},[506,4792,1146],{"class":1136},[506,4794,1847],{"class":1149},[506,4796,1153],{"class":1136},[506,4798,4799,4801,4803,4805],{"class":508,"line":1181},[506,4800,1854],{"class":1142},[506,4802,1146],{"class":1136},[506,4804,1859],{"class":1149},[506,4806,1153],{"class":1136},[506,4808,4809,4811,4813],{"class":508,"line":1194},[506,4810,1866],{"class":1142},[506,4812,1146],{"class":1136},[506,4814,1871],{"class":1149},[506,4816,4817],{"class":508,"line":1207},[506,4818,1402],{"class":1136},[169,4820,4821,4825,4831,4835,4839],{},[172,4822,4823,1883],{},[114,4824,1882],{},[172,4826,4827,1889,4829,1893],{},[114,4828,1888],{},[114,4830,1892],{},[172,4832,4833,1899],{},[114,4834,1898],{},[172,4836,4837,1905],{},[114,4838,1904],{},[172,4840,4841,1911,4843,1914],{},[114,4842,1910],{},[114,4844,234],{},[11,4846,1917,4847,1921],{},[114,4848,1920],{},[106,4850,4851],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},[114,4852,4853,4865,4877,4885,4891,4895,4899,4903,4907,4911],{"__ignoreMap":112},[506,4854,4855,4857,4859,4861,4863],{"class":508,"line":274},[506,4856,1934],{"class":1933},[506,4858,1937],{"class":1142},[506,4860,1940],{"class":1149},[506,4862,1943],{"class":1149},[506,4864,1946],{"class":1142},[506,4866,4867,4869,4871,4873,4875],{"class":508,"line":262},[506,4868,1951],{"class":1142},[506,4870,1954],{"class":1149},[506,4872,1957],{"class":1136},[506,4874,1960],{"class":1149},[506,4876,1946],{"class":1142},[506,4878,4879,4881,4883],{"class":508,"line":357},[506,4880,1951],{"class":1142},[506,4882,1969],{"class":1149},[506,4884,1946],{"class":1142},[506,4886,4887,4889],{"class":508,"line":1168},[506,4888,1976],{"class":1142},[506,4890,1979],{"class":1149},[506,4892,4893],{"class":508,"line":1181},[506,4894,1984],{"class":1149},[506,4896,4897],{"class":508,"line":1194},[506,4898,1989],{"class":1149},[506,4900,4901],{"class":508,"line":1207},[506,4902,1994],{"class":1149},[506,4904,4905],{"class":508,"line":1220},[506,4906,1999],{"class":1149},[506,4908,4909],{"class":508,"line":1233},[506,4910,2004],{"class":1149},[506,4912,4913],{"class":508,"line":1245},[506,4914,2009],{"class":1149},[303,4916,2013],{"id":2012},[106,4918,4919],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},[114,4920,4921],{"__ignoreMap":112},[506,4922,4923],{"class":508,"line":274},[506,4924,2016],{},[11,4926,2025],{},[106,4928,4929],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},[114,4930,4931,4935,4945,4951,4955,4965,4975,4985,4995,5005,5015,5023,5027,5031],{"__ignoreMap":112},[506,4932,4933],{"class":508,"line":274},[506,4934,1137],{"class":1136},[506,4936,4937,4939,4941,4943],{"class":508,"line":262},[506,4938,1573],{"class":1142},[506,4940,1146],{"class":1136},[506,4942,1578],{"class":1142},[506,4944,1153],{"class":1136},[506,4946,4947,4949],{"class":508,"line":357},[506,4948,1585],{"class":1142},[506,4950,1290],{"class":1136},[506,4952,4953],{"class":508,"line":1168},[506,4954,1296],{"class":1136},[506,4956,4957,4959,4961,4963],{"class":508,"line":1181},[506,4958,2059],{"class":1142},[506,4960,1146],{"class":1136},[506,4962,1163],{"class":1149},[506,4964,1153],{"class":1136},[506,4966,4967,4969,4971,4973],{"class":508,"line":1194},[506,4968,2070],{"class":1142},[506,4970,1146],{"class":1136},[506,4972,1253],{"class":1149},[506,4974,1153],{"class":1136},[506,4976,4977,4979,4981,4983],{"class":508,"line":1207},[506,4978,2081],{"class":1142},[506,4980,1146],{"class":1136},[506,4982,2086],{"class":1149},[506,4984,1153],{"class":1136},[506,4986,4987,4989,4991,4993],{"class":508,"line":1220},[506,4988,2093],{"class":1142},[506,4990,1146],{"class":1136},[506,4992,2098],{"class":1149},[506,4994,1153],{"class":1136},[506,4996,4997,4999,5001,5003],{"class":508,"line":1233},[506,4998,2105],{"class":1142},[506,5000,1146],{"class":1136},[506,5002,1578],{"class":1142},[506,5004,1153],{"class":1136},[506,5006,5007,5009,5011,5013],{"class":508,"line":1245},[506,5008,2116],{"class":1142},[506,5010,1146],{"class":1136},[506,5012,2121],{"class":1149},[506,5014,1153],{"class":1136},[506,5016,5017,5019,5021],{"class":508,"line":1258},[506,5018,2128],{"class":1142},[506,5020,1146],{"class":1136},[506,5022,2133],{"class":1149},[506,5024,5025],{"class":508,"line":1271},[506,5026,1390],{"class":1136},[506,5028,5029],{"class":508,"line":1284},[506,5030,1396],{"class":1136},[506,5032,5033],{"class":508,"line":1293},[506,5034,1402],{"class":1136},[303,5036,2149],{"id":2148},[106,5038,5039],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},[114,5040,5041],{"__ignoreMap":112},[506,5042,5043],{"class":508,"line":274},[506,5044,2152],{},[303,5046,2162],{"id":2161},[106,5048,5049],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},[114,5050,5051],{"__ignoreMap":112},[506,5052,5053],{"class":508,"line":274},[506,5054,2165],{},[11,5056,2174,5057,2178,5059,315],{},[114,5058,2177],{},[114,5060,2181],{},[1785,5062],{},[15,5064,2187],{"id":2186},[303,5066,2191],{"id":2190},[106,5068,5069],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},[114,5070,5071],{"__ignoreMap":112},[506,5072,5073],{"class":508,"line":274},[506,5074,2194],{},[11,5076,2203],{},[106,5078,5079],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},[114,5080,5081,5085,5095,5101,5111,5121,5131,5141,5151,5159,5163,5171],{"__ignoreMap":112},[506,5082,5083],{"class":508,"line":274},[506,5084,1137],{"class":1136},[506,5086,5087,5089,5091,5093],{"class":508,"line":262},[506,5088,1573],{"class":1142},[506,5090,1146],{"class":1136},[506,5092,1578],{"class":1142},[506,5094,1153],{"class":1136},[506,5096,5097,5099],{"class":508,"line":357},[506,5098,1585],{"class":1142},[506,5100,2229],{"class":1136},[506,5102,5103,5105,5107,5109],{"class":508,"line":1168},[506,5104,2234],{"class":1142},[506,5106,1146],{"class":1136},[506,5108,1189],{"class":1149},[506,5110,1153],{"class":1136},[506,5112,5113,5115,5117,5119],{"class":508,"line":1181},[506,5114,2245],{"class":1142},[506,5116,1146],{"class":1136},[506,5118,2250],{"class":1149},[506,5120,1153],{"class":1136},[506,5122,5123,5125,5127,5129],{"class":508,"line":1194},[506,5124,2257],{"class":1142},[506,5126,1146],{"class":1136},[506,5128,2262],{"class":1142},[506,5130,1153],{"class":1136},[506,5132,5133,5135,5137,5139],{"class":508,"line":1207},[506,5134,2269],{"class":1142},[506,5136,1146],{"class":1136},[506,5138,2274],{"class":1142},[506,5140,1153],{"class":1136},[506,5142,5143,5145,5147,5149],{"class":508,"line":1220},[506,5144,2281],{"class":1142},[506,5146,1146],{"class":1136},[506,5148,2286],{"class":1142},[506,5150,1153],{"class":1136},[506,5152,5153,5155,5157],{"class":508,"line":1233},[506,5154,2293],{"class":1142},[506,5156,1146],{"class":1136},[506,5158,1629],{"class":1149},[506,5160,5161],{"class":508,"line":1245},[506,5162,2302],{"class":1136},[506,5164,5165,5167,5169],{"class":508,"line":1258},[506,5166,1600],{"class":1142},[506,5168,1146],{"class":1136},[506,5170,2311],{"class":1149},[506,5172,5173],{"class":508,"line":1271},[506,5174,1402],{"class":1136},[106,5176,5177],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},[114,5178,5179,5195],{"__ignoreMap":112},[506,5180,5181,5183,5185,5187,5189,5191,5193],{"class":508,"line":274},[506,5182,1934],{"class":1933},[506,5184,1937],{"class":1142},[506,5186,1940],{"class":1149},[506,5188,2331],{"class":1149},[506,5190,2334],{"class":1136},[506,5192,2337],{"class":1149},[506,5194,1946],{"class":1142},[506,5196,5197,5199,5201,5203],{"class":508,"line":262},[506,5198,1951],{"class":1142},[506,5200,1954],{"class":1149},[506,5202,1957],{"class":1136},[506,5204,2350],{"class":1149},[1785,5206],{},[15,5208,2356],{"id":2355},[106,5210,5211],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},[114,5212,5213],{"__ignoreMap":112},[506,5214,5215],{"class":508,"line":274},[506,5216,2359],{},[11,5218,2368],{},[11,5220,1805],{},[106,5222,5223],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},[114,5224,5225,5229,5239,5247],{"__ignoreMap":112},[506,5226,5227],{"class":508,"line":274},[506,5228,1137],{"class":1136},[506,5230,5231,5233,5235,5237],{"class":508,"line":262},[506,5232,2384],{"class":1142},[506,5234,1146],{"class":1136},[506,5236,1163],{"class":1149},[506,5238,1153],{"class":1136},[506,5240,5241,5243,5245],{"class":508,"line":357},[506,5242,2395],{"class":1142},[506,5244,1146],{"class":1136},[506,5246,2400],{"class":1149},[506,5248,5249],{"class":508,"line":1168},[506,5250,1402],{"class":1136},[11,5252,2407],{},[106,5254,5255],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},[114,5256,5257,5261,5271,5277,5287,5297,5307,5317,5323,5327,5337,5347,5357,5367,5377,5387,5395,5399,5403,5407],{"__ignoreMap":112},[506,5258,5259],{"class":508,"line":274},[506,5260,1137],{"class":1136},[506,5262,5263,5265,5267,5269],{"class":508,"line":262},[506,5264,1573],{"class":1142},[506,5266,1146],{"class":1136},[506,5268,1578],{"class":1142},[506,5270,1153],{"class":1136},[506,5272,5273,5275],{"class":508,"line":357},[506,5274,1585],{"class":1142},[506,5276,2229],{"class":1136},[506,5278,5279,5281,5283,5285],{"class":508,"line":1168},[506,5280,2437],{"class":1142},[506,5282,1146],{"class":1136},[506,5284,2442],{"class":1149},[506,5286,1153],{"class":1136},[506,5288,5289,5291,5293,5295],{"class":508,"line":1181},[506,5290,2449],{"class":1142},[506,5292,1146],{"class":1136},[506,5294,1228],{"class":1142},[506,5296,1153],{"class":1136},[506,5298,5299,5301,5303,5305],{"class":508,"line":1194},[506,5300,2460],{"class":1142},[506,5302,1146],{"class":1136},[506,5304,1215],{"class":1142},[506,5306,1153],{"class":1136},[506,5308,5309,5311,5313,5315],{"class":508,"line":1207},[506,5310,2471],{"class":1142},[506,5312,1146],{"class":1136},[506,5314,781],{"class":1142},[506,5316,1153],{"class":1136},[506,5318,5319,5321],{"class":508,"line":1220},[506,5320,2482],{"class":1142},[506,5322,1290],{"class":1136},[506,5324,5325],{"class":508,"line":1233},[506,5326,2489],{"class":1136},[506,5328,5329,5331,5333,5335],{"class":508,"line":1245},[506,5330,2494],{"class":1142},[506,5332,1146],{"class":1136},[506,5334,2442],{"class":1149},[506,5336,1153],{"class":1136},[506,5338,5339,5341,5343,5345],{"class":508,"line":1258},[506,5340,2505],{"class":1142},[506,5342,1146],{"class":1136},[506,5344,2510],{"class":1149},[506,5346,1153],{"class":1136},[506,5348,5349,5351,5353,5355],{"class":508,"line":1271},[506,5350,2517],{"class":1142},[506,5352,1146],{"class":1136},[506,5354,2522],{"class":1149},[506,5356,1153],{"class":1136},[506,5358,5359,5361,5363,5365],{"class":508,"line":1284},[506,5360,2529],{"class":1142},[506,5362,1146],{"class":1136},[506,5364,2534],{"class":1149},[506,5366,1153],{"class":1136},[506,5368,5369,5371,5373,5375],{"class":508,"line":1293},[506,5370,2541],{"class":1142},[506,5372,1146],{"class":1136},[506,5374,2546],{"class":1149},[506,5376,1153],{"class":1136},[506,5378,5379,5381,5383,5385],{"class":508,"line":1299},[506,5380,2553],{"class":1142},[506,5382,1146],{"class":1136},[506,5384,2558],{"class":1149},[506,5386,1153],{"class":1136},[506,5388,5389,5391,5393],{"class":508,"line":1311},[506,5390,2565],{"class":1142},[506,5392,1146],{"class":1136},[506,5394,2570],{"class":1149},[506,5396,5397],{"class":508,"line":1324},[506,5398,2575],{"class":1136},[506,5400,5401],{"class":508,"line":1337},[506,5402,2580],{"class":1136},[506,5404,5405],{"class":508,"line":1350},[506,5406,2585],{"class":1136},[506,5408,5409],{"class":508,"line":1363},[506,5410,1402],{"class":1136},[1785,5412],{},[15,5414,2595],{"id":2594},[11,5416,2598,5417,936,5419,936,5421,2608],{},[114,5418,2601],{},[114,5420,2604],{},[114,5422,2607],{},[106,5424,5425],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},[114,5426,5427],{"__ignoreMap":112},[506,5428,5429],{"class":508,"line":274},[506,5430,2611],{},[11,5432,1805],{},[106,5434,5435],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},[114,5436,5437,5441,5451,5459],{"__ignoreMap":112},[506,5438,5439],{"class":508,"line":274},[506,5440,1137],{"class":1136},[506,5442,5443,5445,5447,5449],{"class":508,"line":262},[506,5444,2633],{"class":1142},[506,5446,1146],{"class":1136},[506,5448,2638],{"class":1149},[506,5450,1153],{"class":1136},[506,5452,5453,5455,5457],{"class":508,"line":357},[506,5454,2645],{"class":1142},[506,5456,1146],{"class":1136},[506,5458,2650],{"class":1149},[506,5460,5461],{"class":508,"line":1168},[506,5462,1402],{"class":1136},[11,5464,2407],{},[106,5466,5467],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},[114,5468,5469,5473,5483,5489,5499,5509,5519,5525,5529,5539,5549,5559,5569,5579,5589,5599,5609,5619,5627,5631,5635,5639],{"__ignoreMap":112},[506,5470,5471],{"class":508,"line":274},[506,5472,1137],{"class":1136},[506,5474,5475,5477,5479,5481],{"class":508,"line":262},[506,5476,1573],{"class":1142},[506,5478,1146],{"class":1136},[506,5480,1578],{"class":1142},[506,5482,1153],{"class":1136},[506,5484,5485,5487],{"class":508,"line":357},[506,5486,1585],{"class":1142},[506,5488,2229],{"class":1136},[506,5490,5491,5493,5495,5497],{"class":508,"line":1168},[506,5492,2686],{"class":1142},[506,5494,1146],{"class":1136},[506,5496,1266],{"class":1142},[506,5498,1153],{"class":1136},[506,5500,5501,5503,5505,5507],{"class":508,"line":1181},[506,5502,2697],{"class":1142},[506,5504,1146],{"class":1136},[506,5506,2702],{"class":1149},[506,5508,1153],{"class":1136},[506,5510,5511,5513,5515,5517],{"class":508,"line":1194},[506,5512,2709],{"class":1142},[506,5514,1146],{"class":1136},[506,5516,2714],{"class":1149},[506,5518,1153],{"class":1136},[506,5520,5521,5523],{"class":508,"line":1207},[506,5522,2721],{"class":1142},[506,5524,1290],{"class":1136},[506,5526,5527],{"class":508,"line":1220},[506,5528,2489],{"class":1136},[506,5530,5531,5533,5535,5537],{"class":508,"line":1233},[506,5532,2732],{"class":1142},[506,5534,1146],{"class":1136},[506,5536,2638],{"class":1149},[506,5538,1153],{"class":1136},[506,5540,5541,5543,5545,5547],{"class":508,"line":1245},[506,5542,2743],{"class":1142},[506,5544,1146],{"class":1136},[506,5546,2748],{"class":1149},[506,5548,1153],{"class":1136},[506,5550,5551,5553,5555,5557],{"class":508,"line":1258},[506,5552,2755],{"class":1142},[506,5554,1146],{"class":1136},[506,5556,1319],{"class":1149},[506,5558,1153],{"class":1136},[506,5560,5561,5563,5565,5567],{"class":508,"line":1271},[506,5562,2766],{"class":1142},[506,5564,1146],{"class":1136},[506,5566,2771],{"class":1149},[506,5568,1153],{"class":1136},[506,5570,5571,5573,5575,5577],{"class":508,"line":1284},[506,5572,2778],{"class":1142},[506,5574,1146],{"class":1136},[506,5576,2783],{"class":1149},[506,5578,1153],{"class":1136},[506,5580,5581,5583,5585,5587],{"class":508,"line":1293},[506,5582,2790],{"class":1142},[506,5584,1146],{"class":1136},[506,5586,2795],{"class":1142},[506,5588,1153],{"class":1136},[506,5590,5591,5593,5595,5597],{"class":508,"line":1299},[506,5592,2802],{"class":1142},[506,5594,1146],{"class":1136},[506,5596,2807],{"class":1142},[506,5598,1153],{"class":1136},[506,5600,5601,5603,5605,5607],{"class":508,"line":1311},[506,5602,2814],{"class":1142},[506,5604,1146],{"class":1136},[506,5606,1266],{"class":1142},[506,5608,1153],{"class":1136},[506,5610,5611,5613,5615,5617],{"class":508,"line":1324},[506,5612,2553],{"class":1142},[506,5614,1146],{"class":1136},[506,5616,2829],{"class":1149},[506,5618,1153],{"class":1136},[506,5620,5621,5623,5625],{"class":508,"line":1337},[506,5622,2836],{"class":1142},[506,5624,1146],{"class":1136},[506,5626,2841],{"class":1149},[506,5628,5629],{"class":508,"line":1350},[506,5630,2575],{"class":1136},[506,5632,5633],{"class":508,"line":1363},[506,5634,2580],{"class":1136},[506,5636,5637],{"class":508,"line":1376},[506,5638,2585],{"class":1136},[506,5640,5641],{"class":508,"line":1387},[506,5642,1402],{"class":1136},[1785,5644],{},[15,5646,909],{"id":908},[303,5648,2865],{"id":2864},[106,5650,5651],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},[114,5652,5653],{"__ignoreMap":112},[506,5654,5655],{"class":508,"line":274},[506,5656,2868],{},[11,5658,2877,5659,2881],{},[114,5660,2880],{},[106,5662,5663],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},[114,5664,5665,5669,5679,5685,5691,5695,5705,5715,5725,5735,5745,5755,5765,5775,5785,5795,5805,5809,5813,5823,5833,5843,5851,5855],{"__ignoreMap":112},[506,5666,5667],{"class":508,"line":274},[506,5668,1137],{"class":1136},[506,5670,5671,5673,5675,5677],{"class":508,"line":262},[506,5672,1573],{"class":1142},[506,5674,1146],{"class":1136},[506,5676,1578],{"class":1142},[506,5678,1153],{"class":1136},[506,5680,5681,5683],{"class":508,"line":357},[506,5682,1585],{"class":1142},[506,5684,2229],{"class":1136},[506,5686,5687,5689],{"class":508,"line":1168},[506,5688,2911],{"class":1142},[506,5690,1290],{"class":1136},[506,5692,5693],{"class":508,"line":1181},[506,5694,2489],{"class":1136},[506,5696,5697,5699,5701,5703],{"class":508,"line":1194},[506,5698,2922],{"class":1142},[506,5700,1146],{"class":1136},[506,5702,1150],{"class":1149},[506,5704,1153],{"class":1136},[506,5706,5707,5709,5711,5713],{"class":508,"line":1207},[506,5708,2933],{"class":1142},[506,5710,1146],{"class":1136},[506,5712,1163],{"class":1149},[506,5714,1153],{"class":1136},[506,5716,5717,5719,5721,5723],{"class":508,"line":1220},[506,5718,2944],{"class":1142},[506,5720,1146],{"class":1136},[506,5722,2949],{"class":1149},[506,5724,1153],{"class":1136},[506,5726,5727,5729,5731,5733],{"class":508,"line":1233},[506,5728,2956],{"class":1142},[506,5730,1146],{"class":1136},[506,5732,2961],{"class":1149},[506,5734,1153],{"class":1136},[506,5736,5737,5739,5741,5743],{"class":508,"line":1245},[506,5738,2494],{"class":1142},[506,5740,1146],{"class":1136},[506,5742,1202],{"class":1149},[506,5744,1153],{"class":1136},[506,5746,5747,5749,5751,5753],{"class":508,"line":1258},[506,5748,2978],{"class":1142},[506,5750,1146],{"class":1136},[506,5752,1215],{"class":1142},[506,5754,1153],{"class":1136},[506,5756,5757,5759,5761,5763],{"class":508,"line":1271},[506,5758,2989],{"class":1142},[506,5760,1146],{"class":1136},[506,5762,1228],{"class":1142},[506,5764,1153],{"class":1136},[506,5766,5767,5769,5771,5773],{"class":508,"line":1284},[506,5768,3000],{"class":1142},[506,5770,1146],{"class":1136},[506,5772,70],{"class":1142},[506,5774,1153],{"class":1136},[506,5776,5777,5779,5781,5783],{"class":508,"line":1293},[506,5778,3011],{"class":1142},[506,5780,1146],{"class":1136},[506,5782,1266],{"class":1142},[506,5784,1153],{"class":1136},[506,5786,5787,5789,5791,5793],{"class":508,"line":1299},[506,5788,3022],{"class":1142},[506,5790,1146],{"class":1136},[506,5792,1279],{"class":1149},[506,5794,1153],{"class":1136},[506,5796,5797,5799,5801,5803],{"class":508,"line":1311},[506,5798,3033],{"class":1142},[506,5800,3036],{"class":1136},[506,5802,3039],{"class":1591},[506,5804,3042],{"class":1136},[506,5806,5807],{"class":508,"line":1324},[506,5808,2575],{"class":1136},[506,5810,5811],{"class":508,"line":1337},[506,5812,3051],{"class":1136},[506,5814,5815,5817,5819,5821],{"class":508,"line":1350},[506,5816,3056],{"class":1142},[506,5818,1146],{"class":1136},[506,5820,3061],{"class":1142},[506,5822,1153],{"class":1136},[506,5824,5825,5827,5829,5831],{"class":508,"line":1363},[506,5826,3068],{"class":1142},[506,5828,1146],{"class":1136},[506,5830,70],{"class":1142},[506,5832,1153],{"class":1136},[506,5834,5835,5837,5839,5841],{"class":508,"line":1376},[506,5836,3079],{"class":1142},[506,5838,1146],{"class":1136},[506,5840,1228],{"class":1142},[506,5842,1153],{"class":1136},[506,5844,5845,5847,5849],{"class":508,"line":1387},[506,5846,3090],{"class":1142},[506,5848,1146],{"class":1136},[506,5850,3095],{"class":1142},[506,5852,5853],{"class":508,"line":1393},[506,5854,2585],{"class":1136},[506,5856,5857],{"class":508,"line":1399},[506,5858,1402],{"class":1136},[303,5860,3107],{"id":3106},[106,5862,5863],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},[114,5864,5865],{"__ignoreMap":112},[506,5866,5867],{"class":508,"line":274},[506,5868,3110],{},[303,5870,3120],{"id":3119},[106,5872,5873],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},[114,5874,5875],{"__ignoreMap":112},[506,5876,5877],{"class":508,"line":274},[506,5878,3123],{},[11,5880,3132],{},[1785,5882],{},[15,5884,3138],{"id":3137},[38,5886,5887,5897],{},[41,5888,5889],{},[44,5890,5891,5893,5895],{},[47,5892,3147],{},[47,5894,3150],{},[47,5896,3153],{},[60,5898,5899,5915,5929,5941,5955],{},[44,5900,5901,5905,5909],{},[65,5902,5903],{},[114,5904,3162],{},[65,5906,5907],{},[114,5908,3167],{},[65,5910,5911,3172,5913,3175],{},[114,5912,1578],{},[114,5914,1266],{},[44,5916,5917,5921,5925],{},[65,5918,5919],{},[114,5920,3182],{},[65,5922,5923],{},[114,5924,3187],{},[65,5926,3190,5927,3193],{},[114,5928,1617],{},[44,5930,5931,5935,5939],{},[65,5932,5933],{},[114,5934,1692],{},[65,5936,5937],{},[114,5938,3204],{},[65,5940,3207],{},[44,5942,5943,5947,5951],{},[65,5944,5945],{},[114,5946,1689],{},[65,5948,5949],{},[114,5950,3204],{},[65,5952,3220,5953,424],{},[114,5954,3223],{},[44,5956,5957,5961,5965],{},[65,5958,5959],{},[114,5960,3230],{},[65,5962,5963],{},[114,5964,3235],{},[65,5966,3238],{},[674,5968,3241],{},{"title":112,"searchDepth":262,"depth":262,"links":5970},[5971,5972,5973,5974,5980,5983,5984,5985,5990],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":5975},[5976,5977,5978,5979],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":5981},[5982],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":5986},[5987,5988,5989],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},{},{"title":1041,"description":3264}]