@evomap/evolver 1.89.10 → 1.89.12
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/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1367 -0
- package/README.ja-JP.md +1 -1
- package/README.ko-KR.md +1 -1
- package/README.md +90 -536
- package/README.public.md +578 -0
- package/README.zh-CN.md +1 -1
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +5 -3
- package/package.json +6 -18
- package/proxy-package.json +39 -0
- package/public.manifest.json +145 -0
- package/src/adapters/scripts/evolver-session-end.js +18 -37
- package/src/atp/atpExecute.js +27 -71
- package/src/atp/serviceHelper.js +28 -36
- package/src/config.js +17 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +440 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/gep/a2aProtocol.js +4463 -1
- package/src/gep/antiAbuseTelemetry.js +233 -1
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationDistiller.js +270 -0
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +712 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +608 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1449 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/oauthLogin.js +9 -3
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/privacyClient.js +10 -9
- package/src/gep/prompt.js +836 -1
- package/src/gep/questionGenerator.js +103 -0
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/savingsCore.js +112 -1
- package/src/gep/selector.js +602 -1
- package/src/gep/signals.js +85 -17
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +95 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +109 -1
- package/src/proxy/index.js +100 -3
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +108 -7
- package/src/proxy/server/routes.js +41 -7
- package/src/proxy/server/settings.js +6 -2
- package/src/proxy/sync/engine.js +31 -15
- package/src/proxy/sync/inbound.js +87 -9
- package/src/proxy/sync/outbound.js +57 -4
- package/src/proxy/trace/extractor.js +1403 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/refresh_stars_badge.js +0 -168
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/assets/gep/{genes.seed.json → genes.json} +0 -0
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
|
@@ -1 +1,233 @@
|
|
|
1
|
-
const _0x19c523=_0x587e;(function(_0x324514,_0x450303){const _0x303a1f=_0x587e,_0x3518f4=_0x324514();while(!![]){try{const _0x335b2f=-parseInt(_0x303a1f(0x16f,'\x57\x75\x36\x59'))/(-0xb3f+-0x40f*-0x3+-0xed)*(parseInt(_0x303a1f(0x22d,'\x4c\x76\x50\x4e'))/(0x187b+-0x22*-0x76+-0x2825))+-parseInt(_0x303a1f(0x17a,'\x37\x25\x6e\x51'))/(0x3*0xa43+-0x215a+0x294)*(-parseInt(_0x303a1f(0x204,'\x56\x59\x61\x36'))/(-0x2259*0x1+0x21*0xee+0x3af*0x1))+parseInt(_0x303a1f(0x109,'\x6f\x23\x24\x46'))/(0xe*-0x1fd+-0x3*0x843+0x34a4)*(parseInt(_0x303a1f(0x175,'\x7a\x63\x77\x26'))/(-0x23*-0x101+-0xec7+-0x1456))+-parseInt(_0x303a1f(0x195,'\x4c\x6a\x35\x70'))/(0x4*-0x65b+0x89*-0x19+0x26d4)+parseInt(_0x303a1f(0xeb,'\x55\x4b\x79\x29'))/(-0xb*-0x37f+0x8f4+-0x27*0x137)*(-parseInt(_0x303a1f(0x136,'\x58\x2a\x39\x4b'))/(0x52e+0x1e3d+-0x2362))+parseInt(_0x303a1f(0x162,'\x59\x42\x34\x38'))/(-0x2b*0x6e+0x1522*-0x1+-0x13d3*-0x2)+parseInt(_0x303a1f(0x105,'\x56\x4e\x70\x30'))/(-0x2552+-0xbcb*0x3+0x48be);if(_0x335b2f===_0x450303)break;else _0x3518f4['push'](_0x3518f4['shift']());}catch(_0x49eb35){_0x3518f4['push'](_0x3518f4['shift']());}}}(_0x3322,0x4d0dd*-0x1+-0x47*-0x19d3+0x7a622));const _0x5925d7=(function(){const _0x1289f5=_0x587e,_0x453e19={};_0x453e19[_0x1289f5(0x1d1,'\x6c\x62\x74\x57')]=_0x1289f5(0x207,'\x61\x36\x6e\x59');const _0x5c3f96=_0x453e19;let _0x28e630=!![];return function(_0x23a8a7,_0x208355){const _0x42c6fc=_0x1289f5,_0x328f2b={};_0x328f2b[_0x42c6fc(0x212,'\x35\x75\x54\x75')]=_0x42c6fc(0x1f9,'\x31\x59\x62\x4d'),_0x328f2b['\x49\x6b\x4e\x50\x42']=_0x5c3f96[_0x42c6fc(0x119,'\x79\x33\x5a\x52')];const _0x4fce29=_0x328f2b,_0x520690=_0x28e630?function(){const _0x1a356c=_0x42c6fc;if(_0x4fce29[_0x1a356c(0x21b,'\x4b\x44\x5a\x36')]===_0x4fce29[_0x1a356c(0x163,'\x51\x47\x43\x30')])_0x4bbaa0=_0x29b0a4['\x73\x74\x61\x74\x53\x79\x6e\x63'](_0x40e456);else{if(_0x208355){const _0x126054=_0x208355[_0x1a356c(0x219,'\x58\x2a\x39\x4b')](_0x23a8a7,arguments);return _0x208355=null,_0x126054;}}}:function(){};return _0x28e630=![],_0x520690;};}()),_0x17c4a4=_0x5925d7(this,function(){const _0x47313f=_0x587e,_0x288c77={};_0x288c77[_0x47313f(0x21c,'\x37\x25\x6e\x51')]=_0x47313f(0x13e,'\x57\x75\x36\x59')+_0x47313f(0x223,'\x23\x6c\x46\x36');const _0x4e7ad8=_0x288c77;return _0x17c4a4['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x47313f(0x187,'\x58\x2a\x39\x4b')](_0x47313f(0x237,'\x49\x58\x79\x29')+_0x47313f(0xe8,'\x31\x6a\x69\x2a'))[_0x47313f(0x10d,'\x33\x52\x5e\x61')]()[_0x47313f(0x1c2,'\x74\x52\x71\x69')+_0x47313f(0x14c,'\x61\x36\x6e\x59')](_0x17c4a4)[_0x47313f(0x19d,'\x4c\x6a\x35\x70')](_0x4e7ad8[_0x47313f(0x231,'\x49\x58\x79\x29')]);});_0x17c4a4();'use strict';const _0x53e339=require(_0x19c523(0x14d,'\x53\x30\x61\x46')),_0x2c7417=require('\x66\x73'),_0x4479ca=require('\x6f\x73'),_0x188aad=require(_0x19c523(0x25d,'\x35\x75\x54\x75')),{captureEnvFingerprint:_0x4a362c,envFingerprintKey:_0x218634}=require(_0x19c523(0x1ef,'\x25\x50\x43\x5d')+'\x67\x65\x72\x70\x72\x69\x6e\x74'),_0x1ce368=_0x19c523(0x1cb,'\x6c\x26\x29\x28')+_0x19c523(0x1f7,'\x73\x30\x31\x7a'),_0x2721b9=_0x19c523(0x11c,'\x55\x4b\x79\x29')+'\x73\x65\x5f\x72\x65\x64\x61\x63'+_0x19c523(0x180,'\x57\x75\x36\x59'),_0x1dd526=-0xf13+0x3*0x8b3+-0xaac,_0x5193bd=(-0x1f26+0x3ce*0x2+0x7dc*0x3)*(-0x1200+0x25f1+0x7*-0x247)*(0x1e20+0xba1+-0x78d*0x5);function _0xd0414d(_0x3580da){const _0x3e0425=_0x19c523,_0xef39b1={};_0xef39b1[_0x3e0425(0x1eb,'\x23\x6c\x46\x36')]=function(_0x325ef4,_0x315678){return _0x325ef4 instanceof _0x315678;},_0xef39b1[_0x3e0425(0x1f5,'\x59\x46\x37\x68')]=function(_0x77d357,_0x49f15c){return _0x77d357===_0x49f15c;};const _0x4e7c48=_0xef39b1;if(_0x4e7c48['\x57\x6a\x6c\x43\x61'](_0x3580da,Date))return _0x3580da[_0x3e0425(0x155,'\x57\x33\x4a\x33')+_0x3e0425(0x10e,'\x46\x79\x38\x48')]();if(_0x4e7c48['\x74\x70\x66\x44\x74'](typeof _0x3580da,'\x73\x74\x72\x69\x6e\x67')&&_0x3580da)return _0x3580da;return new Date()[_0x3e0425(0x120,'\x6b\x4d\x45\x71')+_0x3e0425(0x203,'\x51\x47\x43\x30')]();}function _0x20dacb(_0x1db3ed){const _0xae0606=_0x19c523,_0x3cf7a7={'\x63\x41\x4c\x7a\x67':function(_0x25b600,_0x7325c8){return _0x25b600(_0x7325c8);},'\x44\x53\x63\x49\x42':function(_0x18b00f,_0x1002fd){return _0x18b00f||_0x1002fd;},'\x54\x62\x75\x76\x70':function(_0x4939f2,_0x107dbe){return _0x4939f2===_0x107dbe;},'\x79\x77\x77\x69\x6b':_0xae0606(0x15e,'\x23\x6e\x73\x4c'),'\x70\x56\x6e\x70\x48':function(_0x58bf89,_0x105fcb){return _0x58bf89===_0x105fcb;},'\x4d\x55\x70\x72\x47':_0xae0606(0x157,'\x62\x73\x63\x4b')},_0x354694=_0x3cf7a7[_0xae0606(0x164,'\x59\x42\x34\x38')](String,_0x3cf7a7[_0xae0606(0x115,'\x21\x73\x45\x42')](_0x1db3ed,''))[_0xae0606(0x22b,'\x57\x33\x4a\x33')]()[_0xae0606(0x1e7,'\x46\x79\x38\x48')+_0xae0606(0x174,'\x55\x4b\x79\x29')]();return _0x3cf7a7[_0xae0606(0x1fc,'\x79\x33\x5a\x52')](_0x354694,'\x31')||_0x354694===_0x3cf7a7['\x79\x77\x77\x69\x6b']||_0x3cf7a7[_0xae0606(0x1f1,'\x71\x21\x59\x6b')](_0x354694,_0x3cf7a7[_0xae0606(0x1aa,'\x23\x6e\x73\x4c')])||_0x3cf7a7[_0xae0606(0xea,'\x51\x47\x43\x30')](_0x354694,'\x6f\x6e');}function _0x36fa76(_0x599d23,_0x13ee0d){const _0x2f2cae=_0x19c523,_0x436d76={'\x6e\x4b\x50\x6f\x76':function(_0x2e44b6,_0x46577c){return _0x2e44b6(_0x46577c);},'\x65\x59\x65\x6e\x46':_0x2f2cae(0x158,'\x46\x79\x38\x48')+'\x73\x65','\x58\x73\x74\x53\x67':function(_0x454ce4,_0x368fc0){return _0x454ce4||_0x368fc0;},'\x52\x6f\x45\x48\x77':_0x2f2cae(0xef,'\x79\x33\x5a\x52'),'\x75\x6c\x5a\x5a\x75':'\x68\x65\x78'},_0x35fa64=_0x599d23==null?'':_0x436d76[_0x2f2cae(0x160,'\x4c\x76\x50\x4e')](String,_0x599d23),_0x10c7bc=_0x13ee0d&&_0x13ee0d[_0x2f2cae(0x1ea,'\x51\x47\x43\x30')]?String(_0x13ee0d[_0x2f2cae(0x19a,'\x49\x74\x62\x75')]):'',_0x5124ba=_0x13ee0d&&_0x13ee0d[_0x2f2cae(0x24e,'\x4c\x6a\x35\x70')]?_0x436d76[_0x2f2cae(0x218,'\x79\x33\x5a\x52')](String,_0x13ee0d['\x70\x75\x72\x70\x6f\x73\x65']):_0x436d76[_0x2f2cae(0x1f2,'\x35\x75\x54\x75')];if(_0x436d76[_0x2f2cae(0x11b,'\x62\x73\x63\x4b')](!_0x35fa64,!_0x10c7bc))return null;return _0x53e339['\x63\x72\x65\x61\x74\x65\x48\x6d'+'\x61\x63'](_0x436d76[_0x2f2cae(0x1b3,'\x6c\x26\x29\x28')],_0x10c7bc)[_0x2f2cae(0x1b7,'\x55\x4b\x79\x29')](_0x5124ba)[_0x2f2cae(0x20b,'\x57\x33\x4a\x33')]('\x00')[_0x2f2cae(0x1a2,'\x6c\x62\x74\x57')](_0x35fa64)['\x64\x69\x67\x65\x73\x74'](_0x436d76[_0x2f2cae(0x1e8,'\x59\x46\x37\x68')])[_0x2f2cae(0x151,'\x49\x74\x62\x75')](0x1e72+-0x3*0x659+-0xb67,0x1385+0x7*0x10d+-0x1ac0);}function _0x587e(_0x50935c,_0x4eaa96){_0x50935c=_0x50935c-(0x39*-0x94+0x1*0x1e21+0x29*0x17);const _0x16dbc2=_0x3322();let _0x8b1007=_0x16dbc2[_0x50935c];if(_0x587e['\x77\x66\x6a\x7a\x7a\x52']===undefined){var _0x4b1783=function(_0x1c14da){const _0x17ad23='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x5bc82c='',_0x544dff='',_0x9d1d03=_0x5bc82c+_0x4b1783,_0x8c5d75=(''+function(){return-0x6dc+0x1*-0x2566+0x2c42;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x2fd*0x3+0x35*0x83+0x3*-0x60d);for(let _0x152cea=0x1*0x1baa+-0x1491+-0x719,_0x3912c2,_0xeecbaf,_0x3103ef=-0x6a8*-0x2+-0x134a*-0x2+0x6*-0x8a6;_0xeecbaf=_0x1c14da['\x63\x68\x61\x72\x41\x74'](_0x3103ef++);~_0xeecbaf&&(_0x3912c2=_0x152cea%(0x20*-0xc7+-0x1c51+-0x1*-0x3535)?_0x3912c2*(-0x32b+0x1c5a+-0x18ef*0x1)+_0xeecbaf:_0xeecbaf,_0x152cea++%(0x10d7*0x2+0x8f1+-0x2a9b))?_0x5bc82c+=_0x8c5d75||_0x9d1d03['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3103ef+(0xf51+0x2*0xa+0x1*-0xf5b))-(0x8b6+0x1c8b+-0x2537)!==-0x98+0xf8*-0x15+-0x1*-0x14f0?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x2*-0xfbf+-0x10c*-0x5+0x1*-0x23bb&_0x3912c2>>(-(-0xb52+0x1*0x16f9+-0x1*0xba5)*_0x152cea&-0x253f+-0x569*0x1+0x12*0x25f)):_0x152cea:0x9d1+0x25*-0x8+-0x2e3*0x3){_0xeecbaf=_0x17ad23['\x69\x6e\x64\x65\x78\x4f\x66'](_0xeecbaf);}for(let _0x2c2cf5=0x3e*-0x2+-0x559*0x6+0x2f6*0xb,_0x48c969=_0x5bc82c['\x6c\x65\x6e\x67\x74\x68'];_0x2c2cf5<_0x48c969;_0x2c2cf5++){_0x544dff+='\x25'+('\x30\x30'+_0x5bc82c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2c2cf5)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x2001*0x1+-0x287+0xa*-0x2f1))['\x73\x6c\x69\x63\x65'](-(-0x1*-0x21d6+0x682+-0x2856));}return decodeURIComponent(_0x544dff);};const _0x547113=function(_0x5020f7,_0x143052){let _0x1f392f=[],_0x29a15e=0x67*-0x2e+0x11f5+0x3*0x2f,_0x4d4c9e,_0x10eb5b='';_0x5020f7=_0x4b1783(_0x5020f7);let _0x2124a2;for(_0x2124a2=0x1*-0x2385+0x1a*-0x5e+0x2d11;_0x2124a2<-0x3*0x7dc+-0x125*-0x21+-0xd31;_0x2124a2++){_0x1f392f[_0x2124a2]=_0x2124a2;}for(_0x2124a2=-0x1cd0+-0x77*-0x47+-0x431;_0x2124a2<-0x2243+0x2*-0x655+0x2fed;_0x2124a2++){_0x29a15e=(_0x29a15e+_0x1f392f[_0x2124a2]+_0x143052['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2124a2%_0x143052['\x6c\x65\x6e\x67\x74\x68']))%(-0x8*-0x245+-0x2*0x836+-0xbc),_0x4d4c9e=_0x1f392f[_0x2124a2],_0x1f392f[_0x2124a2]=_0x1f392f[_0x29a15e],_0x1f392f[_0x29a15e]=_0x4d4c9e;}_0x2124a2=-0x1c19+-0x1*-0x23ef+-0x7d6,_0x29a15e=-0x24e1+-0x2*0x347+-0x1*-0x2b6f;for(let _0x3b9b9e=-0xb*0x297+0x2*0x2ef+-0x1*-0x169f;_0x3b9b9e<_0x5020f7['\x6c\x65\x6e\x67\x74\x68'];_0x3b9b9e++){_0x2124a2=(_0x2124a2+(-0x7*-0x14b+-0x1*0x74b+0x1c1*-0x1))%(0x13a9+-0x8e0+-0x9c9),_0x29a15e=(_0x29a15e+_0x1f392f[_0x2124a2])%(0x25db+0x22ab+-0xe4e*0x5),_0x4d4c9e=_0x1f392f[_0x2124a2],_0x1f392f[_0x2124a2]=_0x1f392f[_0x29a15e],_0x1f392f[_0x29a15e]=_0x4d4c9e,_0x10eb5b+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5020f7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3b9b9e)^_0x1f392f[(_0x1f392f[_0x2124a2]+_0x1f392f[_0x29a15e])%(0x235c+0x37*0x5b+-0x175*0x25)]);}return _0x10eb5b;};_0x587e['\x4f\x79\x56\x41\x73\x62']=_0x547113,_0x587e['\x68\x6d\x4a\x71\x46\x50']={},_0x587e['\x77\x66\x6a\x7a\x7a\x52']=!![];}const _0x516bfd=_0x16dbc2[-0x106d+0x19e6+-0x979],_0x4255b0=_0x50935c+_0x516bfd,_0x265f19=_0x587e['\x68\x6d\x4a\x71\x46\x50'][_0x4255b0];if(!_0x265f19){if(_0x587e['\x4f\x65\x70\x69\x50\x61']===undefined){const _0x35bb90=function(_0x5c8f9d){this['\x72\x69\x65\x48\x68\x48']=_0x5c8f9d,this['\x73\x53\x74\x6c\x6f\x67']=[-0x1c33*0x1+0x1*-0x1291+0x2ec5,-0x4*0x521+0x4*0x952+-0x10c4,-0x23e+-0x1b0a+0x2*0xea4],this['\x74\x79\x61\x5a\x73\x77']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6c\x69\x64\x68\x61\x77']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x74\x6c\x63\x4e\x6f\x78']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x35bb90['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x57\x61\x53\x55\x61\x78']=function(){const _0x2c43f0=new RegExp(this['\x6c\x69\x64\x68\x61\x77']+this['\x74\x6c\x63\x4e\x6f\x78']),_0x2fc768=_0x2c43f0['\x74\x65\x73\x74'](this['\x74\x79\x61\x5a\x73\x77']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x73\x53\x74\x6c\x6f\x67'][-0x1cbc+-0xc2b+0x28e8]:--this['\x73\x53\x74\x6c\x6f\x67'][0x20d8+0xbab+0x2c83*-0x1];return this['\x43\x62\x44\x41\x73\x72'](_0x2fc768);},_0x35bb90['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x43\x62\x44\x41\x73\x72']=function(_0x1cd5d6){if(!Boolean(~_0x1cd5d6))return _0x1cd5d6;return this['\x66\x4e\x4e\x43\x48\x69'](this['\x72\x69\x65\x48\x68\x48']);},_0x35bb90['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x66\x4e\x4e\x43\x48\x69']=function(_0x19b6f3){for(let _0x4032f4=0x1*0x18ad+-0xa3b+-0xe72,_0x2a9568=this['\x73\x53\x74\x6c\x6f\x67']['\x6c\x65\x6e\x67\x74\x68'];_0x4032f4<_0x2a9568;_0x4032f4++){this['\x73\x53\x74\x6c\x6f\x67']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x2a9568=this['\x73\x53\x74\x6c\x6f\x67']['\x6c\x65\x6e\x67\x74\x68'];}return _0x19b6f3(this['\x73\x53\x74\x6c\x6f\x67'][-0x53*0x65+-0x12b6*0x1+0x3375]);},(''+function(){return-0x6b*-0x2a+0x43c*0x2+-0x1a06;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x71+-0xbb5+0x1*0xb45)&&new _0x35bb90(_0x587e)['\x57\x61\x53\x55\x61\x78'](),_0x587e['\x4f\x65\x70\x69\x50\x61']=!![];}_0x8b1007=_0x587e['\x4f\x79\x56\x41\x73\x62'](_0x8b1007,_0x4eaa96),_0x587e['\x68\x6d\x4a\x71\x46\x50'][_0x4255b0]=_0x8b1007;}else _0x8b1007=_0x265f19;return _0x8b1007;}function _0x28ba97(_0x323879){const _0x6b7565=_0x19c523,_0x4730b6={};_0x4730b6[_0x6b7565(0x23e,'\x4c\x76\x50\x4e')]=function(_0x392dc1,_0x598cde){return _0x392dc1>_0x598cde;},_0x4730b6[_0x6b7565(0x1dc,'\x70\x5e\x69\x6a')]=_0x6b7565(0x16e,'\x23\x6c\x46\x36'),_0x4730b6[_0x6b7565(0x1b2,'\x62\x75\x29\x50')]=_0x6b7565(0x1da,'\x56\x4e\x70\x30');const _0x42a457=_0x4730b6;let _0x3ba9fa;try{_0x3ba9fa=_0x2c7417[_0x6b7565(0x144,'\x33\x72\x42\x64')](_0x323879);}catch(_0x2e197b){return null;}if(!_0x3ba9fa[_0x6b7565(0x1e0,'\x24\x55\x39\x79')]()||_0x42a457[_0x6b7565(0x1a7,'\x79\x33\x5a\x52')](_0x3ba9fa['\x73\x69\x7a\x65'],_0x5193bd))return null;const _0x4e4a52=_0x53e339[_0x6b7565(0x152,'\x21\x73\x45\x42')+'\x73\x68'](_0x42a457[_0x6b7565(0x192,'\x54\x77\x59\x56')]);return _0x4e4a52[_0x6b7565(0x16d,'\x62\x73\x63\x4b')](_0x2c7417[_0x6b7565(0x19b,'\x56\x59\x61\x36')+_0x6b7565(0x1ac,'\x7a\x66\x70\x6a')](_0x323879)),_0x4e4a52[_0x6b7565(0x1d3,'\x6f\x23\x24\x46')](_0x42a457[_0x6b7565(0xfa,'\x57\x75\x36\x59')]);}function _0x381247(_0x136ca8){const _0x5bea6b=_0x19c523,_0x517362={'\x43\x67\x7a\x66\x52':function(_0x44594a,_0x1b354b){return _0x44594a(_0x1b354b);},'\x77\x51\x76\x66\x76':_0x5bea6b(0x137,'\x74\x52\x71\x69')+_0x5bea6b(0x123,'\x56\x59\x61\x36'),'\x77\x66\x73\x76\x76':function(_0x2ee02b,_0x2bb977){return _0x2ee02b+_0x2bb977;},'\x48\x52\x44\x59\x4b':function(_0x2a58bb,_0x3c189d){return _0x2a58bb===_0x3c189d;},'\x69\x7a\x4a\x63\x71':_0x5bea6b(0x1a9,'\x33\x52\x5e\x61'),'\x44\x69\x71\x55\x4e':_0x5bea6b(0x23c,'\x7a\x63\x77\x26'),'\x4b\x73\x4c\x7a\x50':function(_0xf2d39b,_0x1beb97){return _0xf2d39b!==_0x1beb97;},'\x47\x47\x54\x71\x42':_0x5bea6b(0x146,'\x4c\x6a\x35\x70')};try{if(_0x517362[_0x5bea6b(0x12d,'\x70\x5e\x69\x6a')](_0x517362[_0x5bea6b(0xfd,'\x35\x75\x54\x75')],_0x5bea6b(0x165,'\x61\x36\x6e\x59'))){const _0x13eba0=_0x50fa6d||_0xd44c8e.env,_0x3745b1=_0x13eba0[_0x5bea6b(0xe1,'\x54\x77\x59\x56')+_0x5bea6b(0x112,'\x56\x59\x61\x36')+_0x5bea6b(0x113,'\x57\x75\x36\x59')]||_0x190761[_0x5bea6b(0x1d5,'\x7a\x63\x77\x26')](_0x3567d5[_0x5bea6b(0x259,'\x46\x79\x38\x48')](),_0x5bea6b(0x153,'\x33\x72\x42\x64'));return _0x517362[_0x5bea6b(0x142,'\x62\x75\x29\x50')](_0x11b5ea,_0x350f8f[_0x5bea6b(0x1b5,'\x58\x2a\x39\x4b')](_0x3745b1,_0x517362[_0x5bea6b(0x13b,'\x53\x30\x61\x46')]));}else return JSON[_0x5bea6b(0x147,'\x74\x52\x71\x69')](_0x2c7417[_0x5bea6b(0xf2,'\x62\x73\x63\x4b')+'\x53\x79\x6e\x63'](_0x136ca8,_0x517362[_0x5bea6b(0x198,'\x49\x74\x62\x75')]));}catch(_0x1bbb5b){if(_0x517362[_0x5bea6b(0x128,'\x79\x33\x5a\x52')](_0x517362[_0x5bea6b(0x12f,'\x5b\x42\x79\x49')],_0x517362[_0x5bea6b(0x1e2,'\x35\x75\x54\x75')]))try{const _0x55a8d9=_0x456895[_0x5bea6b(0x1c8,'\x4c\x6a\x35\x70')+_0x5bea6b(0x216,'\x4b\x44\x5a\x36')](_0x240962),_0x21e38d=_0x40939d[_0x5bea6b(0x11e,'\x79\x33\x5a\x52')+_0x5bea6b(0x135,'\x31\x59\x62\x4d')](_0x3361e7);return _0x21e38d[_0x5bea6b(0x116,'\x56\x4e\x70\x30')+'\x74\x68'](_0x517362[_0x5bea6b(0x1ce,'\x57\x75\x36\x59')](_0x55a8d9,_0x498f8c[_0x5bea6b(0x13d,'\x46\x35\x56\x47')]))?_0x21e38d:null;}catch(_0x5cee55){return null;}else return null;}}function _0x37c138(_0x3959dd){const _0x47f580=_0x19c523,_0x29788d={'\x5a\x64\x67\x47\x50':function(_0x36137c,_0x2e42a8){return _0x36137c==_0x2e42a8;},'\x42\x42\x63\x51\x59':function(_0x1f1f85,_0x56ace8){return _0x1f1f85(_0x56ace8);},'\x69\x66\x77\x4e\x63':_0x47f580(0x241,'\x56\x4e\x70\x30')+'\x73\x65','\x42\x7a\x45\x48\x56':'\x73\x68\x61\x32\x35\x36','\x47\x46\x4b\x4f\x6f':_0x47f580(0x1ad,'\x51\x47\x43\x30'),'\x77\x48\x55\x75\x6c':_0x47f580(0x235,'\x56\x59\x61\x36'),'\x55\x69\x6a\x44\x54':_0x47f580(0x17b,'\x38\x37\x79\x4a'),'\x73\x46\x63\x44\x41':function(_0x4c3c11,_0x8e58bd){return _0x4c3c11&_0x8e58bd;},'\x68\x56\x58\x64\x73':_0x47f580(0x10c,'\x62\x73\x63\x4b')+'\x6c\x79','\x6b\x67\x6f\x4c\x59':function(_0x1bb12d,_0x51af49){return _0x1bb12d!==_0x51af49;},'\x47\x6c\x67\x4e\x63':function(_0x371d8b,_0x5ecd14){return _0x371d8b&_0x5ecd14;},'\x54\x42\x49\x4a\x4d':_0x47f580(0x18f,'\x62\x75\x29\x50')+_0x47f580(0x10f,'\x58\x76\x33\x6f'),'\x63\x72\x75\x74\x41':'\x67\x72\x6f\x75\x70\x5f\x61\x63'+_0x47f580(0x226,'\x74\x52\x71\x69')};let _0x3a10e5;try{_0x3a10e5=_0x2c7417[_0x47f580(0x24f,'\x62\x75\x29\x50')](_0x3959dd);}catch(_0x4c8701){if(_0x29788d[_0x47f580(0x148,'\x62\x75\x29\x50')]===_0x47f580(0x1ab,'\x31\x6a\x69\x2a'))return _0x29788d[_0x47f580(0x14e,'\x53\x30\x61\x46')];else{const _0x519df0=TSLJAk[_0x47f580(0x16c,'\x6c\x62\x74\x57')](_0x2be240,null)?'':TSLJAk['\x42\x42\x63\x51\x59'](_0x58cb62,_0x3a998f),_0x228e17=_0x5a4bcc&&_0x587084[_0x47f580(0xfe,'\x6b\x4c\x4f\x29')]?TSLJAk[_0x47f580(0x167,'\x59\x42\x34\x38')](_0x23d9a1,_0x2be399[_0x47f580(0x208,'\x21\x73\x45\x42')]):'',_0x2b69c4=_0x426216&&_0x2fc859[_0x47f580(0x239,'\x33\x52\x5e\x61')]?TSLJAk[_0x47f580(0x141,'\x31\x59\x62\x4d')](_0xff7c6c,_0x36b409[_0x47f580(0x15c,'\x51\x47\x43\x30')]):TSLJAk[_0x47f580(0x238,'\x31\x59\x62\x4d')];if(!_0x519df0||!_0x228e17)return null;return _0x3a2cc6[_0x47f580(0x1c5,'\x4c\x6a\x35\x70')+'\x61\x63'](TSLJAk[_0x47f580(0x1fe,'\x23\x6e\x73\x4c')],_0x228e17)[_0x47f580(0x13f,'\x71\x21\x59\x6b')](_0x2b69c4)[_0x47f580(0x161,'\x73\x30\x31\x7a')]('\x00')[_0x47f580(0x176,'\x35\x75\x54\x75')](_0x519df0)['\x64\x69\x67\x65\x73\x74'](TSLJAk['\x47\x46\x4b\x4f\x6f'])[_0x47f580(0x16a,'\x55\x4b\x79\x29')](0x2*0x737+0xc92+0x4*-0x6c0,-0xd4a+0x1c81+-0xf17);}}if(!_0x3a10e5['\x69\x73\x46\x69\x6c\x65']())return _0x47f580(0x127,'\x59\x46\x37\x68');const _0x3afd7a=_0x29788d[_0x47f580(0x139,'\x59\x42\x34\x38')](_0x3a10e5[_0x47f580(0x170,'\x62\x75\x29\x50')],0x656*-0x4+0x805+-0x1352*-0x1);if(_0x29788d[_0x47f580(0xe9,'\x5b\x42\x79\x49')](_0x3afd7a,-0x20f5+0x1632+-0x581*-0x2)===0x59*0x35+-0x254a+0x12dd)return _0x29788d[_0x47f580(0xff,'\x71\x21\x59\x6b')];if(_0x29788d[_0x47f580(0x1f3,'\x6b\x4d\x45\x71')](_0x29788d[_0x47f580(0x20a,'\x38\x37\x79\x4a')](_0x3afd7a,0x3e*-0x68+-0x9cb+0x2302),0xe4e+-0xa*0x1cd+0x3b4))return _0x29788d[_0x47f580(0x258,'\x26\x6e\x76\x23')];return _0x29788d['\x63\x72\x75\x74\x41'];}function _0x5347be(){const _0x467b4f=_0x19c523;return _0x188aad[_0x467b4f(0x1fb,'\x38\x37\x79\x4a')](__dirname,'\x2e\x2e','\x2e\x2e');}function _0x3edc25(_0x1fb9ff,_0x1c810e){const _0x3f991e=_0x19c523,_0x23e3a6={};_0x23e3a6[_0x3f991e(0x1a1,'\x62\x75\x29\x50')]=function(_0x77d7f5,_0x4d1a6c){return _0x77d7f5!==_0x4d1a6c;},_0x23e3a6[_0x3f991e(0x1cc,'\x37\x25\x6e\x51')]=_0x3f991e(0x190,'\x46\x35\x56\x47');const _0x4f24ec=_0x23e3a6;try{if(_0x4f24ec[_0x3f991e(0x126,'\x4c\x6a\x35\x70')]('\x75\x7a\x4b\x49\x6b',_0x4f24ec[_0x3f991e(0x12b,'\x6c\x26\x29\x28')]))_0x595522=_0x2ce472[_0x3f991e(0x1d0,'\x46\x79\x38\x48')](_0x4b08f1);else{const _0xa8e058=_0x2c7417['\x72\x65\x61\x6c\x70\x61\x74\x68'+_0x3f991e(0x1df,'\x49\x58\x79\x29')](_0x1fb9ff),_0x1c1eed=_0x2c7417['\x72\x65\x61\x6c\x70\x61\x74\x68'+_0x3f991e(0x131,'\x33\x52\x5e\x61')](_0x1c810e);return _0x1c1eed[_0x3f991e(0x217,'\x21\x73\x45\x42')+'\x74\x68'](_0xa8e058+_0x188aad[_0x3f991e(0x134,'\x33\x72\x42\x64')])?_0x1c1eed:null;}}catch(_0x180b52){return null;}}function _0x2b9de1(_0x2dd864){const _0x5d37e5=_0x19c523,_0x1cc84b={'\x6a\x59\x4b\x73\x59':function(_0x97bbee,_0x598630,_0xe5d5e1){return _0x97bbee(_0x598630,_0xe5d5e1);},'\x44\x59\x72\x72\x46':_0x5d37e5(0x247,'\x5b\x42\x79\x49')+'\x6a\x73\x6f\x6e','\x66\x4e\x79\x4a\x66':function(_0x208c4d,_0x1e2c9b){return _0x208c4d(_0x1e2c9b);},'\x46\x4e\x56\x45\x77':function(_0x2f59d1,_0x5abd2c){return _0x2f59d1===_0x5abd2c;},'\x78\x54\x65\x54\x43':_0x5d37e5(0x23a,'\x71\x21\x59\x6b'),'\x44\x51\x6f\x67\x59':_0x5d37e5(0x214,'\x31\x6a\x69\x2a')+'\x6b\x2e\x79\x61\x6d\x6c','\x65\x52\x6b\x49\x41':_0x5d37e5(0xe6,'\x6c\x26\x29\x28')+'\x6b','\x6c\x78\x67\x56\x5a':_0x5d37e5(0x22c,'\x56\x4e\x70\x30')+'\x62','\x42\x58\x67\x70\x59':function(_0x18d68c,_0x5ea5d0){return _0x18d68c(_0x5ea5d0);}},_0x470310=_0x2dd864||_0x5347be(),_0x1e807b=_0x1cc84b['\x6a\x59\x4b\x73\x59'](_0x3edc25,_0x470310,_0x188aad[_0x5d37e5(0x1d9,'\x70\x5e\x69\x6a')](_0x470310,_0x1cc84b[_0x5d37e5(0x1ba,'\x21\x73\x45\x42')])),_0x3f0f08=_0x1e807b&&_0x1cc84b[_0x5d37e5(0x22a,'\x25\x50\x43\x5d')](_0x381247,_0x1e807b)||{},_0x178e76=_0x3f0f08&&_0x3f0f08[_0x5d37e5(0x183,'\x53\x30\x61\x46')]&&_0x1cc84b[_0x5d37e5(0x25a,'\x57\x75\x36\x59')](typeof _0x3f0f08[_0x5d37e5(0x229,'\x24\x55\x39\x79')][_0x5d37e5(0x121,'\x62\x75\x29\x50')],_0x1cc84b[_0x5d37e5(0xec,'\x59\x42\x34\x38')])?_0x3f0f08[_0x5d37e5(0xe4,'\x38\x37\x79\x4a')][_0x5d37e5(0xdf,'\x57\x75\x36\x59')]:null,_0x1d4862=_0x178e76?_0x3edc25(_0x470310,_0x188aad[_0x5d37e5(0x159,'\x49\x58\x79\x29')](_0x470310,_0x178e76)):null,_0x396727=[_0x5d37e5(0xed,'\x7a\x66\x70\x6a')+'\x6c\x6f\x63\x6b\x2e\x6a\x73\x6f'+'\x6e',_0x1cc84b[_0x5d37e5(0x12c,'\x70\x5e\x69\x6a')],_0x1cc84b['\x65\x52\x6b\x49\x41'],_0x1cc84b[_0x5d37e5(0x21d,'\x4b\x44\x5a\x36')]],_0x39996b={};for(const _0xdd734 of _0x396727){const _0x423901=_0x3edc25(_0x470310,_0x188aad[_0x5d37e5(0x1d5,'\x7a\x63\x77\x26')](_0x470310,_0xdd734)),_0xd0114d=_0x423901?_0x1cc84b[_0x5d37e5(0x10b,'\x4b\x44\x5a\x36')](_0x28ba97,_0x423901):null;if(_0xd0114d)_0x39996b[_0xdd734]=_0xd0114d;}return{'\x70\x61\x63\x6b\x61\x67\x65\x5f\x6a\x73\x6f\x6e\x5f\x68\x61\x73\x68':_0x1e807b?_0x1cc84b[_0x5d37e5(0x1b0,'\x49\x58\x79\x29')](_0x28ba97,_0x1e807b):null,'\x63\x6c\x69\x5f\x65\x6e\x74\x72\x79\x5f\x68\x61\x73\x68':_0x1d4862?_0x1cc84b[_0x5d37e5(0x193,'\x23\x6e\x73\x4c')](_0x28ba97,_0x1d4862):null,'\x6c\x6f\x63\x6b\x66\x69\x6c\x65\x5f\x68\x61\x73\x68\x65\x73':_0x39996b};}function _0xfad7d4(_0x284e5b){const _0xea9d00=_0x19c523,_0x5853f9={'\x44\x51\x4c\x74\x6d':_0xea9d00(0x188,'\x6b\x4d\x45\x71'),'\x48\x6f\x4a\x69\x44':function(_0x57bb31,_0x59d2f9){return _0x57bb31(_0x59d2f9);},'\x62\x68\x4c\x4f\x79':_0xea9d00(0x169,'\x6c\x62\x74\x57')+_0xea9d00(0x154,'\x6c\x62\x74\x57')},_0x50bfb1=_0x284e5b||process.env,_0x2e41ce=_0x50bfb1[_0xea9d00(0x1a6,'\x24\x55\x39\x79')+_0xea9d00(0x230,'\x74\x52\x71\x69')+'\x5f\x44\x49\x52']||_0x188aad['\x6a\x6f\x69\x6e'](_0x4479ca[_0xea9d00(0x166,'\x4c\x6a\x35\x70')](),_0x5853f9[_0xea9d00(0x1e1,'\x57\x75\x36\x59')]);return _0x5853f9[_0xea9d00(0x1c1,'\x53\x23\x46\x77')](_0x37c138,_0x188aad[_0xea9d00(0x101,'\x56\x59\x61\x36')](_0x2e41ce,_0x5853f9[_0xea9d00(0x1fa,'\x46\x79\x38\x48')]));}function _0x1a64a9(_0x11a8ef){const _0x2fa4c2=_0x19c523,_0x125a10={'\x73\x78\x62\x6f\x45':_0x2fa4c2(0x1dd,'\x57\x75\x36\x59'),'\x54\x4d\x76\x7a\x69':function(_0x54a35e,_0x58c7de){return _0x54a35e===_0x58c7de;},'\x55\x77\x4b\x75\x44':function(_0x1468cd,_0x1d4abd){return _0x1468cd(_0x1d4abd);},'\x75\x76\x44\x6d\x6f':function(_0x5b91f0,_0x56bc88){return _0x5b91f0(_0x56bc88);},'\x5a\x67\x47\x4a\x45':function(_0x21aefc,_0x177604){return _0x21aefc(_0x177604);},'\x4b\x68\x71\x6f\x41':function(_0x1321f9,_0x4b06c9){return _0x1321f9(_0x4b06c9);},'\x52\x75\x77\x59\x75':function(_0x561a03,_0x4b03a9){return _0x561a03(_0x4b03a9);},'\x61\x54\x72\x53\x4d':function(_0x1f1bb9,_0x14ea63){return _0x1f1bb9(_0x14ea63);}},_0x28840a=_0x11a8ef&&typeof _0x11a8ef===_0x125a10['\x73\x78\x62\x6f\x45']?_0x11a8ef:{},_0x4be3fc=_0x28840a[_0x2fa4c2(0x179,'\x51\x47\x43\x30')+'\x72\x69\x63\x73']&&_0x125a10['\x54\x4d\x76\x7a\x69'](typeof _0x28840a[_0x2fa4c2(0xdc,'\x75\x59\x33\x6c')+_0x2fa4c2(0x1cf,'\x58\x2a\x39\x4b')],_0x125a10['\x73\x78\x62\x6f\x45'])?_0x28840a[_0x2fa4c2(0x1b6,'\x49\x58\x79\x29')+_0x2fa4c2(0x103,'\x38\x37\x79\x4a')]:null;if(!_0x4be3fc)return null;return{'\x70\x65\x6e\x64\x69\x6e\x67':Number[_0x2fa4c2(0x132,'\x6c\x62\x74\x57')](_0x125a10[_0x2fa4c2(0x213,'\x56\x59\x61\x36')](Number,_0x4be3fc[_0x2fa4c2(0x130,'\x62\x75\x29\x50')]))?_0x125a10[_0x2fa4c2(0x24a,'\x58\x76\x33\x6f')](Number,_0x4be3fc[_0x2fa4c2(0x1a8,'\x5b\x42\x79\x49')]):null,'\x63\x6c\x61\x69\x6d\x65\x64':Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x125a10[_0x2fa4c2(0x21f,'\x62\x75\x29\x50')](Number,_0x4be3fc[_0x2fa4c2(0x11f,'\x31\x59\x62\x4d')]))?_0x125a10[_0x2fa4c2(0x252,'\x46\x79\x38\x48')](Number,_0x4be3fc[_0x2fa4c2(0x1d8,'\x21\x73\x45\x42')]):null,'\x63\x6f\x6d\x70\x6c\x65\x74\x65\x64':Number[_0x2fa4c2(0x111,'\x25\x50\x43\x5d')](_0x125a10[_0x2fa4c2(0x191,'\x57\x33\x4a\x33')](Number,_0x4be3fc[_0x2fa4c2(0x257,'\x7a\x66\x70\x6a')+'\x64']))?Number(_0x4be3fc[_0x2fa4c2(0x257,'\x7a\x66\x70\x6a')+'\x64']):null,'\x66\x61\x69\x6c\x65\x64':Number[_0x2fa4c2(0x1c7,'\x56\x4e\x70\x30')](Number(_0x4be3fc['\x66\x61\x69\x6c\x65\x64']))?_0x125a10['\x4b\x68\x71\x6f\x41'](Number,_0x4be3fc[_0x2fa4c2(0x25e,'\x55\x4b\x79\x29')]):null,'\x61\x76\x67\x5f\x63\x6f\x6d\x70\x6c\x65\x74\x69\x6f\x6e\x5f\x6d\x73':Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x125a10[_0x2fa4c2(0x186,'\x6b\x4d\x45\x71')](Number,_0x4be3fc[_0x2fa4c2(0x125,'\x4c\x6a\x35\x70')+_0x2fa4c2(0x1c4,'\x21\x73\x45\x42')+'\x73']))?_0x125a10[_0x2fa4c2(0x1b9,'\x31\x6a\x69\x2a')](Number,_0x4be3fc[_0x2fa4c2(0x1db,'\x57\x75\x36\x59')+_0x2fa4c2(0x211,'\x33\x72\x42\x64')+'\x73']):null};}function _0x1154d5(_0x41774c){const _0x5d1e35=_0x19c523,_0xd38e02={'\x6c\x49\x58\x51\x41':function(_0x47177e,_0x1bb894){return _0x47177e(_0x1bb894);},'\x47\x6f\x71\x73\x45':function(_0xd1e5de,_0x1a1cb5){return _0xd1e5de>_0x1a1cb5;}},_0x2f8426=_0xd38e02[_0x5d1e35(0x221,'\x79\x33\x5a\x52')](Number,_0x41774c&&_0x41774c['\x45\x56\x4f\x4c\x56\x45\x52\x5f'+_0x5d1e35(0x18d,'\x7a\x66\x70\x6a')+'\x53\x45\x5f\x54\x54\x4c\x5f\x44'+'\x41\x59\x53']);return Number[_0x5d1e35(0x236,'\x62\x73\x63\x4b')](_0x2f8426)&&_0xd38e02[_0x5d1e35(0x1d6,'\x6b\x4d\x45\x71')](_0x2f8426,0x8fc+0x1*0x158f+0x45d*-0x7)?Math[_0x5d1e35(0x117,'\x61\x36\x6e\x59')](_0x2f8426):_0x1dd526;}function _0x15c8fe(_0x966887,_0x5bf1c0,_0xb420f1){const _0x18b238=_0x19c523,_0x2b02d1={};_0x2b02d1[_0x18b238(0x15b,'\x79\x33\x5a\x52')]=function(_0x35282a,_0x5415b8){return _0x35282a||_0x5415b8;},_0x2b02d1[_0x18b238(0x243,'\x56\x4e\x70\x30')]=_0x18b238(0x1b4,'\x57\x33\x4a\x33')+'\x65\x72';const _0x33521a=_0x2b02d1;return{'\x66\x69\x65\x6c\x64':_0x966887,'\x72\x65\x61\x73\x6f\x6e':_0x5bf1c0,'\x65\x78\x70\x65\x63\x74\x65\x64\x5f\x73\x6f\x75\x72\x63\x65':_0x33521a['\x58\x46\x77\x73\x61'](_0xb420f1,_0x33521a[_0x18b238(0x1a3,'\x33\x52\x5e\x61')])};}function _0xee6086(_0xb5618c){const _0x3113fe=_0x19c523,_0x379dd9={'\x62\x79\x50\x58\x44':_0x3113fe(0x1a0,'\x23\x6c\x46\x36'),'\x72\x46\x58\x62\x7a':function(_0x1cf52e){return _0x1cf52e();},'\x70\x54\x67\x4b\x42':function(_0x2981c,_0x3a95d9,_0xe46efa){return _0x2981c(_0x3a95d9,_0xe46efa);},'\x4a\x75\x70\x6c\x47':_0x3113fe(0x228,'\x74\x52\x71\x69'),'\x66\x66\x54\x56\x7a':_0x3113fe(0x1c9,'\x6b\x4d\x45\x71')+'\x65','\x47\x41\x4e\x4c\x4f':function(_0x45c986,_0x3288c9,_0x1ff49f,_0x426904){return _0x45c986(_0x3288c9,_0x1ff49f,_0x426904);},'\x5a\x6d\x68\x4e\x71':_0x3113fe(0x253,'\x4b\x44\x5a\x36')+_0x3113fe(0x110,'\x24\x55\x39\x79'),'\x4e\x45\x6c\x5a\x78':_0x3113fe(0xe2,'\x62\x73\x63\x4b')+'\x73\x65\x5f\x73\x61\x6c\x74\x5f'+_0x3113fe(0x17c,'\x33\x72\x42\x64'),'\x78\x67\x49\x51\x50':_0x3113fe(0x23d,'\x24\x55\x39\x79')+_0x3113fe(0xde,'\x31\x6a\x69\x2a')+_0x3113fe(0x255,'\x25\x50\x43\x5d'),'\x4d\x41\x7a\x4f\x61':function(_0x357ca1,_0x17691d,_0x2fcb65,_0x3aee52){return _0x357ca1(_0x17691d,_0x2fcb65,_0x3aee52);},'\x4b\x57\x46\x63\x61':_0x3113fe(0x1e4,'\x56\x59\x61\x36')+'\x70','\x6a\x69\x64\x78\x6d':_0x3113fe(0x107,'\x57\x75\x36\x59')+_0x3113fe(0x233,'\x25\x50\x43\x5d')+_0x3113fe(0x1e5,'\x59\x42\x34\x38'),'\x79\x58\x58\x43\x4f':_0x3113fe(0x12a,'\x49\x58\x79\x29'),'\x74\x53\x44\x71\x65':function(_0x423528,_0xe96df2,_0x1191d9,_0x29366b){return _0x423528(_0xe96df2,_0x1191d9,_0x29366b);},'\x62\x4b\x73\x49\x47':function(_0x44656b,_0x4f7d16,_0x262878,_0x33d896){return _0x44656b(_0x4f7d16,_0x262878,_0x33d896);},'\x52\x55\x51\x52\x4e':'\x61\x63\x63\x6f\x75\x6e\x74\x5f'+_0x3113fe(0x168,'\x79\x33\x5a\x52'),'\x49\x4a\x6b\x72\x6c':_0x3113fe(0x1e3,'\x33\x52\x5e\x61')+_0x3113fe(0x19f,'\x56\x59\x61\x36')+_0x3113fe(0x194,'\x23\x6c\x46\x36'),'\x79\x75\x59\x57\x4a':_0x3113fe(0x246,'\x73\x30\x31\x7a')+_0x3113fe(0xfb,'\x57\x75\x36\x59'),'\x64\x73\x70\x6b\x53':_0x3113fe(0x1bb,'\x46\x79\x38\x48')+'\x5f\x73\x65\x72\x76\x69\x63\x65'+_0x3113fe(0x199,'\x24\x55\x39\x79')+'\x64','\x5a\x6e\x4c\x47\x74':_0x3113fe(0x225,'\x21\x73\x45\x42')+_0x3113fe(0x25b,'\x7a\x63\x77\x26'),'\x69\x4e\x49\x5a\x74':_0x3113fe(0x19c,'\x58\x2a\x39\x4b')+_0x3113fe(0x184,'\x56\x59\x61\x36')+_0x3113fe(0x133,'\x56\x4e\x70\x30'),'\x66\x72\x64\x79\x4d':_0x3113fe(0x1ec,'\x58\x2a\x39\x4b')+_0x3113fe(0xf5,'\x26\x6e\x76\x23'),'\x4f\x72\x56\x68\x51':_0x3113fe(0x19e,'\x71\x21\x59\x6b'),'\x50\x43\x71\x56\x59':_0x3113fe(0x254,'\x74\x52\x71\x69'),'\x7a\x48\x4d\x5a\x51':function(_0x5e279e,_0x22ddec){return _0x5e279e(_0x22ddec);},'\x49\x4b\x78\x4e\x4b':_0x3113fe(0x23b,'\x4c\x76\x50\x4e')+'\x66\x61\x75\x6c\x74','\x4e\x4c\x59\x66\x49':_0x3113fe(0x215,'\x4c\x76\x50\x4e')+_0x3113fe(0xe0,'\x74\x52\x71\x69'),'\x57\x4e\x42\x79\x51':function(_0x89feaa,_0xd8c6cd){return _0x89feaa(_0xd8c6cd);},'\x73\x57\x6a\x50\x4d':function(_0x1acc77,_0x10ec2e){return _0x1acc77!=_0x10ec2e;},'\x54\x54\x52\x66\x6f':function(_0x2b0c2a,_0x25db6e){return _0x2b0c2a(_0x25db6e);},'\x58\x4a\x79\x43\x59':function(_0x3d73bf,_0x396bf3){return _0x3d73bf(_0x396bf3);}},_0x5d2289=_0xb5618c||{},_0x5ca3c0=_0x5d2289[_0x3113fe(0xe5,'\x46\x79\x38\x48')]||process.env,_0x4eeef1=_0x5d2289[_0x3113fe(0x224,'\x73\x30\x31\x7a')+_0x3113fe(0x1b8,'\x46\x79\x38\x48')]||_0x4a362c(),_0x2133d6=_0x5d2289[_0x3113fe(0x208,'\x21\x73\x45\x42')]!=null?_0x5d2289[_0x3113fe(0x15d,'\x61\x36\x6e\x59')]:_0x5ca3c0[_0x3113fe(0x14b,'\x70\x5e\x69\x6a')+_0x3113fe(0xdd,'\x4c\x6a\x35\x70')+_0x3113fe(0x124,'\x54\x77\x59\x56')],_0x7c5a4a=_0x5d2289[_0x3113fe(0x1ee,'\x38\x37\x79\x4a')]||_0x5ca3c0['\x45\x56\x4f\x4c\x56\x45\x52\x5f'+_0x3113fe(0x1af,'\x79\x33\x5a\x52')+_0x3113fe(0x248,'\x56\x59\x61\x36')+'\x49\x44']||(_0x2133d6?_0x379dd9[_0x3113fe(0x118,'\x53\x23\x46\x77')]:null),_0x5df5ed=_0x5d2289[_0x3113fe(0xf7,'\x71\x21\x59\x6b')+_0x3113fe(0x244,'\x62\x73\x63\x4b')]||_0x379dd9[_0x3113fe(0x24b,'\x4b\x44\x5a\x36')](_0x5347be),_0xbca916=_0x379dd9[_0x3113fe(0x17e,'\x6c\x26\x29\x28')](_0x36fa76,_0x4eeef1&&_0x4eeef1[_0x3113fe(0x108,'\x53\x30\x61\x46')+'\x64'],{'\x73\x61\x6c\x74':_0x2133d6,'\x70\x75\x72\x70\x6f\x73\x65':_0x379dd9[_0x3113fe(0x1ca,'\x23\x6c\x46\x36')]}),_0x3d3463=_0x379dd9[_0x3113fe(0x17d,'\x61\x36\x6e\x59')](_0x36fa76,process[_0x3113fe(0x222,'\x37\x25\x6e\x51')](),{'\x73\x61\x6c\x74':_0x2133d6,'\x70\x75\x72\x70\x6f\x73\x65':_0x379dd9[_0x3113fe(0x15a,'\x75\x59\x33\x6c')]}),_0x48d907=[];if(!_0xbca916)_0x48d907[_0x3113fe(0x240,'\x25\x50\x43\x5d')](_0x379dd9[_0x3113fe(0x18b,'\x6c\x26\x29\x28')](_0x15c8fe,_0x379dd9[_0x3113fe(0x210,'\x55\x4b\x79\x29')],_0x379dd9[_0x3113fe(0x1b1,'\x73\x30\x31\x7a')],_0x379dd9[_0x3113fe(0x249,'\x5b\x42\x79\x49')]));if(!_0x3d3463)_0x48d907['\x70\x75\x73\x68'](_0x379dd9[_0x3113fe(0x104,'\x5b\x42\x79\x49')](_0x15c8fe,_0x3113fe(0x245,'\x57\x33\x4a\x33')+_0x3113fe(0x189,'\x46\x35\x56\x47')+_0x3113fe(0x1f0,'\x33\x52\x5e\x61'),_0x379dd9[_0x3113fe(0x1a5,'\x46\x79\x38\x48')],_0x379dd9[_0x3113fe(0x1bf,'\x24\x55\x39\x79')]));return _0x48d907[_0x3113fe(0x100,'\x55\x4b\x79\x29')](_0x379dd9[_0x3113fe(0x12e,'\x7a\x63\x77\x26')](_0x15c8fe,_0x379dd9[_0x3113fe(0x1ff,'\x58\x76\x33\x6f')],_0x379dd9[_0x3113fe(0x21a,'\x54\x77\x59\x56')],_0x3113fe(0x1fd,'\x79\x33\x5a\x52')),_0x379dd9[_0x3113fe(0x182,'\x51\x47\x43\x30')](_0x15c8fe,_0x3113fe(0xf9,'\x37\x25\x6e\x51'),_0x379dd9[_0x3113fe(0x206,'\x46\x79\x38\x48')],_0x379dd9['\x79\x58\x58\x43\x4f']),_0x379dd9[_0x3113fe(0x1be,'\x7a\x66\x70\x6a')](_0x15c8fe,'\x70\x72\x6f\x78\x79\x5f\x76\x70'+_0x3113fe(0x1bd,'\x53\x30\x61\x46')+_0x3113fe(0x21e,'\x35\x75\x54\x75')+_0x3113fe(0x202,'\x7a\x63\x77\x26'),_0x3113fe(0x13a,'\x37\x25\x6e\x51')+_0x3113fe(0x232,'\x31\x6a\x69\x2a')+_0x3113fe(0xe3,'\x21\x73\x45\x42'),_0x3113fe(0x106,'\x46\x79\x38\x48')),_0x379dd9['\x62\x4b\x73\x49\x47'](_0x15c8fe,_0x379dd9['\x52\x55\x51\x52\x4e'],_0x379dd9[_0x3113fe(0x201,'\x54\x77\x59\x56')],_0x379dd9[_0x3113fe(0x11a,'\x37\x25\x6e\x51')]),_0x15c8fe(_0x3113fe(0xfc,'\x6c\x26\x29\x28')+_0x3113fe(0x149,'\x5b\x42\x79\x49')+_0x3113fe(0x251,'\x23\x6c\x46\x36'),_0x379dd9[_0x3113fe(0x13c,'\x31\x6a\x69\x2a')],_0x3113fe(0xee,'\x58\x2a\x39\x4b')+_0x3113fe(0x14a,'\x62\x73\x63\x4b')),_0x379dd9[_0x3113fe(0x18a,'\x59\x42\x34\x38')](_0x15c8fe,_0x379dd9['\x5a\x6e\x4c\x47\x74'],_0x379dd9[_0x3113fe(0x23f,'\x49\x74\x62\x75')],_0x3113fe(0x1bc,'\x62\x73\x63\x4b'))),{'\x73\x63\x68\x65\x6d\x61\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x1ce368,'\x65\x76\x65\x6e\x74\x5f\x74\x79\x70\x65':_0x379dd9[_0x3113fe(0x20c,'\x21\x73\x45\x42')],'\x70\x75\x72\x70\x6f\x73\x65':_0x3113fe(0x156,'\x33\x72\x42\x64')+'\x73\x65','\x70\x69\x69\x5f\x63\x6c\x61\x73\x73':_0x379dd9[_0x3113fe(0x1ed,'\x38\x37\x79\x4a')],'\x63\x6f\x6e\x73\x65\x6e\x74\x5f\x6c\x65\x76\x65\x6c':_0x379dd9[_0x3113fe(0x114,'\x70\x5e\x69\x6a')],'\x72\x65\x74\x65\x6e\x74\x69\x6f\x6e\x5f\x74\x74\x6c\x5f\x64\x61\x79\x73':_0x379dd9[_0x3113fe(0x24d,'\x46\x35\x56\x47')](_0x1154d5,_0x5ca3c0),'\x70\x6f\x6c\x69\x63\x79\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x5ca3c0[_0x3113fe(0x17f,'\x31\x6a\x69\x2a')+_0x3113fe(0x178,'\x24\x55\x39\x79')+'\x53\x45\x5f\x50\x4f\x4c\x49\x43'+_0x3113fe(0x15f,'\x70\x5e\x69\x6a')+'\x4e']||_0x379dd9[_0x3113fe(0x11d,'\x56\x59\x61\x36')],'\x72\x65\x64\x61\x63\x74\x69\x6f\x6e\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x2721b9,'\x73\x6f\x75\x72\x63\x65':_0x5d2289[_0x3113fe(0x196,'\x59\x42\x34\x38')]||'\x65\x76\x6f\x6c\x76\x65\x72\x2d'+_0x3113fe(0x143,'\x56\x4e\x70\x30'),'\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x5f\x61\x74':_0xd0414d(_0x5d2289[_0x3113fe(0xf6,'\x59\x42\x34\x38')]),'\x73\x6f\x75\x72\x63\x65\x5f\x63\x6f\x6e\x66\x69\x64\x65\x6e\x63\x65':{'\x6e\x6f\x64\x65\x5f\x69\x64\x65\x6e\x74\x69\x74\x79':_0x379dd9[_0x3113fe(0x18c,'\x26\x6e\x76\x23')],'\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x74\x65\x67\x72\x69\x74\x79':_0x379dd9[_0x3113fe(0x1f6,'\x57\x75\x36\x59')],'\x74\x61\x73\x6b\x5f\x6d\x65\x74\x72\x69\x63\x73':_0x379dd9[_0x3113fe(0x227,'\x58\x76\x33\x6f')],'\x6e\x65\x74\x77\x6f\x72\x6b\x5f\x73\x6f\x75\x72\x63\x65':_0x379dd9[_0x3113fe(0x250,'\x53\x30\x61\x46')],'\x61\x63\x63\x6f\x75\x6e\x74\x5f\x73\x65\x63\x75\x72\x69\x74\x79':_0x3113fe(0x140,'\x58\x76\x33\x6f')+_0x3113fe(0x1c0,'\x33\x72\x42\x64')+_0x3113fe(0x1ae,'\x38\x37\x79\x4a'),'\x70\x61\x79\x6f\x75\x74':_0x379dd9[_0x3113fe(0x129,'\x49\x74\x62\x75')],'\x72\x69\x73\x6b\x5f\x64\x65\x63\x69\x73\x69\x6f\x6e':_0x379dd9[_0x3113fe(0x102,'\x21\x73\x45\x42')]},'\x69\x64\x65\x6e\x74\x69\x74\x79':{'\x6e\x6f\x64\x65\x5f\x69\x64':_0x5d2289[_0x3113fe(0x22f,'\x55\x4b\x79\x29')]||null,'\x61\x63\x63\x6f\x75\x6e\x74\x5f\x69\x64':null,'\x6f\x72\x67\x5f\x69\x64':null},'\x64\x65\x76\x69\x63\x65':{'\x64\x65\x76\x69\x63\x65\x5f\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d':_0xbca916,'\x77\x6f\x72\x6b\x73\x70\x61\x63\x65\x5f\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d':_0x3d3463,'\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d\x5f\x73\x61\x6c\x74\x5f\x69\x64':_0x7c5a4a,'\x65\x6e\x76\x5f\x66\x69\x6e\x67\x65\x72\x70\x72\x69\x6e\x74\x5f\x6b\x65\x79':_0x218634(_0x4eeef1),'\x70\x6c\x61\x74\x66\x6f\x72\x6d':_0x4eeef1[_0x3113fe(0x20f,'\x33\x72\x42\x64')]||null,'\x61\x72\x63\x68':_0x4eeef1[_0x3113fe(0xf3,'\x21\x73\x45\x42')]||null,'\x6f\x73\x5f\x72\x65\x6c\x65\x61\x73\x65':_0x4eeef1[_0x3113fe(0xe7,'\x56\x59\x61\x36')+'\x73\x65']||null,'\x6e\x6f\x64\x65\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4eeef1[_0x3113fe(0x10a,'\x24\x55\x39\x79')+'\x73\x69\x6f\x6e']||null,'\x65\x76\x6f\x6c\x76\x65\x72\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4eeef1[_0x3113fe(0x20e,'\x33\x72\x42\x64')+'\x76\x65\x72\x73\x69\x6f\x6e']||null,'\x63\x6c\x69\x65\x6e\x74':_0x4eeef1[_0x3113fe(0x200,'\x57\x33\x4a\x33')]||null,'\x63\x6c\x69\x65\x6e\x74\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4eeef1[_0x3113fe(0x20d,'\x51\x47\x43\x30')+'\x65\x72\x73\x69\x6f\x6e']||null,'\x6d\x6f\x64\x65\x6c':_0x4eeef1[_0x3113fe(0x1c6,'\x33\x72\x42\x64')]||null,'\x72\x65\x67\x69\x6f\x6e':_0x4eeef1[_0x3113fe(0x185,'\x58\x2a\x39\x4b')]||null,'\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72':!!_0x4eeef1[_0x3113fe(0x220,'\x46\x35\x56\x47')+'\x72']},'\x69\x6e\x74\x65\x67\x72\x69\x74\x79':_0x379dd9[_0x3113fe(0xf1,'\x62\x75\x29\x50')](_0x2b9de1,_0x5df5ed),'\x6c\x6f\x63\x61\x6c\x5f\x73\x65\x63\x75\x72\x69\x74\x79\x5f\x62\x6f\x75\x6e\x64\x61\x72\x79':{'\x70\x72\x6f\x78\x79\x5f\x62\x69\x6e\x64\x5f\x61\x64\x64\x72\x65\x73\x73\x5f\x63\x6c\x61\x73\x73':_0x3113fe(0x150,'\x56\x59\x61\x36'),'\x70\x72\x6f\x78\x79\x5f\x70\x6f\x72\x74\x5f\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64':_0x379dd9['\x73\x57\x6a\x50\x4d'](_0x5d2289[_0x3113fe(0x1f8,'\x56\x4e\x70\x30')+_0x3113fe(0x172,'\x35\x75\x54\x75')+_0x3113fe(0x1de,'\x62\x75\x29\x50')],null)?!!_0x5d2289[_0x3113fe(0x256,'\x26\x6e\x76\x23')+_0x3113fe(0xf8,'\x21\x73\x45\x42')+_0x3113fe(0x1d4,'\x59\x42\x34\x38')]:_0x20dacb(_0x5ca3c0[_0x3113fe(0x18e,'\x26\x6e\x76\x23')+_0x3113fe(0x1f4,'\x49\x58\x79\x29')])||!!_0x5ca3c0[_0x3113fe(0x18e,'\x26\x6e\x76\x23')+_0x3113fe(0x242,'\x70\x5e\x69\x6a')+'\x54'],'\x73\x65\x74\x74\x69\x6e\x67\x73\x5f\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x5f\x63\x6c\x61\x73\x73':_0x379dd9[_0x3113fe(0x1a4,'\x73\x30\x31\x7a')](_0xfad7d4,_0x5ca3c0)},'\x74\x61\x73\x6b\x5f\x74\x69\x6d\x69\x6e\x67':_0x379dd9[_0x3113fe(0x25c,'\x71\x21\x59\x6b')](_0x1a64a9,_0x5d2289['\x74\x61\x73\x6b\x4d\x65\x74\x61']),'\x75\x6e\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x5f\x66\x69\x65\x6c\x64\x73':_0x48d907};}function _0x3322(){const _0x1042a9=['\x57\x51\x6e\x53\x74\x53\x6b\x4e\x74\x74\x46\x64\x53\x4c\x34','\x45\x38\x6b\x71\x57\x37\x57','\x41\x6d\x6b\x71\x57\x50\x5a\x63\x47\x43\x6b\x4d','\x6c\x76\x52\x64\x48\x49\x56\x63\x52\x47','\x57\x35\x78\x64\x4b\x48\x68\x64\x4b\x71\x6d','\x57\x51\x64\x64\x55\x75\x78\x63\x55\x61','\x57\x50\x33\x64\x47\x6d\x6b\x63\x57\x36\x65\x45','\x57\x36\x53\x49\x57\x37\x31\x43\x57\x34\x79','\x67\x53\x6f\x47\x57\x51\x69\x4e\x7a\x71','\x57\x37\x4c\x32\x68\x6d\x6f\x4e\x76\x78\x39\x35\x57\x35\x79','\x43\x67\x2f\x64\x4a\x53\x6b\x74\x57\x36\x57','\x57\x37\x42\x64\x49\x6d\x6f\x5a\x57\x4f\x76\x52','\x61\x47\x79\x64\x41\x76\x46\x64\x52\x58\x79','\x57\x52\x50\x6e\x57\x51\x37\x63\x4f\x6d\x6b\x2f','\x57\x4f\x7a\x41\x57\x52\x4e\x63\x49\x43\x6b\x51\x57\x36\x30\x6a\x46\x61','\x70\x43\x6f\x33\x57\x52\x6e\x56\x46\x61','\x57\x50\x68\x64\x54\x53\x6b\x67\x66\x4a\x47','\x6e\x33\x4e\x64\x53\x53\x6f\x76\x70\x32\x71','\x57\x4f\x65\x59\x57\x4f\x6d\x30\x73\x47','\x71\x38\x6b\x68\x42\x30\x4a\x64\x4a\x38\x6f\x49','\x74\x53\x6b\x6b\x57\x36\x4b','\x46\x73\x64\x64\x52\x38\x6b\x41\x57\x50\x2f\x64\x54\x43\x6b\x2b','\x57\x34\x38\x30\x57\x36\x64\x64\x48\x6d\x6f\x45\x57\x37\x69\x30\x74\x4b\x4c\x57\x76\x72\x79\x49','\x57\x37\x37\x64\x49\x43\x6f\x42\x57\x52\x6a\x2f','\x57\x34\x66\x78\x57\x37\x39\x68\x74\x71','\x43\x38\x6f\x6b\x57\x4f\x64\x63\x50\x47','\x57\x35\x65\x68\x57\x36\x76\x79\x57\x37\x50\x31\x73\x59\x6d','\x6e\x57\x38\x78\x73\x66\x47','\x69\x77\x78\x64\x56\x38\x6f\x72\x6a\x78\x75','\x7a\x53\x6f\x7a\x57\x4f\x4a\x63\x51\x38\x6b\x4a','\x72\x6d\x6b\x69\x57\x36\x46\x64\x4d\x49\x4a\x63\x53\x65\x2f\x63\x4b\x71','\x57\x4f\x52\x63\x51\x73\x65\x4c\x57\x51\x4a\x64\x4a\x48\x39\x4a','\x57\x50\x2f\x63\x53\x59\x38\x39\x57\x52\x4a\x64\x48\x62\x39\x72','\x57\x34\x74\x63\x48\x31\x4c\x58\x43\x57','\x57\x4f\x70\x63\x55\x4a\x4f\x47\x57\x52\x68\x64\x48\x74\x6a\x72','\x69\x32\x78\x64\x4c\x61\x64\x63\x4b\x47','\x68\x62\x56\x64\x49\x53\x6b\x46\x57\x52\x57','\x57\x36\x46\x63\x4d\x38\x6f\x64\x61\x66\x46\x64\x4f\x53\x6f\x34\x57\x51\x57','\x57\x51\x46\x64\x56\x68\x6d\x51\x68\x6d\x6b\x59\x57\x34\x76\x78','\x57\x51\x50\x58\x57\x50\x6c\x63\x53\x61','\x43\x38\x6f\x46\x57\x4f\x33\x63\x4f\x6d\x6b\x41\x77\x6d\x6f\x58\x68\x47','\x57\x4f\x62\x4b\x57\x4f\x56\x63\x55\x43\x6b\x35','\x66\x68\x6c\x63\x51\x6d\x6f\x63\x7a\x71','\x57\x51\x69\x72\x57\x4f\x57\x2b\x73\x57','\x57\x50\x6a\x55\x57\x4f\x56\x63\x4c\x53\x6f\x4e','\x57\x52\x54\x48\x57\x50\x6c\x63\x4d\x53\x6b\x79','\x57\x50\x76\x57\x57\x50\x56\x63\x48\x43\x6f\x68','\x70\x67\x6c\x64\x47\x63\x64\x63\x48\x47\x75\x74\x6c\x71','\x57\x50\x34\x39\x57\x36\x50\x37\x57\x4f\x69','\x57\x37\x6c\x64\x47\x4b\x54\x6a\x77\x4c\x37\x64\x54\x43\x6f\x70','\x57\x4f\x6a\x4d\x57\x4f\x70\x63\x48\x38\x6b\x6f','\x57\x50\x31\x31\x57\x52\x6d','\x57\x4f\x70\x63\x48\x43\x6b\x67\x62\x61','\x64\x6d\x6f\x52\x57\x37\x4f\x78\x70\x43\x6f\x35\x57\x50\x74\x63\x4b\x57','\x43\x53\x6f\x63\x57\x50\x2f\x63\x55\x43\x6b\x58\x73\x53\x6f\x66\x61\x57','\x64\x33\x4a\x63\x47\x6d\x6f\x2b\x6c\x4c\x33\x63\x4c\x77\x65','\x57\x50\x74\x64\x52\x43\x6b\x7a\x65\x58\x61','\x63\x68\x4a\x63\x48\x43\x6f\x4b\x6a\x66\x4f','\x74\x43\x6b\x47\x77\x61','\x57\x36\x53\x6e\x75\x53\x6b\x64\x78\x71','\x69\x67\x46\x64\x53\x53\x6f\x44','\x57\x36\x54\x58\x68\x43\x6b\x58\x71\x65\x62\x31\x57\x34\x38','\x57\x37\x78\x63\x4f\x68\x34\x4c\x6f\x53\x6b\x72\x57\x34\x58\x35','\x6a\x38\x6f\x41\x57\x35\x4f\x75\x62\x53\x6f\x65\x57\x52\x52\x63\x55\x71','\x57\x37\x64\x63\x48\x76\x76\x41\x73\x38\x6f\x77','\x70\x31\x4a\x63\x50\x38\x6f\x7a\x64\x4e\x68\x63\x56\x4c\x43','\x57\x52\x46\x64\x4c\x76\x4a\x63\x4a\x6d\x6f\x67','\x57\x37\x78\x63\x48\x53\x6f\x77\x68\x57\x5a\x64\x51\x38\x6f\x5a\x57\x50\x61','\x57\x36\x38\x57\x74\x53\x6b\x37\x74\x72\x74\x64\x56\x32\x38','\x41\x66\x7a\x70\x72\x5a\x48\x52\x68\x53\x6f\x32\x72\x43\x6b\x61\x57\x52\x2f\x63\x53\x53\x6f\x72','\x63\x49\x6c\x64\x4b\x43\x6b\x57\x57\x52\x69','\x57\x35\x5a\x64\x52\x38\x6b\x39\x57\x34\x6e\x53\x57\x50\x6c\x64\x56\x38\x6f\x35','\x57\x35\x52\x63\x4e\x4a\x78\x64\x4a\x38\x6b\x43\x57\x50\x78\x63\x47\x77\x69','\x41\x67\x56\x64\x4b\x38\x6b\x4b\x57\x36\x79','\x7a\x43\x6b\x43\x57\x36\x6d\x44\x57\x34\x68\x63\x56\x6d\x6b\x30','\x41\x38\x6b\x59\x57\x4f\x64\x63\x4d\x6d\x6b\x61\x65\x61','\x57\x51\x4a\x64\x56\x33\x4b\x55\x68\x53\x6f\x52\x57\x37\x35\x74','\x41\x43\x6b\x71\x7a\x72\x65','\x78\x6d\x6b\x47\x75\x77\x6e\x4a\x62\x32\x6e\x6f','\x57\x52\x68\x64\x4e\x78\x69\x52\x67\x57','\x57\x34\x5a\x64\x52\x68\x61\x47\x57\x51\x57','\x57\x37\x30\x32\x77\x6d\x6b\x48','\x57\x36\x48\x51\x62\x38\x6f\x32\x43\x30\x35\x30\x57\x35\x65','\x63\x73\x30\x48\x6b\x66\x6d\x69\x7a\x53\x6f\x67','\x57\x36\x48\x6f\x65\x43\x6f\x6b\x42\x47','\x57\x35\x52\x64\x53\x38\x6b\x70','\x69\x33\x52\x64\x51\x43\x6f\x42\x69\x4d\x62\x57\x6d\x47','\x61\x43\x6f\x57\x57\x36\x34\x6f\x6e\x43\x6f\x30\x57\x50\x64\x63\x4d\x71','\x41\x38\x6f\x39\x64\x53\x6f\x72\x43\x38\x6f\x44\x73\x62\x34','\x67\x49\x4e\x64\x4e\x53\x6b\x35\x57\x52\x4e\x64\x4c\x38\x6b\x6f\x62\x47','\x79\x38\x6f\x37\x6a\x6d\x6f\x52\x71\x47','\x57\x51\x2f\x64\x4c\x38\x6b\x65\x67\x64\x79','\x57\x4f\x54\x6f\x57\x51\x74\x63\x53\x43\x6f\x4e','\x64\x6d\x6f\x72\x57\x52\x48\x51\x77\x47','\x57\x36\x56\x64\x50\x77\x48\x4e\x41\x47','\x70\x73\x6c\x64\x47\x66\x48\x65\x57\x51\x50\x33','\x57\x52\x47\x2b\x57\x34\x62\x36\x57\x50\x78\x63\x49\x53\x6f\x49\x57\x50\x6d','\x57\x37\x6c\x64\x51\x49\x69\x47\x57\x36\x65','\x57\x34\x70\x64\x49\x43\x6f\x64','\x57\x34\x68\x64\x4c\x38\x6f\x30\x57\x52\x39\x77','\x57\x50\x31\x54\x57\x4f\x52\x63\x55\x53\x6f\x2b\x6d\x4b\x4a\x63\x4f\x47','\x63\x68\x4a\x63\x4c\x43\x6f\x53\x6d\x4c\x70\x63\x4a\x71','\x57\x35\x69\x4d\x72\x43\x6b\x2f','\x69\x53\x6f\x4d\x6d\x32\x2f\x64\x4b\x43\x6f\x6a\x57\x35\x35\x4f','\x7a\x68\x62\x42\x78\x43\x6b\x61\x57\x4f\x56\x64\x55\x38\x6b\x72','\x62\x53\x6f\x77\x66\x76\x33\x64\x50\x71','\x57\x37\x5a\x64\x4a\x38\x6f\x73\x57\x51\x39\x32\x44\x4c\x38','\x57\x36\x6d\x47\x57\x37\x6a\x2f\x57\x37\x47','\x44\x43\x6b\x6c\x42\x78\x42\x64\x4e\x38\x6f\x57\x57\x52\x52\x63\x4a\x61','\x71\x6d\x6b\x6d\x57\x4f\x56\x63\x53\x53\x6b\x33','\x6f\x67\x6c\x64\x4c\x59\x30','\x57\x37\x4a\x63\x49\x31\x48\x74\x7a\x38\x6f\x77','\x68\x6d\x6f\x46\x57\x51\x76\x34\x41\x6d\x6f\x59\x57\x35\x66\x70','\x64\x62\x4e\x64\x50\x4d\x66\x30\x57\x50\x48\x71\x57\x35\x65','\x57\x37\x4a\x63\x4d\x43\x6f\x41\x64\x47\x70\x64\x4b\x43\x6f\x34\x57\x52\x30','\x57\x34\x61\x79\x57\x34\x54\x77\x57\x37\x4c\x4a\x78\x61','\x67\x67\x4e\x63\x4c\x53\x6f\x2b\x6d\x31\x52\x63\x4e\x71','\x57\x4f\x30\x55\x57\x51\x43\x6b\x43\x64\x5a\x64\x52\x6d\x6f\x45','\x57\x35\x74\x64\x53\x53\x6b\x70\x57\x34\x6e\x44\x57\x50\x52\x64\x51\x43\x6f\x50','\x43\x53\x6f\x6f\x57\x50\x33\x63\x50\x38\x6b\x68\x77\x43\x6f\x64\x65\x57','\x65\x47\x4f\x45','\x57\x37\x68\x64\x4a\x53\x6f\x6a','\x57\x4f\x78\x64\x55\x38\x6f\x4e\x6d\x5a\x52\x64\x4f\x47\x56\x64\x4a\x61','\x6a\x48\x2f\x64\x4e\x53\x6b\x79\x57\x50\x33\x64\x54\x38\x6b\x2f\x6f\x61','\x57\x52\x5a\x64\x4e\x6d\x6b\x79\x73\x71','\x41\x6d\x6f\x41\x64\x53\x6f\x2b\x75\x57','\x76\x38\x6b\x59\x57\x36\x64\x64\x4a\x57\x34','\x57\x51\x2f\x64\x4d\x71\x6d\x6a\x6d\x6d\x6b\x6b\x57\x37\x68\x64\x49\x43\x6f\x49\x57\x37\x4c\x4e\x64\x32\x53','\x43\x57\x4a\x64\x48\x43\x6f\x38\x57\x36\x4f','\x44\x33\x35\x76\x72\x53\x6b\x6e\x57\x4f\x4e\x64\x51\x53\x6f\x7a','\x68\x78\x46\x63\x55\x53\x6f\x58\x42\x64\x30\x55\x57\x36\x38','\x57\x50\x31\x68\x57\x52\x52\x64\x50\x6d\x6f\x36\x57\x52\x38','\x6d\x43\x6b\x42\x57\x4f\x4a\x63\x55\x6d\x6b\x4d\x46\x6d\x6f\x57\x6f\x61','\x57\x50\x57\x65\x57\x36\x6e\x33\x57\x50\x43','\x57\x34\x46\x64\x55\x43\x6b\x41\x57\x34\x35\x65\x57\x50\x6c\x64\x50\x38\x6f\x35','\x79\x43\x6f\x7a\x57\x4f\x2f\x63\x55\x47','\x77\x43\x6b\x70\x57\x36\x6d\x47\x61\x53\x6b\x50\x57\x4f\x69\x6c\x57\x50\x64\x64\x4d\x4c\x31\x69\x57\x51\x61\x46','\x69\x6d\x6f\x47\x70\x4e\x6c\x64\x49\x43\x6f\x54','\x7a\x74\x70\x64\x4c\x57','\x41\x6d\x6b\x4e\x57\x50\x68\x63\x4d\x53\x6b\x70\x65\x6d\x6f\x6e\x46\x71','\x44\x6d\x6f\x4f\x57\x4f\x70\x63\x56\x6d\x6b\x69\x71\x53\x6f\x62\x61\x47','\x57\x50\x39\x58\x57\x52\x4b','\x57\x37\x38\x6e\x57\x37\x62\x50\x57\x34\x61','\x57\x35\x61\x61\x57\x35\x61','\x57\x4f\x5a\x64\x55\x38\x6f\x53\x6d\x4d\x68\x64\x55\x4a\x56\x64\x47\x47','\x69\x78\x4e\x64\x51\x73\x42\x63\x4d\x71','\x6b\x4e\x71\x6d\x57\x52\x43','\x43\x6d\x6b\x71\x57\x51\x52\x63\x4c\x43\x6b\x44','\x57\x36\x37\x63\x4e\x30\x6a\x78','\x69\x57\x70\x64\x51\x6d\x6b\x65','\x41\x53\x6f\x63\x57\x4f\x4a\x63\x51\x53\x6b\x64','\x61\x47\x4f\x74\x44\x71','\x78\x6d\x6f\x44\x69\x38\x6f\x32\x78\x71','\x57\x52\x38\x57\x72\x53\x6b\x55\x66\x62\x34\x56\x57\x35\x61\x45\x57\x36\x65\x66\x57\x34\x30\x55','\x57\x37\x5a\x64\x4c\x43\x6f\x44\x57\x50\x76\x33\x45\x30\x50\x33','\x57\x35\x79\x6c\x57\x35\x7a\x6d\x57\x36\x50\x30\x43\x72\x47','\x57\x37\x5a\x64\x50\x4a\x61\x58\x57\x36\x39\x46\x41\x43\x6f\x65','\x57\x4f\x56\x63\x4a\x78\x46\x63\x52\x5a\x50\x52\x57\x34\x53','\x71\x43\x6b\x4d\x75\x4d\x48\x7a\x66\x76\x4c\x6d','\x57\x50\x39\x67\x57\x4f\x78\x63\x4d\x43\x6f\x37','\x57\x35\x52\x64\x51\x38\x6b\x76\x57\x34\x39\x57\x57\x51\x74\x64\x50\x6d\x6f\x59','\x79\x43\x6b\x67\x57\x34\x69\x7a\x57\x35\x5a\x63\x50\x53\x6b\x2f\x57\x34\x53','\x57\x37\x33\x64\x4a\x53\x6f\x79','\x57\x52\x4e\x64\x48\x6d\x6b\x5a\x62\x4a\x64\x64\x54\x32\x4f\x31','\x78\x6d\x6b\x53\x71\x32\x4c\x50\x64\x75\x76\x74','\x57\x36\x71\x57\x42\x43\x6b\x47\x76\x72\x4a\x64\x52\x31\x75','\x67\x49\x4e\x64\x4c\x43\x6b\x2b\x57\x52\x68\x64\x4c\x43\x6b\x44\x63\x47','\x57\x37\x4f\x51\x57\x36\x31\x4f','\x63\x59\x65\x69\x6a\x31\x75','\x72\x6d\x6f\x34\x57\x4f\x2f\x63\x4d\x38\x6b\x53','\x57\x37\x50\x57\x65\x53\x6f\x54\x77\x66\x58\x62\x57\x34\x30','\x57\x35\x76\x6c\x57\x37\x4c\x41\x46\x47','\x57\x37\x54\x4a\x57\x36\x30\x35\x57\x36\x4b','\x57\x51\x62\x35\x57\x52\x74\x63\x53\x6d\x6b\x37','\x57\x4f\x44\x33\x57\x4f\x37\x63\x4f\x6d\x6b\x4a','\x57\x36\x33\x64\x52\x38\x6b\x70\x57\x37\x4c\x4c','\x57\x37\x2f\x63\x48\x65\x76\x77\x78\x43\x6f\x74\x57\x51\x70\x64\x51\x71','\x61\x63\x46\x64\x55\x43\x6b\x4b\x57\x52\x6d','\x57\x50\x58\x6b\x57\x52\x52\x63\x55\x53\x6b\x2f\x57\x36\x47\x41\x43\x71','\x79\x4d\x68\x64\x48\x43\x6b\x64\x57\x36\x47\x6e\x57\x4f\x71','\x57\x34\x52\x64\x4d\x4a\x46\x64\x4a\x48\x76\x6a\x57\x52\x37\x63\x48\x61','\x57\x51\x34\x38\x57\x34\x35\x49\x57\x52\x64\x63\x4c\x53\x6f\x2b','\x6b\x6d\x6b\x55\x77\x43\x6b\x6f\x69\x53\x6f\x2b\x72\x66\x70\x63\x48\x53\x6b\x6e\x57\x50\x4b','\x7a\x57\x42\x64\x53\x53\x6b\x66\x57\x50\x79','\x57\x50\x53\x39\x57\x52\x43\x76\x7a\x5a\x78\x64\x51\x47','\x6c\x63\x68\x64\x4c\x78\x44\x69\x57\x52\x7a\x2f\x57\x37\x71','\x62\x49\x68\x64\x48\x30\x31\x6d','\x57\x4f\x46\x64\x4e\x38\x6b\x71\x57\x37\x4f\x6d\x70\x5a\x33\x63\x52\x71','\x57\x51\x76\x43\x57\x50\x46\x63\x52\x6d\x6b\x46','\x57\x34\x2f\x64\x49\x31\x30\x63\x57\x52\x75','\x57\x50\x52\x64\x47\x33\x2f\x63\x56\x53\x6f\x73\x57\x35\x4a\x64\x4a\x73\x34','\x57\x52\x6c\x64\x4f\x38\x6f\x7a\x66\x33\x6d','\x68\x5a\x6d\x77\x66\x4c\x75','\x65\x5a\x61\x39\x6b\x65\x43','\x75\x43\x6b\x4c\x45\x77\x42\x64\x4e\x71','\x78\x6d\x6f\x42\x6f\x43\x6f\x6c\x75\x61','\x57\x52\x53\x56\x57\x34\x39\x51\x57\x51\x2f\x63\x4e\x43\x6f\x52','\x72\x53\x6b\x71\x57\x37\x38\x6f','\x61\x43\x6f\x32\x43\x30\x4b\x72\x41\x38\x6f\x65\x6e\x61','\x57\x36\x62\x32\x66\x53\x6f\x37','\x57\x50\x5a\x63\x55\x4a\x34','\x75\x4e\x74\x64\x49\x53\x6b\x6a','\x71\x5a\x68\x63\x4d\x43\x6f\x45\x42\x62\x47\x77\x57\x37\x6d','\x68\x33\x4a\x63\x48\x38\x6f\x35\x6c\x4c\x68\x63\x4e\x4e\x43','\x57\x34\x58\x77\x69\x6d\x6f\x77\x79\x32\x65','\x45\x62\x52\x64\x47\x38\x6f\x53\x57\x36\x47','\x57\x4f\x31\x4e\x57\x51\x78\x63\x47\x43\x6b\x6d\x57\x52\x4c\x42\x7a\x71','\x57\x36\x2f\x64\x4b\x4a\x61\x2b\x57\x37\x4f','\x57\x37\x70\x63\x48\x53\x6f\x64\x62\x49\x4b','\x57\x36\x6c\x64\x49\x66\x75','\x57\x4f\x31\x67\x57\x4f\x57\x75\x57\x51\x71\x56\x62\x76\x34','\x42\x43\x6b\x32\x57\x50\x42\x63\x4b\x6d\x6b\x41\x65\x47','\x57\x51\x4e\x64\x48\x6d\x6b\x59\x61\x5a\x5a\x64\x50\x31\x4b\x2f','\x71\x30\x2f\x64\x48\x38\x6b\x37\x57\x35\x57','\x57\x4f\x47\x54\x57\x35\x54\x4f\x57\x50\x71','\x57\x36\x50\x4f\x67\x53\x6f\x36\x71\x4c\x53','\x57\x50\x5a\x63\x51\x59\x38\x39\x57\x4f\x33\x64\x4b\x47\x6e\x46','\x57\x34\x4e\x64\x56\x43\x6f\x61\x64\x4e\x56\x64\x55\x49\x65','\x68\x64\x4a\x64\x4f\x75\x72\x61','\x68\x68\x5a\x63\x47\x43\x6f\x2b\x69\x47','\x57\x52\x57\x63\x57\x37\x72\x37\x57\x51\x4f','\x46\x53\x6f\x4f\x62\x43\x6f\x76\x44\x53\x6f\x4c\x77\x76\x38','\x57\x35\x64\x64\x53\x53\x6b\x70\x57\x35\x4b','\x68\x4a\x71\x32\x70\x76\x4f\x44\x45\x38\x6f\x6c','\x57\x34\x44\x69\x57\x36\x71','\x57\x37\x56\x64\x53\x74\x38\x4f\x57\x37\x48\x76','\x57\x34\x33\x64\x51\x49\x57\x43\x57\x35\x47','\x57\x36\x54\x55\x57\x35\x38\x65\x57\x34\x58\x42\x57\x50\x5a\x64\x4b\x61','\x6a\x71\x70\x64\x52\x53\x6b\x41\x57\x50\x52\x64\x55\x53\x6b\x35\x6d\x47','\x57\x35\x42\x64\x4a\x4c\x61\x7a\x57\x52\x30','\x79\x38\x6f\x7a\x57\x4f\x4e\x63\x53\x38\x6b\x41\x74\x53\x6f\x55\x66\x47','\x57\x34\x68\x63\x55\x4a\x47\x4d\x57\x52\x6c\x64\x4e\x71\x48\x6f','\x72\x53\x6f\x56\x72\x4b\x38\x72','\x69\x68\x52\x64\x4b\x53\x6f\x4a\x68\x4b\x6e\x4c\x69\x57','\x57\x4f\x37\x63\x53\x74\x4f\x47\x57\x4f\x68\x64\x49\x47\x39\x6a','\x57\x34\x5a\x64\x55\x43\x6b\x69','\x57\x37\x78\x64\x4a\x53\x6f\x6c\x57\x51\x6e\x6e\x46\x4b\x39\x4e','\x57\x4f\x64\x64\x4b\x32\x37\x63\x4a\x53\x6f\x42\x57\x34\x52\x64\x4a\x57','\x64\x53\x6f\x79\x57\x4f\x6a\x66\x74\x71','\x57\x52\x7a\x50\x57\x51\x5a\x63\x50\x43\x6b\x55','\x76\x38\x6b\x72\x57\x37\x5a\x64\x4a\x59\x4e\x63\x54\x33\x75','\x57\x34\x62\x67\x57\x37\x50\x62','\x63\x38\x6f\x2f\x57\x4f\x6e\x63','\x61\x4a\x30\x56\x6e\x66\x34\x6c\x79\x6d\x6f\x42','\x57\x51\x52\x64\x4d\x30\x4f\x47\x62\x61','\x68\x6d\x6f\x31\x57\x36\x47\x57\x69\x6d\x6f\x59','\x6f\x4d\x33\x63\x4c\x43\x6b\x42\x57\x50\x5a\x64\x4b\x4a\x71\x2f\x57\x4f\x48\x71\x6b\x43\x6f\x50\x6c\x67\x34','\x42\x53\x6b\x70\x57\x34\x64\x64\x52\x57\x71','\x41\x62\x33\x64\x52\x6d\x6f\x73\x57\x34\x34','\x57\x35\x31\x2b\x57\x35\x50\x34\x44\x47','\x6a\x74\x4a\x64\x4e\x30\x31\x70\x57\x52\x62\x47','\x73\x72\x37\x64\x47\x38\x6f\x35\x57\x37\x61','\x57\x50\x31\x6b\x57\x52\x4a\x63\x4f\x38\x6b\x39\x57\x36\x61\x41\x79\x61','\x67\x38\x6f\x47\x71\x76\x71\x77\x42\x6d\x6f\x78\x69\x47','\x57\x36\x33\x63\x48\x4c\x48\x43\x7a\x57','\x57\x34\x42\x64\x4d\x6d\x6f\x69\x72\x31\x46\x64\x56\x77\x56\x63\x4b\x47','\x6d\x53\x6f\x48\x75\x4d\x43\x56','\x57\x34\x64\x64\x52\x6d\x6b\x46\x57\x34\x54\x32\x57\x50\x34','\x57\x35\x56\x64\x48\x6d\x6f\x6d\x65\x48\x64\x63\x4f\x47','\x57\x50\x7a\x43\x57\x50\x61\x6f\x57\x52\x39\x63\x72\x58\x74\x63\x4b\x61\x68\x63\x4e\x61','\x57\x51\x79\x4c\x57\x34\x76\x52','\x57\x51\x4e\x63\x4e\x48\x69\x6b\x64\x47\x6c\x63\x4f\x38\x6f\x49\x6e\x38\x6f\x33\x65\x67\x37\x63\x4d\x61','\x70\x65\x64\x64\x4a\x63\x56\x63\x4a\x48\x47\x72\x6b\x47','\x6d\x73\x58\x33\x78\x43\x6b\x43\x57\x51\x52\x64\x4a\x53\x6b\x66','\x57\x37\x2f\x63\x4d\x76\x71','\x6c\x43\x6f\x73\x6e\x62\x52\x63\x49\x38\x6b\x4f\x57\x37\x4e\x63\x52\x78\x4e\x63\x56\x31\x72\x56\x6b\x47','\x70\x78\x70\x64\x48\x59\x74\x63\x4e\x62\x71','\x57\x4f\x31\x61\x57\x52\x46\x63\x55\x53\x6b\x51\x57\x36\x4f\x41\x75\x61','\x42\x53\x6b\x68\x79\x4b\x72\x7a\x69\x4e\x35\x52','\x75\x38\x6b\x66\x57\x37\x33\x64\x4c\x62\x4e\x63\x51\x78\x78\x63\x4b\x57','\x57\x34\x30\x32\x57\x36\x68\x64\x47\x43\x6f\x44\x57\x37\x47\x5a\x41\x65\x54\x36\x7a\x59\x69\x43','\x68\x71\x4f\x64\x44\x76\x6c\x64\x54\x58\x71','\x57\x4f\x6c\x63\x54\x4a\x30\x36\x57\x52\x46\x64\x48\x71\x4f','\x57\x34\x6e\x5a\x57\x37\x66\x2b\x74\x47','\x57\x4f\x5a\x64\x4a\x53\x6f\x59\x66\x4c\x79','\x57\x35\x6c\x63\x4f\x38\x6f\x38\x69\x73\x5a\x64\x49\x38\x6f\x66\x57\x50\x61','\x57\x35\x65\x68\x57\x34\x54\x75\x57\x51\x66\x57\x68\x57','\x57\x51\x38\x55\x57\x4f\x48\x71\x57\x50\x75\x45\x57\x36\x74\x64\x49\x53\x6b\x34\x57\x35\x43\x47\x76\x78\x47','\x79\x6d\x6b\x4c\x57\x34\x64\x64\x53\x57\x4b','\x57\x37\x52\x64\x51\x49\x47','\x69\x61\x6c\x64\x50\x6d\x6b\x31\x57\x4f\x52\x64\x56\x53\x6b\x52\x6c\x61','\x62\x32\x46\x63\x56\x38\x6f\x68\x43\x5a\x69','\x57\x36\x5a\x64\x47\x61\x4e\x64\x48\x63\x38','\x62\x4d\x46\x63\x55\x43\x6f\x43\x46\x5a\x71','\x57\x50\x64\x64\x4b\x61\x4a\x64\x53\x4a\x7a\x53\x57\x51\x2f\x63\x48\x61','\x57\x37\x74\x64\x53\x4c\x76\x6f\x78\x4b\x6c\x64\x56\x38\x6f\x66','\x46\x57\x2f\x64\x50\x6d\x6f\x7a\x57\x34\x57','\x57\x52\x56\x64\x4d\x38\x6f\x42\x65\x76\x53','\x68\x6d\x6f\x79\x62\x78\x68\x64\x4f\x71','\x72\x4c\x66\x49\x7a\x6d\x6b\x5a\x57\x51\x2f\x64\x4a\x43\x6b\x48','\x66\x38\x6f\x63\x65\x31\x52\x64\x51\x43\x6f\x6a\x57\x36\x35\x6b','\x57\x52\x57\x4c\x57\x35\x6e\x49\x57\x51\x6c\x63\x52\x6d\x6f\x54\x57\x50\x6d','\x57\x36\x74\x64\x4c\x32\x35\x30\x75\x61','\x64\x4e\x6c\x64\x4e\x6d\x6f\x36\x66\x61','\x57\x50\x30\x69\x57\x52\x30\x65\x79\x47','\x70\x43\x6f\x76\x57\x50\x66\x78\x43\x57','\x57\x35\x52\x64\x49\x43\x6f\x43\x76\x75\x5a\x64\x50\x4e\x52\x63\x4a\x57','\x44\x77\x74\x63\x48\x72\x38\x45\x57\x36\x57\x51\x57\x34\x5a\x63\x52\x38\x6f\x33\x7a\x38\x6f\x47\x6e\x61','\x45\x64\x70\x64\x4c\x43\x6f\x41\x57\x34\x52\x63\x47\x71','\x75\x30\x4a\x64\x4f\x6d\x6b\x52\x57\x34\x79\x38\x57\x51\x4e\x64\x50\x47','\x57\x36\x68\x64\x49\x30\x47\x56\x57\x50\x79','\x43\x6d\x6b\x37\x75\x33\x58\x5a\x63\x4b\x35\x42','\x57\x35\x42\x64\x47\x31\x75\x6f','\x6f\x57\x4e\x64\x4f\x6d\x6b\x6f\x57\x52\x37\x64\x53\x53\x6b\x32\x70\x61','\x62\x32\x56\x63\x51\x38\x6f\x66\x71\x5a\x4b\x35\x57\x36\x75','\x70\x4a\x6c\x64\x4b\x31\x50\x69\x57\x52\x65','\x44\x43\x6b\x4a\x57\x50\x42\x63\x4d\x6d\x6b\x42\x67\x47','\x6f\x47\x4e\x64\x53\x38\x6b\x43\x57\x50\x68\x64\x55\x6d\x6b\x2f\x62\x47','\x57\x34\x33\x64\x47\x53\x6f\x42','\x57\x4f\x61\x38\x57\x35\x72\x52\x57\x51\x65','\x68\x43\x6f\x31\x75\x75\x65\x6c\x7a\x57','\x44\x6d\x6b\x4a\x57\x37\x6d\x34\x57\x36\x57','\x70\x43\x6f\x72\x57\x35\x34\x33\x6f\x57','\x57\x35\x52\x64\x50\x43\x6f\x74\x57\x50\x62\x51','\x41\x53\x6b\x46\x45\x75\x66\x71\x6a\x4d\x35\x48','\x57\x50\x54\x49\x57\x52\x70\x63\x53\x53\x6b\x4d','\x41\x38\x6f\x35\x61\x38\x6f\x45\x45\x38\x6f\x75\x73\x47','\x77\x6d\x6b\x49\x57\x35\x79\x76\x57\x34\x4f','\x6d\x53\x6f\x79\x57\x4f\x7a\x76\x42\x71','\x57\x35\x74\x63\x55\x38\x6f\x4a\x6e\x5a\x61','\x76\x67\x7a\x79\x74\x47','\x74\x38\x6b\x62\x57\x37\x79','\x61\x47\x79\x62\x43\x31\x6c\x64\x51\x58\x7a\x37','\x57\x51\x39\x48\x57\x4f\x2f\x63\x4e\x38\x6b\x71\x57\x34\x47\x53\x74\x61','\x57\x50\x74\x64\x55\x67\x74\x63\x51\x38\x6f\x72','\x6a\x38\x6f\x61\x57\x36\x61\x6c\x6c\x61','\x57\x50\x65\x50\x57\x37\x76\x44\x57\x4f\x4b','\x57\x51\x37\x64\x54\x43\x6f\x71\x66\x77\x6d','\x70\x67\x64\x64\x55\x43\x6f\x56\x69\x4e\x76\x4a\x6a\x57','\x68\x32\x33\x63\x53\x43\x6f\x61','\x57\x4f\x42\x64\x4c\x32\x37\x63\x49\x53\x6f\x4f\x57\x35\x68\x64\x4a\x5a\x38','\x57\x36\x56\x63\x4d\x4c\x76\x45\x44\x53\x6f\x78','\x57\x36\x42\x64\x4b\x6d\x6f\x6e\x57\x51\x6e\x38\x41\x57','\x57\x37\x42\x63\x4f\x43\x6f\x62\x70\x4a\x43','\x72\x6d\x6f\x59\x57\x50\x37\x63\x4f\x6d\x6b\x4f','\x57\x36\x74\x64\x47\x43\x6f\x67\x57\x51\x44\x33\x43\x76\x4c\x48','\x57\x35\x33\x64\x51\x43\x6b\x7a\x57\x37\x76\x57\x57\x50\x6c\x64\x55\x6d\x6f\x33','\x57\x37\x42\x64\x4e\x64\x69\x33\x57\x37\x35\x4c\x75\x53\x6f\x6d','\x43\x30\x58\x59\x78\x6d\x6b\x6a','\x76\x38\x6b\x55\x46\x31\x58\x77','\x57\x4f\x33\x63\x52\x63\x53\x37\x57\x51\x4a\x64\x4a\x47\x4c\x4a','\x57\x35\x66\x31\x57\x37\x43\x69\x57\x36\x4b','\x64\x33\x6c\x63\x4e\x43\x6f\x2b\x6d\x30\x33\x63\x4a\x67\x43','\x6b\x6d\x6b\x4f\x42\x76\x4e\x64\x4d\x38\x6f\x2f\x57\x51\x30','\x42\x6d\x6f\x6f\x57\x50\x4a\x63\x55\x38\x6b\x62\x72\x43\x6f\x35\x67\x47','\x6c\x49\x78\x64\x4c\x30\x4c\x46\x57\x52\x58\x41\x57\x36\x4b','\x57\x4f\x6c\x63\x53\x63\x4f\x53\x57\x52\x69','\x57\x36\x62\x33\x6e\x43\x6f\x32\x71\x4b\x7a\x49\x57\x34\x65','\x70\x5a\x6c\x64\x4b\x30\x72\x42\x57\x52\x48\x4d\x57\x36\x57','\x57\x34\x4e\x64\x4d\x47\x5a\x64\x54\x49\x4c\x51\x57\x51\x56\x63\x4c\x71','\x57\x36\x6c\x64\x4d\x43\x6f\x44\x74\x67\x69','\x57\x50\x33\x64\x54\x6d\x6f\x48\x6e\x65\x56\x64\x52\x57\x42\x64\x4d\x47','\x57\x52\x62\x37\x57\x50\x56\x63\x56\x43\x6b\x6f','\x57\x37\x56\x64\x52\x38\x6f\x4c\x7a\x77\x4a\x64\x4c\x75\x64\x63\x56\x71','\x57\x35\x69\x69\x57\x35\x44\x6d\x57\x37\x4b','\x62\x32\x56\x63\x55\x38\x6f\x44','\x57\x36\x46\x64\x4c\x6d\x6f\x45\x57\x52\x35\x62\x7a\x4b\x6e\x58','\x6a\x53\x6f\x74\x77\x4b\x79\x6c','\x7a\x67\x68\x64\x47\x43\x6b\x68\x57\x36\x61\x43\x57\x50\x6c\x64\x4b\x61','\x57\x35\x52\x63\x47\x30\x78\x63\x4d\x73\x7a\x52','\x45\x74\x4e\x64\x48\x61','\x44\x53\x6b\x6c\x41\x4b\x43','\x57\x37\x4e\x64\x4d\x47\x2f\x64\x52\x48\x38','\x73\x77\x5a\x64\x4c\x38\x6b\x63\x57\x36\x61\x42','\x79\x38\x6f\x68\x57\x4f\x33\x63\x55\x38\x6b\x64\x74\x53\x6f\x63','\x6d\x71\x30\x71\x68\x57','\x57\x36\x66\x48\x63\x57','\x57\x34\x71\x79\x57\x34\x6e\x4c\x57\x36\x58\x50\x71\x57\x43','\x64\x48\x69\x53\x6d\x30\x47','\x57\x34\x4f\x6d\x57\x34\x35\x46\x57\x36\x58\x59','\x57\x52\x4b\x56\x57\x34\x75','\x57\x51\x68\x64\x4a\x33\x70\x63\x47\x47','\x72\x53\x6b\x36\x43\x67\x72\x51\x62\x47','\x57\x36\x65\x2f\x57\x36\x48\x6f\x57\x36\x69','\x64\x30\x74\x64\x54\x5a\x74\x63\x51\x47','\x44\x6d\x6b\x6b\x57\x37\x69\x63\x57\x35\x56\x63\x4f\x43\x6b\x4c\x57\x37\x6d','\x6b\x47\x64\x64\x51\x6d\x6b\x70\x57\x50\x42\x64\x52\x38\x6b\x66\x6d\x61','\x45\x74\x4e\x64\x4b\x43\x6f\x44\x57\x34\x64\x63\x4c\x4d\x44\x52','\x6e\x4d\x64\x64\x53\x53\x6f\x43\x6e\x76\x48\x30\x6d\x61','\x57\x36\x64\x64\x4a\x38\x6f\x5a\x57\x51\x76\x4c\x45\x4c\x39\x72','\x57\x50\x5a\x64\x4e\x6d\x6b\x2b\x57\x37\x38\x46','\x46\x43\x6b\x2b\x57\x4f\x6c\x63\x4e\x53\x6b\x43\x61\x38\x6f\x42','\x76\x6d\x6b\x66\x57\x36\x6c\x64\x49\x57','\x57\x37\x2f\x64\x48\x53\x6f\x62\x79\x30\x71','\x67\x32\x33\x63\x56\x6d\x6f\x6c\x6d\x4a\x71\x59\x57\x36\x6d','\x70\x58\x65\x4d\x42\x4d\x4f','\x61\x57\x69\x43\x43\x4e\x6c\x64\x56\x71'];_0x3322=function(){return _0x1042a9;};return _0x3322();}const _0xe92a5c={};_0xe92a5c[_0x19c523(0x1cd,'\x23\x6c\x46\x36')+_0x19c523(0x138,'\x56\x4e\x70\x30')]=_0x1ce368,_0xe92a5c[_0x19c523(0x197,'\x31\x59\x62\x4d')+_0x19c523(0x22e,'\x73\x30\x31\x7a')+'\x4e']=_0x2721b9,_0xe92a5c[_0x19c523(0x1e6,'\x57\x33\x4a\x33')+_0x19c523(0x14f,'\x53\x23\x46\x77')+_0x19c523(0x209,'\x57\x75\x36\x59')+_0x19c523(0x1d2,'\x31\x59\x62\x4d')]=_0xee6086,_0xe92a5c[_0x19c523(0x177,'\x79\x33\x5a\x52')+_0x19c523(0x16b,'\x23\x6c\x46\x36')+_0x19c523(0x1d7,'\x31\x59\x62\x4d')]=_0x2b9de1,_0xe92a5c['\x68\x6d\x61\x63\x50\x73\x65\x75'+_0x19c523(0x24c,'\x75\x59\x33\x6c')]=_0x36fa76,module[_0x19c523(0x1e9,'\x71\x21\x59\x6b')]=_0xe92a5c;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const crypto = require('crypto');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
|
|
8
|
+
const { captureEnvFingerprint, envFingerprintKey } = require('./envFingerprint');
|
|
9
|
+
|
|
10
|
+
const SCHEMA_VERSION = 'anti_abuse.v1';
|
|
11
|
+
const REDACTION_VERSION = 'anti_abuse_redaction.v1';
|
|
12
|
+
const DEFAULT_TTL_DAYS = 90;
|
|
13
|
+
const MAX_HASH_FILE_BYTES = 10 * 1024 * 1024;
|
|
14
|
+
|
|
15
|
+
function nowIso(now) {
|
|
16
|
+
if (now instanceof Date) return now.toISOString();
|
|
17
|
+
if (typeof now === 'string' && now) return now;
|
|
18
|
+
return new Date().toISOString();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function boolFromEnv(value) {
|
|
22
|
+
const v = String(value || '').trim().toLowerCase();
|
|
23
|
+
return v === '1' || v === 'true' || v === 'yes' || v === 'on';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function hmacPseudonym(value, opts) {
|
|
27
|
+
const raw = value == null ? '' : String(value);
|
|
28
|
+
const salt = opts && opts.salt ? String(opts.salt) : '';
|
|
29
|
+
const purpose = opts && opts.purpose ? String(opts.purpose) : 'anti_abuse';
|
|
30
|
+
if (!raw || !salt) return null;
|
|
31
|
+
return crypto.createHmac('sha256', salt).update(purpose).update('\0').update(raw).digest('hex').slice(0, 32);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function sha256File(filePath) {
|
|
35
|
+
let stat;
|
|
36
|
+
try {
|
|
37
|
+
stat = fs.statSync(filePath);
|
|
38
|
+
} catch (_) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (!stat.isFile() || stat.size > MAX_HASH_FILE_BYTES) return null;
|
|
42
|
+
const hash = crypto.createHash('sha256');
|
|
43
|
+
hash.update(fs.readFileSync(filePath));
|
|
44
|
+
return hash.digest('hex');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function safeJsonFile(filePath) {
|
|
48
|
+
try {
|
|
49
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
50
|
+
} catch (_) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function filePermissionClass(filePath) {
|
|
56
|
+
let stat;
|
|
57
|
+
try {
|
|
58
|
+
stat = fs.statSync(filePath);
|
|
59
|
+
} catch (_) {
|
|
60
|
+
return 'missing';
|
|
61
|
+
}
|
|
62
|
+
if (!stat.isFile()) return 'not_file';
|
|
63
|
+
const mode = stat.mode & 0o777;
|
|
64
|
+
if ((mode & 0o077) === 0) return 'owner_only';
|
|
65
|
+
if ((mode & 0o007) !== 0) return 'world_accessible';
|
|
66
|
+
return 'group_accessible';
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// The integrity envelope fingerprints the INSTALLED @evomap/evolver package
|
|
70
|
+
// — its package.json, CLI entry, and lockfiles — not the user's project.
|
|
71
|
+
// __dirname tracks this file inside the install (<pkg>/src/gep/), so two
|
|
72
|
+
// levels up is the package root in every install mode (dev clone, npm
|
|
73
|
+
// global, npx cache). Hashing getRepoRoot() (the user's project) here would
|
|
74
|
+
// make hub-side integrity checks compare workspace files against
|
|
75
|
+
// evolver_version, mismatching on every npm/global install.
|
|
76
|
+
function getEvolverPackageRoot() {
|
|
77
|
+
return path.resolve(__dirname, '..', '..');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Containment gate for EVERY file the integrity envelope reads: resolve the
|
|
81
|
+
// candidate through symlinks and require it to stay inside the package root.
|
|
82
|
+
// Default-on heartbeat collection must not grow an out-of-tree file-read
|
|
83
|
+
// side effect — not via a tampered bin.evolver, and not via a symlinked
|
|
84
|
+
// package.json / lockfile either (each read is up to MAX_HASH_FILE_BYTES).
|
|
85
|
+
// Returns the real path when contained, else null (missing files land here
|
|
86
|
+
// too, matching sha256File's old null-on-ENOENT behavior).
|
|
87
|
+
function containedRealPath(root, candidate) {
|
|
88
|
+
try {
|
|
89
|
+
const realRoot = fs.realpathSync(root);
|
|
90
|
+
const real = fs.realpathSync(candidate);
|
|
91
|
+
return real.startsWith(realRoot + path.sep) ? real : null;
|
|
92
|
+
} catch (_) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function collectIntegrityHashes(packageRoot) {
|
|
98
|
+
const root = packageRoot || getEvolverPackageRoot();
|
|
99
|
+
const pkgPath = containedRealPath(root, path.join(root, 'package.json'));
|
|
100
|
+
const pkg = (pkgPath && safeJsonFile(pkgPath)) || {};
|
|
101
|
+
const bin = pkg && pkg.bin && typeof pkg.bin.evolver === 'string' ? pkg.bin.evolver : null;
|
|
102
|
+
const binPath = bin ? containedRealPath(root, path.resolve(root, bin)) : null;
|
|
103
|
+
const lockfiles = ['package-lock.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lockb'];
|
|
104
|
+
const lockfile_hashes = {};
|
|
105
|
+
for (const name of lockfiles) {
|
|
106
|
+
const p = containedRealPath(root, path.join(root, name));
|
|
107
|
+
const digest = p ? sha256File(p) : null;
|
|
108
|
+
if (digest) lockfile_hashes[name] = digest;
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
package_json_hash: pkgPath ? sha256File(pkgPath) : null,
|
|
112
|
+
cli_entry_hash: binPath ? sha256File(binPath) : null,
|
|
113
|
+
lockfile_hashes,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function settingsPermissionClass(env) {
|
|
118
|
+
const e = env || process.env;
|
|
119
|
+
const settingsDir = e.EVOLVER_SETTINGS_DIR || path.join(os.homedir(), '.evolver');
|
|
120
|
+
return filePermissionClass(path.join(settingsDir, 'settings.json'));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function normalizeTaskMetrics(taskMeta) {
|
|
124
|
+
const meta = taskMeta && typeof taskMeta === 'object' ? taskMeta : {};
|
|
125
|
+
const metrics = meta.task_metrics && typeof meta.task_metrics === 'object' ? meta.task_metrics : null;
|
|
126
|
+
if (!metrics) return null;
|
|
127
|
+
return {
|
|
128
|
+
pending: Number.isFinite(Number(metrics.pending)) ? Number(metrics.pending) : null,
|
|
129
|
+
claimed: Number.isFinite(Number(metrics.claimed)) ? Number(metrics.claimed) : null,
|
|
130
|
+
completed: Number.isFinite(Number(metrics.completed)) ? Number(metrics.completed) : null,
|
|
131
|
+
failed: Number.isFinite(Number(metrics.failed)) ? Number(metrics.failed) : null,
|
|
132
|
+
avg_completion_ms: Number.isFinite(Number(metrics.avg_completion_ms)) ? Number(metrics.avg_completion_ms) : null,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function ttlDays(env) {
|
|
137
|
+
const raw = Number(env && env.EVOLVER_ANTI_ABUSE_TTL_DAYS);
|
|
138
|
+
return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : DEFAULT_TTL_DAYS;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function unavailable(field, reason, expectedSource) {
|
|
142
|
+
return {
|
|
143
|
+
field,
|
|
144
|
+
reason,
|
|
145
|
+
expected_source: expectedSource || 'hub_server',
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function buildHeartbeatAntiAbuseTelemetry(opts) {
|
|
150
|
+
const options = opts || {};
|
|
151
|
+
const env = options.env || process.env;
|
|
152
|
+
const fp = options.envFingerprint || captureEnvFingerprint();
|
|
153
|
+
const salt = options.salt != null ? options.salt : env.EVOLVER_ANTI_ABUSE_SALT;
|
|
154
|
+
const saltId = options.saltId || env.EVOLVER_ANTI_ABUSE_SALT_ID || (salt ? 'env' : null);
|
|
155
|
+
const packageRoot = options.packageRoot || getEvolverPackageRoot();
|
|
156
|
+
const devicePseudonym = hmacPseudonym(fp && fp.device_id, { salt, purpose: 'device' });
|
|
157
|
+
const workspacePseudonym = hmacPseudonym(process.cwd(), { salt, purpose: 'workspace' });
|
|
158
|
+
const missing = [];
|
|
159
|
+
if (!devicePseudonym) missing.push(unavailable('device_pseudonym', 'anti_abuse_salt_missing', 'signed_policy_or_env'));
|
|
160
|
+
if (!workspacePseudonym) missing.push(unavailable('workspace_pseudonym', 'anti_abuse_salt_missing', 'signed_policy_or_env'));
|
|
161
|
+
missing.push(
|
|
162
|
+
unavailable('client_ip', 'server_observed_required', 'hub_edge'),
|
|
163
|
+
unavailable('asn', 'server_observed_required', 'hub_edge'),
|
|
164
|
+
unavailable('proxy_vpn_tor_datacenter_class', 'server_observed_required', 'hub_edge'),
|
|
165
|
+
unavailable('account_security', 'account_service_required', 'hub_account'),
|
|
166
|
+
unavailable('payout_method_token', 'payments_service_required', 'hub_payments'),
|
|
167
|
+
unavailable('risk_action_case', 'risk_engine_required', 'hub_risk')
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
schema_version: SCHEMA_VERSION,
|
|
172
|
+
event_type: 'node.heartbeat',
|
|
173
|
+
purpose: 'anti_abuse',
|
|
174
|
+
pii_class: 'medium',
|
|
175
|
+
consent_level: 'default',
|
|
176
|
+
retention_ttl_days: ttlDays(env),
|
|
177
|
+
policy_version: env.EVOLVER_ANTI_ABUSE_POLICY_VERSION || 'local-default',
|
|
178
|
+
redaction_version: REDACTION_VERSION,
|
|
179
|
+
source: options.source || 'evolver-client',
|
|
180
|
+
generated_at: nowIso(options.now),
|
|
181
|
+
source_confidence: {
|
|
182
|
+
node_identity: 'client_attested',
|
|
183
|
+
device_integrity: 'client_attested',
|
|
184
|
+
task_metrics: 'client_attested',
|
|
185
|
+
network_source: 'server_observed_required',
|
|
186
|
+
account_security: 'server_observed_required',
|
|
187
|
+
payout: 'server_observed_required',
|
|
188
|
+
risk_decision: 'server_observed_required',
|
|
189
|
+
},
|
|
190
|
+
identity: {
|
|
191
|
+
node_id: options.nodeId || null,
|
|
192
|
+
account_id: null,
|
|
193
|
+
org_id: null,
|
|
194
|
+
},
|
|
195
|
+
device: {
|
|
196
|
+
device_pseudonym: devicePseudonym,
|
|
197
|
+
workspace_pseudonym: workspacePseudonym,
|
|
198
|
+
pseudonym_salt_id: saltId,
|
|
199
|
+
env_fingerprint_key: envFingerprintKey(fp),
|
|
200
|
+
platform: fp.platform || null,
|
|
201
|
+
arch: fp.arch || null,
|
|
202
|
+
os_release: fp.os_release || null,
|
|
203
|
+
node_version: fp.node_version || null,
|
|
204
|
+
evolver_version: fp.evolver_version || null,
|
|
205
|
+
client: fp.client || null,
|
|
206
|
+
client_version: fp.client_version || null,
|
|
207
|
+
model: fp.model || null,
|
|
208
|
+
region: fp.region || null,
|
|
209
|
+
container: !!fp.container,
|
|
210
|
+
},
|
|
211
|
+
integrity: collectIntegrityHashes(packageRoot),
|
|
212
|
+
local_security_boundary: {
|
|
213
|
+
proxy_bind_address_class: 'loopback',
|
|
214
|
+
// Env sniffing is only a fallback for the client heartbeat: the proxy
|
|
215
|
+
// lifecycle heartbeat runs INSIDE the proxy process (which usually has
|
|
216
|
+
// neither env var set) and passes its ground truth explicitly.
|
|
217
|
+
proxy_port_configured: options.proxyPortConfigured != null
|
|
218
|
+
? !!options.proxyPortConfigured
|
|
219
|
+
: (boolFromEnv(env.EVOMAP_PROXY) || !!env.EVOMAP_PROXY_PORT),
|
|
220
|
+
settings_permission_class: settingsPermissionClass(env),
|
|
221
|
+
},
|
|
222
|
+
task_timing: normalizeTaskMetrics(options.taskMeta),
|
|
223
|
+
unavailable_fields: missing,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
module.exports = {
|
|
228
|
+
SCHEMA_VERSION,
|
|
229
|
+
REDACTION_VERSION,
|
|
230
|
+
buildHeartbeatAntiAbuseTelemetry,
|
|
231
|
+
collectIntegrityHashes,
|
|
232
|
+
hmacPseudonym,
|
|
233
|
+
};
|