@evomap/evolver 1.91.1 → 1.91.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +1 -1
- package/src/evolve/guards.js +1 -1
- package/src/evolve/pipeline/collect.js +1 -1
- package/src/evolve/pipeline/dispatch.js +1 -1
- package/src/evolve/pipeline/enrich.js +1 -1
- package/src/evolve/pipeline/hub.js +1 -1
- package/src/evolve/pipeline/select.js +1 -1
- package/src/evolve/pipeline/signals.js +1 -1
- package/src/evolve/utils.js +1 -1
- package/src/evolve.js +1 -1
- package/src/gep/a2aProtocol.js +5175 -1
- package/src/gep/antiAbuseTelemetry.js +233 -1
- package/src/gep/assetStore.js +3 -2
- 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 +1 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationDistiller.js +270 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +93 -1
- package/src/gep/curriculum.js +1 -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 +672 -1
- package/src/gep/hubReview.js +212 -1
- package/src/gep/hubSearch.js +544 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +1 -1
- package/src/gep/memoryGraph.js +1449 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +1 -1
- package/src/gep/narrativeMemory.js +1 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +1 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +1 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +1 -1
- package/src/gep/savingsCore.js +1 -1
- package/src/gep/selector.js +1 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +1 -1
- package/src/gep/trajectoryExport.js +3841 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +123 -1
- package/src/proxy/inject.js +52 -1
- package/src/proxy/trace/extractor.js +2355 -1
- package/src/proxy/trace/usage.js +105 -1
- package/src/webui/client/clientJs/bootstrap.js +6 -0
- package/src/webui/client/clientJs/github.js +225 -0
- package/src/webui/client/clientJs/i18n.js +14 -0
- package/src/webui/client/clientJs/index.js +3 -0
- package/src/webui/client/clientJs/pipelines.js +3 -1
- package/src/webui/client/indexHtml.js +10 -0
- package/src/webui/client/stylesCss.js +61 -0
- package/src/webui/observer/github.js +340 -0
- package/src/webui/observer/index.js +4 -0
- package/src/webui/server/routes.js +11 -0
|
@@ -1 +1,318 @@
|
|
|
1
|
-
const _0x37ca3c=_0x2463;(function(_0x750d44,_0x3d93cd){const _0x32341b=_0x2463,_0x7e8526=_0x750d44();while(!![]){try{const _0x1bb443=parseInt(_0x32341b(0x1e3,'\x51\x68\x29\x65'))/(-0xa0e+-0x10a3+0x8e6*0x3)+parseInt(_0x32341b(0x285,'\x6d\x2a\x24\x4a'))/(0x7e9+0x20ed+-0x86*0x4e)*(-parseInt(_0x32341b(0x275,'\x54\x56\x4b\x30'))/(0x3*0x656+0x1*0x269f+-0x399e))+-parseInt(_0x32341b(0x16d,'\x79\x75\x5e\x43'))/(-0x1fa6+-0x99f+0x2949)*(-parseInt(_0x32341b(0x221,'\x38\x76\x35\x23'))/(-0xf5b+-0x745*-0x2+-0x2*-0x6b))+-parseInt(_0x32341b(0x274,'\x31\x53\x4c\x44'))/(-0x35a+0x231a+-0x1fba)*(-parseInt(_0x32341b(0x1b3,'\x50\x62\x29\x48'))/(0x1cb5+-0xd8a+-0xf24))+parseInt(_0x32341b(0x28d,'\x47\x65\x4c\x41'))/(0x22b0+-0xe*-0xc1+-0x2d36)+-parseInt(_0x32341b(0x23f,'\x40\x4c\x74\x75'))/(0x210e+-0x269b+0x5*0x11e)+-parseInt(_0x32341b(0x1f9,'\x21\x4e\x6e\x35'))/(0x1999+-0x2a1*-0x7+0x2bf6*-0x1)*(parseInt(_0x32341b(0x25b,'\x50\x62\x29\x48'))/(-0x2*-0x8c2+0xa08+-0x92b*0x3));if(_0x1bb443===_0x3d93cd)break;else _0x7e8526['push'](_0x7e8526['shift']());}catch(_0x37401f){_0x7e8526['push'](_0x7e8526['shift']());}}}(_0x2306,0xac6fa+0x1*0xdb4b+0x53f9c*-0x1));const _0xb5cad8=(function(){let _0x21b192=!![];return function(_0x18c232,_0x249afa){const _0x290a21=_0x21b192?function(){const _0x398c4e=_0x2463;if(_0x249afa){const _0x43025a=_0x249afa[_0x398c4e(0x22b,'\x4e\x5e\x72\x72')](_0x18c232,arguments);return _0x249afa=null,_0x43025a;}}:function(){};return _0x21b192=![],_0x290a21;};}()),_0x511e90=_0xb5cad8(this,function(){const _0x4c4caf=_0x2463,_0x4b282a={};_0x4b282a[_0x4c4caf(0x1dc,'\x68\x61\x69\x4b')]=_0x4c4caf(0x2e1,'\x44\x76\x37\x6f')+'\x2b\x29\x2b\x24';const _0xaedd30=_0x4b282a;return _0x511e90['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4c4caf(0x27b,'\x76\x72\x58\x77')](_0xaedd30[_0x4c4caf(0x2d7,'\x79\x75\x5e\x43')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4c4caf(0x2db,'\x47\x6c\x49\x71')+_0x4c4caf(0x1d2,'\x62\x6f\x31\x6f')](_0x511e90)[_0x4c4caf(0x152,'\x6d\x2a\x24\x4a')](_0xaedd30['\x79\x65\x44\x49\x65']);});_0x511e90();function _0x2306(){const _0x501ec4=['\x41\x77\x33\x64\x4e\x61','\x62\x43\x6f\x61\x65\x53\x6f\x6d\x57\x52\x42\x63\x53\x38\x6f\x35\x57\x36\x53','\x57\x4f\x70\x63\x54\x4e\x39\x6f\x6a\x61','\x79\x43\x6f\x73\x7a\x49\x4a\x63\x50\x67\x52\x64\x50\x53\x6f\x42','\x42\x65\x61\x32\x57\x37\x39\x47','\x42\x53\x6f\x30\x57\x52\x38\x6b\x57\x37\x4f','\x44\x77\x46\x64\x49\x53\x6f\x68\x70\x4e\x47','\x67\x49\x37\x63\x51\x6d\x6f\x42\x68\x61','\x57\x50\x69\x7a\x57\x51\x78\x63\x4c\x53\x6b\x6c','\x57\x51\x74\x64\x48\x53\x6f\x66\x7a\x78\x44\x65','\x43\x62\x34\x76\x57\x37\x74\x64\x56\x64\x42\x64\x48\x43\x6b\x2b','\x57\x36\x39\x72\x57\x37\x46\x63\x55\x38\x6f\x4c','\x61\x43\x6f\x41\x66\x38\x6f\x43\x57\x52\x37\x63\x54\x53\x6f\x4f\x57\x34\x47','\x6e\x4c\x33\x64\x54\x67\x7a\x75\x68\x57','\x46\x6d\x6f\x47\x57\x51\x57\x7a\x57\x36\x5a\x63\x4b\x38\x6b\x30\x57\x37\x53','\x57\x51\x33\x64\x51\x73\x44\x43\x57\x52\x42\x63\x47\x4c\x47','\x57\x52\x2f\x64\x4e\x74\x50\x69\x57\x51\x61','\x57\x52\x56\x64\x51\x6d\x6f\x43\x44\x75\x43','\x62\x62\x74\x63\x47\x38\x6f\x65\x69\x59\x74\x63\x48\x6d\x6b\x6c','\x6e\x65\x33\x64\x54\x4d\x62\x75\x65\x38\x6b\x57\x57\x37\x47','\x42\x6d\x6f\x55\x75\x71\x64\x63\x50\x61','\x57\x50\x2f\x64\x4c\x53\x6b\x6f\x42\x65\x4a\x64\x49\x58\x4c\x38\x57\x4f\x46\x63\x47\x53\x6f\x55\x76\x73\x47','\x57\x37\x52\x63\x49\x66\x74\x64\x50\x5a\x30\x49','\x6a\x53\x6f\x48\x7a\x4e\x6c\x64\x56\x6d\x6f\x78\x62\x57','\x67\x43\x6f\x70\x6f\x53\x6f\x66\x74\x57','\x62\x38\x6b\x50\x6c\x73\x4e\x63\x4f\x57','\x43\x48\x71\x37\x64\x32\x75','\x71\x68\x43\x64\x57\x34\x4c\x6e\x57\x50\x47','\x67\x38\x6b\x39\x57\x4f\x48\x4d\x46\x57','\x70\x32\x76\x46\x74\x6d\x6b\x73','\x57\x52\x5a\x64\x56\x59\x31\x72\x57\x52\x33\x63\x4e\x76\x76\x44','\x57\x4f\x79\x2f\x73\x6d\x6f\x4a','\x78\x48\x70\x63\x4b\x67\x5a\x64\x55\x61','\x57\x36\x74\x64\x51\x38\x6f\x61\x57\x4f\x5a\x64\x4d\x59\x4f','\x42\x6d\x6f\x49\x6b\x31\x53\x68','\x66\x38\x6b\x59\x57\x52\x7a\x57\x42\x6d\x6b\x58\x57\x37\x65\x76','\x57\x51\x50\x59\x57\x36\x44\x31\x70\x4b\x38\x38\x57\x35\x61','\x42\x62\x5a\x63\x4c\x65\x61','\x43\x58\x37\x63\x4b\x4e\x37\x64\x56\x62\x61\x59\x75\x71','\x74\x53\x6f\x64\x67\x67\x4f\x51\x61\x4d\x72\x38','\x57\x34\x44\x31\x61\x43\x6b\x5a\x57\x34\x44\x77\x57\x35\x37\x63\x4b\x65\x2f\x64\x4e\x57','\x6b\x38\x6f\x65\x57\x36\x48\x6f\x57\x37\x6a\x6f\x78\x43\x6f\x46','\x72\x53\x6f\x62\x57\x52\x4f\x46\x57\x37\x4b','\x57\x37\x46\x63\x50\x4d\x61\x5a\x73\x30\x52\x63\x55\x38\x6b\x30','\x67\x38\x6b\x72\x57\x4f\x4c\x42\x75\x57','\x57\x36\x68\x64\x4a\x38\x6f\x75\x57\x50\x33\x64\x47\x47','\x64\x43\x6f\x42\x41\x4d\x70\x64\x47\x61','\x57\x37\x64\x63\x55\x53\x6f\x34\x57\x4f\x46\x64\x51\x61','\x57\x36\x76\x63\x79\x6d\x6b\x57\x57\x52\x6d','\x57\x52\x6a\x79\x57\x35\x34\x4a\x63\x47','\x57\x36\x48\x44\x57\x37\x78\x64\x4b\x64\x66\x49\x61\x38\x6f\x61','\x63\x38\x6f\x6c\x6d\x53\x6f\x37\x72\x47','\x7a\x73\x74\x63\x53\x4a\x5a\x63\x4a\x61','\x57\x34\x62\x50\x43\x53\x6b\x47\x57\x4f\x47','\x57\x34\x50\x42\x44\x6d\x6b\x73\x57\x50\x53','\x66\x74\x4a\x63\x4e\x43\x6f\x69\x6a\x62\x42\x63\x4a\x6d\x6b\x42','\x57\x52\x64\x63\x4f\x68\x4c\x6c\x6e\x71','\x70\x5a\x56\x64\x4a\x53\x6b\x52\x57\x35\x34\x78\x72\x43\x6f\x32\x57\x36\x6d\x54','\x46\x49\x61\x38\x6b\x75\x79','\x57\x52\x2f\x64\x47\x43\x6f\x69\x43\x31\x4c\x45','\x42\x71\x34\x63\x57\x37\x42\x64\x56\x5a\x46\x64\x48\x71','\x72\x68\x65\x50','\x69\x4b\x52\x64\x54\x32\x62\x66\x63\x43\x6b\x53\x57\x37\x6d','\x57\x50\x4e\x63\x52\x6d\x6f\x33\x57\x51\x70\x63\x49\x6d\x6f\x77\x6f\x61\x53','\x76\x47\x69\x4c\x69\x32\x53\x37\x72\x71','\x57\x34\x58\x2b\x57\x37\x68\x64\x4f\x61\x30','\x74\x5a\x2f\x63\x4f\x64\x2f\x63\x4a\x43\x6b\x79\x69\x53\x6b\x67','\x57\x35\x5a\x63\x52\x53\x6f\x55\x6a\x6d\x6b\x34\x57\x4f\x44\x6c\x7a\x61','\x71\x61\x38\x4b\x65\x77\x53','\x76\x38\x6f\x63\x57\x51\x57\x45','\x57\x50\x2f\x64\x4b\x43\x6f\x37\x44\x66\x6d','\x41\x71\x47\x54\x79\x4d\x69\x38\x79\x32\x53','\x57\x36\x54\x38\x57\x36\x4e\x63\x47\x43\x6b\x76','\x69\x71\x37\x63\x53\x43\x6f\x47\x65\x72\x65','\x57\x35\x52\x63\x47\x6d\x6f\x6d\x6e\x47','\x57\x37\x7a\x58\x41\x53\x6b\x36','\x57\x4f\x43\x6e\x45\x38\x6f\x4d\x6b\x57','\x57\x37\x78\x63\x4d\x43\x6f\x76\x64\x43\x6b\x61\x57\x51\x66\x54\x41\x71','\x6b\x6d\x6b\x55\x57\x50\x58\x54\x46\x38\x6b\x34\x57\x35\x34\x49','\x6f\x38\x6f\x68\x79\x32\x74\x64\x52\x61','\x57\x37\x4e\x64\x56\x6d\x6f\x73\x57\x35\x58\x52\x57\x34\x37\x63\x55\x38\x6f\x2f','\x57\x50\x6c\x64\x53\x33\x66\x32\x57\x51\x56\x64\x4e\x38\x6b\x77\x6c\x61','\x44\x53\x6f\x65\x45\x5a\x4e\x64\x53\x66\x70\x64\x52\x53\x6f\x77','\x57\x34\x56\x64\x48\x43\x6f\x46\x57\x37\x6c\x63\x4c\x57\x34','\x57\x4f\x43\x6f\x45\x38\x6f\x57\x6c\x59\x48\x65','\x57\x36\x50\x6a\x57\x37\x4e\x63\x47\x6d\x6f\x57','\x46\x78\x70\x63\x4b\x53\x6f\x2b','\x42\x6d\x6b\x71\x72\x65\x47\x65\x57\x51\x42\x64\x52\x4e\x38','\x57\x36\x6c\x64\x50\x43\x6f\x43','\x57\x34\x72\x6b\x57\x36\x74\x63\x48\x6d\x6f\x56\x57\x35\x4e\x63\x50\x77\x71','\x41\x67\x33\x63\x48\x53\x6f\x56\x57\x36\x57\x75\x43\x38\x6f\x43','\x6f\x43\x6f\x45\x57\x37\x58\x66\x57\x36\x44\x39\x72\x57','\x57\x35\x72\x54\x57\x36\x68\x64\x55\x62\x4f','\x57\x4f\x57\x35\x57\x50\x74\x63\x54\x43\x6b\x42\x76\x43\x6f\x32\x57\x4f\x43','\x57\x51\x74\x64\x50\x53\x6f\x2b\x79\x75\x61','\x57\x34\x72\x64\x57\x52\x56\x63\x51\x71\x4a\x63\x4a\x59\x79','\x68\x71\x42\x64\x47\x61\x34\x2f','\x57\x4f\x4c\x39\x57\x51\x70\x63\x49\x38\x6f\x33','\x45\x58\x34\x59\x57\x35\x5a\x64\x54\x71','\x57\x37\x37\x64\x51\x38\x6f\x44\x57\x4f\x64\x64\x51\x5a\x75\x74\x6a\x61','\x57\x50\x53\x34\x57\x50\x64\x63\x52\x53\x6b\x41\x76\x6d\x6f\x48\x57\x4f\x4f','\x79\x43\x6f\x51\x6d\x31\x53\x6e\x6c\x66\x48\x53','\x57\x35\x68\x63\x55\x43\x6f\x62\x57\x4f\x2f\x64\x55\x61','\x57\x50\x2f\x64\x51\x58\x31\x33\x57\x50\x53','\x72\x68\x79\x2f\x57\x34\x6a\x41\x57\x51\x6c\x64\x4a\x53\x6f\x6e','\x57\x52\x70\x64\x50\x64\x31\x56\x67\x59\x64\x63\x56\x53\x6b\x70\x44\x30\x6a\x68\x45\x57','\x64\x38\x6f\x42\x66\x38\x6f\x41\x57\x52\x5a\x63\x51\x38\x6f\x35','\x44\x72\x57\x37\x41\x32\x75\x53\x43\x4c\x65','\x7a\x43\x6b\x71\x73\x68\x61\x47\x57\x52\x4e\x64\x53\x30\x4f','\x57\x52\x58\x63\x57\x36\x71\x6e\x6d\x71','\x75\x64\x30\x67\x73\x4c\x38','\x68\x74\x4a\x63\x52\x38\x6f\x46\x69\x49\x4a\x63\x4e\x61','\x67\x38\x6b\x6b\x6c\x71\x4a\x63\x50\x38\x6b\x34\x76\x61\x38','\x57\x35\x75\x4c\x57\x50\x43\x51\x57\x52\x43','\x57\x34\x47\x50\x57\x51\x69\x77\x57\x50\x30','\x57\x34\x50\x6c\x57\x35\x37\x64\x4f\x62\x31\x79\x6a\x6d\x6f\x4e','\x57\x35\x56\x63\x52\x43\x6f\x6c\x6c\x71\x38','\x57\x34\x37\x64\x4f\x43\x6f\x37\x57\x52\x74\x64\x50\x61','\x79\x43\x6f\x76\x79\x73\x4a\x63\x56\x75\x78\x64\x55\x38\x6f\x6d','\x57\x50\x56\x64\x4a\x53\x6f\x4e\x7a\x67\x69','\x42\x68\x64\x63\x48\x6d\x6f\x2f\x57\x37\x30\x2b\x46\x38\x6f\x43','\x69\x53\x6f\x79\x6e\x43\x6f\x71\x57\x50\x75','\x63\x38\x6f\x6b\x69\x53\x6f\x39\x44\x47','\x57\x50\x5a\x64\x4f\x53\x6f\x4d\x42\x4e\x4f','\x76\x49\x42\x63\x51\x48\x74\x63\x4c\x47','\x57\x36\x74\x63\x4a\x4c\x69','\x75\x49\x42\x63\x54\x49\x47','\x57\x50\x30\x62\x57\x37\x4e\x63\x4b\x53\x6b\x50\x57\x50\x54\x70\x43\x57','\x43\x4c\x6d\x77\x42\x53\x6f\x34\x68\x43\x6f\x58\x43\x61','\x57\x34\x6e\x65\x57\x35\x46\x63\x49\x6d\x6b\x58\x57\x4f\x62\x73','\x57\x34\x37\x63\x53\x32\x44\x33\x57\x51\x68\x64\x4e\x38\x6b\x62\x6b\x57','\x57\x51\x37\x63\x4d\x38\x6f\x38\x57\x51\x46\x63\x4e\x43\x6f\x73','\x6e\x53\x6f\x53\x68\x57','\x57\x50\x4f\x4e\x73\x57','\x57\x37\x52\x63\x4f\x66\x4a\x64\x52\x6d\x6f\x49','\x57\x4f\x4e\x63\x4a\x38\x6f\x43\x57\x37\x64\x63\x4a\x47\x4b\x72\x72\x61','\x57\x35\x6c\x64\x4b\x6d\x6f\x71\x57\x4f\x5a\x64\x51\x43\x6f\x2b\x57\x52\x58\x4b','\x57\x35\x35\x75\x57\x34\x6c\x63\x4d\x6d\x6b\x58\x57\x4f\x6d','\x57\x35\x54\x4e\x57\x34\x64\x64\x52\x62\x50\x30\x6a\x6d\x6f\x54','\x75\x53\x6f\x4f\x75\x58\x74\x63\x4a\x33\x70\x64\x49\x53\x6f\x52','\x66\x43\x6f\x61\x65\x43\x6f\x43\x57\x52\x75','\x57\x4f\x4e\x64\x4e\x61\x62\x58\x57\x4f\x6c\x63\x51\x32\x6a\x51','\x7a\x57\x4b\x46\x57\x37\x70\x64\x51\x71\x46\x63\x47\x6d\x6b\x54','\x79\x31\x43\x68\x42\x57','\x57\x4f\x6d\x47\x41\x6d\x6f\x31\x6b\x71','\x57\x50\x65\x4a\x57\x50\x78\x63\x55\x6d\x6b\x71\x74\x6d\x6f\x48','\x45\x6d\x6f\x61\x57\x52\x57\x75\x57\x35\x52\x63\x4b\x6d\x6b\x51\x57\x34\x79','\x57\x37\x4a\x63\x52\x6d\x6f\x4e\x57\x4f\x64\x64\x54\x32\x78\x63\x48\x38\x6f\x79','\x75\x43\x6f\x78\x57\x52\x53\x74\x57\x36\x56\x63\x4c\x53\x6b\x37\x57\x34\x57','\x57\x34\x78\x63\x49\x68\x56\x64\x4f\x43\x6f\x41\x66\x43\x6f\x7a\x57\x50\x61','\x57\x37\x6e\x7a\x57\x37\x6c\x63\x4e\x38\x6f\x76\x57\x35\x2f\x63\x48\x4d\x47','\x76\x32\x61\x54\x57\x35\x72\x62\x57\x50\x6d','\x46\x75\x47\x76','\x57\x36\x4e\x63\x50\x30\x34\x56\x78\x4e\x74\x63\x4f\x57','\x43\x38\x6b\x65\x57\x37\x6a\x62\x57\x34\x35\x31\x72\x43\x6f\x6c','\x57\x35\x39\x69\x57\x52\x37\x63\x56\x58\x2f\x63\x52\x47','\x6f\x38\x6f\x4d\x42\x78\x4e\x64\x4d\x38\x6f\x52\x63\x49\x4b','\x79\x75\x47\x78\x7a\x43\x6f\x58\x67\x43\x6f\x33\x41\x47','\x57\x50\x61\x5a\x57\x50\x4e\x63\x52\x38\x6b\x36\x74\x43\x6f\x54\x57\x4f\x4b','\x6a\x6d\x6f\x69\x67\x43\x6f\x34\x45\x53\x6b\x62\x57\x37\x47\x42','\x6a\x38\x6f\x45\x67\x38\x6f\x37\x77\x47','\x69\x6d\x6f\x69\x63\x53\x6f\x49\x43\x38\x6b\x67','\x6b\x38\x6b\x49\x57\x52\x35\x51\x45\x38\x6b\x78\x57\x35\x61\x73','\x57\x4f\x78\x63\x53\x4e\x76\x56\x63\x57','\x75\x64\x70\x63\x53\x63\x33\x63\x49\x6d\x6b\x41\x69\x6d\x6b\x39','\x76\x49\x2f\x63\x4f\x59\x4b','\x66\x53\x6f\x44\x72\x75\x6c\x64\x53\x71','\x65\x64\x7a\x31\x57\x50\x6a\x42\x57\x50\x2f\x64\x4f\x38\x6f\x37\x61\x43\x6f\x78','\x7a\x4b\x75\x6f\x79\x53\x6f\x4d\x62\x43\x6f\x47\x7a\x57','\x57\x52\x75\x70\x44\x6d\x6f\x77\x66\x47','\x57\x4f\x66\x6c\x57\x4f\x64\x63\x4a\x38\x6f\x53\x69\x38\x6b\x4e\x57\x4f\x69','\x44\x32\x79\x77','\x57\x51\x64\x64\x51\x5a\x54\x79\x57\x52\x52\x63\x4a\x75\x72\x4e','\x79\x4b\x64\x63\x4e\x43\x6f\x30\x57\x36\x69','\x67\x31\x50\x4d\x75\x6d\x6b\x54','\x57\x4f\x37\x64\x4e\x49\x44\x6a\x57\x50\x61','\x75\x4d\x5a\x64\x47\x6d\x6f\x41\x70\x4d\x65\x52','\x57\x37\x50\x69\x57\x37\x68\x63\x4d\x38\x6f\x5a','\x57\x4f\x4f\x56\x57\x50\x68\x63\x56\x47','\x68\x43\x6f\x67\x72\x65\x37\x64\x4d\x38\x6f\x7a\x6e\x72\x71','\x57\x4f\x64\x63\x48\x6d\x6f\x77\x57\x50\x64\x63\x4e\x47','\x57\x36\x48\x62\x43\x47','\x57\x52\x56\x64\x47\x43\x6f\x42\x41\x76\x62\x7a\x57\x37\x50\x72','\x79\x63\x64\x63\x48\x73\x78\x63\x4f\x47','\x42\x48\x4f\x63\x57\x37\x64\x64\x56\x4a\x4e\x64\x4d\x43\x6b\x66','\x57\x52\x33\x63\x53\x4e\x66\x69\x62\x47','\x6b\x53\x6f\x46\x6b\x43\x6f\x62\x78\x57','\x6d\x38\x6b\x47\x68\x59\x4e\x63\x49\x53\x6b\x74\x79\x73\x69','\x6f\x43\x6f\x6e\x63\x74\x75\x59\x57\x51\x70\x64\x49\x77\x6e\x30\x57\x34\x61','\x61\x6d\x6f\x2f\x57\x36\x48\x61\x57\x37\x65','\x57\x4f\x65\x30\x78\x6d\x6f\x50\x57\x35\x30','\x6f\x43\x6f\x42\x57\x37\x6a\x69\x57\x36\x6d','\x57\x35\x75\x68\x57\x50\x47\x6e\x57\x52\x47','\x57\x35\x68\x63\x55\x6d\x6f\x72\x57\x4f\x4e\x64\x49\x61','\x65\x53\x6f\x6c\x61\x53\x6f\x6b\x57\x52\x5a\x63\x51\x61','\x57\x35\x50\x30\x57\x34\x64\x63\x47\x43\x6b\x42','\x57\x4f\x58\x41\x57\x50\x52\x63\x4a\x43\x6f\x31\x6f\x57','\x78\x62\x4b\x63\x6b\x53\x6f\x6b\x57\x35\x46\x64\x49\x38\x6f\x50\x57\x34\x35\x50\x57\x34\x38\x53\x57\x51\x34','\x72\x43\x6f\x4c\x57\x52\x4f\x47\x57\x35\x53','\x76\x32\x61\x56\x57\x34\x7a\x63\x57\x50\x68\x64\x47\x53\x6f\x6e','\x6d\x6d\x6f\x36\x67\x6d\x6f\x6c\x73\x47','\x44\x4d\x53\x68\x7a\x43\x6f\x59\x67\x43\x6f\x54\x72\x71','\x57\x50\x35\x2b\x57\x37\x79\x67\x65\x43\x6b\x71\x68\x38\x6f\x76','\x57\x37\x79\x43\x57\x51\x66\x78\x72\x38\x6f\x6a\x66\x38\x6f\x6c\x57\x4f\x61\x66\x64\x74\x47','\x45\x6d\x6b\x66\x78\x67\x30\x67\x57\x52\x61','\x57\x35\x70\x64\x49\x43\x6f\x56\x57\x51\x74\x64\x55\x62\x47\x47\x61\x47','\x61\x38\x6f\x78\x6f\x43\x6f\x31\x72\x71','\x57\x34\x42\x63\x4e\x38\x6f\x65\x68\x6d\x6b\x2f\x57\x52\x44\x58\x71\x57','\x46\x65\x78\x63\x4b\x38\x6f\x6b\x57\x35\x4f','\x63\x31\x74\x64\x53\x31\x66\x4e','\x74\x53\x6f\x4c\x57\x50\x53\x51\x57\x35\x71','\x57\x36\x69\x75\x6a\x71','\x57\x35\x35\x33\x57\x34\x52\x63\x4a\x43\x6b\x31','\x57\x37\x50\x42\x57\x36\x4e\x63\x4c\x53\x6f\x4f\x57\x34\x68\x63\x48\x47','\x79\x53\x6f\x2b\x6d\x31\x30\x6d\x69\x4b\x71','\x57\x37\x6a\x66\x57\x52\x37\x63\x56\x58\x47','\x57\x52\x62\x46\x57\x36\x7a\x4c\x69\x71','\x6b\x53\x6f\x43\x43\x66\x33\x64\x4b\x71','\x79\x57\x38\x63\x57\x37\x64\x64\x56\x73\x52\x64\x4c\x6d\x6b\x50','\x57\x35\x44\x4c\x41\x6d\x6b\x64\x57\x51\x38','\x6c\x6d\x6f\x73\x57\x36\x39\x69\x57\x36\x35\x6f\x77\x53\x6f\x75','\x57\x37\x34\x50\x57\x4f\x38\x76\x57\x52\x4f','\x57\x35\x78\x64\x4d\x38\x6f\x62\x57\x4f\x4a\x64\x4f\x57','\x42\x4e\x68\x64\x52\x43\x6f\x44\x70\x33\x38\x58\x45\x61','\x79\x61\x4a\x63\x47\x4e\x52\x64\x50\x63\x6d\x2b\x75\x71','\x6e\x64\x68\x64\x4a\x53\x6b\x56\x57\x52\x58\x72\x69\x6d\x6f\x33\x57\x36\x57\x6c\x67\x67\x46\x64\x51\x61','\x69\x66\x68\x64\x52\x67\x7a\x54\x68\x38\x6b\x59\x57\x37\x4b','\x57\x34\x62\x71\x57\x35\x46\x63\x4a\x53\x6b\x57\x57\x4f\x35\x6f\x41\x57','\x57\x50\x47\x6d\x72\x53\x6f\x72\x62\x71','\x73\x49\x61\x4b\x6e\x78\x61','\x77\x43\x6b\x38\x44\x4c\x30\x36\x57\x4f\x42\x64\x4d\x32\x61','\x41\x58\x4b\x41\x57\x37\x64\x64\x4b\x73\x34','\x57\x50\x6a\x77\x57\x4f\x64\x63\x4a\x38\x6f\x6d\x6e\x53\x6b\x2b\x57\x50\x34','\x41\x68\x70\x63\x4d\x6d\x6f\x4f\x57\x37\x30','\x57\x4f\x30\x49\x57\x4f\x64\x63\x51\x43\x6b\x6c\x44\x53\x6f\x52\x57\x50\x57','\x42\x68\x46\x63\x47\x38\x6f\x2f\x57\x36\x71\x72\x79\x53\x6f\x6c','\x57\x35\x6d\x4b\x57\x4f\x38\x76\x57\x52\x31\x33','\x70\x43\x6f\x79\x68\x38\x6f\x59\x43\x38\x6b\x66\x57\x37\x34','\x74\x66\x4a\x64\x50\x43\x6f\x32\x67\x57','\x79\x4e\x42\x63\x47\x38\x6f\x35\x57\x36\x79\x6d\x43\x57','\x73\x6d\x6f\x61\x57\x51\x69\x46\x57\x37\x2f\x64\x4e\x38\x6b\x53\x57\x34\x71','\x57\x36\x33\x63\x53\x6d\x6f\x35\x57\x50\x42\x64\x54\x32\x70\x63\x4b\x43\x6f\x7a','\x57\x34\x33\x63\x52\x77\x50\x55\x57\x52\x38','\x57\x50\x72\x35\x57\x4f\x6c\x63\x47\x43\x6f\x52','\x63\x43\x6f\x44\x74\x4c\x64\x64\x52\x57','\x70\x4b\x4e\x64\x53\x66\x6e\x72','\x57\x52\x68\x63\x4e\x38\x6f\x2f\x57\x52\x64\x63\x48\x43\x6f\x46\x63\x59\x38','\x57\x37\x58\x45\x71\x38\x6b\x46\x57\x50\x53','\x62\x53\x6f\x55\x7a\x4e\x64\x64\x4f\x57','\x57\x37\x35\x6b\x57\x37\x70\x63\x4d\x6d\x6f\x34','\x57\x50\x62\x58\x57\x35\x48\x75\x57\x36\x6a\x56\x57\x36\x4f\x4b\x45\x47\x4c\x71','\x57\x36\x70\x64\x51\x78\x31\x32\x6b\x59\x4e\x64\x4f\x67\x71','\x6e\x30\x52\x64\x48\x63\x4a\x63\x51\x65\x72\x56\x42\x33\x48\x6f\x77\x72\x64\x63\x56\x71','\x70\x38\x6f\x69\x67\x6d\x6f\x49\x46\x43\x6b\x70\x57\x37\x34','\x76\x43\x6f\x78\x57\x51\x4f\x42\x57\x36\x68\x63\x4b\x38\x6b\x39\x57\x34\x4b','\x57\x35\x75\x6b\x57\x51\x71\x38\x57\x52\x79','\x57\x34\x5a\x63\x4e\x76\x64\x64\x4e\x53\x6f\x6d','\x69\x76\x33\x64\x55\x78\x66\x64\x65\x47','\x57\x36\x37\x63\x52\x76\x30\x53\x77\x61','\x7a\x59\x56\x63\x54\x78\x42\x64\x4c\x57','\x57\x50\x46\x63\x55\x78\x4c\x73\x6c\x71','\x57\x4f\x74\x64\x52\x71\x48\x42\x57\x50\x75','\x70\x6d\x6b\x43\x57\x51\x39\x73\x76\x61','\x73\x78\x69\x2b\x57\x37\x72\x79','\x61\x38\x6f\x4d\x62\x53\x6f\x64\x43\x47','\x57\x35\x6d\x55\x57\x50\x53\x69\x57\x52\x7a\x54\x57\x36\x61\x4c','\x57\x37\x56\x63\x51\x53\x6f\x4e\x57\x50\x70\x64\x48\x78\x4e\x63\x48\x53\x6f\x77','\x57\x51\x78\x64\x4e\x61\x5a\x63\x53\x33\x65\x54\x57\x52\x4c\x66\x68\x43\x6b\x77\x66\x71','\x57\x35\x64\x63\x55\x78\x58\x2b\x57\x52\x68\x64\x47\x57','\x73\x58\x69\x57\x6d\x32\x53\x34','\x57\x35\x52\x63\x49\x77\x46\x64\x4a\x38\x6f\x72','\x46\x64\x4f\x62\x66\x66\x43','\x70\x4c\x4e\x64\x52\x67\x7a\x6f\x67\x43\x6b\x4d\x57\x34\x4b','\x7a\x30\x34\x6e\x7a\x43\x6f\x6b\x68\x53\x6f\x55\x41\x47','\x57\x37\x50\x6c\x57\x37\x6c\x63\x4b\x53\x6f\x2b','\x71\x6d\x6f\x73\x41\x31\x6c\x64\x56\x53\x6f\x30\x64\x5a\x33\x64\x4e\x74\x62\x62\x61\x4e\x57','\x57\x50\x4e\x63\x48\x53\x6b\x62\x57\x51\x64\x64\x52\x38\x6f\x33\x57\x4f\x50\x4b\x57\x4f\x69','\x46\x78\x42\x63\x4c\x43\x6f\x32\x57\x36\x61\x73\x46\x53\x6f\x44','\x57\x37\x6d\x66\x57\x50\x79\x76\x57\x50\x71','\x72\x59\x30\x35\x57\x35\x4e\x64\x48\x48\x2f\x64\x56\x38\x6b\x69','\x57\x4f\x76\x6e\x57\x50\x33\x63\x4a\x6d\x6f\x34','\x68\x75\x68\x64\x4a\x68\x6e\x5a','\x57\x51\x52\x63\x52\x33\x7a\x57\x63\x4a\x37\x64\x55\x78\x65','\x57\x52\x56\x63\x52\x4d\x62\x35\x64\x4a\x33\x64\x50\x77\x43','\x57\x50\x30\x68\x46\x53\x6f\x4c\x68\x4a\x4b','\x57\x36\x4c\x6f\x57\x34\x74\x64\x48\x5a\x43','\x76\x43\x6f\x74\x57\x51\x43\x45\x57\x36\x6c\x63\x4b\x47','\x67\x49\x74\x63\x4d\x71','\x57\x35\x78\x63\x4b\x67\x56\x64\x53\x53\x6f\x68','\x41\x53\x6b\x43\x78\x67\x65\x62','\x57\x34\x39\x4e\x57\x34\x5a\x63\x50\x61','\x46\x32\x5a\x63\x47\x53\x6f\x30\x57\x36\x30\x76\x7a\x6d\x6f\x72','\x65\x58\x33\x64\x50\x61\x6d\x58\x64\x4c\x64\x63\x4e\x47','\x57\x34\x39\x4d\x57\x35\x46\x64\x51\x43\x6f\x70\x76\x38\x6f\x38\x57\x4f\x42\x64\x4f\x53\x6f\x56\x57\x36\x69','\x57\x34\x74\x63\x50\x68\x5a\x64\x4d\x72\x79\x41\x57\x4f\x76\x6c','\x70\x38\x6b\x65\x57\x51\x4c\x76\x73\x57','\x64\x76\x64\x64\x55\x78\x62\x69','\x44\x43\x6f\x37\x57\x4f\x38\x4a\x57\x35\x6c\x63\x52\x53\x6b\x6e\x57\x36\x47','\x6f\x43\x6f\x73\x57\x36\x38','\x44\x63\x38\x39\x76\x31\x38','\x57\x35\x4c\x6a\x57\x36\x64\x63\x50\x43\x6b\x6b','\x57\x35\x39\x63\x57\x51\x52\x63\x4f\x48\x74\x63\x54\x64\x6c\x64\x4e\x71','\x57\x4f\x6d\x65\x79\x6d\x6f\x55','\x57\x35\x33\x64\x4e\x43\x6f\x65\x57\x35\x53\x6e','\x57\x35\x54\x69\x57\x51\x33\x63\x50\x72\x42\x63\x51\x73\x70\x64\x4c\x71','\x43\x48\x52\x63\x4e\x67\x2f\x64\x56\x62\x4b\x69\x72\x57','\x57\x52\x38\x4c\x57\x50\x6c\x63\x56\x53\x6b\x6c','\x62\x47\x33\x63\x4f\x38\x6f\x51\x6b\x47','\x57\x35\x42\x64\x4b\x6d\x6f\x62\x57\x4f\x74\x64\x4f\x38\x6f\x37\x57\x52\x50\x48','\x69\x53\x6f\x51\x43\x77\x74\x64\x50\x43\x6f\x2f\x62\x61','\x57\x52\x68\x64\x52\x6d\x6b\x58\x57\x35\x42\x63\x50\x59\x42\x64\x47\x53\x6f\x59\x61\x75\x47\x46\x57\x36\x35\x56','\x78\x31\x57\x34\x57\x36\x6e\x38','\x76\x62\x34\x2f','\x44\x57\x57\x36\x7a\x4d\x61\x5a\x72\x75\x69','\x57\x36\x68\x63\x56\x53\x6f\x5a\x63\x57','\x57\x50\x38\x4a\x73\x38\x6f\x31\x57\x35\x6e\x74\x57\x37\x38','\x44\x4b\x4b\x74\x46\x53\x6f\x57\x67\x6d\x6f\x47\x7a\x57','\x68\x75\x6a\x42\x46\x43\x6b\x7a','\x72\x65\x78\x63\x47\x43\x6f\x51\x57\x37\x34','\x6d\x72\x33\x63\x4f\x43\x6f\x48\x62\x47\x5a\x63\x55\x53\x6b\x54','\x7a\x77\x6c\x63\x48\x6d\x6f\x59\x57\x35\x79\x66\x7a\x6d\x6f\x72','\x79\x75\x69\x62\x41\x53\x6f\x35\x61\x43\x6f\x47\x7a\x57','\x43\x48\x37\x63\x48\x71','\x57\x35\x33\x63\x52\x32\x66\x38\x57\x52\x68\x64\x54\x6d\x6b\x41\x6a\x47','\x64\x53\x6f\x36\x6b\x38\x6f\x47\x57\x52\x69','\x6f\x38\x6b\x5a\x57\x52\x38','\x57\x51\x71\x6d\x57\x51\x56\x63\x53\x6d\x6b\x2b','\x57\x34\x6e\x54\x72\x6d\x6b\x44\x57\x4f\x33\x63\x47\x6d\x6b\x47\x57\x4f\x47','\x57\x34\x69\x47\x57\x50\x4f\x66\x57\x52\x4f','\x57\x36\x42\x63\x53\x4c\x46\x64\x51\x74\x4f\x35\x57\x51\x6e\x50','\x57\x52\x66\x59\x57\x36\x66\x2b','\x57\x50\x47\x5a\x57\x4f\x64\x63\x52\x38\x6b\x6b\x75\x38\x6f\x48\x57\x52\x65','\x6d\x76\x70\x63\x55\x67\x76\x62\x65\x38\x6b\x5a\x57\x37\x6d','\x57\x34\x72\x65\x57\x34\x68\x63\x54\x6d\x6b\x52\x57\x4f\x6e\x66\x75\x71','\x57\x36\x33\x63\x53\x78\x57\x55\x74\x78\x6c\x63\x56\x57','\x57\x51\x31\x7a\x57\x37\x65\x36\x62\x43\x6b\x73\x61\x43\x6f\x4d','\x72\x68\x79\x2f\x57\x34\x35\x6a\x57\x50\x6d','\x57\x4f\x61\x2f\x46\x38\x6f\x30\x57\x35\x6e\x65\x57\x37\x6c\x63\x48\x57','\x57\x52\x33\x64\x4b\x43\x6f\x41\x41\x61','\x46\x4e\x70\x63\x4d\x38\x6f\x5a\x57\x36\x4f\x65','\x61\x4a\x42\x64\x56\x71\x38\x56\x64\x75\x33\x63\x47\x57','\x7a\x6d\x6f\x6d\x43\x72\x33\x63\x50\x71','\x57\x34\x70\x64\x50\x6d\x6f\x66\x57\x4f\x42\x64\x4d\x5a\x61\x79','\x74\x64\x70\x63\x4c\x74\x52\x63\x51\x61','\x69\x53\x6f\x46\x62\x6d\x6f\x59\x45\x43\x6b\x42\x57\x36\x47\x46','\x45\x4d\x30\x54\x57\x35\x72\x67','\x57\x4f\x61\x4a\x77\x38\x6f\x4e\x57\x35\x35\x79\x57\x37\x2f\x63\x50\x47','\x57\x37\x52\x63\x55\x38\x6f\x50\x57\x50\x64\x64\x56\x78\x47','\x6a\x38\x6f\x45\x57\x36\x48\x79\x57\x36\x39\x2f\x75\x38\x6f\x4b','\x57\x52\x78\x64\x52\x57\x54\x30\x57\x52\x65','\x57\x35\x64\x64\x53\x43\x6f\x44\x57\x35\x53\x4a','\x57\x51\x37\x63\x53\x33\x54\x59\x70\x64\x37\x64\x55\x4e\x30','\x46\x64\x71\x71\x64\x65\x47\x6a\x44\x4a\x34','\x79\x38\x6f\x6f\x45\x5a\x37\x63\x50\x65\x46\x64\x55\x53\x6f\x43','\x57\x35\x62\x35\x57\x4f\x4e\x63\x52\x53\x6b\x44\x43\x53\x6f\x48\x57\x4f\x38','\x57\x36\x54\x69\x57\x36\x74\x63\x4b\x57','\x75\x38\x6f\x42\x57\x51\x79\x75\x57\x35\x6c\x63\x4a\x6d\x6b\x5a\x57\x34\x71','\x74\x61\x38\x75\x6e\x65\x4f','\x44\x67\x56\x64\x4a\x6d\x6f\x41\x6d\x68\x4f\x32','\x6a\x43\x6b\x4a\x42\x58\x62\x69\x7a\x47\x4f\x41','\x57\x37\x33\x63\x51\x53\x6f\x43\x57\x51\x33\x64\x47\x57','\x57\x35\x39\x69\x57\x52\x5a\x63\x52\x72\x5a\x63\x52\x63\x78\x64\x4b\x61','\x73\x48\x34\x32\x6c\x4d\x75\x36\x75\x57','\x57\x50\x57\x63\x71\x53\x6f\x6a\x62\x57','\x79\x4d\x5a\x64\x4d\x53\x6f\x62\x6e\x67\x6d\x47\x45\x71','\x78\x74\x79\x4c','\x61\x71\x5a\x63\x49\x53\x6f\x62\x6f\x47','\x57\x51\x43\x46\x45\x43\x6f\x53\x6c\x71','\x57\x35\x4e\x63\x50\x67\x6a\x32\x57\x52\x46\x64\x4e\x38\x6b\x61','\x57\x36\x71\x63\x57\x51\x38\x51\x57\x50\x35\x67\x57\x34\x71\x6a','\x57\x4f\x61\x6d\x46\x43\x6f\x55\x61\x64\x35\x6c\x43\x47','\x57\x51\x6c\x64\x4b\x43\x6f\x44\x79\x31\x4c\x44\x57\x37\x57','\x57\x36\x37\x63\x4f\x4b\x33\x64\x47\x4a\x65','\x42\x48\x6c\x63\x4b\x68\x74\x64\x4f\x61','\x57\x52\x5a\x64\x55\x49\x50\x7a','\x57\x52\x66\x69\x57\x36\x4f\x50\x66\x71','\x57\x51\x53\x6e\x43\x38\x6f\x5a\x6e\x57','\x64\x38\x6f\x64\x65\x38\x6f\x6d\x57\x51\x46\x63\x4f\x38\x6f\x64\x57\x35\x30','\x44\x65\x4b\x4c\x73\x53\x6f\x33','\x44\x58\x37\x63\x47\x33\x42\x64\x54\x47\x75\x79\x77\x57','\x57\x36\x78\x63\x49\x66\x56\x64\x53\x49\x4f\x49','\x57\x35\x48\x64\x57\x34\x64\x64\x4b\x5a\x47','\x57\x35\x48\x33\x57\x35\x78\x63\x47\x6d\x6b\x30','\x6b\x38\x6f\x43\x57\x35\x31\x53\x57\x37\x61','\x46\x38\x6f\x55\x6a\x4b\x30\x6d\x69\x71','\x6c\x38\x6f\x66\x57\x36\x4c\x65\x57\x37\x71','\x72\x4a\x2f\x63\x4f\x63\x33\x63\x48\x53\x6b\x41\x69\x6d\x6b\x39','\x6b\x38\x6f\x2f\x6a\x43\x6f\x46\x77\x57','\x57\x37\x46\x64\x55\x43\x6f\x44\x57\x4f\x33\x64\x47\x62\x47\x46\x69\x57','\x57\x50\x6d\x31\x73\x38\x6f\x4a\x57\x34\x7a\x52\x57\x37\x70\x63\x50\x47','\x57\x34\x58\x7a\x57\x52\x4f','\x7a\x4e\x6c\x64\x47\x38\x6f\x58\x6a\x33\x6d\x52\x41\x71','\x69\x53\x6b\x4d\x57\x52\x66\x4e\x78\x71','\x61\x6d\x6b\x67\x6c\x61\x5a\x63\x4f\x6d\x6b\x4c\x76\x61\x79','\x79\x43\x6b\x48\x6c\x78\x74\x64\x51\x38\x6f\x32\x62\x59\x4b','\x6a\x49\x46\x64\x50\x47\x53\x45','\x57\x34\x4f\x4b\x57\x50\x57','\x6d\x38\x6b\x4b\x57\x50\x31\x32\x43\x6d\x6b\x48\x57\x34\x69\x63','\x75\x53\x6f\x4a\x6a\x4b\x30\x6c','\x61\x62\x74\x63\x47\x43\x6f\x67','\x74\x72\x47\x63\x6e\x68\x79\x2f\x74\x48\x57','\x57\x37\x68\x63\x47\x65\x64\x64\x4f\x38\x6f\x36','\x6a\x43\x6f\x34\x6c\x6d\x6f\x31\x57\x4f\x78\x63\x47\x38\x6f\x64\x57\x36\x4b','\x57\x51\x6c\x64\x49\x43\x6f\x7a\x44\x75\x6a\x76\x57\x34\x7a\x77','\x41\x43\x6f\x6a\x61\x66\x47\x61','\x57\x51\x50\x7a\x57\x36\x43\x67\x68\x38\x6b\x72\x66\x47','\x57\x36\x68\x63\x54\x30\x52\x64\x54\x5a\x38','\x57\x37\x78\x63\x55\x78\x31\x57\x57\x52\x37\x63\x49\x32\x35\x43\x6a\x61','\x57\x52\x42\x63\x53\x30\x62\x6e\x6f\x71','\x6d\x75\x50\x61\x57\x51\x42\x63\x51\x64\x33\x64\x4b\x38\x6b\x79\x64\x38\x6f\x7a\x62\x57','\x57\x4f\x52\x63\x4c\x4c\x66\x64\x6d\x71\x5a\x64\x48\x76\x65','\x57\x52\x5a\x64\x56\x5a\x58\x76','\x66\x33\x56\x64\x4d\x75\x39\x53\x6a\x43\x6b\x6a\x57\x35\x6d','\x57\x50\x72\x35\x57\x35\x75\x44\x6d\x47','\x57\x35\x39\x42\x57\x35\x64\x64\x52\x47\x43','\x69\x53\x6f\x4d\x43\x77\x74\x64\x52\x43\x6f\x32\x62\x47','\x41\x59\x61\x4a\x72\x77\x34','\x57\x50\x4f\x78\x57\x50\x75','\x57\x37\x68\x63\x52\x38\x6f\x48\x57\x4f\x37\x64\x55\x47','\x57\x52\x72\x68\x57\x37\x7a\x4a\x6a\x65\x75\x52\x57\x36\x47'];_0x2306=function(){return _0x501ec4;};return _0x2306();}'use strict';const {envInt:_0x3bc53,envFloat:_0x5dd1f3}=require(_0x37ca3c(0x160,'\x66\x78\x52\x43')+'\x67'),{fetchAssetById:_0x59f671}=require(_0x37ca3c(0x2dc,'\x44\x40\x32\x6f')+_0x37ca3c(0x1f7,'\x6d\x2a\x24\x4a')),{computeAssetId:_0x581e65}=require(_0x37ca3c(0x1cb,'\x41\x76\x4c\x4d')+_0x37ca3c(0x1c9,'\x66\x78\x52\x43')),{writeMemoryGraphEvent:_0x3dcf06}=require(_0x37ca3c(0x201,'\x59\x5a\x26\x5e')+_0x37ca3c(0x1ae,'\x6f\x48\x45\x51'));let _0x9c9df=[];const _0x322630=new Set();let _0x26a3e5=![],_0xd97f16=null;const _0x388b3a={};_0x388b3a['\x6f\x6b']=0x0,_0x388b3a[_0x37ca3c(0x175,'\x66\x78\x52\x43')]=0x0,_0x388b3a['\x6d\x69\x73\x6d\x61\x74\x63\x68']=0x0,_0x388b3a['\x73\x6b\x69\x70\x70\x65\x64']=0x0;let _0x4a359e=_0x388b3a;const _0x108d51=[-0x1*0x931+-0x1464+0x311d*0x1,0x39fe+-0x2*0x1f34+0x1f81*0x2,0x75aa*-0x1+0x55*0x2a1+0x8095];function _0x3db567(){const _0x22a0b2=_0x37ca3c,_0x313263={};_0x313263[_0x22a0b2(0x2e2,'\x23\x37\x51\x72')]=function(_0x331491,_0x1fdf8d){return _0x331491===_0x1fdf8d;};const _0x32fbd3=_0x313263;return _0x32fbd3[_0x22a0b2(0x228,'\x40\x4c\x74\x75')](String(process.env.EVOLVE_RECALL_VERIFY||'\x30'),'\x31');}function _0x3eb989(){const _0x45aeb3=_0x37ca3c,_0x46f34c={'\x6e\x49\x7a\x42\x62':function(_0x525a6a,_0xb56df,_0x3d84d9){return _0x525a6a(_0xb56df,_0x3d84d9);},'\x74\x70\x79\x58\x72':_0x45aeb3(0x207,'\x79\x75\x5e\x43')+_0x45aeb3(0x2da,'\x43\x6e\x6e\x6b')+_0x45aeb3(0x260,'\x59\x54\x49\x47')+_0x45aeb3(0x170,'\x54\x56\x4b\x30'),'\x53\x7a\x6b\x6c\x72':function(_0x2b0be8,_0x4e557d){return _0x2b0be8<_0x4e557d;},'\x64\x6d\x64\x50\x75':function(_0x1ed53b,_0x166c1c){return _0x1ed53b>_0x166c1c;}},_0x1d04e5=_0x46f34c[_0x45aeb3(0x176,'\x49\x5a\x5d\x70')](_0x5dd1f3,_0x46f34c[_0x45aeb3(0x1f6,'\x6f\x48\x45\x51')],-0x4b0+0x444+0x6d);if(!Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x1d04e5)||_0x46f34c[_0x45aeb3(0x2e9,'\x79\x74\x4d\x5a')](_0x1d04e5,0x6b*-0x10+0x19b9+-0x1bb*0xb)||_0x46f34c[_0x45aeb3(0x2cf,'\x47\x6c\x49\x71')](_0x1d04e5,-0x6d2+0x2*0x10f1+-0x1*0x1b0f))return-0x1f7*-0x7+0x905+-0x1*0x16c5;return _0x1d04e5;}function _0x3c376e(){const _0x273e0b=_0x37ca3c,_0x8848c2={'\x53\x61\x52\x4a\x4f':function(_0x4b19aa,_0x5a0e3f,_0x3d6816){return _0x4b19aa(_0x5a0e3f,_0x3d6816);}};return _0x8848c2[_0x273e0b(0x1e1,'\x79\x75\x5e\x43')](_0x3bc53,_0x273e0b(0x168,'\x62\x7a\x73\x65')+_0x273e0b(0x247,'\x62\x6f\x31\x6f')+_0x273e0b(0x2a3,'\x48\x30\x55\x4d')+_0x273e0b(0x1c3,'\x45\x51\x4a\x47'),0x2242+-0x74b+-0x19f7);}function _0xe1c911(){const _0x29b69b=_0x37ca3c,_0x349421={'\x77\x74\x4d\x46\x7a':function(_0x5694a5,_0x10c71a,_0x507793){return _0x5694a5(_0x10c71a,_0x507793);},'\x4f\x79\x54\x70\x53':_0x29b69b(0x291,'\x68\x61\x69\x4b')+_0x29b69b(0x235,'\x47\x65\x4c\x41')+_0x29b69b(0x2a0,'\x6d\x2a\x24\x4a')+_0x29b69b(0x2b4,'\x6c\x63\x6e\x4e')};return _0x349421[_0x29b69b(0x1ab,'\x62\x56\x6e\x44')](_0x3bc53,_0x349421[_0x29b69b(0x293,'\x76\x72\x58\x77')],-0x4*-0x9a9+0xbce+-0x3*0xa4e);}function _0x39e56c(){const _0x6244e2=_0x37ca3c,_0xefdbea={'\x6c\x6e\x61\x4c\x76':function(_0x433a99,_0x5e2fb5,_0x3673c6){return _0x433a99(_0x5e2fb5,_0x3673c6);},'\x71\x4a\x73\x4c\x65':_0x6244e2(0x1bd,'\x4c\x66\x31\x6e')+_0x6244e2(0x2eb,'\x31\x53\x4c\x44')+_0x6244e2(0x1ac,'\x7a\x57\x53\x21')+'\x54\x49\x41\x4c\x5f\x57\x41\x49'+_0x6244e2(0x29c,'\x4e\x5e\x72\x72')};return _0xefdbea['\x6c\x6e\x61\x4c\x76'](_0x3bc53,_0xefdbea[_0x6244e2(0x193,'\x47\x65\x4c\x41')],-0x1*-0x1183+-0x21e8+0x23ed);}function _0x30eb61(){const _0x27f425=_0x37ca3c,_0x382a56={'\x79\x52\x4e\x4e\x47':function(_0x33c7f7,_0x1dabc1,_0x5e240b){return _0x33c7f7(_0x1dabc1,_0x5e240b);},'\x47\x4d\x4a\x6a\x4b':_0x27f425(0x2b9,'\x45\x51\x4a\x47')+_0x27f425(0x172,'\x76\x72\x58\x77')+_0x27f425(0x22d,'\x66\x78\x52\x43')+_0x27f425(0x289,'\x43\x6e\x6e\x6b')};return _0x382a56[_0x27f425(0x159,'\x25\x73\x36\x38')](_0x3bc53,_0x382a56[_0x27f425(0x1c2,'\x21\x4e\x6e\x35')],0x25bc+0x1c72+0xd*-0x517);}function _0x271822(){const _0x48f55f=_0x37ca3c,_0x47b3ac={'\x75\x73\x70\x6a\x46':function(_0x48db3e,_0x4d21ab,_0x454187){return _0x48db3e(_0x4d21ab,_0x454187);},'\x66\x4b\x74\x4d\x4a':'\x45\x56\x4f\x4c\x56\x45\x5f\x52'+_0x48f55f(0x2c1,'\x4a\x78\x61\x4a')+_0x48f55f(0x205,'\x47\x6c\x49\x71')+_0x48f55f(0x1a1,'\x44\x76\x37\x6f')+_0x48f55f(0x1e8,'\x49\x5a\x5d\x70')};return _0x47b3ac[_0x48f55f(0x21a,'\x25\x73\x36\x38')](_0x3bc53,_0x47b3ac[_0x48f55f(0x280,'\x40\x59\x43\x5d')],0x21f2+-0xecc+-0xc1a*-0x1);}function _0x29bf0c(_0x794368,_0x59acf5,_0xb650b,_0x57105e){const _0x1480c0=_0x37ca3c,_0x3f7c4c={'\x4b\x69\x52\x6a\x4d':function(_0x31991e,_0x858a70){return _0x31991e!==_0x858a70;},'\x42\x7a\x44\x50\x77':function(_0x4b715b,_0x23e94c){return _0x4b715b||_0x23e94c;},'\x54\x4e\x76\x6d\x42':function(_0x5d46e2,_0x40c3a4){return _0x5d46e2-_0x40c3a4;},'\x64\x42\x47\x66\x63':_0x1480c0(0x19d,'\x40\x59\x43\x5d')+_0x1480c0(0x15d,'\x58\x6c\x34\x36'),'\x49\x46\x76\x70\x77':function(_0x435200,_0x379e46){return _0x435200+_0x379e46;},'\x6c\x71\x68\x50\x71':_0x1480c0(0x19f,'\x33\x34\x72\x69'),'\x72\x46\x69\x66\x6b':_0x1480c0(0x2d0,'\x62\x6f\x31\x6f'),'\x59\x52\x47\x55\x75':function(_0x44092e,_0x3c5ebb){return _0x44092e(_0x3c5ebb);},'\x68\x67\x50\x49\x58':function(_0x35443b,_0x378d59){return _0x35443b!==_0x378d59;},'\x4b\x62\x51\x54\x53':_0x1480c0(0x26e,'\x66\x78\x52\x43'),'\x42\x54\x68\x74\x44':function(_0x463488,_0x32e423){return _0x463488===_0x32e423;},'\x41\x4b\x4e\x51\x66':function(_0xec7870,_0x52b8c6){return _0xec7870+_0x52b8c6;},'\x6c\x67\x42\x59\x6f':function(_0x396900,_0x3f1fee){return _0x396900===_0x3f1fee;},'\x66\x50\x44\x69\x47':_0x1480c0(0x283,'\x31\x53\x4c\x44')+_0x1480c0(0x1c5,'\x4a\x78\x61\x4a'),'\x75\x78\x45\x74\x4e':_0x1480c0(0x1d7,'\x44\x40\x32\x6f')+_0x1480c0(0x2c3,'\x6d\x2a\x24\x4a')+'\x67','\x72\x46\x4d\x47\x7a':_0x1480c0(0x2a7,'\x23\x72\x37\x6c')+_0x1480c0(0x18c,'\x45\x51\x4a\x47')+'\x63\x68'},_0x3480ef=Date[_0x1480c0(0x212,'\x43\x41\x35\x21')](),_0x1d2e13={'\x6f\x75\x74\x63\x6f\x6d\x65':_0x59acf5,'\x72\x65\x61\x73\x6f\x6e':_0x3f7c4c[_0x1480c0(0x22e,'\x5d\x2a\x4b\x71')](_0xb650b,null),'\x61\x74\x74\x65\x6d\x70\x74\x73':_0x57105e&&Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x57105e[_0x1480c0(0x254,'\x68\x61\x69\x4b')])?_0x57105e['\x61\x74\x74\x65\x6d\x70\x74\x73']:_0x794368[_0x1480c0(0x1fa,'\x43\x41\x35\x21')]||-0x8b*0x3+-0x2151+0x22f2,'\x6c\x61\x74\x65\x6e\x63\x79\x5f\x6d\x73':_0x57105e&&Number[_0x1480c0(0x259,'\x58\x6c\x34\x36')](_0x57105e[_0x1480c0(0x28a,'\x76\x72\x58\x77')+'\x6d\x73'])?_0x57105e[_0x1480c0(0x25d,'\x21\x4e\x6e\x35')+'\x6d\x73']:0xa0d*-0x1+0x7e6*-0x4+0x29a5,'\x61\x67\x65\x5f\x61\x74\x5f\x76\x65\x72\x69\x66\x79\x5f\x6d\x73':_0x794368[_0x1480c0(0x198,'\x79\x75\x5e\x43')+_0x1480c0(0x225,'\x43\x41\x35\x21')]?_0x3f7c4c[_0x1480c0(0x161,'\x56\x62\x40\x6e')](_0x3480ef,_0x794368[_0x1480c0(0x28f,'\x50\x62\x29\x48')+_0x1480c0(0x1fe,'\x25\x73\x36\x38')]):-0x6*-0xfd+-0x28*-0x34+-0xe0e,'\x72\x65\x63\x61\x6c\x6c\x65\x64\x5f\x68\x61\x73\x68':_0x57105e&&_0x57105e[_0x1480c0(0x2bb,'\x43\x41\x35\x21')+_0x1480c0(0x21d,'\x54\x56\x4b\x30')]?_0x57105e[_0x1480c0(0x21e,'\x6f\x48\x45\x51')+'\x5f\x68\x61\x73\x68']:null},_0x599ff3={'\x74\x79\x70\x65':_0x3f7c4c[_0x1480c0(0x16a,'\x44\x76\x37\x6f')],'\x6b\x69\x6e\x64':_0x1480c0(0x2b3,'\x49\x5a\x5d\x70')+_0x1480c0(0x292,'\x36\x5b\x57\x65'),'\x69\x64':_0x3f7c4c[_0x1480c0(0x2b8,'\x50\x62\x29\x48')](_0x3f7c4c[_0x1480c0(0x17f,'\x48\x30\x55\x4d')](_0x3f7c4c[_0x1480c0(0x26f,'\x76\x72\x58\x77')],_0x3480ef),'\x5f')+Math[_0x1480c0(0x298,'\x48\x30\x55\x4d')]()[_0x1480c0(0x166,'\x43\x6e\x6e\x6b')](0x10f5+0x1cdc+-0xb*0x427)[_0x1480c0(0x2b7,'\x40\x4c\x74\x75')](-0x100f*0x2+0x3*0x2cf+0x17b3,-0x1*-0xa61+-0x2195+0x15e*0x11),'\x74\x73':_0x3480ef,'\x61\x73\x73\x65\x74':{'\x74\x79\x70\x65':_0x794368[_0x1480c0(0x22c,'\x44\x40\x32\x6f')]||_0x3f7c4c[_0x1480c0(0x24e,'\x21\x4e\x6e\x35')],'\x69\x64':_0x794368[_0x1480c0(0x204,'\x7a\x57\x53\x21')]||null},'\x76\x65\x72\x69\x66\x69\x63\x61\x74\x69\x6f\x6e':_0x1d2e13,'\x73\x69\x67\x6e\x61\x6c':{'\x73\x69\x67\x6e\x61\x6c\x73':Array[_0x1480c0(0x1e9,'\x45\x51\x4a\x47')](_0x794368[_0x1480c0(0x2e0,'\x58\x6c\x34\x36')])?_0x794368[_0x1480c0(0x1d5,'\x66\x64\x39\x77')][_0x1480c0(0x239,'\x66\x64\x39\x77')](-0x1a2d+0x150d+0x29*0x20,0xbbd+-0x3*-0xba+-0xf*0xed):[]}};try{_0x3f7c4c[_0x1480c0(0x220,'\x66\x78\x52\x43')](_0x3dcf06,_0x599ff3);}catch(_0x47b1c1){if(_0x3f7c4c[_0x1480c0(0x2e5,'\x79\x74\x4d\x5a')](_0x3f7c4c[_0x1480c0(0x192,'\x25\x73\x36\x38')],_0x3f7c4c['\x4b\x62\x51\x54\x53'])){const _0x1502be={};_0x1502be[_0x1480c0(0x224,'\x36\x5b\x57\x65')]=_0x58551e[_0x1480c0(0x265,'\x50\x62\x29\x48')],_0x1502be[_0x1480c0(0x1df,'\x44\x76\x37\x6f')+'\x6d\x73']=_0x14d6b3['\x6c\x61\x74\x65\x6e\x63\x79\x5f'+'\x6d\x73'],_0x1502be[_0x1480c0(0x202,'\x5a\x4f\x4a\x4a')+_0x1480c0(0x251,'\x23\x72\x37\x6c')]=_0x4e6991['\x72\x65\x63\x61\x6c\x6c\x65\x64'+_0x1480c0(0x2d8,'\x31\x4e\x6a\x53')],_0x2f3c6e(_0x3e5508,_0x5987d9[_0x1480c0(0x1fb,'\x21\x4e\x6e\x35')],_0x21cdaf[_0x1480c0(0x156,'\x44\x76\x37\x6f')],_0x1502be);const _0x58644e=_0x12fa66[_0x1480c0(0x1d9,'\x23\x72\x37\x6c')](_0x2a2a5b);if(_0x3f7c4c['\x4b\x69\x52\x6a\x4d'](_0x58644e,-(-0x1317*0x1+-0x92*0x9+0x183a)))_0x5f2404[_0x1480c0(0x2cd,'\x50\x62\x29\x48')](_0x58644e,0x2*-0xd5+-0x22a*0xb+0x1979);}else _0x3f7c4c[_0x1480c0(0x229,'\x79\x75\x5e\x43')](process.env.EVOLVE_RECALL_VERIFY_DEBUG,'\x31')&&console[_0x1480c0(0x2c4,'\x50\x29\x53\x43')](_0x3f7c4c['\x41\x4b\x4e\x51\x66'](_0x1480c0(0x244,'\x62\x56\x6e\x44')+_0x1480c0(0x20f,'\x74\x75\x77\x67')+_0x1480c0(0x262,'\x36\x5b\x57\x65')+_0x1480c0(0x1c8,'\x40\x59\x43\x5d')+_0x1480c0(0x1cc,'\x47\x6c\x49\x71')+'\x6c\x65\x64\x3a\x20',_0x47b1c1&&_0x47b1c1['\x6d\x65\x73\x73\x61\x67\x65']||_0x47b1c1));}if(_0x3f7c4c['\x6c\x67\x42\x59\x6f'](_0x59acf5,_0x3f7c4c[_0x1480c0(0x27d,'\x33\x34\x72\x69')]))_0x4a359e['\x6f\x6b']++;else{if(_0x3f7c4c[_0x1480c0(0x27a,'\x74\x75\x77\x67')](_0x59acf5,_0x3f7c4c[_0x1480c0(0x2df,'\x43\x6e\x6e\x6b')]))_0x4a359e['\x6d\x69\x73\x73\x69\x6e\x67']++;else{if(_0x3f7c4c[_0x1480c0(0x1a8,'\x66\x78\x52\x43')](_0x59acf5,_0x3f7c4c[_0x1480c0(0x2ad,'\x45\x51\x4a\x47')]))_0x4a359e[_0x1480c0(0x1ea,'\x47\x65\x4c\x41')]++;else _0x4a359e[_0x1480c0(0x1ce,'\x79\x74\x4d\x5a')]++;}}}function _0x4a472d(_0x405a72){const _0x5f4899=_0x37ca3c,_0x44a3fa={'\x75\x78\x43\x4e\x54':function(_0x1b3795,_0xd1dfd6){return _0x1b3795(_0xd1dfd6);},'\x52\x75\x52\x74\x65':function(_0x1c84a0,_0x3ddbe0){return _0x1c84a0(_0x3ddbe0);},'\x6e\x79\x52\x71\x74':function(_0x33d9ae){return _0x33d9ae();},'\x69\x57\x52\x50\x59':function(_0x2ab92e,_0x39ad62,_0x2699f1,_0xd518f4){return _0x2ab92e(_0x39ad62,_0x2699f1,_0xd518f4);},'\x51\x4b\x6d\x52\x6e':_0x5f4899(0x230,'\x6a\x47\x4b\x41')+'\x74\x69\x6f\x6e\x5f\x73\x6b\x69'+_0x5f4899(0x2dd,'\x4e\x5e\x72\x72'),'\x6e\x65\x46\x76\x4c':_0x5f4899(0x2c5,'\x44\x40\x32\x6f')+_0x5f4899(0x158,'\x6f\x48\x45\x51'),'\x4a\x48\x73\x6b\x77':_0x5f4899(0x2d6,'\x66\x64\x39\x77')+_0x5f4899(0x15a,'\x62\x6f\x31\x6f'),'\x4c\x75\x71\x43\x5a':function(_0x98ddaf,_0x3039f0){return _0x98ddaf<_0x3039f0;},'\x47\x57\x6d\x69\x42':function(_0x9bf48f,_0x1bed33){return _0x9bf48f>=_0x1bed33;},'\x59\x67\x49\x6c\x6a':_0x5f4899(0x2ab,'\x33\x34\x72\x69')+_0x5f4899(0x1b7,'\x38\x76\x35\x23'),'\x76\x6a\x42\x69\x63':function(_0x3e8680){return _0x3e8680();},'\x41\x6a\x66\x56\x49':function(_0x2cd46c){return _0x2cd46c();},'\x71\x46\x64\x50\x53':_0x5f4899(0x1e7,'\x62\x56\x6e\x44'),'\x56\x6a\x4e\x64\x54':function(_0x3cfbeb,_0x3818c7,_0x1a3175,_0x68a65f){return _0x3cfbeb(_0x3818c7,_0x1a3175,_0x68a65f);},'\x74\x58\x76\x44\x70':'\x71\x75\x65\x75\x65\x5f\x66\x75'+'\x6c\x6c'},_0x58022d={'\x61\x73\x73\x65\x74\x5f\x69\x64':_0x405a72&&_0x405a72['\x61\x73\x73\x65\x74\x5f\x69\x64']?_0x44a3fa[_0x5f4899(0x2a6,'\x21\x4e\x6e\x35')](String,_0x405a72[_0x5f4899(0x25a,'\x33\x34\x72\x69')]):null,'\x74\x79\x70\x65':_0x405a72&&_0x405a72['\x74\x79\x70\x65']?_0x44a3fa[_0x5f4899(0x1c0,'\x6a\x47\x4b\x41')](String,_0x405a72[_0x5f4899(0x21f,'\x6f\x48\x45\x51')]):_0x5f4899(0x22a,'\x58\x6c\x34\x36'),'\x73\x69\x67\x6e\x61\x6c\x73':Array[_0x5f4899(0x213,'\x51\x68\x29\x65')](_0x405a72&&_0x405a72['\x73\x69\x67\x6e\x61\x6c\x73'])?_0x405a72[_0x5f4899(0x2e4,'\x43\x6e\x6e\x6b')]:[],'\x70\x75\x62\x6c\x69\x73\x68\x65\x64\x41\x74':_0x405a72&&Number[_0x5f4899(0x163,'\x40\x59\x43\x5d')](_0x405a72[_0x5f4899(0x198,'\x79\x75\x5e\x43')+'\x64\x41\x74'])?_0x405a72[_0x5f4899(0x294,'\x54\x56\x4b\x30')+_0x5f4899(0x177,'\x44\x40\x32\x6f')]:Date['\x6e\x6f\x77'](),'\x61\x74\x74\x65\x6d\x70\x74\x73':0x0,'\x6e\x65\x78\x74\x45\x6c\x69\x67\x69\x62\x6c\x65\x41\x74':0x0};if(!_0x44a3fa[_0x5f4899(0x27c,'\x51\x68\x29\x65')](_0x3db567)){_0x44a3fa['\x69\x57\x52\x50\x59'](_0x29bf0c,_0x58022d,_0x44a3fa[_0x5f4899(0x197,'\x40\x4c\x74\x75')],_0x44a3fa[_0x5f4899(0x181,'\x45\x51\x4a\x47')]);const _0x28bef7={};return _0x28bef7[_0x5f4899(0x26b,'\x23\x37\x51\x72')]=![],_0x28bef7['\x72\x65\x61\x73\x6f\x6e']=_0x44a3fa[_0x5f4899(0x2d1,'\x6f\x48\x45\x51')],_0x28bef7;}if(!_0x58022d[_0x5f4899(0x15a,'\x62\x6f\x31\x6f')]){_0x44a3fa[_0x5f4899(0x24c,'\x48\x30\x55\x4d')](_0x29bf0c,_0x58022d,_0x44a3fa[_0x5f4899(0x255,'\x4a\x78\x61\x4a')],_0x44a3fa[_0x5f4899(0x237,'\x66\x64\x39\x77')]);const _0x53582d={};return _0x53582d[_0x5f4899(0x1d4,'\x50\x62\x29\x48')]=![],_0x53582d[_0x5f4899(0x23c,'\x62\x7a\x73\x65')]='\x6d\x69\x73\x73\x69\x6e\x67\x5f'+_0x5f4899(0x1e2,'\x38\x76\x35\x23'),_0x53582d;}const _0x397d5a=_0x44a3fa[_0x5f4899(0x1d6,'\x7a\x57\x53\x21')](_0x3eb989);if(_0x44a3fa[_0x5f4899(0x1b0,'\x4a\x78\x61\x4a')](_0x397d5a,-0x1*0x15d3+0xa6*-0x32+0x3640)&&_0x44a3fa[_0x5f4899(0x1b4,'\x43\x6e\x6e\x6b')](Math[_0x5f4899(0x19b,'\x62\x6f\x31\x6f')](),_0x397d5a)){_0x29bf0c(_0x58022d,_0x44a3fa[_0x5f4899(0x282,'\x25\x73\x36\x38')],_0x44a3fa[_0x5f4899(0x1f4,'\x25\x73\x36\x38')]);const _0xbb4d1e={};return _0xbb4d1e[_0x5f4899(0x1d4,'\x50\x62\x29\x48')]=![],_0xbb4d1e[_0x5f4899(0x21b,'\x25\x73\x36\x38')]=_0x44a3fa[_0x5f4899(0x1e0,'\x23\x37\x51\x72')],_0xbb4d1e;}_0x58022d[_0x5f4899(0x218,'\x44\x40\x32\x6f')+_0x5f4899(0x261,'\x68\x61\x69\x4b')]=_0x58022d[_0x5f4899(0x1e5,'\x49\x5a\x5d\x70')+_0x5f4899(0x2e7,'\x43\x6e\x6e\x6b')]+_0x44a3fa[_0x5f4899(0x1bb,'\x7a\x57\x53\x21')](_0x39e56c);const _0x30e649=_0x44a3fa[_0x5f4899(0x223,'\x79\x74\x4d\x5a')](_0x3c376e);while(_0x44a3fa['\x47\x57\x6d\x69\x42'](_0x9c9df[_0x5f4899(0x1cd,'\x59\x5a\x26\x5e')],_0x30e649)){if(_0x44a3fa[_0x5f4899(0x24a,'\x50\x62\x29\x48')]!==_0x44a3fa[_0x5f4899(0x2a5,'\x49\x5a\x5d\x70')])TGdyjF['\x75\x78\x43\x4e\x54'](_0x20bdc1,_0x26ddc1);else{const _0x262a60=_0x9c9df[_0x5f4899(0x1c6,'\x79\x74\x4d\x5a')]();_0x44a3fa[_0x5f4899(0x1f1,'\x6a\x47\x4b\x41')](_0x29bf0c,_0x262a60,_0x5f4899(0x15f,'\x47\x65\x4c\x41')+_0x5f4899(0x2ec,'\x79\x74\x4d\x5a')+_0x5f4899(0x1bf,'\x48\x30\x55\x4d'),_0x44a3fa['\x74\x58\x76\x44\x70']);}}_0x9c9df[_0x5f4899(0x171,'\x79\x75\x5e\x43')](_0x58022d);const _0x4ff18e={};return _0x4ff18e[_0x5f4899(0x1de,'\x44\x40\x32\x6f')]=!![],_0x4ff18e;}async function _0x18dd41(_0x4aba18,_0x22b322){const _0x184e27=_0x37ca3c,_0xaeb1f4={'\x65\x4f\x63\x67\x69':function(_0x4e902f,_0x210764,_0x186fc4,_0x11cb43){return _0x4e902f(_0x210764,_0x186fc4,_0x11cb43);},'\x62\x57\x73\x5a\x56':_0x184e27(0x2aa,'\x23\x72\x37\x6c')+_0x184e27(0x2de,'\x48\x30\x55\x4d')+_0x184e27(0x1d0,'\x50\x62\x29\x48'),'\x74\x46\x76\x6b\x6a':_0x184e27(0x1bc,'\x6f\x48\x45\x51')+_0x184e27(0x2bd,'\x41\x76\x4c\x4d'),'\x6f\x43\x6a\x6e\x6b':_0x184e27(0x1dd,'\x62\x6f\x31\x6f')+_0x184e27(0x14f,'\x62\x7a\x73\x65')+_0x184e27(0x19c,'\x44\x76\x37\x6f'),'\x6c\x69\x54\x51\x5a':function(_0x7e2c60,_0xb46dae){return _0x7e2c60(_0xb46dae);},'\x49\x45\x7a\x58\x4e':function(_0xc30ed4,_0x340d45,_0x3d24ac){return _0xc30ed4(_0x340d45,_0x3d24ac);},'\x61\x6a\x65\x7a\x48':function(_0x1f4326){return _0x1f4326();},'\x77\x45\x7a\x75\x76':_0x184e27(0x2c9,'\x62\x56\x6e\x44')+_0x184e27(0x189,'\x79\x75\x5e\x43'),'\x75\x47\x64\x6c\x6a':function(_0x1eb9c6,_0x525461){return _0x1eb9c6-_0x525461;},'\x59\x6c\x6b\x52\x47':'\x72\x6f\x75\x6e\x64\x74\x72\x69'+_0x184e27(0x2ce,'\x56\x62\x40\x6e')+'\x67','\x74\x69\x76\x4c\x6f':function(_0x3dbe1f,_0x9ae07){return _0x3dbe1f!==_0x9ae07;},'\x71\x71\x78\x77\x7a':function(_0x1f7bae,_0x8bc40){return _0x1f7bae!==_0x8bc40;},'\x42\x76\x56\x69\x46':_0x184e27(0x1f5,'\x6a\x47\x4b\x41'),'\x59\x58\x4a\x6f\x4a':function(_0x386e27,_0x14e637){return _0x386e27(_0x14e637);},'\x69\x68\x4c\x70\x4f':_0x184e27(0x2ba,'\x50\x62\x29\x48')+'\x66\x74','\x51\x55\x46\x78\x42':_0x184e27(0x1fc,'\x41\x76\x4c\x4d')+'\x70\x5f\x6f\x6b'},_0x5a8cf7=Date[_0x184e27(0x17a,'\x58\x6c\x34\x36')]();if(!_0x4aba18){const _0x4776a9={};return _0x4776a9[_0x184e27(0x267,'\x25\x73\x36\x38')]=_0xaeb1f4['\x62\x57\x73\x5a\x56'],_0x4776a9[_0x184e27(0x1b5,'\x6a\x47\x4b\x41')]=_0xaeb1f4[_0x184e27(0x154,'\x21\x4e\x6e\x35')],_0x4776a9[_0x184e27(0x1c7,'\x4c\x66\x31\x6e')+'\x6d\x73']=0x0,_0x4776a9['\x72\x65\x63\x61\x6c\x6c\x65\x64'+_0x184e27(0x19a,'\x33\x34\x72\x69')]=null,_0x4776a9;}let _0x4aa072;try{_0x4aa072=await _0xaeb1f4[_0x184e27(0x17e,'\x38\x76\x35\x23')](_0x59f671,_0x4aba18,{'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0xaeb1f4['\x61\x6a\x65\x7a\x48'](_0x271822),'\x62\x79\x70\x61\x73\x73\x43\x61\x63\x68\x65':!![]});}catch(_0x1be615){return{'\x6f\x75\x74\x63\x6f\x6d\x65':_0xaeb1f4[_0x184e27(0x240,'\x48\x30\x55\x4d')],'\x72\x65\x61\x73\x6f\x6e':_0xaeb1f4[_0x184e27(0x1a7,'\x62\x6f\x31\x6f')],'\x6c\x61\x74\x65\x6e\x63\x79\x5f\x6d\x73':Date['\x6e\x6f\x77']()-_0x5a8cf7,'\x72\x65\x63\x61\x6c\x6c\x65\x64\x5f\x68\x61\x73\x68':null,'\x65\x72\x72\x6f\x72':_0x1be615&&_0x1be615[_0x184e27(0x277,'\x25\x73\x36\x38')]||String(_0x1be615)};}const _0x42e33a=_0xaeb1f4[_0x184e27(0x2e8,'\x45\x51\x4a\x47')](Date[_0x184e27(0x299,'\x45\x51\x4a\x47')](),_0x5a8cf7);if(!_0x4aa072||!_0x4aa072['\x6f\x6b']){const _0x5ed0a1={};return _0x5ed0a1[_0x184e27(0x250,'\x44\x76\x37\x6f')]=_0xaeb1f4[_0x184e27(0x242,'\x25\x73\x36\x38')],_0x5ed0a1[_0x184e27(0x180,'\x58\x6c\x34\x36')]=_0xaeb1f4[_0x184e27(0x20a,'\x79\x74\x4d\x5a')],_0x5ed0a1['\x6c\x61\x74\x65\x6e\x63\x79\x5f'+'\x6d\x73']=_0x42e33a,_0x5ed0a1[_0x184e27(0x2d4,'\x6f\x26\x77\x75')+_0x184e27(0x257,'\x31\x53\x4c\x44')]=null,_0x5ed0a1[_0x184e27(0x273,'\x4e\x5e\x72\x72')]=_0x4aa072&&_0x4aa072[_0x184e27(0x157,'\x66\x64\x39\x77')]||_0x184e27(0x256,'\x66\x64\x39\x77')+_0x184e27(0x165,'\x45\x51\x4a\x47'),_0x5ed0a1;}if(!_0x4aa072[_0x184e27(0x1a4,'\x48\x30\x55\x4d')]){const _0x4c5d29={};return _0x4c5d29[_0x184e27(0x149,'\x6a\x47\x4b\x41')]=_0xaeb1f4[_0x184e27(0x17c,'\x54\x56\x4b\x30')],_0x4c5d29[_0x184e27(0x266,'\x31\x53\x4c\x44')]=null,_0x4c5d29[_0x184e27(0x232,'\x68\x61\x69\x4b')+'\x6d\x73']=_0x42e33a,_0x4c5d29['\x72\x65\x63\x61\x6c\x6c\x65\x64'+_0x184e27(0x2a2,'\x76\x72\x58\x77')]=null,_0x4c5d29;}const _0x342cfa=_0x4aa072[_0x184e27(0x28c,'\x4e\x5e\x72\x72')];if(_0x342cfa['\x61\x73\x73\x65\x74\x5f\x69\x64']!==_0x4aba18){const _0x58d958={};return _0x58d958[_0x184e27(0x1ba,'\x43\x6e\x6e\x6b')]=_0xaeb1f4[_0x184e27(0x24b,'\x76\x72\x58\x77')],_0x58d958['\x72\x65\x61\x73\x6f\x6e']=_0x184e27(0x1a5,'\x51\x68\x29\x65')+_0x184e27(0x2bc,'\x33\x34\x72\x69'),_0x58d958['\x6c\x61\x74\x65\x6e\x63\x79\x5f'+'\x6d\x73']=_0x42e33a,_0x58d958[_0x184e27(0x2e3,'\x23\x72\x37\x6c')+_0x184e27(0x2d3,'\x38\x76\x35\x23')]=_0x342cfa[_0x184e27(0x1a3,'\x66\x64\x39\x77')]||null,_0x58d958;}let _0x171696;try{if(_0xaeb1f4[_0x184e27(0x185,'\x4e\x5e\x72\x72')](_0x184e27(0x1be,'\x43\x6e\x6e\x6b'),_0x184e27(0x281,'\x38\x76\x35\x23')))_0x171696=_0xaeb1f4[_0x184e27(0x25e,'\x79\x74\x4d\x5a')](_0x581e65,_0x342cfa);else{sYJtQS[_0x184e27(0x174,'\x7a\x57\x53\x21')](_0x588e54,_0xb0a954,sYJtQS[_0x184e27(0x153,'\x7a\x57\x53\x21')],sYJtQS[_0x184e27(0x26d,'\x36\x5b\x57\x65')]);const _0x3f09cc={};return _0x3f09cc[_0x184e27(0x2b6,'\x43\x41\x35\x21')]=![],_0x3f09cc[_0x184e27(0x211,'\x38\x76\x35\x23')]=sYJtQS[_0x184e27(0x23a,'\x31\x53\x4c\x44')],_0x3f09cc;}}catch(_0x3c124b){return _0xaeb1f4[_0x184e27(0x26c,'\x41\x76\x4c\x4d')](_0xaeb1f4[_0x184e27(0x1f3,'\x62\x7a\x73\x65')],_0xaeb1f4[_0x184e27(0x231,'\x6f\x48\x45\x51')])?{'\x6f\x75\x74\x63\x6f\x6d\x65':_0x184e27(0x20e,'\x48\x30\x55\x4d')+_0x184e27(0x2d9,'\x54\x56\x4b\x30')+_0x184e27(0x1f8,'\x6f\x48\x45\x51'),'\x72\x65\x61\x73\x6f\x6e':_0xaeb1f4[_0x184e27(0x227,'\x50\x62\x29\x48')],'\x6c\x61\x74\x65\x6e\x63\x79\x5f\x6d\x73':_0x17819a,'\x72\x65\x63\x61\x6c\x6c\x65\x64\x5f\x68\x61\x73\x68':null,'\x65\x72\x72\x6f\x72':_0x1f2325&&_0x4a7c74[_0x184e27(0x2b5,'\x6f\x26\x77\x75')]||_0xaeb1f4[_0x184e27(0x16e,'\x54\x56\x4b\x30')](_0x320850,_0x15ba6b)}:{'\x6f\x75\x74\x63\x6f\x6d\x65':_0x184e27(0x2ae,'\x5a\x4f\x4a\x4a')+_0x184e27(0x28b,'\x43\x41\x35\x21')+_0x184e27(0x209,'\x43\x41\x35\x21'),'\x72\x65\x61\x73\x6f\x6e':_0x184e27(0x210,'\x4e\x5e\x72\x72')+_0x184e27(0x169,'\x6a\x47\x4b\x41')+_0x184e27(0x29b,'\x59\x54\x49\x47'),'\x6c\x61\x74\x65\x6e\x63\x79\x5f\x6d\x73':_0x42e33a,'\x72\x65\x63\x61\x6c\x6c\x65\x64\x5f\x68\x61\x73\x68':null,'\x65\x72\x72\x6f\x72':_0x3c124b&&_0x3c124b[_0x184e27(0x2af,'\x66\x78\x52\x43')]||_0xaeb1f4['\x59\x58\x4a\x6f\x4a'](String,_0x3c124b)};}if(_0xaeb1f4[_0x184e27(0x1cf,'\x4e\x5e\x72\x72')](_0x171696,_0x342cfa[_0x184e27(0x1f2,'\x50\x62\x29\x48')])){const _0x190e6d={};return _0x190e6d['\x6f\x75\x74\x63\x6f\x6d\x65']=_0x184e27(0x217,'\x43\x41\x35\x21')+'\x70\x5f\x6d\x69\x73\x6d\x61\x74'+'\x63\x68',_0x190e6d['\x72\x65\x61\x73\x6f\x6e']=_0xaeb1f4[_0x184e27(0x1ec,'\x31\x53\x4c\x44')],_0x190e6d['\x6c\x61\x74\x65\x6e\x63\x79\x5f'+'\x6d\x73']=_0x42e33a,_0x190e6d[_0x184e27(0x184,'\x68\x61\x69\x4b')+_0x184e27(0x164,'\x44\x76\x37\x6f')]=_0x171696,_0x190e6d;}const _0x387226={};return _0x387226[_0x184e27(0x20b,'\x44\x40\x32\x6f')]=_0xaeb1f4[_0x184e27(0x173,'\x62\x56\x6e\x44')],_0x387226[_0x184e27(0x203,'\x21\x4e\x6e\x35')]=null,_0x387226[_0x184e27(0x19e,'\x50\x29\x53\x43')+'\x6d\x73']=_0x42e33a,_0x387226[_0x184e27(0x278,'\x48\x30\x55\x4d')+'\x5f\x68\x61\x73\x68']=_0x171696,_0x387226;}async function _0x33c972(){const _0x32136d=_0x37ca3c,_0x3b1f59={'\x51\x7a\x52\x64\x59':function(_0x391658,_0xf7b66,_0x3bfb5e,_0x440eb9){return _0x391658(_0xf7b66,_0x3bfb5e,_0x440eb9);},'\x52\x44\x78\x73\x46':_0x32136d(0x219,'\x25\x73\x36\x38')+_0x32136d(0x216,'\x66\x78\x52\x43')+_0x32136d(0x14c,'\x79\x75\x5e\x43'),'\x78\x72\x42\x50\x43':_0x32136d(0x21c,'\x40\x59\x43\x5d')+'\x6c\x6c','\x74\x64\x79\x4c\x65':_0x32136d(0x270,'\x5d\x2a\x4b\x71')+_0x32136d(0x15c,'\x23\x72\x37\x6c'),'\x6c\x4f\x44\x4d\x74':function(_0x3df5a7,_0x1edd6f){return _0x3df5a7+_0x1edd6f;},'\x76\x4c\x75\x75\x71':function(_0x10dbd1,_0x2e6837){return _0x10dbd1===_0x2e6837;},'\x6e\x54\x48\x59\x61':function(_0x2980d3,_0x244cfb){return _0x2980d3<_0x244cfb;},'\x53\x5a\x77\x4e\x59':_0x32136d(0x23b,'\x23\x37\x51\x72'),'\x7a\x59\x74\x44\x52':function(_0x82ba51,_0x4c0781){return _0x82ba51<=_0x4c0781;},'\x4b\x5a\x4e\x42\x4a':function(_0x316ef7,_0xe29495){return _0x316ef7===_0xe29495;},'\x41\x46\x52\x44\x4d':function(_0x299d78,_0x60f89d){return _0x299d78!==_0x60f89d;},'\x41\x6a\x53\x79\x61':_0x32136d(0x194,'\x43\x6e\x6e\x6b'),'\x4d\x63\x6d\x4e\x4e':'\x6c\x4f\x79\x71\x51','\x73\x72\x64\x6f\x6f':function(_0x33979f,_0x23b031,_0x28a85e){return _0x33979f(_0x23b031,_0x28a85e);},'\x78\x71\x6a\x78\x43':_0x32136d(0x2a7,'\x23\x72\x37\x6c')+_0x32136d(0x1ed,'\x7a\x57\x53\x21')+'\x67','\x7a\x70\x46\x4e\x5a':function(_0x5d4565,_0x3316fe){return _0x5d4565===_0x3316fe;},'\x6e\x48\x52\x76\x42':_0x32136d(0x2c7,'\x21\x4e\x6e\x35')+_0x32136d(0x24f,'\x4e\x5e\x72\x72'),'\x63\x43\x4b\x6a\x48':function(_0x35b1ae,_0x11d099){return _0x35b1ae-_0x11d099;},'\x67\x68\x65\x54\x65':function(_0x1be871,_0x39e053){return _0x1be871!==_0x39e053;},'\x6f\x6f\x50\x68\x63':_0x32136d(0x1d8,'\x6a\x47\x4b\x41')},_0x373345={};_0x373345[_0x32136d(0x1b8,'\x76\x72\x58\x77')+'\x64']=0x0;if(_0x3b1f59[_0x32136d(0x1ee,'\x6c\x63\x6e\x4e')](_0x9c9df[_0x32136d(0x286,'\x41\x76\x4c\x4d')],-0x2bc+-0x1*-0x22f+0x3*0x2f))return _0x373345;const _0x33d6d3=Date[_0x32136d(0x17a,'\x58\x6c\x34\x36')](),_0x363cb0=_0x30eb61(),_0x51bead=[];for(let _0x3000c4=-0x1d4d+0x207b+0x197*-0x2;_0x3b1f59[_0x32136d(0x2be,'\x62\x7a\x73\x65')](_0x3000c4,_0x9c9df['\x6c\x65\x6e\x67\x74\x68']);_0x3000c4++){if(_0x3b1f59[_0x32136d(0x252,'\x50\x29\x53\x43')](_0x32136d(0x1ad,'\x25\x73\x36\x38'),_0x3b1f59[_0x32136d(0x297,'\x7a\x57\x53\x21')])){const _0x162359=_0x9c9df[_0x3000c4];_0x3b1f59[_0x32136d(0x2b1,'\x38\x76\x35\x23')](_0x162359['\x6e\x65\x78\x74\x45\x6c\x69\x67'+_0x32136d(0x296,'\x79\x74\x4d\x5a')],_0x33d6d3)&&!_0x322630[_0x32136d(0x1ff,'\x6f\x26\x77\x75')](_0x162359[_0x32136d(0x15b,'\x6f\x26\x77\x75')])&&_0x51bead[_0x32136d(0x2cc,'\x6a\x47\x4b\x41')](_0x162359);}else{const _0x3a08e4=_0x352fd4['\x73\x68\x69\x66\x74']();arhmMr[_0x32136d(0x167,'\x74\x75\x77\x67')](_0x314cd1,_0x3a08e4,arhmMr[_0x32136d(0x2a9,'\x31\x4e\x6a\x53')],arhmMr[_0x32136d(0x234,'\x25\x73\x36\x38')]);}}const _0x2082e0={};_0x2082e0[_0x32136d(0x2d2,'\x25\x73\x36\x38')+'\x64']=0x0;if(_0x3b1f59['\x4b\x5a\x4e\x42\x4a'](_0x51bead[_0x32136d(0x190,'\x6d\x2a\x24\x4a')],-0x1d77+0x2ae+-0x1*-0x1ac9))return _0x2082e0;let _0xc945b2=-0x752+-0x1f*-0x12f+-0x1d5f;for(const _0x3a43b5 of _0x51bead){_0x322630[_0x32136d(0x2bf,'\x40\x59\x43\x5d')](_0x3a43b5[_0x32136d(0x17d,'\x47\x6c\x49\x71')]);try{if(_0x3b1f59[_0x32136d(0x1a6,'\x40\x59\x43\x5d')](_0x3b1f59[_0x32136d(0x196,'\x40\x59\x43\x5d')],_0x3b1f59[_0x32136d(0x27e,'\x54\x56\x4b\x30')])){_0x3a43b5[_0x32136d(0x29e,'\x56\x62\x40\x6e')]+=0x7c8+-0x17e*-0x2+-0xac3;const _0x266421=await _0x3b1f59[_0x32136d(0x238,'\x6f\x26\x77\x75')](_0x18dd41,_0x3a43b5[_0x32136d(0x1b1,'\x45\x51\x4a\x47')],_0x3a43b5[_0x32136d(0x199,'\x6f\x26\x77\x75')]),_0x596c49=_0x3b1f59[_0x32136d(0x268,'\x58\x6c\x34\x36')](_0x266421[_0x32136d(0x1b6,'\x68\x61\x69\x4b')],_0x3b1f59[_0x32136d(0x15e,'\x40\x59\x43\x5d')])||_0x3b1f59[_0x32136d(0x271,'\x4a\x78\x61\x4a')](_0x266421[_0x32136d(0x16b,'\x62\x56\x6e\x44')],_0x3b1f59[_0x32136d(0x290,'\x31\x53\x4c\x44')])&&_0x3b1f59[_0x32136d(0x18b,'\x6a\x47\x4b\x41')](_0x266421[_0x32136d(0x215,'\x23\x72\x37\x6c')],_0x3b1f59['\x6e\x48\x52\x76\x42']),_0x18de64=_0x3b1f59[_0x32136d(0x1ef,'\x5a\x4f\x4a\x4a')](_0x3a43b5[_0x32136d(0x295,'\x54\x56\x4b\x30')],_0x363cb0);if(_0x596c49&&_0x18de64){const _0x2126f2=Math[_0x32136d(0x2b2,'\x43\x6e\x6e\x6b')](_0x3b1f59['\x63\x43\x4b\x6a\x48'](_0x3a43b5[_0x32136d(0x186,'\x62\x7a\x73\x65')],-0xb3c+-0x5*0x142+0x7*0x281),_0x108d51[_0x32136d(0x23e,'\x36\x5b\x57\x65')]-(0xe0e+0x14e3+0x8*-0x45e));_0x3a43b5[_0x32136d(0x1e6,'\x59\x54\x49\x47')+_0x32136d(0x183,'\x6a\x47\x4b\x41')]=_0x3b1f59[_0x32136d(0x182,'\x44\x40\x32\x6f')](Date[_0x32136d(0x22f,'\x4a\x78\x61\x4a')](),_0x108d51[_0x2126f2]);}else{_0x29bf0c(_0x3a43b5,_0x266421[_0x32136d(0x1e4,'\x62\x7a\x73\x65')],_0x266421[_0x32136d(0x211,'\x38\x76\x35\x23')],{'\x61\x74\x74\x65\x6d\x70\x74\x73':_0x3a43b5[_0x32136d(0x1f0,'\x47\x6c\x49\x71')],'\x6c\x61\x74\x65\x6e\x63\x79\x5f\x6d\x73':_0x266421[_0x32136d(0x1c1,'\x49\x5a\x5d\x70')+'\x6d\x73'],'\x72\x65\x63\x61\x6c\x6c\x65\x64\x5f\x68\x61\x73\x68':_0x266421[_0x32136d(0x241,'\x38\x76\x35\x23')+'\x5f\x68\x61\x73\x68']});const _0x454d0f=_0x9c9df[_0x32136d(0x191,'\x66\x78\x52\x43')](_0x3a43b5);if(_0x3b1f59[_0x32136d(0x233,'\x54\x56\x4b\x30')](_0x454d0f,-(0x639*-0x5+0xc6b*0x3+-0x623)))_0x9c9df[_0x32136d(0x246,'\x59\x54\x49\x47')](_0x454d0f,0x18b*-0x5+-0x1c9*0x9+0x17c9*0x1);}_0xc945b2+=0x1e3b+-0x2*0x10b1+0x8*0x65;}else{arhmMr[_0x32136d(0x248,'\x25\x73\x36\x38')](_0x31f7a3,_0x33502c,arhmMr['\x52\x44\x78\x73\x46'],arhmMr[_0x32136d(0x14d,'\x62\x56\x6e\x44')]);const _0x138093={};return _0x138093[_0x32136d(0x2e6,'\x58\x6c\x34\x36')]=![],_0x138093[_0x32136d(0x2d5,'\x23\x37\x51\x72')]=arhmMr[_0x32136d(0x1eb,'\x31\x53\x4c\x44')],_0x138093;}}finally{_0x32136d(0x1db,'\x36\x5b\x57\x65')!==_0x3b1f59[_0x32136d(0x1da,'\x56\x62\x40\x6e')]?_0x331e43.env.EVOLVE_RECALL_VERIFY_DEBUG==='\x31'&&_0x193ec0[_0x32136d(0x1c4,'\x6c\x63\x6e\x4e')](arhmMr[_0x32136d(0x18e,'\x47\x6c\x49\x71')](_0x32136d(0x1b9,'\x5d\x2a\x4b\x71')+'\x65\x72\x69\x66\x79\x5d\x20\x77'+_0x32136d(0x25c,'\x76\x72\x58\x77')+_0x32136d(0x2cb,'\x6f\x26\x77\x75')+_0x32136d(0x1ca,'\x31\x4e\x6a\x53')+'\x6c\x65\x64\x3a\x20',_0x1b5ae5&&_0xcf2479['\x6d\x65\x73\x73\x61\x67\x65']||_0x558ba7)):_0x322630[_0x32136d(0x187,'\x76\x72\x58\x77')](_0x3a43b5[_0x32136d(0x1b1,'\x45\x51\x4a\x47')]);}}const _0x4ed630={};return _0x4ed630[_0x32136d(0x20d,'\x23\x37\x51\x72')+'\x64']=_0xc945b2,_0x4ed630;}function _0x2463(_0x2d5ce6,_0x4539b6){_0x2d5ce6=_0x2d5ce6-(-0x1*0x29d+0xcff+-0x919);const _0x5adadf=_0x2306();let _0x24559c=_0x5adadf[_0x2d5ce6];if(_0x2463['\x6c\x56\x59\x4e\x76\x68']===undefined){var _0x5c4282=function(_0x379d08){const _0x5a324b='\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 _0x3f3223='',_0x550afc='',_0x324783=_0x3f3223+_0x5c4282,_0x886770=(''+function(){return 0x1e*-0x4f+-0x15*-0x27+0x60f;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x205f*0x1+-0x11*-0x7d+-0x28ab);for(let _0x10e806=-0x2*-0xe1b+0x1*-0x2294+-0x1*-0x65e,_0xb4aa36,_0x54ab87,_0x5d26c2=-0xb50+0x2142+0x2*-0xaf9;_0x54ab87=_0x379d08['\x63\x68\x61\x72\x41\x74'](_0x5d26c2++);~_0x54ab87&&(_0xb4aa36=_0x10e806%(-0x1a05+0x1715+0x2f4)?_0xb4aa36*(0x16a8+0x3*0xa5b+-0x3579)+_0x54ab87:_0x54ab87,_0x10e806++%(0x1*-0x166f+-0x8f0+0x1f63*0x1))?_0x3f3223+=_0x886770||_0x324783['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5d26c2+(0x36*-0x21+0x106e+-0x4b7*0x2))-(0x34*0x5+-0xc89*0x2+0x1818)!==-0x17c9+0x3e2+0x13e7*0x1?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0xc29*-0x1+-0x2e7+0x1a7*-0x5&_0xb4aa36>>(-(-0x7*0x476+0x2*0x1b6+0x1bd0)*_0x10e806&0x23a1+-0x271*0x8+0x1013*-0x1)):_0x10e806:0x191*-0x9+0x1023+-0x6*0x57){_0x54ab87=_0x5a324b['\x69\x6e\x64\x65\x78\x4f\x66'](_0x54ab87);}for(let _0x189a14=-0x2ba*-0x2+0x311+-0x3*0x2d7,_0x138cd7=_0x3f3223['\x6c\x65\x6e\x67\x74\x68'];_0x189a14<_0x138cd7;_0x189a14++){_0x550afc+='\x25'+('\x30\x30'+_0x3f3223['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x189a14)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x17f+0x2b*0x13+-0x4a0))['\x73\x6c\x69\x63\x65'](-(-0x1367+-0x3*0x415+-0x2*-0xfd4));}return decodeURIComponent(_0x550afc);};const _0x4f13e3=function(_0x282c12,_0x2e8975){let _0xee1f01=[],_0x4cc7d2=0xfa+0x1*0x2cf+-0x13*0x33,_0x538351,_0x4d39a3='';_0x282c12=_0x5c4282(_0x282c12);let _0x34e2ef;for(_0x34e2ef=0x1*-0x10a9+-0x1c77+0x2d20;_0x34e2ef<-0x183*0x5+-0x98b+0x121a;_0x34e2ef++){_0xee1f01[_0x34e2ef]=_0x34e2ef;}for(_0x34e2ef=0x1f96+0x1a99+-0x3a2f;_0x34e2ef<-0x10be*-0x2+0x1*-0x1e07+-0x11*0x25;_0x34e2ef++){_0x4cc7d2=(_0x4cc7d2+_0xee1f01[_0x34e2ef]+_0x2e8975['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x34e2ef%_0x2e8975['\x6c\x65\x6e\x67\x74\x68']))%(0x481*0x1+0x152*0x1+-0x4d3),_0x538351=_0xee1f01[_0x34e2ef],_0xee1f01[_0x34e2ef]=_0xee1f01[_0x4cc7d2],_0xee1f01[_0x4cc7d2]=_0x538351;}_0x34e2ef=0x83b*0x1+-0x1103+0x8c8,_0x4cc7d2=0x14a6+0xb*-0x6d+-0xff7;for(let _0x22443e=0x7*-0x1f+0x3*-0xa4d+0x1fc0;_0x22443e<_0x282c12['\x6c\x65\x6e\x67\x74\x68'];_0x22443e++){_0x34e2ef=(_0x34e2ef+(-0xd29*-0x1+-0x764+0x12*-0x52))%(0x19*-0x139+-0x1be+0x214f),_0x4cc7d2=(_0x4cc7d2+_0xee1f01[_0x34e2ef])%(-0x3e*0x38+0x1ff*0xb+-0x765),_0x538351=_0xee1f01[_0x34e2ef],_0xee1f01[_0x34e2ef]=_0xee1f01[_0x4cc7d2],_0xee1f01[_0x4cc7d2]=_0x538351,_0x4d39a3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x282c12['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x22443e)^_0xee1f01[(_0xee1f01[_0x34e2ef]+_0xee1f01[_0x4cc7d2])%(-0x37+0xa51+-0x48d*0x2)]);}return _0x4d39a3;};_0x2463['\x6a\x73\x51\x66\x75\x50']=_0x4f13e3,_0x2463['\x74\x66\x63\x77\x44\x4f']={},_0x2463['\x6c\x56\x59\x4e\x76\x68']=!![];}const _0x3341c1=_0x5adadf[0x5*0x54f+-0x163*0x19+0x820],_0x1c4cf9=_0x2d5ce6+_0x3341c1,_0x290cb7=_0x2463['\x74\x66\x63\x77\x44\x4f'][_0x1c4cf9];if(!_0x290cb7){if(_0x2463['\x6e\x68\x4e\x69\x68\x59']===undefined){const _0xfc3ef3=function(_0x2c6653){this['\x7a\x76\x53\x4c\x52\x65']=_0x2c6653,this['\x72\x6a\x43\x47\x58\x53']=[0x3*-0x916+0x174+0x19cf*0x1,0x3f0*0x2+-0x1336+0xb56,-0x1*0x133f+0xc2+0x127d],this['\x66\x56\x57\x61\x4b\x41']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x4d\x67\x42\x69\x76\x74']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x66\x42\x59\x77\x46\x79']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0xfc3ef3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x77\x6a\x4d\x78\x66\x48']=function(){const _0x44edeb=new RegExp(this['\x4d\x67\x42\x69\x76\x74']+this['\x66\x42\x59\x77\x46\x79']),_0x1cd46e=_0x44edeb['\x74\x65\x73\x74'](this['\x66\x56\x57\x61\x4b\x41']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x72\x6a\x43\x47\x58\x53'][-0x1*0x270a+-0xbb*0x1f+0x3db0]:--this['\x72\x6a\x43\x47\x58\x53'][0xca4*-0x1+-0x5f+-0xd03*-0x1];return this['\x4c\x74\x41\x69\x4d\x75'](_0x1cd46e);},_0xfc3ef3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4c\x74\x41\x69\x4d\x75']=function(_0x25e02d){if(!Boolean(~_0x25e02d))return _0x25e02d;return this['\x75\x77\x58\x62\x79\x52'](this['\x7a\x76\x53\x4c\x52\x65']);},_0xfc3ef3['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x75\x77\x58\x62\x79\x52']=function(_0x286320){for(let _0x454b9c=0x192c+-0x2*0xbc3+-0xd3*0x2,_0x28496a=this['\x72\x6a\x43\x47\x58\x53']['\x6c\x65\x6e\x67\x74\x68'];_0x454b9c<_0x28496a;_0x454b9c++){this['\x72\x6a\x43\x47\x58\x53']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x28496a=this['\x72\x6a\x43\x47\x58\x53']['\x6c\x65\x6e\x67\x74\x68'];}return _0x286320(this['\x72\x6a\x43\x47\x58\x53'][-0x10d+-0x1fdc+0x151*0x19]);},(''+function(){return 0x2*-0x127f+-0x52*-0x77+-0x120;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1e46+-0x3*-0x983+0x2*0xdf)&&new _0xfc3ef3(_0x2463)['\x77\x6a\x4d\x78\x66\x48'](),_0x2463['\x6e\x68\x4e\x69\x68\x59']=!![];}_0x24559c=_0x2463['\x6a\x73\x51\x66\x75\x50'](_0x24559c,_0x4539b6),_0x2463['\x74\x66\x63\x77\x44\x4f'][_0x1c4cf9]=_0x24559c;}else _0x24559c=_0x290cb7;return _0x24559c;}function _0x1c1bc4(){const _0x14f682=_0x37ca3c,_0x33f8c2={'\x49\x61\x64\x67\x67':_0x14f682(0x29d,'\x50\x62\x29\x48')+'\x70\x5f\x6d\x69\x73\x73\x69\x6e'+'\x67','\x76\x45\x63\x6a\x45':'\x77\x72\x6f\x6e\x67\x5f\x61\x73'+_0x14f682(0x2a4,'\x66\x64\x39\x77'),'\x46\x47\x77\x71\x49':function(_0x3d0d18,_0x5eea37){return _0x3d0d18!==_0x5eea37;},'\x73\x57\x75\x75\x74':_0x14f682(0x279,'\x31\x53\x4c\x44'),'\x4f\x72\x52\x42\x74':function(_0x53921e,_0xd72b6e){return _0x53921e+_0xd72b6e;},'\x67\x6e\x47\x41\x62':_0x14f682(0x188,'\x48\x30\x55\x4d')+_0x14f682(0x208,'\x68\x61\x69\x4b')+_0x14f682(0x26a,'\x48\x30\x55\x4d')+_0x14f682(0x2c6,'\x76\x72\x58\x77')+_0x14f682(0x24d,'\x4a\x78\x61\x4a'),'\x76\x59\x4d\x68\x57':function(_0x30cfb0){return _0x30cfb0();},'\x77\x5a\x70\x77\x76':function(_0x5c3626){return _0x5c3626();},'\x78\x4f\x77\x42\x78':function(_0x3543fa,_0x517b8f,_0x33ac4c){return _0x3543fa(_0x517b8f,_0x33ac4c);},'\x61\x6b\x46\x47\x76':function(_0x3f1d25,_0x182604){return _0x3f1d25===_0x182604;}};if(_0x26a3e5)return;_0x26a3e5=!![];const _0x24ca96=_0x33f8c2[_0x14f682(0x16c,'\x6d\x2a\x24\x4a')](_0xe1c911);_0xd97f16=_0x33f8c2[_0x14f682(0x14a,'\x6d\x2a\x24\x4a')](setInterval,function(){const _0x2ee34d=_0x14f682;_0x33f8c2['\x76\x59\x4d\x68\x57'](_0x33c972)[_0x2ee34d(0x2c2,'\x31\x53\x4c\x44')](function(_0x201d55){const _0x12b120=_0x2ee34d,_0x2621c9={};_0x2621c9[_0x12b120(0x253,'\x66\x78\x52\x43')]=_0x33f8c2[_0x12b120(0x272,'\x66\x78\x52\x43')],_0x2621c9[_0x12b120(0x200,'\x74\x75\x77\x67')]=_0x33f8c2[_0x12b120(0x23d,'\x21\x4e\x6e\x35')];const _0x1a3740=_0x2621c9;if(_0x33f8c2[_0x12b120(0x1af,'\x4a\x78\x61\x4a')](_0x33f8c2[_0x12b120(0x25f,'\x43\x6e\x6e\x6b')],_0x33f8c2[_0x12b120(0x18a,'\x79\x75\x5e\x43')])){const _0xc32ce6={};return _0xc32ce6[_0x12b120(0x269,'\x50\x62\x29\x48')]=sxVrhc[_0x12b120(0x2a1,'\x40\x59\x43\x5d')],_0xc32ce6[_0x12b120(0x287,'\x43\x6e\x6e\x6b')]=sxVrhc[_0x12b120(0x2c0,'\x44\x40\x32\x6f')],_0xc32ce6[_0x12b120(0x226,'\x79\x75\x5e\x43')+'\x6d\x73']=_0x176a00,_0xc32ce6[_0x12b120(0x1a0,'\x33\x34\x72\x69')+_0x12b120(0x14e,'\x79\x74\x4d\x5a')]=_0x3fbfe6['\x61\x73\x73\x65\x74\x5f\x69\x64']||null,_0xc32ce6;}else process.env.EVOLVE_RECALL_VERIFY_DEBUG==='\x31'&&console[_0x12b120(0x2a8,'\x79\x74\x4d\x5a')](_0x33f8c2['\x4f\x72\x52\x42\x74'](_0x33f8c2[_0x12b120(0x150,'\x43\x41\x35\x21')],_0x201d55&&_0x201d55[_0x12b120(0x2c8,'\x51\x68\x29\x65')]||_0x201d55));});},_0x24ca96),_0xd97f16&&_0x33f8c2[_0x14f682(0x155,'\x66\x64\x39\x77')](typeof _0xd97f16[_0x14f682(0x206,'\x62\x7a\x73\x65')],_0x14f682(0x18d,'\x76\x72\x58\x77'))&&_0xd97f16[_0x14f682(0x258,'\x5a\x4f\x4a\x4a')]();}function _0x12ab1f(){const _0x39ba57=_0x37ca3c,_0x4a5bce={'\x75\x6a\x79\x75\x64':function(_0x22c9b6,_0x5e1e88){return _0x22c9b6(_0x5e1e88);},'\x7a\x73\x75\x48\x72':function(_0x2418e2,_0xa02cb9){return _0x2418e2===_0xa02cb9;},'\x6f\x69\x61\x6b\x70':_0x39ba57(0x178,'\x23\x37\x51\x72'),'\x6a\x6f\x65\x4c\x4e':_0x39ba57(0x1b2,'\x54\x56\x4b\x30'),'\x78\x64\x70\x64\x7a':function(_0x2ef667,_0xf98166){return _0x2ef667(_0xf98166);}};_0xd97f16&&(_0x4a5bce[_0x39ba57(0x288,'\x74\x75\x77\x67')](_0x4a5bce[_0x39ba57(0x14b,'\x33\x34\x72\x69')],_0x4a5bce['\x6a\x6f\x65\x4c\x4e'])?(_0x4a5bce[_0x39ba57(0x29a,'\x74\x75\x77\x67')](_0x1cd46e,_0x25e02d),_0x286320=null):(_0x4a5bce[_0x39ba57(0x1a9,'\x23\x37\x51\x72')](clearInterval,_0xd97f16),_0xd97f16=null)),_0x26a3e5=![];}function _0x2b5d6c(){const _0x557a07=_0x37ca3c;return Object[_0x557a07(0x2ca,'\x38\x76\x35\x23')]({},_0x4a359e);}function _0x551d93(){const _0x5624b3=_0x37ca3c,_0x1cce0f={'\x48\x67\x47\x66\x41':function(_0x1262e0){return _0x1262e0();}};_0x1cce0f[_0x5624b3(0x27f,'\x79\x75\x5e\x43')](_0x12ab1f),_0x9c9df=[],_0x322630[_0x5624b3(0x1aa,'\x4a\x78\x61\x4a')]();const _0x1d9027={};_0x1d9027['\x6f\x6b']=0x0,_0x1d9027['\x6d\x69\x73\x73\x69\x6e\x67']=0x0,_0x1d9027['\x6d\x69\x73\x6d\x61\x74\x63\x68']=0x0,_0x1d9027['\x73\x6b\x69\x70\x70\x65\x64']=0x0,_0x4a359e=_0x1d9027;}function _0x101f0e(){const _0x1f6542=_0x37ca3c;return _0x9c9df[_0x1f6542(0x1fd,'\x5d\x2a\x4b\x71')];}const _0x419d55={};_0x419d55[_0x37ca3c(0x17b,'\x62\x7a\x73\x65')+_0x37ca3c(0x222,'\x43\x41\x35\x21')+_0x37ca3c(0x2ac,'\x44\x40\x32\x6f')]=_0x4a472d,_0x419d55[_0x37ca3c(0x151,'\x33\x34\x72\x69')+'\x63\x65']=_0x18dd41,_0x419d55[_0x37ca3c(0x264,'\x44\x40\x32\x6f')+_0x37ca3c(0x162,'\x31\x53\x4c\x44')]=_0x1c1bc4,_0x419d55[_0x37ca3c(0x284,'\x23\x37\x51\x72')+'\x65\x72']=_0x12ab1f,_0x419d55[_0x37ca3c(0x1d1,'\x59\x54\x49\x47')+_0x37ca3c(0x263,'\x50\x62\x29\x48')]=_0x2b5d6c,_0x419d55[_0x37ca3c(0x20c,'\x48\x30\x55\x4d')+_0x37ca3c(0x195,'\x38\x76\x35\x23')]=_0x33c972,_0x419d55[_0x37ca3c(0x1d3,'\x4e\x5e\x72\x72')+_0x37ca3c(0x179,'\x50\x29\x53\x43')]=_0x551d93,_0x419d55[_0x37ca3c(0x249,'\x4c\x66\x31\x6e')+_0x37ca3c(0x243,'\x43\x41\x35\x21')+'\x6f\x72\x54\x65\x73\x74\x69\x6e'+'\x67']=_0x101f0e,module[_0x37ca3c(0x2ea,'\x41\x76\x4c\x4d')]=_0x419d55;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// recallVerifier — confirm that assets we publish to Hub can actually be
|
|
5
|
+
// recalled later. After a successful publish (capsule bundle, anti-pattern,
|
|
6
|
+
// or skill bundle), enqueue the asset_id; a background worker uses Hub's
|
|
7
|
+
// Phase 2 deterministic lookup to verify the asset round-trips, with
|
|
8
|
+
// exponential backoff to absorb Hub indexing latency. Outcomes land as
|
|
9
|
+
// MemoryGraphEvents of kind 'recall_verify' so a report script can compute
|
|
10
|
+
// per-asset-type success rates and gate releases.
|
|
11
|
+
//
|
|
12
|
+
// Scope: only assets with a content-hash asset_id are verified. MemoryGraph
|
|
13
|
+
// events themselves go through a different transport (POST /a2a/memory/event,
|
|
14
|
+
// not the asset store) and produce no asset_id, so they cannot be subject to
|
|
15
|
+
// roundtrip verification. This naturally terminates any recursion of
|
|
16
|
+
// recall_verify events that would otherwise mirror to Hub.
|
|
17
|
+
//
|
|
18
|
+
// Graceful degradation: if fetchAssetById fails for any reason (network,
|
|
19
|
+
// auth, schema), the worker emits 'verification_skipped' rather than
|
|
20
|
+
// throwing. Verification must NEVER block the daemon cycle.
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
const { envInt, envFloat } = require('../config');
|
|
24
|
+
const { fetchAssetById } = require('./hubSearch');
|
|
25
|
+
const { computeAssetId } = require('./contentHash');
|
|
26
|
+
const { writeMemoryGraphEvent } = require('./memoryGraph');
|
|
27
|
+
|
|
28
|
+
// --- Module state (per-process lifetime, bounded) ---
|
|
29
|
+
|
|
30
|
+
let _queue = [];
|
|
31
|
+
const _inflightAssetIds = new Set();
|
|
32
|
+
let _workerStarted = false;
|
|
33
|
+
let _workerTimer = null;
|
|
34
|
+
let _lastReport = { ok: 0, missing: 0, mismatch: 0, skipped: 0 };
|
|
35
|
+
|
|
36
|
+
// Backoff schedule between attempts. attempt 1 fires INITIAL_WAIT_MS after
|
|
37
|
+
// publish; if it returns missing, retries fire after these intervals.
|
|
38
|
+
const BACKOFF_MS = [5000, 15000, 60000];
|
|
39
|
+
|
|
40
|
+
// --- Env getters (read at call time, never module-load) ---
|
|
41
|
+
|
|
42
|
+
function _isFeatureEnabled() {
|
|
43
|
+
// Default OFF: Hub /a2a/fetch contract is strict (unknown asset_id → empty
|
|
44
|
+
// results, 0 cost) so client-side round-trip verification is redundant as a
|
|
45
|
+
// default safety net. Operators who want end-to-end SLA observability can
|
|
46
|
+
// opt in with EVOLVE_RECALL_VERIFY=1; events still emit locally and (once
|
|
47
|
+
// Hub-side schema lands, see EvoMap/evomap-hub#670) optionally to Hub.
|
|
48
|
+
return String(process.env.EVOLVE_RECALL_VERIFY || '0') === '1';
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function _getSampleRate() {
|
|
52
|
+
// Clamp to [0, 1] to match the startup banner in index.js. A negative
|
|
53
|
+
// env value would otherwise make the gate `Math.random() >= rate`
|
|
54
|
+
// always true → every verify silently skipped, while the banner
|
|
55
|
+
// (which does its own range clamp) still shows 1.0. Operators need
|
|
56
|
+
// the implementation and the banner to agree. (Bugbot review on PR #53.)
|
|
57
|
+
const raw = envFloat('EVOLVE_RECALL_VERIFY_SAMPLE_RATE', 1.0);
|
|
58
|
+
if (!Number.isFinite(raw) || raw < 0 || raw > 1) return 1.0;
|
|
59
|
+
return raw;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _getQueueMax() {
|
|
63
|
+
return envInt('EVOLVE_RECALL_VERIFY_QUEUE_MAX', 256);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function _getPollMs() {
|
|
67
|
+
return envInt('EVOLVE_RECALL_VERIFY_POLL_MS', 5000);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function _getInitialWaitMs() {
|
|
71
|
+
return envInt('EVOLVE_RECALL_VERIFY_INITIAL_WAIT_MS', 5000);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function _getMaxAttempts() {
|
|
75
|
+
return envInt('EVOLVE_RECALL_VERIFY_ATTEMPTS', 3);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function _getFetchTimeoutMs() {
|
|
79
|
+
return envInt('EVOLVE_RECALL_VERIFY_FETCH_TIMEOUT_MS', 8000);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// --- Event emission ---
|
|
83
|
+
|
|
84
|
+
function _emitEvent(entry, outcome, reason, extras) {
|
|
85
|
+
const ts = Date.now();
|
|
86
|
+
const verification = {
|
|
87
|
+
outcome,
|
|
88
|
+
reason: reason || null,
|
|
89
|
+
attempts: extras && Number.isFinite(extras.attempts) ? extras.attempts : (entry.attempts || 0),
|
|
90
|
+
latency_ms: extras && Number.isFinite(extras.latency_ms) ? extras.latency_ms : 0,
|
|
91
|
+
age_at_verify_ms: entry.publishedAt ? (ts - entry.publishedAt) : 0,
|
|
92
|
+
recalled_hash: extras && extras.recalled_hash ? extras.recalled_hash : null,
|
|
93
|
+
};
|
|
94
|
+
const ev = {
|
|
95
|
+
type: 'MemoryGraphEvent',
|
|
96
|
+
kind: 'recall_verify',
|
|
97
|
+
id: 'mge_' + ts + '_' + Math.random().toString(36).slice(2, 10),
|
|
98
|
+
ts,
|
|
99
|
+
asset: {
|
|
100
|
+
type: entry.type || 'Unknown',
|
|
101
|
+
id: entry.asset_id || null,
|
|
102
|
+
},
|
|
103
|
+
verification,
|
|
104
|
+
signal: { signals: Array.isArray(entry.signals) ? entry.signals.slice(0, 8) : [] },
|
|
105
|
+
};
|
|
106
|
+
try {
|
|
107
|
+
writeMemoryGraphEvent(ev);
|
|
108
|
+
} catch (writeErr) {
|
|
109
|
+
if (process.env.EVOLVE_RECALL_VERIFY_DEBUG === '1') {
|
|
110
|
+
console.warn('[RecallVerify] writeMemoryGraphEvent failed: ' + (writeErr && writeErr.message || writeErr));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (outcome === 'roundtrip_ok') _lastReport.ok++;
|
|
114
|
+
else if (outcome === 'roundtrip_missing') _lastReport.missing++;
|
|
115
|
+
else if (outcome === 'roundtrip_mismatch') _lastReport.mismatch++;
|
|
116
|
+
else _lastReport.skipped++;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// --- Public API ---
|
|
120
|
+
|
|
121
|
+
function enqueuePublishedAsset(input) {
|
|
122
|
+
const entry = {
|
|
123
|
+
asset_id: input && input.asset_id ? String(input.asset_id) : null,
|
|
124
|
+
type: input && input.type ? String(input.type) : 'Unknown',
|
|
125
|
+
signals: Array.isArray(input && input.signals) ? input.signals : [],
|
|
126
|
+
publishedAt: input && Number.isFinite(input.publishedAt) ? input.publishedAt : Date.now(),
|
|
127
|
+
attempts: 0,
|
|
128
|
+
nextEligibleAt: 0,
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
if (!_isFeatureEnabled()) {
|
|
132
|
+
_emitEvent(entry, 'verification_skipped', 'feature_disabled');
|
|
133
|
+
return { enqueued: false, reason: 'feature_disabled' };
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (!entry.asset_id) {
|
|
137
|
+
_emitEvent(entry, 'verification_skipped', 'missing_asset_id');
|
|
138
|
+
return { enqueued: false, reason: 'missing_asset_id' };
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const sampleRate = _getSampleRate();
|
|
142
|
+
if (sampleRate < 1.0 && Math.random() >= sampleRate) {
|
|
143
|
+
_emitEvent(entry, 'verification_skipped', 'sample_rate');
|
|
144
|
+
return { enqueued: false, reason: 'sample_rate' };
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
entry.nextEligibleAt = entry.publishedAt + _getInitialWaitMs();
|
|
148
|
+
|
|
149
|
+
const queueMax = _getQueueMax();
|
|
150
|
+
while (_queue.length >= queueMax) {
|
|
151
|
+
const dropped = _queue.shift();
|
|
152
|
+
_emitEvent(dropped, 'verification_skipped', 'queue_full');
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
_queue.push(entry);
|
|
156
|
+
return { enqueued: true };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Single-asset verification. Returns one of the four outcomes.
|
|
160
|
+
// outcome ∈ { roundtrip_ok | roundtrip_missing | roundtrip_mismatch | verification_skipped }
|
|
161
|
+
async function verifyOnce(assetId, assetType) {
|
|
162
|
+
const t0 = Date.now();
|
|
163
|
+
if (!assetId) {
|
|
164
|
+
return { outcome: 'verification_skipped', reason: 'missing_asset_id', latency_ms: 0, recalled_hash: null };
|
|
165
|
+
}
|
|
166
|
+
let result;
|
|
167
|
+
try {
|
|
168
|
+
result = await fetchAssetById(assetId, { timeoutMs: _getFetchTimeoutMs(), bypassCache: true });
|
|
169
|
+
} catch (err) {
|
|
170
|
+
return {
|
|
171
|
+
outcome: 'verification_skipped',
|
|
172
|
+
reason: 'hub_unreachable',
|
|
173
|
+
latency_ms: Date.now() - t0,
|
|
174
|
+
recalled_hash: null,
|
|
175
|
+
error: err && err.message || String(err),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const latency = Date.now() - t0;
|
|
180
|
+
|
|
181
|
+
if (!result || !result.ok) {
|
|
182
|
+
return {
|
|
183
|
+
outcome: 'verification_skipped',
|
|
184
|
+
reason: 'hub_unreachable',
|
|
185
|
+
latency_ms: latency,
|
|
186
|
+
recalled_hash: null,
|
|
187
|
+
error: (result && result.error) || 'fetch_not_ok',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (!result.asset) {
|
|
192
|
+
return { outcome: 'roundtrip_missing', reason: null, latency_ms: latency, recalled_hash: null };
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const recalled = result.asset;
|
|
196
|
+
if (recalled.asset_id !== assetId) {
|
|
197
|
+
return { outcome: 'roundtrip_missing', reason: 'wrong_asset', latency_ms: latency, recalled_hash: recalled.asset_id || null };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Recompute the asset_id from the recalled body. If it doesn't match what
|
|
201
|
+
// the recalled asset claims its asset_id is, the Hub re-encoded or
|
|
202
|
+
// corrupted the asset between publish and fetch.
|
|
203
|
+
let recomputed;
|
|
204
|
+
try {
|
|
205
|
+
recomputed = computeAssetId(recalled);
|
|
206
|
+
} catch (hashErr) {
|
|
207
|
+
return {
|
|
208
|
+
outcome: 'verification_skipped',
|
|
209
|
+
reason: 'hash_recompute_failed',
|
|
210
|
+
latency_ms: latency,
|
|
211
|
+
recalled_hash: null,
|
|
212
|
+
error: hashErr && hashErr.message || String(hashErr),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (recomputed !== recalled.asset_id) {
|
|
217
|
+
return { outcome: 'roundtrip_mismatch', reason: 'hash_drift', latency_ms: latency, recalled_hash: recomputed };
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return { outcome: 'roundtrip_ok', reason: null, latency_ms: latency, recalled_hash: recomputed };
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Drain the queue once. Public + idempotent so tests can drive it
|
|
224
|
+
// synchronously without waiting on setInterval.
|
|
225
|
+
async function _runWorkerOnce() {
|
|
226
|
+
if (_queue.length === 0) return { processed: 0 };
|
|
227
|
+
const now = Date.now();
|
|
228
|
+
const maxAttempts = _getMaxAttempts();
|
|
229
|
+
const ready = [];
|
|
230
|
+
for (let i = 0; i < _queue.length; i++) {
|
|
231
|
+
const entry = _queue[i];
|
|
232
|
+
if (entry.nextEligibleAt <= now && !_inflightAssetIds.has(entry.asset_id)) {
|
|
233
|
+
ready.push(entry);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (ready.length === 0) return { processed: 0 };
|
|
237
|
+
|
|
238
|
+
let processed = 0;
|
|
239
|
+
for (const entry of ready) {
|
|
240
|
+
_inflightAssetIds.add(entry.asset_id);
|
|
241
|
+
try {
|
|
242
|
+
entry.attempts += 1;
|
|
243
|
+
const verifyResult = await verifyOnce(entry.asset_id, entry.type);
|
|
244
|
+
|
|
245
|
+
const isRetryable = (verifyResult.outcome === 'roundtrip_missing' ||
|
|
246
|
+
(verifyResult.outcome === 'verification_skipped' && verifyResult.reason === 'hub_unreachable'));
|
|
247
|
+
const hasAttemptsLeft = entry.attempts < maxAttempts;
|
|
248
|
+
|
|
249
|
+
if (isRetryable && hasAttemptsLeft) {
|
|
250
|
+
const backoffIdx = Math.min(entry.attempts - 1, BACKOFF_MS.length - 1);
|
|
251
|
+
entry.nextEligibleAt = Date.now() + BACKOFF_MS[backoffIdx];
|
|
252
|
+
} else {
|
|
253
|
+
_emitEvent(entry, verifyResult.outcome, verifyResult.reason, {
|
|
254
|
+
attempts: entry.attempts,
|
|
255
|
+
latency_ms: verifyResult.latency_ms,
|
|
256
|
+
recalled_hash: verifyResult.recalled_hash,
|
|
257
|
+
});
|
|
258
|
+
const idx = _queue.indexOf(entry);
|
|
259
|
+
if (idx !== -1) _queue.splice(idx, 1);
|
|
260
|
+
}
|
|
261
|
+
processed += 1;
|
|
262
|
+
} finally {
|
|
263
|
+
// Always release inflight (including on retry) — next poll re-adds.
|
|
264
|
+
_inflightAssetIds.delete(entry.asset_id);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return { processed };
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
function startWorker() {
|
|
271
|
+
if (_workerStarted) return;
|
|
272
|
+
_workerStarted = true;
|
|
273
|
+
const pollMs = _getPollMs();
|
|
274
|
+
_workerTimer = setInterval(function () {
|
|
275
|
+
_runWorkerOnce().catch(function (err) {
|
|
276
|
+
if (process.env.EVOLVE_RECALL_VERIFY_DEBUG === '1') {
|
|
277
|
+
console.warn('[RecallVerify] worker tick failed: ' + (err && err.message || err));
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
}, pollMs);
|
|
281
|
+
if (_workerTimer && typeof _workerTimer.unref === 'function') {
|
|
282
|
+
_workerTimer.unref();
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function stopWorker() {
|
|
287
|
+
if (_workerTimer) {
|
|
288
|
+
clearInterval(_workerTimer);
|
|
289
|
+
_workerTimer = null;
|
|
290
|
+
}
|
|
291
|
+
_workerStarted = false;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function getLastReport() {
|
|
295
|
+
return Object.assign({}, _lastReport);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function _resetForTesting() {
|
|
299
|
+
stopWorker();
|
|
300
|
+
_queue = [];
|
|
301
|
+
_inflightAssetIds.clear();
|
|
302
|
+
_lastReport = { ok: 0, missing: 0, mismatch: 0, skipped: 0 };
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function _getQueueLengthForTesting() {
|
|
306
|
+
return _queue.length;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
module.exports = {
|
|
310
|
+
enqueuePublishedAsset,
|
|
311
|
+
verifyOnce,
|
|
312
|
+
startWorker,
|
|
313
|
+
stopWorker,
|
|
314
|
+
getLastReport,
|
|
315
|
+
_runWorkerOnce,
|
|
316
|
+
_resetForTesting,
|
|
317
|
+
_getQueueLengthForTesting,
|
|
318
|
+
};
|