@evomap/evolver 1.89.11 → 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.
Files changed (100) hide show
  1. package/.cursor/BUGBOT.md +182 -0
  2. package/.env.example +68 -0
  3. package/.git-commit-guard-token +1 -0
  4. package/.github/CODEOWNERS +63 -0
  5. package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
  6. package/.github/pull_request_template.md +45 -0
  7. package/.github/workflows/test.yml +75 -0
  8. package/CHANGELOG.md +1367 -0
  9. package/README.md +90 -537
  10. package/README.public.md +578 -0
  11. package/SECURITY.md +108 -0
  12. package/assets/gep/events.jsonl +3 -0
  13. package/examples/atp-consumer-quickstart.md +100 -0
  14. package/examples/hello-world.md +38 -0
  15. package/package.json +6 -18
  16. package/proxy-package.json +39 -0
  17. package/public.manifest.json +145 -0
  18. package/src/evolve/guards.js +721 -1
  19. package/src/evolve/pipeline/collect.js +1283 -1
  20. package/src/evolve/pipeline/dispatch.js +421 -1
  21. package/src/evolve/pipeline/enrich.js +440 -1
  22. package/src/evolve/pipeline/hub.js +319 -1
  23. package/src/evolve/pipeline/select.js +274 -1
  24. package/src/evolve/pipeline/signals.js +206 -1
  25. package/src/evolve/utils.js +264 -1
  26. package/src/evolve.js +350 -1
  27. package/src/gep/a2aProtocol.js +4463 -1
  28. package/src/gep/antiAbuseTelemetry.js +233 -1
  29. package/src/gep/autoDistillConv.js +205 -1
  30. package/src/gep/autoDistillLlm.js +315 -1
  31. package/src/gep/candidateEval.js +92 -1
  32. package/src/gep/candidates.js +198 -1
  33. package/src/gep/contentHash.js +30 -1
  34. package/src/gep/conversationDistiller.js +270 -0
  35. package/src/gep/conversationSniffer.js +266 -1
  36. package/src/gep/crypto.js +89 -1
  37. package/src/gep/curriculum.js +163 -1
  38. package/src/gep/deviceId.js +218 -1
  39. package/src/gep/envFingerprint.js +118 -1
  40. package/src/gep/epigenetics.js +31 -1
  41. package/src/gep/execBridge.js +712 -1
  42. package/src/gep/explore.js +289 -1
  43. package/src/gep/hash.js +15 -1
  44. package/src/gep/hubFetch.js +608 -1
  45. package/src/gep/hubReview.js +207 -1
  46. package/src/gep/hubSearch.js +526 -1
  47. package/src/gep/hubVerify.js +306 -1
  48. package/src/gep/learningSignals.js +89 -1
  49. package/src/gep/memoryGraph.js +1449 -1
  50. package/src/gep/memoryGraphAdapter.js +203 -1
  51. package/src/gep/mutation.js +203 -1
  52. package/src/gep/narrativeMemory.js +108 -1
  53. package/src/gep/openPRRegistry.js +205 -1
  54. package/src/gep/personality.js +423 -1
  55. package/src/gep/policyCheck.js +599 -1
  56. package/src/gep/prompt.js +836 -1
  57. package/src/gep/questionGenerator.js +103 -0
  58. package/src/gep/recallInject.js +409 -1
  59. package/src/gep/recallVerifier.js +318 -1
  60. package/src/gep/reflection.js +177 -1
  61. package/src/gep/savingsCore.js +112 -1
  62. package/src/gep/selector.js +602 -1
  63. package/src/gep/skillDistiller.js +1294 -1
  64. package/src/gep/solidify.js +1699 -1
  65. package/src/gep/strategy.js +136 -1
  66. package/src/gep/tokenSavings.js +95 -1
  67. package/src/gep/workspaceKeychain.js +174 -1
  68. package/src/proxy/extensions/traceControl.js +109 -1
  69. package/src/proxy/inject.js +52 -1
  70. package/src/proxy/lifecycle/manager.js +108 -7
  71. package/src/proxy/server/routes.js +31 -0
  72. package/src/proxy/server/settings.js +6 -2
  73. package/src/proxy/sync/engine.js +31 -15
  74. package/src/proxy/sync/inbound.js +87 -9
  75. package/src/proxy/sync/outbound.js +57 -4
  76. package/src/proxy/trace/extractor.js +1403 -1
  77. package/src/proxy/trace/usage.js +105 -1
  78. package/CONTRIBUTING.md +0 -19
  79. package/assets/cover.png +0 -0
  80. package/scripts/a2a_export.js +0 -63
  81. package/scripts/a2a_ingest.js +0 -79
  82. package/scripts/a2a_promote.js +0 -118
  83. package/scripts/analyze_by_skill.js +0 -121
  84. package/scripts/build_binaries.js +0 -479
  85. package/scripts/check-changelog.js +0 -166
  86. package/scripts/extract_log.js +0 -85
  87. package/scripts/generate_history.js +0 -75
  88. package/scripts/gep_append_event.js +0 -96
  89. package/scripts/gep_personality_report.js +0 -234
  90. package/scripts/human_report.js +0 -147
  91. package/scripts/recall-verify-report.js +0 -234
  92. package/scripts/recover_loop.js +0 -61
  93. package/scripts/refresh_stars_badge.js +0 -168
  94. package/scripts/seed-merchants.js +0 -91
  95. package/scripts/suggest_version.js +0 -89
  96. package/scripts/validate-modules.js +0 -38
  97. package/scripts/validate-suite.js +0 -78
  98. package/skills/index.json +0 -14
  99. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  100. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,203 @@
