PageSourceSearch

https://georgluif.at/assets/nfc-visit.js?v=4b4a410c

js georgluif.at collected 2026-10-09 21:26:02 UTC 2,268 bytes, 2 lines download raw bytes

1/*! © 2011–2026 Georg Luif · georgluif.at · All rights reserved. */
2(function(){"use strict";var d=document.currentScript,i=d&&d.getAttribute("data-card");if(!i||!window.fetch)return;function h(){var e=new Uint8Array(4);if(window.crypto&&crypto.getRandomValues)crypto.getRandomValues(e);else for(var r=0;r<4;r++)e[r]=Math.floor(Math.random()*256);return Array.prototype.map.call(e,function(n){return(n<16?"0":"")+n.toString(16)}).join("")}var f=h(),c=0;try{c=Math.min(9999,parseInt(localStorage.getItem("ga_nfc_v")||"0",10)||0),localStorage.setItem("ga_nfc_v",String(c+1))}catch{}function a(e,r,n){return e=Math.round(Number(e)),isFinite(e)&&e>=r&&e<=n?e:void 0}var t={};try{t.tz=Intl.DateTimeFormat().resolvedOptions().timeZone||void 0}catch{}t.off=a(-new Date().getTimezoneOffset(),-840,840),t.langs=navigator.languages&&navigator.languages.length?Array.prototype.slice.call(navigator.languages,0,4):navigator.language?[navigator.language]:void 0,window.screen&&(t.sw=a(screen.width,0,2e4),t.sh=a(screen.height,0,2e4)),t.vw=a(window.innerWidth,0,2e4),t.vh=a(window.innerHeight,0,2e4),t.dpr=a((window.devicePixelRatio||1)*100,25,800),t.touch=a(navigator.maxTouchPoints||0,0,32),t.cores=a(navigator.hardwareConcurrency,1,256),t.mem=a(navigator.deviceMemory,0,64);var g=navigator.connection&&navigator.connection.effectiveType;g&&(t.net=g);try{t.dark=!!(window.matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches)}catch{}t.rv=c;for(var s in t)t[s]===void 0&&delete t[s];var u=null;function o(e,r){return fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),keepalive:!0,credentials:"same-origin"}).then(function(n){if(!n.ok)throw new Error(String(n.status));u=e})}var l={v:1,card:i,id:f,k:"view",ref:document.referrer||"",c:t};o("/public/nfc",l).catch(function(){return o("/nfc.php",l)}).catch(function(){}),document.addEventListener("click",function(e){var r=e.target.closest&&e.target.closest("[data-nfc]"),n=r?r.getAttribute("data-nfc"):"";if(!n){if(r=e.target.closest&&e.target.closest("a[href]"),!r)return;n="page:"+(r.getAttribute("href")||"").replace(/^(\.\.\/)+/,"").slice(0,40)}n=n.replace(/[^\x20-\x7e]/g,"").slice(0,48),n&&o(u||"/nfc.php",{v:1,card:i,id:f,k:"click",what:n}).catch(function(){})},!0)})();

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.