Analyze this document image and extract ALL content with precise layout structure. IMPORTANT RULES: 1. Extract EVERY piece of text, including reference numbers, dates, fine print 2. For TABLES or FORM-LIKE layouts (label: value pairs), extract properly 3. Merge continuous paragraph text into single elements 4. DETECT visible lines/borders in tables For each element, provide: 1. "content": The exact text 2. "type": One of: header, title, subtitle, paragraph, list_item, label, value, footer, logo_area, photo_area, signature_area, qr_code 3. "region": "full_width", "left", "right", or "center" 4. "row": Group elements on same horizontal line with same row number 5. "style": {"alignment": "left/center/right", "bold": true/false, "size": "small/normal/large/xlarge"} SPECIAL HANDLING FOR TABLES/FORMS: - For "Label : Value" rows: put label in "left", colon ":" in "center", value in "right" - IMPORTANT: Only include ":" separator if there is actual VALUE content after it - If value is EMPTY (no text after ":"), do NOT include the ":" as separate element - Mark "table_start": true when a new table section begins - If table has VISIBLE GRID LINES (vertical and/or horizontal), add "has_grid": true - If a row has a visible horizontal LINE above it, add "has_border_top": true - If a row has a visible horizontal LINE below it, add "has_border_bottom": true - If a row has BACKGROUND COLOR/HIGHLIGHTING, add "has_background": true Use placeholders for non-text elements (keep them as SEPARATE elements, don't join): - "[Logo Affixed]" for logos/emblems - "[Photo Affixed]" for photographs - "[Signature Affixed]" for signatures - "[QR Code Affixed]" for QR codes Return ONLY valid JSON: { "document_type": "business_profile", "layout_rows": [ { "row": 1, "elements": [ {"content": "HEADER TEXT", "type": "header", "region": "center", "style": {"bold": true}}, {"content": "[Logo Affixed]", "type": "logo_area", "region": "right", "style": {}} ] }, { "row": 2, "elements": [ {"content": "Document Title", "type": "title", "region": "left", "style": {"bold": true, "size": "large"}}, {"content": "Date: 20 Nov 2025", "type": "value", "region": "right", "style": {}} ] }, { "row": 3, "table_start": true, "has_border_top": true, "elements": [ {"content": "Name of Company", "type": "label", "region": "left", "style": {}}, {"content": ":", "type": "separator", "region": "center", "style": {}}, {"content": "ABC PTE. LTD.", "type": "value", "region": "right", "style": {}} ] }, { "row": 4, "has_border_top": true, "elements": [ {"content": "Former Name", "type": "label", "region": "left", "style": {}}, {"content": ":", "type": "separator", "region": "center", "style": {}}, {"content": "", "type": "value", "region": "right", "style": {}} ] }, { "row": 5, "has_border_top": true, "elements": [ {"content": "UEN", "type": "label", "region": "left", "style": {}}, {"content": ":", "type": "separator", "region": "center", "style": {}}, {"content": "123456789A", "type": "value", "region": "right", "style": {}} ] }, { "row": 6, "elements": [ {"content": "Page 1 of 5", "type": "footer", "region": "left", "style": {"size": "small"}}, {"content": "[QR Code Affixed]", "type": "qr_code", "region": "right", "style": {}} ] } ] } Key requirements: - Group elements on SAME horizontal line into SAME row - IMPORTANT: Add "has_border_top": true for EVERY row that is part of a table (has visible horizontal line above) - Only include ":" if there is actual value content (not empty) - Keep placeholders like [Logo Affixed], [QR Code Affixed] as separate elements - Include ALL text including punctuation, dates, URLs