@prosopo/provider 4.15.17 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$cjs.log +102 -101
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +103 -102
- package/CHANGELOG.md +98 -0
- package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -1
- package/dist/api/admin/apiAdminRoutesProvider.js +3 -5
- package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -1
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts +11 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.d.ts.map +1 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js +56 -0
- package/dist/api/admin/apiReplaceDetectorPoolEndpoint.js.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.d.ts +6 -0
- package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.js +51 -0
- package/dist/api/captcha/assignDetectorBundle.js.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.test.d.ts +2 -0
- package/dist/api/captcha/assignDetectorBundle.test.d.ts.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.test.js +71 -0
- package/dist/api/captcha/assignDetectorBundle.test.js.map +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +21 -2
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js +3 -3
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +13 -7
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +3 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +52 -18
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts +2 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.d.ts.map +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js +86 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js.map +1 -0
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/api/captcha.d.ts.map +1 -1
- package/dist/api/captcha.js +6 -0
- package/dist/api/captcha.js.map +1 -1
- package/dist/api/startProviderApi.d.ts.map +1 -1
- package/dist/api/startProviderApi.js +21 -3
- package/dist/api/startProviderApi.js.map +1 -1
- package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +3 -5
- package/dist/cjs/api/admin/apiReplaceDetectorPoolEndpoint.cjs +56 -0
- package/dist/cjs/api/captcha/assignDetectorBundle.cjs +51 -0
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +21 -2
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.cjs +3 -3
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +12 -6
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +52 -17
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +1 -1
- package/dist/cjs/api/captcha.cjs +6 -0
- package/dist/cjs/api/startProviderApi.cjs +24 -5
- package/dist/cjs/tasks/captchaManager.cjs +76 -59
- package/dist/cjs/tasks/client/clientTasks.cjs +1 -29
- package/dist/cjs/tasks/detection/bundlePool.cjs +220 -0
- package/dist/cjs/tasks/detection/decodeBehavior.cjs +644 -362
- package/dist/cjs/tasks/detection/decodeBehavior.js +1 -1
- package/dist/cjs/tasks/detection/decodePayload.cjs +956 -617
- package/dist/cjs/tasks/detection/decodePayload.js +1 -1
- package/dist/cjs/tasks/detection/decodeSimd.cjs +723 -411
- package/dist/cjs/tasks/detection/decodeSimd.js +1 -1
- package/dist/cjs/tasks/detection/getBotScore.cjs +2 -2
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +35 -12
- package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +1 -2
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +6 -6
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +2 -2
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +2 -2
- package/dist/tasks/captchaManager.d.ts +12 -4
- package/dist/tasks/captchaManager.d.ts.map +1 -1
- package/dist/tasks/captchaManager.js +76 -59
- package/dist/tasks/captchaManager.js.map +1 -1
- package/dist/tasks/client/clientTasks.d.ts +0 -2
- package/dist/tasks/client/clientTasks.d.ts.map +1 -1
- package/dist/tasks/client/clientTasks.js +1 -29
- package/dist/tasks/client/clientTasks.js.map +1 -1
- package/dist/tasks/detection/bundlePool.d.ts +32 -0
- package/dist/tasks/detection/bundlePool.d.ts.map +1 -0
- package/dist/tasks/detection/bundlePool.js +215 -0
- package/dist/tasks/detection/bundlePool.js.map +1 -0
- package/dist/tasks/detection/bundlePool.test.d.ts +2 -0
- package/dist/tasks/detection/bundlePool.test.d.ts.map +1 -0
- package/dist/tasks/detection/bundlePool.test.js +178 -0
- package/dist/tasks/detection/bundlePool.test.js.map +1 -0
- package/dist/tasks/detection/decodeBehavior.d.ts +2 -2
- package/dist/tasks/detection/decodeBehavior.d.ts.map +1 -1
- package/dist/tasks/detection/decodeBehavior.js +1 -1
- package/dist/tasks/detection/decodeBehavior.js.map +1 -1
- package/dist/tasks/detection/decodePayload.d.ts +2 -2
- package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
- package/dist/tasks/detection/decodePayload.js +1 -1
- package/dist/tasks/detection/decodePayload.js.map +1 -1
- package/dist/tasks/detection/decodeSimd.d.ts +2 -2
- package/dist/tasks/detection/decodeSimd.d.ts.map +1 -1
- package/dist/tasks/detection/decodeSimd.js +1 -1
- package/dist/tasks/detection/decodeSimd.js.map +1 -1
- package/dist/tasks/detection/getBotScore.d.ts +1 -1
- package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
- package/dist/tasks/detection/getBotScore.js +3 -3
- package/dist/tasks/detection/getBotScore.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +10 -2
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +35 -12
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasksUtils.js +1 -2
- package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +6 -6
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +2 -2
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js +2 -2
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
- package/dist/tests/integration/maintenanceModeAdmin.integration.test.js +0 -28
- package/dist/tests/integration/maintenanceModeAdmin.integration.test.js.map +1 -1
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
- package/dist/tests/unit/api/adminRoutes.unit.test.js +0 -46
- package/dist/tests/unit/api/adminRoutes.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js +51 -0
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js +12 -12
- package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.unit.test.js.map +1 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +15 -1
- package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +14 -30
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +3 -3
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +25 -7
- package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +6 -14
- package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +0 -1
- package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js +0 -2
- package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js.map +1 -1
- package/fixtures/detector-pool/bundle-0.js +15 -0
- package/fixtures/detector-pool/bundle-0.json +1 -0
- package/package.json +14 -14
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -23
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +0 -32
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +0 -39
- package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
- package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +0 -32
- package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +0 -39
- package/dist/tasks/detection/getBehavioralData.d.ts +0 -4
- package/dist/tasks/detection/getBehavioralData.d.ts.map +0 -1
- package/dist/tasks/detection/getBehavioralData.js +0 -51
- package/dist/tasks/detection/getBehavioralData.js.map +0 -1
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js +0 -57
- package/dist/tests/unit/api/admin/apiRemoveDetectorKeyEndpoint.unit.test.js.map +0 -1
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts +0 -2
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js +0 -60
- package/dist/tests/unit/api/admin/apiUpdateDetectorKeyEndpoint.unit.test.js.map +0 -1
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts +0 -2
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts.map +0 -1
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js +0 -109
- package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js.map +0 -1
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
// @ts-nocheck
|
|
15
|
-
import{RSA_PKCS1_OAEP_PADDING as GoYvnb}from'node:constants';import{privateDecrypt as NzHSAb,createDecipheriv as HMefcR}from'node:crypto';function k27YDO(){}var DODsAGh=Object['defineProperty'],XidFXcw,x_EBHjD,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY,QjjL8rS,_HTxugc,iY0v8A,bCT8nLu,LnPKh9,IFRWZiP,cSyzuM,Xv8_Pg,GjYPKUW,ToLgffC,lizO6U,WGJh5zC,QkfQUlh,odHpUj,TCMuBC_;function XdV7Jll(GoYvnb){return TCMuBC_[GoYvnb<-0x26?GoYvnb+0x3a:GoYvnb-0x2b]}TCMuBC_=mJvs6q0();var DGMLx1=[],f4b_w8=['+Z^KF4a;','IILAp?F','+8&v&','{<)O','HuEvB*/6','IIgj4yYNx','uIzjX_6:=1','sBLV!!06','zu(v|','pD}p~C@jpM','@<Evhe5l`L[;YI','T<(vwd8cAEe,6','&iTpAHKa','hbKA]._a','~h:vK#F','bbTJfCJH31','_rF7}','@,{T{','F+Ex',';&;uLCrY*6nm!3p{K<9U"O8','=q6Tg(NG','**wLFpL=iY','jDml$u8','WW4Ml"8','D~9T3=ik[sA','E*Fx','p|QjF)l_TB}Ma{Vh+m@e_>Uy|Jk:20In_J~T#tHQ6}T>%%','W%:cQI?q)xuvAskMwIKx','Eg^k?3|@5g[8cMaGOgYeCbO@(DJ2hl6$','=xbmlsuQqvr+J8Xe`7R7^Js~[JhB&$[3gA_wc','M}EYcZ5*H0oYdSZ|Yn37F)YZc+Af#t7Q%+tk*34}A{)/Q%','"DAmrW)#:von4RZ$K]%','NAis]T(p#xonz2CE!INx','9gL`Qj3~ivUf4]XE||~>=XzK8,2RF#BOcA|`{De?&V','2h+mF@]B(CX@}{y1HD|?TMB~~/|e&%$r?1DTKYKmzU3','Qh|pz>3}A}=kPnZ.','g}ys[l1EgByg5','b]Kxa@0=CB8/KB>Xghl`]','nh`7>TA_#gW5mPteUDSb<IMqqKL=O<?6_~)cI827a{','GAwY:8xtw','4%K@qRsbM0BwLw=$v%ewHi(Ej;g/{y','PA^)#J889}:sl%','D&F?u=9','7goY*gkn>;2YdS','omdma#JqyJ7c}I#X+6qOUsH3tEP{XB@$^mLmmm`@yx','`M9g?<J*<,O$La_.A&u?qm2~a}fY@w','n_#71mubCh*l6sqXNu,gfv<*]/EshIBrSIce(*_5','YD.g<(6E,Jh|t8d','TJHf0#]B+}?$h{bN=}:xcq1Z=0U','R1Ybjt65nB,Vw{W82u$d)l??@0l;7MUrk5','U(Cxeq2b[,Fb|Bg./AwSlBh@>ljb_NxXHm3c/','7wJmDYJ*yg:sj]a|8u?e8qT?<J"2J#}','"OC)SsD}&KEBgMe_w_r`<NQcCT;09%7','Ir0dz>#kO/Mf[8XNsh!Y"is}.]+*Rs%19w~wF)8}PE',',|R7|3[B[x@*lNGr&A!bjifp`V','`bb`ozT5mgq>B2%M2ezRV8i4QB=e8$D*O{xm6','@A*?T|AKRx#{j#cQ|_)cxJwVmgOB[I8NlI4wY>(5','2%Lg1MZ*/geeDM".s]@dbNzmq{++DRe?O~2@@sl5','fugR<t6q<gWl4R#3/ugf%&s7;6}hBW}GoOudmPk5','wxef3fs}"B@','6}Q7C8=q(+u/1Nocx_sRXpb|Q0','<feO_N8c1lD2m%','~Ir?zTj}(l1+(sF83AUmB~5KZ04YSS5V','xR@k#89','"|m`NW(07Bkpnw3n!3A7','|{JmH<S"ZE',';R{@db:~7d;:5','^vpCx#<k+}.>/8!N[m9)&2.Zw,}BZaH:uuy',')}[=BB{kiKJYYs(XHCNOL><.r;^%Rw=|BGKfG','!MKw"(Lk~/{s?Mm|>UoY6Dl5','`31`mM3yV{{paq&G}I3$?','>lqx/Is@_BY=tvl_z6Ods#~BtEMdQ<pE+g2wbD9','01UgUBIt;l7u9:@O:KXx4t3y+xU*5','{vZIP<4@RVoa]N`r+9','6KSbysJKI0SMgRXNQGWk"I~VUB5po]`6qhBC','NDNx_IsbZ0*dMw','W|wi"i+BcVYVXP^O&GmC','4]U7WXt?igEe/s=$s&QcD|:@xB5$OlA6L&5','__X>u&]@M,QmB0lOF(3c.qV2?lw_v{]',']`gw!mj@yKn$/:+e$Mxj3g;=qCct(RKr','dIDO)Wo07T)DT]m|ku`$@m7B~/K~Xy3MX?:7','z]qRgXg~OlPYC:4|aD?k585EF]g>H8.e,_m?I#0=KKe@Mw','C~:$NUIm|{,nT2P|','MJK7f&wQ(+WlKPC','9*Yb12V8RVnTn&wNKghbEiz0%x','_uPCVJEkwE','/u3xk4#z6K6$Z&}hm7)7kbuQK=sRTBv*7R^O5vJ.H0{|.w','6Ieg]T_?yJIwv{H:0~tey8c8Rx|A9%?c`uf7','6}aR!M9','AfQR0i*kq{pUh{rNJ3ckBs6=]+F=M&NnAel`N3/5','Y_gkNf9','2gc@UB(ZxT.lL&Mn!}a7bv/k.Dr%^W.X~JoGNftpmxZvMw','n`.$O3}8lDd0|0u68Jy','<&ZbcI_=:+:&{y0','<ANO+8S=q/V$ZwYEKMQx:D7,7','FCV`d&q*s6sYs8}X/g]@1K[akT!w:IwV49','Au>i[<Lk6v]p/:o80K(T|Z9','Ix1?}N#*A}&tYwa|zhrm/','MmYG%DbB:vb=EyfVNAd?w49','vez@3U9','I7>i@YJKpAX','Sb*s3ai3(U2YAQh|BItbGfm?D{pR%2#XT3kxK=9','X&*?Asv~5VhMQ%wVWIck','mIobDz<?0]S_fQw6MJzfLN(Jx6If3$_3oOHxcaGylh','2&EbgBC8HAzCZw~XeJ1Y@PUaJ6YUVWo6Oh~etz^8aJQ','lDJgmU^Q+vY?5:AQ7wy','<XewXR2VChj=HlY$[A.cj&J5','eb|pJ=]QjCy7%P9Q@|2@cI]@mx$h`$|_iAY>Wsu~u0Q','Q`|smmY06JGBfQ%e$~FmOl[Qkh','OgObPJL6eV3','zhObg[Xp|gq*kG96~u/T8Z)?m,ysnRAM2D4wb#9','zAKR:Da~7','OIl?Xg<5y{!tml}hL&8d!K"JqC{|:%Merh[Gwb2u:+l','%gjxp<z.YVFY1NJ*z;1Yeg@cblPCINB.zmce5&+7~Caw12d','NbckE#2Bl;0ACXGr5v"wn@9','9K#mAz9','=&x7}4yQL68zFN#XM}jk&K:Cw0','9K(>aT)J:/dhJ&63t6y','KMSbPDI5uJt+pG5Q_A)pb#9','Iuef#J~yBl[?GS4*j2B=#<+B40~+_GY$f6%','$~3RmXn?e+J]Mwg3Jg=df#E#5{P5wXyVAM;s&[Oy','03>Gg=rcSB2YeG$OM?gO?','cupY+sdC>C','4A9$M3Vaw','E`C)q2.E6viUv<KMb;c@*pC8Rv||a$IeZ2"Oh3C2P}oa5','@I"@fJ2@%}=+>$`c:~_fs#Ipb]CpQ:E|TG2IimVQ#g)','TIJCw43V/g&QjRA6U9','8JGsK[fK}]Sg[IW6rMZkCbE*+JRt>%','me5g{<$q40J`3qx','z6KOMW9','5+NkmY0t<E!lS:l.kJ8e?@LzW=XT}{eMX_%','1MIOj>`}364#5:&$%JNO949','yR=d6<YK`}cebtGrNAEsO@>QSBZKB#:|2uHx','>UCgu~EtChL8fspG{KdsViE0#{','j(|pki;5','<|tT]T3V,VNt=wY$VmSk@PfkeV~+~0.n0I_w','du[?uzeExDcz<y9_OA(>?','_hHxBvJ0o,_%.saG','Uxex58wrkT+/5','$hOdzN@BnBz8z]1NBu.mn@hBw','81[S^@H3.B^APn:h"6%S_tAt*xuK5','Eg2@pb}~V{[v5',':~:mSbmkfD!6NnO*k}npusW??]','Pm[kfTa7%}?$o2V|dM2w+~G86vVtUl6h','smu=1MuBdA^mRv:Gxb^>83a7}DD@[{<.O_XR6','9?j@Y>OV`}lk!$]hx?T@lBJ?pAT;Qq1Xme{@$','5`*?8lYK?l#2GS','8IWTZ<SKw,Y512AQumcw=K7reK6p#s0X6~}TKvZ5','^I;sb#NyWC3e5:?6c?sR`fekN,wzm]{','?3u=P<r}v]2fr]Hr>9',')%K@C|@y',')&vYdiJ?ax+2aa:GmMyp_qXEQ0%0tw',')uYi`IImoviaPtJ_1bp?A[.KGDg]M&gOqIRm]iF|;AWVFt7','Kgv=RY8}e+JU:$Y$.}=bk4Z_(;oC2nU.P2imn<uQC6@k"y','6m/@=U0n8,gReG"?MxHR[I|@~K+YNW,_#U_)Gja3%,J]C%','/mtbOZCc,{mf4t$?','FXBm2i7~&v)$oNNV_5','Kl]T3gf.&VN','ZmWeiUfm&}+=8%%cG|J7}<}25JZY+2l?o6K>@B3QK{P;3%','||&f1U:~6{Pon:rGNx%','K&?OcW~}qCY5IB^.6JMOYTd@fD36EPh$aAf`DXhBEE(dWw','sA.pV<y,4,FShl58Jm&f3Kn.GlKw&<fe','`{UR3*X00/h7rnHrHr0TWX92BD`>Aw','De>i7&wBA}1aO$`6r1BC<lm5b6bnd#Sn)v3p:','=|UfZibB0DpU,<VODud$fD(*&}48p2q$Amy','dR=wnj.E+E5uT%8VTI.$:T4bA{X','Ym/bMqO8YU4oTPSM!m%','9{+m{<6tJ6P27S]$[O~>p<~@$6','aU=eqPLzn6S_?w=*"2Tx','K%KOP<Qy','CInmM3&3+v(fyiXM','SIOe8u|4P}FY|]fEM62@W&P|ZE~l:%seV}OYvv.Z0l?snw','bMu?oT!,ZE','FfQfIibQ80=','"f>GsTD7]V0c0[/3"A/>:Nr@lD/P$i,c8}oS','brp?{>hCWU0TTNXn','Mu<?%|r~s0w:J:&|"7d`}>U@5K&>q<L*)xZiTPQ,}]','[27evXl.1]pb:{JO','&|(eaJzk;D;sDR7Q','63Vp"ILJWl6c.:K865','R3zwHN=kuJ+nRs`_}b/ky8zJ|K97H<NVm3]eo=9'];odHpUj=(GoYvnb,NzHSAb,HMefcR,k27YDO,DODsAGh)=>{if(typeof k27YDO==='undefined'){k27YDO=x_vvy9}if(typeof DODsAGh===XdV7Jll(-0x3a)){DODsAGh=DGMLx1}if(HMefcR&&k27YDO!==x_vvy9){odHpUj=x_vvy9;return odHpUj(GoYvnb,-0x1,HMefcR,k27YDO,DODsAGh)}if(GoYvnb!==NzHSAb){return DODsAGh[GoYvnb]||(DODsAGh[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}if(HMefcR==k27YDO){return NzHSAb?GoYvnb[DODsAGh[NzHSAb]]:DGMLx1[GoYvnb]||(HMefcR=DODsAGh[GoYvnb]||k27YDO,DGMLx1[GoYvnb]=HMefcR(f4b_w8[GoYvnb]))}};function N97Q_Od(){return globalThis}function Qdfc6i(){return global}function PCiA5Wd(){return window}function IT5DIC(){return new Function('return this')()}function u5QXDdI(GoYvnb=[N97Q_Od,Qdfc6i,PCiA5Wd,IT5DIC],NzHSAb,HMefcR=[],DODsAGh=0x0,XidFXcw){NzHSAb=NzHSAb;try{k27YDO(NzHSAb=Object,HMefcR.push(''.__proto__.constructor.name))}catch(e){}vb9qjW:for(DODsAGh=DODsAGh;DODsAGh<GoYvnb.length;DODsAGh++)try{var x_EBHjD=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x16?GoYvnb<0x2b?GoYvnb>0x16?GoYvnb<0x16?GoYvnb+0x46:GoYvnb-0x17:GoYvnb+0x12:GoYvnb-0x19:GoYvnb-0x4f]},0x1);NzHSAb=GoYvnb[DODsAGh]();for(XidFXcw=x_EBHjD(0x18);XidFXcw<HMefcR.length;XidFXcw++)if(typeof NzHSAb[HMefcR[XidFXcw]]===XdV7Jll(-0x3a)){continue vb9qjW}return NzHSAb}catch(e){}return NzHSAb||this}k27YDO(QkfQUlh=u5QXDdI()||{},WGJh5zC=QkfQUlh.TextDecoder,lizO6U=QkfQUlh.Uint8Array,ToLgffC=QkfQUlh.Buffer,GjYPKUW=QkfQUlh.String||String,Xv8_Pg=QkfQUlh.Array||Array,cSyzuM=R6licAj(()=>{var GoYvnb=new Xv8_Pg(0x80),NzHSAb,HMefcR;k27YDO(NzHSAb=GjYPKUW[XdV7Jll(-0x37)]||GjYPKUW.fromCharCode,HMefcR=[]);return R6licAj(DODsAGh=>{var XidFXcw,x_EBHjD;function osVNKcv(DODsAGh){return TCMuBC_[DODsAGh>0x2e?DODsAGh-0xe:DODsAGh>0x2e?DODsAGh-0x48:DODsAGh>0x19?DODsAGh-0x1a:DODsAGh-0x36]}var FWICCz,UP1vg8l;k27YDO(XidFXcw=DODsAGh.length,HMefcR.length=0x0);for(x_EBHjD=osVNKcv(0x1b);x_EBHjD<XidFXcw;){var JB5Yh6G=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2c?DODsAGh<-0x41?DODsAGh+0x58:DODsAGh+0x40:DODsAGh+0x20]},0x1);UP1vg8l=DODsAGh[x_EBHjD++];if(UP1vg8l<=0x7f){FWICCz=UP1vg8l}else{if(UP1vg8l<=0xdf){var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0xd?DODsAGh+0x52:DODsAGh<0xd?DODsAGh-0xd:DODsAGh-0xe]},0x1);FWICCz=(UP1vg8l&0x1f)<<XdV7Jll(-0x35)|DODsAGh[x_EBHjD++]&zLgcNNn(0x10)}else{if(UP1vg8l<=0xef){var gVrCRm0=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2a?DODsAGh-0x5b:DODsAGh+0x29]},0x1);FWICCz=(UP1vg8l&0xf)<<gVrCRm0(-0x25)|(DODsAGh[x_EBHjD++]&0x3f)<<0x6|DODsAGh[x_EBHjD++]&XdV7Jll(-0x38)}else{if(GjYPKUW[JB5Yh6G(-0x3d)]){var eQHvzuY=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<0x5e?DODsAGh>0x49?DODsAGh<0x5e?DODsAGh-0x4a:DODsAGh-0x45:DODsAGh+0x3b:DODsAGh-0x2d]},0x1);FWICCz=(UP1vg8l&XdV7Jll(-0x2e))<<0x12|(DODsAGh[x_EBHjD++]&eQHvzuY(0x4c))<<XdV7Jll(-0x36)|(DODsAGh[x_EBHjD++]&JB5Yh6G(-0x3e))<<JB5Yh6G(-0x3b)|DODsAGh[x_EBHjD++]&osVNKcv(0x1c)}else{k27YDO(FWICCz=0x3f,x_EBHjD+=0x3)}}}}HMefcR.push(GoYvnb[FWICCz]||(GoYvnb[FWICCz]=NzHSAb(FWICCz)))}return HMefcR.join('')},0x1)})());function l5uqz9I(GoYvnb){var NzHSAb=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x1?GoYvnb+0x23:GoYvnb>-0x1?GoYvnb<-0x1?GoYvnb-0xc:GoYvnb-0x0:GoYvnb-0x4]},0x1);return typeof WGJh5zC!==NzHSAb(0x0)&&WGJh5zC?new WGJh5zC().decode(new lizO6U(GoYvnb)):typeof ToLgffC!==NzHSAb(0x0)&&ToLgffC?ToLgffC.from(GoYvnb).toString('utf-8'):cSyzuM(GoYvnb)}k27YDO(IFRWZiP=odHpUj(0xb1),LnPKh9=odHpUj(0x8c),bCT8nLu=odHpUj[XdV7Jll(-0x34)](void 0x0,[0x84]),iY0v8A=odHpUj.call(void 0x0,0x69),_HTxugc=odHpUj(0x4f),QjjL8rS=odHpUj(0x4e),eQHvzuY=odHpUj(0x4a),gVrCRm0=odHpUj[XdV7Jll(-0x30)](XdV7Jll(-0x33),0x47),zLgcNNn=odHpUj(0x32),JB5Yh6G=odHpUj(0x29),UP1vg8l=odHpUj(0x28),FWICCz=odHpUj(0x27),osVNKcv=[odHpUj(0x1d),odHpUj(0x21),odHpUj(0x3e),odHpUj(0x56),odHpUj(0x5d)],x_EBHjD={JRE5RU:odHpUj(0x1c),ET_D6Mx:odHpUj[XdV7Jll(-0x34)](XdV7Jll(-0x33),[0x23]),mjJHG7T:odHpUj(0x2d),u28dzh:odHpUj(0x35),KyIf9O:odHpUj[XdV7Jll(-0x34)](void 0x0,[0x46]),IzmZz8F:odHpUj(0x4d),sNAL0i:odHpUj(XdV7Jll(-0x2c)),MyaPpaM:odHpUj(0x62),TIi_1m:odHpUj.apply(XdV7Jll(-0x33),[0x6a]),KKo2sTn:odHpUj(0x6c),JoiXrg0:odHpUj(0x72),lDhWjH:odHpUj(0x77)});function nnZkjBy(...GoYvnb){var NzHSAb=(GoYvnb,HMefcR,k27YDO,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw===XdV7Jll(-0x3a)){XidFXcw=DODsAGh}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(GoYvnb!==HMefcR){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(k27YDO&&XidFXcw!==DODsAGh){NzHSAb=DODsAGh;return NzHSAb(GoYvnb,-0x1,k27YDO,XidFXcw,x_EBHjD)}if(k27YDO==GoYvnb){return HMefcR[DGMLx1[k27YDO]]=NzHSAb(GoYvnb,HMefcR)}if(k27YDO==XidFXcw){return HMefcR?GoYvnb[x_EBHjD[HMefcR]]:DGMLx1[GoYvnb]||(k27YDO=x_EBHjD[GoYvnb]||XidFXcw,DGMLx1[GoYvnb]=k27YDO(f4b_w8[GoYvnb]))}},HMefcR;HMefcR=[NzHSAb.call(XdV7Jll(-0x33),0x0)];return GoYvnb[GoYvnb[HMefcR[0x0]]-0x1];function DODsAGh(GoYvnb,NzHSAb='(|;y$Cs?WBukzM7Z~=mQ^Sq+"Va>_}.hP:Y{`L5Do8TRdUej0NX)nEG@]<,p32b[&I%rlgA9Hwcx*KFi64!vfJt#O1/',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x40?GoYvnb+0x4c:GoYvnb>0x55?GoYvnb-0x4d:GoYvnb-0x41]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0x42),FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=zLgcNNn(0x42);UP1vg8l<DODsAGh;UP1vg8l++){var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>0x11?GoYvnb-0x12:GoYvnb+0x4a]},0x1);JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-gVrCRm0(0x1a)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var eQHvzuY=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<-0x11?GoYvnb-0x19:GoYvnb>0x4?GoYvnb+0x34:GoYvnb<-0x11?GoYvnb-0x18:GoYvnb<0x4?GoYvnb+0x10:GoYvnb+0x37]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&0x1fff)>eQHvzuY(0x1)?zLgcNNn(0x53):0xe);do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x4a)),x_EBHjD>>=gVrCRm0(0x21),osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-gVrCRm0(0x1a)}}if(FWICCz>-zLgcNNn(0x49)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&zLgcNNn(0x4a))}return l5uqz9I(XidFXcw)}}function ukJTFl(GoYvnb,NzHSAb){switch(XidFXcw){case-0x1b:return-GoYvnb}}function xeS8oGq(GoYvnb){return nnZkjBy(GoYvnb=XidFXcw+(XidFXcw=GoYvnb,0x0),GoYvnb)}XidFXcw=XidFXcw;function ZusH6B(DODsAGh,x_EBHjD){var osVNKcv,FWICCz,UP1vg8l,JB5Yh6G,zLgcNNn,gVrCRm0,eQHvzuY;function QjjL8rS(DODsAGh){return TCMuBC_[DODsAGh<-0x9?DODsAGh>-0x9?DODsAGh-0x33:DODsAGh>-0x1e?DODsAGh+0x1d:DODsAGh-0x31:DODsAGh+0x38]}k27YDO(osVNKcv=(DODsAGh,x_EBHjD,FWICCz,UP1vg8l,JB5Yh6G)=>{var zLgcNNn=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh>0x13?DODsAGh+0x12:DODsAGh+0x1]},0x1);if(typeof UP1vg8l===XdV7Jll(-0x3a)){UP1vg8l=lizO6U}if(typeof JB5Yh6G===zLgcNNn(-0x1)){JB5Yh6G=DGMLx1}if(DODsAGh!==x_EBHjD){return JB5Yh6G[DODsAGh]||(JB5Yh6G[DODsAGh]=UP1vg8l(f4b_w8[DODsAGh]))}if(FWICCz==DODsAGh){return x_EBHjD[DGMLx1[FWICCz]]=osVNKcv(DODsAGh,x_EBHjD)}if(FWICCz&&UP1vg8l!==lizO6U){osVNKcv=lizO6U;return osVNKcv(DODsAGh,-0x1,FWICCz,UP1vg8l,JB5Yh6G)}if(UP1vg8l===osVNKcv){lizO6U=x_EBHjD;return lizO6U(FWICCz)}},FWICCz=osVNKcv(0x10),UP1vg8l=osVNKcv(0xb),JB5Yh6G=osVNKcv(0x9),zLgcNNn=osVNKcv[QjjL8rS(-0x17)](void 0x0,[0x4]),gVrCRm0={[XdV7Jll(-0x2f)]:osVNKcv(0x3),iDdjE9:osVNKcv(0x4),S3u4Hmz:osVNKcv[QjjL8rS(-0x13)](QjjL8rS(-0x16),0x8),FU0xf5U:osVNKcv(0x4)},eQHvzuY=[osVNKcv(XdV7Jll(-0x2d)),osVNKcv[QjjL8rS(-0x17)](XdV7Jll(-0x33),[0xa])]);const _HTxugc=JSON[osVNKcv[QjjL8rS(-0x13)](XdV7Jll(-0x33),0x1)](DODsAGh),iY0v8A=Buffer[eQHvzuY[XdV7Jll(-0x39)]](_HTxugc[gVrCRm0[XdV7Jll(-0x2f)]],gVrCRm0.iDdjE9),bCT8nLu=NzHSAb({[osVNKcv(0x3)]:x_EBHjD,[osVNKcv.apply(void 0x0,[0x5])]:GoYvnb,[osVNKcv(0x6)]:osVNKcv(QjjL8rS(-0x11))},iY0v8A),LnPKh9=Buffer[osVNKcv(0x2)](_HTxugc[gVrCRm0.S3u4Hmz],gVrCRm0.FU0xf5U),IFRWZiP=Buffer[osVNKcv(QjjL8rS(-0x10))](_HTxugc.iv,zLgcNNn),cSyzuM=LnPKh9[osVNKcv[XdV7Jll(-0x30)](void 0x0,0x9)](0x0,ukJTFl(0x10,XidFXcw=-0x1b)),Xv8_Pg=LnPKh9[JB5Yh6G](ukJTFl(0x10,xeS8oGq(-0x1b))),GjYPKUW=HMefcR(eQHvzuY[XdV7Jll(-0x32)],bCT8nLu,IFRWZiP);let ToLgffC=nnZkjBy(GjYPKUW[UP1vg8l](Xv8_Pg),GjYPKUW[osVNKcv(0xc)](cSyzuM));return nnZkjBy(ToLgffC=Buffer[osVNKcv(0xd)]([ToLgffC,GjYPKUW[osVNKcv(0xe)]()]),ToLgffC[osVNKcv(0xf)](FWICCz));function lizO6U(DODsAGh,x_EBHjD='F6auI^xJj7O4@/}<301:KM{B|$h&"ZTpv=leQ!*S~Nwb]ficP;_8LVo,kr2ED)n>Ut9(.+s?[Yyg#ARWCHdz5qX`Gm%',osVNKcv,FWICCz,UP1vg8l=[],JB5Yh6G=0x0,zLgcNNn,gVrCRm0,eQHvzuY=0x0,_HTxugc){var iY0v8A=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x28?DODsAGh+0x5c:DODsAGh<-0x28?DODsAGh-0x2:DODsAGh<-0x13?DODsAGh>-0x13?DODsAGh-0x1b:DODsAGh+0x27:DODsAGh+0x24]},0x1);k27YDO(osVNKcv=''+(DODsAGh||''),FWICCz=osVNKcv.length,zLgcNNn=XdV7Jll(-0x39),gVrCRm0=-iY0v8A(-0x1f));for(eQHvzuY=eQHvzuY;eQHvzuY<FWICCz;eQHvzuY++){_HTxugc=x_EBHjD.indexOf(osVNKcv[eQHvzuY]);if(_HTxugc===-iY0v8A(-0x1f)){continue}if(gVrCRm0<0x0){gVrCRm0=_HTxugc}else{var bCT8nLu=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x4a?DODsAGh+0xe:DODsAGh+0x49]},0x1);k27YDO(gVrCRm0+=_HTxugc*bCT8nLu(-0x3b),JB5Yh6G|=gVrCRm0<<zLgcNNn,zLgcNNn+=(gVrCRm0&QjjL8rS(-0xd))>0x58?0xd:0xe);do{var LnPKh9=R6licAj(DODsAGh=>{return TCMuBC_[DODsAGh<-0x2d?DODsAGh+0x26:DODsAGh>-0x2d?DODsAGh<-0x2d?DODsAGh+0x3d:DODsAGh+0x2c:DODsAGh-0x1]},0x1);k27YDO(UP1vg8l.push(JB5Yh6G&0xff),JB5Yh6G>>=LnPKh9(-0x1d),zLgcNNn-=0x8)}while(zLgcNNn>bCT8nLu(-0x3d));gVrCRm0=-iY0v8A(-0x1f)}}if(gVrCRm0>-0x1){UP1vg8l.push((JB5Yh6G|gVrCRm0<<zLgcNNn)&XdV7Jll(-0x31))}return l5uqz9I(UP1vg8l)}}const gDgt2d=async(GoYvnb,NzHSAb)=>{var HMefcR=(GoYvnb,NzHSAb,DODsAGh,XidFXcw,x_EBHjD)=>{if(typeof XidFXcw==='undefined'){XidFXcw=UP1vg8l}if(typeof x_EBHjD===XdV7Jll(-0x3a)){x_EBHjD=DGMLx1}if(DODsAGh&&XidFXcw!==UP1vg8l){HMefcR=UP1vg8l;return HMefcR(GoYvnb,-0x1,DODsAGh,XidFXcw,x_EBHjD)}if(GoYvnb!==NzHSAb){return x_EBHjD[GoYvnb]||(x_EBHjD[GoYvnb]=XidFXcw(f4b_w8[GoYvnb]))}if(DODsAGh==GoYvnb){return NzHSAb[DGMLx1[DODsAGh]]=HMefcR(GoYvnb,NzHSAb)}if(XidFXcw===XdV7Jll(-0x33)){HMefcR=x_EBHjD}},DODsAGh,XidFXcw;k27YDO(DODsAGh=[HMefcR[XdV7Jll(-0x30)](void 0x0,0x15),HMefcR(0x17)],XidFXcw=HMefcR(0x14));const x_EBHjD=Buffer[HMefcR(0x11)](NzHSAb||process[HMefcR(0x12)][HMefcR(0x13)]||'',XidFXcw)[DODsAGh[XdV7Jll(-0x39)]](HMefcR(0x16)),osVNKcv=ZusH6B(GoYvnb,x_EBHjD),FWICCz=JSON[DODsAGh[0x1]](osVNKcv);return{...FWICCz,[HMefcR(0x18)]:Date[HMefcR.call(XdV7Jll(-0x33),0x19)]()};function UP1vg8l(GoYvnb,NzHSAb='8GfqWaKLk]x9$N3hiJYs/[mgBH~{XUwlT:y%rE(Z+>&*vF2jCc#,4bDoA016).O_ReSPI@d"|7uV}M5zp=?^;t`!<Qn',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv,FWICCz,UP1vg8l,JB5Yh6G){var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x22?GoYvnb<0x22?GoYvnb>0x22?GoYvnb-0x4a:GoYvnb<0xd?GoYvnb+0xf:GoYvnb-0xe:GoYvnb+0x26:GoYvnb-0x17]},0x1);k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,osVNKcv=zLgcNNn(0xf),FWICCz=-0x1);for(UP1vg8l=XdV7Jll(-0x39);UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-0x1){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var gVrCRm0=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb>-0xa?GoYvnb-0x5b:GoYvnb+0x1e]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&gVrCRm0(-0xe))>XdV7Jll(-0x29)?gVrCRm0(-0xc):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0x17)),x_EBHjD>>=gVrCRm0(-0xf),osVNKcv-=0x8)}while(osVNKcv>XdV7Jll(-0x2e));FWICCz=-0x1}}if(FWICCz>-zLgcNNn(0x16)){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&0xff)}return l5uqz9I(XidFXcw)}};export{gDgt2d,gDgt2d as default};function x_vvy9(GoYvnb,NzHSAb='95y%wS7kCxd;}0]{:6VEh/^_QnG$O?ce`)|*8MNX3.r1!(~q&Rim@=gTUJBlvWDK,A+out2Isfbp>Yjza#P<[Z4"HLF',HMefcR,DODsAGh,XidFXcw=[],x_EBHjD=0x0,osVNKcv=0x0,FWICCz,UP1vg8l=0x0,JB5Yh6G){k27YDO(HMefcR=''+(GoYvnb||''),DODsAGh=HMefcR.length,FWICCz=-XdV7Jll(-0x32));for(UP1vg8l=UP1vg8l;UP1vg8l<DODsAGh;UP1vg8l++){JB5Yh6G=NzHSAb.indexOf(HMefcR[UP1vg8l]);if(JB5Yh6G===-XdV7Jll(-0x32)){continue}if(FWICCz<0x0){FWICCz=JB5Yh6G}else{var zLgcNNn=R6licAj(GoYvnb=>{return TCMuBC_[GoYvnb<0x2?GoYvnb-0x56:GoYvnb<0x2?GoYvnb+0x8:GoYvnb<0x2?GoYvnb+0xe:GoYvnb-0x3]},0x1);k27YDO(FWICCz+=JB5Yh6G*0x5b,x_EBHjD|=FWICCz<<osVNKcv,osVNKcv+=(FWICCz&zLgcNNn(0x13))>zLgcNNn(0x14)?XdV7Jll(-0x28):XdV7Jll(-0x27));do{k27YDO(XidFXcw.push(x_EBHjD&zLgcNNn(0xc)),x_EBHjD>>=0x8,osVNKcv-=0x8)}while(osVNKcv>0x7);FWICCz=-0x1}}if(FWICCz>-0x1){XidFXcw.push((x_EBHjD|FWICCz<<osVNKcv)&XdV7Jll(-0x31))}return l5uqz9I(XidFXcw)}function mJvs6q0(){return['undefined',0x0,0x3f,'fromCodePoint',0xc,0x6,'apply',void 0x0,0x1,0xff,'call','Vhy4yYk',0x7,0x2,0x5b,0x8,0x1fff,0x58,0xd,0xe]}function R6licAj(GoYvnb,NzHSAb=0x0){var HMefcR=function(){return GoYvnb(...arguments)};return DODsAGh(HMefcR,'length',{'value':NzHSAb,'configurable':true})}
|
|
15
|
+
import{RSA_PKCS1_OAEP_PADDING as lYgpQIu}from'node:constants';import{privateDecrypt as _tu9kNq,createDecipheriv as lrUmqp}from'node:crypto';function bh2X_2r(){}var s2vFhZS=Object['defineProperty'],ThARLh,flNmQt,RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF,YKXyjaG,TwvCME9,JskwyQc,QeCB3C,cYbeftG,geovr3v;function UTJyAip(lYgpQIu){return geovr3v[lYgpQIu>-0x3e?lYgpQIu+0x53:lYgpQIu>-0x62?lYgpQIu<-0x62?lYgpQIu+0x6:lYgpQIu<-0x62?lYgpQIu-0x2d:lYgpQIu+0x61:lYgpQIu-0x5c]}geovr3v=zMuhST();var iiioNH=[],uzT0OvZ=['_7opc=V%','l.rRFKDg','bm#d)6]I','$OotA{SA','9eXh}7d?}KjqB7+Ch:EBRKlsT@x5n@193emHVtKU~3OOMG:"i:F5cNI*OZz`G+e:57dtg8dvg_cNaNh','Y@Z#`Rko','$Y=P&A[sy,J/z','G?X5Zy{s3h06l|(.=T','R{X}33ft{zE','f@|L','oFtyCtT','U:lpK17o','Y@Z#`Rko','Y@Z#`Rko','9aq9?NnH9W','Y@Z#`Rko','Akg_','Y@Z#`Rko','l@WL','Y@Z#`Rko','Y@Z#`Rko','G?.5UNjv(}x3Uwy?":~1U/34:Z','9aq9?NnH9W','l@WL','G?.5UNle2Z)D!tb?$_EH@{.R3hr62GaF_z','@@YyK1Zo',UTJyAip(-0x61),'Y@Z#`Rko',UTJyAip(-0x60),'U:lpK17o','Y@Z#`Rko','G?X5Zy{sg<*}L|Z?;H/$I;3U3h2=DXd?4z',UTJyAip(-0x61),'oFtyCtT',UTJyAip(-0x60),'U:lpK17o','ww=#9tT','RIO5Y"4z','S+,#;;xP','n@O5kFdv0=;G/w','l@m5j)EA#OFpz','C6l9#RZo','k:Z#cu<o',')}aEp5Y','::l]JN]R+%','<KT_q','^EC5C','J?iL','djd{]78%:O>f0qNCe!(Bt,T','RIO5Y"4z','::l]JN]R+%','A$f9n{T','ww=#9tT','$k(5qR+HW.D','i:JL','?}&w63)?Hp_Ev4~9AK)H',')EC{qp!v~a;54;DF(u^yibJz','K$+lCA]0,D%^bwDv4i25%,g6Mn!zwCt90ZP{S89Agn','yZA/Gu"2,DfSKG9B%3(LI[;n?Q~','LG0$3{Ebu$`6Bw',')Vq]JDw%NPYZU7os|7YG7G?8e.E%n&xk=?S/_a&z','6?py32j?7PPN!O,8nuc#P&(zmnW^&oXVYa_`S,iFy}IeAo','M,*$m6%s=.O5zd;%hnl=#K"8I','|_!GmP^EIg^*yOF9yT','pKNEpdmUd$senOVjBB~Ce^7=jq4Lz','pub9Bt,e)$gNOXlQGvT~X~Dl5awuV+;i1J5lJGtz','za$pp1oH`D}H6iZ?t9kE;p{[*}:=kR;"UQ:BGG4Ph','Y}P=C"E.w$M#y8dCI@WLn{qog@Cpoh}laun9o;xU<@I)dI','ye5/(X:41.FC)^x*B@.BW=mUG%G,z','Fi{5VNWBRnLYTtaljKo','T68{taWBX$q)aI','V@zCbtp484[1KG""',',769z&*Abg=WU;n','FijxC`v[}@RDf|z8"K&/."+Hn,fZDIQ&fEkx3aMl%3!#bsq','1,2BRyVl=gu/_;]%+K.5479x1gTCF)4Zm9F;%Kt]"27','S}gE}dVH>}/N9tVF8Br$J|@*}$gVoR!F|QM5*y&z','mEx{9Op]I$lZ+OgY}ek5$&T','U?_$48cgj,aDy@L"xD;/XXk{LqO','>}_x*y>,~37V#w4k*?O#n7slw','IW3V=69R4Og=C<Tj468L|E5gp4(;>*uQ,}&V3#lo7PPyDw','7KuhZ<vg6HrKU7#&Lz','9i#kp3`?cQ<%sAGCUto','xZ:;.`0YJMT;kh','0J2H:/fHADG/++J&{Z:;PPPBn,D','pK#w6|,{%$,Mo*c*DY6w','~_C#iGV[yHz~<4`&%aO58DueEn&yQhm8tq"=Q"RzI',']{&=|PT','OiGeQ"cn!}MHDX^iowC5>~==+MjFU7n',';}S/0Xj2#PVsNI','gV3GGDk=_}By}^4','D78Bt,n%2}@vP77CLn}e5AT','6i3_S,A4z%','+:VB@R:^wgRD?X4&1i3y8u+8&4','rqVB*?2lT33=5OWCf})Hevgl]','oF~e>=#ECODw{R7vl:ZLI,tKx}S(Gw','L:`V0JKxZ$Fsn&,QLY^{q8(z^$V4+CwQb9,9oaHlg@','pvy<1;M%:}{m])hi{uByp2KY*q.Iz','la)HRy===K,V;II*6:|]j|~]YZ2=/8{*GT','7k"y<DZ6W.I`DCbUuY2HAi`?~M/G@<sF^JSG$6e=Bq?',')*]=c31n).R%rN%?PezC<2L[LqC],Rq','XOf~}d[?P.&/J4T8o$`/"|&48gZ7f|c&79uL3vejBW','~niLeR?nnO[f~7x"wu~5~t$2A%6/3X,QUE0GV','+E}HVN`%%_1/CqKFpu(Ly{N?EKB,fhwQ_GH_D6noz%','b7KeGurUkO=w8IqZ7tn{Q"J^:}/1o|{*s6~E%','o$JptvLs_Q21:kAk]t~e3S@.T3JMeh','7}B](7T','"k{H)~I^}@W9h;7CSEN_','^EJVX,%gOQ}N?I<VHn={EEY]>Oa(W7Lk>J5/@KH6aqP','?u{E7E7%{q!fE)VFAEz`j/csxOee9"].QklpW',']tV{mpT','xqN_]Rds+W<qGat.5_t/k"H%g@:^2)3l','|7=BdJs8R$>{XA&"+ki]63vn:ZP','EE,pB=o[+a*}0"}Qs:^]9=/z','}/3Gx^<2xQ3GRw0+{,u]u,_*.a4u~+rvRq4]V','cnAVeSz4,@"Lo|w9d1}$KP^E_q%E!tU.*z','iEB{mP@Av_,D7XCQ$qbtVb#]q3WyzR:"B@[VOEp3ga.EPw(','7k3_1atB&gQiO1rB9aHCR~f8]p:Mp1R?DQi9s<Nne','yvwhrA/ULO@i&q~9!ElV*K^Kb4E^ds!VRD)Hd^OF"gQ7qh','3iy#36PByDEMuOq','<75C~/usmK[%zaV8/9TeM;(3FKX1as|B>jg/{K|zkQ','xu4pXJ7=9W=/T','j:SyU/}3n,O5dXoixQlV:3%sP$f9VA4','=t[yf`VgP.DGuC|FTB^t!tT','vnUxeS44/29p;XAk,?dh','_{A/m{voSn=Fbw@kUitV."x4za_iGa{"NDyPVbQ^)n','@a7/uph*x,kLF14C','PJ&_`8MlqMH7O2R&w{b{63]433cMsI.vg9LEf','0Ep/VF,nQ%I+5C3Y~$X{7&`s~Mc','}QuL2PM2zKho<iDVT?xB5OI4]','Jiqp0`eH~_2/R*|FVBslZ^{=$.?]("?%[O8LSJrz','3iwL~OEA%35SaO.Uckhp>$.z','IWF#l$1[HL~^GGOQ','mIn#p18n@abKwCR&(K+eH<YU_Q.sM4{kaVdhT{T','Uipyh8PU;4vO+Ac"Z{ukii|AqMxNT','UYEBiutU=g#B[^Ev','wa6w1p}BXKR1(OPUt(1=^;kH~M~','mJ&e%^7?[.','~?.#/aS4^.Le_+i%TK#k9bNeSH>hz','Q?#t=3Rb@W~OcAr+za0Vw;9UnOpFz','.$AV_pue)nH}/;lsY6A/SXns(ZBs<*OBj{dBHyD[va;*"GL','%t3/zRjlLZ(7<i_','wk"yYy.Ufgl,~;7&B$0GSy7%Xg@vdXOjOZrEh^OAXgC','#,1V`px]/Z&/8O$vRZ.#ltAxt4o~&"(&ekEB0=N[:(jNgC5s','.a:{;SW]BOjNDO=Ct,YeJN*AOD!86Ge%1T','{J7CZ?$N{q3=)R#&_i7Gkyy?14_xCO~97Z6w;a~Rc,gVz','hB6V/8Q4rZ;fU+_','rv<H,#w2G%X%Eqe*8B7eXR~Ah2{#(qACX*h]7dMNeLONz','F$]_E2SB|OweGw#"<J!/aE(4+@tNqoh"|?0/+8k{S@','4G/$dy$%Na)P~w!BpuAGC"IR6HGOt11"~_4Ly7Vs5WZ;:Iq','G7q9JG_RLZ[3Rahs!qV{?3!?+3,Wz','LkoEYAgsS%]ZB;i9.K5eJEvojO+I^8"%f?Qew[T','&Q_`F`F]cWW9B+5BRIx5nXAA+M>#"kn"S/<H8xq[}_','P}@ye{A.|,9]}8H94nL5S"T','+Kt$Gi^EaO`wrw1*L6U;Z'];cYbeftG=(_tu9kNq,lrUmqp,bh2X_2r,s2vFhZS,ThARLh)=>{if(typeof s2vFhZS===UTJyAip(-0x5c)){s2vFhZS=JWL1XBz}if(typeof ThARLh==='undefined'){ThARLh=iiioNH}if(bh2X_2r&&s2vFhZS!==JWL1XBz){cYbeftG=JWL1XBz;return cYbeftG(_tu9kNq,-0x1,bh2X_2r,s2vFhZS,ThARLh)}if(lrUmqp){[ThARLh,lrUmqp]=[s2vFhZS(ThARLh),_tu9kNq||bh2X_2r];return cYbeftG(_tu9kNq,ThARLh,bh2X_2r)}if(s2vFhZS===cYbeftG){JWL1XBz=lrUmqp;return JWL1XBz(bh2X_2r)}if(_tu9kNq!==lrUmqp){return ThARLh[_tu9kNq]||(ThARLh[_tu9kNq]=s2vFhZS(uzT0OvZ[_tu9kNq]))}};function W5iGnH(){return globalThis}function EMAPWQk(){return global}function pkneNZ(){return window}function gDQvjMn(){return new Function('return this')()}function hlGzsH(lYgpQIu=[W5iGnH,EMAPWQk,pkneNZ,gDQvjMn],_tu9kNq,lrUmqp=[],s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x2f?lYgpQIu-0x60:lYgpQIu<-0xb?lYgpQIu>-0xb?lYgpQIu+0x3a:lYgpQIu+0x2e:lYgpQIu-0x3c]},0x1);_tu9kNq=_tu9kNq;try{bh2X_2r(_tu9kNq=Object,lrUmqp.push(''.__proto__.constructor.name))}catch(e){}mO2wZDF:for(s2vFhZS=flNmQt(-0x2b);s2vFhZS<lYgpQIu.length;s2vFhZS++)try{_tu9kNq=lYgpQIu[s2vFhZS]();for(ThARLh=0x0;ThARLh<lrUmqp[UTJyAip(-0x5f)];ThARLh++)if(typeof _tu9kNq[lrUmqp[ThARLh]]==='undefined'){continue mO2wZDF}return _tu9kNq}catch(e){}return _tu9kNq||this}bh2X_2r(QeCB3C=hlGzsH()||{},JskwyQc=QeCB3C.TextDecoder,TwvCME9=QeCB3C.Uint8Array,YKXyjaG=QeCB3C.Buffer,PqkurF=QeCB3C.String||String,x5cguDs=QeCB3C.Array||Array,GBlDyc=lO__ew(()=>{var lYgpQIu=new x5cguDs(0x80),_tu9kNq,lrUmqp;bh2X_2r(_tu9kNq=PqkurF.fromCodePoint||PqkurF.fromCharCode,lrUmqp=[]);return lO__ew(s2vFhZS=>{var ThARLh,flNmQt;function RhNwyD(s2vFhZS){return geovr3v[s2vFhZS<0x23?s2vFhZS>0x23?s2vFhZS+0x23:s2vFhZS<-0x1?s2vFhZS+0x31:s2vFhZS-0x0:s2vFhZS-0x5d]}var iYlcLvf,GBlDyc;bh2X_2r(ThARLh=s2vFhZS[UTJyAip(-0x5f)],lrUmqp[RhNwyD(0x2)]=0x0);for(flNmQt=RhNwyD(0x3);flNmQt<ThARLh;){GBlDyc=s2vFhZS[flNmQt++];if(GBlDyc<=0x7f){iYlcLvf=GBlDyc}else{if(GBlDyc<=0xdf){iYlcLvf=(GBlDyc&0x1f)<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(GBlDyc<=0xef){var x5cguDs=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x27?s2vFhZS<-0x27?s2vFhZS<-0x4b?s2vFhZS-0x41:s2vFhZS+0x4a:s2vFhZS-0x9:s2vFhZS+0xf]},0x1);iYlcLvf=(GBlDyc&0xf)<<0xc|(s2vFhZS[flNmQt++]&x5cguDs(-0x46))<<0x6|s2vFhZS[flNmQt++]&0x3f}else{if(PqkurF.fromCodePoint){var YKXyjaG=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS>0x47?s2vFhZS-0x1d:s2vFhZS<0x47?s2vFhZS-0x24:s2vFhZS-0x4f]},0x1);iYlcLvf=(GBlDyc&UTJyAip(-0x5a))<<0x12|(s2vFhZS[flNmQt++]&0x3f)<<UTJyAip(-0x4e)|(s2vFhZS[flNmQt++]&YKXyjaG(0x28))<<UTJyAip(-0x50)|s2vFhZS[flNmQt++]&RhNwyD(0x4)}else{var TwvCME9=lO__ew(s2vFhZS=>{return geovr3v[s2vFhZS<-0x3e?s2vFhZS-0x5:s2vFhZS>-0x3e?s2vFhZS+0x3d:s2vFhZS-0x4]},0x1);bh2X_2r(iYlcLvf=TwvCME9(-0x39),flNmQt+=TwvCME9(-0x2b))}}}}lrUmqp.push(lYgpQIu[iYlcLvf]||(lYgpQIu[iYlcLvf]=_tu9kNq(iYlcLvf)))}return lrUmqp.join('')},0x1)})());function NLFenA6(lYgpQIu){var _tu9kNq=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x60?lYgpQIu>0x3c?lYgpQIu>0x3c?lYgpQIu>0x60?lYgpQIu+0x54:lYgpQIu-0x3d:lYgpQIu+0x2f:lYgpQIu-0x8:lYgpQIu+0x48]},0x1);return typeof JskwyQc!==_tu9kNq(0x42)&&JskwyQc?new JskwyQc().decode(new TwvCME9(lYgpQIu)):typeof YKXyjaG!=='undefined'&&YKXyjaG?YKXyjaG.from(lYgpQIu).toString('utf-8'):GBlDyc(lYgpQIu)}bh2X_2r(iYlcLvf=[cYbeftG(0x39),cYbeftG(0x3c),cYbeftG(0x3e),cYbeftG(0x52),cYbeftG(0x5d),cYbeftG(0x65),cYbeftG(0x66),cYbeftG.call(UTJyAip(-0x5b),0x79),cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[0x87]),cYbeftG(0x8c),cYbeftG(0x98)],RhNwyD={zw9RoZ:cYbeftG(UTJyAip(-0x52)),K4Lp9hE:cYbeftG(UTJyAip(-0x48)),h85h53k:cYbeftG(0x49),hG3vPvg:cYbeftG(0x57),wUnqj3:cYbeftG(0x5e),XiX1XQ:cYbeftG(0x62)},flNmQt=lO__ew((_tu9kNq,lrUmqp,s2vFhZS)=>{bh2X_2r(_tu9kNq=(lrUmqp,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0xb?lrUmqp+0x59:lrUmqp>-0x2f?lrUmqp>-0xb?lrUmqp-0x39:lrUmqp<-0x2f?lrUmqp-0x43:lrUmqp+0x2e:lrUmqp-0x1b]},0x1);if(typeof flNmQt===iYlcLvf(-0x29)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),lrUmqp||bh2X_2r];return _tu9kNq(lrUmqp,RhNwyD,bh2X_2r)}if(bh2X_2r==lrUmqp){return s2vFhZS[iiioNH[bh2X_2r]]=_tu9kNq(lrUmqp,s2vFhZS)}if(lrUmqp!==s2vFhZS){return RhNwyD[lrUmqp]||(RhNwyD[lrUmqp]=flNmQt(uzT0OvZ[lrUmqp]))}if(flNmQt===_tu9kNq){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(flNmQt===void 0x0){_tu9kNq=RhNwyD}if(bh2X_2r==flNmQt){return s2vFhZS?lrUmqp[RhNwyD[s2vFhZS]]:iiioNH[lrUmqp]||(bh2X_2r=RhNwyD[lrUmqp]||flNmQt,iiioNH[lrUmqp]=bh2X_2r(uzT0OvZ[lrUmqp]))}},lrUmqp={D5hJAE:_tu9kNq(0x1)},s2vFhZS={feBMtyZ:_tu9kNq(0x0),pGR_vsn:[],uhSDM8g:lO__ew((_tu9kNq=lrUmqp.D5hJAE)=>{if(!flNmQt.pGR_vsn[0x0]){flNmQt.pGR_vsn.push(0x52)}return flNmQt.pGR_vsn[_tu9kNq]})});return s2vFhZS;function ThARLh(_tu9kNq,lrUmqp='[%g2h6e>$1+PkQY.o)H|rUqlT*DJWC}<n{y_c#0duVs7!4/,Nji]MBpOI;vZS&3@AfXa:9E"mLztwRF^=KG?85x~(b`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=UTJyAip(-0x5e),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x55?_tu9kNq-0x4a:_tu9kNq-0x32]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>0x58?0xd:UTJyAip(-0x58));do{bh2X_2r(flNmQt.push(RhNwyD&0xff),RhNwyD>>=0x8,iYlcLvf-=UTJyAip(-0x53))}while(iYlcLvf>UTJyAip(-0x5a));GBlDyc=-YKXyjaG(0x3a)}}if(GBlDyc>-0x1){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x1f?_tu9kNq+0x5b:_tu9kNq<0x43?_tu9kNq>0x1f?_tu9kNq>0x43?_tu9kNq-0x5f:_tu9kNq-0x20:_tu9kNq-0x38:_tu9kNq+0x32]},0x1);flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&TwvCME9(0x2a))}return NLFenA6(flNmQt)}},0x3)());function WA1GBT(..._tu9kNq){var lrUmqp=(_tu9kNq,s2vFhZS,bh2X_2r,flNmQt,RhNwyD)=>{var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<-0x40?_tu9kNq+0x61:_tu9kNq>-0x1c?_tu9kNq+0x5f:_tu9kNq>-0x1c?_tu9kNq-0x23:_tu9kNq+0x3f]},0x1);if(typeof flNmQt===UTJyAip(-0x5c)){flNmQt=ThARLh}if(typeof RhNwyD==='undefined'){RhNwyD=iiioNH}if(flNmQt===iYlcLvf(-0x39)){lrUmqp=RhNwyD}if(bh2X_2r&&flNmQt!==ThARLh){lrUmqp=ThARLh;return lrUmqp(_tu9kNq,-0x1,bh2X_2r,flNmQt,RhNwyD)}if(flNmQt===lrUmqp){ThARLh=s2vFhZS;return ThARLh(bh2X_2r)}if(bh2X_2r==flNmQt){return s2vFhZS?_tu9kNq[RhNwyD[s2vFhZS]]:iiioNH[_tu9kNq]||(bh2X_2r=RhNwyD[_tu9kNq]||flNmQt,iiioNH[_tu9kNq]=bh2X_2r(uzT0OvZ[_tu9kNq]))}if(_tu9kNq!==s2vFhZS){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=flNmQt(uzT0OvZ[_tu9kNq]))}if(s2vFhZS){[RhNwyD,s2vFhZS]=[flNmQt(RhNwyD),_tu9kNq||bh2X_2r];return lrUmqp(_tu9kNq,RhNwyD,bh2X_2r)}},s2vFhZS;s2vFhZS={WnbsbP:lrUmqp(0x2)};return _tu9kNq[_tu9kNq[s2vFhZS.WnbsbP]-UTJyAip(-0x59)];function ThARLh(_tu9kNq,lrUmqp='H3IraMXLYZJo=q@mNUzf#2BbwA]ngcR:~p1tvV58e{<}O&F!_?.G/E|;xPQi$WCu0DTs"Skl%jhK4d)[+6y,*9^>7(`',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf,GBlDyc,x5cguDs,PqkurF){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x23?_tu9kNq<0x47?_tu9kNq-0x24:_tu9kNq-0x2d:_tu9kNq+0x1f]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,iYlcLvf=YKXyjaG(0x27),GBlDyc=-UTJyAip(-0x59));for(x5cguDs=YKXyjaG(0x27);x5cguDs<ThARLh;x5cguDs++){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x15?_tu9kNq>0x39?_tu9kNq-0x38:_tu9kNq>0x39?_tu9kNq-0x10:_tu9kNq>0x39?_tu9kNq+0x47:_tu9kNq-0x16:_tu9kNq+0x4a]},0x1);PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-TwvCME9(0x1e)){continue}if(GBlDyc<UTJyAip(-0x5e)){GBlDyc=PqkurF}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>-0x2f?_tu9kNq-0x2a:_tu9kNq<-0x2f?_tu9kNq>-0x2f?_tu9kNq-0x23:_tu9kNq+0x52:_tu9kNq-0x4a]},0x1);bh2X_2r(GBlDyc+=PqkurF*0x5b,RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&YKXyjaG(0x30))>YKXyjaG(0x31)?0xd:UTJyAip(-0x58));do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x51?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq>0x2d?_tu9kNq-0x2e:_tu9kNq+0x11:_tu9kNq+0x38:_tu9kNq+0xd:_tu9kNq-0x10]},0x1);bh2X_2r(flNmQt.push(RhNwyD&QeCB3C(0x38)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>JskwyQc(-0x4b));GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}}function WriIr90(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD){var iYlcLvf=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x4?_tu9kNq<0x4?_tu9kNq>0x4?_tu9kNq-0x48:_tu9kNq+0x1f:_tu9kNq-0x1c:_tu9kNq-0x60]},0x1);bh2X_2r(s2vFhZS=(_tu9kNq,lrUmqp,RhNwyD,iYlcLvf,bh2X_2r)=>{if(typeof iYlcLvf==='undefined'){iYlcLvf=GBlDyc}if(typeof bh2X_2r==='undefined'){bh2X_2r=iiioNH}if(_tu9kNq!==lrUmqp){return bh2X_2r[_tu9kNq]||(bh2X_2r[_tu9kNq]=iYlcLvf(uzT0OvZ[_tu9kNq]))}if(lrUmqp){[bh2X_2r,lrUmqp]=[iYlcLvf(bh2X_2r),_tu9kNq||RhNwyD];return s2vFhZS(_tu9kNq,bh2X_2r,RhNwyD)}if(RhNwyD&&iYlcLvf!==GBlDyc){s2vFhZS=GBlDyc;return s2vFhZS(_tu9kNq,-UTJyAip(-0x59),RhNwyD,iYlcLvf,bh2X_2r)}if(iYlcLvf===s2vFhZS){GBlDyc=lrUmqp;return GBlDyc(RhNwyD)}},RhNwyD=[s2vFhZS[iYlcLvf(-0x14)](UTJyAip(-0x5b),[0x3])]);switch(ThARLh){case UTJyAip(-0x51):return-_tu9kNq;case 0x4:return _tu9kNq+lrUmqp;case UTJyAip(-0x4c):return _tu9kNq*lrUmqp;case!(flNmQt.feBMtyZ[RhNwyD[UTJyAip(-0x5e)]](0x0)=='l')?0xc0:0x21:return _tu9kNq-lrUmqp;case 0x3b:return!_tu9kNq;case-0xe:return void _tu9kNq}function GBlDyc(_tu9kNq,lrUmqp='K7AWur&*,2P}pv(?eE|^)TGO8/zI9`Yfwl>.#JQsq0ka15{@bxS"ot$F%6_D=:3!<hN;]Un[yB4Ci~+dcZHLRMVjmXg',s2vFhZS,RhNwyD,GBlDyc=[],ThARLh,flNmQt=0x0,x5cguDs,PqkurF=0x0,YKXyjaG){var TwvCME9=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x3b?_tu9kNq-0x58:_tu9kNq<0x3b?_tu9kNq>0x3b?_tu9kNq+0x42:_tu9kNq-0x18:_tu9kNq-0x21]},0x1);bh2X_2r(s2vFhZS=''+(_tu9kNq||''),RhNwyD=s2vFhZS.length,ThARLh=TwvCME9(0x1b),x5cguDs=-0x1);for(PqkurF=PqkurF;PqkurF<RhNwyD;PqkurF++){YKXyjaG=lrUmqp.indexOf(s2vFhZS[PqkurF]);if(YKXyjaG===-0x1){continue}if(x5cguDs<UTJyAip(-0x5e)){x5cguDs=YKXyjaG}else{var JskwyQc=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x82?_tu9kNq+0x18:_tu9kNq<0x5e?_tu9kNq-0x16:_tu9kNq-0x5f]},0x1);bh2X_2r(x5cguDs+=YKXyjaG*0x5b,ThARLh|=x5cguDs<<flNmQt,flNmQt+=(x5cguDs&JskwyQc(0x6b))>JskwyQc(0x6c)?0xd:0xe);do{var QeCB3C=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x46?_tu9kNq>0x6a?_tu9kNq-0x18:_tu9kNq<0x6a?_tu9kNq>0x6a?_tu9kNq-0xa:_tu9kNq-0x47:_tu9kNq+0x21:_tu9kNq+0x3e]},0x1);bh2X_2r(GBlDyc.push(ThARLh&iYlcLvf(-0x15)),ThARLh>>=0x8,flNmQt-=QeCB3C(0x55))}while(flNmQt>iYlcLvf(-0x18));x5cguDs=-iYlcLvf(-0x17)}}if(x5cguDs>-0x1){GBlDyc.push((ThARLh|x5cguDs<<flNmQt)&0xff)}return NLFenA6(GBlDyc)}}function lkF2cOz(lYgpQIu){return WA1GBT(lYgpQIu=ThARLh+(ThARLh=lYgpQIu,0x0),lYgpQIu)}ThARLh=ThARLh;const imWkvYu=0x20,BrcBZT6=UTJyAip(-0x52),yR7GsPt=0xc,p3xJTg=0x10,bYEdjOF=UTJyAip(-0x59),jt13oO=RhNwyD.zw9RoZ,wFqv4I5=(()=>{var lYgpQIu=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq<0x26?_tu9kNq<0x2?_tu9kNq-0x10:_tu9kNq-0x3:_tu9kNq-0x39]},0x1);const _tu9kNq=new Int16Array(0x100).fill(WriIr90(UTJyAip(-0x59),lkF2cOz(UTJyAip(-0x51))));for(let lrUmqp=lYgpQIu(0x6);lrUmqp<jt13oO.length;lrUmqp++)_tu9kNq[jt13oO.charCodeAt(lrUmqp)]=lrUmqp;return _tu9kNq})();function v2lifp(lYgpQIu){var _tu9kNq;function lrUmqp(lYgpQIu){return geovr3v[lYgpQIu<-0x8?lYgpQIu<-0x8?lYgpQIu<-0x2c?lYgpQIu+0x2b:lYgpQIu>-0x2c?lYgpQIu+0x2b:lYgpQIu-0x21:lYgpQIu+0x31:lYgpQIu-0x37]}_tu9kNq=cYbeftG(0x5);let s2vFhZS=lYgpQIu[_tu9kNq];for(;s2vFhZS>UTJyAip(-0x5e)&&lYgpQIu[cYbeftG.apply(lrUmqp(-0x25),[UTJyAip(-0x50)])](s2vFhZS-0x1)===0x3d&&flNmQt.uhSDM8g();)s2vFhZS--;const ThARLh=s2vFhZS*UTJyAip(-0x4f)>>UTJyAip(-0x4d),RhNwyD=new Uint8Array(ThARLh);let iYlcLvf=lrUmqp(-0x28),GBlDyc=0x0,x5cguDs=UTJyAip(-0x5e);for(let PqkurF=lrUmqp(-0x28);PqkurF<s2vFhZS;PqkurF++){var YKXyjaG=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<0x19?lYgpQIu+0xa:lYgpQIu+0x2f]},0x1);const TwvCME9=wFqv4I5[lYgpQIu[cYbeftG.call(lrUmqp(-0x25),lrUmqp(-0x1a))](PqkurF)];if(TwvCME9<0x0){throw new Error(cYbeftG(0x7))}bh2X_2r(iYlcLvf=iYlcLvf<<YKXyjaG(0x7)|TwvCME9,GBlDyc+=YKXyjaG(0x7),GBlDyc>=lrUmqp(-0x1d)&&(GBlDyc-=YKXyjaG(0x4),RhNwyD[x5cguDs++]=iYlcLvf>>GBlDyc&0xff))}return RhNwyD}const B5RPEc0=WA1GBT(new TextEncoder,new TextDecoder);function DUsXLQb(lYgpQIu,_tu9kNq){return(lYgpQIu<<_tu9kNq|lYgpQIu>>>0x20-_tu9kNq)>>>0x0}function khO09mK(lYgpQIu,_tu9kNq,lrUmqp,s2vFhZS,ThARLh){var flNmQt=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu<-0x1f?lYgpQIu>-0x43?lYgpQIu+0x42:lYgpQIu-0x55:lYgpQIu-0x5a]},0x1);bh2X_2r(lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>UTJyAip(-0x5e),lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x10),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>flNmQt(-0x3f),lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],flNmQt(-0x2f)),lYgpQIu[_tu9kNq]=lYgpQIu[_tu9kNq]+lYgpQIu[lrUmqp]>>>0x0,lYgpQIu[ThARLh]=DUsXLQb(lYgpQIu[ThARLh]^lYgpQIu[_tu9kNq],0x8),lYgpQIu[s2vFhZS]=lYgpQIu[s2vFhZS]+lYgpQIu[ThARLh]>>>0x0,lYgpQIu[lrUmqp]=DUsXLQb(lYgpQIu[lrUmqp]^lYgpQIu[s2vFhZS],UTJyAip(-0x5a)))}function v2I7x7(lYgpQIu,_tu9kNq){var lrUmqp=lO__ew(lYgpQIu=>{return geovr3v[lYgpQIu>-0x4b?lYgpQIu<-0x4b?lYgpQIu-0xe:lYgpQIu+0x4a:lYgpQIu-0x7]},0x1);return(lYgpQIu[_tu9kNq]|lYgpQIu[_tu9kNq+lrUmqp(-0x42)]<<UTJyAip(-0x53)|lYgpQIu[_tu9kNq+UTJyAip(-0x4d)]<<lrUmqp(-0x2e)|lYgpQIu[_tu9kNq+lrUmqp(-0x38)]<<0x18)>>>UTJyAip(-0x5e)}function o2hBfsG(lYgpQIu,_tu9kNq,lrUmqp){bh2X_2r(lYgpQIu[_tu9kNq]=lrUmqp&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,0x1,ThARLh=UTJyAip(-0x52))]=lrUmqp>>>0x8&UTJyAip(-0x57),lYgpQIu[WriIr90(_tu9kNq,UTJyAip(-0x4d),lkF2cOz(UTJyAip(-0x52)))]=lrUmqp>>>0x10&0xff,lYgpQIu[WriIr90(_tu9kNq,0x3,ThARLh=0x4)]=lrUmqp>>>0x18&0xff)}function Xk0wXW(_tu9kNq,lrUmqp,s2vFhZS){var flNmQt;function RhNwyD(_tu9kNq){return geovr3v[_tu9kNq<-0x54?_tu9kNq-0x21:_tu9kNq>-0x30?_tu9kNq+0x36:_tu9kNq+0x53]}flNmQt=(_tu9kNq,lrUmqp,s2vFhZS,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD==='undefined'){RhNwyD=JskwyQc}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(s2vFhZS&&RhNwyD!==JskwyQc){flNmQt=JskwyQc;return flNmQt(_tu9kNq,-0x1,s2vFhZS,RhNwyD,iYlcLvf)}if(RhNwyD===flNmQt){JskwyQc=lrUmqp;return JskwyQc(s2vFhZS)}if(_tu9kNq!==lrUmqp){return iYlcLvf[_tu9kNq]||(iYlcLvf[_tu9kNq]=RhNwyD(uzT0OvZ[_tu9kNq]))}};const iYlcLvf=new Uint32Array(0x10);for(let GBlDyc=WA1GBT((iYlcLvf[UTJyAip(-0x5e)]=_tu9kNq[flNmQt(0x8)][UTJyAip(-0x5e)]>>>UTJyAip(-0x5e),iYlcLvf[0x1]=_tu9kNq[flNmQt(RhNwyD(-0x45))][0x1]>>>0x0,iYlcLvf[0x2]=_tu9kNq[flNmQt(0x8)][0x2]>>>0x0,iYlcLvf[0x3]=_tu9kNq[flNmQt(RhNwyD(-0x45))][UTJyAip(-0x4f)]>>>0x0),0x0);GBlDyc<RhNwyD(-0x45);GBlDyc++){var x5cguDs=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x16?_tu9kNq+0x1b:_tu9kNq<-0xe?_tu9kNq-0x33:_tu9kNq>0x16?_tu9kNq-0x7:_tu9kNq+0xd]},0x1);iYlcLvf[WriIr90(0x4,GBlDyc,lkF2cOz(x5cguDs(0x2)))]=v2I7x7(_tu9kNq[cYbeftG(RhNwyD(-0x3b))],WriIr90(GBlDyc,0x4,ThARLh=RhNwyD(-0x3e)))}const PqkurF=WA1GBT((iYlcLvf[RhNwyD(-0x40)]=lrUmqp>>>RhNwyD(-0x50),iYlcLvf[RhNwyD(-0x3d)]=v2I7x7(s2vFhZS,0x0),iYlcLvf[0xe]=v2I7x7(s2vFhZS,0x4),iYlcLvf[UTJyAip(-0x46)]=v2I7x7(s2vFhZS,0x8)),iYlcLvf[cYbeftG(UTJyAip(-0x4a))]());for(let GBlDyc=0x0;GBlDyc<_tu9kNq[cYbeftG(0xb)];GBlDyc+=0x2){var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x86?_tu9kNq+0x14:_tu9kNq>0x62?_tu9kNq<0x62?_tu9kNq-0x4b:_tu9kNq>0x62?_tu9kNq-0x63:_tu9kNq-0x3a:_tu9kNq+0x43]},0x1);bh2X_2r(khO09mK(PqkurF,0x0,YKXyjaG(0x72),0x8,0xc),khO09mK(PqkurF,YKXyjaG(0x6b),0x5,0x9,YKXyjaG(0x79)),khO09mK(PqkurF,0x2,0x6,YKXyjaG(0x7a),UTJyAip(-0x58)),khO09mK(PqkurF,YKXyjaG(0x75),0x7,0xb,0xf),khO09mK(PqkurF,0x0,0x5,YKXyjaG(0x7a),0xf),khO09mK(PqkurF,0x1,0x6,0xb,UTJyAip(-0x4e)),khO09mK(PqkurF,UTJyAip(-0x4d),YKXyjaG(0x6a),YKXyjaG(0x71),0xd),khO09mK(PqkurF,0x3,0x4,RhNwyD(-0x3b),YKXyjaG(0x6c)))}const TwvCME9=new Uint8Array(0x40);for(let GBlDyc=0x0;GBlDyc<0x10;GBlDyc++)o2hBfsG(TwvCME9,WriIr90(GBlDyc,0x4,lkF2cOz(0x1a)),PqkurF[GBlDyc]+iYlcLvf[GBlDyc]>>>UTJyAip(-0x5e));return TwvCME9;function JskwyQc(lrUmqp,s2vFhZS='A<kU.&qujG8gPh|Yx@iJXFamM7RrSBv0;b*^sL!HNV${I?">o%_e9:[6yE~DK]`CTzwdlW)Z1/pcn}Q5t3f=24,(#+O',flNmQt,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,ThARLh){bh2X_2r(flNmQt=''+(lrUmqp||''),iYlcLvf=flNmQt.length,PqkurF=UTJyAip(-0x5e),YKXyjaG=-UTJyAip(-0x59));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){ThARLh=s2vFhZS.indexOf(flNmQt[JskwyQc]);if(ThARLh===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=ThARLh}else{var QeCB3C=lO__ew(lrUmqp=>{return geovr3v[lrUmqp>-0x3e?lrUmqp<-0x3e?lrUmqp+0x19:lrUmqp>-0x1a?lrUmqp+0x48:lrUmqp+0x3d:lrUmqp+0x5b]},0x1);bh2X_2r(YKXyjaG+=ThARLh*0x5b,x5cguDs|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&QeCB3C(-0x31))>UTJyAip(-0x54)?0xd:0xe);do{bh2X_2r(GBlDyc.push(x5cguDs&0xff),x5cguDs>>=0x8,PqkurF-=RhNwyD(-0x45))}while(PqkurF>RhNwyD(-0x4c));YKXyjaG=-RhNwyD(-0x4b)}}if(YKXyjaG>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|YKXyjaG<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}function Y8wqfY(lYgpQIu,_tu9kNq,lrUmqp,bh2X_2r){var s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<-0x54?lYgpQIu-0x7:lYgpQIu>-0x54?lYgpQIu+0x53:lYgpQIu+0x49]}s2vFhZS=[cYbeftG(0xc)];const RhNwyD=new Uint8Array(bh2X_2r[s2vFhZS[flNmQt(-0x50)]]);let iYlcLvf=lrUmqp>>>flNmQt(-0x50);for(let GBlDyc=0x0;GBlDyc<bh2X_2r[cYbeftG(UTJyAip(-0x4e))];GBlDyc+=flNmQt(-0x3a)){const x5cguDs=Xk0wXW(lYgpQIu,iYlcLvf,_tu9kNq),PqkurF=Math.min(UTJyAip(-0x48),WriIr90(bh2X_2r.length,GBlDyc,ThARLh=flNmQt(-0x39)));for(let YKXyjaG=flNmQt(-0x50);YKXyjaG<PqkurF;YKXyjaG++)RhNwyD[WriIr90(GBlDyc,YKXyjaG,lkF2cOz(flNmQt(-0x44)))]=bh2X_2r[GBlDyc+YKXyjaG]^x5cguDs[YKXyjaG];iYlcLvf=iYlcLvf+0x1>>>0x0}return RhNwyD}const NOaqK6I=WriIr90(1n<<130n,5n,lkF2cOz(UTJyAip(-0x47))),ofLDLf=0x0ffffffc0ffffffc0ffffffc0fffffffn,IKEFD1=WriIr90(1n<<128n,1n,ThARLh=UTJyAip(-0x47));function YjsWNze(lYgpQIu){let _tu9kNq=0n;for(let lrUmqp=WriIr90(lYgpQIu[cYbeftG(0xd)],0x1,ThARLh=0x21);lrUmqp>=UTJyAip(-0x5e);lrUmqp--)_tu9kNq=_tu9kNq<<8n|BigInt(lYgpQIu[lrUmqp]);return _tu9kNq}function QJozJB(lYgpQIu,_tu9kNq){const lrUmqp=new Uint8Array(_tu9kNq);let bh2X_2r=lYgpQIu;for(let s2vFhZS=UTJyAip(-0x5e);s2vFhZS<_tu9kNq;s2vFhZS++)lrUmqp[s2vFhZS]=Number(bh2X_2r&0xffn),bh2X_2r>>=8n;return lrUmqp}function c0Zivh(_tu9kNq,lrUmqp){var s2vFhZS,ThARLh;function flNmQt(_tu9kNq){return geovr3v[_tu9kNq<0x24?_tu9kNq-0x29:_tu9kNq<0x48?_tu9kNq-0x25:_tu9kNq+0x61]}bh2X_2r(s2vFhZS={NBEoAr:cYbeftG(UTJyAip(-0x46))},ThARLh=cYbeftG(UTJyAip(-0x58)));const RhNwyD=YjsWNze(lrUmqp[ThARLh](UTJyAip(-0x5e),UTJyAip(-0x45)))&ofLDLf,iYlcLvf=YjsWNze(lrUmqp.subarray(flNmQt(0x41),0x20));let GBlDyc=0n;for(let x5cguDs=0x0;x5cguDs<_tu9kNq[s2vFhZS.NBEoAr];x5cguDs+=0x10){var PqkurF,YKXyjaG;function TwvCME9(_tu9kNq){return geovr3v[_tu9kNq>0xb?_tu9kNq>0xb?_tu9kNq-0xc:_tu9kNq+0x4e:_tu9kNq-0x43]}bh2X_2r(PqkurF=(_tu9kNq,lrUmqp,s2vFhZS,ThARLh,RhNwyD)=>{if(typeof ThARLh==='undefined'){ThARLh=W5iGnH}if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=iiioNH}if(_tu9kNq!==lrUmqp){return RhNwyD[_tu9kNq]||(RhNwyD[_tu9kNq]=ThARLh(uzT0OvZ[_tu9kNq]))}if(s2vFhZS&&ThARLh!==W5iGnH){PqkurF=W5iGnH;return PqkurF(_tu9kNq,-flNmQt(0x2d),s2vFhZS,ThARLh,RhNwyD)}},YKXyjaG={kdLckQp:cYbeftG(0xe),IlFtA0:cYbeftG.apply(void 0x0,[0xf])});const JskwyQc=_tu9kNq[YKXyjaG.kdLckQp](x5cguDs,Math[cYbeftG.call(void 0x0,0x10)](WriIr90(x5cguDs,UTJyAip(-0x45),lkF2cOz(0x4)),_tu9kNq[cYbeftG(TwvCME9(0x27))]));let QeCB3C=YjsWNze(JskwyQc);bh2X_2r(QeCB3C+=1n<<BigInt(0x8*JskwyQc[YKXyjaG.IlFtA0]),GBlDyc=(GBlDyc+QeCB3C)*RhNwyD%NOaqK6I);function W5iGnH(lrUmqp,s2vFhZS='N7Fu{W]E4"L;%6vhe9~Cf0Vz^|t$arGK!/y1+)T<d=(xU@QI`5H[:Y3p,XbB#}_?wl*O2n.PiRZSAjo&D>sgq8mcJMk',ThARLh,RhNwyD,iYlcLvf=[],GBlDyc=0x0,PqkurF,YKXyjaG,JskwyQc=0x0,QeCB3C){bh2X_2r(ThARLh=''+(lrUmqp||''),RhNwyD=ThARLh.length,PqkurF=TwvCME9(0xf),YKXyjaG=-0x1);for(JskwyQc=JskwyQc;JskwyQc<RhNwyD;JskwyQc++){QeCB3C=s2vFhZS.indexOf(ThARLh[JskwyQc]);if(QeCB3C===-0x1){continue}if(YKXyjaG<0x0){YKXyjaG=QeCB3C}else{bh2X_2r(YKXyjaG+=QeCB3C*0x5b,GBlDyc|=YKXyjaG<<PqkurF,PqkurF+=(YKXyjaG&UTJyAip(-0x55))>flNmQt(0x32)?UTJyAip(-0x4b):0xe);do{bh2X_2r(iYlcLvf.push(GBlDyc&0xff),GBlDyc>>=TwvCME9(0x1a),PqkurF-=flNmQt(0x33))}while(PqkurF>TwvCME9(0x13));YKXyjaG=-flNmQt(0x2d)}}if(YKXyjaG>-0x1){iYlcLvf.push((GBlDyc|YKXyjaG<<PqkurF)&0xff)}return NLFenA6(iYlcLvf)}}return GBlDyc=GBlDyc+iYlcLvf&IKEFD1,QJozJB(GBlDyc,0x10)}function hn4R1M(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS,flNmQt;function RhNwyD(lYgpQIu){return geovr3v[lYgpQIu>0x11?lYgpQIu+0x4c:lYgpQIu<-0x13?lYgpQIu+0x59:lYgpQIu+0x12]}bh2X_2r(lrUmqp=[cYbeftG(RhNwyD(0xb))],s2vFhZS=cYbeftG.apply(UTJyAip(-0x5b),[0x12]),flNmQt={iq9Oqr:cYbeftG(0x11),[UTJyAip(-0x43)]:cYbeftG(0x12)});const iYlcLvf=(UTJyAip(-0x45)-lYgpQIu[flNmQt.iq9Oqr]%UTJyAip(-0x45))%0x10,GBlDyc=(0x10-_tu9kNq.length%0x10)%RhNwyD(0xa),x5cguDs=WriIr90(lYgpQIu.length+iYlcLvf+_tu9kNq.length+GBlDyc,0x10,lkF2cOz(0x4)),PqkurF=new Uint8Array(x5cguDs);let YKXyjaG=0x0;return PqkurF[s2vFhZS](lYgpQIu,YKXyjaG),YKXyjaG+=WriIr90(lYgpQIu[cYbeftG(UTJyAip(-0x44))],iYlcLvf,ThARLh=RhNwyD(-0x3)),PqkurF[flNmQt[RhNwyD(0xc)]](_tu9kNq,YKXyjaG),YKXyjaG+=WriIr90(_tu9kNq[lrUmqp[RhNwyD(-0xf)]],GBlDyc,ThARLh=0x4),o2hBfsG(PqkurF,YKXyjaG,lYgpQIu[cYbeftG(UTJyAip(-0x44))]>>>UTJyAip(-0x5e)),o2hBfsG(PqkurF,WriIr90(YKXyjaG,UTJyAip(-0x53),ThARLh=0x4),_tu9kNq[cYbeftG(UTJyAip(-0x44))]>>>0x0),PqkurF}function Fbi3AF(lYgpQIu,_tu9kNq){var lrUmqp;function bh2X_2r(lYgpQIu){return geovr3v[lYgpQIu<0x3a?lYgpQIu>0x16?lYgpQIu-0x17:lYgpQIu+0x47:lYgpQIu-0x3d]}lrUmqp=cYbeftG(0x13);if(lYgpQIu[cYbeftG[UTJyAip(-0x56)](UTJyAip(-0x5b),[bh2X_2r(0x27)])]!==_tu9kNq[lrUmqp]){return WriIr90(0x1,lkF2cOz(0x3b))}let s2vFhZS=UTJyAip(-0x5e);for(let ThARLh=bh2X_2r(0x1a);ThARLh<lYgpQIu[cYbeftG(0x13)];ThARLh++)s2vFhZS|=lYgpQIu[ThARLh]^_tu9kNq[ThARLh];return s2vFhZS===0x0}function gChW9N(lYgpQIu,_tu9kNq){var lrUmqp,s2vFhZS;function flNmQt(lYgpQIu){return geovr3v[lYgpQIu<0x2f?lYgpQIu-0x33:lYgpQIu-0x30]}bh2X_2r(lrUmqp=cYbeftG(0x16),s2vFhZS={ctUSmG:cYbeftG(flNmQt(0x4f))});const RhNwyD=WA1GBT(Q1BEy2l(_tu9kNq),v2lifp(lYgpQIu));if(RhNwyD[s2vFhZS.ctUSmG]<0x1+yR7GsPt+p3xJTg){throw new Error(cYbeftG.call(UTJyAip(-0x5b),0x15))}if(RhNwyD[0x0]!==bYEdjOF){throw new Error(`unsupported inner frame version ${RhNwyD[UTJyAip(-0x5e)]}`)}const iYlcLvf=RhNwyD[lrUmqp](UTJyAip(-0x59),WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(UTJyAip(-0x52)))),GBlDyc=RhNwyD.subarray(WriIr90(UTJyAip(-0x59),yR7GsPt,lkF2cOz(0x4)),WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,ThARLh=UTJyAip(-0x52))),x5cguDs=RhNwyD.subarray(WriIr90(UTJyAip(-0x59)+yR7GsPt,p3xJTg,lkF2cOz(0x4))),PqkurF=Xk0wXW(_tu9kNq,UTJyAip(-0x5e),iYlcLvf).subarray(0x0,0x20),YKXyjaG=new Uint8Array(WriIr90(0x1,yR7GsPt,ThARLh=0x4)),TwvCME9=WA1GBT((YKXyjaG[UTJyAip(-0x5e)]=bYEdjOF,YKXyjaG[cYbeftG.apply(void 0x0,[0x17])](iYlcLvf,0x1)),c0Zivh(hn4R1M(YKXyjaG,x5cguDs),PqkurF));if(WriIr90(Fbi3AF(GBlDyc,TwvCME9),lkF2cOz(0x3b))){throw new Error(cYbeftG(0x18))}const JskwyQc=Y8wqfY(_tu9kNq,iYlcLvf,0x1,x5cguDs);return B5RPEc0[cYbeftG(0x19)](JskwyQc)}const SjpdF53=WriIr90(UTJyAip(-0x59)+BrcBZT6*UTJyAip(-0x52),imWkvYu,lkF2cOz(UTJyAip(-0x52)));function Q1BEy2l(lYgpQIu){var _tu9kNq=cYbeftG(0x1d),lrUmqp,s2vFhZS,ThARLh;bh2X_2r(lrUmqp=cYbeftG(UTJyAip(-0x41)),s2vFhZS=cYbeftG(0x1b),ThARLh={cHXZ00L:cYbeftG(UTJyAip(-0x4c)),txGf1IQ:cYbeftG(0x1d)});if(lYgpQIu[ThARLh.cHXZ00L][cYbeftG(0x1b)]!==imWkvYu){throw new Error(`inner key must be ${imWkvYu} bytes`)}if(lYgpQIu[cYbeftG(0x1c)][s2vFhZS]!==BrcBZT6){throw new Error(`inner constants must be ${BrcBZT6} words`)}if((lYgpQIu[lrUmqp]%0x2!==UTJyAip(-0x5e)||lYgpQIu[ThARLh.txGf1IQ]<0x2||lYgpQIu[_tu9kNq]>UTJyAip(-0x42))&&flNmQt.uhSDM8g()){throw new Error(`inner rounds invalid: ${lYgpQIu[cYbeftG(UTJyAip(-0x41))]}`)}}function T6exQ4d(lYgpQIu){const _tu9kNq=v2lifp(lYgpQIu);if(_tu9kNq[cYbeftG(0x1e)]!==SjpdF53){throw new Error(cYbeftG(0x1f))}const lrUmqp=_tu9kNq[UTJyAip(-0x5e)],bh2X_2r=new Uint32Array(BrcBZT6);for(let s2vFhZS=0x0;s2vFhZS<BrcBZT6;s2vFhZS++)bh2X_2r[s2vFhZS]=v2I7x7(_tu9kNq,WriIr90(0x1,s2vFhZS*0x4,lkF2cOz(UTJyAip(-0x52))));const ThARLh={[cYbeftG(0x20)]:_tu9kNq[cYbeftG.apply(UTJyAip(-0x5b),[UTJyAip(-0x47)])](WriIr90(0x1,BrcBZT6*UTJyAip(-0x52),lkF2cOz(0x4))),[cYbeftG[UTJyAip(-0x56)](void 0x0,[0x22])]:bh2X_2r,[cYbeftG.apply(void 0x0,[0x23])]:lrUmqp};return Q1BEy2l(ThARLh),ThARLh}function Bvi6LVC(s2vFhZS,ThARLh,flNmQt){var RhNwyD,iYlcLvf,GBlDyc,x5cguDs,PqkurF;function YKXyjaG(s2vFhZS){return geovr3v[s2vFhZS<0x38?s2vFhZS+0xe:s2vFhZS>0x5c?s2vFhZS+0x64:s2vFhZS<0x5c?s2vFhZS>0x5c?s2vFhZS-0x5c:s2vFhZS-0x39:s2vFhZS+0x19]}bh2X_2r(RhNwyD=(s2vFhZS,ThARLh,flNmQt,RhNwyD,iYlcLvf)=>{if(typeof RhNwyD===UTJyAip(-0x5c)){RhNwyD=yR7GsPt}if(typeof iYlcLvf==='undefined'){iYlcLvf=iiioNH}if(flNmQt==RhNwyD){return ThARLh?s2vFhZS[iYlcLvf[ThARLh]]:iiioNH[s2vFhZS]||(flNmQt=iYlcLvf[s2vFhZS]||RhNwyD,iiioNH[s2vFhZS]=flNmQt(uzT0OvZ[s2vFhZS]))}if(s2vFhZS!==ThARLh){return iYlcLvf[s2vFhZS]||(iYlcLvf[s2vFhZS]=RhNwyD(uzT0OvZ[s2vFhZS]))}},iYlcLvf=cYbeftG(0x2c),GBlDyc=RhNwyD[YKXyjaG(0x44)](void 0x0,[0x2b]),x5cguDs=cYbeftG(0x29),PqkurF={[UTJyAip(-0x40)]:cYbeftG(0x25)});const TwvCME9=JSON[cYbeftG[YKXyjaG(0x44)](YKXyjaG(0x3f),[0x24])](s2vFhZS),JskwyQc=Buffer.from(TwvCME9.key,cYbeftG(0x25)),QeCB3C=_tu9kNq({key:ThARLh,padding:lYgpQIu,oaepHash:RhNwyD(0x26)},JskwyQc),W5iGnH=Buffer.from(TwvCME9.data,PqkurF[UTJyAip(-0x40)]),EMAPWQk=Buffer.from(TwvCME9.iv,cYbeftG(0x25)),pkneNZ=W5iGnH.subarray(0x0,WriIr90(UTJyAip(-0x45),lkF2cOz(0x13))),gDQvjMn=W5iGnH.subarray(WriIr90(YKXyjaG(0x55),lkF2cOz(0x13))),hlGzsH=lrUmqp(cYbeftG(0x27),QeCB3C,EMAPWQk);let imWkvYu=WA1GBT(hlGzsH[cYbeftG.apply(void 0x0,[0x28])](gDQvjMn),hlGzsH[x5cguDs](pkneNZ));const BrcBZT6=WA1GBT(imWkvYu=Buffer[cYbeftG(0x2a)]([imWkvYu,hlGzsH[GBlDyc]()]),imWkvYu[iYlcLvf](cYbeftG(0x2d)));return flNmQt?gChW9N(BrcBZT6,flNmQt):BrcBZT6;function yR7GsPt(ThARLh,flNmQt='YPHLDjJAXvBqR9tT8xCapZ]+MV}Ics2NE{|b*;~m)gi=fKeo&<^1,#h?kQFu07nOr.lUWdSwz4>[5(`:6@y3$_%"!/G',RhNwyD,iYlcLvf,GBlDyc=[],x5cguDs=0x0,PqkurF=0x0,TwvCME9,JskwyQc=0x0,W5iGnH){bh2X_2r(RhNwyD=''+(ThARLh||''),iYlcLvf=RhNwyD.length,TwvCME9=-YKXyjaG(0x41));for(JskwyQc=JskwyQc;JskwyQc<iYlcLvf;JskwyQc++){W5iGnH=flNmQt.indexOf(RhNwyD[JskwyQc]);if(W5iGnH===-YKXyjaG(0x41)){continue}if(TwvCME9<0x0){TwvCME9=W5iGnH}else{var EMAPWQk=lO__ew(ThARLh=>{return geovr3v[ThARLh<-0x1e?ThARLh+0x13:ThARLh<0x6?ThARLh>-0x1e?ThARLh>-0x1e?ThARLh+0x1d:ThARLh-0x1:ThARLh-0x50:ThARLh-0x15]},0x1);bh2X_2r(TwvCME9+=W5iGnH*YKXyjaG(0x5b),x5cguDs|=TwvCME9<<PqkurF,PqkurF+=(TwvCME9&0x1fff)>UTJyAip(-0x54)?0xd:EMAPWQk(-0x14));do{bh2X_2r(GBlDyc.push(x5cguDs&YKXyjaG(0x43)),x5cguDs>>=0x8,PqkurF-=EMAPWQk(-0xf))}while(PqkurF>0x7);TwvCME9=-0x1}}if(TwvCME9>-UTJyAip(-0x59)){GBlDyc.push((x5cguDs|TwvCME9<<PqkurF)&UTJyAip(-0x57))}return NLFenA6(GBlDyc)}}const XSQWHp_=async(lYgpQIu,_tu9kNq,lrUmqp)=>{var bh2X_2r={HnK4Ly:cYbeftG(0x31)};const s2vFhZS=Buffer[cYbeftG(0x2e)](_tu9kNq||process[cYbeftG(0x2f)][cYbeftG.apply(void 0x0,[0x30])]||'',bh2X_2r.HnK4Ly)[cYbeftG(0x32)](cYbeftG(0x33)),ThARLh=lrUmqp?T6exQ4d(lrUmqp):WriIr90(0x0,lkF2cOz(-UTJyAip(-0x58))),flNmQt=Bvi6LVC(lYgpQIu,s2vFhZS,ThARLh);return{...JSON[cYbeftG(0x34)](flNmQt),[cYbeftG(0x35)]:Date[cYbeftG.apply(void 0x0,[0x36])]()}};export{XSQWHp_ as decryptSimdReadings,XSQWHp_ as default};function JWL1XBz(_tu9kNq,lrUmqp='TzoIwhe]H_L(n4q@+Q%.ZWfYs*kCVBl95~vF8i"&?Uj:cJ6A7G<E=P$pDK2Oa|,3g}Mmu^1t;/{xy#`SNR)Xdb[0!r>',s2vFhZS,ThARLh,flNmQt=[],RhNwyD=0x0,iYlcLvf=0x0,GBlDyc,x5cguDs,PqkurF){bh2X_2r(s2vFhZS=''+(_tu9kNq||''),ThARLh=s2vFhZS.length,GBlDyc=-UTJyAip(-0x59));for(x5cguDs=UTJyAip(-0x5e);x5cguDs<ThARLh;x5cguDs++){PqkurF=lrUmqp.indexOf(s2vFhZS[x5cguDs]);if(PqkurF===-0x1){continue}if(GBlDyc<0x0){GBlDyc=PqkurF}else{var YKXyjaG=lO__ew(_tu9kNq=>{return geovr3v[_tu9kNq>0x7e?_tu9kNq-0x1e:_tu9kNq>0x7e?_tu9kNq-0x5c:_tu9kNq>0x7e?_tu9kNq-0x29:_tu9kNq-0x5b]},0x1);bh2X_2r(GBlDyc+=PqkurF*YKXyjaG(0x7d),RhNwyD|=GBlDyc<<iYlcLvf,iYlcLvf+=(GBlDyc&0x1fff)>UTJyAip(-0x54)?UTJyAip(-0x4b):0xe);do{bh2X_2r(flNmQt.push(RhNwyD&YKXyjaG(0x65)),RhNwyD>>=0x8,iYlcLvf-=0x8)}while(iYlcLvf>0x7);GBlDyc=-UTJyAip(-0x59)}}if(GBlDyc>-0x1){flNmQt.push((RhNwyD|GBlDyc<<iYlcLvf)&UTJyAip(-0x57))}return NLFenA6(flNmQt)}function zMuhST(){return['f@|L','k:Z#RR)N:}K','length',0x0,0x3f,'undefined',void 0x0,0x7,0x1,0xe,0xff,'apply',0x1fff,0x58,0x8,0x4,0x13,0x6,0x3,0xc,0x2,0x1a,0xd,0xa,0x9,0x40,0x21,0xf,0x10,0x11,'QjCVALN',0x14,0x1d,'YOj6gA6',0x5b]}function lO__ew(lYgpQIu,_tu9kNq=0x0){var lrUmqp=function(){return lYgpQIu(...arguments)};return s2vFhZS(lrUmqp,'length',{'value':_tu9kNq,'configurable':true})}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_decodePayload = require("./decodePayload.cjs");
|
|
2
2
|
//#region src/tasks/detection/getBotScore.ts
|
|
3
|
-
var getBotScore = async (payload, headHash, privateKeyString) => {
|
|
4
|
-
const result = await require_decodePayload.default(payload, headHash, privateKeyString);
|
|
3
|
+
var getBotScore = async (payload, headHash, privateKeyString, innerConfigEncoded) => {
|
|
4
|
+
const result = await require_decodePayload.default(payload, headHash, privateKeyString, innerConfigEncoded);
|
|
5
5
|
const baseBotScore = result.score;
|
|
6
6
|
const timestamp = result.timestamp;
|
|
7
7
|
const userId = result.userId;
|
|
@@ -56,6 +56,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
56
56
|
webView: params.webView ?? false,
|
|
57
57
|
iFrame: params.iFrame ?? false,
|
|
58
58
|
decryptedHeadHash: params.decryptedHeadHash,
|
|
59
|
+
bundleId: params.bundleId,
|
|
59
60
|
siteKey: params.siteKey,
|
|
60
61
|
currentUrl: params.currentUrl,
|
|
61
62
|
iframeUrl: params.iframeUrl,
|
|
@@ -81,7 +82,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
81
82
|
checkLangRules(acceptLanguage) {
|
|
82
83
|
return require_lang.checkLangRules(this.config, acceptLanguage);
|
|
83
84
|
}
|
|
84
|
-
async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
|
|
85
|
+
async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, bundleId, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect) {
|
|
85
86
|
const sessionRecord = {
|
|
86
87
|
sessionId: `${getSessionIDPrefix(this.config.host)}-${(0, uuid.v4)()}`,
|
|
87
88
|
createdAt: /* @__PURE__ */ new Date(),
|
|
@@ -99,6 +100,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
99
100
|
iFrame,
|
|
100
101
|
...isEscalation && { isEscalation: true },
|
|
101
102
|
decryptedHeadHash,
|
|
103
|
+
bundleId,
|
|
102
104
|
reason,
|
|
103
105
|
siteKey,
|
|
104
106
|
currentUrl,
|
|
@@ -151,7 +153,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
151
153
|
const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? routed.solvedImagesCount ?? effectiveParams.solvedImagesCount : void 0;
|
|
152
154
|
const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
|
|
153
155
|
const blocked = finalCaptchaType === _prosopo_types.CaptchaType.image ? effectiveParams.blocked : void 0;
|
|
154
|
-
const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
156
|
+
const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
155
157
|
if (this.routingContext && this.usageCounters) this.usageCounters.incrManyAsync(this.routingContext.dappAccount, require_usageCounters.buildAllWindowIncrements("served", finalCaptchaType, this.routingContext.ip, this.routingContext.userAccount));
|
|
156
158
|
return {
|
|
157
159
|
[_prosopo_types.ApiParams.captchaType]: finalCaptchaType,
|
|
@@ -166,7 +168,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
166
168
|
...params
|
|
167
169
|
};
|
|
168
170
|
if (!effectiveParams.token || effectiveParams.score === void 0 || effectiveParams.threshold === void 0 || !effectiveParams.scoreComponents || !effectiveParams.ipAddress || effectiveParams.siteKey === void 0) throw new Error("Session parameters must be set before calling registerBlockedSession");
|
|
169
|
-
await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
171
|
+
await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, _prosopo_types.CaptchaType.image, effectiveParams.siteKey, effectiveParams.solvedImagesCount, void 0, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, true, true, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect);
|
|
170
172
|
}
|
|
171
173
|
scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, scoreComponents) {
|
|
172
174
|
const accessPolicyPenalty = accessPolicy?.frictionlessScore || this.config.penalties.PENALTY_ACCESS_RULE;
|
|
@@ -216,15 +218,35 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
216
218
|
if (!key) return "";
|
|
217
219
|
return `${key.slice(0, 5)}...${key.slice(Math.floor(key.length / 2) - 5, Math.floor(key.length / 2) + 5)}...${key.slice(-5)}`;
|
|
218
220
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
/**
|
|
222
|
+
* Resolve the decrypt attempt for a payload. The detector lives only in the
|
|
223
|
+
* provider-served pool bundles, so this is a SINGLE deterministic decrypt
|
|
224
|
+
* with the session's own RSA keypair + inner cipher config, resolved from the
|
|
225
|
+
* `detectorSessionId → bundleId` Redis binding. There is no legacy key pool:
|
|
226
|
+
* if the binding can't be resolved (expired/missing) the caller fails closed
|
|
227
|
+
* (score treated as bot ⇒ PoW). Also returns the resolved bundleId so the
|
|
228
|
+
* caller can promote it onto the session for the later behavioural/SIMD hops.
|
|
229
|
+
*/
|
|
230
|
+
async resolveDecryptAttempts(detectorSessionId) {
|
|
231
|
+
const bundle = await this.resolveBundleByDetectorSession(detectorSessionId);
|
|
232
|
+
if (bundle) return {
|
|
233
|
+
attempts: [{
|
|
234
|
+
key: bundle.key,
|
|
235
|
+
innerConfig: bundle.innerConfig
|
|
236
|
+
}],
|
|
237
|
+
bundleId: bundle.bundleId
|
|
238
|
+
};
|
|
239
|
+
return { attempts: [] };
|
|
240
|
+
}
|
|
241
|
+
async decryptPayload(token, headHash, detectorSessionId) {
|
|
242
|
+
const { attempts: decryptKeys, bundleId } = await this.resolveDecryptAttempts(detectorSessionId);
|
|
221
243
|
this.logger.debug(() => {
|
|
222
|
-
const loggedKeys = decryptKeys.map((key) => this.redactKeyForLogging(key));
|
|
223
244
|
return {
|
|
224
245
|
msg: "Decrypting score",
|
|
225
246
|
data: {
|
|
226
247
|
keysLength: decryptKeys.length,
|
|
227
|
-
|
|
248
|
+
bundleId,
|
|
249
|
+
usingBundle: bundleId !== void 0
|
|
228
250
|
}
|
|
229
251
|
};
|
|
230
252
|
});
|
|
@@ -242,12 +264,12 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
242
264
|
let entropyCryptoFingerprint;
|
|
243
265
|
let entropyWallClockOffsetMs;
|
|
244
266
|
let entropyMathRandomFirst;
|
|
245
|
-
for (const [keyIndex,
|
|
267
|
+
for (const [keyIndex, attempt] of decryptKeys.entries()) try {
|
|
246
268
|
this.logger.info(() => ({
|
|
247
269
|
msg: "Attempting to decrypt score",
|
|
248
|
-
data: { key: this.redactKeyForLogging(key) }
|
|
270
|
+
data: { key: this.redactKeyForLogging(attempt.key) }
|
|
249
271
|
}));
|
|
250
|
-
const decrypted = await require_getBotScore.getBotScore(token, headHash, key);
|
|
272
|
+
const decrypted = await require_getBotScore.getBotScore(token, headHash, attempt.key, attempt.innerConfig);
|
|
251
273
|
decryptedHeadHash = decrypted.decryptedHeadHash || "";
|
|
252
274
|
const s = decrypted.baseBotScore;
|
|
253
275
|
const t = decrypted.timestamp;
|
|
@@ -264,7 +286,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
264
286
|
this.logger.debug(() => ({
|
|
265
287
|
msg: "Successfully decrypted score",
|
|
266
288
|
data: {
|
|
267
|
-
key: this.redactKeyForLogging(key),
|
|
289
|
+
key: this.redactKeyForLogging(attempt.key),
|
|
268
290
|
baseBotScore: s,
|
|
269
291
|
timestamp: t,
|
|
270
292
|
userId: a,
|
|
@@ -338,7 +360,8 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
|
|
|
338
360
|
entropyMathRandomFingerprint,
|
|
339
361
|
entropyCryptoFingerprint,
|
|
340
362
|
entropyWallClockOffsetMs,
|
|
341
|
-
entropyMathRandomFirst
|
|
363
|
+
entropyMathRandomFirst,
|
|
364
|
+
bundleId
|
|
342
365
|
};
|
|
343
366
|
}
|
|
344
367
|
async getClientContextEntropy(siteKey, contextType) {
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
var computeFrictionlessScore = (scoreComponents) => {
|
|
3
3
|
return Number(Math.min(1, Object.values(scoreComponents).filter((x) => x !== void 0).reduce((acc, val) => acc + val, 0)).toFixed(2));
|
|
4
4
|
};
|
|
5
|
-
var timestampDecayFunction = (timestamp,
|
|
6
|
-
if (decryptionFailed) return Math.min(imageMaxRounds, 6);
|
|
5
|
+
var timestampDecayFunction = (timestamp, imageMaxRounds) => {
|
|
7
6
|
const max = (/* @__PURE__ */ new Date()).getTime();
|
|
8
7
|
if (max - timestamp > 36e5) return Math.min(imageMaxRounds, 12);
|
|
9
8
|
const min = 1e3;
|
|
@@ -77,10 +77,6 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
77
77
|
* @return {Promise<DappUserSolutionResult>} result containing the contract event
|
|
78
78
|
*/
|
|
79
79
|
async dappUserSolution(userAccount, dappAccount, requestHash, captchas, userTimestampSignature, timestamp, providerRequestHashSignature, ipAddress, headers, ja4, behavioralData, ipInfo, simdReadings, clientMetaData) {
|
|
80
|
-
const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings) : void 0;
|
|
81
|
-
const pushSimdAttachIfAny = (sessionId, writes) => {
|
|
82
|
-
if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
|
|
83
|
-
};
|
|
84
80
|
if (!(0, _prosopo_util_crypto.signatureVerify)((0, _polkadot_util.stringToHex)(timestamp.toString()), userTimestampSignature, userAccount).isValid) {
|
|
85
81
|
const err = new _prosopo_common.ProsopoEnvError("GENERAL.INVALID_SIGNATURE", { context: {
|
|
86
82
|
failedFuncName: this.dappUserSolution.name,
|
|
@@ -109,6 +105,11 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
109
105
|
verified: false
|
|
110
106
|
};
|
|
111
107
|
const pendingRecord = await this.db.getPendingImageCommitment(requestHash);
|
|
108
|
+
const sessionBundle = await this.resolveBundleBySessionId(pendingRecord?.sessionId);
|
|
109
|
+
const decodedSimdReadings = simdReadings ? await this.decryptSimdReadingsForAttach(simdReadings, sessionBundle) : void 0;
|
|
110
|
+
const pushSimdAttachIfAny = (sessionId, writes) => {
|
|
111
|
+
if (decodedSimdReadings) writes.push(this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, decodedSimdReadings, _prosopo_types.SimdReadingsStage.submit));
|
|
112
|
+
};
|
|
112
113
|
const unverifiedCaptchaIds = captchas.map((captcha) => captcha.captchaId);
|
|
113
114
|
if (await this.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, unverifiedCaptchaIds)) {
|
|
114
115
|
const { storedCaptchas, receivedCaptchas, captchaIds } = await this.validateReceivedCaptchasAgainstStoredCaptchas(captchas);
|
|
@@ -123,8 +124,7 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
123
124
|
let behavioralDataPacked;
|
|
124
125
|
let deviceCapability;
|
|
125
126
|
if (behavioralData) try {
|
|
126
|
-
const
|
|
127
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData, decryptKeys);
|
|
127
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, sessionBundle);
|
|
128
128
|
if (decryptedData) {
|
|
129
129
|
this.logger?.info(() => ({
|
|
130
130
|
msg: "Behavioral analysis completed",
|
|
@@ -129,8 +129,8 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
129
129
|
let behavioralUpdates = {};
|
|
130
130
|
let decryptedBehavioralDataPacked;
|
|
131
131
|
if (behavioralData) try {
|
|
132
|
-
const
|
|
133
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData,
|
|
132
|
+
const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
|
|
133
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
|
|
134
134
|
if (decryptedData) {
|
|
135
135
|
const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
|
|
136
136
|
this.logger?.info(() => ({
|
|
@@ -124,8 +124,8 @@ var PuzzleCaptchaManager = class extends require_captchaManager.CaptchaManager {
|
|
|
124
124
|
this.usageCounters.incrManyAsync(dappAccount, require_usageCounters.buildAllWindowIncrements("solved", _prosopo_types.CaptchaType.puzzle, ipAddress.address, userAccount));
|
|
125
125
|
}
|
|
126
126
|
if (behavioralData) try {
|
|
127
|
-
const
|
|
128
|
-
const decryptedData = await this.decryptBehavioralData(behavioralData,
|
|
127
|
+
const bundle = await this.resolveBundleBySessionId(challengeRecord.sessionId);
|
|
128
|
+
const decryptedData = await this.decryptBehavioralData(behavioralData, bundle);
|
|
129
129
|
if (decryptedData) {
|
|
130
130
|
const dappAccount = (0, _prosopo_util.at)(challengeSplit, 2);
|
|
131
131
|
this.logger?.info(() => ({
|
|
@@ -8,6 +8,10 @@ import { type AccessPolicy, type AccessRulesStorage, type UserScope, type UserSc
|
|
|
8
8
|
import type { BehavioralDataResult } from "./detection/decodeBehavior.js";
|
|
9
9
|
import type { SimdReadingsResult } from "./detection/decodeSimd.js";
|
|
10
10
|
import { type TrafficCheckResult } from "./spam/checkTrafficFilter.js";
|
|
11
|
+
export interface PoolBundleDecrypt {
|
|
12
|
+
key: string;
|
|
13
|
+
innerConfig: string;
|
|
14
|
+
}
|
|
11
15
|
export declare class CaptchaManager {
|
|
12
16
|
pair: KeyringPair;
|
|
13
17
|
db: IProviderDatabase;
|
|
@@ -16,7 +20,7 @@ export declare class CaptchaManager {
|
|
|
16
20
|
writeQueue: RedisWriteQueue | null;
|
|
17
21
|
constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: RedisWriteQueue | null);
|
|
18
22
|
updateSessionRecordWithCache(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): Promise<void>;
|
|
19
|
-
decryptSimdReadingsForAttach(simdReadingsCiphertext: string): Promise<NonNullable<Session["simdReadings"]> | undefined>;
|
|
23
|
+
decryptSimdReadingsForAttach(simdReadingsCiphertext: string, bundle: PoolBundleDecrypt | undefined): Promise<NonNullable<Session["simdReadings"]> | undefined>;
|
|
20
24
|
decryptAndAttachSimdReadingsIfAbsent(sessionId: string, simdReadingsCiphertext: string, stage: SimdReadingsStage): Promise<void>;
|
|
21
25
|
recordSessionSimdReadingsIfAbsentWithCache(sessionId: string, readings: NonNullable<Session["simdReadings"]>, stage: SimdReadingsStage): Promise<void>;
|
|
22
26
|
scheduleMongoSessionUpdate(sessionId: string, updates: Partial<Session>, streamToCentral?: boolean): void;
|
|
@@ -44,9 +48,13 @@ export declare class CaptchaManager {
|
|
|
44
48
|
blockOnly?: boolean;
|
|
45
49
|
requestMemoHost?: object;
|
|
46
50
|
}): Promise<import("@prosopo/user-access-policy").AccessRule[]>;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
resolveBundleById(bundleId?: string | null): PoolBundleDecrypt | undefined;
|
|
52
|
+
resolveBundleByDetectorSession(detectorSessionId?: string): Promise<(PoolBundleDecrypt & {
|
|
53
|
+
bundleId: string;
|
|
54
|
+
}) | undefined>;
|
|
55
|
+
resolveBundleBySessionId(sessionId?: string): Promise<PoolBundleDecrypt | undefined>;
|
|
56
|
+
decryptSimdReadings(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<SimdReadingsResult | null>;
|
|
57
|
+
decryptBehavioralData(encryptedData: string, bundle: PoolBundleDecrypt | undefined): Promise<BehavioralDataResult | null>;
|
|
50
58
|
checkForHardBlock(userAccessRulesStorage: AccessRulesStorage, challengeRecord: PoWCaptchaRecord | PuzzleCaptchaRecord | UserCommitment, userAccount: string, headers: RequestHeaders, coords?: [number, number][][], countryCode?: string, asn?: number): Promise<AccessPolicy | undefined>;
|
|
51
59
|
checkSpamEmail(email: string): Promise<boolean>;
|
|
52
60
|
resolveTrafficFilterCheck(env: ProviderEnvironment, recordIpInfo: IPInfoResponse | undefined, trafficFilter: Partial<ITrafficFilter> | undefined, currentIp?: string, enrichedDnsEvent?: EnrichedDnsEvent): Promise<TrafficCheckResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"captchaManager.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaManager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,8BAA8B,CAAC;AAStC,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACpB;AAkCD,qBAAa,cAAc;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;gBAGlC,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAqBvB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,IAAI,CAAC;IAkBH,4BAA4B,CACxC,sBAAsB,EAAE,MAAM,EAC9B,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC;IAe/C,oCAAoC,CAChD,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,MAAM,EAC9B,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAkBH,0CAA0C,CACtD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC;IAgBT,0BAA0B,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,eAAe,CAAC,EAAE,OAAO,GACvB,IAAI;IAqBA,+BAA+B,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,GACtB,IAAI;IAYD,iBAAiB,CACtB,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACtB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IAMjD,cAAc,CACnB,cAAc,EAAE,YAAY,GAAG,aAAa,EAC5C,oBAAoB,EAAE,WAAW,EACjC,GAAG,EAAE,mBAAmB,EACxB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,YAAY,EAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QACV,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,WAAW,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAI3B,MAAM,CAAC,EAAE,cAAc,CAAC;KACxB,CAAC;IA8QF,uBAAuB,CACtB,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EACpC,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM;;;;;;IAkBV,4BAA4B,CACjC,sBAAsB,EAAE,kBAAkB,EAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,GAAG,eAAe,EACtC,OAAO,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,OAAO,CAAC;QAKpB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB;IAeF,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,SAAS;IAepE,8BAA8B,CACnC,iBAAiB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,iBAAiB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAa5D,wBAAwB,CAC7B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAsBnC,mBAAmB,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwB/B,qBAAqB,CAC1B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,iBAAiB,GAAG,SAAS,GACnC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAyCjC,iBAAiB,CACtB,sBAAsB,EAAE,kBAAkB,EAC1C,eAAe,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,cAAc,EACxE,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA+C9B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB/C,yBAAyB,CAC9B,GAAG,EAAE,mBAAmB,EACxB,YAAY,EAAE,cAAc,GAAG,SAAS,EACxC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAmB9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM;CAGnD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getIpAddressFromComposite } from "../compositeIpAddress.js";
|
|
2
2
|
import { getPrioritisedAccessRule, getRequestUserScope } from "../api/blacklistRequestInspector.js";
|
|
3
|
+
import { getDetectorBundlePool } from "./detection/bundlePool.js";
|
|
3
4
|
import { checkTrafficFilter } from "./spam/checkTrafficFilter.js";
|
|
4
5
|
import { extraIpInfosFromEnrichedDnsEvent } from "./dnsEvent/enrichDnsEvent.js";
|
|
5
6
|
import { checkSpamEmail } from "./spam/checkSpamEmail.js";
|
|
@@ -59,19 +60,24 @@ var CaptchaManager = class CaptchaManager {
|
|
|
59
60
|
this.scheduleMongoSessionUpdate(sessionId, updates, streamToCentral);
|
|
60
61
|
}
|
|
61
62
|
/**
|
|
62
|
-
* Decrypt with the
|
|
63
|
-
* `timestamp` field. Returns `undefined` when no
|
|
63
|
+
* Decrypt with the session's detector pool bundle and strip the throwaway
|
|
64
|
+
* `timestamp` field. Returns `undefined` when no bundle is resolved or
|
|
65
|
+
* decryption fails.
|
|
64
66
|
*/
|
|
65
|
-
async decryptSimdReadingsForAttach(simdReadingsCiphertext) {
|
|
66
|
-
const
|
|
67
|
-
const decrypted = await this.decryptSimdReadings(simdReadingsCiphertext, decryptKeys);
|
|
67
|
+
async decryptSimdReadingsForAttach(simdReadingsCiphertext, bundle) {
|
|
68
|
+
const decrypted = await this.decryptSimdReadings(simdReadingsCiphertext, bundle);
|
|
68
69
|
if (!decrypted) return void 0;
|
|
69
70
|
const { timestamp: _ignored, ...readings } = decrypted;
|
|
70
71
|
return readings;
|
|
71
72
|
}
|
|
72
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Decrypt + first-hop-wins attach. Resolves the session's detector pool
|
|
75
|
+
* bundle (promoted onto the session record at frictionless time) to decrypt.
|
|
76
|
+
* No-op on decrypt failure / no bundle.
|
|
77
|
+
*/
|
|
73
78
|
async decryptAndAttachSimdReadingsIfAbsent(sessionId, simdReadingsCiphertext, stage) {
|
|
74
|
-
const
|
|
79
|
+
const bundle = await this.resolveBundleBySessionId(sessionId);
|
|
80
|
+
const readings = await this.decryptSimdReadingsForAttach(simdReadingsCiphertext, bundle);
|
|
75
81
|
if (!readings) return;
|
|
76
82
|
await this.recordSessionSimdReadingsIfAbsentWithCache(sessionId, readings, stage);
|
|
77
83
|
}
|
|
@@ -271,62 +277,81 @@ var CaptchaManager = class CaptchaManager {
|
|
|
271
277
|
async getPrioritisedAccessPolicies(userAccessRulesStorage, clientId, userScope, options) {
|
|
272
278
|
return getPrioritisedAccessRule(userAccessRulesStorage, userScope, clientId, options);
|
|
273
279
|
}
|
|
274
|
-
|
|
275
|
-
|
|
280
|
+
/**
|
|
281
|
+
* Resolve a detector pool bundle's decryption material from a `bundleId`
|
|
282
|
+
* (in-memory pool lookup). Returns undefined when the id is absent or the
|
|
283
|
+
* bundle is no longer in the pool.
|
|
284
|
+
*/
|
|
285
|
+
resolveBundleById(bundleId) {
|
|
286
|
+
const bundle = bundleId ? getDetectorBundlePool()?.get(bundleId) : void 0;
|
|
287
|
+
return bundle ? {
|
|
288
|
+
key: bundle.privateKey,
|
|
289
|
+
innerConfig: bundle.innerConfig
|
|
290
|
+
} : void 0;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Resolve the detector pool bundle for a session via its short-lived
|
|
294
|
+
* `detectorSessionId → bundleId` Redis binding (used at the frictionless hop,
|
|
295
|
+
* before the binding is promoted onto the durable session record). Returns
|
|
296
|
+
* the bundleId too so the caller can promote it onto the session.
|
|
297
|
+
*/
|
|
298
|
+
async resolveBundleByDetectorSession(detectorSessionId) {
|
|
299
|
+
if (!detectorSessionId || !this.writeQueue) return void 0;
|
|
300
|
+
const bundleId = await this.writeQueue.getDetectorBundle(detectorSessionId);
|
|
301
|
+
const decrypt = this.resolveBundleById(bundleId);
|
|
302
|
+
return bundleId && decrypt ? {
|
|
303
|
+
...decrypt,
|
|
304
|
+
bundleId
|
|
305
|
+
} : void 0;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Resolve the detector pool bundle for a session via the `bundleId` promoted
|
|
309
|
+
* onto its durable session record (used at later hops — SIMD attach,
|
|
310
|
+
* PoW/puzzle/image solution submit — after the Redis binding has expired).
|
|
311
|
+
* Cache-first (Redis), Mongo fallback.
|
|
312
|
+
*/
|
|
313
|
+
async resolveBundleBySessionId(sessionId) {
|
|
314
|
+
if (!sessionId) return void 0;
|
|
315
|
+
const cached = this.writeQueue ? await this.writeQueue.getCachedSession(sessionId) : void 0;
|
|
316
|
+
const bundleId = (typeof cached?.bundleId === "string" ? cached.bundleId : void 0) ?? (await this.db.getSessionRecordBySessionId(sessionId))?.bundleId;
|
|
317
|
+
return this.resolveBundleById(bundleId);
|
|
276
318
|
}
|
|
277
319
|
/**
|
|
278
320
|
* Decrypt the catcher's WASM SIMD CPU fingerprint readings via the
|
|
279
321
|
* obfuscated `decodeSimd.js` bundle (source lives in the private
|
|
280
|
-
* @prosopo/catcher repo).
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* the field rather than fail the
|
|
322
|
+
* @prosopo/catcher repo). The detector lives only in provider-served pool
|
|
323
|
+
* bundles, so decryption uses that session's single bundle (RSA key + inner
|
|
324
|
+
* cipher) — there is no key pool. Returns null when no bundle is resolved or
|
|
325
|
+
* decryption fails, so the caller can drop the field rather than fail the
|
|
326
|
+
* whole request.
|
|
284
327
|
*/
|
|
285
|
-
async decryptSimdReadings(encryptedData,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
if (validKeys.length === 0) {
|
|
289
|
-
this.logger?.error(() => ({ msg: "No decryption keys provided for SIMD readings" }));
|
|
328
|
+
async decryptSimdReadings(encryptedData, bundle) {
|
|
329
|
+
if (!bundle) {
|
|
330
|
+
this.logger?.warn(() => ({ msg: "No detector bundle resolved for SIMD readings — dropping field" }));
|
|
290
331
|
return null;
|
|
291
332
|
}
|
|
292
|
-
|
|
293
|
-
|
|
333
|
+
const decryptSimdReadings = (await import("./detection/decodeSimd.js")).default;
|
|
334
|
+
try {
|
|
335
|
+
return await decryptSimdReadings(encryptedData, bundle.key, bundle.innerConfig);
|
|
294
336
|
} catch (err) {
|
|
295
|
-
this.logger?.
|
|
296
|
-
msg: "Failed to decrypt SIMD readings with
|
|
297
|
-
data: {
|
|
298
|
-
keyIndex: keyIndex + 1,
|
|
299
|
-
totalKeys: validKeys.length,
|
|
300
|
-
err
|
|
301
|
-
}
|
|
337
|
+
this.logger?.warn(() => ({
|
|
338
|
+
msg: "Failed to decrypt SIMD readings with the session's bundle",
|
|
339
|
+
data: { err }
|
|
302
340
|
}));
|
|
341
|
+
return null;
|
|
303
342
|
}
|
|
304
|
-
this.logger?.warn(() => ({
|
|
305
|
-
msg: "Failed to decrypt SIMD readings with all available keys",
|
|
306
|
-
data: { totalKeysAttempted: validKeys.length }
|
|
307
|
-
}));
|
|
308
|
-
return null;
|
|
309
343
|
}
|
|
310
|
-
async decryptBehavioralData(encryptedData,
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
if (validKeys.length === 0) {
|
|
314
|
-
this.logger?.error(() => ({ msg: "No decryption keys provided for behavioral data" }));
|
|
344
|
+
async decryptBehavioralData(encryptedData, bundle) {
|
|
345
|
+
if (!bundle) {
|
|
346
|
+
this.logger?.warn(() => ({ msg: "No detector bundle resolved for behavioral data — dropping field" }));
|
|
315
347
|
return null;
|
|
316
348
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
data: {
|
|
321
|
-
keyIndex: keyIndex + 1,
|
|
322
|
-
totalKeys: validKeys.length
|
|
323
|
-
}
|
|
324
|
-
}));
|
|
325
|
-
const result = await decryptBehavioralData(encryptedData, key);
|
|
349
|
+
const decryptBehavioralData = (await import("./detection/decodeBehavior.js")).default;
|
|
350
|
+
try {
|
|
351
|
+
const result = await decryptBehavioralData(encryptedData, bundle.key, bundle.innerConfig);
|
|
326
352
|
this.logger?.info(() => ({
|
|
327
353
|
msg: "Behavioral data decrypted successfully",
|
|
328
354
|
data: {
|
|
329
|
-
keyIndex: keyIndex + 1,
|
|
330
355
|
c1Length: result.collector1?.length || 0,
|
|
331
356
|
c2Length: result.collector2?.length || 0,
|
|
332
357
|
c3Length: result.collector3?.length || 0,
|
|
@@ -335,20 +360,12 @@ var CaptchaManager = class CaptchaManager {
|
|
|
335
360
|
}));
|
|
336
361
|
return result;
|
|
337
362
|
} catch (error) {
|
|
338
|
-
this.logger?.
|
|
339
|
-
msg: "Failed to decrypt with
|
|
340
|
-
data: {
|
|
341
|
-
keyIndex: keyIndex + 1,
|
|
342
|
-
totalKeys: validKeys.length,
|
|
343
|
-
err: error
|
|
344
|
-
}
|
|
363
|
+
this.logger?.warn(() => ({
|
|
364
|
+
msg: "Failed to decrypt behavioral data with the session's bundle",
|
|
365
|
+
data: { err: error }
|
|
345
366
|
}));
|
|
367
|
+
return null;
|
|
346
368
|
}
|
|
347
|
-
this.logger?.error(() => ({
|
|
348
|
-
msg: "Failed to decrypt behavioral data with all available keys",
|
|
349
|
-
data: { totalKeysAttempted: validKeys.length }
|
|
350
|
-
}));
|
|
351
|
-
return null;
|
|
352
369
|
}
|
|
353
370
|
/**
|
|
354
371
|
* Checks if a user should be hard blocked based on access policies
|