1 2function getUrlParameter(name) 3{ 4 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 5 var regexS = "[\\?&]"+name+"=([^&#]*)"; 6 var regex = new RegExp( regexS ); 7 var results = regex.exec( window.location.href ); 8 if( results == null ) 9 return null; 10 else 11 return results[1]; 12} 13 14function hasSessionStorage() { 15 return typeof( Storage ) !== 'undefined' && ( 'sessionStorage' in window ) && window['sessionStorage'] && window.sessionStorage !== null; 16} 17 18function hasLocalStorage() { 19 return typeof( Storage ) !== 'undefined' && ( 'localStorage' in window ) && window['localStorage'] && window.localStorage !== null; 20} 21 22function utf8_to_b64( str ) { 23 return window.btoa(unescape(encodeURIComponent( str ))); 24} 25 26function b64_to_utf8( str ) { 27 return decodeURIComponent(escape(window.atob( str ))); 28} 29 30var wakeLock = null; 31function keepScreenFromShutdown() { 32 if ('wakeLock' in navigator) { 33 requestWakeLock(); 34 document.addEventListener('visibilitychange', handleVisibilityChange); 35 } 36} 37 38const requestWakeLock = async () => { 39 try { 40 wakeLock = await navigator.wakeLock.request('screen'); 41 } catch (err) { 42 // do nothing 43 } 44} 45 46function handleVisibilityChange() { 47 if (wakeLock !== null && document.visibilityState === 'visible') { 48 requestWakeLock(); 49 } 50} 51 52
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.