1
- function _0x22f8(_0x183285,_0x3d6093){_0x183285=_0x183285-(-0x1*-0x1b31+-0x1d83+0x2e5);const _0x36238a=_0xf96b();let _0x4d3d8f=_0x36238a[_0x183285];if(_0x22f8['\x78\x6f\x7a\x6c\x73\x6f']===undefined){var _0x31ba26=function(_0x38b488){const _0xe29137='\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 _0x224b8c='',_0x1fa9c4='',_0x52e889=_0x224b8c+_0x31ba26,_0xeb06bf=(''+function(){return-0xa6b+-0x243a+0x1*0x2ea5;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x887+-0x2000+-0xa*-0x259);for(let _0x2c286d=0x3*-0x45d+0x457*-0x2+0x15c5,_0x46a61b,_0x1a294f,_0x5731d5=-0x284+0x1fb3+-0x1d2f;_0x1a294f=_0x38b488['\x63\x68\x61\x72\x41\x74'](_0x5731d5++);~_0x1a294f&&(_0x46a61b=_0x2c286d%(0xc91+0x12cd+-0x2*0xfad)?_0x46a61b*(-0x935*0x3+-0x950+-0x3*-0xc65)+_0x1a294f:_0x1a294f,_0x2c286d++%(-0xd*0xca+-0x2f6+0xd3c))?_0x224b8c+=_0xeb06bf||_0x52e889['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5731d5+(0xc87+-0xd*-0x219+0xe*-0x2d7))-(0x6b3+-0x487*-0x5+-0x1d4c)!==0x7f1+-0x1483+0xc92?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xc*0x25b+-0x1*-0x15ce+0x11*-0x2e3&_0x46a61b>>(-(0x7*-0x319+0x1b98*-0x1+0x197*0x1f)*_0x2c286d&-0x11*-0xa3+0xbf1+-0x16be)):_0x2c286d:0x76*0x4a+0x166+-0x9*0x3f2){_0x1a294f=_0xe29137['\x69\x6e\x64\x65\x78\x4f\x66'](_0x1a294f);}for(let _0x25d08e=-0x19*-0xd9+-0x8a2+-0xc8f,_0x11d6c0=_0x224b8c['\x6c\x65\x6e\x67\x74\x68'];_0x25d08e<_0x11d6c0;_0x25d08e++){_0x1fa9c4+='\x25'+('\x30\x30'+_0x224b8c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x25d08e)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10f+-0x11a1+0x10a2))['\x73\x6c\x69\x63\x65'](-(-0x202a*-0x1+-0x2ff+-0x1d29*0x1));}return decodeURIComponent(_0x1fa9c4);};const _0x3fb602=function(_0x387ac4,_0x4dbd42){let _0x37d8bb=[],_0x203796=-0x7*-0x50+0x1*-0x12a3+-0x1*-0x1073,_0x217acd,_0x33c0ca='';_0x387ac4=_0x31ba26(_0x387ac4);let _0x15ce51;for(_0x15ce51=0x137+0x11*-0xda+0x23*0x61;_0x15ce51<-0x13b9*0x1+-0xde6+0x1*0x229f;_0x15ce51++){_0x37d8bb[_0x15ce51]=_0x15ce51;}for(_0x15ce51=-0xa85+-0x582+0xb*0x175;_0x15ce51<-0x1*0x1bdf+-0x1167+0x1*0x2e46;_0x15ce51++){_0x203796=(_0x203796+_0x37d8bb[_0x15ce51]+_0x4dbd42['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x15ce51%_0x4dbd42['\x6c\x65\x6e\x67\x74\x68']))%(-0x872+-0x5*0x515+0x22db),_0x217acd=_0x37d8bb[_0x15ce51],_0x37d8bb[_0x15ce51]=_0x37d8bb[_0x203796],_0x37d8bb[_0x203796]=_0x217acd;}_0x15ce51=-0x1708+0x1e50+-0x8*0xe9,_0x203796=0x1873+0x1*-0x1b41+0x2ce;for(let _0x2305fe=0x1*-0x26c3+0x2db*-0x7+0x3ac0;_0x2305fe<_0x387ac4['\x6c\x65\x6e\x67\x74\x68'];_0x2305fe++){_0x15ce51=(_0x15ce51+(0x1*-0xab4+0x1737+-0xc82))%(0x1557+0xaf6+0x1*-0x1f4d),_0x203796=(_0x203796+_0x37d8bb[_0x15ce51])%(-0xeb7+-0x15ac*-0x1+-0x1*0x5f5),_0x217acd=_0x37d8bb[_0x15ce51],_0x37d8bb[_0x15ce51]=_0x37d8bb[_0x203796],_0x37d8bb[_0x203796]=_0x217acd,_0x33c0ca+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x387ac4['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2305fe)^_0x37d8bb[(_0x37d8bb[_0x15ce51]+_0x37d8bb[_0x203796])%(0x3*-0x4b1+0x1*0x1d62+-0xe4f)]);}return _0x33c0ca;};_0x22f8['\x41\x54\x70\x5a\x54\x64']=_0x3fb602,_0x22f8['\x49\x53\x63\x78\x50\x4a']={},_0x22f8['\x78\x6f\x7a\x6c\x73\x6f']=!![];}const _0x3a10ea=_0x36238a[-0x9*-0x10e+0x9*-0x1d5+-0xc7*-0x9],_0x2c92d9=_0x183285+_0x3a10ea,_0x534e77=_0x22f8['\x49\x53\x63\x78\x50\x4a'][_0x2c92d9];if(!_0x534e77){if(_0x22f8['\x5a\x56\x48\x42\x6f\x72']===undefined){const _0x13aaac=function(_0x352cfa){this['\x76\x54\x58\x62\x63\x44']=_0x352cfa,this['\x68\x51\x69\x54\x42\x57']=[-0x1*0x2c2+0xb06+0xeb*-0x9,0x2547+-0x117*0x4+0x35*-0x9f,0x20e5+-0x15fc+-0xae9],this['\x44\x6e\x4f\x49\x70\x7a']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6c\x41\x6f\x54\x47\x6b']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x74\x45\x54\x49\x61\x71']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x7a\x4d\x49\x7a\x46\x4d']=function(){const _0x2d1cf3=new RegExp(this['\x6c\x41\x6f\x54\x47\x6b']+this['\x74\x45\x54\x49\x61\x71']),_0x9ee7ee=_0x2d1cf3['\x74\x65\x73\x74'](this['\x44\x6e\x4f\x49\x70\x7a']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x68\x51\x69\x54\x42\x57'][-0x1afa+-0x1941+-0x1a1e*-0x2]:--this['\x68\x51\x69\x54\x42\x57'][0x2319+0x20af+-0x43c8];return this['\x5a\x6c\x54\x48\x51\x70'](_0x9ee7ee);},_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5a\x6c\x54\x48\x51\x70']=function(_0x5cb307){if(!Boolean(~_0x5cb307))return _0x5cb307;return this['\x4d\x42\x6d\x48\x51\x47'](this['\x76\x54\x58\x62\x63\x44']);},_0x13aaac['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4d\x42\x6d\x48\x51\x47']=function(_0x550e2c){for(let _0x5211c4=-0x1f57*0x1+0x1881+0x7d*0xe,_0x35cc57=this['\x68\x51\x69\x54\x42\x57']['\x6c\x65\x6e\x67\x74\x68'];_0x5211c4<_0x35cc57;_0x5211c4++){this['\x68\x51\x69\x54\x42\x57']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x35cc57=this['\x68\x51\x69\x54\x42\x57']['\x6c\x65\x6e\x67\x74\x68'];}return _0x550e2c(this['\x68\x51\x69\x54\x42\x57'][0x2005+-0x1*-0x423+-0x2428]);},(''+function(){return 0x233b+0x3c4+-0x26ff*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x117+0x127*-0x3+0xe9*0x5)&&new _0x13aaac(_0x22f8)['\x7a\x4d\x49\x7a\x46\x4d'](),_0x22f8['\x5a\x56\x48\x42\x6f\x72']=!![];}_0x4d3d8f=_0x22f8['\x41\x54\x70\x5a\x54\x64'](_0x4d3d8f,_0x3d6093),_0x22f8['\x49\x53\x63\x78\x50\x4a'][_0x2c92d9]=_0x4d3d8f;}else _0x4d3d8f=_0x534e77;return _0x4d3d8f;}function _0xf96b(){const _0x24891f=['\x57\x34\x6c\x64\x53\x6d\x6f\x70\x6c\x62\x2f\x64\x4b\x4d\x42\x63\x51\x43\x6b\x76\x41\x43\x6f\x74\x57\x34\x7a\x6f\x67\x61','\x57\x51\x5a\x64\x48\x4a\x43\x6a\x68\x53\x6b\x36\x45\x43\x6f\x63','\x45\x6d\x6b\x41\x72\x59\x6c\x63\x56\x57','\x57\x37\x6a\x47\x57\x50\x33\x63\x53\x62\x31\x58\x44\x72\x38','\x57\x37\x61\x62\x57\x36\x4a\x63\x54\x53\x6b\x71\x76\x61','\x42\x43\x6b\x74\x57\x36\x74\x64\x4d\x57\x4f','\x78\x61\x2f\x63\x50\x6d\x6b\x4b\x57\x35\x47','\x57\x35\x78\x63\x56\x38\x6f\x70\x57\x34\x37\x64\x4c\x38\x6b\x75\x57\x37\x75\x47\x57\x36\x43\x70\x57\x34\x64\x63\x49\x38\x6b\x67','\x57\x4f\x43\x63\x62\x6d\x6b\x34\x63\x61','\x57\x34\x71\x4d\x57\x34\x4a\x63\x4b\x43\x6b\x32','\x79\x77\x66\x38\x57\x4f\x62\x45\x57\x37\x6a\x68\x7a\x61','\x75\x6d\x6b\x55\x75\x43\x6b\x78\x57\x34\x69','\x62\x74\x5a\x64\x4a\x68\x38\x72\x57\x35\x68\x63\x52\x63\x68\x63\x50\x33\x58\x66\x57\x34\x6e\x76\x57\x35\x34','\x57\x4f\x7a\x7a\x6b\x43\x6b\x4f\x45\x53\x6f\x75\x62\x38\x6f\x43','\x62\x6d\x6b\x6c\x57\x36\x6e\x2b\x77\x57','\x6b\x6d\x6b\x38\x57\x37\x4c\x54\x73\x4d\x43\x6a\x57\x4f\x4f','\x57\x37\x52\x63\x4d\x77\x54\x6b\x62\x53\x6b\x77\x41\x53\x6f\x4f\x65\x63\x69','\x71\x65\x31\x78\x6f\x43\x6b\x32','\x73\x4a\x2f\x63\x52\x38\x6b\x58\x57\x34\x75','\x57\x51\x30\x70\x57\x36\x6c\x64\x54\x53\x6b\x6e\x78\x38\x6f\x55\x57\x52\x43','\x57\x52\x42\x64\x52\x38\x6f\x4f\x57\x37\x79\x32\x57\x50\x47','\x68\x73\x6c\x64\x47\x31\x4e\x63\x4f\x4b\x72\x59\x57\x52\x47','\x75\x58\x42\x64\x51\x43\x6f\x56\x7a\x49\x4c\x6c\x41\x57','\x57\x37\x4c\x48\x6a\x43\x6f\x70\x57\x35\x4f','\x57\x50\x70\x64\x51\x6d\x6b\x69\x57\x50\x46\x63\x47\x53\x6f\x78\x57\x51\x71\x2f','\x76\x43\x6b\x61\x57\x4f\x4e\x63\x4f\x6d\x6b\x46','\x63\x58\x5a\x63\x53\x43\x6f\x56\x57\x35\x79\x55\x71\x30\x4b','\x6d\x77\x4b\x6a','\x45\x6d\x6b\x44\x61\x38\x6f\x58\x70\x6d\x6f\x5a\x69\x43\x6f\x36','\x62\x59\x30\x49\x63\x4c\x61','\x43\x32\x4e\x63\x4e\x63\x58\x77','\x46\x43\x6b\x49\x57\x51\x35\x42\x6d\x71','\x57\x51\x5a\x64\x52\x43\x6f\x4e\x57\x36\x75\x35\x57\x52\x56\x64\x4d\x43\x6b\x58','\x71\x48\x74\x64\x4c\x43\x6f\x50\x42\x71\x44\x78\x42\x71','\x57\x51\x44\x4a\x57\x35\x46\x63\x50\x78\x6d','\x57\x4f\x71\x61\x57\x34\x31\x4c\x6b\x57','\x76\x73\x5a\x64\x4b\x64\x56\x63\x52\x4b\x44\x36\x57\x51\x38','\x77\x38\x6b\x32\x43\x4a\x68\x63\x4d\x4b\x5a\x63\x4e\x68\x30','\x57\x34\x75\x64\x41\x38\x6f\x2b\x57\x35\x68\x64\x4e\x75\x6a\x64\x57\x4f\x34\x47','\x74\x38\x6b\x72\x57\x51\x4a\x63\x4d\x6d\x6b\x75\x57\x35\x66\x5a\x42\x47','\x57\x52\x72\x68\x57\x34\x68\x63\x53\x31\x33\x63\x47\x53\x6b\x57','\x76\x53\x6b\x79\x72\x74\x70\x63\x47\x75\x42\x63\x4c\x57','\x57\x35\x44\x6d\x57\x36\x78\x64\x48\x4c\x38\x33\x63\x43\x6b\x7a','\x79\x68\x62\x54\x57\x4f\x7a\x63\x57\x37\x66\x56\x44\x47','\x57\x52\x68\x64\x52\x38\x6f\x37\x57\x36\x4f\x30\x57\x50\x5a\x64\x56\x38\x6b\x50','\x57\x37\x44\x45\x57\x50\x53\x45\x75\x49\x46\x63\x55\x63\x7a\x36\x73\x68\x39\x55\x57\x36\x6d\x6c','\x57\x34\x46\x63\x55\x6d\x6b\x37\x72\x76\x30','\x57\x37\x64\x63\x55\x53\x6b\x34\x57\x52\x43\x34\x57\x51\x4a\x64\x49\x53\x6b\x58\x42\x43\x6b\x35','\x57\x35\x53\x47\x62\x53\x6f\x36\x6f\x59\x57\x55\x61\x71','\x57\x50\x31\x74\x6a\x61','\x57\x52\x46\x64\x52\x38\x6f\x51\x57\x36\x53\x4e\x57\x50\x74\x64\x54\x6d\x6b\x58','\x57\x34\x57\x61\x7a\x43\x6f\x36\x57\x51\x37\x63\x48\x63\x39\x55\x57\x4f\x4f\x49\x57\x37\x68\x63\x54\x38\x6f\x6f','\x77\x4d\x56\x63\x4c\x59\x58\x64\x57\x50\x78\x64\x56\x71','\x79\x68\x62\x54\x57\x4f\x7a\x63\x57\x37\x66\x39\x41\x57','\x57\x4f\x58\x56\x57\x35\x52\x63\x53\x4b\x34','\x78\x58\x5a\x64\x51\x6d\x6f\x38\x43\x59\x76\x43\x43\x57','\x72\x72\x42\x63\x55\x38\x6b\x79\x57\x37\x30','\x64\x6d\x6b\x56\x57\x36\x58\x34\x72\x71','\x43\x38\x6b\x58\x57\x36\x2f\x64\x4a\x59\x42\x63\x4f\x53\x6f\x46\x68\x61','\x57\x37\x6d\x78\x57\x36\x70\x63\x54\x6d\x6b\x56','\x41\x33\x53\x6c\x75\x71\x57\x7a\x70\x38\x6f\x51','\x57\x34\x56\x64\x50\x53\x6b\x68','\x57\x50\x44\x44\x70\x53\x6b\x4b\x79\x61','\x7a\x64\x64\x64\x4e\x53\x6f\x36\x72\x71','\x78\x72\x74\x64\x4b\x53\x6f\x35\x76\x48\x74\x64\x4f\x71','\x57\x34\x33\x63\x56\x53\x6b\x6f\x61\x57','\x7a\x75\x78\x63\x50\x6d\x6b\x66\x57\x51\x37\x63\x4b\x65\x53\x4f\x57\x34\x4e\x64\x51\x73\x2f\x63\x4d\x77\x65','\x6b\x4e\x68\x63\x52\x4a\x68\x64\x51\x53\x6f\x43\x57\x35\x64\x64\x53\x71','\x57\x50\x6e\x73\x6d\x53\x6b\x52\x57\x36\x38','\x57\x52\x65\x69\x57\x36\x72\x62\x6e\x57','\x57\x4f\x52\x64\x53\x65\x4f\x7a','\x44\x4e\x30\x6b\x42\x63\x69','\x57\x4f\x43\x78\x63\x53\x6b\x52\x63\x48\x4c\x75\x6b\x57','\x57\x4f\x4c\x70\x57\x36\x70\x63\x48\x53\x6f\x6f\x44\x38\x6b\x42\x57\x37\x38','\x57\x51\x33\x64\x4a\x53\x6f\x65\x57\x37\x43\x49','\x44\x68\x4c\x4a\x57\x4f\x39\x48','\x64\x6d\x6b\x37\x57\x36\x39\x53\x77\x71','\x79\x32\x70\x63\x55\x73\x58\x65','\x69\x53\x6b\x49\x57\x50\x65\x4d\x6e\x62\x47\x4c\x57\x4f\x47','\x43\x76\x4e\x64\x50\x43\x6b\x73\x57\x35\x43','\x41\x43\x6b\x4a\x77\x6d\x6b\x46\x57\x36\x6d','\x6f\x78\x79\x70\x69\x43\x6b\x43\x75\x4a\x61','\x72\x72\x6c\x64\x4f\x43\x6f\x5a\x46\x47\x6a\x6b','\x57\x51\x74\x64\x49\x59\x4f\x49\x57\x37\x61\x56\x57\x34\x48\x6c','\x62\x33\x52\x63\x55\x63\x6c\x64\x4e\x47','\x67\x73\x4a\x64\x4d\x4d\x74\x63\x53\x4c\x31\x34\x57\x50\x4b','\x57\x36\x52\x63\x4b\x53\x6f\x79\x57\x36\x34\x44\x65\x43\x6b\x2b\x57\x51\x30','\x57\x34\x57\x32\x67\x38\x6f\x4c\x6f\x57\x71\x4f\x70\x71','\x57\x50\x46\x63\x4f\x43\x6f\x44\x66\x53\x6b\x30\x64\x31\x6e\x34','\x57\x50\x50\x63\x63\x6d\x6b\x45\x57\x37\x47','\x6c\x58\x68\x64\x56\x6d\x6f\x43\x57\x36\x70\x64\x48\x73\x71\x70','\x57\x52\x52\x64\x4d\x33\x43\x51\x6d\x57','\x62\x31\x64\x63\x54\x48\x52\x64\x4f\x61','\x57\x35\x78\x64\x51\x38\x6b\x57\x46\x53\x6f\x71','\x64\x32\x4c\x32\x7a\x65\x46\x63\x50\x61','\x57\x37\x79\x62\x57\x37\x46\x63\x54\x38\x6b\x66\x78\x43\x6f\x6b\x57\x52\x6d','\x57\x36\x57\x62\x57\x34\x5a\x63\x56\x43\x6b\x78','\x57\x52\x7a\x6e\x57\x34\x78\x63\x54\x31\x4e\x63\x4b\x53\x6b\x38\x57\x4f\x4b','\x76\x48\x6c\x63\x55\x38\x6b\x56\x57\x34\x6d\x56','\x46\x65\x57\x52\x76\x72\x53\x79\x6f\x43\x6b\x4a','\x57\x52\x46\x64\x53\x38\x6b\x35\x57\x52\x6c\x63\x4c\x71','\x57\x4f\x52\x64\x55\x6d\x6f\x67\x72\x4d\x30','\x74\x38\x6b\x53\x57\x50\x44\x37\x6f\x61\x72\x49','\x75\x31\x64\x63\x4d\x5a\x50\x71\x57\x4f\x37\x64\x51\x49\x6d','\x63\x57\x5a\x64\x56\x43\x6f\x78\x57\x36\x71','\x57\x34\x53\x58\x57\x36\x4a\x63\x4f\x6d\x6b\x53','\x57\x34\x34\x48\x62\x53\x6f\x4c\x6b\x47','\x45\x32\x6a\x42\x6b\x53\x6b\x75','\x75\x71\x4a\x64\x53\x61\x39\x38\x57\x35\x76\x66\x77\x71','\x6a\x64\x37\x64\x4f\x43\x6f\x6b\x57\x35\x79','\x57\x37\x37\x63\x4e\x77\x4c\x6e\x77\x53\x6f\x36\x6c\x38\x6b\x48\x61\x58\x37\x63\x4a\x38\x6f\x34\x43\x6d\x6b\x76','\x6a\x75\x44\x6d\x57\x50\x35\x65\x57\x34\x39\x2f','\x57\x36\x2f\x64\x47\x61\x6d\x46\x57\x34\x4b\x45\x57\x35\x34','\x57\x35\x53\x75\x57\x35\x33\x63\x53\x53\x6b\x6f','\x57\x4f\x62\x79\x65\x6d\x6b\x48\x57\x36\x56\x64\x4d\x77\x4c\x63','\x57\x4f\x52\x64\x55\x6d\x6f\x48\x57\x34\x4b\x37','\x57\x51\x6a\x71\x57\x35\x4a\x63\x55\x75\x4a\x63\x50\x6d\x6b\x37\x57\x50\x53','\x66\x59\x42\x64\x48\x57','\x57\x37\x4a\x63\x47\x73\x71\x4f\x57\x36\x38\x4b\x57\x36\x4c\x42','\x57\x52\x46\x64\x52\x38\x6f\x51\x57\x36\x53\x4e\x57\x50\x74\x64\x55\x43\x6b\x57','\x6f\x74\x57\x4c\x57\x34\x30','\x6a\x63\x30\x39\x57\x35\x47\x61\x57\x51\x75\x77\x42\x49\x68\x64\x4c\x53\x6f\x53\x78\x67\x4b','\x57\x51\x76\x52\x57\x35\x2f\x63\x54\x76\x47','\x57\x51\x74\x64\x55\x43\x6f\x53','\x57\x35\x4a\x64\x52\x6d\x6b\x62\x44\x43\x6f\x36\x73\x58\x43\x4a','\x7a\x65\x64\x63\x52\x72\x57','\x6f\x48\x52\x64\x53\x6d\x6f\x46\x57\x34\x74\x64\x4a\x48\x4f\x75','\x43\x38\x6f\x51\x57\x52\x71\x38\x68\x5a\x62\x70\x57\x50\x5a\x63\x55\x6d\x6b\x39\x57\x51\x78\x64\x49\x38\x6b\x57','\x41\x43\x6b\x6f\x57\x50\x6e\x4e\x6f\x64\x38\x4d','\x57\x4f\x52\x64\x51\x6d\x6b\x73\x57\x35\x64\x63\x4a\x43\x6f\x78\x57\x51\x69\x49','\x57\x52\x39\x31\x68\x43\x6b\x46\x57\x34\x53','\x57\x34\x52\x63\x4f\x6d\x6f\x31\x57\x34\x65','\x46\x59\x46\x64\x4d\x38\x6f\x32\x74\x47','\x68\x33\x58\x4a\x43\x31\x4f','\x57\x36\x7a\x35\x6b\x43\x6f\x4d\x57\x36\x75','\x57\x50\x34\x72\x44\x72\x46\x63\x50\x38\x6f\x30','\x57\x36\x6a\x47\x57\x36\x52\x64\x53\x66\x65','\x57\x37\x38\x65\x57\x36\x6a\x34\x6b\x65\x42\x64\x4a\x47','\x45\x68\x69\x36\x72\x61\x65','\x45\x33\x6a\x47\x57\x4f\x48\x43\x57\x35\x35\x6c\x45\x57','\x57\x34\x44\x33\x57\x50\x2f\x63\x50\x58\x4f','\x64\x75\x75\x69\x69\x43\x6b\x68','\x57\x37\x6c\x63\x55\x38\x6b\x39\x57\x52\x6a\x54\x57\x51\x74\x64\x4b\x6d\x6b\x63\x44\x53\x6b\x46\x66\x57','\x43\x76\x50\x37\x57\x51\x35\x6a','\x68\x77\x31\x4e\x46\x65\x53','\x75\x58\x2f\x63\x55\x43\x6b\x75\x57\x34\x69','\x57\x52\x75\x63\x57\x34\x44\x45','\x57\x34\x4c\x65\x6c\x6d\x6f\x32\x57\x37\x4b','\x57\x4f\x39\x70\x57\x36\x33\x63\x4d\x43\x6f\x69','\x57\x34\x4e\x63\x51\x53\x6b\x44\x44\x31\x53','\x57\x36\x4f\x52\x61\x43\x6f\x31\x6d\x57','\x57\x52\x37\x63\x53\x38\x6b\x57\x45\x66\x30','\x6f\x32\x43\x74\x65\x53\x6b\x76','\x69\x66\x4e\x63\x54\x72\x46\x64\x56\x57','\x57\x4f\x78\x64\x56\x5a\x79\x72\x62\x57','\x57\x52\x2f\x64\x49\x73\x43\x53\x57\x36\x34\x61\x57\x37\x35\x42','\x41\x53\x6b\x4b\x57\x36\x52\x64\x48\x61\x79','\x57\x34\x46\x64\x53\x43\x6b\x68\x78\x6d\x6f\x57','\x57\x36\x34\x57\x64\x38\x6f\x7a\x6b\x49\x70\x64\x49\x47','\x6d\x57\x42\x64\x4e\x38\x6f\x4d\x57\x37\x4b','\x44\x4a\x74\x63\x4f\x38\x6b\x51\x57\x35\x38','\x57\x52\x56\x64\x4a\x64\x43\x6a\x68\x57','\x57\x50\x4e\x63\x53\x6d\x6b\x73\x44\x71','\x57\x51\x61\x43\x46\x64\x37\x63\x54\x61','\x57\x50\x46\x64\x54\x43\x6b\x66\x57\x51\x33\x63\x47\x53\x6f\x66\x57\x51\x4b\x62','\x79\x6d\x6b\x53\x57\x50\x54\x4d\x6c\x57\x38\x66\x57\x50\x38','\x57\x50\x2f\x64\x51\x62\x34\x37\x6f\x47','\x57\x37\x38\x36\x66\x53\x6f\x42','\x72\x68\x61\x56\x73\x71\x30\x45\x6c\x38\x6f\x34','\x57\x34\x5a\x64\x56\x43\x6b\x75\x74\x6d\x6f\x51\x76\x71','\x57\x35\x68\x63\x47\x73\x43\x50\x63\x38\x6f\x32\x6f\x33\x53\x6e\x70\x6d\x6f\x4a\x44\x43\x6b\x33','\x71\x64\x5a\x64\x47\x71\x48\x2b','\x76\x43\x6b\x74\x57\x36\x52\x64\x4c\x59\x56\x63\x51\x6d\x6f\x45','\x57\x51\x42\x64\x51\x38\x6f\x39\x57\x36\x43\x39','\x57\x50\x70\x64\x52\x6d\x6b\x39\x57\x4f\x52\x63\x56\x53\x6f\x71\x57\x50\x37\x63\x51\x61','\x57\x35\x53\x58\x65\x6d\x6f\x66\x6f\x57\x53\x34\x69\x57','\x6d\x68\x70\x63\x4f\x73\x6c\x64\x50\x43\x6f\x2f','\x45\x59\x42\x64\x52\x48\x76\x52','\x57\x4f\x68\x64\x55\x31\x4f\x70\x6f\x53\x6f\x70','\x42\x32\x4f\x2b\x71\x47','\x57\x51\x62\x55\x57\x36\x74\x63\x55\x67\x4b','\x71\x71\x2f\x63\x4f\x53\x6b\x4c\x57\x34\x75\x4b\x76\x65\x57','\x57\x51\x6c\x64\x49\x59\x71\x39\x57\x37\x79','\x7a\x77\x64\x64\x52\x6d\x6b\x34\x57\x37\x48\x36\x44\x74\x30','\x44\x33\x57\x54\x72\x47\x75','\x6a\x4d\x64\x63\x50\x74\x37\x64\x53\x47','\x64\x66\x2f\x64\x56\x53\x6f\x55\x57\x50\x58\x4a\x68\x47\x4b','\x57\x34\x78\x63\x4d\x6d\x6b\x50\x78\x68\x4f','\x57\x52\x68\x64\x51\x6d\x6b\x77\x57\x35\x43\x71\x6f\x76\x50\x42','\x57\x51\x64\x64\x47\x43\x6b\x42\x57\x50\x5a\x63\x53\x71','\x70\x38\x6b\x33\x41\x38\x6b\x4c\x57\x37\x71\x5a\x57\x50\x43','\x46\x53\x6b\x44\x65\x53\x6f\x57\x6c\x38\x6f\x37\x6b\x53\x6f\x49','\x57\x34\x75\x77\x62\x6d\x6f\x4c\x6c\x57','\x57\x34\x72\x4f\x6f\x38\x6f\x50\x57\x34\x6d','\x57\x4f\x2f\x64\x50\x53\x6b\x51\x57\x34\x78\x63\x52\x38\x6f\x42\x57\x52\x68\x63\x55\x47','\x57\x35\x50\x68\x57\x36\x6c\x64\x4b\x75\x4f\x58\x67\x71','\x57\x4f\x74\x64\x50\x6d\x6b\x4b\x57\x50\x70\x63\x56\x61','\x57\x51\x74\x64\x48\x77\x44\x57\x45\x47','\x74\x57\x4e\x64\x47\x43\x6f\x59\x77\x47\x4a\x64\x50\x47','\x79\x75\x7a\x72\x61\x43\x6b\x4c','\x6c\x67\x75\x69\x68\x6d\x6b\x79\x79\x63\x50\x37','\x73\x6d\x6b\x41\x57\x51\x4a\x63\x47\x71','\x6f\x4d\x43\x6a\x68\x38\x6b\x79\x71\x48\x39\x58','\x72\x6d\x6b\x57\x74\x59\x65','\x79\x75\x76\x71','\x57\x51\x37\x64\x4d\x73\x4f\x76\x61\x53\x6b\x54\x46\x43\x6f\x4c','\x57\x35\x68\x63\x50\x53\x6b\x72\x65\x74\x4b\x56\x6c\x30\x64\x64\x55\x53\x6b\x64\x57\x37\x43','\x57\x52\x2f\x64\x47\x72\x38\x70\x64\x53\x6b\x47\x41\x6d\x6f\x49','\x57\x51\x33\x64\x49\x6d\x6b\x33\x57\x50\x74\x63\x54\x71','\x77\x32\x56\x63\x55\x63\x54\x6f','\x43\x30\x66\x37\x65\x6d\x6b\x69','\x6c\x48\x68\x64\x53\x6d\x6f\x62\x57\x37\x74\x64\x49\x61','\x57\x52\x46\x64\x56\x38\x6f\x6e\x79\x30\x69','\x75\x72\x78\x64\x50\x38\x6f\x58\x74\x61\x62\x79\x45\x47','\x57\x52\x48\x58\x63\x43\x6b\x57\x7a\x47','\x57\x51\x37\x64\x4e\x53\x6b\x62\x57\x35\x4b\x77\x6f\x61','\x6f\x43\x6f\x72\x68\x53\x6f\x49\x57\x34\x30\x69\x57\x50\x38\x45\x72\x53\x6b\x76','\x79\x4d\x58\x30\x63\x6d\x6b\x4f','\x68\x5a\x6c\x64\x51\x6d\x6f\x4e\x57\x35\x34','\x7a\x43\x6b\x61\x72\x6d\x6b\x39\x57\x37\x69\x71\x57\x4f\x65\x55','\x6c\x48\x33\x64\x54\x53\x6f\x44\x57\x37\x42\x64\x4a\x61','\x77\x38\x6b\x61\x44\x47\x4a\x63\x4a\x61','\x79\x53\x6b\x4a\x57\x50\x39\x46\x6f\x61','\x78\x6d\x6b\x39\x57\x37\x52\x64\x49\x73\x46\x63\x55\x6d\x6f\x73\x64\x47','\x6b\x4d\x6d\x65\x68\x53\x6b\x70\x71\x48\x4c\x47','\x57\x35\x6c\x64\x4d\x53\x6b\x62\x77\x43\x6f\x52\x71\x57','\x57\x36\x6e\x51\x57\x50\x64\x63\x52\x62\x54\x4e\x74\x57\x4b','\x57\x34\x69\x44\x65\x53\x6f\x70\x65\x61','\x6f\x38\x6b\x59\x57\x37\x4c\x47\x73\x68\x53\x73\x57\x4f\x61','\x62\x4b\x2f\x63\x54\x4a\x46\x64\x54\x61','\x57\x4f\x4e\x64\x4f\x53\x6f\x72\x72\x67\x34\x77\x6a\x47','\x57\x4f\x69\x6e\x7a\x48\x52\x63\x51\x43\x6f\x31\x57\x34\x57','\x7a\x53\x6b\x2b\x57\x37\x56\x64\x4a\x49\x61','\x46\x53\x6b\x44\x65\x53\x6f\x57\x6c\x38\x6f\x37\x6c\x43\x6f\x55'];_0xf96b=function(){return _0x24891f;};return _0xf96b();}const _0x4c5bd8=_0x22f8;(function(_0x5300cb,_0x4c7c4a){const _0x5856ec=_0x22f8,_0x4c1e71=_0x5300cb();while(!![]){try{const _0x24fcdf=parseInt(_0x5856ec(0xd3,'\x7a\x47\x51\x4e'))/(0x13*0x65+0x1a75+0x1*-0x21f3)+-parseInt(_0x5856ec(0x115,'\x69\x65\x5a\x6d'))/(0xc03+-0x8*-0x10a+-0x1451*0x1)*(parseInt(_0x5856ec(0xff,'\x23\x73\x45\x28'))/(0x5*-0xc7+0x172e+-0x269*0x8))+parseInt(_0x5856ec(0x168,'\x6a\x74\x4c\x41'))/(0x10*0x1db+-0x2*-0x1126+-0x3ff8)+parseInt(_0x5856ec(0xaf,'\x30\x7a\x6c\x6c'))/(-0x7*0x79+-0x1*-0x2071+-0x1d1d)+-parseInt(_0x5856ec(0x16e,'\x4a\x7a\x6d\x61'))/(0x8*-0x9e+0x1d61+-0x186b)+-parseInt(_0x5856ec(0x15e,'\x6a\x74\x4c\x41'))/(-0xcdd+0x2*-0x19d+0x101e)*(-parseInt(_0x5856ec(0xef,'\x58\x5e\x2a\x77'))/(0xc0c+-0x25*0x45+0x20b*-0x1))+parseInt(_0x5856ec(0x178,'\x39\x46\x67\x6e'))/(0x676+0x24d2+-0x1*0x2b3f)*(-parseInt(_0x5856ec(0x15d,'\x23\x73\x45\x28'))/(-0x176c+-0x1fc*-0x7+0x62*0x19));if(_0x24fcdf===_0x4c7c4a)break;else _0x4c1e71['push'](_0x4c1e71['shift']());}catch(_0x4e2605){_0x4c1e71['push'](_0x4c1e71['shift']());}}}(_0xf96b,0x1*-0x1c4cff+0x161ea5+0x8b*0x25d9));const _0x16cf3b=require(_0x4c5bd8(0x165,'\x21\x45\x59\x70')+_0x4c5bd8(0x128,'\x4a\x7a\x6d\x61')),_0x423917={'\x6e\x61\x6d\x65':_0x4c5bd8(0xbd,'\x6d\x6e\x4c\x73'),'\x67\x65\x74\x41\x64\x76\x69\x63\x65'(_0x141ce8){const _0x3c4414=_0x4c5bd8;return _0x16cf3b[_0x3c4414(0x104,'\x49\x57\x35\x6c')+_0x3c4414(0xb1,'\x43\x66\x34\x42')](_0x141ce8);},'\x72\x65\x63\x6f\x72\x64\x53\x69\x67\x6e\x61\x6c\x53\x6e\x61\x70\x73\x68\x6f\x74'(_0x7c3380){const _0x405952=_0x4c5bd8;return _0x16cf3b[_0x405952(0x124,'\x6a\x74\x4c\x41')+_0x405952(0x16d,'\x76\x40\x74\x2a')+_0x405952(0x97,'\x39\x46\x67\x6e')](_0x7c3380);},'\x72\x65\x63\x6f\x72\x64\x48\x79\x70\x6f\x74\x68\x65\x73\x69\x73'(_0x22343e){const _0x28c3a0=_0x4c5bd8;return _0x16cf3b[_0x28c3a0(0xc4,'\x6f\x23\x56\x4c')+_0x28c3a0(0x107,'\x40\x73\x37\x56')](_0x22343e);},'\x72\x65\x63\x6f\x72\x64\x41\x74\x74\x65\x6d\x70\x74'(_0x5d7b8a){const _0x3918d1=_0x4c5bd8;return _0x16cf3b[_0x3918d1(0xe5,'\x46\x35\x54\x5d')+_0x3918d1(0xbb,'\x21\x45\x59\x70')](_0x5d7b8a);},'\x72\x65\x63\x6f\x72\x64\x4f\x75\x74\x63\x6f\x6d\x65'(_0x4d7d8b){const _0x113956=_0x4c5bd8;return _0x16cf3b[_0x113956(0xee,'\x6f\x23\x56\x4c')+_0x113956(0xcd,'\x46\x35\x54\x5d')+_0x113956(0xe6,'\x4f\x29\x66\x6a')](_0x4d7d8b);},'\x72\x65\x63\x6f\x72\x64\x45\x78\x74\x65\x72\x6e\x61\x6c\x43\x61\x6e\x64\x69\x64\x61\x74\x65'(_0x2be785){const _0x4de3ea=_0x4c5bd8;return _0x16cf3b['\x72\x65\x63\x6f\x72\x64\x45\x78'+_0x4de3ea(0x10b,'\x6f\x23\x56\x4c')+_0x4de3ea(0xc8,'\x34\x76\x5e\x50')](_0x2be785);},'\x6d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x50\x61\x74\x68'(){const _0x235e5e=_0x4c5bd8;return _0x16cf3b[_0x235e5e(0xaa,'\x42\x40\x6d\x25')+'\x61\x70\x68\x50\x61\x74\x68']();},'\x63\x6f\x6d\x70\x75\x74\x65\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79'(_0x269cb3){const _0xe02e9b=_0x4c5bd8;return _0x16cf3b[_0xe02e9b(0x144,'\x49\x57\x35\x6c')+_0xe02e9b(0x17a,'\x6a\x74\x4c\x41')](_0x269cb3);},'\x74\x72\x79\x52\x65\x61\x64\x4d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x45\x76\x65\x6e\x74\x73'(_0x2663ec){const _0x440330=_0x4c5bd8;return _0x16cf3b[_0x440330(0xb4,'\x37\x31\x65\x6f')+_0x440330(0xbc,'\x66\x54\x34\x68')+_0x440330(0xd4,'\x23\x73\x45\x28')](_0x2663ec);}};function _0x4b459c(){const _0x4399f1=_0x4c5bd8,_0x5f504f={'\x6e\x72\x4e\x55\x6e':function(_0x1f88c0,_0x1e729a,_0x151daf){return _0x1f88c0(_0x1e729a,_0x151daf);},'\x6e\x48\x79\x71\x72':_0x4399f1(0x102,'\x4e\x28\x6f\x63')+'\x73\x74','\x63\x4f\x75\x47\x79':'\x68\x79\x70\x6f\x74\x68\x65\x73'+'\x69\x73','\x43\x46\x67\x63\x56':'\x4d\x45\x4d\x4f\x52\x59\x5f\x47'+'\x52\x41\x50\x48\x5f\x52\x45\x4d'+'\x4f\x54\x45\x5f\x55\x52\x4c\x20'+_0x4399f1(0xc7,'\x4e\x32\x33\x63')+_0x4399f1(0xb7,'\x54\x4c\x71\x29'),'\x61\x41\x66\x7a\x4f':function(_0x1b3d2c,_0x8a2812){return _0x1b3d2c!==_0x8a2812;},'\x71\x73\x66\x6d\x4b':_0x4399f1(0xa5,'\x70\x41\x58\x61'),'\x66\x4c\x55\x67\x55':'\x4d\x74\x6e\x6b\x55','\x55\x67\x75\x62\x50':function(_0x3ba9a2,_0x3417ac,_0x41e926){return _0x3ba9a2(_0x3417ac,_0x41e926);},'\x79\x4a\x70\x79\x41':_0x4399f1(0x16c,'\x47\x23\x71\x74'),'\x74\x6c\x73\x5a\x43':_0x4399f1(0xd2,'\x23\x73\x45\x28')+_0x4399f1(0x170,'\x40\x73\x37\x56'),'\x77\x68\x6f\x54\x75':function(_0x52032e,_0x544a2a){return _0x52032e===_0x544a2a;},'\x57\x6c\x47\x64\x66':'\x75\x78\x51\x4b\x68','\x74\x4c\x41\x6b\x63':function(_0x48688d,_0x45abb0){return _0x48688d===_0x45abb0;},'\x4f\x72\x68\x4d\x6e':_0x4399f1(0xd9,'\x7a\x47\x51\x4e'),'\x4d\x75\x75\x6f\x48':_0x4399f1(0x127,'\x70\x41\x58\x61'),'\x6d\x73\x52\x51\x6e':function(_0x4b97ff,_0x152e5f){return _0x4b97ff(_0x152e5f);},'\x52\x47\x58\x57\x6c':function(_0x3da0e4,_0x576c2c){return _0x3da0e4===_0x576c2c;},'\x4f\x56\x6e\x76\x76':'\x71\x4f\x70\x56\x62','\x4b\x42\x41\x51\x57':function(_0x5a28e7,..._0x11efe3){return _0x5a28e7(..._0x11efe3);},'\x47\x66\x62\x64\x74':_0x4399f1(0x112,'\x39\x46\x67\x6e'),'\x66\x6b\x59\x4b\x6e':function(_0x35db74,..._0x20b1d0){return _0x35db74(..._0x20b1d0);},'\x41\x41\x6a\x7a\x48':_0x4399f1(0x109,'\x70\x41\x58\x61')+'\x63\x65','\x57\x43\x66\x67\x57':_0x4399f1(0xe1,'\x76\x40\x74\x2a'),'\x5a\x70\x64\x4b\x52':_0x4399f1(0xcb,'\x54\x33\x62\x34'),'\x78\x78\x79\x42\x51':function(_0x53db02){return _0x53db02();},'\x6a\x62\x45\x46\x4f':_0x4399f1(0xe8,'\x7a\x31\x4c\x43'),'\x4c\x4d\x43\x77\x6e':_0x4399f1(0xeb,'\x7a\x47\x51\x4e'),'\x4d\x70\x4d\x63\x71':function(_0x4187c5,_0x32b62f,_0x5cd1b7){return _0x4187c5(_0x32b62f,_0x5cd1b7);},'\x46\x76\x64\x65\x44':_0x4399f1(0xba,'\x70\x41\x58\x61')+_0x4399f1(0x129,'\x43\x66\x34\x42')+'\x74\x65','\x4a\x6c\x75\x6f\x62':function(_0x1f391d,_0x3491f0){return _0x1f391d(_0x3491f0);},'\x74\x59\x57\x4d\x64':_0x4399f1(0x151,'\x70\x41\x58\x61'),'\x6e\x75\x54\x50\x64':function(_0x5ca3a1,_0x5db1d5,_0x2e2b27){return _0x5ca3a1(_0x5db1d5,_0x2e2b27);}},_0x308ae7=process.env.MEMORY_GRAPH_REMOTE_URL||'',_0x2dc828=process.env.MEMORY_GRAPH_REMOTE_KEY||'',_0x46ab1c=_0x5f504f[_0x4399f1(0xed,'\x43\x66\x34\x42')](Number,process.env.MEMORY_GRAPH_REMOTE_TIMEOUT_MS)||-0x527+-0xd*-0x2cd+0xbba*-0x1;async function _0x22c5ae(_0x26227b,_0x1ab0e8){const _0x3da35e=_0x4399f1;if(!_0x308ae7)throw new Error(_0x5f504f[_0x3da35e(0xc2,'\x40\x73\x37\x56')]);const _0xf25b8f=''+_0x308ae7[_0x3da35e(0x117,'\x4b\x73\x51\x5d')](/\/+$/,'')+_0x26227b,_0x5c4739=new AbortController(),_0x4208f9=setTimeout(()=>_0x5c4739[_0x3da35e(0x159,'\x37\x31\x65\x6f')](),_0x46ab1c);try{if(_0x5f504f[_0x3da35e(0xc0,'\x4a\x39\x59\x47')](_0x5f504f[_0x3da35e(0x12a,'\x4e\x28\x6f\x63')],_0x5f504f[_0x3da35e(0xb9,'\x4b\x73\x51\x5d')])){const _0x590974=await _0x5f504f[_0x3da35e(0x100,'\x4f\x44\x58\x50')](fetch,_0xf25b8f,{'\x6d\x65\x74\x68\x6f\x64':_0x5f504f[_0x3da35e(0x15c,'\x76\x40\x74\x2a')],'\x68\x65\x61\x64\x65\x72\x73':{'\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65':_0x5f504f[_0x3da35e(0xcc,'\x4f\x44\x58\x50')],..._0x2dc828?{'\x41\x75\x74\x68\x6f\x72\x69\x7a\x61\x74\x69\x6f\x6e':_0x3da35e(0x155,'\x42\x40\x6d\x25')+_0x2dc828}:{}},'\x62\x6f\x64\x79':JSON[_0x3da35e(0xf9,'\x6a\x74\x4c\x41')+'\x79'](_0x1ab0e8),'\x73\x69\x67\x6e\x61\x6c':_0x5c4739[_0x3da35e(0x176,'\x30\x21\x36\x6b')]});if(!_0x590974['\x6f\x6b']){if(_0x5f504f[_0x3da35e(0x96,'\x70\x41\x58\x61')](_0x3da35e(0x139,'\x21\x67\x21\x74'),_0x5f504f[_0x3da35e(0x13c,'\x47\x23\x71\x74')]))return _0x3b264b['\x63\x6f\x6d\x70\x75\x74\x65\x53'+_0x3da35e(0x132,'\x4e\x38\x40\x74')](_0x2509bc);else throw new Error('\x72\x65\x6d\x6f\x74\x65\x5f\x6b'+_0x3da35e(0x152,'\x6d\x6e\x4c\x73')+'\x20'+_0x590974[_0x3da35e(0x14d,'\x4a\x48\x6c\x63')]);}return await _0x590974[_0x3da35e(0xa7,'\x58\x5e\x2a\x77')]();}else{const _0x47dd7b=_0x457245[_0x3da35e(0xfc,'\x56\x72\x5a\x50')+_0x3da35e(0xe9,'\x4a\x7a\x6d\x61')](_0x3d8091);return _0x5f504f[_0x3da35e(0xa4,'\x76\x40\x74\x2a')](_0x579988,_0x5f504f[_0x3da35e(0x15a,'\x4f\x44\x58\x50')],{'\x6b\x69\x6e\x64':_0x5f504f[_0x3da35e(0x94,'\x6a\x74\x4c\x41')],'\x65\x76\x65\x6e\x74':_0x47dd7b})[_0x3da35e(0x11d,'\x4a\x39\x59\x47')](()=>{}),_0x47dd7b;}}finally{if(_0x5f504f['\x74\x4c\x41\x6b\x63'](_0x5f504f[_0x3da35e(0x162,'\x21\x67\x21\x74')],_0x5f504f[_0x3da35e(0xca,'\x30\x7a\x6c\x6c')]))return _0x46a29f[_0x3da35e(0xe7,'\x6c\x58\x40\x57')+_0x3da35e(0x11f,'\x37\x31\x65\x6f')+_0x3da35e(0xe6,'\x4f\x29\x66\x6a')](_0x1b7577);else _0x5f504f[_0x3da35e(0x9a,'\x4a\x39\x59\x47')](clearTimeout,_0x4208f9);}}function _0x3818fe(_0x586822,_0x9c8894){return async function(..._0x4148d4){const _0x4af00c=_0x22f8;if(_0x5f504f[_0x4af00c(0x14a,'\x54\x4c\x71\x29')](_0x5f504f[_0x4af00c(0xfd,'\x4a\x7a\x6d\x61')],_0x5f504f[_0x4af00c(0xb6,'\x6d\x56\x57\x28')]))try{return await _0x5f504f[_0x4af00c(0x171,'\x69\x65\x5a\x6d')](_0x9c8894,..._0x4148d4);}catch(_0x2fe262){if(_0x5f504f[_0x4af00c(0xb0,'\x6d\x56\x57\x28')](_0x5f504f[_0x4af00c(0x10d,'\x47\x23\x71\x74')],_0x5f504f[_0x4af00c(0x13b,'\x4a\x7a\x6d\x61')]))return _0x5f504f[_0x4af00c(0xd7,'\x4f\x44\x58\x50')](_0x586822,..._0x4148d4);else throw new _0x3efaf0(_0x4af00c(0x149,'\x76\x40\x74\x2a')+_0x4af00c(0x156,'\x47\x23\x71\x74')+'\x20'+_0x50f844[_0x4af00c(0xae,'\x4f\x29\x66\x6a')]);}else return _0x955684[_0x4af00c(0x11a,'\x6a\x74\x4c\x41')+_0x4af00c(0xa6,'\x23\x73\x45\x28')](_0x150eff);};}return{'\x6e\x61\x6d\x65':_0x5f504f[_0x4399f1(0xe2,'\x52\x39\x26\x69')],'\x67\x65\x74\x41\x64\x76\x69\x63\x65':_0x5f504f[_0x4399f1(0x148,'\x69\x65\x5a\x6d')](_0x3818fe,_0x34cd67=>_0x16cf3b[_0x4399f1(0x16b,'\x4f\x29\x66\x6a')+_0x4399f1(0x118,'\x52\x39\x26\x69')](_0x34cd67),async _0xff1cda=>{const _0x2f3734=_0x4399f1,_0x539487=await _0x22c5ae(_0x5f504f[_0x2f3734(0xf4,'\x43\x66\x34\x42')],{'\x73\x69\x67\x6e\x61\x6c\x73':_0xff1cda[_0x2f3734(0x12f,'\x54\x33\x62\x34')],'\x67\x65\x6e\x65\x73':(_0xff1cda[_0x2f3734(0x133,'\x69\x65\x5a\x6d')]||[])[_0x2f3734(0x164,'\x49\x57\x35\x6c')](_0x452ed2=>({'\x69\x64':_0x452ed2['\x69\x64'],'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x452ed2[_0x2f3734(0xfe,'\x4a\x7a\x6d\x61')],'\x74\x79\x70\x65':_0x452ed2[_0x2f3734(0xb8,'\x6d\x6e\x4c\x73')]})),'\x64\x72\x69\x66\x74\x45\x6e\x61\x62\x6c\x65\x64':_0xff1cda[_0x2f3734(0x163,'\x4b\x73\x51\x5d')+_0x2f3734(0x135,'\x54\x4c\x71\x29')]});return{'\x63\x75\x72\x72\x65\x6e\x74\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79':_0x539487[_0x2f3734(0x146,'\x37\x31\x65\x6f')+_0x2f3734(0x126,'\x78\x69\x39\x79')]||_0x16cf3b[_0x2f3734(0xf0,'\x23\x73\x45\x28')+_0x2f3734(0xa0,'\x21\x45\x59\x70')](_0xff1cda[_0x2f3734(0x141,'\x78\x69\x39\x79')]),'\x70\x72\x65\x66\x65\x72\x72\x65\x64\x47\x65\x6e\x65\x49\x64':_0x539487['\x70\x72\x65\x66\x65\x72\x72\x65'+_0x2f3734(0x16f,'\x42\x40\x6d\x25')]||null,'\x62\x61\x6e\x6e\x65\x64\x47\x65\x6e\x65\x49\x64\x73':new Set(_0x539487[_0x2f3734(0xcf,'\x46\x35\x54\x5d')+_0x2f3734(0x14f,'\x4e\x28\x6f\x63')]||[]),'\x65\x78\x70\x6c\x61\x6e\x61\x74\x69\x6f\x6e':Array['\x69\x73\x41\x72\x72\x61\x79'](_0x539487['\x65\x78\x70\x6c\x61\x6e\x61\x74'+_0x2f3734(0x10a,'\x46\x35\x54\x5d')])?_0x539487[_0x2f3734(0x15b,'\x6d\x56\x57\x28')+_0x2f3734(0x120,'\x56\x72\x5a\x50')]:[]};}),'\x72\x65\x63\x6f\x72\x64\x53\x69\x67\x6e\x61\x6c\x53\x6e\x61\x70\x73\x68\x6f\x74'(_0x5d13ce){const _0x32e044=_0x4399f1,_0x102ad5=_0x16cf3b[_0x32e044(0x142,'\x21\x45\x59\x70')+_0x32e044(0xda,'\x78\x69\x39\x79')+_0x32e044(0xce,'\x53\x52\x53\x6c')](_0x5d13ce);return _0x5f504f['\x55\x67\x75\x62\x50'](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x32e044(0xf1,'\x52\x39\x26\x69')],'\x65\x76\x65\x6e\x74':_0x102ad5})[_0x32e044(0xb2,'\x21\x67\x21\x74')](()=>{}),_0x102ad5;},'\x72\x65\x63\x6f\x72\x64\x48\x79\x70\x6f\x74\x68\x65\x73\x69\x73'(_0x3e86cb){const _0x573eec=_0x4399f1,_0x1e0051=_0x16cf3b[_0x573eec(0x121,'\x21\x67\x21\x74')+_0x573eec(0xe4,'\x43\x66\x34\x42')](_0x3e86cb);return _0x22c5ae(_0x5f504f[_0x573eec(0x101,'\x70\x41\x58\x61')],{'\x6b\x69\x6e\x64':_0x5f504f[_0x573eec(0x9e,'\x4e\x38\x40\x74')],'\x65\x76\x65\x6e\x74':_0x1e0051})[_0x573eec(0x9d,'\x46\x35\x54\x5d')](()=>{}),_0x1e0051;},'\x72\x65\x63\x6f\x72\x64\x41\x74\x74\x65\x6d\x70\x74'(_0x2be4c5){const _0x1aad3a=_0x4399f1,_0x1a6eb8=_0x16cf3b[_0x1aad3a(0xb3,'\x4e\x32\x33\x63')+_0x1aad3a(0x99,'\x25\x4b\x50\x38')](_0x2be4c5),_0x18ac23={};return _0x18ac23[_0x1aad3a(0xd0,'\x52\x39\x26\x69')]=_0x5f504f[_0x1aad3a(0x106,'\x58\x47\x43\x40')],_0x18ac23[_0x1aad3a(0xbe,'\x4e\x38\x40\x74')]=_0x1a6eb8,_0x22c5ae(_0x1aad3a(0x145,'\x6d\x40\x25\x62')+'\x73\x74',_0x18ac23)[_0x1aad3a(0x179,'\x6d\x6e\x4c\x73')](()=>{}),_0x1a6eb8;},'\x72\x65\x63\x6f\x72\x64\x4f\x75\x74\x63\x6f\x6d\x65'(_0x1e1c0e){const _0x36db14=_0x4399f1;if(_0x5f504f[_0x36db14(0x111,'\x4b\x73\x51\x5d')](_0x5f504f[_0x36db14(0x14c,'\x4f\x29\x66\x6a')],_0x36db14(0x158,'\x4e\x28\x6f\x63')))return _0x5f504f['\x78\x78\x79\x42\x51'](_0x3b99f4);else{const _0x490a6d=_0x16cf3b['\x72\x65\x63\x6f\x72\x64\x4f\x75'+_0x36db14(0x116,'\x53\x52\x53\x6c')+_0x36db14(0xdc,'\x37\x33\x58\x66')](_0x1e1c0e);return _0x490a6d&&_0x5f504f[_0x36db14(0x108,'\x53\x52\x53\x6c')](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x36db14(0xdb,'\x56\x72\x5a\x50')],'\x65\x76\x65\x6e\x74':_0x490a6d})[_0x36db14(0x174,'\x4a\x48\x6c\x63')](()=>{}),_0x490a6d;}},'\x72\x65\x63\x6f\x72\x64\x45\x78\x74\x65\x72\x6e\x61\x6c\x43\x61\x6e\x64\x69\x64\x61\x74\x65'(_0x329895){const _0x514490=_0x4399f1,_0x5ca07e=_0x16cf3b[_0x514490(0xc1,'\x37\x33\x58\x66')+_0x514490(0x14e,'\x4e\x28\x6f\x63')+_0x514490(0x123,'\x47\x23\x71\x74')](_0x329895);return _0x5ca07e&&_0x5f504f[_0x514490(0x9c,'\x58\x5e\x2a\x77')](_0x22c5ae,_0x5f504f['\x6e\x48\x79\x71\x72'],{'\x6b\x69\x6e\x64':_0x5f504f[_0x514490(0xa1,'\x43\x66\x34\x42')],'\x65\x76\x65\x6e\x74':_0x5ca07e})[_0x514490(0xb2,'\x21\x67\x21\x74')](()=>{}),_0x5ca07e;},'\x6d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x50\x61\x74\x68'(){const _0x1675a8=_0x4399f1;return _0x16cf3b[_0x1675a8(0xe0,'\x5a\x41\x54\x54')+_0x1675a8(0x140,'\x46\x35\x54\x5d')]();},'\x63\x6f\x6d\x70\x75\x74\x65\x53\x69\x67\x6e\x61\x6c\x4b\x65\x79'(_0xd3d199){const _0x50856b=_0x4399f1;return _0x16cf3b['\x63\x6f\x6d\x70\x75\x74\x65\x53'+_0x50856b(0x10f,'\x21\x67\x21\x74')](_0xd3d199);},'\x74\x72\x79\x52\x65\x61\x64\x4d\x65\x6d\x6f\x72\x79\x47\x72\x61\x70\x68\x45\x76\x65\x6e\x74\x73'(_0x3f6d2e){const _0x38653f=_0x4399f1;return _0x16cf3b[_0x38653f(0xa9,'\x40\x73\x37\x56')+_0x38653f(0x105,'\x78\x69\x39\x79')+_0x38653f(0x12b,'\x6d\x6e\x4c\x73')](_0x3f6d2e);}};}function _0x3ce113(){const _0x357165=_0x4c5bd8,_0x25b3ba={'\x4a\x4d\x6b\x6d\x72':_0x357165(0xbf,'\x70\x41\x58\x61')+_0x357165(0x172,'\x4e\x32\x33\x63'),'\x77\x62\x4c\x6b\x54':function(_0x2d993b,_0x491f44,_0x1ad172){return _0x2d993b(_0x491f44,_0x1ad172);},'\x72\x6a\x44\x4e\x4a':_0x357165(0xec,'\x30\x21\x36\x6b'),'\x55\x43\x6f\x50\x7a':function(_0x4bca9e,_0x42dcbb){return _0x4bca9e!==_0x42dcbb;},'\x44\x6c\x78\x72\x58':_0x357165(0x13a,'\x6a\x74\x4c\x41'),'\x58\x4b\x78\x45\x42':_0x357165(0x9f,'\x23\x73\x45\x28'),'\x65\x6d\x7a\x76\x70':function(_0xf3b16c,_0x4c1328){return _0xf3b16c===_0x4c1328;},'\x67\x79\x7a\x6d\x4b':_0x357165(0x177,'\x34\x76\x5e\x50'),'\x64\x77\x68\x73\x46':'\x69\x42\x63\x7a\x78','\x56\x7a\x67\x57\x59':function(_0x53f21d,_0x4975b7,_0x555fc4){return _0x53f21d(_0x4975b7,_0x555fc4);},'\x59\x70\x58\x6b\x6a':_0x357165(0x113,'\x49\x57\x35\x6c')+'\x73\x74','\x6d\x6e\x44\x4b\x4b':_0x357165(0x137,'\x46\x36\x32\x36')+_0x357165(0xad,'\x6d\x6e\x4c\x73')+'\x74\x65','\x6a\x55\x6d\x72\x71':_0x357165(0xdf,'\x76\x40\x74\x2a'),'\x45\x59\x76\x67\x72':function(_0x5e43c9){return _0x5e43c9();},'\x74\x46\x57\x43\x52':function(_0x17f9a4,_0x80b159){return _0x17f9a4===_0x80b159;},'\x51\x5a\x6e\x61\x79':_0x357165(0xf3,'\x4e\x28\x6f\x63'),'\x61\x46\x71\x4d\x63':function(_0x3933b6){return _0x3933b6();}},_0x34c0d9=(function(){const _0x4bd3d0=_0x357165,_0x41912a={'\x44\x46\x76\x4a\x66':function(_0xaba076,_0x5bbf50,_0xc0185c){const _0x1c307a=_0x22f8;return _0x25b3ba[_0x1c307a(0x134,'\x39\x46\x67\x6e')](_0xaba076,_0x5bbf50,_0xc0185c);},'\x46\x42\x4d\x48\x52':_0x4bd3d0(0x13d,'\x42\x40\x6d\x25')+'\x73\x74','\x70\x6b\x58\x52\x6c':_0x25b3ba['\x72\x6a\x44\x4e\x4a'],'\x78\x78\x72\x64\x6f':function(_0x17f610,_0x11fedd){const _0x2a01ad=_0x4bd3d0;return _0x25b3ba[_0x2a01ad(0x17c,'\x46\x35\x54\x5d')](_0x17f610,_0x11fedd);},'\x6f\x64\x46\x63\x6c':_0x4bd3d0(0x13e,'\x66\x54\x34\x68'),'\x4d\x64\x6e\x47\x72':_0x25b3ba[_0x4bd3d0(0x143,'\x4e\x38\x40\x74')],'\x56\x78\x6c\x64\x73':_0x25b3ba[_0x4bd3d0(0xfa,'\x5a\x41\x54\x54')],'\x50\x41\x44\x42\x51':function(_0x36e5f1,_0xf51bbf){return _0x25b3ba['\x65\x6d\x7a\x76\x70'](_0x36e5f1,_0xf51bbf);},'\x45\x68\x68\x62\x6d':_0x25b3ba[_0x4bd3d0(0xc6,'\x58\x47\x43\x40')]};if(_0x25b3ba[_0x4bd3d0(0xc9,'\x4e\x32\x33\x63')](_0x25b3ba['\x64\x77\x68\x73\x46'],_0x4bd3d0(0xde,'\x4f\x44\x58\x50')))return _0x3bfbc8[_0x4bd3d0(0x114,'\x52\x39\x26\x69')]()['\x73\x65\x61\x72\x63\x68'](_0x4bd3d0(0x147,'\x4f\x29\x66\x6a')+_0x4bd3d0(0x167,'\x6a\x74\x4c\x41'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4bd3d0(0x119,'\x34\x76\x5e\x50')+_0x4bd3d0(0x12c,'\x4f\x29\x66\x6a')](_0x248c7e)[_0x4bd3d0(0xd8,'\x76\x40\x74\x2a')](XGThFS[_0x4bd3d0(0x12e,'\x54\x33\x62\x34')]);else{let _0x1903e7=!![];return function(_0xa61c9e,_0x2032e4){const _0x37cee3=_0x4bd3d0;if(_0x41912a[_0x37cee3(0xab,'\x23\x73\x45\x28')](_0x41912a[_0x37cee3(0x9b,'\x37\x31\x65\x6f')],_0x41912a[_0x37cee3(0x175,'\x58\x47\x43\x40')])){const _0x4d806b=_0x1903e7?function(){const _0x5d2c4a=_0x37cee3,_0x3e23aa={'\x63\x49\x6e\x6a\x64':function(_0x2a87ee,_0x558880,_0x4dc7a3){const _0xd50a3d=_0x22f8;return _0x41912a[_0xd50a3d(0x14b,'\x4e\x38\x40\x74')](_0x2a87ee,_0x558880,_0x4dc7a3);},'\x6d\x71\x7a\x77\x41':_0x41912a[_0x5d2c4a(0xf8,'\x4e\x28\x6f\x63')],'\x6a\x76\x53\x55\x62':_0x41912a[_0x5d2c4a(0x10e,'\x42\x40\x6d\x25')]};if(_0x41912a[_0x5d2c4a(0xf5,'\x70\x41\x58\x61')](_0x41912a[_0x5d2c4a(0xd6,'\x47\x23\x71\x74')],_0x41912a[_0x5d2c4a(0xa8,'\x30\x21\x36\x6b')])){if(_0x2032e4){if(_0x41912a[_0x5d2c4a(0xa2,'\x4f\x29\x66\x6a')](_0x41912a[_0x5d2c4a(0x17b,'\x6c\x58\x40\x57')],_0x41912a[_0x5d2c4a(0x157,'\x76\x40\x74\x2a')]))VTsHYV[_0x5d2c4a(0x169,'\x4b\x73\x51\x5d')](_0x316552,VTsHYV[_0x5d2c4a(0x10c,'\x54\x58\x42\x23')],{'\x6b\x69\x6e\x64':VTsHYV['\x6a\x76\x53\x55\x62'],'\x65\x76\x65\x6e\x74':_0x42d689})[_0x5d2c4a(0x12d,'\x56\x72\x5a\x50')](()=>{});else{const _0x2583e1=_0x2032e4[_0x5d2c4a(0x95,'\x4a\x48\x6c\x63')](_0xa61c9e,arguments);return _0x2032e4=null,_0x2583e1;}}}else return _0x57f604[_0x5d2c4a(0x138,'\x25\x4b\x50\x38')+_0x5d2c4a(0x150,'\x4b\x73\x51\x5d')](_0x1b68d4);}:function(){};return _0x1903e7=![],_0x4d806b;}else return _0x4b5123(..._0x199c12);};}}()),_0xe153e0=_0x34c0d9(this,function(){const _0x4d26f8=_0x357165,_0x1d7aaf={'\x4c\x41\x69\x71\x79':function(_0x54d582,_0x4bb836,_0x82418b){const _0x3aa7a2=_0x22f8;return _0x25b3ba[_0x3aa7a2(0x153,'\x4e\x32\x33\x63')](_0x54d582,_0x4bb836,_0x82418b);},'\x6f\x6a\x69\x56\x65':_0x25b3ba[_0x4d26f8(0x160,'\x4e\x28\x6f\x63')],'\x71\x4b\x45\x74\x4f':_0x25b3ba[_0x4d26f8(0x136,'\x6d\x6e\x4c\x73')]};if(_0x25b3ba[_0x4d26f8(0xf7,'\x46\x36\x32\x36')](_0x25b3ba[_0x4d26f8(0xc5,'\x37\x31\x65\x6f')],_0x25b3ba[_0x4d26f8(0x98,'\x58\x47\x43\x40')]))return _0xe153e0[_0x4d26f8(0x110,'\x78\x69\x39\x79')]()[_0x4d26f8(0x103,'\x21\x67\x21\x74')]('\x28\x28\x28\x2e\x2b\x29\x2b\x29'+_0x4d26f8(0x130,'\x7a\x47\x51\x4e'))['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x4d26f8(0xf2,'\x6c\x58\x40\x57')+_0x4d26f8(0xd1,'\x4f\x44\x58\x50')](_0xe153e0)[_0x4d26f8(0xb5,'\x4e\x38\x40\x74')](_0x25b3ba[_0x4d26f8(0x125,'\x4b\x73\x51\x5d')]);else{const _0x2de512=_0x25503b[_0x4d26f8(0x166,'\x21\x67\x21\x74')+_0x4d26f8(0x11b,'\x21\x67\x21\x74')+_0x4d26f8(0x123,'\x47\x23\x71\x74')](_0x498dec);return _0x2de512&&AfcXWU[_0x4d26f8(0xd5,'\x4e\x32\x33\x63')](_0x43da9d,AfcXWU[_0x4d26f8(0xe3,'\x42\x40\x6d\x25')],{'\x6b\x69\x6e\x64':AfcXWU['\x71\x4b\x45\x74\x4f'],'\x65\x76\x65\x6e\x74':_0x2de512})['\x63\x61\x74\x63\x68'](()=>{}),_0x2de512;}});_0x25b3ba[_0x357165(0xea,'\x4e\x38\x40\x74')](_0xe153e0);const _0x37ecea=(process.env.MEMORY_GRAPH_PROVIDER||_0x357165(0x154,'\x7a\x47\x51\x4e'))[_0x357165(0x161,'\x69\x65\x5a\x6d')+_0x357165(0x16a,'\x21\x67\x21\x74')]()[_0x357165(0xac,'\x7a\x31\x4c\x43')]();if(_0x25b3ba['\x74\x46\x57\x43\x52'](_0x37ecea,_0x25b3ba[_0x357165(0x173,'\x54\x33\x62\x34')]))return _0x25b3ba[_0x357165(0x13f,'\x5a\x41\x54\x54')](_0x4b459c);return _0x423917;}const _0x1a862a=_0x3ce113();module[_0x4c5bd8(0xa3,'\x7a\x31\x4c\x43')]=_0x1a862a;
1
+ // ---------------------------------------------------------------------------
2
+ // MemoryGraphAdapter -- stable interface boundary for memory graph operations.
3
+ //
4
+ // Default implementation delegates to the local JSONL-based memoryGraph.js.
5
+ // SaaS providers can supply a remote adapter by setting MEMORY_GRAPH_PROVIDER=remote
6
+ // and configuring MEMORY_GRAPH_REMOTE_URL / MEMORY_GRAPH_REMOTE_KEY.
7
+ //
8
+ // The adapter is designed so that the open-source evolver always works offline
9
+ // with the local implementation. Remote is optional and degrades gracefully.
10
+ // ---------------------------------------------------------------------------
11
+
12
+ const localGraph = require('./memoryGraph');
13
+
14
+ // ---------------------------------------------------------------------------
15
+ // Adapter interface contract (all methods must be implemented by providers):
16
+ //
17
+ // getAdvice({ signals, genes, driftEnabled }) => { preferredGeneId, bannedGeneIds, currentSignalKey, explanation }
18
+ // recordSignalSnapshot({ signals, observations }) => event
19
+ // recordHypothesis({ signals, mutation, personality_state, selectedGene, selector, driftEnabled, selectedBy, capsulesUsed, observations }) => { hypothesisId, signalKey }
20
+ // recordAttempt({ signals, mutation, personality_state, selectedGene, selector, driftEnabled, selectedBy, hypothesisId, capsulesUsed, observations }) => { actionId, signalKey }
21
+ // recordOutcome({ signals, observations }) => event | null
22
+ // recordExternalCandidate({ asset, source, signals }) => event | null
23
+ // memoryGraphPath() => string
24
+ // computeSignalKey(signals) => string
25
+ // tryReadMemoryGraphEvents(limit) => event[]
26
+ // ---------------------------------------------------------------------------
27
+
28
+ // ---------------------------------------------------------------------------
29
+ // Local adapter (default) -- wraps memoryGraph.js without any behavior change
30
+ // ---------------------------------------------------------------------------
31
+
32
+ const localAdapter = {
33
+ name: 'local',
34
+
35
+ getAdvice(opts) {
36
+ return localGraph.getMemoryAdvice(opts);
37
+ },
38
+
39
+ recordSignalSnapshot(opts) {
40
+ return localGraph.recordSignalSnapshot(opts);
41
+ },
42
+
43
+ recordHypothesis(opts) {
44
+ return localGraph.recordHypothesis(opts);
45
+ },
46
+
47
+ recordAttempt(opts) {
48
+ return localGraph.recordAttempt(opts);
49
+ },
50
+
51
+ recordOutcome(opts) {
52
+ return localGraph.recordOutcomeFromState(opts);
53
+ },
54
+
55
+ recordExternalCandidate(opts) {
56
+ return localGraph.recordExternalCandidate(opts);
57
+ },
58
+
59
+ memoryGraphPath() {
60
+ return localGraph.memoryGraphPath();
61
+ },
62
+
63
+ computeSignalKey(signals) {
64
+ return localGraph.computeSignalKey(signals);
65
+ },
66
+
67
+ tryReadMemoryGraphEvents(limit) {
68
+ return localGraph.tryReadMemoryGraphEvents(limit);
69
+ },
70
+ };
71
+
72
+ // ---------------------------------------------------------------------------
73
+ // Remote adapter (SaaS) -- calls external KG service with local fallback
74
+ // ---------------------------------------------------------------------------
75
+
76
+ function buildRemoteAdapter() {
77
+ const remoteUrl = process.env.MEMORY_GRAPH_REMOTE_URL || '';
78
+ const remoteKey = process.env.MEMORY_GRAPH_REMOTE_KEY || '';
79
+ const timeoutMs = Number(process.env.MEMORY_GRAPH_REMOTE_TIMEOUT_MS) || 5000;
80
+
81
+ async function remoteCall(endpoint, body) {
82
+ if (!remoteUrl) throw new Error('MEMORY_GRAPH_REMOTE_URL not configured');
83
+ const url = `${remoteUrl.replace(/\/+$/, '')}${endpoint}`;
84
+ const controller = new AbortController();
85
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
86
+ try {
87
+ const res = await fetch(url, {
88
+ method: 'POST',
89
+ headers: {
90
+ 'Content-Type': 'application/json',
91
+ ...(remoteKey ? { Authorization: `Bearer ${remoteKey}` } : {}),
92
+ },
93
+ body: JSON.stringify(body),
94
+ signal: controller.signal,
95
+ });
96
+ if (!res.ok) {
97
+ throw new Error(`remote_kg_error: ${res.status}`);
98
+ }
99
+ return await res.json();
100
+ } finally {
101
+ clearTimeout(timer);
102
+ }
103
+ }
104
+
105
+ // Wrap remote call with local fallback -- ensures offline resilience.
106
+ function withFallback(localFn, remoteFn) {
107
+ return async function (...args) {
108
+ try {
109
+ return await remoteFn(...args);
110
+ } catch (e) {
111
+ // Fallback to local on any remote failure (network, timeout, config).
112
+ return localFn(...args);
113
+ }
114
+ };
115
+ }
116
+
117
+ return {
118
+ name: 'remote',
119
+
120
+ // getAdvice is the primary candidate for remote enhancement (richer graph reasoning).
121
+ getAdvice: withFallback(
122
+ (opts) => localGraph.getMemoryAdvice(opts),
123
+ async (opts) => {
124
+ const result = await remoteCall('/kg/advice', {
125
+ signals: opts.signals,
126
+ genes: (opts.genes || []).map((g) => ({ id: g.id, category: g.category, type: g.type })),
127
+ driftEnabled: opts.driftEnabled,
128
+ });
129
+ // Normalize remote response to match local contract.
130
+ return {
131
+ currentSignalKey: result.currentSignalKey || localGraph.computeSignalKey(opts.signals),
132
+ preferredGeneId: result.preferredGeneId || null,
133
+ bannedGeneIds: new Set(result.bannedGeneIds || []),
134
+ explanation: Array.isArray(result.explanation) ? result.explanation : [],
135
+ };
136
+ }
137
+ ),
138
+
139
+ // Write operations: always write locally first, then async-sync to remote.
140
+ // This preserves the append-only local graph as source of truth.
141
+ recordSignalSnapshot(opts) {
142
+ const ev = localGraph.recordSignalSnapshot(opts);
143
+ remoteCall('/kg/ingest', { kind: 'signal', event: ev }).catch(() => {});
144
+ return ev;
145
+ },
146
+
147
+ recordHypothesis(opts) {
148
+ const result = localGraph.recordHypothesis(opts);
149
+ remoteCall('/kg/ingest', { kind: 'hypothesis', event: result }).catch(() => {});
150
+ return result;
151
+ },
152
+
153
+ recordAttempt(opts) {
154
+ const result = localGraph.recordAttempt(opts);
155
+ remoteCall('/kg/ingest', { kind: 'attempt', event: result }).catch(() => {});
156
+ return result;
157
+ },
158
+
159
+ recordOutcome(opts) {
160
+ const ev = localGraph.recordOutcomeFromState(opts);
161
+ if (ev) {
162
+ remoteCall('/kg/ingest', { kind: 'outcome', event: ev }).catch(() => {});
163
+ }
164
+ return ev;
165
+ },
166
+
167
+ recordExternalCandidate(opts) {
168
+ const ev = localGraph.recordExternalCandidate(opts);
169
+ if (ev) {
170
+ remoteCall('/kg/ingest', { kind: 'external_candidate', event: ev }).catch(() => {});
171
+ }
172
+ return ev;
173
+ },
174
+
175
+ memoryGraphPath() {
176
+ return localGraph.memoryGraphPath();
177
+ },
178
+
179
+ computeSignalKey(signals) {
180
+ return localGraph.computeSignalKey(signals);
181
+ },
182
+
183
+ tryReadMemoryGraphEvents(limit) {
184
+ return localGraph.tryReadMemoryGraphEvents(limit);
185
+ },
186
+ };
187
+ }
188
+
189
+ // ---------------------------------------------------------------------------
190
+ // Provider resolution
191
+ // ---------------------------------------------------------------------------
192
+
193
+ function resolveAdapter() {
194
+ const provider = (process.env.MEMORY_GRAPH_PROVIDER || 'local').toLowerCase().trim();
195
+ if (provider === 'remote') {
196
+ return buildRemoteAdapter();
197
+ }
198
+ return localAdapter;
199
+ }
200
+
201
+ const adapter = resolveAdapter();
202
+
203
+ module.exports = adapter;