1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="552ceef2-d8ac-4cea-9137-dbf58a84f3d1",e._sentryDebugIdIdentifier="sentry-dbid-552ceef2-d8ac-4cea-9137-dbf58a84f3d1")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8205],{40277:(e,t,r)=>{r.d(t,{C:()=>a,R:()=>o});var n=r(95212);let a=n.createContext(void 0);function o(){return n.useContext(a)}},48205:(e,t,r)=>{let n;r.d(t,{w:()=>O});var a=r(95212);let o=["webgl2","webgl","experimental-webgl"];function i(e){if(null!=e&&"string"==typeof e)return e}function l(e){let t=e.getExtension("WEBGL_debug_renderer_info");return t?{webGLVendor:i(e.getParameter(t.UNMASKED_VENDOR_WEBGL)),webGLRenderer:i(e.getParameter(t.UNMASKED_RENDERER_WEBGL))}:{webGLVendor:i(e.getParameter(e.VENDOR)),webGLRenderer:i(e.getParameter(e.RENDERER))}}function s(e){for(let t of o){let r=function(e,t){switch(t){case"webgl2":return e.getContext("webgl2");case"webgl":return e.getContext("webgl");case"experimental-webgl":return e.getContext("experimental-webgl");default:return null}}(e,t);if(null!==r)return r}return null}let c=async e=>{try{var t;return t=await crypto.subtle.digest("SHA-256",e),btoa(String.fromCharCode(...Array.from(new Uint8Array(t)))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}catch{return}},u=async e=>c(new TextEncoder().encode(e)),d=async e=>{let t=Array.from(new Set(e.filter(Boolean).map(e=>e.trim().toLowerCase()))).sort(),r=t.join("\n");return{hash:await u(r),count:t.length}};function m(e){e.font='18px "Arial", "Helvetica Neue", sans-serif',e.fillStyle="#e91e63",e.fillText("WorkOS Radar \uD83D\uDC69â\uD83D\uDCBB 0xA9f3",2,20),e.globalCompositeOperation="multiply",e.fillStyle="rgba(0, 120, 255, 0.6)",e.beginPath(),e.arc(60,40,25,0,2*Math.PI),e.fill(),e.fillStyle="rgba(255, 200, 0, 0.6)",e.fillRect(80,15,50,35);let t=e.createLinearGradient(150,0,280,60);t.addColorStop(0,"#ff6f00"),t.addColorStop(1,"#1a237e"),e.fillStyle=t,e.fillRect(150,10,120,45)}let f=async()=>{try{if("u">typeof OffscreenCanvas)try{let e=new OffscreenCanvas(280,60),t=e.getContext("2d");if(t){m(t);let r=await e.convertToBlob({type:"image/png"}),n=await r.arrayBuffer();return await c(n)}}catch{}if("u">typeof document){let e=document.createElement("canvas");e.width=280,e.height=60;let t=e.getContext("2d");if(!t)return;m(t);let r=await new Promise(t=>e.toBlob(e=>t(e),"image/png"));if(!r)return;let n=await r.arrayBuffer();return await c(n)}return}catch{return}},p=async()=>{try{let e=new OfflineAudioContext(1,5e3,44100),t=e.createOscillator();t.type="triangle",t.frequency.setValueAtTime(1e4,e.currentTime);let r=e.createDynamicsCompressor();r.threshold.setValueAtTime(-50,e.currentTime),r.knee.setValueAtTime(40,e.currentTime),r.ratio.setValueAtTime(12,e.currentTime),r.attack.setValueAtTime(0,e.currentTime),r.release.setValueAtTime(.25,e.currentTime),t.connect(r),r.connect(e.destination),t.start(0);let n=(await e.startRendering()).getChannelData(0),a=0;for(let e=4500;e<5e3;e++)a+=Math.abs(n[e]??0);return await u(a.toString())}catch{return}};function h(e){return e instanceof Float32Array||e instanceof Int32Array?Array.from(e):e}let g=async e=>{try{let t=[e.getParameter(e.MAX_TEXTURE_SIZE),e.getParameter(e.MAX_RENDERBUFFER_SIZE),e.getParameter(e.MAX_VIEWPORT_DIMS),e.getParameter(e.MAX_VERTEX_ATTRIBS),e.getParameter(e.MAX_VARYING_VECTORS),e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),e.getParameter(e.ALIASED_LINE_WIDTH_RANGE),e.getParameter(e.ALIASED_POINT_SIZE_RANGE),e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),e.getParameter(e.SHADING_LANGUAGE_VERSION),e.getParameter(e.VERSION)].map(h),r=(e.getSupportedExtensions()??[]).sort(),n=JSON.stringify({params:t,extensions:r});return await u(n)}catch{return}},y=["Arial","Verdana","Helvetica","Tahoma","Trebuchet MS","Georgia","Garamond","Courier New","Brush Script MT","Palatino Linotype","Lucida Console","Comic Sans MS","Impact","Lucida Sans Unicode","Century Gothic","Segoe UI","Cambria","Calibri","Consolas","Menlo","Monaco","SF Pro","Roboto","Noto Sans","Ubuntu","Cantarell","DejaVu Sans"],w=async()=>
1{if(!document.body)return{fontsHash:void 0,fontsCount:0};let e=document.createElement("span");try{let t=["monospace","sans-serif","serif"];e.style.cssText="all: initial; display: inline-block; box-sizing: content-box; position: absolute; left: -9999px; top: 0; margin: 0; padding: 0; border: 0; line-height: normal; letter-spacing: normal; word-spacing: normal; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-decoration: none; vertical-align: baseline; white-space: nowrap; font-size: 72px",e.textContent="mmMwWLli10Oo#@",document.body.appendChild(e);let r=new Map;for(let n of t)e.style.fontFamily=n,r.set(n,{w:e.offsetWidth,h:e.offsetHeight});let n=[];for(let a of y)for(let o of t){e.style.fontFamily=`'${a}', ${o}`;let t=r.get(o);if(t&&(e.offsetWidth!==t.w||e.offsetHeight!==t.h)){n.push(a);break}}let{hash:a,count:o}=await d(n);return{fontsHash:a,fontsCount:o}}catch{return{fontsHash:void 0,fontsCount:0}}finally{try{e.parentNode&&e.parentNode.removeChild(e)}catch{}}},v=e=>{let t=window.matchMedia?.(e);return t?t.matches:void 0},b=async()=>{try{let e=[Math.acos(.123456789),Math.acosh(1e308),Math.asin(.123456789),Math.atanh(.5),Math.cbrt(Math.PI),Math.cbrt(13),Math.cosh(21),Math.expm1(1),Math.log1p(10),Math.log1p(.5),Math.sinh(1),Math.tan(-1e300)];return await u(e.join(","))}catch{return}},S=async()=>{try{let e=[new Intl.NumberFormat().format(123456.789),new Intl.DateTimeFormat(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric"}).format(new Date(2e3,0,1)),new Intl.ListFormat().format(["a","b","c"]),new Intl.RelativeTimeFormat().format(-1,"day"),Intl.DateTimeFormat().resolvedOptions().calendar,Intl.DateTimeFormat().resolvedOptions().numberingSystem];return await u(e.join("|"))}catch{return}},E=[/\bpptr\b/i,/__puppeteer/i,/puppeteer(?:_| )evaluation(?:_| )script/i,/ExecutionContext\._evaluate/i,/FrameManager\./i],_=async()=>new Promise(e=>{try{let t=new Worker("/workers/signals-worker.js"),r=setTimeout(()=>{try{t.terminate()}catch{}e({ok:!1,timeout:!0})},5e3);t.onmessage=n=>{clearTimeout(r),e(n.data);try{t.terminate()}catch{}},t.onerror=n=>{clearTimeout(r);try{t.terminate()}catch{}e({ok:!1,error:function(e){let t=[];"string"==typeof e.message&&e.message.length>0&&t.push(e.message),"string"==typeof e.filename&&e.filename.length>0&&t.push(`${e.filename}:${e.lineno}:${e.colno}`);let r="string"==typeof e.message?e.message:"",{error:n}=e;if(n instanceof Error&&n.message.length>0&&!r.includes(n.message))t.push(n.message);else if("string"==typeof n&&n.length>0&&!r.includes(n))t.push(n);else if(null!==n&&"object"==typeof n){let e=Reflect.get(n,"message");"string"==typeof e&&e.length>0&&!r.includes(e)&&t.push(e)}return t.length>0?t.join(" | "):"Worker script failed to load or execute (no message from browser)"}(n)})},t.postMessage({go:!0})}catch(t){e({ok:!1,error:t instanceof Error?t.message.length>0?t.message:t.name:"string"==typeof t&&t.length>0?t:"Failed to start worker"})}});function C(){let e=(()=>{try{let e=0;try{return 0}catch(t){e=(t&&t instanceof Error&&"string"==typeof t.message?t.message:"").length}let t=Function.prototype.toString.call(Array),r="string"==typeof Array.name?Array.name:"",n=r?t.split(r).join("").length:t.length;return e+n}catch{return}})(),t=(()=>{for(let e in window)if(e.startsWith("$cdc_")||e.startsWith("cdc_"))return!0;for(let e in document)if(e.startsWith("$cdc_")||e.startsWith("cdc_"))return!0;return!1})(),{ctx:r,...n}=function(){try{if("u">typeof OffscreenCanvas)try{let e=new OffscreenCanvas(256,256),t=s(e);if(t)return{...l(t),ctx:t}}catch{}if("u">typeof document){let e=document.createElement("canvas");e.width=256,e.height=256;let t=s(e);if(t)return{...l(t),ctx:t}}}catch{}return{webGLRenderer:void 0,webGLVendor:void 0,ctx:null}}(),a=(()=>{try{return window.eval.toString().length}catch{return}})();return{probes:{timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:navigator.language,hardwareConcurrency:navigator.hardwareConcurrency,webdriver:navigator.webdriver,userAgent:navigator.userAgent,appVersion:navigator.appVersion,platform:navigator.platform,screen:{width:screen.width,height:screen.height,availWidth:screen.availWi
1dth,availHeight:screen.availHeight,windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight,colorDepth:screen.colorDepth,pixelDepth:screen.pixelDepth},rangeErrorLength:e,evalStringLength:a,playwrightDetected:"__playwright__binding__"in window||"__pwInitScripts"in window,phantomDetected:"_phantom"in window||"__phantom"in window||"callPhantom"in window||"__phantomas"in window,nightmareDetected:"__nightmare"in window,seleniumDetected:t,puppeteerDetected:!1,maxTouchPoints:navigator.maxTouchPoints,deviceMemory:"deviceMemory"in navigator&&"number"==typeof navigator.deviceMemory?navigator.deviceMemory:void 0,notificationPermission:"Notification"in window?Notification.permission:void 0,devicePixelRatio:window.devicePixelRatio,pluginsLength:navigator.plugins.length,mimeTypesCount:Object.keys(navigator.mimeTypes).length,documentHidden:document.hidden,documentVisibilityState:document.visibilityState,mediaPreferences:{colorScheme:function(){let e=v("(prefers-color-scheme: dark)"),t=v("(prefers-color-scheme: light)");if(void 0!==e||void 0!==t)return e?"dark":t?"light":"no-preference"}(),reducedMotion:v("(prefers-reduced-motion: reduce)"),reducedTransparency:v("(prefers-reduced-transparency: reduce)"),contrast:function(){let e=v("(prefers-contrast: more)"),t=v("(prefers-contrast: less)"),r=v("(prefers-contrast: forced)");if(void 0!==e||void 0!==t||void 0!==r)return e?"more":t?"less":r?"forced":"no-preference"}(),colorGamut:function(){let e=v("(color-gamut: rec2020)"),t=v("(color-gamut: p3)"),r=v("(color-gamut: srgb)");if(void 0!==e||void 0!==t||void 0!==r)return e?"rec2020":t?"p3":"srgb"}(),hdr:v("(dynamic-range: high)"),forcedColors:v("(forced-colors: active)"),invertedColors:v("(inverted-colors: inverted)")},...n},glCtx:r}}async function A(e){let t,r,n=async()=>{try{let e=Object.getOwnPropertyNames(window),{hash:t,count:r}=await d(e);return{windowFeaturesHash:t,windowFeaturesCount:r}}catch{return{windowFeaturesHash:void 0,windowFeaturesCount:void 0}}},a=async()=>{try{if(!document.body)return{cssKeysHash:void 0,cssKeysCount:0};let e=document.createElement("div");document.body.appendChild(e);let t=window.getComputedStyle(e),r=Array.from(t);document.body.removeChild(e);let{hash:n,count:a}=await d(r);return{cssKeysHash:n,cssKeysCount:a}}catch{return{cssKeysHash:void 0,cssKeysCount:void 0}}},o=async()=>{try{if(!("speechSynthesis"in window))return{voicesHash:void 0,voicesLocalCount:0,voicesRemoteCount:0,voicesLanguagesCount:0};await new Promise(e=>{if(speechSynthesis.getVoices().length)return e();let t=()=>{speechSynthesis.onvoiceschanged=null};speechSynthesis.onvoiceschanged=()=>{t(),e()},setTimeout(()=>{t(),e()},500)});let e=speechSynthesis.getVoices(),t=e.filter(e=>e.localService).map(e=>e.name),r=e.filter(e=>!e.localService).map(e=>e.name),n=e.map(e=>e.lang),a=[...t,...r,...n],{hash:o}=await d(a);return{voicesHash:o,voicesLocalCount:new Set(t).size,voicesRemoteCount:new Set(r).size,voicesLanguagesCount:new Set(n).size}}catch{return{voicesHash:void 0,voicesLocalCount:void 0,voicesRemoteCount:void 0,voicesLanguagesCount:void 0}}},i=async()=>{try{let e=document.createElement("audio"),t=document.createElement("video"),r=[];for(let n of["audio/aac","audio/mpeg",'audio/ogg; codecs="vorbis"','audio/wav; codecs="1"',"audio/x-m4a",'video/mp4; codecs="avc1.42E01E"','video/webm; codecs="vp8"','video/webm; codecs="vp9"',"video/x-matroska"]){let a=e.canPlayType(n),o=t.canPlayType(n);(a||o)&&r.push(n)}let{hash:n,count:a}=await d(r);return{mediaMimeHash:n,mediaMimeCount:a}}catch{return{mediaMimeHash:void 0,mediaMimeCount:void 0}}},l=async(e,t)=>{let r={},l=e=>{Object.assign(r,e),t?.({...r})};return await Promise.all([e("windowFeatures",n()).then(l),e("cssKeys",a()).then(l),e("voices",o()).then(l),e("mediaMime",i()).then(l),e("fonts",w()).then(l)]),r},{probes:s,glCtx:c}=C(),u=Date.now(),{timings:m,timed:h}=(t={},r=async(e,r)=>{try{return await r}finally{t[e]=Date.now()-u}},{timings:t,timed:r}),y={createdAtMs:u,...s,permissionsState:"permissions"in navigator?await navigator.permissions.query({name:"notifications"}).then(e=>e.state).catch(()=>void 0):void 0};m.collectorsStarted=Date.now()-u;let v=t=>{e?.({...t,timings:{...m}})},E=(e,t)=>e.then(e=>(v(t(e)),e));v({...y});let A={ok:!1},T=E(h("worker",_()),e=>(A=e,{worker:e}));T.catch(()=>void 0);let[M,R,P,D,O,x]=await Promise.all([h("minimalSurface",l(h,e=>v({minimalSurface:e}
1))),E(h("canvasHash",f()),e=>({canvasHash:e})),E(h("audioHash",p()),e=>({audioHash:e})),E(h("mathHash",b()),e=>({mathHash:e})),E(h("intlHash",S()),e=>({intlHash:e})),c?E(h("webGLParamsHash",g(c)),e=>({webGLParamsHash:e})):Promise.resolve(void 0)]);return void 0===e&&await T,{...y,collectedAtMs:Date.now(),timings:{...m},minimalSurface:M,worker:A,canvasHash:R,audioHash:P,mathHash:D,intlHash:O,webGLParamsHash:x}}var T=r(77047),M=r(40277);function R(e){return btoa(String.fromCharCode(...new TextEncoder().encode(JSON.stringify(e))))}let P=new Set;async function D(e,t){try{let r=await fetch("/api/radar-signals",{method:"POST",body:e,headers:{"Content-Type":"application/json"},keepalive:!0,signal:t});if(!r.ok)return;let n=await r.json(),a=n?.signals_id;return"string"==typeof a?a:void 0}catch{return}}function O(e){let t=a.useRef(null),r=e?.externalFormRef??t,o=a.useRef(null),i=function(){if(n)return n;if("u"<typeof globalThis||void 0===globalThis.Document||void 0===globalThis.Element)return{snapshot:()=>({detected:!1,documentNotAvailable:!0}),restore:()=>void 0};let e=Document.prototype.querySelector,t=Document.prototype.querySelectorAll,r=Element.prototype.querySelector,a=Element.prototype.querySelectorAll,o=[],i=!1,l=()=>{i&&(i=!1,Object.defineProperty(Document.prototype,"querySelector",{value:e,configurable:!0,writable:!0}),Object.defineProperty(Document.prototype,"querySelectorAll",{value:t,configurable:!0,writable:!0}),Object.defineProperty(Element.prototype,"querySelector",{value:r,configurable:!0,writable:!0}),Object.defineProperty(Element.prototype,"querySelectorAll",{value:a,configurable:!0,writable:!0}))},s=(e,t)=>function(r){let n=(()=>{try{throw Error("__qs_pptr_probe__")}catch(e){return e instanceof Error&&"string"==typeof e.stack?e.stack:""}})(),a=E.filter(e=>e.test(n)).map(e=>e.source);if(a.length>0){var i;i={ts:Date.now(),label:t,selector:r,stack:n,patterns:a},o.push(i),l()}return e.call(this,r)};try{Object.defineProperty(Document.prototype,"querySelector",{value:s(e,"document.querySelector"),configurable:!0,writable:!0}),Object.defineProperty(Document.prototype,"querySelectorAll",{value:s(t,"document.querySelectorAll"),configurable:!0,writable:!0}),Object.defineProperty(Element.prototype,"querySelector",{value:s(r,"element.querySelector"),configurable:!0,writable:!0}),Object.defineProperty(Element.prototype,"querySelectorAll",{value:s(a,"element.querySelectorAll"),configurable:!0,writable:!0}),i=!0}catch{}return n={snapshot:()=>({detected:o.length>0,documentNotAvailable:!1}),restore:l}}(),l=a.useRef(null),s=a.useRef(!1),c=a.useRef(!1),u=a.useRef(void 0),d=a.useRef(null),m=a.useRef(!1),f=(0,T.P)(),p=(0,M.R)(),h=p?.signalsId,g=p?.signalsToken,y=a.useCallback(()=>s.current?"complete":"incomplete",[]),w=a.useCallback(e=>({...e,puppeteerDetected:i?.snapshot().detected,puppeteerDocumentNotAvailable:i?.snapshot().documentNotAvailable,submittedAtMs:Date.now(),collectionState:y()}),[y,i]),v=a.useCallback(()=>{if(void 0===h||c.current||P.has(h)||null!==d.current)return;let e=l.current??function(){try{return C().probes}catch{return null}}();if(null===e)return;let t=D(JSON.stringify({signals:R(w(e)),signals_id:h,signals_token:g}));d.current=t,t.then(e=>{d.current=null,void 0!==e&&(c.current=!0,P.add(e))})},[h,g,w]);a.useEffect(()=>{let e=!1,t=()=>{let e=l.current;null!==e&&o.current&&(o.current.value=R({...e,puppeteerDetected:i?.snapshot().detected,puppeteerDocumentNotAvailable:i?.snapshot().documentNotAvailable,collectionState:y()}))},r=r=>{!e&&(l.current={...l.current,...r},t(),m.current&&v())};return(async()=>{e||(l.current=await A(f?r:void 0),s.current=!0,t(),m.current&&v())})(),()=>{e=!0}},[y,v,i,f]),a.useEffect(()=>{if(void 0===h)return;let e=()=>{m.current&&v()};return window.addEventListener("pagehide",e),()=>window.removeEventListener("pagehide",e)},[v,h]);let b=a.useCallback(()=>{let e=l.current;o.current&&(o.current.value=R(w(null!==e?e:{}))),i?.restore()},[i,w]);return a.useEffect(()=>{let e=r.current;if(!e)return;let t=()=>b();return e.addEventListener("submit",t,{capture:!0}),()=>e.removeEventListener("submit",t,{capture:!0})},[r,b]),{formRef:r,signalsRef:o,refreshBeforeSubmit:b,beaconForOAuth:a.useCallback(async()=>
1{if(void 0!==h)return m.current=!0,v(),h;if(c.current)return u.current;if(d.current)return d.current;let e=l.current;if(null===e)return;let t=JSON.stringify({signals:R(w(e))}),r=new AbortController,n=setTimeout(()=>r.abort(),1500),a=D(t,r.signal).finally(()=>clearTimeout(n));d.current=a;let o=await a;return d.current=null,void 0!==o&&(c.current=!0,u.current=o),o},[v,h,w]),signalsId:h}}},77047:(e,t,r)=>{r.d(t,{P:()=>o,w:()=>a});var n=r(95212);let a=n.createContext(!1);function o(){return n.useContext(a)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.