@thumbmarkjs/thumbmarkjs 1.7.5 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/thumbmark.cjs.js +1 -1
- package/dist/thumbmark.cjs.js.map +1 -1
- package/dist/thumbmark.esm.d.ts +1 -1
- package/dist/thumbmark.esm.js +1 -1
- package/dist/thumbmark.esm.js.map +1 -1
- package/dist/thumbmark.umd.js +1 -1
- package/dist/thumbmark.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/functions/api.test.ts +51 -0
- package/src/functions/api.ts +60 -49
- package/src/functions/index.ts +4 -5
package/dist/thumbmark.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=2592e5,t="thumbmark",n="https://api.thumbmarkjs.com",o={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:e=>`${t}_${e}`};let r={...o};function i(e,t){r[e]=t}const a={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"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function u(e,t,n){let o=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let o=0;o<e.length;o++)n.push(e[o].data[t]);o.push(l(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function l(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function d(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const m=new Uint32Array([597399067,2869860233,951274213,2716044179]);function p(e,t){return e<<t|e>>>32-t}function h(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t.push(o):o<2048?t.push(192|o>>6,128|63&o):o<55296||o>=57344?t.push(224|o>>12,128|o>>6&63,128|63&o):(n++,o=65536+((1023&o)<<10|1023&e.charCodeAt(n)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,o=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=o.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],m[0]),n[0]=p(n[0],15),n[0]=Math.imul(n[0],m[1]),t[0]=t[0]^n[0],t[0]=p(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],m[1]),n[1]=p(n[1],16),n[1]=Math.imul(n[1],m[2]),t[1]=t[1]^n[1],t[1]=p(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],m[2]),n[2]=p(n[2],17),n[2]=Math.imul(n[2],m[3]),t[2]=t[2]^n[2],t[2]=p(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],m[3]),n[3]=p(n[3],18),n[3]=Math.imul(n[3],m[0]),t[3]=t[3]^n[3],t[3]=p(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*n,o);switch(o){case 15:r[3]=r[3]^i[14]<<16;case 14:r[3]=r[3]^i[13]<<8;case 13:r[3]=r[3]^i[12],r[3]=Math.imul(r[3],m[3]),r[3]=p(r[3],18),r[3]=Math.imul(r[3],m[0]),t[3]=t[3]^r[3];case 12:r[2]=r[2]^i[11]<<24;case 11:r[2]=r[2]^i[10]<<16;case 10:r[2]=r[2]^i[9]<<8;case 9:r[2]=r[2]^i[8],r[2]=Math.imul(r[2],m[2]),r[2]=p(r[2],17),r[2]=Math.imul(r[2],m[3]),t[2]=t[2]^r[2];case 8:r[1]=r[1]^i[7]<<24;case 7:r[1]=r[1]^i[6]<<16;case 6:r[1]=r[1]^i[5]<<8;case 5:r[1]=r[1]^i[4],r[1]=Math.imul(r[1],m[1]),r[1]=p(r[1],16),r[1]=Math.imul(r[1],m[2]),t[1]=t[1]^r[1];case 4:r[0]=r[0]^i[3]<<24;case 3:r[0]=r[0]^i[2]<<16;case 2:r[0]=r[0]^i[1]<<8;case 1:r[0]=r[0]^i[0],r[0]=Math.imul(r[0],m[0]),r[0]=p(r[0],15),r[0]=Math.imul(r[0],m[1]),t[0]=t[0]^r[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.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]=d(t[0]),t[1]=d(t[1]),t[2]=d(t[2]),t[3]=d(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}(e,n);const o=new Uint8Array(n.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const f=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const o=n.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const r=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const v=["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"],y=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let o={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),r=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(o.vendorUnmasked=t),r&&(o.rendererUnmasked=r)}}return o}catch(e){}return"undefined"}function E(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const M=(e,t,n,o)=>{const r=(n-t)/o;let i=0;for(let n=0;n<o;n++){i+=e(t+(n+.5)*r)}return i*r};function P(e,t){const n={};return t.forEach((t=>{const o=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],o=1;return Object.keys(t).forEach((e=>{t[e]>o&&(n=e,o=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));o&&(n[t]=o)})),n}const C=["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"];function x(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=[{name:"Brave",detect:()=>!!navigator.brave}];for(const t of e)if(t.detect()){const e=A(navigator.userAgent);return{name:t.name,version:e.version}}return A(navigator.userAgent)}function A(e){var t,n,o,r,i,a;const s=[/(?<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+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const u of s){const s=e.match(u);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,l=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(o=s.groups)||void 0===o?void 0:o.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&u.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&u.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&u.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!l&&s[2]&&(l=s[2]),e){return{name:c[e.toLowerCase()]||e,version:l||"unknown"}}}}return{name:"unknown",version:"unknown"}}function _(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function I(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function T(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const R="SamsungBrowser"!==x().name?1:3;let k,O=null;function L(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let o,r;if(Array.isArray(n)){for(r="[",o=0;o<n.length;o++)o&&(r+=","),r+=e(n[o])||"null";return r+"]"}if(null===n)return"null";if(-1!==t.indexOf(n))throw new TypeError("Converting circular structure to JSON");const i=t.push(n)-1,a=Object.keys(n).sort();for(r="",o=0;o<a.length;o++){const t=a[o],i=e(n[t]);i&&(r&&(r+=","),r+=JSON.stringify(t)+":"+i)}return t.splice(i,1),"{"+r+"}"}(e)||""}const N=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],B=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function D(e,t){return`<math><mrow>${t}</mrow></math>`}function $(){let e="<mo>∏</mo>";return N.forEach(((t,n)=>{const o=2*n,r=B.slice(o,o+2);2===r.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`)})),D(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function F(){const e=[];return N.forEach(((t,n)=>{const o=2*n,r=B.slice(o,o+2);2===r.length&&e.push(D(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const V={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;const r=t.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,o.connect(r),r.connect(t.destination),o.start(),t.oncomplete=o=>{i=o.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=f,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const o="Random Text WMwmil10Oo";t.font="23.123px Arial",t.fillStyle="black",t.fillText(o,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(o,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke();const r=t.getImageData(0,0,e.width,e.height);return r}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:h(u(t,f,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const o=y.map((e=>S(n,e)));let r={};v.forEach((e=>{const t=S(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:E(),deviceMemory:n.toString()||"undefined",jsHeapSizeLimit:o.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:M(Math.asin,-1,1,97),cos:M(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:M(Math.sin,-Math.PI,Math.PI,97),tan:M(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||C;return P(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:I()};_()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),o=Math.min(e,t).toString();return`${n}x${o}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=x();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:_(),applePayVersion:T(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(k=document.createElement("canvas"),k.width=200,k.height=100,O=k.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:R},(()=>function(){try{if(!O)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",t="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",n=O.createShader(O.VERTEX_SHADER),o=O.createShader(O.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(O.shaderSource(n,e),O.shaderSource(o,t),O.compileShader(n),!O.getShaderParameter(n,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(n));if(O.compileShader(o),!O.getShaderParameter(o,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(o));const r=O.createProgram();if(!r)throw new Error("Failed to create shader program");if(O.attachShader(r,n),O.attachShader(r,o),O.linkProgram(r),!O.getProgramParameter(r,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(r));O.useProgram(r);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const t=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(t)*(k.width/2),a[4*e+3]=Math.sin(t)*(k.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const u=O.getAttribLocation(r,"position");O.enableVertexAttribArray(u),O.vertexAttribPointer(u,2,O.FLOAT,!1,0,0),O.viewport(0,0,k.width,k.height),O.clearColor(0,0,0,1),O.clear(O.COLOR_BUFFER_BIT),O.drawArrays(O.LINES,0,2*i);const l=new Uint8ClampedArray(k.width*k.height*4);O.readPixels(0,0,k.width,k.height,O.RGBA,O.UNSIGNED_BYTE,l);return new ImageData(l,k.width,k.height)}catch(e){return new ImageData(1,1)}finally{O&&(O.bindBuffer(O.ARRAY_BUFFER,null),O.useProgram(null),O.viewport(0,0,O.drawingBufferWidth,O.drawingBufferHeight),O.clearColor(0,0,0,0))}}()));return{commonPixelsHash:h(u(e,k.width,k.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void t({supported:!1,error:"WebRTC not supported"});const o=new n({iceCandidatePoolSize:1,iceServers:[]});o.createDataChannel("");(async()=>{try{const n={offerToReceiveAudio:!0,offerToReceiveVideo:!0},r=await o.createOffer(n);await o.setLocalDescription(r);const i=r.sdp||"",a=[...new Set((i.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),s=e=>{const t=i.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},c=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...i.matchAll(n)];if(!o.length)return null;const r={};return o.forEach((t=>{const[n,o,i]=t,a=i.split("/");"rtpmap"===o?(r.mimeType=`${e}/${a[0]}`,r.clockRate=+a[1],"audio"===e&&(r.channels=+a[2]||1)):"rtcp-fb"===o?(r.feedbackSupport=r.feedbackSupport||[],r.feedbackSupport.push(i)):"fmtp"===o&&(r.sdpFmtpLine=i)})),r})).filter(Boolean),u=c("audio",s("audio")),l=c("video",s("video")),d={audio:{count:u.length,hash:h(L(u))},video:{count:l.length,hash:h(L(l))},extensionsHash:h(L(a))},m=(null==e?void 0:e.timeout)||5e3,p=Math.floor(.9*m),f=await new Promise((e=>{const t=setTimeout((()=>{o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,timeout:!0})}),p),n=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,candidateType:i.type||""}))};o.addEventListener("icecandidate",n)}));t({details:f,hash:h(L(f))})}catch(e){o.close(),t({supported:!0,error:`WebRTC offer failed: ${e.message}`})}})()}catch(e){t({supported:!1,error:`WebRTC error: ${e.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const o=o=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=o.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:o.length,voicesHash:h(L(t))};e({details:n,hash:h(L(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},r=window.speechSynthesis.getVoices();if(r.length>0)return void o(r);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();o(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();o(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},U={mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[D("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>"),D("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),D("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>"),$(),...F()],o=[];let r="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const o=n.getBoundingClientRect(),r=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:o.width,height:o.height},fontInfo:{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight,fontVariant:r.fontVariant||"normal",fontStretch:r.fontStretch||"normal",fontSizeAdjust:r.fontSizeAdjust||"none",textRendering:r.textRendering||"auto",fontFeatureSettings:r.fontFeatureSettings||"normal",fontVariantNumeric:r.fontVariantNumeric||"normal",fontKerning:r.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);o.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(r=h(L(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:h(L(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}},j={},W={timeout:"true"},H=(e,t,n)=>{j[e]=t};function G(){return"1.7.5"}function z(e,t){var n,o;let r=x();if("unknown"===r.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(r={name:String(e.name),version:String(e.version||"unknown")})}const i=r.name.toLowerCase(),s=parseInt(r.version.split(".")[0]||"0",10),c=[...(null==e?void 0:e.exclude)||[]],u=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of u){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(o=e.browsers)||void 0===o?void 0:o.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function J(e,t){const n=z(t,e),o=(null==t?void 0:t.include)||[];return function e(t,r=""){const i={};for(const[a,s]of Object.entries(t)){const t=r?`${r}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),r=o.some((e=>t.startsWith(e)));e&&!r||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const q="visitor_id";function K(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(q)}const Y=`${t}_${q}`;function X(e,t){try{localStorage.setItem(K(t),e)}catch(e){}}const Z="cache";function Q(e){try{const t=localStorage.getItem(e.property_name_factory(Z)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function ee(t){return t.cache_lifetime_in_ms>e?Date.now()+e:Date.now()+t.cache_lifetime_in_ms}let te=null,ne=null;const oe=(e,t)=>{if(e.cache_api_call){if(ne)return Promise.resolve(ne);const t=function(e){const t=Q(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(te)return te}const o=`${e.api_endpoint||n}/thumbmark`,r=function(e){try{const t=K(e);let n=localStorage.getItem(t);return n||t===Y||(n=localStorage.getItem(Y),n&&X(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:h(L(t)),version:"1.7.5"};if(r&&(i.visitorId=r),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=fetch(o,{method:"POST",headers:{"x-api-key":e.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(i)}).then((e=>{if(!e.ok){if(403===e.status)throw new Error("INVALID_API_KEY");throw new Error(`HTTP error! status: ${e.status}`)}return e.json()})).then((t=>(t.visitorId&&t.visitorId!==r&&X(t.visitorId,e),ne=t,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...Q(e),...t};try{localStorage.setItem(e.property_name_factory(Z),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:ee(e),apiResponse:t})}(e,t),te=null,t))).catch((e=>{throw te=null,e})),s=e.timeout||5e3,c=new Promise((t=>{setTimeout((()=>{const n=Q(e);n&&n.apiResponse?t(n.apiResponse):t({info:{timed_out:!0},...r&&{visitorId:r}})}),s)}));return te=Promise.race([a,c]),te};async function re(e,t={}){var r,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.7.5",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...o,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,u={...V,...j,...t},{elapsed:l,resolvedComponents:d,errors:m}=await ie(u,a);s.push(...m);let p={},f={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n}=await ie(U,a);p=t,f=e,s.push(...n)}const g=a.api_key?oe(a,d):null;let w=null;if(g)try{w=await g}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.7.5",thumbmark:""};s.push({type:"api_error",message:e instanceof Error?e.message:String(e)})}(null===(r=null==w?void 0:w.info)||void 0===r?void 0:r.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const v={...l,...f},y=a.performance?{elapsed:v}:{},S=J((null==w?void 0:w.components)||{},a),b={...d,...S},E=(null==w?void 0:w.info)||{uniqueness:{score:"api only"}},M=null!==(i=null==w?void 0:w.thumbmark)&&void 0!==i?i:h(L(b)),P="1.7.5";c&&async function(e,t,o,r={},i=[]){var a;const s=`${n}/log`,c={thumbmark:e,components:t,experimental:r,version:"1.7.5",options:o,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(M,b,a,p,s).catch((()=>{}));return{...(null==w?void 0:w.visitorId)&&{visitorId:w.visitorId},thumbmark:M,components:b,info:E,version:P,...y,...s.length>0&&{error:s},...Object.keys(p).length>0&&a.experimental&&{experimental:p},...(null==w?void 0:w.requestId)&&{requestId:w.requestId},...(null==w?void 0:w.metadata)&&{metadata:w.metadata}}}catch(e){return{thumbmark:"",components:{},info:{},version:"1.7.5",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function ie(e,t){const n={...o,...t},r=z(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!r.includes(e))).filter((([e])=>{var t,o,r,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.some((t=>t.startsWith(e))):0===(null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s=i.map((([e,n])=>n(t))),c=await function(e,t,n){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))).catch((e=>({value:n,elapsed:performance.now()-o,error:e instanceof Error?e.message:String(e)}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o,error:"timeout"})))]);var r,i})))}(s,(null==n?void 0:n.timeout)||5e3,W),u={},l={},d=[];c.forEach(((e,t)=>{var n;const o=a[t];u[o]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?d.push({type:"component_timeout",message:`Component '${o}' timed out`,component:o}):e.error&&d.push({type:"component_error",message:e.error,component:o}),null!=e.value&&(l[o]=e.value)}));const m=J(l,n);return{elapsed:u,resolvedComponents:m,errors:d}}async function ae(){return(await re(r)).components}async function se(e){try{const t=await re(r);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}}async function ce(){try{const{elapsed:e,resolvedComponents:t}=await ie(V,r);return{...t,elapsed:e}}catch(e){throw e}}class ue{constructor(e){this.options={...o,...e},this.customComponents={}}async get(e){return re({...this.options,...e},this.customComponents)}getVersion(){return"1.7.5"}includeComponent(e,t){this.customComponents[e]=t}}export{ue as Thumbmark,J as filterThumbmarkData,se as getFingerprint,ae as getFingerprintData,ce as getFingerprintPerformance,re as getThumbmark,G as getVersion,H as includeComponent,i as setOption,a as stabilizationExclusionRules,L as stableStringify};
|
|
1
|
+
const e=2592e5,t="thumbmark",n="https://api.thumbmarkjs.com",o={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:e=>`${t}_${e}`};let r={...o};function i(e,t){r[e]=t}const a={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"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function u(e,t,n){let o=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let o=0;o<e.length;o++)n.push(e[o].data[t]);o.push(l(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function l(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function d(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const m=new Uint32Array([597399067,2869860233,951274213,2716044179]);function f(e,t){return e<<t|e>>>32-t}function p(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t.push(o):o<2048?t.push(192|o>>6,128|63&o):o<55296||o>=57344?t.push(224|o>>12,128|o>>6&63,128|63&o):(n++,o=65536+((1023&o)<<10|1023&e.charCodeAt(n)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,o=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=o.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],m[0]),n[0]=f(n[0],15),n[0]=Math.imul(n[0],m[1]),t[0]=t[0]^n[0],t[0]=f(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],m[1]),n[1]=f(n[1],16),n[1]=Math.imul(n[1],m[2]),t[1]=t[1]^n[1],t[1]=f(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],m[2]),n[2]=f(n[2],17),n[2]=Math.imul(n[2],m[3]),t[2]=t[2]^n[2],t[2]=f(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],m[3]),n[3]=f(n[3],18),n[3]=Math.imul(n[3],m[0]),t[3]=t[3]^n[3],t[3]=f(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*n,o);switch(o){case 15:r[3]=r[3]^i[14]<<16;case 14:r[3]=r[3]^i[13]<<8;case 13:r[3]=r[3]^i[12],r[3]=Math.imul(r[3],m[3]),r[3]=f(r[3],18),r[3]=Math.imul(r[3],m[0]),t[3]=t[3]^r[3];case 12:r[2]=r[2]^i[11]<<24;case 11:r[2]=r[2]^i[10]<<16;case 10:r[2]=r[2]^i[9]<<8;case 9:r[2]=r[2]^i[8],r[2]=Math.imul(r[2],m[2]),r[2]=f(r[2],17),r[2]=Math.imul(r[2],m[3]),t[2]=t[2]^r[2];case 8:r[1]=r[1]^i[7]<<24;case 7:r[1]=r[1]^i[6]<<16;case 6:r[1]=r[1]^i[5]<<8;case 5:r[1]=r[1]^i[4],r[1]=Math.imul(r[1],m[1]),r[1]=f(r[1],16),r[1]=Math.imul(r[1],m[2]),t[1]=t[1]^r[1];case 4:r[0]=r[0]^i[3]<<24;case 3:r[0]=r[0]^i[2]<<16;case 2:r[0]=r[0]^i[1]<<8;case 1:r[0]=r[0]^i[0],r[0]=Math.imul(r[0],m[0]),r[0]=f(r[0],15),r[0]=Math.imul(r[0],m[1]),t[0]=t[0]^r[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.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]=d(t[0]),t[1]=d(t[1]),t[2]=d(t[2]),t[3]=d(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}(e,n);const o=new Uint8Array(n.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const h=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const o=n.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const r=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const v=["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"],y=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let o={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),r=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(o.vendorUnmasked=t),r&&(o.rendererUnmasked=r)}}return o}catch(e){}return"undefined"}function M(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const E=(e,t,n,o)=>{const r=(n-t)/o;let i=0;for(let n=0;n<o;n++){i+=e(t+(n+.5)*r)}return i*r};function P(e,t){const n={};return t.forEach((t=>{const o=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],o=1;return Object.keys(t).forEach((e=>{t[e]>o&&(n=e,o=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));o&&(n[t]=o)})),n}const x=["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"];function C(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=[{name:"Brave",detect:()=>!!navigator.brave}];for(const t of e)if(t.detect()){const e=A(navigator.userAgent);return{name:t.name,version:e.version}}return A(navigator.userAgent)}function A(e){var t,n,o,r,i,a;const s=[/(?<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+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const u of s){const s=e.match(u);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,l=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(o=s.groups)||void 0===o?void 0:o.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&u.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&u.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&u.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!l&&s[2]&&(l=s[2]),e){return{name:c[e.toLowerCase()]||e,version:l||"unknown"}}}}return{name:"unknown",version:"unknown"}}function _(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function T(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function k(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const R="SamsungBrowser"!==C().name?1:3;let I,O=null;function L(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let o,r;if(Array.isArray(n)){for(r="[",o=0;o<n.length;o++)o&&(r+=","),r+=e(n[o])||"null";return r+"]"}if(null===n)return"null";if(-1!==t.indexOf(n))throw new TypeError("Converting circular structure to JSON");const i=t.push(n)-1,a=Object.keys(n).sort();for(r="",o=0;o<a.length;o++){const t=a[o],i=e(n[t]);i&&(r&&(r+=","),r+=JSON.stringify(t)+":"+i)}return t.splice(i,1),"{"+r+"}"}(e)||""}const B=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],N=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function $(e,t){return`<math><mrow>${t}</mrow></math>`}function D(){let e="<mo>∏</mo>";return B.forEach(((t,n)=>{const o=2*n,r=N.slice(o,o+2);2===r.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`)})),$(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function F(){const e=[];return B.forEach(((t,n)=>{const o=2*n,r=N.slice(o,o+2);2===r.length&&e.push($(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const U={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;const r=t.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,o.connect(r),r.connect(t.destination),o.start(),t.oncomplete=o=>{i=o.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=h,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const o="Random Text WMwmil10Oo";t.font="23.123px Arial",t.fillStyle="black",t.fillText(o,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(o,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke();const r=t.getImageData(0,0,e.width,e.height);return r}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:p(u(t,h,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const o=y.map((e=>S(n,e)));let r={};v.forEach((e=>{const t=S(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:M(),deviceMemory:n.toString()||"undefined",jsHeapSizeLimit:o.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:E(Math.asin,-1,1,97),cos:E(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:E(Math.sin,-Math.PI,Math.PI,97),tan:E(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||x;return P(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:T()};_()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),o=Math.min(e,t).toString();return`${n}x${o}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=C();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:_(),applePayVersion:k(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(I=document.createElement("canvas"),I.width=200,I.height=100,O=I.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:R},(()=>function(){try{if(!O)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",t="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",n=O.createShader(O.VERTEX_SHADER),o=O.createShader(O.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(O.shaderSource(n,e),O.shaderSource(o,t),O.compileShader(n),!O.getShaderParameter(n,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(n));if(O.compileShader(o),!O.getShaderParameter(o,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(o));const r=O.createProgram();if(!r)throw new Error("Failed to create shader program");if(O.attachShader(r,n),O.attachShader(r,o),O.linkProgram(r),!O.getProgramParameter(r,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(r));O.useProgram(r);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const t=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(t)*(I.width/2),a[4*e+3]=Math.sin(t)*(I.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const u=O.getAttribLocation(r,"position");O.enableVertexAttribArray(u),O.vertexAttribPointer(u,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,2*i);const l=new Uint8ClampedArray(I.width*I.height*4);O.readPixels(0,0,I.width,I.height,O.RGBA,O.UNSIGNED_BYTE,l);return new ImageData(l,I.width,I.height)}catch(e){return new ImageData(1,1)}finally{O&&(O.bindBuffer(O.ARRAY_BUFFER,null),O.useProgram(null),O.viewport(0,0,O.drawingBufferWidth,O.drawingBufferHeight),O.clearColor(0,0,0,0))}}()));return{commonPixelsHash:p(u(e,I.width,I.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void t({supported:!1,error:"WebRTC not supported"});const o=new n({iceCandidatePoolSize:1,iceServers:[]});o.createDataChannel("");(async()=>{try{const n={offerToReceiveAudio:!0,offerToReceiveVideo:!0},r=await o.createOffer(n);await o.setLocalDescription(r);const i=r.sdp||"",a=[...new Set((i.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),s=e=>{const t=i.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},c=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...i.matchAll(n)];if(!o.length)return null;const r={};return o.forEach((t=>{const[n,o,i]=t,a=i.split("/");"rtpmap"===o?(r.mimeType=`${e}/${a[0]}`,r.clockRate=+a[1],"audio"===e&&(r.channels=+a[2]||1)):"rtcp-fb"===o?(r.feedbackSupport=r.feedbackSupport||[],r.feedbackSupport.push(i)):"fmtp"===o&&(r.sdpFmtpLine=i)})),r})).filter(Boolean),u=c("audio",s("audio")),l=c("video",s("video")),d={audio:{count:u.length,hash:p(L(u))},video:{count:l.length,hash:p(L(l))},extensionsHash:p(L(a))},m=(null==e?void 0:e.timeout)||5e3,f=Math.floor(.9*m),h=await new Promise((e=>{const t=setTimeout((()=>{o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,timeout:!0})}),f),n=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,candidateType:i.type||""}))};o.addEventListener("icecandidate",n)}));t({details:h,hash:p(L(h))})}catch(e){o.close(),t({supported:!0,error:`WebRTC offer failed: ${e.message}`})}})()}catch(e){t({supported:!1,error:`WebRTC error: ${e.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const o=o=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=o.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:o.length,voicesHash:p(L(t))};e({details:n,hash:p(L(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},r=window.speechSynthesis.getVoices();if(r.length>0)return void o(r);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();o(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();o(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},V={mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[$("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>"),$("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),$("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>"),D(),...F()],o=[];let r="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const o=n.getBoundingClientRect(),r=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:o.width,height:o.height},fontInfo:{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight,fontVariant:r.fontVariant||"normal",fontStretch:r.fontStretch||"normal",fontSizeAdjust:r.fontSizeAdjust||"none",textRendering:r.textRendering||"auto",fontFeatureSettings:r.fontFeatureSettings||"normal",fontVariantNumeric:r.fontVariantNumeric||"normal",fontKerning:r.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);o.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(r=p(L(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:p(L(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}},j={},W={timeout:"true"},H=(e,t,n)=>{j[e]=t};function G(){return"1.7.6"}function z(e,t){var n,o;let r=C();if("unknown"===r.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(r={name:String(e.name),version:String(e.version||"unknown")})}const i=r.name.toLowerCase(),s=parseInt(r.version.split(".")[0]||"0",10),c=[...(null==e?void 0:e.exclude)||[]],u=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of u){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(o=e.browsers)||void 0===o?void 0:o.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function J(e,t){const n=z(t,e),o=(null==t?void 0:t.include)||[];return function e(t,r=""){const i={};for(const[a,s]of Object.entries(t)){const t=r?`${r}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),r=o.some((e=>t.startsWith(e)));e&&!r||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const q="visitor_id";function K(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(q)}const Y=`${t}_${q}`;function X(e,t){try{localStorage.setItem(K(t),e)}catch(e){}}const Z="cache";function Q(e){try{const t=localStorage.getItem(e.property_name_factory(Z)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function ee(t){return t.cache_lifetime_in_ms>e?Date.now()+e:Date.now()+t.cache_lifetime_in_ms}class te extends Error{constructor(e){super(`HTTP error! status: ${e}`),this.status=e}}let ne=null,oe=null;async function re(e,t,n,o){const r=await fetch(e,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw new te(r.status);const i=await r.json();return i.visitorId&&i.visitorId!==o&&X(i.visitorId,n),oe=i,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...Q(e),...t};try{localStorage.setItem(e.property_name_factory(Z),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:ee(e),apiResponse:t})}(n,i),i}const ie=(e,t)=>{if(e.cache_api_call){if(oe)return Promise.resolve(oe);const t=function(e){const t=Q(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(ne)return ne}const o=`${e.api_endpoint||n}/thumbmark`,r=function(e){try{const t=K(e);let n=localStorage.getItem(t);return n||t===Y||(n=localStorage.getItem(Y),n&&X(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:p(L(t)),version:"1.7.6"};if(r&&(i.visitorId=r),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=e.timeout||5e3,s=async function(e,t,n,o){for(let r=0;r<3;r++){r>0&&await new Promise((e=>setTimeout(e,200*r)));try{return await re(e,t,n,o)}catch(e){if(e instanceof te||2===r)throw e}}throw new Error("Unreachable")}(o,i,e,r).finally((()=>{ne=null})),c=new Promise((t=>{setTimeout((()=>{const n=Q(e);t((null==n?void 0:n.apiResponse)||{info:{timed_out:!0},...r&&{visitorId:r}})}),a)}));return ne=Promise.race([s,c]),ne};async function ae(e,t={}){var r,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.7.6",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...o,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,u={...U,...j,...t},{elapsed:l,resolvedComponents:d,errors:m}=await se(u,a);s.push(...m);let f={},h={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n}=await se(V,a);f=t,h=e,s.push(...n)}const g=a.api_key?ie(a,d):null;let w=null;if(g)try{w=await g}catch(e){if(e instanceof te&&403===e.status)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.7.6",thumbmark:""};s.push({type:e instanceof te?"api_error":"network_error",message:e instanceof Error?e.message:String(e)})}(null===(r=null==w?void 0:w.info)||void 0===r?void 0:r.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const v={...l,...h},y=a.performance?{elapsed:v}:{},S=J((null==w?void 0:w.components)||{},a),b={...d,...S},M=(null==w?void 0:w.info)||{uniqueness:{score:"api only"}},E=null!==(i=null==w?void 0:w.thumbmark)&&void 0!==i?i:p(L(b)),P="1.7.6";c&&async function(e,t,o,r={},i=[]){var a;const s=`${n}/log`,c={thumbmark:e,components:t,experimental:r,version:"1.7.6",options:o,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(E,b,a,f,s).catch((()=>{}));return{...(null==w?void 0:w.visitorId)&&{visitorId:w.visitorId},thumbmark:E,components:b,info:M,version:P,...y,...s.length>0&&{error:s},...Object.keys(f).length>0&&a.experimental&&{experimental:f},...(null==w?void 0:w.requestId)&&{requestId:w.requestId},...(null==w?void 0:w.metadata)&&{metadata:w.metadata}}}catch(e){return{thumbmark:"",components:{},info:{},version:"1.7.6",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function se(e,t){const n={...o,...t},r=z(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!r.includes(e))).filter((([e])=>{var t,o,r,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.some((t=>t.startsWith(e))):0===(null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s=i.map((([e,n])=>n(t))),c=await function(e,t,n){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))).catch((e=>({value:n,elapsed:performance.now()-o,error:e instanceof Error?e.message:String(e)}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o,error:"timeout"})))]);var r,i})))}(s,(null==n?void 0:n.timeout)||5e3,W),u={},l={},d=[];c.forEach(((e,t)=>{var n;const o=a[t];u[o]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?d.push({type:"component_timeout",message:`Component '${o}' timed out`,component:o}):e.error&&d.push({type:"component_error",message:e.error,component:o}),null!=e.value&&(l[o]=e.value)}));const m=J(l,n);return{elapsed:u,resolvedComponents:m,errors:d}}async function ce(){return(await ae(r)).components}async function ue(e){try{const t=await ae(r);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}}async function le(){try{const{elapsed:e,resolvedComponents:t}=await se(U,r);return{...t,elapsed:e}}catch(e){throw e}}class de{constructor(e){this.options={...o,...e},this.customComponents={}}async get(e){return ae({...this.options,...e},this.customComponents)}getVersion(){return"1.7.6"}includeComponent(e,t){this.customComponents[e]=t}}export{de as Thumbmark,J as filterThumbmarkData,ue as getFingerprint,ce as getFingerprintData,le as getFingerprintPerformance,ae as getThumbmark,G as getVersion,H as includeComponent,i as setOption,a as stabilizationExclusionRules,L as stableStringify};
|
|
2
2
|
//# sourceMappingURL=thumbmark.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbmark.esm.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/functions/legacy_functions.ts","../src/thumbmark.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","setOption","key","value","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","getBrowser","navigator","privacyBrowserStrategies","detect","brave","strategy","parseBrowserFromUA","userAgent","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","stableStringify","seen","stringify","node","toJSON","isFinite","JSON","out","isArray","indexOf","seenIndex","sort","splice","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","totalTimeout","iceTimeout","floor","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","tm_experimental_component_promises","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","Date","now","currentApiPromise","apiPromiseResult","getApiPromise","components","cached","cache","apiResponse","apiResponseExpiry","getCachedApiResponse","endpoint","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","fetchPromise","fetch","method","headers","api_key","Authorization","then","response","ok","json","values","newValues","setCache","setCachedApiResponse","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","instanceCustomComponents","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","expErrors","apiPromise","apiResult","allElapsed","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","requestId","e","comps","opts","topLevelExcludes","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","err","t","raceAllPerformance","resolvedComponentsRaw","index","component","getFingerprintData","getFingerprint","includeData","getFingerprintPerformance","Thumbmark","constructor","this","get","overrideOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumbmark.esm.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/functions/legacy_functions.ts","../src/thumbmark.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","setOption","key","value","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","getBrowser","navigator","privacyBrowserStrategies","detect","brave","strategy","parseBrowserFromUA","userAgent","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","stableStringify","seen","stringify","node","toJSON","isFinite","JSON","out","isArray","indexOf","seenIndex","sort","splice","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","totalTimeout","iceTimeout","floor","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","tm_experimental_component_promises","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","Date","now","ApiError","constructor","super","this","currentApiPromise","apiPromiseResult","callApi","endpoint","response","fetch","method","headers","api_key","Authorization","ok","json","values","newValues","setCache","apiResponseExpiry","apiResponse","setCachedApiResponse","getApiPromise","components","cached","cache","getCachedApiResponse","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","timeoutMs","apiCall","attempt","r","MAX_RETRIES","callApiWithRetry","finally","info","timed_out","race","getThumbmark","instanceCustomComponents","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","expErrors","apiPromise","apiResult","allElapsed","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","catch","requestId","e","comps","opts","topLevelExcludes","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","then","err","t","raceAllPerformance","resolvedComponentsRaw","index","component","getFingerprintData","getFingerprint","includeData","getFingerprintPerformance","Thumbmark","get","overrideOptions"],"mappings":"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"}
|
package/dist/thumbmark.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const t=2592e5,n="thumbmark",o="https://api.thumbmarkjs.com",r={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:e=>`${n}_${e}`};let i={...r};const a={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"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function u(e,t,n){let o=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let o=0;o<e.length;o++)n.push(e[o].data[t]);o.push(l(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function l(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function d(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const m=new Uint32Array([597399067,2869860233,951274213,2716044179]);function f(e,t){return e<<t|e>>>32-t}function p(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t.push(o):o<2048?t.push(192|o>>6,128|63&o):o<55296||o>=57344?t.push(224|o>>12,128|o>>6&63,128|63&o):(n++,o=65536+((1023&o)<<10|1023&e.charCodeAt(n)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,o=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=o.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],m[0]),n[0]=f(n[0],15),n[0]=Math.imul(n[0],m[1]),t[0]=t[0]^n[0],t[0]=f(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],m[1]),n[1]=f(n[1],16),n[1]=Math.imul(n[1],m[2]),t[1]=t[1]^n[1],t[1]=f(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],m[2]),n[2]=f(n[2],17),n[2]=Math.imul(n[2],m[3]),t[2]=t[2]^n[2],t[2]=f(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],m[3]),n[3]=f(n[3],18),n[3]=Math.imul(n[3],m[0]),t[3]=t[3]^n[3],t[3]=f(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*n,o);switch(o){case 15:r[3]=r[3]^i[14]<<16;case 14:r[3]=r[3]^i[13]<<8;case 13:r[3]=r[3]^i[12],r[3]=Math.imul(r[3],m[3]),r[3]=f(r[3],18),r[3]=Math.imul(r[3],m[0]),t[3]=t[3]^r[3];case 12:r[2]=r[2]^i[11]<<24;case 11:r[2]=r[2]^i[10]<<16;case 10:r[2]=r[2]^i[9]<<8;case 9:r[2]=r[2]^i[8],r[2]=Math.imul(r[2],m[2]),r[2]=f(r[2],17),r[2]=Math.imul(r[2],m[3]),t[2]=t[2]^r[2];case 8:r[1]=r[1]^i[7]<<24;case 7:r[1]=r[1]^i[6]<<16;case 6:r[1]=r[1]^i[5]<<8;case 5:r[1]=r[1]^i[4],r[1]=Math.imul(r[1],m[1]),r[1]=f(r[1],16),r[1]=Math.imul(r[1],m[2]),t[1]=t[1]^r[1];case 4:r[0]=r[0]^i[3]<<24;case 3:r[0]=r[0]^i[2]<<16;case 2:r[0]=r[0]^i[1]<<8;case 1:r[0]=r[0]^i[0],r[0]=Math.imul(r[0],m[0]),r[0]=f(r[0],15),r[0]=Math.imul(r[0],m[1]),t[0]=t[0]^r[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.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]=d(t[0]),t[1]=d(t[1]),t[2]=d(t[2]),t[3]=d(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}(e,n);const o=new Uint8Array(n.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const h=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const o=n.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const r=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const v=["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"],y=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let o={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),r=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(o.vendorUnmasked=t),r&&(o.rendererUnmasked=r)}}return o}catch(e){}return"undefined"}function E(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const M=(e,t,n,o)=>{const r=(n-t)/o;let i=0;for(let n=0;n<o;n++){i+=e(t+(n+.5)*r)}return i*r};function P(e,t){const n={};return t.forEach((t=>{const o=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],o=1;return Object.keys(t).forEach((e=>{t[e]>o&&(n=e,o=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));o&&(n[t]=o)})),n}const x=["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"];function C(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=[{name:"Brave",detect:()=>!!navigator.brave}];for(const t of e)if(t.detect()){const e=A(navigator.userAgent);return{name:t.name,version:e.version}}return A(navigator.userAgent)}function A(e){var t,n,o,r,i,a;const s=[/(?<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+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const u of s){const s=e.match(u);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,l=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(o=s.groups)||void 0===o?void 0:o.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&u.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&u.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&u.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!l&&s[2]&&(l=s[2]),e){return{name:c[e.toLowerCase()]||e,version:l||"unknown"}}}}return{name:"unknown",version:"unknown"}}function _(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function T(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function I(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const k="SamsungBrowser"!==C().name?1:3;let R,O=null;function L(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let o,r;if(Array.isArray(n)){for(r="[",o=0;o<n.length;o++)o&&(r+=","),r+=e(n[o])||"null";return r+"]"}if(null===n)return"null";if(-1!==t.indexOf(n))throw new TypeError("Converting circular structure to JSON");const i=t.push(n)-1,a=Object.keys(n).sort();for(r="",o=0;o<a.length;o++){const t=a[o],i=e(n[t]);i&&(r&&(r+=","),r+=JSON.stringify(t)+":"+i)}return t.splice(i,1),"{"+r+"}"}(e)||""}const D=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],N=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function B(e,t){return`<math><mrow>${t}</mrow></math>`}function $(){let e="<mo>∏</mo>";return D.forEach(((t,n)=>{const o=2*n,r=N.slice(o,o+2);2===r.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`)})),B(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function F(){const e=[];return D.forEach(((t,n)=>{const o=2*n,r=N.slice(o,o+2);2===r.length&&e.push(B(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const V={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;const r=t.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,o.connect(r),r.connect(t.destination),o.start(),t.oncomplete=o=>{i=o.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=h,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const o="Random Text WMwmil10Oo";t.font="23.123px Arial",t.fillStyle="black",t.fillText(o,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(o,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke();const r=t.getImageData(0,0,e.width,e.height);return r}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:p(u(t,h,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const o=y.map((e=>S(n,e)));let r={};v.forEach((e=>{const t=S(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:E(),deviceMemory:n.toString()||"undefined",jsHeapSizeLimit:o.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:M(Math.asin,-1,1,97),cos:M(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:M(Math.sin,-Math.PI,Math.PI,97),tan:M(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||x;return P(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:T()};_()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),o=Math.min(e,t).toString();return`${n}x${o}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=C();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:_(),applePayVersion:I(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(R=document.createElement("canvas"),R.width=200,R.height=100,O=R.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:k},(()=>function(){try{if(!O)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",t="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",n=O.createShader(O.VERTEX_SHADER),o=O.createShader(O.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(O.shaderSource(n,e),O.shaderSource(o,t),O.compileShader(n),!O.getShaderParameter(n,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(n));if(O.compileShader(o),!O.getShaderParameter(o,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(o));const r=O.createProgram();if(!r)throw new Error("Failed to create shader program");if(O.attachShader(r,n),O.attachShader(r,o),O.linkProgram(r),!O.getProgramParameter(r,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(r));O.useProgram(r);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const t=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(t)*(R.width/2),a[4*e+3]=Math.sin(t)*(R.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const u=O.getAttribLocation(r,"position");O.enableVertexAttribArray(u),O.vertexAttribPointer(u,2,O.FLOAT,!1,0,0),O.viewport(0,0,R.width,R.height),O.clearColor(0,0,0,1),O.clear(O.COLOR_BUFFER_BIT),O.drawArrays(O.LINES,0,2*i);const l=new Uint8ClampedArray(R.width*R.height*4);O.readPixels(0,0,R.width,R.height,O.RGBA,O.UNSIGNED_BYTE,l);return new ImageData(l,R.width,R.height)}catch(e){return new ImageData(1,1)}finally{O&&(O.bindBuffer(O.ARRAY_BUFFER,null),O.useProgram(null),O.viewport(0,0,O.drawingBufferWidth,O.drawingBufferHeight),O.clearColor(0,0,0,0))}}()));return{commonPixelsHash:p(u(e,R.width,R.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void t({supported:!1,error:"WebRTC not supported"});const o=new n({iceCandidatePoolSize:1,iceServers:[]});o.createDataChannel("");(async()=>{try{const n={offerToReceiveAudio:!0,offerToReceiveVideo:!0},r=await o.createOffer(n);await o.setLocalDescription(r);const i=r.sdp||"",a=[...new Set((i.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),s=e=>{const t=i.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},c=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...i.matchAll(n)];if(!o.length)return null;const r={};return o.forEach((t=>{const[n,o,i]=t,a=i.split("/");"rtpmap"===o?(r.mimeType=`${e}/${a[0]}`,r.clockRate=+a[1],"audio"===e&&(r.channels=+a[2]||1)):"rtcp-fb"===o?(r.feedbackSupport=r.feedbackSupport||[],r.feedbackSupport.push(i)):"fmtp"===o&&(r.sdpFmtpLine=i)})),r})).filter(Boolean),u=c("audio",s("audio")),l=c("video",s("video")),d={audio:{count:u.length,hash:p(L(u))},video:{count:l.length,hash:p(L(l))},extensionsHash:p(L(a))},m=(null==e?void 0:e.timeout)||5e3,f=Math.floor(.9*m),h=await new Promise((e=>{const t=setTimeout((()=>{o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,timeout:!0})}),f),n=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,candidateType:i.type||""}))};o.addEventListener("icecandidate",n)}));t({details:h,hash:p(L(h))})}catch(e){o.close(),t({supported:!0,error:`WebRTC offer failed: ${e.message}`})}})()}catch(e){t({supported:!1,error:`WebRTC error: ${e.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const o=o=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=o.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:o.length,voicesHash:p(L(t))};e({details:n,hash:p(L(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},r=window.speechSynthesis.getVoices();if(r.length>0)return void o(r);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();o(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();o(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},U={mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[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>"),$(),...F()],o=[];let r="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const o=n.getBoundingClientRect(),r=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:o.width,height:o.height},fontInfo:{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight,fontVariant:r.fontVariant||"normal",fontStretch:r.fontStretch||"normal",fontSizeAdjust:r.fontSizeAdjust||"none",textRendering:r.textRendering||"auto",fontFeatureSettings:r.fontFeatureSettings||"normal",fontVariantNumeric:r.fontVariantNumeric||"normal",fontKerning:r.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);o.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(r=p(L(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:p(L(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}},j={},W={timeout:"true"};function H(){return"1.7.5"}function G(e,t){var n,o;let r=C();if("unknown"===r.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(r={name:String(e.name),version:String(e.version||"unknown")})}const i=r.name.toLowerCase(),s=parseInt(r.version.split(".")[0]||"0",10),c=[...(null==e?void 0:e.exclude)||[]],u=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of u){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(o=e.browsers)||void 0===o?void 0:o.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function z(e,t){const n=G(t,e),o=(null==t?void 0:t.include)||[];return function e(t,r=""){const i={};for(const[a,s]of Object.entries(t)){const t=r?`${r}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),r=o.some((e=>t.startsWith(e)));e&&!r||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const J="visitor_id";function q(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(J)}const K=`${n}_${J}`;function Y(e,t){try{localStorage.setItem(q(t),e)}catch(e){}}const X="cache";function Z(e){try{const t=localStorage.getItem(e.property_name_factory(X)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function Q(e){return e.cache_lifetime_in_ms>t?Date.now()+t:Date.now()+e.cache_lifetime_in_ms}let ee=null,te=null;const ne=(e,t)=>{if(e.cache_api_call){if(te)return Promise.resolve(te);const t=function(e){const t=Z(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(ee)return ee}const n=`${e.api_endpoint||o}/thumbmark`,r=function(e){try{const t=q(e);let n=localStorage.getItem(t);return n||t===K||(n=localStorage.getItem(K),n&&Y(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:p(L(t)),version:"1.7.5"};if(r&&(i.visitorId=r),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=fetch(n,{method:"POST",headers:{"x-api-key":e.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(i)}).then((e=>{if(!e.ok){if(403===e.status)throw new Error("INVALID_API_KEY");throw new Error(`HTTP error! status: ${e.status}`)}return e.json()})).then((t=>(t.visitorId&&t.visitorId!==r&&Y(t.visitorId,e),te=t,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...Z(e),...t};try{localStorage.setItem(e.property_name_factory(X),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:Q(e),apiResponse:t})}(e,t),ee=null,t))).catch((e=>{throw ee=null,e})),s=e.timeout||5e3,c=new Promise((t=>{setTimeout((()=>{const n=Z(e);n&&n.apiResponse?t(n.apiResponse):t({info:{timed_out:!0},...r&&{visitorId:r}})}),s)}));return ee=Promise.race([a,c]),ee};async function oe(e,t={}){var n,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.7.5",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...r,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,u={...V,...j,...t},{elapsed:l,resolvedComponents:d,errors:m}=await re(u,a);s.push(...m);let f={},h={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n}=await re(U,a);f=t,h=e,s.push(...n)}const g=a.api_key?ne(a,d):null;let w=null;if(g)try{w=await g}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.7.5",thumbmark:""};s.push({type:"api_error",message:e instanceof Error?e.message:String(e)})}(null===(n=null==w?void 0:w.info)||void 0===n?void 0:n.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const v={...l,...h},y=a.performance?{elapsed:v}:{},S=z((null==w?void 0:w.components)||{},a),b={...d,...S},E=(null==w?void 0:w.info)||{uniqueness:{score:"api only"}},M=null!==(i=null==w?void 0:w.thumbmark)&&void 0!==i?i:p(L(b)),P="1.7.5";c&&async function(e,t,n,r={},i=[]){var a;const s=`${o}/log`,c={thumbmark:e,components:t,experimental:r,version:"1.7.5",options:n,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(M,b,a,f,s).catch((()=>{}));return{...(null==w?void 0:w.visitorId)&&{visitorId:w.visitorId},thumbmark:M,components:b,info:E,version:P,...y,...s.length>0&&{error:s},...Object.keys(f).length>0&&a.experimental&&{experimental:f},...(null==w?void 0:w.requestId)&&{requestId:w.requestId},...(null==w?void 0:w.metadata)&&{metadata:w.metadata}}}catch(e){return{thumbmark:"",components:{},info:{},version:"1.7.5",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function re(e,t){const n={...r,...t},o=G(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!o.includes(e))).filter((([e])=>{var t,o,r,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.some((t=>t.startsWith(e))):0===(null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s=i.map((([e,n])=>n(t))),c=await function(e,t,n){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))).catch((e=>({value:n,elapsed:performance.now()-o,error:e instanceof Error?e.message:String(e)}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o,error:"timeout"})))]);var r,i})))}(s,(null==n?void 0:n.timeout)||5e3,W),u={},l={},d=[];c.forEach(((e,t)=>{var n;const o=a[t];u[o]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?d.push({type:"component_timeout",message:`Component '${o}' timed out`,component:o}):e.error&&d.push({type:"component_error",message:e.error,component:o}),null!=e.value&&(l[o]=e.value)}));const m=z(l,n);return{elapsed:u,resolvedComponents:m,errors:d}}e.Thumbmark=class{constructor(e){this.options={...r,...e},this.customComponents={}}async get(e){return oe({...this.options,...e},this.customComponents)}getVersion(){return"1.7.5"}includeComponent(e,t){this.customComponents[e]=t}},e.filterThumbmarkData=z,e.getFingerprint=async function(e){try{const t=await oe(i);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await oe(i)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await re(V,i);return{...t,elapsed:e}}catch(e){throw e}},e.getThumbmark=oe,e.getVersion=H,e.includeComponent=(e,t,n)=>{j[e]=t},e.setOption=function(e,t){i[e]=t},e.stabilizationExclusionRules=a,e.stableStringify=L}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const t=2592e5,n="thumbmark",o="https://api.thumbmarkjs.com",r={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:e=>`${n}_${e}`};let i={...r};const a={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"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function u(e,t,n){let o=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let o=0;o<e.length;o++)n.push(e[o].data[t]);o.push(l(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function l(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function d(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const m=new Uint32Array([597399067,2869860233,951274213,2716044179]);function f(e,t){return e<<t|e>>>32-t}function p(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t.push(o):o<2048?t.push(192|o>>6,128|63&o):o<55296||o>=57344?t.push(224|o>>12,128|o>>6&63,128|63&o):(n++,o=65536+((1023&o)<<10|1023&e.charCodeAt(n)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,o=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=o.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],m[0]),n[0]=f(n[0],15),n[0]=Math.imul(n[0],m[1]),t[0]=t[0]^n[0],t[0]=f(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],m[1]),n[1]=f(n[1],16),n[1]=Math.imul(n[1],m[2]),t[1]=t[1]^n[1],t[1]=f(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],m[2]),n[2]=f(n[2],17),n[2]=Math.imul(n[2],m[3]),t[2]=t[2]^n[2],t[2]=f(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],m[3]),n[3]=f(n[3],18),n[3]=Math.imul(n[3],m[0]),t[3]=t[3]^n[3],t[3]=f(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*n,o);switch(o){case 15:r[3]=r[3]^i[14]<<16;case 14:r[3]=r[3]^i[13]<<8;case 13:r[3]=r[3]^i[12],r[3]=Math.imul(r[3],m[3]),r[3]=f(r[3],18),r[3]=Math.imul(r[3],m[0]),t[3]=t[3]^r[3];case 12:r[2]=r[2]^i[11]<<24;case 11:r[2]=r[2]^i[10]<<16;case 10:r[2]=r[2]^i[9]<<8;case 9:r[2]=r[2]^i[8],r[2]=Math.imul(r[2],m[2]),r[2]=f(r[2],17),r[2]=Math.imul(r[2],m[3]),t[2]=t[2]^r[2];case 8:r[1]=r[1]^i[7]<<24;case 7:r[1]=r[1]^i[6]<<16;case 6:r[1]=r[1]^i[5]<<8;case 5:r[1]=r[1]^i[4],r[1]=Math.imul(r[1],m[1]),r[1]=f(r[1],16),r[1]=Math.imul(r[1],m[2]),t[1]=t[1]^r[1];case 4:r[0]=r[0]^i[3]<<24;case 3:r[0]=r[0]^i[2]<<16;case 2:r[0]=r[0]^i[1]<<8;case 1:r[0]=r[0]^i[0],r[0]=Math.imul(r[0],m[0]),r[0]=f(r[0],15),r[0]=Math.imul(r[0],m[1]),t[0]=t[0]^r[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.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]=d(t[0]),t[1]=d(t[1]),t[2]=d(t[2]),t[3]=d(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}(e,n);const o=new Uint8Array(n.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const h=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const o=n.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const r=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const v=["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"],y=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let o={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),r=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(o.vendorUnmasked=t),r&&(o.rendererUnmasked=r)}}return o}catch(e){}return"undefined"}function M(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const x=(e,t,n,o)=>{const r=(n-t)/o;let i=0;for(let n=0;n<o;n++){i+=e(t+(n+.5)*r)}return i*r};function E(e,t){const n={};return t.forEach((t=>{const o=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],o=1;return Object.keys(t).forEach((e=>{t[e]>o&&(n=e,o=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));o&&(n[t]=o)})),n}const P=["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"];function C(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=[{name:"Brave",detect:()=>!!navigator.brave}];for(const t of e)if(t.detect()){const e=A(navigator.userAgent);return{name:t.name,version:e.version}}return A(navigator.userAgent)}function A(e){var t,n,o,r,i,a;const s=[/(?<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+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi"};for(const u of s){const s=e.match(u);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,l=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(o=s.groups)||void 0===o?void 0:o.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&u.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&u.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&u.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!l&&s[2]&&(l=s[2]),e){return{name:c[e.toLowerCase()]||e,version:l||"unknown"}}}}return{name:"unknown",version:"unknown"}}function T(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function _(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function k(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const R="SamsungBrowser"!==C().name?1:3;let I,O=null;function L(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let o,r;if(Array.isArray(n)){for(r="[",o=0;o<n.length;o++)o&&(r+=","),r+=e(n[o])||"null";return r+"]"}if(null===n)return"null";if(-1!==t.indexOf(n))throw new TypeError("Converting circular structure to JSON");const i=t.push(n)-1,a=Object.keys(n).sort();for(r="",o=0;o<a.length;o++){const t=a[o],i=e(n[t]);i&&(r&&(r+=","),r+=JSON.stringify(t)+":"+i)}return t.splice(i,1),"{"+r+"}"}(e)||""}const B=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],D=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function N(e,t){return`<math><mrow>${t}</mrow></math>`}function $(){let e="<mo>∏</mo>";return B.forEach(((t,n)=>{const o=2*n,r=D.slice(o,o+2);2===r.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`)})),N(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function F(){const e=[];return B.forEach(((t,n)=>{const o=2*n,r=D.slice(o,o+2);2===r.length&&e.push(N(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const V={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;const r=t.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,o.connect(r),r.connect(t.destination),o.start(),t.oncomplete=o=>{i=o.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=h,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const o="Random Text WMwmil10Oo";t.font="23.123px Arial",t.fillStyle="black",t.fillText(o,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(o,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke();const r=t.getImageData(0,0,e.width,e.height);return r}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:p(u(t,h,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const o=y.map((e=>S(n,e)));let r={};v.forEach((e=>{const t=S(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:M(),deviceMemory:n.toString()||"undefined",jsHeapSizeLimit:o.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:x(Math.asin,-1,1,97),cos:x(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:x(Math.sin,-Math.PI,Math.PI,97),tan:x(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||P;return E(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:_()};T()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),o=Math.min(e,t).toString();return`${n}x${o}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=C();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:T(),applePayVersion:k(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(I=document.createElement("canvas"),I.width=200,I.height=100,O=I.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:R},(()=>function(){try{if(!O)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",t="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",n=O.createShader(O.VERTEX_SHADER),o=O.createShader(O.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(O.shaderSource(n,e),O.shaderSource(o,t),O.compileShader(n),!O.getShaderParameter(n,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(n));if(O.compileShader(o),!O.getShaderParameter(o,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(o));const r=O.createProgram();if(!r)throw new Error("Failed to create shader program");if(O.attachShader(r,n),O.attachShader(r,o),O.linkProgram(r),!O.getProgramParameter(r,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(r));O.useProgram(r);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const t=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(t)*(I.width/2),a[4*e+3]=Math.sin(t)*(I.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const u=O.getAttribLocation(r,"position");O.enableVertexAttribArray(u),O.vertexAttribPointer(u,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,2*i);const l=new Uint8ClampedArray(I.width*I.height*4);O.readPixels(0,0,I.width,I.height,O.RGBA,O.UNSIGNED_BYTE,l);return new ImageData(l,I.width,I.height)}catch(e){return new ImageData(1,1)}finally{O&&(O.bindBuffer(O.ARRAY_BUFFER,null),O.useProgram(null),O.viewport(0,0,O.drawingBufferWidth,O.drawingBufferHeight),O.clearColor(0,0,0,0))}}()));return{commonPixelsHash:p(u(e,I.width,I.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void t({supported:!1,error:"WebRTC not supported"});const o=new n({iceCandidatePoolSize:1,iceServers:[]});o.createDataChannel("");(async()=>{try{const n={offerToReceiveAudio:!0,offerToReceiveVideo:!0},r=await o.createOffer(n);await o.setLocalDescription(r);const i=r.sdp||"",a=[...new Set((i.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),s=e=>{const t=i.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},c=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...i.matchAll(n)];if(!o.length)return null;const r={};return o.forEach((t=>{const[n,o,i]=t,a=i.split("/");"rtpmap"===o?(r.mimeType=`${e}/${a[0]}`,r.clockRate=+a[1],"audio"===e&&(r.channels=+a[2]||1)):"rtcp-fb"===o?(r.feedbackSupport=r.feedbackSupport||[],r.feedbackSupport.push(i)):"fmtp"===o&&(r.sdpFmtpLine=i)})),r})).filter(Boolean),u=c("audio",s("audio")),l=c("video",s("video")),d={audio:{count:u.length,hash:p(L(u))},video:{count:l.length,hash:p(L(l))},extensionsHash:p(L(a))},m=(null==e?void 0:e.timeout)||5e3,f=Math.floor(.9*m),h=await new Promise((e=>{const t=setTimeout((()=>{o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,timeout:!0})}),f),n=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...d,candidateType:i.type||""}))};o.addEventListener("icecandidate",n)}));t({details:h,hash:p(L(h))})}catch(e){o.close(),t({supported:!0,error:`WebRTC offer failed: ${e.message}`})}})()}catch(e){t({supported:!1,error:`WebRTC error: ${e.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const o=o=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=o.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:o.length,voicesHash:p(L(t))};e({details:n,hash:p(L(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},r=window.speechSynthesis.getVoices();if(r.length>0)return void o(r);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();o(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();o(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},U={mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[N("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>"),N("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),N("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>"),$(),...F()],o=[];let r="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const o=n.getBoundingClientRect(),r=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:o.width,height:o.height},fontInfo:{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight,fontVariant:r.fontVariant||"normal",fontStretch:r.fontStretch||"normal",fontSizeAdjust:r.fontSizeAdjust||"none",textRendering:r.textRendering||"auto",fontFeatureSettings:r.fontFeatureSettings||"normal",fontVariantNumeric:r.fontVariantNumeric||"normal",fontKerning:r.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);o.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(r=p(L(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:p(L(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}},j={},W={timeout:"true"};function H(){return"1.7.6"}function G(e,t){var n,o;let r=C();if("unknown"===r.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(r={name:String(e.name),version:String(e.version||"unknown")})}const i=r.name.toLowerCase(),s=parseInt(r.version.split(".")[0]||"0",10),c=[...(null==e?void 0:e.exclude)||[]],u=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of u){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(o=e.browsers)||void 0===o?void 0:o.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function z(e,t){const n=G(t,e),o=(null==t?void 0:t.include)||[];return function e(t,r=""){const i={};for(const[a,s]of Object.entries(t)){const t=r?`${r}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),r=o.some((e=>t.startsWith(e)));e&&!r||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const J="visitor_id";function q(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(J)}const K=`${n}_${J}`;function Y(e,t){try{localStorage.setItem(q(t),e)}catch(e){}}const X="cache";function Z(e){try{const t=localStorage.getItem(e.property_name_factory(X)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function Q(e){return e.cache_lifetime_in_ms>t?Date.now()+t:Date.now()+e.cache_lifetime_in_ms}class ee extends Error{constructor(e){super(`HTTP error! status: ${e}`),this.status=e}}let te=null,ne=null;async function oe(e,t,n,o){const r=await fetch(e,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw new ee(r.status);const i=await r.json();return i.visitorId&&i.visitorId!==o&&Y(i.visitorId,n),ne=i,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...Z(e),...t};try{localStorage.setItem(e.property_name_factory(X),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:Q(e),apiResponse:t})}(n,i),i}const re=(e,t)=>{if(e.cache_api_call){if(ne)return Promise.resolve(ne);const t=function(e){const t=Z(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(te)return te}const n=`${e.api_endpoint||o}/thumbmark`,r=function(e){try{const t=q(e);let n=localStorage.getItem(t);return n||t===K||(n=localStorage.getItem(K),n&&Y(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:p(L(t)),version:"1.7.6"};if(r&&(i.visitorId=r),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=e.timeout||5e3,s=async function(e,t,n,o){for(let r=0;r<3;r++){r>0&&await new Promise((e=>setTimeout(e,200*r)));try{return await oe(e,t,n,o)}catch(e){if(e instanceof ee||2===r)throw e}}throw new Error("Unreachable")}(n,i,e,r).finally((()=>{te=null})),c=new Promise((t=>{setTimeout((()=>{const n=Z(e);t((null==n?void 0:n.apiResponse)||{info:{timed_out:!0},...r&&{visitorId:r}})}),a)}));return te=Promise.race([s,c]),te};async function ie(e,t={}){var n,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.7.6",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...r,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,u={...V,...j,...t},{elapsed:l,resolvedComponents:d,errors:m}=await ae(u,a);s.push(...m);let f={},h={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n}=await ae(U,a);f=t,h=e,s.push(...n)}const g=a.api_key?re(a,d):null;let w=null;if(g)try{w=await g}catch(e){if(e instanceof ee&&403===e.status)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.7.6",thumbmark:""};s.push({type:e instanceof ee?"api_error":"network_error",message:e instanceof Error?e.message:String(e)})}(null===(n=null==w?void 0:w.info)||void 0===n?void 0:n.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const v={...l,...h},y=a.performance?{elapsed:v}:{},S=z((null==w?void 0:w.components)||{},a),b={...d,...S},M=(null==w?void 0:w.info)||{uniqueness:{score:"api only"}},x=null!==(i=null==w?void 0:w.thumbmark)&&void 0!==i?i:p(L(b)),E="1.7.6";c&&async function(e,t,n,r={},i=[]){var a;const s=`${o}/log`,c={thumbmark:e,components:t,experimental:r,version:"1.7.6",options:n,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(x,b,a,f,s).catch((()=>{}));return{...(null==w?void 0:w.visitorId)&&{visitorId:w.visitorId},thumbmark:x,components:b,info:M,version:E,...y,...s.length>0&&{error:s},...Object.keys(f).length>0&&a.experimental&&{experimental:f},...(null==w?void 0:w.requestId)&&{requestId:w.requestId},...(null==w?void 0:w.metadata)&&{metadata:w.metadata}}}catch(e){return{thumbmark:"",components:{},info:{},version:"1.7.6",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function ae(e,t){const n={...r,...t},o=G(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!o.includes(e))).filter((([e])=>{var t,o,r,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.some((t=>t.startsWith(e))):0===(null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s=i.map((([e,n])=>n(t))),c=await function(e,t,n){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))).catch((e=>({value:n,elapsed:performance.now()-o,error:e instanceof Error?e.message:String(e)}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o,error:"timeout"})))]);var r,i})))}(s,(null==n?void 0:n.timeout)||5e3,W),u={},l={},d=[];c.forEach(((e,t)=>{var n;const o=a[t];u[o]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?d.push({type:"component_timeout",message:`Component '${o}' timed out`,component:o}):e.error&&d.push({type:"component_error",message:e.error,component:o}),null!=e.value&&(l[o]=e.value)}));const m=z(l,n);return{elapsed:u,resolvedComponents:m,errors:d}}e.Thumbmark=class{constructor(e){this.options={...r,...e},this.customComponents={}}async get(e){return ie({...this.options,...e},this.customComponents)}getVersion(){return"1.7.6"}includeComponent(e,t){this.customComponents[e]=t}},e.filterThumbmarkData=z,e.getFingerprint=async function(e){try{const t=await ie(i);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await ie(i)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await ae(V,i);return{...t,elapsed:e}}catch(e){throw e}},e.getThumbmark=ie,e.getVersion=H,e.includeComponent=(e,t,n)=>{j[e]=t},e.setOption=function(e,t){i[e]=t},e.stabilizationExclusionRules=a,e.stableStringify=L}));
|
|
2
2
|
//# sourceMappingURL=thumbmark.umd.js.map
|