1<!doctype html> 2<html lang="en"> 3<head> 4<meta charset="utf-8"> 5 6<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 7 8<title>Cool Headers and Footers Block | RapidDev</title>
9<script type="text/javascript"> 10 window.bubble_session_uid = '1791015735613x360381234741320500'; 11</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript"> 13 window.headers_source_maps = [["plugin_main_headers_1618916043803x877032991371296800",219,444],["plugin_main_headers_1747215160971x266397951550554100",445,450],["plugin_page_headers_AAI",451,453],["custom_app_header",455,511]] 14</script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript"> 16function make_proxy(target, name) { 17 return new Proxy(target, { 18 get: function(target, prop) { 19 if (prop in target) { 20 return target[prop]; 21 } 22 throw new Error('The variable ' + name + ' is not fully initialized yet'); 23 } 24 }); 25} 26window.appquery = make_proxy({ 27 app_version: function() { return "live"; }, 28 last_change: function() { return "35119357610";}, 29}, 'appquery'); 30window.Lib = new Proxy(function() {}, { 31 get: function(target, prop) { 32 if (prop === 'is_skeleton') { 33 return true; 34 } 35 throw new Error('The variable ' + Lib + ' is not fully initialized yet'); 36 }, 37 apply: function() { 38 return make_proxy({ 39 current_user: function() { 40 return make_proxy({ id: "1791015735613x360381234741320500" }, 'Lib().current_user'); 41 } 42 }, 'Lib()'); 43 } 44}); 45</script>
vendor: 1 bytes, line 45
45
46<script type="text/javascript"> 47function load_error_function (event) { 48 return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno }) 49} 50window.load_error_log = []; 51window.addEventListener('error', load_error_function); 52window.disableLoadErrorFunction = function () { 53 window.removeEventListener('error', load_error_function); 54} 55</script>
55 56<meta name="referrer" content="origin">
57<script type="text/javascript"> 58if (!window._bubble_page_load_data) { 59 window._bubble_page_load_data = {} 60} 61if (!window._bubble_page_load_data.js_execution_timings) { 62 window._bubble_page_load_data.js_execution_timings = {} 63} 64window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now(); 65</script>
65<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script>
65<script type="text/javascript"> 66if (!window._bubble_page_load_data) { 67 window._bubble_page_load_data = {} 68} 69if (!window._bubble_page_load_data.js_execution_timings) { 70 window._bubble_page_load_data.js_execution_timings = {} 71} 72window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now(); 73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">(function () { 75 function onWebFontFinish () { 76 window.google_web_fonts_active = true; 77if (window.google_web_fonts_active_cb) { 78 window.google_web_fonts_active_cb(); 79} 80 (function fontface_loaded_snippet (font) { 81 if (window.fontface_loaded == null) { 82 window.fontface_loaded = {} 83 } 84 if (font != null) { 85 window.fontface_loaded[font] = true 86 } else { 87 window.all_fontface_loaded = true 88 } 89 if (window.fontface_webfonts_loaded_cb) { 90 return window.fontface_webfonts_loaded_cb(font) 91 } 92})() 93 } 94 const WebFontConfig = {'google': { families: ["Inter:700","Lato:regular","Lato:400","Lato:700","Montserrat:regular","Montserrat:500","Poppins:500","Roboto:300","Roboto:regular","Roboto:500","Roboto:italic","Roboto:regular","Source Sans 3:700"] }, 95 active: function() { 96 onWebFontFinish() 97 }, 98 inactive: function() { 99 console.log('Failed to load all the fonts'); 100 onWebFontFinish() 101 }, 102 fontinactive: function(family_name, fvd) { 103 console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render'); 104 onWebFontFinish() 105 } 106 } 107 window.WebFont.load(WebFontConfig); 108})();</script>
vendor: 1 bytes, line 108
108
109<script> 110(function initialize_data() { 111const xhr = new XMLHttpRequest(); 112xhr.onreadystatechange = function() { 113 if (this.readyState === 4 && this.status === 200) { 114 const data = JSON.parse(this.responseText); 115 116 function init_data() { 117 data.forEach(function(d) { 118 Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version); 119 }) 120 } 121 122 if (window.Lib && window.Lib.is_skeleton == null) { 123 init_data(); 124 } else { 125 window.Lib_post_load = init_data; 126 } 127 } 128}; 129xhr.open("GET", "https://coolheaders.bubbleapps.io/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true); 130xhr.send(); 131})(); 132</script>
vendor: 1 bytes, line 132
132
133<script type="text/javascript">window.gm_key = "AIzaSyAlT1MzDJL1hTzjgn_-PbAD3NQEIKjcJi4";</script>
vendor: 1 bytes, line 133
133
134<script type="text/javascript">window.glrl_key_status = false;</script>
vendor: 1 bytes, line 134
134
135<script type="text/javascript">window.bubble_page_load_id = "1791015735644x492";</script>
vendor: 1 bytes, line 135
135
136<script type="text/javascript">window.bubble_plp_token = "1791015735702.BgTLpYqmXooAC2HHdpC6dChk2K8CmOL7ogMAwalAJhQ=";</script>
vendor: 1 bytes, line 136
136
137<script type="text/javascript">window.bubble_is_leanjs = false;</script>
vendor: 1 bytes, line 137
137
138<script type="text/javascript">window.bubble_shim_modules = false;</script>
138 139<link rel="icon" type="image/png" href="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1530294839424x143528842134401200/Icon-no-clearspace.png" /> 140<meta name="fragment" content="!"> 141<meta name="description" content="Bubble introduces a new way to build a web application. Itâs a point-and-click programming tool. Bubble hosts all applications on its cloud platform."> 142<meta name="description" content="Bubble introduces a new way to build a web application. Itâs a point-and-click programming tool. Bubble hosts all applications on its cloud platform."> 143<meta name="twitter:card" content="summary_large_image" /> 144<meta property="og:title" content="Check out my Bubble app" /> 145<meta name="twitter:title" content="Check out my Bubble app" /> 146<meta property="og:site_name" content="Bubble" /> 147<meta name="twitter:site_name" content="Bubble" /> 148<meta property="og:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps â no code required. " /> 149<meta name="twitter:description" content="Bubble is the only platform that lets you switch between AI prompting and visual editing to go beyond prototypes and launch real apps â no code required. " /> 150<link rel="image_src" href="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 151<meta property="og:image" content="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 152<meta name="twitter:image:src" content="https://860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 153<meta property="og:url" content="https://coolheaders.bubbleapps.io/" /> 154<meta property="og:type" content="website" /> 155<meta property="fb:app_id" content="340887986039814" /> 156<meta name="twitter:card" content="summary_large_image" /> 157<meta name="apple-mobile-web-app-capable" content="yes"> 158<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> 159<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no, minimal-ui">
160<script type="text/javascript">window._p = '{"id":"template_app","no_branding":false,"import_export_csv":false,"custom_domain":false}';</script>
vendor: 1 bytes, line 160
160
161<script type="text/javascript">window.bubble_page_name = "index";</script>
vendor: 1 bytes, line 161
161
162<script type="text/javascript">window.__bubble_module_mode = false;</script>
162 163<link type="text/css" href="/package/run_css/ff2cf2649f4e06b4f729e6680b22d09afef7fb26a8ef3f017ddcb8b55023bf59/coolheaders/live/index/xfalse/xfalse/run.css" rel="stylesheet">
164<script type="text/javascript"> 165if (!window._bubble_page_load_data) { 166 window._bubble_page_load_data = {} 167} 168if (!window._bubble_page_load_data.js_execution_timings) { 169 window._bubble_page_load_data.js_execution_timings = {} 170} 171window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now(); 172</script>
vendor: 1 bytes, line 172
172
173<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script>
vendor: 1 bytes, line 173
173
174<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/7071f7b382ccc6d041103d870a4570d077555f03000bb5d6d4422cbe7bed9355/xfalse/x12/run.js"></script>
vendor: 1 bytes, line 174
174
175<script type="text/javascript"> 176if (!window._bubble_page_load_data) { 177 window._bubble_page_load_data = {} 178} 179if (!window._bubble_page_load_data.js_execution_timings) { 180 window._bubble_page_load_data.js_execution_timings = {} 181} 182window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now(); 183</script>
vendor: 1 bytes, line 183
183
184<script type="text/javascript"> 185if (!window._bubble_page_load_data) { 186 window._bubble_page_load_data = {} 187} 188if (!window._bubble_page_load_data.js_execution_timings) { 189 window._bubble_page_load_data.js_execution_timings = {} 190} 191window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now(); 192</script>
192<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/474f5375461139971fb30aeae83fc702c03c1ce28f4d02178b42b5d709c14d1f/coolheaders/live/index/xnull/xfalse/xfalse/xfalse/static.js"></script>
192<script type="text/javascript"> 193if (!window._bubble_page_load_data) { 194 window._bubble_page_load_data = {} 195} 196if (!window._bubble_page_load_data.js_execution_timings) { 197 window._bubble_page_load_data.js_execution_timings = {} 198} 199window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now(); 200</script>
vendor: 1 bytes, line 200
200
201<script type="text/javascript"> 202if (!window._bubble_page_load_data) { 203 window._bubble_page_load_data = {} 204} 205if (!window._bubble_page_load_data.js_execution_timings) { 206 window._bubble_page_load_data.js_execution_timings = {} 207} 208window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now(); 209</script>
209<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/258fe7919d3d148f3ab6d48de9167626b9f4ca86073ef2d119161325ef09e0a9/coolheaders/live/index/xnull/xfalse/xfalse/en_us/xfalse/xfalse/dynamic.js"></script>
209<script type="text/javascript"> 210if (!window._bubble_page_load_data) { 211 window._bubble_page_load_data = {} 212} 213if (!window._bubble_page_load_data.js_execution_timings) { 214 window._bubble_page_load_data.js_execution_timings = {} 215} 216window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now(); 217</script>
vendor: 1 bytes, line 217
217
218<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
218 219<!-- 1618916043803x877032991371296800 -->
220<script defer src="//meta.cdn.bubble.io/f1678588430465x230578802325048350/icons.js"></script>
220 221
222<script> 223 const allSelect = /\[(hi.*)\](.*)\[\/(hi.*)\]/; 224 const colormatch = /#[0-9A-f]{3,6}#/; 225 const fillMatcher = /fill="currentColor"/; 226 227 function replaceIcon(btn) { 228 const btn_nodes = Array.from(btn.childNodes); 229 230 if (!btn_nodes) return; 231 232 const text_node = btn_nodes.find((node) => node.nodeName === "#text"); 233 234 if (!text_node) return; 235 236 let content = text_node.data; 237 let iconColor = content.match(colormatch); 238 content = content.replace(colormatch, ""); 239 240 const iconMarkup = content.match(allSelect); 241 242 if (!iconMarkup) { 243 if (btn.getAttribute("data-heroicon-last-text")) { 244 const current_text = Array.from(btn.childNodes).find((node) => node.nodeName === "#text"); 245 if (current_text && (current_text.data !== btn.getAttribute("data-heroicon-last-text"))) { 246 btn.setAttribute("data-heroicon-last-text", current_text.data); 247 btn.childNodes.forEach((node) => { 248 if (node.nodeName !== "#text") { 249 node.remove(); 250 } 251 }); 252 } 253 } 254 return; 255 } 256 257 if (iconMarkup[1] != iconMarkup[3]) return; 258 259 const iconProps = iconMarkup[1].slice(2).split("-"); 260 261 const props = { 262 name: iconMarkup[2], 263 size: '20px', 264 color: btn.innerHTML.match(colormatch) ? btn.innerHTML.match(colormatch)[0].slice(0, -1) : undefined, 265 set: "mini", 266 position: undefined, 267 iconHTML: undefined, 268 style: 'style="', 269 spacing: '8px', 270 stroke_width: '1.5px', 271 }; 272 273 if (props.color) { 274 props.iconHTML = props.iconHTML.replace(fillMatcher, "fill=" + iconColor); 275 } 276 277 iconProps.forEach((property) => { 278 switch (property) { 279 case "l": 280 props.position = "left"; 281 break; 282 case "r": 283 props.position = "right"; 284 break; 285 case "b": 286 props.position = "center"; 287 break; 288 case "o": 289 props.set = "outlined"; 290 break; 291 case "s": 292 props.set = "solid"; 293 break; 294 } 295 if (/m[0-99]+/.test(property)) { 296 const matched = property.match(/m([0-99]+)/); 297 props.spacing = `${matched[1]}px`; 298 } 299 if (/w[0-99]+/.test(property)) { 300 const matched = property.match(/w([0-99]+)/); 301 props.stroke_width = `${matched[1]}px`; 302 } 303 304 const number = Number(property); 305 306 if (number && number > 0) { 307 props.size = String(number) + "px"; 308 } 309 }); 310 311 if (window[`heroicons_${props.set}`].has(props.name)) { 312 props.iconHTML = window[`heroicons_${props.set}`].get(props.name); 313 } else { 314 console.log("Did not find applicable heroicon!"); 315 return; 316 } 317 318 btn.classList.add("heroicon"); 319 320 props.style += ` ${props.set == 'outlined' ? ` stroke-width: ${props.stroke_width};` : ''} height: ${props.size}; width: ${props.size}; `; 321 322 let insertBefore = props.iconHTML.lastIndexOf("viewBox"); 323 324 btn.childNodes.forEach((node) => { 325 if (node.nodeName === "#text") { 326 node.data = node.data.replace(allSelect, ""); 327 btn.setAttribute("data-heroicon-last-text", node.data); 328 } 329 }); 330 331 btn.childNodes.forEach((node) => { 332 if (node.nodeName !== "#text") { 333 node.remove(); 334 } 335 }); 336 337 if (props.position == "left") { 338 let styledHTML = 339 props.iconHTML.substring(0, insertBefore) + 340 props.style + 341 `margin-right:${props.spacing}"` + 342 props.iconHTML.substring(insertBefore); 343 btn.insertAdjacentHTML("afterbegin", styledHTML); 344 } else if (props.position == "right") { 345 let styledHTML = 346 props.iconHTML.substring(0, insertBefore) + 347 props.style + 348 `margin-left:${props.spacing}"` + 349 props.iconHTML.substring(insertBefore); 350 btn.insertAdjacentHTML("beforeend", styledHTML); 351 } else { 352 let styledHTML = 353 props.iconHTML.substring(0, insertBefore) + props.style + `"` + props.iconHTML.substring(insertBefore); 354 btn.insertAdjacentHTML("beforeend", styledHTML); 355 } 356 } 357 358 document.addEventListener("DOMContentLoaded", function () { 359 360
361 let config = { 362 subtree: true, 363 childList: true, 364 attributes: true, 365 characterData: true, 366 }; 367 368 let callback = function (mutationsList, observer) { 369 for (let mutation of mutationsList) { 370 if (mutation.target.tagName === "BUTTON") { 371 replaceIcon(mutation.target); 372 } else if (mutation.addedNodes) { 373 mutation.addedNodes.forEach((node) => { 374 if (node.tagName == "BUTTON") { 375 replaceIcon(node); 376 } 377 }); 378 } else if ( 379 mutation.target.nodeName === "#text" && 380 mutation.target.parentElement && 381 mutation.target.parentElement.tagName === "BUTTON" 382 ) { 383 replaceIcon(mutation.target.parentElement); 384 } 385 Array.from(document.querySelectorAll("button")).forEach(btn => replaceIcon(btn)); 386 } 387 }; 388 389 const observer = new MutationObserver(callback); 390 observer.observe(document, config); 391 }); 392</script>
392 393 394<style> 395 .animate-spin>circle { 396 color: inherit; 397 opacity: 25% 398 } 399 400 .animate-spin { 401 animation: 1s linear infinite spin 402 } 403 404 @keyframes spin { 405 from { 406 transform: rotate(0) 407 } 408 409 to { 410 transform: rotate(360deg) 411 } 412 } 413 414 .heroicon { 415 display: inline-flex; 416 vertical-align: middle; 417 justify-content: center; 418 align-items: center; 419 } 420 421 .dots_one { 422 stroke: currentColor; 423 fill: currentColor; 424 animation: dots 0.8s linear infinite; 425 animation-delay: -0.8s; 426 margin-right: 1px; 427 } 428 429 .dots_two { 430 animation-delay: -0.65s; 431 } 432 433 .dots_three { 434 animation-delay: -0.5s; 435 } 436 437 @keyframes dots { 438 439 93.75%, 440 100% { 441 opacity: 0.2; 442 } 443 } 444</style> 445<!-- 1747215160971x266397951550554100 -->
446<script type="module"> 447 import vapiAiweb from 'https://cdn.jsdelivr.net/npm/@vapi-ai/web@latest/+esm' 448 449 window.RapidVapiAI = vapiAiweb.default 450</script>
450 451<!-- AAI --> 452<style>.outline { transition: stroke var(--transition-duration) var(--transition-easing); }</style> 453
454<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
454 455<!-- custom app meta header -->
456<script> 457 var conf = { 458 id: "headerblock", 459 ref: document.referrer 460 }; 461</script>
vendor: 1 bytes, line 461
461
462<script src="https://rdbackend.bubbleapps.io/rdbnr.js" ></script>
462 463
464<script>!function () {var reb2b = window.reb2b = window.reb2b || [];if (reb2b.invoked) return;reb2b.invoked = true;reb2b.methods = ["identify", "collect"];reb2b.factory = function (method) {return function () {var args = Array.prototype.slice.call(arguments);args.unshift(method);reb2b.push(args);return reb2b;};};for (var i = 0; i < reb2b.methods.length; i++) {var key = reb2b.methods[i];reb2b[key] = reb2b.factory(key);}reb2b.load = function (key) {var script = document.createElement("script");script.type = "text/javascript";script.async = true;script.src = "https://s3-us-west-2.amazonaws.com/b2bjsstore/b/" + key + "/1LNKLDHR3GOJ.js.gz";var first = document.getElementsByTagName("script")[0];first.parentNode.insertBefore(script, first);};reb2b.SNIPPET_VERSION = "1.0.1";reb2b.load("1LNKLDHR3GOJ");}();</script>
464 465 466<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 466-467
466 467<script async src="https://www.googletagmanager.com/gtag/js?id=
467G-LDCQJXJ7Y3
vendor: 12 bytes, line 467
467"></script>
468<script> 469Â Â window.dataLayer = window.dataLayer || []; 470Â Â function gtag(){dataLayer.push(arguments);} 471Â Â gtag('js', new Date()); 472 473Â Â gtag('config', 'G-LDCQJXJ7Y3'); 474</script>
474 475 476 477<!-- Meta Pixel Code -->
478<script>
vendor: 399 bytes, lines 478-487
478 479!function(f,b,e,v,n,t,s) 480{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 481n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 482if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 483n.queue=[];t=b.createElement(e);t.async=!0; 484t.src=v;s=b.getElementsByTagName(e)[0]; 485s.parentNode.insertBefore(t,s)}(window, document,'script', 486'https://connect.facebook.net/en_US/fbevents.js'); 487fbq('init', '
487897916741239286
vendor: 30 bytes, lines 487-488
487'); 488fbq('track', 'PageView');
489</script>
489 490<noscript><img height="1" width="1" style="display:none" 491src="https://www.facebook.com/tr?id=897916741239286&ev=PageView&noscript=1" 492/></noscript> 493<!-- End Meta Pixel Code --> 494
495<script type="text/javascript"> 496_linkedin_partner_id = "7634906"; 497window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 498window._linkedin_data_partner_ids.push(_linkedin_partner_id); 499</script>
499<script type="text/javascript"> 500(function(l) { 501if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 502window.lintrk.q=[]} 503var s = document.getElementsByTagName("script")[0]; 504var b = document.createElement("script"); 505b.type = "text/javascript";b.async = true; 506b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 507s.parentNode.insertBefore(b, s);})(window.lintrk); 508</script>
508 509<noscript> 510<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=7634906&fmt=gif" /> 511- </noscript> 512</head> 513<body>
513<script type="text/javascript"> 514window.addEventListener('DOMContentLoaded', function () { 515 if (window.appquery == null) { 516 (function() { 517 const html = ` 518 <div class="error-card"> 519 <div class="error-section"> 520 <div class="error-title">Your browser was unable to load some necessary resources</div> 521 <div class="error-message">Contact your IT network administrator to allow access to: 522 ⢠d3dqmih97rcqmh.cloudfront.net 523 ⢠860c1db12ec443a9ab7e16207c362326.cdn.bubble.io/ 524 ⢠d1muf25xaso8hp.cloudfront.net</div> 525 </div> 526 </div> 527 ` 528 529 const css = document.createElement('style') 530 css.type = 'text/css' 531 css.appendChild( 532 document.createTextNode(` 533 .error-overlay { 534 width: 100%; 535 height: 100%; 536 background: rgba(0,0,0,0.30); 537 overflow: hidden; 538 display: flex; 539 justify-content: center; 540 align-items: flex-start; 541 position: fixed; 542 inset: 0; 543 z-index: 999999; 544 } 545 546 .error-card { 547 width: 500px; 548 margin: 40px; 549 background: white; 550 box-shadow: 0px 1px 2px rgba(0,0,0,0.10); 551 border-radius: 8px; 552 display: flex; 553 flex-direction: column; 554 } 555 556 .error-section { 557 padding: 40px; 558 display: flex; 559 flex-direction: column; 560 gap: 12px; 561 } 562 563 .error-title { 564 color: #1A1A1A; 565 font-size: 18px; 566 font-family: Arial, sans-serif; 567 font-weight: 600; 568 line-height: 28px; 569 } 570 571 .error-message { 572 color: #525252; 573 font-size: 14px; 574 font-family: Arial, sans-serif; 575 font-weight: 400; 576 line-height: 20px; 577 white-space: pre-wrap; 578 } 579 `) 580 ) 581 document.head.appendChild(css) 582 583 const container = document.createElement('div') 584 container.className = 'error-overlay' 585 container.innerHTML = html 586 document.body.appendChild(container) 587 })() 588 httpRequest = new XMLHttpRequest(); 589httpRequest.open('POST', '/user/m', true); 590httpRequest.setRequestHeader('Content-Type', 'application/json'); 591httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}})); 592 }; 593}); 594</script>
594<script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() { 595 const html = ` 596 <div class="error-card"> 597 <div class="error-section"> 598 <div class="error-title">Your browser was unable to load the application</div> 599 <div class="error-message">We've been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers.</div> 600 </div> 601 </div> 602 ` 603 604 const css = document.createElement('style') 605 css.type = 'text/css' 606 css.appendChild( 607 document.createTextNode(` 608 .error-overlay { 609 width: 100%; 610 height: 100%; 611 background: rgba(0,0,0,0.30); 612 overflow: hidden; 613 display: flex; 614 justify-content: center; 615 align-items: flex-start; 616 position: fixed; 617 inset: 0; 618 z-index: 999999; 619 } 620 621 .error-card { 622 width: 500px; 623 margin: 40px; 624 background: white; 625 box-shadow: 0px 1px 2px rgba(0,0,0,0.10); 626 border-radius: 8px; 627 display: flex; 628 flex-direction: column; 629 } 630 631 .error-section { 632 padding: 40px; 633 display: flex; 634 flex-direction: column; 635 gap: 12px; 636 } 637 638 .error-title { 639 color: #1A1A1A; 640 font-size: 18px; 641 font-family: Arial, sans-serif; 642 font-weight: 600; 643 line-height: 28px; 644 } 645 646 .error-message { 647 color: #525252; 648 font-size: 14px; 649 font-family: Arial, sans-serif; 650 font-weight: 400; 651 line-height: 20px; 652 white-space: pre-wrap; 653 } 654 `) 655 ) 656 document.head.appendChild(css) 657 658 const container = document.createElement('div') 659 container.className = 'error-overlay' 660 container.innerHTML = html 661 document.body.appendChild(container) 662 })()}});</script>
662 663<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /> 664</body> 665</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.