@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.
- package/dist/behavior/recorder.d.ts +33 -0
- package/dist/behavior/recorder.js +303 -1
- package/dist/hash.d.ts +15 -0
- package/dist/hash.js +27 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -1
- package/dist/native.d.ts +39 -0
- package/dist/native.js +142 -1
- package/dist/registry.d.ts +57 -0
- package/dist/registry.js +108 -1
- package/dist/run.d.ts +10 -0
- package/dist/run.js +128 -1
- package/dist/signals/adblock.d.ts +2 -0
- package/dist/signals/adblock.js +135 -1
- package/dist/signals/apps.d.ts +2 -0
- package/dist/signals/apps.js +191 -1
- package/dist/signals/audio.d.ts +16 -0
- package/dist/signals/audio.js +63 -1
- package/dist/signals/automation.d.ts +2 -0
- package/dist/signals/automation.js +346 -1
- package/dist/signals/behavior.d.ts +17 -0
- package/dist/signals/behavior.js +31 -1
- package/dist/signals/capabilities.d.ts +2 -0
- package/dist/signals/capabilities.js +235 -1
- package/dist/signals/devices.d.ts +2 -0
- package/dist/signals/devices.js +119 -1
- package/dist/signals/display.d.ts +2 -0
- package/dist/signals/display.js +101 -1
- package/dist/signals/errors.d.ts +2 -0
- package/dist/signals/errors.js +84 -1
- package/dist/signals/features.d.ts +2 -0
- package/dist/signals/features.js +951 -1
- package/dist/signals/fonts.d.ts +2 -0
- package/dist/signals/fonts.js +128 -1
- package/dist/signals/integrity.d.ts +2 -0
- package/dist/signals/integrity.js +216 -1
- package/dist/signals/math.d.ts +2 -0
- package/dist/signals/math.js +43 -1
- package/dist/signals/navigator.d.ts +10 -0
- package/dist/signals/navigator.js +81 -1
- package/dist/signals/pointer.d.ts +2 -0
- package/dist/signals/pointer.js +93 -1
- package/dist/signals/render.d.ts +12 -0
- package/dist/signals/render.js +214 -1
- package/dist/signals/screen.d.ts +9 -0
- package/dist/signals/screen.js +80 -1
- package/dist/signals/storage.d.ts +33 -0
- package/dist/signals/storage.js +100 -1
- package/dist/signals/timezone.d.ts +9 -0
- package/dist/signals/timezone.js +63 -1
- package/dist/signals/webrtc.d.ts +2 -0
- package/dist/signals/webrtc.js +168 -1
- package/dist/stable-core.d.ts +128 -0
- package/dist/stable-core.js +187 -1
- package/dist/types.d.ts +54 -0
- package/dist/types.js +15 -1
- package/package.json +2 -1
package/dist/signals/render.js
CHANGED
|
@@ -1 +1,214 @@
|
|
|
1
|
-
(function(T,U){const CC={T:0x56b,U:0x4c1,h:0x48f,u:0x50e,I:'BZ9I',i:0x628,R:0x4f3,Z:0x5a8,O:0x67c,E:'OcA0',z:0x4aa,p:0x478,CD:0x540,CF:0x5a2,Cb:'*!o0',CT:0x426,CU:0x4af,Ch:0x46b,Cu:0x50b,CI:'sHgk',Ci:0x343,CR:0x33a,CZ:0x423,CO:0x36c,CE:'wC11',Cz:0x624,Cp:0x548,Cv:'1hKY',CK:0x5f4,CY:0x5e3,CA:0xb9,CX:')CMQ',CG:0x8d,Cr:0xe8,Cn:0x62,Cg:'DFQl',Cq:0xd9,Ck:0xf,Ce:0xb,Cy:0x78,Cs:0x62e,CM:0x613,Cm:0x580,CB:0x4cd,Cj:'iIQt',Cx:0x4f2,Cd:0x4ad,CQ:0x4a3,Co:0x4f5,Cf:'W@JD',Ct:'wC11',CV:0xa5,CW:0x37,Cl:0x108,CJ:0xe},C9={T:0xe1},C8={T:0x233},C7={T:0x274},C6={T:0x1d0},C5={T:0x274};function A(T,U,h,u,I){return b(h- -C5.T,T);}function X(T,U,h,u,I){return b(U-C6.T,h);}function v(T,U,h,u,I){return b(h-C7.T,I);}function Y(T,U,h,u,I){return b(T- -C8.T,U);}const h=T();function K(T,U,h,u,I){return b(u-C9.T,I);}while(!![]){try{const u=parseInt(v(CC.T,CC.U,CC.h,CC.u,CC.I))/(-0x2408+0x1311+0x87c*0x2)+-parseInt(v(CC.i,CC.R,CC.Z,CC.O,CC.E))/(0x107*0x24+-0xed1+-0x1629)+-parseInt(v(CC.z,CC.p,CC.CD,CC.CF,CC.Cb))/(-0x2*-0x751+0xe1f+0x11b*-0x1a)*(-parseInt(v(CC.CT,CC.CU,CC.Ch,CC.Cu,CC.CI))/(0x1*-0x1a5+-0x223d+-0x5*-0x72e))+parseInt(K(CC.Ci,CC.CR,CC.CZ,CC.CO,CC.CE))/(-0x406*0x5+-0x316+0x1739*0x1)*(parseInt(X(CC.Cz,CC.Cp,CC.Cv,CC.CK,CC.CY))/(0xd2c+-0x164b+-0x925*-0x1))+-parseInt(Y(CC.CA,CC.CX,CC.CG,CC.Cr,CC.Cn))/(0x513*-0x5+0x110c*-0x2+0x5*0xbe6)*(parseInt(A(CC.Cg,-CC.Cq,-CC.Ck,CC.Ce,CC.Cy))/(-0x2496+-0x16ba+0x1dac*0x2))+parseInt(v(CC.Cs,CC.CM,CC.Cm,CC.CB,CC.Cj))/(-0x8*-0x18d+-0xd0e+-0x7*-0x19)*(-parseInt(v(CC.Cx,CC.Cd,CC.CQ,CC.Co,CC.Cf))/(-0x1f35*0x1+-0x10bc+0x2ffb))+-parseInt(A(CC.Ct,-CC.CV,CC.CW,CC.Cl,-CC.CJ))/(-0x2*-0x6bb+-0x20b4+0x1349*0x1);if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,0x67c8+-0x43721*0x2+0x7cc54*0x2));function P(T,U,h,u,I){const CD={T:0x184};return b(h-CD.T,T);}const D=(function(){const Cb={T:0x95,U:'q97C',h:0xb0,u:0x38,I:0x4b};let T=!![];return function(U,h){const u=T?function(){const CF={T:0x303};function G(T,U,h,u,I){return b(T- -CF.T,U);}if(h){const I=h[G(-Cb.T,Cb.U,-Cb.h,Cb.u,Cb.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const CE={T:0x64c,U:0x5bb,h:'ADfs',u:0x607,I:0x5ec,i:0x4d8,R:0x4d3,Z:0x405,O:0x330,E:'b*il',z:0x29c,p:0x1d7,Cz:0x334,Cp:'@IG9',Cv:0x268,CK:0x62f,CY:0x5dc,CA:'*%p3',CX:0x5da,CG:0x569,Cr:0x5b4,Cn:0x645,Cg:'f*aQ',Cq:0x699,Ck:0x639,Ce:0x376,Cy:0x32d,Cs:0x24d,CM:'s)m4',Cm:0x2b1,CB:0x246,Cj:0x373,Cx:0x1e7,Cd:0x2b6,CQ:'RrT*',Co:0x17,Cf:0x63,Ct:0x1a,CV:0x48,CW:'zzRA',Cl:0x20b,CJ:0x23c,CH:0x2c7,CL:0x23e,CS:'&BzX',Cc:0x41c,Cw:0x3e2,CP:0x29b,CN:0x341,Ca:'q97C',D0:0x575,D1:0x5e1,D2:'d5&h',D3:0x6a3,D4:0x60c,D5:0xd3,D6:0x14c,D7:0x1c0,D8:'wC11',D9:0x197,DC:0x56c,DD:0x568,DF:'#j^j',Db:0x620,DT:0x499,DU:0x470,Dh:0x4c0,Du:'6nnl',DI:0x582,Di:0x4b4,DR:0x4dd,DZ:0x57f,DO:0x4fc,DE:0x49e,Dz:0x2e2,Dp:0x1f0,Dv:0x2ae,DK:0x22a,DY:'6Z*(',DA:0x51c,DX:0x529,DG:0x4cd,Dr:0x3f7,Dn:0x2f4,Dg:0x33b,Dq:0x399,Dk:'zH5y',De:0x2ff,Dy:0x274,Ds:0x32a,DM:0x344,Dm:0x33c},CO={T:0xa2},CZ={T:0x2da},CR={T:0x358},Ci={T:0x13d},CI={T:0x42},U={};U[r(CE.T,CE.U,CE.h,CE.u,CE.I)]=function(u,I){return u!==I;},U[n(CE.i,CE.R,CE.Z,CE.O,CE.E)]=g(CE.z,CE.p,CE.Cz,CE.Cp,CE.Cv)+r(CE.CK,CE.CY,CE.CA,CE.CX,CE.CG)+'+$';function k(T,U,h,u,I){return b(u- -CI.T,I);}function n(T,U,h,u,I){return b(h-Ci.T,I);}function q(T,U,h,u,I){return b(h- -CR.T,I);}const h=U;function r(T,U,h,u,I){return b(U-CZ.T,h);}if(h[r(CE.Cr,CE.Cn,CE.Cg,CE.Cq,CE.Ck)](C[g(CE.Ce,CE.Cy,CE.Cs,CE.CM,CE.Cm)]()[k(CE.CB,CE.Cj,CE.Cx,CE.Cd,CE.CQ)+q(-CE.Co,CE.Cf,CE.Ct,CE.CV,CE.CW)]()[k(CE.Cl,CE.CJ,CE.CH,CE.CL,CE.CS)+'Of']('\x0a'),-(0x190*-0x7+-0x3*-0x9c1+-0xe*0x14f)))return;function g(T,U,h,u,I){return b(I- -CO.T,u);}return C[k(CE.Cc,CE.Cw,CE.CP,CE.CN,CE.Ca)+r(CE.D0,CE.D1,CE.D2,CE.D3,CE.D4)]()[g(CE.D5,CE.D6,CE.D7,CE.D8,CE.D9)+'h'](h[r(CE.DC,CE.DD,CE.DF,CE.Db,CE.DT)])[r(CE.DU,CE.Dh,CE.Du,CE.DI,CE.Di)+r(CE.DR,CE.DZ,CE.h,CE.DO,CE.DE)]()[k(CE.Dz,CE.Dp,CE.Dv,CE.DK,CE.DY)+n(CE.DA,CE.DX,CE.DG,CE.Dr,CE.Ca)+'r'](C)[g(CE.Dn,CE.Dg,CE.Dq,CE.Dk,CE.De)+'h'](h[n(CE.Dy,CE.Ds,CE.DM,CE.Dm,CE.CM)]);});function F(){const DF=['W70AbMe','WOu5DrX9W797hCkcW7CUW7W','W73cMmosb8k6','W7eEW4JdPSor','WOhdVwtdVNC','WPddS8ojamo9','dSkFWOhdHx4','W6NdNSouWRTc','W7WsW7Kt4PMG','WOlcQ8oCcmof','W4S7W40','W4mHm1eP','oMGTmYe','W68NW5dcVSoC','WPldVeRcRqS','WRhdNMhcHdG','aSkoWO3dH0O','WP7dPbBcTmoV','w8ojFNFcTG','WQLyWR5Wda','vrvGBmkq','AdDOz8kq','WPhdUfRcJb8','W70nW57cQZW','WQu0xsVdHa','WOJdRSoeoca','udPZ','WOm5DHz5WOLWdCkHW5mT','ESoBCa','W4dcGLZcUry','emomvYRdLW','e1ddQuKh','W6DpWPlcHCk6','WQC0WOFcVLlcTZ7cLfBcMWK','WQxdOsFcLSoz','WQBcNCkw','W5ZdH8oqWRy','bwfMwCos','tteYs8kx','WR4hfCo0WPG','W4HwW6RdRG','WQSDsZldPG','iSk3rSkBBG','W6WYxSocAW','W7OMoefB','WOCExaZdVW','cSkQqq','W6ZcRSoUcCo/','rSoKWPpdThG','uIWcWQ4','e8kUWPNdLMu','WPpdHcpcP8o/','DmouvmkKWQG','WR3cKSoyfSkr','w8kcfI4S','rc8MfCkt','rCoaCNdcJa','k1hcRmkX','A8kEeWCK','W4SkfMPf','m8kDW4u','xINdQG','WQVdNNFcHIy','WOz9WPhdSCkB','nmkhW4CxWPK','WRSNW7ddTM9olXW','vZFcGSo0wG','jaNcMmkZW5m','WR/dUsBcKmoF','c8oJWO/dO34','Eg7dTCk7W50','W5nJWQW','W6xcIvpcNWu','eNNdKxqF','WPtdUx3dNNS','E8kYhaLP','zGrtka','W5mSW7/cRWW','vsH4','rJjThG','W6NdO8oiWRTD','W64UouH9','WQRdMJRcH8o1','DXL6nu8','WPVdTwtdGw4','rSocEx7cIG','imokWQZdVxS','rmoBW4hcNYG','u8oZudddLW','CWDUcei','gmkmWOddKM8','ghBdTM4d','W4D0WR/cRSkK','jWvKoci','WOeqvJBdVq','WOrKW4/dKLS','cgddGvBcLG','e8kiWOe','W587pxrT','WQqxcmoLWPm','pMPZlsS','rmo2uc0','WQa7WOFcTvRdHwRcN3FcVXTqW6y','aMddPfBcRG','fMqZmGq','vmkHW6qvW4ulFMyvlta','atJcUCkuW7u','zSoYqN3dQG','W5X+W6ZdTg0','W4tcIu3cHXe','WOldO8oFiIq','W5ZdT8ofwmo9','W7lcIYKzW7S','DmoPx1BcTa','W616W4RdRx8','mgq7','WQxdOIZcNmol','mxu3nsa','W53cKciCW70','WRpdIh9kW7qHh8kOWOdcLq','WPLWWOL4dG','WPtdSmo0','WQxdTJBcGCoF','xmkWW5dcRcNdV3S7WO3cU14','DmoLwuxcSa','vSoYESkc','WQRdICoynmoz','n8kNWRZdSLS','W5lcNCopiSof','W6DjWPdcNq','W5DQnhuP','W7nNW4xdJGW','bCkQqCko','juJcJmoo','xCo6DSkOWPy','CrtdLCklcG','a2FdIh4','W4mHkeq7','W6tcMLlcNGO','z8kIcXio','EH9Oktq','lmoHWRddKe8','vCoNsW','p1lcSCkNfG','W6VdG8oqWO1y','r8oZuutdSW','W7JcTCoVhmoJ','WQddLeJdN0O','WRBcKmkDDqO','m2j+kcS','t3ZdG3tcKW','BCouAxhdQG','W7lcGvlcHWu','kmksW48kWPK','WOJdK3ddGtS','WRRcLCkwWR90zL3dSwG','W6rWW4ZdMfa','WRyugCoUWPy','WRxdPte','W4r2lea','W4hdPCoRWRnL','g8koWPtdGh0','wHZdNSkopq','bCkJWPtdGga','WPVdPtxcK8ox','WOflj8kVda','wSo0F8kaWQm','iXpcMG','W556luCT','uSoCAG','WQvpWOL+ia','WQHpWQvE','W5LJW5BdPaa','v8o8gCoco8owW7zaW4VdNbtdM8og','W4VcJt0ZW5S','vJe+s8kp','xCoRWQ/dR3VdTh4','W4pcPNNcRdy','AmkopbuE','WRVdNMhcSsS','W5JdVmoZrmof','k1hcQ8kGba','yrWhWO5r','WPVcLCkwCbO','yXldQSktla','W6RdJ8oiWRjK','qJpdTmkMdq','n8ovWQtdL1G','W7dcMceFW6y','W57cG8ovmCoE','WRxdLNdcJZ4','CCoPxLJcQW','W75MW5ldMa','vIbiebq','pwJcU8k3ba','W6maW53cHXC','WPX3i8kgcq','zqJdMSktmq','iCkKx8kuDW','W5fAW6xdMde','W6alW4/cR8kx','vSk3oYGI','W6fTW73dSf0','ECoztmk4WRi','W7CjW4BcHGC','W5RdPaRcVmoO','W7L2W6tdJJC','qSoEzhJcLG','W686gSkAAW','WOb6WP9Yja','WRTShG','WOxdRLJcRIW','WRVdNMhcSJ8','W4TOW7VdUuy','WONdKGpcP8oU','Eqq2WP1I','eCkKqSkFDG','tJ3cQmoHzG','W7DJW5/dUWi','xdjbxmkl','kSkdms3cQ3pcGSkthmorW7iH','W7BcLH8oW6a','Emoyq8k4WR8','vYqaWRrv','WQZcLmkADqC','W4DEW6BdOKG','WRNdIxdcKW','W7lcPCo3jmkU','W7vDk3uP','BaT1','W6/cM3VcGaO','W6pcI0K','wtacWRzD','ztvggaq','WO17W7FdSeO','W5BcQmo1lmk9','WQNcHCkMutS','ACo7FmkjWOe','BJqQkWBdLw0R','WPewyW','WQnqWQDEdG','WQhdIxPd','WOJdN8oIdmo5','dCkTiCoaW5C','agRcI8kxmG','WQBdKmo5dXC','p8ovWRBdGKG','ymoTu0FcUq','AmoqzNpdSG','WOn8WPjSmq','WQddMCo9jbK','y8olEG3dSq','WOn3W7ldU3a','WQNcJComj8oL','lxFdRLlcUG','orlcImkUW5q','FHldL8kHmq','euldKMON','W4rlW7BdIcS','jgpdR1aY','WPxdUuy','WP08lCoDWPm','hxDTu8oQ','vmo0FSk2WPO','mSoqWPXU','W7RdI8oSrmof','utrPE8kT','D8o1uvq','W4zkW7FdUxC','WODXWPvXkG','nfRdVSo0wa','W490WQJcPSkp','pHlcUCkQW5m','p1VcQSkgga','W5dcRSk8wmk/zSkWWQ8QWR7cTa','FKpdISkFW7i','W4FcVrmQW50','W63dHSouxCo+','W59MkKiM','W7TUW7VdVXS','qcRcO8o0wG','rYWbWQW','gHdcPCkzW58','WPq0nq','W4DEW6BdOKO','W5uWoCofWQu','EbjwiW','egyOxCkRdLZdMG','W6zdWORcUCki','W44kgMLm','WQLIWRHwdq','eKCgbrG','W5NdQmoPWP9J','WRjUaW','awe/oCkBWOOfxCo6W70','AHVcKSkZ','WPaqyq7dRa','WPiHja','usnPzCku','W5uYWR7cPWW','zrrBovm','FHRdKCkHmG','W5tcPCoLj8k6','WOJdLG/cSmo5','q8o6xJhdKq','aSoRWRzbWOK','keVdSuRcUa','xc9PaL0','WOKcbCovWQO','WQbjWQ9lfW','lwe8o2y','zGqPWO9X','CrtdLCkldq','m8kkW5yFWQO','F8oYzSkcWOm','W4pcTrWYW5m','WOW0m8oC','WO9ZWO12','WRzmWOBdVSop','DHjUi2K','vJfihGi','zGFcLCoCDa','tNNdVSk9W50','W65UWQjAbG','WPq8k8owWQ4','WPpdUCoVbSoL','W7hdICoej1FcNJVcJxDdFa','W63dS8o2WPi','WQPQW6tdLLu','W5VdTSowESo2','vM/dTCkUW5q','rYzuhWe','WRy/wYFdNG','vCoUwSkcWOm','g8oCyCkfWPy','WPfNW7ldSG','v8obBetdMW','lNxdVuiz','kSoCWPD/WQS','W53dVmoZFCoh','AbitFSkU','W7VdH8owWRm','W5fRyfu6','mCoMWOFdMMK','d1VdG0Gr','yZVdI8kgpq','W7fFh3en','WQxcNCkdEG4','W41MC8oqWOqXWQ4nlq','eSkYW6yQWR8','W45HD8kjW7n6W7WEkdDAyvG','uCoTxa','FHzJlt0','WQ00e8o4WRm','W6XWW5ddIq','W78GoL59','eMNcTSoHdG','DG3dICkljW','W78nW7GFqW','E1JdQmo1','kSo3WQJdVv0','WQldHmo9','dCkPy8kuW5C','WRn/W4ZdNLe','WPddPCoHba','tZVdRmk3mW','W6xdICok','WRPyWRjhiq','W4bOWRNcRa','W6aqW6BcImo5','ECoRtGRdUW','gKukfrW','ymkVgHO9','kKm3CW','W4hdH8odWRDt','EXnBkem','W7dcTcaaW6e','W5pcQNJcTIK','DbpcJCoZra','DrHlhvO','W5ZdUmoPySof','fx/cHSkAmq','Fmk+kWCX','tmoTFmkEWOm','ovRdS0JcSG','WPpcVmkWwqi','bCo2CtNdLSkVW7a','j0ngESoB','W67dG8oqWRDt','qSkInYOe','EXrJk3K','bLtdHeqy','bcNcOSkEW6K','c21JuSoP','d33dJ3xcMq','tSonzw7cMW','eghdH1mF','WP/dKaFcPW','pLmmfG','W5tcISoinmoz','WROZWP7cJta','omkwW4ugWOm','uCo0BuxcNW','vd3cPmoYqG','WPZdNG7cUCoE','BXPTjGi','ogRdGfxcGq','BJNcVG','wCoZzW','WOBdKw/cTtm','W5dcVaGLW5a','a2NdILtcKG','WRxdLxi','W7fdcwqB','EX5GpG','WRdcLmkDyqy','W5lcSaS/W5O','WQDflmkhpW','bCkRcxVcGCoVWPerfcTzWPNdPG','WRpdKmoOk8oH','WPtdGWFcRCo5','W7LVW5ZdOa4','a8ovWOddG3y','bMVdKLpcMG','amoQWRzmWPq','WQldJ8oUkCkfFmo3WQO','FYbPE8kC','WRtcKSo9aG4','ySolyaFdUW','WPz4WOL1dq','W4vRW4tdVgK','gNRcQSoQ','pCoKWO7dSgK','WQBcL8o2iSot','le/dVKxcTa','W6/dUmoZFa','WRPXW5NdRaC','WP12a8k3lW','WOFdVCoJf8oO','WQZcIs0iW7m','rd3cSSoftW','W5mlgwHN','W45lW7BdOKW','W6zJW5/dQGy','W6JdG8owWRTc','WQ7dTNNcMZK','WOVdKNZcIcm','oSksWR3dU0u','WRPCW5FdG3e','ECorAXZdOq'];F=function(){return DF;};return F();}function N(T,U,h,u,I){const Cz={T:0xcb};return b(u-Cz.T,h);}C();import{hash,hashRecord}from'../hash.js';export const canvasCollector={'id':e(0xcc,'BZ9I',0x85,0x54,0xcc)+'s','wave':y(0x432,0x428,0x449,0x3e1,'f*aQ'),'optional':!![],'collect'({document:T}){const Cg={T:'tYee',U:0x5cc,h:0x5cf,u:0x615,I:0x63b,i:'*!o0',R:0x610,Z:0x6aa,O:0x68c,E:0x63e,z:'RrT*',p:0x406,Cq:0x444,Ck:0x4bb,Ce:0x415,Cy:0x542,Cs:0x5a6,CM:0x52c,Cm:0x633,CB:'[K8a',Cj:0x14d,Cx:0x1b9,Cd:0x227,CQ:0x175,Co:0x226,Cf:0x1fd,Ct:0x16a,CV:0x1f7,CW:'lP8[',Cl:0x481,CJ:0x43c,CH:0x3dd,CL:0x52b,CS:'zH5y',Cc:0x598,Cw:0x61f,CP:0x4f8,CN:0x586,Ca:0x3f5,D0:'m^(5',D1:0x4b8,D2:0x407,D3:0x540,D4:0x54d,D5:'zEX!',D6:0x584,D7:0x58c,D8:'q97C',D9:0x437,DC:0x46e,DD:0x424,DF:0x4a2,Db:0x681,DT:'MJ1Z',DU:0x633,Dh:0x6ca,Du:0x63e,DI:0x588,Di:'tYee',DR:0x541,DZ:0x4d5,DO:0x484,DE:'MJ1Z',Dz:0x5f4,Dp:0x556,Dv:0x606,DK:0x60f,DY:0x599,DA:0x5f9,DX:0x68b,DG:0x663,Dr:'nT6)',Dn:0x1e3,Dg:0xd7,Dq:0x12f,Dk:0xe1,De:0x64d,Dy:'6OE]',Ds:0x5ba,DM:0x63e,Dm:0x508,DB:'6Z*(',Dj:0x2af,Dx:0x201,Dd:0x266,DQ:0x2ab,Do:'#j^j',Df:0x639,Dt:0x574,DV:0x603,DW:0x5ef,Dl:0x575,DJ:0x4f5,DH:0x5b6,DL:0x5cb,DS:0x604,Dc:'1hKY',Dw:0x661,DP:0x588,DN:0x71a,Da:'6OE]',F0:0x167,F1:0x18f,F2:0x19a,F3:0x117,F4:0x592,F5:')cax',F6:0x65f,F7:0x731,F8:0x6da,F9:'*%p3',FC:0x548,FD:0x51e,FF:0x5af,Fb:0x5f5,FT:')cax',FU:0x57a,Fh:0x4a3,Fu:0x591,FI:0x604},Cn={T:0x131,U:0x4f6,h:0x139,u:0x19},Cr={T:0x8b,U:0x173,h:0x3d,u:0x112},CG={T:0x1a7,U:0x50a,h:0x7e,u:0xc2},CX={T:0x38,U:0x40f,h:0x1cc,u:0x101},CA={T:0x79,U:0x266,h:0x1b2,u:0xba},U={'BuIhB':function(i,R){return i(R);},'Bapnu':function(i,R){return i===R;},'raYNp':s(Cg.T,Cg.U,Cg.h,Cg.u,Cg.I)+s(Cg.i,Cg.R,Cg.Z,Cg.O,Cg.E)+'h','Ufoev':m(Cg.z,Cg.p,Cg.Cq,Cg.Ck,Cg.Ce)+M(Cg.Cy,Cg.i,Cg.Cs,Cg.CM,Cg.Cm)+j(Cg.CB,Cg.Cj,Cg.Cx,Cg.Cd,Cg.CQ),'CtiYd':function(i,R){return i(R);},'fUCwW':function(i,R){return i(R);},'njsOf':j(Cg.z,Cg.Co,Cg.Cf,Cg.Ct,Cg.CV)+m(Cg.CW,Cg.Cl,Cg.CJ,Cg.CH,Cg.CL)+s(Cg.CS,Cg.Cc,Cg.Cw,Cg.CP,Cg.CN)+'le','JGIDa':M(Cg.Ca,Cg.D0,Cg.D1,Cg.D2,Cg.D3)+M(Cg.D4,Cg.D5,Cg.D6,Cg.D6,Cg.D7)+m(Cg.D8,Cg.D9,Cg.DC,Cg.DD,Cg.DF)+M(Cg.Db,Cg.DT,Cg.DU,Cg.Dh,Cg.Du)+'l'},h={};function B(T,U,h,u,I){return e(T-CA.T,I,h-CA.U,u-CA.h,I-CA.u);}function m(T,U,h,u,I){return e(T-CX.T,T,U-CX.U,u-CX.h,I-CX.u);}const u=U[M(Cg.DI,Cg.Di,Cg.DR,Cg.DZ,Cg.DO)](renderCanvas,T);if(U[s(Cg.DE,Cg.Dz,Cg.Dp,Cg.Dv,Cg.DK)](u,null))return h[U[M(Cg.DY,Cg.z,Cg.DA,Cg.DX,Cg.DG)]]=null,h[U[j(Cg.Dr,Cg.Dn,Cg.Dg,Cg.Dq,Cg.Dk)]]=null,h;h[U[M(Cg.De,Cg.Dy,Cg.Ds,Cg.DM,Cg.Dm)]]=U[j(Cg.DB,Cg.Dj,Cg.Dx,Cg.Dd,Cg.DQ)](hash,u);function M(T,U,h,u,I){return e(T-CG.T,U,h-CG.U,u-CG.h,I-CG.u);}function j(T,U,h,u,I){return e(T-Cr.T,T,u-Cr.U,u-Cr.h,I-Cr.u);}const I=U[s(Cg.Do,Cg.Df,Cg.Dt,Cg.DV,Cg.DW)](renderCanvas,T);h[U[s(Cg.Di,Cg.Dl,Cg.DJ,Cg.DH,Cg.DL)]]=U[M(Cg.DS,Cg.Dc,Cg.Dw,Cg.DP,Cg.DN)](I,u);function s(T,U,h,u,I){return e(T-Cn.T,T,U-Cn.U,u-Cn.h,I-Cn.u);}return h[U[j(Cg.Da,Cg.F0,Cg.F1,Cg.F2,Cg.F3)]]=U[M(Cg.F4,Cg.F5,Cg.F6,Cg.F7,Cg.F8)](readStability,T),h[U[s(Cg.F9,Cg.FC,Cg.FD,Cg.FF,Cg.Fb)]]=U[s(Cg.FT,Cg.FU,Cg.Fh,Cg.Fu,Cg.FI)](measureFractional,T),h;}};function measureFractional(U){const Cm={T:0xd4,U:0x43,h:0x92,u:'nb0$',I:0xd,i:0x60,R:'MP55',Z:0x91,O:0x9d,E:0x3e,z:0x148,p:0x1b4,CB:0x83,Cj:'$S3k',Cx:0x15b,Cd:0x171,CQ:0x1b0,Co:0x138,Cf:'nT6)',Ct:0x137,CV:0xf7,CW:'SQJh',Cl:0x99,CJ:0x95,CH:0x2f,CL:0x18c,CS:'mJDS',Cc:0xc1,Cw:0x3,CP:0xd3,CN:0x233,Ca:0x1f4,D0:0x1f2,D1:'iIQt',D2:0x1f7,D3:0xd1,D4:0x102,D5:0x43,D6:')CMQ',D7:0x30,D8:0xe6,D9:')&Qe',DC:0x67,DD:0xd9,DF:0xe,Db:0x57,DT:0x46,DU:0xa6,Dh:'&BzX',Du:0xcc,DI:0x77,Di:')&Qe',DR:0x8f,DZ:0xff,DO:0x45,DE:0xd4,Dz:0x72,Dp:0x15b,Dv:')cax',DK:0x46b,DY:0x4a6,DA:0x3ff,DX:0x466,DG:'DFQl',Dr:0x449,Dn:0x468,Dg:0x41e,Dq:0x458,Dk:'ADfs',De:0x4b4,Dy:0x5f2,Ds:0x536,DM:0x4e8,Dm:'#j^j',DB:0x5b1,Dj:0x532,Dx:0x4e7,Dd:0x54d,DQ:'MJ1Z',Do:0x4e8,Df:0x58c,Dt:0x526,DV:0x48f,DW:0x245,Dl:0x1de,DJ:0x112,DH:'zzRA',DL:0x1e3,DS:0x37,Dc:0x64,Dw:0x10f,DP:'nb0$',DN:0xa2,Da:0xd3,F0:0x16a,F1:'tYee',F2:0x1fb,F3:0x32e,F4:0x350,F5:0x27a,F6:0x167,F7:0x1e7,F8:0x11e,F9:'SQJh',FC:0x1d4,FD:'b*il',FF:0x430,Fb:0x595,FT:0x4ce,FU:0x4db,Fh:0x36,Fu:0xf2,FI:')cax',Fi:0x56,FR:0x2d,FZ:'s)m4',FO:0x18e,FE:0x14a,Fz:0xf4,Fp:0x158,Fv:0x159,FK:0xe5,FY:'rm(O',FA:0x12d,FX:0x4e,FG:0x12c,Fr:0xf9,Fn:0x109,Fg:0x204,Fq:'zH5y',Fk:0xa8,Fe:0xf5,Fy:0x131,Fs:0x1fd,FM:0x1cb,Fm:0x28f,FB:0x21e,Fj:0x1a0,Fx:0xe8,Fd:0x144,FQ:'b!X8',Fo:0x1af,Ff:0x4a,Ft:0xe3,FV:'Q^j5',FW:0x341,Fl:0x3c4,FJ:0x3e9,FH:0x379,FL:0x65,FS:'*!o0',Fc:0xbb,Fw:0x11,FP:0x1f,FN:0x26b,Fa:0x215,b0:'*!o0',b1:0x1a0,b2:0x230,b3:0x279,b4:0x1f3,b5:'b*il',b6:0x1fc,b7:0x3f,b8:0x8e,b9:0x49,bC:0x11e,bD:0x186,bF:0xfd,bb:'MJ1Z',bT:0x1a2,bU:0x4b,bh:0x107,bu:0x17e,bI:'DFQl',bi:0x115,bR:0x26,bZ:0x134,bO:0xc2,bE:'nT6)',bz:0xe6,bp:0x303,bv:0x2f3,bK:0x277,bY:'zH5y',bA:0x249},CM={T:0x412,U:0x95,h:0x84,u:0x6f},Cs={T:0x344,U:0x104,h:0xc6,u:0x146},Cy={T:0x221,U:0x95,h:0xa3,u:0x1c1},Ck={T:0x51b,U:0x20,h:0x1b6,u:0x188},Cq={T:0x3,U:0x1e8,h:0x1df,u:0x14b};function o(T,U,h,u,I){return y(u- -Cq.T,U-Cq.U,h-Cq.h,u-Cq.u,T);}const h={};function x(T,U,h,u,I){return y(I- -Ck.T,U-Ck.U,h-Ck.h,u-Ck.u,u);}h[x(Cm.T,-Cm.U,Cm.h,Cm.u,-Cm.I)]=d(Cm.i,Cm.R,Cm.Z,-Cm.O,-Cm.E)+'s',h[x(-Cm.z,-Cm.p,-Cm.CB,Cm.Cj,-Cm.Cx)]=function(I,i){return I===i;},h[x(-Cm.Cd,-Cm.CQ,-Cm.Co,Cm.Cf,-Cm.Ct)]=d(Cm.CV,Cm.CW,-Cm.Cl,-Cm.CJ,Cm.CH)+d(Cm.CL,Cm.CS,Cm.Cc,Cm.Cw,Cm.CP);function f(T,U,h,u,I){return y(I- -Cy.T,U-Cy.U,h-Cy.h,u-Cy.u,u);}h[Q(Cm.CN,Cm.Ca,Cm.D0,Cm.D1,Cm.D2)]=x(Cm.D3,Cm.D4,-Cm.D5,Cm.D6,Cm.D7)+d(Cm.D8,Cm.D9,Cm.DC,Cm.DD,Cm.DF)+'ld',h[Q(Cm.Db,Cm.DT,Cm.DU,Cm.Dh,Cm.Du)]=d(-Cm.DI,Cm.Di,Cm.DR,-Cm.DZ,-Cm.DO)+x(-Cm.DE,-Cm.Dz,-Cm.Dp,Cm.D6,-Cm.Cl)+o(Cm.Dv,Cm.DK,Cm.DY,Cm.DA,Cm.DX);function Q(T,U,h,u,I){return y(I- -Cs.T,U-Cs.U,h-Cs.h,u-Cs.u,u);}h[o(Cm.DG,Cm.Dr,Cm.Dn,Cm.Dg,Cm.Dq)]=o(Cm.Dk,Cm.De,Cm.Dy,Cm.Ds,Cm.DM)+o(Cm.Dm,Cm.DB,Cm.Dj,Cm.Dx,Cm.Dd)+o(Cm.DQ,Cm.Do,Cm.Df,Cm.Dt,Cm.DV)+f(Cm.DW,Cm.Dl,Cm.DJ,Cm.DH,Cm.DL);function d(T,U,h,u,I){return y(I- -CM.T,U-CM.U,h-CM.h,u-CM.u,U);}h[Q(-Cm.DS,Cm.Dc,Cm.Dw,Cm.DP,Cm.DN)]=Q(-Cm.DO,Cm.Da,Cm.F0,Cm.F1,Cm.DR)+f(Cm.F2,Cm.F3,Cm.F4,Cm.Dk,Cm.F5)+'ii';const u=h;try{const I=U[f(Cm.F6,Cm.F7,Cm.F8,Cm.F9,Cm.FC)+o(Cm.FD,Cm.FF,Cm.Fb,Cm.FT,Cm.FU)+x(-Cm.Fh,Cm.Fu,Cm.E,Cm.FI,Cm.Fi)](u[d(Cm.FR,Cm.FZ,Cm.FO,Cm.FE,Cm.Fz)])[x(-Cm.Fp,-Cm.Fv,-Cm.FK,Cm.FY,-Cm.FA)+x(-Cm.FX,-Cm.FG,-Cm.Fr,Cm.Di,-Cm.Fn)]('2d');if(u[d(Cm.Fg,Cm.Fq,Cm.Fk,Cm.Fe,Cm.Fy)](I,null))return null;I[f(Cm.Fs,Cm.FM,Cm.Fm,Cm.D1,Cm.FB)]=u[Q(Cm.Fj,Cm.Fx,Cm.Fd,Cm.FQ,Cm.Fo)];let i=-0x1e3a+-0x4*-0x26e+-0xfa*-0x15;for(const R of[u[d(-Cm.Ff,Cm.Cj,Cm.Ft,Cm.FA,Cm.DR)],u[o(Cm.FV,Cm.FW,Cm.Fl,Cm.FJ,Cm.FH)],u[d(Cm.FL,Cm.FS,Cm.Fc,Cm.Fw,-Cm.FP)],u[f(Cm.FN,Cm.FK,Cm.Fa,Cm.b0,Cm.b1)]]){const {width:Z}=I[Q(Cm.b2,Cm.b3,Cm.b4,Cm.b5,Cm.b6)+d(-Cm.DT,Cm.Dm,-Cm.b7,-Cm.b8,Cm.b9)+'t'](R);if(!Number[f(Cm.bC,Cm.bD,Cm.bF,Cm.bb,Cm.bT)+x(-Cm.bU,-Cm.bh,-Cm.bu,Cm.bI,-Cm.bi)](Z))return null;if(!Number[Q(Cm.bR,Cm.bZ,Cm.bO,Cm.bE,Cm.bz)+f(Cm.bp,Cm.bv,Cm.bK,Cm.bY,Cm.bA)](Z))i++;}return i;}catch{return null;}}function readStability(U){const Ct={T:0x29c,U:'cr(j',h:0x18b,u:0x232,I:0x1e4,i:')CMQ',R:0x197,Z:0xba,O:0xf5,E:0x5e,z:0x1c8,p:0x15b,CV:0x21f,CW:'i61G',Cl:0x176,CJ:0x1b0,CH:0x117,CL:'Vsp6',CS:0x14f,Cc:0x1d0,Cw:'zEX!',CP:0x518,CN:0x502,Ca:0x56f,D0:0x568,D1:0xb0,D2:0x28,D3:'nb0$',D4:0x17d,D5:0x2e6,D6:0x29f,D7:0x23d,D8:'iIQt',D9:0x1fe,DC:0x184,DD:'nT6)',DF:0x1c0,Db:0x251,DT:0x199,DU:0x255,Dh:0x30e,Du:0x235,DI:0x77,Di:0xf2,DR:'zzRA',DZ:0xa7,DO:0x2b,DE:0xc4,Dz:0x16c,Dp:'rm(O',Dv:0xd1,DK:0x70,DY:0x20b,DA:'#j^j',DX:0x2ae,DG:0x2df,Dr:0x243,Dn:'cr(j',Dg:0x603,Dq:0x582,Dk:0x5e1,De:0x522,Dy:0x12c,Ds:0x174,DM:0x1cc,Dm:'DFQl',DB:0x11a,Dj:'q97C',Dx:0x0,Dd:0x93,DQ:0x95,Do:0x86,Df:0x13d,Dt:0x1ee,DV:'wC11',DW:0x1d5,Dl:0x1dc,DJ:0x26a,DH:0x234,DL:'sHgk',DS:0x1f5,Dc:0xb3,Dw:0x91,DP:'*!o0',DN:0x170,Da:0x182,F0:'sHgk',F1:0x69c,F2:0x642,F3:0x5b4,F4:0x617,F5:0x1e6,F6:0x119,F7:0x13a,F8:'*%p3',F9:0x42,FC:0x2bf,FD:'sHgk',FF:0x2b0,Fb:0x21d,FT:0x1d4,FU:0x50,Fh:0xfb,Fu:'nT6)',FI:0xb9,Fi:0xd,FR:0x32e,FZ:')cax',FO:0x356,FE:0x2d4,Fz:0x31a,Fp:0xcd,Fv:0x1a3,FK:0x263,FY:'iIQt',FA:0x247,FX:0x129,FG:0x185,Fr:0xaa,Fn:0x1cf,Fg:0x203,Fq:'OcA0',Fk:0x218,Fe:0x176,Fy:0x20f,Fs:0x1e1,FM:'#j^j',Fm:0x157,FB:0x17a,Fj:0x1df,Fx:0x15b,Fd:'@IG9',FQ:0x278,Fo:0x2cb,Ff:'BZ9I',Ft:0x250,FV:0x327,FW:0x2f6,Fl:0x2f2,FJ:'&BzX',FH:0x2cd,FL:0x213,FS:0x1d1,Fc:0x144,Fw:0x1de,FP:0x154,FN:0x164,Fa:0x132,b0:0x1e8,b1:')&Qe',b2:0x17f,b3:0x205,b4:0x594,b5:0x581,b6:0x5a6,b7:0x4af,b8:0x2a9,b9:'iIQt',bC:0x2de,bD:0x295,bF:0x34e,bb:0x12f,bT:'b*il',bU:0x13c,bh:'W@JD',bu:0x3a,bI:0x2a,bi:0xa5,bR:0x17,bZ:'q97C',bO:0x567,bE:0x57a,bz:0x645,bp:0x62f,bv:'Q^j5',bK:0x709,bY:0x650,bA:0x57e,bX:0x647,bG:0x1c9,br:0x256,bn:')&Qe',bg:0x256,bq:0xe8,bk:0x614,be:0x545,by:0x503,bs:0xc9,bM:0x174,bm:0x13a,bB:'zH5y',bj:0x5e4,bx:0x621,bd:0x62d,bQ:0x54b,bo:0x25d,bf:'6Z*(',bt:0x280,bV:0x2d5,bW:0x221,bl:'MJ1Z',bJ:0x4df,bH:0x4f4,bL:0x5af,bS:0x54b,bc:0x1a4,bw:0x150,bP:0xdf,bN:0x1be,ba:0xe1,T0:'*!o0',T1:0x153,T2:0x1aa,T3:0x37b,T4:'m^(5',T5:0x35f,T6:0x363,T7:0x1d8,T8:0x289,T9:'f*aQ',TC:0x11f,TD:0x12e,TF:0x1cc,Tb:0x1ed,TT:0xc8,TU:0xa2,Th:'i61G',Tu:0x4,TI:0x1a7,Ti:0xfd,TR:0x118,TZ:0x57,TO:0x175,TE:0x1be,Tz:0x198,Tp:0x296,Tv:0x7d,TK:'6OE]',TY:0x2c,TA:0x1a6,TX:0x180,TG:'q97C',Tr:0x1f9,Tn:0x207,Tg:'zEX!',Tq:0x72,Tk:0xec,Te:0x66,Ty:0x61,Ts:'iIQt',TM:0xb6,Tm:0x7f,TB:0x5f,Tj:0x1d,Tx:'BZ9I',Td:0x4a,TQ:0x37,To:0x8,Tf:0x8b,Tt:'6Z*(',TV:0x7,TW:0x8b,Tl:0x5d,TJ:0x104,TH:0x77,TL:'s)m4',TS:0x1bd,Tc:0x19c,Tw:0x711,TP:0x655,TN:0x65a,Ta:0x615,U0:'5Mx&',U1:0x330,U2:0x2d8,U3:0x391,U4:'[K8a',U5:0x18e,U6:0x83,U7:0xef,U8:0xbe,U9:'SQJh',UC:0x541,UD:0x611,UF:0x5aa,Ub:0x6cf,UT:0x189,UU:0x2f7,Uh:0x22e,Uu:0x191,UI:'6nnl',Ui:0x5ea,UR:0x67d,UZ:0x6be,UO:0x646},Cf={T:0x12c,U:0x9e,h:0xe3,u:0x12f},CQ={T:0xa0,U:0x53e,h:0x23,u:0x18},Cd={T:0x99,U:0x144,h:0xeb,u:0x9b},Cj={T:0x183,U:0x218,h:0x6,u:0x1bb},CB={T:0x99,U:0x8e,h:0x1c,u:0xfc};function l(T,U,h,u,I){return e(T-CB.T,h,T-CB.U,u-CB.h,I-CB.u);}const h={};h[t(Ct.T,Ct.U,Ct.h,Ct.u,Ct.I)]=V(Ct.i,-Ct.R,-Ct.Z,-Ct.O,-Ct.E)+'s';function t(T,U,h,u,I){return e(T-Cj.T,U,u-Cj.U,u-Cj.h,I-Cj.u);}h[W(Ct.z,Ct.p,Ct.CV,Ct.CW,Ct.Cl)]=function(I,i){return I===i;},h[l(Ct.CJ,Ct.CH,Ct.CL,Ct.CS,Ct.Cc)]=J(Ct.Cw,Ct.CP,Ct.CN,Ct.Ca,Ct.D0)+l(Ct.D1,-Ct.D2,Ct.D3,Ct.E,Ct.D4);function W(T,U,h,u,I){return e(T-Cd.T,u,U-Cd.U,u-Cd.h,I-Cd.u);}h[W(Ct.D5,Ct.D6,Ct.D7,Ct.D8,Ct.D9)]=t(Ct.DC,Ct.DD,Ct.DF,Ct.Db,Ct.DT)+t(Ct.DU,Ct.DD,Ct.Dh,Ct.Du,Ct.DF)+'l\x27',h[l(Ct.DI,Ct.Di,Ct.DR,Ct.DZ,-Ct.DO)]=l(Ct.DE,Ct.Dz,Ct.Dp,Ct.Dv,Ct.DK),h[t(Ct.DY,Ct.DA,Ct.DX,Ct.DG,Ct.Dr)]=J(Ct.Dn,Ct.Dg,Ct.Dq,Ct.Dk,Ct.De),h[W(Ct.Dy,Ct.Ds,Ct.DM,Ct.Dm,Ct.DB)]=V(Ct.Dj,Ct.Dx,Ct.Dd,Ct.DQ,Ct.Do)+l(Ct.Df,Ct.Dt,Ct.DV,Ct.DW,Ct.DW)+W(Ct.Dl,Ct.DJ,Ct.DH,Ct.DL,Ct.DS)+l(Ct.Dc,Ct.Dw,Ct.DP,Ct.DN,Ct.Da)+J(Ct.F0,Ct.F1,Ct.F2,Ct.F3,Ct.F4),h[W(Ct.F5,Ct.F6,Ct.F7,Ct.F8,Ct.F9)]=t(Ct.FC,Ct.FD,Ct.FF,Ct.Fb,Ct.FT)+l(Ct.FU,Ct.Fh,Ct.Fu,Ct.FI,-Ct.Fi)+t(Ct.FR,Ct.FZ,Ct.FO,Ct.FE,Ct.Fz)+W(Ct.Fp,Ct.Fv,Ct.FK,Ct.FY,Ct.FA)+'7)';function J(T,U,h,u,I){return e(T-CQ.T,T,h-CQ.U,u-CQ.h,I-CQ.u);}h[W(Ct.FX,Ct.FG,Ct.Fr,Ct.DV,Ct.Fn)]=function(I,i){return I===i;};const u=h;function V(T,U,h,u,I){return e(T-Cf.T,T,u- -Cf.U,u-Cf.h,I-Cf.u);}try{const I=U[t(Ct.Fg,Ct.Fq,Ct.z,Ct.Fk,Ct.Fe)+W(Ct.R,Ct.Fy,Ct.Fs,Ct.FM,Ct.Fm)+W(Ct.FB,Ct.Fj,Ct.Fx,Ct.Fd,Ct.FQ)](u[t(Ct.Fo,Ct.Ff,Ct.Ft,Ct.FV,Ct.FW)]);I[t(Ct.Fl,Ct.FJ,Ct.FH,Ct.FL,Ct.FS)]=0x12ea+0x162+-0x1370,I[l(Ct.Fc,Ct.Fw,Ct.F8,Ct.FP,Ct.FN)+'t']=-0xc1c+0x1f8b+0xd7*-0x17;const i=I[l(Ct.Fa,Ct.b0,Ct.b1,Ct.b2,Ct.b3)+J(Ct.FM,Ct.b4,Ct.b5,Ct.b6,Ct.b7)]('2d');if(u[t(Ct.b8,Ct.b9,Ct.bC,Ct.bD,Ct.bF)](i,null))return null;i[l(Ct.bb,Ct.R,Ct.bT,Ct.bU,Ct.DY)+V(Ct.bh,-Ct.bu,-Ct.bI,-Ct.bi,Ct.bR)+'ne']=u[J(Ct.bZ,Ct.bO,Ct.bE,Ct.bz,Ct.bp)],i[J(Ct.bv,Ct.bK,Ct.bY,Ct.bA,Ct.bX)]=u[l(Ct.bG,Ct.br,Ct.bn,Ct.bg,Ct.bq)],i[J(Ct.Dj,Ct.bk,Ct.be,Ct.bA,Ct.by)+l(Ct.bs,Ct.bM,Ct.Ff,Ct.Fh,Ct.bm)]=u[J(Ct.bB,Ct.bj,Ct.bx,Ct.bd,Ct.bQ)],i[t(Ct.bo,Ct.bf,Ct.bt,Ct.bV,Ct.bW)+J(Ct.bl,Ct.bJ,Ct.bH,Ct.bL,Ct.bS)](0x1*-0x803+0xdc0+-0xe0*0x6,-0x1c8f+0x59*-0x1d+0x26a5,-0x31f+-0xfb0*-0x1+-0xc53,-0xe5c+-0x349+0x11b9),i[l(Ct.Di,Ct.bc,Ct.Dn,Ct.bw,Ct.bP)+l(Ct.bN,Ct.ba,Ct.T0,Ct.T1,Ct.T2)]=u[t(Ct.T3,Ct.T4,Ct.T3,Ct.T5,Ct.T6)],i[l(Ct.T7,Ct.T8,Ct.T9,Ct.TC,Ct.TD)+t(Ct.Df,Ct.U,Ct.Fn,Ct.TF,Ct.Tb)](u[l(Ct.TT,Ct.TU,Ct.Th,Ct.Tu,Ct.TI)],0x9c8+-0xd8+-0x477*0x2,-0x521+0x3*-0x56b+0x1571),i[W(Ct.Ti,Ct.TR,Ct.TZ,Ct.Dm,Ct.TO)+l(Ct.TE,Ct.T2,Ct.DP,Ct.Tz,Ct.Tp)]=u[l(Ct.E,-Ct.Tv,Ct.TK,-Ct.TY,Ct.Fa)],i[l(Ct.TA,Ct.TX,Ct.TG,Ct.Tr,Ct.Tn)+V(Ct.Tg,-Ct.Tq,-Ct.Tk,-Ct.Te,Ct.Ty)](u[V(Ct.Ts,Ct.TM,-Ct.Tm,Ct.TB,Ct.Tj)],-0x1c17+-0x79*0x1f+-0x2*-0x1561,-0x5*0x6d9+0x254d+0x2ff*-0x1);const R=I[V(Ct.Tx,Ct.Td,Ct.TQ,-Ct.To,-Ct.Tf)+V(Ct.Tt,Ct.TV,Ct.TW,-Ct.Fi,Ct.Tl)]();i[l(Ct.TJ,Ct.TH,Ct.TL,Ct.TS,Ct.Tc)+J(Ct.Fu,Ct.Tw,Ct.TP,Ct.TN,Ct.Ta)+'ta'](-0x3*-0x3df+-0x1*-0x1035+-0x1bd2,0xb14+-0x1e5+-0x92f,I[t(Ct.Fo,Ct.U0,Ct.U1,Ct.U2,Ct.U3)],I[V(Ct.U4,-Ct.U5,-Ct.U6,-Ct.U7,-Ct.U8)+'t']);const Z=I[J(Ct.U9,Ct.UC,Ct.UD,Ct.UF,Ct.Ub)+t(Ct.UT,Ct.T9,Ct.UU,Ct.Uh,Ct.Uu)]();return u[J(Ct.UI,Ct.Ui,Ct.UR,Ct.UZ,Ct.UO)](R,Z);}catch{return null;}}function renderCanvas(U){const Cc={T:0x40e,U:0x3d4,h:0x54f,u:'tYee',I:0x49d,i:0x5c2,R:0x621,Z:0x4ce,O:'MJ1Z',E:0x550,z:0x175,p:'MP55',Cw:0x139,CP:0x162,CN:0x82,Ca:0x273,D0:')CMQ',D1:0x24b,D2:0x21e,D3:0x186,D4:0x4a8,D5:0x49e,D6:0x55e,D7:'[K8a',D8:0x4a1,D9:0x546,DC:0x4b7,DD:'f*aQ',DF:0x4ca,Db:0x567,DT:0x5cb,DU:0x612,Dh:')&Qe',Du:0x580,DI:0x5c3,Di:0x5b9,DR:0x48b,DZ:'mJDS',DO:0x4f5,DE:0x331,Dz:0x2ca,Dp:0x310,Dv:0x339,DK:'RrT*',DY:0x424,DA:0x4c3,DX:0x4ec,DG:'6nnl',Dr:0x437,Dn:0x2bf,Dg:0x213,Dq:0x264,Dk:0x245,De:'&BzX',Dy:0x4df,Ds:0x4c6,DM:0x502,Dm:'SQJh',DB:0x4aa,Dj:0x1ef,Dx:'1hKY',Dd:0x24d,DQ:0x17a,Do:0x20c,Df:0x60d,Dt:0x7af,DV:0x6dd,DW:0x69d,Dl:'6OE]',DJ:0x688,DH:0x588,DL:0x636,DS:0x582,Dc:0x60e,Dw:'zH5y',DP:0x762,DN:0x6d2,Da:0x702,F0:0x404,F1:0x4dd,F2:0x402,F3:'rm(O',F4:0x454,F5:0x505,F6:0x4ef,F7:')&Qe',F8:0x510,F9:0x1ac,FC:0x168,FD:0x205,FF:0x1f0,Fb:0xb2,FT:'cr(j',FU:0x157,Fh:0x114,Fu:0x8b,FI:0x6d0,Fi:0x557,FR:0x626,FZ:0x64c,FO:0x5be,FE:0x4e1,Fz:0x4e0,Fp:'b*il',Fv:0x55f,FK:0x3f0,FY:0x443,FA:0x4a7,FX:'i61G',FG:0x471,Fr:0x537,Fn:0x5f6,Fg:0x5b5,Fq:'E^#J',Fk:0x51f,Fe:0x5be,Fy:0x4fe,Fs:0x571,FM:')cax',Fm:0x5d8,FB:0x3b1,Fj:0x3ad,Fx:0x2f4,Fd:0x33b,FQ:'@IG9',Fo:0x58c,Ff:'d5&h',Ft:0x62c,FV:0x57c,FW:0x5c8,Fl:0x64f,FJ:0x5aa,FH:0x5a8,FL:0x4ff,FS:'m^(5',Fc:0x166,Fw:'BZ9I',FP:0x217,FN:0x1c9,Fa:0x414,b0:0x2b8,b1:0x340,b2:0x40f,b3:'&BzX',b4:0x5c1,b5:0x4d8,b6:0x539,b7:'r[7v',b8:0x50b,b9:0x5bf,bC:'r[7v',bD:0x5fe,bF:0x581,bb:0x54d,bT:0x28e,bU:'q97C',bh:0x133,bu:0x1d5,bI:0x22d,bi:0x5ab,bR:'6Z*(',bZ:0x66b,bO:0x5fc,bE:0x5e4,bz:0x6f4,bp:'r[7v',bv:0x78f,bK:0x6cd,bY:0x6c1,bA:0x385,bX:0x382,bG:0x2fb,br:0x254,bn:'W@JD',bg:0x12b,bq:'nT6)',bk:0x18f,be:0x126,by:0x124,bs:0x1de,bM:'s)m4',bm:0x200,bB:0x124,bj:0x145,bx:0x394,bd:0x3c5,bQ:0x363,bo:0x34d,bf:0x3c8,bt:0x441,bV:0x378,bW:0x430,bl:0x64d,bJ:')CMQ',bH:0x666,bL:0x688,bS:0x64c,bc:0x6a4,bw:0x6f1,bP:0x664,bN:0x649,ba:0x29f,T0:0x2f3,T1:0x2d2,T2:0x299,T3:')&Qe',T4:0x6ac,T5:0x708,T6:0x62f,T7:0x63c,T8:')&Qe',T9:0x579,TC:0x491,TD:0x464,TF:'OcA0',Tb:0x4ee,TT:0x1c0,TU:0x2a9,Th:0x211,Tu:0x2da,TI:'[K8a',Ti:0x147,TR:'lP8[',TZ:0x1fc,TO:0x13f,TE:0xae,Tz:0x19f,Tp:0x311,Tv:0x274,TK:0x331,TY:0x678,TA:0x5c4,TX:0x671,TG:0x69c,Tr:0x5bc,Tn:0x517,Tg:0x139,Tq:'b*il',Tk:0x16c,Te:0x1b1,Ty:0x203,Ts:0x1a7,TM:'Q^j5',Tm:0x9e,TB:0x170,Tj:0x1e7,Tx:0x18f,Td:0x1a6,TQ:0x230,To:0x227,Tf:'MP55',Tt:0x633,TV:0x506,TW:0x600,Tl:'#j^j',TJ:0x5d1,TH:0x47a,TL:0x49e,TS:0x42a,Tc:'iIQt',Tw:0x4a8,TP:0x515,TN:'nb0$',Ta:0x51e,U0:0x58c,U1:0x659,U2:0x2ae,U3:0x2b6,U4:0x334,U5:0x31e,U6:0x1de,U7:'wC11',U8:0x185,U9:0x1de,UC:0x2b7,UD:0xff,UF:0x1d1,Ub:0x12f,UT:0xbc,UU:0x577,Uh:0x4b3,Uu:0x528,UI:'zH5y',Ui:0x4da,UR:0x628,UZ:'iIQt',UO:0x605,UE:0x6c5,Uz:0x6c6,Up:0x527,Uv:'zzRA',UK:0x4bd,UY:0x542,UA:0x559,UX:0x5ac,UG:0x56d,Ur:'1hKY',Un:0x58c,Ug:0x2f5,Uq:0x400,Uk:0x33d,Ue:0x40e,Uy:0x742,Us:0x652,UM:0x6ab,Um:0x36e,UB:0x291,Uj:0x335,Ux:0x2ce,Ud:'W@JD',UQ:0x5cd,Uo:'Vsp6',Uf:0x6c5,Ut:0x670,UV:0x5c7,UW:0x413,Ul:0x376,UJ:0x3e5,UH:0x613,UL:0x57e,US:0x5b2,Uc:0x64a,Uw:'BZ9I',UP:0x29a,UN:0x1dc,Ua:0x26f,h0:0x2f8,h1:'mJDS',h2:0x1f2,h3:'W@JD',h4:0x6e,h5:0x138,h6:0x77,h7:0x6d3,h8:'wC11',h9:0x6f6,hC:0x66a,hD:0x69d,hF:0x62f,hb:0x6c0,hT:0x70d,hU:0x65e,hh:'#j^j',hu:0x6b8,hI:0x649,hi:0x6e0,hR:'*%p3',hZ:0x158,hO:0x10d,hE:0x19c,hz:0x610,hp:0x5b7,hv:0x6f8,hK:0x1ce,hY:'d5&h',hA:0xae,hX:0x11f,hG:0x11e,hr:0x626,hn:0x5d6,hg:0x6a6,hq:0x70f,hk:0x545,he:0x554,hy:0x519,hs:'wC11',hM:0x4a5,hm:0x121,hB:0xda,hj:0xdf,hx:0x18e,hd:0x184,hQ:'wC11',ho:0xe9,hf:0x1a8,ht:0x1d2,hV:0x479,hW:0x557,hl:0x4e7,hJ:0x4f9,hH:0x701,hL:'m^(5',hS:0x61e,hc:0x643,hw:0x529,hP:0x58f,hN:0x5d0,ha:0x159,u0:'sHgk',u1:0x1e1,u2:0x11c,u3:0x175},CS={T:0x3d,U:0x477,h:0x43,u:0xa7},CL={T:0x19d,U:0x574,h:0xf8,u:0x88},CJ={T:0x89,U:0x256,h:0x1a2,u:0x13f},Cl={T:0x1eb,U:0xbf,h:0x14f,u:0xa0},CW={T:0x160,U:0x5f1,h:0xbf,u:0x4a},h={};h[H(Cc.T,Cc.U,Cc.h,Cc.u,Cc.I)]=H(Cc.i,Cc.R,Cc.Z,Cc.O,Cc.E)+'s',h[S(Cc.z,Cc.p,Cc.Cw,Cc.CP,Cc.CN)]=function(I,i){return I===i;};function c(T,U,h,u,I){return e(T-CW.T,I,h-CW.U,u-CW.h,I-CW.u);}h[S(Cc.Ca,Cc.D0,Cc.D1,Cc.D2,Cc.D3)]=H(Cc.D4,Cc.D5,Cc.D6,Cc.D7,Cc.D8)+H(Cc.D9,Cc.DC,Cc.D5,Cc.DD,Cc.DF),h[H(Cc.Db,Cc.DT,Cc.DU,Cc.Dh,Cc.Du)]=H(Cc.DI,Cc.Di,Cc.DR,Cc.DZ,Cc.DO),h[L(Cc.DE,Cc.Dz,Cc.Dp,Cc.Dv,Cc.DK)]=H(Cc.DY,Cc.DA,Cc.DX,Cc.DG,Cc.Dr),h[L(Cc.Dn,Cc.Dg,Cc.Dq,Cc.Dk,Cc.De)]=H(Cc.Dy,Cc.Ds,Cc.DM,Cc.Dm,Cc.DB)+S(Cc.Dj,Cc.Dx,Cc.Dd,Cc.DQ,Cc.Do),h[c(Cc.Df,Cc.Dt,Cc.DV,Cc.DW,Cc.Dl)]=c(Cc.DJ,Cc.DH,Cc.DL,Cc.DS,Cc.DD)+w(Cc.Dc,Cc.Dw,Cc.DP,Cc.DN,Cc.Da)+H(Cc.F0,Cc.F1,Cc.F2,Cc.F3,Cc.F4)+H(Cc.D6,Cc.F5,Cc.F6,Cc.F7,Cc.F8),h[S(Cc.F9,Cc.F3,Cc.FC,Cc.FD,Cc.FF)]=S(Cc.Fb,Cc.FT,Cc.FU,Cc.Fh,Cc.Fu)+c(Cc.FI,Cc.Fi,Cc.FR,Cc.FZ,Cc.Dh)+H(Cc.FO,Cc.FE,Cc.Fz,Cc.Fp,Cc.Fv)+H(Cc.FK,Cc.FY,Cc.FA,Cc.FX,Cc.FG)+'7)';function S(T,U,h,u,I){return e(T-Cl.T,U,u-Cl.U,u-Cl.h,I-Cl.u);}h[H(Cc.Fr,Cc.Fn,Cc.Fg,Cc.Fq,Cc.Fk)]=H(Cc.Fe,Cc.Fy,Cc.Fs,Cc.FM,Cc.Fm)+L(Cc.FB,Cc.Fj,Cc.Fx,Cc.Fd,Cc.FQ),h[w(Cc.Fo,Cc.Ff,Cc.Ft,Cc.FV,Cc.FW)]=c(Cc.Fl,Cc.FJ,Cc.FH,Cc.FL,Cc.FS)+S(Cc.Fc,Cc.Fw,Cc.FP,Cc.FN,Cc.FF),h[L(Cc.Fa,Cc.b0,Cc.b1,Cc.b2,Cc.b3)]=H(Cc.b4,Cc.b5,Cc.b6,Cc.b7,Cc.b8)+w(Cc.b9,Cc.bC,Cc.bD,Cc.bF,Cc.bb)+S(Cc.bT,Cc.bU,Cc.bh,Cc.bu,Cc.bI);function L(T,U,h,u,I){return e(T-CJ.T,I,h-CJ.U,u-CJ.h,I-CJ.u);}h[w(Cc.bi,Cc.bR,Cc.bZ,Cc.bO,Cc.bE)]=function(I,i){return I*i;};function w(T,U,h,u,I){return e(T-CL.T,U,u-CL.U,u-CL.h,I-CL.u);}function H(T,U,h,u,I){return e(T-CS.T,u,I-CS.U,u-CS.h,I-CS.u);}const u=h;try{const I=U[w(Cc.bz,Cc.bp,Cc.bv,Cc.bK,Cc.bY)+L(Cc.bA,Cc.bX,Cc.bG,Cc.br,Cc.bn)+S(Cc.bg,Cc.bq,Cc.bk,Cc.be,Cc.by)](u[S(Cc.bs,Cc.bM,Cc.bm,Cc.bB,Cc.bj)]);I[L(Cc.bx,Cc.bd,Cc.bQ,Cc.bo,Cc.p)]=-0x2010+0x3*-0x827+0x399d,I[H(Cc.bf,Cc.bt,Cc.bV,Cc.FX,Cc.bW)+'t']=0x1735*-0x1+0xce4+-0x25*-0x49;const i=I[w(Cc.bl,Cc.bJ,Cc.bH,Cc.bL,Cc.bS)+c(Cc.bc,Cc.bw,Cc.bP,Cc.bN,Cc.Dw)]('2d');if(u[L(Cc.ba,Cc.T0,Cc.T1,Cc.T2,Cc.T3)](i,null))return null;return i[c(Cc.T4,Cc.T5,Cc.T6,Cc.T7,Cc.T8)+H(Cc.T9,Cc.TC,Cc.TD,Cc.TF,Cc.Tb)+'ne']=u[L(Cc.TT,Cc.TU,Cc.Th,Cc.Tu,Cc.TI)],i[S(Cc.Ti,Cc.TR,Cc.TZ,Cc.TO,Cc.TE)+L(Cc.Tz,Cc.Tp,Cc.Tv,Cc.TK,Cc.FX)]=u[w(Cc.TY,Cc.D7,Cc.bi,Cc.TA,Cc.TX)],i[c(Cc.DO,Cc.TG,Cc.Tr,Cc.Tn,Cc.FX)+S(Cc.Tg,Cc.Tq,Cc.Tk,Cc.Te,Cc.Ty)](-0xa81+-0x111c+0x1c01,-0x5c1+-0x11b6+-0x1*-0x1778,0x178f+0x237f+-0x3ad0,-0xaf*-0x2b+0x1a1e+0x17*-0x269),i[S(Cc.Ts,Cc.TM,Cc.Tm,Cc.TB,Cc.Tj)+L(Cc.Tx,Cc.Td,Cc.TQ,Cc.To,Cc.Tf)]=u[H(Cc.Tt,Cc.TV,Cc.TW,Cc.Tl,Cc.TJ)],i[H(Cc.TH,Cc.TL,Cc.TS,Cc.Tc,Cc.Tw)]=u[w(Cc.TP,Cc.TN,Cc.Ta,Cc.U0,Cc.U1)],i[L(Cc.U2,Cc.U3,Cc.U4,Cc.U5,Cc.Fq)+S(Cc.U6,Cc.U7,Cc.U8,Cc.U9,Cc.UC)](u[S(Cc.UD,Cc.FM,Cc.UF,Cc.Ub,Cc.UT)],0x1745+-0x1d*0xa7+-0x8b*0x8,-0xc3e*0x2+0x2*-0x581+-0x1df*-0x13),i[H(Cc.UU,Cc.Uh,Cc.Uu,Cc.UI,Cc.Ui)+w(Cc.UR,Cc.UZ,Cc.UO,Cc.UE,Cc.Uz)]=u[w(Cc.Up,Cc.Uv,Cc.UK,Cc.UY,Cc.UA)],i[H(Cc.UX,Cc.TV,Cc.UG,Cc.Ur,Cc.Un)]=u[L(Cc.Ug,Cc.Uq,Cc.Uk,Cc.Ue,Cc.u)],i[w(Cc.Uy,Cc.bq,Cc.Us,Cc.UM,Cc.TJ)+L(Cc.Um,Cc.UB,Cc.Uj,Cc.Ux,Cc.Ud)](u[w(Cc.UQ,Cc.Uo,Cc.Uf,Cc.Ut,Cc.UV)],-0x1f26+0x90e+0x161c,-0x604+0x1*-0x21ca+0x27fb),i[L(Cc.UW,Cc.ba,Cc.Ul,Cc.UJ,Cc.F3)+c(Cc.UH,Cc.UL,Cc.US,Cc.Uc,Cc.Uw)+L(Cc.UP,Cc.UN,Cc.Ua,Cc.h0,Cc.h1)+S(Cc.h2,Cc.h3,Cc.h4,Cc.h5,Cc.h6)+w(Cc.h7,Cc.h8,Cc.h9,Cc.hC,Cc.hD)]=u[c(Cc.hF,Cc.hb,Cc.hT,Cc.hU,Cc.hh)],i[c(Cc.hu,Cc.Du,Cc.hI,Cc.hi,Cc.hR)+S(Cc.hZ,Cc.b3,Cc.hO,Cc.hE,Cc.Th)]=u[w(Cc.hz,Cc.FX,Cc.hp,Cc.bP,Cc.hv)],i[S(Cc.hK,Cc.hY,Cc.hA,Cc.hX,Cc.hG)+c(Cc.hr,Cc.hn,Cc.hg,Cc.hq,Cc.DD)](),i[H(Cc.hk,Cc.he,Cc.hy,Cc.hs,Cc.hM)](-0x3da*0x7+-0x2b1*-0x3+0x1315,-0x17*-0x161+0x1049+-0x2*0x17e7,0xb7d*-0x2+0x4d5*0x1+-0x1*-0x1257,0x2*-0x2d4+-0x1eeb+-0x3*-0xc31,u[S(Cc.hm,Cc.Dl,Cc.hB,Cc.hj,Cc.hx)](Math['PI'],0xf*-0x251+0x3e0+0xa4b*0x3),!![]),i[S(Cc.hd,Cc.hQ,Cc.ho,Cc.hf,Cc.ht)+H(Cc.hV,Cc.hW,Cc.hl,Cc.TN,Cc.hJ)](),i[w(Cc.hH,Cc.hL,Cc.hS,Cc.DL,Cc.hc)](),I[c(Cc.hw,Cc.hP,Cc.hN,Cc.b6,Cc.Uv)+S(Cc.ha,Cc.u0,Cc.u1,Cc.u2,Cc.u3)]();}catch{return null;}}function y(T,U,h,u,I){const Cw={T:0x1d4};return b(T-Cw.T,I);}function a(T,U,h,u,I){const CP={T:0xd5};return b(I- -CP.T,U);}function b(C,D){C=C-(0x7*-0xaa+-0x1c6c*0x1+0x22f5);const T=F();let U=T[C];if(b['InwRRc']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x8*0x475+-0xade+0x2e86;})['indexOf']('\x0a')!==-(-0x1*0xd3f+0x29*0xbc+-0xa6*0x1a);for(let v=0x2549+0x2516+-0x4a5f,K,Y,A=-0x146c+0x62e+-0xe3e*-0x1;Y=R['charAt'](A++);~Y&&(K=v%(-0x7ed+-0x16b1*0x1+0x1ea2)?K*(0x9d1+-0x7cd*-0x1+0x2*-0x8af)+Y:Y,v++%(0x2*0xb1e+-0x13da+-0x25e))?O+=p||z['charCodeAt'](A+(-0x1*0x1b24+-0xa2+0x28*0xb2))-(-0x1*-0x667+0x3*0xf+-0x2*0x345)!==0x20f4+-0x3*0x2b2+-0x18de?String['fromCharCode'](0x4c*0x3+-0xbe9+0xc04&K>>(-(-0x2ab*-0x1+0x1*-0x8ef+0x646)*v&0x27e+-0x2664+0x23ec)):v:-0x1f*0xff+0x2002+0x11*-0x11){Y=Z['indexOf'](Y);}for(let X=0x5*-0x348+-0xbe9*-0x1+0x47f,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](-0x2002+-0x6b3+0x26c5))['slice'](-(0x1*-0x2251+-0xe5+0x2338));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x1*0x2498+-0x2203+0x1*-0x295,z,p='';R=h(R);let v;for(v=-0x5fa+0x21b5+-0x1bbb;v<-0x1e5+-0x2*0x1314+0x290d;v++){O[v]=v;}for(v=-0x4df*0x5+-0xb0e+0x2369;v<-0x23f6+0x2*0x653+0x2*0xc28;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(-0x25fb+0x1cd+-0x252e*-0x1),z=O[v],O[v]=O[E],O[E]=z;}v=-0x13*0x53+0x33*0xa2+-0x1a1d,E=0x1861+-0xd69+-0x3a8*0x3;for(let K=0x1371*-0x1+0x262+0x110f;K<R['length'];K++){v=(v+(0xeff*0x2+0x2692*-0x1+0x895))%(-0xd4f*0x2+0x21cc+-0x62e),E=(E+O[v])%(0x25a1+-0x1420+-0x41*0x41),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x1112+0x2*-0x62d+0x1e6c)]);}return p;};b['LXfjCG']=i,b['qipAEk']={},b['InwRRc']=!![];}const u=T[0x52*0x3d+0x1af4+0x1*-0x2e7e];b['rEtQUt']!==u&&(b['qipAEk']={},b['rEtQUt']=u);const I=b['qipAEk'][C];if(I===undefined){if(b['Bpnvel']===undefined){const R=function(Z){this['oSgGJB']=Z,this['omcwsZ']=[-0x11d9+-0x1ad9+0x2cb3,0xd13*0x2+-0x32d+-0x16f9*0x1,0xc2e+-0x26*0x1a+0x8e*-0xf],this['GeRfXS']=function(){return'newState';},this['IQsTUh']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['UXjxtp']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['fUHeXA']=function(){const Z=new RegExp(this['IQsTUh']+this['UXjxtp']),O=Z['test'](this['GeRfXS']['toString']())?--this['omcwsZ'][-0x9cc+-0x18d2*0x1+-0x1*-0x229f]:--this['omcwsZ'][0x85*0x4a+0x673*0x6+0x1349*-0x4];return this['QQNSDr'](O);},R['prototype']['QQNSDr']=function(Z){if(!Boolean(~Z))return Z;return this['zCEfiq'](this['oSgGJB']);},R['prototype']['zCEfiq']=function(Z){for(let O=-0xc02+0xa1f*-0x2+0x2040,E=this['omcwsZ']['length'];O<E;O++){this['omcwsZ']['push'](Math['round'](Math['random']())),E=this['omcwsZ']['length'];}return Z(this['omcwsZ'][0x15f7+-0x1*0x975+-0xc82]);},(''+function(){return 0x71f*-0x1+0x20a5*0x1+-0x63*0x42;})['indexOf']('\x0a')===-(0x63f+-0x2457+0x43*0x73)&&new R(b)['fUHeXA'](),b['Bpnvel']=!![];}U=b['LXfjCG'](U,D),b['qipAEk'][C]=U;}else U=I;return U;}function e(T,U,h,u,I){const CN={T:0x23a};return b(h- -CN.T,U);}const WEBGL_PARAMETERS=[y(0x3f9,0x3dd,0x3fb,0x44f,'iIQt')+e(0xc5,')CMQ',0x158,0x208,0x1bd)+e(-0x8c,'SQJh',0x10,-0x3d,-0xb)+'E',N(0x2aa,0x241,'sHgk',0x2f7,0x29e)+P('s)m4',0x3c6,0x3bf,0x3a0,0x49b)+N(0x2a8,0x36d,'wC11',0x380,0x390)+'MS',e(0x1c0,'DFQl',0x12e,0x67,0x1f7)+a(0x15e,'DFQl',0x2b6,0x1fe,0x21d)+a(0x1e2,'zH5y',0x202,0x337,0x270)+e(0x30,'ADfs',-0x2d,0x6,-0x66),a(0xdb,'iIQt',0x193,0xe5,0x115)+y(0x4c6,0x41e,0x4f8,0x491,'DFQl')+e(0x1c0,'zH5y',0x105,0x3b,0x67)+P('zEX!',0x3c0,0x468,0x42c,0x3cf)+P('sHgk',0x400,0x400,0x440,0x481)+'S',a(0x24a,'rm(O',0x258,0x108,0x1b1)+e(0xca,'m^(5',0x6,0x62,-0x68)+y(0x465,0x533,0x43b,0x4f3,'zzRA')+y(0x431,0x4bf,0x3e1,0x4b8,']Es7')+a(0x220,'zH5y',0x2c8,0x16e,0x218)+a(0x271,'zH5y',0x365,0x2cf,0x294),e(0x23f,'m^(5',0x168,0x1f8,0x117)+P('MP55',0x497,0x51e,0x532,0x5c6)+P('mJDS',0x467,0x3a0,0x41c,0x3c5)+e(0x145,'&BzX',0xe0,0x8,0x144),y(0x48f,0x416,0x4a4,0x4a8,'s)m4')+N(0x3f6,0x382,'5Mx&',0x363,0x2c9)+P('nT6)',0x50e,0x51a,0x55a,0x5ac)+P('rm(O',0x330,0x381,0x309,0x40c)+a(0x2e3,')cax',0x35f,0x23c,0x29b)+N(0x2da,0x21d,'$S3k',0x2bf,0x38a)+'TS',y(0x468,0x52a,0x40d,0x41e,'MP55')+e(0xf6,'MJ1Z',0x48,0xe1,0x9a)+y(0x437,0x390,0x48b,0x4b4,'*!o0')+N(0x296,0x327,'s)m4',0x354,0x31d)+N(0x4de,0x483,'cr(j',0x457,0x4b8),a(0x4c,')&Qe',0x4c,0x10a,0x12d)+P('MJ1Z',0x423,0x500,0x4e0,0x4c1)+a(0x2ba,'lP8[',0x18f,0x27d,0x1ff)+y(0x3f2,0x406,0x3fe,0x40b,'nb0$')+'E',a(0x2a4,'*!o0',0x1d7,0x1f5,0x1d1)+P('5Mx&',0x4a2,0x50c,0x589,0x439)+a(0x1ce,'@IG9',0x1ad,0x10c,0x1a5)+y(0x497,0x3cb,0x4ca,0x47c,'iIQt')+P('Q^j5',0x3f0,0x3fd,0x4d6,0x3d3),N(0x468,0x3cc,'b*il',0x415,0x49e)+y(0x3f1,0x433,0x312,0x3c0,'6nnl')+e(-0xd,'wC11',0x90,-0x3e,0x145)+N(0x3af,0x3ad,'5Mx&',0x416,0x3e5)+P(')&Qe',0x326,0x3ca,0x42e,0x39f),e(-0x60,'6nnl',0x69,0x111,0xfd)+e(0x53,'q97C',0xce,0xeb,0x129),a(0x11b,'$S3k',0x137,0x117,0x162)+N(0x455,0x408,'i61G',0x394,0x3e9),N(0x402,0x3bb,'E^#J',0x462,0x3e8)+y(0x4c7,0x3f0,0x422,0x586,'iIQt'),y(0x418,0x469,0x3d0,0x386,'6nnl')+N(0x302,0x2f3,'cr(j',0x314,0x32d),e(-0xd6,'nT6)',-0x53,0x21,0x70)+e(0xbd,'DFQl',0xf4,0xa3,0x14d),N(0x268,0x31f,'wC11',0x2cf,0x316)+P(')&Qe',0x3ac,0x39a,0x340,0x38a)+'TS'];export const webglCollector={'id':N(0x4e5,0x3d3,']Es7',0x445,0x4d2),'wave':e(-0xc,'DFQl',0xb,-0x82,-0x6e),'optional':!![],'collect'({document:T}){const DD={T:0x466,U:'nb0$',h:0x4dc,u:0x399,I:0x391,i:0x3c,R:'MP55',Z:0x14b,O:0xa7,E:0xe3,z:0xa4,p:'f*aQ',DF:0x117,Db:0x3d,DT:0x1,DU:'ADfs',Dh:0x37,Du:0x49,DI:0x1b,Di:0x90,DR:0x139,DZ:'sHgk',DO:0x223,DE:0x155,Dz:0x9c,Dp:0x3d9,Dv:'RrT*',DK:0x480,DY:0x39a,DA:0x410,DX:0x26d,DG:0x1d4,Dr:0x246,Dn:0x141,Dg:'cr(j',Dq:0x67,Dk:'i61G',De:0x181,Dy:0x10b,Ds:0x97,DM:0xdf,Dm:'BZ9I',DB:0xf5,Dj:0x47,Dx:0xf7,Dd:0x14e,DQ:'s)m4',Do:0xd6,Df:0xcc,Dt:0x169,DV:0x4,DW:0xa2,Dl:0xaa,DJ:0xad,DH:0x4e7,DL:'6Z*(',DS:0x459,Dc:0x4fc,Dw:0x4f8,DP:0x22f,DN:'[K8a',Da:0x26b,F0:0x1a8,F1:0x13a,F2:0x1ac,F3:0x196,F4:0x15b,F5:0x237,F6:')&Qe',F7:0x77,F8:0x96,F9:0x30,FC:0x5b,FD:'6nnl',FF:0x3e,Fb:0x46,FT:0x63,FU:0xfa,Fh:0x81,Fu:0x3a,FI:0x9b,Fi:0x13d,FR:0x509,FZ:0x442,FO:0x568,FE:0x518,Fz:'f*aQ',Fp:0x153,Fv:0x1dd,FK:0x12d,FY:0x1b4,FA:0x256,FX:0x207,FG:0x21c,Fr:0x285,Fn:'SQJh',Fg:0x18a,Fq:')CMQ',Fk:0x10d,Fe:0xe3,Fy:0x19d,Fs:0xd2,FM:0x75,Fm:'b*il',FB:0xd1,Fj:0x31,Fx:0x7f,Fd:0x19,FQ:0x56e,Fo:'rm(O',Ff:0x60a,Ft:0x521,FV:0x587,FW:0x5e,Fl:'1hKY',FJ:0x23,FH:0x64,FL:0x17,FS:0x130,Fc:'*!o0',Fw:0x19b,FP:0xde,FN:0x13b,Fa:'mJDS',b0:0x217,b1:0x1d4,b2:0x159,b3:0x202,b4:0xee,b5:0x14f,b6:0xe6,b7:0xd8,b8:0x4bb,b9:'ADfs',bC:0x4b7,bD:0x4c1,bF:0x541,bb:0x2f3,bT:0x27f,bU:0x1be,bh:0x2c2,bu:'6OE]',bI:'ADfs',bi:0x4d,bR:0x4a,bZ:0x9b,bO:0xca,bE:0x1dd,bz:0x266,bp:0x24b,bv:0x274,bK:'tYee',bY:0x585,bA:0x602,bX:0x51c,bG:0x5d8,br:0x12c,bn:'q97C',bg:0x126,bq:0x5c,bk:0x5a,be:0xa5,by:'DFQl',bs:0xe9,bM:0x4a,bm:0x3b,bB:'Vsp6',bj:0xfd,bx:0xe8,bd:0x1a3,bQ:'$S3k',bo:0x1a,bf:0x17c,bt:0xa4,bV:0x38,bW:0x79,bl:0xfe,bJ:0x111,bH:0x1e6,bL:0x424,bS:'nT6)',bc:0x4f0,bw:0x453,bP:0x37a,bN:0x9c,ba:0x61,T0:0x27,T1:0x407,T2:'DFQl',T3:0x438,T4:0x40f,T5:0x3db,T6:0x33d,T7:0x2ab,T8:0x292,T9:0x236,TC:'sHgk',TD:0x1e0,TF:0x225,Tb:0x194,TT:0x174,TU:0x24a,Th:0x2c8,Tu:0x292,TI:0x24f,Ti:'5Mx&',TR:0x39,TZ:'f*aQ',TO:0x21,TE:0x86,Tz:0xc7,Tp:0x4c8,Tv:0x4a6,TK:0x500,TY:0x4e9,TA:0x485,TX:'s)m4',TG:0x4b9,Tr:0x3b0,Tn:0x4bf,Tg:'zEX!',Tq:0x23,Tk:0x92,Te:0xa3,Ty:0x294,Ts:0x276,TM:0x2fa,Tm:0x1b9,TB:'d5&h',Tj:0x47c,Tx:0x48d,Td:0x45e,TQ:0x51e,To:0xcb,Tf:0x40,Tt:0x5,TV:0xc2,TW:0x4ef,Tl:'zzRA',TJ:0x5a2,TH:0x463,TL:0x473,TS:'W@JD',Tc:0x4b,Tw:0x35,TP:0x4b2,TN:0x4d6,Ta:0x414,U0:0x536,U1:0xc4,U2:0xc6,U3:0x14,U4:0x47,U5:0x4a7,U6:0x585,U7:0x537,U8:0x524,U9:0x6d,UC:'b!X8',UD:0x11b,UF:0x80,Ub:0x10d,UT:0xf,UU:0x11d,Uh:0xce,Uu:0xe4,UI:0x1cb,Ui:0x18b,UR:0xac,UZ:0x191,UO:')CMQ',UE:0x48a,Uz:0x481,Up:0x3dd,Uv:0x404,UK:0x13,UY:0xe,UA:0xbb,UX:0x9e,UG:0xb2,Ur:0x39,Un:0x25,Ug:0x2a,Uq:0x568,Uk:0x4aa,Ue:0x5d4,Uy:0x642,Us:0x257,UM:'E^#J',Um:0x120,UB:0x132,Uj:'iIQt',Ux:0x163,Ud:0x237,UQ:0xc,Uo:'6Z*(',Uf:0x87,Ut:0x4f,UV:0x43,UW:0x179,Ul:0xf0,UJ:0xb2,UH:0x1b6,UL:0x1c6,US:0x24c,Uc:'OcA0',Uw:'MP55',UP:0x110,UN:0x8b,Ua:0xce,h0:0x2cb,h1:0x2f1,h2:0x2a5,h3:0x324,h4:0x70,h5:0x29,h6:0xac,h7:'Vsp6',h8:0x15e,h9:0x123,hC:0x222,hD:0x2,hF:'&BzX',hb:0xf0,hT:0x11,hU:0xc,hh:0x2cd,hu:0x36b,hI:0x37b,hi:0xe1,hR:'6Z*(',hZ:0x6b,hO:0x18,hE:0x2fa,hz:0x27d,hp:0x2e4,hv:0x316,hK:'Q^j5',hY:0x49,hA:0xbf,hX:0x2c,hG:0x11,hr:'zH5y',hn:0x176,hg:0x1da,hq:0x16c,hk:0x16f,he:0x117,hy:0x198,hs:0xe0,hM:0x21c,hm:0x516,hB:'zzRA',hj:0x4be,hx:0x547,hd:0x5c0,hQ:0x28d,ho:0x27a,hf:0x2e1,ht:'zH5y',hV:'6OE]',hW:0x38,hl:0x32,hJ:0x1e,hH:0x50,hL:0x2d,hS:0x2ba,hc:0x20d,hw:0x2e7,hP:0x1cd,hN:'ADfs',ha:0x40a,u0:0x45a,u1:0x3d6,u2:0x3e6,u3:'b!X8',u4:0x1b2,u5:0xeb,u6:0x216,u7:0x24e,u8:0x200,u9:'RrT*',uC:0x57,uD:0x10,uF:0x18,ub:0x72,uT:0x2a7,uU:0x2b8,uh:0x2c8,uu:0x2a4,uI:'d5&h',ui:0xd,uR:0xd8,uZ:0x40,uO:0x53f,uE:'b!X8',uz:0x52b,up:0x570,uv:0x4a8,uK:'ADfs',uY:0x8a,uA:0xdf,uX:0xcb,uG:0x11,ur:0x57d,un:0x4a9,ug:0x65b,uq:0x536,uk:0xb4,ue:0x6b,uy:0x149,us:0x220,uM:0x21b,um:0xa6,uB:'OcA0',uj:0x58,ux:'MJ1Z',ud:0xcf,uQ:0x53,uo:0x7d,uf:'DFQl',ut:0x126,uV:0x11a,uW:0x167,ul:0xf8,uJ:0x55f,uH:'ADfs',uL:0x4ce,uS:0x4d0,uc:0x4ac,uw:0xbd,uP:0x26,uN:0x48,ua:0x264,I0:0x269,I1:0x2df,I2:0x2b8,I3:0x119,I4:0x171,I5:0xb9,I6:'lP8[',I7:0x18e,I8:')&Qe',I9:0x1c7,IC:0x19c,ID:0x11a,IF:0x88,Ib:0x3c5,IT:'W@JD',IU:0x47e,Ih:0x402,Iu:0x456,II:'SQJh',Ii:0x34,IR:0x12,IZ:0x31c,IO:0x2c6,IE:0x34c,Iz:0x1ed,Ip:0x220,Iv:0x17e,IK:0x142,IY:0x138,IA:'MP55',IX:0x74,IG:0xbc,Ir:0x64,In:0x7f,Ig:'q97C',Iq:0x1c,Ik:0x2f,Ie:0xa3,Iy:0xd,Is:0xcd,IM:0x60,Im:0x2d9,IB:0x1de,Ij:0x2c9,Ix:'Q^j5',Id:0x436,IQ:0x427,Io:0x3ca,If:0x3a1,It:0x189,IV:0x20e,IW:0x13e,Il:0x1ea,IJ:0x4e0,IH:0x513,IL:0x42b,IS:0x551,Ic:0xb,Iw:0x22,IP:0xa1,IN:0xba,Ia:0x57f,i0:'ADfs',i1:0x60b,i2:0x5fe,i3:0x4fd,i4:0x3f6,i5:'iIQt',i6:0x462,i7:0x31a,i8:0x372,i9:'[K8a',iC:0x65,iD:0x45,iF:0x50,ib:0x116,iT:'Vsp6',iU:0x174,ih:0x19a,iu:0x134,iI:0x7d,ii:')CMQ',iR:0x178,iZ:0xea,iO:0x13e,iE:0x95,iz:'SQJh',ip:0xc6,iv:0x6d,iK:'6nnl',iY:0x5de,iA:0x58a,iX:0x5aa,iG:0x1b1,ir:0x18d,ig:0x1b3,iq:0x181,ik:'m^(5',ie:0x580,iy:'ADfs',is:0x584,iM:0x5b2,im:0x4f0,iB:'nT6)',ij:0xdc,ix:0x1f4,id:0x11c,iQ:0x192,io:0x4ff,it:0x4aa,iV:0x46c,iW:0x54,il:0x121,iJ:0x42,iH:0x87,iL:0x490,iS:'tYee',ic:0x40c,iw:0x4f3,iP:0x212,iN:0x25c,ia:0x30c,R0:0x1f7,R1:']Es7',R2:0x71,R3:0xfc,R4:0x1c,R5:0x3,R6:0xc3,R7:0x163,R8:'cr(j',R9:0x15,RC:0x149,RD:0xa0,RF:0xd5,Rb:'&BzX',RT:0x3ec,RU:0x483,Rh:0x477,Ru:0x4c6},DC={T:0x187,U:0x72,h:0x7c,u:0x2cf},D9={T:0xa8,U:0xc0,h:0x0,u:0x105},D8={T:0x3b,U:0x6,h:0x168,u:0x1c0},D0={T:0x1a2,U:0x131,h:0xd8,u:0x40},Ca={T:0x3b,U:0xa1,h:0x11c,u:0x2b6};function C0(T,U,h,u,I){return a(T-Ca.T,U,h-Ca.U,u-Ca.h,T-Ca.u);}function C4(T,U,h,u,I){return a(T-D0.T,I,h-D0.U,u-D0.h,U-D0.u);}const U={'bglNe':C0(DD.T,DD.U,DD.h,DD.u,DD.I)+'s','RxPtG':C1(DD.i,DD.R,DD.Z,DD.O,DD.E),'Xgdnm':C1(-DD.z,DD.p,DD.DF,DD.Db,DD.DT)+C3(DD.DU,DD.Dh,-DD.Du,-DD.DI,DD.Di)+C2(DD.DR,DD.DZ,DD.DO,DD.DE,DD.Dz)+C0(DD.Dp,DD.Dv,DD.DK,DD.DY,DD.DA),'xttvv':function(u,I){return u===I;},'PIGEH':C4(DD.DX,DD.DG,DD.Dr,DD.Dn,DD.Dg)+C1(DD.Dq,DD.Dk,DD.De,DD.Dy,DD.Ds)+'or','rMlzs':C1(-DD.DM,DD.Dm,-DD.DB,-DD.Dj,-DD.Dx)+C1(DD.Dd,DD.DQ,DD.Do,DD.Df,DD.Dt)+C1(DD.DV,DD.DU,-DD.DW,-DD.Dl,-DD.DJ),'olJrx':C0(DD.DH,DD.DL,DD.DS,DD.Dc,DD.Dw)+C2(DD.DP,DD.DN,DD.Da,DD.F0,DD.F1)+C4(DD.F2,DD.F3,DD.F4,DD.F5,DD.F6)+C1(-DD.F7,DD.p,-DD.F8,DD.F9,DD.FC)+C3(DD.FD,-DD.FF,DD.Fb,-DD.FT,-DD.FU),'qPwTh':function(u,I){return u===I;},'HthPE':function(u,I){return u===I;},'ZjzTy':C3(DD.DU,-DD.Fh,DD.Fu,-DD.FI,-DD.Fi)+C0(DD.FR,DD.Dg,DD.FZ,DD.FO,DD.FE)+C3(DD.Fz,-DD.Fp,-DD.Fv,-DD.FK,-DD.FY),'lFGRU':C4(DD.FA,DD.FX,DD.FG,DD.Fr,DD.Fn)+C2(DD.Fg,DD.Fq,DD.Fk,DD.Fe,DD.Fy)+C1(DD.DT,DD.DQ,DD.Fs,DD.F8,DD.FM)+C3(DD.Fm,-DD.FB,-DD.Fj,-DD.Fx,-DD.Fd)+C0(DD.FQ,DD.Fo,DD.Ff,DD.Ft,DD.FV)+C1(-DD.FW,DD.Fl,-DD.FJ,DD.FH,-DD.FL),'FjaPr':function(u,I){return u!==I;},'rWDdj':C1(DD.FS,DD.Fc,DD.Fw,DD.FP,DD.FN)+'r','lbMUv':C3(DD.Fa,-DD.b0,-DD.b1,-DD.b2,-DD.b3)+C2(DD.b4,DD.FD,DD.b5,DD.b6,DD.b7)+C0(DD.b8,DD.b9,DD.bC,DD.bD,DD.bF)+C4(DD.bb,DD.bT,DD.bU,DD.bh,DD.bu),'WKKfj':function(u,I){return u(I);},'YUMOf':function(u,I){return u!==I;},'LUIDi':C3(DD.bI,-DD.bi,-DD.bR,-DD.bZ,-DD.bO)+C4(DD.bE,DD.bz,DD.bp,DD.bv,DD.bK)+C0(DD.bY,DD.Fn,DD.bA,DD.bX,DD.bG)+C2(DD.br,DD.bn,DD.bg,DD.bq,DD.bk)+C2(DD.be,DD.by,DD.bs,DD.bM,-DD.bm),'kWaVi':C3(DD.bB,-DD.bj,-DD.bx,-DD.bd,-DD.DR)+C3(DD.bQ,DD.bo,-DD.bf,-DD.bt,DD.bV)+C3(DD.DQ,-DD.bW,-DD.bl,-DD.bJ,-DD.bH)+C0(DD.bL,DD.bS,DD.bc,DD.bw,DD.bP),'IbmhJ':C2(DD.bN,DD.bB,-DD.ba,DD.T0,DD.DV)+C0(DD.T1,DD.T2,DD.T3,DD.T4,DD.T5)+C4(DD.T6,DD.T7,DD.T8,DD.T9,DD.TC)+C2(DD.TD,DD.Fm,DD.TF,DD.Tb,DD.TT),'DcQEP':function(u,I){return u(I);}},h={};function C1(T,U,h,u,I){return a(T-D8.T,U,h-D8.U,u-D8.h,u- -D8.u);}function C2(T,U,h,u,I){return a(T-D9.T,U,h-D9.U,u-D9.h,u- -D9.u);}function C3(T,U,h,u,I){return a(T-DC.T,T,h-DC.U,u-DC.h,u- -DC.u);}try{const u=T[C4(DD.TU,DD.Th,DD.Tu,DD.TI,DD.Ti)+C1(-DD.TR,DD.TZ,-DD.TO,DD.TE,DD.Tz)+C0(DD.Tp,DD.bB,DD.Tv,DD.TK,DD.TY)](U[C0(DD.TA,DD.TX,DD.TG,DD.Tr,DD.Tn)]),I=u[C1(-DD.FL,DD.Tg,-DD.Tq,-DD.Tk,-DD.Te)+C4(DD.Ty,DD.Ts,DD.TM,DD.Tm,DD.TB)](U[C0(DD.Tj,DD.R,DD.Tx,DD.Td,DD.TQ)])??u[C1(DD.To,DD.bu,-DD.Tf,-DD.Tt,DD.TV)+C0(DD.TW,DD.Tl,DD.TJ,DD.TH,DD.TL)](U[C1(-DD.bk,DD.TS,-DD.Fx,DD.Tc,-DD.Tw)]);if(U[C0(DD.TP,DD.Fm,DD.TN,DD.Ta,DD.U0)](I,null))return h[U[C1(DD.U1,DD.FD,DD.U2,DD.U3,-DD.U4)]]=null,h[U[C0(DD.U5,DD.b9,DD.U6,DD.U7,DD.U8)]]=null,h;const i=I[C1(DD.U9,DD.UC,DD.UD,DD.UF,DD.Ub)+C2(DD.UT,DD.DN,DD.UU,DD.Uh,DD.Uu)+'on'](U[C4(DD.UI,DD.Ui,DD.UR,DD.UZ,DD.UO)]);h[U[C0(DD.UE,DD.FD,DD.Uz,DD.Up,DD.Uv)]]=U[C2(-DD.UK,DD.bu,-DD.UY,DD.UA,DD.UX)](i,null)?I[C3(DD.U,-DD.UG,DD.Ur,-DD.Un,-DD.Ug)+C0(DD.Uq,DD.FD,DD.Uk,DD.Ue,DD.Uy)+'er'](I[C2(DD.Us,DD.UM,DD.Um,DD.FY,DD.UB)+'R']):I[C2(DD.bg,DD.Uj,DD.FX,DD.Ux,DD.Ud)+C1(DD.UQ,DD.Uo,DD.bx,DD.Uf,-DD.Ut)+'er'](i[C1(DD.UV,DD.bn,DD.UW,DD.Ul,DD.UJ)+C4(DD.UH,DD.UL,DD.US,DD.b2,DD.Uc)+C1(DD.U4,DD.Uw,DD.UP,DD.UN,DD.Ua)+C4(DD.h0,DD.h1,DD.h2,DD.h3,DD.bK)+'L']),h[U[C1(DD.h4,DD.FD,DD.h5,-DD.U3,DD.h6)]]=U[C3(DD.h7,-DD.h8,-DD.h9,-DD.Z,-DD.hC)](i,null)?I[C1(-DD.hD,DD.hF,-DD.hb,-DD.hT,-DD.hU)+C4(DD.h1,DD.hh,DD.hu,DD.hI,DD.h7)+'er'](I[C1(-DD.hi,DD.hR,-DD.U4,-DD.hZ,DD.hO)+C4(DD.hE,DD.hz,DD.hp,DD.hv,DD.hK)]):I[C1(-DD.hY,DD.Fn,DD.hA,DD.hX,-DD.hG)+C3(DD.hr,-DD.hn,-DD.hg,-DD.hq,-DD.hk)+'er'](i[C4(DD.he,DD.hy,DD.hs,DD.hM,DD.p)+C0(DD.hm,DD.hB,DD.hj,DD.hx,DD.hd)+C4(DD.hQ,DD.ho,DD.hf,DD.F2,DD.ht)+C2(DD.UG,DD.hV,DD.hW,DD.hl,DD.hJ)+C1(-DD.Dq,DD.hF,-DD.Ut,DD.hH,-DD.hL)]),h[U[C4(DD.hS,DD.hc,DD.hw,DD.hP,DD.hN)]]=I[C0(DD.ha,DD.hK,DD.u0,DD.u1,DD.u2)+C2(DD.FM,DD.u3,DD.u4,DD.DB,DD.u5)+'er'](I[C4(DD.u6,DD.u7,DD.u8,DD.hP,DD.u9)+'ON']),h[U[C2(-DD.uC,DD.Dg,-DD.uD,DD.uF,-DD.ub)]]=I[C4(DD.uT,DD.uU,DD.uh,DD.uu,DD.Fc)+C3(DD.uI,DD.ui,-DD.uR,-DD.uZ,-DD.hH)+'er'](I[C0(DD.uO,DD.uE,DD.uz,DD.up,DD.uv)+C3(DD.uK,-DD.uY,-DD.uA,-DD.uX,-DD.uG)+C0(DD.ur,DD.F6,DD.un,DD.ug,DD.uq)+C3(DD.Tg,DD.Dq,-DD.uk,-DD.ue,-DD.uy)+C4(DD.us,DD.bf,DD.uM,DD.um,DD.uB)]);const R={};for(const E of WEBGL_PARAMETERS){const z=I[E];if(U[C1(-DD.uj,DD.ux,DD.ud,DD.uQ,-DD.uo)](typeof z,U[C3(DD.uf,-DD.ut,-DD.uV,-DD.uW,-DD.ul)]))continue;const p=I[C0(DD.uJ,DD.uH,DD.uL,DD.uS,DD.uc)+C3(DD.Fl,-DD.uw,-DD.uP,-DD.DT,-DD.uN)+'er'](z);R[E]=Array[C4(DD.ua,DD.I0,DD.I1,DD.I2,DD.ht)+'ay'](p)||ArrayBuffer[C4(DD.I3,DD.I4,DD.I5,DD.FS,DD.I6)+'w'](p)?Array[C2(DD.I7,DD.I8,DD.I9,DD.IC,DD.Fw)](p)[C3(DD.bS,-DD.ID,DD.Fj,-DD.bq,-DD.IF)](','):p;}h[U[C0(DD.Ib,DD.IT,DD.IU,DD.Ih,DD.Iu)]]=U[C1(-DD.uN,DD.II,-DD.Ii,-DD.IR,-DD.F9)](hashRecord,R);const Z=I[C4(DD.IZ,DD.IO,DD.IE,DD.Iz,DD.Fz)+C4(DD.Ip,DD.Iv,DD.IK,DD.IY,DD.TS)+C3(DD.IA,-DD.IX,-DD.IG,-DD.bo,DD.Ir)+C2(DD.In,DD.Ig,DD.Iq,DD.Ik,DD.Ie)+C2(DD.Iy,DD.Dg,DD.U1,DD.Is,DD.IM)](I[C4(DD.Im,DD.T8,DD.IB,DD.Ij,DD.Ix)+C0(DD.Id,DD.Dv,DD.IQ,DD.Io,DD.If)+C3(DD.uI,-DD.It,-DD.IV,-DD.IW,-DD.Il)],I[C0(DD.IJ,DD.bS,DD.IH,DD.IL,DD.IS)+C3(DD.R,DD.Ic,DD.Iw,-DD.IP,-DD.IN)]);U[C0(DD.Ia,DD.i0,DD.i1,DD.i2,DD.i3)](Z,null)&&(h[U[C0(DD.i4,DD.i5,DD.i6,DD.i7,DD.i8)]]=Z[C3(DD.i9,-DD.iC,-DD.UN,-DD.iD,-DD.iF)+C2(DD.ib,DD.iT,DD.iU,DD.ih,DD.iu)]+','+Z[C2(DD.iI,DD.ii,DD.iR,DD.iZ,DD.iO)+C2(DD.iE,DD.iz,DD.uD,DD.ip,DD.iv)]+','+Z[C0(DD.bX,DD.iK,DD.iY,DD.iA,DD.iX)+C4(DD.iG,DD.ir,DD.ig,DD.iq,DD.ik)]);const O=I[C0(DD.ie,DD.iy,DD.is,DD.iM,DD.im)+C3(DD.iB,-DD.ij,-DD.ix,-DD.id,-DD.iQ)+C0(DD.io,DD.hF,DD.it,DD.bc,DD.iV)+C1(-DD.iW,DD.DZ,DD.il,DD.iJ,DD.iH)+'ns']()??[];h[U[C0(DD.iL,DD.iS,DD.ic,DD.uO,DD.iw)]]=O[C4(DD.iP,DD.iN,DD.ia,DD.R0,DD.R1)+'h'],h[U[C3(DD.DZ,-DD.u5,-DD.Df,-DD.R2,-DD.R3)]]=U[C1(-DD.R4,DD.bK,-DD.R5,DD.R6,DD.R7)](hash,O[C3(DD.R8,-DD.Iq,DD.Tt,-DD.bi,DD.R9)]()[C3(DD.Fo,-DD.bO,-DD.RC,-DD.RD,-DD.UV)]()[C4(DD.RF,DD.iQ,DD.id,DD.Iv,DD.Rb)](','));}catch{h[U[C0(DD.RT,DD.UO,DD.RU,DD.Rh,DD.Ru)]]=null;}return h;}};
|
|
1
|
+
import { hash, hashRecord } from '../hash.js';
|
|
2
|
+
/**
|
|
3
|
+
* Canvas and WebGL: what the GPU and driver actually produce.
|
|
4
|
+
*
|
|
5
|
+
* These are the highest-entropy signals available to a page, because the output
|
|
6
|
+
* depends on the whole rendering stack — GPU, driver version, OS text
|
|
7
|
+
* rasteriser, font hinting. They are also the ones privacy browsers
|
|
8
|
+
* deliberately poison, so the *stability* of the result is collected alongside
|
|
9
|
+
* it: real hardware is deterministic, injected noise is not.
|
|
10
|
+
*/
|
|
11
|
+
export const canvasCollector = {
|
|
12
|
+
id: 'canvas',
|
|
13
|
+
wave: 'warm',
|
|
14
|
+
optional: true,
|
|
15
|
+
collect({ document }) {
|
|
16
|
+
const out = {};
|
|
17
|
+
const first = renderCanvas(document);
|
|
18
|
+
if (first === null) {
|
|
19
|
+
out['canvas.hash'] = null;
|
|
20
|
+
out['canvas.stable'] = null;
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
out['canvas.hash'] = hash(first);
|
|
24
|
+
// Rendered twice into two separate canvases. Identical output means real,
|
|
25
|
+
// deterministic hardware; differing output means the browser is
|
|
26
|
+
// randomising it, which is itself worth knowing and must not be mistaken
|
|
27
|
+
// for a new device on every visit.
|
|
28
|
+
const second = renderCanvas(document);
|
|
29
|
+
out['canvas.stable'] = second === first;
|
|
30
|
+
// Read twice from ONE canvas, with a `getImageData` between the reads.
|
|
31
|
+
//
|
|
32
|
+
// This is the check the one above misses, and it misses it in the case
|
|
33
|
+
// that matters. Brave farbles per session and per origin, so two separately
|
|
34
|
+
// rendered canvases agree and `canvas.stable` reads true — measured on two
|
|
35
|
+
// real Brave sessions, both of which reported stable while every other
|
|
36
|
+
// value they touched was being redrawn.
|
|
37
|
+
//
|
|
38
|
+
// A farbler that perturbs on each *read* is caught here instead, because
|
|
39
|
+
// this asks the same pixels twice rather than asking twice for the same
|
|
40
|
+
// drawing. The `getImageData` in between is not decoration: it is a second
|
|
41
|
+
// read path, and an implementation that noises one and not the other shows
|
|
42
|
+
// up as a difference between the two `toDataURL` calls surrounding it.
|
|
43
|
+
out['canvas.readStable'] = readStability(document);
|
|
44
|
+
// Whether text measurement lands on whole pixels.
|
|
45
|
+
//
|
|
46
|
+
// A real engine lays text out in fractional units — `measureText` on a
|
|
47
|
+
// proportional font returns values like 123.4560546875, and getting a whole
|
|
48
|
+
// number is a coincidence. Some anti-detect browsers round the result to
|
|
49
|
+
// defeat font fingerprinting, which removes the entropy and leaves a tell
|
|
50
|
+
// that is far harder to fake than the widths themselves.
|
|
51
|
+
out['canvas.textFractional'] = measureFractional(document);
|
|
52
|
+
return out;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* How many of several measured strings had a fractional width.
|
|
57
|
+
*
|
|
58
|
+
* Several, not one: a single string genuinely can measure to a whole number,
|
|
59
|
+
* and a check built on one sample would fire on that coincidence. Null when
|
|
60
|
+
* the measurement could not be taken at all, which must not read as rounded.
|
|
61
|
+
*/
|
|
62
|
+
function measureFractional(document) {
|
|
63
|
+
try {
|
|
64
|
+
const context = document.createElement('canvas').getContext('2d');
|
|
65
|
+
if (context === null)
|
|
66
|
+
return null;
|
|
67
|
+
context.font = '11pt Arial';
|
|
68
|
+
let fractional = 0;
|
|
69
|
+
for (const sample of ['Magic Shield', 'mmmmmmmmmmlli', 'The quick brown fox', 'WWWWWWiiiiii']) {
|
|
70
|
+
const { width } = context.measureText(sample);
|
|
71
|
+
if (!Number.isFinite(width))
|
|
72
|
+
return null;
|
|
73
|
+
if (!Number.isInteger(width))
|
|
74
|
+
fractional++;
|
|
75
|
+
}
|
|
76
|
+
return fractional;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Whether one canvas returns the same bytes when read repeatedly.
|
|
84
|
+
*
|
|
85
|
+
* Distinct from rendering twice: this draws once and reads three times, with a
|
|
86
|
+
* `getImageData` between the two `toDataURL` calls so both read paths are
|
|
87
|
+
* exercised. Returns null when nothing could be measured, never false.
|
|
88
|
+
*/
|
|
89
|
+
function readStability(document) {
|
|
90
|
+
try {
|
|
91
|
+
const canvas = document.createElement('canvas');
|
|
92
|
+
canvas.width = 220;
|
|
93
|
+
canvas.height = 30;
|
|
94
|
+
const context = canvas.getContext('2d');
|
|
95
|
+
if (context === null)
|
|
96
|
+
return null;
|
|
97
|
+
context.textBaseline = 'alphabetic';
|
|
98
|
+
context.font = "14px 'Arial'";
|
|
99
|
+
context.fillStyle = '#f60';
|
|
100
|
+
context.fillRect(125, 1, 62, 20);
|
|
101
|
+
context.fillStyle = '#069';
|
|
102
|
+
context.fillText('Magic Shield read probe', 2, 15);
|
|
103
|
+
context.fillStyle = 'rgba(102, 204, 0, 0.7)';
|
|
104
|
+
context.fillText('Magic Shield read probe', 4, 17);
|
|
105
|
+
const before = canvas.toDataURL();
|
|
106
|
+
// The second read path. Its own result is not compared — what matters is
|
|
107
|
+
// whether taking it changes what the first path returns next time.
|
|
108
|
+
context.getImageData(0, 0, canvas.width, canvas.height);
|
|
109
|
+
const after = canvas.toDataURL();
|
|
110
|
+
return before === after;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function renderCanvas(document) {
|
|
117
|
+
try {
|
|
118
|
+
const canvas = document.createElement('canvas');
|
|
119
|
+
canvas.width = 280;
|
|
120
|
+
canvas.height = 60;
|
|
121
|
+
const context = canvas.getContext('2d');
|
|
122
|
+
if (context === null)
|
|
123
|
+
return null;
|
|
124
|
+
// Text, curves and blending together: each exercises a different part of
|
|
125
|
+
// the rasteriser, so the result varies more between stacks than any one
|
|
126
|
+
// would alone.
|
|
127
|
+
context.textBaseline = 'alphabetic';
|
|
128
|
+
context.fillStyle = '#f60';
|
|
129
|
+
context.fillRect(100, 1, 62, 20);
|
|
130
|
+
context.fillStyle = '#069';
|
|
131
|
+
context.font = '11pt Arial';
|
|
132
|
+
context.fillText('Magic Shield 1/2/3 ☃', 2, 15);
|
|
133
|
+
context.fillStyle = 'rgba(102, 204, 0, 0.7)';
|
|
134
|
+
context.font = '18pt Arial';
|
|
135
|
+
context.fillText('Magic Shield 1/2/3 ☃', 4, 45);
|
|
136
|
+
context.globalCompositeOperation = 'multiply';
|
|
137
|
+
context.fillStyle = 'rgb(255,0,255)';
|
|
138
|
+
context.beginPath();
|
|
139
|
+
context.arc(50, 50, 50, 0, Math.PI * 2, true);
|
|
140
|
+
context.closePath();
|
|
141
|
+
context.fill();
|
|
142
|
+
return canvas.toDataURL();
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const WEBGL_PARAMETERS = [
|
|
149
|
+
'MAX_TEXTURE_SIZE',
|
|
150
|
+
'MAX_VIEWPORT_DIMS',
|
|
151
|
+
'MAX_VERTEX_ATTRIBS',
|
|
152
|
+
'MAX_VERTEX_UNIFORM_VECTORS',
|
|
153
|
+
'MAX_FRAGMENT_UNIFORM_VECTORS',
|
|
154
|
+
'MAX_VARYING_VECTORS',
|
|
155
|
+
'MAX_COMBINED_TEXTURE_IMAGE_UNITS',
|
|
156
|
+
'MAX_CUBE_MAP_TEXTURE_SIZE',
|
|
157
|
+
'MAX_RENDERBUFFER_SIZE',
|
|
158
|
+
'ALIASED_LINE_WIDTH_RANGE',
|
|
159
|
+
'ALIASED_POINT_SIZE_RANGE',
|
|
160
|
+
'RED_BITS',
|
|
161
|
+
'GREEN_BITS',
|
|
162
|
+
'BLUE_BITS',
|
|
163
|
+
'ALPHA_BITS',
|
|
164
|
+
'DEPTH_BITS',
|
|
165
|
+
'STENCIL_BITS',
|
|
166
|
+
];
|
|
167
|
+
export const webglCollector = {
|
|
168
|
+
id: 'webgl',
|
|
169
|
+
wave: 'warm',
|
|
170
|
+
optional: true,
|
|
171
|
+
collect({ document }) {
|
|
172
|
+
const out = {};
|
|
173
|
+
try {
|
|
174
|
+
const canvas = document.createElement('canvas');
|
|
175
|
+
const gl = (canvas.getContext('webgl') ?? canvas.getContext('experimental-webgl'));
|
|
176
|
+
if (gl === null) {
|
|
177
|
+
out['webgl.vendor'] = null;
|
|
178
|
+
out['webgl.renderer'] = null;
|
|
179
|
+
return out;
|
|
180
|
+
}
|
|
181
|
+
// The unmasked strings name the actual GPU. SwiftShader, llvmpipe and
|
|
182
|
+
// Mesa here mean software rendering, which on a machine claiming to be a
|
|
183
|
+
// consumer laptop is a strong headless signal.
|
|
184
|
+
const debug = gl.getExtension('WEBGL_debug_renderer_info');
|
|
185
|
+
out['webgl.vendor'] = debug === null ? gl.getParameter(gl.VENDOR) : gl.getParameter(debug.UNMASKED_VENDOR_WEBGL);
|
|
186
|
+
out['webgl.renderer'] =
|
|
187
|
+
debug === null ? gl.getParameter(gl.RENDERER) : gl.getParameter(debug.UNMASKED_RENDERER_WEBGL);
|
|
188
|
+
out['webgl.version'] = gl.getParameter(gl.VERSION);
|
|
189
|
+
out['webgl.shadingLanguageVersion'] = gl.getParameter(gl.SHADING_LANGUAGE_VERSION);
|
|
190
|
+
const parameters = {};
|
|
191
|
+
for (const name of WEBGL_PARAMETERS) {
|
|
192
|
+
const constant = gl[name];
|
|
193
|
+
if (typeof constant !== 'number')
|
|
194
|
+
continue;
|
|
195
|
+
const value = gl.getParameter(constant);
|
|
196
|
+
parameters[name] = Array.isArray(value) || ArrayBuffer.isView(value) ? Array.from(value).join(',') : value;
|
|
197
|
+
}
|
|
198
|
+
out['webgl.parametersHash'] = hashRecord(parameters);
|
|
199
|
+
// Per-GPU floating point precision ranges. Harder to fake than the vendor
|
|
200
|
+
// strings, because a plausible set has to match a real device family.
|
|
201
|
+
const precision = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);
|
|
202
|
+
if (precision !== null) {
|
|
203
|
+
out['webgl.fragmentHighFloat'] = `${precision.rangeMin},${precision.rangeMax},${precision.precision}`;
|
|
204
|
+
}
|
|
205
|
+
const extensions = gl.getSupportedExtensions() ?? [];
|
|
206
|
+
out['webgl.extensionCount'] = extensions.length;
|
|
207
|
+
out['webgl.extensionsHash'] = hash(extensions.slice().sort().join(','));
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
out['webgl.vendor'] = null;
|
|
211
|
+
}
|
|
212
|
+
return out;
|
|
213
|
+
},
|
|
214
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Collector } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Screen geometry and the window's relationship to it.
|
|
4
|
+
*
|
|
5
|
+
* The derived values matter more than the raw ones. A headless browser
|
|
6
|
+
* classically reports zero browser chrome, and a non-integer devicePixelRatio
|
|
7
|
+
* is characteristic of real hardware in a way a round number is not.
|
|
8
|
+
*/
|
|
9
|
+
export declare const screenCollector: Collector;
|
package/dist/signals/screen.js
CHANGED
|
@@ -1 +1,80 @@
|
|
|
1
|
-
(function(T,U){const l={T:0xde,U:0xb4,h:0xcd,u:0x11e,I:'E9xo',i:0x20a,R:0x22e,Z:0x1f3,O:'nmTn',E:0x1f5,J:'wo#Q',H:0x2ec,L:0x304,S:0x2b4,c:0x2f6,w:0x10d,P:0xa4,N:0xbc,a:0x93,C0:'FP0T',C1:0x8a,C2:0xe0,C3:0x90,C4:0x85,C5:'ruku',C6:0xb3,C7:0x1a,C8:0x6b,C9:0x8f,CC:'sTqw',CD:'YVjS',CF:0x26c,Cb:0x203,CT:0x1fe,CU:0x224,Ch:0x377,Cu:0x320,CI:0x331,Ci:0x229,CR:0x252,CZ:0x23a,CO:'Y5B6',CE:0x1de},W={T:0x1e8},V={T:0x3c6},t={T:0x7c},f={T:0x19c},o={T:0x3cf};function Y(T,U,h,u,I){return b(I- -o.T,T);}function v(T,U,h,u,I){return b(u-f.T,T);}function p(T,U,h,u,I){return b(T-t.T,u);}function K(T,U,h,u,I){return b(U- -V.T,u);}const h=T();function z(T,U,h,u,I){return b(h- -W.T,I);}while(!![]){try{const u=-parseInt(z(-l.T,-l.U,-l.h,-l.u,l.I))/(-0x1f1a+-0x30e*0x5+0x2e61)*(-parseInt(p(l.i,l.R,l.Z,l.O,l.E))/(0x187*-0x7+-0x202d+-0xe*-0x310))+-parseInt(v(l.J,l.H,l.L,l.S,l.c))/(-0xa42+-0x148d+0x1ed2)+parseInt(z(-l.w,-l.P,-l.N,-l.a,l.C0))/(0xa*0xfd+-0x1bf9+0x2d*0x67)*(-parseInt(z(-l.C1,-l.C2,-l.C3,-l.C4,l.C5))/(-0x1c20+-0x977+-0x12ce*-0x2))+-parseInt(z(-l.C6,-l.C7,-l.C8,-l.C9,l.CC))/(0x17dc+0x9b7+-0x218d)+-parseInt(Y(l.CD,-l.CF,-l.Cb,-l.CT,-l.CU))/(0x67*-0xf+0x4*-0x598+0x1c70)+-parseInt(v(l.O,l.Ch,l.Cu,l.Cu,l.CI))/(0x2558+0xe9+0x203*-0x13)+parseInt(p(l.Ci,l.CR,l.CZ,l.CO,l.CE))/(-0x1d4d+-0x2*-0x8ff+0xb58);if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,-0xdc978+-0x5ae63+0x1be20b));function k(T,U,h,u,I){const J={T:0x55};return b(U- -J.T,u);}const D=(function(){const L={T:0x2c,U:0x46,h:0x1b,u:0x4,I:'CI*I'};let T=!![];return function(U,h){const u=T?function(){const H={T:0x14e};function A(T,U,h,u,I){return b(T- -H.T,I);}if(h){const I=h[A(-L.T,-L.U,-L.h,-L.u,L.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const C3={T:0xf2,U:'nmTn',h:0x12e,u:0x135,I:0x12b,i:0x108,R:'&w&Y',Z:0x116,O:0xb5,E:0x114,C4:0xef,C5:'GNZk',C6:0xb0,C7:0x134,C8:0xaa,C9:0xe6,CC:'YVjS',CD:0xc0,CF:0x127,Cb:0xf1,CT:0x19e,CU:'$aUi',Ch:0x161,Cu:0x15f,CI:0x186,Ci:0x22e,CR:0x281,CZ:0x208,CO:'%ggA',CE:0x234,Cz:0x1c6,Cp:0x1f2,Cv:'Dgoo',CK:0x17a,CY:0x1b0,CA:0x88,CX:0x10,CG:0x1d,Cr:'B@]Q',Cn:0x64,Cg:0x99,Cq:'rDnd',Ck:0xab,Ce:0x7f,Cy:0x99,Cs:0xa1,CM:0xc6,Cm:'68Tx',CB:0xb8,Cj:0x257,Cx:0x20d,Cd:'68Tx',CQ:0x256,Co:0x20a,Cf:0x1ea,Ct:'Q@pf',CV:0x1b9,CW:0x19d,Cl:0x1cd,CJ:0x1b3,CH:0x1e7,CL:'sTqw',CS:0x1a6,Cc:0x1de,Cw:0x112,CP:'gQ$t',CN:0xd0,Ca:0xd0,D0:0x15c,D1:0x193,D2:0x18a,D3:0x208,D4:'axZ&',D5:0x1cf,D6:0x145,D7:'68Tx',D8:0x144,D9:0xed,DC:0x152,DD:0x224,DF:0x1e8,Db:'YBPy',DT:0x28c,DU:0x236,Dh:0x38,Du:0xb,DI:0xa,Di:'Y5B6',DR:0x20,DZ:0x230,DO:0x1f3,DE:0x225,Dz:'Cao5',Dp:0x1ee},C2={T:0x347},C1={T:0x12},C0={T:0x8c},a={T:0xe8},P={T:0x23c},U={};function X(T,U,h,u,I){return b(T- -P.T,U);}U[X(-C3.T,C3.U,-C3.h,-C3.u,-C3.I)]=function(u,I){return u!==I;},U[X(-C3.i,C3.R,-C3.Z,-C3.O,-C3.E)]=X(-C3.C4,C3.C5,-C3.C6,-C3.C7,-C3.C8)+X(-C3.C9,C3.CC,-C3.CD,-C3.CF,-C3.Cb)+'+$';function G(T,U,h,u,I){return b(I- -a.T,u);}function r(T,U,h,u,I){return b(I-C0.T,u);}const h=U;function g(T,U,h,u,I){return b(h-C1.T,U);}if(h[g(C3.CT,C3.CU,C3.Ch,C3.Cu,C3.CI)](C[r(C3.Ci,C3.CR,C3.CZ,C3.CO,C3.CE)]()[n(-C3.Cz,-C3.Cp,C3.Cv,-C3.CK,-C3.CY)+G(C3.CA,C3.CX,C3.CG,C3.Cr,C3.Cn)]()[X(-C3.Cg,C3.Cq,-C3.Ck,-C3.C9,-C3.Ce)+'Of']('\x0a'),-(-0x5d7+-0x6*0x7c+-0x38*-0x28)))return;function n(T,U,h,u,I){return b(I- -C2.T,h);}return C[G(C3.Cy,C3.Cs,C3.CM,C3.Cm,C3.CB)+n(-C3.Cj,-C3.Cx,C3.Cd,-C3.CQ,-C3.Co)]()[g(C3.Cf,C3.Ct,C3.CV,C3.CW,C3.Cl)+'h'](h[n(-C3.CJ,-C3.CH,C3.CL,-C3.CS,-C3.Cc)])[X(-C3.Cw,C3.CP,-C3.CN,-C3.Ca,-C3.D0)+r(C3.D1,C3.D2,C3.D3,C3.D4,C3.D5)]()[g(C3.D6,C3.D7,C3.D8,C3.D9,C3.DC)+n(-C3.DD,-C3.DF,C3.Db,-C3.DT,-C3.DU)+'r'](C)[G(-C3.Dh,C3.Du,C3.DI,C3.Di,C3.DR)+'h'](h[r(C3.DZ,C3.DO,C3.DE,C3.Dz,C3.Dp)]);});function b(C,D){C=C-(-0x1e2d+0x1d21*0x1+-0xb*-0x30);const T=F();let U=T[C];if(b['nZclBn']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return 0xbaa+0xa52+-0x1d5*0xc;})['indexOf']('\x0a')!==-(0x1847+-0x22db+0x12d*0x9);for(let v=-0x3*0x32a+0x165d+-0x5*0x293,K,Y,A=0x1*0x213d+0x35c*0x1+-0x2499;Y=R['charAt'](A++);~Y&&(K=v%(0x1*-0x2073+0x47*-0x37+0x2fb8)?K*(0xa4*-0x3a+-0x532+-0x26*-0x11f)+Y:Y,v++%(-0xd1*0x11+0x1*-0x1910+-0x1*-0x26f5))?O+=p||z['charCodeAt'](A+(-0x1fb4+-0x1d26+0x3ce4))-(-0x1726+-0x1c37*0x1+-0x3367*-0x1)!==-0x1b04+0x1*0x8b7+0x124d?String['fromCharCode'](0xde6+-0x1*0x1cb8+0xfd1&K>>(-(0x23af+0x2465*0x1+-0x4812)*v&0x1f16+-0x6eb+-0x1825)):v:0x59*-0x15+-0x2c4*-0x8+-0xed3*0x1){Y=Z['indexOf'](Y);}for(let X=0x1694+0x1*-0xfb1+-0x6e3,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x166f*0x1+-0xe2*0x2+-0x149b))['slice'](-(-0x1794+0x71*0xb+0x1*0x12bb));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x1bc2+0x1b8a+0x2*-0x1ba6,z,p='';R=h(R);let v;for(v=0x3b6+0x8*-0x37d+-0x2*-0xc19;v<-0x7fa+0x24ee+-0x1bf4;v++){O[v]=v;}for(v=0x1b4e+-0x1a66*-0x1+-0x35b4;v<0xe*0xc5+-0x66a*-0x2+-0x169a;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(-0x192a+-0x26ca+-0x207a*-0x2),z=O[v],O[v]=O[E],O[E]=z;}v=-0x2*0x236+-0x105*0x16+0x1*0x1ada,E=-0x3d0+0x1bb*0x1+-0xd*-0x29;for(let K=-0x97d+0x11e3+-0x866;K<R['length'];K++){v=(v+(0x182+-0x26cc+-0x1*-0x254b))%(-0x584*0x1+0xa29+0x137*-0x3),E=(E+O[v])%(0x647*-0x4+-0x252d*0x1+0x3b9*0x11),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x14*0xdb+0x1*-0x1804+0x2a20)]);}return p;};b['yFNdgF']=i,b['FoErTh']={},b['nZclBn']=!![];}const u=T[-0x6dc+-0x5ff+0x3*0x449];b['ieelws']!==u&&(b['FoErTh']={},b['ieelws']=u);const I=b['FoErTh'][C];if(I===undefined){if(b['VDExPp']===undefined){const R=function(Z){this['Mofbca']=Z,this['saMHwd']=[-0x94b+-0x3a*0xa1+-0x22e*-0x15,-0x23da+-0x4*-0x188+0x1dba,-0x413*-0x8+-0xc9b*0x1+-0x13fd],this['VFuXrA']=function(){return'newState';},this['RpPvPw']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['aMgzcO']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['jYqtzc']=function(){const Z=new RegExp(this['RpPvPw']+this['aMgzcO']),O=Z['test'](this['VFuXrA']['toString']())?--this['saMHwd'][0x10*-0x188+0x13fa+0x487]:--this['saMHwd'][-0x301*0x7+0x54*0x70+-0x73*0x23];return this['UAZKBL'](O);},R['prototype']['UAZKBL']=function(Z){if(!Boolean(~Z))return Z;return this['BNSjgC'](this['Mofbca']);},R['prototype']['BNSjgC']=function(Z){for(let O=0x4d9*-0x1+0x1160+-0x42d*0x3,E=this['saMHwd']['length'];O<E;O++){this['saMHwd']['push'](Math['round'](Math['random']())),E=this['saMHwd']['length'];}return Z(this['saMHwd'][0x39*-0x9+0x14cb+-0x3c2*0x5]);},(''+function(){return-0x2*0x559+-0x8*-0x89+0x66a;})['indexOf']('\x0a')===-(-0x11ca+0x1*0x155f+-0x394)&&new R(b)['jYqtzc'](),b['VDExPp']=!![];}U=b['yFNdgF'](U,D),b['FoErTh'][C]=U;}else U=I;return U;}function q(T,U,h,u,I){const C4={T:0x223};return b(I- -C4.T,U);}C();function F(){const CA=['WQ/cGXpcNZa','aCoYt8k1WRK6b8o3','fmosW5/cNqW','cCoZW7bjba','W4msr8kjW7a','WQzZW5zLmW','W7yAbIJcUW','a8klW6rvW4S','jSosbmkFW5S','W7JcVZxdM8kC','WRzWW7ldTM8','W4tcQIBdS8ks','W7Gfjc/cLG','WQi/W7bfdG','aCksW6TpW5m','DuddS8oLWOC','W4XIWR0trvVcGa','r8kTtmk3WOG','cCkkW60','kmkJWQpcTHm','h8khWO9gWRS','jmkKp8oeW4i','W6NcJWzfsa','WQfHFwRdHLvPaSoqW6jeW4BcIa','ACkWW4i','wmoJamoQW78','lHVcPmk3W4hdPSonWR8iW43cJW4n','eSkIWPRcVGi','tCkrW4JdRcq','W5/cJ8oqhSoP','W4bEsConWOi','rxe4W5ie','qfO9W5CB','FmkuW68','rJZdJdXb','B03dR8oLWPa','uwddSCoIWOi','pSoUEfVdRW','W7DjrSkkkW','dwhcLW','W4DRdu92','nu9/WOPF','WOdcKCkhWPPw','FCoGtsXX','nSkoWO7cS8kF','W4mHWRNcQa/cH1FcHd0we2a','amkWdq','FmkuW6BdIJ0','W6DRdu92','W6OmW7pcGwe','xmowFa','WOvgW5vSbW','wCoxoCo/jG','W6b7ee1S','g8o9AuBdQW','la8hWRW2','a8kPWQBcVGK','DCk9WOFcI8ob','W61mW7NcGwu','s8k8prJcT8oXov8KtSoUiWG','phxcKhSf','mMTUWQ9f','oCkPWQJcVrG','W5CImHZcQq','C1VdQCoLWOC','oXG3WReR','sCk9w014','W6yqW5xcGxO','WPj/WOSoqG','WRVdRCktWP/cQW','W5DytCobWOq','BSoWW4pdTaS','BSoWW5pdSG0','pmkZWOlcG8kF','WQ93pmkNCW','C8koyKRdVW','W5HNafX2','eSoUyuJdRW','W5lcIr1hrq','adRcLNCz','kvX1WO1m','aCo5bSk/','FSo6W7FdQfJcLcTYlJWHW4hdTa','WQxdK8k7WQZcPa','eCo2W6TEaG','n8knW65sW5C','m8k2W7HJW54','W7XTfK17','jSofW7FdGCk9WOuFmWvLW4xcOSkv','oqPNWOLlW47cTmkUW6K4WO92WPS','W7PNFSkgjG','FSkCWOZcNCoS','i8kPWQBcVGK','WQrxkWea','W4fzWQhdU0O','BeFdPCoLWPK','kCozEMRdPG','WPxcHSoyvCk/','mSkGdKKC','oqHHWODdW4NcSmk/W7SrWOT7WQq','WPDLW53dS1K','cSoRl0mF','WORdN8kZWORcRq','q8kJDK1M','uvJdSCowWOC','uSozybu','ymo4imo7W6C','WP9rmamn','aCoVjCkUW4G','W5jQFSoRWO8','W4jjumkeW7a','W5WuWRldQe4','W4RcRGnMCW','WR/cLri','cSoQW7a','DSkgWQxcKCoP','x8kYBu1T','fmklW5LsW40','n8onWOpcNSkt','W5XCfM1/','FSkEWQdcNCo9','hSoIkH45oSkUWRzomMWRlG','rmk5W53dTZO','p8kdWPvNWRW','W4fNDSktlq','W6elW7pcGa','rSkHs8k8WOK','WPFcHf3cKGS','zSo+xtbSW53dKSkwWQ/cGxGOWOS','Ff4GW5KC','smk7pHRcSmo5oaWGz8ozpZuQ','WP3dNmkAWO1A','WRxcJG/cNYC','lSk9jG','teKHW6Kk','pMT3WRXf','gvfwECoo','W4jjumkdW64','m8kSo14p','W4zoxSom','WPBcNCoV','cCoUAv3dPa','WOf0W7JdV1G','WPT4W6q','dSokW6vtW4S','wCoxj8o4la','z8knW4/dHfa','WPNcLmoOxmkK','d8koFG3dSuRcGmkB','W40sW6NcQgq','W5pcNWXwtW','cSkWmKGc','WOrMkYee','EmoJamoQW78','E1WMW5uw','dCkRmu8v','WQvHDMNdJveCgCoDW6TsW4K','iSoxWP7cHGNdPmkYW40lbcabea','rmkAiSo0lq','W7ZdL8otpCoV','WP4FWOldTv4Wwa','mSk+cMqS','zSoMm8o3W7m','WRT4W71Fca','h8o5FKRdOW','bSoJbmk/W58','WQv/W7DoeG','tCkHB0rX','sd4XW70AjHFcNv3dLCkgW6jSW70','lSkIWRVcUbu','eSkuWRrLWR0','d8k3iCotW4m','muJdKmoVkW','W4JcHbXwqq','lmkKWRS','W4xdJSoSh8oV'];F=function(){return CA;};return F();}export const screenCollector={'id':q(-0x167,'ruku',-0x119,-0x10a,-0x11a)+'n','wave':k(0xa9,0xd3,0xa6,'YBPy',0xda)+'nt','collect'({screen:U,window:h,document:u}){const CZ={T:0xd0,U:0x10c,h:0xc8,u:'[h[u',I:0xb4,i:0x8d,R:0x63,Z:0x3d,O:'Jz0^',E:0xaf,CO:0xf5,CE:0xde,Cz:0x13a,Cp:'2De7',Cv:0xb0,CK:0x137,CY:0x139,CA:0xef,CX:'LK0C',CG:0x11b,Cr:0x4e,Cn:0x69,Cg:0x4f,Cq:'%vbv',Ck:0x1e,Ce:0x39,Cy:0x28,Cs:0x8a,CM:'FP0T',Cm:0x77,CB:0x1a6,Cj:0x166,Cx:0x1cf,Cd:0x1a5,CQ:'axZ&',Co:0xdc,Cf:0x86,Ct:0xd1,CV:'RnGa',CW:0x11d,Cl:0x1ff,CJ:0x1f0,CH:0x221,CL:0x1f3,CS:'5$!!',Cc:0x6f,Cw:0x3a,CP:0x60,CN:0x9f,Ca:0x160,D0:0x186,D1:0x170,D2:'5@7]',D3:0x1ad,D4:0x127,D5:0x101,D6:0x154,D7:'GNZk',D8:0x17f,D9:0xc2,DC:0xfc,DD:'CI*I',DF:0x12c,Db:0x68,DT:0x90,DU:0x11,Dh:'GNZk',Du:0xc3,DI:0xe8,Di:0x95,DR:'Y5B6',DZ:0xb2,DO:'sTqw',DE:0x149,Dz:0x113,Dp:0x132,Dv:0x141,DK:0x190,DY:0x171,DA:0x1ca,DX:0x169,DG:'FYLx',Dr:0xd6,Dn:0xc0,Dg:0x125,Dq:'5$!!',Dk:0xd6,De:0xe,Dy:0x9,Ds:0x2c,DM:0x5b,Dm:'wo#Q',DB:0xb7,Dj:0x83,Dx:0x97,Dd:'1LAw',DQ:0xcc,Do:'LK0C',Df:0x12c,Dt:0x170,DV:0x1b3,DW:'%vbv',Dl:0x180,DJ:0xe9,DH:0x12c,DL:0x15f,DS:0x1bd,Dc:0x17b,Dw:0x1cd,DP:'kDXI',DN:0x179,Da:0x12e,F0:'nmTn',F1:0x163,F2:'E9xo',F3:0x148,F4:0x140,F5:0x158,F6:'&5l8',F7:0x108,F8:0xec,F9:0x136,FC:0x17a,FD:0x1a7,FF:0x167,Fb:0x144,FT:'rDnd',FU:'kDXI',Fh:0x135,Fu:0x18f,FI:0x146,Fi:0x99,FR:0xce,FZ:0xb6,FO:0xf1,FE:0x73,Fz:0xa6,Fp:0xe5,Fv:0xbc,FK:'kJ^Z',FY:0xbc,FA:0xd7,FX:0x211,FG:0x1ce,Fr:0x224,Fn:0x1cd,Fg:'z]iS',Fq:0x71,Fk:'39zS',Fe:0xa1,Fy:0x61,Fs:0x6a,FM:'YBPy',Fm:0x4d,FB:0x17e,Fj:0x18f,Fx:0x145,Fd:0x13a,FQ:0x214,Fo:0x254,Ff:0x244,Ft:0x1e1,FV:'2De7',FW:0x175,Fl:0x164,FJ:0x1ab,FH:0x20,FL:0x38,FS:'m*rs',Fc:0x151,Fw:0x181,FP:0x1ce,FN:'RnGa',Fa:0x149,b0:0x118,b1:'[h[u',b2:0x144,b3:0x121,b4:0x15f,b5:0x19e,b6:0x191,b7:0x13c,b8:0x130,b9:'$aUi',bC:0x112,bD:0x127,bF:0x159,bb:0x10c,bT:0x150,bU:0xcf,bh:0x11f,bu:0x13f,bI:0x6d,bi:0xa5,bR:0xf0,bZ:0xe4,bO:'FP0T',bE:0xe0,bz:0xba,bp:'Jz0^',bv:0xee,bK:0xbe,bY:0xaf,bA:0xca,bX:0x91,bG:'&bgd',br:0x13b,bn:0x19c,bg:0x138,bq:0x161,bk:0x179,be:0x5e,by:0xa8,bs:'nmTn',bM:0x19c,bm:0x1b1,bB:0x1de,bj:0x1f4,bx:'Dgoo',bd:0x196,bQ:0x193,bo:0x1ea,bf:0x18e,bt:0x3b,bV:0x61,bW:0x84,bl:0xb1,bJ:'%ggA',bH:0xc6,bL:0xaf,bS:0xda,bc:'WAj0',bw:0x187,bP:0x172,bN:0x15b,ba:0x19b,T0:'Ua4u',T1:0xf1,T2:0xf5,T3:0x114,T4:'5@7]',T5:0x141,T6:0x6d,T7:0x2c,T8:0x30,T9:'RnGa',TC:0x44,TD:0x70,TF:0xa3,Tb:0xaf,TT:'LK0C',TU:'zKO5',Th:0xd4,Tu:0x106,TI:0xc6,Ti:0x16e,TR:0x158,TZ:0x1a9,TO:'Dgoo',TE:0x11d,Tz:0xaa,Tp:0x88,Tv:0x76,TK:'D9$2',TY:0x7b,TA:0x189,TX:0x167,TG:0x189,Tr:0x168,Tn:'ruku',Tg:0x1c7,Tq:0x155,Tk:0x17e,Te:0x213,Ty:0x1ea,Ts:0x23e,TM:0x1c1,Tm:'[h[u',TB:0x115,Tj:0x14c,Tx:0x148,Td:0xc1,TQ:'5$!!',To:0x12d,Tf:0x14b,Tt:0x12e,TV:0x1f3,TW:0x1a0,Tl:0x1e9,TJ:0x1f2,TH:'BTYp',TL:0x1ef,TS:0x1eb,Tc:0x1c3,Tw:0x1c9,TP:'sTqw',TN:0x134,Ta:0x182,U0:0xf3,U1:'B@]Q',U2:0x147,U3:0x1c5,U4:0x211,U5:0x1fb,U6:0x1db,U7:0xfd,U8:0x1d0,U9:0x219,UC:0x1c2,UD:'gQ$t',UF:0x2d,Ub:'Cao5',UT:0x82,UU:0x1a9,Uh:0x1f5,Uu:0x16a,UI:'dPwE',Ui:'68Tx',UR:0x189,UZ:0x14f,UO:0x10b,UE:0x1f8,Uz:0x1b4,Up:0x232,Uv:0x1b0,UK:0x183,UY:'68Tx',UA:0x132,UX:0x74,UG:0x76,Ur:'%ggA',Un:0x46,Ug:0x1bf,Uq:0x182,Uk:0x1f5,Ue:0x181,Uy:'7Sma',Us:0x42,UM:'$aUi',Um:0x38,UB:0xf8,Uj:0xd2,Ux:0x128,Ud:'FYLx',UQ:0x142,Uo:0x47,Uf:0x11,Ut:'YBPy',UV:0x28,UW:0xf6,Ul:0xef,UJ:0x113,UH:'RnGa',UL:0x130,US:0x69,Uc:0xad,Uw:0x105,UP:0xb7,UN:0x15f,Ua:0x1b2,h0:'2De7',h1:0x131,h2:0xc,h3:0x3d,h4:0x5b,h5:0x85,h6:'YBPy',h7:0x7f,h8:0x87,h9:0x50,hC:0xd3,hD:0x1a8,hF:0x162,hb:0x1ae,hT:0x1f5,hU:'Ua4u',hh:0x34,hu:0x1d,hI:0x5d,hi:0x18,hR:'D9$2',hZ:0x1b0,hO:0x1c2,hE:0x12,hz:0xf,hp:0x30,hv:0x3f,hK:'FYLx',hY:0x8a,hA:'axZ&',hX:0x59,hG:0x7c,hr:0xa6,hn:'kDXI',hg:0x3c,hq:0x109,hk:'Q@pf',he:0xb3,hy:0xbb,hs:0x79,hM:0xf7,hm:'7Qw3',hB:0x72,hj:0x1e2,hx:0x19d,hd:0x1bc,hQ:0x1fe,ho:'&w&Y',hf:'5@7]',ht:0x13f,hV:0x14e,hW:0x18f,hl:'&bgd',hJ:0x186,hH:0x178,hL:0x1b8,hS:0x1cc,hc:0x168,hw:0x11c,hP:0xf2,hN:0x173,ha:'m*rs',u0:0xfc,u1:0x1c1,u2:0x16c,u3:0x15d,u4:0x42,u5:0x72,u6:0x1c,u7:'D9$2',u8:'D9$2',u9:0x106,uC:0xed,uD:0xaf,uF:0x93,ub:0x89,uT:'Dgoo',uU:0x1e3,uh:0x1be,uu:0x21a,uI:0x19c,ui:0x17a,uR:0x174,uZ:0x14e,uO:0x117,uE:'&bgd',uz:0x14c,up:0x1bc,uv:0x1a9,uK:0x17a,uY:0x16a,uA:0x19a,uX:0x1a1,uG:0x17d,ur:0x1ec,un:0x10d,ug:0x10e,uq:0xdd,uk:0x9c,ue:0xda,uy:'sTqw',us:0x6c,uM:0xc8,um:0x101,uB:0xab,uj:0xa6,ux:0x58,ud:'FP0T',uQ:0xc7,uo:0x101,uf:0xac,ut:'YVjS',uV:0xcb,uW:0x1a4,ul:0x17c,uJ:0x1de,uH:0x1d6,uL:0x208,uS:0x1d6,uc:0x1d4,uw:0x200,uP:0x21c,uN:0x226,ua:'&5l8',I0:'smMz',I1:0x13f,I2:0x194,I3:0xed,I4:0x1d1,I5:0x20c,I6:0x224,I7:0x217,I8:0x185,I9:0x1d7,IC:'Y5B6',ID:0x113,IF:0x15b,Ib:'m*rs',IT:0x1ba,IU:0x1fb,Ih:0x1ae,Iu:'D9$2',II:0x1c,Ii:0x35,IR:0x7b,IZ:0x1f,IO:'68Tx',IE:0x1cd,Iz:0x20e,Ip:0xec,Iv:0xec,IK:0xc5,IY:'kDXI',IA:0xa0,IX:'z]iS',IG:0x19f,Ir:0x109,In:0x15b,Ig:0x19a,Iq:'%ggA',Ik:0xd8,Ie:0x122,Iy:0xdf,Is:0x107,IM:0xc6,Im:0x133,IB:'sTqw',Ij:0x81,Ix:0x60,Id:'Y5B6',IQ:0x6f,Io:0xd5,If:0xa2,It:0xda,IV:0xc5,IW:'BTYp'},CR={T:0x14,U:0xaf,h:0x96,u:0x50},Ci={T:0x1dd,U:0x18d,h:0x173,u:0x78},CI={T:0x1a,U:0x2c3,h:0x12c,u:0x8d},Cu={T:0x12a,U:0x239,h:0x168,u:0xa8},Ch={T:0x196,U:0x24,h:0x8d,u:0x132},I={'kDlDS':function(O,E){return O(E);},'aWECh':function(O,E){return O===E;},'DvuYy':function(O,E){return O===E;},'SRrEa':e(-CZ.T,-CZ.U,-CZ.h,CZ.u,-CZ.I)+'r','IWLGg':function(O,E){return O===E;},'DgxlR':function(O,E){return O>E;},'OAxBr':e(-CZ.i,-CZ.R,-CZ.Z,CZ.O,-CZ.E)+y(-CZ.CO,-CZ.CE,-CZ.Cz,CZ.Cp,-CZ.Cv)+y(-CZ.CK,-CZ.CY,-CZ.CA,CZ.CX,-CZ.CG)+e(-CZ.Cr,-CZ.Cn,-CZ.Cg,CZ.Cq,-CZ.Ck),'NptLw':function(O,E){return O-E;},'CuwGV':e(-CZ.Ce,-CZ.Cy,-CZ.Cs,CZ.CM,-CZ.Cm)+m(-CZ.CB,-CZ.Cj,-CZ.Cx,-CZ.Cd,CZ.CQ)+e(-CZ.Co,-CZ.Cf,-CZ.Ct,CZ.CV,-CZ.CW),'jbONS':function(O,E){return O===E;},'cvwpi':function(O,E){return O===E;},'YnUgc':m(-CZ.Cl,-CZ.CJ,-CZ.CH,-CZ.CL,CZ.CS)+e(-CZ.Cc,-CZ.Cw,-CZ.CP,CZ.CQ,-CZ.CN)+y(-CZ.Ca,-CZ.D0,-CZ.D1,CZ.D2,-CZ.D3)+y(-CZ.D4,-CZ.D5,-CZ.D6,CZ.D7,-CZ.D8),'MvlVr':function(O,E){return O/E;},'fkjND':function(O,E){return O*E;},'MOmwL':function(O,E){return O===E;},'dsCOt':y(-CZ.CA,-CZ.D9,-CZ.DC,CZ.DD,-CZ.DF)+e(-CZ.Db,-CZ.DT,-CZ.DU,CZ.Dh,-CZ.Db)+e(-CZ.Du,-CZ.DI,-CZ.Di,CZ.DR,-CZ.DZ)+s(CZ.DO,CZ.DE,CZ.Dz,CZ.Dp,CZ.Dv)+'t'},i={};i[m(-CZ.DK,-CZ.DY,-CZ.DA,-CZ.DX,CZ.DG)+e(-CZ.Dr,-CZ.Dn,-CZ.Dg,CZ.Dq,-CZ.Dk)+'th']=U[M(CZ.De,CZ.Dy,-CZ.Ds,CZ.DM,CZ.Dm)]??null,i[e(-CZ.DB,-CZ.Dj,-CZ.Dx,CZ.Dd,-CZ.DQ)+s(CZ.Do,CZ.D1,CZ.Df,CZ.Dt,CZ.DV)+s(CZ.DW,CZ.Dl,CZ.DJ,CZ.DH,CZ.DL)]=U[m(-CZ.DS,-CZ.DA,-CZ.Dc,-CZ.Dw,CZ.DP)+'t']??null,i[y(-CZ.DN,-CZ.DA,-CZ.Da,CZ.F0,-CZ.F1)+s(CZ.F2,CZ.F3,CZ.F4,CZ.F5,CZ.Dz)+s(CZ.F6,CZ.CN,CZ.F7,CZ.F8,CZ.F9)+'th']=U[m(-CZ.FC,-CZ.FD,-CZ.FF,-CZ.Fb,CZ.FT)+s(CZ.FU,CZ.Fh,CZ.Fu,CZ.FI,CZ.CY)]??null,i[e(-CZ.Fi,-CZ.FR,-CZ.FZ,CZ.CV,-CZ.FO)+M(CZ.FE,CZ.Fz,CZ.Fp,CZ.Fv,CZ.FK)+y(-CZ.F7,-CZ.FY,-CZ.FA,CZ.FT,-CZ.Dn)+m(-CZ.FX,-CZ.FG,-CZ.Fr,-CZ.Fn,CZ.Fg)]=U[M(CZ.Dn,CZ.Fq,CZ.FE,CZ.Cm,CZ.Fk)+e(-CZ.Fe,-CZ.Fy,-CZ.Fs,CZ.FM,-CZ.Fm)+'t']??null,i[m(-CZ.FB,-CZ.Fj,-CZ.Fx,-CZ.Fd,CZ.F2)+m(-CZ.FQ,-CZ.Fo,-CZ.Ff,-CZ.Ft,CZ.FV)+s(CZ.F6,CZ.Fx,CZ.FW,CZ.Fl,CZ.FJ)+'th']=U[M(CZ.FH,CZ.Cw,CZ.FL,CZ.Fy,CZ.DO)+s(CZ.FS,CZ.Fc,CZ.Dp,CZ.Fw,CZ.FP)]??null,i[s(CZ.FN,CZ.Fa,CZ.FI,CZ.b0,CZ.D6)+s(CZ.b1,CZ.b2,CZ.b3,CZ.b4,CZ.b5)+s(CZ.DD,CZ.Df,CZ.b6,CZ.b7,CZ.b8)+'th']=U[s(CZ.b9,CZ.bC,CZ.bD,CZ.bF,CZ.bb)+s(CZ.DR,CZ.bT,CZ.bU,CZ.bh,CZ.bu)]??null;function s(T,U,h,u,I){return k(T-Ch.T,u-Ch.U,h-Ch.h,T,I-Ch.u);}function y(T,U,h,u,I){return k(T-Cu.T,T- -Cu.U,h-Cu.h,u,I-Cu.u);}i[M(CZ.bI,CZ.bi,CZ.bR,CZ.bZ,CZ.bO)+y(-CZ.bE,-CZ.b0,-CZ.bz,CZ.bp,-CZ.bv)+e(-CZ.bK,-CZ.bY,-CZ.bA,CZ.DO,-CZ.bX)+s(CZ.bG,CZ.br,CZ.Fw,CZ.D8,CZ.b8)]=U[s(CZ.DD,CZ.bn,CZ.bg,CZ.bq,CZ.bk)+M(CZ.be,CZ.by,CZ.Fp,CZ.Dx,CZ.bs)+'n']?.[m(-CZ.bM,-CZ.bm,-CZ.bB,-CZ.bj,CZ.bx)]??null,i[m(-CZ.bd,-CZ.bQ,-CZ.bo,-CZ.bf,CZ.FU)+M(CZ.bt,CZ.bV,CZ.bW,CZ.bl,CZ.bJ)+M(CZ.bH,CZ.bL,CZ.bS,CZ.Db,CZ.bc)+m(-CZ.bw,-CZ.bP,-CZ.bN,-CZ.ba,CZ.T0)+y(-CZ.T1,-CZ.T2,-CZ.T3,CZ.T4,-CZ.T5)]=h[M(CZ.bi,CZ.T6,CZ.T7,CZ.T8,CZ.T9)+M(CZ.TC,CZ.TD,CZ.TF,CZ.Tb,CZ.TT)+s(CZ.TU,CZ.Th,CZ.bb,CZ.Tu,CZ.TI)+'o']??null,i[y(-CZ.Ti,-CZ.TR,-CZ.TZ,CZ.TO,-CZ.TE)+e(-CZ.Tz,-CZ.Tp,-CZ.Tv,CZ.TK,-CZ.TY)+m(-CZ.TA,-CZ.TX,-CZ.TG,-CZ.Tr,CZ.Tn)+'th']=h[s(CZ.Dd,CZ.Tg,CZ.Tq,CZ.Tk,CZ.bu)+m(-CZ.Te,-CZ.Ty,-CZ.Ts,-CZ.TM,CZ.Tm)]??null,i[y(-CZ.TB,-CZ.Tj,-CZ.Tx,CZ.FM,-CZ.Td)+s(CZ.TQ,CZ.To,CZ.Tf,CZ.Tt,CZ.b3)+m(-CZ.TV,-CZ.TW,-CZ.Tl,-CZ.TJ,CZ.TH)+m(-CZ.TL,-CZ.TS,-CZ.Tc,-CZ.Tw,CZ.TP)]=h[y(-CZ.TN,-CZ.Ta,-CZ.U0,CZ.U1,-CZ.U2)+m(-CZ.U3,-CZ.U4,-CZ.U5,-CZ.U6,CZ.DP)+'t']??null;function m(T,U,h,u,I){return k(T-CI.T,T- -CI.U,h-CI.h,I,I-CI.u);}i[s(CZ.b9,CZ.bF,CZ.U7,CZ.TE,CZ.Cz)+m(-CZ.U8,-CZ.U9,-CZ.UC,-CZ.Tk,CZ.UD)+e(-CZ.Tv,-CZ.Ck,-CZ.UF,CZ.Ub,-CZ.UT)+'th']=h[m(-CZ.UU,-CZ.Uh,-CZ.DL,-CZ.Uu,CZ.UI)+s(CZ.Ui,CZ.UR,CZ.Dp,CZ.UZ,CZ.UO)]??null;function e(T,U,h,u,I){return k(T-Ci.T,T- -Ci.U,h-Ci.h,u,I-Ci.u);}i[m(-CZ.UE,-CZ.Uz,-CZ.Up,-CZ.Uv,CZ.bx)+y(-CZ.UK,-CZ.TX,-CZ.FP,CZ.UY,-CZ.UA)+e(-CZ.UX,-CZ.UG,-CZ.Ck,CZ.Ur,-CZ.Un)+m(-CZ.Ug,-CZ.Uq,-CZ.Uk,-CZ.Ue,CZ.Uy)]=h[e(-CZ.Cm,-CZ.Cr,-CZ.Us,CZ.UM,-CZ.Um)+y(-CZ.UB,-CZ.Uj,-CZ.Ux,CZ.Ud,-CZ.UQ)+'t']??null;function M(T,U,h,u,I){return k(T-CR.T,U- -CR.U,h-CR.h,I,I-CR.u);}const R=i,Z=I[e(-CZ.Uo,-CZ.Uf,-CZ.Dy,CZ.Ut,-CZ.UV)](safeHasFocus,u);return I[y(-CZ.UW,-CZ.Ul,-CZ.UJ,CZ.UH,-CZ.UL)](Z,!![])&&I[M(CZ.US,CZ.Uc,CZ.Uw,CZ.UP,CZ.bs)](typeof h[y(-CZ.UN,-CZ.bT,-CZ.Ua,CZ.h0,-CZ.h1)+M(-CZ.h2,CZ.h3,CZ.h4,CZ.h5,CZ.h6)+'t'],I[M(CZ.h7,CZ.h8,CZ.h9,CZ.hC,CZ.DR)])&&I[m(-CZ.hD,-CZ.hF,-CZ.hb,-CZ.hT,CZ.hU)](typeof h[M(-CZ.hh,CZ.hu,CZ.hI,-CZ.hi,CZ.hR)+m(-CZ.hZ,-CZ.bB,-CZ.hO,-CZ.Ft,CZ.FS)+'t'],I[M(CZ.hE,CZ.hz,CZ.hp,-CZ.hv,CZ.hK)])&&I[e(-CZ.Z,-CZ.hY,-CZ.hv,CZ.hA,-CZ.hX)](h[e(-CZ.UT,-CZ.hG,-CZ.hr,CZ.hn,-CZ.hg)+y(-CZ.hq,-CZ.Uw,-CZ.bE,CZ.hk,-CZ.he)+'t'],-0xb*0xad+-0x247c+0x2beb)?R[I[e(-CZ.hy,-CZ.hs,-CZ.hM,CZ.hm,-CZ.hB)]]=I[m(-CZ.hj,-CZ.hx,-CZ.hd,-CZ.hQ,CZ.ho)](h[s(CZ.hf,CZ.CW,CZ.ht,CZ.hV,CZ.CG)+y(-CZ.Tr,-CZ.TZ,-CZ.hW,CZ.hl,-CZ.hJ)+'t'],h[y(-CZ.hH,-CZ.UC,-CZ.hL,CZ.b1,-CZ.hS)+y(-CZ.hc,-CZ.br,-CZ.hw,CZ.bG,-CZ.hx)+'t']):R[I[y(-CZ.Cz,-CZ.hP,-CZ.hN,CZ.ha,-CZ.u0)]]=null,R[I[m(-CZ.hb,-CZ.u1,-CZ.u2,-CZ.u3,CZ.TU)]]=Z,I[M(CZ.u4,CZ.Ds,CZ.u5,CZ.u6,CZ.u7)](typeof U[s(CZ.u8,CZ.u9,CZ.he,CZ.uC,CZ.bl)],I[e(-CZ.uD,-CZ.uF,-CZ.ub,CZ.uT,-CZ.UT)])&&I[m(-CZ.uU,-CZ.uh,-CZ.uu,-CZ.uI,CZ.Tn)](U[y(-CZ.ui,-CZ.Fx,-CZ.uR,CZ.F6,-CZ.bN)],0x562+0x1f3c+-0x249e)&&I[y(-CZ.uZ,-CZ.Ti,-CZ.uO,CZ.uE,-CZ.uz)](typeof h[m(-CZ.up,-CZ.uv,-CZ.uK,-CZ.uY,CZ.bJ)+m(-CZ.uA,-CZ.uX,-CZ.uG,-CZ.ur,CZ.T0)],I[y(-CZ.un,-CZ.ug,-CZ.uq,CZ.UY,-CZ.CW)])&&(R[I[e(-CZ.uk,-CZ.hB,-CZ.ue,CZ.uy,-CZ.us)]]=I[e(-CZ.uM,-CZ.um,-CZ.uB,CZ.UD,-CZ.bi)](Math[e(-CZ.uj,-CZ.Dj,-CZ.ux,CZ.ud,-CZ.uQ)](I[y(-CZ.uo,-CZ.hC,-CZ.uf,CZ.ut,-CZ.uV)](I[s(CZ.b9,CZ.br,CZ.uW,CZ.hF,CZ.ul)](h[m(-CZ.uJ,-CZ.uH,-CZ.uL,-CZ.uS,CZ.UM)+m(-CZ.uc,-CZ.uw,-CZ.uP,-CZ.uN,CZ.ua)],U[s(CZ.I0,CZ.I1,CZ.I2,CZ.Fx,CZ.I3)]),-0x2437*-0x1+0xd*0x77+0x17*-0x1d2)),-0xf3c+0xa0b+0x595)),I[m(-CZ.I4,-CZ.I5,-CZ.I6,-CZ.I7,CZ.CQ)](typeof U[m(-CZ.TW,-CZ.I8,-CZ.I9,-CZ.Uu,CZ.IC)+'t'],I[y(-CZ.ID,-CZ.bS,-CZ.IF,CZ.Ib,-CZ.bC)])&&I[m(-CZ.IT,-CZ.IU,-CZ.hS,-CZ.Ih,CZ.Iu)](typeof U[M(CZ.II,CZ.Ii,CZ.IR,-CZ.IZ,CZ.IO)+m(-CZ.IE,-CZ.Iz,-CZ.hb,-CZ.b5,CZ.F0)+'t'],I[y(-CZ.Ip,-CZ.Iv,-CZ.IK,CZ.IY,-CZ.IA)])&&(R[I[s(CZ.IX,CZ.IG,CZ.Ir,CZ.In,CZ.Ig)]]=I[s(CZ.Iq,CZ.Ik,CZ.Ie,CZ.Iy,CZ.uO)](U[y(-CZ.Is,-CZ.IM,-CZ.Im,CZ.IB,-CZ.uq)+'t'],U[e(-CZ.Ij,-CZ.bK,-CZ.Ix,CZ.Id,-CZ.IQ)+M(CZ.Io,CZ.If,CZ.It,CZ.IV,CZ.IW)+'t'])),R;}};function safeHasFocus(U){const CY={T:0x4d9,U:'8Nmj',h:0x4ae,u:0x4e6,I:0x4ea,i:0x4dd,R:'zKO5',Z:0x4ad,O:0x513,E:0x487,CA:0x4c8,CX:'YVjS',CG:0x4d4,Cr:0x4fa,Cn:0xba,Cg:0x11f,Cq:0xf5,Ck:0xbf,Ce:'ruku',Cy:0x133,Cs:0x135,CM:0x13c,Cm:0x148,CB:'Q@pf',Cj:0x4ba,Cx:'z]iS',Cd:0x4ea,CQ:0x4c3,Co:0x477,Cf:0xe8,Ct:0x147,CV:0x13d,CW:0x16a,Cl:'GNZk',CJ:0x1f0,CH:0x1b2,CL:'rDnd',CS:0x1e4,Cc:0x168,Cw:0x22d,CP:0x1d7,CN:'BTYp',Ca:0x19a,D0:0x1e2,D1:0x548,D2:'1LAw',D3:0x59f,D4:0x4f3,D5:0x580},CK={T:0x104,U:0x401,h:0x183,u:0x29},Cv={T:0x1a7,U:0x40,h:0x79,u:0x89},Cp={T:0x82,U:0x2c2,h:0xc8,u:0x64},Cz={T:0x15f,U:0x1a8,h:0x9e,u:0xf5},CE={T:0x170,U:0x2c1,h:0x139,u:0x199},h={};h[B(CY.T,CY.U,CY.h,CY.u,CY.I)]=function(I,i){return I===i;},h[B(CY.i,CY.R,CY.Z,CY.O,CY.E)]=B(CY.CA,CY.CX,CY.CG,CY.Cr,CY.E)+j(CY.Cn,CY.Cg,CY.Cq,CY.Ck,CY.Ce);function d(T,U,h,u,I){return k(T-CE.T,U- -CE.U,h-CE.h,h,I-CE.u);}function x(T,U,h,u,I){return k(T-Cz.T,T- -Cz.U,h-Cz.h,U,I-Cz.u);}const u=h;function Q(T,U,h,u,I){return k(T-Cp.T,h-Cp.U,h-Cp.h,U,I-Cp.u);}function j(T,U,h,u,I){return k(T-Cv.T,h-Cv.U,h-Cv.h,I,I-Cv.u);}function B(T,U,h,u,I){return k(T-CK.T,T-CK.U,h-CK.h,U,I-CK.u);}try{return u[j(CY.Cy,CY.Cs,CY.CM,CY.Cm,CY.CB)](typeof U[B(CY.Cj,CY.Cx,CY.Cd,CY.CQ,CY.Co)+j(CY.Cf,CY.Ct,CY.CV,CY.CW,CY.Cl)],u[d(-CY.CJ,-CY.CH,CY.CL,-CY.CS,-CY.Cc)])?U[d(-CY.Cw,-CY.CP,CY.CN,-CY.Ca,-CY.D0)+B(CY.D1,CY.D2,CY.D3,CY.D4,CY.D5)]():null;}catch{return null;}}
|
|
1
|
+
/**
|
|
2
|
+
* Screen geometry and the window's relationship to it.
|
|
3
|
+
*
|
|
4
|
+
* The derived values matter more than the raw ones. A headless browser
|
|
5
|
+
* classically reports zero browser chrome, and a non-integer devicePixelRatio
|
|
6
|
+
* is characteristic of real hardware in a way a round number is not.
|
|
7
|
+
*/
|
|
8
|
+
export const screenCollector = {
|
|
9
|
+
id: 'screen',
|
|
10
|
+
wave: 'instant',
|
|
11
|
+
collect({ screen, window, document }) {
|
|
12
|
+
const out = {
|
|
13
|
+
'screen.width': screen.width ?? null,
|
|
14
|
+
'screen.height': screen.height ?? null,
|
|
15
|
+
'screen.availWidth': screen.availWidth ?? null,
|
|
16
|
+
'screen.availHeight': screen.availHeight ?? null,
|
|
17
|
+
'screen.colorDepth': screen.colorDepth ?? null,
|
|
18
|
+
'screen.pixelDepth': screen.pixelDepth ?? null,
|
|
19
|
+
'screen.orientation': screen.orientation?.type ?? null,
|
|
20
|
+
'screen.devicePixelRatio': window.devicePixelRatio ?? null,
|
|
21
|
+
'screen.innerWidth': window.innerWidth ?? null,
|
|
22
|
+
'screen.innerHeight': window.innerHeight ?? null,
|
|
23
|
+
'screen.outerWidth': window.outerWidth ?? null,
|
|
24
|
+
'screen.outerHeight': window.outerHeight ?? null,
|
|
25
|
+
};
|
|
26
|
+
// Browser chrome height. Zero on a real windowed browser is close to
|
|
27
|
+
// impossible: there is always a tab strip and an address bar.
|
|
28
|
+
//
|
|
29
|
+
// **Only valid while the document has focus.** Chrome does not maintain
|
|
30
|
+
// live window geometry for a backgrounded tab, and what it reports instead
|
|
31
|
+
// looks exactly like a headless browser. Measured on a real Chrome 152,
|
|
32
|
+
// same tab, three states:
|
|
33
|
+
//
|
|
34
|
+
// unfocused, not yet rendered outer 0 inner 962 -> -962
|
|
35
|
+
// unfocused, stale geometry outer 962 inner 962 -> 0
|
|
36
|
+
// focused outer 962 inner 906 -> 56
|
|
37
|
+
//
|
|
38
|
+
// A background tab is completely ordinary — a link opened with cmd+click, a
|
|
39
|
+
// prerendered page, a form the user switched away from. Reporting any of
|
|
40
|
+
// those as zero chrome flags real people, so when the window is not focused
|
|
41
|
+
// the measurement simply is not available.
|
|
42
|
+
const focused = safeHasFocus(document);
|
|
43
|
+
if (focused === true &&
|
|
44
|
+
typeof window.outerHeight === 'number' &&
|
|
45
|
+
typeof window.innerHeight === 'number' &&
|
|
46
|
+
window.outerHeight > 0) {
|
|
47
|
+
out['screen.chromeHeight'] = window.outerHeight - window.innerHeight;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
out['screen.chromeHeight'] = null;
|
|
51
|
+
}
|
|
52
|
+
out['screen.focused'] = focused;
|
|
53
|
+
// How far the viewport overruns the screen it claims to be on.
|
|
54
|
+
//
|
|
55
|
+
// Reported as a ratio rather than a verdict, because the honest causes are
|
|
56
|
+
// real and this collector must not decide. Browser zoom inflates
|
|
57
|
+
// innerWidth while screen.width holds, and a window dragged across two
|
|
58
|
+
// monitors is wider than the screen the page thinks it is on. Whether any
|
|
59
|
+
// given ratio means anything is the consistency matrix's problem, and the
|
|
60
|
+
// measurement below is what tells it where the line is.
|
|
61
|
+
if (typeof screen.width === 'number' && screen.width > 0 && typeof window.innerWidth === 'number') {
|
|
62
|
+
out['screen.viewportRatio'] = Math.round((window.innerWidth / screen.width) * 100) / 100;
|
|
63
|
+
}
|
|
64
|
+
// The taskbar or menu bar. A screen whose available area exactly equals its
|
|
65
|
+
// full area is usually a virtual display.
|
|
66
|
+
if (typeof screen.height === 'number' && typeof screen.availHeight === 'number') {
|
|
67
|
+
out['screen.reservedHeight'] = screen.height - screen.availHeight;
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
/** `hasFocus` can be absent or throw in embedded and hardened contexts. */
|
|
73
|
+
function safeHasFocus(document) {
|
|
74
|
+
try {
|
|
75
|
+
return typeof document.hasFocus === 'function' ? document.hasFocus() : null;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Collector } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* What the storage subsystem will admit to.
|
|
4
|
+
*
|
|
5
|
+
* This was written to detect private windows and it does not, which is worth
|
|
6
|
+
* stating at the top rather than leaving for somebody to discover.
|
|
7
|
+
*
|
|
8
|
+
* The two classic techniques are a reduced quota and a missing
|
|
9
|
+
* `storageBuckets`. Both were shipped here and both were then measured against
|
|
10
|
+
* a real Chrome incognito window on the machine that produced
|
|
11
|
+
* `tools/fp-lab/captures/human-chrome.json`:
|
|
12
|
+
*
|
|
13
|
+
* store.quotaMb 10240 identical to the ordinary window
|
|
14
|
+
* store.bucketsMissing false the API is present
|
|
15
|
+
* every storage mechanism works
|
|
16
|
+
*
|
|
17
|
+
* Every other signal in the capture was byte-identical too — the same
|
|
18
|
+
* permission hash, the same voice hash, the same WebGPU limits. Chrome closed
|
|
19
|
+
* these vectors deliberately, and a `quotaSmall` threshold guessed from how
|
|
20
|
+
* Chromium used to behave would have reported `false` on every private window
|
|
21
|
+
* while looking like a working detector.
|
|
22
|
+
*
|
|
23
|
+
* So nothing here claims to detect private mode. What remains are the raw
|
|
24
|
+
* measurements, which are honest about something else: a quota and a set of
|
|
25
|
+
* working storage mechanisms describe how hardened or stripped an environment
|
|
26
|
+
* is, and a client where `localStorage` throws is not a private window, it is
|
|
27
|
+
* a container or a locked-down profile.
|
|
28
|
+
*
|
|
29
|
+
* If private-mode detection is wanted, it needs a technique nobody here has
|
|
30
|
+
* measured, and it should be built from a capture rather than from a
|
|
31
|
+
* description of how browsers once worked.
|
|
32
|
+
*/
|
|
33
|
+
export declare const storageCollector: Collector;
|