@thumbmarkjs/thumbmarkjs 1.4.0 → 1.5.1

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.
@@ -1,2 +1,2 @@
1
- "use strict";const e="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1};let n={...t};const o={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"]}]};function r(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function i(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(a(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function a(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 s(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const c=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,t){return e<<t|e>>>32-t}function u(e,t=0){var n;if(t=t?0|t:0,"string"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const o=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],c[0]),n[0]=l(n[0],15),n[0]=Math.imul(n[0],c[1]),t[0]=t[0]^n[0],t[0]=l(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],c[1]),n[1]=l(n[1],16),n[1]=Math.imul(n[1],c[2]),t[1]=t[1]^n[1],t[1]=l(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],c[2]),n[2]=l(n[2],17),n[2]=Math.imul(n[2],c[3]),t[2]=t[2]^n[2],t[2]=l(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],c[3]),n[3]=l(n[3],18),n[3]=Math.imul(n[3],c[0]),t[3]=t[3]^n[3],t[3]=l(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,o),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],c[3]),r[3]=l(r[3],18),r[3]=Math.imul(r[3],c[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],c[2]),r[2]=l(r[2],17),r[2]=Math.imul(r[2],c[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],c[1]),r[1]=l(r[1],16),r[1]=Math.imul(r[1],c[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],c[0]),r[0]=l(r[0],15),r[0]=Math.imul(r[0],c[1]),t[0]=t[0]^r[0]}}(e,o),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]=s(t[0]),t[1]=s(t[1]),t[2]=s(t[2]),t[3]=s(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,o);const r=new Uint8Array(o.buffer);return Array.from(r).map((e=>e.toString(16).padStart(2,"0"))).join("")}const d=280;async function m(e){for(var t;!document.body;)await h(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 h(e,t){return new Promise((n=>setTimeout(n,e,t)))}const p=["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"],f=["monospace","sans-serif","serif"];function g(e,t){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function w(){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 v(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const y=(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 S(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 b=["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(){var e,t,n,o,r,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,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>Brave)\/(?<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",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(t=s.groups)||void 0===t?void 0:t.version)||(null===(n=s.groups)||void 0===n?void 0:n.version1)||(null===(o=s.groups)||void 0===o?void 0:o.version2);if(a||!(null===(r=s.groups)||void 0===r?void 0:r.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function P(){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 E(){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 M(){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 C="SamsungBrowser"!==x().name?1:3;let A,T=null;function I(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 k=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],O=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function R(e,t){return`<math><mrow>${t}</mrow></math>`}function L(){let e="<mo>∏</mo>";return k.forEach(((t,n)=>{const o=2*n,r=O.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>`)})),R(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function _(){const e=[];return k.forEach(((t,n)=>{const o=2*n,r=O.slice(o,o+2);2===r.length&&e.push(R(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const D={audio:async function(){return async function(){return new Promise(((e,t)=>{try{const t=44100,n=5e3,o=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,n,t),i=o.createBufferSource(),a=o.createOscillator();a.frequency.value=1e3;const s=o.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(o.destination),a.start(),o.oncomplete=t=>{c=t.renderedBuffer.getChannelData(0),e({sampleHash:r(c),maxChannels:o.destination.maxChannelCount,channelCountMode:i.channelCountMode})},o.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}()},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 new ImageData(1,1);e.width=d,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}()));e({commonPixelsHash:u(i(t,d,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,t)=>{try{m((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d"),o=f.map((e=>g(n,e)));let r={};p.forEach((e=>{const t=g(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(e){t({error:"unsupported"})}}))},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:w(),architecture:v(),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:y(Math.asin,-1,1,97),cos:y(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:y(Math.sin,-Math.PI,Math.PI,97),tan:y(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||b;return S(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=>{const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:E()};P()&&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:P(),applePayVersion:M(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(A=document.createElement("canvas"),A.width=200,A.height=100,T=A.getContext("webgl"));try{if(!T)throw new Error("WebGL not supported");const e=Array.from({length:C},(()=>function(){try{if(!T)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=T.createShader(T.VERTEX_SHADER),o=T.createShader(T.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(T.shaderSource(n,e),T.shaderSource(o,t),T.compileShader(n),!T.getShaderParameter(n,T.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+T.getShaderInfoLog(n));if(T.compileShader(o),!T.getShaderParameter(o,T.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+T.getShaderInfoLog(o));const r=T.createProgram();if(!r)throw new Error("Failed to create shader program");if(T.attachShader(r,n),T.attachShader(r,o),T.linkProgram(r),!T.getProgramParameter(r,T.LINK_STATUS))throw new Error("Shader program linking failed: "+T.getProgramInfoLog(r));T.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)*(A.width/2),a[4*e+3]=Math.sin(t)*(A.height/2)}const c=T.createBuffer();T.bindBuffer(T.ARRAY_BUFFER,c),T.bufferData(T.ARRAY_BUFFER,a,T.STATIC_DRAW);const l=T.getAttribLocation(r,"position");T.enableVertexAttribArray(l),T.vertexAttribPointer(l,2,T.FLOAT,!1,0,0),T.viewport(0,0,A.width,A.height),T.clearColor(0,0,0,1),T.clear(T.COLOR_BUFFER_BIT),T.drawArrays(T.LINES,0,2*i);const u=new Uint8ClampedArray(A.width*A.height*4);T.readPixels(0,0,A.width,A.height,T.RGBA,T.UNSIGNED_BYTE,u);return new ImageData(u,A.width,A.height)}catch(e){return new ImageData(1,1)}finally{T&&(T.bindBuffer(T.ARRAY_BUFFER,null),T.useProgram(null),T.viewport(0,0,T.drawingBufferWidth,T.drawingBufferHeight),T.clearColor(0,0,0,0))}}()));return{commonPixelsHash:u(i(e,A.width,A.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},B={webrtc:async function(){return new Promise((e=>{try{const t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t)return void e({supported:!1,error:"WebRTC not supported"});const n=new t({iceCandidatePoolSize:1,iceServers:[]});n.createDataChannel("");(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},o=await n.createOffer(t);await n.setLocalDescription(o);const r=o.sdp||"",i=[...new Set((r.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),a=e=>{const t=r.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},s=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...r.matchAll(n)];if(!o.length)return null;const i={};return o.forEach((t=>{const[n,o,r]=t,a=r.split("/");"rtpmap"===o?(i.mimeType=`${e}/${a[0]}`,i.clockRate=+a[1],"audio"===e&&(i.channels=+a[2]||1)):"rtcp-fb"===o?(i.feedbackSupport=i.feedbackSupport||[],i.feedbackSupport.push(r)):"fmtp"===o&&(i.sdpFmtpLine=r)})),i})).filter(Boolean),c=s("audio",a("audio")),l=s("video",a("video")),d={audio:{count:c.length,hash:u(I(c))},video:{count:l.length,hash:u(I(l))},extensionsHash:u(I(i))},m=await new Promise((e=>{const t=setTimeout((()=>{n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...d,timeout:!0})}),3e3),o=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...d,candidateType:i.type||""}))};n.addEventListener("icecandidate",o)}));e({details:m,hash:u(I(m))})}catch(t){n.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}}))},mathml:async function(){return new Promise((e=>{try{m((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=[R("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>"),R("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),R("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>"),L(),..._()],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=u(I(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:u(I(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.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:u(I(t))};e({details:n,hash:u(I(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}`})}}))}},N={},F={timeout:"true"},V=(e,t,n)=>{N[e]=t};function $(){return"1.4.0"}function j(e,t){var n;let r=x();if("unknown"===r.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const t=e.system.browser;if(t&&"object"==typeof t&&!Array.isArray(t)){const e=t;r={name:e.name||"unknown",version:e.version||"unknown"}}}const i=r.name.toLowerCase(),a=r.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==t?void 0:t.exclude)||[]],l=(null==t?void 0:t.stabilize)||[],u=(null==t?void 0:t.include)||[];for(const e of l){const t=o[e];if(t)for(const e of t){const t=!("browsers"in e),o=!t&&(null===(n=e.browsers)||void 0===n?void 0:n.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);if(t){const[,e,,n]=t,o=parseInt(n,10);return i===e&&s>=o}return i===e})));(t||o)&&c.push(...e.exclude)}}return function e(t,n=""){const o={};for(const[r,i]of Object.entries(t)){const t=n?`${n}.${r}`:r;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>t.startsWith(e))),n=u.some((e=>t.startsWith(e)));e&&!n||(o[r]=i)}else{const n=e(i,t);Object.keys(n).length>0&&(o[r]=n)}}return o}(e)}const U="thumbmark_visitor_id";let W=null,H=null;const G=(t,n)=>{if(t.cache_api_call&&H)return Promise.resolve(H);if(W)return W;const o=`${t.api_endpoint||e}/thumbmark`,r=function(){try{return localStorage.getItem(U)}catch(e){return null}}(),i={components:n,options:t,clientHash:u(I(n)),version:"1.4.0"};r&&(i.visitorId=r);const a=fetch(o,{method:"POST",headers:{"x-api-key":t.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((e=>(e.visitorId&&e.visitorId!==r&&function(e){try{localStorage.setItem(U,e)}catch(e){}}(e.visitorId),H=e,W=null,e))).catch((e=>{if(console.error("Error fetching pro data",e),W=null,"INVALID_API_KEY"===e.message)throw e;return null})),s=t.timeout||5e3,c=new Promise((e=>{setTimeout((()=>{e({info:{timed_out:!0},version:"1.4.0"})}),s)}));return W=Promise.race([a,c]),W};async function z(n){var o;const r={...t,...n},i=r.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,a={...D,...N},{elapsed:s,resolvedComponents:c}=await J(a,r);let l={},d={};if(i||r.experimental){const{elapsed:e,resolvedComponents:t}=await J(B,r);l=t,d=e}const m=r.api_key?G(r,c):null;let h=null;if(m)try{h=await m}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:"Invalid API key or quota exceeded",components:{},info:{},version:"1.4.0",thumbmark:""};throw e}const p={...s,...d},f=r.performance?{elapsed:p}:{},g=j((null==h?void 0:h.components)||{},r),w={...c,...g},v=(null==h?void 0:h.info)||{uniqueness:{score:"api only"}};console.log(h);const y=null!==(o=null==h?void 0:h.thumbmark)&&void 0!==o?o:u(I(w));i&&async function(t,n,o,r={}){var i;const a=`${e}/log`,s={thumbmark:t,components:n,experimental:r,version:"1.4.0",options:o,path:null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.pathname};sessionStorage.setItem("_tmjs_l","1");try{await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}catch(e){}}(y,w,r,l).catch((()=>{}));return{...(null==h?void 0:h.visitorId)&&{visitorId:h.visitorId},thumbmark:y,components:w,info:v,version:"1.4.0",...f,...Object.keys(l).length>0&&r.experimental&&{experimental:l}}}async function J(e,n){const o={...t,...n},r=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==o?void 0:o.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>{var t,n,r,i;return(null===(t=null==o?void 0:o.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(n=null==o?void 0:o.include)||void 0===n?void 0:n.some((t=>t.startsWith(e))):0===(null===(r=null==o?void 0:o.include)||void 0===r?void 0:r.length)||(null===(i=null==o?void 0:o.include)||void 0===i?void 0:i.includes(e))})),i=r.map((([e])=>e)),a=r.map((([e,t])=>t(n))),s=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}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o})))]);var r,i})))}(a,(null==o?void 0:o.timeout)||5e3,F),c={},l={};s.forEach(((e,t)=>{var n;null!=e.value&&(l[i[t]]=e.value,c[i[t]]=null!==(n=e.elapsed)&&void 0!==n?n:0)}));const u=j(l,o);return{elapsed:c,resolvedComponents:u}}exports.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return z({...this.options,...e})}getVersion(){return"1.4.0"}includeComponent(e,t){V(e,t)}},exports.filterThumbmarkData=j,exports.getFingerprint=async function(e){try{const t=await z(n);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},exports.getFingerprintData=async function(){return(await z(n)).components},exports.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await J(D,n);return{...t,elapsed:e}}catch(e){throw e}},exports.getThumbmark=z,exports.getVersion=$,exports.includeComponent=V,exports.setOption=function(e,t){n[e]=t},exports.stabilizationExclusionRules=o,exports.stableStringify=I;
1
+ "use strict";const e="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1};let n={...t};const o={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"]}]};function r(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function i(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(a(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function a(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 s(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const c=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,t){return e<<t|e>>>32-t}function u(e,t=0){var n;if(t=t?0|t:0,"string"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const o=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],c[0]),n[0]=l(n[0],15),n[0]=Math.imul(n[0],c[1]),t[0]=t[0]^n[0],t[0]=l(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],c[1]),n[1]=l(n[1],16),n[1]=Math.imul(n[1],c[2]),t[1]=t[1]^n[1],t[1]=l(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],c[2]),n[2]=l(n[2],17),n[2]=Math.imul(n[2],c[3]),t[2]=t[2]^n[2],t[2]=l(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],c[3]),n[3]=l(n[3],18),n[3]=Math.imul(n[3],c[0]),t[3]=t[3]^n[3],t[3]=l(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,o),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],c[3]),r[3]=l(r[3],18),r[3]=Math.imul(r[3],c[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],c[2]),r[2]=l(r[2],17),r[2]=Math.imul(r[2],c[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],c[1]),r[1]=l(r[1],16),r[1]=Math.imul(r[1],c[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],c[0]),r[0]=l(r[0],15),r[0]=Math.imul(r[0],c[1]),t[0]=t[0]^r[0]}}(e,o),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]=s(t[0]),t[1]=s(t[1]),t[2]=s(t[2]),t[3]=s(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,o);const r=new Uint8Array(o.buffer);return Array.from(r).map((e=>e.toString(16).padStart(2,"0"))).join("")}const d=280;async function m(e){for(var t;!document.body;)await h(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 h(e,t){return new Promise((n=>setTimeout(n,e,t)))}const p=["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"],f=["monospace","sans-serif","serif"];function g(e,t){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function w(){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 v(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const y=(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 S(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 b=["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(){var e,t,n,o,r,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,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>Brave)\/(?<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",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(t=s.groups)||void 0===t?void 0:t.version)||(null===(n=s.groups)||void 0===n?void 0:n.version1)||(null===(o=s.groups)||void 0===o?void 0:o.version2);if(a||!(null===(r=s.groups)||void 0===r?void 0:r.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function P(){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 E(){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 M(){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 C="SamsungBrowser"!==x().name?1:3;let A,T=null;function I(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 k=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],O=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function R(e,t){return`<math><mrow>${t}</mrow></math>`}function L(){let e="<mo>∏</mo>";return k.forEach(((t,n)=>{const o=2*n,r=O.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>`)})),R(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function _(){const e=[];return k.forEach(((t,n)=>{const o=2*n,r=O.slice(o,o+2);2===r.length&&e.push(R(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const D={audio:async function(){return async function(){return new Promise(((e,t)=>{try{const t=44100,n=5e3,o=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,n,t),i=o.createBufferSource(),a=o.createOscillator();a.frequency.value=1e3;const s=o.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(o.destination),a.start(),o.oncomplete=t=>{c=t.renderedBuffer.getChannelData(0),e({sampleHash:r(c),maxChannels:o.destination.maxChannelCount,channelCountMode:i.channelCountMode})},o.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}()},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 new ImageData(1,1);e.width=d,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}()));e({commonPixelsHash:u(i(t,d,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,t)=>{try{m((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d"),o=f.map((e=>g(n,e)));let r={};p.forEach((e=>{const t=g(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(e){t({error:"unsupported"})}}))},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:w(),architecture:v(),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:y(Math.asin,-1,1,97),cos:y(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:y(Math.sin,-Math.PI,Math.PI,97),tan:y(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||b;return S(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=>{const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:E()};P()&&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:P(),applePayVersion:M(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(A=document.createElement("canvas"),A.width=200,A.height=100,T=A.getContext("webgl"));try{if(!T)throw new Error("WebGL not supported");const e=Array.from({length:C},(()=>function(){try{if(!T)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=T.createShader(T.VERTEX_SHADER),o=T.createShader(T.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(T.shaderSource(n,e),T.shaderSource(o,t),T.compileShader(n),!T.getShaderParameter(n,T.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+T.getShaderInfoLog(n));if(T.compileShader(o),!T.getShaderParameter(o,T.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+T.getShaderInfoLog(o));const r=T.createProgram();if(!r)throw new Error("Failed to create shader program");if(T.attachShader(r,n),T.attachShader(r,o),T.linkProgram(r),!T.getProgramParameter(r,T.LINK_STATUS))throw new Error("Shader program linking failed: "+T.getProgramInfoLog(r));T.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)*(A.width/2),a[4*e+3]=Math.sin(t)*(A.height/2)}const c=T.createBuffer();T.bindBuffer(T.ARRAY_BUFFER,c),T.bufferData(T.ARRAY_BUFFER,a,T.STATIC_DRAW);const l=T.getAttribLocation(r,"position");T.enableVertexAttribArray(l),T.vertexAttribPointer(l,2,T.FLOAT,!1,0,0),T.viewport(0,0,A.width,A.height),T.clearColor(0,0,0,1),T.clear(T.COLOR_BUFFER_BIT),T.drawArrays(T.LINES,0,2*i);const u=new Uint8ClampedArray(A.width*A.height*4);T.readPixels(0,0,A.width,A.height,T.RGBA,T.UNSIGNED_BYTE,u);return new ImageData(u,A.width,A.height)}catch(e){return new ImageData(1,1)}finally{T&&(T.bindBuffer(T.ARRAY_BUFFER,null),T.useProgram(null),T.viewport(0,0,T.drawingBufferWidth,T.drawingBufferHeight),T.clearColor(0,0,0,0))}}()));return{commonPixelsHash:u(i(e,A.width,A.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},B={webrtc:async function(){return new Promise((e=>{try{const t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t)return void e({supported:!1,error:"WebRTC not supported"});const n=new t({iceCandidatePoolSize:1,iceServers:[]});n.createDataChannel("");(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},o=await n.createOffer(t);await n.setLocalDescription(o);const r=o.sdp||"",i=[...new Set((r.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),a=e=>{const t=r.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},s=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...r.matchAll(n)];if(!o.length)return null;const i={};return o.forEach((t=>{const[n,o,r]=t,a=r.split("/");"rtpmap"===o?(i.mimeType=`${e}/${a[0]}`,i.clockRate=+a[1],"audio"===e&&(i.channels=+a[2]||1)):"rtcp-fb"===o?(i.feedbackSupport=i.feedbackSupport||[],i.feedbackSupport.push(r)):"fmtp"===o&&(i.sdpFmtpLine=r)})),i})).filter(Boolean),c=s("audio",a("audio")),l=s("video",a("video")),d={audio:{count:c.length,hash:u(I(c))},video:{count:l.length,hash:u(I(l))},extensionsHash:u(I(i))},m=await new Promise((e=>{const t=setTimeout((()=>{n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...d,timeout:!0})}),3e3),o=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...d,candidateType:i.type||""}))};n.addEventListener("icecandidate",o)}));e({details:m,hash:u(I(m))})}catch(t){n.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}}))},mathml:async function(){return new Promise((e=>{try{m((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=[R("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>"),R("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),R("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>"),L(),..._()],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=u(I(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:u(I(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.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:u(I(t))};e({details:n,hash:u(I(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}`})}}))}},N={},F={timeout:"true"},V=(e,t,n)=>{N[e]=t};function $(){return"1.5.1"}function j(e,t){var n;let r=x();if("unknown"===r.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const t=e.system.browser;if(t&&"object"==typeof t&&!Array.isArray(t)){const e=t;r={name:e.name||"unknown",version:e.version||"unknown"}}}const i=r.name.toLowerCase(),a=r.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==t?void 0:t.exclude)||[]],l=(null==t?void 0:t.stabilize)||[],u=(null==t?void 0:t.include)||[];for(const e of l){const t=o[e];if(t)for(const e of t){const t=!("browsers"in e),o=!t&&(null===(n=e.browsers)||void 0===n?void 0:n.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);if(t){const[,e,,n]=t,o=parseInt(n,10);return i===e&&s>=o}return i===e})));(t||o)&&c.push(...e.exclude)}}return function e(t,n=""){const o={};for(const[r,i]of Object.entries(t)){const t=n?`${n}.${r}`:r;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>t.startsWith(e))),n=u.some((e=>t.startsWith(e)));e&&!n||(o[r]=i)}else{const n=e(i,t);Object.keys(n).length>0&&(o[r]=n)}}return o}(e)}const U="thumbmark_visitor_id";let W=null,H=null;const G=(t,n)=>{if(t.cache_api_call&&H)return Promise.resolve(H);if(W)return W;const o=`${t.api_endpoint||e}/thumbmark`,r=function(e){const t=e.storage_property_name||U;try{return localStorage.getItem(t)}catch(e){return null}}(t),i={components:n,options:t,clientHash:u(I(n)),version:"1.5.1"};r&&(i.visitorId=r);const a=fetch(o,{method:"POST",headers:{"x-api-key":t.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((e=>(e.visitorId&&e.visitorId!==r&&function(e,t){const n=t.storage_property_name||U;try{localStorage.setItem(n,e)}catch(e){}}(e.visitorId,t),H=e,W=null,e))).catch((e=>{if(console.error("Error fetching pro data",e),W=null,"INVALID_API_KEY"===e.message)throw e;return null})),s=t.timeout||5e3,c=new Promise((e=>{setTimeout((()=>{e({info:{timed_out:!0},version:"1.5.1"})}),s)}));return W=Promise.race([a,c]),W};async function z(n){var o;const r={...t,...n},i=r.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,a={...D,...N},{elapsed:s,resolvedComponents:c}=await J(a,r);let l={},d={};if(i||r.experimental){const{elapsed:e,resolvedComponents:t}=await J(B,r);l=t,d=e}const m=r.api_key?G(r,c):null;let h=null;if(m)try{h=await m}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:"Invalid API key or quota exceeded",components:{},info:{},version:"1.5.1",thumbmark:""};throw e}const p={...s,...d},f=r.performance?{elapsed:p}:{},g=j((null==h?void 0:h.components)||{},r),w={...c,...g},v=(null==h?void 0:h.info)||{uniqueness:{score:"api only"}};console.log(h);const y=null!==(o=null==h?void 0:h.thumbmark)&&void 0!==o?o:u(I(w));i&&async function(t,n,o,r={}){var i;const a=`${e}/log`,s={thumbmark:t,components:n,experimental:r,version:"1.5.1",options:o,path:null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.pathname};sessionStorage.setItem("_tmjs_l","1");try{await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}catch(e){}}(y,w,r,l).catch((()=>{}));return{...(null==h?void 0:h.visitorId)&&{visitorId:h.visitorId},thumbmark:y,components:w,info:v,version:"1.5.1",...f,...Object.keys(l).length>0&&r.experimental&&{experimental:l}}}async function J(e,n){const o={...t,...n},r=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==o?void 0:o.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>{var t,n,r,i;return(null===(t=null==o?void 0:o.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(n=null==o?void 0:o.include)||void 0===n?void 0:n.some((t=>t.startsWith(e))):0===(null===(r=null==o?void 0:o.include)||void 0===r?void 0:r.length)||(null===(i=null==o?void 0:o.include)||void 0===i?void 0:i.includes(e))})),i=r.map((([e])=>e)),a=r.map((([e,t])=>t(n))),s=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}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o})))]);var r,i})))}(a,(null==o?void 0:o.timeout)||5e3,F),c={},l={};s.forEach(((e,t)=>{var n;null!=e.value&&(l[i[t]]=e.value,c[i[t]]=null!==(n=e.elapsed)&&void 0!==n?n:0)}));const u=j(l,o);return{elapsed:c,resolvedComponents:u}}exports.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return z({...this.options,...e})}getVersion(){return"1.5.1"}includeComponent(e,t){V(e,t)}},exports.filterThumbmarkData=j,exports.getFingerprint=async function(e){try{const t=await z(n);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},exports.getFingerprintData=async function(){return(await z(n)).components},exports.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await J(D,n);return{...t,elapsed:e}}catch(e){throw e}},exports.getThumbmark=z,exports.getVersion=$,exports.includeComponent=V,exports.setOption=function(e,t){n[e]=t},exports.stabilizationExclusionRules=o,exports.stableStringify=I;
2
2
  //# sourceMappingURL=thumbmark.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thumbmark.cjs.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/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.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],"names":["DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","performance","experimental","options","stabilizationExclusionRules","private","browsers","iframe","vpn","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","key","seed","text","TextEncoder","encode","buffer","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","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","name","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","window","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","sampleRate","numSamples","audioContext","OfflineAudioContext","webkitOfflineAudioContext","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","tm_experimental_component_promises","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","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","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","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","filterThumbmarkData","browserInfo","browserComponent","ver","majorVer","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","VISITOR_ID_KEY","currentApiPromise","apiPromiseResult","getApiPromise","components","endpoint","api_endpoint","visitorId","localStorage","getItem","getVisitorId","requestBody","clientHash","fetchPromise","fetch","method","headers","api_key","Authorization","then","response","ok","json","setItem","setVisitorId","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","_options","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","apiPromise","apiResult","thumbmark","allElapsed","maybeElapsed","apiComponents","uniqueness","score","log","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","comps","opts","e","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","now","t","raceAllPerformance","resolvedComponentsRaw","index","constructor","this","get","overrideOptions","globalIncludeComponent","includeData"],"mappings":"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AA3E,EAAO4E,qBAAeC,IAAAF,OAAAE,EAAAF,EAAAV,UACvE,IAAKQ,EACH,MAAM,IAAIK,MAAM,qCAIlBd,EAAS,CAAEhE,OAAQyE,IAGnBM,YAAW,KACTd,SAASjB,KAAKgC,YAAYhF,EAAO,GAChC,EACL,CAEgB,SAAAkE,EAAee,EAAoBC,GACjD,OAAO,IAAIC,SAASC,GAAYL,WAAWK,EAASH,EAAYC,IAClE,CC5BF,MAAMG,EAAiB,CACnB,QACA,cACA,eACA,mBACA,QACA,UACA,SACA,aACA,SACA,UACA,UACA,QACA,UACA,UACA,iBACA,gBACA,aACA,UACA,cACA,eACA,UACA,UACA,mBACA,gBACA,QACA,aACA,MACA,YACA,YACA,yBACA,WACA,SACA,UACA,YACA,YACA,SACA,cACA,eACA,QACA,eACA,QACA,OACA,SACA,gBACA,iBACA,sBACA,UACA,eACA,oBACA,aACA,SACA,YACA,SACA,cACA,YACA,SACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,SACA,cACA,YACA,WACA,YACA,SACA,mBACA,WACA,QACA,cACA,eACA,WACA,OACA,kBACA,aACA,SACA,UACA,QACA,kBACA,gBACA,eACA,SACA,eACA,UACA,aAGIC,EAAY,CAAC,YAAa,aAAc,SAsChD,SAASC,EAAkBC,EAAsCC,GAC7D,IAAKD,EACD,MAAM,IAAIV,MAAM,gCAIpB,OADAU,EAAIC,KAAO,QAAQA,IACZD,EAAIE,YAFU,cAEQ/E,KACjC,CC9HA,SAASgF,UACL,MAAMC,EAAS3B,SAASE,cAAc,UAChC0B,EAA+B,QAA1BlB,EAAAiB,EAAOE,WAAW,gBAAQjB,IAAAF,EAAAA,EAAIiB,EAAOE,WAAW,sBAE3D,GAAID,GAAM,iBAAkBA,EACxB,IAEI,MAAME,GAAUF,EAAGG,aAAaH,EAAGI,SAAW,IAAIvC,WAC5CwC,GAAYL,EAAGG,aAAaH,EAAGM,WAAa,IAAIzC,WAEtD,IAAI0C,EAA6B,CAC7BL,OAAQA,EACRG,SAAUA,EACVG,SAAUR,EAAGG,aAAaH,EAAGS,UAAY,IAAI5C,WAC7C6C,wB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"}
