@magield/collectors 0.6.1 → 0.8.2

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.
Files changed (57) hide show
  1. package/dist/behavior/recorder.d.ts +33 -0
  2. package/dist/behavior/recorder.js +303 -1
  3. package/dist/hash.d.ts +15 -0
  4. package/dist/hash.js +27 -1
  5. package/dist/index.d.ts +7 -0
  6. package/dist/index.js +7 -1
  7. package/dist/native.d.ts +39 -0
  8. package/dist/native.js +142 -1
  9. package/dist/registry.d.ts +57 -0
  10. package/dist/registry.js +108 -1
  11. package/dist/run.d.ts +10 -0
  12. package/dist/run.js +128 -1
  13. package/dist/signals/adblock.d.ts +2 -0
  14. package/dist/signals/adblock.js +135 -1
  15. package/dist/signals/apps.d.ts +2 -0
  16. package/dist/signals/apps.js +191 -1
  17. package/dist/signals/audio.d.ts +16 -0
  18. package/dist/signals/audio.js +63 -1
  19. package/dist/signals/automation.d.ts +2 -0
  20. package/dist/signals/automation.js +346 -1
  21. package/dist/signals/behavior.d.ts +17 -0
  22. package/dist/signals/behavior.js +31 -1
  23. package/dist/signals/capabilities.d.ts +2 -0
  24. package/dist/signals/capabilities.js +235 -1
  25. package/dist/signals/devices.d.ts +2 -0
  26. package/dist/signals/devices.js +119 -1
  27. package/dist/signals/display.d.ts +2 -0
  28. package/dist/signals/display.js +101 -1
  29. package/dist/signals/errors.d.ts +2 -0
  30. package/dist/signals/errors.js +84 -1
  31. package/dist/signals/features.d.ts +2 -0
  32. package/dist/signals/features.js +951 -1
  33. package/dist/signals/fonts.d.ts +2 -0
  34. package/dist/signals/fonts.js +128 -1
  35. package/dist/signals/integrity.d.ts +2 -0
  36. package/dist/signals/integrity.js +216 -1
  37. package/dist/signals/math.d.ts +2 -0
  38. package/dist/signals/math.js +43 -1
  39. package/dist/signals/navigator.d.ts +10 -0
  40. package/dist/signals/navigator.js +81 -1
  41. package/dist/signals/pointer.d.ts +2 -0
  42. package/dist/signals/pointer.js +93 -1
  43. package/dist/signals/render.d.ts +12 -0
  44. package/dist/signals/render.js +214 -1
  45. package/dist/signals/screen.d.ts +9 -0
  46. package/dist/signals/screen.js +80 -1
  47. package/dist/signals/storage.d.ts +33 -0
  48. package/dist/signals/storage.js +100 -1
  49. package/dist/signals/timezone.d.ts +9 -0
  50. package/dist/signals/timezone.js +63 -1
  51. package/dist/signals/webrtc.d.ts +2 -0
  52. package/dist/signals/webrtc.js +168 -1
  53. package/dist/stable-core.d.ts +128 -0
  54. package/dist/stable-core.js +187 -1
  55. package/dist/types.d.ts +54 -0
  56. package/dist/types.js +15 -1
  57. package/package.json +2 -1
