1var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 2 3function smae_decode(m){ document.location.href='mailto:' + decode64(m).replace("&","%26"); } 4 5function decode64(input) { 6 7 var output = ''; 8 var chr1, chr2, chr3 = ''; 9 var enc1, enc2, enc3, enc4 = ''; 10 var i = 0; 11 12 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); 13 14 do { 15 enc1 = keyStr.indexOf(input.charAt(i++)); 16 enc2 = keyStr.indexOf(input.charAt(i++)); 17 enc3 = keyStr.indexOf(input.charAt(i++)); 18 enc4 = keyStr.indexOf(input.charAt(i++)); 19 20 chr1 = (enc1 << 2) | (enc2 >> 4); 21 chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 22 chr3 = ((enc3 & 3) << 6) | enc4; 23 24 output = output + String.fromCharCode(chr1); 25 26 if (enc3 != 64) { 27 28 output = output + String.fromCharCode(chr2); 29 } 30 if (enc4 != 64) { 31 32 output = output + String.fromCharCode(chr3); 33 } 34 35 chr1 = chr2 = chr3 = ''; 36 enc1 = enc2 = enc3 = enc4 = ''; 37 38 } while (i < input.length); 39 40 return unescape(output); 41}
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.