@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
@@ -0,0 +1,33 @@
1
+ import type { SignalValue } from '../types.js';
2
+ export interface BehaviorSummary {
3
+ readonly [key: string]: SignalValue;
4
+ }
5
+ export interface RecorderTarget {
6
+ addEventListener(type: string, listener: (event: Event) => void, options?: unknown): void;
7
+ removeEventListener(type: string, listener: (event: Event) => void, options?: unknown): void;
8
+ }
9
+ export interface RecorderOptions {
10
+ readonly now?: () => number;
11
+ }
12
+ /**
13
+ * Accumulates behavioural statistics from a target's input events.
14
+ *
15
+ * Constructed once per page and attached to the document; `stop()` detaches
16
+ * everything, so an SPA that mounts and unmounts a form does not leak listeners.
17
+ */
18
+ export declare class BehaviorRecorder {
19
+ #private;
20
+ constructor(options?: RecorderOptions);
21
+ /**
22
+ * Attaches to a target.
23
+ *
24
+ * Passive and capturing: passive so the page's scrolling is never blocked by
25
+ * us, capturing so a form that calls `stopPropagation` on its own inputs does
26
+ * not silently blind the recorder. A fingerprinting library that degrades a
27
+ * host page's scroll performance has failed at being a guest.
28
+ */
29
+ attach(target: RecorderTarget): void;
30
+ stop(): void;
31
+ /** Derived statistics only. Safe to call repeatedly. */
32
+ summary(): BehaviorSummary;
33
+ }
@@ -1 +1,303 @@
1
- (function(T,U){const CN={T:0x110,U:'XbE4',h:0x1a1,u:0x109,I:0x154,i:0x197,R:'!a7j',Z:0x27b,O:0x1dc,E:0x259,z:0x93,p:0x8d,v:0x58,K:0xa0,Y:'Nx5E',A:0x23d,X:0x1e3,G:0x22a,Ca:0x1e6,D0:'i)T]',D1:0x162,D2:'5JFS',D3:0x1d7,D4:0x252,D5:0x1cd,D6:0x165,D7:'XbE4',D8:0x1a6,D9:0x113,DC:0x18a,DD:0x11e,DF:'tnJh',Db:0x1d6,DT:0x130,DU:0x1b9,Dh:0x54d,Du:'Rt3E',DI:0x5ae,Di:0x548,DR:0x5bf,DZ:'07pn',DO:0x1b8,DE:0x1fc,Dz:0x226},CP={T:0x24c},Cw={T:0x367},Cc={T:0x36},CS={T:0x2e5},CL={T:0x3d5};function g(T,U,h,u,I){return b(h- -CL.T,U);}function n(T,U,h,u,I){return b(u- -CS.T,I);}function r(T,U,h,u,I){return b(I-Cc.T,U);}const h=T();function k(T,U,h,u,I){return b(u-Cw.T,U);}function q(T,U,h,u,I){return b(u- -CP.T,I);}while(!![]){try{const u=-parseInt(r(CN.T,CN.U,CN.h,CN.u,CN.I))/(0x24*-0x9+0xa33*0x3+-0x4*0x755)+-parseInt(r(CN.i,CN.R,CN.Z,CN.O,CN.E))/(0x6dd*-0x5+-0x1*-0x1f01+0xaa*0x5)+parseInt(n(-CN.z,-CN.p,-CN.v,-CN.K,CN.Y))/(0x170b*0x1+-0xfe9+-0x71f)+parseInt(n(-CN.A,-CN.X,-CN.G,-CN.Ca,CN.D0))/(0x56b*0x7+0x1b3a+-0x29b*0x19)*(parseInt(g(-CN.D1,CN.D2,-CN.D3,-CN.D4,-CN.D5))/(-0x1*0x577+0x2c2*-0xe+-0x88*-0x53))+-parseInt(g(-CN.D6,CN.D7,-CN.D8,-CN.D9,-CN.DC))/(0x110d*-0x1+-0x9cb+-0x13*-0x16a)+parseInt(r(CN.DD,CN.DF,CN.Db,CN.DT,CN.DU))/(0x2e1*-0x1+-0x1943+-0x1c2b*-0x1)+-parseInt(k(CN.Dh,CN.Du,CN.DI,CN.Di,CN.DR))/(0x2311+-0x174b*-0x1+-0x3a54)*(-parseInt(r(CN.X,CN.DZ,CN.DO,CN.DE,CN.Dz))/(0x125a+-0x1*-0x2a9+-0x14fa));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,0x1*-0x8d2b3+0x13*-0x59f3+0x1699a0));const D=(function(){let T=!![];return function(U,h){const D0={T:'Nx5E',U:0x2fb,h:0x2d5,u:0x28b,I:0x367},Ca={T:0x199},u=T?function(){function e(T,U,h,u,I){return b(h-Ca.T,T);}if(h){const I=h[e(D0.T,D0.U,D0.h,D0.u,D0.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const DC={T:0x15f,U:'6]IB',h:0x15,u:0xd4,I:0xfd,i:0x2af,R:0x36e,Z:0x2d5,O:'pq@(',E:0x3b7,z:0x36c,p:'^&&H',v:0x43a,K:0x429,Y:0x40e,A:0x3c0,X:0x3d1,G:0x2a9,DD:0x317,DF:'9mZD',Db:0x2ee,DT:0x2c3,DU:0x360,Dh:0x29a,Du:'mkqZ',DI:0x373,Di:0x34a,DR:0x361,DZ:'!aSd',DO:0xd2,DE:0x14f,Dz:'7eaK',Dp:0x8e,Dv:0x150,DK:0x195,DY:'tnJh',DA:0xfd,DX:0x1d5,DG:0x44,Dr:0x4a,Dn:'6]IB',Dg:0x7a,Dq:0x92,Dk:0xae,De:0x12c,Dy:'NH(@',Ds:0x49,DM:0x90,Dm:0x2dd,DB:0x34c,Dj:0x2fe,Dx:'XbpW',Dd:0x413,DQ:0x510,Do:'XbE4',Df:0x3f9,Dt:0x54a,DV:0x4aa,DW:0x340,Dl:'NH(@',DJ:0x3a2,DH:0x3ca,DL:0x6,DS:'2W!9',Dc:0x100,Dw:0x90,DP:0x3d,DN:0x557,Da:'usOh',F0:0x48c,F1:0x5a7,F2:0x506,F3:0x3cb,F4:0x455,F5:0x415,F6:'I@!)',F7:0x4a2,F8:0x64,F9:0x75,FC:'uHN!',FD:0x2a,FF:0x2,Fb:0x445,FT:'I@!)',FU:0x3b3,Fh:0x3c6,Fu:0x438,FI:0x595,Fi:'DJ5N',FR:0x5a4,FZ:0x4a8,FO:0x51a},D9={T:0xff},D8={T:0x2e7},D7={T:0x263},D6={T:0x240},D4={T:0xc0};function B(T,U,h,u,I){return b(T- -D4.T,h);}const U={};U[y(-DC.T,DC.U,-DC.h,-DC.u,-DC.I)]=function(u,I){return u!==I;},U[s(DC.i,DC.R,DC.Z,DC.O,DC.E)]=M(DC.z,DC.p,DC.v,DC.K,DC.Y)+m(DC.A,DC.X,DC.G,DC.DD,DC.DF)+'+$';function s(T,U,h,u,I){return b(U-D6.T,u);}const h=U;function y(T,U,h,u,I){return b(u- -D7.T,U);}function M(T,U,h,u,I){return b(I-D8.T,U);}function m(T,U,h,u,I){return b(u-D9.T,I);}if(h[m(DC.Db,DC.DT,DC.DU,DC.Dh,DC.Du)](C[m(DC.DI,DC.DU,DC.Di,DC.DR,DC.DZ)]()[B(DC.DO,DC.DE,DC.Dz,DC.Dp,DC.DE)+B(DC.Dv,DC.DK,DC.DY,DC.DA,DC.DX)]()[B(DC.DG,-DC.Dr,DC.Dn,DC.Dg,DC.Dq)+'Of']('\x0a'),-(0xd*0x2b4+0x4e3*0x4+-0x1*0x36af)))return;return C[B(DC.Dk,DC.De,DC.Dy,DC.Ds,DC.DM)+s(DC.Dm,DC.DB,DC.Dj,DC.Dx,DC.Dd)]()[M(DC.DQ,DC.Do,DC.Df,DC.Dt,DC.DV)+'h'](h[M(DC.DW,DC.Dl,DC.DJ,DC.DH,DC.Df)])[y(DC.DL,DC.DS,-DC.Dc,-DC.Dw,-DC.DP)+M(DC.DN,DC.Da,DC.F0,DC.F1,DC.F2)]()[s(DC.F3,DC.F4,DC.F5,DC.F6,DC.F7)+B(DC.F8,DC.F9,DC.FC,DC.FD,DC.FF)+'r'](C)[M(DC.Fb,DC.FT,DC.FU,DC.Fh,DC.Fu)+'h'](h[M(DC.FI,DC.Fi,DC.FR,DC.FZ,DC.FO)]);});C();const MAX_SAMPLES=-0x132e+-0x211b+0x3549,POINTER_EVENTS=[j(0x63b,'L44J',0x5c8,0x61f,0x6ae)+x(0x3e0,'^&&H',0x470,0x41c,0x3ff)+'e',d(0x1a3,0x12b,0x184,'sq&h',0x14d)+Q(0x4c5,0x55c,0x581,'!a7j',0x547)+'n',o('6]IB',0x12e,0x208,0x19d,0x14b)+Q(0x4d5,0x519,0x51b,'M@mX',0x552)],KEY_EVENTS=[d(0xf7,0x1d3,0x182,'sq&h',0xca)+'wn',x(0x563,'XbpW',0x51c,0x505,0x4b6)];function push(U,h){const Di={T:0xe7,U:0x109,h:0xea,u:'s)0X',I:0x15d,i:0x4b,R:0x106,Z:0xe3,O:'4987',E:0xfd,z:0x4e7,p:0x530,v:0x491,K:0x509,Y:'E3nK',A:0x45,X:0xb8,G:0xcc,DR:'a6Kt',DZ:0xf8,DO:'uHN!',DE:0x166,Dz:0xf2,Dp:0x121,Dv:0x82,DK:0x1a,DY:'23im',DA:0xd,DX:0x50,DG:'pq@(',Dr:0x40,Dn:0xcd,Dg:0xe,Dq:0x16,Dk:'uHN!',De:0xd2,Dy:0x84,Ds:0x44,DM:0x76,Dm:0x54f,DB:'kGu$',Dj:0x4b8,Dx:0x4c5,Dd:0x4b1,DQ:0x638,Do:0x63e,Df:0x4fb,Dt:0x576,DV:'b*nM'},DI={T:0x1d9,U:0x9a,h:0x1e,u:0x21},Du={T:0x3e,U:0x1d8,h:0xc2,u:0x4f8},Dh={T:0x86,U:0x121,h:0xeb,u:0x587},DF={T:0xb8,U:0x59,h:0x1e3,u:0x32},DD={T:0x15d,U:0x190,h:0xe6,u:0x5e7};function f(T,U,h,u,I){return Q(T-DD.T,U-DD.U,h-DD.h,u,T- -DD.u);}const u={};function t(T,U,h,u,I){return Q(T-DF.T,U-DF.U,h-DF.h,I,u-DF.u);}u[f(-Di.T,-Di.U,-Di.h,Di.u,-Di.I)]=function(R,Z){return R-Z;},u[f(-Di.i,-Di.R,-Di.Z,Di.O,-Di.E)]=function(R,Z){return R/Z;},u[t(Di.z,Di.p,Di.v,Di.K,Di.Y)]=function(R,Z){return R*Z;};const I=u;U['n']+=0x1*0x2029+-0x228e+0x266;function W(T,U,h,u,I){return Q(T-Dh.T,U-Dh.U,h-Dh.h,T,u- -Dh.u);}function l(T,U,h,u,I){return Q(T-Du.T,U-Du.U,h-Du.h,h,u- -Du.u);}const i=I[f(-Di.A,-Di.X,-Di.G,Di.DR,-Di.DZ)](h,U[W(Di.DO,-Di.A,-Di.DE,-Di.Dz,-Di.Dp)]);U[l(-Di.Dv,-Di.DK,Di.DY,Di.DA,Di.DX)]+=I[W(Di.DG,-Di.Dr,-Di.Dn,-Di.Dg,-Di.Dq)](i,U['n']);function V(T,U,h,u,I){return Q(T-DI.T,U-DI.U,h-DI.h,U,I-DI.u);}U['m2']+=I[W(Di.Dk,Di.De,Di.Dy,Di.Ds,-Di.DM)](i,I[V(Di.Dm,Di.DB,Di.Dj,Di.Dx,Di.Dd)](h,U[t(Di.DQ,Di.Do,Di.Df,Di.Dt,Di.DV)]));}function sd(U){const DY={T:'XbE4',U:0x3b8,h:0x433,u:0x322,I:0x324,i:0x58,R:0xc0,Z:0x9f,O:0x7,E:'usOh',z:'fCqJ',p:0x3e0,v:0x360,K:0x3e8,Y:0x417,A:'QoGt',X:0x78,G:0x11b,DA:0x107,DX:0xf7,DG:0x256,Dr:0x39f,Dn:'gDwz',Dg:0x332,Dq:0x2e3,Dk:0x3f5,De:0x3c6,Dy:0x49f,Ds:'I@!)',DM:0x34c,Dm:0x3e3,DB:0x49b,Dj:0x452,Dx:'5JFS',Dd:0x339},Dz={T:0x1eb,U:0x109,h:0x19c,u:0xe4},DE={T:0x1ca,U:0x5,h:0x276,u:0x8c},DO={T:0x1d4,U:0x146,h:0x40a,u:0x111},DZ={T:0xb5,U:0x103,h:0x1a4,u:0x66},DR={T:0x1f0,U:0xf2,h:0x251,u:0x1d9},h={};function J(T,U,h,u,I){return d(T-DR.T,U-DR.U,U-DR.h,T,I-DR.u);}function H(T,U,h,u,I){return d(T-DZ.T,U-DZ.U,T- -DZ.h,I,I-DZ.u);}function S(T,U,h,u,I){return d(T-DO.T,U-DO.U,I- -DO.h,h,I-DO.u);}function L(T,U,h,u,I){return d(T-DE.T,U-DE.U,u- -DE.h,T,I-DE.u);}function c(T,U,h,u,I){return d(T-Dz.T,U-Dz.U,T-Dz.h,u,I-Dz.u);}h[J(DY.T,DY.U,DY.h,DY.u,DY.I)]=function(I,i){return I<i;},h[H(DY.i,DY.R,DY.Z,-DY.O,DY.E)]=function(I,i){return I/ i;},h[J(DY.z,DY.p,DY.v,DY.K,DY.Y)]=function(I,i){return I-i;};const u=h;return u[L(DY.A,-DY.X,-DY.G,-DY.DA,-DY.DX)](U['n'],-0x102d*-0x2+0x14b7+-0x350f)?null:Math[S(-DY.DG,-DY.Dr,DY.Dn,-DY.Dg,-DY.Dq)](u[c(DY.Dk,DY.De,DY.Dy,DY.Ds,DY.DM)](U['m2'],u[c(DY.Dm,DY.DB,DY.Dj,DY.Dx,DY.Dd)](U['n'],0x3*0x778+0x12e2*0x1+-0x2949*0x1)));}function j(T,U,h,u,I){const DA={T:0x3c9};return b(T-DA.T,U);}function mean(U){const Dg={T:0x165,U:'s)0X',h:0x1bd,u:0x195,I:0x1fb,i:0x208,R:'sq&h',Z:0x262,O:0x1e1,E:0x207,z:0x275,p:'#OER',v:0x2e7,K:0x259,Y:0x2c6},Dn={T:0x692,U:0x1b,h:0x45,u:0x6d},DG={T:0x7af,U:0x1dc,h:0x58,u:0x91},DX={T:0x1ce,U:0x1c8,h:0xb1,u:0x1b4};function P(T,U,h,u,I){return j(h- -DX.T,T,h-DX.U,u-DX.h,I-DX.u);}const h={};function w(T,U,h,u,I){return j(u- -DG.T,U,h-DG.U,u-DG.h,I-DG.u);}h[w(-Dg.T,Dg.U,-Dg.h,-Dg.u,-Dg.I)]=function(I,i){return I===i;};function N(T,U,h,u,I){return j(T- -Dn.T,u,h-Dn.U,u-Dn.h,I-Dn.u);}const u=h;return u[w(-Dg.i,Dg.R,-Dg.Z,-Dg.O,-Dg.E)](U['n'],0x2510+-0x75f*0x1+-0xb*0x2b3)?null:U[w(-Dg.z,Dg.p,-Dg.v,-Dg.K,-Dg.Y)];}const DIRECTION_BUCKETS=0x170*0xb+0x1*-0xdfa+-0x21*0xe;export class BehaviorRecorder{#now;#started;#moveInterval={'n':0x0,'mean':0x0,'m2':0x0};#speed={'n':0x0,'mean':0x0,'m2':0x0};#curvature={'n':0x0,'mean':0x0,'m2':0x0};#directions=new Array(DIRECTION_BUCKETS)[x(0x2eb,'4987',0x38d,0x38b,0x323)](-0x1448+-0x3*-0x67a+0xda);#pointerSamples=0x1087+0xaaf+-0x1b36;#lastPoint;#lastAngle;#lastMoveAt;#dwell={'n':0x0,'mean':0x0,'m2':0x0};#flight={'n':0x0,'mean':0x0,'m2':0x0};#downAt=new Map();#lastUpAt;#keySamples=-0xee1+-0x7d*0x49+0x3286;#pasteEvents=0x659+0x8*-0xd7+0x5f;#scrollEvents=0x188+-0x1*0x20b5+0x17*0x15b;#wheelDeltaModes=new Set();#touchPoints=0x6*-0x649+0x1c7a+-0x2*-0x49e;#maxTouchRadius=0x15*0x19d+0x1*0x182e+-0xa7*0x59;#touchForceSeen=![];#focusChanges=0x3a0+0x167f+-0x1a1f;#fieldsFocused=new Set();#focusOrder=[];#trustedEvents=-0x1*-0x1c2d+0x1*0x5a7+-0x21d4;#untrustedEvents=-0x9*-0x3e+0x12b4+0xa2*-0x21;#firstInteractionAt;#lastPointerDownAt;#dwellBeforeClick;#detach=[];constructor(T={}){const De={T:0x24a,U:0x2ef,h:0x32f,u:'b*nM',I:0x268},Dk={T:0x85,U:0x18,h:0xc6,u:0x1eb},Dq={T:0x5f,U:0x6c,h:0x20,u:0x83};this.#now=T[a(De.T,De.U,De.h,De.u,De.I)]??(()=>Date[a(0x482,0x410,0x3e3,'oMM*',0x3ed)]());function C0(T,U,h,u,I){return x(T-Dq.T,U,h-Dq.U,u- -Dq.h,I-Dq.u);}function a(T,U,h,u,I){return x(T-Dk.T,u,h-Dk.U,U- -Dk.h,I-Dk.u);}this.#started=this.#now();}[x(0x396,'yQ55',0x484,0x3bd,0x3be)+'h'](U){const DH={T:0x63,U:0x53,h:'s)0X',u:0x1e,I:0x4f,i:0x9c,R:0x25,Z:'uHN!',O:0x7,E:0x6f,z:0x189,p:0x285,v:0x1e6,K:'b*nM',Y:0x16d,A:0xed,X:0x195,G:0x17f,DL:'6]IB',DS:0x209,Dc:0x99,Dw:0x10a,DP:'mkqZ',DN:0x133,Da:0x1d,F0:0x86,F1:0xb2,F2:'E3nK',F3:0x2f,F4:0x11d,F5:0x6a,F6:'hgLf',F7:0x129,F8:0x73,F9:0xc,FC:'@%DT',FD:0x7,FF:0x1b,Fb:0x12,FT:0x1c0,FU:0x243,Fh:0x209,Fu:0x17a,FI:0x3,Fi:0x68,FR:'^&&H',FZ:0x76,FO:0xbb,FE:'M@mX',Fz:0x518,Fp:0x579,Fv:0x58a,FK:0x5bb,FY:0x53,FA:'FX[U',FX:0x18,FG:0x98,Fr:0x7b,Fn:0x468,Fg:0x4b5,Fq:0x4fe,Fk:0x5b5,Fe:0x441,Fy:0x44f,Fs:0x494,FM:0x3f2,Fm:'oMM*',FB:0x5c0,Fj:0x5a3,Fx:0x4e4,Fd:0x53b,FQ:'zLUa',Fo:0x50b,Ff:0x3dd,Ft:0x55f,FV:0x4a1,FW:0x1b6,Fl:0x18e,FJ:0x114,FH:0x13d,FL:0x524,FS:0x453,Fc:0x4be,Fw:0x4c9,FP:'ipA8',FN:0x6d,Fa:0x55,b0:0x4,b1:0x5a,b2:0x99,b3:'ipA8',b4:0x4e,b5:0x50,b6:0x2b},Dl={T:0x1e9,U:0x80,h:0xb3,u:0x3f8},DW={T:0x4f,U:0x29,h:'a6Kt',u:0x3e,I:0x19,i:0x14f,R:0xc8,Z:'6]IB',O:0xb8,E:0x9c,z:0x33,p:0xe9,v:'QoGt',K:0x97,Y:0xf2,A:0x9b,X:0x13,G:0xdd,Dl:0x2,DJ:'M@mX'},DV={T:0xa7,U:0x18c,h:0x56,u:0xe2},Dt={T:0x93,U:0xfc,h:0x175,u:0x143},Do={T:0x4de,U:0x194,h:0x16b,u:0x9a},DQ={T:0x4b3,U:0xb1,h:0x182,u:0x99},Dd={T:0xf4,U:0x18e,h:0x14f,u:0x14d},DM={T:0x16a,U:0x127,h:0x149,u:0x133},Ds={T:0xb8,U:0x126,h:0x8e,u:0x3cd},Dy={T:0xf8,U:0xb,h:0x113,u:0xba};function C2(T,U,h,u,I){return o(u,U-Dy.T,h-Dy.U,u-Dy.h,h-Dy.u);}function C3(T,U,h,u,I){return o(I,U-Ds.T,h-Ds.U,u-Ds.h,h-Ds.u);}function C1(T,U,h,u,I){return o(h,U-DM.T,h-DM.U,u-DM.h,T- -DM.u);}const h={'JWytH':function(R,Z,O){return R(Z,O);},'YVXlR':function(R,Z,O){return R(Z,O);},'cYyqH':C1(-DH.T,DH.U,DH.h,DH.u,DH.I),'WgmLz':C1(-DH.i,DH.R,DH.Z,-DH.O,-DH.E),'PQVdY':function(R,Z,O){return R(Z,O);},'FAMRF':C2(DH.z,DH.p,DH.v,DH.K,DH.Y)+'l','jmtzn':C2(DH.A,DH.X,DH.G,DH.DL,DH.DS)+C1(-DH.Dc,-DH.Dw,DH.DP,-DH.DN,-DH.Da),'eDnCh':function(R,Z,O){return R(Z,O);},'eYaUf':C1(DH.F0,DH.F1,DH.F2,-DH.F3,DH.F4)+'in'};function C5(T,U,h,u,I){return o(U,U-Dd.T,h-Dd.U,u-Dd.h,u- -Dd.u);}const u={};u[C5(-DH.F5,DH.F6,-DH.F7,-DH.F8,DH.Da)+'ve']=!![],u[C5(DH.F9,DH.FC,DH.FD,DH.FF,-DH.Fb)+'re']=!![];const I=u,i=(R,Z)=>{const Df={T:0xed,U:0x2,h:0x1de,u:0xf7};U[C6(DW.T,-DW.U,DW.h,DW.u,-DW.I)+C6(DW.i,DW.R,DW.Z,DW.O,DW.E)+C6(DW.z,DW.p,DW.v,DW.K,DW.Y)+'r'](R,Z,I);function C7(T,U,h,u,I){return C1(h-DQ.T,U-DQ.U,u,u-DQ.h,I-DQ.u);}function CC(T,U,h,u,I){return C1(U-Do.T,U-Do.U,T,u-Do.h,I-Do.u);}function C8(T,U,h,u,I){return C1(u- -Df.T,U-Df.U,h,u-Df.h,I-Df.u);}function C9(T,U,h,u,I){return C1(T-Dt.T,U-Dt.U,I,u-Dt.h,I-Dt.u);}function C6(T,U,h,u,I){return C1(I-DV.T,U-DV.U,h,u-DV.h,I-DV.u);}this.#detach[C9(DW.A,DW.X,DW.G,-DW.Dl,DW.DJ)](()=>U[C9(0x122,0x127,0x145,0x182,'FX[U')+C9(0x93,0xd6,0xca,0xaf,'uHN!')+C7(0x3f1,0x4a6,0x3f9,'a6Kt',0x402)+C6(-0x5d,0x15,'I@!)',0x3c,-0x1b)](R,Z,I));};for(const R of POINTER_EVENTS)h[C2(DH.FT,DH.FU,DH.Fh,DH.F6,DH.Fu)](i,R,Z=>this.#onPointer(Z,R));for(const Z of KEY_EVENTS)h[C1(-DH.FI,DH.Fi,DH.FR,-DH.FZ,DH.FO)](i,Z,O=>this.#onKey(O,Z));h[C4(DH.FE,DH.Fz,DH.Fp,DH.Fv,DH.FK)](i,h[C5(DH.FY,DH.FA,DH.FX,DH.FG,DH.Fr)],O=>this.#onPaste(O));function C4(T,U,h,u,I){return o(T,U-Dl.T,h-Dl.U,u-Dl.h,I-Dl.u);}h[C3(DH.Fn,DH.Fg,DH.Fq,DH.Fk,DH.Z)](i,h[C3(DH.Fe,DH.Fy,DH.Fs,DH.FM,DH.Fm)],O=>this.#onWheel(O)),h[C4(DH.Fm,DH.FB,DH.Fj,DH.Fx,DH.Fd)](i,h[C4(DH.FQ,DH.Fo,DH.Ff,DH.Ft,DH.FV)],()=>{this.#scrollEvents+=0x21a6+-0x1ab5+-0x6f0;}),h[C2(DH.FW,DH.Fl,DH.FJ,DH.F2,DH.FH)](i,h[C3(DH.FL,DH.FS,DH.Fc,DH.Fw,DH.FP)],O=>this.#onTouch(O)),h[C1(-DH.FN,-DH.Fa,DH.DL,-DH.b0,-DH.b1)](i,h[C5(-DH.b2,DH.b3,DH.b4,-DH.b5,DH.b6)],O=>this.#onFocus(O));}[Q(0x566,0x596,0x59f,'9mZD',0x599)](){const Dc={T:0x2db,U:0x35b,h:0x334,u:'QoGt',I:0x2d6},DL={T:0xe,U:0x12,h:0xdf,u:0x101};function CD(T,U,h,u,I){return x(T-DL.T,u,h-DL.U,U- -DL.h,I-DL.u);}const T={'dUWME':function(U){return U();}};for(const U of this.#detach)T[CD(Dc.T,Dc.U,Dc.h,Dc.u,Dc.I)](U);this.#detach=[];}#mark(U){const F1={T:0x4c6,U:0x505,h:0x5c1,u:'usOh',I:0x4c8,i:0x401,R:0x320,Z:0x35c,O:'QoGt',E:0x394,z:0x449,p:0x345,v:0x438,K:'er2Y',Y:0x3a0,A:0x4ba,X:0x4bd,G:0x506,F2:'E3nK',F3:0x416},F0={T:0x20,U:0xb0,h:0xcc,u:0x392},Da={T:0x1b7,U:0x198,h:0x1af,u:0x220},DN={T:0xd2,U:0x13d,h:0x188,u:0x318},DP={T:0x4a,U:0x6,h:0x3c,u:0x34c},h={};h[CF(F1.T,F1.U,F1.h,F1.u,F1.I)]=function(I,i){return I===i;};const u=h;function CU(T,U,h,u,I){return o(u,U-DP.T,h-DP.U,u-DP.h,T-DP.u);}function Cb(T,U,h,u,I){return o(u,U-DN.T,h-DN.U,u-DN.h,I-DN.u);}function CT(T,U,h,u,I){return o(U,U-Da.T,h-Da.U,u-Da.h,h- -Da.u);}if(u[Cb(F1.i,F1.R,F1.Z,F1.O,F1.E)](U[Cb(F1.z,F1.p,F1.v,F1.K,F1.Y)+CU(F1.A,F1.X,F1.G,F1.F2,F1.F3)],!![]))this.#trustedEvents+=0xb6a+0xf76+-0x8f5*0x3;else this.#untrustedEvents+=0x5*0x2ff+-0x19f0+-0x7a*-0x17;function CF(T,U,h,u,I){return o(u,U-F0.T,h-F0.U,u-F0.h,U-F0.u);}this.#firstInteractionAt??=this.#now();}#onPointer(U,h){const FK={T:0x210,U:'pq@(',h:0x171,u:0x23b,I:0x1b2,i:'L44J',R:0xe3,Z:0x13e,O:0x129,E:0x12f,z:0x163,p:'hgLf',v:0x137,K:0x109,Y:0x1cc,A:0x220,X:'^&&H',G:0x1f0,FY:0x29c,FA:0x197,FX:'tnJh',FG:0x75,Fr:0x54,Fn:0xa,Fg:0x89,Fq:0x87,Fk:0x1b0,Fe:'!aSd',Fy:0x100,Fs:0xb7,FM:0x94,Fm:0x20a,FB:'i)T]',Fj:0x154,Fx:0x16e,Fd:'QoGt',FQ:0x12,Fo:0x4e,Ff:0xaa,Ft:0x90,FV:0x309,FW:0x1d9,Fl:0x288,FJ:0x26e,FH:'E3nK',FL:0x32a,FS:0x2f5,Fc:0x37a,Fw:0x32b,FP:'2W!9',FN:0x30f,Fa:0x319,b0:0x326,b1:0x31d,b2:'5JFS',b3:0x443,b4:0x468,b5:0x3a9,b6:0x350,b7:'XbE4',b8:0x138,b9:0xf,bC:'Rt3E',bD:0xbb,bF:0x9f,bb:0x15,bT:0xa8,bU:'5JFS',bh:0xc1,bu:0x67,bI:'I@!)',bi:0x218,bR:0x156,bZ:0x15e,bO:0x22f,bE:0x274,bz:0x269,bp:0x25d,bv:'b*nM',bK:0x61,bY:0x25,bA:'#OER',bX:0x67,bG:0x110,br:'^&&H',bn:0x4a,bg:0xa4,bq:0x135,bk:0x143,be:'FX[U',by:0x1fa,bs:0x197,bM:0x208,bm:0xd5,bB:0x225,bj:'XbE4',bx:0x18e,bd:0x14b,bQ:0x3d7,bo:0x3f7,bf:0x3a2,bt:0x453,bV:'er2Y',bW:0x235,bl:'07pn',bJ:0x1e6,bH:0x213,bL:0x2f3,bS:0x125,bc:0xf2,bw:')xr#',bP:0x15c,bN:0x115,ba:0x112,T0:0x19,T1:'I@!)',T2:0x5f,T3:0x14,T4:'M@mX',T5:0x216,T6:0x113,T7:0x205,T8:'Nx5E',T9:0x1e0,TC:0x1a2,TD:0x1cd,TF:'s)0X',Tb:0x120,TT:0x165,TU:0x121,Th:'gDwz',Tu:0xed,TI:0x63,Ti:0x36,TR:'XbpW',TZ:0x55,TO:0x6d,TE:0x26,Tz:0x16,Tp:0xd6,Tv:0xf9,TK:0xe7,TY:'9mZD',TA:0x11c,TX:0xc6,TG:0x120,Tr:0x14a,Tn:0x1aa,Tg:0x1fd,Tq:0x1bf,Tk:0x1a3,Te:0x1dc,Ty:0xb6,Ts:'J$1v',TM:0x171,Tm:0x1d8,TB:0xdf,Tj:0x1ef,Tx:'uHN!',Td:0x152,TQ:0x172,To:0x13b,Tf:0x295,Tt:0x1df,TV:0x181,TW:0x105,Tl:0x9e,TJ:'a6Kt',TH:0x66,TL:0x2d,TS:0xa3,Tc:'er2Y',Tw:0x4b,TP:0xee,TN:0x184,Ta:'jITw',U0:0x17c,U1:0x229,U2:0x27b,U3:0x33f,U4:0x2f0,U5:0x25c,U6:'5JFS',U7:0x18e,U8:0xb3,U9:'M@mX',UC:0x79,UD:0x2d3,UF:0x2e9,Ub:0x369,UT:0x2e9,UU:'oMM*',Uh:0x317,Uu:0x283,UI:0x22d,Ui:0x45c,UR:0x3aa,UZ:0x3ba,UO:0x348,UE:'NH(@',Uz:0x65,Up:0x15a,Uv:'ipA8',UK:0x123,UY:0xe,UA:'DJ5N',UX:0x85,UG:0x43,Ur:0x158,Un:0xc8,Ug:0x1af,Uq:0x127,Uk:0x2cc,Ue:0x304,Uy:0x2d2,Us:0x213},Fv={T:0x1df,U:0x103,h:0x389,u:0x1b9},Fp={T:0x11,U:0x1d1,h:0x131,u:0x156},Fz={T:0x51,U:0xe4,h:0x571,u:0xaa},FE={T:0x1a6,U:0x13b,h:0x393,u:0x8d},F2={T:0x198,U:0x69,h:0x2cc,u:0xb0};function Ch(T,U,h,u,I){return x(T-F2.T,U,h-F2.U,T- -F2.h,I-F2.u);}const u={'UFAuo':function(A,X){return A===X;},'zbXWh':Ch(FK.T,FK.U,FK.h,FK.u,FK.I)+Cu(FK.i,FK.R,FK.Z,FK.O,FK.E)+'n','oRkGA':function(A,X){return A-X;},'hGabc':function(A,X){return A===X;},'yRIbw':Ch(FK.z,FK.p,FK.v,FK.K,FK.Y)+Ch(FK.A,FK.X,FK.G,FK.FY,FK.FA),'gFdrs':function(A,X){return A>=X;},'xKTYT':function(A,X){return A!==X;},'RTRya':Cu(FK.FX,FK.FG,FK.Fr,FK.Fn,FK.Fg)+'r','uIhpY':function(A,X){return A!==X;},'vPTmD':function(A,X){return A===X;},'jhvDd':function(A,X){return A-X;},'DeETQ':function(A,X){return A>X;},'fWFJp':function(A,X,G){return A(X,G);},'mYEma':function(A,X){return A/X;},'MOfGp':function(A,X){return A-X;},'RXbxg':function(A,X){return A*X;},'mtYPU':function(A,X){return A/X;},'flRus':function(A,X){return A+X;},'OBlte':function(A,X){return A*X;},'YweWq':function(A,X){return A+X;},'rQWug':function(A,X){return A!==X;},'tAYLx':function(A,X){return A<X;},'BhBGt':function(A,X){return A*X;}};this.#mark(U);function CI(T,U,h,u,I){return x(T-FE.T,h,h-FE.U,u- -FE.h,I-FE.u);}if(u[CI(FK.Fq,FK.Fk,FK.Fe,FK.Fy,FK.Fs)](h,u[CR(-FK.FM,-FK.Fm,FK.FB,-FK.Fj,-FK.Fx)])){this.#lastPointerDownAt=this.#now(),this.#dwellBeforeClick=u[Cu(FK.Fd,-FK.FQ,FK.Fo,FK.Ff,FK.Ft)](this.#lastMoveAt,undefined)?undefined:Math[Ci(FK.FV,FK.FW,FK.Fl,FK.FJ,FK.FH)](u[Ci(FK.FL,FK.FS,FK.Fc,FK.Fw,FK.FP)](this.#lastPointerDownAt,this.#lastMoveAt));return;}if(u[Ci(FK.FN,FK.Fa,FK.b0,FK.b1,FK.b2)](h,u[Ci(FK.b3,FK.b4,FK.b5,FK.b6,FK.b7)]))return;if(u[CR(-FK.b8,FK.b9,FK.bC,-FK.bD,-FK.bF)](this.#pointerSamples,MAX_SAMPLES))return;const I=this.#now(),i=U[CI(FK.bb,FK.bT,FK.bU,FK.bh,FK.bu)+'tX'],R=U[Cu(FK.bI,FK.FM,FK.bi,FK.bR,FK.bZ)+'tY'];function CR(T,U,h,u,I){return x(T-Fz.T,h,h-Fz.U,u- -Fz.h,I-Fz.u);}if(u[Ci(FK.bO,FK.bE,FK.bz,FK.bp,FK.bv)](typeof i,u[CR(FK.bK,FK.bY,FK.bA,-FK.bX,-FK.bK)])||u[Ch(FK.bG,FK.br,FK.bn,FK.bg,FK.bq)](typeof R,u[Ch(FK.bk,FK.be,FK.by,FK.bs,FK.bM)]))return;function Ci(T,U,h,u,I){return x(T-Fp.T,I,h-Fp.U,h- -Fp.h,I-Fp.u);}const Z=this.#lastPoint,O={};O['x']=i,O['y']=R,O['t']=I,this.#lastPoint=O,this.#lastMoveAt=I,this.#pointerSamples+=-0x6f*0x2+-0x1d9b*0x1+0xa6*0x2f;if(u[CR(-FK.bm,-FK.bB,FK.bj,-FK.bx,-FK.bd)](Z,undefined))return;const E=u[Ci(FK.bQ,FK.bo,FK.bf,FK.bt,FK.bV)](i,Z['x']),z=u[Ch(FK.bW,FK.bl,FK.bJ,FK.bH,FK.bL)](R,Z['y']),p=u[CR(-FK.bS,-FK.bc,FK.bw,-FK.bP,-FK.bN)](I,Z['t']),v=Math[CI(FK.ba,-FK.T0,FK.T1,FK.T2,-FK.T3)](E,z);u[Cu(FK.T4,FK.T5,FK.T6,FK.Fx,FK.T7)](p,-0x2*0xea3+0x1*-0x19a3+0x1*0x36e9)&&(u[Ch(FK.Fj,FK.T8,FK.T9,FK.TC,FK.TD)](push,this.#moveInterval,p),u[Cu(FK.TF,FK.O,FK.Tb,FK.TT,FK.TU)](push,this.#speed,u[Cu(FK.Th,-FK.FQ,FK.Tu,FK.TI,FK.Ti)](v,p)));if(u[Cu(FK.TR,FK.TZ,FK.TO,FK.TE,-FK.Tz)](v,-0x1*-0x239b+0x1508+-0x38a3))return;const K=Math[Ch(FK.Tp,FK.FH,FK.bX,FK.Tv,FK.TK)](z,E),Y=Math[Cu(FK.TY,FK.TA,FK.TX,FK.TG,FK.Tr)](u[CR(-FK.Tn,-FK.Tg,FK.bV,-FK.Tq,-FK.Tk)](DIRECTION_BUCKETS,0x11*-0x191+-0x160f*-0x1+-0x1*-0x493),Math[CR(-FK.Te,-FK.Ty,FK.Ts,-FK.TM,-FK.Tm)](-0x903*-0x2+-0x1*0xf25+-0x2e1*0x1,Math[CI(FK.TB,FK.Tj,FK.Tx,FK.Td,FK.TQ)](u[CR(-FK.To,-FK.Tf,FK.X,-FK.Tt,-FK.TV)](u[CR(-FK.TW,-FK.Tl,FK.TJ,-FK.TH,-FK.K)](u[CI(FK.TL,FK.TS,FK.Tc,FK.Tw,-FK.bu)](K,Math['PI']),u[CI(FK.TP,FK.TN,FK.Ta,FK.U0,FK.U1)](0x625+0x278*0x8+-0x2f*0x8d,Math['PI'])),DIRECTION_BUCKETS))));this.#directions[Y]=u[Ci(FK.U2,FK.U3,FK.U4,FK.U5,FK.U6)](this.#directions[Y]??-0x3*0xc6e+-0xb*0xe3+0x1*0x2f0b,0x1575+-0x2a*0xb3+-0x1*-0x7ea);function Cu(T,U,h,u,I){return x(T-Fv.T,T,h-Fv.U,u- -Fv.h,I-Fv.u);}if(u[CI(FK.U7,FK.U8,FK.U9,FK.R,FK.UC)](this.#lastAngle,undefined)){let A=u[Ci(FK.UD,FK.UF,FK.Ub,FK.UT,FK.UU)](K,this.#lastAngle);while(u[Ci(FK.bB,FK.Uh,FK.Uu,FK.UI,FK.br)](A,Math['PI']))A-=u[Ci(FK.Ui,FK.UR,FK.UZ,FK.UO,FK.UE)](-0x18c3+0xf36+0x98f,Math['PI']);while(u[CR(-FK.Uz,-FK.Up,FK.Uv,-FK.UK,-FK.TT)](A,-Math['PI']))A+=u[CI(FK.To,FK.UY,FK.UA,FK.UX,FK.UG)](-0x65d+-0x17a9+0x7c*0x3e,Math['PI']);u[Ch(FK.Ur,FK.UE,FK.Un,FK.Ug,FK.Uq)](push,this.#curvature,Math[Ci(FK.Uk,FK.Ue,FK.Uy,FK.Us,FK.Uv)](A));}this.#lastAngle=K;}#onKey(T,U){const Fs={T:'2W!9',U:0x2b,h:0x74,u:0xe9,I:0xd4,i:0x61,R:0xc1,Z:'I@!)',O:0x4c,E:0x13,z:'4987',p:0xda,v:0x113,K:0xb0,Y:0x26,A:0x51e,X:0x54a,G:'kGu$',FM:0x49f,Fm:0x55a,FB:0x1a7,Fj:0x1fb,Fx:'L44J',Fd:0x11d,FQ:0x26b,Fo:0x23f,Ff:0x211,Ft:'pq@(',FV:0x29a,FW:0x2d9,Fl:'XbE4',FJ:0xe8,FH:0xbe,FL:0x181,FS:0x16d,Fc:0x3d,Fw:0x88,FP:'yQ55',FN:0xe6,Fa:0xee,b0:0x4a5,b1:0x454,b2:0x3f4,b3:0x3e4,b4:'E3nK',b5:0x10e,b6:0xf9,b7:'mkqZ',b8:0xe1,b9:0x97,bC:'UTxQ',bD:0xbe,bF:0x16b,bb:0x11f,bT:0x48,bU:0x427,bh:0x416,bu:0x485,bI:0x45b,bi:'#OER',bR:0x513,bZ:0x4c8,bO:0x497,bE:0x5ae,bz:'J$1v',bp:0x1ce,bv:0x165,bK:'07pn',bY:0x1f2,bA:0x13e,bX:0xa7,bG:0x116,br:'mkqZ',bn:0xbd,bg:0x93,bq:'fCqJ',bk:0x9e,be:0x78,by:0x96,bs:0x21},Fy={T:0x28,U:0x192,h:0x1,u:0x2e8},Fe={T:0x15,U:0xef,h:0xe8,u:0x3b},Fk={T:0x84,U:0x29,h:0x18e,u:0xf2},Fq={T:0x5c,U:0xea,h:0x184,u:0x39b},Fg={T:0xc,U:0x178,h:0x18a,u:0x3b1},h={'rAbGQ':function(R,Z){return R>=Z;},'hhHsx':function(R,Z){return R===Z;},'AjzIk':CZ(Fs.T,Fs.U,Fs.h,Fs.u,Fs.I)+'wn','vdWFT':function(R,Z){return R!==Z;},'eziJL':function(R,Z,O){return R(Z,O);},'aiOtJ':function(R,Z){return R-Z;},'wlRHG':function(R,Z){return R-Z;}};function CE(T,U,h,u,I){return o(h,U-Fg.T,h-Fg.U,u-Fg.h,T-Fg.u);}this.#mark(T);function Cp(T,U,h,u,I){return o(I,U-Fq.T,h-Fq.U,u-Fq.h,T-Fq.u);}function CZ(T,U,h,u,I){return o(T,U-Fk.T,h-Fk.U,u-Fk.h,U- -Fk.u);}function CO(T,U,h,u,I){return o(h,U-Fe.T,h-Fe.U,u-Fe.h,T- -Fe.u);}if(h[CO(Fs.i,Fs.R,Fs.Z,-Fs.O,Fs.E)](this.#keySamples,MAX_SAMPLES))return;const u=T[CZ(Fs.z,Fs.p,Fs.v,Fs.K,Fs.Y)]||T[CE(Fs.A,Fs.X,Fs.G,Fs.FM,Fs.Fm)]||'k',I=this.#now();if(h[CO(Fs.FB,Fs.Fj,Fs.Fx,Fs.Fd,Fs.FQ)](U,h[Cz(-Fs.Fo,-Fs.Ff,Fs.Ft,-Fs.FV,-Fs.FW)])){if(!this.#downAt[CZ(Fs.Fl,Fs.FJ,Fs.FH,Fs.FL,Fs.FS)](u))this.#downAt[CO(Fs.Fc,-Fs.Fw,Fs.FP,Fs.FN,Fs.Fa)](u,I);if(h[Cp(Fs.b0,Fs.b1,Fs.b2,Fs.b3,Fs.b4)](this.#lastUpAt,undefined))h[CO(Fs.b5,Fs.b6,Fs.b7,Fs.b8,Fs.b9)](push,this.#flight,h[CZ(Fs.bC,Fs.bD,Fs.bF,Fs.bb,Fs.bT)](I,this.#lastUpAt));return;}const i=this.#downAt[Cp(Fs.bU,Fs.bh,Fs.bu,Fs.bI,Fs.bi)](u);function Cz(T,U,h,u,I){return o(h,U-Fy.T,h-Fy.U,u-Fy.h,U- -Fy.u);}h[Cp(Fs.bR,Fs.bZ,Fs.bO,Fs.bE,Fs.bz)](i,undefined)&&(h[Cz(-Fs.bp,-Fs.bv,Fs.bK,-Fs.bY,-Fs.bA)](push,this.#dwell,h[Cz(-Fs.bX,-Fs.bG,Fs.br,-Fs.bn,-Fs.bg)](I,i)),this.#downAt[CZ(Fs.bq,Fs.bk,Fs.be,Fs.by,Fs.bs)+'e'](u),this.#keySamples+=0x2*0x418+-0x2368+0x1b39),this.#lastUpAt=I;}#onPaste(T){this.#mark(T),this.#pasteEvents+=-0x19*0x17b+0x1*-0xf3d+0x3441;}#onWheel(U){const Fo={T:'QoGt',U:0x375,h:0x39a,u:0x447,I:0x41b,i:'UTxQ',R:0x435,Z:0x350,O:0x3b9,E:0x36b,z:0x487,p:0x51b,v:0x52b,K:'5JFS',Y:0x4f7,A:0xe6,X:0x1af,G:'tnJh',Ff:0x1f2,Ft:0x197,FV:0x219,FW:0x184,Fl:'NH(@',FJ:0xf0,FH:0x104,FL:0x49f,FS:0x432,Fc:0x3c7,Fw:'4987',FP:0x486,FN:0x174,Fa:0x18a,b0:'a6Kt',b1:0x219,b2:0xfb,b3:0x8d,b4:0x38,b5:0x125,b6:0x141,b7:0x8e,b8:'kGu$',b9:0x100,bC:0x78,bD:0x142,bF:0x10f,bb:0x14c,bT:'!aSd',bU:0xa3,bh:0x1aa},FQ={T:0x186,U:0x2c,h:0x160,u:0x126},Fd={T:0x47,U:0x1d9,h:0xd4,u:0x354},Fx={T:0x79,U:0x1f0,h:0x10a,u:0x2a},FB={T:0x8a,U:0x12f,h:0x1cf,u:0x2a8},Fm={T:0x125,U:0xb7,h:0x27,u:0x30b};function Cv(T,U,h,u,I){return o(T,U-Fm.T,h-Fm.U,u-Fm.h,I-Fm.u);}function CY(T,U,h,u,I){return o(h,U-FB.T,h-FB.U,u-FB.h,U- -FB.u);}const h={};h[Cv(Fo.T,Fo.U,Fo.h,Fo.u,Fo.I)]=function(I,i){return I===i;};function CX(T,U,h,u,I){return o(T,U-Fx.T,h-Fx.U,u-Fx.h,u-Fx.u);}function CK(T,U,h,u,I){return o(u,U-Fd.T,h-Fd.U,u-Fd.h,U-Fd.u);}h[Cv(Fo.i,Fo.R,Fo.Z,Fo.O,Fo.E)]=CK(Fo.z,Fo.p,Fo.v,Fo.K,Fo.Y)+'r';const u=h;this.#mark(U),this.#scrollEvents+=-0x11f0+0x475*0x7+-0xd42;function CA(T,U,h,u,I){return o(U,U-FQ.T,h-FQ.U,u-FQ.h,T- -FQ.u);}if(u[CY(-Fo.A,-Fo.X,Fo.G,-Fo.Ff,-Fo.Ft)](typeof U[CY(-Fo.FV,-Fo.FW,Fo.Fl,-Fo.FJ,-Fo.FH)+CK(Fo.FL,Fo.FS,Fo.Fc,Fo.Fw,Fo.FP)],u[CY(-Fo.FN,-Fo.Fa,Fo.b0,-Fo.b1,-Fo.b2)]))this.#wheelDeltaModes[CA(Fo.b3,Fo.Fw,-Fo.b4,Fo.b5,Fo.b6)](U[CA(-Fo.b7,Fo.b8,-Fo.b9,-Fo.bC,-Fo.bD)+CY(-Fo.bF,-Fo.bb,Fo.bT,-Fo.bU,-Fo.bh)]);}#onTouch(U){const Fw={T:0x2e7,U:0x38a,h:'DJ5N',u:0x3cb,I:0x1eb,i:'Rt3E',R:0x25b,Z:0x219,O:0x279,E:0x47c,z:0x4a9,p:'usOh',v:0x3fe,K:0x3e1,Y:0xb7,A:'!aSd',X:0x12f,G:0xad,FP:0x91,FN:0x32e,Fa:0x356,b0:'s)0X',b1:0x3c1,b2:0x376,b3:0x42e,b4:0x393,b5:0x39f,b6:0x3df,b7:0x149,b8:'b*nM',b9:0x1bc,bC:0x1d8,bD:0x1cc,bF:0x49c,bb:0x44c,bT:'kGu$',bU:0x421,bh:0x4ca,bu:0x29e,bI:0x286,bi:0x2a9,bR:'5JFS',bZ:0x334,bO:0x34f,bE:'sq&h',bz:0x254,bp:0x2eb,bv:0x379,bK:0x45e,bY:0x378,bA:0x39a,bX:0x44a,bG:0x2b3,br:0x366,bn:0x33e,bg:'UTxQ',bq:0x325,bk:0x32,be:'!a7j',by:0xc0,bs:0xac,bM:0x98,bm:0x599,bB:0x55c,bj:'6]IB',bx:0x501,bd:0x4c4,bQ:0x470,bo:0x54d,bf:'FX[U',bt:0x4c9,bV:0x546,bW:0x5e,bl:'#OER',bJ:0xc0,bH:0x83,bL:0x5,bS:0x1c8,bc:'a6Kt',bw:0x2bd,bP:0x27b,bN:0x2ea,ba:0x4a,T0:'Nx5E',T1:0xde,T2:0x104,T3:0xb5,T4:0x32f,T5:0x1e4,T6:0x28b,T7:0x2a4,T8:0x29b,T9:'i)T]',TC:0x32a,TD:0x349,TF:0x2bf,Tb:0x2f,TT:0x51,TU:0x4f,Th:0x76,Tu:0x336,TI:0x390,Ti:0x3c6,TR:0x33e,TZ:0x2bb,TO:'hgLf',TE:0x2e6,Tz:0x293,Tp:0x274,Tv:0x21d,TK:'4987',TY:0x1b9,TA:0x11c,TX:0x17d,TG:0x92,Tr:'E3nK',Tn:0xb9,Tg:0xa7,Tq:0xc9,Tk:0x4d6,Te:0x397,Ty:0x431,Ts:0x3c3},Fc={T:0x4d,U:0x1ad,h:0x1b2,u:0x21},FL={T:0x11,U:0x33,h:0x275,u:0xbe},FV={T:0x1f4,U:0x1a7,h:0x126,u:0xb5},Ft={T:0xf4,U:0x142,h:0x429,u:0x7b},Ff={T:0x1ca,U:0x77,h:0x14,u:0x1bc},h={};function CG(T,U,h,u,I){return x(T-Ff.T,h,h-Ff.U,u- -Ff.h,I-Ff.u);}function Cg(T,U,h,u,I){return x(T-Ft.T,U,h-Ft.U,T- -Ft.h,I-Ft.u);}function Cn(T,U,h,u,I){return x(T-FV.T,u,h-FV.U,T- -FV.h,I-FV.u);}h[CG(Fw.T,Fw.U,Fw.h,Fw.U,Fw.u)]=function(R,Z){return R===Z;},h[Cr(Fw.I,Fw.i,Fw.R,Fw.Z,Fw.O)]=function(R,Z){return R<Z;},h[CG(Fw.E,Fw.z,Fw.p,Fw.v,Fw.K)]=function(R,Z){return R>Z;},h[Cg(Fw.Y,Fw.A,Fw.X,Fw.G,Fw.FP)]=function(R,Z){return R===Z;},h[CG(Fw.FN,Fw.Fa,Fw.b0,Fw.b1,Fw.b2)]=CG(Fw.b3,Fw.b4,Fw.p,Fw.b5,Fw.b6)+'r';function Cr(T,U,h,u,I){return x(T-FL.T,U,h-FL.U,h- -FL.h,I-FL.u);}h[Cr(Fw.b7,Fw.b8,Fw.b9,Fw.bC,Fw.bD)]=function(R,Z){return R>Z;};const u=h;this.#mark(U);const I=U[CG(Fw.bF,Fw.bb,Fw.bT,Fw.bU,Fw.bh)+'es'];function Cq(T,U,h,u,I){return x(T-Fc.T,U,h-Fc.U,u- -Fc.h,I-Fc.u);}if(u[Cn(Fw.bu,Fw.bI,Fw.bi,Fw.bR,Fw.bZ)](I,undefined)||u[Cq(Fw.bO,Fw.bE,Fw.bz,Fw.bp,Fw.bv)](I[CG(Fw.bK,Fw.bY,Fw.bT,Fw.bA,Fw.bX)+'h'],-0x1*0x557+0x1dfb+-0x18a4))return;this.#touchPoints=Math[Cn(Fw.bG,Fw.br,Fw.bn,Fw.bg,Fw.bq)](this.#touchPoints,I[Cg(Fw.bk,Fw.be,Fw.by,Fw.bs,-Fw.bM)+'h']);for(let R=0x1b*0x3+-0x10b9+-0x2a*-0x64;u[CG(Fw.bm,Fw.bB,Fw.bj,Fw.bx,Fw.bd)](R,I[CG(Fw.bQ,Fw.bo,Fw.bf,Fw.bt,Fw.bV)+'h']);R++){const Z=I[Cg(Fw.bW,Fw.bl,Fw.bJ,Fw.bH,Fw.bL)](R);if(u[Cq(Fw.bS,Fw.bc,Fw.bw,Fw.bP,Fw.bN)](Z,null))continue;const O=Math[Cg(Fw.ba,Fw.T0,Fw.T1,Fw.T2,Fw.T3)](Z[Cq(Fw.T4,Fw.bc,Fw.T5,Fw.T6,Fw.T7)+'sX']??-0xee4+-0x22*0xed+-0x2e5e*-0x1,Z[Cq(Fw.T8,Fw.T9,Fw.TC,Fw.TD,Fw.TF)+'sY']??-0x2*-0x3a9+0x1*-0x5cf+-0x9*0x2b);if(u[Cg(-Fw.Tb,Fw.bT,Fw.TT,Fw.TU,Fw.Th)](O,this.#maxTouchRadius))this.#maxTouchRadius=O;if(u[CG(Fw.Tu,Fw.TI,Fw.be,Fw.Ti,Fw.TR)](typeof Z[Cq(Fw.TZ,Fw.TO,Fw.TE,Fw.Tz,Fw.Tp)],u[Cr(Fw.Tv,Fw.TK,Fw.TY,Fw.TA,Fw.TX)])&&u[Cg(-Fw.TG,Fw.Tr,-Fw.Tn,-Fw.Tg,-Fw.Tq)](Z[CG(Fw.Tk,Fw.Te,Fw.TO,Fw.Ty,Fw.Ts)],0x1981*-0x1+-0x18dc+0x325d))this.#touchForceSeen=!![];}}#onFocus(U){const b5={T:0x368,U:0x407,h:0x2c8,u:'a6Kt',I:0x376,i:0xa1,R:'ipA8',Z:0x106,O:0x3c,E:0x90,z:0x5d,p:'yQ55',v:0xe4,K:0x5a,Y:0x93,A:0x36e,X:0x2a6,G:0x318,b6:'UTxQ',b7:0x3c8,b8:0x2a8,b9:0x27f,bC:0x2b3,bD:'!aSd',bF:0x1e6,bb:0x332,bT:0x2ac,bU:0x3d5,bh:'2W!9',bu:0x389,bI:0x1b4,bi:'zLUa',bR:0x161,bZ:0xb3,bO:0xf6,bE:0x16e,bz:'6]IB',bp:0x100,bv:0x22b,bK:0x1ca,bY:0x2d5,bA:'hgLf',bX:0x399,bG:0x216,br:0x26d,bn:0x3d,bg:'4987',bq:0x14,bk:0xf1,be:0x60,by:0x336,bs:0x2d1,bM:0x341,bm:'J$1v',bB:0x30c,bj:0x1cf,bx:'jITw',bd:0x1e4,bQ:0xc8,bo:0x126},b4={T:0xd8,U:0xca,h:0x110,u:0x1a6},b3={T:0x18d,U:0x1a4,h:0x29c,u:0x3},b2={T:0xb4,U:0x51,h:0x284,u:0x77},Fa={T:0xda,U:0xa8,h:0x404,u:0x139},FP={T:0x7f,U:0x197,h:0x2e4,u:0x17b};function Ce(T,U,h,u,I){return d(T-FP.T,U-FP.U,u- -FP.h,U,I-FP.u);}const h={};h[Ck(b5.T,b5.U,b5.h,b5.u,b5.I)]=function(R,Z){return R===Z;};function Cy(T,U,h,u,I){return d(T-Fa.T,U-Fa.U,T- -Fa.h,U,I-Fa.u);}h[Ce(-b5.i,b5.R,-b5.Z,-b5.O,-b5.E)]=function(R,Z){return R===Z;},h[Ce(-b5.z,b5.p,-b5.v,-b5.K,-b5.Y)]=function(R,Z){return R<Z;};const u=h;this.#mark(U);function Cs(T,U,h,u,I){return d(T-b2.T,U-b2.U,I- -b2.h,U,I-b2.u);}function CM(T,U,h,u,I){return d(T-b3.T,U-b3.U,h-b3.h,U,I-b3.u);}function Ck(T,U,h,u,I){return d(T-b4.T,U-b4.U,T-b4.h,u,I-b4.u);}this.#focusChanges+=-0x24c9+0x1*0x22a9+0x5*0x6d;const I=U[Ck(b5.A,b5.X,b5.G,b5.b6,b5.b7)+'t'];if(u[Ck(b5.b8,b5.b9,b5.bC,b5.bD,b5.bF)](I,null))return;const i=I['id']??I[Ck(b5.bb,b5.bT,b5.bU,b5.bh,b5.bu)]??I[Cs(-b5.bI,b5.bi,-b5.bR,-b5.bZ,-b5.bO)+'me']??'';if(u[Cy(-b5.bE,b5.bz,-b5.bp,-b5.bv,-b5.bK)](i,''))return;this.#fieldsFocused[Cy(-b5.bY,b5.bA,-b5.bX,-b5.bG,-b5.br)](i);if(u[Cs(b5.bn,b5.bg,b5.bq,-b5.bk,-b5.be)](this.#focusOrder[Ck(b5.by,b5.bs,b5.bM,b5.bm,b5.bB)+'h'],-0x2*-0x3f2+0x2039+-0x27fd))this.#focusOrder[Cs(-b5.bj,b5.bx,-b5.bd,-b5.bQ,-b5.bo)](i);}[o('QoGt',0xcf,0x9,0xd0,0x77)+'ry'](){const bX={T:'kGu$',U:0x4e5,h:0x551,u:0x57c,I:0x60f,i:'!aSd',R:0x518,Z:0x531,O:0x4e3,E:0x5fa,z:0x4ce,p:0x533,v:0x480,K:'23im',Y:0x483,A:0x9f,X:0x4f,G:0x117,bG:0x8f,br:'er2Y',bn:0x3f8,bg:0x493,bq:0x4ac,bk:'mkqZ',be:0x48c,by:'!a7j',bs:0x4cf,bM:0x4a8,bm:0x4ce,bB:0x40b,bj:0x49a,bx:0x4c2,bd:0x540,bQ:'J$1v',bo:0x55b,bf:0x302,bt:0x3a7,bV:0x2ec,bW:'uHN!',bl:0x362,bJ:0x418,bH:0x45f,bL:0x3ea,bS:0x3e1,bc:0x3cd,bw:0x49e,bP:0x4dc,bN:'XbE4',ba:0x477,T0:0x3c6,T1:0x384,T2:0x38b,T3:'6]IB',T4:0x339,T5:0x3a8,T6:0x3d5,T7:0x2e2,T8:'hgLf',T9:0x441,TC:'#OER',TD:0x4e6,TF:0x53f,Tb:0x492,TT:0x515,TU:0x1d,Th:0x92,Tu:0x6e,TI:0x89,Ti:0x44,TR:0x5e,TZ:0x61,TO:0x25,TE:'7eaK',Tz:0x4d7,Tp:0x534,Tv:'DJ5N',TK:0x559,TY:0x2eb,TA:0x306,TX:0x2f6,TG:'dwsN',Tr:0x39b,Tn:0x3d0,Tg:0x3bd,Tq:0x3c7,Tk:'tnJh',Te:0x458,Ty:0x31e,Ts:0x2e5,TM:0x36f,Tm:'E3nK',TB:0x322,Tj:'!a7j',Tx:0x410,Td:0x44d,TQ:0x4c2,To:0x395,Tf:0xb7,Tt:0xc,TV:0x74,TW:0x14,Tl:'gDwz',TJ:0x3ed,TH:0x467,TL:0x45d,TS:'sq&h',Tc:0x3df,Tw:0x315,TP:0x2b6,TN:0x2e1,Ta:0x293,U0:'9mZD',U1:0x36e,U2:0x320,U3:0x32d,U4:0x2f8,U5:')xr#',U6:0x7d,U7:0xa3,U8:0xb4,U9:0x15b,UC:'tnJh',UD:0x586,UF:0x531,Ub:'s)0X',UT:0x4fb,UU:0x36a,Uh:0x39e,Uu:0x2a6,UI:'gDwz',Ui:0x335,UR:0x224,UZ:0x2f3,UO:0x353,UE:0x2a2,Uz:'ipA8',Up:0x528,Uv:0x493,UK:0x4b3,UY:'L44J',UA:0x4ca,UX:0x393,UG:0x3e9,Ur:0x427,Un:'Rt3E',Ug:0x414,Uq:0x36c,Uk:0x3a0,Ue:0x35b,Uy:'b*nM',Us:0x3e7,UM:'zLUa',Um:0x552,UB:0x51b,Uj:0x55a,Ux:0x13,Ud:0x3f,UQ:0xea,Uo:0xcd,Uf:'NH(@',Ut:0x459,UV:0x35c,UW:0x3ce,Ul:0x473,UJ:0x51e,UH:0x4d1,UL:'pq@(',US:0x55,Uc:0x4c,Uw:0x1,UP:0xec,UN:'@%DT',Ua:0x33e,h0:0x3cb,h1:0x30a,h2:'s)0X',h3:0x30e,h4:0x406,h5:0x3e8,h6:0x337,h7:0x390,h8:0x4,h9:0x90,hC:0x47,hD:'fCqJ',hF:'fCqJ',hb:0x4b1,hT:0x474,hU:0x448,hh:0x45d,hu:0x4d2,hI:0x4a2,hi:0x4c7,hR:0x32c,hZ:0x40e,hO:0x41b,hE:'ipA8',hz:0x3cd,hp:0x386,hv:0x265,hK:0x332,hY:0x308,hA:'ipA8',hX:0x487,hG:0x484,hr:0x58d,hn:'sq&h',hg:0x4ae,hq:0x475,hk:0x461,he:0x4b8,hy:0x488,hs:0x332,hM:0x352,hm:0x3e0,hB:0x2b,hj:0x98,hx:0x3d,hd:0x36,hQ:'uHN!',ho:0x470,hf:0x561,ht:0x504,hV:0x4c5,hW:0x361,hl:0x3e6,hJ:'jITw',hH:0x32c,hL:0x578,hS:0x4bf,hc:0x46a,hw:0x471,hP:0x34a,hN:0x2c6,ha:0x3c9,u0:'#OER',u1:0x2a9,u2:0x411,u3:0x44a,u4:0x3f7,u5:'^&&H',u6:0x497,u7:0x58,u8:0x77,u9:0x60,uC:0x378,uD:0x351,uF:0x385,ub:0x2d3,uT:'XbE4',uU:0x32d,uh:0x3cf,uu:0x3ef,uI:0x3ce,ui:0x17,uR:0x47,uZ:0x53,uO:0x24,uE:0x313,uz:0x348,up:')xr#',uv:0x3b3,uK:0x285,uY:0x3a2,uA:0x31e,uX:0x2f0,uG:'J$1v',ur:0x35a,un:0x3b5,ug:0x40d,uq:'oMM*',uk:0xa4,ue:0x10,uy:0x16,us:0x2e,uM:'yQ55',um:0x33a,uB:0x2cd,uj:0x29f,ux:'yQ55',ud:0x28f,uQ:0x7e,uo:0x34,uf:0x4e,ut:0x4a,uV:'Nx5E',uW:0x54b,ul:0x4eb,uJ:0x469,uH:0x582,uL:0x420,uS:0x45b,uc:0x4d4,uw:0x3c0,uP:0x438,uN:0x51e,ua:0x4a5,I0:0x41,I1:0x5b,I2:0x20,I3:0x38,I4:0x58f,I5:0x562,I6:0x58a,I7:0x1a,I8:0x7a,I9:0x102,IC:0x81,ID:0x2a5,IF:0x2d0,Ib:0x25d,IT:0x309,IU:'QoGt',Ih:0x382,Iu:0x2b2,II:0x231,Ii:0x2ee,IR:'s)0X',IZ:0x3b4,IO:0x32e,IE:0x39d,Iz:0x303,Ip:0x3d2,Iv:0x446,IK:0x461,IY:'5JFS',IA:0x445,IX:0x4b5,IG:0x481,Ir:0x549,In:0x94,Ig:0x4b,Iq:0x3a,Ik:0x49,Ie:'#OER',Iy:0x237,Is:0x2c7,IM:0x338,Im:0x2af,IB:'dwsN',Ij:0x318,Ix:0x427,Id:0x37a,IQ:0x369,Io:'QoGt',If:0x58b,It:0x546,IV:0x550,IW:'XbpW',Il:0x34,IJ:0x1d,IH:0x48,IL:'dwsN',IS:'ipA8',Ic:0x370,Iw:0x3ef,IP:0x5c4,IN:0x49c,Ia:0x5c1,i0:0x510,i1:0x485,i2:0x466,i3:0x508,i4:0x41c,i5:0x3b2,i6:0x4a1,i7:0x3f2,i8:0x462,i9:0x3fd,iC:0x4be,iD:0x3f8,iF:0x2,ib:0x50a,iT:0x4c1,iU:0x45c,ih:0x36b,iu:0x2b1,iI:'rIA[',ii:0x33c,iR:0x435,iZ:0x318,iO:0x397,iE:0x3ca,iz:0x464,ip:0x3f3,iv:0x32f,iK:0x350,iY:0x3be,iA:'ipA8',iX:0xc7,iG:0x81,ir:0xf4,ig:0x139,iq:'UTxQ',ik:0x3fd,ie:0x4a4,iy:0x1a,is:0x80,iM:0x122,im:0x2a,iB:'fCqJ',ij:0x39f,ix:0x2e1,id:0x2ba,iQ:'E3nK',io:0x465,it:0x4a0,iV:0x4de,iW:0x4b6,il:0x35e,iJ:0x294,iH:0x334,iL:'mkqZ',iS:0x412,ic:0x5a6,iw:0x510,iP:0x509,iN:0x4d9,ia:0x4dd,R0:0x4c3,R1:0x563,R2:0x500,R3:0x8b,R4:0x1e,R5:0xa4,R6:0xa8,R7:'usOh',R8:0x551,R9:0x4ad,RC:0x561,RD:0x570,RF:0x33,Rb:0x4e,RT:0xbc,RU:0x32,Rh:'M@mX',Ru:0x310,RI:0x3af,Ri:0x3a6,RR:0x62,RZ:0x2,RO:0xf9,RE:0x3a9,Rz:0x333,Rp:0x347,Rv:0x75,RK:0x9,RY:0x3,RA:0x5f,RX:'uHN!',RG:'sq&h',Rr:0x4ea,Rn:0x554,Rg:0x5ec,Rq:0x4f5,Rk:0x560,Re:0x5d4,Ry:0x5b6,Rs:0x52b,RM:0x33e,Rm:0x47f,RB:0x346,Rj:0x3d8,Rx:'9mZD',Rd:0x4b7,RQ:0x42f,Ro:0x4a3,Rf:0x215,Rt:0x34e,RV:0x1e8,RW:0x286,Rl:'XbpW',RJ:0x455,RH:0x44e,RL:'dwsN',RS:0x4c8,Rc:0x39f,Rw:0x3a2,RP:0x3e4,RN:'#OER',Ra:0x2e9,Z0:0x37d,Z1:0x450,Z2:0x541,Z3:0x4f5,Z4:0x43f,Z5:0x309,Z6:0x315,Z7:0x349,Z8:'kGu$',Z9:0x296,ZC:0x533,ZD:0x489,ZF:'E3nK',Zb:0x3d7,ZT:0x3de,ZU:0x31d,Zh:'2W!9',Zu:0x423,ZI:0x49e,Zi:0x51e,ZR:0x4ad,ZZ:0x44d,ZO:'#OER',ZE:0x426,Zz:0x3c0,Zp:0x3d0,Zv:0x3cc,ZK:0x3d1,ZY:0x82,ZA:0x5c,ZX:0xe6,ZG:0xb6,Zr:'zLUa',Zn:0xe8,Zg:0x3d,Zq:0x43,Zk:0x6a,Ze:0x223,Zy:0x212,Zs:0x1bd,ZM:0x282,Zm:0x4a5,ZB:0x426,Zj:0x483,Zx:0x495,Zd:0x3bb,ZQ:0x35f,Zo:0x44f,Zf:0x8e,Zt:0x158,ZV:0x11b,ZW:0x3ba,Zl:0x3ec,ZJ:0x456,ZH:'4987',ZL:0x442,ZS:0x43d,Zc:0x45f,Zw:0x40c,ZP:'I@!)',ZN:0x2c7,Za:0x290,O0:0x257,O1:0x2ba,O2:0x7c,O3:0xfe,O4:0x3ff,O5:0x3c9,O6:0x46e,O7:'yQ55',O8:0x42c,O9:'J$1v',OC:0x4cc,OD:0x2b9,OF:0x2ca,Ob:'2W!9',OT:0x271,OU:0x40d,Oh:0x35a,Ou:'7eaK',OI:0x416,Oi:0x90,OR:0x9a,OZ:0x14,OO:0x6f,OE:0xd5,Oz:0x33,Op:0x40,Ov:0x38,OK:'i)T]',OY:'E3nK',OA:0x4d3,OX:0x419,OG:0x458,Or:0x469,On:0x341,Og:0x252,Oq:0x3f1,Ok:0x3bf,Oe:0x3d6,Oy:'DJ5N',Os:0x444,OM:0xdc,Om:0x36,OB:0xf8,Oj:'L44J',Ox:0x39a,Od:0x33d,OQ:0x36d,Oo:'rIA[',Of:0x3d9,Ot:0x4be,OV:0x473,OW:0x519,Ol:0x500,OJ:'Rt3E',OH:0x50a,OL:0x4f0,OS:0x44b,Oc:0x536,Ow:0x2fa,OP:0x33d,ON:0x31f,Oa:'fCqJ',E0:0x276,E1:0x321,E2:0x312,E3:0x25e,E4:0x374,E5:'dwsN',E6:0x50f,E7:0x511,E8:0x4a7,E9:0x57e,EC:0x503,ED:0x5e9,EF:0x482,Eb:0x99,ET:0xd2,EU:0xd5,Eh:0x152,Eu:'!a7j',EI:0x3c,Ei:0xaf,ER:0x6,EZ:0x2bd,EO:0x315,EE:0x69,Ez:0x29,Ep:0xb5,Ev:'!a7j',EK:0x3c8,EY:0x332,EA:0x48b,EX:'kGu$',EG:0x392,Er:0x451,En:0x447,Eg:0x46c,Eq:0xf7,Ek:0x4a,Ee:0x1,Ey:0x68,Es:0x447,EM:0x474,Em:0x594,EB:0x19,Ej:0x78,Ex:'XbpW',Ed:0x2e9,EQ:0x358,Eo:0x306,Ef:'rIA[',Et:0x22a,EV:0x314,EW:0x34f,El:0x3d1,EJ:0x3e3,EH:0x320,EL:0x326,ES:0x377,Ec:0x42e,Ew:'zLUa',EP:0x429,EN:'XbE4',Ea:0x460,z0:0x4d9,z1:0x4fc,z2:0x2e1,z3:0x2a3,z4:0x270,z5:'@%DT',z6:0x3ac,z7:0x2d0,z8:0x456,z9:0x310,zC:0x38b,zD:0x3c3,zF:0x2d7,zb:0x3f5,zT:0x371,zU:0x4ba,zh:0x407,zu:0x4a5,zI:'6]IB',zi:0x4a0,zR:0x524,zZ:0x599,zO:0x5d7,zE:'07pn',zz:0x52a,zp:0x2e5,zv:0x31c,zK:0x357,zY:0x374,zA:'Rt3E',zX:0x3f9,zG:0x3db,zr:0x343,zn:'s)0X',zg:0x3d7,zq:0x73,zk:0x11f,ze:0x33f,zy:0x2b7,zs:0x38a,zM:0x50f,zm:0x4ef,zB:0x49f,zj:0x451,zx:0x520,zd:0x490,zQ:0x65,zo:0x50,zf:0x61,zt:'^&&H',zV:0x4f3,zW:0x506,zl:0x5a2,zJ:0x4f3},bA={T:0x12b,U:0x10c,h:0x2b4,u:0x96},bY={T:0x1a3,U:0x11,h:0x2b0,u:0xf9},bK={T:0x1b4,U:0x1df,h:0x168,u:0x18c},bv={T:0x190,U:0x116,h:0x164,u:0x40},bp={T:0x105,U:0x61,h:0x1b4,u:0xc3},T={'lBcQy':function(I,i){return I+i;},'pCrNj':Cm(bX.T,bX.U,bX.h,bX.u,bX.I)+Cm(bX.i,bX.R,bX.Z,bX.O,bX.E)+'ed','tmWdQ':function(I,i){return I>i;},'OKOVA':Cj(bX.z,bX.p,bX.v,bX.K,bX.Y)+Cx(bX.A,bX.X,bX.G,bX.bG,bX.br)+Cd(bX.bn,bX.bg,bX.bq,bX.bk,bX.be)+Cm(bX.by,bX.bs,bX.bM,bX.bm,bX.bB),'tOLzL':Cj(bX.bj,bX.bx,bX.bd,bX.bQ,bX.bo)+Cd(bX.bf,bX.bt,bX.bV,bX.bW,bX.bl)+CB(bX.bJ,bX.bH,bX.bL,bX.bS,bX.bQ)+Cj(bX.bc,bX.bw,bX.bP,bX.bN,bX.ba),'ccYQo':function(I,i){return I===i;},'rKBvO':function(I,i,R){return I(i,R);},'qoICX':function(I,i){return I(i);},'CiDed':Cd(bX.T0,bX.T1,bX.T2,bX.T3,bX.T4)+Cd(bX.T5,bX.T6,bX.T7,bX.T8,bX.T9)+Cm(bX.TC,bX.TD,bX.TF,bX.Tb,bX.TT)+Cx(bX.TU,bX.Th,bX.Tu,bX.TI,bX.bk)+'e','Sfcns':function(I,i,R){return I(i,R);},'XUDAz':function(I,i){return I(i);},'fIxRT':Cx(bX.Ti,-bX.TR,-bX.TZ,bX.TO,bX.TE)+Cj(bX.Tz,bX.Tp,bX.bx,bX.Tv,bX.TK)+Cd(bX.TY,bX.TA,bX.TX,bX.TG,bX.Tr)+Cd(bX.Tn,bX.Tg,bX.Tq,bX.Tk,bX.Te)+Cd(bX.Ty,bX.Ts,bX.TM,bX.Tm,bX.TB),'rneei':Cm(bX.Tj,bX.Tx,bX.Td,bX.TQ,bX.To)+Cx(bX.Tf,-bX.Tt,bX.TV,-bX.TW,bX.Tl)+Cd(bX.TJ,bX.TH,bX.TL,bX.TS,bX.Tc)+CB(bX.Tw,bX.TP,bX.TN,bX.Ta,bX.U0)+'an','amzBb':function(I,i){return I(i);},'ZGECG':CB(bX.U1,bX.U2,bX.U3,bX.U4,bX.U5)+Cx(bX.U6,bX.U7,bX.U8,bX.U9,bX.UC)+Cj(bX.UD,bX.UF,bX.O,bX.Ub,bX.UT)+Cd(bX.UU,bX.Uh,bX.Uu,bX.UI,bX.Ui),'qxyok':function(I,i,R){return I(i,R);},'PNULE':CB(bX.UR,bX.UZ,bX.UO,bX.UE,bX.Uz)+Cj(bX.Up,bX.Uv,bX.UK,bX.UY,bX.UA)+Cj(bX.UX,bX.UG,bX.Ur,bX.Un,bX.Ug)+Cj(bX.Uq,bX.Uk,bX.Ue,bX.Uy,bX.Us)+Cm(bX.UM,bX.Um,bX.Tb,bX.UB,bX.Uj),'FYPsC':function(I,i,R){return I(i,R);},'NRvAz':function(I,i){return I(i);},'NgzIO':Cx(bX.Ux,bX.Ud,bX.UQ,bX.Uo,bX.Uf)+CB(bX.Ut,bX.UV,bX.bn,bX.UW,bX.TG)+Cj(bX.Ul,bX.UJ,bX.UH,bX.UL,bX.bs)+Cx(-bX.US,-bX.Uc,bX.Uw,-bX.UP,bX.UN)+Cd(bX.Ua,bX.h0,bX.h1,bX.h2,bX.h3),'OJoAW':function(I,i){return I(i);},'OyzxM':CB(bX.h4,bX.h5,bX.h6,bX.h7,bX.br)+Cx(-bX.h8,-bX.h9,-bX.hC,-bX.G,bX.hD)+Cm(bX.hF,bX.hb,bX.hT,bX.hU,bX.h0)+Cj(bX.hh,bX.hu,bX.hI,bX.T8,bX.hi)+Cj(bX.hR,bX.hZ,bX.hO,bX.hE,bX.hz)+CB(bX.hp,bX.hv,bX.hK,bX.hY,bX.h2),'hAYBB':Cm(bX.hA,bX.hX,bX.bs,bX.hG,bX.hr)+Cm(bX.hn,bX.hg,bX.hq,bX.hk,bX.he)+Cj(bX.hy,bX.hs,bX.hM,bX.UY,bX.hm),'FuiDz':Cx(bX.hB,-bX.hj,-bX.hx,-bX.hd,bX.hQ)+Cj(bX.ho,bX.hf,bX.ht,bX.Un,bX.hV)+Cd(bX.h5,bX.hW,bX.hl,bX.hJ,bX.hH)+Cm(bX.Tk,bX.hL,bX.hS,bX.hc,bX.hw),'wLkiI':function(I,i){return I(i);},'isydj':Cd(bX.hP,bX.hN,bX.ha,bX.u0,bX.u1)+Cd(bX.u2,bX.u3,bX.u4,bX.u5,bX.u6)+Cx(-bX.u7,bX.TO,bX.u8,bX.u9,bX.hJ)+'d','eoEbL':function(I,i,R){return I(i,R);},'kyRHm':function(I,i){return I(i);},'Ekrpq':CB(bX.uC,bX.uD,bX.uF,bX.ub,bX.UM)+Cm(bX.uT,bX.uU,bX.uh,bX.uu,bX.uI)+Cx(-bX.ui,-bX.uR,-bX.uZ,bX.uO,bX.bk)+Cd(bX.T1,bX.uE,bX.uz,bX.up,bX.uv),'VSJPj':function(I,i){return I(i);},'PXPvo':CB(bX.uK,bX.uY,bX.uA,bX.uX,bX.uG)+CB(bX.z,bX.ur,bX.un,bX.ug,bX.uq)+Cx(-bX.uk,-bX.ue,bX.uy,-bX.us,bX.uM)+'sd','TgzIm':Cd(bX.um,bX.uB,bX.uj,bX.ux,bX.ud)+Cx(bX.uQ,bX.uo,bX.uf,-bX.ut,bX.uV)+Cm(bX.Un,bX.uW,bX.ul,bX.uJ,bX.uH)+'s','ehMHf':Cm(bX.T,bX.uL,bX.uS,bX.uc,bX.uw)+Cm(bX.T8,bX.uP,bX.be,bX.uN,bX.ua)+Cx(-bX.I0,-bX.I1,-bX.I2,bX.I3,bX.UY)+'ts','malyt':Cj(bX.I4,bX.I5,bX.I6,bX.T3,bX.U)+Cx(-bX.I7,bX.I8,bX.I9,bX.IC,bX.Un)+CB(bX.ID,bX.IF,bX.Ib,bX.IT,bX.IU)+CB(bX.Ih,bX.Iu,bX.II,bX.Ii,bX.IR),'Innqn':Cd(bX.IZ,bX.IO,bX.IE,bX.IU,bX.Iz)+Cd(bX.Ip,bX.Iv,bX.IK,bX.IY,bX.IA)+Cm(bX.h2,bX.IX,bX.IG,bX.Ir,bX.ul)+'s','lpVnI':Cx(-bX.In,-bX.Ig,-bX.Iq,-bX.Ik,bX.Ie)+CB(bX.Iy,bX.Is,bX.IM,bX.Im,bX.IB)+CB(bX.Ij,bX.Ix,bX.Id,bX.IQ,bX.Io)+Cj(bX.If,bX.It,bX.IV,bX.IW,bX.TQ),'VOtbQ':function(I,i,R){return I(i,R);},'FdNqR':Cx(bX.TR,-bX.Il,-bX.IJ,bX.IH,bX.IL)+Cm(bX.IS,bX.TH,bX.bB,bX.Ic,bX.Iw)+Cj(bX.IP,bX.IN,bX.Ia,bX.K,bX.i0)+Cm(bX.Tk,bX.i1,bX.i2,bX.i3,bX.i4),'CbArK':Cj(bX.IX,bX.i5,bX.i6,bX.hF,bX.i7)+CB(bX.i8,bX.i9,bX.iC,bX.iD,bX.UN)+Cx(-bX.uf,-bX.In,bX.hd,-bX.iF,bX.TS)+'es','OgBct':Cm(bX.IS,bX.hk,bX.ib,bX.iT,bX.iU)+Cd(bX.ih,bX.iu,bX.Tc,bX.iI,bX.ii)+CB(bX.iR,bX.bL,bX.iZ,bX.iO,bX.IS)+Cj(bX.iE,bX.iz,bX.hg,bX.bN,bX.ip),'xCPRE':CB(bX.iv,bX.Id,bX.iK,bX.iY,bX.iA)+Cx(-bX.iX,-bX.iG,-bX.ir,-bX.ig,bX.iq)+Cd(bX.ik,bX.ie,bX.T9,bX.uV,bX.h6)+Cx(bX.iy,-bX.is,-bX.iM,bX.im,bX.iB),'pGNbJ':Cd(bX.U2,bX.ij,bX.ix,bX.Tl,bX.id)+Cm(bX.iQ,bX.io,bX.it,bX.iV,bX.iW)+Cd(bX.il,bX.iJ,bX.iH,bX.iL,bX.iS)+Cm(bX.Ie,bX.ic,bX.iw,bX.iP,bX.iN),'vgKYo':function(I,i){return I/ i;},'rQemn':Cj(bX.ia,bX.R0,bX.R1,bX.IU,bX.R2)+Cx(bX.R3,bX.R4,bX.R5,-bX.R6,bX.R7)+Cm(bX.iq,bX.R8,bX.R9,bX.RC,bX.RD)+Cx(bX.RF,bX.Rb,bX.RT,bX.RU,bX.Rh)+CB(bX.Ru,bX.RI,bX.hU,bX.Ri,bX.hF)+Cx(bX.RR,bX.Ik,bX.RZ,bX.RO,bX.U0),'WZdBg':function(I,i){return I-i;},'lAuCp':CB(bX.RE,bX.Rz,bX.Is,bX.Rp,bX.Rh)+Cx(-bX.uR,bX.Rv,bX.US,-bX.RK,bX.uq)+Cx(-bX.RY,-bX.TZ,-bX.RA,-bX.iM,bX.RX)},U=this.#now(),h=T[Cm(bX.RG,bX.Rr,bX.Rn,bX.Rg,bX.Rq)](this.#trustedEvents,this.#untrustedEvents);function Cx(T,U,h,u,I){return d(T-bp.T,U-bp.U,U- -bp.h,I,I-bp.u);}const u={};u[T[Cj(bX.Rk,bX.Re,bX.Ry,bX.IY,bX.Rs)]]=T[CB(bX.RM,bX.Rm,bX.RB,bX.Rj,bX.Rx)](h,0x15e+-0x6*0x673+0x955*0x4),u[T[Cm(bX.UN,bX.Rd,bX.RQ,bX.Ro,bX.ih)]]=this.#pointerSamples,u[T[CB(bX.Rf,bX.Rt,bX.RV,bX.RW,bX.Rl)]]=T[Cj(bX.uJ,bX.RJ,bX.RH,bX.RL,bX.RS)](this.#pointerSamples,0x223d+-0x2*-0x727+-0x308b)?null:T[Cd(bX.Rc,bX.Rw,bX.RP,bX.RN,bX.Ra)](round,T[CB(bX.Z0,bX.Z1,bX.Tq,bX.i5,bX.Rh)](entropy,this.#directions),0x12d1+0x202*-0x4+-0xac6);function Cd(T,U,h,u,I){return d(T-bv.T,U-bv.U,T-bv.h,u,I-bv.u);}u[T[Cm(bX.hJ,bX.Z2,bX.hi,bX.Z3,bX.Z4)]]=T[Cd(bX.Z5,bX.Z6,bX.Z7,bX.Z8,bX.Z9)](roundOrNull,T[Cj(bX.Us,bX.ZC,bX.ZD,bX.ZF,bX.uJ)](mean,this.#curvature),0x26fd*-0x1+0x1*-0x1241+0x3942),u[T[Cm(bX.uM,bX.uv,bX.Zb,bX.ZT,bX.ZU)]]=T[Cm(bX.Zh,bX.Zu,bX.ZI,bX.Zi,bX.RP)](roundOrNull,T[Cj(bX.ZR,bX.ZZ,bX.UA,bX.ZO,bX.ZE)](sd,this.#curvature),0x1793+0x20ac+-0x383b*0x1),u[T[Cj(bX.Zz,bX.Zp,bX.Zv,bX.by,bX.ZK)]]=T[Cx(-bX.ZY,-bX.ZA,-bX.ZX,-bX.ZG,bX.Zr)](roundOrNull,T[Cx(-bX.Zn,-bX.Zg,-bX.Zq,bX.Zk,bX.IW)](mean,this.#speed),-0x1fcf*0x1+0x451+0x1b82),u[T[CB(bX.Ze,bX.Zy,bX.Zs,bX.ZM,bX.iL)]]=T[Cm(bX.UN,bX.Zm,bX.ZB,bX.Zj,bX.Zx)](roundOrNull,T[Cd(bX.u4,bX.Zd,bX.ZQ,bX.uG,bX.Zo)](sd,this.#speed),0x1a56+0x1f0+-0x1c42),u[T[Cx(-bX.I1,-bX.Zf,-bX.Zt,-bX.ZV,bX.IW)]]=T[Cj(bX.ZW,bX.Zl,bX.ZJ,bX.ZH,bX.ZL)](roundOrNull,T[CB(bX.ZS,bX.Zc,bX.ZB,bX.Zw,bX.ZP)](mean,this.#moveInterval),0x1*0x84a+-0xd1b*0x1+0x41*0x13),u[T[CB(bX.ZN,bX.Za,bX.O0,bX.O1,bX.RL)]]=T[Cx(bX.us,bX.O2,bX.O3,bX.ut,bX.by)](roundOrNull,T[Cd(bX.O4,bX.O5,bX.O6,bX.O7,bX.O8)](sd,this.#moveInterval),-0x1127+-0xdb5+0x1ede);function CB(T,U,h,u,I){return d(T-bK.T,U-bK.U,u-bK.h,I,I-bK.u);}u[T[Cm(bX.O9,bX.OC,bX.hV,bX.iC,bX.hO)]]=this.#dwellBeforeClick??null,u[T[Cd(bX.OD,bX.OF,bX.Z7,bX.Ob,bX.OT)]]=this.#keySamples,u[T[Cj(bX.OU,bX.Z1,bX.Oh,bX.Ou,bX.OI)]]=T[Cx(bX.Oi,bX.OR,bX.OZ,bX.OO,bX.U0)](roundOrNull,T[Cx(-bX.OE,-bX.Oz,-bX.Op,bX.Ov,bX.OK)](mean,this.#dwell),0x116a+-0x24d*0xd+0x61*0x21),u[T[Cm(bX.OY,bX.OA,bX.OX,bX.OG,bX.Or)]]=T[Cd(bX.Za,bX.On,bX.UR,bX.uM,bX.Og)](roundOrNull,T[Cj(bX.Oq,bX.Ok,bX.Oe,bX.Oy,bX.Os)](sd,this.#dwell),-0xe*-0x29b+0x2*-0x1119+-0x246),u[T[Cx(-bX.OM,-bX.Om,-bX.OB,-bX.Zn,bX.Oj)]]=T[CB(bX.Rp,bX.Ox,bX.Od,bX.OQ,bX.Oo)](roundOrNull,T[Cj(bX.Of,bX.Ot,bX.R,bX.br,bX.OV)](mean,this.#flight),-0xa3b+0x586+0x4b7*0x1),u[T[Cm(bX.ZO,bX.Zl,bX.i8,bX.OW,bX.Ol)]]=T[Cm(bX.OJ,bX.OH,bX.OL,bX.OS,bX.Oc)](roundOrNull,T[Cd(bX.Ow,bX.OP,bX.ON,bX.Oa,bX.E0)](sd,this.#flight),0x2030+0x255d+0x13*-0x3a9),u[T[Cd(bX.E1,bX.E2,bX.E3,bX.by,bX.E4)]]=this.#pasteEvents,u[T[Cm(bX.E5,bX.E6,bX.E7,bX.E8,bX.E9)]]=this.#scrollEvents,u[T[Cj(bX.EC,bX.ED,bX.EF,bX.UN,bX.TF)]]=T[Cx(bX.Eb,bX.ET,bX.EU,bX.Eh,bX.Eu)](this.#scrollEvents,-0x1c74+0x2dd*-0xc+0x3ed0)?null:[...this.#wheelDeltaModes][Cx(bX.EI,bX.Ei,bX.ER,bX.Eh,bX.Un)]()[CB(bX.hY,bX.EZ,bX.ZT,bX.EO,bX.iq)](',');function Cj(T,U,h,u,I){return d(T-bY.T,U-bY.U,I-bY.h,u,I-bY.u);}u[T[Cx(bX.EE,bX.Ez,-bX.Ez,bX.Ep,bX.Ev)]]=this.#touchPoints,u[T[Cd(bX.EK,bX.EY,bX.EA,bX.EX,bX.EG)]]=T[Cm(bX.IR,bX.Er,bX.En,bX.iw,bX.Eg)](this.#maxTouchRadius,0xb96*0x2+0xe3e+-0x256a)?null:T[Cx(bX.Eq,bX.Ek,-bX.Ee,-bX.Ey,bX.Uf)](round,this.#maxTouchRadius,-0x9f3+0x7f*-0x25+-0x1*-0x1c4f),u[T[Cj(bX.Es,bX.EM,bX.Em,bX.iB,bX.EC)]]=T[Cx(-bX.uy,-bX.EB,-bX.Zk,bX.Ej,bX.Ex)](this.#touchPoints,-0x1235*0x1+0x3*-0x3bc+0x1d69)?null:this.#touchForceSeen;function Cm(T,U,h,u,I){return d(T-bA.T,U-bA.U,h-bA.h,T,I-bA.u);}return u[T[Cd(bX.Ed,bX.EQ,bX.Eo,bX.Ef,bX.Et)]]=this.#focusChanges,u[T[Cd(bX.EV,bX.EW,bX.iK,bX.Zh,bX.El)]]=this.#fieldsFocused[Cd(bX.EJ,bX.EH,bX.EL,bX.Ef,bX.ES)],u[T[Cj(bX.Ec,bX.EG,bX.E8,bX.Ew,bX.EP)]]=T[Cm(bX.EN,bX.Ea,bX.z0,bX.z1,bX.IN)](this.#focusOrder[Cd(bX.z2,bX.z3,bX.z4,bX.z5,bX.z6)+'h'],0x1*-0x17ef+0x15f1+-0x1*-0x1fe)?null:this.#focusOrder[CB(bX.z7,bX.z8,bX.z9,bX.zC,bX.Tl)]('>'),u[T[CB(bX.zD,bX.zF,bX.zb,bX.zT,bX.Ex)]]=T[Cj(bX.zU,bX.zh,bX.zu,bX.zI,bX.zi)](h,-0xe81+-0x665*0x4+-0x1*-0x2815)?null:T[Cj(bX.zR,bX.zZ,bX.zO,bX.zE,bX.zz)](round,T[CB(bX.zp,bX.zv,bX.zK,bX.zY,bX.zA)](this.#trustedEvents,h),0x1d0a+0x8dd*-0x1+-0xb2*0x1d),u[T[Cd(bX.zX,bX.zG,bX.zr,bX.zn,bX.zg)]]=T[Cx(-bX.u7,bX.zq,-bX.h8,bX.zk,bX.U0)](this.#firstInteractionAt,undefined)?null:Math[Cd(bX.ze,bX.zy,bX.zs,bX.Zh,bX.uE)](T[Cj(bX.zM,bX.zm,bX.zB,bX.T3,bX.OC)](this.#firstInteractionAt,this.#started)),u[T[Cj(bX.zj,bX.OA,bX.zx,bX.ZH,bX.zd)]]=Math[Cx(bX.Tu,bX.zQ,-bX.zo,-bX.zf,bX.zt)](T[Cm(bX.UN,bX.zV,bX.zW,bX.zl,bX.zJ)](U,this.#started)),u;}}function x(T,U,h,u,I){const bG={T:0x2a5};return b(u-bG.T,U);}function d(T,U,h,u,I){const br={T:0x3c};return b(h-br.T,u);}function F(){const bH=['q8kkWQC','W7P6WRyF','xWZdGSkkeW','W5/dPCk4zGW','WQpdJSk9W5S','fCoeW5O6W7C','m8oHWRa0W7u','AmksWPTKWQG','aqxdG2JdHCkuyItcQG','vJ80CSkl','i8ouW5W6W7a','W7JcOWuWEa','mmkwW7xdVCkz','asXZzSkG','WR3dK8k8','sZ3dU8kgoG','kmoXiWvv','WPVdMrycWRe','AWxdQJuO','lmkPFshcU27dQSkjySkQe8ocW4u','pgf9w8oU','rMpcHLJdVG','WP/dRHTzW5m','u8kykSoyWPW','W60MDmkDWQu','dCkcraVcNa','owdcTa','f8o0W5SMW7a','WOpdNmkXW4xdMG','b8oyFCkbW5/cKIBcMSo8FSof','WORdIbTcWQa','k8o5W5GCW4S','WPlcQx0EnG','aSkxW4NdRCkO','W7NcKCo7WOdcGa','imkwW6VdUCko','W6xcIbRdKmo5','p2FcVCoXDa','oZL/qSkc','c8otW6CwW4y','W50CWR3dRvK','emo4WP8','vHucBCkR','oJStWPFdUG','ACo7px/dPG','W6FdMmkLemkXruKVW7u2lCouyW','eSofjSkZWO8','kmoOdc1d','W5/dPCk4zG8','a8oDW40G','rmkFWOGfrG','bqPBoCk/','mdOWWQVdUq','pSoZW7m1W4O','iYv2n8kL','q8kKWQ9xWQ4','W559W4G5ta','W6S+vGVdR8kFWRdcRCkOpr9nW6y','jM/cP8oWyW','W47dNZa','w0xcKflcPG','aSoSW7KXea','WQtdL8kfW4/dUa','WQnvkfRcRG','o1BcNCo+B8oPCMxdNSkxmeO','W59cgSoVja','dCkHgJtdRW','FmoZagZdIq','k8o6W58kW5e','W6rzW5ZdH24','smkNWPm','W7ZdQtCywa','WRZdJsjGW5W','rhpcGxtdOG','dc1WoCkA','W4vbW53dShK','W69HWRaoEG','W4RdLCkuva','gSkyWQFcSwG','WQLThZVcJ0yIgSofW7zlWRa','WPFcN8kevSoF','dLyRBq','nrFdJ8kuW70','gCo7CthcIq','WRxcImooEmoM','e8kHgtZdRq','W5yErmkQWRu','EeRdNmk5oq','W4NcKmkzW67dLW','vLOvCCk2','wKxcNLJdRq','pSo1yZtcNW','W5GSEmkkWQW','WQJcKNuLjq','WQRcKgWVdG','sSkSWPnR','W61KtehdVW','W7/cQbS1Da','oc56t8oX','dCo9uHBcLW','W7BdL8kEoGu','pwXBzSoB','WPddVarxW7S','W6S6xhNdMq','CCkZomoNW6u','W5pcLmkvW6FdSW','DCkDbCo9W4i','sSkkWRzfya','W4vBW5BdPG','WRjMeG','zIBdJmkyjq','DIaKFCkL','gq5/zCkc','WRRdNCkkW7ldMG','bSoeW4aUW4u','W4xdIwNcMHq','hZNdJ8k/W7u','xSkcbSoeWPm','W4ZcUJZcJmoL','g8oHW6qJfG','aSkDdsldKW','W6ZcOJPyxa','W7pdGCkCkty','dL1WEqC','rSkfj8ozWP8','eeDmBCoB','WR9+t17cTq','ccr3Emkd','W6hcGGdcM8oa','ASk3mmoYW74','W5LFWOuFua','AqZdJSkNoW','WQtcHCoYtmoG','t8kQWPTI','W7RcL8kcW7tdSa','k8kAW6NdQmkF','F8olk2NdQq','tSk2kCoeW7C','W5q7WPRdVa','WPzZW5/cUWJdJIiPWRdcTmkhq8k6','oxW8zrC','pNVcVSoNDa','WRxdNSknW4BdJa','W7NcSCk/W4tdQa','xCk5WOS4Ea','W6rPWRSnEa','zqJdOa','w8kAiSosWPG','W5BcGtinAa','bYr+oa','CSo5oMVdNa','kSkqW6i','iCoGW6Cupa','lCo4W5mD','W4VcUba1ua','fr5cCmkH','W6H6WRivoW','W6xcIbRdKmoV','WQ43gX7cVSkYj8oOl8kSyq','WPVdMb4bWRu','W6/cU8ko','adzprSkJ','BmojWOxcUq','W5tdRSk0lqC','WQldMJS7WPW','jSkwW6/cSSkC','WQLIbq','qComWQxdUw0','rmkkWRamEW','s8k+pCo9W50','mcy9WRFcSG','D8kwgW','W7XGW4u5Fq','f8oJWPubW5G','l0eBsse','W4dcPre','W5HCW7CmEa','WRpcO8kvsmoB','CSodWOBdVKy','W7THWQyvBq','qXec','etqKWPBdKW','dJz6oSke','W73cQSkoW4FdHW','l8oIeqbw','cCkCWOZdJ3K','W6JcMbhcLSkX','u8oaWOhdPvy','gmkpomosWOu','W6G1uaRdR8kxW5ZcGmkpmGD0','yvJcNNNdHW','hsL6m8ke','tmkkWRiFBG','ia7dKmkJ','oxrOxmoO','gdr8iSkh','oSoxW5qOW64','amoNW4W+cW','qWX2m1S','aSkCW5y6W7C','W6b9WQOFyW','lCkmWO3cPxm','WRHokuRcSW','WQdcGw89pq','rHeEkSkW','W5LjamoNmW','ySodWORcPu4','j8ojtrtcIa','i2DHwSod','rSoNWQ/dMwm','WORdPdSEWR4','Cmo7nW','WPxcGmoZBmoO','WRtcI2aZoG','hM02BsK','W4bQWROAra','W5DdW7elFG','vrS/r8kC','F8kvbSokW5a','W7KVxwddHq','EmoLWRldMwa','WQXxnvxcNq','WORcUfykea','uSk5WOSoAa','WQNcLNC7jq','C8kbpmohWPO','mfZdStu4AtfP','pty2W7hdQa','W6Hjq0hdGW','yqhdLSkTmW','W4OtWQ3dPv8','EGVdHSkNka','W7RdNSkVq2i','hSoyqGNcNa','lx09WQRdRG','W6ZcOJPyrW','imoVW4yaW4S','W4NdR8kLkXC','W5JdHmk+cXC','W7FdLYRcSai','o8oZW5CDW5W','DmohWOxdHuq','nSkGW7ldVSkm','qMRcGmkyyq','wCk6WRKQFa','B8kAWQD9WP4','hmopBIRcLG','h8oXW5GFhG','d8onra/cNa','nCkCW47dN8kI','W6pcPIO','W6HXW6hdTvO','WRtcJSo/b8o5','W6BcJWe','FCkBjCozW50','W65hcCoioW','cSo6yIJcJG','bsHXiSkn','Da3dTZiK','hmoaxHJcKG','W4BdNHOlWRO','gCopnCk+','zmkSWPnR','W7xcUCksW5ldUW','E8kjWR0fFa','m8kqjIRdUG','sSkkWRzfFa','W4GJWOBdVfS','cmodWP8IW44','WRhcQmk1wSok','WRG2W6vdp2n5eCkyW5dcQtRcQa','t13cG8oXua','D8o1jNy','DcWMCSkR','nSoGW4GqbW','cmoecIfG','jmoZW5GiW4S','d33cTSoGFW','dLyZCGy','W6vNCh/dOG','W7qWsJ4','W63cGaBcHmoX','W74iA0BdJa','BuFcLM3dUq','W5fBWPC6CW','W6XrWQaF','WQpcKmkGzmoi','W4uVWOdcPLC','WOlcJmoTymoK','kfVcM8oYrW','ytBdOmk1imo6v8orWPqjWP7dPmkK','nSoDW6pdQ8kF','BX3cGCk6pq','W6lcTbpcQ8o5','W6D8W6KUzW','irjlDSky','CCkMWO1HWQW','DapdRs85','WQHOeue','W4pcRq4Itq','srexAG','WR3dQZizWRS','W6/dPSkGiIy','xmkaWQSizW','d8odxHxcJq','h8kwWRFcLxS','W79QWOq9xq','WPOyq8othCkcwCosW40','WOZdUcqHWPe','emo7WP08W4K','fSoppmo+WPO','bHTcxmkI','WPddUdSBWOi','W77cU8ksWOJdLa','ggz5rmof','zX7dQY0H','nrFdJ8kuW6m','imoFuW','nCompsXW','yGpdTIiO','WP/cHCo5wmoN','x8olWOFdQKS','W74SvCoWWOK','rCkcWOjnWQ0','W4pcRWC6','lmogmsz7','fITcrmk9','WRpcMCoZrSo+','W7pcRcVcSSoN','rHeEkSkV','emkLnWpdUG','W7KSwwNdOW','WQhcOSkkwSoz','fmofkYXN','v1ZcML/dPG','W7PrWQCjFa','W5JdRSkKbby','xhFcKLJdQW','W7K7smkU','W57dO8kjgra','W53cQrq7ua','WRRcJSo5tSo9','WQFcOSkoamoi','WQBcH8oYwG','mNigCsi','ibzMiSkG','DSobWRBcRSomuCoMhCokW4ZdLZ0','dWrPm8kg','CSofkxhdSq','oxrSsSod','W5/cMtJcJmoz','oSotWQKAW4q','WQtdK8k9W4u','WPpcImkstmoP','WQLIaeRcUG','W6W8tSk2','WPRdJbCfWQe','W689ySk3WPm','W55gW40kAa','cSk3W5ldHmkU','W4JdHmkxxKi','W4iUWRFdU1O','W5ddMCkcvvO','W7ddOrhcMce','BSk/mSoQW7G','W7u+vq','nw/cVq','bSovW7qnW6W','W64yASkRWPO','l3PGzmoq','m8omgZzM','W43dR8k5jGS','W4hcVIGoyq','BCkNeCoPW4O','eXldP8kUW7q','tJVdVtuf','fColWPeWW7q','W658h8oRjq','AaddMYmO','pdahWO7dSW','guSRCXq','wCkdimodWO4','W6xcIbRdKmo0','W6RdMSk0cHG','rmkcW4OGW7BdJCk+nG','tqatAq','W50dgSoVja','twRcICoy','W6PDW5ZdPW','kCocjsC','W40LWOhdPG','FmknWPrgWQ4','WRLKogNcTG','W6lcOJWrwa','WRpdMCklW7RdHG','W5nkW4TqFq','W4/dHcBcKcC','W7j0W7NdT2a','DSkBE3iLW5VdPtBcHmota8kFW7S','W4VcReqRWQNdPmkwk25tWOJcQCoU','WQBcKMKOja','e8oaW5a4W68','W5JcIX3cNCoQ','WPdcSSohwSok','W4/dOIZcUZK'];F=function(){return bH;};return F();}function entropy(U){const bB={T:0x52a,U:'uHN!',h:0x4e5,u:0x574,I:0x5aa,i:0x543,R:'kGu$',Z:0x526,O:0x417,E:0x4c1,z:0x132,p:0x1f7,v:'4987',K:0x18a,Y:0x1be,A:0x76,X:0x52,G:0xc2,bj:0x5a,bx:'7eaK',bd:0x557,bQ:'zLUa',bo:0x4bc,bf:0x4e3,bt:0x494,bV:0x673,bW:'XbpW',bl:0x5c4,bJ:0x64a,bH:0x5df,bL:0x227,bS:0x14b,bc:'2W!9',bw:0x1ec,bP:0x1b6,bN:0x621,ba:'gDwz',T0:0x58e,T1:0x64c,T2:0x59f,T3:0x1d1,T4:0x13a,T5:0xd2,T6:'9mZD',T7:0x126,T8:0xdd,T9:0x11d,TC:0x143,TD:0x140,TF:'Nx5E',Tb:0x1ef,TT:0x1f6,TU:0x183,Th:'FX[U',Tu:0x1f5,TI:0x4a0,Ti:0x470,TR:0x438,TZ:0x484,TO:0x14e,TE:0xb4,Tz:'I@!)',Tp:0xcc,Tv:0x106},bm={T:0x56,U:0x11,h:0x3d0,u:0x79},bM={T:0x1c8,U:0x177,h:0x53b,u:0x1cb},by={T:0x4d,U:0xcf,h:0xdc,u:0x12c},bq={T:0x9c,U:0xcf,h:0x314,u:0x164},bn={T:0xc9,U:0x18a,h:0x646,u:0x1ca},u={};function CV(T,U,h,u,I){return x(T-bn.T,u,h-bn.U,U- -bn.h,I-bn.u);}u[CQ(bB.T,bB.U,bB.h,bB.u,bB.I)]=function(Z,O){return Z===O;};function Co(T,U,h,u,I){return x(T-bq.T,h,h-bq.U,I- -bq.h,I-bq.u);}u[CQ(bB.i,bB.R,bB.Z,bB.O,bB.E)]=function(Z,O){return Z/O;},u[Co(bB.z,bB.p,bB.v,bB.K,bB.Y)]=function(Z,O){return Z*O;};function CQ(T,U,h,u,I){return x(T-by.T,U,h-by.U,I-by.h,I-by.u);}u[Ct(-bB.A,-bB.X,-bB.G,bB.bj,bB.bx)]=function(Z,O){return Z/O;};const I=u;function Ct(T,U,h,u,I){return x(T-bM.T,I,h-bM.U,U- -bM.h,I-bM.u);}const i=U[CQ(bB.bd,bB.bQ,bB.bo,bB.bf,bB.bt)+'e']((Z,O)=>Z+O,0x2385+0x1d27+-0x40ac);if(I[CQ(bB.bV,bB.bW,bB.bl,bB.bJ,bB.bH)](i,0xc75*-0x1+-0x1d67+0x14ee*0x2))return-0x12*-0xd8+-0x1bc8+-0xf8*-0xd;let R=-0xe28+0xe39+-0x11;function Cf(T,U,h,u,I){return x(T-bm.T,h,h-bm.U,U- -bm.h,I-bm.u);}for(const Z of U){if(I[Co(bB.bL,bB.bS,bB.bc,bB.bw,bB.bP)](Z,-0xc1a+0x25c0+-0x19a6))continue;const O=I[CQ(bB.bN,bB.ba,bB.T0,bB.T1,bB.T2)](Z,i);R-=I[CV(-bB.T3,-bB.T4,-bB.T5,bB.T6,-bB.T7)](O,Math[Ct(-bB.T8,-bB.T9,-bB.TC,-bB.TD,bB.TF)](O));}return I[CV(-bB.Tb,-bB.TT,-bB.TU,bB.Th,-bB.Tu)](R,Math[CQ(bB.TI,bB.bQ,bB.Ti,bB.TR,bB.TZ)](U[Co(bB.TO,bB.TE,bB.Tz,bB.Tp,bB.Tv)+'h']));}function b(C,D){C=C-(-0x17*-0xd5+-0xb5d*0x2+-0x475*-0x1);const T=F();let U=T[C];if(b['OxJeyA']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x87c*0x4+0x220b+-0x1b;})['indexOf']('\x0a')!==-(-0x1292+-0x11f1*-0x1+0xa2);for(let v=0x2239+0x2094+-0x42cd,K,Y,A=0xbba*0x1+-0x17f*0xe+0x938;Y=R['charAt'](A++);~Y&&(K=v%(0x1453+-0x13b3*-0x1+-0x2802)?K*(-0xad3*-0x3+0x22fb+-0x30e*0x16)+Y:Y,v++%(-0x103d*0x1+-0x18f5*0x1+-0x32*-0xd3))?O+=p||z['charCodeAt'](A+(-0x2055*-0x1+-0x80*0x35+-0x5cb))-(-0x6fa+-0x212a+0x282e)!==-0x1be7+-0xe62+0x2a49?String['fromCharCode'](-0x1cfd+0xa7f*-0x3+0x3d79&K>>(-(-0x66+0x497*-0x7+-0x1*-0x2089)*v&0x20b*-0xd+0x2422+-0x98d)):v:-0x8cf+-0x4e*-0x2+0x833){Y=Z['indexOf'](Y);}for(let X=-0x3*0xd03+0x12ae+0x145b,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x67d*0x3+-0x49*-0x20+-0x1c87))['slice'](-(0x7*0x28f+-0x249c+0x12b5));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0x1*0x1011+0x1*-0x1913+0x481*0x2,z,p='';R=h(R);let v;for(v=-0x2f1*0x1+-0x2dc+-0x9*-0xa5;v<0x2d*-0xcf+-0x53*0x13+0x2b8c;v++){O[v]=v;}for(v=0x1*-0x511+0x1*0x17dd+0x644*-0x3;v<-0x1*-0x15c0+-0x1f0a+0xa4a;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x29+-0x483+0x55a),z=O[v],O[v]=O[E],O[E]=z;}v=-0x7*-0x284+-0xde9+-0x3b3,E=-0x1304+0x247*0xf+-0xf25;for(let K=-0x538*-0x3+0xdb9+-0x1d61;K<R['length'];K++){v=(v+(0x21dd*0x1+-0x1064+-0x1178))%(0xac9*0x1+0x19c7*-0x1+0xffe),E=(E+O[v])%(0x1af6+-0x1331+0x1*-0x6c5),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x23a3+0x2462+-0xd*-0x5)]);}return p;};b['tpfPLq']=i,b['aNgTTD']={},b['OxJeyA']=!![];}const u=T[0x14f5*-0x1+-0x5c1*0x4+0x2bf9];b['FDhFXT']!==u&&(b['aNgTTD']={},b['FDhFXT']=u);const I=b['aNgTTD'][C];if(I===undefined){if(b['vRevMQ']===undefined){const R=function(Z){this['tzuEKK']=Z,this['UsypnN']=[0x7*0x28d+0x3d*-0x2+-0x8b0*0x2,0x1*0x24b3+0x1*0x76d+0x4*-0xb08,0x4b*-0x29+-0x66f+0x1272],this['UUMdEM']=function(){return'newState';},this['NCBlXi']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['cuNxgJ']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['DyfTBa']=function(){const Z=new RegExp(this['NCBlXi']+this['cuNxgJ']),O=Z['test'](this['UUMdEM']['toString']())?--this['UsypnN'][-0x139b+-0x9ea+0x1d86]:--this['UsypnN'][-0x1*-0x4bd+-0x2f9*0xb+0x4a9*0x6];return this['IYTIGN'](O);},R['prototype']['IYTIGN']=function(Z){if(!Boolean(~Z))return Z;return this['GpkSGG'](this['tzuEKK']);},R['prototype']['GpkSGG']=function(Z){for(let O=-0x20a6+-0x1256*-0x2+0x203*-0x2,E=this['UsypnN']['length'];O<E;O++){this['UsypnN']['push'](Math['round'](Math['random']())),E=this['UsypnN']['length'];}return Z(this['UsypnN'][-0xec*-0xb+-0x156f+0xb4b]);},(''+function(){return 0x7a6*-0x5+0x1*-0x228b+0x48c9;})['indexOf']('\x0a')===-(-0x45*0x90+0x1*-0x5ad+-0x2*-0x163f)&&new R(b)['DyfTBa'](),b['vRevMQ']=!![];}U=b['tpfPLq'](U,D),b['aNgTTD'][C]=U;}else U=I;return U;}function Q(T,U,h,u,I){const bj={T:0x39f};return b(I-bj.T,u);}function o(T,U,h,u,I){const bx={T:0x89};return b(I- -bx.T,T);}function round(T,U){const bf={T:0x156,U:'fCqJ',h:0x1d0,u:0x1c7,I:0x19e,i:'DJ5N',R:0x2a6,Z:0x21e,O:0x1cc,E:0x1dc},bo={T:0x13e,U:0xe7,h:0x2cf,u:0x1f2},bd={T:0x1cd,U:0x111,h:0x1ef,u:0x29};function Cl(T,U,h,u,I){return x(T-bd.T,T,h-bd.U,I- -bd.h,I-bd.u);}const h={'NDUXT':function(u,I){return u(I);}};function CW(T,U,h,u,I){return x(T-bo.T,U,h-bo.U,I- -bo.h,I-bo.u);}return h[CW(bf.T,bf.U,bf.h,bf.u,bf.I)](Number,T[Cl(bf.i,bf.R,bf.Z,bf.O,bf.E)+'ed'](U));}function roundOrNull(T,U){const bJ={T:0x16a,U:0x207,h:'ipA8',u:0x1c4,I:0x1f1,i:'zLUa',R:0x1c,Z:0x88,O:0x86,E:0xd2},bl={T:0x1b7,U:0xcc,h:0x160,u:0x13c},bW={T:0x162,U:0x26,h:0x91,u:0x1e7},h={'XtJrF':function(u,I){return u===I;},'AjGrH':function(u,I,i){return u(I,i);}};function CJ(T,U,h,u,I){return d(T-bW.T,U-bW.U,T- -bW.h,h,I-bW.u);}function CH(T,U,h,u,I){return d(T-bl.T,U-bl.U,U- -bl.h,T,I-bl.u);}return h[CJ(bJ.T,bJ.U,bJ.h,bJ.u,bJ.I)](T,null)?null:h[CH(bJ.i,-bJ.R,-bJ.Z,-bJ.O,-bJ.E)](round,T,U);}
1
+ /**
2
+ * Behavioural observation.
3
+ *
4
+ * Every other collector takes a snapshot: it reads a property and returns. This
5
+ * one cannot — human-ness is in how input arrives over time, so something has
6
+ * to be listening from page load, long before anyone submits a form.
7
+ *
8
+ * **Raw event streams never leave the page, and are never even retained.**
9
+ * Statistics are folded in as events arrive and the events are dropped, which
10
+ * is both the privacy position and the reason memory is bounded regardless of
11
+ * how long a tab stays open. A pointer trail is a biometric and a keystroke
12
+ * sequence leaks the text; neither is worth having on a server to decide
13
+ * whether one login looks automated.
14
+ *
15
+ * What is deliberately NOT captured, though the plan lists it: key identity of
16
+ * any kind, and `beh.key.digraph_profile`. Per-user typing rhythm at that
17
+ * resolution identifies people across sessions, which is a different product
18
+ * from deciding whether this request is a script.
19
+ */
20
+ /** Past this, the distribution is established and more samples buy nothing. */
21
+ const MAX_SAMPLES = 256;
22
+ /** Listeners we attach. All passive: the page's own handling is never affected. */
23
+ const POINTER_EVENTS = ['pointermove', 'pointerdown', 'pointerup'];
24
+ const KEY_EVENTS = ['keydown', 'keyup'];
25
+ function push(w, x) {
26
+ w.n += 1;
27
+ const delta = x - w.mean;
28
+ w.mean += delta / w.n;
29
+ w.m2 += delta * (x - w.mean);
30
+ }
31
+ function sd(w) {
32
+ return w.n < 2 ? null : Math.sqrt(w.m2 / (w.n - 1));
33
+ }
34
+ function mean(w) {
35
+ return w.n === 0 ? null : w.mean;
36
+ }
37
+ const DIRECTION_BUCKETS = 8;
38
+ /**
39
+ * Accumulates behavioural statistics from a target's input events.
40
+ *
41
+ * Constructed once per page and attached to the document; `stop()` detaches
42
+ * everything, so an SPA that mounts and unmounts a form does not leak listeners.
43
+ */
44
+ export class BehaviorRecorder {
45
+ #now;
46
+ #started;
47
+ // Pointer.
48
+ #moveInterval = { n: 0, mean: 0, m2: 0 };
49
+ #speed = { n: 0, mean: 0, m2: 0 };
50
+ #curvature = { n: 0, mean: 0, m2: 0 };
51
+ #directions = new Array(DIRECTION_BUCKETS).fill(0);
52
+ #pointerSamples = 0;
53
+ #lastPoint;
54
+ #lastAngle;
55
+ #lastMoveAt;
56
+ // Keyboard. Dwell is press-to-release of one key; flight is release-to-press
57
+ // between keys. Neither records which key.
58
+ #dwell = { n: 0, mean: 0, m2: 0 };
59
+ #flight = { n: 0, mean: 0, m2: 0 };
60
+ #downAt = new Map();
61
+ #lastUpAt;
62
+ #keySamples = 0;
63
+ // Everything else.
64
+ #pasteEvents = 0;
65
+ #scrollEvents = 0;
66
+ #wheelDeltaModes = new Set();
67
+ #touchPoints = 0;
68
+ #maxTouchRadius = 0;
69
+ #touchForceSeen = false;
70
+ #focusChanges = 0;
71
+ #fieldsFocused = new Set();
72
+ #focusOrder = [];
73
+ #trustedEvents = 0;
74
+ #untrustedEvents = 0;
75
+ #firstInteractionAt;
76
+ #lastPointerDownAt;
77
+ #dwellBeforeClick;
78
+ #detach = [];
79
+ constructor(options = {}) {
80
+ this.#now = options.now ?? (() => Date.now());
81
+ this.#started = this.#now();
82
+ }
83
+ /**
84
+ * Attaches to a target.
85
+ *
86
+ * Passive and capturing: passive so the page's scrolling is never blocked by
87
+ * us, capturing so a form that calls `stopPropagation` on its own inputs does
88
+ * not silently blind the recorder. A fingerprinting library that degrades a
89
+ * host page's scroll performance has failed at being a guest.
90
+ */
91
+ attach(target) {
92
+ const options = { passive: true, capture: true };
93
+ const on = (type, handler) => {
94
+ target.addEventListener(type, handler, options);
95
+ this.#detach.push(() => target.removeEventListener(type, handler, options));
96
+ };
97
+ for (const type of POINTER_EVENTS)
98
+ on(type, (e) => this.#onPointer(e, type));
99
+ for (const type of KEY_EVENTS)
100
+ on(type, (e) => this.#onKey(e, type));
101
+ on('paste', (e) => this.#onPaste(e));
102
+ on('wheel', (e) => this.#onWheel(e));
103
+ on('scroll', () => {
104
+ this.#scrollEvents += 1;
105
+ });
106
+ on('touchstart', (e) => this.#onTouch(e));
107
+ on('focusin', (e) => this.#onFocus(e));
108
+ }
109
+ stop() {
110
+ for (const off of this.#detach)
111
+ off();
112
+ this.#detach = [];
113
+ }
114
+ #mark(event) {
115
+ // `isTrusted` is false for anything a page dispatched itself, which catches
116
+ // naive `element.click()` automation. It is true for CDP-driven input, so a
117
+ // high ratio proves nothing — only a low one is informative.
118
+ if (event.isTrusted === true)
119
+ this.#trustedEvents += 1;
120
+ else
121
+ this.#untrustedEvents += 1;
122
+ this.#firstInteractionAt ??= this.#now();
123
+ }
124
+ #onPointer(event, type) {
125
+ this.#mark(event);
126
+ if (type === 'pointerdown') {
127
+ this.#lastPointerDownAt = this.#now();
128
+ // Zero movement before a click is the classic scripted submit. Recorded
129
+ // as the gap since the last observed move, not as a verdict.
130
+ this.#dwellBeforeClick =
131
+ this.#lastMoveAt === undefined ? undefined : Math.round(this.#lastPointerDownAt - this.#lastMoveAt);
132
+ return;
133
+ }
134
+ if (type === 'pointerup')
135
+ return;
136
+ if (this.#pointerSamples >= MAX_SAMPLES)
137
+ return;
138
+ const t = this.#now();
139
+ const x = event.clientX;
140
+ const y = event.clientY;
141
+ if (typeof x !== 'number' || typeof y !== 'number')
142
+ return;
143
+ const previous = this.#lastPoint;
144
+ this.#lastPoint = { x, y, t };
145
+ this.#lastMoveAt = t;
146
+ this.#pointerSamples += 1;
147
+ if (previous === undefined)
148
+ return;
149
+ const dx = x - previous.x;
150
+ const dy = y - previous.y;
151
+ const dt = t - previous.t;
152
+ const distance = Math.hypot(dx, dy);
153
+ if (dt > 0) {
154
+ push(this.#moveInterval, dt);
155
+ push(this.#speed, distance / dt);
156
+ }
157
+ if (distance === 0)
158
+ return;
159
+ const angle = Math.atan2(dy, dx);
160
+ // Direction histogram, for entropy. A straight programmatic path fills one
161
+ // bucket; a hand filling a form fills most of them.
162
+ const bucket = Math.min(DIRECTION_BUCKETS - 1, Math.max(0, Math.floor(((angle + Math.PI) / (2 * Math.PI)) * DIRECTION_BUCKETS)));
163
+ this.#directions[bucket] = (this.#directions[bucket] ?? 0) + 1;
164
+ if (this.#lastAngle !== undefined) {
165
+ let turn = angle - this.#lastAngle;
166
+ while (turn > Math.PI)
167
+ turn -= 2 * Math.PI;
168
+ while (turn < -Math.PI)
169
+ turn += 2 * Math.PI;
170
+ push(this.#curvature, Math.abs(turn));
171
+ }
172
+ this.#lastAngle = angle;
173
+ }
174
+ #onKey(event, type) {
175
+ this.#mark(event);
176
+ if (this.#keySamples >= MAX_SAMPLES)
177
+ return;
178
+ // `event.code` is the physical key position, used only as a correlation
179
+ // handle to pair a keyup with its keydown, and never recorded.
180
+ const handle = event.code || event.key || 'k';
181
+ const t = this.#now();
182
+ if (type === 'keydown') {
183
+ if (!this.#downAt.has(handle))
184
+ this.#downAt.set(handle, t);
185
+ if (this.#lastUpAt !== undefined)
186
+ push(this.#flight, t - this.#lastUpAt);
187
+ return;
188
+ }
189
+ const downAt = this.#downAt.get(handle);
190
+ if (downAt !== undefined) {
191
+ push(this.#dwell, t - downAt);
192
+ this.#downAt.delete(handle);
193
+ this.#keySamples += 1;
194
+ }
195
+ this.#lastUpAt = t;
196
+ }
197
+ #onPaste(event) {
198
+ this.#mark(event);
199
+ this.#pasteEvents += 1;
200
+ }
201
+ #onWheel(event) {
202
+ this.#mark(event);
203
+ this.#scrollEvents += 1;
204
+ // A trackpad emits pixel deltas, a wheel emits lines. Which one is present
205
+ // says something about the device that the user agent does not.
206
+ if (typeof event.deltaMode === 'number')
207
+ this.#wheelDeltaModes.add(event.deltaMode);
208
+ }
209
+ #onTouch(event) {
210
+ this.#mark(event);
211
+ const touches = event.touches;
212
+ if (touches === undefined || touches.length === 0)
213
+ return;
214
+ this.#touchPoints = Math.max(this.#touchPoints, touches.length);
215
+ for (let i = 0; i < touches.length; i++) {
216
+ const touch = touches.item(i);
217
+ if (touch === null)
218
+ continue;
219
+ const radius = Math.max(touch.radiusX ?? 0, touch.radiusY ?? 0);
220
+ if (radius > this.#maxTouchRadius)
221
+ this.#maxTouchRadius = radius;
222
+ // A real finger reports a varying force; a synthesised touch reports 0.
223
+ if (typeof touch.force === 'number' && touch.force > 0)
224
+ this.#touchForceSeen = true;
225
+ }
226
+ }
227
+ #onFocus(event) {
228
+ this.#mark(event);
229
+ this.#focusChanges += 1;
230
+ const target = event.target;
231
+ if (target === null)
232
+ return;
233
+ // A stable handle for the field, never its value and never its label. Used
234
+ // only to see whether fields were filled in DOM order.
235
+ const handle = target.id ?? target.name ?? target.tagName ?? '';
236
+ if (handle === '')
237
+ return;
238
+ this.#fieldsFocused.add(handle);
239
+ if (this.#focusOrder.length < 32)
240
+ this.#focusOrder.push(handle);
241
+ }
242
+ /** Derived statistics only. Safe to call repeatedly. */
243
+ summary() {
244
+ const now = this.#now();
245
+ const observed = this.#trustedEvents + this.#untrustedEvents;
246
+ const out = {};
247
+ out['beh.observed'] = observed > 0;
248
+ out['beh.pointer.samples'] = this.#pointerSamples;
249
+ out['beh.pointer.entropy'] = this.#pointerSamples === 0 ? null : round(entropy(this.#directions), 3);
250
+ out['beh.pointer.curvature'] = roundOrNull(mean(this.#curvature), 4);
251
+ out['beh.pointer.curvature_sd'] = roundOrNull(sd(this.#curvature), 4);
252
+ out['beh.pointer.speed_mean'] = roundOrNull(mean(this.#speed), 4);
253
+ out['beh.pointer.speed_sd'] = roundOrNull(sd(this.#speed), 4);
254
+ out['beh.pointer.interval_mean'] = roundOrNull(mean(this.#moveInterval), 2);
255
+ out['beh.pointer.interval_sd'] = roundOrNull(sd(this.#moveInterval), 2);
256
+ out['beh.pointer.dwell_before_click'] = this.#dwellBeforeClick ?? null;
257
+ out['beh.key.samples'] = this.#keySamples;
258
+ out['beh.key.dwell_mean'] = roundOrNull(mean(this.#dwell), 2);
259
+ out['beh.key.dwell_sd'] = roundOrNull(sd(this.#dwell), 2);
260
+ out['beh.key.flight_mean'] = roundOrNull(mean(this.#flight), 2);
261
+ out['beh.key.flight_sd'] = roundOrNull(sd(this.#flight), 2);
262
+ out['beh.paste_events'] = this.#pasteEvents;
263
+ out['beh.scroll.events'] = this.#scrollEvents;
264
+ out['beh.scroll.signature'] = this.#scrollEvents === 0 ? null : [...this.#wheelDeltaModes].sort().join(',');
265
+ out['beh.touch.points'] = this.#touchPoints;
266
+ out['beh.touch.radius_max'] = this.#maxTouchRadius === 0 ? null : round(this.#maxTouchRadius, 1);
267
+ out['beh.touch.force_seen'] = this.#touchPoints === 0 ? null : this.#touchForceSeen;
268
+ out['beh.focus_changes'] = this.#focusChanges;
269
+ out['beh.fields_focused'] = this.#fieldsFocused.size;
270
+ out['beh.focus_sequence'] = this.#focusOrder.length === 0 ? null : this.#focusOrder.join('>');
271
+ out['beh.is_trusted_ratio'] = observed === 0 ? null : round(this.#trustedEvents / observed, 3);
272
+ out['beh.time_to_first_interaction'] =
273
+ this.#firstInteractionAt === undefined ? null : Math.round(this.#firstInteractionAt - this.#started);
274
+ out['beh.total_dwell'] = Math.round(now - this.#started);
275
+ return out;
276
+ }
277
+ }
278
+ /**
279
+ * Shannon entropy over the direction histogram, normalised to 0..1.
280
+ *
281
+ * Normalised so the number means the same thing however many buckets there are:
282
+ * 0 is one direction only, 1 is uniform. A raw bit count would silently change
283
+ * meaning if the bucket count were ever tuned.
284
+ */
285
+ function entropy(counts) {
286
+ const total = counts.reduce((sum, n) => sum + n, 0);
287
+ if (total === 0)
288
+ return 0;
289
+ let h = 0;
290
+ for (const count of counts) {
291
+ if (count === 0)
292
+ continue;
293
+ const p = count / total;
294
+ h -= p * Math.log2(p);
295
+ }
296
+ return h / Math.log2(counts.length);
297
+ }
298
+ function round(value, places) {
299
+ return Number(value.toFixed(places));
300
+ }
301
+ function roundOrNull(value, places) {
302
+ return value === null ? null : round(value, places);
303
+ }
package/dist/hash.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * FNV-1a, 32-bit, rendered as 8 hex characters.
3
+ *
4
+ * Not a security hash and never used as one: these values identify a rendering
5
+ * stack, not a person, and they are re-hashed with a per-tenant salt server-side
6
+ * before they are stored. A cryptographic hash in the browser would cost bundle
7
+ * size and async plumbing for no benefit here.
8
+ */
9
+ export declare function hash(input: string): string;
10
+ /**
11
+ * Stable across key insertion order, so the same environment always produces
12
+ * the same hash. JSON of the sorted pairs also makes the separator
13
+ * unambiguous — a value containing the delimiter cannot forge a collision.
14
+ */
15
+ export declare function hashRecord(record: Record<string, unknown>): string;
package/dist/hash.js CHANGED
@@ -1 +1,27 @@
1
- function F(){const CT=['W6hcTbtcHSot','W4boW7KvWPDdCSkVoSkjiW/cLW','W5VcOgO','WPzfW7a','BCoNpSkcWQa','WQSpWQGLW5q','WRnCu8kFWOZcGSklWP/dK18','kJfnWOq','ydOzrmooW7CQlCkLWPzR','W5n+W7HuWRfgWRjKsmopW4C','W7qcnmoSWQS','mqz0WPne','WQBcQL9WEeBcNLZcQtbC','imo9qCoMW41HDbpcTCkAWQxdJW','WR3dQSkKWP4Z','E0GGW5m8l1ldTSoMlCkbxG','WQZcP8k0a8kbDcvc','ocXl','WPeGWPWHW5m','WPRdPIuYW5a','W45xWOxcVve','WP/cPwpcKa8','WRzHW7G','WPJdSComBqm','WOddGhpdJJDikXxdRmoSW4ZcHW','dSosmmk0W6C','yCo1mhldVG','WOpdVJOSWORcHwNcJIH0','vCoIW6isW4O','WOuNWQig','aSonvYLz','mSkyn8omcmkRW58QW5lcNXyF','W5aQW6tdISouWQpdQYHB','ASoTdmkeWRe','WPmdW7Caa2PAWOP9','ibL2WPLi','W5xcP2TL','henJ','WQRdQeldJmkhhSkEDCkuWOmVW7e','wxtdQSkWWOC','W53dKXtcMmkOWQTmW4fbW6vQrW','wCk3FCogWOhcJs3cRSkRrmo4W4FcSG','W7VcVXhcKCoi','zmkwiWrcW7RdOSkAaSkQvSoe','WRmfWPu2W5i','eCkwBv1V','Ca/dGMOR','jSkmWRG','W5Dau8kema','W4ehj8oiWOu','tSkYbeKN','WPv8WOhdNmom','FSouWOVcH3hcReX4','aNrgwW','W73dVq8cpW','WQWTbSoFcq','mSksnSoicCoPW58rW5VcLJu'];F=function(){return CT;};return F();}(function(T,U){const f={T:0x573,U:0x58f,h:'Y1BJ',u:0x578,I:0x5a3,i:'$iD9',R:0x166,Z:0x149,t:0x148,V:0x13f,W:0x598,l:0x59b,J:'OoVG',H:0x58a,L:0x59e,S:'C6Zj',c:0x12c,w:0x128,P:0x137,N:0x11c,a:0x577,C0:0x57d,C1:'le#5',C2:0x562,C3:0x56d,C4:'h*0Y',C5:0x115,C6:0x13b,C7:0x138,C8:0x12a,C9:'u*8i',CC:0x112,CD:0x10a,CF:0x11d,Cb:'ot#P',CT:0x153,CU:0x14c,Ch:0x15e,Cu:0x13d,CI:0x4fb,Ci:'ODy(',CR:0x509,CZ:0x4ee,CO:0x511,CE:'Ovkd',Cz:0x108,Cp:0x123,Cv:0x133,CK:0x122},o={T:0x320},Q={T:0xfb},d={T:0xc0},x={T:0x38d},j={T:0x31a};function v(T,U,h,u,I){return b(h-j.T,U);}function O(T,U,h,u,I){return b(U-x.T,h);}function E(T,U,h,u,I){return b(h- -d.T,T);}function z(T,U,h,u,I){return b(I- -Q.T,T);}function p(T,U,h,u,I){return b(I- -o.T,T);}const h=T();while(!![]){try{const u=-parseInt(O(f.T,f.U,f.h,f.u,f.I))/(0x77*-0x6+0x103f*0x1+-0xd74)+parseInt(E(f.i,f.R,f.Z,f.t,f.V))/(-0x7d*-0x1+-0x310+0x295)+-parseInt(O(f.W,f.l,f.J,f.H,f.L))/(0x46d+0x16ed*0x1+-0x1b57)+-parseInt(z(f.S,f.c,f.w,f.P,f.N))/(0x2256+0x257b+0x1*-0x47cd)*(-parseInt(O(f.a,f.C0,f.C1,f.C2,f.C3))/(-0x1c1+-0x245e*0x1+0x2624))+parseInt(z(f.C4,f.C5,f.C6,f.C7,f.C8))/(-0x376*0xb+0xaf9*-0x1+0x3111)*(parseInt(z(f.C9,f.CC,f.CD,f.CF,f.CD))/(0x1*0x20a1+0x739*-0x5+0x1d*0x1f))+-parseInt(E(f.Cb,f.CT,f.CU,f.Ch,f.Cu))/(-0x2567+-0x1*-0x1ad5+-0x3b*-0x2e)+-parseInt(v(f.CI,f.Ci,f.CR,f.CZ,f.CO))/(-0x1fa1+-0x805*0x3+0x37b9)*(-parseInt(p(f.CE,-f.Cz,-f.Cp,-f.Cv,-f.CK))/(-0x1*-0x189b+0x1976+-0x3207));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,0x5e9d8+-0x61*0x1cab+0xa961b));const D=(function(){const V={T:0xfc,U:0xda,h:0xff,u:'95mY',I:0xe7};let T=!![];return function(U,h){const t={T:0x116},u=T?function(){function K(T,U,h,u,I){return b(I- -t.T,u);}if(h){const I=h[K(V.T,V.U,V.h,V.u,V.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){const N={T:0x10c,U:0x127,h:0x110,u:0x115,I:'v%KD',i:'R[fX',R:0xa9,Z:0xa6,a:0xb3,C0:0x98,C1:0x109,C2:0xd7,C3:0xf3,C4:0xd6,C5:'Ovkd',C6:'3[@6',C7:0xb2,C8:0x98,C9:0xa1,CC:0xa9,CD:0xef,CF:0xed,Cb:0xeb,CT:0xd2,CU:'L%&C',Ch:0x83,Cu:0x85,CI:0x7b,Ci:'h*0Y',CR:0x76,CZ:0x592,CO:0x59a,CE:'sV8G',Cz:0x59c,Cp:0x5a9,Cv:0x87,CK:0x8e,CY:'E#*G',CA:0x71,CX:0x53,CG:0x7e,Cr:0x6e,Cn:'$iD9',Cg:0x83,Cq:0x8d,Ck:0x96,Ce:'jg!!',Cy:0x94,Cs:0x82,CM:0x100,Cm:0xe9,CB:0x105,Cj:0xee,Cx:'&xrr',Cd:0x5b9,CQ:0x5ab,Co:'q$mY',Cf:0x58e,Ct:0x59b,CV:0x118,CW:0x10c,Cl:0x107,CJ:0x118,CH:'4I!l',CL:'q$mY',CS:0xb5,Cc:0xac,Cw:0xaf,CP:0xa3,CN:0x12d,Ca:0x11d,D0:0x11b,D1:0x11d,D2:'DRf]',D3:0xab,D4:0xa7,D5:0xc4,D6:0xab,D7:0x90,D8:0x8a,D9:'tNqI',DC:0xa0,DD:0x5b9,DF:0x5a7,Db:'$iD9',DT:0x5b7,DU:0x59d,Dh:'40SV',Du:0xa8,DI:0xad,Di:0xa8,DR:0x9c},P={T:0x172},w={T:0x14f},c={T:0x27b},S={T:0x38b},L={T:0x103},U={};U[Y(N.T,N.U,N.h,N.u,N.I)]=function(u,I){return u!==I;},U[A(N.i,N.R,N.Z,N.a,N.C0)]=Y(N.C1,N.C2,N.C3,N.C4,N.C5)+A(N.C6,N.C7,N.C8,N.C9,N.CC)+'+$';function Y(T,U,h,u,I){return b(h- -L.T,I);}function r(T,U,h,u,I){return b(U-S.T,h);}function G(T,U,h,u,I){return b(h- -c.T,u);}const h=U;function A(T,U,h,u,I){return b(U- -w.T,T);}if(h[Y(N.CD,N.CF,N.Cb,N.CT,N.CU)](C[G(-N.Ch,-N.Cu,-N.CI,N.Ci,-N.CR)]()[r(N.CZ,N.CO,N.CE,N.Cz,N.Cp)+X(N.Cv,N.CK,N.CY,N.C0,N.CA)]()[G(-N.CX,-N.CG,-N.Cr,N.Cn,-N.Cg)+'Of']('\x0a'),-(0x155*0x11+-0x2258+0x5da*0x2)))return;function X(T,U,h,u,I){return b(T- -P.T,h);}return C[X(N.Cq,N.Ck,N.Ce,N.Cy,N.Cs)+Y(N.CM,N.Cm,N.CB,N.Cj,N.Cx)]()[r(N.Cd,N.CQ,N.Co,N.Cf,N.Ct)+'h'](h[Y(N.CV,N.CW,N.Cl,N.CJ,N.CH)])[A(N.CL,N.CS,N.Cc,N.Cw,N.CP)+Y(N.CN,N.Ca,N.D0,N.D1,N.C5)]()[A(N.D2,N.D3,N.D4,N.D5,N.D6)+G(-N.Cv,-N.D7,-N.D8,N.D9,-N.DC)+'r'](C)[r(N.DD,N.DF,N.Db,N.DT,N.DU)+'h'](h[A(N.Dh,N.Du,N.DI,N.Di,N.DR)]);});C();function b(C,D){C=C-(-0x16f1+0x1433+-0x1a*-0x2e);const T=F();let U=T[C];if(b['nwBcOY']===undefined){var h=function(R){const Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let O='',E='',z=O+h,p=(''+function(){return-0x673+0x1b7d+-0x150a;})['indexOf']('\x0a')!==-(0x2bd*0x6+0x4*-0x752+-0xcdb*-0x1);for(let v=-0x1613*0x1+0xbd6+-0xa3d*-0x1,K,Y,A=-0x1533+0xdaa+0x789;Y=R['charAt'](A++);~Y&&(K=v%(0x11*0x4a+0x1*0x2511+-0x29f7)?K*(-0x5b4+0x50b*-0x7+0x2941)+Y:Y,v++%(0xbf+0x1553+-0x160e))?O+=p||z['charCodeAt'](A+(0x17*0x14f+-0x12b9+0xb56*-0x1))-(0x3d+0x1e7*-0x6+-0x1d*-0x63)!==-0x1a93+-0x1421*-0x1+-0x339*-0x2?String['fromCharCode'](-0x17ed+-0x1*-0x2e9+0x1603&K>>(-(0x5*0x4c7+0x424+-0x1c05)*v&0x3*-0xdf+-0x24e+-0x1*-0x4f1)):v:0xd*0x137+0x2188+-0x3153){Y=Z['indexOf'](Y);}for(let X=-0xd8c+0x24e6*-0x1+0x16*0x24b,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0x474+-0x60a*-0x5+-0xe9*0x26))['slice'](-(0x3a0+0x989*-0x3+0x18fd));}return decodeURIComponent(E);};const i=function(R,Z){let O=[],E=0xef9+0xd12*0x2+-0x291d,z,p='';R=h(R);let v;for(v=-0x163+0x1c*-0xee+-0x1*-0x1b6b;v<-0xfd3*-0x2+-0x1362+0x2*-0x5a2;v++){O[v]=v;}for(v=-0xe*0xf1+0x9c9+0x4f*0xb;v<0x1bbe+0x353*0x3+-0x24b7;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0x1936+-0x10f6+-0x740),z=O[v],O[v]=O[E],O[E]=z;}v=0xa1+0x14*-0x5b+0x67b,E=0x1475*-0x1+0x1*0x295+0x11e0;for(let K=-0x2*0x1042+-0x1d9b+0x14b5*0x3;K<R['length'];K++){v=(v+(0x21cb+0x1*0x923+-0x2aed))%(-0x11*0xec+0x12*-0x174+0x2ad4),E=(E+O[v])%(-0x23a6+-0x2*0x8d2+0x1b25*0x2),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x26fa+0x82*0x16+0x1cce)]);}return p;};b['UXwbwd']=i,b['EmIPMK']={},b['nwBcOY']=!![];}const u=T[0x1*-0x25d9+-0x759*-0x4+0x875];b['JoBiLa']!==u&&(b['EmIPMK']={},b['JoBiLa']=u);const I=b['EmIPMK'][C];if(I===undefined){if(b['SOMbCQ']===undefined){const R=function(Z){this['AWpoNY']=Z,this['WMFQOt']=[0x1*0x74f+0x982*-0x2+0xbb6,-0x96c+0x1d24+0x277*-0x8,0x2b*0xbf+-0x3be*-0x3+0x1*-0x2b4f],this['nCCRHx']=function(){return'newState';},this['ZuUVOW']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['zahRYh']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['SfgFkz']=function(){const Z=new RegExp(this['ZuUVOW']+this['zahRYh']),O=Z['test'](this['nCCRHx']['toString']())?--this['WMFQOt'][0x1600+0x232b+-0x392a*0x1]:--this['WMFQOt'][-0x18b5*0x1+0x126f+0x646];return this['zavsad'](O);},R['prototype']['zavsad']=function(Z){if(!Boolean(~Z))return Z;return this['nwLkDs'](this['AWpoNY']);},R['prototype']['nwLkDs']=function(Z){for(let O=-0x1*-0x1d93+0xce4+-0x2a77,E=this['WMFQOt']['length'];O<E;O++){this['WMFQOt']['push'](Math['round'](Math['random']())),E=this['WMFQOt']['length'];}return Z(this['WMFQOt'][0x6aa+-0x19ec+0x1342]);},(''+function(){return-0xeb3+-0x13*0x112+-0x1*-0x2309;})['indexOf']('\x0a')===-(0x1*0x103f+-0x1f*-0x131+-0x1*0x352d)&&new R(b)['SfgFkz'](),b['SOMbCQ']=!![];}U=b['UXwbwd'](U,D),b['EmIPMK'][C]=U;}else U=I;return U;}export function hash(U){const C6={T:0xd3,U:0xeb,h:0xe8,u:0xf3,I:'h*0Y',i:0xe1,R:0xea,Z:0xe1,C7:0xd7,C8:'ot#P',C9:0xf4,CC:0xe9,CD:0x104,CF:'o8DF',Cb:0xec,CT:0xee,CU:0xfb,Ch:'sV8G',Cu:0x108,CI:0xc8,Ci:'L%&C',CR:0xd6,CZ:0xce,CO:0xe6,CE:0x4ed,Cz:'ODy(',Cp:0x51f,Cv:0x4f9,CK:0x506,CY:0xd6,CA:'jvX7',CX:0xc4,CG:0xd1,Cr:0xc6,Cn:0x4ea,Cg:'3[@6',Cq:0x4f8,Ck:0x4ff,Ce:0x502,Cy:'BqRW',Cs:0x559,CM:0x56f,Cm:0x569,CB:0x584,Cj:0xb7,Cx:'C6Zj',Cd:0xca,CQ:0xc3,Co:0xe5,Cf:'W*QI',Ct:0x569,CV:0x573,CW:0x57c,Cl:0x568,CJ:0x4eb,CH:'73W&',CL:0x4fb,CS:0x4f5,Cc:0x4e1},C5={T:0x2dc},C3={T:0x30f},C1={T:0x2dd},C0={T:0x359},a={T:0x2ed},h={};function e(T,U,h,u,I){return b(I-a.T,U);}function k(T,U,h,u,I){return b(h-C0.T,T);}function n(T,U,h,u,I){return b(h- -C1.T,I);}h[n(-C6.T,-C6.U,-C6.h,-C6.u,C6.I)]=function(R,Z){return R<Z;};function q(T,U,h,u,I){return b(U- -C3.T,u);}h[n(-C6.i,-C6.R,-C6.Z,-C6.C7,C6.C8)]=function(R,Z){return R>>>Z;};const u=h;let I=-0xfedb895b+-0x92896f0+0x419*0x5ff090;for(let R=-0x1*-0x8bf+-0x18d*0x6+0x8f;u[q(-C6.C9,-C6.CC,-C6.CD,C6.CF,-C6.u)](R,U[q(-C6.Cb,-C6.CT,-C6.CU,C6.Ch,-C6.Cu)+'h']);R++){I^=U[g(-C6.CI,C6.Ci,-C6.CR,-C6.CZ,-C6.CO)+e(C6.CE,C6.Cz,C6.Cp,C6.Cv,C6.CK)](R),I=Math[g(-C6.CY,C6.CA,-C6.CX,-C6.CG,-C6.Cr)](I,0xd5ea09+0x3281*0x186+-0x22d8fc);}function g(T,U,h,u,I){return b(h- -C5.T,U);}return u[e(C6.Cn,C6.Cg,C6.Cq,C6.Ck,C6.Ce)](I,0x63d*-0x5+-0x1c9*-0xd+0x1ff*0x4)[k(C6.Cy,C6.Cs,C6.CM,C6.Cm,C6.CB)+g(-C6.Cj,C6.Cx,-C6.Cd,-C6.CQ,-C6.Co)](-0x18ca+0x1936+-0x5c)[k(C6.Cf,C6.Ct,C6.CV,C6.CW,C6.Cl)+e(C6.CJ,C6.CH,C6.CL,C6.CS,C6.Cc)](-0xd0e+0xa1+0x3*0x427,'0');}export function hashRecord(T){const Cb={T:0xfb,U:0xef,h:0xcb,u:'EWes',I:0xe0,i:0xd1,R:0xd5,Z:0xea,CT:'73W&',CU:0xce,Ch:0xae,Cu:0xac,CI:0xaa,Ci:0x97,CR:'wJ#7',CZ:'o8DF',CO:0x3bf,CE:0x3ad,Cz:0x3a4,Cp:0x3c6,Cv:'75Cd',CK:0x5ba,CY:0x59e,CA:0x5a6,CX:0x5b8,CG:0xc6,Cr:0xc0,Cn:0xd4,Cg:0xb0,Cq:'Ovkd'},CF={T:0x199},CD={T:0x39b},C9={T:0x2cd},C8={T:0x3aa},C7={T:0x2f1};function y(T,U,h,u,I){return b(I- -C7.T,u);}function s(T,U,h,u,I){return b(U-C8.T,T);}function M(T,U,h,u,I){return b(T- -C9.T,I);}const U={'CkCgx':function(u,I){return u(I);}};function B(T,U,h,u,I){return b(T-CD.T,I);}function m(T,U,h,u,I){return b(h-CF.T,T);}const h=Object[y(-Cb.T,-Cb.U,-Cb.h,Cb.u,-Cb.I)+'es'](T)[y(-Cb.i,-Cb.R,-Cb.Z,Cb.CT,-Cb.CU)](([u],[I])=>u<I?-(0x5d1*-0x3+0x1*-0x1475+-0x287*-0xf):u>I?-0x2*0x1042+-0x1d9b+0x1f10*0x2:0x21cb+0x1*0x923+-0x2aee)[M(-Cb.Ch,-Cb.Cu,-Cb.CI,-Cb.Ci,Cb.CR)](([u,I])=>[u,String(I)]);return U[m(Cb.CZ,Cb.CO,Cb.CE,Cb.Cz,Cb.Cp)](hash,JSON[s(Cb.Cv,Cb.CK,Cb.CY,Cb.CA,Cb.CX)+M(-Cb.CG,-Cb.Cr,-Cb.Cn,-Cb.Cg,Cb.Cq)](h));}
1
+ /**
2
+ * FNV-1a, 32-bit, rendered as 8 hex characters.
3
+ *
4
+ * Not a security hash and never used as one: these values identify a rendering
5
+ * stack, not a person, and they are re-hashed with a per-tenant salt server-side
6
+ * before they are stored. A cryptographic hash in the browser would cost bundle
7
+ * size and async plumbing for no benefit here.
8
+ */
9
+ export function hash(input) {
10
+ let value = 0x811c9dc5;
11
+ for (let i = 0; i < input.length; i++) {
12
+ value ^= input.charCodeAt(i);
13
+ value = Math.imul(value, 0x01000193);
14
+ }
15
+ return (value >>> 0).toString(16).padStart(8, '0');
16
+ }
17
+ /**
18
+ * Stable across key insertion order, so the same environment always produces
19
+ * the same hash. JSON of the sorted pairs also makes the separator
20
+ * unambiguous — a value containing the delimiter cannot forge a collision.
21
+ */
22
+ export function hashRecord(record) {
23
+ const entries = Object.entries(record)
24
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
25
+ .map(([key, value]) => [key, String(value)]);
26
+ return hash(JSON.stringify(entries));
27
+ }
@@ -0,0 +1,7 @@
1
+ export { runCollectors, type RunOptions } from './run.js';
2
+ export { ALL_COLLECTORS, COLLECTOR_IDS, INVASIVE_COLLECTORS } from './registry.js';
3
+ export { hash, hashRecord } from './hash.js';
4
+ export { WAVE_BUDGET_MS, type CollectionResult, type Collector, type CollectorEnv, type SignalValue, type Wave, } from './types.js';
5
+ export { stableCore, hardwareCore, browserCore, STABLE_KEYS, HARDWARE_KEYS, BROWSER_KEYS, EXCLUDED_FROM_CORE, type StableCore, type CoreTier, } from './stable-core.js';
6
+ export { BehaviorRecorder, type BehaviorSummary, type RecorderOptions, type RecorderTarget, } from './behavior/recorder.js';
7
+ export { behaviorCollector } from './signals/behavior.js';
package/dist/index.js CHANGED
@@ -1 +1,7 @@
1
- (function(T,U){var q={T:0xec,U:'xjHh',h:0xe4,u:0xf9,I:0xf0,k:0xe5,e:'l8h6',y:0xdf,s:0x108,M:0xf6,m:0x1fc,B:0x1eb,j:'BcVU',x:0x208,d:0x202,Q:0x382,o:0x396,f:'O#Ms',t:0x398,V:0x38d,W:0xfc,l:'u#a[',J:0x118,H:0x113,L:0x102,S:0x395,c:0x3a3,w:'YnU]',P:0x3a9,N:0x39b,a:0x29e,C0:0x293,C1:'jk6Z',C2:0x2b0,C3:0x1f1,C4:0x1f6,C5:'4HQ@',C6:0x1fa,C7:0x1ee,C8:'IOhu',C9:0x157,CC:0x152,CD:0x14a,CF:0x15c,Cb:0x39b,CT:0x3a3,CU:'W&KA',Ch:0x383,Cu:0x391,CI:0x209,Ci:0x202,CR:'x768',CZ:0x20f,CO:0x200,CE:'%c8M',Cz:0x16b,Cp:0x168,Cv:0x177,CK:0x160,CY:0x2bd,CA:0x2c2,CX:0x2cd,CG:'h#l2',Cr:0x2c2,Cn:0x379,Cg:0x39c,Cq:'v^jN',Ck:0x372,Ce:0x38a},g={T:0x63},n={T:0xc0},r={T:0x177},G={T:0x30a},X={T:0x21f},h=T();function O(T,U,h,u,I){return b(T-X.T,u);}function R(T,U,h,u,I){return b(I-G.T,h);}function Z(T,U,h,u,I){return b(T-r.T,h);}function E(T,U,h,u,I){return b(I-n.T,T);}function i(T,U,h,u,I){return b(I-g.T,U);}while(!![]){try{var u=-parseInt(i(q.T,q.U,q.h,q.u,q.I))/(-0xb02+0x107+0x9fc)*(parseInt(i(q.k,q.e,q.y,q.s,q.M))/(-0x1355+0xd1d+0x31d*0x2))+parseInt(Z(q.m,q.B,q.j,q.x,q.d))/(-0x2221+-0x1*-0x941+0x18e3)*(-parseInt(R(q.Q,q.o,q.f,q.t,q.V))/(0x1352+-0x1ba*0xe+0x59*0xe))+parseInt(i(q.W,q.l,q.J,q.H,q.L))/(0x1*0xfe8+0x25b1+-0x477*0xc)*(-parseInt(R(q.S,q.c,q.w,q.P,q.N))/(-0x86a+-0x2ff*-0x1+0x571))+parseInt(O(q.a,q.a,q.C0,q.C1,q.C2))/(0x5*-0x542+-0x21c6*-0x1+0x53*-0x17)*(parseInt(Z(q.C3,q.C4,q.C5,q.C6,q.C7))/(0x1837+-0x1e0c+-0x1*-0x5dd))+-parseInt(E(q.C8,q.C9,q.CC,q.CD,q.CF))/(0x1d84+0xb*0xce+-0x2655)*(parseInt(R(q.Cb,q.CT,q.CU,q.Ch,q.Cu))/(-0x26f1*-0x1+-0x5e8*-0x2+-0x1*0x32b7))+-parseInt(Z(q.CI,q.Ci,q.CR,q.CZ,q.CO))/(-0x247d+0x2251+0x51*0x7)*(-parseInt(E(q.CE,q.Cz,q.Cp,q.Cv,q.CK))/(-0x7*0x88+-0x636+0x1*0x9fa))+parseInt(O(q.CY,q.CA,q.CX,q.CG,q.Cr))/(-0x1488+0xabd+0x9d8)*(parseInt(R(q.Cn,q.Cg,q.Cq,q.Ck,q.Ce))/(-0x111f*-0x1+0x2e7*-0x4+0x1*-0x575));if(u===U)break;else h['push'](h['shift']());}catch(I){h['push'](h['shift']());}}}(F,0xbb874+-0x10016*0x6+0x5534b));function b(C,D){C=C-(0x1c47+0x212+-0x1de2);var T=F();var U=T[C];if(b['Uxugpm']===undefined){var h=function(R){var Z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var O='',E='',z=O+h,p=(''+function(){return 0x13d*0x8+0x1*0xb56+-0x153e*0x1;})['indexOf']('\x0a')!==-(-0x1034+0x2*-0x25c+-0x1e7*-0xb);for(var v=0x5*0x11+0x1d33+0x6c*-0x46,K,Y,A=-0xa5e*0x3+0xf4f*0x1+-0x1*-0xfcb;Y=R['charAt'](A++);~Y&&(K=v%(-0x1a35+-0x16aa+-0x5*-0x9c7)?K*(0x13ca+0x2072+0x1*-0x33fc)+Y:Y,v++%(0x4e4*0x3+0x9e*0x1c+-0x1ff0))?O+=p||z['charCodeAt'](A+(0x14e5+-0x1541*-0x1+-0x436*0xa))-(0x1b1d+0x24d7+0xca*-0x51)!==-0x11*-0xce+0x129d+-0x204b?String['fromCharCode'](0x1a*0x5+-0x1b4f+0x1*0x1bcc&K>>(-(0x14*0x15c+-0x61b*-0x3+-0x2d7f*0x1)*v&0x194e+0x21*0x1f+-0x1d47*0x1)):v:-0xca*-0x2a+0x1*-0xa5a+-0x16ca){Y=Z['indexOf'](Y);}for(var X=0x5*0x4da+0x22c9+-0x5*0xbcf,G=O['length'];X<G;X++){E+='%'+('00'+O['charCodeAt'](X)['toString'](0xf3*0x16+0x1244+-0x1*0x2716))['slice'](-(0x1b12+-0x1a55+-0xbb));}return decodeURIComponent(E);};var i=function(R,Z){var O=[],E=-0xa85+0x7c3*0x2+-0x501,z,p='';R=h(R);var v;for(v=0x2*-0x1264+0x12cb+0x11fd;v<0x571+-0xddf*0x2+0x174d;v++){O[v]=v;}for(v=0x15a2+-0xb9b+0x11*-0x97;v<-0x1398+0x1*-0x47b+0x1913;v++){E=(E+O[v]+Z['charCodeAt'](v%Z['length']))%(0xa56+-0x15fb+-0x3*-0x437),z=O[v],O[v]=O[E],O[E]=z;}v=-0x1311+0x1983+0x226*-0x3,E=0x1cf2+-0x1400+-0x8f2;for(var K=0x1a36*0x1+-0x5*-0x4b9+-0x31d3;K<R['length'];K++){v=(v+(0x107+-0x233d+0x2237))%(0xd1d+0x4d*-0x33+0x33a),E=(E+O[v])%(-0x1*-0x941+-0x22fb+-0x137*-0x16),z=O[v],O[v]=O[E],O[E]=z,p+=String['fromCharCode'](R['charCodeAt'](K)^O[(O[v]+O[E])%(-0x1c42+0x7f*0x10+0x1552*0x1)]);}return p;};b['rFtQxU']=i,b['jXZIry']={},b['Uxugpm']=!![];}var u=T[0xff1+-0x8d*-0x3+-0x1198];b['uSWVhT']!==u&&(b['jXZIry']={},b['uSWVhT']=u);var I=b['jXZIry'][C];if(I===undefined){if(b['ZkSHPo']===undefined){var R=function(Z){this['QtGwun']=Z,this['JJRMtU']=[-0x2ff*-0x1+-0x1c12+0x1914,0xb42*0x3+0x218e+0x116*-0x3e,0x1837+-0x1e0c+-0x1*-0x5d5],this['pRacmB']=function(){return'newState';},this['CjVlqg']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['tTVLoG']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};R['prototype']['KBAGvT']=function(){var Z=new RegExp(this['CjVlqg']+this['tTVLoG']),O=Z['test'](this['pRacmB']['toString']())?--this['JJRMtU'][0x1d84+0xb*0xce+-0x265d]:--this['JJRMtU'][-0x26f1*-0x1+-0x5e8*-0x2+-0x3d*0xd5];return this['yxgzRl'](O);},R['prototype']['yxgzRl']=function(Z){if(!Boolean(~Z))return Z;return this['qTFzHi'](this['QtGwun']);},R['prototype']['qTFzHi']=function(Z){for(var O=-0x247d+0x2251+0x116*0x2,E=this['JJRMtU']['length'];O<E;O++){this['JJRMtU']['push'](Math['round'](Math['random']())),E=this['JJRMtU']['length'];}return Z(this['JJRMtU'][-0x7*0x88+-0x636+0x2*0x4f7]);},(''+function(){return-0x1488+0xabd+0x9cb;})['indexOf']('\x0a')===-(-0x111f*-0x1+0x2e7*-0x4+0x3*-0x1d6)&&new R(b)['KBAGvT'](),b['ZkSHPo']=!![];}U=b['rFtQxU'](U,D),b['jXZIry'][C]=U;}else U=I;return U;}function F(){var f=['WRBdMCkB','W4D5e8ozWO4','WQHdrmoGW4BdKSkKWPRcK8kz','WQVdMmkVW79G','W6XYWRtcN1y','WPRcKCkdEt8AWPG','WOBcRmoe','hsldGCkFBSkOW7a','WPhcGmolW47cQgddHSkux10','cSojW4vSW44RWQJcI8o5cG','WPVdTHuhWPBcKWRdHCoFBNddS8o6','cwZdK8kPEfn1yCo9t8o4WRO','WPhdUmkxW4LW','cCkpa8olsSorsCoLWPBcU8o4WOtcLa','gSoQWR/cO2i','mwrTWRNcQ8owgSkygfq','y3xcMuP0','WQhcJCoiW65L','wCkfW63cIum','oMbQWRxdP8owhSkyoMOT','bhFcPSoJaCkFW4pcSmo9WQ3cNW','WOnqW5BdTHq','WQ1crmkkW7BdU8k7WPVcRa','WRRcH1/dKSonWONdJSoyiSkn','WPxdUCkAW5VcTHJdKta','paJdJCkQcW','wtxdUSkIta','aSopWOi6W6yHWO/cSq','FNtcRLT+','W5C4a1lcRCkRp27dTW','k1ztBq','WOxdI8oXgfu','cW/cSSoadqjy','WODAW6tdQcm','W6VcH8olWRL2WRNdPHNcJmkj','W6BdUmkyW68P','WQBcUCoMW4FcI8o/W58aWQWeWPFdJa','iSoJwmkBn8oXW5n2WRKBWQbEWPS','m8kUWQbHWONdSCo7W4zQ','WQDDWP/dPmoHWQ3cIYtdOG','W61aW5O8xmkQW45xkCkefCo5WR8','qg99W4GA','W67cHSofWROMW4VcUH3cICkHw8k+W6W','Ad7cTISqxCoqfmoEWOpcUwT/','i8omDq','ouRcPxzpwSo4','WQHasSoIW6RdU8k0WPRcNSk9','xmkSW6xdP0unv8oQW7ZcNq'];F=function(){return f;};return F();}var D=(function(){var T=!![];return function(U,h){var e={T:0xc5,U:0xa7,h:'y3qz',u:0xbc,I:0xc6},k={T:0x135},u=T?function(){function z(T,U,h,u,I){return b(u- -k.T,h);}if(h){var I=h[z(-e.T,-e.U,e.h,-e.u,-e.I)](U,arguments);return h=null,I;}}:function(){};return T=![],u;};}()),C=D(this,function(){var o={T:0x237,U:'%(mR',h:0x225,u:0x226,I:0x21c,f:0x241,t:'4HQ@',V:0x238,W:0x243,l:0x227,J:0x17f,H:'xjHh',L:0x17d,S:0x17e,c:0x180,w:0x16d,P:'eVvM',N:0x17c,a:0x16b,C0:0x155,C1:0x59,C2:0x3d,C3:0x55,C4:0x54,C5:'y3qz',C6:0x363,C7:']i#3',C8:0x358,C9:0x35e,CC:0x35d,CD:0x15a,CF:0x175,Cb:0x16d,CT:0x79,CU:0x66,Ch:0x6a,Cu:0x68,CI:'4HQ@',Ci:0x34c,CR:'BcVU',CZ:0x362,CO:0x350,CE:0x33e,Cz:0x3a8,Cp:0x3a2,Cv:0x3ae,CK:'YI#w',CY:0x399,CA:0x6d,CX:0x7b,CG:0x6e,Cr:0x6d,Cn:'%CMd',Cg:0x354,Cq:'Qmx]',Ck:0x369,Ce:0x35a,Cy:0x34a,Cs:0x323,CM:'xkE@',Cm:0x328,CB:0x333,Cj:0x335,Cx:0x359,Cd:'BcVU',CQ:0x35f,Co:0x35c,Cf:0x351,Ct:0x232,CV:'oRBF',CW:0x240,Cl:0x23a,CJ:0x360,CH:'airC',CL:0x361,CS:0x359,Cc:0x365,Cw:0x3a3,CP:0x3a4,CN:0x3b8,Ca:'W&KA',D0:0x3c9,D1:0x23b,D2:'U0wf',D3:0x23e,D4:0x247,D5:0x252,D6:0x5f,D7:0x4e,D8:0x59,D9:0x55,DC:'oRBF'},Q={T:0x322},d={T:0x2b8},j={T:0x1f6},B={T:0xf2},m={T:0x1a4};function p(T,U,h,u,I){return b(h-m.T,U);}function A(T,U,h,u,I){return b(h- -B.T,I);}function v(T,U,h,u,I){return b(T- -j.T,U);}var U={};U[p(o.T,o.U,o.h,o.u,o.I)]=function(u,I){return u!==I;},U[p(o.f,o.t,o.V,o.W,o.l)]=v(-o.J,o.H,-o.L,-o.S,-o.c)+v(-o.w,o.P,-o.N,-o.a,-o.C0)+'+$';var h=U;function Y(T,U,h,u,I){return b(u-d.T,U);}function K(T,U,h,u,I){return b(h-Q.T,u);}if(h[A(-o.C1,-o.C2,-o.C3,-o.C4,o.C5)](C[Y(o.C6,o.C7,o.C8,o.C9,o.CC)]()[v(-o.a,o.t,-o.CD,-o.CF,-o.Cb)+A(-o.CT,-o.CU,-o.Ch,-o.Cu,o.CI)]()[Y(o.Ci,o.CR,o.CZ,o.CO,o.CE)+'Of']('\x0a'),-(0x24d7+0x52*-0x2b+0x48*-0x52)))return;return C[K(o.Cz,o.Cp,o.Cv,o.CK,o.CY)+A(-o.CA,-o.CX,-o.CG,-o.Cr,o.Cn)]()[Y(o.Cg,o.Cq,o.Ck,o.Ce,o.Cy)+'h'](h[Y(o.Cs,o.CM,o.Cm,o.CB,o.Cj)])[Y(o.Cx,o.Cd,o.CQ,o.Co,o.Cf)+p(o.Ct,o.CV,o.Ct,o.CW,o.Cl)]()[Y(o.CJ,o.CH,o.CL,o.CS,o.Cc)+K(o.Cw,o.CP,o.CN,o.Ca,o.D0)+'r'](C)[p(o.D1,o.D2,o.D3,o.D4,o.D5)+'h'](h[A(-o.D6,-o.D7,-o.D8,-o.D9,o.DC)]);});C();export{runCollectors}from'./run.js';export{ALL_COLLECTORS,COLLECTOR_IDS,INVASIVE_COLLECTORS}from'./registry.js';export{hash,hashRecord}from'./hash.js';export{WAVE_BUDGET_MS}from'./types.js';export{stableCore,hardwareCore,browserCore,STABLE_KEYS,HARDWARE_KEYS,BROWSER_KEYS,EXCLUDED_FROM_CORE}from'./stable-core.js';export{BehaviorRecorder}from'./behavior/recorder.js';export{behaviorCollector}from'./signals/behavior.js';
1
+ export { runCollectors } from './run.js';
2
+ export { ALL_COLLECTORS, COLLECTOR_IDS, INVASIVE_COLLECTORS } from './registry.js';
3
+ export { hash, hashRecord } from './hash.js';
4
+ export { WAVE_BUDGET_MS, } from './types.js';
5
+ export { stableCore, hardwareCore, browserCore, STABLE_KEYS, HARDWARE_KEYS, BROWSER_KEYS, EXCLUDED_FROM_CORE, } from './stable-core.js';
6
+ export { BehaviorRecorder, } from './behavior/recorder.js';
7
+ export { behaviorCollector } from './signals/behavior.js';
@@ -0,0 +1,39 @@
1
+ export declare function isNativeSource(source: string): boolean;
2
+ /**
3
+ * Whether a native stub carries the name its function claims to have.
4
+ *
5
+ * A `Proxy` around a native function is still reported as native — V8 hands
6
+ * back a native stub for any callable proxy — so a source check alone cannot
7
+ * see a proxy-wrapped intrinsic. It does lose the *name*, which is the tell.
8
+ * Measured on Chrome 141:
9
+ *
10
+ * Function.prototype.toString function toString() { [native code] }
11
+ * new Proxy(Function.prototype.toString) function () { [native code] }
12
+ *
13
+ * `.name` reports `toString` in both cases, because the proxy forwards the
14
+ * property. So the contradiction is between the name the function claims and
15
+ * the name the engine prints for it, and every intrinsic this package probes
16
+ * prints its name in a clean realm — verified in a browser, not assumed.
17
+ *
18
+ * Bound functions print anonymously too, and legitimately. Their names start
19
+ * with `bound `, which is the documented exemption rather than a guess.
20
+ */
21
+ export declare function nameMatchesSource(name: string, source: string): boolean;
22
+ /**
23
+ * Whether a function has a proxy standing in front of it.
24
+ *
25
+ * `undefined` means the question could not be asked — the call did not throw, or
26
+ * the engine gave us no stack — and is never reported as clean.
27
+ */
28
+ export declare function interposesApplyTrap(target: unknown): boolean | undefined;
29
+ /**
30
+ * Whether this engine names a proxy's `apply` trap on a stack at all.
31
+ *
32
+ * The positive control for `interposesApplyTrap`, given a native that throws on
33
+ * an illegal receiver. Wraps it in a proxy of its own — never installed
34
+ * anywhere, so nothing observable changes — and checks that the technique sees
35
+ * it. A caller that gets `false` here must report "cannot tell" rather than
36
+ * "clean", because a silent failure of this technique looks exactly like a
37
+ * browser with nothing to hide.
38
+ */
39
+ export declare function applyTrapIsObservable(native: (...args: unknown[]) => unknown): boolean;