1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8"/> 5 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68b72957174b7bc0253c9af5/41ee58c0b_logoemeraldgreen.png" rel="icon" type="image/svg+xml"/> 6 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 7 <link href="/manifest.json" rel="manifest"/> 8 <title> 9 Dashboard | ageinplace.ai 10 </title> 11
11<script crossorigin="" src="/assets/index-fI4s2eeV.js" type="module"> 12 </script>
12 13 <link crossorigin="" href="/assets/index-2a5hKg6-.css" rel="stylesheet"/> 14 <meta content="Enhance your loved one's safety with ageinplace.ai . No sign up and totally free. Our AI analyzes room photos to identify fall risks and cognitive safety concerns, providing tailored recommendations and direct links to essential safety products. Based on CDC guidelines, it's your partner in creating a secure and comfortable home environment." name="description"/> 15 <meta content="Dashboard | ageinplace.ai" property="og:title"/> 16 <meta content="Enhance your loved one's safety with ageinplace.ai . No sign up and totally free. Our AI analyzes room photos to identify fall risks and cognitive safety concerns, providing tailored recommendations and direct links to essential safety products. Based on CDC guidelines, it's your partner in creating a secure and comfortable home environment." property="og:description"/> 17 <meta content="https://ageinplace.ai/Dashboard" property="og:url"/> 18 <meta content="website" property="og:type"/> 19 <meta content="ageinplace.ai" property="og:site_name"/> 20 <meta content="Dashboard | ageinplace.ai" name="twitter:title"/> 21 <meta content="Enhance your loved one's safety with ageinplace.ai . No sign up and totally free. Our AI analyzes room photos to identify fall risks and cognitive safety concerns, providing tailored recommendations and direct links to essential safety products. Based on CDC guidelines, it's your partner in creating a secure and comfortable home environment." name="twitter:description"/> 22 <meta content="summary_large_image" name="twitter:card"/> 23 <meta content="https://ageinplace.ai/Dashboard" name="twitter:url"/> 24 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68b72957174b7bc0253c9af5/41ee58c0b_logoemeraldgreen.png?width=1200&height=630&resize=contain" property="og:image"/> 25 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/68b72957174b7bc0253c9af5/41ee58c0b_logoemeraldgreen.png?width=1200&height=630&resize=contain" name="twitter:image"/> 26
26<script> 27 (function () { 28 var titles = {"/home": "ageinplace.ai"}; 29 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 30 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 31 var dashed = function (s) { 32 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 33 }; 34 var decode = function (s) { 35 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 36 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 37 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 38 }; 39 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 40 var norm = function (path) { 41 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 42 return parts.length ? "/" + parts.join("/") : "/"; 43 }; 44 var lastPath = location.pathname, written = document.title, on = true; 45 var sync = function () { 46 // Path only: a hash/query change is the same page, and the SDK strips its own auth 47 // params with replaceState -- neither must clobber a server-rendered title in place. 48 if (!on || location.pathname === lastPath) return; 49 lastPath = location.pathname; 50 if (document.title !== written) { on = false; return; } 51 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 52 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 53 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 54 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 55 // a redirect landing on an unmapped path would bake the placeholder into the stored 56 // snapshot. Leaving the title alone degrades to today's behavior instead. 57 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 58 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 59 // dashes there, and the client cannot tell the two apart. The map emits every reachable 60 // shape per segment instead (_client_url_variants). 61 var title = titles[norm(location.pathname)]; 62 if (title === undefined) return; 63 document.title = title; 64 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 65 // keeping the assigned string would make the next sync() read our own write as the app's. 66 written = document.title; 67 }; 68 var wrap = function (fn) { 69 // The history entry is already pushed by the time sync() runs, so a throw here would 70 // surface inside the host app's router and break navigation. This is injected into apps 71 // we cannot test, so it swallows rather than trusting the trace. 72 return function () { 73 var r = fn.apply(this, arguments); 74 try { sync(); } catch (e) {} 75 return r; 76 }; 77 }; 78 history.pushState = wrap(history.pushState); 79 history.replaceState = wrap(history.replaceState); 80 window.addEventListener("popstate", sync); 81})(); 82 </script>
82 83 <meta content="yes" name="mobile-web-app-capable"/> 84 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 85 <meta content="ageinplace.ai" name="apple-mobile-web-app-title"/> 86 <link href="https://ageinplace.ai/Dashboard" rel="canonical"/> 87
87<script data-seo-source="builder" type="application/ld+json"> 88 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://ageinplace.ai/"}, {"@type": "ListItem", "position": 2, "name": "Dashboard", "item": "https://ageinplace.ai/Dashboard"}]} 89 </script>
89 90 </head> 91 <body> 92 <div id="root"> 93 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 94 <main> 95 <header> 96 <h1> 97 Dashboard | ageinplace.ai 98 </h1> 99 <p> 100 Enhance your loved one's safety with ageinplace.ai . No sign up and totally free. Our AI analyzes room photos to identify fall risks and cognitive safety concerns, providing tailored recommendations and direct links to essential safety products. Based on CDC guidelines, it's your partner in creating a secure and comfortable home environment. 101 </p> 102 </header> 103 <nav aria-label="Pages"> 104 <h2> 105 Pages 106 </h2> 107 <ul> 108 <li> 109 <a href="/Home"> 110 Home 111 </a> 112 </li> 113 <li> 114 <a href="/About"> 115 About 116 </a> 117 </li> 118 <li> 119 <a href="/Analytics"> 120 Analytics 121 </a> 122 </li> 123 <li> 124 <a href="/Assessment"> 125 Assessment 126 </a> 127 </li> 128 <li> 129 <a href="/Blog"> 130 Blog 131 </a> 132 </li> 133 <li> 134 <a href="/BlogManagement"> 135 Blog Management 136 </a> 137 </li> 138 <li> 139 <a href="/Chat"> 140 Chat 141 </a> 142 </li> 143 <li> 144 <a href="/ContactUs"> 145 Contact Us 146 </a> 147 </li> 148 <li> 149 <a href="/Demographics"> 150 Demographics 151 </a> 152 </li> 153 <li> 154 <a href="/GuidelineManagement"> 155 Guideline Management 156 </a> 157 </li> 158 <li> 159 <a href="/History"> 160 History 161 </a> 162 </li> 163 <li> 164 <a href="/MessageManagement"> 165 Message Management 166 </a> 167 </li> 168 <li> 169 <a href="/ProductCatalog"> 170 Product Catalog 171 </a> 172 </li> 173 <li> 174 <a href="/ProductManagement"> 175 Product Management 176 </a> 177 </li> 178 <li> 179 <a href="/ServiceManagement"> 180 Service Management 181 </a> 182 </li> 183 <li> 184 <a href="/SolutionManagement"> 185 Solution Management 186 </a> 187 </li> 188 </ul> 189 </nav> 190 </main> 191 </div> 192 </div> 193 </body> 194</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.