PageSourceSearch

https://lab.dannygc.cloud/

html dannygc.cloud collected 2026-09-24 14:36:14 UTC 4,481 bytes, 106 lines download raw bytes

1<!doctype html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    <title>C.A.R.L. // lab.dannygc.cloud</title>
7    
7<script>
8      (function () {
9        var h = location.hostname.toLowerCase()
10        if (h === 'hub.dannygc.cloud' || h.indexOf('hub.') === 0) {
11          document.title = 'Command Centre // hub.dannygc.cloud'
12        } else if (h === 'systems.dannygc.cloud' || h.indexOf('systems.') === 0) {
13          document.title = 'Systems // lab.dannygc.cloud'
14        }
15      })()
16    </script>
16
17    
17<script>
18      (function () {
19        var h = location.hostname.toLowerCase()
20        if (h === 'hub.dannygc.cloud' || h.indexOf('hub.') === 0) {
21          document.title = 'Command Centre // hub.dannygc.cloud'
22        } else if (h === 'systems.dannygc.cloud' || h.indexOf('systems.') === 0) {
23          document.title = 'Systems // lab.dannygc.cloud'
24        }
25      })()
26    </script>
26
27    
27<script>
28      (function () {
29        var h = location.hostname.toLowerCase()
30        if (!(h.endsWith('.dannygc.cloud') || h === 'localhost' || h === '127.0.0.1')) return
31        function tok() {
32          try {
33            return localStorage.getItem('tg_auth') || (document.cookie.match(/(?:^|;\s*)tg_auth=([^;]+)/) || [])[1]
34          } catch (e) {
35            return null
36          }
37        }
38        function save(t) {
39          localStorage.setItem('tg_auth', t)
40          document.cookie = 'tg_auth=' + encodeURIComponent(t) + '; path=/; max-age=' + 8 * 3600 + '; SameSite=Lax'
41        }
42        window.__tgAuthReady = (async function () {
43          if (tok()) return true
44          try {
45            var st = await fetch('/api/telegram-auth/status', { cache: 'no-store' }).then(function (r) {
46              return r.json()
47            })
48            if (!st.enabled) return true
49          } catch (e) {
50            return true
51          }
52          try {
53            var ns = await fetch('/api/telegram-auth/nimbus-session', {
54              method: 'POST',
55              headers: { 'Content-Type': 'application/json' },
56              body: JSON.stringify({ app: h }),
57              cache: 'no-store',
58            }).then(function (r) {
59              return r.json()
60            })
61            if (ns.session_token) {
62              save(ns.session_token)
63              return true
64            }
65          } catch (e) {}
66          try {
67            var rq = await fetch('/api/telegram-auth/request', {
68              method: 'POST',
69              headers: { 'Content-Type': 'application/json' },
70              body: JSON.stringify({ app: h }),
71              cache: 'no-store',
72            }).then(function (r) {
73              return r.json()
74            })
75            if (!rq.request_id) return false
76            for (var i = 0; i < 40; i++) {
77              await new Promise(function (r) {
78                setTimeout(r, 1500)
79              })
80              var pl = await fetch('/api/telegram-auth/poll?request_id=' + encodeURIComponent(rq.request_id), {
81                cache: 'no-store',
82              }).then(function (r) {
83                return r.json()
84              })
85              if (pl.session_token) {
86                save(pl.session_token)
87                return true
88              }
89              if (pl.status === 'denied' || pl.status === 'expired') return false
90            }
91          } catch (e) {}
92          return false
93        })()
94      })()
95    </script>
95
96    <link rel="preconnect" href="https://fonts.googleapis.com" />
97    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
98    <link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@300;400;600;700&family=Fraunces:opsz,[email protected],500;700&family=Orbitron:wght@500;700;900&family=Syncopate:wght@400;700&family=Syne:wght@600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet" />
99    
99<script type="module" crossorigin src="/assets/index-BwNHfT0s.js"></script>
99
100    <link rel="stylesheet" crossorigin href="/assets/index-r5zN5185.css">
101  </head>
102  <body>
103    <div id="root"></div>
104  
104<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"8ce9b77a9e8d4fb89e0132a353b7c75a","r":1,"spa":2}' crossorigin="anonymous"></script>
104
105</body>
106</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.