@@ -1 +1,135 @@
1
- function m(T,U,h,u,I){const L={T:0x2ab};return b(u- -L.T,h);}(function(T,U){const a={T:0x177,U:0x149,h:'7Xdd',u:0x171,I:0x17a,i:0x557,R:0x599,Z:0x571,O:0x55e,E:'vf*R',z:0x4ba,p:0x50b,v:0x4f2,C0:0x4fa,C1:'a&t&',C2:0x15a,C3:0x195,C4:'d^DW',C5:0x1ba,C6:0x17e,C7:0x3ec,C8:0x3fe,C9:'Y7[K',CC:0x3ab,CD:0x406,CF:0x5a0,Cb:0x562,CT:0x5ab,CU:0x52c,Ch:'Qag]',Cu:0x509,CI:0x555,Ci:0x50b,CR:0x53f,CZ:'2cOQ',CO:0x418,CE:0x3cf,Cz:0x3c2,Cp:0x414,Cv:'L60S',CK:0x4db,CY:0x51c,CA:0x4f4,CX:0x51c,CG:'Mj6x',Cr:0x40a,Cn:0x426,Cg:0x407,Cq:0x41a,Ck:0x350,Ce:0x33b,Cy:0x32c,Cs:0x392,CM:'An(3'},N={T:0x254},P={T:0x35e},w={T:0x24f},c={T:0x3af},S={T:0x1d6};function A(T,U,h,u,I){return b(U-S.T,I);}const h=T();function Y(T,U,h,u,I){return b(U-c.T,I);}function G(T,U,h,u,I){return b(U-w.T,h);}function K(T,U,h,u,I){return b(I- -P.T,h);}function X(T,U,h,u,I){return b(U-N.T,I);}while(!![]){try{const u=parseInt(K(-a.T,-a.U,a.h,-a.u,-a.I))/(-0x1124*0x1+-0x1fc1+0x30e6)+parseInt(Y(a.i,a.R,a.Z,a.O,a.E))/(-0x458+-0x243+-0x69d*-0x1)+-parseInt(Y(a.z,a.p,a.v,a.C0,a.C1))/(0x1429+0x109*-0x1f+0xbf1)*(-parseInt(K(-a.C2,-a.C3,a.C4,-a.C5,-a.C6))/(-0x863+0x1192+-0x92b))+-parseInt(G(a.C7,a.C8,a.C9,a.CC,a.CD))/(-0x1f04+0xc88+0x1281)+-parseInt(Y(a.CF,a.Cb,a.CT,a.CU,a.Ch))/(-0x80e+0x18eb*0x1+-0x10d7)*(parseInt(Y(a.Cu,a.CI,a.Ci,a.CR,a.CZ))/(0x1*-0x437+0xc5*-0xa+0xbf0))+parseInt(X(a.CO,a.CE,a.Cz,a.Cp,a.Cv))/(0x81a+-0x61f+-0x1f3)*(parseInt(Y(a.CK,a.CY,a.CA,a.CX,a.CG))/(0xd9d+0x1*-0x1170+0x3dc))+-parseInt(X(a.Cr,a.Cn,a.Cg,a.Cq,a.C4))/(-0xfd6+-0x1c1c+0x2bfc)*(-parseInt(A(a.Ck,a.Ce,a.Cy,a.Cs,a.CM))/(0x1*-0x161+0xcd8+0x4*-0x2db));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,0x494f3*-0x1+0x18ced*0x4+0x1*0x1d367));const D=(function(){let T=!![];return function(U,h){const C1={T:0x139,U:0x15d,h:'q4Hv',u:0x140,I:0x120},u=T?function(){const C0={T:0x327};function r(T,U,h,u,I){return b(U- -C0.T,h);}if(h){const I=h[r(-C1.T,-C1.U,C1.h,-C1.u,-C1.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const CD={T:0x165,U:0x121,h:0x118,u:'HbZo',I:0x116,i:'vf*R',R:0x7a,Z:0xa6,O:0xa5,E:0x9c,z:'UK#o',p:0x7d,v:0x87,CF:0xf2,Cb:0xb7,CT:0x26e,CU:0x247,Ch:'slWV',Cu:0x2aa,CI:0x25e,Ci:'sSDl',CR:0x84,CZ:0x1,CO:0x51,CE:0x4a,Cz:0x188,Cp:0x132,Cv:0x178,CK:'&hxr',CY:0x4bb,CA:0x4ea,CX:0x49e,CG:'Vexg',Cr:0x4d2,Cn:0x10e,Cg:0x65,Cq:0x91,Ck:0xba,Ce:0x100,Cy:0x13f,Cs:0x12e,CM:'d^DW',Cm:0x18e,CB:0x4e4,Cj:0x4f6,Cx:0x52e,Cd:'F1E^',CQ:0x4cf,Co:'pzZq',Cf:0xbb,Ct:0xbc,CV:0x8c,CW:0x81,Cl:0x534,CJ:0x584,CH:0x4f7,CL:'ZrGU',CS:0x51d,Cc:0x2be,Cw:0x26b,CP:'STT4',CN:0x290,Ca:0x298,D0:0x140,D1:0x123,D2:0x152,D3:'%VIF',D4:0xe7,D5:0x106,D6:0xc5,D7:0x104,D8:'q4Hv',D9:0xe3,DC:0x99,DD:0x46,DF:'zsl2',Db:0xaa,DT:'ZrGU',DU:0x12d,Dh:0x134,Du:0x183,DI:0x12d,Di:0x559,DR:0x548,DZ:0x574,DO:0x501,DE:0x551,Dz:'UK#o',Dp:0x4d6},CC={T:0x208},C9={T:0x119},C8={T:0x368},C6={T:0x28b},C5={T:0x279};function e(T,U,h,u,I){return b(h- -C5.T,T);}function n(T,U,h,u,I){return b(U- -C6.T,u);}const U={};U[n(-CD.T,-CD.U,-CD.h,CD.u,-CD.I)]=function(u,I){return u!==I;};function q(T,U,h,u,I){return b(T-C8.T,u);}U[g(CD.i,-CD.R,-CD.Z,-CD.O,-CD.E)]=g(CD.z,-CD.p,-CD.v,-CD.CF,-CD.Cb)+k(CD.CT,CD.CU,CD.Ch,CD.Cu,CD.CI)+'+$';function k(T,U,h,u,I){return b(T-C9.T,h);}function g(T,U,h,u,I){return b(I- -CC.T,T);}const h=U;if(h[g(CD.Ci,-CD.CR,CD.CZ,-CD.CO,-CD.CE)](C[n(-CD.Cz,-CD.Cp,-CD.Cv,CD.CK,-CD.Cp)]()[q(CD.CY,CD.CA,CD.CX,CD.CG,CD.Cr)+g(CD.CK,-CD.Cn,-CD.Cg,-CD.Cq,-CD.Ck)]()[n(-CD.Ce,-CD.Cy,-CD.Cs,CD.CM,-CD.Cm)+'Of']('\x0a'),-(0x1*-0x26ef+-0x2057*0x1+-0x1*-0x4747)))return;return C[q(CD.CB,CD.Cj,CD.Cx,CD.Cd,CD.CQ)+e(CD.Co,-CD.Cf,-CD.Ct,-CD.CV,-CD.CW)]()[q(CD.Cl,CD.CJ,CD.CH,CD.CL,CD.CS)+'h'](h[k(CD.Cc,CD.Cw,CD.CP,CD.CN,CD.Ca)])[n(-CD.D0,-CD.D1,-CD.D2,CD.D3,-CD.D4)+n(-CD.D5,-CD.D6,-CD.D7,CD.D8,-CD.D9)]()[n(-CD.Z,-CD.DC,-CD.DD,CD.DF,-CD.Db)+e(CD.DT,-CD.DU,-CD.Dh,-CD.Du,-CD.DI)+'r'](C)[q(CD.Di,CD.DR,CD.Cx,CD.Cd,CD.DZ)+'h'](h[q(CD.DO,CD.DE,CD.CQ,CD.Dz,CD.Dp)]);});C();const BAIT_CLASSES=[y(0xa1,0xe0,0xe2,0xcc,'STT4')+y(0xfc,0x111,0x13c,0xef,'pzZq'),y(0xf8,0x144,0x107,0x114,'Qag]')+'x',M(0x53,0x57,0x6,'AvN0',0x1)+M(0x10,0x14,0x24,'7Xdd',0x16)+'0',M(0x7e,0xc8,0xad,'zsl2',0x63)+'ad',B(0x430,0x3aa,0x3dd,0x3e0,'w%&y')+M(0x6e,0x79,0x52,'a&t&',0x9c)+y(0x12b,0x145,0x10b,0x10c,'Mj6x')+'nt'];function s(T,U,h,u,I){const CF={T:0x279};return b(u-CF.T,U);}function y(T,U,h,u,I){const Cb={T:0x72};return b(h- -Cb.T,I);}function b(C,D){C=C-(0xe2d*0x2+-0x59*0x6d+0xacf);const T=F();let U=T[C];if(b['tzBgRD']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return 0x83e+0x19f7+-0x2235;})['indexOf']('\x0a')!==-(0x157c+-0x1*-0x9c7+0x1*-0x1f42);for(let v=0x7cc*0x3+0x20e*0x1+0xcb9*-0x2,K,Y,A=0x1e4f*0x1+0xb*0x332+-0x4175;Y=R['charAt'](A++);~Y&&(K=v%(0x642+0x13e0+0x1a1e*-0x1)?K*(0x1b5e+-0x1b82*0x1+0x32*0x2)+Y:Y,v++%(-0x386+0x11c6+-0x71e*0x2))?O+=p||z['charCodeAt'](A+(0x235b+0x20df+-0x4430))-(-0x30*0xc5+0x1fa9+0x551)!==0x8d3+-0x11*0x152+0x13d*0xb?String['fromCharCode'](0xa03+0x781+-0x1085&K>>(-(-0x14c7+-0xbb7*0x1+-0x41*-0x80)*v&0x562*0x4+-0x1*0x17b+-0x1407)):v:0x541*0x7+-0x7eb*-0x1+0x1659*-0x2){Y=Z['indexOf'](Y);}for(let X=-0x3*0x125+0x1*-0x1a35+0x1da4,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](-0x1*0x49b+0x3b8+0x3*0x51))['slice'](-(-0x1e21+-0x18b1+-0xdb5*-0x4));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x136d*-0x2+0x18a5*0x1+0xe35,z,p='';R=h(R);let v;for(v=0x5*-0x20b+0xe*-0x239+0x2955;v<-0x18a0+0x2511+-0xb71*0x1;v++){O[v]=v;}for(v=-0x2017+0x3c2+0x1*0x1c55;v<-0x6f8+0x5*-0x581+0x237d;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x1b1e+0x26d8+-0x40f6),z=O[v],O[v]=O[E],O[E]=z;}v=-0x251f+0x3d*-0x1f+-0x9*-0x4f2,E=0x23d0+0x3*0x9b3+0x3*-0x15a3;for(let K=0xc9f+0x3*0x3ab+-0x17a0;K<R['length'];K++){v=(v+(0x1*-0x265+0x2625+-0x23bf))%(-0x25c8+0x1b37+0xb91),E=(E+O[v])%(0x25f5+-0x8e4+-0x1c11),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(0x1063+0x161a+0x7*-0x55b)]);}return p;};b['xoqbzw']=i,b['DuYSxn']={},b['tzBgRD']=!![];}const u=T[-0x2168+-0x1*-0x3e+0x212a];b['tPNcrA']!==u&&(b['DuYSxn']={},b['tPNcrA']=u);const I=b['DuYSxn'][C];if(I===undefined){if(b['CIqtnV']===undefined){const R=function(Z){this['MNMwST']=Z,this['uZBzJl']=[0x1*-0x8a9+-0x1*0x5cf+0xe79,0x2*-0xed2+-0xd00*0x1+-0x2aa4*-0x1,-0x5*0x64b+-0x17b4+0x372b],this['xcwkAY']=function(){return'newState';},this['bdrrNw']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['KsJUZn']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['zqTQkZ']=function(){const Z=new RegExp(this['bdrrNw']+this['KsJUZn']),O=Z['test'](this['xcwkAY']['toString']())?--this['uZBzJl'][0x11f0+-0x9*-0x1b+-0x12e2]:--this['uZBzJl'][-0x13b3+0x23da+-0x1027];return this['YSVihd'](O);},R['prototype']['YSVihd']=function(Z){if(!Boolean(~Z))return Z;return this['EpcWpp'](this['MNMwST']);},R['prototype']['EpcWpp']=function(Z){for(let O=0x24f2*0x1+-0x1997+-0xb5b,E=this['uZBzJl']['length'];O<E;O++){this['uZBzJl']['push'](Math['round'](Math['random']())),E=this['uZBzJl']['length'];}return Z(this['uZBzJl'][-0x2c4+0x1c52+-0x198e]);},(''+function(){return-0x365+0x1b0e*-0x1+0x1e73;})['indexOf']('\x0a')===-(0x283*-0x4+0x1*0xad9+-0xcc*0x1)&&new R(b)['zqTQkZ'](),b['CIqtnV']=!![];}U=b['xoqbzw'](U,D),b['DuYSxn'][C]=U;}else U=I;return U;}const BAIT_IDS=[B(0x387,0x380,0x37d,0x39f,'Y7[K')+m(-0x13b,-0x145,'2cOQ',-0x134,-0x15f)+'er',y(0x153,0x1a4,0x157,0x136,'UK#o')+M(-0x19,-0x6,-0x8,'KpLH',-0x3c),m(-0x17c,-0x109,'Jkuo',-0x161,-0x11b)+M(0x69,0x9a,0x88,'d^DW',0x92)+B(0x34c,0x332,0x379,0x35e,'Y[sJ')+'e'];function F(){const CM=['W6qur1rl','WODnu0xdQG','tZ3dJSkaW6W','pqKBWPKL','j8kltCkWWORcMu7cNCkngam','WOlcJw5sra','W4pdRCowWRTt','WRdcTXfktW','CmobW5TpBa','W7nEtCk4fa','gCoIaqSZ','W47cLL8Ipa','WOzabblcUq','W6ycnXaK','ACokbKNdOq','iCoyW6C','W4CjWRzdWRq','W4LBW4H6sG','WQddSCkmW5Ce','W5qCW4NdGLC','vWflWQfb','hmolW4BcVCoW','zmo7zG','q3ynWOLp','W7WPWP1D','oSoFgYZcLq','z8oobCoLW58','W5HqcHet','WRbrqvhdMa','W4tdHCkqWRbt','rCoVzmoFWOy','W65rW6fEvW','pCkxW6RcUCkd','W4xdQmkm','pCk2W67dNKS','W7BdVSkCW4eA','WQFcVNnlyG','sN88kmo9','emomW5TGxW','W6JdSmkaW4e','bCklW4pdH2G','WQ1VC3pdTryMW44Pea','h8oQWOldGgW','W5e4WRX0WPu','W4pdTmkDWRHl','WOvHbq/cTG','WRrLW6q','W4WvWQ7cSCkS','WRaCW5tcP3ScWQutW7ddIa','BZ9PWPi','WOrbW5xcLae+W7NdOhSBWOjNWP4','WQ7dK8kTW7H0','dSo+W7FcMmo0','CmksWRdcJYe','mCooW7BdVbOWFmkeWPjq','WRNdG8kQW5m','ymoCWOxcHXC5Fu03xcxcRmkL','hghdN8oxWRC','c2tdGmox','WPfKaaJcRq','xSoNWORdRmoLbmojnmokW6ZdG8ky','W44dWQNcVmk3','ht9AW4JdMq','ouKt','Ad9R','kbbTW7VdHa','WRRcL8kEjuS','ESo8dSoOW5C','W4OzWRJdP8oX','dCoucZ1S','CCksWQNcOsm','W5j+WPhcO3W4W7Siq8oC','W50sWR4RWPK','bCk8W5G','W43cOmk4uYO','omoqvYhcMq','WOzEweRdUW','dCkIW4/cTmkP','WRzbkrtcMG','W7jsW6zFuq','WOzquL0','vCodCNldVa','W7RdVbOswG','vv7dQ3hcJq','W5K4yg5N','W5iWamonW4NdRvlcKfvlW6vKWRa','pmoQWPVdJa','WOWuWQv3WPNcRM8','W5tcOSkKrtO','CSoHu0JcSq','W5qCWOBdJvC','WOvBvSkEWO8','hqnCW47dIq','WRejBmkhWP4nCmoXW69Qu3i','zCkoW5ZdTMXGla','W4WbWRZcUmkT','z8oUwCoVW48','fSoiWP7dGg8','W5NdHmoQW6TJ','W5rVx8k+WR7cTWm','WOaSWOFdUwK','tSofiNVdVq','uGvAW5ZcHG','tdZcH8klW6LRdKVdTKuR','mCodW7JcKSoq','W7zRWONdSve','W4nFymk+nW','twvwdcK','W6Gyjc/dPa','asZcSYNdLatdJL7dRKNdN8kc','g8oLWPJdJhe','WRa9W6BdUeS','WRtcQLjwbW','W4VdRmk2W7aq','WQZdS8k1W552','W4a8vKZdQ8oOWPSKaJNdK05+','uLO2DSkE','WQpcOerrxG','vXr2WOLp','zCkdW77dO2W','W7ncW6rzxq','c8kJW6BcSCky','F0f9mIm','WRX2W7bSW5e','WOzmwuJdQW','W6FdUmkmW652','W4xcVSk5','WOLQu8kFWOq','WPeIW5JdRM0','FCougW','WPBdKmkRW5P2','nCoqW6pcLCol','W4WxhGRcTq','WQJdHSkPW551','Ffy4WPvS','mmkbWPNdKe8','pCklWQmZfG','WPneuGu','WRTsFraW','WPzTbaS','DSoteSoT','h8osbG4Q','jmk+W7dcJ8kO','oSkPcCk/W5FdSCoXEmoIB2NcLG','WQiGW63dO2a','WPDAqMxdQG','ve7dT2hcJq','aarVW5NdIq','W4vuBmkHhq','w2a/jmoN','WQNcOurhwa','W6i4WQP4WQe','WRejeSo3W5TMACoV','BSozxLhcRW','WOj9eHm','WPCOW7RdR3O','fYL2EmkW','WPr4W4ybW4G','W6JcHmkaAW','zhpdTg3cPW','WRvchbmAWRfRW5PzW7JdSxaw','wxRdQ2ZdMW','W4BdGKqUiq','W6vdW68xaW','WRtcQHfotW','mgbcWQfMWRiBW7y','WRmoWRiEbSk3WPisqCkdWRxcVmkz','W7CAw0va','W61sW6LkrG','fmo/W4ZcHdO','W7iIkIldRW','W5pdSSkEWOTZ','ySktWRFcRdO','zmoqFKpcTq','oCo8z0dcUCkpDq','vvaeCmkp'];F=function(){return CM;};return F();}function B(T,U,h,u,I){const CT={T:0x20f};return b(u-CT.T,I);}export const adblockCollector={'id':y(0x118,0x1b4,0x16d,0x1c5,'YlkY')+'ck','wave':M(-0x17,-0x2e,-0x68,'dbiH',0xb),'optional':!![],async 'collect'({document:T,window:U}){const Cp={T:0x151,U:0x1a3,h:0x130,u:0x193,I:'1g@f',i:0x1d9,R:0x1f4,Z:0x206,O:'&hxr',E:0x22b,z:0x167,p:0x198,v:0x165,Cv:0x115,CK:'Tqw4',CY:0x260,CA:0x20a,CX:0x256,CG:'Vcvp',Cr:0x26f,Cn:0x11f,Cg:0xea,Cq:0x15d,Ck:0x116,Ce:'AvN0',Cy:0x20c,Cs:0x23f,CM:0x241,Cm:'zsl2',CB:0x1e6,Cj:0xb4,Cx:0x104,Cd:0x9f,CQ:'C%2u',Co:0x6c,Cf:0x233,Ct:0x1fb,CV:0x246,CW:'KpLH',Cl:0x246,CJ:0x1a8,CH:0x19a,CL:0x154,CS:0x1b7,Cc:'sSDl',Cw:0x204,CP:0x1f8,CN:'Tqw4',Ca:0x210,D0:0x191,D1:0x22d,D2:0x1de,D3:'Dtxz',D4:0x211,D5:0xba,D6:0x7d,D7:0xe2,D8:'ZrGU',D9:0xe1,DC:0x2d,DD:0x2e,DF:0x61,Db:0x40,DT:0x14,DU:0x44,Dh:0x13,Du:'vf*R',DI:0x181,Di:0x12e,DR:0x184,DZ:0x1c1,DO:'Vexg',DE:0x1b4,Dz:0x248,Dp:0x1f3,Dv:'dbiH',DK:0x1d4,DY:0x194,DA:0x156,DX:0x1b3,DG:0x1d1,Dr:0x134,Dn:0x16f,Dg:0xe3,Dq:0x15b,Dk:'OcXV',De:0x1a,Dy:0xf,Ds:0x50,DM:'KP]G',Dm:0x9,DB:0xaa,Dj:0xb1,Dx:0xd9,Dd:0x5c,DQ:0x14d,Do:0x188,Df:0x183,Dt:0x1a4,DV:0x26f,DW:0x279,Dl:0x255,DJ:'HbZo',DH:0x293,DL:0x97,DS:0xb7,Dc:'UK#o',Dw:0x12c,DP:0x193,DN:0x1bd,Da:0x1a0,F0:0x160,F1:'D4fY',F2:0x109,F3:0xd4,F4:0x148,F5:'Qag]',F6:0x225,F7:0x1ff,F8:0x1f2,F9:'%n$w',FC:0x26b,FD:0x22,FF:0x23,Fb:0x18,FT:'btxf',FU:0x3f,Fh:0x280,Fu:0x257,FI:'btxf',Fi:0x240,FR:0x62,FZ:0x98,FO:0x2b,FE:'fbEj',Fz:0x40,Fp:0x27c,Fv:0x26c,FK:0x297,FY:'%VIF',FA:0x24f,FX:0x222,FG:0x23e,Fr:'PjP[',Fn:0x208,Fg:0x53,Fq:0x83,Fk:0x28,Fe:'Y7[K',Fy:0x45,Fs:0x187,FM:0x140,Fm:0x157,FB:'!F$M',Fj:0x1a7,Fx:0x1ce,Fd:0x247,FQ:0x227,Fo:0x1f6,Ff:'KP]G',Ft:0x226,FV:0x94,FW:0x8c,Fl:0x8a,FJ:'fbEj',FH:0xc7,FL:0x17c,FS:0x1ca,Fc:0x13c,Fw:'7Xdd',FP:0x16e,FN:0x134,Fa:0x124,b0:'!F$M',b1:0x1b9,b2:0x1a4,b3:0x1ae,b4:'Y[sJ',b5:0x1f7,b6:0x72,b7:0x1f,b8:0x31,b9:'L60S',bC:0x3b,bD:0x1ff,bF:0x1bc,bb:0x1e4,bT:0x1b0,bU:0x24d,bh:0x28d,bu:0x237,bI:'Qag]',bi:0x26b,bR:0x2ca,bZ:0x247,bO:0x2c6,bE:0x224,bz:0x228,bp:'q4Hv',bv:0x1ce,bK:0x274,bY:0x220,bA:0x237,bX:'L60S',bG:0x282,br:0x20d,bn:0x218,bg:0x1d0,bq:'UK#o',bk:0x225,be:0x117,by:0xda,bs:0x16a,bM:0x114,bm:'Y[sJ',bB:0x15f,bj:0x155,bx:0x1a9,bd:0x143,bQ:0x123,bo:0x15a,bf:'UK#o',bt:0x82,bV:0x7b,bW:0x7,bl:0x14,bJ:'!F$M',bH:0x17,bL:0x80,bS:0x41,bc:0xa,bw:'pzZq',bP:0x7a,bN:0x253,ba:0x288,T0:0x272,T1:'dbiH',T2:0x270,T3:0xc,T4:0x21,T5:0x9,T6:0x1f9,T7:0x22c,T8:'UK#o',T9:0x247,TC:0x1b8,TD:0x1b2,TF:'Ax(^',Tb:0x48,TT:0x27,TU:0x55,Th:0x20,Tu:0x4e,TI:0x6b,Ti:0x88,TR:'GexR',TZ:0x1d,TO:0x286,TE:0x25a,Tz:0x2bd,Tp:0x256,Tv:0x95,TK:0xde,TY:0x5f,TA:'Vcvp',TX:0xda,TG:0x9d,Tr:0x62,Tn:0xde,Tg:'Vcvp',Tq:0x7b,Tk:0x4e,Te:0x3d,Ty:0x10,Ts:0x14c,TM:0x12d,Tm:0x18c,TB:0x76,Tj:0xb9,Tx:0x8e,Td:0x74,TQ:0x70,To:0x8d,Tf:0x3e,Tt:'KP]G',TV:0x89,TW:0x21b,Tl:0x1e3,TJ:0x223,TH:0x1df,TL:0x1a1,TS:'Ax(^',Tc:0x36,Tw:0x8b,TP:'GexR',TN:0x7f,Ta:0x271,U0:0x252,U1:'s]k@',U2:0x1fd,U3:0x19e,U4:0x1db,U5:0x194,U6:0x16a,U7:'sSDl',U8:0x153,U9:0x178,UC:0x191,UD:0x13d,UF:'ZrGU',Ub:0x21c,UT:0x222,UU:0x218,Uh:'slWV',Uu:0x128,UI:0x101,Ui:0xfe,UR:0x16b,UZ:'zsl2',UO:0x250,UE:0x28a,Uz:0x232,Up:'Ax(^',Uv:0x1fa,UK:0x213,UY:0x1f4,UA:0x267,UX:0x1d5,UG:0xb,Ur:0x16,Un:0x2,Ug:0x196,Uq:0x1c4,Uk:0x1bf,Ue:'C%2u',Uy:0x171,Us:0xc3,UM:0x93,Um:0xf2,UB:'dbiH',Uj:0xb5,Ux:0x164,Ud:'STT4',UQ:0x8f,Uo:0xce,Uf:0xc7,Ut:'a&t&',UV:0xd5,UW:0x20f,Ul:0x226,UJ:0x225,UH:'Mj6x',UL:0x23a,US:0x2,Uc:0x47,Uw:'sSDl',UP:0x20,UN:0x5f,Ua:0x7d,h0:0x1c,h1:0x8e,h2:0xd6,h3:0x64,h4:'ZrGU',h5:0x96,h6:0x2c,h7:0x3c,h8:'0iIQ',h9:0x1,hC:0x282,hD:0x27d,hF:0x254,hb:0x291,hT:0x17b,hU:0x1ae,hh:0x155,hu:0x14e,hI:0x156,hi:0x147,hR:'dbiH',hZ:0xa,hO:0x64,hE:0xe,hz:0x7a,hp:0x80,hv:0xc9,hK:0x2b,hY:0x15,hA:'Ax(^',hX:0x65,hG:0x53,hr:0x11,hn:0x72,hg:0x11c,hq:0x13a,hk:0x150,he:0x216,hy:0x26f,hs:0x23d,hM:'sSDl',hm:0x226,hB:0x24c,hj:0x294,hx:0x126,hd:0x139,hQ:0x13a,ho:'ZrGU',hf:0x28e,ht:0x225,hV:0x240,hW:0x212,hl:0x1fc,hJ:0x1be,hH:0x1fc,hL:'0iIQ',hS:0x1c1,hc:0x256,hw:0x1e1,hP:0x200,hN:'q4Hv',ha:0x22f,u0:0x27d,u1:0x26f,u2:0x90,u3:0x55,u4:0x2c,u5:'%VIF',u6:0x55,u7:0x143,u8:0x11c,u9:0x156,uC:'zsl2',uD:0x10b,uF:0x105,ub:'q4Hv',uT:0x205,uU:0x1cb,uh:0x1fc,uu:0x241,uI:0x10b,ui:0x10a,uR:'1g@f',uZ:0xdf,uO:0x281,uE:0x229,uz:0x2b5,up:'Dv#k',uv:0x290,uK:0x8a,uY:0x59,uA:0xc1,uX:0x49,uG:0x284,ur:0x264,un:0x2bf,ug:'2cOQ',uq:0x276,uk:0x1d9,ue:0x1d7,uy:'Qag]',us:0x21d,uM:0x273,um:'vf*R',uB:0x2a1},Cz={T:0xa9,U:0x115,h:0xf9,u:0x8},CE={T:0x91,U:0xbc,h:0x270,u:0x126},CO={T:0x1c2,U:0x1c4,h:0x346,u:0xdf},CZ={T:0x71,U:0x75,h:0x81,u:0x173},CR={T:0x18f,U:0xd1,h:0xf2,u:0xea},h={'VEziY':j(Cp.T,Cp.U,Cp.h,Cp.u,Cp.I),'HlOWx':x(-Cp.i,-Cp.R,-Cp.Z,Cp.O,-Cp.E),'oLLww':j(Cp.z,Cp.p,Cp.v,Cp.Cv,Cp.CK)+d(Cp.CY,Cp.CA,Cp.CX,Cp.CG,Cp.Cr)+j(Cp.Cn,Cp.Cg,Cp.Cq,Cp.Ck,Cp.Ce)+d(Cp.Cy,Cp.Cs,Cp.CM,Cp.Cm,Cp.CB)+Q(-Cp.Cj,-Cp.Cx,-Cp.Cd,Cp.CQ,-Cp.Co)+d(Cp.Cf,Cp.Ct,Cp.CV,Cp.CW,Cp.Cl)+j(Cp.CJ,Cp.CH,Cp.CL,Cp.CS,Cp.Cc)+d(Cp.Cw,Cp.CP,Cp.CS,Cp.CN,Cp.Ca)+x(-Cp.D0,-Cp.D1,-Cp.D2,Cp.D3,-Cp.D4)+Q(-Cp.D5,-Cp.D6,-Cp.D7,Cp.D8,-Cp.D9)+o(-Cp.DC,-Cp.DD,-Cp.DF,Cp.Cm,-Cp.Db)+o(-Cp.DT,-Cp.DU,Cp.Dh,Cp.Du,Cp.DT)+j(Cp.DI,Cp.Di,Cp.DR,Cp.DZ,Cp.DO),'daQWS':x(-Cp.DE,-Cp.Dz,-Cp.Dp,Cp.Dv,-Cp.DK)+j(Cp.DY,Cp.DA,Cp.DX,Cp.DG,Cp.Cm)+j(Cp.Dr,Cp.Dn,Cp.Dg,Cp.Dq,Cp.Dk)+o(-Cp.De,Cp.Dy,Cp.Ds,Cp.DM,Cp.Dm)+Q(-Cp.DB,-Cp.Dj,-Cp.Dx,Cp.DO,-Cp.Dd)+j(Cp.DQ,Cp.Do,Cp.Df,Cp.Dt,Cp.Dk)+x(-Cp.DV,-Cp.DW,-Cp.Dl,Cp.DJ,-Cp.DH)+Q(-Cp.D9,-Cp.DL,-Cp.DS,Cp.Dc,-Cp.Dw)+j(Cp.DP,Cp.DN,Cp.Da,Cp.F0,Cp.F1)+j(Cp.F2,Cp.F3,Cp.DS,Cp.F4,Cp.F5)+d(Cp.F6,Cp.F7,Cp.F8,Cp.F9,Cp.FC),'stfRL':o(Cp.FD,-Cp.FF,-Cp.Fb,Cp.FT,-Cp.FU)+';','lSZle':function(i,R){return i(R);},'MsXTd':function(i,R){return i===R;},'DIHoD':function(i,R){return i===R;},'iuZuu':d(Cp.Cs,Cp.Fh,Cp.Fu,Cp.FI,Cp.Fi),'KOfhQ':Q(-Cp.FR,-Cp.FZ,-Cp.FO,Cp.FE,-Cp.Fz)+d(Cp.Fp,Cp.Fv,Cp.FK,Cp.FY,Cp.FA)+x(-Cp.FX,-Cp.FG,-Cp.F8,Cp.Fr,-Cp.Fn),'AgDxh':Q(-Cp.Fg,-Cp.Fq,-Cp.Fk,Cp.Fe,-Cp.Fy)+j(Cp.F4,Cp.Fs,Cp.FM,Cp.Fm,Cp.FB)+j(Cp.Fj,Cp.DZ,Cp.Fx,Cp.T,Cp.F1),'BBDpn':d(Cp.Fd,Cp.FQ,Cp.Fo,Cp.Ff,Cp.Ft)+Q(-Cp.FV,-Cp.FW,-Cp.Fl,Cp.FJ,-Cp.FH)+j(Cp.FL,Cp.FS,Cp.Fc,Cp.FL,Cp.Fw),'QEUaS':function(i,R){return i>=R;},'gqYiH':function(i,R){return i!==R;}};function x(T,U,h,u,I){return m(T-CR.T,U-CR.U,u,h- -CR.h,I-CR.u);}const u={};function Q(T,U,h,u,I){return m(T-CZ.T,U-CZ.U,u,T-CZ.h,I-CZ.u);}let I;try{I=T[j(Cp.FP,Cp.FN,Cp.DA,Cp.Fa,Cp.b0)+x(-Cp.b1,-Cp.b2,-Cp.b3,Cp.b4,-Cp.b5)+o(-Cp.b6,-Cp.b7,Cp.b8,Cp.b9,-Cp.bC)](h[d(Cp.bD,Cp.bF,Cp.bb,Cp.CG,Cp.bT)]),I[d(Cp.bU,Cp.bh,Cp.bu,Cp.bI,Cp.bi)+d(Cp.Fh,Cp.bR,Cp.bZ,Cp.I,Cp.bO)+'te'](h[d(Cp.Fo,Cp.bE,Cp.bz,Cp.bp,Cp.bv)],h[x(-Cp.bK,-Cp.bY,-Cp.bA,Cp.bX,-Cp.bG)]),T[x(-Cp.br,-Cp.bn,-Cp.bg,Cp.bq,-Cp.bk)][j(Cp.be,Cp.by,Cp.bs,Cp.bM,Cp.bm)+j(Cp.bB,Cp.bj,Cp.bx,Cp.bM,Cp.b0)+'d'](I);const i=[];for(const Z of BAIT_CLASSES){const O=T[j(Cp.bd,Cp.bQ,Cp.bo,Cp.Dw,Cp.bf)+Q(-Cp.bt,-Cp.D5,-Cp.bV,Cp.CG,-Cp.FR)+o(-Cp.bW,-Cp.bl,-Cp.Co,Cp.bJ,-Cp.bH)](h[o(Cp.bL,Cp.bS,Cp.bc,Cp.bw,Cp.bP)]);O[d(Cp.bN,Cp.ba,Cp.T0,Cp.T1,Cp.T2)+o(-Cp.T3,Cp.T4,-Cp.T5,Cp.CQ,Cp.FD)]=Z,O[d(Cp.T6,Cp.T7,Cp.Z,Cp.T8,Cp.T9)+j(Cp.CH,Cp.bb,Cp.TC,Cp.TD,Cp.TF)+'te'](h[o(-Cp.Tb,-Cp.TT,-Cp.TU,Cp.F1,-Cp.Th)],h[o(-Cp.Tu,-Cp.TI,-Cp.Ti,Cp.TR,-Cp.TZ)]),O[d(Cp.TO,Cp.TE,Cp.Tz,Cp.CQ,Cp.Tp)+Q(-Cp.Tv,-Cp.TK,-Cp.TY,Cp.TA,-Cp.TX)]=h[Q(-Cp.TG,-Cp.Tr,-Cp.Tn,Cp.Tg,-Cp.Tq)],I[Q(-Cp.Tk,-Cp.bt,-Cp.Te,Cp.DM,-Cp.Ty)+j(Cp.Ts,Cp.TM,Cp.Tm,Cp.bs,Cp.Ce)+'d'](O),i[Q(-Cp.TB,-Cp.Tj,-Cp.Tx,Cp.b4,-Cp.Td)](O);}for(const E of BAIT_IDS){const z=T[Q(-Cp.TQ,-Cp.To,-Cp.Tf,Cp.Tt,-Cp.TV)+x(-Cp.TW,-Cp.Tl,-Cp.TJ,Cp.bX,-Cp.T7)+d(Cp.CB,Cp.TH,Cp.TL,Cp.TS,Cp.T6)](h[o(-Cp.Dy,Cp.Tc,Cp.Tw,Cp.TP,Cp.TN)]);z['id']=E,z[d(Cp.FG,Cp.Ta,Cp.U0,Cp.U1,Cp.U2)+j(Cp.U3,Cp.U4,Cp.U5,Cp.U6,Cp.U7)+'te'](h[j(Cp.U8,Cp.U9,Cp.UC,Cp.UD,Cp.UF)],h[x(-Cp.Ub,-Cp.UT,-Cp.UU,Cp.Uh,-Cp.bN)]),z[j(Cp.Uu,Cp.UI,Cp.Ui,Cp.UR,Cp.UZ)+x(-Cp.UO,-Cp.UE,-Cp.Uz,Cp.Up,-Cp.Uv)]=h[d(Cp.UK,Cp.UY,Cp.UA,Cp.b0,Cp.UX)],I[o(-Cp.UG,-Cp.Ds,-Cp.Ur,Cp.CN,Cp.Un)+x(-Cp.Ug,-Cp.Uq,-Cp.Uk,Cp.Ue,-Cp.Uy)+'d'](z),i[Q(-Cp.Us,-Cp.UM,-Cp.Um,Cp.UB,-Cp.Uj)](z);}await h[j(Cp.Ux,Cp.Cn,Cp.U3,Cp.Tm,Cp.Ud)](nextFrame,U);let R=-0x4*-0x86d+-0x15e6+-0xbce*0x1;for(const p of i){const v=h[Q(-Cp.UQ,-Cp.Uo,-Cp.Uf,Cp.Ut,-Cp.UV)](p[d(Cp.UW,Cp.Ul,Cp.UJ,Cp.UH,Cp.UL)+o(Cp.US,Cp.T5,Cp.Uc,Cp.Uw,-Cp.UP)],null)||h[Q(-Cp.UN,-Cp.Ua,-Cp.h0,Cp.T1,-Cp.Dd)](p[Q(-Cp.h1,-Cp.h2,-Cp.h3,Cp.h4,-Cp.h5)+o(-Cp.D6,-Cp.h6,-Cp.h7,Cp.h8,-Cp.h9)+'ht'],-0x907*-0x2+-0x1338+0x12a)||h[d(Cp.hC,Cp.hD,Cp.hF,Cp.h8,Cp.hb)](p[j(Cp.hT,Cp.hU,Cp.hh,Cp.U8,Cp.Fw)+j(Cp.hu,Cp.DI,Cp.hI,Cp.hi,Cp.hR)+'ht'],0x23da*0x1+0x11f9+-0x5fb*0x9)||h[o(Cp.hZ,Cp.h7,Cp.hO,Cp.FI,Cp.hE)](U[Q(-Cp.hz,-Cp.hp,-Cp.FZ,Cp.bm,-Cp.hv)+o(-Cp.hK,Cp.hY,Cp.hZ,Cp.hA,Cp.Ur)+o(-Cp.hX,-Cp.hG,-Cp.hr,Cp.Du,-Cp.hn)+'e'](p)[j(Cp.hg,Cp.hq,Cp.hk,Cp.TK,Cp.F9)+'ay'],h[x(-Cp.he,-Cp.hy,-Cp.hs,Cp.hM,-Cp.hm)]);if(v)R++;}u[h[d(Cp.hB,Cp.hj,Cp.hb,Cp.I,Cp.bE)]]=i[j(Cp.hq,Cp.hx,Cp.hd,Cp.hQ,Cp.ho)+'h'],u[h[x(-Cp.hf,-Cp.ht,-Cp.hV,Cp.FY,-Cp.hW)]]=R,u[h[d(Cp.hl,Cp.hJ,Cp.hH,Cp.hL,Cp.hS)]]=h[x(-Cp.hc,-Cp.hw,-Cp.hP,Cp.hN,-Cp.b5)](R,-0x9*0x2c8+0x2589+-0xc7f);}catch{u[h[d(Cp.ha,Cp.u0,Cp.UT,Cp.DO,Cp.u1)]]=null,u[h[o(-Cp.u2,-Cp.u3,-Cp.u4,Cp.u5,-Cp.u6)]]=null,u[h[j(Cp.hi,Cp.u7,Cp.u8,Cp.u9,Cp.uC)]]=null;}finally{try{if(h[j(Cp.uD,Cp.hx,Cp.be,Cp.uF,Cp.ub)](I,undefined)&&h[x(-Cp.uT,-Cp.uU,-Cp.uh,Cp.Cm,-Cp.uu)](I[Q(-Cp.TX,-Cp.uI,-Cp.ui,Cp.uR,-Cp.uZ)+d(Cp.uO,Cp.uE,Cp.uz,Cp.up,Cp.uv)],null))I[Q(-Cp.uK,-Cp.uY,-Cp.uA,Cp.FI,-Cp.uX)+d(Cp.uG,Cp.ur,Cp.un,Cp.ug,Cp.uq)][j(Cp.Do,Cp.uk,Cp.ue,Cp.bo,Cp.uy)+d(Cp.bi,Cp.us,Cp.uM,Cp.um,Cp.uB)+'d'](I);}catch{}}function d(T,U,h,u,I){return m(T-CO.T,U-CO.U,u,T-CO.h,I-CO.u);}function j(T,U,h,u,I){return m(T-CE.T,U-CE.U,I,T-CE.h,I-CE.u);}function o(T,U,h,u,I){return m(T-Cz.T,U-Cz.U,u,U-Cz.h,I-Cz.u);}return u;}};function M(T,U,h,u,I){const Cv={T:0x16f};return b(T- -Cv.T,u);}function nextFrame(T){const Cy={T:0x140,U:0x195,h:0x1a1,u:0x16a,I:'%VIF',i:'L60S',R:0x4c7,Z:0x4f0,O:0x4e2,E:0x52f,z:'C%2u',p:0x4e0,v:0x4fe,Cs:0x4b3,CM:0x46d,Cm:0x5b6,CB:0x574,Cj:0x568,Cx:'&hxr',Cd:0x591,CQ:0x2a,Co:0x71,Cf:0x19,Ct:0x6e},Ce={T:0x1d},Cg={T:0x3a8},Cr={T:0x30c},CG={T:0xc3,U:0xfc,h:0x148,u:0xd2,I:'1g@f'},CA={T:0x2a1},U={'YzWMU':function(h){return h();},'SzOcC':function(h,u,I){return h(u,I);}};return new Promise(h=>{const Ck={T:0x186,U:0x146,h:'pzZq',u:0x18b,I:0x140},Cn={T:0x216},CX={T:0x96};function H(T,U,h,u,I){return b(h-CA.T,U);}const u={'VPGAW':function(R){function f(T,U,h,u,I){return b(U- -CX.T,I);}return U[f(CG.T,CG.U,CG.h,CG.u,CG.I)](R);}};function W(T,U,h,u,I){return b(u-Cr.T,T);}function J(T,U,h,u,I){return b(T- -Cn.T,u);}function l(T,U,h,u,I){return b(h-Cg.T,u);}let I=![];const i=()=>{const Cq={T:0xb};function t(T,U,h,u,I){return b(T- -Cq.T,h);}if(I)return;I=!![],u[t(Ck.T,Ck.U,Ck.h,Ck.u,Ck.I)](h);};try{T[V(Cy.T,Cy.U,Cy.h,Cy.u,Cy.I)+W(Cy.i,Cy.R,Cy.Z,Cy.O,Cy.E)+W(Cy.z,Cy.p,Cy.v,Cy.Cs,Cy.CM)+l(Cy.Cm,Cy.CB,Cy.Cj,Cy.Cx,Cy.Cd)+'e'](()=>i());}catch{}function V(T,U,h,u,I){return b(u-Ce.T,I);}U[J(-Cy.CQ,-Cy.Co,Cy.Cf,Cy.I,-Cy.Ct)](setTimeout,i,0x1*-0x18cd+0x144c+0x1*0x4bd);});}
1
+ /**
2
+ * Whether content blocking is active, measured without contacting anyone.
3
+ *
4
+ * In `INVASIVE_COLLECTORS` for an operational reason rather than a privacy one.
5
+ * It is not sensitive — running an ad blocker is not personal data in any
6
+ * meaningful sense — but the conventional implementation makes outbound
7
+ * requests to advertising domains from the integrator's login page, and that
8
+ * costs them CSP violations, latency, and an SDK that looks like adware in
9
+ * anyone's network tab. That is a decision for the integrator, not a default.
10
+ *
11
+ * ## Bait, not requests
12
+ *
13
+ * SEON's SDK fetches roughly fifteen real ad-network URLs and times the
14
+ * failures. This does not. Blockers work primarily from CSS selector and
15
+ * element-name rules, so the same answer comes from creating elements that
16
+ * *look* like advertising and asking whether they survived layout:
17
+ *
18
+ * an element with a blocked class name has its height collapsed to zero
19
+ * an element with a blocked id is hidden or removed outright
20
+ *
21
+ * Nothing leaves the page. No third party learns the visitor was here, no
22
+ * request appears in the network tab, and there is nothing for a CSP to refuse.
23
+ *
24
+ * ## What the answer is worth
25
+ *
26
+ * Little on its own, and that is the honest framing. Running a blocker is
27
+ * enormously common and says nothing about intent — it is weak positive
28
+ * evidence of a *person*, if anything, since most automation runs a stock
29
+ * profile with no extensions at all.
30
+ *
31
+ * Where it earns its place is as a contradiction: a client claiming a
32
+ * fully-configured consumer browser that has no blocker, no permissions ever
33
+ * decided, no touch history and a default everything is claiming a machine
34
+ * nobody uses. This is one of those, and it is collected for that combination
35
+ * rather than for itself.
36
+ */
37
+ /**
38
+ * Class and id names blockers act on.
39
+ *
40
+ * Long-standing entries from the common filter lists rather than anything
41
+ * exotic: the goal is to be caught by an ordinary blocker in its default
42
+ * configuration, not to defeat a clever one.
43
+ */
44
+ const BAIT_CLASSES = ['ad-banner', 'adsbox', 'pub_300x250', 'text-ad', 'sponsored-content'];
45
+ const BAIT_IDS = ['ad-container', 'banner-ad', 'google_ads_frame'];
46
+ export const adblockCollector = {
47
+ id: 'adblock',
48
+ wave: 'deep',
49
+ optional: true,
50
+ async collect({ document, window }) {
51
+ const out = {};
52
+ let holder;
53
+ try {
54
+ holder = document.createElement('div');
55
+ holder.setAttribute('style', 'position:absolute;left:-9999px;top:-9999px;width:1px;height:1px');
56
+ document.body.appendChild(holder);
57
+ const baits = [];
58
+ for (const name of BAIT_CLASSES) {
59
+ const bait = document.createElement('div');
60
+ bait.className = name;
61
+ // An explicit height, so a collapse to zero is the blocker's doing
62
+ // rather than an empty element being an empty element.
63
+ bait.setAttribute('style', 'width:300px;height:250px;position:absolute;left:-9999px');
64
+ bait.innerHTML = '&nbsp;';
65
+ holder.appendChild(bait);
66
+ baits.push(bait);
67
+ }
68
+ for (const name of BAIT_IDS) {
69
+ const bait = document.createElement('div');
70
+ bait.id = name;
71
+ bait.setAttribute('style', 'width:300px;height:250px;position:absolute;left:-9999px');
72
+ bait.innerHTML = '&nbsp;';
73
+ holder.appendChild(bait);
74
+ baits.push(bait);
75
+ }
76
+ // One frame, so a blocker acting on style has run. Raced against a
77
+ // deadline because `requestAnimationFrame` never fires in a background
78
+ // tab, and a collector that waits forever there is worse than one that
79
+ // answers from an unsettled layout.
80
+ await nextFrame(window);
81
+ let blocked = 0;
82
+ for (const bait of baits) {
83
+ // Removed outright, collapsed, or hidden — the three shapes a filter
84
+ // list produces. `offsetParent` is null for `display:none` and is the
85
+ // cheapest of the three to read.
86
+ const gone = bait.parentNode === null ||
87
+ bait.offsetHeight === 0 ||
88
+ bait.clientHeight === 0 ||
89
+ window.getComputedStyle(bait).display === 'none';
90
+ if (gone)
91
+ blocked++;
92
+ }
93
+ out['adblock.baits'] = baits.length;
94
+ out['adblock.blocked'] = blocked;
95
+ // A threshold rather than "any", because one bait collapsing can be a
96
+ // stylesheet on the host page rather than a blocker. Two agreeing is a
97
+ // filter list.
98
+ out['adblock.active'] = blocked >= 2;
99
+ }
100
+ catch {
101
+ out['adblock.baits'] = null;
102
+ out['adblock.blocked'] = null;
103
+ out['adblock.active'] = null;
104
+ }
105
+ finally {
106
+ try {
107
+ if (holder !== undefined && holder.parentNode !== null)
108
+ holder.parentNode.removeChild(holder);
109
+ }
110
+ catch {
111
+ // Offscreen and hidden either way.
112
+ }
113
+ }
114
+ return out;
115
+ },
116
+ };
117
+ /** One paint, or a short deadline — whichever arrives first. */
118
+ function nextFrame(window) {
119
+ return new Promise((resolve) => {
120
+ let settled = false;
121
+ const finish = () => {
122
+ if (settled)
123
+ return;
124
+ settled = true;
125
+ resolve();
126
+ };
127
+ try {
128
+ window.requestAnimationFrame(() => finish());
129
+ }
130
+ catch {
131
+ // No rAF; the deadline below covers it.
132
+ }
133
+ setTimeout(finish, 60);
134
+ });
135
+ }
@@ -0,0 +1,2 @@
1
+ import type { Collector } from '../types.js';
2
+ export declare const appsCollector: Collector;
@@ -1 +1,191 @@
1
- function j(T,U,h,u,I){const C2={T:0x4a};return b(U-C2.T,u);}function m(T,U,h,u,I){const C3={T:0x5b};return b(u-C3.T,h);}function b(C,D){C=C-(0x111c+-0x244+0xed*-0xf);const T=F();let U=T[C];if(b['rxYiow']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return 0x11*0x15d+-0x641+-0x39*0x4c;})['indexOf']('\x0a')!==-(0x3d1+0x2*0x415+-0xe*0xdb);for(let v=0x8*-0x4b8+-0x2305*0x1+0x48c5,K,Y,A=-0x2415+-0x558+0x296d;Y=R['charAt'](A++);~Y&&(K=v%(0xca*0x10+-0x7*-0x3+-0x1*0xcb1)?K*(0x1290+0xea+-0x133a)+Y:Y,v++%(-0x25f+0x6f*0x4+-0x1*-0xa7))?O+=p||z['charCodeAt'](A+(-0x76a+0x1051*-0x1+0x17c5))-(0x1f21*-0x1+-0x1*0x1afb+0x3a26)!==0x1c41+-0x579+-0x16c8?String['fromCharCode'](-0x1653+-0x1176+0x28c8&K>>(-(0x2495+0x1ef9+-0x438c)*v&-0xd4*-0x29+-0x969+-0x1885*0x1)):v:0x1e94+-0x22b3+0x5*0xd3){Y=Z['indexOf'](Y);}for(let X=-0x9*-0x435+-0x1*0x258d+-0x4*0x14,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x1ed0+-0xe56+-0x106a))['slice'](-(0x20a3*0x1+-0xa3*0x2f+0x15a*-0x2));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=-0x1be1+-0x10ac+0x2c8d,z,p='';R=h(R);let v;for(v=0x2*0xa13+0x139a+-0xc*0x350;v<0x1ab3+0x39f+-0x1d52;v++){O[v]=v;}for(v=-0x2071+-0x213b*0x1+0x41ac;v<0x375+-0x19*0xd6+0x1271;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x299+0x1*-0x1b9a+-0x8ab*-0x3),z=O[v],O[v]=O[E],O[E]=z;}v=0x173c*-0x1+-0xd0a+0x1223*0x2,E=0x1cc+-0x2*-0xc5f+0x2b*-0x9e;for(let K=-0x12bd+-0x6d8+0x1995;K<R['length'];K++){v=(v+(0x638*0x6+0x5f1*-0x4+-0x1*0xd8b))%(-0x3*-0xa0d+-0x1d*-0x62+0x1*-0x2841),E=(E+O[v])%(-0x12f3+0x1ee0+-0xaed),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x9df+0x1ea8+0x1*-0x13c9)]);}return p;};b['IvdqkN']=i,b['mzWJbY']={},b['rxYiow']=!![];}const u=T[-0x1*0x1b7+-0xabc+0xc73];b['FjCcFf']!==u&&(b['mzWJbY']={},b['FjCcFf']=u);const I=b['mzWJbY'][C];if(I===undefined){if(b['aYnxZX']===undefined){const R=function(Z){this['sKKoRZ']=Z,this['WFALyj']=[-0x897+0x412+0x486,-0x1e1e+-0x402+-0x15*-0x1a0,-0xa57+0x26a9+-0x1c52],this['DFsThd']=function(){return'newState';},this['MmmKMs']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['CDooXX']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['aHIddK']=function(){const Z=new RegExp(this['MmmKMs']+this['CDooXX']),O=Z['test'](this['DFsThd']['toString']())?--this['WFALyj'][-0x1669*0x1+0x3b9*-0x3+0x2195*0x1]:--this['WFALyj'][-0x105+0x3*-0x6ec+0x1fb*0xb];return this['JehtgT'](O);},R['prototype']['JehtgT']=function(Z){if(!Boolean(~Z))return Z;return this['uSKWTZ'](this['sKKoRZ']);},R['prototype']['uSKWTZ']=function(Z){for(let O=0x10fc+0x2603+0x43b*-0xd,E=this['WFALyj']['length'];O<E;O++){this['WFALyj']['push'](Math['round'](Math['random']())),E=this['WFALyj']['length'];}return Z(this['WFALyj'][0xce4+-0x651+-0x693]);},(''+function(){return-0x1ac*-0x1+-0x1a6c+-0x2c0*-0x9;})['indexOf']('\x0a')===-(-0xe0c*-0x2+-0x13*-0x1e1+-0x3fca)&&new R(b)['aHIddK'](),b['aYnxZX']=!![];}U=b['IvdqkN'](U,D),b['mzWJbY'][C]=U;}else U=I;return U;}(function(T,U){const C9={T:0x261,U:0x2ed,h:0x26e,u:'lCd@',I:0x29a,i:0x23b,R:0x23a,Z:0x197,O:'aT6B',E:0x1e7,z:0x21,p:0x8c,v:'jD5r',K:0x50,CC:0xa,CD:0x2c8,CF:0x23e,Cb:0x25f,CT:']ce0',CU:0x26d,Ch:0x1f7,Cu:0x255,CI:'$Eay',Ci:0x234,CR:0x1f5,CZ:0x5e,CO:0x71,CE:0x6f,Cz:0xb3,Cp:'cCmO',Cv:0x60,CK:0x9a,CY:0xaa,CA:0x5e,CX:'1or6',CG:0xae,Cr:0x9b,Cn:0x8d,Cg:0xe1,Cq:'1or6',Ck:0x12,Ce:0x46,Cy:'36Yh',Cs:0x13,CM:0x45,Cm:0x1e3,CB:0x227,Cj:'h*jZ',Cx:0x1dd,Cd:0x1e6},C8={T:0x398},C7={T:0x396},C6={T:0x188},C5={T:0x7f},C4={T:0x203};function G(T,U,h,u,I){return b(h- -C4.T,I);}function A(T,U,h,u,I){return b(u-C5.T,h);}function X(T,U,h,u,I){return b(u- -C6.T,h);}const h=T();function Y(T,U,h,u,I){return b(I- -C7.T,u);}function r(T,U,h,u,I){return b(h-C8.T,u);}while(!![]){try{const u=-parseInt(Y(-C9.T,-C9.U,-C9.h,C9.u,-C9.I))/(0x1153*-0x1+0x354*-0x3+0x1b50)*(-parseInt(Y(-C9.i,-C9.R,-C9.Z,C9.O,-C9.E))/(0x1*0x1bfd+-0x1*-0x2306+-0x7f*0x7f))+-parseInt(X(-C9.z,-C9.p,C9.v,-C9.K,-C9.CC))/(0x48c*-0x7+0x19c9+0x1f*0x32)*(-parseInt(Y(-C9.CD,-C9.CF,-C9.Cb,C9.CT,-C9.CU))/(0x279+0x123a+-0x14af))+-parseInt(A(C9.Ch,C9.Cu,C9.CI,C9.Ci,C9.CR))/(0x1*0x24dd+0x1043+-0x351b)*(-parseInt(G(-C9.CZ,-C9.CO,-C9.CE,-C9.Cz,C9.Cp))/(0x12ce+0x21c7+-0x348f))+-parseInt(G(-C9.Cv,-C9.CK,-C9.CY,-C9.CA,C9.CX))/(0x1064*0x2+0x1d7f+-0xa6*0x60)+-parseInt(G(-C9.CG,-C9.Cr,-C9.Cn,-C9.Cg,C9.Cq))/(-0x154e+-0xc82*0x1+0x21d8)+parseInt(X(C9.Ck,C9.Ce,C9.Cy,C9.Cs,-C9.CM))/(0x20*-0x119+-0x263e+0x4967)+-parseInt(A(C9.Cm,C9.CB,C9.Cj,C9.Cx,C9.Cd))/(0x80*0x3f+-0x151+0x1e25*-0x1);if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,-0x1*0x1cb6e+0x2880a+-0xa*-0x1633));function B(T,U,h,u,I){const CC={T:0x3ae};return b(T- -CC.T,u);}const D=(function(){const CF={T:0xa1,U:0x9b,h:0x12d,u:'N!fg',I:0xeb};let T=!![];return function(U,h){const u=T?function(){const CD={T:0x83};function n(T,U,h,u,I){return b(I- -CD.T,u);}if(h){const I=h[n(CF.T,CF.U,CF.h,CF.u,CF.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const CO={T:'DH39',U:0x304,h:0x350,u:0x2f5,I:0x30a,i:0x1e9,R:0x1e0,Z:0x21c,O:0x222,E:'3Q]w',z:'I7r8',p:0x2f0,v:0x341,K:0x35b,CE:0x33b,Cz:0x22c,Cp:0x27c,Cv:0x2c5,CK:0x275,CY:'$Eay',CA:0x5a6,CX:0x5bb,CG:'$Eay',Cr:0x581,Cn:0x535,Cg:0x24a,Cq:0x1d9,Ck:0x1cc,Ce:0x219,Cy:'0V0q',Cs:0x297,CM:0x2d8,Cm:'0hE3',CB:0x29c,Cj:0x2d1,Cx:0x257,Cd:0x2af,CQ:'x4)M',Co:0x216,Cf:0x274,Ct:'j)%T',CV:0x35c,CW:0x33d,Cl:0x3c6,CJ:0x396,CH:0x4d8,CL:0x521,CS:'^nez',Cc:0x4d1,Cw:0x529,CP:0x224,CN:0x1e9,Ca:0x22d,D0:0x23c,D1:'ukR4',D2:0x249,D3:0x300,D4:'7Yqu',D5:0x24a,D6:0x2a8,D7:'B2q^',D8:0x181,D9:0x1b5,DC:0x1b1,DD:0x154,DF:0x4f1,Db:0x4b9,DT:'U!QP',DU:0x4db,Dh:0x511,Du:'S*rG',DI:0x18c,Di:0x15b,DR:0x1bd,DZ:0x156,DO:0x260,DE:0x268,Dz:'I7r8',Dp:0x2e7,Dv:0x29b,DK:'cCmO',DY:0x31d,DA:0x28c,DX:0x317,DG:0x2e5,Dr:0x4d8,Dn:0x503,Dg:'L%Mz',Dq:0x50a,Dk:0x56c,De:'U!QP',Dy:0x194,Ds:0x1ba,DM:0x21b,Dm:0x1d5},CZ={T:0x3dc},CR={T:0x2bf},Ci={T:0x1ee},Cu={T:0x149},Ch={T:0xe6},U={};function q(T,U,h,u,I){return b(u-Ch.T,I);}function y(T,U,h,u,I){return b(I-Cu.T,h);}U[g(CO.T,CO.U,CO.h,CO.u,CO.I)]=function(u,I){return u!==I;};function g(T,U,h,u,I){return b(I-Ci.T,T);}function k(T,U,h,u,I){return b(h- -CR.T,T);}U[q(CO.i,CO.R,CO.Z,CO.O,CO.E)]=g(CO.z,CO.p,CO.v,CO.K,CO.CE)+q(CO.Cz,CO.Cp,CO.Cv,CO.CK,CO.CY)+'+$';function e(T,U,h,u,I){return b(u-CZ.T,h);}const h=U;if(h[e(CO.CA,CO.CX,CO.CG,CO.Cr,CO.Cn)](C[q(CO.Cg,CO.Cq,CO.Ck,CO.Ce,CO.Cy)]()[y(CO.Cs,CO.CM,CO.Cm,CO.CB,CO.Cj)+y(CO.Cx,CO.Cd,CO.CQ,CO.Co,CO.Cf)]()[g(CO.Ct,CO.CV,CO.CW,CO.Cl,CO.CJ)+'Of']('\x0a'),-(-0xaef+0x2080+-0x1590)))return;return C[e(CO.CH,CO.CL,CO.CS,CO.Cc,CO.Cw)+q(CO.CP,CO.CN,CO.Ca,CO.D0,CO.D1)]()[y(CO.D2,CO.D3,CO.D4,CO.D5,CO.D6)+'h'](h[k(CO.D7,-CO.D8,-CO.D9,-CO.DC,-CO.DD)])[e(CO.DF,CO.Db,CO.DT,CO.DU,CO.Dh)+k(CO.Du,-CO.DI,-CO.Di,-CO.DR,-CO.DZ)]()[y(CO.DO,CO.DE,CO.Dz,CO.Dp,CO.Dv)+g(CO.DK,CO.DY,CO.DA,CO.DX,CO.DG)+'r'](C)[e(CO.Dr,CO.Dn,CO.Dg,CO.Dq,CO.Dk)+'h'](h[k(CO.De,-CO.Dy,-CO.Ds,-CO.DM,-CO.Dm)]);});function F(){const CN=['gbBdPCoI','pxRcGG','WQ/cKYLCWOy','ztKTWOOEW5a8ESoUDtVdSW','prmCDbG','W4NcNhXVW7W','WOONpMjw','WOpdL8o/WOHV','yh7cUSkiyG','AXTezs4','hgncWRi','iq4Qrwy','W4JcKmk5W5uW','mmovWOtdGq','W4RcIaTpFG','qGNdHmoBtq','W67dUMi','gCkLqHuYWOFdTq','aebC','W6fEtNFdUCksW5JcLSk7W7lcNSohbW','hCo0zSkoW7S','zN3cR8otDW','W5VdSCoFEfe','sdJcVSkImW','dmopBCkDFSk9W6vJWRVdUSkndG','BCorWPxdGYu','wSkLaCoPla','dSoXBa','W5/dSgbnca','D3iRW4Dh','yh7cRq','hSoaWOCKW7q','nSk4vwvC','fLFcL8kgeSk4D3BcKSo8Bq','e3yWvCk0WPBcOmo9xtKZWPq','tSkZyZKs','iqzXWQrN','wbDaW6PhW5eDW7K','vG5qW4/cPq','W6BdJYxdQ3u','yKC1W59m','lw92W5ib','WO0DkKbu','WOtcJ8kLW4KM','c3ZdU8o4ga','oMpcNJ7cIW','eqNdJc4q','j3hcUSkn','W6fEtNJdVSkvW5tcGCk3W6JcTCo5iG','hw7dQSo0CZ7cSSocWOPSW5W','y3/cO8kt','WOZcMrTZ','C8oPoIq6','lWbKWObV','as5FCCoS','WPldUfe','W4JcJCkYW4CW','WOVdOvv1fG','cMje','pGzsW5O','WP8GjJRcOW','W5BdSConBq','BX7cLCoDyq','W6lcGGLyyG','l8o5W4rYW5u','sCoIdaui','mGXwWOb0','BCkSW6NcHGm','hGJcOd0p','W5rAW5tdVvS','n8krumkHW4y','AsLAbCkq','jLJdGCoilG','WQRdT8k6tL0','a3dcT8oCbq','Dmo6ybmT','BfGJW5zh','BmkOkdSw','WO/dNxz3WOhdOCkJWQS','W6/cNSkJW4Cq','W7pcJHvfqq','C8ouiayV','D8o9lXSZ','wJL5i8oX','pCkvva','nmkvkCoDwmogWONcLhTyWPi','omovAb/dJa','kHbV','W57dSCogELC','gb7cKwa','yLSP','zCokBCkChq','WOiDmx1a','vZldJmkCqG','CHVcH8k6lq','W63cRSoQjXG','Cmkfg8oFgG','naPbz8oK','i8oEyrxdGa','kMpcNJNcRa','W6zAW4VdUHW','WRNdJfDrpG','BCkJWP03WOFdNSkkW5TSea/dNMG','bSo6zG','fHtcHG','WPtcJYfNxSkAW6C','W5lcLeTjEG','i8oLBCkzbq','W5JcHNv4WQe','gNvUd8kC','EGnB','WRhdRmkLvKqBFCkRbXhcJJe','pCoHW5vZWP4','ECkStbyW','u8oBWPFdMGe','BfpcPCktyG','i8kpxhnu','gxRdHmoPgq','WR0goqlcTW','W4ZcMNPPWR0','DtPacCoJ','ECkiFXGX','emoqWO/dJ17cQmorWODIFmo3WRC','ySo/oG','zJGHWOSEW5q9z8ocFrJdUa','BbKKW4nf','WQuVdZJcNa','udJcJSk3nq','WPaxn2C','WRyzgcpcUG','DCo0iay','iaPPWPf1','C8oOpHC','yahcM8k0jq','W5pcNKTjEG','qCorCCkDaa','Bt5ne8oA','WP7cIqDZWPS','vdfKW53cOq','W5NcMSk5W5i','ASorWOFdHq','WPtcHqvXWPW','emouW7FcUYVdR8osWRS','W47dN8kuW442','eXxdHSofWRm','FbqBrIO','ASoMWRFdLsW','WOvoBXlcVa','wwRcJmo7qW','oajurmoM','e3WWwCk1WPBdSmo9zr4zWQTG','W43cGhr4','CfGOW5y','g8orWOWUW7m','jW1XWP1c','bSk4FSkiW40','W5ZdPSorx08','jIPpACoG','md9DCCkN','iSorDHG','kdz/WOv0','WRhdQMnuja','B8owEmkihq','WPZcRgTNpq','W5ZdTCofEa','d8ohvWBdQa','CdlcVmkUeq','rbXUW7W','zYH5iSoO','W7RdVuTpcIhcLSoH','DCoKdqm8','hH7cHq','c3ZdU8o4','WOucngak','hgLrWRtcHa','pmo5ACkEW7y','WObEtGJcTa','nCoLW4bTW4m','W6hdVwK2sG','W7tdIIRdPG','B8o1dq91','ASonWOtdLa','ESonCCkAkW','jXRdVmoIWRG','vSkSp8okWQNdQ8ojWOmpWQzV','bWlcHZWf','WQmdgYu','W4FcNrvBja','wrPKbSoD','WRZcRhz8','it1cymoS','W7pdUSorwuy','AgdcUSkooa','D8kdW4NcKsu','W65eWPVdIfW','zSosddy3','nCo0W5y','fmksvMDD'];F=function(){return CN;};return F();}function M(T,U,h,u,I){const CE={T:0x1cb};return b(u-CE.T,I);}function s(T,U,h,u,I){const Cz={T:0x19a};return b(T-Cz.T,u);}C();import{hash}from'../hash.js';const PROBE_TIMEOUT_MS=0x1ffb*-0x1+-0x669*-0x3+-0xd1*-0x10,MACOS_APPS=[s(0x352,0x37c,0x302,'7Yqu',0x3a0)+s(0x297,0x269,0x241,'N!fg',0x2e7),s(0x2bd,0x287,0x312,']ce0',0x2f2)+M(0x366,0x32e,0x31f,0x351,'k#g*')+B(-0x24c,-0x218,-0x21b,'E$fZ',-0x25e)+B(-0x21b,-0x1c6,-0x265,'Lza1',-0x200)+'p',s(0x2af,0x2a5,0x270,'lMMo',0x2d0)+B(-0x21e,-0x232,-0x281,'^nez',-0x22c)+s(0x33d,0x38d,0x2ee,'*rqR',0x300)+'pp',j(0x128,0x189,0x1e4,'DH39',0x1ad)+B(-0x21d,-0x251,-0x1cb,'atuz',-0x20e)+'p',M(0x304,0x31b,0x33d,0x2f1,'U!QP')+s(0x2f6,0x302,0x350,'DH39',0x33c)+j(0x198,0x19d,0x169,'7Yqu',0x1be),m(0x227,0x182,'lMMo',0x1d7,0x1ff)+j(0x1f7,0x1ce,0x1f7,'^Tna',0x17d),M(0x347,0x31b,0x390,0x355,'x4)M')+s(0x2e5,0x2d1,0x2e6,'cCmO',0x2d2)+M(0x314,0x31f,0x30c,0x312,'vkpG'),s(0x2a1,0x2ba,0x2f0,'36Yh',0x27a)+j(0x18f,0x19f,0x184,'*rqR',0x200)+m(0x21a,0x188,'S*rG',0x1d0,0x1d2),j(0x1ef,0x1cf,0x16e,'aT6B',0x17f)+j(0x1eb,0x18c,0x1e3,'KBHJ',0x1b6)+M(0x3d8,0x37b,0x3a4,0x37b,'aT6B')+'p',j(0x18d,0x18f,0x1bb,'IOfr',0x1bf)+B(-0x29f,-0x2e8,-0x2f1,'I7r8',-0x26f)+m(0x1f9,0x20a,'S*rG',0x1b6,0x189)+'pp',M(0x325,0x35e,0x36f,0x337,'B2q^')+s(0x2ab,0x27c,0x249,'cx2K',0x29c)+'p',j(0x14b,0x179,0x168,'jD5r',0x141)+j(0x207,0x1cb,0x1f4,'B2q^',0x218),s(0x325,0x33c,0x31c,'KBHJ',0x2fd)+M(0x31a,0x2f7,0x343,0x33f,'x4)M')+'p',M(0x324,0x393,0x37c,0x33a,'lCd@')+B(-0x2a8,-0x308,-0x302,'aT6B',-0x2f7)+'p'];export const appsCollector={'id':s(0x2c1,0x31e,0x30c,'r(BZ',0x28e),'wave':j(0x1c2,0x1cd,0x17b,'DH39',0x1d1),'optional':!![],async 'collect'({document:T,window:U}){const Cn={T:0x321,U:0x350,h:0x2f3,u:'KBHJ',I:0x2bd,i:0x266,R:0x2a4,Z:0x251,O:'3Q]w',E:0x237,z:0x1d5,p:0x1f6,v:'k#g*',K:0x18d,Cg:0x1e9,Cq:0x1a1,Ck:0x1dc,Ce:'vQa!',Cy:0x1bf,Cs:0x1c2,CM:0x1d7,Cm:0x1c4,CB:0x26c,Cj:0x2ac,Cx:0x278,Cd:'j)%T',CQ:0x294,Co:'aT6B',Cf:0x8a,Ct:0x8d,CV:0xcd,CW:0x9f,Cl:0x256,CJ:0x297,CH:0x2a6,CL:'U!QP',CS:0x254,Cc:'vQa!',Cw:0x14,CP:0x58,CN:0x8d,Ca:0x2a,D0:0x2ea,D1:0x2d3,D2:0x2db,D3:'N!fg',D4:0x315,D5:'S*rG',D6:0x125,D7:0xd3,D8:0xfd,D9:0x11d,DC:0x12e,DD:0x109,DF:0x1a5,Db:'j)%T',DT:0x155,DU:0x344,Dh:0x330,Du:0x302,DI:'LmtG',Di:0x47,DR:0x2b,DZ:0x83,DO:0x32,DE:'lMMo',Dz:0x147,Dp:0x171,Dv:0x16e,DK:0x10b,DY:'0hE3',DA:0x5b,DX:0xae,DG:0x8e,Dr:0x4e,Dn:'Lza1',Dg:0xfc,Dq:0x12f,Dk:0xd7,De:0xc1,Dy:'3RWG',Ds:0x116,DM:0xd0,Dm:0x9f,DB:0x87,Dj:0x106,Dx:0xf8,Dd:0x1ac,DQ:0x15b,Do:0x25c,Df:0x27c,Dt:0x26a,DV:'E$fZ',DW:0x231,Dl:'atuz',DJ:0xeb,DH:0xe8,DL:0x8c,DS:0xb2,Dc:0x1eb,Dw:0x213,DP:0x208,DN:0xf5,Da:0xfe,F0:0x1a3,F1:'wII%',F2:0x157,F3:'ukR4',F4:0x133,F5:0x132,F6:0xd1,F7:0x190,F8:0x147,F9:0x11c,FC:0x128,FD:0x174,FF:'vkpG',Fb:0xa5,FT:0x55,FU:0xc,Fh:0x46,Fu:0x166,FI:0x200,Fi:0x1c7,FR:'TjrP',FZ:0x1b0,FO:'DH39',FE:0xc7,Fz:0x12a,Fp:0x115,Fv:0x84,FK:0x193,FY:0x190,FA:0x15b,FX:0x16a,FG:0x237,Fr:0x211,Fn:0x215,Fg:'aT6B',Fq:0x244,Fk:0x20c,Fe:0x20d,Fy:0x1d7,Fs:'E$fZ',FM:0x236,Fm:0x233,FB:0x22e,Fj:0x25b,Fx:'7Yqu',Fd:0x2a2,FQ:0x27e,Fo:0x259,Ff:0x242,Ft:'d[8s',FV:0x256,FW:0x63,Fl:0xa0,FJ:'L%Mz',FH:0x141,FL:0xda,FS:0xca,Fc:0x15b,Fw:0x14c,FP:0x117,FN:'S*rG',Fa:0x179,b0:0x23a,b1:0x22e,b2:0x260,b3:'5tkU',b4:0x271,b5:0x20f,b6:0x209,b7:0x229,b8:'cCmO',b9:0x1da,bC:0x1f0,bD:0x222,bF:'^Tna',bb:0x1dd,bT:0x227,bU:0x266,bh:'1or6',bu:0x1ee,bI:0x242,bi:0x2a0,bR:0x291,bZ:0x2d6,bO:0x232,bE:0x223,bz:0x261,bp:0x283,bv:0x176,bK:0x1a9,bY:0x180,bA:'h*jZ',bX:0x10,bG:0x22,br:0x0,bn:0x6b},Cr={T:0x1a1,U:0x14f,h:0xa6,u:0x393},CG={T:0x125,U:0x163,h:0x196,u:0x4bc},CX={T:0x1c7,U:0x81,h:0x7d,u:0x82},CA={T:0x1f4,U:0xb0,h:0x1ae,u:0x556},CY={T:0x7e,U:0x19b,h:0x1a9,u:0x430},h={'WtHhf':function(I,i,R){return I(i,R);},'UcpmK':x(Cn.T,Cn.U,Cn.h,Cn.u,Cn.I)+x(Cn.i,Cn.R,Cn.Z,Cn.O,Cn.E)+'d','NsBwU':Q(-Cn.z,-Cn.p,-Cn.E,Cn.v,-Cn.K)+Q(-Cn.Cg,-Cn.Cq,-Cn.Ck,Cn.Ce,-Cn.Cg),'txtVg':d(-Cn.Cy,-Cn.Cs,-Cn.CM,Cn.Ce,-Cn.Cm)+Q(-Cn.CB,-Cn.Cj,-Cn.Cx,Cn.Cd,-Cn.CQ),'tRCdj':function(I,i){return I===i;},'EfqCm':function(I,i){return I(i);},'hxNEQ':o(Cn.Co,-Cn.Cf,-Cn.Ct,-Cn.CV,-Cn.CW)+x(Cn.Cl,Cn.CJ,Cn.CH,Cn.CL,Cn.CS)+o(Cn.Cc,-Cn.Cw,-Cn.CP,-Cn.CN,-Cn.Ca)+x(Cn.D0,Cn.D1,Cn.D2,Cn.D3,Cn.D4),'UZxVR':f(Cn.D5,-Cn.D6,-Cn.D7,-Cn.D8,-Cn.D9)+d(-Cn.DC,-Cn.DD,-Cn.DF,Cn.Db,-Cn.DT)+x(Cn.DU,Cn.Dh,Cn.Du,Cn.D5,Cn.D2)+o(Cn.DI,-Cn.Di,-Cn.DR,-Cn.DZ,Cn.DO),'WsBJn':f(Cn.DE,-Cn.Dz,-Cn.Dp,-Cn.Dv,-Cn.DK)+o(Cn.DY,-Cn.DA,-Cn.DX,-Cn.DG,-Cn.Dr)+f(Cn.Dn,-Cn.Dg,-Cn.Dq,-Cn.Dk,-Cn.De)};function f(T,U,h,u,I){return M(T-CY.T,U-CY.U,h-CY.h,U- -CY.u,T);}function Q(T,U,h,u,I){return M(T-CA.T,U-CA.U,h-CA.h,T- -CA.u,u);}function x(T,U,h,u,I){return M(T-CX.T,U-CX.U,h-CX.h,h- -CX.u,u);}const u={};if(!h[o(Cn.Dy,-Cn.Ds,-Cn.DM,-Cn.Dm,-Cn.DB)](supportsEntryProbe,T,U))return u[h[d(-Cn.Dj,-Cn.Dx,-Cn.Dd,Cn.Co,-Cn.DQ)]]=null,u[h[x(Cn.Do,Cn.Df,Cn.Dt,Cn.DV,Cn.DW)]]=null,u[h[f(Cn.Dl,-Cn.DJ,-Cn.DH,-Cn.DL,-Cn.DS)]]=null,u;try{const I=await Promise[Q(-Cn.Dc,-Cn.Dw,-Cn.Ck,Cn.D3,-Cn.DP)](MACOS_APPS[d(-Cn.DN,-Cn.Da,-Cn.F0,Cn.F1,-Cn.F2)](async Z=>({'name':Z,'present':await pathExists(T,d(-0x159,-0x11c,-0x15b,'36Yh',-0x140)+d(-0x15f,-0x13e,-0x1be,'0hE3',-0x176)+f('x4)M',-0xc6,-0xe8,-0x122,-0x123)+Z)}))),i=I[f(Cn.F3,-Cn.F4,-Cn.F5,-Cn.F6,-Cn.F7)+'r'](Z=>Z[o('IOfr',-0x3c,-0xe,-0x12,-0x36)+'nt']===!![])[d(-Cn.F8,-Cn.F9,-Cn.FC,Cn.DV,-Cn.FD)](Z=>Z[f('DH39',-0x141,-0xfa,-0x114,-0xf7)]),R=I[o(Cn.FF,-Cn.Fb,-Cn.FT,Cn.FU,-Cn.Fh)+'r'](Z=>Z[x(0x2e2,0x23e,0x282,'x4)M',0x2d3)+'nt']!==null);u[h[d(-Cn.Fu,-Cn.FI,-Cn.Fi,Cn.FR,-Cn.FZ)]]=R[f(Cn.FO,-Cn.FE,-Cn.Fz,-Cn.Fp,-Cn.Fv)+'h'],u[h[d(-Cn.FK,-Cn.FY,-Cn.FA,Cn.Dl,-Cn.FX)]]=i[Q(-Cn.FG,-Cn.Fr,-Cn.Fn,Cn.Fg,-Cn.Fq)+'h'],u[h[Q(-Cn.Fk,-Cn.Fe,-Cn.Fy,Cn.Fs,-Cn.FM)]]=h[x(Cn.Fm,Cn.FB,Cn.Fj,Cn.Fx,Cn.Fd)](i[Q(-Cn.FQ,-Cn.Fo,-Cn.Ff,Cn.Ft,-Cn.FV)+'h'],0x223f+0x824+-0x2a63)?null:h[o(Cn.Dy,-Cn.FW,-Cn.Fl,-Cn.DJ,-Cn.Ct)](hash,[...i][f(Cn.FJ,-Cn.Fp,-Cn.FH,-Cn.FL,-Cn.FS)]()[d(-Cn.Fc,-Cn.Fw,-Cn.FP,Cn.FN,-Cn.Fa)]('|')),u[h[Q(-Cn.b0,-Cn.b1,-Cn.b2,Cn.b3,-Cn.b4)]]=i[d(-Cn.b5,-Cn.b6,-Cn.b7,Cn.b8,-Cn.b9)](Z=>/MockGo|iAnyGo|AnyTo/[Q(-0x27f,-0x2d9,-0x272,'7Yqu',-0x277)](Z)),u[h[d(-Cn.bC,-Cn.bD,-Cn.Cm,Cn.bF,-Cn.bb)]]=i[Q(-Cn.Z,-Cn.bT,-Cn.bU,Cn.bh,-Cn.bu)](Z=>/AnyDesk|TeamViewer|Parsec/[f(']ce0',-0x128,-0x13d,-0x180,-0xc7)](Z)),u[h[x(Cn.bI,Cn.bi,Cn.bR,Cn.Ft,Cn.bZ)]]=i[x(Cn.bO,Cn.bE,Cn.bz,Cn.D3,Cn.bp)](Z=>/ixBrowser|Multilogin|Dolphin/[d(-0x1a8,-0x215,-0x211,'vQa!',-0x1f1)](Z));}catch{u[h[d(-Cn.bv,-Cn.bK,-Cn.bY,Cn.Fg,-Cn.FA)]]=null,u[h[o(Cn.bA,Cn.bX,-Cn.bG,Cn.br,-Cn.bn)]]=null;}function d(T,U,h,u,I){return M(T-CG.T,U-CG.U,h-CG.h,I- -CG.u,u);}function o(T,U,h,u,I){return M(T-Cr.T,U-Cr.U,h-Cr.h,h- -Cr.u,T);}return u;}};function supportsEntryProbe(U,h){const Cm={T:0x93,U:'0hE3',h:0x77,u:0xa3,I:0xc9,i:0x188,R:0x154,Z:0x1ae,O:0x14c,E:'5^3C',z:0x179,p:0x16d,v:0x15e,K:0x1d6,CB:'1or6',Cj:'cx2K',Cx:0x4ff,Cd:0x53f,CQ:0x4ae,Co:0x4de,Cf:0x360,Ct:0x333,CV:'atuz',CW:0x322,Cl:0x387,CJ:0x374,CH:0x368,CL:'lMMo',CS:0x3cb,Cc:0x36f,Cw:0x46c,CP:0x4b7,CN:'3RWG',Ca:0x4b6,D0:0x26,D1:'3Q]w',D2:0x1f,D3:0x7d,D4:0xd,D5:0x210,D6:0x23c,D7:0x1f2,D8:0x1da,D9:'atuz',DC:0xa,DD:'vkpG',DF:0x44,Db:0x3e,DT:0x58,DU:0x478,Dh:0x4a4,Du:'36Yh',DI:0x4be,Di:0x497,DR:0x3bf,DZ:0x41c,DO:'TjrP',DE:0x413,Dz:0x418,Dp:0x6d,Dv:'5^3C',DK:0xbb,DY:0x9a,DA:0x97,DX:0x98,DG:'wII%',Dr:0x63,Dn:0xe4,Dg:0x83,Dq:'vQa!',Dk:0x4dc,De:0x448,Dy:0x4dd,Ds:0x4c6,DM:0x460,Dm:'I7r8',DB:0x4b2,Dj:0x4a2,Dx:0x59,Dd:'jD5r',DQ:0xa0,Do:0x7,Df:0x3a,Dt:'1or6',DV:0x441,DW:0x3fc,Dl:0x463,DJ:0x445,DH:0x82,DL:'k#g*',DS:0x44,Dc:0x6e,Dw:0x33,DP:0x397,DN:0x3e5,Da:0x3f0,F0:0x3eb,F1:0x349,F2:0x31f,F3:'h51A',F4:0x344,F5:0x37b,F6:0x42f,F7:0x41f,F8:0x46c,F9:0x46d,FC:0x483,FD:0x4a9,FF:0x4bb,Fb:0x502,FT:'lMMo',FU:0x4c4,Fh:0x511,Fu:0x482,FI:'L%Mz',Fi:0x49d,FR:0x4fa,FZ:0x4a7,FO:0x499,FE:0x453,Fz:0x3a,Fp:'d[8s',Fv:0x22,FK:0x74,FY:0x91,FA:0x1fa,FX:0x223,FG:0x204,Fr:0x19a,Fn:'1or6',Fg:0x1ea,Fq:0x1a1,Fk:0x218,Fe:0x1e6,Fy:'^nez',Fs:0x3e8,FM:0x390,Fm:'cCmO',FB:0x411,Fj:0x3c2,Fx:0x83,Fd:'h51A',FQ:0x45,Fo:0x73,Ff:0x55,Ft:0x399,FV:0x337,FW:'N!fg',Fl:0x360,FJ:0x3b6,FH:0x1d0,FL:0x1cf,FS:0x1ee,Fc:0x1f2,Fw:'%SIc',FP:'CKjZ',FN:0x4fe,Fa:0x534,b0:0x536,b1:0x557,b2:0xf,b3:'U!QP',b4:0x11,b5:0x32,b6:0x40f,b7:0x487,b8:'q&hU',b9:0x436,bC:0x467},Cs={T:0x156,U:0x182,h:0x20e,u:0xb4},Cy={T:0x110,U:0x6,h:0x1d,u:0x81},Ce={T:0x12e,U:0x43,h:0x1db,u:0x1ed},Ck={T:0x1bd,U:0x121,h:0x2c2,u:0x10c},Cg={T:0x1d8,U:0x63,h:0x2f0,u:0x1cc},u={};function l(T,U,h,u,I){return m(T-Cg.T,U-Cg.U,T,U-Cg.h,I-Cg.u);}u[t(-Cm.T,Cm.U,-Cm.h,-Cm.u,-Cm.I)]=function(i,R){return i!==R;},u[V(Cm.i,Cm.R,Cm.Z,Cm.O,Cm.E)]=V(Cm.z,Cm.p,Cm.v,Cm.K,Cm.CB)+l(Cm.Cj,Cm.Cx,Cm.Cd,Cm.CQ,Cm.Co),u[W(Cm.Cf,Cm.Ct,Cm.CV,Cm.CW,Cm.Cl)]=W(Cm.CJ,Cm.CH,Cm.CL,Cm.CS,Cm.Cc);function J(T,U,h,u,I){return m(T-Ck.T,U-Ck.U,h,u-Ck.h,I-Ck.u);}function W(T,U,h,u,I){return m(T-Ce.T,U-Ce.U,h,T-Ce.h,I-Ce.u);}u[J(Cm.Cw,Cm.CP,Cm.CN,Cm.Ca,Cm.Cx)]=t(-Cm.D0,Cm.D1,Cm.D2,-Cm.D3,Cm.D4)+V(Cm.D5,Cm.D6,Cm.D7,Cm.D8,Cm.D9),u[t(-Cm.DC,Cm.DD,-Cm.DF,-Cm.Db,Cm.DT)]=J(Cm.DU,Cm.Dh,Cm.Du,Cm.DI,Cm.Di),u[W(Cm.DR,Cm.DZ,Cm.DO,Cm.DE,Cm.Dz)]=t(-Cm.Dp,Cm.Dv,-Cm.DK,-Cm.DY,-Cm.DA);function V(T,U,h,u,I){return m(T-Cy.T,U-Cy.U,I,T-Cy.h,I-Cy.u);}function t(T,U,h,u,I){return m(T-Cs.T,U-Cs.U,U,T- -Cs.h,I-Cs.u);}u[t(-Cm.DX,Cm.DG,-Cm.Dr,-Cm.Dn,-Cm.Dg)]=function(i,R){return i>R;};const I=u;try{if(I[l(Cm.Dq,Cm.Di,Cm.Dk,Cm.De,Cm.Dy)](typeof h[J(Cm.Ds,Cm.DM,Cm.Dm,Cm.DB,Cm.Dj)+t(-Cm.Dx,Cm.Dd,-Cm.DQ,Cm.Do,-Cm.Df)+'er'],I[l(Cm.Dt,Cm.DV,Cm.DW,Cm.Dl,Cm.DJ)]))return![];const i=new DataTransfer();i[t(-Cm.DH,Cm.DL,-Cm.DS,-Cm.Dc,-Cm.Dw)][W(Cm.DP,Cm.DN,Cm.Dd,Cm.Da,Cm.F0)](new File([],I[W(Cm.F1,Cm.F2,Cm.F3,Cm.F4,Cm.F5)],{'type':I[J(Cm.F6,Cm.F7,Cm.Cj,Cm.F8,Cm.DV)]}));const R=U[l(Cm.Du,Cm.F9,Cm.FC,Cm.FD,Cm.FF)+J(Cm.FC,Cm.Fb,Cm.FT,Cm.FU,Cm.Fh)+J(Cm.Fu,Cm.F9,Cm.FI,Cm.Fi,Cm.FR)](I[J(Cm.FZ,Cm.FO,Cm.Du,Cm.FE,Cm.Ca)]);R[t(-Cm.Fz,Cm.Fp,Cm.Fv,-Cm.FK,-Cm.FY)]=I[V(Cm.FA,Cm.FX,Cm.FG,Cm.Fr,Cm.Fn)],R[V(Cm.Fg,Cm.Fq,Cm.Fk,Cm.Fe,Cm.Fy)]=i[W(Cm.Fs,Cm.FM,Cm.Fm,Cm.FB,Cm.Fj)];const Z=R[t(-Cm.Fx,Cm.Fd,-Cm.FQ,-Cm.Fo,-Cm.Ff)+W(Cm.Ft,Cm.FV,Cm.FW,Cm.Fl,Cm.FJ)+V(Cm.FH,Cm.FL,Cm.FS,Cm.Fc,Cm.Fw)];return Array[l(Cm.FP,Cm.FN,Cm.Fa,Cm.b0,Cm.b1)+'ay'](Z)&&I[t(-Cm.b2,Cm.b3,-Cm.b4,Cm.b5,-Cm.D0)](Z[J(Cm.b6,Cm.b7,Cm.b8,Cm.b9,Cm.bC)+'h'],-0x216e+0x20a3+0xcb);}catch{return![];}}async function pathExists(U,h){const CP={T:0x40,U:0x5c,h:'5tkU',u:0x79,I:0xac,i:0x12,R:0x39,Z:'0V0q',O:0x73,E:0x31,z:0x72,p:0x58,v:'S*rG',K:0xb3,CN:0xb0,Ca:0x395,D0:0x3eb,D1:0x3cd,D2:0x3df,D3:'^nez',D4:0x430,D5:0x42f,D6:0x452,D7:0x3fd,D8:'bEt3',D9:0x3e,DC:0x7,DD:'jD5r',DF:0x2c,Db:0x4a,DT:0x8d,DU:0x71,Dh:'7Yqu',Du:0x13,DI:0x55,Di:0x49,DR:0x5,DZ:'E$fZ',DO:0x20,DE:0x26,Dz:0x390,Dp:0x36f,Dv:0x32b,DK:'q&hU',DY:0x3c4,DA:0x4ed,DX:0x4a9,DG:0x4d9,Dr:0x4d4,Dn:'x4)M',Dg:0x51,Dq:0x35,Dk:'I7r8',De:0x2e,Dy:0x76,Ds:0x347,DM:0x388,Dm:0x389,DB:'I7r8',Dj:0x3b4,Dx:0x126,Dd:0x17f,DQ:0x15e,Do:'IOfr',Df:0x17b,Dt:0x7d,DV:0xab,DW:'atuz',Dl:0xdf,DJ:0x109,DH:0x414,DL:0x3b8,DS:0x418,Dc:0x3d5,Dw:'Lza1',DP:0x44b,DN:0x3ff,Da:0x3f6,F0:0x43d,F1:0x422,F2:0x44d,F3:0x468,F4:0x423,F5:0x2c0,F6:0x313,F7:0x319,F8:'d[8s',F9:0x343,FC:0x323,FD:0x30d,FF:0x2e2,Fb:'0hE3',FT:0x2d5,FU:0x2a,Fh:0x89,Fu:'lMMo',FI:0x80,Fi:0x52,FR:0x13a,FZ:0x163,FO:0x13b,FE:'atuz',Fz:0x14a,Fp:0x15c,Fv:0x14b,FK:0x1c1,FY:'k#g*',FA:0x19d,FX:0x380,FG:0x341,Fr:0x38b,Fn:'5^3C',Fg:0x358,Fq:0x15,Fk:0x63,Fe:0x25,Fy:0x4d,Fs:0x3f5,FM:0x40b,Fm:0x409,FB:'wII%',Fj:0x35a,Fx:0x30c,Fd:0x2ae,FQ:'atuz',Fo:0x368,Ff:0x3d,Ft:0x81,FV:'j)%T',FW:0xa6,Fl:0xdd},Cw={T:0x3e2,U:0x3e4,h:0x410,u:0x41e,I:'0hE3',i:0xe0,R:'I7r8',Z:0xa4,O:0x92,E:0x8c,z:0x39e,p:0x387,v:0x3a4,K:0x37c,CP:'1or6'},Cc={T:0x59,U:0x124,h:0x12,u:0x587},CS={T:0x9a,U:0xa2,h:0x97,u:0xc5},CJ={T:0x8d,U:0x48,h:0x14b,u:0x2b6},Cl={T:0x32a,U:'Lza1',h:0x36b,u:0x380,I:0x30d},CV={T:0x17e,U:0x137,h:0x80,u:0x4ac},Ct={T:0x134,U:0x180,h:0xd9,u:0xf4},Cx={T:0x19a,U:0x1ae,h:0x15f,u:0x3f},Cj={T:0xb0,U:0x1a4,h:0xed,u:0x130},CB={T:0x63,U:0x73,h:0x74,u:0x371};function H(T,U,h,u,I){return M(T-CB.T,U-CB.U,h-CB.h,U- -CB.u,h);}function w(T,U,h,u,I){return M(T-Cj.T,U-Cj.U,h-Cj.h,U-Cj.u,I);}function S(T,U,h,u,I){return M(T-Cx.T,U-Cx.U,h-Cx.h,U-Cx.u,u);}const u={'RkJLV':function(I,i){return I(i);},'uCyxR':function(I,i,R){return I(i,R);},'FUvrO':H(-CP.T,-CP.U,CP.h,-CP.u,-CP.I)+H(CP.i,-CP.R,CP.Z,-CP.O,-CP.E),'ROyBW':H(-CP.z,-CP.p,CP.v,-CP.K,-CP.CN),'KMVUE':c(CP.Ca,CP.D0,CP.D1,CP.D2,CP.D3),'Yeuer':function(I,i){return I===i;},'aCBDj':function(I,i){return I!==i;},'EwRvP':w(CP.D4,CP.D5,CP.D6,CP.D7,CP.D8)+H(CP.D9,CP.DC,CP.DD,CP.DF,-CP.Db)};function c(T,U,h,u,I){return M(T-Ct.T,U-Ct.U,h-Ct.h,U-Ct.u,I);}function L(T,U,h,u,I){return M(T-CV.T,U-CV.U,h-CV.h,I- -CV.u,u);}try{const I=new DataTransfer(),i={};i[H(-CP.DT,-CP.DU,CP.Dh,-CP.Du,-CP.DI)]=u[H(CP.Di,CP.DR,CP.DZ,CP.DO,CP.DE)],I[S(CP.Dz,CP.Dp,CP.Dv,CP.DK,CP.DY)][w(CP.DA,CP.DX,CP.DG,CP.Dr,CP.Dn)](new File([],h+(H(-CP.Dg,-CP.Dq,CP.Dk,-CP.De,-CP.Dy)+'e'),i));const R=U[S(CP.Ds,CP.DM,CP.Dm,CP.DB,CP.Dj)+L(-CP.Dx,-CP.Dd,-CP.DQ,CP.Do,-CP.Df)+H(-CP.Dt,-CP.DV,CP.DW,-CP.Dl,-CP.DJ)](u[c(CP.DH,CP.DL,CP.DS,CP.Dc,CP.Dw)]);R[w(CP.DP,CP.DN,CP.Da,CP.F0,CP.DW)]=u[c(CP.F1,CP.F2,CP.F3,CP.F4,CP.D3)],R[S(CP.F5,CP.F6,CP.F7,CP.F8,CP.F9)]=I[S(CP.FC,CP.FD,CP.FF,CP.Fb,CP.FT)];const Z=R[H(-CP.FU,-CP.Fh,CP.Fu,-CP.FI,-CP.Fi)+L(-CP.FR,-CP.FZ,-CP.FO,CP.FE,-CP.Fz)+L(-CP.Fp,-CP.Fv,-CP.FK,CP.FY,-CP.FA)]?.[0x9*-0x2c8+0x1404+-0x1ac*-0x3];if(u[S(CP.FX,CP.FG,CP.Fr,CP.Fn,CP.Fg)](Z,undefined)||u[H(-CP.Fq,-CP.Fk,CP.DW,-CP.Fe,-CP.Fy)](typeof Z[c(CP.Fs,CP.DP,CP.FM,CP.Fm,CP.FB)+S(CP.Fj,CP.Fx,CP.Fd,CP.FQ,CP.Fo)],u[H(-CP.Ff,-CP.Ft,CP.FV,-CP.FW,-CP.Fl)]))return null;return await new Promise(O=>{const CL={T:0x2f1,U:0x375,h:0x305,u:0x342,I:'h*jZ'},CH={T:0x1e2},E={'dSXAc':function(v,K){const CW={T:0x173};function P(T,U,h,u,I){return b(T-CW.T,U);}return u[P(Cl.T,Cl.U,Cl.h,Cl.u,Cl.I)](v,K);}};let z=![];function C0(T,U,h,u,I){return L(T-CJ.T,U-CJ.U,h-CJ.h,U,T-CJ.u);}const p=v=>{if(z)return;z=!![];function N(T,U,h,u,I){return b(u-CH.T,I);}E[N(CL.T,CL.U,CL.h,CL.u,CL.I)](O,v);};Z[a(Cw.T,Cw.U,Cw.h,Cw.u,Cw.I)+C0(Cw.i,Cw.R,Cw.Z,Cw.O,Cw.E)](()=>p(!![]),()=>p(![]));function C1(T,U,h,u,I){return L(T-CS.T,U-CS.U,h-CS.h,h,I-CS.u);}function a(T,U,h,u,I){return L(T-Cc.T,U-Cc.U,h-Cc.h,I,h-Cc.u);}u[a(Cw.z,Cw.p,Cw.v,Cw.K,Cw.CP)](setTimeout,()=>p(null),PROBE_TIMEOUT_MS);});}catch{return null;}}
1
+ import { hash } from '../hash.js';
2
+ /**
3
+ * Which applications are installed, probed through a filesystem leak.
4
+ *
5
+ * NOT part of `ALL_COLLECTORS`. It ships in `INVASIVE_COLLECTORS`, which a
6
+ * deployment must pass explicitly, because this reads something about a person
7
+ * rather than about their browser and that is not a decision a default should
8
+ * make quietly.
9
+ *
10
+ * ## What it is for
11
+ *
12
+ * Three entries are the reason it exists: GPS spoofers. A device running one
13
+ * is a device whose location cannot be believed, which in iGaming is the
14
+ * difference between a legal bet and an illegal one. The rest are here because
15
+ * presence *and absence* both carry signal — a machine with no browser but
16
+ * one, no messenger and no music player is not a person's laptop, it is a
17
+ * freshly imaged VM.
18
+ *
19
+ * ## What it costs, stated plainly
20
+ *
21
+ * It reveals which VPN somebody uses, whether they run Tor, and which
22
+ * encrypted messengers they have. Under GDPR that is ordinary personal data
23
+ * rather than a special category, but Article 5(1)(c) still asks whether it is
24
+ * necessary and proportionate for the purpose, and ePrivacy Article 5(3)
25
+ * treats reading from terminal equipment as requiring consent unless it is
26
+ * strictly necessary for a service the person asked for.
27
+ *
28
+ * A KYC-consented iGaming onboarding has an answer to both. A login page on a
29
+ * general-purpose site does not. That is the whole reason this is opt-in, and
30
+ * a deployment enabling it should be able to point at the consent covering it.
31
+ *
32
+ * The list is deliberately short. A longer one is more entropy and more
33
+ * exposure, and the marginal application tells you about a person without
34
+ * telling you anything about fraud.
35
+ *
36
+ * ## How it works
37
+ *
38
+ * A `File` is constructed whose *name* is an absolute path, added to a
39
+ * `DataTransfer`, and read back through a file input's `webkitEntries`. The
40
+ * resulting `FileSystemEntry` resolves against the real filesystem, so
41
+ * `getParent` succeeds for a path that exists and fails for one that does not.
42
+ *
43
+ * Chromium only, and a leak rather than an API. Every probe reports null
44
+ * rather than false when the mechanism is unavailable, so a browser without it
45
+ * reads as "could not look" instead of "nothing installed".
46
+ *
47
+ * ## It is already closed on current Chrome
48
+ *
49
+ * Measured on Chrome 153, 2026-09-29: `webkitEntries` is present on a file
50
+ * input and returns an **empty array** for a synthesised `DataTransfer`.
51
+ * Chrome now populates it only from a real user-initiated drop, so this
52
+ * collector returns null for every path on a current browser.
53
+ *
54
+ * It is kept rather than deleted for one reason: it costs a single probe to
55
+ * find that out, and older Chromium builds are still in use. It is not kept
56
+ * because it works here — it does not. Anyone enabling this should measure it
57
+ * on the browsers their users actually run before believing a negative, and
58
+ * `apps.probed` is the number that says whether anything was measured at all.
59
+ *
60
+ * Worth noting that SEON's SDK still ships this technique against 164 paths.
61
+ */
62
+ /** Per probe. Several run concurrently, so this is not the total. */
63
+ const PROBE_TIMEOUT_MS = 80;
64
+ const MACOS_APPS = [
65
+ // The point of the exercise: location cannot be trusted on a machine
66
+ // running any of these.
67
+ 'MockGo.app',
68
+ 'Tenorshare iAnyGo.app',
69
+ 'iMyFone AnyTo.app',
70
+ // Remote control. Legitimate constantly, and also how an account comes to be
71
+ // operated by somebody other than its owner.
72
+ 'AnyDesk.app',
73
+ 'TeamViewer.app',
74
+ 'Parsec.app',
75
+ // Anti-detect browsers, which say what kind of session this is.
76
+ 'ixBrowser.app',
77
+ 'Multilogin.app',
78
+ 'Dolphin Anty.app',
79
+ // Ordinary things. A machine with none of them is usually not a person's.
80
+ 'Google Chrome.app',
81
+ 'Firefox.app',
82
+ 'Slack.app',
83
+ 'Spotify.app',
84
+ 'zoom.us.app',
85
+ ];
86
+ export const appsCollector = {
87
+ id: 'apps',
88
+ wave: 'deep',
89
+ optional: true,
90
+ async collect({ document, window }) {
91
+ const out = {};
92
+ // The mechanism is Chromium-only and specific to synthesised entries.
93
+ // Probing for it once keeps every negative below honest.
94
+ if (!supportsEntryProbe(document, window)) {
95
+ out['apps.probed'] = null;
96
+ out['apps.found'] = null;
97
+ out['apps.hash'] = null;
98
+ return out;
99
+ }
100
+ try {
101
+ const results = await Promise.all(MACOS_APPS.map(async (name) => ({
102
+ name,
103
+ present: await pathExists(document, `/Applications/${name}`),
104
+ })));
105
+ const present = results.filter((r) => r.present === true).map((r) => r.name);
106
+ const measured = results.filter((r) => r.present !== null);
107
+ out['apps.probed'] = measured.length;
108
+ out['apps.found'] = present.length;
109
+ out['apps.hash'] = present.length === 0 ? null : hash([...present].sort().join('|'));
110
+ // Grouped rather than named individually. A rule that wants to act on a
111
+ // GPS spoofer should not need to know a hash, and a tenant reading its
112
+ // own console deserves to see what it acted on — but nothing downstream
113
+ // needs the specific application, so the specific application does not
114
+ // leave this file.
115
+ out['apps.locationSpoofer'] = present.some((n) => /MockGo|iAnyGo|AnyTo/.test(n));
116
+ out['apps.remoteControl'] = present.some((n) => /AnyDesk|TeamViewer|Parsec/.test(n));
117
+ out['apps.antiDetect'] = present.some((n) => /ixBrowser|Multilogin|Dolphin/.test(n));
118
+ }
119
+ catch {
120
+ out['apps.probed'] = null;
121
+ out['apps.found'] = null;
122
+ }
123
+ return out;
124
+ },
125
+ };
126
+ /**
127
+ * Whether the mechanism actually works, rather than whether the property
128
+ * exists.
129
+ *
130
+ * These are not the same and the difference is the whole collector. Measured
131
+ * on Chrome 153: `webkitEntries` is present on a file input and returns an
132
+ * **empty array** for a synthesised `DataTransfer`, so a check for the
133
+ * property passes and then every probe answers null. Chrome now populates it
134
+ * only from a real user-initiated drop.
135
+ *
136
+ * So this constructs one throwaway entry and checks that something came back.
137
+ * A browser that has closed the leak is detected in one step instead of
138
+ * fifteen timeouts.
139
+ */
140
+ function supportsEntryProbe(document, window) {
141
+ try {
142
+ if (typeof window.DataTransfer !== 'function')
143
+ return false;
144
+ const transfer = new DataTransfer();
145
+ transfer.items.add(new File([], 'probe', { type: 'text/plain' }));
146
+ const input = document.createElement('input');
147
+ input.type = 'file';
148
+ input.files = transfer.files;
149
+ const entries = input.webkitEntries;
150
+ return Array.isArray(entries) && entries.length > 0;
151
+ }
152
+ catch {
153
+ return false;
154
+ }
155
+ }
156
+ /**
157
+ * Whether a path exists, or null when it could not be determined.
158
+ *
159
+ * Never false on a failed mechanism. That is the difference between "this is
160
+ * not installed" and "this browser does not leak", and a caller conflating
161
+ * them reports an empty machine for every Firefox user.
162
+ */
163
+ async function pathExists(document, path) {
164
+ try {
165
+ const transfer = new DataTransfer();
166
+ transfer.items.add(new File([], `${path}/probe`, { type: 'text/plain' }));
167
+ const input = document.createElement('input');
168
+ input.type = 'file';
169
+ input.files = transfer.files;
170
+ const entry = input.webkitEntries?.[0];
171
+ if (entry === undefined || typeof entry.getParent !== 'function')
172
+ return null;
173
+ return await new Promise((resolve) => {
174
+ let settled = false;
175
+ const finish = (value) => {
176
+ if (settled)
177
+ return;
178
+ settled = true;
179
+ resolve(value);
180
+ };
181
+ // A resolved parent means the directory is really there; an error means
182
+ // it is not. The timeout means neither answer arrived, which is a third
183
+ // outcome and is reported as one.
184
+ entry.getParent(() => finish(true), () => finish(false));
185
+ setTimeout(() => finish(null), PROBE_TIMEOUT_MS);
186
+ });
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
@@ -0,0 +1,16 @@
1
+ import type { Collector } from '../types.js';
2
+ /**
3
+ * The audio stack, rendered offline.
4
+ *
5
+ * An oscillator through a compressor produces a buffer whose exact float
6
+ * values depend on the platform's audio implementation and its floating-point
7
+ * behaviour — stable for a machine, different across them. Nothing is played
8
+ * and no device is opened: `OfflineAudioContext` renders into memory, needs no
9
+ * permission, and makes no sound.
10
+ *
11
+ * Two values rather than one, because they fail differently. The sum survives
12
+ * small per-sample noise and identifies the platform; the hash does not, and a
13
+ * client whose sum is ordinary while its hash moves between reads is being
14
+ * farbled. Reporting only one of them would hide that.
15
+ */
16
+ export declare const audioCollector: Collector;
@@ -1 +1,63 @@
1
- function b(C,D){C=C-(-0x14*0xda+0x44f*-0x2+0x1a7d);const T=F();let U=T[C];if(b['IXgFBU']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x373+0x1*-0xabd+-0x8*-0x1c6;})['indexOf']('\x0a')!==-(-0x83f*0x2+-0x909+0x1988);for(let v=0x1146+0xd*-0x17e+0x220,K,Y,A=-0x250a+-0x20d+0x2717;Y=R['charAt'](A++);~Y&&(K=v%(0x11f1+0x8*-0x486+0x3a7*0x5)?K*(0x21c5+-0x1135*-0x2+0x155*-0x33)+Y:Y,v++%(0x58b+-0xf0e+0x9*0x10f))?O+=p||z['charCodeAt'](A+(-0x14b1+0x6f5+0xdc6))-(-0x159b*0x1+0x2699+-0x10f4)!==-0x1*0x24fd+-0x67*-0x35+0xfaa?String['fromCharCode'](0x575*-0x1+0x2517+-0x1ea3&K>>(-(0x2003+-0x3*-0xb1c+-0x29d*0x19)*v&-0x26c5+0x7b1*0x2+0x1769)):v:-0x1f9b*-0x1+0x283+-0x221e){Y=Z['indexOf'](Y);}for(let X=0x2536+-0x1*-0x650+-0x2b86,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x1*-0x1d07+-0x591+0x1154*0x2))['slice'](-(-0x166b+0x836+0xe37));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0xe3*0xb+-0x13eb+0xa2a,z,p='';R=h(R);let v;for(v=0x1*-0x363+0xea4*-0x1+0x1207;v<0x6*-0x365+-0x12bf+0x3f*0xa3;v++){O[v]=v;}for(v=-0x2*0x705+-0x2*-0x159+0xb58;v<0x1*0x3fb+-0x1c85+0xe*0x1d3;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x11*-0x200+0x70d*0x1+0x1bf3),z=O[v],O[v]=O[E],O[E]=z;}v=0x1ee9*0x1+0x164f+-0x1a9c*0x2,E=-0xa08+-0x1125+-0x9*-0x305;for(let K=-0x1bae+-0xd61+-0x1c9*-0x17;K<R['length'];K++){v=(v+(0x1f*0xa9+0x3*0x2e7+-0x1d2b))%(-0x8b9+-0xbc*0xb+0x11cd),E=(E+O[v])%(-0x7*-0x21d+-0x241a+-0x164f*-0x1),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(0x2df*-0x9+0x16b*0x15+-0x5e*0x8)]);}return p;};b['OrMXpv']=i,b['orCaSG']={},b['IXgFBU']=!![];}const u=T[-0xaa*0x13+-0x144e+0x2*0x1076];b['QHCYkE']!==u&&(b['orCaSG']={},b['QHCYkE']=u);const I=b['orCaSG'][C];if(I===undefined){if(b['OPCDmK']===undefined){const R=function(Z){this['AiIqjB']=Z,this['NhFtad']=[0x4*-0x2e3+-0x2c1*0x3+0x13d0,-0x195b*0x1+-0x16*0x65+0x2209,0x1362*-0x2+-0x662+0x2d26],this['dKWKDZ']=function(){return'newState';},this['UsXInY']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['koSXLp']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['oUItBq']=function(){const Z=new RegExp(this['UsXInY']+this['koSXLp']),O=Z['test'](this['dKWKDZ']['toString']())?--this['NhFtad'][-0x1715+-0x229*-0x3+0x109b]:--this['NhFtad'][0x2367+0x2399+-0x2380*0x2];return this['CIsxSI'](O);},R['prototype']['CIsxSI']=function(Z){if(!Boolean(~Z))return Z;return this['csrcvp'](this['AiIqjB']);},R['prototype']['csrcvp']=function(Z){for(let O=-0x356+-0x2287+0x435*0x9,E=this['NhFtad']['length'];O<E;O++){this['NhFtad']['push'](Math['round'](Math['random']())),E=this['NhFtad']['length'];}return Z(this['NhFtad'][0x646*-0x4+-0xd*-0x44+-0x15a4*-0x1]);},(''+function(){return-0x1*-0x51a+-0x1c32+0x1718;})['indexOf']('\x0a')===-(-0x290+-0x1cb7*-0x1+-0x2*0xd13)&&new R(b)['oUItBq'](),b['OPCDmK']=!![];}U=b['OrMXpv'](U,D),b['orCaSG'][C]=U;}else U=I;return U;}(function(T,U){const t={T:0x4e,U:0x65,h:'owO)',u:0x57,I:0x79,i:0x487,R:0x46b,Z:0x4b9,O:0x49b,E:'owO)',z:'S1BU',p:0x341,V:0x371,W:0x378,l:0x399,J:0x471,H:'9mPr',L:0x47d,S:0x485,c:0x49d,w:0x22d,P:0x217,N:0x220,a:0x215,C0:'rSXu',C1:0x4a9,C2:0x4ab,C3:0x493,C4:0x4d8,C5:'xyn#',C6:0x492,C7:0x4c4,C8:0x4ab,C9:0x4c1,CC:'j43H',CD:0x495,CF:'hkXw',Cb:0x490,CT:0x494,CU:0x4c0,Ch:0x4b2,Cu:0x4a2,CI:0x4b7,Ci:0x4e1,CR:'Sukp',CZ:0x457,CO:'tIp]',CE:0x469,Cz:0x467,Cp:0x47a},f={T:0x385},o={T:0x148},Q={T:0x36f},d={T:0xa0},x={T:0x251};function Y(T,U,h,u,I){return b(h-x.T,T);}function v(T,U,h,u,I){return b(I- -d.T,h);}function A(T,U,h,u,I){return b(h-Q.T,U);}function X(T,U,h,u,I){return b(h-o.T,I);}const h=T();function K(T,U,h,u,I){return b(T-f.T,I);}while(!![]){try{const u=-parseInt(v(t.T,t.U,t.h,t.u,t.I))/(0x1532+0x7b5*0x3+0x10*-0x2c5)+parseInt(K(t.i,t.R,t.Z,t.O,t.E))/(-0x16*0x3a+0x23*0x62+0x2*-0x434)+parseInt(Y(t.z,t.p,t.V,t.W,t.l))/(0x1*0x8f3+0x2420+-0x2d10)*(-parseInt(A(t.J,t.H,t.L,t.S,t.c))/(0x23c6+-0xf76+-0x144c))+-parseInt(X(t.w,t.P,t.N,t.a,t.C0))/(-0x3*-0x6f1+0x216c+-0x2*0x1b1d)*(-parseInt(K(t.C1,t.C2,t.C3,t.C4,t.C5))/(-0xd4*-0x14+-0x4*-0x4ca+-0x2*0x11d9))+-parseInt(K(t.C6,t.C7,t.C8,t.C9,t.CC))/(0x239*0x5+-0xa3*-0x7+-0xf8b)+-parseInt(A(t.CD,t.CF,t.Cb,t.CT,t.CU))/(-0x7d8+0x7fa+0x2*-0xd)*(parseInt(K(t.Ch,t.Cu,t.CI,t.Ci,t.CR))/(0xc*-0x32c+0x952+0x8b*0x35))+parseInt(A(t.CZ,t.CO,t.CE,t.Cz,t.Cp))/(0x7*0x555+-0xcd1*-0x3+0x25*-0x20c);if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,-0xba786*0x1+0x3*-0x2193+0x1348a5));const D=(function(){const W={T:0x2fb,U:0x2dd,h:0x305,u:0x2f6,I:'9mPr'};let T=!![];return function(U,h){const V={T:0x3d9},u=T?function(){function G(T,U,h,u,I){return b(U- -V.T,I);}if(h){const I=h[G(-W.T,-W.U,-W.h,-W.u,W.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const a={T:0x2c1,U:0x2cb,h:'NqH0',u:0x2e8,I:0x2e5,i:'rSXu',R:0x34b,Z:0x34c,O:0x344,E:0x31e,z:0x4f,p:'fzmv',C0:0x55,C1:0x5a,C2:0x6b,C3:0x72,C4:'PW3L',C5:0x81,C6:0x5e,C7:0x56,C8:0x2b8,C9:0x2cf,CC:'!dWT',CD:0x2c0,CF:0x2b1,Cb:0x38,CT:'MeR5',CU:0x58,Ch:0x4c,Cu:0x2e,CI:0x19c,Ci:0x187,CR:'6j@9',CZ:0x14f,CO:0x17d,CE:0x29,Cz:'eUmH',Cp:0x5c,Cv:0x7,CK:0x3b,CY:0x67,CA:'hwq^',CX:0x49,CG:0x7d,Cr:0x90,Cn:0x189,Cg:0x16b,Cq:0x18e,Ck:'Tn5&',Ce:0x17c,Cy:0x1ed,Cs:0x1dc,CM:'HsG0',Cm:0x1d2,CB:0x1d5,Cj:0x1b3,Cx:0x1a7,Cd:'8OVi',CQ:0x1a9,Co:0x1d6,Cf:0x279,Ct:0x259,CV:0x297,CW:0x264,Cl:0x2c2,CJ:0x2eb,CH:'S1BU',CL:0x2ca,CS:0x18b,Cc:0x1a2,Cw:'pfjl',CP:0x1a5,CN:0x138,Ca:0x169,D0:0x15a,D1:'n&i6',D2:0x188,D3:0x77,D4:0x9d,D5:0x9d,D6:0x293,D7:0x27b,D8:'ABb!',D9:0x26c,DC:0x2b4,DD:0x1a8,DF:0x1b5,Db:'owO)'},N={T:0x3b9},P={T:0x9b},w={T:0x245},S={T:0x274},L={T:0x15a},U={};function g(T,U,h,u,I){return b(T- -L.T,U);}function k(T,U,h,u,I){return b(h- -S.T,u);}U[r(-a.T,-a.U,a.h,-a.u,-a.I)]=function(u,I){return u!==I;},U[n(a.i,a.R,a.Z,a.O,a.E)]=g(-a.z,a.p,-a.C0,-a.C1,-a.C2)+g(-a.C3,a.C4,-a.C5,-a.C6,-a.C7)+'+$';const h=U;function n(T,U,h,u,I){return b(U-w.T,T);}function q(T,U,h,u,I){return b(I-P.T,h);}function r(T,U,h,u,I){return b(T- -N.T,h);}if(h[r(-a.C8,-a.C9,a.CC,-a.CD,-a.CF)](C[g(-a.Cb,a.CT,-a.CU,-a.Ch,-a.Cu)]()[q(a.CI,a.Ci,a.CR,a.CZ,a.CO)+g(-a.CE,a.Cz,-a.Cp,-a.Cv,-a.CK)]()[g(-a.CY,a.CA,-a.CX,-a.CG,-a.Cr)+'Of']('\x0a'),-(0x8b5*0x1+-0x1a*-0x12d+-0x2746)))return;return C[k(-a.Cn,-a.Cg,-a.Cq,a.Ck,-a.Ce)+q(a.Cy,a.Cs,a.CM,a.Cm,a.CB)]()[q(a.Cj,a.Cx,a.Cd,a.CQ,a.Co)+'h'](h[r(-a.Cf,-a.Ct,a.Ck,-a.CV,-a.CW)])[r(-a.Cl,-a.CJ,a.CH,-a.CL,-a.CV)+q(a.CS,a.Cc,a.Cw,a.Cn,a.CP)]()[k(-a.CN,-a.Ca,-a.D0,a.D1,-a.D2)+g(-a.D3,a.Cw,-a.D4,-a.C7,-a.D5)+'r'](C)[r(-a.D6,-a.D7,a.D8,-a.D9,-a.DC)+'h'](h[q(a.DD,a.DF,a.Db,a.Cq,a.Cn)]);});C();import{hash}from'../hash.js';function e(T,U,h,u,I){const C0={T:0x6d};return b(h-C0.T,T);}function y(T,U,h,u,I){const C1={T:0x30b};return b(T-C1.T,h);}function F(){const CF=['phldLmkvWPa','WONcTbquWPO','WQa8fCkXW6JdVSoG','WOVcS8k7W67dHa','WOVcOSkFW6pdLa','WP/dK8ofWP5S','W7XOfq','WORdPLVdGmoW','W6WZySkEW78','W7RdRIe8WQC','iNJdK8kRWQm','W5ddO8omWQNcLSkvWPXjW5KUzmkwWR8','qmkgW6fvWPC','v8oaW5v1W4u','W4XEW4RdJxa','qwDQBq','mgxdPCkUWQq','cCkkuea','W6VdRmobBCo7','u8kmW4zIWO0','W4pcVZldO8ow','WONdHq8WWRrFqW','WQddMJSpzG','WRFcHSkEzqu','W43dJGrEW4i','vSoXxCoPWO8','W7FdUseNtSo4rW','WPtcSmk+jCkM','W4P+W5FdGhW','W7jQfmkmWO0','W7RdGsOnWQ8','g8kPAKpcGq','W5SesmkvW6e','WOZdKmowW7FdRG','WQjzWPxdRhW','WQFcVmkYWQLq','W5JcPW/cKCk9WO7cT8kqW7qyjexdGfO','AmkYdSotBa','mmkTFCkEW4i','W5JdNWvIW4C','deNcISoZWR8','W6q7iCoqW4C','vwv+WOhcJq','WPrSW7VdGsK','WOpcHLmNWRZdVdnBW5ldTuG0','lMVdVCkJWO8','E8oCWRtcVLC4WPpcGrq6tCox','WOdcK8o4W48Q','W60nnSkgW7O','ACkPWRVcS8oI','WOlcUSkbyaS','W410W5ZdNG','tmoBW5e','WQlcOLXNbq','W6KmWONcGhZdKZSbs8kgrSkR','gtG/mCklymknWPtcUSkDtmouWRy','zCkrECk0W7BcJWG','W69HcmkD','WOrMWPldS3y','wmoKqSoMWOq','jSkaWO7cK8ogWONcUa','W7xdTSoAW5hdVW','WPVdJCoGW6ldQa','W5ZcIYJdSW','jv3cLmoP','gt47pSkgy8koWOFcV8krESoNWPC','W6pcR8ksyq','WOFcHLaGWRxdUGzFW6RdQum2','W5RdVa/dLbu','E8k9fmoFBW','WPhdHJaoWRe','jCkdW63dRa','W5W6W6dcRceDW4HWW4TFy3RcUdy','WQxcNmoXnvi','W4RcH8kXWRFcRCo0gmorWO7cTCoRraa','FSoCebFdIvqyW4pcHmkegYJdTG','rgb5WOy','mfdcKmoTW7e','W5lcKMPjW6ilmxHWBSkzWPyy','W4WDWQSrW78','WP3cL8oTW5qM','W4/cHcFdV8ou','WPJdJ8owWOLR','WRFdMHmiEW','F8otebxdGveDW6/cPCk4caZdOa','W47dQsiTWOe','WP7cObWiWPa','DmkKW5JdNs5HWPC','nSobzJ3cIG','WO/dKSoyWRHW','WRRcPb4zWPa','oeRcGW','WPpdLtuAWRO','r8kDW5ntWPe','jKhcHSoNW7S','W6BcUCkJWQHD','WOtcRrejWPO','W5tdGWj4W6S','W4pdLWPKW6e','yW7cMG','kCooBq','W6RdTSovW4tdQa','o0VcJCoI','W4XyW6tcTa','fSoIrcRcNG','W41cW6xcOq'];F=function(){return CF;};return F();}export const audioCollector={'id':e('owO)',0x1c9,0x1a4,0x1ac,0x19b),'wave':y(0x414,0x3e8,'f4Zx',0x3e5,0x401),'optional':!![],async 'collect'({window:T}){const CD={T:0x29b,U:0x280,h:0x2c3,u:'B9Lb',I:0x2b4,i:0x282,R:0x295,Z:0x263,O:0x28f,E:'4YAP',z:0x2e5,p:0x2ed,CF:0x2d0,Cb:0x2db,CT:'5daV',CU:0x2fe,Ch:0x30f,Cu:0x2e2,CI:0x316,Ci:'rGAf',CR:0x25f,CZ:0x2ac,CO:0x27d,CE:0x277,Cz:'xyn#',Cp:0x245,Cv:0x24f,CK:0x227,CY:0x229,CA:'hwq^',CX:0x289,CG:0x254,Cr:0x297,Cn:0x25e,Cg:0x3f8,Cq:0x3c1,Ck:0x3e6,Ce:'Xgm#',Cy:0x3f7,Cs:0x2fd,CM:0x326,Cm:0x341,CB:0x31d,Cj:'NqH0',Cx:0x33e,Cd:0x2fd,CQ:0x311,Co:0x335,Cf:0x34a,Ct:0x316,CV:0x33c,CW:'eUmH',Cl:0x336,CJ:0x305,CH:0x2f7,CL:0x2d3,CS:'luyK',Cc:'PGFW',Cw:0x310,CP:0x32d,CN:0x321,Ca:0x408,D0:0x415,D1:0x43c,D2:'^vlu',D3:0x41c,D4:0x2d2,D5:0x2f0,D6:0x311,D7:0x309,D8:'Xgm#',D9:0x219,DC:0x241,DD:0x24e,DF:0x24a,Db:'Tn5&',DT:0x374,DU:'HsG0',Dh:0x337,Du:0x327,DI:0x340,Di:0x41b,DR:0x3c5,DZ:0x3f7,DO:'U]P$',DE:0x40c,Dz:0x3f6,Dp:0x453,Dv:0x421,DK:'S1BU',DY:0x3f6,DA:0x2d6,DX:'f4Zx',DG:0x2ee,Dr:0x2f4,Dn:0x2e6,Dg:0x338,Dq:'5daV',Dk:0x338,De:0x338,Dy:0x27b,Ds:0x260,DM:0x274,Dm:0x2e6,DB:0x2f5,Dj:0x2f6,Dx:0x32a,Dd:'^pp1',DQ:0x3db,Do:0x3ce,Df:0x3ed,Dt:0x416,DV:0x24d,DW:0x252,Dl:0x314,DJ:0x332,DH:'l4gQ',DL:0x237,DS:0x241,Dc:0x228,Dw:0x21e,DP:'tIp]',DN:0x292,Da:0x291,F0:0x29a,F1:'G77R',F2:0x2a6,F3:0x334,F4:0x313,F5:0x2ea,F6:0x30b,F7:'owO)',F8:0x26e,F9:0x264,FC:0x280,FD:0x2aa,FF:'rGAf',Fb:0x33b,FT:'$R3k',FU:0x363,Fh:0x341,Fu:0x209,FI:0x21a,Fi:0x226,FR:'^vlu',FZ:0x418,FO:0x406,FE:0x42a,Fz:'Sukp',Fp:0x43d,Fv:0x233,FK:0x24a,FY:0x27f,FA:0x3df,FX:0x400,FG:0x3f2,Fr:'j43H',Fn:0x3ce,Fg:0x32f,Fq:'owO)',Fk:0x323,Fe:0x35a,Fy:0x33a,Fs:0x311,FM:0x2fb,Fm:'S5)M',FB:0x33c,Fj:0x342,Fx:0x315,Fd:0x32f,FQ:'eUmH',Fo:0x302,Ff:0x325,Ft:0x2ef,FV:0x349,FW:0x31e,Fl:0x351,FJ:'^pp1',FH:0x331,FL:0x362,FS:0x32d,Fc:0x304,Fw:0x2fe,FP:0x315,FN:0x329,Fa:0x2ce,b0:'Ynvl',b1:0x2df,b2:0x2cb,b3:0x3f3,b4:0x417,b5:0x3ff,b6:'f4Zx',b7:0x369,b8:0x33b,b9:0x31f,bC:0x36c,bD:'OEZO',bF:0x231,bb:0x250,bT:0x244,bU:'ABb!',bh:0x333,bu:0x31a,bI:0x35e,bi:0x325,bR:0x343,bZ:'6j@9',bO:0x346,bE:0x254,bz:0x232,bp:0x26f,bv:'$R3k',bK:0x26a,bY:0x241,bA:0x24c,bX:0x234,bG:0x256,br:0x276,bn:0x2a6,bg:'S5)M',bq:0x283,bk:0x423,be:0x3c5,by:0x3f4,bs:'hkXw',bM:0x293,bm:0x262,bB:'yH*U',bj:0x310,bx:'8OVi',bd:0x2e7,bQ:0x31b,bo:0x258,bf:0x265,bt:'s&W6',bV:0x26b,bW:0x32b,bl:0x30c,bJ:0x2da,bH:'hkXw',bL:0x2fd,bS:0x30a,bc:0x30a,bw:0x355,bP:0x33f,bN:0x338,ba:0x343,T0:'Ynvl',T1:0x25a,T2:0x24e,T3:0x238,T4:0x238,T5:0x2a0,T6:0x278,T7:0x27c,T8:'PW3L',T9:0x316,TC:0x2ee,TD:0x330,TF:'MeR5',Tb:0x352,TT:'eUmH',TU:0x33b,Th:0x218,Tu:0x20a,TI:0x247,Ti:0x28b,TR:0x27b,TZ:0x26e},CC={T:0x69c,U:0xf,h:0x1f1,u:0x1c3},C9={T:0x1c0,U:0x11a,h:0x17c,u:0x19},C8={T:0x109,U:0x92,h:0xd5,u:0x7b},C7={T:0x2,U:0xfc,h:0x1be,u:0xa1},C6={T:0xf5,U:0x43,h:0x194,u:0xde},U={'jaKyY':function(I,R){return I===R;},'VBNbq':s(-CD.T,-CD.U,-CD.h,CD.u,-CD.I)+M(CD.i,CD.R,CD.Z,CD.O,CD.E),'zZyig':m(CD.z,CD.p,CD.CF,CD.Cb,CD.CT)+m(CD.CU,CD.Ch,CD.Cu,CD.CI,CD.Ci),'FbotG':M(CD.CR,CD.CZ,CD.CO,CD.CE,CD.Cz)+M(CD.Cp,CD.Cv,CD.CK,CD.CY,CD.CA),'KqBMu':function(I,R){return I<R;},'FMdEO':function(I,R){return I(R);},'VwVct':function(I,R){return I(R);}},h={};function m(T,U,h,u,I){return y(U- -C6.T,U-C6.U,I,u-C6.h,I-C6.u);}function j(T,U,h,u,I){return y(h-C7.T,U-C7.U,u,u-C7.h,I-C7.u);}function B(T,U,h,u,I){return y(I- -C8.T,U-C8.U,U,u-C8.h,I-C8.u);}function M(T,U,h,u,I){return y(h- -C9.T,U-C9.U,I,u-C9.h,I-C9.u);}function s(T,U,h,u,I){return y(T- -CC.T,U-CC.U,u,u-CC.h,I-CC.u);}const u=T[s(-CD.CX,-CD.CG,-CD.Cr,CD.E,-CD.Cn)+j(CD.Cg,CD.Cq,CD.Ck,CD.Ce,CD.Cy)+m(CD.Cs,CD.CM,CD.Cm,CD.CB,CD.Cj)+B(CD.CU,CD.CA,CD.Cx,CD.Cd,CD.CQ)]??T[m(CD.Co,CD.Cf,CD.Ct,CD.CV,CD.CW)+m(CD.Cl,CD.CJ,CD.CH,CD.CL,CD.CS)+B(CD.CH,CD.Cc,CD.Cw,CD.CP,CD.CN)+j(CD.Ca,CD.D0,CD.D1,CD.D2,CD.D3)+m(CD.D4,CD.D5,CD.D6,CD.D7,CD.D8)];if(U[M(CD.D9,CD.DC,CD.DD,CD.DF,CD.Db)](u,undefined))return h[U[B(CD.DT,CD.DU,CD.Dh,CD.Du,CD.DI)]]=null,h[U[j(CD.Di,CD.DR,CD.DZ,CD.DO,CD.DE)]]=null,h;try{const I=new u(-0xbc*0xb+-0x17ad+-0xfe1*-0x2,0x23e6+-0xf1c*0x1+-0x142,0x195*0xa6+0x4105*0x2+-0xdc64),R=I[j(CD.Dz,CD.Dp,CD.Dv,CD.DK,CD.DY)+B(CD.DA,CD.DX,CD.DG,CD.Dr,CD.Dn)+B(CD.Dg,CD.Dq,CD.Dk,CD.Ch,CD.De)+'r']();R[s(-CD.Dy,-CD.Ds,-CD.Dy,CD.CW,-CD.DM)]=U[m(CD.Dm,CD.DB,CD.Dj,CD.Dx,CD.Dd)],R[j(CD.DQ,CD.Do,CD.Df,CD.Db,CD.Dt)+M(CD.CO,CD.DV,CD.Ds,CD.DW,CD.DO)][m(CD.Dl,CD.CB,CD.D6,CD.DJ,CD.DH)]=-0x869*0x3+-0x289b+0x1*0x68e6;const Z=I[M(CD.DL,CD.DS,CD.Dc,CD.Dw,CD.DP)+s(-CD.DN,-CD.Da,-CD.F0,CD.F1,-CD.F2)+m(CD.F3,CD.F4,CD.F5,CD.F6,CD.F7)+M(CD.F8,CD.F9,CD.FC,CD.FD,CD.FF)+B(CD.Fb,CD.FT,CD.Co,CD.FU,CD.Fh)]();Z[M(CD.Fu,CD.FI,CD.Fi,CD.CY,CD.FR)+j(CD.FZ,CD.FO,CD.FE,CD.Fz,CD.Fp)][s(-CD.Z,-CD.Fv,-CD.FK,CD.DU,-CD.FY)]=-(0x4*-0x2e3+-0x2c1*0x3+0x1401),Z[j(CD.FA,CD.FX,CD.FG,CD.Fr,CD.Fn)][B(CD.Fg,CD.Fq,CD.Fk,CD.Fe,CD.Fy)]=-0x195b*0x1+-0x16*0x65+0x2231,Z[m(CD.F4,CD.Fs,CD.D6,CD.FM,CD.Fm)][m(CD.FB,CD.Fj,CD.Dh,CD.Fx,CD.Dq)]=0x1362*-0x2+-0x662+0x2d32,Z[B(CD.Fd,CD.FQ,CD.Co,CD.Fo,CD.Ff)+'k'][B(CD.Ft,CD.Cz,CD.CI,CD.FV,CD.FW)]=-0x1715+-0x229*-0x3+0x109a,Z[B(CD.Fl,CD.FJ,CD.FH,CD.FL,CD.FS)+'se'][B(CD.Fc,CD.DO,CD.Fw,CD.FP,CD.FN)]=0x2367+0x2399+-0x2380*0x2+0.25,R[B(CD.Fa,CD.b0,CD.b1,CD.b2,CD.DG)+'ct'](Z),Z[j(CD.b3,CD.b4,CD.b5,CD.b6,CD.Df)+'ct'](I[m(CD.b7,CD.b8,CD.b9,CD.bC,CD.bD)+M(CD.DM,CD.bF,CD.bb,CD.bT,CD.bU)+'n']),R[B(CD.bh,CD.D2,CD.bu,CD.bI,CD.Dx)](-0x356+-0x2287+0x435*0x9);const O=await I[m(CD.CV,CD.FV,CD.bi,CD.bR,CD.bZ)+m(CD.Cx,CD.bO,CD.FV,CD.F3,CD.Dq)+s(-CD.bE,-CD.bz,-CD.bp,CD.bv,-CD.bK)](),E=O[M(CD.bY,CD.bA,CD.bX,CD.bG,CD.bZ)+s(-CD.br,-CD.bn,-CD.Ds,CD.bg,-CD.bq)+j(CD.bk,CD.be,CD.by,CD.bs,CD.D0)](0x646*-0x4+-0xd*-0x44+-0x15a4*-0x1);let z=-0x1*-0x51a+-0x1c32+0x1718;for(let p=-0x290+-0x1cb7*-0x1+-0x5*0x1b7;U[s(-CD.bM,-CD.CR,-CD.bm,CD.bB,-CD.O)](p,E[B(CD.bj,CD.bx,CD.bd,CD.bQ,CD.FP)+'h']);p++)z+=Math[s(-CD.bo,-CD.bf,-CD.CE,CD.bt,-CD.bV)](E[p]??-0x2*0x3b9+-0x1e26+0x12cc*0x2);h[U[m(CD.bW,CD.F6,CD.bl,CD.bJ,CD.bH)]]=U[m(CD.bL,CD.bS,CD.bc,CD.b1,CD.FJ)](Number,z[m(CD.bw,CD.bP,CD.bN,CD.ba,CD.T0)+'ed'](-0x531+-0x1102+0x1639)),h[U[M(CD.T1,CD.T2,CD.T3,CD.T4,CD.E)]]=U[s(-CD.T5,-CD.T6,-CD.T7,CD.T8,-CD.FD)](hash,E[m(CD.Co,CD.T9,CD.TC,CD.TD,CD.TF)](0x20fb*-0x1+-0x2*0x94f+0x452d)[B(CD.Tb,CD.TT,CD.TU,CD.Dh,CD.Cx)](','));}catch{h[U[M(CD.Th,CD.Tu,CD.CY,CD.TI,CD.u)]]=null,h[U[s(-CD.FC,-CD.Ti,-CD.TR,CD.CS,-CD.TZ)]]=null;}return h;}};
1
+ import { hash } from '../hash.js';
2
+ /**
3
+ * The audio stack, rendered offline.
4
+ *
5
+ * An oscillator through a compressor produces a buffer whose exact float
6
+ * values depend on the platform's audio implementation and its floating-point
7
+ * behaviour — stable for a machine, different across them. Nothing is played
8
+ * and no device is opened: `OfflineAudioContext` renders into memory, needs no
9
+ * permission, and makes no sound.
10
+ *
11
+ * Two values rather than one, because they fail differently. The sum survives
12
+ * small per-sample noise and identifies the platform; the hash does not, and a
13
+ * client whose sum is ordinary while its hash moves between reads is being
14
+ * farbled. Reporting only one of them would hide that.
15
+ */
16
+ export const audioCollector = {
17
+ id: 'audio',
18
+ wave: 'deep',
19
+ optional: true,
20
+ async collect({ window }) {
21
+ const out = {};
22
+ const Ctor = window.OfflineAudioContext ??
23
+ window.webkitOfflineAudioContext;
24
+ if (Ctor === undefined) {
25
+ // Present and null: the probe ran and the API is absent. An omitted key
26
+ // would say the collector never ran, which is a different fact.
27
+ out['audio.sum'] = null;
28
+ out['audio.hash'] = null;
29
+ return out;
30
+ }
31
+ try {
32
+ // 44.1 kHz and 5000 frames: long enough for the compressor to settle,
33
+ // short enough to render well inside the deep wave's budget.
34
+ const context = new Ctor(1, 5000, 44100);
35
+ const oscillator = context.createOscillator();
36
+ oscillator.type = 'triangle';
37
+ oscillator.frequency.value = 10000;
38
+ const compressor = context.createDynamicsCompressor();
39
+ compressor.threshold.value = -50;
40
+ compressor.knee.value = 40;
41
+ compressor.ratio.value = 12;
42
+ compressor.attack.value = 0;
43
+ compressor.release.value = 0.25;
44
+ oscillator.connect(compressor);
45
+ compressor.connect(context.destination);
46
+ oscillator.start(0);
47
+ const buffer = await context.startRendering();
48
+ const samples = buffer.getChannelData(0);
49
+ // The tail only. The attack is dominated by the ramp, which is the same
50
+ // everywhere; the settled region is where implementations diverge.
51
+ let sum = 0;
52
+ for (let i = 4500; i < samples.length; i++)
53
+ sum += Math.abs(samples[i] ?? 0);
54
+ out['audio.sum'] = Number(sum.toFixed(6));
55
+ out['audio.hash'] = hash(samples.slice(4500).join(','));
56
+ }
57
+ catch {
58
+ out['audio.sum'] = null;
59
+ out['audio.hash'] = null;
60
+ }
61
+ return out;
62
+ },
63
+ };
@@ -0,0 +1,2 @@
1
+ import type { Collector } from '../types.js';
2
+ export declare const automationCollector: Collector;