1
+ {"version":3,"file":"thumbmark.cjs.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/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.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],"names":["DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","performance","experimental","options","stabilizationExclusionRules","private","browsers","iframe","vpn","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","key","seed","text","TextEncoder","encode","buffer","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","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","name","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","window","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","sampleRate","numSamples","audioContext","OfflineAudioContext","webkitOfflineAudioContext","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","tm_experimental_component_promises","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","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","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","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","filterThumbmarkData","browserInfo","browserComponent","ver","majorVer","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","currentApiPromise","apiPromiseResult","getApiPromise","components","endpoint","api_endpoint","visitorId","_options","storagePropertyName","storage_property_name","localStorage","getItem","getVisitorId","requestBody","clientHash","fetchPromise","fetch","method","headers","api_key","Authorization","then","response","ok","json","setItem","setVisitorId","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","apiPromise","apiResult","thumbmark","allElapsed","maybeElapsed","apiComponents","uniqueness","score","log","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","comps","opts","e","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","now","t","raceAllPerformance","resolvedComponentsRaw","index","constructor","this","get","overrideOptions","globalIncludeComponent","includeData"],"mappings":"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AA3E,EAAO4E,qBAAeC,IAAAF,OAAAE,EAAAF,EAAAV,UACvE,IAAKQ,EACH,MAAM,IAAIK,MAAM,qCAIlBd,EAAS,CAAEhE,OAAQyE,IAGnBM,YAAW,KACTd,SAASjB,KAAKgC,YAAYhF,EAAO,GAChC,EACL,CAEgB,SAAAkE,EAAee,EAAoBC,GACjD,OAAO,IAAIC,SAASC,GAAYL,WAAWK,EAASH,EAAYC,IAClE,CC5BF,MAAMG,EAAiB,CACnB,QACA,cACA,eACA,mBACA,QACA,UACA,SACA,aACA,SACA,UACA,UACA,QACA,UACA,UACA,iBACA,gBACA,aACA,UACA,cACA,eACA,UACA,UACA,mBACA,gBACA,QACA,aACA,MACA,YACA,YACA,yBACA,WACA,SACA,UACA,YACA,YACA,SACA,cACA,eACA,QACA,eACA,QACA,OACA,SACA,gBACA,iBACA,sBACA,UACA,eACA,oBACA,aACA,SACA,YACA,SACA,cACA,YACA,SACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,SACA,cACA,YACA,WACA,YACA,SACA,mBACA,WACA,QACA,cACA,eACA,WACA,OACA,kBACA,aACA,SACA,UACA,QACA,kBACA,gBACA,eACA,SACA,eACA,UACA,aAGIC,EAAY,CAAC,YAAa,aAAc,SAsChD,SAASC,EAAkBC,EAAsCC,GAC7D,IAAKD,EACD,MAAM,IAAIV,MAAM,gCAIpB,OADAU,EAAIC,KAAO,QAAQA,IACZD,EAAIE,YAFU,cAEQ/E,KACjC,CC9HA,SAASgF,UACL,MAAMC,EAAS3B,SAASE,cAAc,UAChC0B,EAA+B,QAA1BlB,EAAAiB,EAAOE,WAAW,gBAAQjB,IAAAF,EAAAA,EAAIiB,EAAOE,WAAW,sBAE3D,GAAID,GAAM,iBAAkBA,EACxB,IAEI,MAAME,GAAUF,EAAGG,aAAaH,EAAGI,SAAW,IAAIvC,WAC5CwC,GAAYL,EAAGG,aAAaH,EAAGM,WAAa,IAAIzC,WAEtD,IAAI0C,EAA6B,CAC7BL,OAAQA,EACRG,SAAUA,EACVG,SAAUR,EAAGG,aAAaH,EAAGS,UAAY,IAAI5C,WAC7C6C,wBAAyBV,EAAGG,aAAaH,EAAGW,2BAA6B,IAAI9C,YAIjF,IAAKwC,EAAS5F,SAAWyF,EAAOzF,OAAQ,CACpC,MAAMmG,EAAYZ,EAAGa,aAAa,6BAClC,GAAID,EAAW,CACX,MAAME,GAAkBd,EAAGG,aAAaS,EAAUG,wBAA0B,IAAIlD,WAC1EmD,GAAoBhB,EAAGG,aAAaS,EAAUK,0BAA4B,IAAIpD,WAGhFiD,IACAP,EAAOO,eAAiBA,GAExBE,IACAT,EAAOS,iBAAmBA,IAKtC,OAAOT,EACT,MAAOW,IAIb,MAAO,WACX,CAEA,SAASC,IACP,MAAMC,EAAI,IAAIC,aAAa,GACrBC,EAAK,IAAIhE,WAAW8D,EAAEzE,QAI5B,OAHAyE,EAAE,GAAKG,IACPH,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAETE,EAAG,EACZ,CChEA,MAAME,EAAY,CAACJ,EAA0BK,EAAWC,EAAWrF,KAC/D,MAAMsF,GAAKD,EAAID,GAAKpF,EACpB,IAAIuF,EAAM,EACV,IAAK,IAAIpH,EAAI,EAAGA,EAAI6B,EAAG7B,IAAK,CAExBoH,GAAOR,EADGK,GAAKjH,EAAI,IAAOmH,GAG9B,OAAOC,EAAMD,CAAC,ECkBF,SAAAE,EAAwCpG,EAA+BqG,GACnF,MAAMvB,EAAiC,CAAE,EASzC,OAPAuB,EAAKC,SAASzF,IACZ,MACM0F,EAhCZ,SAA2BvG,GACvB,GAAmB,IAAfA,EAAIhB,OACN,OAAO,KAGT,MAAMiB,EAA0C,CAAE,EAGlDD,EAAIsG,SAASE,IACX,MAAM3F,EAAM4F,OAAOD,GACnBvG,EAAaY,IAAQZ,EAAaY,IAAQ,GAAK,CAAC,IAGlD,IAAIV,EAAoBH,EAAI,GACxB0G,EAAmB,EAUvB,OAPAC,OAAON,KAAKpG,GAAcqG,SAASzF,IAC7BZ,EAAaY,GAAO6F,IACtBvG,EAAeU,EACf6F,EAAmBzG,EAAaY,OAI7BV,CACT,CAOoCyG,CADX5G,EAAIkC,KAAK2E,GAAShG,KAAOgG,EAAMA,EAAIhG,QAAO0C,IAAYuD,QAAQC,QAAgBxD,IAARwD,KAEvFR,IACFzB,EAAOjE,GAAO0F,EAAuB,IAGlCzB,CACT,CClCF,MAAMkC,EAA0C,CAC5C,gBACA,gBAAiB,uBACjB,uBACA,mBAAoB,kBAAmB,YACvC,SACA,iBACA,kBACA,cAAe,kBACf,YAAa,cACb,cACA,eAAgB,aAAc,OAC9B,MAAO,gBACP,kBACA,qBACA,OACA,UAAW,iBACX,2BACA,oBACA,kBChBYC,oBACd,GAAyB,oBAAdC,UACT,MAAO,CACLC,KAAM,UACNpC,QAAS,WAGb,MAAMqC,EAAKF,UAAUG,UAEfC,EAAU,CAEd,qDAEA,sDAEA,8CACA,uCACA,wCACA,wCAEA,8CAEA,4CAEA,4CAEA,4CAEA,sDAEA,wEAEA,oFAEA,6DAEA,iDAIIC,EAA4C,CAChDC,IAAO,OACPC,KAAQ,OACRC,OAAU,OACVC,IAAO,QACPC,IAAO,QACPC,MAAS,SACTC,MAAS,UACTC,QAAW,iBACXC,QAAW,UACXC,MAAS,SAGX,IAAK,MAAMC,KAASZ,EAAS,CAC3B,MAAMa,EAAQf,EAAGe,MAAMD,GACvB,GAAIC,EAAO,CACT,IAAIhB,EAAmB,QAAZ9D,EAAA8E,EAAMC,cAAM7E,IAAAF,OAAAE,EAAAF,EAAE8D,KACrBpC,GAAsB,QAAZsD,EAAAF,EAAMC,cAAM7E,IAAA8E,OAAA9E,EAAA8E,EAAEtD,WAAuB,QAAZuD,EAAAH,EAAMC,cAAM7E,IAAA+E,OAAA/E,EAAA+E,EAAEC,YAAwB,QAAZC,EAAAL,EAAMC,cAAM7E,IAAAiF,OAAAjF,EAAAiF,EAAEC,UAU/E,GARKtB,aAASuB,EAAAP,EAAMC,6BAAQG,aAA0B,UAAdJ,EAAMC,cAAQ7E,IAAAoF,OAAApF,EAAAoF,EAAAF,YAAWtB,EAAO,WAEnEA,GAAQe,EAAMU,OAAOC,SAAS,gBAAe1B,EAAO,eACpDA,GAAQe,EAAMU,OAAOC,SAAS,gBAAe1B,EAAO,eACpDA,GAAQe,EAAMU,OAAOC,SAAS,WAAU1B,EAAO,UAE/CA,GAAQgB,EAAM,KAAIhB,EAAOgB,EAAM,KAC/BpD,GAAWoD,EAAM,KAAIpD,EAAUoD,EAAM,IACtChB,EAAM,CAER,MAAO,CAAEA,KADSI,EAAeJ,EAAK2B,gBAAkB3B,EAC9BpC,QAASA,GAAW,aAIpD,MAAO,CACLoC,KAAM,UACNpC,QAAS,UAEb,UAGgBgE,IACd,GAAyB,oBAAd7B,YAA8BA,UAAUG,UAAW,OAAO,EACrE,MAAMD,EAAKF,UAAUG,UAErB,MAAO,0FAA0F2B,KAAK5B,KAChG,QAAQ4B,KAAK5B,EACrB,CCnEA,SAAS6B,IACL,IAAIC,EAAoB,GAMxB,MAAMC,EAA0C,CAC5C,mBAAoB,CAAC,OAAQ,OAAQ,MAAO,OAAQ,SAAU,iBAC9D,YAAa,CAAC,QAAS,QACvB,cAAe,CAAC,OAAQ,SAAU,QAClCC,QAAW,CAAC,OAAQ,SAAU,QAC9BC,MAAS,CAAC,QAAS,QACnBC,OAAU,CAAC,OAAQ,QACnB,kBAAmB,CAAC,WAAY,QAChC,yBAA0B,CAAC,SAAU,iBACrC,+BAAgC,CAAC,SAAU,iBAC3CC,UAAa,CAAC,OAAQ,eAAgB,WACtC,gBAAiB,CAAC,SAAU,SAShC,OANA5C,OAAON,KAAK8C,GAAc7C,SAASzF,IAC/BsI,EAAatI,GAAKyF,SAASkD,IACnBC,WAAW,IAAI5I,MAAQ2I,MAAUE,SACjCR,EAAQvJ,KAAK,GAAGkB,MAAQ2I,IAAQ,GACtC,IAECN,CACX,CC5BA,SAASS,IACL,GAAiC,WAA7BC,OAAOC,SAASC,UAAoE,mBAAnCF,OAAeG,gBAChE,IACI,MAAMC,EAAgBJ,OAAeG,gBAAgBE,gBACrD,IAAK,IAAIlL,EAAI,GAAIA,EAAI,EAAGA,IACpB,GAAIiL,EAAajL,GACb,OAAOA,EAGjB,MAAO0G,GACL,OAAO,EAGf,OAAO,CACX,CCnCA,MAAMyE,EAA+B,mBAAtBjD,IAAaE,KAA6B,EAAI,EAC7D,IAAI7C,EACAC,EAAmC,KCejC,SAAU4F,EAAgB3K,GAE5B,MAAM4K,EAAc,GAEpB,OAAO,SAAUC,EAAUC,GAKvB,GAJIA,GAAQA,EAAKC,QAAiC,mBAAhBD,EAAKC,SACnCD,EAAOA,EAAKC,eAGHhH,IAAT+G,EAAoB,OACxB,GAAoB,iBAATA,EAAmB,OAAOE,SAASF,GAAQ,GAAKA,EAAO,OAClE,GAAoB,iBAATA,EAAmB,OAAOG,KAAKJ,UAAUC,GAEpD,IAAIvL,EACA2L,EAEJ,GAAI1I,MAAM2I,QAAQL,GAAO,CAErB,IADAI,EAAM,IACD3L,EAAI,EAAGA,EAAIuL,EAAKtL,OAAQD,IACrBA,IAAG2L,GAAO,KACdA,GAAOL,EAAUC,EAAKvL,KAAO,OAEjC,OAAO2L,EAAM,IAGjB,GAAa,OAATJ,EAAe,MAAO,OAE1B,IAA2B,IAAvBF,EAAKQ,QAAQN,GACb,MAAM,IAAIlJ,UAAU,yCAGxB,MAAMyJ,EAAYT,EAAKzK,KAAK2K,GAAQ,EAC9BjE,EAAOM,OAAON,KAAKiE,GAAMQ,OAG/B,IAFAJ,EAAM,GAED3L,EAAI,EAAGA,EAAIsH,EAAKrH,OAAQD,IAAK,CAC9B,MAAM8B,EAAMwF,EAAKtH,GACXyK,EAAQa,EAAUC,EAAKzJ,IAExB2I,IACDkB,IAAKA,GAAO,KAChBA,GAAOD,KAAKJ,UAAUxJ,GAAO,IAAM2I,GAIvC,OADAY,EAAKW,OAAOF,EAAW,GAChB,IAAMH,EAAM,GACtB,CA1CM,CA0CJlL,IAAS,EAChB,CChEA,MAAMwL,EAAkB,CAAC,KAAgB,KAAgB,IAAU,KAAgB,KAAgB,KAAgB,KAAgB,KAAgB,IAAU,KAAgB,KAAgB,MACvLC,EAAgB,CAAC,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,IAAU,KAmF7P,SAASC,EAAa/D,EAAcgE,GAClC,MAAO,eAAeA,iBACxB,CAEA,SAASC,IACP,IAAIC,EAAgB,aAYpB,OATAL,EAAgB1E,SAAQ,CAACgF,EAAUC,KACjC,MAAMC,EAAqB,EAAVD,EACXE,EAAWR,EAAcS,MAAMF,EAAUA,EAAW,GAElC,IAApBC,EAASzM,SACXqM,GAAiB,sBAAsBC,oBAA2BG,EAAS,yCAAyCA,EAAS,qCAI1HP,EAAa,EAClB,8BAA8BG,iCAElC,CAEA,SAASM,IACP,MAAMC,EAAuB,GAe7B,OAZAZ,EAAgB1E,SAAQ,CAACgF,EAAUC,KAEjC,MAAMC,EAAqB,EAAVD,EACXE,EAAWR,EAAcS,MAAMF,EAAUA,EAAW,GAElC,IAApBC,EAASzM,QACX4M,EAAWjM,KAAKuL,EAAa,EAC3B,sBAAsBI,oBAA2BG,EAAS,yCAAyCA,EAAS,sCAK3GG,CACT,CClGO,MAAMC,EAAwB,CACjCC,MhB7BWtJ,iBACb,OAGFA,iBA4CE,OA3CsB,IAAIqB,SAA4B,CAACC,EAASiI,KAC9D,IAEE,MAAMC,EAAa,MACbC,EAAa,IACbC,EAAe,IAAMtC,OAAOuC,qBAAuBvC,OAAOwC,2BAA4B,EAAGH,EAAYD,GACrGK,EAAcH,EAAaI,qBAE3BC,EAAaL,EAAaM,mBAChCD,EAAWE,UAAUjD,MAAQ,IAC7B,MAAMkD,EAAaR,EAAaS,2BAShC,IAAI9N,EARJ6N,EAAWE,UAAUpD,OAAS,GAC9BkD,EAAWG,KAAKrD,MAAQ,GACxBkD,EAAWI,MAAMtD,MAAQ,GACzBkD,EAAWK,OAAOvD,MAAQ,EAC1BkD,EAAWM,QAAQxD,MAAQ,GAC3B+C,EAAWU,QAAQP,GACnBA,EAAWO,QAAQf,EAAagB,aAChCX,EAAWY,QAGXjB,EAAakB,WAAaC,IACxBxO,EAAUwO,EAAMC,eAAeC,eAAe,GAC9CzJ,EACI,CACI0J,WAAc5O,EAAcC,GAC5B4O,YAAevB,EAAagB,YAAYQ,gBACxCC,iBAAoBtB,EAAYsB,kBAGrC,EAGLzB,EAAa0B,iBAGb,MAAOnI,GACPoI,QAAQpI,MAAM,oCAAqCA,GACnDsG,EAAOtG,MAOb,CAjDSqI,EACT,EgB4BIxJ,ObjBW9B,iBACb,OAKO,IAAIqB,SAASC,IAMlB,MAAMiK,EAA0B/L,MAAMC,KAAK,CAAEjD,OAvBnC,IAuBoD,IASlE,WACE,MAAMsF,EAAS3B,SAASE,cAAc,UAChCqB,EAAMI,EAAOE,WAAW,MAE9B,IAAKN,EACH,OAAO,IAAInE,UAAU,EAAG,GAI1BuE,EAAOjF,MAAQkD,EACf+B,EAAOhF,OAjCO,GAoCd,MAAM0O,EAAW9J,EAAI+J,qBAAqB,EAAG,EAAG3J,EAAOjF,MAAOiF,EAAOhF,QACrE0O,EAASE,aAAa,EAAG,OACzBF,EAASE,aAAa,EAAI,EAAG,UAC7BF,EAASE,aAAa,EAAI,EAAG,UAC7BF,EAASE,aAAa,GAAO,SAC7BF,EAASE,aAAa,EAAI,EAAG,QAC7BF,EAASE,aAAa,EAAI,EAAG,UAC7BF,EAASE,aAAa,EAAG,UAGzBhK,EAAIiK,UAAYH,EAChB9J,EAAIkK,SAAS,EAAG,EAAG9J,EAAOjF,MAAOiF,EAAOhF,QAGxC,MAAM+O,EAAa,yBACnBnK,EAAIC,KAAO,iBACXD,EAAIiK,UAAY,QAChBjK,EAAIoK,SAASD,GAAY,EAAI,IAG7BnK,EAAIiK,UAAY,uBAChBjK,EAAIoK,SAASD,GAAY,IAAM,MAG/BnK,EAAIqK,YACJrK,EAAIsK,OAAO,EAAG,GACdtK,EAAIuK,OAAuB,EAAfnK,EAAOjF,MAAa,EAAGiF,EAAOhF,QAC1C4E,EAAIwK,YAAc,QAClBxK,EAAIyK,UAAY,EAChBzK,EAAI0K,SAEJ,MAAMC,EAAY3K,EAAI4K,aAAa,EAAG,EAAGxK,EAAOjF,MAAOiF,EAAOhF,QAE9D,OAAOuP,CACT,CAxDwEE,KAGpEjL,EAAQ,CACNkL,iBAAkBlQ,EAHIK,EAAgB4O,EAAYxL,EAfxC,IAkB6B/C,KAAK4C,YAAYA,YACxD,GAfN,EagBI6M,MXmEWzM,eAAwBlE,GACnC,OAKO,IAAIuF,SAAQ,CAACC,EAASiI,KACzB,IAEItJ,GAAgBD,OAAS9D,aAErB,MACMwF,EADSxF,EAAOmE,cAAc,UACjB2B,WAAW,MAExB0K,EAA0BlL,EAAU9B,KAAKiC,GACpCF,EAAkBC,EAAKC,KAGlC,IAAI+E,EAA8B,CAAE,EACpCnF,EAAeuC,SAASnC,IACpB,MAAMgL,EAAYlL,EAAkBC,EAAKC,GACpC+K,EAAcrG,SAASsG,KACxBjG,EAAQ/E,GAAQgL,EAAS,IAGjCrL,EAAQoF,EAAQ,IAItB,MAAOzD,GACLsG,EAAO,CAACtG,MAAS,mBA5B7B,EWpEI2J,SVhCU,WACZ,OAAO,IAAIvL,SAAQ,CAACC,EAASiI,KAC3B,MAAMsD,OAAoD9L,IAAnC2D,UAAkBmI,aAA+BnI,UAAkBmI,aAAe,EACnGC,EAAc1F,OAAOxL,aAAgBwL,OAAOxL,YAAoBmR,OAAY3F,OAAOxL,YAAoBmR,OAAS,EACtHzL,EACE,CACE0L,UAAanL,IACboL,aAAgB/J,IAChB2J,aAAgBA,EAAajN,YAAc,YAC3CsN,gBAAmBJ,EAAWI,iBAAmB,GAEpD,GAEL,EUoBIC,QCjCU,WACZ,OAAO,IAAI9L,SAASC,IAClBA,EACE,CACE8L,UASG1I,UAAU2I,SARbC,SAYGC,KAAKC,iBAAiBC,kBAAkBC,UAX3C,GAER,ED0BIC,KTxBU,WACZ,OAAO,IAAItM,SAASC,IAClBA,EACI,CACIsM,KAAQnR,KAAKmR,KAAK,IAClBC,KAAQtK,EAAU9G,KAAKoR,MAAQ,EAAE,EAAG,IACpCC,IAAOvK,EAAU9G,KAAKqR,IAAK,EAAGrR,KAAKsR,GAAI,IACvCC,SAAYvR,KAAKqR,IAAI,MACrBG,SAAYxR,KAAKyR,IAAI,MACrBC,SAAY1R,KAAK2R,IAAI,MACrBF,IAAO3K,EAAU9G,KAAKyR,KAAMzR,KAAKsR,GAAItR,KAAKsR,GAAI,IAC9CK,IAAO7K,EAAU9G,KAAK2R,IAAK,EAAG,EAAI3R,KAAKsR,GAAI,KAElD,GAEL,ESUIM,YPXWrO,eAA8BlE,GACzC,MAAMwS,GAAkBxS,aAAAiF,EAAAjF,EAASyS,uBAAwB/J,EAWzD,OAFyBZ,QALHvC,QAAQmN,IAC1BhP,MAAMC,KAAK,CAAEjD,OAJD,IAIoB,IASxCwD,eAAyCsO,GACrC,MAAMG,EAA8C,CAAE,EACtD,IAAK,MAAMC,KAAWJ,EAClB,IAEI,MAAMK,QAAejK,UAAU2J,YAAYO,MAAM,CAAEjK,KAAM+J,IAEzDD,EAAiBC,GAAWC,EAAOE,MAAMjP,WAC3C,MAAOqD,IAIb,OAAOwL,CACX,CAtB8CK,CAA0BR,MAIMA,EAG9E,EODIS,QEpCW/O,iBAEb,MAAM+O,EAAoB,GAE1B,GAAIrK,UAAUqK,QACZ,IAAK,IAAIxS,EAAI,EAAGA,EAAImI,UAAUqK,QAAQvS,OAAQD,IAAK,CACjD,MAAMyS,EAAStK,UAAUqK,QAAQxS,GACjCwS,EAAQ5R,KAAK,CAAC6R,EAAOrK,KAAMqK,EAAOC,SAAUD,EAAOE,aAAcpP,KAAK,MAI1E,OAAO,IAAIuB,SAASC,IAClBA,EACE,CACEyN,QAAWA,GAEd,GAEL,EFmBII,OLpCU,WACV,OAAO,IAAI9N,SAASC,IAChB,MAAMgB,EAA6B,CAC/B8M,eAAkB1K,UAAU2K,eAAiB,EAC7CA,eAAkB3K,UAAU2K,eAC5BC,WAAcH,OAAOG,WACrBC,aAAgB9I,KAEhBF,KAAuB7B,UAAU2K,eAAiB,IAClD/M,EAAmB,WAM/B,WACI,MAAMkN,EAAIpI,OAAO+H,OAAOtS,MAClB6G,EAAI0D,OAAO+H,OAAOrS,OAClB2S,EAAShT,KAAKiT,IAAIF,EAAG9L,GAAG9D,WACxB+P,EAAUlT,KAAKmT,IAAIJ,EAAG9L,GAAG9D,WAC/B,MAAO,GAAG6P,KAAUE,GACxB,CAZmCE,IAE3BvO,EAAQgB,EAAO,GAEvB,EKwBIwN,OJrCU,WACV,OAAO,IAAIzO,SAASC,IAChB,MAAMyO,EAAUtL,IAchBnD,EAXmC,CACnC0O,SAAY5I,OAAO1C,UAAUsL,SAC7BC,WAAcvL,UAAUuL,WACxBC,QAAWxL,UAAUwL,QACrBC,UAAazL,UAAUG,UACvBuL,oBAAuB1L,UAAU0L,oBACjCL,QAAW,CAACpL,KAAQoL,EAAQpL,KAAMpC,QAAWwN,EAAQxN,SACrD8N,OAAU9J,IACV+J,gBAAmBnJ,IACnBoJ,cAAiBnJ,OAAO1C,UAAU6L,eAEnB,GAEvB,EIoBIC,MHvBWxQ,iBARW,oBAAbG,WACT2B,EAAS3B,SAASE,cAAc,UAChCyB,EAAOjF,MAAQ,IACfiF,EAAOhF,OAAS,IAChBiF,EAAKD,EAAOE,WAAW,UAOzB,IAEE,IAAKD,EACD,MAAM,IAAIf,MAAM,uBAIpB,MAAMuK,EAA0B/L,MAAMC,KAAK,CAACjD,OAAQkL,IAAQ,IAehE,WACE,IAEI,IAAK3F,EACD,MAAM,IAAIf,MAAM,uBAGpB,MAAMyP,EAAqB,4IAOrBC,EAAuB,uKAOvBC,EAAe5O,EAAG6O,aAAa7O,EAAG8O,eAClCC,EAAiB/O,EAAG6O,aAAa7O,EAAGgP,iBAE1C,IAAKJ,IAAiBG,EAClB,MAAM,IAAI9P,MAAM,4BAOpB,GAJAe,EAAGiP,aAAaL,EAAcF,GAC9B1O,EAAGiP,aAAaF,EAAgBJ,GAEhC3O,EAAGkP,cAAcN,IACZ5O,EAAGmP,mBAAmBP,EAAc5O,EAAGoP,gBACxC,MAAM,IAAInQ,MAAM,qCAAuCe,EAAGqP,iBAAiBT,IAI/E,GADA5O,EAAGkP,cAAcH,IACZ/O,EAAGmP,mBAAmBJ,EAAgB/O,EAAGoP,gBAC1C,MAAM,IAAInQ,MAAM,uCAAyCe,EAAGqP,iBAAiBN,IAGjF,MAAMO,EAAgBtP,EAAGuP,gBAEzB,IAAKD,EACD,MAAM,IAAIrQ,MAAM,mCAMpB,GAHAe,EAAGwP,aAAaF,EAAeV,GAC/B5O,EAAGwP,aAAaF,EAAeP,GAC/B/O,EAAGyP,YAAYH,IACVtP,EAAG0P,oBAAoBJ,EAAetP,EAAG2P,aAC1C,MAAM,IAAI1Q,MAAM,kCAAoCe,EAAG4P,kBAAkBN,IAG7EtP,EAAG6P,WAAWP,GAGd,MAAMQ,EAAoB,IACpBC,EAAW,IAAI1O,aAAyB,EAAZyO,GAC5BE,EAAkB,EAAItV,KAAKsR,GAAM8D,EAEvC,IAAK,IAAItV,EAAI,EAAGA,EAAIsV,EAAWtV,IAAK,CAChC,MAAMyV,EAAQzV,EAAIwV,EAGlBD,EAAa,EAAJvV,GAAS,EAClBuV,EAAa,EAAJvV,EAAQ,GAAK,EACtBuV,EAAa,EAAJvV,EAAQ,GAAKE,KAAKqR,IAAIkE,IAAUlQ,EAAOjF,MAAQ,GACxDiV,EAAa,EAAJvV,EAAQ,GAAKE,KAAKyR,IAAI8D,IAAUlQ,EAAOhF,OAAS,GAG7D,MAAMmV,EAAelQ,EAAGmQ,eACxBnQ,EAAGoQ,WAAWpQ,EAAGqQ,aAAcH,GAC/BlQ,EAAGsQ,WAAWtQ,EAAGqQ,aAAcN,EAAU/P,EAAGuQ,aAE5C,MAAMC,EAAoBxQ,EAAGyQ,kBAAkBnB,EAAe,YAC9DtP,EAAG0Q,wBAAwBF,GAC3BxQ,EAAG2Q,oBAAoBH,EAAmB,EAAGxQ,EAAG4Q,OAAO,EAAO,EAAG,GAGjE5Q,EAAG6Q,SAAS,EAAG,EAAG9Q,EAAOjF,MAAOiF,EAAOhF,QACvCiF,EAAG8Q,WAAW,EAAK,EAAK,EAAK,GAC7B9Q,EAAG+Q,MAAM/Q,EAAGgR,kBACZhR,EAAGiR,WAAWjR,EAAGkR,MAAO,EAAe,EAAZpB,GAE3B,MAAMqB,EAAY,IAAI5V,kBAAkBwE,EAAOjF,MAAQiF,EAAOhF,OAAS,GACvEiF,EAAGoR,WAAW,EAAG,EAAGrR,EAAOjF,MAAOiF,EAAOhF,OAAQiF,EAAGqR,KAAMrR,EAAGsR,cAAeH,GAG5E,OAFkB,IAAI3V,UAAU2V,EAAWpR,EAAOjF,MAAOiF,EAAOhF,QAGlE,MAAOmG,GAEL,OAAO,IAAI1F,UAAU,EAAG,GAClB,QACJwE,IAEFA,EAAGoQ,WAAWpQ,EAAGqQ,aAAc,MAC/BrQ,EAAG6P,WAAW,MACd7P,EAAG6Q,SAAS,EAAG,EAAG7Q,EAAGuR,mBAAoBvR,EAAGwR,qBAC5CxR,EAAG8Q,WAAW,EAAK,EAAK,EAAK,IAGnC,CArHsEW,KAKlE,MAAO,CACLhH,iBAAoBlQ,EAJEK,EAAgB4O,EAAYzJ,EAAOjF,MAAOiF,EAAOhF,QAI9BE,KAAK4C,YAAYA,YAE5D,MAAOqD,GACP,MAAO,CACLuN,MAAS,eAGf,GGMaiD,EAAqC,CAC9CC,OG5CW1T,iBACb,OAAO,IAAIqB,SAASC,IAClB,IAEE,MAAMqS,EAAqBvM,OAAeuM,mBAAsBvM,OAAewM,yBAA4BxM,OAAeyM,qBAC1H,IAAKF,EAKH,YAJArS,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,yBAKX,MAKM8Q,EAAa,IAAIJ,EALR,CACbK,qBAAsB,EACtBC,WAAY,KAIdF,EAAWG,kBAAkB,IAERlU,WACnB,IACE,MAAMmU,EAAe,CAAEC,qBAAqB,EAAMC,qBAAqB,GACjEC,QAAcP,EAAWQ,YAAYJ,SACrCJ,EAAWS,oBAAoBF,GAErC,MAAMG,EAAMH,EAAMG,KAAO,GAGnBC,EAAa,IAAI,IAAIC,KAAKF,EAAI9O,MAAM,yBAA2B,IAAIjG,KAAKkV,GAAcA,EAAEC,QAAQ,cAAe,QAAOvM,OAGtHwM,EAAkBC,IACtB,MAAMpP,EAAQ8O,EAAI9O,MAAM,IAAIqP,OAAO,KAAKD,mCACxC,OAAOpP,EAAQA,EAAM,GAAGsP,MAAM,KAAO,EAAE,EAGnCC,EAAwB,CAACH,EAAmBI,IACzCA,EAAYzV,KAAI0V,IACrB,MAAMC,EAAU,IAAIL,OAAO,yBAAyBI,SAAmB,KACjElO,EAAU,IAAIuN,EAAIa,SAASD,IACjC,IAAKnO,EAAQ1K,OAAQ,OAAO,KAE5B,MAAM0S,EAAmB,CAAE,EAe3B,OAdAhI,EAAQpD,SAAQ6B,IACd,MAAO4P,EAAGC,EAAMxY,GAAQ2I,EAClB8P,EAAQzY,EAAKiY,MAAM,KACZ,WAATO,GACFtG,EAAYwG,SAAW,GAAGX,KAAaU,EAAM,KAC7CvG,EAAYyG,WAAaF,EAAM,GACb,UAAdV,IAAuB7F,EAAY0G,UAAYH,EAAM,IAAM,IAC7C,YAATD,GACTtG,EAAY2G,gBAAkB3G,EAAY2G,iBAAmB,GAC7D3G,EAAY2G,gBAAgB1Y,KAAKH,IACf,SAATwY,IACTtG,EAAY4G,YAAc9Y,MAGvBkS,CAAW,IACjB5K,OAAOyR,SAGNC,EAAcd,EAAsB,QAASJ,EAAe,UAC5DmB,EAAcf,EAAsB,QAASJ,EAAe,UAE5DoB,EAAiB,CACrB5M,MAAO,CACL6M,MAAOH,EAAYxZ,OACnBF,KAAMA,EAAKqL,EAAgBqO,KAE7BI,MAAO,CACLD,MAAOF,EAAYzZ,OACnBF,KAAMA,EAAKqL,EAAgBsO,KAE7BI,eAAgB/Z,EAAKqL,EAAgB+M,KAIjCpS,QAAe,IAAIjB,SAA6BiV,IACpD,MAAM5a,EAAUuF,YAAW,KACzB8S,EAAWwC,oBAAoB,eAAgBC,GAC/CzC,EAAW0C,QACXH,EAAc,CACZxC,WAAW,KACRoC,EACHxa,SAAS,GACT,GACD,KAEG8a,EAAkB3L,IACtB,MAAM6L,EAAe7L,EAAM8L,UACtBD,GAAiBA,EAAaC,YAEnCC,aAAalb,GACbqY,EAAWwC,oBAAoB,eAAgBC,GAC/CzC,EAAW0C,QAEXH,EAAc,CACZxC,WAAW,KACRoC,EACHW,cAAeH,EAAalB,MAAQ,KACpC,EAGJzB,EAAW+C,iBAAiB,eAAgBN,EAAe,IAG7DlV,EAAQ,CACNyV,QAASzU,EACThG,KAAMA,EAAKqL,EAAgBrF,MAG7B,MAAOW,GACP8Q,EAAW0C,QACXnV,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,wBAAyBA,EAAgB+T,cAKtDC,GAEA,MAAOhU,GACP3B,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,iBAAkBA,EAAgB+T,eAIjD,EHtFIE,ODzCWlX,iBACb,OAAO,IAAIqB,SAASC,IAClB,IACErB,GAAgBD,OAAS9D,aACvB,IACE,IA2DV,SAA2BA,GACzB,IACE,MAAMib,EAAcjb,EAAOmE,cAAc,QACzC8W,EAAYC,UAAY,0BACxBD,EAAY5W,MAAM8W,SAAW,WAC7BF,EAAY5W,MAAM+W,WAAa,SAE/Bpb,EAAOgD,KAAKwB,YAAYyW,GACxB,MAAMI,EAAOJ,EAAYK,wBAGzB,OAFAtb,EAAOgD,KAAKgC,YAAYiW,GAEjBI,EAAK1a,MAAQ,GAAK0a,EAAKza,OAAS,EACvC,MAAA+D,GACA,OAAO,EAEX,CA1Ee4W,CAAkBvb,GAKrB,YAJAoF,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,yBAKX,MAAMmG,EAAa,CACjBV,EAAa,WAAY,yLACzBA,EAAa,WAAY,sHACzBA,EAAa,SAAU,mJACvBE,OACGO,KAGCuO,EAAyB,GAC/B,IAAIC,EAAwB,GAE5BvO,EAAWtF,SAAQ,CAAC8T,EAAQrb,KAC1B,MAAMsb,EAiGlB,SAAgCX,EAAgBhb,GAC9C,IACE,MAAM4b,EAAc5b,EAAOmE,cAAc,QACzCyX,EAAYV,UAAYF,EAAOrC,QAAQ,aAAc,IACrDiD,EAAYvX,MAAMwX,WAAa,SAC/BD,EAAYvX,MAAM8W,SAAW,WAC7BS,EAAYvX,MAAM+W,WAAa,SAC/BQ,EAAYvX,MAAMyX,IAAM,UAExB9b,EAAOgD,KAAKwB,YAAYoX,GAExB,MAAMP,EAAOO,EAAYN,wBAEnBS,GADe/b,EAAOgc,aAAe9Q,QACR+Q,iBAAiBL,GAE9CM,EAAe,CACnBC,WAAY,CACVxb,MAAO0a,EAAK1a,MACZC,OAAQya,EAAKza,QAGfwb,SAAU,CACRC,WAAYN,EAAcM,WAC1BC,SAAUP,EAAcO,SACxBC,WAAYR,EAAcQ,WAC1BC,UAAWT,EAAcS,UACzBC,WAAYV,EAAcU,WAE1BC,YAAaX,EAAcW,aAAe,SAC1CC,YAAaZ,EAAcY,aAAe,SAC1CC,eAAgBb,EAAca,gBAAkB,OAChDC,cAAed,EAAcc,eAAiB,OAC9CC,oBAAqBf,EAAce,qBAAuB,SAC1DC,mBAAoBhB,EAAcgB,oBAAsB,SACxDC,YAAajB,EAAciB,aAAe,SAK9C,OADAhd,EAAOgD,KAAKgC,YAAY4W,GACjBM,EAEP,MAAOnV,GACP,MAAO,CACLA,MAAQA,EAAgB+T,SAG9B,CA/IgCmC,CAAuBvB,EAAQ1b,GAEnDwb,EAAgBva,KAAK,CACnBN,MAAOgb,EAAYQ,WAAWxb,MAC9BC,OAAQ+a,EAAYQ,WAAWvb,SAGvB,IAANP,GAAWsb,EAAYS,WACzBX,EAAgBrb,EAAKqL,EAAgBkQ,EAAYS,eAIrD,MAAMvB,EAAU,CACdY,gBACAU,WAAYX,GAGdpW,EAAQ,CAENyV,UACAza,KAAMA,EAAKqL,EAAgBoP,MAG7B,MAAO9T,GACP3B,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,iBAAkBA,EAAgB+T,gBAI/C,MAAO/T,GACP3B,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,iBAAkBA,EAAgB+T,eAIjD,ECpBIoC,OI5CWpZ,iBACb,OAAO,IAAIqB,SAASC,IAClB,IAEE,GAAsB,oBAAX8F,SAA2BA,OAAOiS,iBAA+D,mBAArCjS,OAAOiS,gBAAgBC,UAK5F,YAJAhY,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,uCAKX,IAAIsW,GAAiB,EACjBC,EAAsD,KAE1D,MAAMC,EAAiBC,IACrB,IAAIH,EAAJ,CACAA,GAAiB,EAGbC,GACF5C,aAAa4C,GAGf,IAEE,MAAMG,EAAkBD,EAAOha,KAAKka,IAElC,MAAMC,EAAe7S,GACZA,EAAM6N,QAAQ,MAAO,QAAQA,QAAQ,KAAM,OAYpD,MARkB,CAChBgF,EAAYD,EAAME,UAAY,IAC9BD,EAAYD,EAAMjV,MAAQ,IAC1BkV,EAAYD,EAAMG,MAAQ,IAC1BH,EAAMI,aAAe,IAAM,IAC3BJ,EAAMK,QAAU,IAAM,KACtBna,KAAK,IAES,IAIlB6Z,EAAgBrR,OAGhB,MAAMyO,EAAU,CACdmD,WAAYR,EAAOld,OACnB2d,WAAY7d,EAAKqL,EAAgBgS,KAGnCrY,EAAQ,CACNyV,UACAza,KAAMA,EAAKqL,EAAgBoP,MAG7B,MAAO9T,GACP3B,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,4BAA6BA,EAAgB+T,YA7CpC,GAmDhB0C,EAAStS,OAAOiS,gBAAgBC,YAGtC,GAAII,EAAOld,OAAS,EAElB,YADAid,EAAcC,GAKhBF,EAAgBvY,YAAW,KACzB,MAAMyY,EAAStS,OAAOiS,gBAAgBC,YACtCG,EAAcC,EAAO,GAhFF,KAoFrB,MAAMU,EAAkB,KACtBhT,OAAOiS,gBAAgB9C,oBAAoB,gBAAiB6D,GAC5D,MAAMV,EAAStS,OAAOiS,gBAAgBC,YACtCG,EAAcC,EAAO,EAGvBtS,OAAOiS,gBAAgBvC,iBAAiB,gBAAiBsD,GAEzD,MAAOnX,GACP3B,EAAQ,CACNwS,WAAW,EACX7Q,MAAO,2BAA4BA,EAAgB+T,eAI3D,GJrCaqD,EAAwE,CAAE,EAG1EC,EAAsC,CAC/C5e,QAAW,QAUF6e,EAAmB,CAAC5V,EAAa6V,EAA8C1e,KACxFue,EAAiB1V,GAAQ6V,CAAgB,WK5E7BC,IACZ,aACJ,CCOgB,SAAAC,EACZrW,EACAvI,SAGA,IAAIiU,EAAUtL,IAGd,GAAqB,YAAjBsL,EAAQpL,MAAsBN,EAAIyL,QAAgC,iBAAfzL,EAAIyL,SAAwBtQ,MAAM2I,QAAQ9D,EAAIyL,QAAS,CAC1G,MACM6K,EADkBtW,EAAIyL,OACQC,QACpC,GAAI4K,GAAsC,iBAAhBA,IAA6Bnb,MAAM2I,QAAQwS,GAAc,CAC/E,MAAMC,EAAmBD,EACzB5K,EAAU,CACNpL,KAAOiW,EAAiBjW,MAAmB,UAC3CpC,QAAUqY,EAAiBrY,SAAsB,YAK7D,MAAMoC,EAAOoL,EAAQpL,KAAK2B,cACpBuU,EAAM9K,EAAQxN,QAAQ0S,MAAM,KAAK,IAAM,IACvC6F,EAAWld,SAASid,EAAK,IAGzBE,EAAc,KAAKjf,aAAOiF,EAAPjF,EAASR,UAAW,IACvC0f,GAAuBlf,aAAAiF,EAAAjF,EAASN,YAAa,GAC7Cyf,GAAcnf,aAAAiF,EAAAjF,EAASP,UAAW,GAGxC,IAAK,MAAM2f,KAAUF,EAAsB,CACvC,MAAMG,EAAQpf,EAA4Bmf,GAC1C,GAAKC,EAEL,IAAK,MAAMC,KAAQD,EAAO,CAEtB,MAAME,IAAyB,aAAcD,GAGvCE,GAAgBD,IAAuC,QAAfxa,EAAAua,EAAKnf,gBAAU8E,IAAAF,OAAAE,EAAAF,EAAA0a,MAAKC,IAC9D,MAAM7V,EAAQ6V,EAAY7V,MAAM,kBAEhC,GAAIA,EAAO,CACP,MAAS,CAAA8V,GAAYC,GAAkB/V,EACjCgW,EAAc/d,SAAS8d,EAAgB,IAC7C,OAAO/W,IAAS8W,GAAYX,GAAYa,EAE5C,OAAOhX,IAAS6W,CAAW,MAG3BH,GAAwBC,IACxBP,EAAY5d,QAAQie,EAAK9f,UAoCrC,OAxBA,SAASsgB,EAAcC,EAAgCC,EAAe,IAClE,MAAMxZ,EAA6B,CAAE,EAErC,IAAK,MAAOjE,EAAK2I,KAAU7C,OAAO4X,QAAQF,GAAa,CACnD,MAAMG,EAAcF,EAAO,GAAGA,KAAQzd,IAAQA,EAE9C,GAAqB,iBAAV2I,GAAuBxH,MAAM2I,QAAQnB,IAAoB,OAAVA,EAKnD,CACH,MAAMiV,EAAalB,EAAYQ,MAAKW,GAAaF,EAAYG,WAAWD,KAClEE,EAAanB,EAAYM,MAAKc,GAAaL,EAAYG,WAAWE,KAEnEJ,IAAcG,IACf9Z,EAAOjE,GAAO2I,OAVoD,CACtE,MAAMsV,EAAWV,EAAc5U,EAAOgV,GAClC7X,OAAON,KAAKyY,GAAU9f,OAAS,IAC/B8F,EAAOjE,GAAOie,IAW1B,OAAOha,EAIJsZ,CAAcvX,EACzB,CChGA,MAAMkY,EAAgC,uBCuCtC,IAAIC,EAAiD,KACjDC,EAAuC,KAMpC,MAAMC,EAAgB,CACzB5gB,EACA6gB,KAGA,GAAI7gB,EAAQH,gBAAkB8gB,EAC1B,OAAOpb,QAAQC,QAAQmb,GAI3B,GAAID,EACA,OAAOA,EAIX,MACMI,EAAW,GADG9gB,EAAQ+gB,cAAgBzhB,cAEtC0hB,ED1DJ,SAAuBC,GACzB,MAAMC,EAAsBD,EAASE,uBAAyBV,EAC9D,IACI,OAAOW,aAAaC,QAAQH,GAC9B,MAAAnc,GACE,OAAO,KAEf,CCmDsBuc,CAAathB,GACzBuhB,EAAmB,CACrBV,aACA7gB,UACAwhB,WAAYhhB,EAAKqL,EAAgBgV,IACjCpa,iBAEAua,IACAO,EAAYP,UAAYA,GAG5B,MAAMS,EAAeC,MAAMZ,EAAU,CACjCa,OAAQ,OACRC,QAAS,CACL,YAAa5hB,EAAQ6hB,QACrBC,cAAiB,oBACjB,eAAgB,oBAEpB1e,KAAM+I,KAAKJ,UAAUwV,KAEpBQ,MAAKC,IAEF,IAAKA,EAASC,GAAI,CACd,GAAwB,MAApBD,EAASnP,OACT,MAAM,IAAI3N,MAAM,mBAEpB,MAAM,IAAIA,MAAM,uBAAuB8c,EAASnP,UAEpD,OAAOmP,EAASE,MAAM,IAEzBH,MAAK7gB,IAEEA,EAAK8f,WAAa9f,EAAK8f,YAAcA,GD9ErC,SAAaA,EAAmBC,GAC5C,MAAMC,EAAsBD,EAASE,uBAAyBV,EAC9D,IACIW,aAAae,QAAQjB,EAAqBF,GAC5C,MAAAjc,IAGN,CCwEgBqd,CAAalhB,EAAK8f,UAAWhhB,GAEjC2gB,EAAmBzf,EACnBwf,EAAoB,KACbxf,KAEVmhB,OAAMlb,IAIH,GAHAoI,QAAQpI,MAAM,0BAA2BA,GACzCuZ,EAAoB,KAEE,oBAAlBvZ,EAAM+T,QACN,MAAM/T,EAGV,OAAO,IAAI,IAIbmb,EAAYtiB,EAAQJ,SAAW,IAC/B2iB,EAAiB,IAAIhd,SAAsBC,IAC7CL,YAAW,KACPK,EAAQ,CACJgd,KAAM,CAAEC,WAAW,GACnBhc,iBACF,GACH6b,EAAU,IAIjB,OADA5B,EAAoBnb,QAAQmd,KAAK,CAACjB,EAAcc,IACzC7B,CAAiB,ECrFrBxc,eAAeye,EAAa3iB,SACjC,MAAMihB,EAAW,IAAK1hB,KAAmBS,GAGnC4iB,EAAa3B,EAASthB,UAAYkjB,eAAexB,QAAQ,YAAc1gB,KAAKmiB,SAAW,KAGvFC,EAAgB,IAAKxV,KAA0BgR,IAC/CyE,QAAEA,EAASC,mBAAoBC,SAAiCC,EAAwBJ,EAAe9B,GAG7G,IAAImC,EAAyB,CAAE,EAC3BC,EAAsB,CAAE,EAC5B,GAAIT,GAAa3B,EAASlhB,aAAc,CACtC,MAAQijB,QAASM,EAAUL,mBAAEA,SAA6BE,EAAwBxL,EAAoCsJ,GACtHmC,EAAyBH,EACzBI,EAAsBC,EAGxB,MAAMC,EAAatC,EAASY,QAAUjB,EAAcK,EAAUiC,GAA0B,KACxF,IAAIM,EAAY,KAEhB,GAAID,EACF,IACEC,QAAkBD,EAClB,MAAOpc,GAEP,GAAIA,aAAiBjC,OAA2B,oBAAlBiC,EAAM+T,QAClC,MAAO,CACL/T,MAAO,oCACP0Z,WAAY,CAAE,EACd2B,KAAM,CAAE,EACR/b,gBACAgd,UAAW,IAGf,MAAMtc,EAKV,MAAMuc,EAAa,IAAKV,KAAYK,GAC9BM,EAAe1C,EAASnhB,YAAc,CAAEkjB,QAASU,GAAe,CAAE,EAClEE,EAAgBhF,GAAoB4E,aAAAve,EAAAue,EAAW3C,aAAc,CAAA,EAAII,GACjEJ,EAAa,IAAKqC,KAA2BU,GAC7CpB,GAAsBgB,aAASve,EAATue,EAAWhB,OAAQ,CAAEqB,WAAY,CAAEC,MAAO,aAGtEvU,QAAQwU,IAAIP,GACZ,MAAMC,EAAgC,QAApB1e,EAAAye,eAAAA,EAAWC,iBAASxe,IAAAF,EAAAA,EAAIvE,EAAKqL,EAAgBgV,IAI3D+B,GCxFC1e,eAAgC8f,EAAkBC,EAAmCjkB,EAA2BkkB,EAAuC,CAAA,SAC1J,MACMC,EAAM,GADQ7kB,QAEd8kB,EAAU,CACZX,UAAWO,EACXnD,WAAYoD,EACZlkB,aAAcmkB,EACdzd,gBACAzG,UACAggB,KAAsB,QAAhBjb,EAAA,OAAAuG,iBAAAA,cAAAA,OAAQC,gBAAQtG,IAAAF,OAAAE,EAAAF,EAAEsf,UAG5BxB,eAAeV,QAAQ,UAAW,KAClC,UACUT,MAAMyC,EAAK,CACbxC,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBxe,KAAM+I,KAAKJ,UAAUqY,KAE3B,MAAwBra,GAAlB,CAEZ,CDkEIua,CAAiBb,EAAW5C,EAAYI,EAAUmC,GAAwBf,OAAM,SAalF,MAVkC,KAC5BmB,eAAAA,EAAWxC,YAAa,CAAEA,UAAWwC,EAAUxC,WACnDyC,YACA5C,WAAYA,EACZ2B,OACA/b,mBACGkd,KACCtb,OAAON,KAAKqb,GAAwB1iB,OAAS,GAAKugB,EAASlhB,cAAgB,CAAEA,aAAcqjB,GAInG,CAWOlf,eAAeif,EACpBoB,EACAvkB,GAEA,MAAMwkB,EAAO,IAAKjlB,KAAmBS,GAC/BwgB,EAAWnY,OAAO4X,QAAQsE,GAC7B/b,QAAO,EAAEjG,MAAS,IAAAwC,EAAA,QAAgB,QAAfA,EAAAyf,aAAAvf,EAAAuf,EAAMhlB,eAASyF,IAAAF,OAAAE,EAAAF,EAAAwF,SAAShI,GAAI,IAC/CiG,QAAO,EAAEjG,kBACR,OAAe,UAAfiiB,aAAAvf,EAAAuf,EAAM/kB,eAASwF,IAAAF,OAAAE,EAAAF,EAAA0a,MAAKgF,GAAKA,EAAEla,SAAS,QACjB,UAAfia,aAAAvf,EAAAuf,EAAM/kB,eAASwF,IAAA8E,OAAA9E,EAAA8E,EAAA0V,MAAKgF,GAAKA,EAAEpE,WAAW9d,KACZ,KAAX,QAAfyH,EAAAwa,aAAAvf,EAAAuf,EAAM/kB,eAASwF,IAAA+E,OAAA/E,EAAA+E,EAAAtJ,UAA6B,QAAbwJ,EAAAsa,aAAIvf,EAAJuf,EAAM/kB,eAAOwF,IAAAiF,OAAAjF,EAAAiF,EAAEK,SAAShI,GAAI,IAE7DwF,EAAOyY,EAAS5c,KAAI,EAAErB,KAASA,IAC/BmiB,EAAWlE,EAAS5c,KAAI,EAAE6V,EAAGkL,KAAQA,EAAG3kB,KACxC4kB,iBE5HNF,EACAG,EACAC,GAEA,OAAOvf,QAAQmN,IACbgS,EAAS9gB,KAAKmhB,IACZ,MAAMC,EAAYllB,YAAYmlB,MAC9B,OAAO1f,QAAQmd,KAAK,CAClBqC,EAAEhD,MAAM7W,IAAW,CACjBA,QACA8X,QAASljB,YAAYmlB,MAAQD,OAvBdE,EAyBXL,EAzBsBpc,EAyBTqc,EAxBlB,IAAIvf,SAAYC,IACrBL,YAAW,IAAMK,EAAQiD,IAAMyc,EAAE,KAuBEnD,MAAM7W,IAAW,CAC9CA,QACA8X,QAASljB,YAAYmlB,MAAQD,QA3BvB,IAASE,EAAWzc,CA6B5B,IAGR,CFyG+B0c,CAAmBT,GAAUF,aAAAvf,EAAAuf,EAAM5kB,UAAW,IAAM4e,GAE3EwE,EAAkC,CAAE,EACpCoC,EAA4D,CAAE,EAEpER,EAAe5c,SAAQ,CAACkD,EAAOma,WACV,MAAfna,EAAMA,QACRka,EAAsBrd,EAAKsd,IAAUna,EAAMA,MAC3C8X,EAAQjb,EAAKsd,IAAuB,QAAbtgB,EAAAmG,EAAM8X,eAAO/d,IAAAF,EAAAA,EAAI,MAI5C,MAAMke,EAAqBrE,EAAoBwG,EAAuBZ,GACtE,MAAO,CAAExB,UAASC,qBACpB,yBGxII,WAAAqC,CAAYtlB,GACVulB,KAAKvlB,QAAU,IAAKT,KAAmBS,GAQlC,SAAMwlB,CAAIC,GAEf,OAAO9C,EADc,IAAK4C,KAAKvlB,WAAYylB,IAGtC,UAAA9G,GACL,cAOK,gBAAAF,CAAiBlc,EAAaoiB,GACnCe,EAAuBnjB,EAAKoiB,0DCb3BzgB,eAA8ByhB,GACjC,IACI,MAAM1B,QAAsBtB,EAAa3iB,GACzC,OAAI2lB,EACO,CAAEnlB,KAAMyjB,EAAcR,UAAU3f,WAAY5C,KAAM+iB,EAAcpD,YAEhEoD,EAAcR,UAAU3f,WAErC,MAAOqD,GACL,MAAMA,EAEd,6BAvBOjD,iBAEH,aAD4Bye,EAAa3iB,IACpB6gB,UACzB,oCAyBO3c,iBACH,IACI,MAAM8e,QAAEA,EAAOC,mBAAEA,SAA6BE,EAAwB5V,EAAuBvN,GAE7F,MAAO,IACAijB,EACHD,WAEN,MAAO7b,GACL,MAAMA,EAEd,2F9BnBgB,SAA4C5E,EAAQ2I,GAChElL,EAAQuC,GAAO2I,CACnB"}
@@ -1,4 +1,5 @@
1
1
  interface optionsInterface {
2
+ storage_property_name?: string;
2
3
  exclude?: string[];
3
4
  include?: string[];
4
5
  permissions_to_check?: PermissionName[];
@@ -1,2 +1,2 @@
1
- const e="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1};let n={...t};function o(e,t){n[e]=t}const r={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"]}]};function i(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function a(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(s(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function s(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 c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const l=new Uint32Array([597399067,2869860233,951274213,2716044179]);function u(e,t){return e<<t|e>>>32-t}function d(e,t=0){var n;if(t=t?0|t:0,"string"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const o=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],l[0]),n[0]=u(n[0],15),n[0]=Math.imul(n[0],l[1]),t[0]=t[0]^n[0],t[0]=u(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],l[1]),n[1]=u(n[1],16),n[1]=Math.imul(n[1],l[2]),t[1]=t[1]^n[1],t[1]=u(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],l[2]),n[2]=u(n[2],17),n[2]=Math.imul(n[2],l[3]),t[2]=t[2]^n[2],t[2]=u(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],l[3]),n[3]=u(n[3],18),n[3]=Math.imul(n[3],l[0]),t[3]=t[3]^n[3],t[3]=u(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,o),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],l[3]),r[3]=u(r[3],18),r[3]=Math.imul(r[3],l[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],l[2]),r[2]=u(r[2],17),r[2]=Math.imul(r[2],l[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],l[1]),r[1]=u(r[1],16),r[1]=Math.imul(r[1],l[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],l[0]),r[0]=u(r[0],15),r[0]=Math.imul(r[0],l[1]),t[0]=t[0]^r[0]}}(e,o),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]=c(t[0]),t[1]=c(t[1]),t[2]=c(t[2]),t[3]=c(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,o);const r=new Uint8Array(o.buffer);return Array.from(r).map((e=>e.toString(16).padStart(2,"0"))).join("")}const m=280;async function h(e){for(var t;!document.body;)await f(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 f(e,t){return new Promise((n=>setTimeout(n,e,t)))}const p=["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"],g=["monospace","sans-serif","serif"];function w(e,t){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function v(){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 y(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const S=(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 b(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 M=["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 P(){var e,t,n,o,r,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,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>Brave)\/(?<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",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(t=s.groups)||void 0===t?void 0:t.version)||(null===(n=s.groups)||void 0===n?void 0:n.version1)||(null===(o=s.groups)||void 0===o?void 0:o.version2);if(a||!(null===(r=s.groups)||void 0===r?void 0:r.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function E(){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 C(){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 A(){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 x="SamsungBrowser"!==P().name?1:3;let T,I=null;function k(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 O=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],R=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function L(e,t){return`<math><mrow>${t}</mrow></math>`}function _(){let e="<mo>∏</mo>";return O.forEach(((t,n)=>{const o=2*n,r=R.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>`)})),L(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function B(){const e=[];return O.forEach(((t,n)=>{const o=2*n,r=R.slice(o,o+2);2===r.length&&e.push(L(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const D={audio:async function(){return async function(){return new Promise(((e,t)=>{try{const t=44100,n=5e3,o=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,n,t),r=o.createBufferSource(),a=o.createOscillator();a.frequency.value=1e3;const s=o.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(o.destination),a.start(),o.oncomplete=t=>{c=t.renderedBuffer.getChannelData(0),e({sampleHash:i(c),maxChannels:o.destination.maxChannelCount,channelCountMode:r.channelCountMode})},o.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}()},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 new ImageData(1,1);e.width=m,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}()));e({commonPixelsHash:d(a(t,m,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,t)=>{try{h((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d"),o=g.map((e=>w(n,e)));let r={};p.forEach((e=>{const t=w(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(e){t({error:"unsupported"})}}))},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:v(),architecture:y(),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:S(Math.asin,-1,1,97),cos:S(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:S(Math.sin,-Math.PI,Math.PI,97),tan:S(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||M;return b(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=>{const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:C()};E()&&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=P();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:E(),applePayVersion:A(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(T=document.createElement("canvas"),T.width=200,T.height=100,I=T.getContext("webgl"));try{if(!I)throw new Error("WebGL not supported");const e=Array.from({length:x},(()=>function(){try{if(!I)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=I.createShader(I.VERTEX_SHADER),o=I.createShader(I.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(I.shaderSource(n,e),I.shaderSource(o,t),I.compileShader(n),!I.getShaderParameter(n,I.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+I.getShaderInfoLog(n));if(I.compileShader(o),!I.getShaderParameter(o,I.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+I.getShaderInfoLog(o));const r=I.createProgram();if(!r)throw new Error("Failed to create shader program");if(I.attachShader(r,n),I.attachShader(r,o),I.linkProgram(r),!I.getProgramParameter(r,I.LINK_STATUS))throw new Error("Shader program linking failed: "+I.getProgramInfoLog(r));I.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)*(T.width/2),a[4*e+3]=Math.sin(t)*(T.height/2)}const c=I.createBuffer();I.bindBuffer(I.ARRAY_BUFFER,c),I.bufferData(I.ARRAY_BUFFER,a,I.STATIC_DRAW);const l=I.getAttribLocation(r,"position");I.enableVertexAttribArray(l),I.vertexAttribPointer(l,2,I.FLOAT,!1,0,0),I.viewport(0,0,T.width,T.height),I.clearColor(0,0,0,1),I.clear(I.COLOR_BUFFER_BIT),I.drawArrays(I.LINES,0,2*i);const u=new Uint8ClampedArray(T.width*T.height*4);I.readPixels(0,0,T.width,T.height,I.RGBA,I.UNSIGNED_BYTE,u);return new ImageData(u,T.width,T.height)}catch(e){return new ImageData(1,1)}finally{I&&(I.bindBuffer(I.ARRAY_BUFFER,null),I.useProgram(null),I.viewport(0,0,I.drawingBufferWidth,I.drawingBufferHeight),I.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,T.width,T.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},N={webrtc:async function(){return new Promise((e=>{try{const t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t)return void e({supported:!1,error:"WebRTC not supported"});const n=new t({iceCandidatePoolSize:1,iceServers:[]});n.createDataChannel("");(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},o=await n.createOffer(t);await n.setLocalDescription(o);const r=o.sdp||"",i=[...new Set((r.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),a=e=>{const t=r.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},s=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...r.matchAll(n)];if(!o.length)return null;const i={};return o.forEach((t=>{const[n,o,r]=t,a=r.split("/");"rtpmap"===o?(i.mimeType=`${e}/${a[0]}`,i.clockRate=+a[1],"audio"===e&&(i.channels=+a[2]||1)):"rtcp-fb"===o?(i.feedbackSupport=i.feedbackSupport||[],i.feedbackSupport.push(r)):"fmtp"===o&&(i.sdpFmtpLine=r)})),i})).filter(Boolean),c=s("audio",a("audio")),l=s("video",a("video")),u={audio:{count:c.length,hash:d(k(c))},video:{count:l.length,hash:d(k(l))},extensionsHash:d(k(i))},m=await new Promise((e=>{const t=setTimeout((()=>{n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...u,timeout:!0})}),3e3),o=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...u,candidateType:i.type||""}))};n.addEventListener("icecandidate",o)}));e({details:m,hash:d(k(m))})}catch(t){n.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}}))},mathml:async function(){return new Promise((e=>{try{h((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=[L("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>"),L("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),L("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>"),_(),...B()],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=d(k(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:d(k(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.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:d(k(t))};e({details:n,hash:d(k(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={},F={timeout:"true"},$=(e,t,n)=>{V[e]=t};function j(){return"1.4.0"}function U(e,t){var n;let o=P();if("unknown"===o.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const t=e.system.browser;if(t&&"object"==typeof t&&!Array.isArray(t)){const e=t;o={name:e.name||"unknown",version:e.version||"unknown"}}}const i=o.name.toLowerCase(),a=o.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==t?void 0:t.exclude)||[]],l=(null==t?void 0:t.stabilize)||[],u=(null==t?void 0:t.include)||[];for(const e of l){const t=r[e];if(t)for(const e of t){const t=!("browsers"in e),o=!t&&(null===(n=e.browsers)||void 0===n?void 0:n.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);if(t){const[,e,,n]=t,o=parseInt(n,10);return i===e&&s>=o}return i===e})));(t||o)&&c.push(...e.exclude)}}return function e(t,n=""){const o={};for(const[r,i]of Object.entries(t)){const t=n?`${n}.${r}`:r;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>t.startsWith(e))),n=u.some((e=>t.startsWith(e)));e&&!n||(o[r]=i)}else{const n=e(i,t);Object.keys(n).length>0&&(o[r]=n)}}return o}(e)}const W="thumbmark_visitor_id";let H=null,G=null;const z=(t,n)=>{if(t.cache_api_call&&G)return Promise.resolve(G);if(H)return H;const o=`${t.api_endpoint||e}/thumbmark`,r=function(){try{return localStorage.getItem(W)}catch(e){return null}}(),i={components:n,options:t,clientHash:d(k(n)),version:"1.4.0"};r&&(i.visitorId=r);const a=fetch(o,{method:"POST",headers:{"x-api-key":t.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((e=>(e.visitorId&&e.visitorId!==r&&function(e){try{localStorage.setItem(W,e)}catch(e){}}(e.visitorId),G=e,H=null,e))).catch((e=>{if(console.error("Error fetching pro data",e),H=null,"INVALID_API_KEY"===e.message)throw e;return null})),s=t.timeout||5e3,c=new Promise((e=>{setTimeout((()=>{e({info:{timed_out:!0},version:"1.4.0"})}),s)}));return H=Promise.race([a,c]),H};async function J(n){var o;const r={...t,...n},i=r.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,a={...D,...V},{elapsed:s,resolvedComponents:c}=await K(a,r);let l={},u={};if(i||r.experimental){const{elapsed:e,resolvedComponents:t}=await K(N,r);l=t,u=e}const m=r.api_key?z(r,c):null;let h=null;if(m)try{h=await m}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:"Invalid API key or quota exceeded",components:{},info:{},version:"1.4.0",thumbmark:""};throw e}const f={...s,...u},p=r.performance?{elapsed:f}:{},g=U((null==h?void 0:h.components)||{},r),w={...c,...g},v=(null==h?void 0:h.info)||{uniqueness:{score:"api only"}};console.log(h);const y=null!==(o=null==h?void 0:h.thumbmark)&&void 0!==o?o:d(k(w));i&&async function(t,n,o,r={}){var i;const a=`${e}/log`,s={thumbmark:t,components:n,experimental:r,version:"1.4.0",options:o,path:null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.pathname};sessionStorage.setItem("_tmjs_l","1");try{await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}catch(e){}}(y,w,r,l).catch((()=>{}));return{...(null==h?void 0:h.visitorId)&&{visitorId:h.visitorId},thumbmark:y,components:w,info:v,version:"1.4.0",...p,...Object.keys(l).length>0&&r.experimental&&{experimental:l}}}async function K(e,n){const o={...t,...n},r=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==o?void 0:o.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>{var t,n,r,i;return(null===(t=null==o?void 0:o.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(n=null==o?void 0:o.include)||void 0===n?void 0:n.some((t=>t.startsWith(e))):0===(null===(r=null==o?void 0:o.include)||void 0===r?void 0:r.length)||(null===(i=null==o?void 0:o.include)||void 0===i?void 0:i.includes(e))})),i=r.map((([e])=>e)),a=r.map((([e,t])=>t(n))),s=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}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o})))]);var r,i})))}(a,(null==o?void 0:o.timeout)||5e3,F),c={},l={};s.forEach(((e,t)=>{var n;null!=e.value&&(l[i[t]]=e.value,c[i[t]]=null!==(n=e.elapsed)&&void 0!==n?n:0)}));const u=U(l,o);return{elapsed:c,resolvedComponents:u}}async function Y(){return(await J(n)).components}async function q(e){try{const t=await J(n);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}}async function X(){try{const{elapsed:e,resolvedComponents:t}=await K(D,n);return{...t,elapsed:e}}catch(e){throw e}}class Z{constructor(e){this.options={...t,...e}}async get(e){return J({...this.options,...e})}getVersion(){return"1.4.0"}includeComponent(e,t){$(e,t)}}export{Z as Thumbmark,U as filterThumbmarkData,q as getFingerprint,Y as getFingerprintData,X as getFingerprintPerformance,J as getThumbmark,j as getVersion,$ as includeComponent,o as setOption,r as stabilizationExclusionRules,k as stableStringify};
1
+ const e="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1};let n={...t};function o(e,t){n[e]=t}const r={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"]}]};function i(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function a(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(s(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function s(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 c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const l=new Uint32Array([597399067,2869860233,951274213,2716044179]);function u(e,t){return e<<t|e>>>32-t}function d(e,t=0){var n;if(t=t?0|t:0,"string"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const o=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],l[0]),n[0]=u(n[0],15),n[0]=Math.imul(n[0],l[1]),t[0]=t[0]^n[0],t[0]=u(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],l[1]),n[1]=u(n[1],16),n[1]=Math.imul(n[1],l[2]),t[1]=t[1]^n[1],t[1]=u(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],l[2]),n[2]=u(n[2],17),n[2]=Math.imul(n[2],l[3]),t[2]=t[2]^n[2],t[2]=u(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],l[3]),n[3]=u(n[3],18),n[3]=Math.imul(n[3],l[0]),t[3]=t[3]^n[3],t[3]=u(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,o),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],l[3]),r[3]=u(r[3],18),r[3]=Math.imul(r[3],l[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],l[2]),r[2]=u(r[2],17),r[2]=Math.imul(r[2],l[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],l[1]),r[1]=u(r[1],16),r[1]=Math.imul(r[1],l[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],l[0]),r[0]=u(r[0],15),r[0]=Math.imul(r[0],l[1]),t[0]=t[0]^r[0]}}(e,o),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]=c(t[0]),t[1]=c(t[1]),t[2]=c(t[2]),t[3]=c(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,o);const r=new Uint8Array(o.buffer);return Array.from(r).map((e=>e.toString(16).padStart(2,"0"))).join("")}const m=280;async function h(e){for(var t;!document.body;)await f(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 f(e,t){return new Promise((n=>setTimeout(n,e,t)))}const p=["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"],g=["monospace","sans-serif","serif"];function w(e,t){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function v(){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 y(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const S=(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 b(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 M=["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 P(){var e,t,n,o,r,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,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>Brave)\/(?<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",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(t=s.groups)||void 0===t?void 0:t.version)||(null===(n=s.groups)||void 0===n?void 0:n.version1)||(null===(o=s.groups)||void 0===o?void 0:o.version2);if(a||!(null===(r=s.groups)||void 0===r?void 0:r.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function E(){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 C(){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 A(){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 x="SamsungBrowser"!==P().name?1:3;let T,I=null;function k(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 O=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],R=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function L(e,t){return`<math><mrow>${t}</mrow></math>`}function _(){let e="<mo>∏</mo>";return O.forEach(((t,n)=>{const o=2*n,r=R.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>`)})),L(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function B(){const e=[];return O.forEach(((t,n)=>{const o=2*n,r=R.slice(o,o+2);2===r.length&&e.push(L(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const D={audio:async function(){return async function(){return new Promise(((e,t)=>{try{const t=44100,n=5e3,o=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,n,t),r=o.createBufferSource(),a=o.createOscillator();a.frequency.value=1e3;const s=o.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(o.destination),a.start(),o.oncomplete=t=>{c=t.renderedBuffer.getChannelData(0),e({sampleHash:i(c),maxChannels:o.destination.maxChannelCount,channelCountMode:r.channelCountMode})},o.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}()},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 new ImageData(1,1);e.width=m,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}()));e({commonPixelsHash:d(a(t,m,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,t)=>{try{h((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d"),o=g.map((e=>w(n,e)));let r={};p.forEach((e=>{const t=w(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(e){t({error:"unsupported"})}}))},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:v(),architecture:y(),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:S(Math.asin,-1,1,97),cos:S(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:S(Math.sin,-Math.PI,Math.PI,97),tan:S(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||M;return b(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=>{const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:C()};E()&&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=P();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:E(),applePayVersion:A(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(T=document.createElement("canvas"),T.width=200,T.height=100,I=T.getContext("webgl"));try{if(!I)throw new Error("WebGL not supported");const e=Array.from({length:x},(()=>function(){try{if(!I)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=I.createShader(I.VERTEX_SHADER),o=I.createShader(I.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(I.shaderSource(n,e),I.shaderSource(o,t),I.compileShader(n),!I.getShaderParameter(n,I.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+I.getShaderInfoLog(n));if(I.compileShader(o),!I.getShaderParameter(o,I.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+I.getShaderInfoLog(o));const r=I.createProgram();if(!r)throw new Error("Failed to create shader program");if(I.attachShader(r,n),I.attachShader(r,o),I.linkProgram(r),!I.getProgramParameter(r,I.LINK_STATUS))throw new Error("Shader program linking failed: "+I.getProgramInfoLog(r));I.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)*(T.width/2),a[4*e+3]=Math.sin(t)*(T.height/2)}const c=I.createBuffer();I.bindBuffer(I.ARRAY_BUFFER,c),I.bufferData(I.ARRAY_BUFFER,a,I.STATIC_DRAW);const l=I.getAttribLocation(r,"position");I.enableVertexAttribArray(l),I.vertexAttribPointer(l,2,I.FLOAT,!1,0,0),I.viewport(0,0,T.width,T.height),I.clearColor(0,0,0,1),I.clear(I.COLOR_BUFFER_BIT),I.drawArrays(I.LINES,0,2*i);const u=new Uint8ClampedArray(T.width*T.height*4);I.readPixels(0,0,T.width,T.height,I.RGBA,I.UNSIGNED_BYTE,u);return new ImageData(u,T.width,T.height)}catch(e){return new ImageData(1,1)}finally{I&&(I.bindBuffer(I.ARRAY_BUFFER,null),I.useProgram(null),I.viewport(0,0,I.drawingBufferWidth,I.drawingBufferHeight),I.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,T.width,T.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},N={webrtc:async function(){return new Promise((e=>{try{const t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t)return void e({supported:!1,error:"WebRTC not supported"});const n=new t({iceCandidatePoolSize:1,iceServers:[]});n.createDataChannel("");(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},o=await n.createOffer(t);await n.setLocalDescription(o);const r=o.sdp||"",i=[...new Set((r.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),a=e=>{const t=r.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},s=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...r.matchAll(n)];if(!o.length)return null;const i={};return o.forEach((t=>{const[n,o,r]=t,a=r.split("/");"rtpmap"===o?(i.mimeType=`${e}/${a[0]}`,i.clockRate=+a[1],"audio"===e&&(i.channels=+a[2]||1)):"rtcp-fb"===o?(i.feedbackSupport=i.feedbackSupport||[],i.feedbackSupport.push(r)):"fmtp"===o&&(i.sdpFmtpLine=r)})),i})).filter(Boolean),c=s("audio",a("audio")),l=s("video",a("video")),u={audio:{count:c.length,hash:d(k(c))},video:{count:l.length,hash:d(k(l))},extensionsHash:d(k(i))},m=await new Promise((e=>{const t=setTimeout((()=>{n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...u,timeout:!0})}),3e3),o=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),n.removeEventListener("icecandidate",o),n.close(),e({supported:!0,...u,candidateType:i.type||""}))};n.addEventListener("icecandidate",o)}));e({details:m,hash:d(k(m))})}catch(t){n.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}}))},mathml:async function(){return new Promise((e=>{try{h((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=[L("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>"),L("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),L("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>"),_(),...B()],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=d(k(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:d(k(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.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:d(k(t))};e({details:n,hash:d(k(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={},F={timeout:"true"},$=(e,t,n)=>{V[e]=t};function j(){return"1.5.1"}function U(e,t){var n;let o=P();if("unknown"===o.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const t=e.system.browser;if(t&&"object"==typeof t&&!Array.isArray(t)){const e=t;o={name:e.name||"unknown",version:e.version||"unknown"}}}const i=o.name.toLowerCase(),a=o.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==t?void 0:t.exclude)||[]],l=(null==t?void 0:t.stabilize)||[],u=(null==t?void 0:t.include)||[];for(const e of l){const t=r[e];if(t)for(const e of t){const t=!("browsers"in e),o=!t&&(null===(n=e.browsers)||void 0===n?void 0:n.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);if(t){const[,e,,n]=t,o=parseInt(n,10);return i===e&&s>=o}return i===e})));(t||o)&&c.push(...e.exclude)}}return function e(t,n=""){const o={};for(const[r,i]of Object.entries(t)){const t=n?`${n}.${r}`:r;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>t.startsWith(e))),n=u.some((e=>t.startsWith(e)));e&&!n||(o[r]=i)}else{const n=e(i,t);Object.keys(n).length>0&&(o[r]=n)}}return o}(e)}const W="thumbmark_visitor_id";let H=null,G=null;const z=(t,n)=>{if(t.cache_api_call&&G)return Promise.resolve(G);if(H)return H;const o=`${t.api_endpoint||e}/thumbmark`,r=function(e){const t=e.storage_property_name||W;try{return localStorage.getItem(t)}catch(e){return null}}(t),i={components:n,options:t,clientHash:d(k(n)),version:"1.5.1"};r&&(i.visitorId=r);const a=fetch(o,{method:"POST",headers:{"x-api-key":t.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((e=>(e.visitorId&&e.visitorId!==r&&function(e,t){const n=t.storage_property_name||W;try{localStorage.setItem(n,e)}catch(e){}}(e.visitorId,t),G=e,H=null,e))).catch((e=>{if(console.error("Error fetching pro data",e),H=null,"INVALID_API_KEY"===e.message)throw e;return null})),s=t.timeout||5e3,c=new Promise((e=>{setTimeout((()=>{e({info:{timed_out:!0},version:"1.5.1"})}),s)}));return H=Promise.race([a,c]),H};async function J(n){var o;const r={...t,...n},i=r.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,a={...D,...V},{elapsed:s,resolvedComponents:c}=await K(a,r);let l={},u={};if(i||r.experimental){const{elapsed:e,resolvedComponents:t}=await K(N,r);l=t,u=e}const m=r.api_key?z(r,c):null;let h=null;if(m)try{h=await m}catch(e){if(e instanceof Error&&"INVALID_API_KEY"===e.message)return{error:"Invalid API key or quota exceeded",components:{},info:{},version:"1.5.1",thumbmark:""};throw e}const f={...s,...u},p=r.performance?{elapsed:f}:{},g=U((null==h?void 0:h.components)||{},r),w={...c,...g},v=(null==h?void 0:h.info)||{uniqueness:{score:"api only"}};console.log(h);const y=null!==(o=null==h?void 0:h.thumbmark)&&void 0!==o?o:d(k(w));i&&async function(t,n,o,r={}){var i;const a=`${e}/log`,s={thumbmark:t,components:n,experimental:r,version:"1.5.1",options:o,path:null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.pathname};sessionStorage.setItem("_tmjs_l","1");try{await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}catch(e){}}(y,w,r,l).catch((()=>{}));return{...(null==h?void 0:h.visitorId)&&{visitorId:h.visitorId},thumbmark:y,components:w,info:v,version:"1.5.1",...p,...Object.keys(l).length>0&&r.experimental&&{experimental:l}}}async function K(e,n){const o={...t,...n},r=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==o?void 0:o.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>{var t,n,r,i;return(null===(t=null==o?void 0:o.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(n=null==o?void 0:o.include)||void 0===n?void 0:n.some((t=>t.startsWith(e))):0===(null===(r=null==o?void 0:o.include)||void 0===r?void 0:r.length)||(null===(i=null==o?void 0:o.include)||void 0===i?void 0:i.includes(e))})),i=r.map((([e])=>e)),a=r.map((([e,t])=>t(n))),s=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}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o})))]);var r,i})))}(a,(null==o?void 0:o.timeout)||5e3,F),c={},l={};s.forEach(((e,t)=>{var n;null!=e.value&&(l[i[t]]=e.value,c[i[t]]=null!==(n=e.elapsed)&&void 0!==n?n:0)}));const u=U(l,o);return{elapsed:c,resolvedComponents:u}}async function Y(){return(await J(n)).components}async function q(e){try{const t=await J(n);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}}async function X(){try{const{elapsed:e,resolvedComponents:t}=await K(D,n);return{...t,elapsed:e}}catch(e){throw e}}class Z{constructor(e){this.options={...t,...e}}async get(e){return J({...this.options,...e})}getVersion(){return"1.5.1"}includeComponent(e,t){$(e,t)}}export{Z as Thumbmark,U as filterThumbmarkData,q as getFingerprint,Y as getFingerprintData,X as getFingerprintPerformance,J as getThumbmark,j as getVersion,$ as includeComponent,o as setOption,r as stabilizationExclusionRules,k as stableStringify};
2
2
  //# sourceMappingURL=thumbmark.esm.js.map