PageSourceSearch

https://ghoshinnovationlab.org/

html ghoshinnovationlab.org collected 2026-10-07 23:03:04 UTC 3,657 bytes, 92 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/6aa1770c2b29498a17ca5d77/034682fbc_logosmall.png" rel="icon" type="image/png"/>
39  <link href="https://media.base44.com/images/public/6aa1770c2b29498a17ca5d77/034682fbc_logosmall.png" rel="apple-touch-icon"/>
40  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
41  <meta content="The Ghosh Innovation Lab builds safety infrastructure for democracy, empowering women elected officials through Project Resilience." name="description"/>
42  <link href="/manifest.json" rel="manifest"/>
43  <link href="https://fonts.googleapis.com" rel="preconnect"/>
44  <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
45  <link href="https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&amp;family=Inter:wght@400;500;600;700&amp;display=swap" rel="stylesheet"/>
46  <title>
47   Ghosh Innovation Lab: Safety is infrastructure for democracy
48  </title>
49  
49<script crossorigin="" src="/assets/index-JtypD0_Y.js" type="module">
50  </script>
50
51  <link crossorigin="" href="/assets/index-g3xyyCAP.css" rel="stylesheet"/>
52  
52<script type="module">
53   if (window.self === window.top) {
54  let lastPath = "";
55  function getPageNameFromPath(path) {
56    const segments = path.split("/").filter(Boolean);
57    return segments[0] || null;
58  }
59  function trackPageView() {
60    const path = window.location.pathname;
61    if (path === lastPath) return;
62    lastPath = path;
63    const pageName = getPageNameFromPath(path) || "home";
64    const appId = "6aa1770c2b29498a17ca5d77";
65    if (!appId) return;
66    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
67      method: "POST",
68    }).catch(() => {});
69  }
70  const originalPushState = history.pushState.bind(history);
71  history.pushState = function (...args) {
72    originalPushState(...args);
73    trackPageView();
74  };
75  const originalReplaceState = history.replaceState.bind(history);
76  history.replaceState = function (...args) {
77    originalReplaceState(...args);
78    trackPageView();
79  };
80  window.addEventListener("popstate", trackPageView);
81  trackPageView();
82}
83  </script>
83
84  <meta content="yes" name="mobile-web-app-capable"/>
85  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
86  <meta content="Ghosh Innovation Lab" name="apple-mobile-web-app-title"/>
87 </head>
88 <body>
89  <div id="root">
90  </div>
91 </body>
92</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.