PageSourceSearch

https://www.actuia.com/build/assets/engagement-CzbvPHkd.js

js actuia.com collected 2026-10-01 11:25:02 UTC 36,274 bytes, 11 lines download raw bytes

1const ae="thumbmark",se="https://api.thumbmarkjs.com",q={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,cache_lifetime_in_ms:0,performance:!1,experimental:!1,property_name_factory:n=>`${ae}_${n}`};let ce={...q};function ke(n,e){ce[n]=e}const Me={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}],always:[{exclude:["speech"],browsers:["brave","firefox"]}]},K=typeof window<"u"?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function _e(n){let e=0;for(let r=0;r<n.length;++r)e+=Math.abs(n[r]);return e}function X(n,e,r){if(n.length===1)return n[0];if(n.length===3){const t=n[0].data,c=n[1].data,l=n[2].data,a=new Uint8ClampedArray(t.length);for(let s=0;s<t.length;s++){const u=t[s],d=c[s],f=l[s];a[s]=u===d||u===f?u:d===f?d:u}return new ImageData(a,e,r)}let i=[];for(let t=0;t<n[0].data.length;t++){let c=[];for(let l=0;l<n.length;l++)c.push(n[l].data[t]);i.push(xe(c))}const o=new Uint8ClampedArray(i);return new ImageData(o,e,r)}function xe(n){if(n.length===0)return 0;const e={};for(const i of n)e[i]=(e[i]||0)+1;let r=n[0];for(const i in e)e[i]>e[r]&&(r=parseInt(i,10));return r}function F(n){return n^=n>>>16,n=Math.imul(n,2246822507),n^=n>>>13,n=Math.imul(n,3266489909),(n^=n>>>16)>>>0}const S=new Uint32Array([597399067,2869860233,951274213,2716044179]);function _(n,e){return n<<e|n>>>32-e}function k(n,e=0){if(e=e?0|e:0,typeof n=="string"&&(n=(function(o){if(typeof TextEncoder<"u")return new TextEncoder().encode(o).buffer;const t=[];for(let c=0;c<o.length;c++){let l=o.charCodeAt(c);l<128?t.push(l):l<2048?t.push(192|l>>6,128|63&l):l<55296||l>=57344?t.push(224|l>>12,128|l>>6&63,128|63&l):(c++,l=65536+((1023&l)<<10|1023&o.charCodeAt(c)),t.push(240|l>>18,128|l>>12&63,128|l>>6&63,128|63&l))}return new Uint8Array(t).buffer})(n)),!(n instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const r=new Uint32Array([e,e,e,e]);(function(o,t){const c=o.byteLength/16|0,l=new Uint32Array(o,0,4*c);for(let a=0;a<c;a++){const s=l.subarray(4*a,4*(a+1));s[0]=Math.imul(s[0],S[0]),s[0]=_(s[0],15),s[0]=Math.imul(s[0],S[1]),t[0]=t[0]^s[0],t[0]=_(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,s[1]=Math.imul(s[1],S[1]),s[1]=_(s[1],16),s[1]=Math.imul(s[1],S[2]),t[1]=t[1]^s[1],t[1]=_(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,s[2]=Math.imul(s[2],S[2]),s[2]=_(s[2],17),s[2]=Math.imul(s[2],S[3]),t[2]=t[2]^s[2],t[2]=_(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,s[3]=Math.imul(s[3],S[3]),s[3]=_(s[3],18),s[3]=Math.imul(s[3],S[0]),t[3]=t[3]^s[3],t[3]=_(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}})(n,r),(function(o,t){const c=o.byteLength/16|0,l=o.byteLength%16,a=new Uint32Array(4),s=new Uint8Array(o,16*c,l);switch(l){case 15:a[3]=a[3]^s[14]<<16;case 14:a[3]=a[3]^s[13]<<8;case 13:a[3]=a[3]^s[12],a[3]=Math.imul(a[3],S[3]),a[3]=_(a[3],18),a[3]=Math.imul(a[3],S[0]),t[3]=t[3]^a[3];case 12:a[2]=a[2]^s[11]<<24;case 11:a[2]=a[2]^s[10]<<16;case 10:a[2]=a[2]^s[9]<<8;case 9:a[2]=a[2]^s[8],a[2]=Math.imul(a[2],S[2]),a[2]=_(a[2],17),a[2]=Math.imul(a[2],S[3]),t[2]=t[2]^a[2];case 8:a[1]=a[1]^s[7]<<24;case 7:a[1]=a[1]^s[6]<<16;case 6:a[1]=a[1]^s[5]<<8;case 5:a[1]=a[1]^s[4],a[1]=Math.imul(a[1],S[1]),a[1]=_(a[1],16),a[1]=Math.imul(a[1],S[2]),t[1]=t[1]^a[1];case 4:a[0]=a[0]^s[3]<<24;case 3:a[0]=a[0]^s[2]<<16;case 2:a[0]=a[0]^s[1]<<8;case 1:a[0]=a[0]^s[0],a[0]=Math.imul(a[0],S[0]),a[0]=_(a[0],15),a[0]=Math.imul(a[0],S[1]),t[0]=t[0]^a[0]}})(n,r),(function(o,t){t[0]=t[0]^o.byteLength,t[1]=t[1]^o.byteLength,t[2]=t[2]^o.byteLength,t[3]=t[3]^o.byteLength,t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0,t[0]=F(t[0]),t[1]=F(t[1]),t[2]=F(t[2]),t[3]=F(t[3]),t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0})(n,r);const i=new Uint8Array(r.buffer);return Array.from(i).map((o=>o.toString(16).padStart(2,"0"))).join("")}const Z=280;async function le(n){for(var e;!document.body;)await Ee(50);const r=document.createElement("iframe");r.setAttribute("frameBorder","0");const i=r.style;i.setProperty("position","fixed"),i.setProperty("display","block","important"),i.setProperty("visibility","visible"),i.setProperty("border","0"),i.setProperty("opacity","0"),r.src="about:blank",document.body.appendChild(r);const o=r.contentDocument||((e=r.contentWindow)===null||e===void 0?void 0:e.document);if(!o)throw new Error("Iframe document is not accessible");n({iframe:o}),setTimeout((()=>{document.body.removeChild(r)}),0)}function Ee(n,e){return new Promise((r=>setTimeout(r,n,e)))}const Ae=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],Te=["monospace","sans-serif","serif"];function Q(n,e){return n.font=`72px ${e}`,n.measureText("WwMmLli0Oo").width}function Pe(){var n;const e=document.createElement("canvas"),r=(n=e.getContext("webgl"))!==null&&n!==void 0?n:e.getContext("experimental-webgl");
1if(r&&"getParameter"in r)try{const i=(r.getParameter(r.VENDOR)||"").toString(),o=(r.getParameter(r.RENDERER)||"").toString();let t={vendor:i,renderer:o,version:(r.getParameter(r.VERSION)||"").toString(),shadingLanguageVersion:(r.getParameter(r.SHADING_LANGUAGE_VERSION)||"").toString()};if(!o.length||!i.length){const c=r.getExtension("WEBGL_debug_renderer_info");if(c){const l=(r.getParameter(c.UNMASKED_VENDOR_WEBGL)||"").toString(),a=(r.getParameter(c.UNMASKED_RENDERER_WEBGL)||"").toString();l&&(t.vendorUnmasked=l),a&&(t.rendererUnmasked=a)}}return t}catch{}return"undefined"}function Ie(){const n=new Float32Array(1),e=new Uint8Array(n.buffer);return n[0]=1/0,n[0]=n[0]-n[0],e[3]}const N=(n,e,r,i)=>{const o=(r-e)/i;let t=0;for(let c=0;c<i;c++)t+=n(e+(c+.5)*o);return t*o};function Re(n,e){const r={};return e.forEach((i=>{const o=(function(t){if(t.length===0)return null;const c={};t.forEach((s=>{const u=String(s);c[u]=(c[u]||0)+1}));let l=t[0],a=1;return Object.keys(c).forEach((s=>{c[s]>a&&(l=s,a=c[s])})),l})(n.map((t=>i in t?t[i]:void 0)).filter((t=>t!==void 0)));o&&(r[i]=o)})),r}const Le=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"],W=new Map;function $(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};const n=!!navigator.brave,e=(n?"B|":"N|")+navigator.userAgent,r=W.get(e);if(r)return r;const i=[{name:"Brave",detect:()=>n}];let o;for(const t of i)if(t.detect()){const c=ee(navigator.userAgent);return o={name:t.name,version:c.version},W.set(e,o),o}return o=ee(navigator.userAgent),W.set(e,o),o}function ee(n){var e,r,i,o,t,c;const l=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],a={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const s of l){const u=n.match(s);if(u){let d=(e=u.groups)===null||e===void 0?void 0:e.name,f=((r=u.groups)===null||r===void 0?void 0:r.version)||((i=u.groups)===null||i===void 0?void 0:i.version1)||((o=u.groups)===null||o===void 0?void 0:o.version2);if(d||!(!((t=u.groups)===null||t===void 0)&&t.version1)&&!(!((c=u.groups)===null||c===void 0)&&c.version2)||(d="Safari"),!d&&s.source.includes("Opera Mini")&&(d="Opera Mini"),!d&&s.source.includes("Opera Mobi")&&(d="Opera Mobi"),!d&&s.source.includes("Opera")&&(d="Opera"),!d&&u[1]&&(d=u[1]),!f&&u[2]&&(f=u[2]),d)return{name:a[d.toLowerCase()]||d,version:f||"unknown"}}}return{name:"unknown",version:"unknown"}}function te(){if(typeof navigator>"u"||!navigator.userAgent)return!1;const n=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(n)&&!/iPad/i.test(n)}function Oe(){let n=[];const e={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(e).forEach((r=>{e[r].forEach((i=>{matchMedia(`(${r}: ${i})`).matches&&n.push(`${r}: ${i}`)}))})),n}function De(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{const n=window.ApplePaySession.supportsVersion;for(let e=15;e>0;e--)if(n(e))return e}catch{return 0}return 0}const Be=$().name!=="SamsungBrowser"?1:3,Fe=$().name!=="Brave",ne=137,Ne=(()=>{const n=new Float32Array(548),e=2*Math.PI/ne;for(let r=0;r<ne;r++){const i=r*e;n[4*r]=0,n[4*r+1]=0,n[4*r+2]=100*Math.cos(i),n[4*r+3]=50*Math.sin(i)}return n})();let D=null;function re(){try{if(typeof document>"u")return null;const n=document.createElement("canvas");n.width=200,n.height=100;const e=n.getContext("webgl");
1if(!e)return null;n.addEventListener("webglcontextlost",(c=>{c.preventDefault(),D=null}),{once:!0});const r=e.createShader(e.VERTEX_SHADER),i=e.createShader(e.FRAGMENT_SHADER);if(!r||!i||(e.shaderSource(r,`
2    attribute vec2 position;
3    void main() {
4        gl_Position = vec4(position, 0.0, 1.0);
5    }
6`),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))||(e.shaderSource(i,`
7    precision mediump float;
8    void main() {
9        gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
10    }
11`),e.compileShader(i),!e.getShaderParameter(i,e.COMPILE_STATUS)))return null;const o=e.createProgram();if(!o||(e.attachShader(o,r),e.attachShader(o,i),e.linkProgram(o),!e.getProgramParameter(o,e.LINK_STATUS)))return null;const t=e.createBuffer();return t?(e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,Ne,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),{canvas:n,gl:e,program:o,buffer:t}):null}catch{return null}}function x(n){const e=new Set;return(function r(i){if(i&&i.toJSON&&typeof i.toJSON=="function"&&(i=i.toJSON()),i===void 0)return;if(typeof i=="number")return isFinite(i)?""+i:"null";if(typeof i!="object")return JSON.stringify(i);let o,t;if(Array.isArray(i)){for(t="[",o=0;o<i.length;o++)o&&(t+=","),t+=r(i[o])||"null";return t+"]"}if(i===null)return"null";if(e.has(i))throw new TypeError("Converting circular structure to JSON");e.add(i);const c=Object.keys(i).sort();for(t="",o=0;o<c.length;o++){const l=c[o],a=r(i[l]);a&&(t&&(t+=","),t+=JSON.stringify(l)+":"+a)}return e.delete(i),"{"+t+"}"})(n)||""}const ue=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],de=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function B(n,e){return`<math><mrow>${e}</mrow></math>`}function Ue(){let n="<mo>∏</mo>";return ue.forEach(((e,r)=>{const i=2*r,o=de.slice(i,i+2);o.length===2&&(n+=`<mmultiscripts><mi>${e}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`)})),B(0,`<munderover><mmultiscripts>${n}</mmultiscripts></munderover>`)}function $e(){const n=[];return ue.forEach(((e,r)=>{const i=2*r,o=de.slice(i,i+2);o.length===2&&n.push(B(0,`<mmultiscripts><mi>${e}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`))})),n}const He={audio:async function(){return K?(async function(){return new Promise(((n,e)=>{try{const r=new K(1,5e3,44100),i=r.createBufferSource(),o=r.createOscillator();o.frequency.value=1e3;const t=r.createDynamicsCompressor();let c;t.threshold.value=-50,t.knee.value=40,t.ratio.value=12,t.attack.value=0,t.release.value=.2,o.connect(t),t.connect(r.destination),o.start(),r.oncomplete=l=>{c=l.renderedBuffer.getChannelData(0),n({sampleHash:_e(c),maxChannels:r.destination.maxChannelCount,channelCountMode:i.channelCountMode})},r.startRendering()}catch(r){e(r)}}))})():null},canvas:async function(){return new Promise((n=>{const e=Array.from({length:3},(()=>(function(){const r=document.createElement("canvas"),i=r.getContext("2d");if(!i)return null;r.width=Z,r.height=20;const o=i.createLinearGradient(0,0,r.width,r.height);o.addColorStop(0,"red"),o.addColorStop(.16666666666666666,"orange"),o.addColorStop(.3333333333333333,"yellow"),o.addColorStop(.5,"green"),o.addColorStop(.6666666666666666,"blue"),o.addColorStop(.8333333333333334,"indigo"),o.addColorStop(1,"violet"),i.fillStyle=o,i.fillRect(0,0,r.width,r.height);const t="Random Text WMwmil10Oo";return i.font="23.123px Arial",i.fillStyle="black",i.fillText(t,-5,15),i.fillStyle="rgba(0, 0, 255, 0.5)",i.fillText(t,-3.3,17.7),i.beginPath(),i.moveTo(0,0),i.lineTo(2*r.width/7,r.height),i.strokeStyle="white",i.lineWidth=2,i.stroke(),i.getImageData(0,0,r.width,r.height)})())).filter((r=>r!==null));e.length!==0?n({commonPixelsHash:k(X(e,Z,20).data.toString()).toString()}):n(null)}))},fonts:async function(n){return new Promise((e=>{try{le((async({iframe:r})=>{const i=r.createElement("canvas").getContext("2d");if(!i)return void e(null);const o=Te.map((c=>Q(i,c)));let t={};Ae.forEach((c=>{const l=Q(i,c);o.includes(l)||(t[c]=l)})),e(t)}))}catch{e(null)}}))},hardware:function(){return new Promise(((n,e)=>{const r=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,i=window.performance&&window.performance.memory?window.performance.memory:0;n({videocard:Pe(),architecture:Ie(),deviceMemory:r.toString()||"undefined",jsHeapSizeLimit:i.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((n=>{n({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((n=>{n({acos:Math.acos(.5),asin:N(Math.asin,-1,1,97),cos:N(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:N(Math.sin,-Math.PI,Math.PI,97),tan:N(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(n){const e=(n==null?void 0:n.permissions_to_check)||Le;return Re(await Promise.all(Array.from({length:3},(()=>(async function(r){const i={};for(const o of r)try{const t=await navigator.permissions.query({name:o});i[o]=t.state.toString()}catch{}return i})(e)))),e)},plugins:async function(){const n=[];if(navigator.plugins)for(let e=0;e<navigator.plugins.length;e++){const r=navigator.plugins[e];n.push([r.name,r.filename,r.description].join("|"))}return new Promise((e=>{e({plugins:n})}))},screen:function(){return new Promise((n=>{if(typeof matchMedia>"u"||typeof screen>"u")return void n(null);const e={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:Oe()};te()&&navigator.maxTouchPoints>0&&(e.resolution=(function(){const r=window.screen.width,i=window.screen.height,o=Math.max(r,
11i).toString(),t=Math.min(r,i).toString();return`${o}x${t}`})()),n(e)}))},system:function(){return new Promise((n=>{const e=$();n({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:e.name,version:e.version},mobile:te(),applePayVersion:De(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){const n=Fe?(D||(D=re()),D):re();if(!n)return{webgl:"unsupported"};try{const e=Array.from({length:Be},(()=>(function(r){const{canvas:i,gl:o,program:t,buffer:c}=r;try{o.useProgram(t),o.bindBuffer(o.ARRAY_BUFFER,c);const l=o.getAttribLocation(t,"position");o.enableVertexAttribArray(l),o.vertexAttribPointer(l,2,o.FLOAT,!1,0,0),o.viewport(0,0,i.width,i.height),o.clearColor(0,0,0,1),o.clear(o.COLOR_BUFFER_BIT),o.drawArrays(o.LINES,0,274);const a=new Uint8ClampedArray(i.width*i.height*4);return o.readPixels(0,0,i.width,i.height,o.RGBA,o.UNSIGNED_BYTE,a),new ImageData(a,i.width,i.height)}catch{return D=null,new ImageData(1,1)}finally{o.bindBuffer(o.ARRAY_BUFFER,null),o.useProgram(null),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.clearColor(0,0,0,0)}})(n)));return{commonPixelsHash:k(X(e,n.canvas.width,n.canvas.height).data.toString()).toString()}}catch{return{webgl:"unsupported"}}},webrtc:async function(n){return new Promise((e=>{let r;try{const i=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!i)return void e({supported:!1,error:"WebRTC not supported"});r=new i({iceCandidatePoolSize:1,iceServers:[]});const o=r;o.createDataChannel(""),(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},c=await o.createOffer(t);await o.setLocalDescription(c);const l=c.sdp||"",a=[...new Set((l.match(/extmap:\d+ [^\n\r]+/g)||[]).map((C=>C.replace(/extmap:\d+ /,""))))].sort(),s=C=>{const p=l.match(new RegExp(`m=${C} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return p?p[1].split(" "):[]},u=(C,p)=>p.map((P=>{const I=new RegExp(`(rtpmap|fmtp|rtcp-fb):${P} (.+)`,"g"),h=[...l.matchAll(I)];if(!h.length)return null;const g={};return h.forEach((w=>{const[v,b,y]=w,T=y.split("/");b==="rtpmap"?(g.mimeType=`${C}/${T[0]}`,g.clockRate=+T[1],C==="audio"&&(g.channels=+T[2]||1)):b==="rtcp-fb"?(g.feedbackSupport=g.feedbackSupport||[],g.feedbackSupport.push(y)):b==="fmtp"&&(g.sdpFmtpLine=y)})),g})).filter(Boolean),d=u("audio",s("audio")),f=u("video",s("video")),m={audio:{count:d.length,hash:k(x(d))},video:{count:f.length,hash:k(x(f))},extensionsHash:k(x(a))};o.close();const E={supported:!0,...m,candidateType:"host"};e({details:E,hash:k(x(E))})}
11catch(t){o.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(i){r==null||r.close(),e({supported:!1,error:`WebRTC error: ${i.message}`})}}))},speech:async function(){return new Promise((n=>{try{if(typeof window>"u"||!window.speechSynthesis||typeof window.speechSynthesis.getVoices!="function")return void n({supported:!1,error:"Speech Synthesis API not supported"});let e=!1,r=null;const i=c=>{if(!e){e=!0,r&&clearTimeout(r);try{const l=c.map((s=>{const u=d=>d.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[u(s.voiceURI||""),u(s.name||""),u(s.lang||""),s.localService?"1":"0",s.default?"1":"0"].join(",")}));l.sort();const a={voiceCount:c.length,voicesHash:k(x(l))};n({details:a,hash:k(x(a))})}catch(l){n({supported:!0,error:`Voice processing failed: ${l.message}`})}}},o=window.speechSynthesis.getVoices();if(o.length>0)return void i(o);r=setTimeout((()=>{const c=window.speechSynthesis.getVoices();i(c)}),800);const t=()=>{window.speechSynthesis.removeEventListener("voiceschanged",t);const c=window.speechSynthesis.getVoices();i(c)};window.speechSynthesis.addEventListener("voiceschanged",t)}catch(e){n({supported:!1,error:`Speech Synthesis error: ${e.message}`})}}))}},je={intl:async function(){if(typeof Intl>"u")return null;try{const n=new Date(Date.UTC(2024,0,15,12,30,45)),e={dateFullFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"full",timeZone:"UTC"}).format(n),dateMediumFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"medium",timeZone:"UTC"}).format(n),timeFormat:new Intl.DateTimeFormat("en-US",{timeStyle:"long",timeZone:"UTC"}).format(n),numberFormat:new Intl.NumberFormat("en-US").format(123456.789),currencyFormat:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(123456.789),percentFormat:new Intl.NumberFormat("en-US",{style:"percent"}).format(.456),nonLatinDate:new Intl.DateTimeFormat("ar-EG",{timeZone:"UTC"}).format(n),nonLatinNumber:new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(123456.789)},r=Intl;return typeof r.ListFormat=="function"&&(e.listFormat=new r.ListFormat("en",{type:"conjunction"}).format(["a","b","c"])),typeof r.DisplayNames=="function"&&(e.displayNames=new r.DisplayNames("en",{type:"region"}).of("US")||""),{details:e,hash:k(x(e))}}catch{return null}},mathml:async function(){return new Promise((n=>{try{le((async({iframe:e})=>{try{if(!(function(c){try{const l=c.createElement("math");l.innerHTML="<mrow><mi>x</mi></mrow>",l.style.position="absolute",l.style.visibility="hidden",c.body.appendChild(l);const a=l.getBoundingClientRect();return c.body.removeChild(l),a.width>0&&a.height>0}catch{return!1}})(e))return void n({supported:!1,error:"MathML not supported"});const r=[B("integral","<msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),B("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),B("matrix","<mo>[</mo><mtable><mtr><mtd><mi>α</mi></mtd><mtd><mi>β</mi></mtd></mtr><mtr><mtd><mi>γ</mi></mtd><mtd><mi>δ</mi></mtd></mtr></mtable><mo>]</mo>"),Ue(),...$e()],i=[];let o="";r.forEach(((c,l)=>{const a=(function(s,u){try{const d=u.createElement("math");d.innerHTML=s.replace(/<\/?math>/g,""),d.style.whiteSpace="nowrap",d.style.position="absolute",d.style.visibility="hidden",d.style.top="-9999px",u.body.appendChild(d);const f=d.getBoundingClientRect(),m=(u.defaultView||window).getComputedStyle(d),E={dimensions:{width:f.width,height:f.height},fontInfo:{fontFamily:m.fontFamily,fontSize:m.fontSize,fontWeight:m.fontWeight,fontStyle:m.fontStyle,lineHeight:m.lineHeight,fontVariant:m.fontVariant||"normal",fontStretch:m.fontStretch||"normal",fontSizeAdjust:m.fontSizeAdjust||"none",textRendering:m.textRendering||"auto",fontFeatureSettings:m.fontFeatureSettings||"normal",fontVariantNumeric:m.fontVariantNumeric||"normal",fontKerning:m.fontKerning||"auto"}};return u.body.removeChild(d),E}catch(d){return{error:d.message}}})(c,e);i.push({width:a.dimensions.width,height:a.dimensions.height}),l===0&&a.fontInfo&&(o=k(x(a.fontInfo)))}));const t={fontStyleHash:o,dimensions:i};n({details:t,hash:k(x(t))})}catch(r){n({supported:!1,error:`MathML error: ${r.message}`})}}))}catch(e){n({supported:!1,error:`MathML error: ${e.message}`})}}))},mediadevices:async function(){if(typeof navigator>"u"||!navigator.mediaDevices||typeof navigator.mediaDevices.enumerateDevices!="function")return null;try{const n=await navigator.mediaDevices.enumerateDevices(),e={};for(const r of n)e[r.kind]=(e[r.kind]||0)+1;return{audioinput:e.audioinput||0,audiooutput:e.audiooutput||0,videoinput:e.videoinput||0}}catch{return null}}},Ve={},We={timeout:"true"};function me(n,e){var r,i;let o=$();if(o.name==="unknown"&&e){const s=(r=e.system)===null||r===void 0?void 0:r.browser;s!=null&&s.name&&(o={name:String(s.name),version:String(s.version||"unknown")})}const t=o.name.toLowerCase(),c=parseInt(o.version.split(".")[0]||"0",10),l=Array.isArray(n==null?void 0:n.exclude)?[...n.exclude]:[],a=[...new Set([...(n==null?void 0:n.stabilize)||[],"always"])];for(const s of a){const u=Me[s];if(u)for(const d of u)"browsers"in d&&!(!((i=d.browsers)===null||i===void 0)&&i.some((f=>{const m=f.match(/(.+?)(>=)(\d+)/);return m?t===m[1]&&c>=+m[3]:t===f}
11)))||l.push(...d.exclude)}return l}function fe(n,e){const r=me(e,n),i=Array.isArray(e==null?void 0:e.include)?e.include:[];return(function o(t,c=""){const l={};for(const[a,s]of Object.entries(t)){const u=c?`${c}.${a}`:a;if(typeof s!="object"||Array.isArray(s)||s===null){const d=r.some((m=>u.startsWith(m))),f=i.some((m=>u.startsWith(m)));d&&!f||(l[a]=s)}else{const d=o(s,u);Object.keys(d).length>0&&(l[a]=d)}}return l})(n)}const pe="visitor_id";function he(n){return n.storage_property_name?n.storage_property_name:n.property_name_factory(pe)}const oe=`${ae}_${pe}`;function ge(n,e){try{localStorage.setItem(he(e),n)}catch{}}const ve="cache";function G(n){try{const e=localStorage.getItem(n.property_name_factory(ve));return JSON.parse(e)||{}}catch{}return{}}function Ge(n){return n.cache_lifetime_in_ms>2592e5?Date.now()+2592e5:Date.now()+n.cache_lifetime_in_ms}class U extends Error{constructor(e){super(`HTTP error! status: ${e}`),this.status=e}}let O=null,z=null;async function ze(n,e,r,i){const o=await fetch(n,{method:"POST",headers:{"x-api-key":r.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok)throw new U(o.status);const t=await o.json();return t.visitorId&&t.visitorId!==i&&ge(t.visitorId,r),z=t,(function(c,l){!c.cache_api_call||!c.cache_lifetime_in_ms||(function(a,s){const u={...G(a),...s};try{localStorage.setItem(a.property_name_factory(ve),JSON.stringify(u))}catch{}})(c,{apiResponseExpiry:Ge(c),apiResponse:l})})(r,t),t}const qe=(n,e)=>{if(n.cache_api_call){if(z)return Promise.resolve(z);const a=(function(s){const u=G(s);if(u&&u.apiResponse&&u.apiResponseExpiry&&Date.now()<=u.apiResponseExpiry)return u.apiResponse})(n);if(a)return Promise.resolve(a);if(O)return O}const r=`${n.api_endpoint||se}/thumbmark`,i=(function(a){try{const s=he(a);let u=localStorage.getItem(s);return u||s===oe||(u=localStorage.getItem(oe),u&&ge(u,a)),u}catch{return null}})(n),o={components:e,options:n,clientHash:k(x(e)),version:"1.9.1"};if(i&&(o.visitorId=i),n.metadata){const a=typeof n.metadata=="function"?n.metadata():n.metadata;a&&((typeof a=="string"?a.length:JSON.stringify(a).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):o.metadata=a)}const t=n.timeout||5e3,c=(async function(a,s,u,d){for(let f=0;f<3;f++){f>0&&await new Promise((m=>setTimeout(m,200*f)));try{return await ze(a,s,u,d)}catch(m){if(m instanceof U||f===2)throw m}}throw new Error("Unreachable")})(r,o,n,i).finally((()=>{O=null})),l=new Promise((a=>{setTimeout((()=>{const s=G(n);a((s==null?void 0:s.apiResponse)||{info:{timed_out:!0},...i&&{visitorId:i}})}),t)}));return O=Promise.race([c,l]),O};async function Je(n,e={}){var r,i;if(typeof document>"u"||typeof window>"u")return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:"Browser environment required"}]};try{const o={...q,...n},t=[],c=o.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,l={...He,...Ve,...e},{elapsed:a,resolvedComponents:s,errors:u,pipelineTimings:d}=await ie(l,o);t.push(...u);let f={},m={},E={};if(c||o.experimental){const{elapsed:M,resolvedComponents:R,errors:L,pipelineTimings:j}=await ie(je,o);f=R,m=M,E=j,t.push(...L)}const C=o.api_key?qe(o,s):null;let p=null;if(C)try{p=await C}
11catch(M){if(M instanceof U&&M.status===403)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.9.1",thumbmark:""};t.push({type:M instanceof U?"api_error":"network_error",message:M instanceof Error?M.message:String(M)})}!((r=p==null?void 0:p.info)===null||r===void 0)&&r.timed_out&&t.push({type:"api_timeout",message:"API request timed out"});const P=performance.now(),I=fe((p==null?void 0:p.components)||{},o),h=performance.now()-P,g={...s,...I},w=(p==null?void 0:p.info)||{uniqueness:{score:"api only"}};let v,b=0,y=0;if(p!=null&&p.thumbmark)v=p.thumbmark;else{const M=performance.now(),R=x(g);b=performance.now()-M;const L=performance.now();v=k(R),y=performance.now()-L}const T="1.9.1";c&&(async function(M,R,L,j={},Y=[]){var V;const be=`${se}/log`,Ce={thumbmark:M,components:R,experimental:j,version:"1.9.1",options:L,path:(V=window==null?void 0:window.location)===null||V===void 0?void 0:V.pathname,...Y.length>0&&{errors:Y}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(be,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ce)})}catch{}})(v,g,o,f,t).catch((()=>{}));const H=(i=E["_pipeline.filter"])!==null&&i!==void 0?i:0,A={"_pipeline.dispatch":d["_pipeline.dispatch"],"_pipeline.resolve":d["_pipeline.resolve"],"_pipeline.filter":d["_pipeline.filter"]+H+h,"_pipeline.stringify":b,"_pipeline.hash":y,"_pipeline.assembly":0},J={...a,...m,...d,...A},we=o.performance?{elapsed:J}:{},ye=performance.now(),Se={...(p==null?void 0:p.visitorId)&&{visitorId:p.visitorId},thumbmark:v,components:g,info:w,version:T,...we,...t.length>0&&{error:t},...Object.keys(f).length>0&&o.experimental&&{experimental:f},...(p==null?void 0:p.requestId)&&{requestId:p.requestId},...(p==null?void 0:p.metadata)&&{metadata:p.metadata}};return J["_pipeline.assembly"]=performance.now()-ye,Se}catch(o){return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:o instanceof Error?o.message:String(o)}]}}}async function ie(n,e){const r={...q,...e},i=me(r).filter((h=>!h.includes("."))),o=Object.entries(n).filter((([h])=>{var g;return!(!((g=r==null?void 0:r.exclude)===null||g===void 0)&&g.includes(h))})).filter((([h])=>!i.includes(h))).filter((([h])=>{var g,w,v,b;return!((g=r==null?void 0:r.include)===null||g===void 0)&&g.some((y=>y.includes(".")))?(w=r==null?void 0:r.include)===null||w===void 0?void 0:w.some((y=>y.startsWith(h))):((v=r==null?void 0:r.include)===null||v===void 0?void 0:v.length)===0||((b=r==null?void 0:r.include)===null||b===void 0?void 0:b.includes(h))})),t=o.map((([h])=>h)),c={},l=performance.now(),a=o.map((([h,g])=>{const w=performance.now(),v=g(e);return c[`_dispatch.${h}`]=performance.now()-w,v})),s=performance.now()-l,u=performance.now(),d=await(function(h,g,w){return Promise.all(h.map((v=>{const b=performance.now();let y;const T=v.then((A=>(y!==void 0&&clearTimeout(y),{value:A,elapsed:performance.now()-b}))).catch((A=>(y!==void 0&&clearTimeout(y),{value:w,elapsed:performance.now()-b,error:A instanceof Error?A.message:String(A)}))),H=new Promise((A=>{y=setTimeout((()=>{A({value:w,elapsed:performance.now()-b,error:"timeout"})}),g)}));return Promise.race([T,H])})))})(a,(r==null?void 0:r.timeout)||5e3,We),f=performance.now()-u,m={},E={},C=[];d.forEach(((h,g)=>{var w;const v=t[g];m[v]=(w=h.elapsed)!==null&&w!==void 0?w:0,h.error==="timeout"?C.push({type:"component_timeout",message:`Component '${v}' timed out`,component:v}):h.error&&C.push({type:"component_error",message:h.error,component:v}),h.value!=null&&(E[v]=h.value)}));const p=performance.now(),P=fe(E,r),I={"_pipeline.dispatch":s,"_pipeline.resolve":f,"_pipeline.filter":performance.now()-p,...c};return{elapsed:m,resolvedComponents:P,errors:C,pipelineTimings:I}}async function Ye(n){try{const e=await Je(ce);return n?{hash:e.thumbmark.toString(),data:e.components}:e.thumbmark.toString()}catch(e){throw e}}ke("logging",!1);const Ke=15e3,Xe=3e4,Ze=250;function Qe(n){const e=document.querySelector(`meta[name="${n}"]`);return e?e.content:null}function et(){const n=new Uint8Array(16);return(window.crypto||window.msCrypto).getRandomValues(n),Array.from(n,e=>e.toString(16).padStart(2,"0")).join("")}class tt{constructor(e){this.postId=parseInt(e,10),this.viewId=et(),this.locale=document.documentElement.lang||"fr",this.activeSeconds=0,this.scrollMax=0,this.milestones=0,this.shareClicks=0,this.nextPostId=null,this.linkClickCount=0,this.recentLinkClicks=new Set,this.fingerprint=null,this.lastActivity=Date.now(),this.lastTick=Date.now(),this.dirty=!1,this.sent=!1,this.docHeight=()=>Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight)-window.innerHeight}start(){Ye().then(r=>{this.fingerprint=r,this.dirty=!0}).catch(()=>{}),this.timer=setInterval(()=>this.tick(),1e3),this.heartbeat=setInterval(()=>this.flush(!1),Ke),["mousemove","keydown","click","touchstart","scroll"].forEach(r=>window.addEventListener(r,()=>{this.lastActivity=Date.now()},{passive:!0}));let e=!1;window.addEventListener("scroll",()=>{e||(e=!0,setTimeout(()=>{this.measureScroll(),e=!1},Ze))},{passive:!0}),document.addEventListener("click",r=>{r.target.closest('[data-share], .share-button, a[href*="sharer"], a[href*="share?"], a[href*="intent/tweet"]')&&(this.shareClicks++,this.dirty=!0)}),document.addEventListener("click",r=>{const i=r.target.closest("a[data-post-id]");i&&(this.nextPostId=parseInt(i.getAttribute("data-post-id"),10)||null,this.dirty=!0)}),document.addEventListener("pointerdown",r=>{const i=r.target.closest(".articleBody a[href]");if(!i)return;const o=i.getAttribute("href");!o||o.startsWith("#")||o.startsWith("javascript:")||this.trackLinkClick(i,o)},{capture:!0}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&this.flush(!0)}),window.addEventListener("pagehide",()=>this.flush(!0)),this.measureScroll()}tick(){const e=Date.now();document.visibilityState==="visible"&&e-this.lastActivity<Xe&&(this.activeSeconds+=1,this.dirty=!0),this.lastTick=e}measureScroll(){const e=this.docHeight(),r=e<=0?100:Math.min(100,Math.round(window.scrollY/e*100));r>this.scrollMax&&(this.scrollMax=r,this.dirty=!0),r>=25&&(this.milestones|=1),r>=50&&(this.milestones|=2),r>=75&&(this.milestones|=4),r>=100&&(this.milestones|=8)}payload(){return{view_id:this.viewId,post_id:this.postId,active_seconds:this.activeSeconds,scroll_pct:this.scrollMax,milestones:this.milestones,share_clicks:this.shareClicks,next_post_id:this.nextPostId,locale:this.locale,fingerprint:this.fingerprint}}flush(e){if(!this.dirty&&this.sent)return;const r=JSON.stringify(this.payload());e&&navigator.sendBeacon?navigator.sendBeacon("/api/track/engagement",new Blob([r],{type:"application/json"})):fetch("/api/track/engagement",{method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:r,keepalive:!0}
11).catch(()=>{}),this.dirty=!1,this.sent=!0}trackLinkClick(e,r){const i=r+"|"+(e.textContent||"").slice(0,40);if(this.recentLinkClicks.has(i))return;this.recentLinkClicks.add(i),setTimeout(()=>this.recentLinkClicks.delete(i),800),this.linkClickCount+=1;const o=JSON.stringify({post_id:this.postId,view_id:this.viewId,href:r,anchor_text:(e.textContent||"").trim().slice(0,255),link_position:this.linkClickCount,locale:this.locale});navigator.sendBeacon?navigator.sendBeacon("/api/track/link-click",new Blob([o],{type:"application/json"})):fetch("/api/track/link-click",{method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:o,keepalive:!0}).catch(()=>{})}}function rt(){const n=Qe("post-id");if(!n)return;const e=new tt(n);document.readyState==="complete"?e.start():window.addEventListener("load",()=>e.start())}export{rt as i};

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.