[{"data":1,"prerenderedAt":3757},["ShallowReactive",2],{"seo-resume-interview-system-design-interview-framework":3,"content-query-W0C3UGiWYx":2082},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"category":5,"categoryLabel":10,"publishedAt":11,"updatedAt":11,"author":12,"tags":15,"featured":21,"body":22,"_type":2076,"_id":2077,"_source":2078,"_file":2079,"_stem":2080,"_extension":2081},"\u002Fresume-interview\u002Fsystem-design-interview-framework","resume-interview",false,"","How to Ace the Technical System Design Interview: A Practical Engineering Framework","A step-by-step architectural framework for software engineers tackling system design interviews, covering requirement scoping, back-of-the-envelope capacity calculations, component design, and failure modes.","Resume & Interview","2026-10-26T12:00:00Z",{"name":13,"role":14},"Editorial Staff","Engineering Education Team",[16,17,18,19,20],"System Design","Technical Interviews","Software Architecture","Scalability","Interview Prep",true,{"type":23,"children":24,"toc":2045},"root",[25,33,38,43,47,54,59,69,76,96,101,108,113,138,144,149,209,212,218,223,229,234,242,248,267,275,280,288,293,301,311,317,329,337,346,352,357,365,370,373,379,384,390,429,435,575,578,584,594,600,608,611,617,622,628,633,788,796,804,848,854,1499,1502,1508,1513,1519,1524,1529,1619,1625,1630,1658,1664,1669,1681,1714,1720,1731,1736,1744,1756,1759,1765,1784,1838,1841,1847,1852,1936,1939,1945,2039],{"type":26,"tag":27,"props":28,"children":29},"element","p",{},[30],{"type":31,"value":32},"text","The technical system design interview has become the definitive evaluation mechanism across technology companies for mid-level, senior, and staff software engineering roles. While coding rounds evaluate algorithmic proficiency and local syntax correctness in an isolated 40-line snippet, system design interviews simulate the real-world responsibilities of a senior technical lead.",{"type":26,"tag":27,"props":34,"children":35},{},[36],{"type":31,"value":37},"In this 45-to-60 minute collaborative session, interviewers do not expect candidates to recall an arbitrary \"correct answer.\" Instead, they evaluate your capacity to navigate ambiguous product requirements, decompose complex systems into decoupled services, conduct quantitative capacity estimations, make principled trade-offs, and design resilient distributed architectures that withstand real-world failure modes.",{"type":26,"tag":27,"props":39,"children":40},{},[41],{"type":31,"value":42},"Without a disciplined methodology, even experienced developers often struggle—either freezing under the open-ended nature of the prompt, diving prematurely into low-level database schemas, or rattling off cloud buzzwords without architectural cohesion. This guide provides a repeatable 5-step roadmap, back-of-the-envelope calculation formulas, a complete end-to-end design walkthrough of a distributed notification engine, resilience engineering patterns, and concrete communication strategies.",{"type":26,"tag":44,"props":45,"children":46},"hr",{},[],{"type":26,"tag":48,"props":49,"children":51},"h2",{"id":50},"_1-the-45-minute-system-design-roadmap",[52],{"type":31,"value":53},"1. The 45-Minute System Design Roadmap",{"type":26,"tag":27,"props":55,"children":56},{},[57],{"type":31,"value":58},"Treat the system design interview like leading a technical architecture review meeting with your engineering colleagues. Manage your pacing deliberately across five distinct phases:",{"type":26,"tag":60,"props":61,"children":63},"pre",{"code":62},"┌────────────────────────────────────────────────────────────────────────┐\n│               45-MINUTE SYSTEM DESIGN INTERVIEW TIMELINE               │\n├───────────────┬────────────────┬──────────────────────┬────────────────┤\n│ Minutes 0–5   │ Minutes 5–10   │ Minutes 10–25        │ Minutes 25–40  │\n│ Phase 1:      │ Phase 2:       │ Phase 3:             │ Phase 4:       │\n│ Scoping &     │ Back-of-the-   │ High-Level Design    │ Deep Dive,     │\n│ Requirements  │ Envelope Math  │ & API Contracts      │ Resilience &   │\n│               │                │                      │ Bottlenecks    │\n├───────────────┴────────────────┴──────────────────────┴────────────────┤\n│ Minutes 40–45: Phase 5: Failure Modes, Edge Cases, & Wrap-Up           │\n└────────────────────────────────────────────────────────────────────────┘\n",[64],{"type":26,"tag":65,"props":66,"children":67},"code",{"__ignoreMap":7},[68],{"type":31,"value":62},{"type":26,"tag":70,"props":71,"children":73},"h3",{"id":72},"phase-1-clarifying-requirements-scoping-minutes-05",[74],{"type":31,"value":75},"Phase 1: Clarifying Requirements & Scoping (Minutes 0–5)",{"type":26,"tag":27,"props":77,"children":78},{},[79,81,87,89,94],{"type":31,"value":80},"The most common failure mode in system design interviews is assuming requirements rather than scoping them collaboratively. Interview prompts are intentionally vague (e.g., ",{"type":26,"tag":82,"props":83,"children":84},"em",{},[85],{"type":31,"value":86},"\"Design WhatsApp\"",{"type":31,"value":88}," or ",{"type":26,"tag":82,"props":90,"children":91},{},[92],{"type":31,"value":93},"\"Design a Notification Service\"",{"type":31,"value":95},").",{"type":26,"tag":27,"props":97,"children":98},{},[99],{"type":31,"value":100},"Your first task is to narrow the problem to a manageable, agreed-upon scope by splitting requirements into two categories:",{"type":26,"tag":102,"props":103,"children":105},"h4",{"id":104},"_1-functional-requirements-what-the-system-does",[106],{"type":31,"value":107},"1. Functional Requirements (What the system does)",{"type":26,"tag":27,"props":109,"children":110},{},[111],{"type":31,"value":112},"Identify the core 2 to 3 user journeys you will solve in depth:",{"type":26,"tag":114,"props":115,"children":116},"ul",{},[117,123,128,133],{"type":26,"tag":118,"props":119,"children":120},"li",{},[121],{"type":31,"value":122},"Can clients submit single notifications and batch broadcasts?",{"type":26,"tag":118,"props":124,"children":125},{},[126],{"type":31,"value":127},"What delivery channels must be supported (Email, SMS, Mobile Push)?",{"type":26,"tag":118,"props":129,"children":130},{},[131],{"type":31,"value":132},"Can recipients configure communication preferences, quiet hours, and opt-outs?",{"type":26,"tag":118,"props":134,"children":135},{},[136],{"type":31,"value":137},"Do users need to query real-time delivery status, or is dispatch asynchronous?",{"type":26,"tag":102,"props":139,"children":141},{"id":140},"_2-non-functional-requirements-how-the-system-performs",[142],{"type":31,"value":143},"2. Non-Functional Requirements (How the system performs)",{"type":26,"tag":27,"props":145,"children":146},{},[147],{"type":31,"value":148},"Agree on the engineering constraints and service level agreements (SLAs):",{"type":26,"tag":114,"props":150,"children":151},{},[152,163,189,199],{"type":26,"tag":118,"props":153,"children":154},{},[155,161],{"type":26,"tag":156,"props":157,"children":158},"strong",{},[159],{"type":31,"value":160},"Scale:",{"type":31,"value":162}," What is the expected Daily Active User (DAU) base and average request volume?",{"type":26,"tag":118,"props":164,"children":165},{},[166,171,173,179,181,187],{"type":26,"tag":156,"props":167,"children":168},{},[169],{"type":31,"value":170},"Latency Target:",{"type":31,"value":172}," What is the acceptable p95 and p99 latency threshold? (e.g., ",{"type":26,"tag":65,"props":174,"children":176},{"className":175},[],[177],{"type":31,"value":178},"\u003C 100ms",{"type":31,"value":180}," acknowledgment for the ingestion API, ",{"type":26,"tag":65,"props":182,"children":184},{"className":183},[],[185],{"type":31,"value":186},"\u003C 5s",{"type":31,"value":188}," end-to-end delivery for transactional alerts).",{"type":26,"tag":118,"props":190,"children":191},{},[192,197],{"type":26,"tag":156,"props":193,"children":194},{},[195],{"type":31,"value":196},"Availability vs. Consistency:",{"type":31,"value":198}," Does the system favor high availability (99.99% uptime, accepting eventual delivery) or strict linearizability?",{"type":26,"tag":118,"props":200,"children":201},{},[202,207],{"type":26,"tag":156,"props":203,"children":204},{},[205],{"type":31,"value":206},"Durability & Idempotency:",{"type":31,"value":208}," Can messages ever be lost during power failures? What mechanisms prevent duplicate transmissions when network timeouts cause client retries?",{"type":26,"tag":44,"props":210,"children":211},{},[],{"type":26,"tag":48,"props":213,"children":215},{"id":214},"_2-phase-2-back-of-the-envelope-capacity-calculations-minutes-510",[216],{"type":31,"value":217},"2. Phase 2: Back-of-the-Envelope Capacity Calculations (Minutes 5–10)",{"type":26,"tag":27,"props":219,"children":220},{},[221],{"type":31,"value":222},"Quantitative estimates demonstrate engineering rigor. They transform vague assumptions into hard boundaries that dictate whether your service needs a single Redis instance, a sharded PostgreSQL cluster, or an append-only distributed event log.",{"type":26,"tag":70,"props":224,"children":226},{"id":225},"latency-numbers-every-software-engineer-must-memorize",[227],{"type":31,"value":228},"Latency Numbers Every Software Engineer Must Memorize",{"type":26,"tag":27,"props":230,"children":231},{},[232],{"type":31,"value":233},"Computer scientist Jeff Dean published benchmark latencies that serve as the universal standard for back-of-the-envelope system reasoning:",{"type":26,"tag":60,"props":235,"children":237},{"code":236},"┌───────────────────────────────────────────────┬────────────────┐\n│ Operation                                     │ Latency        │\n├───────────────────────────────────────────────┼────────────────┤\n│ L1 CPU Cache Reference                        │ 0.5 ns         │\n│ Branch Misprediction                          │ 5 ns           │\n│ L2 CPU Cache Reference                        │ 7 ns           │\n│ Main Memory (RAM) Reference                   │ 100 ns         │\n│ Read 1 MB sequentially from Memory            │ 250,000 ns     │\n│ Read 1 MB sequentially from NVMe SSD          │ 1,000,000 ns   │\n│ Round trip within same Datacenter             │ 500,000 ns     │\n│ Round trip across Continental US \u002F Internet   │ 100,000,000 ns │\n└───────────────────────────────────────────────┴────────────────┘\n",[238],{"type":26,"tag":65,"props":239,"children":240},{"__ignoreMap":7},[241],{"type":31,"value":236},{"type":26,"tag":70,"props":243,"children":245},{"id":244},"throughput-estimations-converting-dau-to-qps",[246],{"type":31,"value":247},"Throughput Estimations: Converting DAU to QPS",{"type":26,"tag":27,"props":249,"children":250},{},[251,253,258,260,265],{"type":31,"value":252},"Assume the interviewer specifies ",{"type":26,"tag":156,"props":254,"children":255},{},[256],{"type":31,"value":257},"50 million Daily Active Users (DAU)",{"type":31,"value":259},", generating an average of ",{"type":26,"tag":156,"props":261,"children":262},{},[263],{"type":31,"value":264},"4 notifications per user daily",{"type":31,"value":266},":",{"type":26,"tag":60,"props":268,"children":270},{"code":269},"Total Daily Volume = 50,000,000 users × 4 notifications = 200,000,000 notifications\u002Fday\n",[271],{"type":26,"tag":65,"props":272,"children":273},{"__ignoreMap":7},[274],{"type":31,"value":269},{"type":26,"tag":27,"props":276,"children":277},{},[278],{"type":31,"value":279},"There are 86,400 seconds in a day. For clean mental math during interviews, approximate this to 100,000 seconds:",{"type":26,"tag":60,"props":281,"children":283},{"code":282},"Average Ingestion QPS = 200,000,000 ÷ 86,400 ≈ 2,315 QPS\n",[284],{"type":26,"tag":65,"props":285,"children":286},{"__ignoreMap":7},[287],{"type":31,"value":282},{"type":26,"tag":27,"props":289,"children":290},{},[291],{"type":31,"value":292},"Traffic is never distributed evenly throughout a 24-hour cycle. Marketing campaigns, morning alerts, and product releases produce burst traffic. Apply a standard peak multiplier of 2.5×:",{"type":26,"tag":60,"props":294,"children":296},{"code":295},"Peak Ingestion QPS = 2,315 QPS × 2.5 ≈ 5,800 QPS\n",[297],{"type":26,"tag":65,"props":298,"children":299},{"__ignoreMap":7},[300],{"type":31,"value":295},{"type":26,"tag":27,"props":302,"children":303},{},[304,309],{"type":26,"tag":156,"props":305,"children":306},{},[307],{"type":31,"value":308},"Architectural Takeaway:",{"type":31,"value":310}," A sustained load of 5,800 peak writes per second cannot safely rely on synchronous direct writes to a single relational database without queuing; it demands a pool of stateless web application servers fronted by a reverse-proxy load balancer and an asynchronous message bus.",{"type":26,"tag":70,"props":312,"children":314},{"id":313},"storage-estimations-over-a-5-year-horizon",[315],{"type":31,"value":316},"Storage Estimations Over a 5-Year Horizon",{"type":26,"tag":27,"props":318,"children":319},{},[320,322,327],{"type":31,"value":321},"Assume each notification metadata record (message ID, recipient UUID, channel enum, content payload, status, and audit timestamps) consumes ",{"type":26,"tag":156,"props":323,"children":324},{},[325],{"type":31,"value":326},"1 KB",{"type":31,"value":328}," of serialized storage:",{"type":26,"tag":60,"props":330,"children":332},{"code":331},"Daily Storage = 200,000,000 records × 1 KB = 200 GB\u002Fday\nAnnual Storage = 200 GB × 365 ≈ 73 TB\u002Fyear\n5-Year Storage = 73 TB × 5 ≈ 365 TB\n",[333],{"type":26,"tag":65,"props":334,"children":335},{"__ignoreMap":7},[336],{"type":31,"value":331},{"type":26,"tag":27,"props":338,"children":339},{},[340,344],{"type":26,"tag":156,"props":341,"children":342},{},[343],{"type":31,"value":308},{"type":31,"value":345}," Storing 365 TB in a single relational database instance exceeds practical operational limits for backups, index rebuilds, and disk I\u002FO. We must establish a two-tier storage model: an active relational database holding the most recent 30 days of transactional logs, with historical records archived to distributed object storage (e.g., Amazon S3 or Google Cloud Storage) partitioned by date.",{"type":26,"tag":70,"props":347,"children":349},{"id":348},"memory-caching-estimations-the-8020-pareto-rule",[350],{"type":31,"value":351},"Memory Caching Estimations (The 80\u002F20 Pareto Rule)",{"type":26,"tag":27,"props":353,"children":354},{},[355],{"type":31,"value":356},"If 20% of users account for 80% of read and status check volume, we cache their user preferences and active notification states in memory:",{"type":26,"tag":60,"props":358,"children":360},{"code":359},"Daily Read Volume = 200 GB\nActive Cache Working Set = 200 GB × 0.20 = 40 GB of RAM\n",[361],{"type":26,"tag":65,"props":362,"children":363},{"__ignoreMap":7},[364],{"type":31,"value":359},{"type":26,"tag":27,"props":366,"children":367},{},[368],{"type":31,"value":369},"A modern 64 GB or 128 GB in-memory Redis cluster easily accommodates this working set with substantial headroom for key indexing and replication buffers.",{"type":26,"tag":44,"props":371,"children":372},{},[],{"type":26,"tag":48,"props":374,"children":376},{"id":375},"_3-essential-architectural-building-blocks",[377],{"type":31,"value":378},"3. Essential Architectural Building Blocks",{"type":26,"tag":27,"props":380,"children":381},{},[382],{"type":31,"value":383},"Before designing custom domain logic, articulate the standard distributed systems primitives you will deploy:",{"type":26,"tag":70,"props":385,"children":387},{"id":386},"load-balancing-layer-4-vs-layer-7",[388],{"type":31,"value":389},"Load Balancing: Layer 4 vs. Layer 7",{"type":26,"tag":114,"props":391,"children":392},{},[393,403],{"type":26,"tag":118,"props":394,"children":395},{},[396,401],{"type":26,"tag":156,"props":397,"children":398},{},[399],{"type":31,"value":400},"Layer 4 (Transport \u002F TCP):",{"type":31,"value":402}," Distributes traffic based on source\u002Fdestination IP and port without parsing the application protocol. Highly performant with minimal memory consumption.",{"type":26,"tag":118,"props":404,"children":405},{},[406,411,413,419,421,427],{"type":26,"tag":156,"props":407,"children":408},{},[409],{"type":31,"value":410},"Layer 7 (Application \u002F HTTP):",{"type":31,"value":412}," Parses HTTP headers, cookies, and URI paths. Enables intelligent routing—such as routing ",{"type":26,"tag":65,"props":414,"children":416},{"className":415},[],[417],{"type":31,"value":418},"\u002Fapi\u002Fv1\u002Fnotifications\u002Fdispatch",{"type":31,"value":420}," to high-throughput queue workers while routing ",{"type":26,"tag":65,"props":422,"children":424},{"className":423},[],[425],{"type":31,"value":426},"\u002Fapi\u002Fv1\u002Fusers\u002Fpreferences",{"type":31,"value":428}," to CRUD cache services.",{"type":26,"tag":70,"props":430,"children":432},{"id":431},"caching-strategies-compared",[433],{"type":31,"value":434},"Caching Strategies Compared",{"type":26,"tag":436,"props":437,"children":438},"table",{},[439,474],{"type":26,"tag":440,"props":441,"children":442},"thead",{},[443],{"type":26,"tag":444,"props":445,"children":446},"tr",{},[447,454,459,464,469],{"type":26,"tag":448,"props":449,"children":451},"th",{"align":450},"left",[452],{"type":31,"value":453},"Strategy",{"type":26,"tag":448,"props":455,"children":456},{"align":450},[457],{"type":31,"value":458},"Read Mechanism",{"type":26,"tag":448,"props":460,"children":461},{"align":450},[462],{"type":31,"value":463},"Write Mechanism",{"type":26,"tag":448,"props":465,"children":466},{"align":450},[467],{"type":31,"value":468},"Consistency Guarantee",{"type":26,"tag":448,"props":470,"children":471},{"align":450},[472],{"type":31,"value":473},"Optimal Use Case",{"type":26,"tag":475,"props":476,"children":477},"tbody",{},[478,512,543],{"type":26,"tag":444,"props":479,"children":480},{},[481,492,497,502,507],{"type":26,"tag":482,"props":483,"children":484},"td",{"align":450},[485,490],{"type":26,"tag":156,"props":486,"children":487},{},[488],{"type":31,"value":489},"Cache-Aside",{"type":31,"value":491}," (Lazy Loading)",{"type":26,"tag":482,"props":493,"children":494},{"align":450},[495],{"type":31,"value":496},"Check cache first; on miss, query database and populate cache",{"type":26,"tag":482,"props":498,"children":499},{"align":450},[500],{"type":31,"value":501},"Write directly to database; invalidate or delete cache key",{"type":26,"tag":482,"props":503,"children":504},{"align":450},[505],{"type":31,"value":506},"Eventual consistency; brief staleness window",{"type":26,"tag":482,"props":508,"children":509},{"align":450},[510],{"type":31,"value":511},"Read-heavy workloads with irregular access patterns",{"type":26,"tag":444,"props":513,"children":514},{},[515,523,528,533,538],{"type":26,"tag":482,"props":516,"children":517},{"align":450},[518],{"type":26,"tag":156,"props":519,"children":520},{},[521],{"type":31,"value":522},"Write-Through",{"type":26,"tag":482,"props":524,"children":525},{"align":450},[526],{"type":31,"value":527},"Read directly from cache",{"type":26,"tag":482,"props":529,"children":530},{"align":450},[531],{"type":31,"value":532},"Application writes to cache; cache synchronously writes to DB",{"type":26,"tag":482,"props":534,"children":535},{"align":450},[536],{"type":31,"value":537},"Strong consistency between cache and DB; higher write latency",{"type":26,"tag":482,"props":539,"children":540},{"align":450},[541],{"type":31,"value":542},"Financial accounts, critical inventory states",{"type":26,"tag":444,"props":544,"children":545},{},[546,556,560,565,570],{"type":26,"tag":482,"props":547,"children":548},{"align":450},[549,554],{"type":26,"tag":156,"props":550,"children":551},{},[552],{"type":31,"value":553},"Write-Behind",{"type":31,"value":555}," (Write-Back)",{"type":26,"tag":482,"props":557,"children":558},{"align":450},[559],{"type":31,"value":527},{"type":26,"tag":482,"props":561,"children":562},{"align":450},[563],{"type":31,"value":564},"Application writes to cache; cache asynchronously flushes batch to DB",{"type":26,"tag":482,"props":566,"children":567},{"align":450},[568],{"type":31,"value":569},"Potential data loss if cache nodes crash before flushing",{"type":26,"tag":482,"props":571,"children":572},{"align":450},[573],{"type":31,"value":574},"High-frequency telemetry, view counters, click tracking",{"type":26,"tag":44,"props":576,"children":577},{},[],{"type":26,"tag":48,"props":579,"children":581},{"id":580},"_4-end-to-end-walkthrough-designing-a-distributed-notification-system",[582],{"type":31,"value":583},"4. End-to-End Walkthrough: Designing a Distributed Notification System",{"type":26,"tag":27,"props":585,"children":586},{},[587,589],{"type":31,"value":588},"Let us apply the complete framework to an end-to-end design: ",{"type":26,"tag":156,"props":590,"children":591},{},[592],{"type":31,"value":593},"\"Architect a resilient, multi-channel notification engine delivering millions of transactional and promotional alerts daily.\"",{"type":26,"tag":70,"props":595,"children":597},{"id":596},"core-architectural-blueprint",[598],{"type":31,"value":599},"Core Architectural Blueprint",{"type":26,"tag":60,"props":601,"children":603},{"code":602},"[ Client Applications \u002F Internal Services ]\n                    │\n                    ▼  HTTPS + Idempotency-Key\n         [ Layer 7 Load Balancer ]\n                    │\n                    ▼\n     [ Notification Ingestion Service ] ◄───► [ Redis Cluster ]\n                    │                        • Token Bucket Rate Limiter\n                    │                        • Idempotency Deduplication Keys\n                    ▼\n        [ Distributed Kafka Topics ]\n           ├── topic: notification.transactional.high (OTP, Alerts)\n           └── topic: notification.promotional.low   (Newsletters)\n                    │\n                    ▼\n       [ Asynchronous Consumer Worker Pool ]\n           ├── Email Workers ─────► [ SendGrid \u002F Amazon SES ]\n           ├── SMS Workers   ─────► [ Twilio ]\n           └── Push Workers  ─────► [ Apple APNs \u002F Google FCM ]\n                    │\n                    ├──► [ Transient Failure? ] ─► [ Retry Queue with Backoff ]\n                    └──► [ Permanent Failure? ] ─► [ Dead-Letter Queue (DLQ) ]\n                    │\n                    ▼\n         [ PostgreSQL 16 Cluster ]\n         • Primary (Writes) + Read Replicas\n         • User Opt-Outs & Dispatch History\n",[604],{"type":26,"tag":65,"props":605,"children":606},{"__ignoreMap":7},[607],{"type":31,"value":602},{"type":26,"tag":44,"props":609,"children":610},{},[],{"type":26,"tag":48,"props":612,"children":614},{"id":613},"_5-api-contracts-and-data-modeling",[615],{"type":31,"value":616},"5. API Contracts and Data Modeling",{"type":26,"tag":27,"props":618,"children":619},{},[620],{"type":31,"value":621},"A mature system design specifies clean interfaces and concrete data representations rather than vague conceptual diagrams.",{"type":26,"tag":70,"props":623,"children":625},{"id":624},"_1-ingestion-api-endpoint",[626],{"type":31,"value":627},"1. Ingestion API Endpoint",{"type":26,"tag":27,"props":629,"children":630},{},[631],{"type":31,"value":632},"Clients trigger alerts via a RESTful endpoint with an idempotency header:",{"type":26,"tag":60,"props":634,"children":638},{"code":635,"language":636,"meta":7,"className":637,"style":7},"POST \u002Fapi\u002Fv1\u002Fnotifications HTTP\u002F1.1\nHost: api.example.com\nAuthorization: Bearer \u003Cjwt_service_token>\nIdempotency-Key: a4c89b21-4f12-4d8e-9031-15cb7289f012\nContent-Type: application\u002Fjson\n\n{\n  \"recipientUserId\": \"usr_992144\",\n  \"channel\": \"SMS\",\n  \"priority\": \"HIGH\",\n  \"templateId\": \"tmpl_otp_verification\",\n  \"templateVariables\": {\n    \"authCode\": \"849201\",\n    \"expiresInMinutes\": 5\n  }\n}\n","http","language-http shiki shiki-themes github-dark",[639],{"type":26,"tag":65,"props":640,"children":641},{"__ignoreMap":7},[642,653,662,671,680,689,698,707,716,725,734,743,752,761,770,779],{"type":26,"tag":643,"props":644,"children":647},"span",{"class":645,"line":646},"line",1,[648],{"type":26,"tag":643,"props":649,"children":650},{},[651],{"type":31,"value":652},"POST \u002Fapi\u002Fv1\u002Fnotifications HTTP\u002F1.1\n",{"type":26,"tag":643,"props":654,"children":656},{"class":645,"line":655},2,[657],{"type":26,"tag":643,"props":658,"children":659},{},[660],{"type":31,"value":661},"Host: api.example.com\n",{"type":26,"tag":643,"props":663,"children":665},{"class":645,"line":664},3,[666],{"type":26,"tag":643,"props":667,"children":668},{},[669],{"type":31,"value":670},"Authorization: Bearer \u003Cjwt_service_token>\n",{"type":26,"tag":643,"props":672,"children":674},{"class":645,"line":673},4,[675],{"type":26,"tag":643,"props":676,"children":677},{},[678],{"type":31,"value":679},"Idempotency-Key: a4c89b21-4f12-4d8e-9031-15cb7289f012\n",{"type":26,"tag":643,"props":681,"children":683},{"class":645,"line":682},5,[684],{"type":26,"tag":643,"props":685,"children":686},{},[687],{"type":31,"value":688},"Content-Type: application\u002Fjson\n",{"type":26,"tag":643,"props":690,"children":692},{"class":645,"line":691},6,[693],{"type":26,"tag":643,"props":694,"children":695},{"emptyLinePlaceholder":21},[696],{"type":31,"value":697},"\n",{"type":26,"tag":643,"props":699,"children":701},{"class":645,"line":700},7,[702],{"type":26,"tag":643,"props":703,"children":704},{},[705],{"type":31,"value":706},"{\n",{"type":26,"tag":643,"props":708,"children":710},{"class":645,"line":709},8,[711],{"type":26,"tag":643,"props":712,"children":713},{},[714],{"type":31,"value":715},"  \"recipientUserId\": \"usr_992144\",\n",{"type":26,"tag":643,"props":717,"children":719},{"class":645,"line":718},9,[720],{"type":26,"tag":643,"props":721,"children":722},{},[723],{"type":31,"value":724},"  \"channel\": \"SMS\",\n",{"type":26,"tag":643,"props":726,"children":728},{"class":645,"line":727},10,[729],{"type":26,"tag":643,"props":730,"children":731},{},[732],{"type":31,"value":733},"  \"priority\": \"HIGH\",\n",{"type":26,"tag":643,"props":735,"children":737},{"class":645,"line":736},11,[738],{"type":26,"tag":643,"props":739,"children":740},{},[741],{"type":31,"value":742},"  \"templateId\": \"tmpl_otp_verification\",\n",{"type":26,"tag":643,"props":744,"children":746},{"class":645,"line":745},12,[747],{"type":26,"tag":643,"props":748,"children":749},{},[750],{"type":31,"value":751},"  \"templateVariables\": {\n",{"type":26,"tag":643,"props":753,"children":755},{"class":645,"line":754},13,[756],{"type":26,"tag":643,"props":757,"children":758},{},[759],{"type":31,"value":760},"    \"authCode\": \"849201\",\n",{"type":26,"tag":643,"props":762,"children":764},{"class":645,"line":763},14,[765],{"type":26,"tag":643,"props":766,"children":767},{},[768],{"type":31,"value":769},"    \"expiresInMinutes\": 5\n",{"type":26,"tag":643,"props":771,"children":773},{"class":645,"line":772},15,[774],{"type":26,"tag":643,"props":775,"children":776},{},[777],{"type":31,"value":778},"  }\n",{"type":26,"tag":643,"props":780,"children":782},{"class":645,"line":781},16,[783],{"type":26,"tag":643,"props":784,"children":785},{},[786],{"type":31,"value":787},"}\n",{"type":26,"tag":27,"props":789,"children":790},{},[791],{"type":26,"tag":82,"props":792,"children":793},{},[794],{"type":31,"value":795},"(Note: The endpoint above is an illustrative architectural example; JobsCapta does not operate an external notification dispatch API.)",{"type":26,"tag":27,"props":797,"children":798},{},[799],{"type":26,"tag":156,"props":800,"children":801},{},[802],{"type":31,"value":803},"Expected Responses:",{"type":26,"tag":114,"props":805,"children":806},{},[807,826,837],{"type":26,"tag":118,"props":808,"children":809},{},[810,816,818,824],{"type":26,"tag":65,"props":811,"children":813},{"className":812},[],[814],{"type":31,"value":815},"202 Accepted",{"type":31,"value":817},": Payload validated and enqueued successfully. Includes a unique ",{"type":26,"tag":65,"props":819,"children":821},{"className":820},[],[822],{"type":31,"value":823},"trackingId",{"type":31,"value":825},".",{"type":26,"tag":118,"props":827,"children":828},{},[829,835],{"type":26,"tag":65,"props":830,"children":832},{"className":831},[],[833],{"type":31,"value":834},"400 Bad Request",{"type":31,"value":836},": Schema validation error (e.g., missing required template variables).",{"type":26,"tag":118,"props":838,"children":839},{},[840,846],{"type":26,"tag":65,"props":841,"children":843},{"className":842},[],[844],{"type":31,"value":845},"429 Too Many Requests",{"type":31,"value":847},": Client application exceeded their allocated rate-limit quota.",{"type":26,"tag":70,"props":849,"children":851},{"id":850},"_2-relational-database-schema-postgresql",[852],{"type":31,"value":853},"2. Relational Database Schema (PostgreSQL)",{"type":26,"tag":60,"props":855,"children":859},{"code":856,"language":857,"meta":7,"className":858,"style":7},"-- Recipient communication preferences\nCREATE TABLE user_notification_preferences (\n    user_id VARCHAR(64) PRIMARY KEY,\n    email_enabled BOOLEAN NOT NULL DEFAULT TRUE,\n    sms_enabled BOOLEAN NOT NULL DEFAULT TRUE,\n    push_enabled BOOLEAN NOT NULL DEFAULT TRUE,\n    quiet_hours_start TIME,\n    quiet_hours_end TIME,\n    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()\n);\n\n-- Notification audit ledger\nCREATE TABLE notification_dispatches (\n    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),\n    idempotency_key VARCHAR(128) UNIQUE NOT NULL,\n    user_id VARCHAR(64) NOT NULL,\n    channel VARCHAR(20) NOT NULL,\n    priority VARCHAR(10) NOT NULL,\n    status VARCHAR(20) NOT NULL DEFAULT 'PENDING',\n    vendor_message_id VARCHAR(128),\n    retry_count INT NOT NULL DEFAULT 0,\n    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),\n    delivered_at TIMESTAMPTZ\n);\n\nCREATE INDEX idx_dispatches_user_status ON notification_dispatches(user_id, status);\nCREATE INDEX idx_dispatches_created ON notification_dispatches(created_at);\n","sql","language-sql shiki shiki-themes github-dark",[860],{"type":26,"tag":65,"props":861,"children":862},{"__ignoreMap":7},[863,872,898,937,965,989,1013,1030,1046,1077,1085,1092,1100,1120,1141,1179,1211,1245,1275,1319,1345,1376,1406,1420,1428,1436,1473],{"type":26,"tag":643,"props":864,"children":865},{"class":645,"line":646},[866],{"type":26,"tag":643,"props":867,"children":869},{"style":868},"--shiki-default:#6A737D",[870],{"type":31,"value":871},"-- Recipient communication preferences\n",{"type":26,"tag":643,"props":873,"children":874},{"class":645,"line":655},[875,881,886,892],{"type":26,"tag":643,"props":876,"children":878},{"style":877},"--shiki-default:#F97583",[879],{"type":31,"value":880},"CREATE",{"type":26,"tag":643,"props":882,"children":883},{"style":877},[884],{"type":31,"value":885}," TABLE",{"type":26,"tag":643,"props":887,"children":889},{"style":888},"--shiki-default:#B392F0",[890],{"type":31,"value":891}," user_notification_preferences",{"type":26,"tag":643,"props":893,"children":895},{"style":894},"--shiki-default:#E1E4E8",[896],{"type":31,"value":897}," (\n",{"type":26,"tag":643,"props":899,"children":900},{"class":645,"line":664},[901,906,911,916,922,927,932],{"type":26,"tag":643,"props":902,"children":903},{"style":894},[904],{"type":31,"value":905},"    user_id ",{"type":26,"tag":643,"props":907,"children":908},{"style":877},[909],{"type":31,"value":910},"VARCHAR",{"type":26,"tag":643,"props":912,"children":913},{"style":894},[914],{"type":31,"value":915},"(",{"type":26,"tag":643,"props":917,"children":919},{"style":918},"--shiki-default:#79B8FF",[920],{"type":31,"value":921},"64",{"type":26,"tag":643,"props":923,"children":924},{"style":894},[925],{"type":31,"value":926},") ",{"type":26,"tag":643,"props":928,"children":929},{"style":877},[930],{"type":31,"value":931},"PRIMARY KEY",{"type":26,"tag":643,"props":933,"children":934},{"style":894},[935],{"type":31,"value":936},",\n",{"type":26,"tag":643,"props":938,"children":939},{"class":645,"line":673},[940,945,950,955,960],{"type":26,"tag":643,"props":941,"children":942},{"style":894},[943],{"type":31,"value":944},"    email_enabled ",{"type":26,"tag":643,"props":946,"children":947},{"style":877},[948],{"type":31,"value":949},"BOOLEAN",{"type":26,"tag":643,"props":951,"children":952},{"style":877},[953],{"type":31,"value":954}," NOT NULL",{"type":26,"tag":643,"props":956,"children":957},{"style":877},[958],{"type":31,"value":959}," DEFAULT",{"type":26,"tag":643,"props":961,"children":962},{"style":894},[963],{"type":31,"value":964}," TRUE,\n",{"type":26,"tag":643,"props":966,"children":967},{"class":645,"line":682},[968,973,977,981,985],{"type":26,"tag":643,"props":969,"children":970},{"style":894},[971],{"type":31,"value":972},"    sms_enabled ",{"type":26,"tag":643,"props":974,"children":975},{"style":877},[976],{"type":31,"value":949},{"type":26,"tag":643,"props":978,"children":979},{"style":877},[980],{"type":31,"value":954},{"type":26,"tag":643,"props":982,"children":983},{"style":877},[984],{"type":31,"value":959},{"type":26,"tag":643,"props":986,"children":987},{"style":894},[988],{"type":31,"value":964},{"type":26,"tag":643,"props":990,"children":991},{"class":645,"line":691},[992,997,1001,1005,1009],{"type":26,"tag":643,"props":993,"children":994},{"style":894},[995],{"type":31,"value":996},"    push_enabled ",{"type":26,"tag":643,"props":998,"children":999},{"style":877},[1000],{"type":31,"value":949},{"type":26,"tag":643,"props":1002,"children":1003},{"style":877},[1004],{"type":31,"value":954},{"type":26,"tag":643,"props":1006,"children":1007},{"style":877},[1008],{"type":31,"value":959},{"type":26,"tag":643,"props":1010,"children":1011},{"style":894},[1012],{"type":31,"value":964},{"type":26,"tag":643,"props":1014,"children":1015},{"class":645,"line":700},[1016,1021,1026],{"type":26,"tag":643,"props":1017,"children":1018},{"style":894},[1019],{"type":31,"value":1020},"    quiet_hours_start ",{"type":26,"tag":643,"props":1022,"children":1023},{"style":877},[1024],{"type":31,"value":1025},"TIME",{"type":26,"tag":643,"props":1027,"children":1028},{"style":894},[1029],{"type":31,"value":936},{"type":26,"tag":643,"props":1031,"children":1032},{"class":645,"line":709},[1033,1038,1042],{"type":26,"tag":643,"props":1034,"children":1035},{"style":894},[1036],{"type":31,"value":1037},"    quiet_hours_end ",{"type":26,"tag":643,"props":1039,"children":1040},{"style":877},[1041],{"type":31,"value":1025},{"type":26,"tag":643,"props":1043,"children":1044},{"style":894},[1045],{"type":31,"value":936},{"type":26,"tag":643,"props":1047,"children":1048},{"class":645,"line":718},[1049,1054,1059,1063,1067,1072],{"type":26,"tag":643,"props":1050,"children":1051},{"style":894},[1052],{"type":31,"value":1053},"    updated_at ",{"type":26,"tag":643,"props":1055,"children":1056},{"style":877},[1057],{"type":31,"value":1058},"TIMESTAMPTZ",{"type":26,"tag":643,"props":1060,"children":1061},{"style":877},[1062],{"type":31,"value":954},{"type":26,"tag":643,"props":1064,"children":1065},{"style":877},[1066],{"type":31,"value":959},{"type":26,"tag":643,"props":1068,"children":1069},{"style":877},[1070],{"type":31,"value":1071}," NOW",{"type":26,"tag":643,"props":1073,"children":1074},{"style":894},[1075],{"type":31,"value":1076},"()\n",{"type":26,"tag":643,"props":1078,"children":1079},{"class":645,"line":727},[1080],{"type":26,"tag":643,"props":1081,"children":1082},{"style":894},[1083],{"type":31,"value":1084},");\n",{"type":26,"tag":643,"props":1086,"children":1087},{"class":645,"line":736},[1088],{"type":26,"tag":643,"props":1089,"children":1090},{"emptyLinePlaceholder":21},[1091],{"type":31,"value":697},{"type":26,"tag":643,"props":1093,"children":1094},{"class":645,"line":745},[1095],{"type":26,"tag":643,"props":1096,"children":1097},{"style":868},[1098],{"type":31,"value":1099},"-- Notification audit ledger\n",{"type":26,"tag":643,"props":1101,"children":1102},{"class":645,"line":754},[1103,1107,1111,1116],{"type":26,"tag":643,"props":1104,"children":1105},{"style":877},[1106],{"type":31,"value":880},{"type":26,"tag":643,"props":1108,"children":1109},{"style":877},[1110],{"type":31,"value":885},{"type":26,"tag":643,"props":1112,"children":1113},{"style":888},[1114],{"type":31,"value":1115}," notification_dispatches",{"type":26,"tag":643,"props":1117,"children":1118},{"style":894},[1119],{"type":31,"value":897},{"type":26,"tag":643,"props":1121,"children":1122},{"class":645,"line":763},[1123,1128,1132,1136],{"type":26,"tag":643,"props":1124,"children":1125},{"style":894},[1126],{"type":31,"value":1127},"    id UUID ",{"type":26,"tag":643,"props":1129,"children":1130},{"style":877},[1131],{"type":31,"value":931},{"type":26,"tag":643,"props":1133,"children":1134},{"style":877},[1135],{"type":31,"value":959},{"type":26,"tag":643,"props":1137,"children":1138},{"style":894},[1139],{"type":31,"value":1140}," gen_random_uuid(),\n",{"type":26,"tag":643,"props":1142,"children":1143},{"class":645,"line":772},[1144,1149,1153,1157,1162,1166,1171,1175],{"type":26,"tag":643,"props":1145,"children":1146},{"style":894},[1147],{"type":31,"value":1148},"    idempotency_key ",{"type":26,"tag":643,"props":1150,"children":1151},{"style":877},[1152],{"type":31,"value":910},{"type":26,"tag":643,"props":1154,"children":1155},{"style":894},[1156],{"type":31,"value":915},{"type":26,"tag":643,"props":1158,"children":1159},{"style":918},[1160],{"type":31,"value":1161},"128",{"type":26,"tag":643,"props":1163,"children":1164},{"style":894},[1165],{"type":31,"value":926},{"type":26,"tag":643,"props":1167,"children":1168},{"style":877},[1169],{"type":31,"value":1170},"UNIQUE",{"type":26,"tag":643,"props":1172,"children":1173},{"style":877},[1174],{"type":31,"value":954},{"type":26,"tag":643,"props":1176,"children":1177},{"style":894},[1178],{"type":31,"value":936},{"type":26,"tag":643,"props":1180,"children":1181},{"class":645,"line":781},[1182,1186,1190,1194,1198,1202,1207],{"type":26,"tag":643,"props":1183,"children":1184},{"style":894},[1185],{"type":31,"value":905},{"type":26,"tag":643,"props":1187,"children":1188},{"style":877},[1189],{"type":31,"value":910},{"type":26,"tag":643,"props":1191,"children":1192},{"style":894},[1193],{"type":31,"value":915},{"type":26,"tag":643,"props":1195,"children":1196},{"style":918},[1197],{"type":31,"value":921},{"type":26,"tag":643,"props":1199,"children":1200},{"style":894},[1201],{"type":31,"value":926},{"type":26,"tag":643,"props":1203,"children":1204},{"style":877},[1205],{"type":31,"value":1206},"NOT NULL",{"type":26,"tag":643,"props":1208,"children":1209},{"style":894},[1210],{"type":31,"value":936},{"type":26,"tag":643,"props":1212,"children":1214},{"class":645,"line":1213},17,[1215,1220,1224,1228,1233,1237,1241],{"type":26,"tag":643,"props":1216,"children":1217},{"style":894},[1218],{"type":31,"value":1219},"    channel ",{"type":26,"tag":643,"props":1221,"children":1222},{"style":877},[1223],{"type":31,"value":910},{"type":26,"tag":643,"props":1225,"children":1226},{"style":894},[1227],{"type":31,"value":915},{"type":26,"tag":643,"props":1229,"children":1230},{"style":918},[1231],{"type":31,"value":1232},"20",{"type":26,"tag":643,"props":1234,"children":1235},{"style":894},[1236],{"type":31,"value":926},{"type":26,"tag":643,"props":1238,"children":1239},{"style":877},[1240],{"type":31,"value":1206},{"type":26,"tag":643,"props":1242,"children":1243},{"style":894},[1244],{"type":31,"value":936},{"type":26,"tag":643,"props":1246,"children":1248},{"class":645,"line":1247},18,[1249,1254,1258,1263,1267,1271],{"type":26,"tag":643,"props":1250,"children":1251},{"style":877},[1252],{"type":31,"value":1253},"    priority VARCHAR",{"type":26,"tag":643,"props":1255,"children":1256},{"style":894},[1257],{"type":31,"value":915},{"type":26,"tag":643,"props":1259,"children":1260},{"style":918},[1261],{"type":31,"value":1262},"10",{"type":26,"tag":643,"props":1264,"children":1265},{"style":894},[1266],{"type":31,"value":926},{"type":26,"tag":643,"props":1268,"children":1269},{"style":877},[1270],{"type":31,"value":1206},{"type":26,"tag":643,"props":1272,"children":1273},{"style":894},[1274],{"type":31,"value":936},{"type":26,"tag":643,"props":1276,"children":1278},{"class":645,"line":1277},19,[1279,1284,1289,1293,1297,1301,1305,1309,1315],{"type":26,"tag":643,"props":1280,"children":1281},{"style":877},[1282],{"type":31,"value":1283},"    status",{"type":26,"tag":643,"props":1285,"children":1286},{"style":877},[1287],{"type":31,"value":1288}," VARCHAR",{"type":26,"tag":643,"props":1290,"children":1291},{"style":894},[1292],{"type":31,"value":915},{"type":26,"tag":643,"props":1294,"children":1295},{"style":918},[1296],{"type":31,"value":1232},{"type":26,"tag":643,"props":1298,"children":1299},{"style":894},[1300],{"type":31,"value":926},{"type":26,"tag":643,"props":1302,"children":1303},{"style":877},[1304],{"type":31,"value":1206},{"type":26,"tag":643,"props":1306,"children":1307},{"style":877},[1308],{"type":31,"value":959},{"type":26,"tag":643,"props":1310,"children":1312},{"style":1311},"--shiki-default:#9ECBFF",[1313],{"type":31,"value":1314}," 'PENDING'",{"type":26,"tag":643,"props":1316,"children":1317},{"style":894},[1318],{"type":31,"value":936},{"type":26,"tag":643,"props":1320,"children":1322},{"class":645,"line":1321},20,[1323,1328,1332,1336,1340],{"type":26,"tag":643,"props":1324,"children":1325},{"style":894},[1326],{"type":31,"value":1327},"    vendor_message_id ",{"type":26,"tag":643,"props":1329,"children":1330},{"style":877},[1331],{"type":31,"value":910},{"type":26,"tag":643,"props":1333,"children":1334},{"style":894},[1335],{"type":31,"value":915},{"type":26,"tag":643,"props":1337,"children":1338},{"style":918},[1339],{"type":31,"value":1161},{"type":26,"tag":643,"props":1341,"children":1342},{"style":894},[1343],{"type":31,"value":1344},"),\n",{"type":26,"tag":643,"props":1346,"children":1348},{"class":645,"line":1347},21,[1349,1354,1359,1363,1367,1372],{"type":26,"tag":643,"props":1350,"children":1351},{"style":894},[1352],{"type":31,"value":1353},"    retry_count ",{"type":26,"tag":643,"props":1355,"children":1356},{"style":877},[1357],{"type":31,"value":1358},"INT",{"type":26,"tag":643,"props":1360,"children":1361},{"style":877},[1362],{"type":31,"value":954},{"type":26,"tag":643,"props":1364,"children":1365},{"style":877},[1366],{"type":31,"value":959},{"type":26,"tag":643,"props":1368,"children":1369},{"style":918},[1370],{"type":31,"value":1371}," 0",{"type":26,"tag":643,"props":1373,"children":1374},{"style":894},[1375],{"type":31,"value":936},{"type":26,"tag":643,"props":1377,"children":1379},{"class":645,"line":1378},22,[1380,1385,1389,1393,1397,1401],{"type":26,"tag":643,"props":1381,"children":1382},{"style":894},[1383],{"type":31,"value":1384},"    created_at ",{"type":26,"tag":643,"props":1386,"children":1387},{"style":877},[1388],{"type":31,"value":1058},{"type":26,"tag":643,"props":1390,"children":1391},{"style":877},[1392],{"type":31,"value":954},{"type":26,"tag":643,"props":1394,"children":1395},{"style":877},[1396],{"type":31,"value":959},{"type":26,"tag":643,"props":1398,"children":1399},{"style":877},[1400],{"type":31,"value":1071},{"type":26,"tag":643,"props":1402,"children":1403},{"style":894},[1404],{"type":31,"value":1405},"(),\n",{"type":26,"tag":643,"props":1407,"children":1409},{"class":645,"line":1408},23,[1410,1415],{"type":26,"tag":643,"props":1411,"children":1412},{"style":894},[1413],{"type":31,"value":1414},"    delivered_at ",{"type":26,"tag":643,"props":1416,"children":1417},{"style":877},[1418],{"type":31,"value":1419},"TIMESTAMPTZ\n",{"type":26,"tag":643,"props":1421,"children":1423},{"class":645,"line":1422},24,[1424],{"type":26,"tag":643,"props":1425,"children":1426},{"style":894},[1427],{"type":31,"value":1084},{"type":26,"tag":643,"props":1429,"children":1431},{"class":645,"line":1430},25,[1432],{"type":26,"tag":643,"props":1433,"children":1434},{"emptyLinePlaceholder":21},[1435],{"type":31,"value":697},{"type":26,"tag":643,"props":1437,"children":1439},{"class":645,"line":1438},26,[1440,1444,1449,1454,1459,1464,1469],{"type":26,"tag":643,"props":1441,"children":1442},{"style":877},[1443],{"type":31,"value":880},{"type":26,"tag":643,"props":1445,"children":1446},{"style":877},[1447],{"type":31,"value":1448}," INDEX",{"type":26,"tag":643,"props":1450,"children":1451},{"style":888},[1452],{"type":31,"value":1453}," idx_dispatches_user_status",{"type":26,"tag":643,"props":1455,"children":1456},{"style":877},[1457],{"type":31,"value":1458}," ON",{"type":26,"tag":643,"props":1460,"children":1461},{"style":894},[1462],{"type":31,"value":1463}," notification_dispatches(user_id, ",{"type":26,"tag":643,"props":1465,"children":1466},{"style":877},[1467],{"type":31,"value":1468},"status",{"type":26,"tag":643,"props":1470,"children":1471},{"style":894},[1472],{"type":31,"value":1084},{"type":26,"tag":643,"props":1474,"children":1476},{"class":645,"line":1475},27,[1477,1481,1485,1490,1494],{"type":26,"tag":643,"props":1478,"children":1479},{"style":877},[1480],{"type":31,"value":880},{"type":26,"tag":643,"props":1482,"children":1483},{"style":877},[1484],{"type":31,"value":1448},{"type":26,"tag":643,"props":1486,"children":1487},{"style":888},[1488],{"type":31,"value":1489}," idx_dispatches_created",{"type":26,"tag":643,"props":1491,"children":1492},{"style":877},[1493],{"type":31,"value":1458},{"type":26,"tag":643,"props":1495,"children":1496},{"style":894},[1497],{"type":31,"value":1498}," notification_dispatches(created_at);\n",{"type":26,"tag":44,"props":1500,"children":1501},{},[],{"type":26,"tag":48,"props":1503,"children":1505},{"id":1504},"_6-resilience-engineering-patterns-deep-dive",[1506],{"type":31,"value":1507},"6. Resilience Engineering Patterns & Deep Dive",{"type":26,"tag":27,"props":1509,"children":1510},{},[1511],{"type":31,"value":1512},"The difference between a mid-level design and a senior\u002Fstaff-level design lies in how the candidate addresses systemic failure.",{"type":26,"tag":70,"props":1514,"children":1516},{"id":1515},"_1-idempotency-and-exactly-once-semantics",[1517],{"type":31,"value":1518},"1. Idempotency and Exactly-Once Semantics",{"type":26,"tag":27,"props":1520,"children":1521},{},[1522],{"type":31,"value":1523},"Network connections over the public internet are inherently unreliable. If an upstream service sends a request to dispatch a verification code and encounters a TCP timeout before receiving an acknowledgment, it will automatically retry.",{"type":26,"tag":27,"props":1525,"children":1526},{},[1527],{"type":31,"value":1528},"To prevent the recipient from receiving two SMS messages:",{"type":26,"tag":1530,"props":1531,"children":1532},"ol",{},[1533,1545,1599],{"type":26,"tag":118,"props":1534,"children":1535},{},[1536,1538,1544],{"type":31,"value":1537},"The Ingestion Service extracts the client's ",{"type":26,"tag":65,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":31,"value":1543},"Idempotency-Key",{"type":31,"value":825},{"type":26,"tag":118,"props":1546,"children":1547},{},[1548,1550,1556,1558],{"type":31,"value":1549},"It executes an atomic ",{"type":26,"tag":65,"props":1551,"children":1553},{"className":1552},[],[1554],{"type":31,"value":1555},"SET",{"type":31,"value":1557}," command in Redis with a 10-minute expiration:\n",{"type":26,"tag":60,"props":1559,"children":1563},{"code":1560,"language":1561,"meta":7,"className":1562,"style":7},"SET \"idemp:a4c89b21-4f12-4d8e-9031-15cb7289f012\" \"IN_PROGRESS\" NX EX 600\n","bash","language-bash shiki shiki-themes github-dark",[1564],{"type":26,"tag":65,"props":1565,"children":1566},{"__ignoreMap":7},[1567],{"type":26,"tag":643,"props":1568,"children":1569},{"class":645,"line":646},[1570,1574,1579,1584,1589,1594],{"type":26,"tag":643,"props":1571,"children":1572},{"style":888},[1573],{"type":31,"value":1555},{"type":26,"tag":643,"props":1575,"children":1576},{"style":1311},[1577],{"type":31,"value":1578}," \"idemp:a4c89b21-4f12-4d8e-9031-15cb7289f012\"",{"type":26,"tag":643,"props":1580,"children":1581},{"style":1311},[1582],{"type":31,"value":1583}," \"IN_PROGRESS\"",{"type":26,"tag":643,"props":1585,"children":1586},{"style":1311},[1587],{"type":31,"value":1588}," NX",{"type":26,"tag":643,"props":1590,"children":1591},{"style":1311},[1592],{"type":31,"value":1593}," EX",{"type":26,"tag":643,"props":1595,"children":1596},{"style":918},[1597],{"type":31,"value":1598}," 600\n",{"type":26,"tag":118,"props":1600,"children":1601},{},[1602,1604,1610,1612,1617],{"type":31,"value":1603},"If Redis returns ",{"type":26,"tag":65,"props":1605,"children":1607},{"className":1606},[],[1608],{"type":31,"value":1609},"nil",{"type":31,"value":1611}," (meaning the key already exists), the server halts execution and returns HTTP ",{"type":26,"tag":65,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":31,"value":815},{"type":31,"value":1618}," with the existing task record, short-circuiting duplicate downstream dispatches.",{"type":26,"tag":70,"props":1620,"children":1622},{"id":1621},"_2-priority-topic-isolation-in-kafka",[1623],{"type":31,"value":1624},"2. Priority Topic Isolation in Kafka",{"type":26,"tag":27,"props":1626,"children":1627},{},[1628],{"type":31,"value":1629},"Marketing newsletters must never delay security verifications. If a marketing department broadcasts a 500,000-recipient email campaign, queuing those jobs ahead of two-factor authentication codes would cause users to wait minutes for login verifications.",{"type":26,"tag":114,"props":1631,"children":1632},{},[1633,1653],{"type":26,"tag":118,"props":1634,"children":1635},{},[1636,1638,1644,1646,1652],{"type":31,"value":1637},"We partition the messaging bus into distinct Kafka topics: ",{"type":26,"tag":65,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":31,"value":1643},"notification.transactional.high",{"type":31,"value":1645}," and ",{"type":26,"tag":65,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":31,"value":1651},"notification.promotional.low",{"type":31,"value":825},{"type":26,"tag":118,"props":1654,"children":1655},{},[1656],{"type":31,"value":1657},"Dedicated worker auto-scaling groups are allocated exclusively to the high-priority topic, ensuring consistent sub-second end-to-end processing times regardless of marketing volumes.",{"type":26,"tag":70,"props":1659,"children":1661},{"id":1660},"_3-circuit-breaker-pattern-for-external-gateways",[1662],{"type":31,"value":1663},"3. Circuit Breaker Pattern for External Gateways",{"type":26,"tag":27,"props":1665,"children":1666},{},[1667],{"type":31,"value":1668},"Third-party notification vendors (Twilio, SendGrid) periodically experience degradation or outages. Making continuous synchronous API calls to an unresponsive vendor wastes connection pools and exhausts thread limits.",{"type":26,"tag":27,"props":1670,"children":1671},{},[1672,1674,1679],{"type":31,"value":1673},"Implement a ",{"type":26,"tag":156,"props":1675,"children":1676},{},[1677],{"type":31,"value":1678},"Circuit Breaker",{"type":31,"value":1680}," with three states:",{"type":26,"tag":114,"props":1682,"children":1683},{},[1684,1694,1704],{"type":26,"tag":118,"props":1685,"children":1686},{},[1687,1692],{"type":26,"tag":156,"props":1688,"children":1689},{},[1690],{"type":31,"value":1691},"Closed (Normal Operation):",{"type":31,"value":1693}," All requests pass through to the vendor. Successes and failures are monitored.",{"type":26,"tag":118,"props":1695,"children":1696},{},[1697,1702],{"type":26,"tag":156,"props":1698,"children":1699},{},[1700],{"type":31,"value":1701},"Open (Trip State):",{"type":31,"value":1703}," If the error rate exceeds 50% over a 30-second window, the circuit trips Open. Requests immediately fail fast or divert to an alternate secondary fallback vendor (e.g., falling back from SendGrid to Amazon SES) without attempting the primary vendor.",{"type":26,"tag":118,"props":1705,"children":1706},{},[1707,1712],{"type":26,"tag":156,"props":1708,"children":1709},{},[1710],{"type":31,"value":1711},"Half-Open (Testing Recovery):",{"type":31,"value":1713}," After a reset timeout (e.g., 60 seconds), a limited trial sample of requests is allowed through. If they succeed, the circuit returns to Closed; if they fail, it trips Open again.",{"type":26,"tag":70,"props":1715,"children":1717},{"id":1716},"_4-exponential-backoff-with-jitter",[1718],{"type":31,"value":1719},"4. Exponential Backoff with Jitter",{"type":26,"tag":27,"props":1721,"children":1722},{},[1723,1725,1730],{"type":31,"value":1724},"When retrying failed dispatches, retrying at static intervals (e.g., every 5 seconds) causes all worker threads to flood the recovering vendor simultaneously, creating a ",{"type":26,"tag":156,"props":1726,"children":1727},{},[1728],{"type":31,"value":1729},"thundering herd problem",{"type":31,"value":825},{"type":26,"tag":27,"props":1732,"children":1733},{},[1734],{"type":31,"value":1735},"Instead, implement exponential backoff with randomized jitter:",{"type":26,"tag":60,"props":1737,"children":1739},{"code":1738},"Retry Delay = 2^(retry_count) + random_uniform(0, 1) seconds\n",[1740],{"type":26,"tag":65,"props":1741,"children":1742},{"__ignoreMap":7},[1743],{"type":31,"value":1738},{"type":26,"tag":27,"props":1745,"children":1746},{},[1747,1749,1754],{"type":31,"value":1748},"If maximum retries are exhausted (e.g., 5 attempts), the message payload transitions into a ",{"type":26,"tag":156,"props":1750,"children":1751},{},[1752],{"type":31,"value":1753},"Dead-Letter Queue (DLQ)",{"type":31,"value":1755}," for automated alerting, investigation, and manual replay.",{"type":26,"tag":44,"props":1757,"children":1758},{},[],{"type":26,"tag":48,"props":1760,"children":1762},{"id":1761},"_7-crucial-candidate-communication-phrases",[1763],{"type":31,"value":1764},"7. Crucial Candidate Communication Phrases",{"type":26,"tag":27,"props":1766,"children":1767},{},[1768,1770,1775,1777,1782],{"type":31,"value":1769},"In a system design interview, ",{"type":26,"tag":82,"props":1771,"children":1772},{},[1773],{"type":31,"value":1774},"how",{"type":31,"value":1776}," you communicate is evaluated as heavily as ",{"type":26,"tag":82,"props":1778,"children":1779},{},[1780],{"type":31,"value":1781},"what",{"type":31,"value":1783}," you draw. Maintain a collaborative dialogue using these professional framing techniques:",{"type":26,"tag":114,"props":1785,"children":1786},{},[1787,1802,1816],{"type":26,"tag":118,"props":1788,"children":1789},{},[1790,1795,1797],{"type":26,"tag":156,"props":1791,"children":1792},{},[1793],{"type":31,"value":1794},"When validating requirements:",{"type":31,"value":1796}," ",{"type":26,"tag":82,"props":1798,"children":1799},{},[1800],{"type":31,"value":1801},"\"Before I dive into component design, I want to confirm our non-functional priorities. Are we optimizing primarily for ultra-low p99 latency, or is guaranteed message durability and zero loss our non-negotiable metric?\"",{"type":26,"tag":118,"props":1803,"children":1804},{},[1805,1810,1811],{"type":26,"tag":156,"props":1806,"children":1807},{},[1808],{"type":31,"value":1809},"When explaining a trade-off:",{"type":31,"value":1796},{"type":26,"tag":82,"props":1812,"children":1813},{},[1814],{"type":31,"value":1815},"\"I chose to introduce an asynchronous Kafka log here rather than writing synchronously to PostgreSQL. The trade-off is eventual consistency—the client will not see instant delivery confirmation in the database, but our ingestion API can absorb massive traffic spikes without exhausting database connection pools.\"",{"type":26,"tag":118,"props":1817,"children":1818},{},[1819,1824,1825],{"type":26,"tag":156,"props":1820,"children":1821},{},[1822],{"type":31,"value":1823},"When addressing scale bottlenecks:",{"type":31,"value":1796},{"type":26,"tag":82,"props":1826,"children":1827},{},[1828,1830,1836],{"type":31,"value":1829},"\"At 50 million active users, our notification audit table will generate 73 TB annually. To prevent our B-Tree indexes from degrading query performance, I recommend horizontally sharding the database by ",{"type":26,"tag":65,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":31,"value":1835},"user_id",{"type":31,"value":1837}," and archiving records older than 30 days to cold storage.\"",{"type":26,"tag":44,"props":1839,"children":1840},{},[],{"type":26,"tag":48,"props":1842,"children":1844},{"id":1843},"_8-summary-interview-day-checklist",[1845],{"type":31,"value":1846},"8. Summary Interview Day Checklist",{"type":26,"tag":27,"props":1848,"children":1849},{},[1850],{"type":31,"value":1851},"Before walking into your next technical architecture interview:",{"type":26,"tag":114,"props":1853,"children":1856},{"className":1854},[1855],"contains-task-list",[1857,1869,1878,1895,1911,1920],{"type":26,"tag":118,"props":1858,"children":1861},{"className":1859},[1860],"task-list-item",[1862,1867],{"type":26,"tag":1863,"props":1864,"children":1866},"input",{"disabled":21,"type":1865},"checkbox",[],{"type":31,"value":1868}," Structure the 45-minute conversation into five phases: Scoping, Math, High-Level Design, Deep Dive, and Failure Modes.",{"type":26,"tag":118,"props":1870,"children":1872},{"className":1871},[1860],[1873,1876],{"type":26,"tag":1863,"props":1874,"children":1875},{"disabled":21,"type":1865},[],{"type":31,"value":1877}," Practice back-of-the-envelope calculations: DAU → QPS, 5-year storage growth, and 80\u002F20 cache sizing.",{"type":26,"tag":118,"props":1879,"children":1881},{"className":1880},[1860],[1882,1885,1887,1894],{"type":26,"tag":1863,"props":1883,"children":1884},{"disabled":21,"type":1865},[],{"type":31,"value":1886}," Clarify database models: Relational consistency vs. NoSQL partition tolerance (review our ",{"type":26,"tag":1888,"props":1889,"children":1891},"a",{"href":1890},"\u002Ftech-guides\u002Fsql-vs-nosql-database-guide",[1892],{"type":31,"value":1893},"SQL vs. NoSQL Architecture Guide",{"type":31,"value":95},{"type":26,"tag":118,"props":1896,"children":1898},{"className":1897},[1860],[1899,1902,1904,1910],{"type":26,"tag":1863,"props":1900,"children":1901},{"disabled":21,"type":1865},[],{"type":31,"value":1903}," Adhere to clean RESTful endpoint and status code conventions (review ",{"type":26,"tag":1888,"props":1905,"children":1907},{"href":1906},"\u002Ftech-guides\u002Frest-apis-explained",[1908],{"type":31,"value":1909},"REST APIs Explained",{"type":31,"value":95},{"type":26,"tag":118,"props":1912,"children":1914},{"className":1913},[1860],[1915,1918],{"type":26,"tag":1863,"props":1916,"children":1917},{"disabled":21,"type":1865},[],{"type":31,"value":1919}," Articulate concrete distributed resilience patterns: Idempotency keys, circuit breakers, Dead-Letter Queues, and jittered exponential backoff.",{"type":26,"tag":118,"props":1921,"children":1923},{"className":1922},[1860],[1924,1927,1929,1935],{"type":26,"tag":1863,"props":1925,"children":1926},{"disabled":21,"type":1865},[],{"type":31,"value":1928}," Relate architectural patterns to real projects on your portfolio (review ",{"type":26,"tag":1888,"props":1930,"children":1932},{"href":1931},"\u002Fresume-interview\u002Fhow-to-describe-projects-on-resume",[1933],{"type":31,"value":1934},"How to Describe Projects on a Resume",{"type":31,"value":95},{"type":26,"tag":44,"props":1937,"children":1938},{},[],{"type":26,"tag":48,"props":1940,"children":1942},{"id":1941},"primary-references-and-architectural-standards",[1943],{"type":31,"value":1944},"Primary References and Architectural Standards",{"type":26,"tag":114,"props":1946,"children":1947},{},[1948,1965,1982,1999,2016],{"type":26,"tag":118,"props":1949,"children":1950},{},[1951,1956,1958,1963],{"type":26,"tag":156,"props":1952,"children":1953},{},[1954],{"type":31,"value":1955},"Kleppmann, Martin.",{"type":31,"value":1957}," (2017). ",{"type":26,"tag":82,"props":1959,"children":1960},{},[1961],{"type":31,"value":1962},"Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems.",{"type":31,"value":1964}," O'Reilly Media.",{"type":26,"tag":118,"props":1966,"children":1967},{},[1968,1973,1975,1980],{"type":26,"tag":156,"props":1969,"children":1970},{},[1971],{"type":31,"value":1972},"Dean, Jeff.",{"type":31,"value":1974}," (2009). ",{"type":26,"tag":82,"props":1976,"children":1977},{},[1978],{"type":31,"value":1979},"Numbers Everyone Should Know.",{"type":31,"value":1981}," Google Fellow Presentation, Stanford University.",{"type":26,"tag":118,"props":1983,"children":1984},{},[1985,1990,1992,1997],{"type":26,"tag":156,"props":1986,"children":1987},{},[1988],{"type":31,"value":1989},"Nygard, Michael T.",{"type":31,"value":1991}," (2018). ",{"type":26,"tag":82,"props":1993,"children":1994},{},[1995],{"type":31,"value":1996},"Release It!: Design and Deploy Production-Ready Software.",{"type":31,"value":1998}," Pragmatic Bookshelf.",{"type":26,"tag":118,"props":2000,"children":2001},{},[2002,2007,2009,2014],{"type":26,"tag":156,"props":2003,"children":2004},{},[2005],{"type":31,"value":2006},"Kreps, Jay, Narkhede, Neha, & Rao, Jun.",{"type":31,"value":2008}," (2011). ",{"type":26,"tag":82,"props":2010,"children":2011},{},[2012],{"type":31,"value":2013},"Kafka: A Distributed Messaging System for Log Processing.",{"type":31,"value":2015}," NetDB Workshop.",{"type":26,"tag":118,"props":2017,"children":2018},{},[2019,2024,2025,2030,2031],{"type":26,"tag":156,"props":2020,"children":2021},{},[2022],{"type":31,"value":2023},"Amazon Web Services.",{"type":31,"value":1796},{"type":26,"tag":82,"props":2026,"children":2027},{},[2028],{"type":31,"value":2029},"AWS Well-Architected Framework: Reliability and Performance Pillars.",{"type":31,"value":1796},{"type":26,"tag":1888,"props":2032,"children":2036},{"href":2033,"rel":2034},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fframework\u002Fwelcome.html",[2035],"nofollow",[2037],{"type":31,"value":2038},"docs.aws.amazon.com",{"type":26,"tag":2040,"props":2041,"children":2042},"style",{},[2043],{"type":31,"value":2044},"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);}",{"title":7,"searchDepth":655,"depth":655,"links":2046},[2047,2050,2056,2060,2063,2067,2073,2074,2075],{"id":50,"depth":655,"text":53,"children":2048},[2049],{"id":72,"depth":664,"text":75},{"id":214,"depth":655,"text":217,"children":2051},[2052,2053,2054,2055],{"id":225,"depth":664,"text":228},{"id":244,"depth":664,"text":247},{"id":313,"depth":664,"text":316},{"id":348,"depth":664,"text":351},{"id":375,"depth":655,"text":378,"children":2057},[2058,2059],{"id":386,"depth":664,"text":389},{"id":431,"depth":664,"text":434},{"id":580,"depth":655,"text":583,"children":2061},[2062],{"id":596,"depth":664,"text":599},{"id":613,"depth":655,"text":616,"children":2064},[2065,2066],{"id":624,"depth":664,"text":627},{"id":850,"depth":664,"text":853},{"id":1504,"depth":655,"text":1507,"children":2068},[2069,2070,2071,2072],{"id":1515,"depth":664,"text":1518},{"id":1621,"depth":664,"text":1624},{"id":1660,"depth":664,"text":1663},{"id":1716,"depth":664,"text":1719},{"id":1761,"depth":655,"text":1764},{"id":1843,"depth":655,"text":1846},{"id":1941,"depth":655,"text":1944},"markdown","content:resume-interview:system-design-interview-framework.md","content","resume-interview\u002Fsystem-design-interview-framework.md","resume-interview\u002Fsystem-design-interview-framework","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"category":5,"categoryLabel":10,"publishedAt":11,"updatedAt":11,"author":2083,"tags":2084,"featured":21,"body":2085,"_type":2076,"_id":2077,"_source":2078,"_file":2079,"_stem":2080,"_extension":2081},{"name":13,"role":14},[16,17,18,19,20],{"type":23,"children":2086,"toc":3726},[2087,2091,2095,2099,2102,2106,2110,2117,2121,2135,2139,2143,2147,2166,2170,2174,2221,2224,2228,2232,2236,2240,2247,2251,2265,2272,2276,2283,2287,2294,2302,2306,2315,2322,2330,2334,2338,2345,2349,2352,2356,2360,2364,2395,2399,2511,2514,2518,2526,2530,2537,2540,2544,2548,2552,2556,2674,2681,2688,2724,2728,3295,3298,3302,3306,3310,3314,3318,3390,3394,3398,3421,3425,3429,3438,3465,3469,3478,3482,3489,3498,3501,3505,3519,3564,3567,3571,3575,3642,3645,3649,3722],{"type":26,"tag":27,"props":2088,"children":2089},{},[2090],{"type":31,"value":32},{"type":26,"tag":27,"props":2092,"children":2093},{},[2094],{"type":31,"value":37},{"type":26,"tag":27,"props":2096,"children":2097},{},[2098],{"type":31,"value":42},{"type":26,"tag":44,"props":2100,"children":2101},{},[],{"type":26,"tag":48,"props":2103,"children":2104},{"id":50},[2105],{"type":31,"value":53},{"type":26,"tag":27,"props":2107,"children":2108},{},[2109],{"type":31,"value":58},{"type":26,"tag":60,"props":2111,"children":2112},{"code":62},[2113],{"type":26,"tag":65,"props":2114,"children":2115},{"__ignoreMap":7},[2116],{"type":31,"value":62},{"type":26,"tag":70,"props":2118,"children":2119},{"id":72},[2120],{"type":31,"value":75},{"type":26,"tag":27,"props":2122,"children":2123},{},[2124,2125,2129,2130,2134],{"type":31,"value":80},{"type":26,"tag":82,"props":2126,"children":2127},{},[2128],{"type":31,"value":86},{"type":31,"value":88},{"type":26,"tag":82,"props":2131,"children":2132},{},[2133],{"type":31,"value":93},{"type":31,"value":95},{"type":26,"tag":27,"props":2136,"children":2137},{},[2138],{"type":31,"value":100},{"type":26,"tag":102,"props":2140,"children":2141},{"id":104},[2142],{"type":31,"value":107},{"type":26,"tag":27,"props":2144,"children":2145},{},[2146],{"type":31,"value":112},{"type":26,"tag":114,"props":2148,"children":2149},{},[2150,2154,2158,2162],{"type":26,"tag":118,"props":2151,"children":2152},{},[2153],{"type":31,"value":122},{"type":26,"tag":118,"props":2155,"children":2156},{},[2157],{"type":31,"value":127},{"type":26,"tag":118,"props":2159,"children":2160},{},[2161],{"type":31,"value":132},{"type":26,"tag":118,"props":2163,"children":2164},{},[2165],{"type":31,"value":137},{"type":26,"tag":102,"props":2167,"children":2168},{"id":140},[2169],{"type":31,"value":143},{"type":26,"tag":27,"props":2171,"children":2172},{},[2173],{"type":31,"value":148},{"type":26,"tag":114,"props":2175,"children":2176},{},[2177,2185,2205,2213],{"type":26,"tag":118,"props":2178,"children":2179},{},[2180,2184],{"type":26,"tag":156,"props":2181,"children":2182},{},[2183],{"type":31,"value":160},{"type":31,"value":162},{"type":26,"tag":118,"props":2186,"children":2187},{},[2188,2192,2193,2198,2199,2204],{"type":26,"tag":156,"props":2189,"children":2190},{},[2191],{"type":31,"value":170},{"type":31,"value":172},{"type":26,"tag":65,"props":2194,"children":2196},{"className":2195},[],[2197],{"type":31,"value":178},{"type":31,"value":180},{"type":26,"tag":65,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":31,"value":186},{"type":31,"value":188},{"type":26,"tag":118,"props":2206,"children":2207},{},[2208,2212],{"type":26,"tag":156,"props":2209,"children":2210},{},[2211],{"type":31,"value":196},{"type":31,"value":198},{"type":26,"tag":118,"props":2214,"children":2215},{},[2216,2220],{"type":26,"tag":156,"props":2217,"children":2218},{},[2219],{"type":31,"value":206},{"type":31,"value":208},{"type":26,"tag":44,"props":2222,"children":2223},{},[],{"type":26,"tag":48,"props":2225,"children":2226},{"id":214},[2227],{"type":31,"value":217},{"type":26,"tag":27,"props":2229,"children":2230},{},[2231],{"type":31,"value":222},{"type":26,"tag":70,"props":2233,"children":2234},{"id":225},[2235],{"type":31,"value":228},{"type":26,"tag":27,"props":2237,"children":2238},{},[2239],{"type":31,"value":233},{"type":26,"tag":60,"props":2241,"children":2242},{"code":236},[2243],{"type":26,"tag":65,"props":2244,"children":2245},{"__ignoreMap":7},[2246],{"type":31,"value":236},{"type":26,"tag":70,"props":2248,"children":2249},{"id":244},[2250],{"type":31,"value":247},{"type":26,"tag":27,"props":2252,"children":2253},{},[2254,2255,2259,2260,2264],{"type":31,"value":252},{"type":26,"tag":156,"props":2256,"children":2257},{},[2258],{"type":31,"value":257},{"type":31,"value":259},{"type":26,"tag":156,"props":2261,"children":2262},{},[2263],{"type":31,"value":264},{"type":31,"value":266},{"type":26,"tag":60,"props":2266,"children":2267},{"code":269},[2268],{"type":26,"tag":65,"props":2269,"children":2270},{"__ignoreMap":7},[2271],{"type":31,"value":269},{"type":26,"tag":27,"props":2273,"children":2274},{},[2275],{"type":31,"value":279},{"type":26,"tag":60,"props":2277,"children":2278},{"code":282},[2279],{"type":26,"tag":65,"props":2280,"children":2281},{"__ignoreMap":7},[2282],{"type":31,"value":282},{"type":26,"tag":27,"props":2284,"children":2285},{},[2286],{"type":31,"value":292},{"type":26,"tag":60,"props":2288,"children":2289},{"code":295},[2290],{"type":26,"tag":65,"props":2291,"children":2292},{"__ignoreMap":7},[2293],{"type":31,"value":295},{"type":26,"tag":27,"props":2295,"children":2296},{},[2297,2301],{"type":26,"tag":156,"props":2298,"children":2299},{},[2300],{"type":31,"value":308},{"type":31,"value":310},{"type":26,"tag":70,"props":2303,"children":2304},{"id":313},[2305],{"type":31,"value":316},{"type":26,"tag":27,"props":2307,"children":2308},{},[2309,2310,2314],{"type":31,"value":321},{"type":26,"tag":156,"props":2311,"children":2312},{},[2313],{"type":31,"value":326},{"type":31,"value":328},{"type":26,"tag":60,"props":2316,"children":2317},{"code":331},[2318],{"type":26,"tag":65,"props":2319,"children":2320},{"__ignoreMap":7},[2321],{"type":31,"value":331},{"type":26,"tag":27,"props":2323,"children":2324},{},[2325,2329],{"type":26,"tag":156,"props":2326,"children":2327},{},[2328],{"type":31,"value":308},{"type":31,"value":345},{"type":26,"tag":70,"props":2331,"children":2332},{"id":348},[2333],{"type":31,"value":351},{"type":26,"tag":27,"props":2335,"children":2336},{},[2337],{"type":31,"value":356},{"type":26,"tag":60,"props":2339,"children":2340},{"code":359},[2341],{"type":26,"tag":65,"props":2342,"children":2343},{"__ignoreMap":7},[2344],{"type":31,"value":359},{"type":26,"tag":27,"props":2346,"children":2347},{},[2348],{"type":31,"value":369},{"type":26,"tag":44,"props":2350,"children":2351},{},[],{"type":26,"tag":48,"props":2353,"children":2354},{"id":375},[2355],{"type":31,"value":378},{"type":26,"tag":27,"props":2357,"children":2358},{},[2359],{"type":31,"value":383},{"type":26,"tag":70,"props":2361,"children":2362},{"id":386},[2363],{"type":31,"value":389},{"type":26,"tag":114,"props":2365,"children":2366},{},[2367,2375],{"type":26,"tag":118,"props":2368,"children":2369},{},[2370,2374],{"type":26,"tag":156,"props":2371,"children":2372},{},[2373],{"type":31,"value":400},{"type":31,"value":402},{"type":26,"tag":118,"props":2376,"children":2377},{},[2378,2382,2383,2388,2389,2394],{"type":26,"tag":156,"props":2379,"children":2380},{},[2381],{"type":31,"value":410},{"type":31,"value":412},{"type":26,"tag":65,"props":2384,"children":2386},{"className":2385},[],[2387],{"type":31,"value":418},{"type":31,"value":420},{"type":26,"tag":65,"props":2390,"children":2392},{"className":2391},[],[2393],{"type":31,"value":426},{"type":31,"value":428},{"type":26,"tag":70,"props":2396,"children":2397},{"id":431},[2398],{"type":31,"value":434},{"type":26,"tag":436,"props":2400,"children":2401},{},[2402,2428],{"type":26,"tag":440,"props":2403,"children":2404},{},[2405],{"type":26,"tag":444,"props":2406,"children":2407},{},[2408,2412,2416,2420,2424],{"type":26,"tag":448,"props":2409,"children":2410},{"align":450},[2411],{"type":31,"value":453},{"type":26,"tag":448,"props":2413,"children":2414},{"align":450},[2415],{"type":31,"value":458},{"type":26,"tag":448,"props":2417,"children":2418},{"align":450},[2419],{"type":31,"value":463},{"type":26,"tag":448,"props":2421,"children":2422},{"align":450},[2423],{"type":31,"value":468},{"type":26,"tag":448,"props":2425,"children":2426},{"align":450},[2427],{"type":31,"value":473},{"type":26,"tag":475,"props":2429,"children":2430},{},[2431,2458,2484],{"type":26,"tag":444,"props":2432,"children":2433},{},[2434,2442,2446,2450,2454],{"type":26,"tag":482,"props":2435,"children":2436},{"align":450},[2437,2441],{"type":26,"tag":156,"props":2438,"children":2439},{},[2440],{"type":31,"value":489},{"type":31,"value":491},{"type":26,"tag":482,"props":2443,"children":2444},{"align":450},[2445],{"type":31,"value":496},{"type":26,"tag":482,"props":2447,"children":2448},{"align":450},[2449],{"type":31,"value":501},{"type":26,"tag":482,"props":2451,"children":2452},{"align":450},[2453],{"type":31,"value":506},{"type":26,"tag":482,"props":2455,"children":2456},{"align":450},[2457],{"type":31,"value":511},{"type":26,"tag":444,"props":2459,"children":2460},{},[2461,2468,2472,2476,2480],{"type":26,"tag":482,"props":2462,"children":2463},{"align":450},[2464],{"type":26,"tag":156,"props":2465,"children":2466},{},[2467],{"type":31,"value":522},{"type":26,"tag":482,"props":2469,"children":2470},{"align":450},[2471],{"type":31,"value":527},{"type":26,"tag":482,"props":2473,"children":2474},{"align":450},[2475],{"type":31,"value":532},{"type":26,"tag":482,"props":2477,"children":2478},{"align":450},[2479],{"type":31,"value":537},{"type":26,"tag":482,"props":2481,"children":2482},{"align":450},[2483],{"type":31,"value":542},{"type":26,"tag":444,"props":2485,"children":2486},{},[2487,2495,2499,2503,2507],{"type":26,"tag":482,"props":2488,"children":2489},{"align":450},[2490,2494],{"type":26,"tag":156,"props":2491,"children":2492},{},[2493],{"type":31,"value":553},{"type":31,"value":555},{"type":26,"tag":482,"props":2496,"children":2497},{"align":450},[2498],{"type":31,"value":527},{"type":26,"tag":482,"props":2500,"children":2501},{"align":450},[2502],{"type":31,"value":564},{"type":26,"tag":482,"props":2504,"children":2505},{"align":450},[2506],{"type":31,"value":569},{"type":26,"tag":482,"props":2508,"children":2509},{"align":450},[2510],{"type":31,"value":574},{"type":26,"tag":44,"props":2512,"children":2513},{},[],{"type":26,"tag":48,"props":2515,"children":2516},{"id":580},[2517],{"type":31,"value":583},{"type":26,"tag":27,"props":2519,"children":2520},{},[2521,2522],{"type":31,"value":588},{"type":26,"tag":156,"props":2523,"children":2524},{},[2525],{"type":31,"value":593},{"type":26,"tag":70,"props":2527,"children":2528},{"id":596},[2529],{"type":31,"value":599},{"type":26,"tag":60,"props":2531,"children":2532},{"code":602},[2533],{"type":26,"tag":65,"props":2534,"children":2535},{"__ignoreMap":7},[2536],{"type":31,"value":602},{"type":26,"tag":44,"props":2538,"children":2539},{},[],{"type":26,"tag":48,"props":2541,"children":2542},{"id":613},[2543],{"type":31,"value":616},{"type":26,"tag":27,"props":2545,"children":2546},{},[2547],{"type":31,"value":621},{"type":26,"tag":70,"props":2549,"children":2550},{"id":624},[2551],{"type":31,"value":627},{"type":26,"tag":27,"props":2553,"children":2554},{},[2555],{"type":31,"value":632},{"type":26,"tag":60,"props":2557,"children":2558},{"code":635,"language":636,"meta":7,"className":637,"style":7},[2559],{"type":26,"tag":65,"props":2560,"children":2561},{"__ignoreMap":7},[2562,2569,2576,2583,2590,2597,2604,2611,2618,2625,2632,2639,2646,2653,2660,2667],{"type":26,"tag":643,"props":2563,"children":2564},{"class":645,"line":646},[2565],{"type":26,"tag":643,"props":2566,"children":2567},{},[2568],{"type":31,"value":652},{"type":26,"tag":643,"props":2570,"children":2571},{"class":645,"line":655},[2572],{"type":26,"tag":643,"props":2573,"children":2574},{},[2575],{"type":31,"value":661},{"type":26,"tag":643,"props":2577,"children":2578},{"class":645,"line":664},[2579],{"type":26,"tag":643,"props":2580,"children":2581},{},[2582],{"type":31,"value":670},{"type":26,"tag":643,"props":2584,"children":2585},{"class":645,"line":673},[2586],{"type":26,"tag":643,"props":2587,"children":2588},{},[2589],{"type":31,"value":679},{"type":26,"tag":643,"props":2591,"children":2592},{"class":645,"line":682},[2593],{"type":26,"tag":643,"props":2594,"children":2595},{},[2596],{"type":31,"value":688},{"type":26,"tag":643,"props":2598,"children":2599},{"class":645,"line":691},[2600],{"type":26,"tag":643,"props":2601,"children":2602},{"emptyLinePlaceholder":21},[2603],{"type":31,"value":697},{"type":26,"tag":643,"props":2605,"children":2606},{"class":645,"line":700},[2607],{"type":26,"tag":643,"props":2608,"children":2609},{},[2610],{"type":31,"value":706},{"type":26,"tag":643,"props":2612,"children":2613},{"class":645,"line":709},[2614],{"type":26,"tag":643,"props":2615,"children":2616},{},[2617],{"type":31,"value":715},{"type":26,"tag":643,"props":2619,"children":2620},{"class":645,"line":718},[2621],{"type":26,"tag":643,"props":2622,"children":2623},{},[2624],{"type":31,"value":724},{"type":26,"tag":643,"props":2626,"children":2627},{"class":645,"line":727},[2628],{"type":26,"tag":643,"props":2629,"children":2630},{},[2631],{"type":31,"value":733},{"type":26,"tag":643,"props":2633,"children":2634},{"class":645,"line":736},[2635],{"type":26,"tag":643,"props":2636,"children":2637},{},[2638],{"type":31,"value":742},{"type":26,"tag":643,"props":2640,"children":2641},{"class":645,"line":745},[2642],{"type":26,"tag":643,"props":2643,"children":2644},{},[2645],{"type":31,"value":751},{"type":26,"tag":643,"props":2647,"children":2648},{"class":645,"line":754},[2649],{"type":26,"tag":643,"props":2650,"children":2651},{},[2652],{"type":31,"value":760},{"type":26,"tag":643,"props":2654,"children":2655},{"class":645,"line":763},[2656],{"type":26,"tag":643,"props":2657,"children":2658},{},[2659],{"type":31,"value":769},{"type":26,"tag":643,"props":2661,"children":2662},{"class":645,"line":772},[2663],{"type":26,"tag":643,"props":2664,"children":2665},{},[2666],{"type":31,"value":778},{"type":26,"tag":643,"props":2668,"children":2669},{"class":645,"line":781},[2670],{"type":26,"tag":643,"props":2671,"children":2672},{},[2673],{"type":31,"value":787},{"type":26,"tag":27,"props":2675,"children":2676},{},[2677],{"type":26,"tag":82,"props":2678,"children":2679},{},[2680],{"type":31,"value":795},{"type":26,"tag":27,"props":2682,"children":2683},{},[2684],{"type":26,"tag":156,"props":2685,"children":2686},{},[2687],{"type":31,"value":803},{"type":26,"tag":114,"props":2689,"children":2690},{},[2691,2706,2715],{"type":26,"tag":118,"props":2692,"children":2693},{},[2694,2699,2700,2705],{"type":26,"tag":65,"props":2695,"children":2697},{"className":2696},[],[2698],{"type":31,"value":815},{"type":31,"value":817},{"type":26,"tag":65,"props":2701,"children":2703},{"className":2702},[],[2704],{"type":31,"value":823},{"type":31,"value":825},{"type":26,"tag":118,"props":2707,"children":2708},{},[2709,2714],{"type":26,"tag":65,"props":2710,"children":2712},{"className":2711},[],[2713],{"type":31,"value":834},{"type":31,"value":836},{"type":26,"tag":118,"props":2716,"children":2717},{},[2718,2723],{"type":26,"tag":65,"props":2719,"children":2721},{"className":2720},[],[2722],{"type":31,"value":845},{"type":31,"value":847},{"type":26,"tag":70,"props":2725,"children":2726},{"id":850},[2727],{"type":31,"value":853},{"type":26,"tag":60,"props":2729,"children":2730},{"code":856,"language":857,"meta":7,"className":858,"style":7},[2731],{"type":26,"tag":65,"props":2732,"children":2733},{"__ignoreMap":7},[2734,2741,2760,2791,2814,2837,2860,2875,2890,2917,2924,2931,2938,2957,2976,3011,3042,3073,3100,3139,3162,3189,3216,3227,3234,3241,3272],{"type":26,"tag":643,"props":2735,"children":2736},{"class":645,"line":646},[2737],{"type":26,"tag":643,"props":2738,"children":2739},{"style":868},[2740],{"type":31,"value":871},{"type":26,"tag":643,"props":2742,"children":2743},{"class":645,"line":655},[2744,2748,2752,2756],{"type":26,"tag":643,"props":2745,"children":2746},{"style":877},[2747],{"type":31,"value":880},{"type":26,"tag":643,"props":2749,"children":2750},{"style":877},[2751],{"type":31,"value":885},{"type":26,"tag":643,"props":2753,"children":2754},{"style":888},[2755],{"type":31,"value":891},{"type":26,"tag":643,"props":2757,"children":2758},{"style":894},[2759],{"type":31,"value":897},{"type":26,"tag":643,"props":2761,"children":2762},{"class":645,"line":664},[2763,2767,2771,2775,2779,2783,2787],{"type":26,"tag":643,"props":2764,"children":2765},{"style":894},[2766],{"type":31,"value":905},{"type":26,"tag":643,"props":2768,"children":2769},{"style":877},[2770],{"type":31,"value":910},{"type":26,"tag":643,"props":2772,"children":2773},{"style":894},[2774],{"type":31,"value":915},{"type":26,"tag":643,"props":2776,"children":2777},{"style":918},[2778],{"type":31,"value":921},{"type":26,"tag":643,"props":2780,"children":2781},{"style":894},[2782],{"type":31,"value":926},{"type":26,"tag":643,"props":2784,"children":2785},{"style":877},[2786],{"type":31,"value":931},{"type":26,"tag":643,"props":2788,"children":2789},{"style":894},[2790],{"type":31,"value":936},{"type":26,"tag":643,"props":2792,"children":2793},{"class":645,"line":673},[2794,2798,2802,2806,2810],{"type":26,"tag":643,"props":2795,"children":2796},{"style":894},[2797],{"type":31,"value":944},{"type":26,"tag":643,"props":2799,"children":2800},{"style":877},[2801],{"type":31,"value":949},{"type":26,"tag":643,"props":2803,"children":2804},{"style":877},[2805],{"type":31,"value":954},{"type":26,"tag":643,"props":2807,"children":2808},{"style":877},[2809],{"type":31,"value":959},{"type":26,"tag":643,"props":2811,"children":2812},{"style":894},[2813],{"type":31,"value":964},{"type":26,"tag":643,"props":2815,"children":2816},{"class":645,"line":682},[2817,2821,2825,2829,2833],{"type":26,"tag":643,"props":2818,"children":2819},{"style":894},[2820],{"type":31,"value":972},{"type":26,"tag":643,"props":2822,"children":2823},{"style":877},[2824],{"type":31,"value":949},{"type":26,"tag":643,"props":2826,"children":2827},{"style":877},[2828],{"type":31,"value":954},{"type":26,"tag":643,"props":2830,"children":2831},{"style":877},[2832],{"type":31,"value":959},{"type":26,"tag":643,"props":2834,"children":2835},{"style":894},[2836],{"type":31,"value":964},{"type":26,"tag":643,"props":2838,"children":2839},{"class":645,"line":691},[2840,2844,2848,2852,2856],{"type":26,"tag":643,"props":2841,"children":2842},{"style":894},[2843],{"type":31,"value":996},{"type":26,"tag":643,"props":2845,"children":2846},{"style":877},[2847],{"type":31,"value":949},{"type":26,"tag":643,"props":2849,"children":2850},{"style":877},[2851],{"type":31,"value":954},{"type":26,"tag":643,"props":2853,"children":2854},{"style":877},[2855],{"type":31,"value":959},{"type":26,"tag":643,"props":2857,"children":2858},{"style":894},[2859],{"type":31,"value":964},{"type":26,"tag":643,"props":2861,"children":2862},{"class":645,"line":700},[2863,2867,2871],{"type":26,"tag":643,"props":2864,"children":2865},{"style":894},[2866],{"type":31,"value":1020},{"type":26,"tag":643,"props":2868,"children":2869},{"style":877},[2870],{"type":31,"value":1025},{"type":26,"tag":643,"props":2872,"children":2873},{"style":894},[2874],{"type":31,"value":936},{"type":26,"tag":643,"props":2876,"children":2877},{"class":645,"line":709},[2878,2882,2886],{"type":26,"tag":643,"props":2879,"children":2880},{"style":894},[2881],{"type":31,"value":1037},{"type":26,"tag":643,"props":2883,"children":2884},{"style":877},[2885],{"type":31,"value":1025},{"type":26,"tag":643,"props":2887,"children":2888},{"style":894},[2889],{"type":31,"value":936},{"type":26,"tag":643,"props":2891,"children":2892},{"class":645,"line":718},[2893,2897,2901,2905,2909,2913],{"type":26,"tag":643,"props":2894,"children":2895},{"style":894},[2896],{"type":31,"value":1053},{"type":26,"tag":643,"props":2898,"children":2899},{"style":877},[2900],{"type":31,"value":1058},{"type":26,"tag":643,"props":2902,"children":2903},{"style":877},[2904],{"type":31,"value":954},{"type":26,"tag":643,"props":2906,"children":2907},{"style":877},[2908],{"type":31,"value":959},{"type":26,"tag":643,"props":2910,"children":2911},{"style":877},[2912],{"type":31,"value":1071},{"type":26,"tag":643,"props":2914,"children":2915},{"style":894},[2916],{"type":31,"value":1076},{"type":26,"tag":643,"props":2918,"children":2919},{"class":645,"line":727},[2920],{"type":26,"tag":643,"props":2921,"children":2922},{"style":894},[2923],{"type":31,"value":1084},{"type":26,"tag":643,"props":2925,"children":2926},{"class":645,"line":736},[2927],{"type":26,"tag":643,"props":2928,"children":2929},{"emptyLinePlaceholder":21},[2930],{"type":31,"value":697},{"type":26,"tag":643,"props":2932,"children":2933},{"class":645,"line":745},[2934],{"type":26,"tag":643,"props":2935,"children":2936},{"style":868},[2937],{"type":31,"value":1099},{"type":26,"tag":643,"props":2939,"children":2940},{"class":645,"line":754},[2941,2945,2949,2953],{"type":26,"tag":643,"props":2942,"children":2943},{"style":877},[2944],{"type":31,"value":880},{"type":26,"tag":643,"props":2946,"children":2947},{"style":877},[2948],{"type":31,"value":885},{"type":26,"tag":643,"props":2950,"children":2951},{"style":888},[2952],{"type":31,"value":1115},{"type":26,"tag":643,"props":2954,"children":2955},{"style":894},[2956],{"type":31,"value":897},{"type":26,"tag":643,"props":2958,"children":2959},{"class":645,"line":763},[2960,2964,2968,2972],{"type":26,"tag":643,"props":2961,"children":2962},{"style":894},[2963],{"type":31,"value":1127},{"type":26,"tag":643,"props":2965,"children":2966},{"style":877},[2967],{"type":31,"value":931},{"type":26,"tag":643,"props":2969,"children":2970},{"style":877},[2971],{"type":31,"value":959},{"type":26,"tag":643,"props":2973,"children":2974},{"style":894},[2975],{"type":31,"value":1140},{"type":26,"tag":643,"props":2977,"children":2978},{"class":645,"line":772},[2979,2983,2987,2991,2995,2999,3003,3007],{"type":26,"tag":643,"props":2980,"children":2981},{"style":894},[2982],{"type":31,"value":1148},{"type":26,"tag":643,"props":2984,"children":2985},{"style":877},[2986],{"type":31,"value":910},{"type":26,"tag":643,"props":2988,"children":2989},{"style":894},[2990],{"type":31,"value":915},{"type":26,"tag":643,"props":2992,"children":2993},{"style":918},[2994],{"type":31,"value":1161},{"type":26,"tag":643,"props":2996,"children":2997},{"style":894},[2998],{"type":31,"value":926},{"type":26,"tag":643,"props":3000,"children":3001},{"style":877},[3002],{"type":31,"value":1170},{"type":26,"tag":643,"props":3004,"children":3005},{"style":877},[3006],{"type":31,"value":954},{"type":26,"tag":643,"props":3008,"children":3009},{"style":894},[3010],{"type":31,"value":936},{"type":26,"tag":643,"props":3012,"children":3013},{"class":645,"line":781},[3014,3018,3022,3026,3030,3034,3038],{"type":26,"tag":643,"props":3015,"children":3016},{"style":894},[3017],{"type":31,"value":905},{"type":26,"tag":643,"props":3019,"children":3020},{"style":877},[3021],{"type":31,"value":910},{"type":26,"tag":643,"props":3023,"children":3024},{"style":894},[3025],{"type":31,"value":915},{"type":26,"tag":643,"props":3027,"children":3028},{"style":918},[3029],{"type":31,"value":921},{"type":26,"tag":643,"props":3031,"children":3032},{"style":894},[3033],{"type":31,"value":926},{"type":26,"tag":643,"props":3035,"children":3036},{"style":877},[3037],{"type":31,"value":1206},{"type":26,"tag":643,"props":3039,"children":3040},{"style":894},[3041],{"type":31,"value":936},{"type":26,"tag":643,"props":3043,"children":3044},{"class":645,"line":1213},[3045,3049,3053,3057,3061,3065,3069],{"type":26,"tag":643,"props":3046,"children":3047},{"style":894},[3048],{"type":31,"value":1219},{"type":26,"tag":643,"props":3050,"children":3051},{"style":877},[3052],{"type":31,"value":910},{"type":26,"tag":643,"props":3054,"children":3055},{"style":894},[3056],{"type":31,"value":915},{"type":26,"tag":643,"props":3058,"children":3059},{"style":918},[3060],{"type":31,"value":1232},{"type":26,"tag":643,"props":3062,"children":3063},{"style":894},[3064],{"type":31,"value":926},{"type":26,"tag":643,"props":3066,"children":3067},{"style":877},[3068],{"type":31,"value":1206},{"type":26,"tag":643,"props":3070,"children":3071},{"style":894},[3072],{"type":31,"value":936},{"type":26,"tag":643,"props":3074,"children":3075},{"class":645,"line":1247},[3076,3080,3084,3088,3092,3096],{"type":26,"tag":643,"props":3077,"children":3078},{"style":877},[3079],{"type":31,"value":1253},{"type":26,"tag":643,"props":3081,"children":3082},{"style":894},[3083],{"type":31,"value":915},{"type":26,"tag":643,"props":3085,"children":3086},{"style":918},[3087],{"type":31,"value":1262},{"type":26,"tag":643,"props":3089,"children":3090},{"style":894},[3091],{"type":31,"value":926},{"type":26,"tag":643,"props":3093,"children":3094},{"style":877},[3095],{"type":31,"value":1206},{"type":26,"tag":643,"props":3097,"children":3098},{"style":894},[3099],{"type":31,"value":936},{"type":26,"tag":643,"props":3101,"children":3102},{"class":645,"line":1277},[3103,3107,3111,3115,3119,3123,3127,3131,3135],{"type":26,"tag":643,"props":3104,"children":3105},{"style":877},[3106],{"type":31,"value":1283},{"type":26,"tag":643,"props":3108,"children":3109},{"style":877},[3110],{"type":31,"value":1288},{"type":26,"tag":643,"props":3112,"children":3113},{"style":894},[3114],{"type":31,"value":915},{"type":26,"tag":643,"props":3116,"children":3117},{"style":918},[3118],{"type":31,"value":1232},{"type":26,"tag":643,"props":3120,"children":3121},{"style":894},[3122],{"type":31,"value":926},{"type":26,"tag":643,"props":3124,"children":3125},{"style":877},[3126],{"type":31,"value":1206},{"type":26,"tag":643,"props":3128,"children":3129},{"style":877},[3130],{"type":31,"value":959},{"type":26,"tag":643,"props":3132,"children":3133},{"style":1311},[3134],{"type":31,"value":1314},{"type":26,"tag":643,"props":3136,"children":3137},{"style":894},[3138],{"type":31,"value":936},{"type":26,"tag":643,"props":3140,"children":3141},{"class":645,"line":1321},[3142,3146,3150,3154,3158],{"type":26,"tag":643,"props":3143,"children":3144},{"style":894},[3145],{"type":31,"value":1327},{"type":26,"tag":643,"props":3147,"children":3148},{"style":877},[3149],{"type":31,"value":910},{"type":26,"tag":643,"props":3151,"children":3152},{"style":894},[3153],{"type":31,"value":915},{"type":26,"tag":643,"props":3155,"children":3156},{"style":918},[3157],{"type":31,"value":1161},{"type":26,"tag":643,"props":3159,"children":3160},{"style":894},[3161],{"type":31,"value":1344},{"type":26,"tag":643,"props":3163,"children":3164},{"class":645,"line":1347},[3165,3169,3173,3177,3181,3185],{"type":26,"tag":643,"props":3166,"children":3167},{"style":894},[3168],{"type":31,"value":1353},{"type":26,"tag":643,"props":3170,"children":3171},{"style":877},[3172],{"type":31,"value":1358},{"type":26,"tag":643,"props":3174,"children":3175},{"style":877},[3176],{"type":31,"value":954},{"type":26,"tag":643,"props":3178,"children":3179},{"style":877},[3180],{"type":31,"value":959},{"type":26,"tag":643,"props":3182,"children":3183},{"style":918},[3184],{"type":31,"value":1371},{"type":26,"tag":643,"props":3186,"children":3187},{"style":894},[3188],{"type":31,"value":936},{"type":26,"tag":643,"props":3190,"children":3191},{"class":645,"line":1378},[3192,3196,3200,3204,3208,3212],{"type":26,"tag":643,"props":3193,"children":3194},{"style":894},[3195],{"type":31,"value":1384},{"type":26,"tag":643,"props":3197,"children":3198},{"style":877},[3199],{"type":31,"value":1058},{"type":26,"tag":643,"props":3201,"children":3202},{"style":877},[3203],{"type":31,"value":954},{"type":26,"tag":643,"props":3205,"children":3206},{"style":877},[3207],{"type":31,"value":959},{"type":26,"tag":643,"props":3209,"children":3210},{"style":877},[3211],{"type":31,"value":1071},{"type":26,"tag":643,"props":3213,"children":3214},{"style":894},[3215],{"type":31,"value":1405},{"type":26,"tag":643,"props":3217,"children":3218},{"class":645,"line":1408},[3219,3223],{"type":26,"tag":643,"props":3220,"children":3221},{"style":894},[3222],{"type":31,"value":1414},{"type":26,"tag":643,"props":3224,"children":3225},{"style":877},[3226],{"type":31,"value":1419},{"type":26,"tag":643,"props":3228,"children":3229},{"class":645,"line":1422},[3230],{"type":26,"tag":643,"props":3231,"children":3232},{"style":894},[3233],{"type":31,"value":1084},{"type":26,"tag":643,"props":3235,"children":3236},{"class":645,"line":1430},[3237],{"type":26,"tag":643,"props":3238,"children":3239},{"emptyLinePlaceholder":21},[3240],{"type":31,"value":697},{"type":26,"tag":643,"props":3242,"children":3243},{"class":645,"line":1438},[3244,3248,3252,3256,3260,3264,3268],{"type":26,"tag":643,"props":3245,"children":3246},{"style":877},[3247],{"type":31,"value":880},{"type":26,"tag":643,"props":3249,"children":3250},{"style":877},[3251],{"type":31,"value":1448},{"type":26,"tag":643,"props":3253,"children":3254},{"style":888},[3255],{"type":31,"value":1453},{"type":26,"tag":643,"props":3257,"children":3258},{"style":877},[3259],{"type":31,"value":1458},{"type":26,"tag":643,"props":3261,"children":3262},{"style":894},[3263],{"type":31,"value":1463},{"type":26,"tag":643,"props":3265,"children":3266},{"style":877},[3267],{"type":31,"value":1468},{"type":26,"tag":643,"props":3269,"children":3270},{"style":894},[3271],{"type":31,"value":1084},{"type":26,"tag":643,"props":3273,"children":3274},{"class":645,"line":1475},[3275,3279,3283,3287,3291],{"type":26,"tag":643,"props":3276,"children":3277},{"style":877},[3278],{"type":31,"value":880},{"type":26,"tag":643,"props":3280,"children":3281},{"style":877},[3282],{"type":31,"value":1448},{"type":26,"tag":643,"props":3284,"children":3285},{"style":888},[3286],{"type":31,"value":1489},{"type":26,"tag":643,"props":3288,"children":3289},{"style":877},[3290],{"type":31,"value":1458},{"type":26,"tag":643,"props":3292,"children":3293},{"style":894},[3294],{"type":31,"value":1498},{"type":26,"tag":44,"props":3296,"children":3297},{},[],{"type":26,"tag":48,"props":3299,"children":3300},{"id":1504},[3301],{"type":31,"value":1507},{"type":26,"tag":27,"props":3303,"children":3304},{},[3305],{"type":31,"value":1512},{"type":26,"tag":70,"props":3307,"children":3308},{"id":1515},[3309],{"type":31,"value":1518},{"type":26,"tag":27,"props":3311,"children":3312},{},[3313],{"type":31,"value":1523},{"type":26,"tag":27,"props":3315,"children":3316},{},[3317],{"type":31,"value":1528},{"type":26,"tag":1530,"props":3319,"children":3320},{},[3321,3331,3374],{"type":26,"tag":118,"props":3322,"children":3323},{},[3324,3325,3330],{"type":31,"value":1537},{"type":26,"tag":65,"props":3326,"children":3328},{"className":3327},[],[3329],{"type":31,"value":1543},{"type":31,"value":825},{"type":26,"tag":118,"props":3332,"children":3333},{},[3334,3335,3340,3341],{"type":31,"value":1549},{"type":26,"tag":65,"props":3336,"children":3338},{"className":3337},[],[3339],{"type":31,"value":1555},{"type":31,"value":1557},{"type":26,"tag":60,"props":3342,"children":3343},{"code":1560,"language":1561,"meta":7,"className":1562,"style":7},[3344],{"type":26,"tag":65,"props":3345,"children":3346},{"__ignoreMap":7},[3347],{"type":26,"tag":643,"props":3348,"children":3349},{"class":645,"line":646},[3350,3354,3358,3362,3366,3370],{"type":26,"tag":643,"props":3351,"children":3352},{"style":888},[3353],{"type":31,"value":1555},{"type":26,"tag":643,"props":3355,"children":3356},{"style":1311},[3357],{"type":31,"value":1578},{"type":26,"tag":643,"props":3359,"children":3360},{"style":1311},[3361],{"type":31,"value":1583},{"type":26,"tag":643,"props":3363,"children":3364},{"style":1311},[3365],{"type":31,"value":1588},{"type":26,"tag":643,"props":3367,"children":3368},{"style":1311},[3369],{"type":31,"value":1593},{"type":26,"tag":643,"props":3371,"children":3372},{"style":918},[3373],{"type":31,"value":1598},{"type":26,"tag":118,"props":3375,"children":3376},{},[3377,3378,3383,3384,3389],{"type":31,"value":1603},{"type":26,"tag":65,"props":3379,"children":3381},{"className":3380},[],[3382],{"type":31,"value":1609},{"type":31,"value":1611},{"type":26,"tag":65,"props":3385,"children":3387},{"className":3386},[],[3388],{"type":31,"value":815},{"type":31,"value":1618},{"type":26,"tag":70,"props":3391,"children":3392},{"id":1621},[3393],{"type":31,"value":1624},{"type":26,"tag":27,"props":3395,"children":3396},{},[3397],{"type":31,"value":1629},{"type":26,"tag":114,"props":3399,"children":3400},{},[3401,3417],{"type":26,"tag":118,"props":3402,"children":3403},{},[3404,3405,3410,3411,3416],{"type":31,"value":1637},{"type":26,"tag":65,"props":3406,"children":3408},{"className":3407},[],[3409],{"type":31,"value":1643},{"type":31,"value":1645},{"type":26,"tag":65,"props":3412,"children":3414},{"className":3413},[],[3415],{"type":31,"value":1651},{"type":31,"value":825},{"type":26,"tag":118,"props":3418,"children":3419},{},[3420],{"type":31,"value":1657},{"type":26,"tag":70,"props":3422,"children":3423},{"id":1660},[3424],{"type":31,"value":1663},{"type":26,"tag":27,"props":3426,"children":3427},{},[3428],{"type":31,"value":1668},{"type":26,"tag":27,"props":3430,"children":3431},{},[3432,3433,3437],{"type":31,"value":1673},{"type":26,"tag":156,"props":3434,"children":3435},{},[3436],{"type":31,"value":1678},{"type":31,"value":1680},{"type":26,"tag":114,"props":3439,"children":3440},{},[3441,3449,3457],{"type":26,"tag":118,"props":3442,"children":3443},{},[3444,3448],{"type":26,"tag":156,"props":3445,"children":3446},{},[3447],{"type":31,"value":1691},{"type":31,"value":1693},{"type":26,"tag":118,"props":3450,"children":3451},{},[3452,3456],{"type":26,"tag":156,"props":3453,"children":3454},{},[3455],{"type":31,"value":1701},{"type":31,"value":1703},{"type":26,"tag":118,"props":3458,"children":3459},{},[3460,3464],{"type":26,"tag":156,"props":3461,"children":3462},{},[3463],{"type":31,"value":1711},{"type":31,"value":1713},{"type":26,"tag":70,"props":3466,"children":3467},{"id":1716},[3468],{"type":31,"value":1719},{"type":26,"tag":27,"props":3470,"children":3471},{},[3472,3473,3477],{"type":31,"value":1724},{"type":26,"tag":156,"props":3474,"children":3475},{},[3476],{"type":31,"value":1729},{"type":31,"value":825},{"type":26,"tag":27,"props":3479,"children":3480},{},[3481],{"type":31,"value":1735},{"type":26,"tag":60,"props":3483,"children":3484},{"code":1738},[3485],{"type":26,"tag":65,"props":3486,"children":3487},{"__ignoreMap":7},[3488],{"type":31,"value":1738},{"type":26,"tag":27,"props":3490,"children":3491},{},[3492,3493,3497],{"type":31,"value":1748},{"type":26,"tag":156,"props":3494,"children":3495},{},[3496],{"type":31,"value":1753},{"type":31,"value":1755},{"type":26,"tag":44,"props":3499,"children":3500},{},[],{"type":26,"tag":48,"props":3502,"children":3503},{"id":1761},[3504],{"type":31,"value":1764},{"type":26,"tag":27,"props":3506,"children":3507},{},[3508,3509,3513,3514,3518],{"type":31,"value":1769},{"type":26,"tag":82,"props":3510,"children":3511},{},[3512],{"type":31,"value":1774},{"type":31,"value":1776},{"type":26,"tag":82,"props":3515,"children":3516},{},[3517],{"type":31,"value":1781},{"type":31,"value":1783},{"type":26,"tag":114,"props":3520,"children":3521},{},[3522,3534,3546],{"type":26,"tag":118,"props":3523,"children":3524},{},[3525,3529,3530],{"type":26,"tag":156,"props":3526,"children":3527},{},[3528],{"type":31,"value":1794},{"type":31,"value":1796},{"type":26,"tag":82,"props":3531,"children":3532},{},[3533],{"type":31,"value":1801},{"type":26,"tag":118,"props":3535,"children":3536},{},[3537,3541,3542],{"type":26,"tag":156,"props":3538,"children":3539},{},[3540],{"type":31,"value":1809},{"type":31,"value":1796},{"type":26,"tag":82,"props":3543,"children":3544},{},[3545],{"type":31,"value":1815},{"type":26,"tag":118,"props":3547,"children":3548},{},[3549,3553,3554],{"type":26,"tag":156,"props":3550,"children":3551},{},[3552],{"type":31,"value":1823},{"type":31,"value":1796},{"type":26,"tag":82,"props":3555,"children":3556},{},[3557,3558,3563],{"type":31,"value":1829},{"type":26,"tag":65,"props":3559,"children":3561},{"className":3560},[],[3562],{"type":31,"value":1835},{"type":31,"value":1837},{"type":26,"tag":44,"props":3565,"children":3566},{},[],{"type":26,"tag":48,"props":3568,"children":3569},{"id":1843},[3570],{"type":31,"value":1846},{"type":26,"tag":27,"props":3572,"children":3573},{},[3574],{"type":31,"value":1851},{"type":26,"tag":114,"props":3576,"children":3578},{"className":3577},[1855],[3579,3587,3595,3608,3621,3629],{"type":26,"tag":118,"props":3580,"children":3582},{"className":3581},[1860],[3583,3586],{"type":26,"tag":1863,"props":3584,"children":3585},{"disabled":21,"type":1865},[],{"type":31,"value":1868},{"type":26,"tag":118,"props":3588,"children":3590},{"className":3589},[1860],[3591,3594],{"type":26,"tag":1863,"props":3592,"children":3593},{"disabled":21,"type":1865},[],{"type":31,"value":1877},{"type":26,"tag":118,"props":3596,"children":3598},{"className":3597},[1860],[3599,3602,3603,3607],{"type":26,"tag":1863,"props":3600,"children":3601},{"disabled":21,"type":1865},[],{"type":31,"value":1886},{"type":26,"tag":1888,"props":3604,"children":3605},{"href":1890},[3606],{"type":31,"value":1893},{"type":31,"value":95},{"type":26,"tag":118,"props":3609,"children":3611},{"className":3610},[1860],[3612,3615,3616,3620],{"type":26,"tag":1863,"props":3613,"children":3614},{"disabled":21,"type":1865},[],{"type":31,"value":1903},{"type":26,"tag":1888,"props":3617,"children":3618},{"href":1906},[3619],{"type":31,"value":1909},{"type":31,"value":95},{"type":26,"tag":118,"props":3622,"children":3624},{"className":3623},[1860],[3625,3628],{"type":26,"tag":1863,"props":3626,"children":3627},{"disabled":21,"type":1865},[],{"type":31,"value":1919},{"type":26,"tag":118,"props":3630,"children":3632},{"className":3631},[1860],[3633,3636,3637,3641],{"type":26,"tag":1863,"props":3634,"children":3635},{"disabled":21,"type":1865},[],{"type":31,"value":1928},{"type":26,"tag":1888,"props":3638,"children":3639},{"href":1931},[3640],{"type":31,"value":1934},{"type":31,"value":95},{"type":26,"tag":44,"props":3643,"children":3644},{},[],{"type":26,"tag":48,"props":3646,"children":3647},{"id":1941},[3648],{"type":31,"value":1944},{"type":26,"tag":114,"props":3650,"children":3651},{},[3652,3665,3678,3691,3704],{"type":26,"tag":118,"props":3653,"children":3654},{},[3655,3659,3660,3664],{"type":26,"tag":156,"props":3656,"children":3657},{},[3658],{"type":31,"value":1955},{"type":31,"value":1957},{"type":26,"tag":82,"props":3661,"children":3662},{},[3663],{"type":31,"value":1962},{"type":31,"value":1964},{"type":26,"tag":118,"props":3666,"children":3667},{},[3668,3672,3673,3677],{"type":26,"tag":156,"props":3669,"children":3670},{},[3671],{"type":31,"value":1972},{"type":31,"value":1974},{"type":26,"tag":82,"props":3674,"children":3675},{},[3676],{"type":31,"value":1979},{"type":31,"value":1981},{"type":26,"tag":118,"props":3679,"children":3680},{},[3681,3685,3686,3690],{"type":26,"tag":156,"props":3682,"children":3683},{},[3684],{"type":31,"value":1989},{"type":31,"value":1991},{"type":26,"tag":82,"props":3687,"children":3688},{},[3689],{"type":31,"value":1996},{"type":31,"value":1998},{"type":26,"tag":118,"props":3692,"children":3693},{},[3694,3698,3699,3703],{"type":26,"tag":156,"props":3695,"children":3696},{},[3697],{"type":31,"value":2006},{"type":31,"value":2008},{"type":26,"tag":82,"props":3700,"children":3701},{},[3702],{"type":31,"value":2013},{"type":31,"value":2015},{"type":26,"tag":118,"props":3705,"children":3706},{},[3707,3711,3712,3716,3717],{"type":26,"tag":156,"props":3708,"children":3709},{},[3710],{"type":31,"value":2023},{"type":31,"value":1796},{"type":26,"tag":82,"props":3713,"children":3714},{},[3715],{"type":31,"value":2029},{"type":31,"value":1796},{"type":26,"tag":1888,"props":3718,"children":3720},{"href":2033,"rel":3719},[2035],[3721],{"type":31,"value":2038},{"type":26,"tag":2040,"props":3723,"children":3724},{},[3725],{"type":31,"value":2044},{"title":7,"searchDepth":655,"depth":655,"links":3727},[3728,3731,3737,3741,3744,3748,3754,3755,3756],{"id":50,"depth":655,"text":53,"children":3729},[3730],{"id":72,"depth":664,"text":75},{"id":214,"depth":655,"text":217,"children":3732},[3733,3734,3735,3736],{"id":225,"depth":664,"text":228},{"id":244,"depth":664,"text":247},{"id":313,"depth":664,"text":316},{"id":348,"depth":664,"text":351},{"id":375,"depth":655,"text":378,"children":3738},[3739,3740],{"id":386,"depth":664,"text":389},{"id":431,"depth":664,"text":434},{"id":580,"depth":655,"text":583,"children":3742},[3743],{"id":596,"depth":664,"text":599},{"id":613,"depth":655,"text":616,"children":3745},[3746,3747],{"id":624,"depth":664,"text":627},{"id":850,"depth":664,"text":853},{"id":1504,"depth":655,"text":1507,"children":3749},[3750,3751,3752,3753],{"id":1515,"depth":664,"text":1518},{"id":1621,"depth":664,"text":1624},{"id":1660,"depth":664,"text":1663},{"id":1716,"depth":664,"text":1719},{"id":1761,"depth":655,"text":1764},{"id":1843,"depth":655,"text":1846},{"id":1941,"depth":655,"text":1944},1793122080513]