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>tomo plugins</title>
9<script type="text/javascript"> 10 window.bubble_session_uid = '1791015901949x533157755907876000'; 11</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript"> 13 window.headers_source_maps = [["plugin_main_headers_1518279603919x687476512969195500",217,220],["plugin_main_headers_1715912916802x410766549907931140",221,226],["plugin_main_headers_1717457995726x349769081926451200",227,234],["plugin_main_headers_1735520040381x241151271528824830",235,243],["plugin_main_headers_1735731725414x588905276820160500",244,254],["plugin_main_headers_1737335714139x492338851892166660",255,259],["plugin_main_headers_1741655680916x277482068795457540",260,265],["custom_app_header",267,268]] 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 "61728246409";}, 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: "1791015901949x533157755907876000" }, '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: ["Open Sans:regular","Open Sans:500","Open Sans:600","Open Sans: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://tomo-plugins.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 = "1791015902007x762";</script>
vendor: 1 bytes, line 135
135
136<script type="text/javascript">window.bubble_plp_token = "1791015902090.2WEphgD2WgVQ2s/dyKfsSxVNqGa8vZ4+Uc358SZgLRs=";</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://73ad8a04efb8afdd23e851d8f1dd3445.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://73ad8a04efb8afdd23e851d8f1dd3445.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 151<meta property="og:image" content="https://73ad8a04efb8afdd23e851d8f1dd3445.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 152<meta name="twitter:image:src" content="https://73ad8a04efb8afdd23e851d8f1dd3445.cdn.bubble.io/f1762463484754x595287411041153000/Bubbleio%20opengraph.png" /> 153<meta property="og:url" content="https://tomo-plugins.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="viewport" content="width=device-width,initial-scale=1.0">
158<script type="text/javascript">window._p = '{"id":"template_app","no_branding":false,"import_export_csv":false,"custom_domain":false}';</script>
vendor: 1 bytes, line 158
158
159<script type="text/javascript">window.bubble_page_name = "index";</script>
vendor: 1 bytes, line 159
159
160<script type="text/javascript">window.__bubble_module_mode = false;</script>
160 161<link type="text/css" href="/package/run_css/f484c682df097dfb2ac578e321571aa70a98cd749d8616c1444f75908a70a104/tomo-plugins/live/index/xfalse/xfalse/run.css" rel="stylesheet">
162<script type="text/javascript"> 163if (!window._bubble_page_load_data) { 164 window._bubble_page_load_data = {} 165} 166if (!window._bubble_page_load_data.js_execution_timings) { 167 window._bubble_page_load_data.js_execution_timings = {} 168} 169window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now(); 170</script>
vendor: 1 bytes, line 170
170
171<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 171
171
172<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/7071f7b382ccc6d041103d870a4570d077555f03000bb5d6d4422cbe7bed9355/xfalse/x33/run.js"></script>
vendor: 1 bytes, line 172
172
173<script type="text/javascript"> 174if (!window._bubble_page_load_data) { 175 window._bubble_page_load_data = {} 176} 177if (!window._bubble_page_load_data.js_execution_timings) { 178 window._bubble_page_load_data.js_execution_timings = {} 179} 180window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now(); 181</script>
vendor: 1 bytes, line 181
181
182<script type="text/javascript"> 183if (!window._bubble_page_load_data) { 184 window._bubble_page_load_data = {} 185} 186if (!window._bubble_page_load_data.js_execution_timings) { 187 window._bubble_page_load_data.js_execution_timings = {} 188} 189window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now(); 190</script>
190<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/b4defd21edcea44e97f74e758c6e7e0635d01e316ee0bd71b6bbcc84c255de38/tomo-plugins/live/index/xnull/xfalse/xfalse/xfalse/static.js"></script>
190<script type="text/javascript"> 191if (!window._bubble_page_load_data) { 192 window._bubble_page_load_data = {} 193} 194if (!window._bubble_page_load_data.js_execution_timings) { 195 window._bubble_page_load_data.js_execution_timings = {} 196} 197window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now(); 198</script>
vendor: 1 bytes, line 198
198
199<script type="text/javascript"> 200if (!window._bubble_page_load_data) { 201 window._bubble_page_load_data = {} 202} 203if (!window._bubble_page_load_data.js_execution_timings) { 204 window._bubble_page_load_data.js_execution_timings = {} 205} 206window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now(); 207</script>
207<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/3d54642bded64c45c191cb2f0ac235e14cf4c7636bb6b39e11009d541aed2b84/tomo-plugins/live/index/xnull/xfalse/xfalse/en_us/xfalse/xfalse/dynamic.js"></script>
207<script type="text/javascript"> 208if (!window._bubble_page_load_data) { 209 window._bubble_page_load_data = {} 210} 211if (!window._bubble_page_load_data.js_execution_timings) { 212 window._bubble_page_load_data.js_execution_timings = {} 213} 214window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now(); 215</script>
vendor: 1 bytes, line 215
215
216<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
216 217<!-- 1518279603919x687476512969195500 -->
218<script src="https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.1/mousetrap.min.js"></script>
vendor: 1 bytes, line 218
218
219<script src="https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.1/plugins/global-bind/mousetrap-global-bind.min.js"></script>
vendor: 1 bytes, line 219
219
220<script src="https://cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.1/plugins/pause/mousetrap-pause.min.js"></script>
220 221<!-- 1715912916802x410766549907931140 --> 222<!-- ã¾ãSortableJSæ¬ä½ãèªã¿è¾¼ã -->
223<script src="https://cdn.jsdelivr.net/npm/[email protected]/Sortable.min.js"></script>
223 224<!-- æå¾ã«jquery-sortablejsãèªã¿è¾¼ã -->
225<script src="https://cdn.jsdelivr.net/npm/jquery-sortablejs@latest/jquery-sortable.js"></script>
225 226 227<!-- 1717457995726x349769081926451200 -->
228<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
vendor: 1 bytes, line 228
228
229<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
vendor: 1 bytes, line 229
229
230<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment-with-locales.min.js"></script>
vendor: 1 bytes, line 230
230
231<script 232 src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.33/moment-timezone-with-data.min.js"></script>
vendor: 1 bytes, line 232
232
233<script 234 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
234 235<!-- 1735520040381x241151271528824830 -->
236<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
vendor: 1 bytes, line 236
236
237<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
237 238<!-- 239<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" /> 240--> 241<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/core.css"> 242<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/toast.css"> 243 244<!-- 1735731725414x588905276820160500 --> 245<!--
246<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
vendor: 1 bytes, line 246
246
247<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
247 248<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/core.css"> 249-->
250<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
vendor: 1 bytes, line 250
250
251<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment-with-locales.min.js"></script>
vendor: 1 bytes, line 251
251
252<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.33/moment-timezone-with-data.min.js"></script>
252 253<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" /> --> 254<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/datetime.css" /> --> 255<!-- 1737335714139x492338851892166660 -->
256<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
vendor: 1 bytes, line 256
256
257<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
257 258<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/core.css"> 259<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/toast.css"> --> 260<!-- 1741655680916x277482068795457540 --> 261<style> 262 div.bubble-element, a.bubble-element { 263 overflow: visible; 264 } 265</style>
266<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
266 267<!-- custom app meta header --> 268<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0"> 269</head> 270<body>
270<script type="text/javascript"> 271window.addEventListener('DOMContentLoaded', function () { 272 if (window.appquery == null) { 273 (function() { 274 const html = ` 275 <div class="error-card"> 276 <div class="error-section"> 277 <div class="error-title">Your browser was unable to load some necessary resources</div> 278 <div class="error-message">Contact your IT network administrator to allow access to: 279 ⢠d3dqmih97rcqmh.cloudfront.net 280 ⢠73ad8a04efb8afdd23e851d8f1dd3445.cdn.bubble.io/ 281 ⢠d1muf25xaso8hp.cloudfront.net</div> 282 </div> 283 </div> 284 ` 285 286 const css = document.createElement('style') 287 css.type = 'text/css' 288 css.appendChild( 289 document.createTextNode(` 290 .error-overlay { 291 width: 100%; 292 height: 100%; 293 background: rgba(0,0,0,0.30); 294 overflow: hidden; 295 display: flex; 296 justify-content: center; 297 align-items: flex-start; 298 position: fixed; 299 inset: 0; 300 z-index: 999999; 301 } 302 303 .error-card { 304 width: 500px; 305 margin: 40px; 306 background: white; 307 box-shadow: 0px 1px 2px rgba(0,0,0,0.10); 308 border-radius: 8px; 309 display: flex; 310 flex-direction: column; 311 } 312 313 .error-section { 314 padding: 40px; 315 display: flex; 316 flex-direction: column; 317 gap: 12px; 318 } 319 320 .error-title { 321 color: #1A1A1A; 322 font-size: 18px; 323 font-family: Arial, sans-serif; 324 font-weight: 600; 325 line-height: 28px; 326 } 327 328 .error-message { 329 color: #525252; 330 font-size: 14px; 331 font-family: Arial, sans-serif; 332 font-weight: 400; 333 line-height: 20px; 334 white-space: pre-wrap; 335 } 336 `) 337 ) 338 document.head.appendChild(css) 339 340 const container = document.createElement('div') 341 container.className = 'error-overlay' 342 container.innerHTML = html 343 document.body.appendChild(container) 344 })() 345 httpRequest = new XMLHttpRequest(); 346httpRequest.open('POST', '/user/m', true); 347httpRequest.setRequestHeader('Content-Type', 'application/json'); 348httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}})); 349 }; 350}); 351</script>
351<script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() { 352 const html = ` 353 <div class="error-card"> 354 <div class="error-section"> 355 <div class="error-title">Your browser was unable to load the application</div> 356 <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> 357 </div> 358 </div> 359 ` 360 361 const css = document.createElement('style') 362 css.type = 'text/css' 363 css.appendChild( 364 document.createTextNode(` 365 .error-overlay { 366 width: 100%; 367 height: 100%; 368 background: rgba(0,0,0,0.30); 369 overflow: hidden; 370 display: flex; 371 justify-content: center; 372 align-items: flex-start; 373 position: fixed; 374 inset: 0; 375 z-index: 999999; 376 } 377 378 .error-card { 379 width: 500px; 380 margin: 40px; 381 background: white; 382 box-shadow: 0px 1px 2px rgba(0,0,0,0.10); 383 border-radius: 8px; 384 display: flex; 385 flex-direction: column; 386 } 387 388 .error-section { 389 padding: 40px; 390 display: flex; 391 flex-direction: column; 392 gap: 12px; 393 } 394 395 .error-title { 396 color: #1A1A1A; 397 font-size: 18px; 398 font-family: Arial, sans-serif; 399 font-weight: 600; 400 line-height: 28px; 401 } 402 403 .error-message { 404 color: #525252; 405 font-size: 14px; 406 font-family: Arial, sans-serif; 407 font-weight: 400; 408 line-height: 20px; 409 white-space: pre-wrap; 410 } 411 `) 412 ) 413 document.head.appendChild(css) 414 415 const container = document.createElement('div') 416 container.className = 'error-overlay' 417 container.innerHTML = html 418 document.body.appendChild(container) 419 })()}});</script>
419 420<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /> 421</body> 422</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.