@evomap/evolver 1.88.4 → 1.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) 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 +1123 -0
  9. package/README.md +86 -553
  10. package/README.public.md +594 -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/index.js +30 -1
  16. package/package.json +6 -17
  17. package/proxy-package.json +39 -0
  18. package/public.manifest.json +141 -0
  19. package/src/evolve/guards.js +721 -1
  20. package/src/evolve/pipeline/collect.js +1283 -1
  21. package/src/evolve/pipeline/dispatch.js +421 -1
  22. package/src/evolve/pipeline/enrich.js +434 -1
  23. package/src/evolve/pipeline/hub.js +319 -1
  24. package/src/evolve/pipeline/select.js +274 -1
  25. package/src/evolve/pipeline/signals.js +206 -1
  26. package/src/evolve/utils.js +264 -1
  27. package/src/evolve.js +350 -1
  28. package/src/gep/a2aProtocol.js +4395 -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/conversationSniffer.js +266 -1
  35. package/src/gep/crypto.js +89 -1
  36. package/src/gep/curriculum.js +163 -1
  37. package/src/gep/deviceId.js +218 -1
  38. package/src/gep/envFingerprint.js +118 -1
  39. package/src/gep/epigenetics.js +31 -1
  40. package/src/gep/execBridge.js +711 -1
  41. package/src/gep/explore.js +289 -1
  42. package/src/gep/hash.js +15 -1
  43. package/src/gep/hubFetch.js +359 -1
  44. package/src/gep/hubReview.js +207 -1
  45. package/src/gep/hubSearch.js +526 -1
  46. package/src/gep/hubVerify.js +306 -1
  47. package/src/gep/learningSignals.js +89 -1
  48. package/src/gep/memoryGraph.js +1374 -1
  49. package/src/gep/memoryGraphAdapter.js +203 -1
  50. package/src/gep/mutation.js +203 -1
  51. package/src/gep/narrativeMemory.js +108 -1
  52. package/src/gep/oauthLogin.js +143 -0
  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/recallInject.js +409 -1
  58. package/src/gep/recallVerifier.js +318 -1
  59. package/src/gep/reflection.js +177 -1
  60. package/src/gep/selector.js +602 -1
  61. package/src/gep/skillDistiller.js +1294 -1
  62. package/src/gep/solidify.js +1699 -1
  63. package/src/gep/strategy.js +136 -1
  64. package/src/gep/tokenSavings.js +88 -1
  65. package/src/gep/workspaceKeychain.js +174 -1
  66. package/src/proxy/extensions/traceControl.js +99 -1
  67. package/src/proxy/inject.js +52 -1
  68. package/src/proxy/trace/extractor.js +534 -1
  69. package/src/proxy/trace/usage.js +105 -1
  70. package/CONTRIBUTING.md +0 -19
  71. package/assets/cover.png +0 -0
  72. package/scripts/a2a_export.js +0 -63
  73. package/scripts/a2a_ingest.js +0 -79
  74. package/scripts/a2a_promote.js +0 -118
  75. package/scripts/analyze_by_skill.js +0 -121
  76. package/scripts/build_binaries.js +0 -479
  77. package/scripts/check-changelog.js +0 -166
  78. package/scripts/extract_log.js +0 -85
  79. package/scripts/generate_history.js +0 -75
  80. package/scripts/gep_append_event.js +0 -96
  81. package/scripts/gep_personality_report.js +0 -234
  82. package/scripts/human_report.js +0 -147
  83. package/scripts/recall-verify-report.js +0 -234
  84. package/scripts/recover_loop.js +0 -61
  85. package/scripts/seed-merchants.js +0 -91
  86. package/scripts/suggest_version.js +0 -89
  87. package/scripts/validate-modules.js +0 -38
  88. package/scripts/validate-suite.js +0 -78
  89. package/skills/index.json +0 -14
  90. /package/assets/gep/{genes.seed.json → genes.json} +0 -0
  91. /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
@@ -1 +1,136 @@
1
- var _0x2b6fa1=_0x2d11;(function(_0x325310,_0x560c92){var _0x5dbbd8=_0x2d11,_0x25e723=_0x325310();while(!![]){try{var _0x3876c1=-parseInt(_0x5dbbd8(0x217,'\x49\x23\x74\x49'))/(-0xd*0xa3+-0xe*-0x164+-0x1*0xb30)+-parseInt(_0x5dbbd8(0x21d,'\x74\x28\x5e\x35'))/(-0x67*-0xd+-0x1b05+0x15cc)*(-parseInt(_0x5dbbd8(0x1ac,'\x26\x39\x28\x59'))/(0x2235+0xc15+-0x167*0x21))+-parseInt(_0x5dbbd8(0x1db,'\x50\x30\x37\x56'))/(0x297*0x7+-0x2293+0x1076)+parseInt(_0x5dbbd8(0x1c4,'\x4b\x72\x50\x77'))/(-0xa3*0x1b+-0x1*0x15fd+0x2733)*(parseInt(_0x5dbbd8(0x192,'\x6f\x76\x4a\x4e'))/(0x19ee+-0x1*0x2677+0xc8f))+-parseInt(_0x5dbbd8(0x1ba,'\x34\x35\x54\x29'))/(-0x3*0x9ff+0x542*0x3+0xe3e)*(parseInt(_0x5dbbd8(0x14f,'\x6f\x76\x4a\x4e'))/(0xd*-0x162+-0x551+0x1753))+-parseInt(_0x5dbbd8(0x19e,'\x49\x23\x74\x49'))/(-0x15b8+0x12b+0x1496)+-parseInt(_0x5dbbd8(0x1c3,'\x32\x75\x74\x5e'))/(0xf25*-0x1+-0x1897+0x27c6)*(-parseInt(_0x5dbbd8(0x12a,'\x6d\x47\x30\x24'))/(-0x1f2e+0xcd0+0x1269));if(_0x3876c1===_0x560c92)break;else _0x25e723['push'](_0x25e723['shift']());}catch(_0x3b1b62){_0x25e723['push'](_0x25e723['shift']());}}}(_0x119c,-0x2bbf6+0x2*-0x14675+0x1*0x9b707));var _0x5d2d98=(function(){var _0x37bb3d=_0x2d11,_0x2f9759={};_0x2f9759[_0x37bb3d(0x212,'\x65\x50\x36\x41')]='\x65\x76\x6f\x6c\x75\x74\x69\x6f'+'\x6e\x5f\x73\x74\x61\x74\x65\x2e'+_0x37bb3d(0x209,'\x4b\x72\x50\x77'),_0x2f9759[_0x37bb3d(0x232,'\x64\x6b\x68\x56')]=_0x37bb3d(0x125,'\x66\x4d\x33\x6f')+'\x6e',_0x2f9759[_0x37bb3d(0x242,'\x33\x71\x4e\x6d')]=function(_0x338105,_0xb1bf76){return _0x338105<_0xb1bf76;},_0x2f9759[_0x37bb3d(0x176,'\x61\x24\x37\x76')]=_0x37bb3d(0x1a0,'\x37\x41\x79\x33'),_0x2f9759[_0x37bb3d(0x23d,'\x64\x6b\x68\x56')]=function(_0x54e0f5,_0x2a385f){return _0x54e0f5!==_0x2a385f;},_0x2f9759['\x41\x4d\x6f\x66\x78']=_0x37bb3d(0x155,'\x49\x23\x74\x49'),_0x2f9759[_0x37bb3d(0x23f,'\x39\x47\x70\x66')]=_0x37bb3d(0x18f,'\x4e\x54\x31\x54');var _0x164766=_0x2f9759,_0xbe9e2f=!![];return function(_0x3c9fcf,_0x36c083){var _0xb0cbca=_0x37bb3d,_0x256b6e={'\x41\x53\x73\x54\x74':_0xb0cbca(0x19c,'\x67\x43\x4d\x32'),'\x46\x4b\x48\x79\x78':_0x164766[_0xb0cbca(0x1ea,'\x35\x49\x4b\x6d')],'\x65\x70\x48\x4b\x69':_0x164766[_0xb0cbca(0x1fb,'\x30\x49\x58\x46')],'\x79\x68\x68\x78\x4a':function(_0x6a7534,_0x5b6169){var _0x2dec87=_0xb0cbca;return _0x164766[_0x2dec87(0x1bd,'\x67\x43\x4d\x32')](_0x6a7534,_0x5b6169);},'\x7a\x50\x77\x79\x4c':_0xb0cbca(0x163,'\x28\x73\x77\x64'),'\x52\x4d\x55\x79\x4f':_0xb0cbca(0x224,'\x69\x56\x74\x71'),'\x47\x79\x4e\x66\x54':_0x164766[_0xb0cbca(0x233,'\x39\x47\x70\x66')],'\x6c\x4a\x51\x55\x65':function(_0x55b9f3,_0x575600){var _0x4fd47e=_0xb0cbca;return _0x164766[_0x4fd47e(0x1f0,'\x28\x68\x7a\x63')](_0x55b9f3,_0x575600);},'\x4f\x4c\x47\x66\x59':_0x164766[_0xb0cbca(0x129,'\x33\x71\x4e\x6d')],'\x4c\x79\x49\x78\x49':_0x164766[_0xb0cbca(0x16a,'\x74\x4a\x61\x79')]},_0x3929b8=_0xbe9e2f?function(){var _0x2479c3=_0xb0cbca,_0x367876={};_0x367876[_0x2479c3(0x207,'\x32\x74\x31\x2a')]=_0x2479c3(0x18d,'\x34\x35\x54\x29')+'\x61\x62\x69\x6c\x69\x7a\x65';var _0x52a187=_0x367876;if(_0x256b6e['\x52\x4d\x55\x79\x4f']===_0x256b6e[_0x2479c3(0x20e,'\x32\x48\x6e\x78')]){var _0x497f88=_0xae020[_0x2479c3(0x1ed,'\x52\x37\x47\x77')](_0x580ee1,'\x2e\x2e','\x2e\x2e',_0x256b6e[_0x2479c3(0x1d8,'\x51\x5e\x31\x47')],_0x256b6e[_0x2479c3(0x179,'\x74\x28\x5e\x35')]),_0x35845f=_0x418faf[_0x2479c3(0x159,'\x6f\x4c\x6d\x41')](_0x369aee,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0x256b6e[_0x2479c3(0x13a,'\x78\x4e\x6a\x5d')],_0x256b6e[_0x2479c3(0x174,'\x62\x25\x67\x4f')],_0x2479c3(0x1e9,'\x64\x6b\x68\x56')+_0x2479c3(0x1fa,'\x28\x68\x7a\x63')+_0x2479c3(0x247,'\x61\x24\x37\x76')),_0x10d8c9=[_0x497f88,_0x35845f];for(var _0x1deb12=0x1429+0x2608+-0x3a31;_0x256b6e[_0x2479c3(0x244,'\x69\x56\x74\x71')](_0x1deb12,_0x10d8c9[_0x2479c3(0x18c,'\x67\x43\x4d\x32')]);_0x1deb12++){if(_0x361d20[_0x2479c3(0x149,'\x61\x24\x37\x76')+'\x6e\x63'](_0x10d8c9[_0x1deb12])){var _0x3af9de=_0x3c3d67['\x70\x61\x72\x73\x65'](_0x295447[_0x2479c3(0x16f,'\x74\x28\x5e\x35')+'\x53\x79\x6e\x63'](_0x10d8c9[_0x1deb12],_0x256b6e[_0x2479c3(0x134,'\x37\x41\x79\x33')]));return _0x3af9de&&_0x345a8b['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x3af9de[_0x2479c3(0x138,'\x77\x76\x69\x74')+'\x6e\x74'])?_0x3af9de[_0x2479c3(0x16e,'\x50\x30\x37\x56')+'\x6e\x74']:-0x656+0xd*-0x18d+0x1a7f;}}}else{if(_0x36c083){if(_0x256b6e[_0x2479c3(0x230,'\x65\x50\x36\x41')](_0x256b6e[_0x2479c3(0x12e,'\x36\x28\x4c\x45')],_0x256b6e['\x4c\x79\x49\x78\x49'])){var _0xd165=_0x36c083[_0x2479c3(0x1b9,'\x6f\x4c\x6d\x41')](_0x3c9fcf,arguments);return _0x36c083=null,_0xd165;}else _0x5b2ddf=_0x52a187['\x68\x78\x69\x53\x53'];}}}:function(){};return _0xbe9e2f=![],_0x3929b8;};}()),_0x49a524=_0x5d2d98(this,function(){var _0xc1f962=_0x2d11,_0x1c9f4b={};_0x1c9f4b[_0xc1f962(0x1cb,'\x39\x47\x70\x66')]=_0xc1f962(0x1f6,'\x6a\x56\x71\x51')+_0xc1f962(0x1d5,'\x7a\x5d\x49\x4d');var _0x35091c=_0x1c9f4b;return _0x49a524[_0xc1f962(0x201,'\x32\x74\x31\x2a')]()[_0xc1f962(0x1d3,'\x49\x23\x74\x49')](_0x35091c[_0xc1f962(0x13f,'\x52\x37\x47\x77')])[_0xc1f962(0x1d4,'\x37\x41\x79\x33')]()[_0xc1f962(0x1e0,'\x31\x41\x31\x48')+_0xc1f962(0x1d0,'\x26\x77\x76\x64')](_0x49a524)[_0xc1f962(0x1a8,'\x28\x68\x7a\x63')](_0xc1f962(0x173,'\x39\x37\x58\x4b')+_0xc1f962(0x193,'\x5e\x4f\x72\x31'));});_0x49a524();var _0xad706b=require('\x66\x73'),_0x35243a=require(_0x2b6fa1(0x128,'\x39\x37\x58\x4b')),_0x5769ca={};_0x5769ca[_0x2b6fa1(0x12d,'\x5a\x66\x47\x2a')]=0.2,_0x5769ca[_0x2b6fa1(0x15b,'\x36\x28\x4c\x45')]=0.2,_0x5769ca[_0x2b6fa1(0x1aa,'\x32\x74\x31\x2a')]=0.5,_0x5769ca[_0x2b6fa1(0x22c,'\x73\x4b\x6c\x42')]=0.1,_0x5769ca[_0x2b6fa1(0x22d,'\x52\x37\x47\x77')+_0x2b6fa1(0x19f,'\x5a\x66\x47\x2a')+_0x2b6fa1(0x1e8,'\x33\x71\x4e\x6d')]=0.5,_0x5769ca[_0x2b6fa1(0x229,'\x5a\x66\x47\x2a')]=_0x2b6fa1(0x21c,'\x33\x6f\x69\x28'),_0x5769ca[_0x2b6fa1(0x1c0,'\x39\x37\x58\x4b')+_0x2b6fa1(0x211,'\x31\x41\x31\x48')]='\x4e\x6f\x72\x6d\x61\x6c\x20\x6f'+_0x2b6fa1(0x182,'\x72\x77\x6c\x6e')+'\x2e\x20\x53\x74\x65\x61\x64\x79'+_0x2b6fa1(0x189,'\x66\x4d\x33\x6f')+_0x2b6fa1(0x21b,'\x69\x38\x61\x41')+_0x2b6fa1(0x20b,'\x64\x6b\x68\x56');var _0x46285d={};_0x46285d[_0x2b6fa1(0x126,'\x44\x4b\x28\x55')]=0.05,_0x46285d['\x6f\x70\x74\x69\x6d\x69\x7a\x65']=0.1,_0x46285d[_0x2b6fa1(0x1b7,'\x50\x30\x37\x56')]=0.8,_0x46285d[_0x2b6fa1(0x213,'\x69\x38\x61\x41')]=0.05,_0x46285d[_0x2b6fa1(0x205,'\x32\x74\x31\x2a')+_0x2b6fa1(0x18a,'\x74\x28\x5e\x35')+_0x2b6fa1(0x202,'\x28\x68\x7a\x63')]=0.3,_0x46285d[_0x2b6fa1(0x1f7,'\x26\x39\x28\x59')]=_0x2b6fa1(0x1a6,'\x4b\x72\x50\x77')+_0x2b6fa1(0x166,'\x6f\x76\x4a\x4e'),_0x46285d[_0x2b6fa1(0x1af,'\x26\x77\x76\x64')+_0x2b6fa1(0x1b5,'\x6d\x47\x30\x24')]=_0x2b6fa1(0x146,'\x32\x40\x38\x4f')+_0x2b6fa1(0x24b,'\x26\x39\x28\x59')+_0x2b6fa1(0x161,'\x64\x6b\x68\x56')+_0x2b6fa1(0x124,'\x31\x41\x31\x48')+_0x2b6fa1(0x1e3,'\x78\x4e\x6a\x5d')+_0x2b6fa1(0x21a,'\x51\x5e\x31\x47')+_0x2b6fa1(0x1a5,'\x32\x74\x31\x2a')+'\x2e';var _0x1b12e2={};_0x1b12e2[_0x2b6fa1(0x1bf,'\x50\x30\x37\x56')]=0.4,_0x1b12e2[_0x2b6fa1(0x158,'\x46\x67\x33\x52')]=0.35,_0x1b12e2[_0x2b6fa1(0x169,'\x35\x49\x4b\x6d')]=0.2,_0x1b12e2[_0x2b6fa1(0x213,'\x69\x38\x61\x41')]=0.05,_0x1b12e2[_0x2b6fa1(0x151,'\x62\x25\x67\x4f')+_0x2b6fa1(0x22f,'\x33\x71\x4e\x6d')+_0x2b6fa1(0x1fc,'\x32\x48\x6e\x78')]=0.7,_0x1b12e2[_0x2b6fa1(0x12f,'\x35\x49\x4b\x6d')]='\x48\x61\x72\x64\x65\x6e\x69\x6e'+'\x67',_0x1b12e2[_0x2b6fa1(0x144,'\x34\x35\x54\x29')+_0x2b6fa1(0x23c,'\x6a\x56\x71\x51')]=_0x2b6fa1(0x18b,'\x35\x49\x4b\x6d')+_0x2b6fa1(0x208,'\x5e\x4f\x72\x31')+'\x67\x65\x2e\x20\x46\x6f\x63\x75'+'\x73\x20\x6f\x6e\x20\x73\x74\x61'+_0x2b6fa1(0x127,'\x46\x67\x33\x52')+_0x2b6fa1(0x226,'\x6f\x4c\x6d\x41')+'\x74\x6e\x65\x73\x73\x2e';var _0x327314={};_0x327314[_0x2b6fa1(0x154,'\x67\x43\x4d\x32')]=0.8,_0x327314[_0x2b6fa1(0x210,'\x33\x71\x4e\x6d')]=0.18,_0x327314[_0x2b6fa1(0x227,'\x37\x41\x79\x33')]=0x0,_0x327314[_0x2b6fa1(0x215,'\x49\x23\x74\x49')]=0.02,_0x327314[_0x2b6fa1(0x1f2,'\x33\x6f\x69\x28')+_0x2b6fa1(0x172,'\x73\x4b\x6c\x42')+_0x2b6fa1(0x1e8,'\x33\x71\x4e\x6d')]=0x1,_0x327314[_0x2b6fa1(0x157,'\x6f\x4c\x6d\x41')]=_0x2b6fa1(0x168,'\x28\x73\x77\x64')+_0x2b6fa1(0x165,'\x4e\x54\x31\x54'),_0x327314[_0x2b6fa1(0x152,'\x4e\x54\x31\x54')+_0x2b6fa1(0x177,'\x77\x76\x69\x74')]='\x45\x6d\x65\x72\x67\x65\x6e\x63'+_0x2b6fa1(0x180,'\x26\x39\x28\x59')+_0x2b6fa1(0x1ca,'\x74\x28\x5e\x35')+_0x2b6fa1(0x1e4,'\x4b\x72\x50\x77')+_0x2b6fa1(0x160,'\x74\x28\x5e\x35')+_0x2b6fa1(0x14e,'\x57\x25\x4c\x64')+_0x2b6fa1(0x200,'\x4b\x72\x50\x77');var _0x526940={};_0x526940['\x72\x65\x70\x61\x69\x72']=0.6,_0x526940[_0x2b6fa1(0x1d6,'\x39\x37\x58\x4b')]=0.22,_0x526940[_0x2b6fa1(0x1a4,'\x69\x38\x61\x41')]=0.15,_0x526940[_0x2b6fa1(0x215,'\x49\x23\x74\x49')]=0.03,_0x526940[_0x2b6fa1(0x1b2,'\x34\x35\x54\x29')+_0x2b6fa1(0x164,'\x74\x4a\x61\x79')+_0x2b6fa1(0x1df,'\x51\x5e\x31\x47')]=0.8,_0x526940[_0x2b6fa1(0x234,'\x36\x28\x4c\x45')]=_0x2b6fa1(0x206,'\x5a\x66\x47\x2a')+_0x2b6fa1(0x1ee,'\x35\x49\x4b\x6d')+'\x69\x6f\x6e',_0x526940['\x64\x65\x73\x63\x72\x69\x70\x74'+_0x2b6fa1(0x14c,'\x32\x75\x74\x5e')]='\x46\x69\x72\x73\x74\x20\x63\x79'+_0x2b6fa1(0x20c,'\x78\x4e\x6a\x5d')+_0x2b6fa1(0x14a,'\x74\x4a\x61\x79')+_0x2b6fa1(0x190,'\x78\x4e\x6a\x5d')+_0x2b6fa1(0x1c9,'\x67\x43\x4d\x32')+_0x2b6fa1(0x15f,'\x62\x25\x67\x4f')+_0x2b6fa1(0x194,'\x32\x74\x31\x2a')+'\x6e\x6e\x6f\x76\x61\x74\x69\x6e'+'\x67\x2e';function _0x119c(){var _0x4c162f=['\x78\x43\x6b\x33\x6a\x78\x30','\x67\x6d\x6f\x2f\x7a\x74\x74\x63\x4e\x6d\x6f\x35\x57\x37\x34\x30','\x43\x75\x79\x4d\x46\x38\x6b\x54','\x57\x34\x70\x63\x4d\x43\x6f\x66\x6b\x38\x6f\x58\x6f\x74\x4f\x41','\x71\x77\x7a\x53\x57\x4f\x6d\x69','\x57\x36\x68\x64\x53\x38\x6f\x4f\x78\x47','\x57\x35\x79\x43\x42\x30\x6a\x4e\x7a\x43\x6b\x55\x57\x52\x38','\x6f\x53\x6b\x54\x57\x4f\x38\x4e\x68\x64\x71\x39\x57\x4f\x79','\x6a\x43\x6f\x37\x72\x58\x5a\x63\x55\x57','\x62\x53\x6b\x35\x57\x37\x65','\x57\x51\x53\x43\x57\x36\x4a\x63\x53\x38\x6f\x35\x57\x52\x54\x6d\x67\x71','\x57\x34\x42\x64\x50\x43\x6f\x6b\x75\x48\x33\x64\x4c\x38\x6b\x4d\x7a\x57','\x62\x61\x42\x63\x4d\x57\x2f\x64\x56\x47','\x72\x76\x47\x66\x44\x43\x6f\x41','\x43\x62\x57\x56\x57\x50\x52\x64\x4d\x43\x6f\x4c\x64\x6d\x6b\x56','\x6f\x38\x6b\x45\x57\x50\x47','\x57\x36\x6c\x64\x50\x38\x6f\x48\x7a\x59\x4b','\x63\x71\x37\x63\x4f\x49\x33\x64\x4f\x74\x79\x39\x57\x34\x75','\x44\x48\x79\x6d\x57\x4f\x2f\x64\x47\x53\x6f\x2b\x6c\x53\x6b\x4e','\x65\x4a\x4e\x64\x47\x30\x78\x64\x49\x78\x4e\x64\x4f\x63\x43','\x42\x61\x53\x76\x57\x52\x33\x64\x55\x61','\x63\x73\x75\x4b\x57\x51\x37\x64\x48\x30\x74\x64\x53\x4d\x4b','\x73\x4b\x43\x7a\x46\x47','\x72\x43\x6b\x33\x6d\x33\x33\x63\x55\x47','\x69\x6d\x6f\x34\x57\x4f\x74\x64\x49\x38\x6b\x54\x63\x67\x57','\x68\x5a\x4c\x72\x69\x47\x39\x58\x69\x48\x75','\x76\x43\x6f\x4f\x67\x38\x6b\x49\x57\x51\x34','\x6c\x53\x6b\x53\x57\x35\x56\x64\x53\x63\x4f','\x78\x74\x47\x34\x57\x52\x42\x64\x48\x71','\x57\x37\x5a\x64\x49\x77\x74\x63\x54\x32\x4b\x50\x57\x50\x5a\x64\x4a\x61','\x6a\x48\x33\x63\x52\x61','\x65\x68\x50\x4e\x57\x35\x33\x64\x49\x57','\x57\x4f\x5a\x64\x47\x67\x47\x31\x7a\x38\x6b\x35\x57\x4f\x4f','\x67\x73\x31\x44\x69\x4c\x75\x49\x69\x72\x34','\x62\x74\x68\x64\x4b\x57\x2f\x63\x4b\x53\x6b\x4c\x61\x61','\x57\x37\x5a\x64\x4b\x65\x78\x63\x4e\x78\x75','\x76\x78\x56\x63\x4b\x4c\x6c\x64\x49\x43\x6f\x55\x65\x4b\x78\x64\x55\x43\x6b\x7a\x73\x6d\x6b\x6f','\x65\x74\x62\x7a\x70\x4c\x6d\x4f','\x57\x4f\x4c\x56\x78\x33\x4e\x64\x4f\x53\x6f\x76\x69\x30\x38','\x63\x47\x68\x63\x51\x4d\x5a\x64\x52\x64\x71\x4f\x57\x34\x61','\x57\x50\x37\x64\x4b\x77\x57\x58\x6b\x6d\x6b\x34\x57\x50\x53\x34','\x57\x34\x34\x6d\x67\x43\x6b\x43\x57\x50\x6c\x64\x51\x75\x4c\x32','\x57\x4f\x56\x63\x55\x38\x6b\x30\x63\x74\x33\x64\x4d\x53\x6b\x5a\x72\x59\x4f\x58','\x69\x43\x6f\x39\x67\x4a\x47','\x71\x33\x57\x44\x57\x34\x6d\x6d\x57\x52\x53\x74\x57\x37\x6d','\x57\x34\x56\x63\x49\x6d\x6f\x34\x57\x51\x53','\x69\x53\x6f\x4b\x57\x37\x2f\x64\x52\x71','\x57\x52\x52\x63\x4f\x43\x6b\x6c\x57\x34\x68\x64\x56\x71','\x42\x4e\x30\x56\x45\x53\x6b\x6d','\x69\x6d\x6f\x4f\x78\x53\x6b\x62\x57\x50\x47','\x42\x53\x6f\x2b\x68\x43\x6b\x39','\x45\x43\x6f\x48\x70\x43\x6f\x53\x57\x51\x43\x63\x57\x36\x57\x59','\x71\x6d\x6b\x34\x70\x33\x46\x63\x4f\x6d\x6b\x6b\x6b\x38\x6f\x41','\x62\x57\x42\x63\x4c\x49\x37\x64\x56\x71','\x6f\x5a\x4e\x64\x4b\x30\x5a\x64\x4e\x61','\x70\x72\x46\x63\x4f\x58\x70\x63\x4c\x30\x6a\x6b\x41\x47','\x70\x6d\x6f\x47\x79\x43\x6b\x72\x57\x51\x53','\x69\x72\x66\x6d\x57\x51\x42\x64\x51\x38\x6f\x64\x57\x37\x75','\x6a\x38\x6f\x35\x68\x4a\x5a\x64\x48\x53\x6b\x41\x73\x71\x47','\x71\x4d\x35\x42\x57\x51\x75\x76','\x57\x37\x5a\x64\x49\x75\x74\x63\x54\x4e\x79\x4c\x57\x50\x78\x64\x47\x71','\x6f\x76\x35\x4e\x57\x37\x64\x64\x47\x71','\x79\x38\x6f\x51\x74\x53\x6f\x51\x57\x52\x4f\x6a\x57\x37\x43\x4d','\x67\x38\x6f\x57\x57\x52\x4e\x64\x51\x43\x6b\x6d','\x57\x36\x43\x4a\x79\x32\x66\x58','\x72\x4c\x4a\x64\x52\x4a\x4b\x48','\x57\x37\x46\x64\x4d\x6d\x6b\x47\x6e\x31\x4f','\x62\x6d\x6f\x70\x46\x6d\x6b\x35\x57\x52\x69\x2f\x65\x47','\x72\x68\x72\x69\x57\x4f\x38\x6b\x42\x38\x6b\x4f\x57\x50\x79','\x74\x33\x65\x69','\x76\x75\x71\x61\x57\x50\x47\x75','\x57\x4f\x31\x47\x44\x61\x53','\x46\x4d\x50\x4c\x57\x50\x61\x59','\x57\x4f\x6c\x64\x4e\x53\x6b\x64','\x61\x38\x6f\x4a\x57\x4f\x56\x64\x53\x53\x6b\x69','\x70\x6d\x6b\x74\x57\x4f\x34\x33\x67\x63\x34','\x57\x35\x69\x6c\x75\x31\x76\x36','\x6a\x43\x6b\x57\x6b\x43\x6b\x52\x57\x37\x62\x72\x57\x51\x53\x4b\x57\x37\x42\x64\x48\x38\x6f\x64\x57\x34\x58\x34','\x6f\x43\x6b\x73\x57\x35\x46\x64\x54\x73\x4f','\x57\x35\x46\x64\x4c\x76\x56\x63\x4e\x68\x6d','\x62\x74\x64\x63\x56\x74\x4a\x64\x52\x49\x65\x39\x57\x4f\x38','\x64\x38\x6f\x63\x7a\x38\x6b\x55\x57\x50\x71','\x57\x51\x68\x63\x4e\x6d\x6b\x66\x57\x36\x78\x64\x4b\x49\x62\x6d\x64\x57','\x6e\x67\x72\x78\x57\x34\x46\x64\x4a\x43\x6f\x66\x57\x50\x50\x33','\x57\x50\x69\x32\x73\x53\x6b\x79','\x57\x4f\x4a\x64\x4a\x4b\x46\x63\x4a\x43\x6f\x45','\x6d\x43\x6b\x69\x57\x36\x4a\x64\x54\x32\x57','\x57\x51\x53\x46\x7a\x38\x6f\x41\x57\x35\x4b','\x78\x49\x44\x39\x57\x50\x69\x66\x7a\x6d\x6b\x57\x57\x50\x79','\x41\x53\x6f\x39\x62\x53\x6b\x2b\x57\x52\x52\x63\x4f\x53\x6f\x30\x57\x37\x61','\x57\x37\x6c\x64\x4f\x5a\x33\x63\x4b\x47\x31\x36\x7a\x71\x69','\x57\x34\x4c\x30\x66\x6d\x6f\x62\x62\x58\x33\x63\x4a\x59\x53\x30\x57\x4f\x48\x36\x57\x34\x43','\x6d\x53\x6f\x6c\x57\x35\x4e\x64\x4f\x4d\x68\x63\x4e\x73\x6c\x64\x55\x57','\x57\x52\x38\x61\x78\x53\x6f\x46\x57\x34\x65','\x57\x34\x79\x77\x79\x65\x6e\x57\x46\x57','\x6e\x72\x46\x64\x4f\x48\x4e\x63\x54\x66\x57\x67\x41\x71','\x6f\x43\x6b\x44\x57\x34\x78\x64\x52\x32\x64\x63\x4e\x64\x4e\x64\x54\x71','\x57\x51\x56\x64\x47\x76\x33\x63\x48\x43\x6f\x71\x6d\x61','\x57\x50\x64\x63\x55\x53\x6f\x37\x57\x51\x5a\x64\x4c\x75\x5a\x63\x4a\x75\x65','\x57\x35\x68\x64\x4c\x48\x56\x63\x55\x57','\x57\x35\x6c\x64\x54\x68\x2f\x63\x55\x68\x57','\x57\x50\x42\x63\x52\x38\x6f\x72\x7a\x4a\x43\x63\x57\x36\x52\x63\x4a\x72\x44\x6f\x62\x47','\x57\x34\x74\x64\x4a\x58\x2f\x63\x56\x63\x54\x6c\x75\x71','\x73\x4e\x4b\x7a\x57\x4f\x38\x6d\x57\x52\x54\x2b\x57\x52\x4f','\x6a\x74\x33\x64\x47\x75\x4a\x64\x4d\x73\x53','\x7a\x78\x78\x64\x49\x5a\x4f\x75','\x57\x52\x6a\x63\x57\x37\x6c\x63\x4b\x43\x6b\x63','\x57\x36\x64\x64\x55\x61\x52\x63\x4e\x5a\x43','\x7a\x4c\x56\x63\x51\x53\x6b\x49\x6e\x71','\x57\x52\x65\x49\x43\x53\x6b\x41\x77\x61','\x6e\x43\x6b\x49\x57\x4f\x4f\x63\x64\x47','\x75\x38\x6b\x67\x6a\x4d\x68\x63\x4d\x47','\x72\x74\x57\x7a\x57\x51\x6c\x64\x48\x71','\x57\x37\x4b\x7a\x65\x38\x6f\x66','\x57\x37\x64\x64\x4b\x63\x6c\x63\x4d\x59\x61','\x57\x37\x72\x7a\x57\x50\x70\x63\x50\x38\x6b\x4d\x57\x37\x78\x64\x55\x53\x6f\x4f','\x57\x50\x4b\x32\x71\x61','\x70\x71\x7a\x68\x62\x76\x75','\x68\x4a\x61\x2b\x57\x35\x79\x78\x43\x53\x6b\x73\x57\x51\x50\x78\x57\x34\x6d','\x57\x34\x65\x73\x44\x76\x71','\x45\x31\x70\x64\x50\x4a\x75\x51','\x66\x64\x56\x64\x4c\x47\x79','\x6f\x38\x6f\x45\x6f\x64\x42\x64\x4a\x47','\x57\x36\x70\x64\x4d\x67\x6c\x63\x52\x77\x65','\x64\x38\x6f\x39\x79\x49\x33\x63\x51\x71','\x71\x75\x43\x74','\x64\x53\x6f\x67\x57\x52\x71\x33\x44\x43\x6f\x66\x72\x53\x6f\x6b','\x57\x51\x4f\x45\x57\x36\x6c\x63\x4e\x53\x6f\x51\x57\x52\x39\x7a\x68\x47','\x45\x73\x5a\x64\x4e\x43\x6b\x57\x45\x61','\x57\x36\x5a\x63\x4b\x6d\x6f\x2f\x57\x52\x4f\x70\x41\x72\x58\x31','\x57\x50\x53\x38\x72\x53\x6b\x41\x76\x4d\x52\x63\x55\x72\x69','\x74\x30\x69\x63\x57\x34\x6d\x77\x57\x51\x30\x65\x57\x37\x79','\x57\x50\x30\x39\x74\x6d\x6b\x66\x72\x31\x52\x63\x48\x72\x34','\x57\x51\x74\x64\x53\x6d\x6f\x2b\x76\x6d\x6f\x56\x57\x36\x61\x61\x46\x71','\x6c\x4a\x4f\x53\x57\x36\x6c\x64\x4b\x76\x4a\x64\x55\x4d\x47','\x73\x68\x69\x46','\x78\x43\x6b\x4b\x6f\x68\x75','\x71\x78\x47\x65\x57\x50\x71\x72\x57\x51\x7a\x6b\x57\x36\x6d','\x67\x47\x4a\x63\x54\x38\x6b\x66\x69\x53\x6f\x71\x69\x72\x4b','\x57\x4f\x72\x33\x57\x34\x46\x63\x53\x53\x6b\x50','\x57\x51\x46\x63\x4c\x53\x6b\x35\x57\x36\x56\x64\x4a\x64\x44\x59\x69\x57','\x65\x48\x5a\x64\x4c\x43\x6f\x62\x6e\x6d\x6b\x54\x57\x50\x5a\x63\x56\x57','\x57\x51\x53\x72\x71\x53\x6f\x51\x57\x36\x76\x59\x6d\x68\x47','\x57\x51\x53\x72\x71\x53\x6f\x51\x57\x36\x76\x59','\x65\x62\x5a\x64\x53\x61\x56\x63\x54\x57','\x57\x4f\x50\x51\x46\x58\x31\x31\x43\x43\x6f\x67\x57\x35\x65','\x45\x38\x6f\x4b\x46\x38\x6f\x37\x57\x51\x71','\x57\x50\x33\x63\x4f\x38\x6f\x4a\x57\x51\x5a\x64\x4a\x66\x5a\x64\x4c\x30\x75','\x7a\x43\x6f\x47\x42\x53\x6f\x58\x57\x51\x71\x77\x57\x37\x57','\x57\x37\x6c\x63\x49\x53\x6f\x63\x57\x52\x79\x53','\x72\x75\x4e\x64\x55\x64\x75\x47\x6d\x77\x4c\x74','\x57\x52\x52\x64\x4e\x75\x37\x63\x49\x6d\x6f\x43\x61\x43\x6f\x42\x76\x71','\x6f\x49\x53\x6f\x57\x34\x42\x64\x4e\x71','\x61\x48\x68\x63\x50\x68\x6a\x4d\x43\x74\x47\x46','\x57\x37\x78\x63\x4d\x53\x6b\x36\x57\x37\x4e\x64\x4b\x63\x62\x6e\x42\x61','\x57\x50\x6c\x64\x52\x53\x6f\x50\x76\x61\x74\x64\x4c\x43\x6f\x30\x72\x71','\x42\x6d\x6b\x58\x57\x51\x78\x64\x47\x38\x6b\x48\x67\x63\x2f\x63\x4d\x71','\x57\x4f\x48\x4b\x79\x62\x30','\x57\x50\x6e\x58\x41\x30\x61','\x57\x51\x6c\x64\x52\x38\x6f\x79\x76\x43\x6f\x50\x57\x36\x57\x6a\x43\x61','\x67\x62\x78\x64\x4e\x57','\x71\x66\x64\x64\x47\x43\x6b\x76\x70\x6d\x6f\x39\x62\x71\x71','\x57\x52\x79\x65\x7a\x53\x6f\x4a\x57\x37\x35\x4c\x42\x4e\x38','\x57\x52\x72\x47\x46\x72\x4b\x38\x7a\x43\x6b\x6a\x57\x36\x57','\x57\x52\x44\x6e\x57\x37\x37\x63\x4d\x38\x6b\x79\x57\x52\x4c\x7a\x62\x57','\x57\x51\x52\x64\x50\x38\x6f\x45\x77\x43\x6f\x59','\x6d\x71\x71\x4f\x57\x37\x37\x64\x56\x71','\x41\x68\x7a\x66\x57\x51\x75\x6c','\x71\x43\x6b\x78\x70\x75\x4e\x63\x4c\x71','\x68\x38\x6f\x41\x57\x52\x79\x2f\x76\x53\x6f\x56\x72\x43\x6f\x41','\x57\x34\x64\x64\x52\x38\x6f\x4e\x77\x73\x5a\x64\x4d\x38\x6b\x34\x71\x71','\x77\x76\x64\x64\x51\x5a\x69\x53\x6e\x67\x61','\x57\x50\x65\x51\x73\x57','\x6b\x58\x4c\x4f\x57\x51\x6c\x64\x54\x53\x6f\x75\x57\x36\x6e\x50','\x57\x4f\x4e\x63\x4e\x30\x46\x64\x56\x78\x69\x77\x63\x77\x69','\x57\x52\x64\x63\x47\x38\x6b\x62\x57\x34\x68\x64\x4a\x61','\x57\x34\x42\x64\x52\x6d\x6b\x68','\x57\x51\x4f\x76\x72\x38\x6b\x4d\x75\x71','\x57\x37\x35\x70\x57\x50\x34','\x6b\x48\x68\x63\x54\x48\x37\x63\x56\x4b\x76\x76\x69\x71','\x57\x37\x74\x64\x47\x43\x6f\x6f\x72\x62\x69','\x67\x5a\x62\x61\x61\x4c\x75\x4a\x65\x58\x6d','\x71\x30\x52\x64\x49\x4a\x75\x4a\x6d\x77\x44\x74','\x6d\x72\x31\x41\x57\x37\x69','\x6d\x43\x6f\x4c\x57\x4f\x33\x64\x47\x38\x6b\x39\x63\x67\x2f\x63\x47\x57','\x57\x51\x31\x67\x57\x37\x68\x63\x48\x53\x6b\x6e\x57\x52\x61','\x57\x36\x30\x50\x42\x32\x6e\x72','\x76\x63\x4b\x55\x57\x51\x61\x6e\x46\x53\x6f\x38\x57\x50\x79','\x79\x48\x57\x6f\x57\x4f\x33\x64\x4a\x53\x6f\x74\x65\x43\x6b\x38','\x57\x35\x4c\x4b\x73\x67\x2f\x63\x54\x53\x6f\x79\x6a\x76\x6d','\x6e\x43\x6b\x79\x57\x36\x56\x64\x53\x77\x46\x63\x49\x73\x4b','\x57\x51\x50\x67\x57\x37\x74\x64\x4d\x53\x6f\x6f\x57\x50\x76\x6d\x63\x57','\x57\x35\x74\x64\x51\x38\x6b\x68\x6e\x77\x4f\x41\x57\x4f\x33\x63\x4d\x61','\x57\x35\x38\x7a\x65\x6d\x6b\x43\x57\x50\x4a\x64\x53\x57\x58\x62','\x76\x64\x71\x2b\x57\x4f\x33\x64\x56\x57','\x6d\x38\x6f\x5a\x57\x36\x74\x64\x50\x6d\x6b\x2b\x77\x77\x72\x5a','\x46\x6d\x6b\x6d\x57\x35\x4a\x64\x52\x67\x6c\x63\x4e\x64\x4a\x63\x55\x47','\x57\x35\x33\x64\x55\x53\x6f\x73\x76\x72\x4a\x64\x4c\x38\x6b\x4e\x74\x61','\x57\x50\x39\x66\x57\x36\x74\x63\x4b\x43\x6b\x43\x57\x37\x48\x6d\x71\x47','\x57\x52\x75\x72\x78\x6d\x6f\x53\x57\x37\x48\x4f','\x57\x51\x53\x41\x57\x36\x70\x63\x4b\x43\x6f\x48\x57\x37\x54\x41\x68\x47','\x43\x30\x4b\x34\x57\x35\x69\x54','\x69\x62\x68\x64\x52\x6d\x6f\x74\x65\x71','\x78\x64\x6e\x44\x6b\x75\x47\x2f\x66\x75\x43','\x57\x34\x42\x64\x50\x6d\x6b\x4c\x57\x37\x6c\x63\x4b\x66\x33\x64\x52\x4b\x46\x63\x4e\x49\x70\x64\x53\x71','\x68\x71\x56\x64\x4c\x43\x6f\x4d\x41\x38\x6b\x56\x71\x48\x6c\x63\x48\x38\x6f\x77\x6c\x4d\x37\x64\x55\x61','\x71\x67\x76\x4f\x57\x51\x4f','\x7a\x48\x79\x41\x57\x4f\x68\x64\x4d\x43\x6f\x50\x71\x53\x6b\x48','\x67\x63\x58\x64\x57\x50\x79\x31\x57\x52\x61\x72\x57\x37\x74\x63\x52\x43\x6f\x65','\x6f\x58\x68\x64\x4d\x30\x33\x64\x55\x57','\x42\x72\x79\x70\x57\x34\x64\x63\x49\x38\x6f\x6a\x67\x53\x6b\x34','\x57\x52\x57\x76\x71\x6d\x6f\x4e\x57\x37\x75\x54\x42\x4d\x6d','\x77\x78\x48\x36\x57\x35\x4e\x64\x54\x4c\x56\x64\x4f\x76\x72\x5a','\x57\x4f\x5a\x64\x4a\x4e\x43\x31\x46\x43\x6b\x2f\x57\x4f\x79\x32','\x7a\x76\x37\x64\x47\x63\x71\x6a','\x57\x52\x71\x72\x78\x38\x6f\x4b\x57\x37\x35\x35','\x57\x34\x72\x7a\x57\x50\x37\x63\x51\x61','\x75\x78\x4a\x63\x4b\x4c\x74\x64\x49\x43\x6f\x4a\x70\x67\x52\x64\x54\x6d\x6b\x49\x73\x38\x6b\x6b','\x6f\x63\x4a\x64\x50\x75\x68\x64\x47\x4a\x5a\x64\x47\x64\x53','\x41\x53\x6b\x68\x6f\x75\x5a\x63\x56\x47','\x68\x43\x6f\x6b\x79\x61\x42\x63\x4e\x71','\x75\x4c\x65\x66\x46\x38\x6b\x79\x57\x37\x50\x32','\x57\x52\x46\x64\x4b\x65\x5a\x63\x4a\x43\x6f\x78\x79\x53\x6f\x72\x77\x61','\x57\x4f\x64\x64\x4c\x4e\x79\x32\x46\x53\x6b\x51\x57\x50\x53\x38','\x7a\x48\x4f\x71\x57\x4f\x46\x64\x4e\x38\x6f\x4c\x62\x38\x6b\x37','\x41\x76\x4f\x79\x46\x38\x6b\x63\x57\x36\x31\x4e\x71\x57','\x6a\x64\x68\x64\x4c\x4b\x46\x64\x4b\x74\x78\x64\x47\x61','\x6a\x38\x6b\x78\x57\x50\x30\x48\x68\x49\x47','\x67\x57\x4e\x63\x56\x32\x35\x30\x6f\x76\x4c\x71\x57\x50\x4f\x55\x57\x37\x43','\x42\x72\x30\x73\x57\x4f\x68\x64\x4e\x43\x6f\x54\x66\x53\x6b\x54','\x70\x43\x6f\x53\x70\x59\x5a\x64\x51\x71','\x68\x5a\x6d\x33\x57\x52\x65\x32\x43\x43\x6b\x55\x57\x51\x62\x30','\x57\x50\x4b\x4e\x74\x6d\x6b\x41\x77\x4c\x70\x63\x53\x57','\x73\x68\x39\x2b\x57\x4f\x4f\x6c\x44\x6d\x6b\x35','\x41\x38\x6f\x55\x67\x53\x6b\x58\x57\x52\x33\x63\x56\x38\x6f\x54\x57\x36\x53','\x62\x6d\x6f\x70\x46\x6d\x6b\x35\x57\x52\x69\x2f\x65\x4d\x4b','\x79\x38\x6f\x51\x42\x57','\x57\x52\x57\x45\x57\x36\x68\x63\x4e\x6d\x6f\x58\x57\x51\x72\x4c\x62\x71','\x77\x6d\x6f\x57\x72\x38\x6f\x33\x57\x50\x61','\x74\x4e\x35\x54\x57\x4f\x4f\x62\x72\x43\x6b\x5a\x57\x4f\x79','\x57\x34\x37\x64\x53\x6d\x6b\x6d','\x77\x66\x5a\x64\x52\x74\x47\x6c\x6d\x78\x39\x74','\x66\x43\x6f\x6e\x57\x52\x53\x38\x72\x43\x6f\x6e\x78\x53\x6f\x6b','\x68\x43\x6f\x34\x46\x5a\x56\x63\x48\x38\x6f\x51\x57\x36\x53','\x44\x53\x6f\x31\x42\x43\x6f\x59\x57\x52\x65','\x57\x37\x50\x6d\x57\x51\x70\x64\x49\x53\x6b\x50\x57\x52\x35\x51\x64\x43\x6b\x76\x6b\x4e\x43','\x57\x37\x52\x64\x4c\x33\x37\x63\x53\x78\x69\x48\x57\x50\x6c\x64\x4a\x61','\x72\x32\x4b\x44\x57\x37\x79\x56','\x57\x50\x30\x79\x45\x43\x6f\x6a\x57\x37\x53','\x57\x52\x2f\x63\x47\x6d\x6b\x4d\x57\x36\x71','\x64\x53\x6f\x67\x57\x51\x75\x59\x77\x53\x6f\x45','\x57\x34\x78\x64\x4b\x48\x5a\x63\x53\x63\x54\x77\x75\x4a\x38','\x57\x35\x57\x44\x42\x31\x35\x4c\x44\x53\x6b\x56\x57\x52\x4b','\x61\x49\x69\x54\x57\x36\x68\x64\x4b\x4b\x33\x64\x50\x32\x69','\x65\x49\x50\x62\x57\x50\x69\x72\x57\x51\x57\x34\x57\x34\x37\x63\x56\x38\x6f\x73','\x66\x76\x4f\x38\x43\x53\x6b\x4a\x57\x36\x31\x52','\x62\x62\x5a\x64\x4c\x53\x6f\x64\x6c\x38\x6b\x32\x57\x51\x64\x63\x50\x61','\x6c\x59\x58\x41\x6d\x47','\x57\x35\x37\x63\x48\x38\x6b\x37\x75\x38\x6b\x52\x78\x4b\x62\x44','\x61\x47\x68\x63\x51\x49\x4e\x64\x54\x58\x4f\x2b','\x57\x52\x57\x6d\x77\x38\x6f\x34\x57\x37\x48\x50\x43\x33\x61','\x57\x34\x74\x64\x52\x38\x6f\x30\x72\x62\x37\x64\x4d\x53\x6b\x39\x73\x47','\x57\x35\x53\x58\x76\x31\x50\x59','\x57\x35\x70\x64\x56\x38\x6f\x59\x75\x47','\x72\x68\x72\x36\x57\x4f\x38\x6b\x79\x43\x6f\x38\x57\x50\x61','\x57\x4f\x6c\x63\x53\x53\x6f\x4c\x57\x52\x42\x64\x48\x61','\x57\x34\x79\x68\x7a\x66\x62\x33\x42\x53\x6f\x32\x57\x51\x38','\x45\x38\x6f\x4b\x67\x57','\x57\x35\x37\x64\x52\x38\x6f\x4f\x77\x48\x37\x64\x4d\x47','\x57\x50\x33\x64\x4c\x31\x71\x32\x46\x38\x6b\x55\x57\x50\x30\x41','\x65\x59\x5a\x64\x47\x48\x68\x63\x4e\x53\x6b\x2f','\x78\x43\x6b\x35\x61\x4d\x5a\x63\x50\x6d\x6b\x63\x6d\x43\x6f\x79','\x46\x43\x6b\x53\x57\x51\x64\x63\x52\x61','\x57\x34\x37\x64\x48\x58\x56\x63\x55\x4a\x72\x77\x77\x63\x34','\x57\x35\x56\x64\x55\x43\x6f\x61\x76\x61\x74\x64\x4d\x38\x6b\x47\x71\x71','\x6b\x4a\x5a\x63\x56\x72\x4a\x64\x55\x57','\x57\x4f\x4a\x64\x54\x53\x6f\x54\x73\x6d\x6f\x41','\x62\x64\x57\x33\x57\x36\x46\x64\x49\x75\x78\x64\x51\x77\x69','\x74\x43\x6b\x73\x57\x36\x72\x4c\x62\x6d\x6b\x76\x68\x6d\x6f\x31\x6b\x76\x6e\x4d\x61\x38\x6b\x64','\x73\x66\x4a\x64\x4f\x64\x30\x4a\x6f\x33\x7a\x73','\x63\x31\x64\x63\x56\x38\x6f\x56\x70\x64\x68\x63\x51\x38\x6f\x77\x57\x37\x78\x64\x47\x78\x78\x63\x4d\x61','\x6a\x48\x5a\x63\x50\x48\x6c\x63\x51\x77\x72\x61','\x62\x61\x70\x63\x51\x47','\x6c\x62\x33\x63\x52\x61\x74\x63\x50\x76\x4c\x74\x42\x61','\x57\x50\x5a\x64\x54\x43\x6f\x4d\x76\x6d\x6f\x38','\x64\x31\x58\x44\x57\x35\x78\x64\x56\x71','\x67\x74\x72\x61\x6a\x66\x6d\x30\x61\x75\x43','\x72\x58\x71\x75\x44\x43\x6b\x73\x57\x36\x6e\x48\x74\x57','\x6c\x61\x56\x63\x4f\x72\x56\x63\x54\x67\x48\x6a\x45\x47','\x71\x30\x30\x76\x46\x6d\x6b\x72\x57\x34\x39\x38\x78\x57','\x57\x4f\x52\x64\x4b\x38\x6b\x61\x76\x6d\x6b\x7a','\x57\x37\x5a\x64\x4c\x78\x71','\x6a\x38\x6f\x4e\x57\x4f\x46\x64\x4a\x53\x6b\x53\x62\x73\x56\x63\x4e\x57','\x57\x50\x54\x6e\x57\x34\x68\x63\x4a\x6d\x6b\x62','\x57\x51\x5a\x63\x48\x53\x6b\x6d\x57\x37\x6c\x64\x48\x61','\x57\x51\x33\x64\x49\x33\x37\x63\x4b\x6d\x6f\x6c\x6b\x38\x6f\x41\x72\x57','\x6a\x38\x6f\x35\x68\x74\x6c\x64\x47\x38\x6b\x45\x79\x61','\x57\x52\x39\x62\x57\x37\x4e\x63\x4d\x6d\x6b\x68\x57\x51\x6a\x6d\x66\x47','\x7a\x72\x65\x72\x57\x52\x2f\x64\x51\x61','\x66\x43\x6b\x61\x57\x50\x38\x64\x6c\x61','\x57\x50\x30\x35\x57\x37\x46\x63\x55\x53\x6f\x45','\x57\x37\x34\x69\x62\x43\x6b\x43\x57\x50\x78\x64\x55\x67\x62\x39'];_0x119c=function(){return _0x4c162f;};return _0x119c();}var _0x21b6a2={};_0x21b6a2['\x72\x65\x70\x61\x69\x72']=0.55,_0x21b6a2[_0x2b6fa1(0x1da,'\x5e\x4f\x72\x31')]=0.25,_0x21b6a2[_0x2b6fa1(0x1c2,'\x5e\x4f\x72\x31')]=0.05,_0x21b6a2[_0x2b6fa1(0x1ae,'\x26\x39\x28\x59')]=0.15,_0x21b6a2[_0x2b6fa1(0x1c5,'\x4e\x54\x31\x54')+_0x2b6fa1(0x167,'\x67\x43\x4d\x32')+'\x6f\x6c\x64']=0.9,_0x21b6a2[_0x2b6fa1(0x20a,'\x37\x41\x79\x33')]=_0x2b6fa1(0x186,'\x33\x6f\x69\x28')+_0x2b6fa1(0x13c,'\x39\x47\x70\x66'),_0x21b6a2[_0x2b6fa1(0x1f4,'\x30\x49\x58\x46')+_0x2b6fa1(0x171,'\x61\x24\x37\x76')]=_0x2b6fa1(0x14b,'\x5e\x4f\x72\x31')+_0x2b6fa1(0x24f,'\x66\x4d\x33\x6f')+_0x2b6fa1(0x184,'\x35\x49\x4b\x6d')+_0x2b6fa1(0x1a3,'\x44\x4b\x28\x55')+_0x2b6fa1(0x1cd,'\x26\x39\x28\x59')+_0x2b6fa1(0x246,'\x65\x50\x36\x41')+_0x2b6fa1(0x197,'\x32\x74\x31\x2a')+_0x2b6fa1(0x156,'\x28\x73\x77\x64')+_0x2b6fa1(0x219,'\x72\x77\x6c\x6e')+_0x2b6fa1(0x178,'\x31\x41\x31\x48');var _0x3aa042={};_0x3aa042[_0x2b6fa1(0x204,'\x51\x5e\x31\x47')]=_0x5769ca,_0x3aa042[_0x2b6fa1(0x1bb,'\x33\x71\x4e\x6d')]=_0x46285d,_0x3aa042[_0x2b6fa1(0x23e,'\x28\x68\x7a\x63')]=_0x1b12e2,_0x3aa042[_0x2b6fa1(0x153,'\x67\x43\x4d\x32')+_0x2b6fa1(0x238,'\x32\x75\x74\x5e')]=_0x327314,_0x3aa042[_0x2b6fa1(0x198,'\x67\x43\x4d\x32')+_0x2b6fa1(0x1ad,'\x61\x24\x37\x76')]=_0x526940,_0x3aa042[_0x2b6fa1(0x17d,'\x64\x6b\x68\x56')+_0x2b6fa1(0x221,'\x7a\x5d\x49\x4d')]=_0x21b6a2;var _0x2c6950=_0x3aa042;function _0x25f955(){var _0x4f1434=_0x2b6fa1,_0x1d6bac={};_0x1d6bac[_0x4f1434(0x248,'\x44\x4b\x28\x55')]=_0x4f1434(0x136,'\x33\x6f\x69\x28'),_0x1d6bac[_0x4f1434(0x216,'\x33\x71\x4e\x6d')]=_0x4f1434(0x218,'\x78\x4e\x6a\x5d'),_0x1d6bac[_0x4f1434(0x187,'\x32\x74\x31\x2a')]=_0x4f1434(0x24c,'\x26\x77\x76\x64')+_0x4f1434(0x243,'\x51\x5e\x31\x47')+_0x4f1434(0x1be,'\x62\x25\x67\x4f'),_0x1d6bac[_0x4f1434(0x250,'\x67\x43\x4d\x32')]=_0x4f1434(0x19a,'\x69\x38\x61\x41')+'\x6e',_0x1d6bac[_0x4f1434(0x1a1,'\x30\x49\x58\x46')]=function(_0x435681,_0x422e47){return _0x435681<_0x422e47;},_0x1d6bac[_0x4f1434(0x130,'\x39\x37\x58\x4b')]=_0x4f1434(0x15d,'\x5e\x4f\x72\x31');var _0xdcc805=_0x1d6bac;try{var _0x4b966d=_0x35243a[_0x4f1434(0x236,'\x69\x56\x74\x71')](__dirname,'\x2e\x2e','\x2e\x2e',_0xdcc805[_0x4f1434(0x22e,'\x26\x39\x28\x59')],_0xdcc805[_0x4f1434(0x235,'\x6d\x47\x30\x24')]),_0x22d402=_0x35243a[_0x4f1434(0x1a2,'\x4b\x72\x50\x77')](__dirname,'\x2e\x2e','\x2e\x2e','\x2e\x2e','\x2e\x2e',_0xdcc805[_0x4f1434(0x1ff,'\x51\x5e\x31\x47')],_0xdcc805[_0x4f1434(0x1bc,'\x32\x75\x74\x5e')],_0xdcc805[_0x4f1434(0x241,'\x32\x48\x6e\x78')]),_0x2d8181=[_0x4b966d,_0x22d402];for(var _0x16f59f=-0x1530+-0x118c+0x26bc;_0xdcc805[_0x4f1434(0x133,'\x28\x68\x7a\x63')](_0x16f59f,_0x2d8181[_0x4f1434(0x1d1,'\x74\x28\x5e\x35')]);_0x16f59f++){if(_0xad706b[_0x4f1434(0x12c,'\x57\x25\x4c\x64')+'\x6e\x63'](_0x2d8181[_0x16f59f])){if(_0xdcc805[_0x4f1434(0x135,'\x32\x74\x31\x2a')]===_0x4f1434(0x137,'\x39\x37\x58\x4b')){var _0x224166=JSON['\x70\x61\x72\x73\x65'](_0xad706b[_0x4f1434(0x22a,'\x31\x41\x31\x48')+_0x4f1434(0x1f8,'\x74\x28\x5e\x35')](_0x2d8181[_0x16f59f],_0xdcc805[_0x4f1434(0x1e1,'\x74\x4a\x61\x79')]));return _0x224166&&Number[_0x4f1434(0x17b,'\x36\x28\x4c\x45')](_0x224166[_0x4f1434(0x147,'\x61\x24\x37\x76')+'\x6e\x74'])?_0x224166[_0x4f1434(0x15c,'\x44\x4b\x28\x55')+'\x6e\x74']:-0x2*-0x851+-0x13d*0x1f+0x15c1;}else{if(_0x3722a1[_0x4f1434(0x214,'\x78\x4e\x6a\x5d')+'\x6e\x63'](_0x18bdfb[_0x165a93])){var _0x5da75a=_0x451819[_0x4f1434(0x1ce,'\x46\x67\x33\x52')](_0x1e11ed[_0x4f1434(0x143,'\x50\x30\x37\x56')+_0x4f1434(0x1c6,'\x78\x4e\x6a\x5d')](_0x2a1ff6[_0x1aeebe],_0xdcc805[_0x4f1434(0x13d,'\x36\x28\x4c\x45')]));return _0x5da75a&&_0x43644d[_0x4f1434(0x237,'\x26\x39\x28\x59')](_0x5da75a[_0x4f1434(0x1b4,'\x26\x39\x28\x59')+'\x6e\x74'])?_0x5da75a[_0x4f1434(0x1e6,'\x4b\x72\x50\x77')+'\x6e\x74']:-0x127f*-0x1+0xf99+-0x2218;}}}}}catch(_0x2822a9){}return-0x4*0x172+-0x46a*0x4+0xc*0x1f4;}function _0x2d11(_0x1ca6f7,_0x427d4e){_0x1ca6f7=_0x1ca6f7-(0x1ce1+0x1d4d+-0x35b*0x11);var _0x23ac78=_0x119c();var _0x17727f=_0x23ac78[_0x1ca6f7];if(_0x2d11['\x44\x4d\x44\x49\x42\x70']===undefined){var _0x13b4a6=function(_0x3e417a){var _0x434079='\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';var _0xfb09c1='',_0x532777='',_0xb5bed1=_0xfb09c1+_0x13b4a6,_0x2dbd7b=(''+function(){return-0x226+-0x1669+-0x1*-0x188f;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1*-0x13a3+-0x1585+0x1e3);for(var _0xdbc31e=-0x137*0x1+0x1948+-0x65*0x3d,_0x2d046f,_0xd55536,_0xe6c29d=0x5*-0x7b4+-0x2113*-0x1+0x571;_0xd55536=_0x3e417a['\x63\x68\x61\x72\x41\x74'](_0xe6c29d++);~_0xd55536&&(_0x2d046f=_0xdbc31e%(-0x7*0x305+0x2*0x2a2+0xfe3)?_0x2d046f*(0x3d3+-0x3fb*-0x4+-0x137f)+_0xd55536:_0xd55536,_0xdbc31e++%(-0xec*0x21+-0x30c+0x10be*0x2))?_0xfb09c1+=_0x2dbd7b||_0xb5bed1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xe6c29d+(-0x880+0x61a+0x270))-(0x1*-0xcc1+-0x1f*0xad+0x21be)!==0x1*-0x1101+0x1025+0xdc?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x270*-0xb+-0xf6*-0x10+-0x2931&_0x2d046f>>(-(-0x6cd*-0x4+0x7fa+-0x232c)*_0xdbc31e&-0x125b+0x22a6+0x5*-0x341)):_0xdbc31e:-0x2aa*0x1+0x2180+-0x1ed6){_0xd55536=_0x434079['\x69\x6e\x64\x65\x78\x4f\x66'](_0xd55536);}for(var _0x2b14cf=-0x159b+0xe*-0x1d+0x1731,_0x40ce9f=_0xfb09c1['\x6c\x65\x6e\x67\x74\x68'];_0x2b14cf<_0x40ce9f;_0x2b14cf++){_0x532777+='\x25'+('\x30\x30'+_0xfb09c1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2b14cf)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x9b2*0x3+-0x18ed+-0x419))['\x73\x6c\x69\x63\x65'](-(0x1*-0x178d+0xc49*-0x1+0x23d8));}return decodeURIComponent(_0x532777);};var _0x1bad02=function(_0x5af96c,_0x4c4f79){var _0x3c6f84=[],_0x453741=0x197f+0x3d2+0x13*-0x18b,_0x43db46,_0x2ef5a3='';_0x5af96c=_0x13b4a6(_0x5af96c);var _0x4c1cc1;for(_0x4c1cc1=-0x1972*0x1+-0xf8e+0x2900;_0x4c1cc1<0x1e3e+0x378*0x8+-0x38fe;_0x4c1cc1++){_0x3c6f84[_0x4c1cc1]=_0x4c1cc1;}for(_0x4c1cc1=-0x115*-0xd+-0xedc+-0x1*-0xcb;_0x4c1cc1<0x20ab*0x1+0x2*0x148+-0x17d*0x17;_0x4c1cc1++){_0x453741=(_0x453741+_0x3c6f84[_0x4c1cc1]+_0x4c4f79['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4c1cc1%_0x4c4f79['\x6c\x65\x6e\x67\x74\x68']))%(0x9c7*0x3+-0x1c35+-0x8*0x4),_0x43db46=_0x3c6f84[_0x4c1cc1],_0x3c6f84[_0x4c1cc1]=_0x3c6f84[_0x453741],_0x3c6f84[_0x453741]=_0x43db46;}_0x4c1cc1=0x6ee*-0x4+0x1fe+0x25*0xb2,_0x453741=0x21*-0x13+0x1e48+-0x1bd5;for(var _0x2a20b1=0xd71+-0x3eb*0x4+-0x1*-0x23b;_0x2a20b1<_0x5af96c['\x6c\x65\x6e\x67\x74\x68'];_0x2a20b1++){_0x4c1cc1=(_0x4c1cc1+(0x498+0x25e9+-0x2a80))%(-0x2590+-0x2555+0x4be5),_0x453741=(_0x453741+_0x3c6f84[_0x4c1cc1])%(-0x1*-0xa57+0x14aa+0x1*-0x1e01),_0x43db46=_0x3c6f84[_0x4c1cc1],_0x3c6f84[_0x4c1cc1]=_0x3c6f84[_0x453741],_0x3c6f84[_0x453741]=_0x43db46,_0x2ef5a3+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5af96c['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2a20b1)^_0x3c6f84[(_0x3c6f84[_0x4c1cc1]+_0x3c6f84[_0x453741])%(-0xf41*0x2+0xa05+0x157d)]);}return _0x2ef5a3;};_0x2d11['\x70\x68\x49\x46\x5a\x48']=_0x1bad02,_0x2d11['\x56\x62\x6b\x57\x4f\x6b']={},_0x2d11['\x44\x4d\x44\x49\x42\x70']=!![];}var _0x546862=_0x23ac78[0x5*-0x90+-0x5c*-0x67+0x31c*-0xb],_0x211793=_0x1ca6f7+_0x546862,_0x88ea42=_0x2d11['\x56\x62\x6b\x57\x4f\x6b'][_0x211793];if(!_0x88ea42){if(_0x2d11['\x6c\x69\x58\x59\x50\x48']===undefined){var _0x2c27d9=function(_0x44a9c5){this['\x73\x63\x4f\x4e\x77\x6f']=_0x44a9c5,this['\x61\x75\x42\x4b\x6e\x6a']=[-0x2*-0x10f3+0x89f+-0x2a84,-0x15be+0xf6f+-0x55*-0x13,0x636+-0x1a23+-0x13ed*-0x1],this['\x59\x53\x76\x44\x59\x76']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x79\x51\x4f\x49\x4a\x79']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x42\x47\x4a\x45\x59\x68']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x2c27d9['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x74\x42\x43\x76\x43\x62']=function(){var _0x1b26c9=new RegExp(this['\x79\x51\x4f\x49\x4a\x79']+this['\x42\x47\x4a\x45\x59\x68']),_0x106893=_0x1b26c9['\x74\x65\x73\x74'](this['\x59\x53\x76\x44\x59\x76']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x61\x75\x42\x4b\x6e\x6a'][0x12a*0x9+-0x1bf1+-0x34*-0x56]:--this['\x61\x75\x42\x4b\x6e\x6a'][-0x2489*-0x1+0x16b5*0x1+-0x3b3e];return this['\x7a\x4c\x70\x61\x5a\x53'](_0x106893);},_0x2c27d9['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x7a\x4c\x70\x61\x5a\x53']=function(_0x3a25bb){if(!Boolean(~_0x3a25bb))return _0x3a25bb;return this['\x78\x6b\x55\x64\x66\x55'](this['\x73\x63\x4f\x4e\x77\x6f']);},_0x2c27d9['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x78\x6b\x55\x64\x66\x55']=function(_0x3290c9){for(var _0x3a8d1e=0x2e*0x35+0xa36*0x3+-0x2828,_0x3b4687=this['\x61\x75\x42\x4b\x6e\x6a']['\x6c\x65\x6e\x67\x74\x68'];_0x3a8d1e<_0x3b4687;_0x3a8d1e++){this['\x61\x75\x42\x4b\x6e\x6a']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x3b4687=this['\x61\x75\x42\x4b\x6e\x6a']['\x6c\x65\x6e\x67\x74\x68'];}return _0x3290c9(this['\x61\x75\x42\x4b\x6e\x6a'][-0x1*0x1804+0x24de+0x149*-0xa]);},(''+function(){return-0xb4f+-0xd*-0x23b+0x10*-0x11b;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0xb57+-0x251+-0x1*0x905)&&new _0x2c27d9(_0x2d11)['\x74\x42\x43\x76\x43\x62'](),_0x2d11['\x6c\x69\x58\x59\x50\x48']=!![];}_0x17727f=_0x2d11['\x70\x68\x49\x46\x5a\x48'](_0x17727f,_0x427d4e),_0x2d11['\x56\x62\x6b\x57\x4f\x6b'][_0x211793]=_0x17727f;}else _0x17727f=_0x88ea42;return _0x17727f;}function _0x1f951f(_0x32a0fe){var _0x29d989=_0x2b6fa1,_0x21ef3d={'\x5a\x48\x6b\x70\x59':_0x29d989(0x15e,'\x36\x28\x4c\x45')+'\x2b\x29\x2b\x24','\x50\x6d\x67\x5a\x43':function(_0xd901c9,_0x46bcbd){return _0xd901c9(_0x46bcbd);},'\x6f\x52\x42\x4b\x58':_0x29d989(0x13e,'\x49\x23\x74\x49'),'\x6c\x69\x58\x62\x72':'\x73\x74\x65\x61\x64\x79\x2d\x73'+_0x29d989(0x1f3,'\x37\x41\x79\x33'),'\x79\x75\x45\x78\x61':function(_0x211c36,_0x171c69){return _0x211c36(_0x171c69);},'\x61\x62\x6d\x51\x43':_0x29d989(0x1dc,'\x36\x28\x4c\x45'),'\x68\x41\x6c\x51\x43':_0x29d989(0x145,'\x64\x53\x58\x49'),'\x6c\x49\x6a\x64\x4b':_0x29d989(0x1f1,'\x34\x35\x54\x29'),'\x58\x5a\x6e\x52\x42':function(_0x213f7e,_0x152b63){return _0x213f7e(_0x152b63);},'\x4e\x49\x59\x6a\x78':function(_0x24950b,_0x9a738f){return _0x24950b===_0x9a738f;},'\x4d\x63\x4e\x78\x46':_0x29d989(0x1cc,'\x74\x28\x5e\x35'),'\x49\x67\x57\x6c\x6b':function(_0x1522f4,_0x49282c){return _0x1522f4&&_0x49282c;},'\x7a\x45\x70\x64\x6c':function(_0x2652a7){return _0x2652a7();},'\x53\x6d\x6b\x76\x56':function(_0x1576f5,_0x14eb61){return _0x1576f5>_0x14eb61;},'\x73\x67\x74\x7a\x47':_0x29d989(0x20f,'\x32\x74\x31\x2a'),'\x49\x65\x4b\x71\x66':_0x29d989(0x150,'\x35\x49\x4b\x6d'),'\x6d\x63\x42\x74\x79':_0x29d989(0x18d,'\x34\x35\x54\x29')+_0x29d989(0x1b8,'\x30\x49\x58\x46'),'\x45\x71\x4b\x43\x6f':function(_0x290ed0,_0x2a0910){return _0x290ed0!==_0x2a0910;},'\x72\x6b\x55\x51\x55':_0x29d989(0x181,'\x32\x74\x31\x2a')+'\x65\x61\x64\x79\x5f\x73\x74\x61'+'\x74\x65','\x4f\x75\x5a\x69\x58':'\x4b\x61\x66\x4b\x6c','\x68\x70\x51\x71\x46':_0x29d989(0x1d9,'\x74\x4a\x61\x79'),'\x57\x75\x78\x4c\x52':_0x29d989(0x188,'\x7a\x5d\x49\x4d')+_0x29d989(0x148,'\x32\x75\x74\x5e')+'\x74\x69\x6f\x6e','\x52\x54\x49\x70\x4f':function(_0x52ca82,_0x4658c){return _0x52ca82!==_0x4658c;},'\x4a\x4a\x6e\x47\x75':'\x51\x72\x50\x6f\x59'},_0x22cf72=_0x32a0fe&&Array[_0x29d989(0x183,'\x66\x4d\x33\x6f')](_0x32a0fe[_0x29d989(0x1a7,'\x5a\x66\x47\x2a')])?_0x32a0fe[_0x29d989(0x170,'\x36\x28\x4c\x45')]:[],_0x3a0123=_0x21ef3d[_0x29d989(0x1eb,'\x62\x25\x67\x4f')](String,process.env.EVOLVE_STRATEGY||_0x21ef3d['\x61\x62\x6d\x51\x43'])[_0x29d989(0x1fe,'\x74\x28\x5e\x35')+_0x29d989(0x139,'\x61\x24\x37\x76')]()[_0x29d989(0x14d,'\x37\x41\x79\x33')](),_0x4f4885=![];if(!process.env.EVOLVE_STRATEGY){if(_0x21ef3d[_0x29d989(0x16d,'\x37\x41\x79\x33')]!==_0x21ef3d[_0x29d989(0x196,'\x5a\x66\x47\x2a')]){var _0x5aa79f=_0x21ef3d[_0x29d989(0x17f,'\x39\x47\x70\x66')](String,process.env.FORCE_INNOVATION||process.env.EVOLVE_FORCE_INNOVATION||'')[_0x29d989(0x245,'\x62\x25\x67\x4f')+_0x29d989(0x175,'\x6d\x47\x30\x24')]();_0x5aa79f===_0x21ef3d[_0x29d989(0x222,'\x62\x25\x67\x4f')]&&(_0x29d989(0x19b,'\x36\x28\x4c\x45')!==_0x29d989(0x20d,'\x26\x77\x76\x64')?(_0x3a0123=_0x29d989(0x1c1,'\x39\x47\x70\x66'),_0x4f4885=!![]):_0x4ecee1=_0x29d989(0x1cf,'\x39\x47\x70\x66')+_0x29d989(0x220,'\x32\x40\x38\x4f'));}else return _0x282f9d[_0x29d989(0x231,'\x6f\x4c\x6d\x41')]()[_0x29d989(0x123,'\x39\x47\x70\x66')](UZDJow[_0x29d989(0x1e2,'\x65\x50\x36\x41')])[_0x29d989(0x1ec,'\x44\x4b\x28\x55')]()[_0x29d989(0x1f9,'\x39\x47\x70\x66')+_0x29d989(0x1b1,'\x6f\x4c\x6d\x41')](_0x1c4243)[_0x29d989(0x17e,'\x35\x49\x4b\x6d')](UZDJow[_0x29d989(0x16b,'\x5e\x4f\x72\x31')]);}var _0x29331d=!process.env.EVOLVE_STRATEGY||_0x3a0123===_0x21ef3d[_0x29d989(0x1e7,'\x6a\x56\x71\x51')]||_0x21ef3d[_0x29d989(0x223,'\x4b\x72\x50\x77')](_0x3a0123,_0x21ef3d[_0x29d989(0x15a,'\x32\x40\x38\x4f')]);if(_0x21ef3d[_0x29d989(0x132,'\x61\x24\x37\x76')](_0x29331d,!_0x4f4885)){var _0x702908=_0x21ef3d[_0x29d989(0x239,'\x57\x25\x4c\x64')](_0x25f955);if(_0x21ef3d[_0x29d989(0x23b,'\x26\x39\x28\x59')](_0x702908,0x11*0x199+0xfb*-0x4+-0x173d)&&_0x702908<=0x1b44+-0x131c+0x823*-0x1){if(_0x21ef3d[_0x29d989(0x141,'\x30\x49\x58\x46')]!==_0x21ef3d[_0x29d989(0x131,'\x6f\x76\x4a\x4e')])_0x3a0123=_0x21ef3d[_0x29d989(0x249,'\x66\x4d\x33\x6f')];else{var _0x428e74=_0x21ef3d[_0x29d989(0x203,'\x74\x28\x5e\x35')](_0x1948cd,_0x59fa7a.env.FORCE_INNOVATION||_0xfba2b9.env.EVOLVE_FORCE_INNOVATION||'')[_0x29d989(0x1d2,'\x69\x38\x61\x41')+_0x29d989(0x142,'\x4b\x72\x50\x77')]();_0x428e74===_0x21ef3d['\x6f\x52\x42\x4b\x58']&&(_0x3713c6=_0x29d989(0x227,'\x37\x41\x79\x33'),_0x2c7069=!![]);}}if(_0x21ef3d[_0x29d989(0x16c,'\x26\x39\x28\x59')](_0x22cf72[_0x29d989(0x1c8,'\x51\x5e\x31\x47')](_0x21ef3d[_0x29d989(0x24a,'\x67\x43\x4d\x32')]),-(-0x17ea*-0x1+0x140b+-0x2bf4))){if(_0x21ef3d[_0x29d989(0x16c,'\x26\x39\x28\x59')](_0x21ef3d[_0x29d989(0x1b3,'\x6f\x4c\x6d\x41')],_0x21ef3d[_0x29d989(0x1ab,'\x52\x37\x47\x77')]))_0x3a0123=_0x29d989(0x185,'\x6d\x47\x30\x24')+_0x29d989(0x21e,'\x52\x37\x47\x77');else{var _0x45ad2d=_0x54d766[_0x29d989(0x140,'\x33\x71\x4e\x6d')](_0x829bb5[_0x29d989(0x1b6,'\x36\x28\x4c\x45')+_0x29d989(0x19d,'\x77\x76\x69\x74')](_0x4e7b08[_0xe09fea],_0x29d989(0x17c,'\x73\x4b\x6c\x42')));return _0x45ad2d&&_0xa381bf[_0x29d989(0x1d7,'\x74\x28\x5e\x35')](_0x45ad2d['\x63\x79\x63\x6c\x65\x43\x6f\x75'+'\x6e\x74'])?_0x45ad2d[_0x29d989(0x1e5,'\x31\x41\x31\x48')+'\x6e\x74']:-0x3*0x26e+-0xd*0x121+0x15f7*0x1;}}else _0x22cf72[_0x29d989(0x1de,'\x31\x41\x31\x48')](_0x21ef3d['\x57\x75\x78\x4c\x52'])!==-(-0xc6*-0x3+-0xf5+-0x15c)&&(_0x21ef3d[_0x29d989(0x18e,'\x32\x75\x74\x5e')](_0x21ef3d[_0x29d989(0x22b,'\x69\x56\x74\x71')],_0x29d989(0x1f5,'\x4b\x72\x50\x77'))?_0x19b137=_0x21ef3d['\x6c\x69\x58\x62\x72']:_0x3a0123=_0x21ef3d[_0x29d989(0x228,'\x51\x5e\x31\x47')]);}if(_0x3a0123===_0x29d989(0x225,'\x26\x77\x76\x64'))_0x3a0123=_0x21ef3d[_0x29d989(0x1ef,'\x32\x74\x31\x2a')];var _0x390a70=_0x2c6950[_0x3a0123]||_0x2c6950[_0x29d989(0x21f,'\x32\x75\x74\x5e')],_0x78157d={};return _0x78157d[_0x29d989(0x162,'\x28\x73\x77\x64')]=_0x3a0123,Object['\x61\x73\x73\x69\x67\x6e']({},_0x390a70,_0x78157d);}function _0x588765(){var _0x3c487d=_0x2b6fa1;return Object[_0x3c487d(0x23a,'\x28\x73\x77\x64')](_0x2c6950);}var _0x31424a={};_0x31424a[_0x2b6fa1(0x1b0,'\x69\x56\x74\x71')+'\x74\x72\x61\x74\x65\x67\x79']=_0x1f951f,_0x31424a[_0x2b6fa1(0x17a,'\x78\x4e\x6a\x5d')+_0x2b6fa1(0x1fd,'\x34\x35\x54\x29')]=_0x588765,_0x31424a[_0x2b6fa1(0x24d,'\x39\x37\x58\x4b')+'\x45\x53']=_0x2c6950,module[_0x2b6fa1(0x12b,'\x39\x37\x58\x4b')]=_0x31424a;
1
+ // Evolution Strategy Presets (v1.1)
2
+ // Controls the balance between repair, optimize, and innovate intents.
3
+ //
4
+ // Usage: set EVOLVE_STRATEGY env var to one of: balanced, innovate, harden, repair-only,
5
+ // early-stabilize, steady-state, or "auto" for adaptive selection.
6
+ // Default: balanced (or auto-detected based on cycle count / saturation signals)
7
+ //
8
+ // Each strategy defines:
9
+ // repair/optimize/innovate - target allocation ratios (inform the LLM prompt)
10
+ // repairLoopThreshold - repair ratio in last 8 cycles that triggers forced innovation
11
+ // label - human-readable name injected into the GEP prompt
12
+
13
+ var fs = require('fs');
14
+ var path = require('path');
15
+
16
+ var STRATEGIES = {
17
+ 'balanced': {
18
+ repair: 0.20,
19
+ optimize: 0.20,
20
+ innovate: 0.50,
21
+ explore: 0.10,
22
+ repairLoopThreshold: 0.50,
23
+ label: 'Balanced',
24
+ description: 'Normal operation. Steady growth with stability.',
25
+ },
26
+ 'innovate': {
27
+ repair: 0.05,
28
+ optimize: 0.10,
29
+ innovate: 0.80,
30
+ explore: 0.05,
31
+ repairLoopThreshold: 0.30,
32
+ label: 'Innovation Focus',
33
+ description: 'System is stable. Maximize new features and capabilities.',
34
+ },
35
+ 'harden': {
36
+ repair: 0.40,
37
+ optimize: 0.35,
38
+ innovate: 0.20,
39
+ explore: 0.05,
40
+ repairLoopThreshold: 0.70,
41
+ label: 'Hardening',
42
+ description: 'After a big change. Focus on stability and robustness.',
43
+ },
44
+ 'repair-only': {
45
+ repair: 0.80,
46
+ optimize: 0.18,
47
+ innovate: 0.00,
48
+ explore: 0.02,
49
+ repairLoopThreshold: 1.00,
50
+ label: 'Repair Only',
51
+ description: 'Emergency. Fix everything before doing anything else.',
52
+ },
53
+ 'early-stabilize': {
54
+ repair: 0.60,
55
+ optimize: 0.22,
56
+ innovate: 0.15,
57
+ explore: 0.03,
58
+ repairLoopThreshold: 0.80,
59
+ label: 'Early Stabilization',
60
+ description: 'First cycles. Prioritize fixing existing issues before innovating.',
61
+ },
62
+ 'steady-state': {
63
+ repair: 0.55,
64
+ optimize: 0.25,
65
+ innovate: 0.05,
66
+ explore: 0.15,
67
+ repairLoopThreshold: 0.90,
68
+ label: 'Steady State',
69
+ description: 'Evolution saturated. Maintain existing capabilities. Explore for new directions.',
70
+ },
71
+ };
72
+
73
+ // Read evolution_state.json to get the current cycle count for auto-detection.
74
+ function _readCycleCount() {
75
+ try {
76
+ // evolver/memory/evolution_state.json (local to the skill)
77
+ var localPath = path.resolve(__dirname, '..', '..', 'memory', 'evolution_state.json');
78
+ // workspace/memory/evolution/evolution_state.json (canonical path used by evolve.js)
79
+ var workspacePath = path.resolve(__dirname, '..', '..', '..', '..', 'memory', 'evolution', 'evolution_state.json');
80
+ var candidates = [localPath, workspacePath];
81
+ for (var i = 0; i < candidates.length; i++) {
82
+ if (fs.existsSync(candidates[i])) {
83
+ var data = JSON.parse(fs.readFileSync(candidates[i], 'utf8'));
84
+ return data && Number.isFinite(data.cycleCount) ? data.cycleCount : 0;
85
+ }
86
+ }
87
+ } catch (e) {}
88
+ return 0;
89
+ }
90
+
91
+ function resolveStrategy(opts) {
92
+ var signals = (opts && Array.isArray(opts.signals)) ? opts.signals : [];
93
+ var name = String(process.env.EVOLVE_STRATEGY || 'balanced').toLowerCase().trim();
94
+
95
+ // Backward compatibility: FORCE_INNOVATION=true maps to 'innovate'
96
+ var forceInnovation = false;
97
+ if (!process.env.EVOLVE_STRATEGY) {
98
+ var fi = String(process.env.FORCE_INNOVATION || process.env.EVOLVE_FORCE_INNOVATION || '').toLowerCase();
99
+ if (fi === 'true') {
100
+ name = 'innovate';
101
+ forceInnovation = true;
102
+ }
103
+ }
104
+
105
+ // Auto-detection: when no explicit strategy is set (defaults to 'balanced'),
106
+ // apply heuristics inspired by Echo-MingXuan's "fix first, innovate later" pattern.
107
+ // Skip if user explicitly set FORCE_INNOVATION=true
108
+ var isDefault = !process.env.EVOLVE_STRATEGY || name === 'balanced' || name === 'auto';
109
+
110
+ if (isDefault && !forceInnovation) {
111
+ // Early-stabilize: first 5 cycles should focus on fixing existing issues.
112
+ var cycleCount = _readCycleCount();
113
+ if (cycleCount > 0 && cycleCount <= 5) {
114
+ name = 'early-stabilize';
115
+ }
116
+
117
+ // Saturation detection: if saturation signals are present, switch to steady-state.
118
+ if (signals.indexOf('force_steady_state') !== -1) {
119
+ name = 'steady-state';
120
+ } else if (signals.indexOf('evolution_saturation') !== -1) {
121
+ name = 'steady-state';
122
+ }
123
+ }
124
+
125
+ // Explicit "auto" maps to whatever was auto-detected above (or balanced if no heuristic fired).
126
+ if (name === 'auto') name = 'balanced';
127
+
128
+ var strategy = STRATEGIES[name] || STRATEGIES['balanced'];
129
+ return Object.assign({}, strategy, { name: name });
130
+ }
131
+
132
+ function getStrategyNames() {
133
+ return Object.keys(STRATEGIES);
134
+ }
135
+
136
+ module.exports = { resolveStrategy, getStrategyNames, STRATEGIES };
@@ -1 +1,88 @@
1
- const _0x5922ad=_0xc0da;(function(_0x40de0c,_0x5e41e9){const _0x2a8eee=_0xc0da,_0x1408e0=_0x40de0c();while(!![]){try{const _0x2eb668=parseInt(_0x2a8eee(0x1bc,'\x35\x71\x4c\x4f'))/(-0x6*-0x18a+0x1*-0x99f+0x5*0x14)*(-parseInt(_0x2a8eee(0x1c2,'\x50\x72\x43\x42'))/(-0x1455+-0x35*0xb1+0x38fc))+-parseInt(_0x2a8eee(0x1b9,'\x66\x70\x51\x46'))/(-0x2*-0x12d6+0xd*-0xe3+-0x1a22)*(-parseInt(_0x2a8eee(0x1eb,'\x4d\x5b\x38\x78'))/(0x144*0x7+-0x2de*-0x4+-0x41*0x50))+parseInt(_0x2a8eee(0x1bd,'\x78\x70\x38\x62'))/(0x35f+0x1e75*0x1+-0x21cf)+-parseInt(_0x2a8eee(0x1ea,'\x47\x4e\x42\x2a'))/(-0x119e+0x243*0xb+-0x6d*0x11)+parseInt(_0x2a8eee(0x1e8,'\x47\x4e\x42\x2a'))/(-0x1*0x1c61+0x3d*0xd+-0x194f*-0x1)*(-parseInt(_0x2a8eee(0x201,'\x6e\x40\x62\x4e'))/(0x188c*-0x1+-0x1f6*0x5+-0x9*-0x3d2))+parseInt(_0x2a8eee(0x1cb,'\x5b\x76\x4e\x74'))/(-0x1*-0x12a9+-0x1*0x1b2c+0x4*0x223)+parseInt(_0x2a8eee(0x1e9,'\x4d\x5b\x38\x78'))/(-0xb74*-0x1+-0x2548+0x1d9*0xe);if(_0x2eb668===_0x5e41e9)break;else _0x1408e0['push'](_0x1408e0['shift']());}catch(_0x391e7d){_0x1408e0['push'](_0x1408e0['shift']());}}}(_0x5bfd,0xeab53*-0x1+-0x1*-0x15835b+-0x1*-0x85324));const _0x58eb02=(function(){const _0x2770ca=_0xc0da,_0x5ec9a3={'\x6c\x43\x6b\x78\x47':function(_0x1966d3,_0x31d835){return _0x1966d3(_0x31d835);},'\x69\x50\x70\x77\x61':_0x2770ca(0x1aa,'\x58\x7a\x45\x39')+'\x65','\x62\x6c\x4e\x75\x69':function(_0x2acd5a,_0x48c3ff){return _0x2acd5a!==_0x48c3ff;},'\x53\x7a\x70\x62\x63':_0x2770ca(0x1e0,'\x25\x6a\x70\x5b'),'\x77\x53\x4d\x63\x70':function(_0x374e8b,_0xcb1b2c){return _0x374e8b>_0xcb1b2c;},'\x5a\x50\x42\x43\x77':_0x2770ca(0x1ba,'\x4d\x5b\x38\x78')};let _0x231148=!![];return function(_0x276c98,_0x4f9394){const _0x521004=_0x2770ca,_0x40aac8={'\x65\x70\x44\x75\x72':function(_0xbb2e90,_0x10ed6f){const _0x363d96=_0xc0da;return _0x5ec9a3[_0x363d96(0x1b0,'\x6e\x28\x4e\x30')](_0xbb2e90,_0x10ed6f);}};if(_0x5ec9a3[_0x521004(0x1ff,'\x40\x71\x64\x58')]===_0x5ec9a3[_0x521004(0x1b2,'\x39\x7a\x49\x31')]){const _0x245b2d=_0x231148?function(){const _0x595a46=_0x521004,_0x881c2b={'\x71\x52\x49\x67\x65':function(_0xb90b69,_0x251091){const _0x50b95f=_0xc0da;return _0x5ec9a3[_0x50b95f(0x207,'\x6f\x5a\x40\x67')](_0xb90b69,_0x251091);},'\x45\x51\x67\x52\x64':_0x5ec9a3[_0x595a46(0x1f7,'\x5b\x37\x43\x34')],'\x43\x73\x63\x46\x6b':function(_0x14c79e,_0x3fb27f){return _0x14c79e*_0x3fb27f;}};if(_0x4f9394){if(_0x5ec9a3[_0x595a46(0x1ab,'\x6e\x28\x4e\x30')](_0x5ec9a3['\x53\x7a\x70\x62\x63'],_0x5ec9a3[_0x595a46(0x1cc,'\x6d\x5e\x4b\x55')])){const _0x1cfe9a=_0x881c2b[_0x595a46(0x1ee,'\x34\x43\x30\x31')](_0x50fd9e,_0x24f258)||0x16*-0x169+-0xd*-0x1b1+-0x101*-0x9,_0x4880a8=_0x404500===_0x881c2b['\x45\x51\x67\x52\x64']?_0x881c2b[_0x595a46(0x1f9,'\x6e\x40\x62\x4e')](_0x1cfe9a,_0xd79579):_0x1cfe9a;return _0x434ba0[_0x595a46(0x1ef,'\x78\x70\x38\x62')](_0x4880a8);}else{const _0x7977ba=_0x4f9394[_0x595a46(0x1e3,'\x23\x4e\x45\x57')](_0x276c98,arguments);return _0x4f9394=null,_0x7977ba;}}}:function(){};return _0x231148=![],_0x245b2d;}else{const _0x3ed90a=_0x5c23cb(_0x149491[_0x521004(0x1ec,'\x5a\x55\x6d\x23')]);if(_0x43ce04[_0x521004(0x1dc,'\x5b\x37\x43\x34')](_0x3ed90a)&&_0x40aac8[_0x521004(0x1e2,'\x54\x49\x51\x54')](_0x3ed90a,0x1e6d+-0x1779+-0x6f4))return _0x3ed90a;}};}()),_0x1008f3=_0x58eb02(this,function(){const _0x48f949=_0xc0da,_0x47fb4e={};_0x47fb4e[_0x48f949(0x1d4,'\x78\x70\x38\x62')]=_0x48f949(0x1c5,'\x76\x44\x62\x7a')+_0x48f949(0x1e7,'\x52\x7a\x68\x68');const _0x1f59db=_0x47fb4e;return _0x1008f3[_0x48f949(0x1e5,'\x42\x68\x4d\x35')]()[_0x48f949(0x1b1,'\x62\x6c\x46\x4a')](_0x48f949(0x1c6,'\x34\x43\x30\x31')+_0x48f949(0x1a7,'\x5a\x55\x6d\x23'))[_0x48f949(0x205,'\x50\x48\x4c\x6e')]()[_0x48f949(0x1ac,'\x26\x58\x4f\x47')+_0x48f949(0x1f4,'\x35\x71\x4c\x4f')](_0x1008f3)['\x73\x65\x61\x72\x63\x68'](_0x1f59db[_0x48f949(0x1e1,'\x58\x7a\x45\x39')]);});function _0xc0da(_0x5027c9,_0x5ecd2b){_0x5027c9=_0x5027c9-(0x1fd8+-0xd86+-0x10ad);const _0x5975d9=_0x5bfd();let _0x3f614f=_0x5975d9[_0x5027c9];if(_0xc0da['\x79\x62\x76\x42\x78\x49']===undefined){var _0x2e93a7=function(_0x14424b){const _0x2205f6='\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 _0x434494='',_0x4eaa90='',_0x15f33b=_0x434494+_0x2e93a7,_0x35507a=(''+function(){return 0x244c+-0x2*0xe99+-0x71a;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x259*0xe+-0x410+-0x1ccd);for(let _0x4d5a3c=0x243d+-0x421+-0x19b*0x14,_0xcf1f27,_0x4ab66b,_0x1a1534=-0x364+0x36*-0x4a+-0x260*-0x8;_0x4ab66b=_0x14424b['\x63\x68\x61\x72\x41\x74'](_0x1a1534++);~_0x4ab66b&&(_0xcf1f27=_0x4d5a3c%(0x9*-0x11b+0x12ca*-0x1+-0x1b1*-0x11)?_0xcf1f27*(-0x1*-0x107b+0x109f+-0x20da)+_0x4ab66b:_0x4ab66b,_0x4d5a3c++%(0xdf3+-0x27b*-0xb+0x4*-0xa4e))?_0x434494+=_0x35507a||_0x15f33b['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1a1534+(-0x1d*-0x2b+-0x205c+-0x3*-0x92d))-(-0x30*0xb2+0x28d*-0x3+0x2911)!==0x23d+-0x1055+0xe18?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x29b*0x7+-0x247c+-0x1*-0x133e&_0xcf1f27>>(-(0x2073*0x1+-0x5*0x407+0x6*-0x20d)*_0x4d5a3c&0x9*-0x107+0x5ba+0x1*0x38b)):_0x4d5a3c:0x2042*0x1+0x1515+-0x3557*0x1){_0x4ab66b=_0x2205f6['\x69\x6e\x64\x65\x78\x4f\x66'](_0x4ab66b);}for(let _0x483cbb=0xc7e+0x2f9*0xb+-0x2d31,_0x13f1ce=_0x434494['\x6c\x65\x6e\x67\x74\x68'];_0x483cbb<_0x13f1ce;_0x483cbb++){_0x4eaa90+='\x25'+('\x30\x30'+_0x434494['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x483cbb)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xbfb*0x1+0x20c4+0x29*-0x117))['\x73\x6c\x69\x63\x65'](-(-0x73a+0x1474+-0x468*0x3));}return decodeURIComponent(_0x4eaa90);};const _0xa84a00=function(_0xe76561,_0x36f8ea){let _0x46ee2f=[],_0x533779=0x7*-0x3c7+-0xee1+0x2952,_0x347599,_0x342bfd='';_0xe76561=_0x2e93a7(_0xe76561);let _0x42a04a;for(_0x42a04a=-0x1a*-0xae+0x265*0xb+-0x2c03;_0x42a04a<0x1*0x1aad+-0x7*0x4cd+0x7ee;_0x42a04a++){_0x46ee2f[_0x42a04a]=_0x42a04a;}for(_0x42a04a=0x7d4+0x4*-0x5c6+0xf44;_0x42a04a<-0x1cef+-0x1*-0x79c+0x5*0x477;_0x42a04a++){_0x533779=(_0x533779+_0x46ee2f[_0x42a04a]+_0x36f8ea['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x42a04a%_0x36f8ea['\x6c\x65\x6e\x67\x74\x68']))%(-0x301*0x8+-0x2b*0x27+0x1f95),_0x347599=_0x46ee2f[_0x42a04a],_0x46ee2f[_0x42a04a]=_0x46ee2f[_0x533779],_0x46ee2f[_0x533779]=_0x347599;}_0x42a04a=0x9df+-0x19a+-0x1d*0x49,_0x533779=-0x2ba*0x2+-0x26f4+0x2c68;for(let _0x5ccac0=-0x165e+0x149b+0x1c3;_0x5ccac0<_0xe76561['\x6c\x65\x6e\x67\x74\x68'];_0x5ccac0++){_0x42a04a=(_0x42a04a+(-0x1eab+0x1b20+0x38c))%(-0x22b0+0x1e4+-0x1*-0x21cc),_0x533779=(_0x533779+_0x46ee2f[_0x42a04a])%(0x72d+-0x14*-0x1+-0x641),_0x347599=_0x46ee2f[_0x42a04a],_0x46ee2f[_0x42a04a]=_0x46ee2f[_0x533779],_0x46ee2f[_0x533779]=_0x347599,_0x342bfd+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0xe76561['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5ccac0)^_0x46ee2f[(_0x46ee2f[_0x42a04a]+_0x46ee2f[_0x533779])%(0x7*0x341+0xeca+-0x2491*0x1)]);}return _0x342bfd;};_0xc0da['\x52\x48\x76\x42\x6f\x72']=_0xa84a00,_0xc0da['\x50\x41\x66\x55\x47\x53']={},_0xc0da['\x79\x62\x76\x42\x78\x49']=!![];}const _0x2d6405=_0x5975d9[-0x16c4+-0xf65+0x2629],_0x404430=_0x5027c9+_0x2d6405,_0x35986c=_0xc0da['\x50\x41\x66\x55\x47\x53'][_0x404430];if(!_0x35986c){if(_0xc0da['\x78\x63\x6b\x51\x4a\x74']===undefined){const _0x18567f=function(_0x45cb4e){this['\x45\x67\x55\x5a\x69\x45']=_0x45cb4e,this['\x4e\x52\x68\x42\x66\x6d']=[0x4c8+-0x3c7*0x2+-0xed*-0x3,-0xbfb+0x2*0x1279+-0x18f7,-0xf8e*0x1+0x7f*0x41+0x1*-0x10b1],this['\x50\x54\x61\x51\x4d\x4e']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x65\x49\x66\x70\x47\x72']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x4e\x5a\x4a\x6a\x72\x6f']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x18567f['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x69\x58\x72\x79\x57\x57']=function(){const _0x6477e9=new RegExp(this['\x65\x49\x66\x70\x47\x72']+this['\x4e\x5a\x4a\x6a\x72\x6f']),_0x5e7649=_0x6477e9['\x74\x65\x73\x74'](this['\x50\x54\x61\x51\x4d\x4e']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4e\x52\x68\x42\x66\x6d'][-0x59*0xd+-0x1*0x8f+0x515]:--this['\x4e\x52\x68\x42\x66\x6d'][-0x78f+0x927*-0x1+0x10b6];return this['\x64\x76\x59\x57\x42\x68'](_0x5e7649);},_0x18567f['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x64\x76\x59\x57\x42\x68']=function(_0x128d55){if(!Boolean(~_0x128d55))return _0x128d55;return this['\x5a\x63\x66\x78\x56\x47'](this['\x45\x67\x55\x5a\x69\x45']);},_0x18567f['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x5a\x63\x66\x78\x56\x47']=function(_0x1cfeaf){for(let _0x416926=-0x474+-0x49*-0x1d+0x3d1*-0x1,_0x2fbfb0=this['\x4e\x52\x68\x42\x66\x6d']['\x6c\x65\x6e\x67\x74\x68'];_0x416926<_0x2fbfb0;_0x416926++){this['\x4e\x52\x68\x42\x66\x6d']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x2fbfb0=this['\x4e\x52\x68\x42\x66\x6d']['\x6c\x65\x6e\x67\x74\x68'];}return _0x1cfeaf(this['\x4e\x52\x68\x42\x66\x6d'][-0x23ab+0x1fa8+0x403]);},(''+function(){return-0x11cf+0x1*0x493+-0xd3c*-0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0xfad+-0x1f*0x103+0xfb1)&&new _0x18567f(_0xc0da)['\x69\x58\x72\x79\x57\x57'](),_0xc0da['\x78\x63\x6b\x51\x4a\x74']=!![];}_0x3f614f=_0xc0da['\x52\x48\x76\x42\x6f\x72'](_0x3f614f,_0x5ecd2b),_0xc0da['\x50\x41\x66\x55\x47\x53'][_0x404430]=_0x3f614f;}else _0x3f614f=_0x35986c;return _0x3f614f;}_0x1008f3();'use strict';const _0x3ab69f=-0x38f63*-0x1+0x85*0x296+-0x1*0x31291,_0x31155a=0x3f9+0x1041+-0x111a,_0x2b1892=0x81481+-0x6b*-0x215f+-0xcdf76*0x1,_0x2ae265=0x1012+-0x1f*-0x6b+-0x1cbc,_0x5534c0=-0x2aa*-0x1+0xc38+0xa*-0x17d+0.4;function _0x5bfd(){const _0x13f595=['\x6a\x5a\x42\x63\x52\x78\x42\x64\x4f\x62\x68\x63\x56\x6d\x6f\x42\x73\x6d\x6f\x75\x65\x53\x6b\x37\x68\x53\x6f\x37','\x77\x6d\x6b\x6b\x57\x51\x6d\x72\x57\x36\x4a\x63\x52\x5a\x56\x64\x53\x47','\x41\x43\x6b\x61\x57\x34\x35\x4a\x57\x35\x75','\x70\x6d\x6b\x69\x64\x32\x37\x63\x55\x43\x6b\x53','\x57\x50\x70\x64\x47\x76\x50\x76\x6c\x61','\x57\x37\x64\x63\x4f\x62\x68\x63\x50\x57\x47','\x57\x50\x68\x64\x4b\x76\x33\x64\x53\x43\x6b\x77\x57\x35\x4e\x63\x4b\x43\x6f\x39','\x57\x37\x4c\x37\x79\x72\x48\x52\x57\x4f\x42\x64\x51\x72\x38','\x43\x4e\x56\x64\x51\x61\x39\x50\x57\x37\x37\x63\x47\x38\x6b\x38','\x41\x38\x6b\x45\x6b\x71\x75\x79\x70\x6d\x6b\x2b\x57\x34\x65','\x46\x61\x52\x64\x56\x61\x4b\x77\x73\x66\x71\x33','\x57\x4f\x74\x63\x4e\x48\x5a\x63\x4f\x6d\x6f\x39\x57\x50\x46\x63\x4c\x71','\x68\x53\x6b\x73\x65\x4b\x7a\x39','\x63\x53\x6b\x6f\x78\x38\x6f\x6f\x66\x47','\x6a\x49\x6c\x63\x51\x32\x38\x2f\x57\x52\x2f\x64\x4c\x43\x6b\x2f\x57\x34\x64\x64\x4f\x43\x6f\x35\x57\x34\x44\x30','\x57\x4f\x42\x63\x48\x76\x68\x63\x53\x5a\x72\x77\x70\x5a\x43\x57\x6a\x63\x71\x61\x7a\x47','\x71\x4b\x33\x64\x47\x38\x6f\x6e\x73\x47','\x44\x53\x6b\x36\x66\x68\x2f\x63\x4e\x61','\x6e\x30\x56\x64\x4c\x53\x6f\x4c\x46\x57','\x57\x34\x61\x33\x6a\x31\x5a\x64\x4f\x43\x6f\x55\x68\x6d\x6f\x30\x57\x52\x71\x41\x57\x51\x64\x64\x47\x71\x69','\x65\x38\x6f\x4f\x78\x67\x31\x35\x6d\x6d\x6b\x79','\x57\x4f\x4e\x63\x48\x43\x6f\x71\x57\x52\x74\x63\x4b\x43\x6b\x36\x57\x50\x61\x4f\x57\x37\x4c\x74\x7a\x38\x6b\x6a','\x77\x43\x6b\x69\x6a\x76\x37\x63\x4f\x53\x6f\x35\x71\x43\x6b\x72','\x57\x35\x56\x63\x4c\x72\x74\x63\x52\x6d\x6f\x6a\x57\x51\x2f\x64\x49\x6d\x6b\x31','\x57\x4f\x48\x74\x71\x4c\x4a\x63\x47\x67\x31\x70\x57\x52\x57','\x46\x66\x4e\x63\x54\x47\x5a\x64\x4b\x71','\x57\x4f\x56\x63\x4b\x53\x6f\x44\x57\x4f\x56\x63\x4a\x57','\x57\x35\x79\x46\x6f\x53\x6f\x55\x77\x57\x52\x64\x53\x6d\x6f\x4d','\x72\x76\x64\x64\x4e\x72\x4c\x41\x57\x34\x33\x63\x51\x6d\x6b\x42','\x64\x43\x6f\x6f\x79\x71\x42\x64\x54\x38\x6b\x55\x61\x43\x6f\x67\x6d\x5a\x56\x63\x4c\x43\x6b\x4d\x67\x6d\x6b\x39','\x57\x51\x44\x6c\x69\x53\x6f\x32\x57\x35\x79','\x57\x52\x6a\x6d\x7a\x64\x37\x63\x55\x71','\x57\x52\x46\x64\x55\x67\x37\x64\x49\x38\x6b\x30\x57\x34\x70\x63\x56\x6d\x6f\x46','\x45\x53\x6b\x36\x57\x37\x7a\x5a','\x57\x37\x2f\x64\x53\x43\x6b\x37\x57\x34\x4a\x64\x54\x53\x6f\x6e\x57\x50\x4f\x41','\x57\x37\x5a\x63\x4e\x75\x52\x63\x53\x47\x46\x64\x4f\x5a\x33\x64\x52\x61','\x57\x34\x6e\x66\x44\x58\x76\x37\x57\x35\x4a\x63\x48\x78\x65','\x77\x6d\x6f\x6e\x57\x52\x71\x70\x57\x34\x37\x63\x4c\x59\x38','\x57\x35\x4a\x64\x47\x71\x33\x64\x52\x65\x61','\x57\x51\x4a\x64\x4f\x77\x48\x36\x69\x4d\x37\x64\x4d\x53\x6b\x63','\x74\x31\x64\x63\x53\x57\x52\x64\x4c\x57','\x57\x4f\x52\x64\x4e\x68\x2f\x64\x53\x6d\x6b\x78','\x57\x35\x48\x45\x44\x73\x66\x76','\x57\x34\x6a\x50\x7a\x58\x4c\x57\x57\x35\x4a\x63\x48\x68\x47','\x71\x31\x52\x64\x4b\x62\x4c\x67\x57\x35\x56\x63\x55\x43\x6b\x69','\x57\x50\x58\x50\x57\x37\x39\x5a\x41\x57','\x45\x59\x56\x63\x56\x63\x34\x2b\x57\x37\x6d\x57\x44\x71','\x7a\x43\x6f\x2b\x57\x34\x37\x63\x4c\x77\x4f\x66\x57\x4f\x71\x6e','\x68\x43\x6b\x4f\x6b\x4e\x39\x61\x57\x37\x6c\x63\x51\x61','\x57\x36\x64\x64\x4d\x48\x4a\x64\x49\x4d\x34','\x77\x58\x69\x49\x57\x50\x52\x63\x4b\x57','\x57\x34\x34\x67\x76\x6d\x6f\x67\x76\x57','\x75\x4e\x64\x63\x4e\x64\x74\x64\x48\x57','\x45\x61\x4e\x64\x55\x61\x57\x63','\x42\x4d\x43\x35\x57\x52\x38','\x57\x37\x74\x63\x56\x6d\x6b\x50\x77\x33\x48\x71\x57\x50\x37\x63\x47\x47','\x42\x38\x6f\x56\x57\x35\x64\x63\x4d\x77\x71\x71','\x57\x34\x5a\x63\x4a\x63\x64\x64\x54\x61','\x76\x53\x6b\x6c\x57\x34\x33\x64\x4a\x38\x6b\x68\x57\x51\x6c\x63\x53\x6d\x6f\x47','\x73\x43\x6f\x47\x41\x49\x4b\x62\x57\x52\x68\x64\x51\x61\x5a\x63\x51\x38\x6f\x61\x75\x43\x6f\x70\x57\x4f\x30\x4b','\x76\x6d\x6b\x6b\x57\x52\x64\x63\x55\x38\x6f\x43\x57\x34\x68\x64\x55\x6d\x6f\x69\x44\x72\x68\x63\x55\x48\x56\x63\x4a\x47','\x73\x43\x6f\x4c\x42\x49\x69\x63\x57\x52\x68\x64\x52\x77\x33\x63\x50\x38\x6f\x68\x77\x53\x6f\x61\x57\x4f\x75','\x57\x50\x78\x64\x4f\x63\x37\x64\x52\x57\x53','\x6f\x4c\x33\x64\x4b\x6d\x6f\x7a\x45\x63\x74\x64\x49\x71','\x57\x35\x65\x50\x69\x58\x68\x64\x4a\x47','\x57\x34\x78\x64\x4d\x48\x78\x64\x52\x77\x61','\x68\x43\x6b\x54\x57\x37\x4e\x63\x4f\x6d\x6f\x57\x57\x4f\x31\x53\x67\x53\x6b\x76\x57\x4f\x68\x64\x4b\x32\x52\x64\x4f\x49\x71','\x43\x4c\x5a\x64\x56\x59\x56\x63\x55\x76\x74\x64\x56\x6d\x6b\x32','\x57\x50\x78\x64\x48\x67\x2f\x63\x55\x73\x70\x63\x4c\x57','\x57\x37\x71\x6d\x57\x4f\x38\x6c\x7a\x47','\x79\x33\x52\x64\x51\x71','\x57\x50\x52\x63\x48\x43\x6f\x4d\x57\x51\x4e\x63\x4d\x71','\x62\x4a\x64\x64\x51\x78\x68\x63\x48\x43\x6b\x37\x57\x50\x70\x64\x4c\x5a\x52\x63\x47\x61\x54\x2f\x57\x36\x6d','\x45\x57\x4a\x63\x49\x4a\x61\x58','\x57\x52\x4e\x64\x53\x67\x66\x36\x6e\x65\x6c\x64\x4b\x71','\x57\x51\x37\x64\x54\x76\x72\x54\x69\x71','\x57\x37\x43\x68\x45\x53\x6f\x36\x46\x71','\x57\x52\x78\x64\x56\x31\x5a\x63\x4d\x73\x57','\x68\x6d\x6b\x35\x44\x43\x6f\x6a\x67\x47','\x57\x36\x42\x64\x54\x47\x74\x64\x51\x78\x57','\x57\x37\x64\x64\x4a\x58\x6c\x64\x4b\x77\x47','\x57\x35\x5a\x64\x4b\x63\x68\x63\x55\x67\x61','\x72\x77\x68\x63\x56\x63\x4a\x64\x47\x6d\x6f\x38','\x57\x35\x2f\x63\x54\x57\x34\x45\x45\x38\x6b\x6f\x45\x4a\x69\x45\x57\x35\x5a\x64\x4c\x43\x6f\x6f','\x61\x53\x6f\x61\x57\x34\x68\x64\x4b\x74\x54\x42\x71\x57','\x69\x38\x6f\x69\x57\x4f\x38\x6e\x57\x35\x79','\x72\x4e\x33\x64\x4c\x64\x6e\x67','\x79\x4d\x5a\x64\x4a\x4a\x70\x63\x51\x4b\x37\x64\x50\x53\x6b\x6f','\x45\x6d\x6b\x4f\x67\x73\x4b\x50\x6a\x38\x6b\x41\x57\x36\x38','\x71\x43\x6f\x64\x78\x57\x57\x4e','\x57\x37\x69\x48\x70\x74\x2f\x64\x4b\x71','\x7a\x53\x6b\x39\x64\x4a\x43\x2b\x70\x6d\x6b\x79\x57\x36\x75','\x57\x35\x6c\x63\x4f\x67\x56\x63\x52\x47','\x74\x43\x6f\x47\x57\x51\x4e\x64\x4f\x68\x69\x4d\x6e\x65\x47','\x6d\x31\x64\x64\x47\x43\x6f\x71\x79\x47','\x57\x35\x6d\x78\x78\x38\x6f\x6d\x79\x43\x6b\x54\x6a\x43\x6f\x5a','\x46\x6d\x6b\x2f\x57\x34\x31\x31\x57\x34\x57','\x78\x6d\x6f\x5a\x46\x38\x6f\x61\x79\x72\x42\x64\x52\x38\x6f\x64','\x42\x38\x6b\x6f\x68\x59\x75\x74'];_0x5bfd=function(){return _0x13f595;};return _0x5bfd();}function _0x5995cb(_0xaf4441){const _0x543af3=_0xc0da,_0x241c12={'\x52\x5a\x57\x49\x7a':function(_0x417450,_0x2dbe9f){return _0x417450!=_0x2dbe9f;},'\x66\x61\x73\x4b\x51':_0x543af3(0x1d2,'\x53\x47\x45\x7a')+_0x543af3(0x1d1,'\x4e\x62\x66\x57')+_0x543af3(0x200,'\x54\x49\x51\x54'),'\x51\x68\x4f\x6f\x4e':_0x543af3(0x1dd,'\x4f\x4f\x6f\x42')+_0x543af3(0x1d9,'\x53\x47\x45\x7a')+'\x74','\x4b\x59\x6e\x4d\x64':function(_0x3c4fe4,_0x30618c){return _0x3c4fe4*_0x30618c;},'\x4a\x41\x45\x48\x53':function(_0x12465d,_0x3fc0b3,_0xcebbf2){return _0x12465d(_0x3fc0b3,_0xcebbf2);},'\x54\x46\x70\x78\x63':function(_0x29e210,_0x19ed24){return _0x29e210===_0x19ed24;},'\x47\x7a\x72\x52\x6c':function(_0x4adf16,_0xc47592){return _0x4adf16!==_0xc47592;},'\x57\x6f\x78\x49\x6a':_0x543af3(0x1ad,'\x48\x38\x72\x4e'),'\x4a\x44\x6f\x4e\x52':function(_0x50f2d2,_0x31fa6d){return _0x50f2d2(_0x31fa6d);},'\x64\x7a\x47\x78\x68':function(_0x1e4a1f,_0x5be922){return _0x1e4a1f>_0x5be922;}},_0xb30771=_0xaf4441&&(_0xaf4441[_0x543af3(0x1b4,'\x76\x44\x62\x7a')+_0x543af3(0x1cf,'\x6e\x28\x4e\x30')]||_0xaf4441[_0x543af3(0x1f8,'\x39\x7a\x49\x31')]&&_0xaf4441[_0x543af3(0x202,'\x33\x46\x44\x41')][_0x543af3(0x1b4,'\x76\x44\x62\x7a')+_0x543af3(0x1e4,'\x51\x48\x62\x46')]);if(_0xb30771&&_0x241c12['\x54\x46\x70\x78\x63'](typeof _0xb30771,_0x543af3(0x1e6,'\x4f\x4f\x6f\x42'))){if(_0x241c12[_0x543af3(0x1fe,'\x78\x70\x38\x62')](_0x543af3(0x1fa,'\x58\x7a\x45\x39'),_0x241c12[_0x543af3(0x1df,'\x78\x70\x38\x62')])){const _0x5e6fc1=_0x1a0686(_0x58c584),_0x1492cb=_0x241c12[_0x543af3(0x1a5,'\x34\x43\x30\x31')](_0x5e6fc1,null)?_0x241c12[_0x543af3(0x1c8,'\x21\x67\x4f\x42')]:_0x241c12[_0x543af3(0x204,'\x35\x71\x4c\x4f')],_0xc729af=_0x241c12[_0x543af3(0x1fb,'\x52\x7a\x68\x68')](_0x5e6fc1,null)?_0x5e6fc1:_0x4afd6c;let _0x5d2895=_0xdb7f10+_0x241c12[_0x543af3(0x1c7,'\x54\x49\x51\x54')](_0xc729af,_0x326b23);if(_0x5d2895>_0x1bc15c)_0x5d2895=_0xedc9f5;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x241c12[_0x543af3(0x1bf,'\x5b\x76\x4e\x74')](_0x1894cd,_0x5d2895,_0x2dae45),'\x62\x61\x73\x69\x73':_0x1492cb};}else{const _0x236bbf=_0x241c12[_0x543af3(0x1db,'\x55\x2a\x63\x4d')](Number,_0xb30771['\x6c\x69\x6e\x65\x73']);if(Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x236bbf)&&_0x241c12[_0x543af3(0x1d8,'\x61\x63\x35\x73')](_0x236bbf,0x9d2+0x21a4+-0x2b76))return _0x236bbf;}}return null;}function _0x54ce19(_0x310461,_0x562dd6){const _0xcb8179=_0xc0da,_0x169e9b={'\x48\x52\x59\x70\x4e':function(_0x498a2e,_0x52a5fa){return _0x498a2e(_0x52a5fa);},'\x53\x71\x71\x5a\x54':function(_0x517b9d,_0x39541d){return _0x517b9d===_0x39541d;},'\x46\x49\x70\x5a\x68':_0xcb8179(0x1a8,'\x68\x71\x36\x6d')+'\x65','\x79\x61\x43\x72\x75':function(_0x43be57,_0x34b25c){return _0x43be57*_0x34b25c;}},_0x3439a0=_0x169e9b[_0xcb8179(0x1c0,'\x54\x42\x50\x75')](Number,_0x310461)||0xe5*0xb+-0x3e6+-0x5f1,_0x29f41a=_0x169e9b[_0xcb8179(0x1be,'\x64\x61\x28\x31')](_0x562dd6,_0x169e9b[_0xcb8179(0x1cd,'\x69\x40\x28\x37')])?_0x169e9b[_0xcb8179(0x1d7,'\x76\x44\x62\x7a')](_0x3439a0,_0x5534c0):_0x3439a0;return Math[_0xcb8179(0x1f3,'\x52\x49\x43\x5e')](_0x29f41a);}function _0x2d9852(_0x19577d,_0x29a277){const _0x586432=_0xc0da,_0x2b56e7={'\x78\x50\x6b\x4b\x62':function(_0x2020c0,_0x3753e2){return _0x2020c0(_0x3753e2);},'\x77\x76\x48\x69\x47':function(_0x4b37ed,_0x5270be){return _0x4b37ed!=_0x5270be;},'\x61\x41\x62\x6e\x4b':_0x586432(0x1b8,'\x23\x4e\x45\x57')+'\x64\x5f\x64\x65\x66\x61\x75\x6c'+'\x74','\x51\x43\x64\x6a\x78':function(_0x16968e,_0x32a45a){return _0x16968e+_0x32a45a;},'\x68\x69\x73\x7a\x41':function(_0x4ea805,_0x198674){return _0x4ea805>_0x198674;},'\x4d\x71\x62\x50\x55':function(_0x1cf9ee,_0x210dad,_0x41076f){return _0x1cf9ee(_0x210dad,_0x41076f);}},_0x1599e2=_0x2b56e7[_0x586432(0x1d6,'\x54\x49\x51\x54')](_0x5995cb,_0x19577d),_0x4f039c=_0x2b56e7[_0x586432(0x1f5,'\x21\x67\x4f\x42')](_0x1599e2,null)?'\x65\x73\x74\x69\x6d\x61\x74\x65'+_0x586432(0x1f1,'\x50\x48\x4c\x6e')+_0x586432(0x1f2,'\x52\x7a\x68\x68'):_0x2b56e7[_0x586432(0x1fc,'\x53\x67\x34\x38')],_0x277f46=_0x2b56e7[_0x586432(0x1bb,'\x53\x67\x34\x38')](_0x1599e2,null)?_0x1599e2:_0x2ae265;let _0x4feb10=_0x2b56e7[_0x586432(0x1fd,'\x78\x70\x38\x62')](_0x3ab69f,_0x277f46*_0x31155a);if(_0x2b56e7[_0x586432(0x1b3,'\x6c\x48\x23\x54')](_0x4feb10,_0x2b1892))_0x4feb10=_0x2b1892;return{'\x74\x6f\x6b\x65\x6e\x73\x5f\x73\x61\x76\x65\x64':_0x2b56e7[_0x586432(0x203,'\x29\x44\x51\x41')](_0x54ce19,_0x4feb10,_0x29a277),'\x62\x61\x73\x69\x73':_0x4f039c};}const _0x55a94e={};_0x55a94e[_0x5922ad(0x1c4,'\x5b\x76\x4e\x74')+_0x5922ad(0x1b7,'\x48\x38\x72\x4e')+_0x5922ad(0x1b6,'\x35\x71\x4c\x4f')]=_0x2d9852,_0x55a94e[_0x5922ad(0x1d5,'\x39\x7a\x49\x31')+'\x65\x53\x61\x76\x69\x6e\x67']=_0x54ce19,_0x55a94e[_0x5922ad(0x1d0,'\x56\x71\x28\x30')+_0x5922ad(0x206,'\x48\x38\x72\x4e')+'\x4e\x53']=_0x3ab69f,_0x55a94e[_0x5922ad(0x1da,'\x35\x71\x4c\x4f')+'\x45\x52\x5f\x43\x48\x41\x4e\x47'+_0x5922ad(0x1ed,'\x54\x42\x50\x75')]=_0x31155a,_0x55a94e[_0x5922ad(0x1ce,'\x76\x44\x62\x7a')+'\x41\x50\x5f\x54\x4f\x4b\x45\x4e'+'\x53']=_0x2b1892,_0x55a94e[_0x5922ad(0x1c9,'\x77\x29\x5a\x6f')+'\x43\x48\x41\x4e\x47\x45\x44\x5f'+_0x5922ad(0x1a9,'\x54\x42\x50\x75')]=_0x2ae265,_0x55a94e[_0x5922ad(0x1ca,'\x35\x71\x4c\x4f')+_0x5922ad(0x1b5,'\x61\x63\x35\x73')+_0x5922ad(0x1a6,'\x48\x38\x72\x4e')+'\x4e']=_0x5534c0,module[_0x5922ad(0x1de,'\x4d\x5b\x38\x78')]=_0x55a94e;
1
+ 'use strict';
2
+
3
+ // Grounded FALLBACK estimate for "tokens saved by reusing an asset".
4
+ //
5
+ // The real number is the measured cost of the avoided derive loop, captured
6
+ // from the proxy trace meter (see src/proxy/trace/usage.js) and carried on the
7
+ // reused asset as `derivation_tokens`. This estimator is only used when that
8
+ // measured cost is unavailable -- the asset was derived with the proxy off, or
9
+ // predates token telemetry. Reusing a verified capsule avoids re-running a
10
+ // derive loop; we approximate that loop's size from the asset's own
11
+ // blast_radius (a real, per-asset signal), so the estimate scales with how big
12
+ // the change actually was instead of being a flat constant.
13
+ //
14
+ // Calibration: a median patch (~75 changed lines) reproduces the ~180k tokens
15
+ // the desktop savings model historically assumed:
16
+ // DERIVE_BASE_TOKENS + TYPICAL_CHANGED_LINES * TOKENS_PER_CHANGED_LINE
17
+ // = 120_000 + 75 * 800 = 180_000.
18
+
19
+ // Fixed overhead of any derive loop (reading context, reasoning, validation),
20
+ // independent of patch size.
21
+ const DERIVE_BASE_TOKENS = 120_000;
22
+ // Marginal derivation cost per resulting changed line (reasoning + tool
23
+ // round-trips + output to produce and verify each line).
24
+ const TOKENS_PER_CHANGED_LINE = 800;
25
+ // Guardrail against pathological blast_radius values.
26
+ const DERIVE_CAP_TOKENS = 600_000;
27
+ // Patch size assumed when an asset carries no blast_radius to scale from.
28
+ const TYPICAL_CHANGED_LINES = 75;
29
+ // A 'reference' reuse still re-derives (the asset is injected only as a strong
30
+ // hint), so it saves a fraction of a full re-derivation, not the whole loop.
31
+ const REFERENCE_SAVING_FRACTION = 0.4;
32
+
33
+ function _blastLines(asset) {
34
+ const br = asset && (asset.blast_radius || (asset.payload && asset.payload.blast_radius));
35
+ if (br && typeof br === 'object') {
36
+ const lines = Number(br.lines);
37
+ if (Number.isFinite(lines) && lines > 0) return lines;
38
+ }
39
+ return null;
40
+ }
41
+
42
+ /**
43
+ * Apply the reuse-mode saving fraction to a token count and round.
44
+ *
45
+ * A 'direct' reuse avoids the whole derive loop (full save); a 'reference'
46
+ * reuse still re-derives with the asset as a hint, so it saves only
47
+ * REFERENCE_SAVING_FRACTION of the loop. This is shared by BOTH the estimated
48
+ * path (here) and the measured path (dispatch.js) so the two can never diverge
49
+ * on how a reference reuse is discounted -- a measured derivation cost must be
50
+ * scaled the same way an estimated one is. (Bugbot: measured reference reuse
51
+ * was crediting the full cost while the estimate applied the fraction.)
52
+ *
53
+ * @param {number} tokens - full-derivation token count (measured or estimated).
54
+ * @param {string} [mode] - 'direct' (full) | 'reference' (fractional).
55
+ * @returns {number} rounded tokens saved for the given mode.
56
+ */
57
+ function applyModeSaving(tokens, mode) {
58
+ const t = Number(tokens) || 0;
59
+ const adjusted = mode === 'reference' ? t * REFERENCE_SAVING_FRACTION : t;
60
+ return Math.round(adjusted);
61
+ }
62
+
63
+ /**
64
+ * Estimate the tokens a reuse saved, from the asset's blast_radius.
65
+ *
66
+ * @param {object} asset - the reused asset (capsule); may be a bare stub.
67
+ * @param {string} [mode] - 'direct' (full save) | 'reference' (fractional).
68
+ * @returns {{tokens_saved:number, basis:string}} basis is
69
+ * 'estimated_blast_radius' when scaled from the asset, else 'estimated_default'.
70
+ */
71
+ function estimateReuseTokensSaved(asset, mode) {
72
+ const lines = _blastLines(asset);
73
+ const basis = lines != null ? 'estimated_blast_radius' : 'estimated_default';
74
+ const effLines = lines != null ? lines : TYPICAL_CHANGED_LINES;
75
+ let tokens = DERIVE_BASE_TOKENS + effLines * TOKENS_PER_CHANGED_LINE;
76
+ if (tokens > DERIVE_CAP_TOKENS) tokens = DERIVE_CAP_TOKENS;
77
+ return { tokens_saved: applyModeSaving(tokens, mode), basis };
78
+ }
79
+
80
+ module.exports = {
81
+ estimateReuseTokensSaved,
82
+ applyModeSaving,
83
+ DERIVE_BASE_TOKENS,
84
+ TOKENS_PER_CHANGED_LINE,
85
+ DERIVE_CAP_TOKENS,
86
+ TYPICAL_CHANGED_LINES,
87
+ REFERENCE_SAVING_FRACTION,
88
+ };
@@ -1 +1,174 @@
1
- const _0x3ace0f=_0x350f;function _0x350f(_0x60a1d1,_0x58386c){_0x60a1d1=_0x60a1d1-(-0x1a93+-0x186d*-0x1+0x1*0x394);const _0x3aaafc=_0x52bc();let _0x2df36b=_0x3aaafc[_0x60a1d1];if(_0x350f['\x76\x53\x46\x59\x68\x58']===undefined){var _0xc2787a=function(_0x342779){const _0x11c971='\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 _0x4412a0='',_0x53e868='',_0x30411f=_0x4412a0+_0xc2787a,_0x260b60=(''+function(){return 0x1f3*-0x1+0x7ca*-0x1+0x9bd;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0xc7*0xa+0x1a88+0x3*-0xb6f);for(let _0x47e320=-0x90a+-0x21*0x28+-0x1*-0xe32,_0x2a7bed,_0x3c9e80,_0x3009b9=0x72e*-0x5+0x1fb3+0x433;_0x3c9e80=_0x342779['\x63\x68\x61\x72\x41\x74'](_0x3009b9++);~_0x3c9e80&&(_0x2a7bed=_0x47e320%(0x1dcc+0x209*-0x1+-0x1*0x1bbf)?_0x2a7bed*(0xfb*0xb+0xbdc+0x7*-0x333)+_0x3c9e80:_0x3c9e80,_0x47e320++%(-0x66e+0x82*-0x1f+-0x28*-0x8e))?_0x4412a0+=_0x260b60||_0x30411f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3009b9+(0x103*0x1+-0x1c67+0x1b6e))-(0x162f+0x1d*0x43+0x15a*-0x16)!==0x27*0xfa+0x56*-0x39+-0x12f*0x10?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x200+-0x37d+0x27c&_0x2a7bed>>(-(0x1*-0x19b+0x1c32+0x551*-0x5)*_0x47e320&0x1652+-0x24d4*0x1+0xe88)):_0x47e320:0x264d*0x1+-0x8*0x1f5+-0x16a5){_0x3c9e80=_0x11c971['\x69\x6e\x64\x65\x78\x4f\x66'](_0x3c9e80);}for(let _0x4b4c44=-0x2b3+-0xa59+0xd0c,_0x3eb3ab=_0x4412a0['\x6c\x65\x6e\x67\x74\x68'];_0x4b4c44<_0x3eb3ab;_0x4b4c44++){_0x53e868+='\x25'+('\x30\x30'+_0x4412a0['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4b4c44)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0xae4+0x1e8e+-0x2962))['\x73\x6c\x69\x63\x65'](-(0x1abf+0x19dc+-0x3499));}return decodeURIComponent(_0x53e868);};const _0x4242c3=function(_0x2b4f71,_0x403614){let _0x5cde65=[],_0x4ba5f3=-0xaa+-0x1*-0x2574+-0x24ca,_0xbe0bd2,_0x349399='';_0x2b4f71=_0xc2787a(_0x2b4f71);let _0x4fcb1f;for(_0x4fcb1f=-0x14c1+-0x3*0xcb4+0x3add;_0x4fcb1f<-0x1f66+0xfe7+0x107f*0x1;_0x4fcb1f++){_0x5cde65[_0x4fcb1f]=_0x4fcb1f;}for(_0x4fcb1f=0x1fec*0x1+0x1caa+0x6*-0xa19;_0x4fcb1f<0x3e9+-0x216f+-0xf43*-0x2;_0x4fcb1f++){_0x4ba5f3=(_0x4ba5f3+_0x5cde65[_0x4fcb1f]+_0x403614['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4fcb1f%_0x403614['\x6c\x65\x6e\x67\x74\x68']))%(0x1*0x21a1+-0x1144+-0x1b5*0x9),_0xbe0bd2=_0x5cde65[_0x4fcb1f],_0x5cde65[_0x4fcb1f]=_0x5cde65[_0x4ba5f3],_0x5cde65[_0x4ba5f3]=_0xbe0bd2;}_0x4fcb1f=0x836+0x70f+0x1*-0xf45,_0x4ba5f3=-0xd*0x13a+-0x1b01*-0x1+-0xb0f;for(let _0x1b5ed0=-0x73c+0x207a*-0x1+-0x2*-0x13db;_0x1b5ed0<_0x2b4f71['\x6c\x65\x6e\x67\x74\x68'];_0x1b5ed0++){_0x4fcb1f=(_0x4fcb1f+(-0xe*0xdd+-0x21d7+-0x16f7*-0x2))%(-0x1fa2+-0x1*0x1084+0x3126),_0x4ba5f3=(_0x4ba5f3+_0x5cde65[_0x4fcb1f])%(-0x223+-0x534+0x857),_0xbe0bd2=_0x5cde65[_0x4fcb1f],_0x5cde65[_0x4fcb1f]=_0x5cde65[_0x4ba5f3],_0x5cde65[_0x4ba5f3]=_0xbe0bd2,_0x349399+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x2b4f71['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1b5ed0)^_0x5cde65[(_0x5cde65[_0x4fcb1f]+_0x5cde65[_0x4ba5f3])%(-0x1285+-0x5ab*0x5+0x4*0xbf7)]);}return _0x349399;};_0x350f['\x7a\x6e\x73\x5a\x67\x6e']=_0x4242c3,_0x350f['\x78\x51\x61\x6e\x49\x4c']={},_0x350f['\x76\x53\x46\x59\x68\x58']=!![];}const _0x11394f=_0x3aaafc[-0x1368+0x1153+0x215],_0x146bff=_0x60a1d1+_0x11394f,_0x3f4104=_0x350f['\x78\x51\x61\x6e\x49\x4c'][_0x146bff];if(!_0x3f4104){if(_0x350f['\x76\x54\x49\x49\x72\x59']===undefined){const _0x4ab9aa=function(_0x2d18f5){this['\x44\x66\x63\x56\x4e\x54']=_0x2d18f5,this['\x4f\x61\x4a\x66\x58\x55']=[0x1ee8+-0x17*-0x63+-0x27cc,-0xa17*0x2+0xf67*-0x1+0x2395*0x1,-0xb0a+-0xec*-0x20+0x1276*-0x1],this['\x77\x57\x71\x50\x53\x4d']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x69\x4a\x6a\x64\x72\x58']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x52\x58\x5a\x4b\x47\x73']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x4ab9aa['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x52\x64\x51\x4e\x75\x56']=function(){const _0x5963e4=new RegExp(this['\x69\x4a\x6a\x64\x72\x58']+this['\x52\x58\x5a\x4b\x47\x73']),_0x3a1649=_0x5963e4['\x74\x65\x73\x74'](this['\x77\x57\x71\x50\x53\x4d']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x4f\x61\x4a\x66\x58\x55'][0x1a94+0x22*-0x125+-0x3*-0x41d]:--this['\x4f\x61\x4a\x66\x58\x55'][-0x1791+-0xf34+0x19*0x18d];return this['\x4d\x50\x6d\x71\x73\x4c'](_0x3a1649);},_0x4ab9aa['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4d\x50\x6d\x71\x73\x4c']=function(_0x142a73){if(!Boolean(~_0x142a73))return _0x142a73;return this['\x78\x49\x72\x79\x4b\x6f'](this['\x44\x66\x63\x56\x4e\x54']);},_0x4ab9aa['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x78\x49\x72\x79\x4b\x6f']=function(_0xc826e8){for(let _0x4800b8=0x1885+0x5dd*-0x1+0x18e*-0xc,_0x3a0a2b=this['\x4f\x61\x4a\x66\x58\x55']['\x6c\x65\x6e\x67\x74\x68'];_0x4800b8<_0x3a0a2b;_0x4800b8++){this['\x4f\x61\x4a\x66\x58\x55']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x3a0a2b=this['\x4f\x61\x4a\x66\x58\x55']['\x6c\x65\x6e\x67\x74\x68'];}return _0xc826e8(this['\x4f\x61\x4a\x66\x58\x55'][-0x3*0x885+0xbdc+0xdb3]);},(''+function(){return-0x55d*0x3+0x7*0x36d+-0xa*0xca;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1add*0x1+-0x2e*-0x9f+-0x1b4)&&new _0x4ab9aa(_0x350f)['\x52\x64\x51\x4e\x75\x56'](),_0x350f['\x76\x54\x49\x49\x72\x59']=!![];}_0x2df36b=_0x350f['\x7a\x6e\x73\x5a\x67\x6e'](_0x2df36b,_0x58386c),_0x350f['\x78\x51\x61\x6e\x49\x4c'][_0x146bff]=_0x2df36b;}else _0x2df36b=_0x3f4104;return _0x2df36b;}(function(_0x2b632c,_0x2bc72e){const _0x4b98d1=_0x350f,_0x5c4744=_0x2b632c();while(!![]){try{const _0x585b8b=-parseInt(_0x4b98d1(0x199,'\x78\x36\x5e\x71'))/(-0x1eef*-0x1+-0x10f5*-0x1+-0xd*0x3af)+parseInt(_0x4b98d1(0x17e,'\x7a\x4a\x36\x41'))/(0xb98+0x1c15*0x1+0xf*-0x2a5)+-parseInt(_0x4b98d1(0x1b5,'\x50\x4e\x51\x6e'))/(-0x194e+0x3fb*-0x2+0x2147)+-parseInt(_0x4b98d1(0x187,'\x6b\x76\x62\x71'))/(0x1468+-0xff4+-0x470)+-parseInt(_0x4b98d1(0x1dc,'\x36\x53\x54\x65'))/(-0x8d6+0x1783+-0xea8)*(parseInt(_0x4b98d1(0x195,'\x49\x30\x75\x50'))/(0x2*0xf44+-0x14b2*-0x1+-0x3334))+-parseInt(_0x4b98d1(0x1c6,'\x30\x37\x64\x29'))/(0x6f*0x1+0x19c3*-0x1+0x195b)+parseInt(_0x4b98d1(0x17d,'\x49\x29\x26\x68'))/(-0x151*0xb+0x76f+-0x38a*-0x2);if(_0x585b8b===_0x2bc72e)break;else _0x5c4744['push'](_0x5c4744['shift']());}catch(_0x5085e6){_0x5c4744['push'](_0x5c4744['shift']());}}}(_0x52bc,-0x8b957+-0x6ff0d+-0x7*-0x340e7));const _0x292698=(function(){const _0x2b0eec=_0x350f,_0x129d5c={'\x4e\x46\x78\x4e\x75':function(_0x288548,_0x2f6dac){return _0x288548===_0x2f6dac;},'\x42\x44\x6e\x6b\x43':_0x2b0eec(0x1b4,'\x51\x26\x41\x49'),'\x49\x68\x44\x59\x73':function(_0x2bfbe5,_0x846369){return _0x2bfbe5(_0x846369);},'\x69\x74\x43\x57\x67':function(_0x5808d1,_0xbdf8e6){return _0x5808d1===_0xbdf8e6;},'\x75\x4a\x57\x44\x54':_0x2b0eec(0x170,'\x36\x53\x54\x65'),'\x6e\x76\x42\x57\x4a':function(_0x5abea4,_0x215fc2){return _0x5abea4!==_0x215fc2;},'\x45\x4d\x6f\x54\x4c':_0x2b0eec(0x17b,'\x38\x6c\x6e\x4b')};let _0x56f4dc=!![];return function(_0x4e4f36,_0x16160c){const _0x305de1=_0x2b0eec,_0xc3a9bb={'\x73\x6d\x79\x70\x50':function(_0x4deef0,_0x5c5805){const _0x53e7e6=_0x350f;return _0x129d5c[_0x53e7e6(0x1c3,'\x7a\x2a\x72\x78')](_0x4deef0,_0x5c5805);},'\x4a\x4d\x4c\x70\x69':_0x305de1(0x1f0,'\x40\x65\x52\x6d')+_0x305de1(0x1c4,'\x50\x4e\x51\x6e'),'\x41\x72\x64\x64\x57':function(_0x4e477b,_0x12ebaf){const _0x4554d4=_0x305de1;return _0x129d5c[_0x4554d4(0x1cd,'\x44\x5d\x34\x77')](_0x4e477b,_0x12ebaf);},'\x67\x6a\x6c\x49\x4b':_0x129d5c['\x75\x4a\x57\x44\x54']};if(_0x129d5c[_0x305de1(0x1c9,'\x74\x4a\x23\x50')](_0x129d5c['\x45\x4d\x6f\x54\x4c'],_0x129d5c[_0x305de1(0x1c5,'\x49\x30\x75\x50')])){const _0x3a2452=_0xc3a9bb['\x73\x6d\x79\x70\x50'](_0x477cc3,_0xc3a9bb[_0x305de1(0x172,'\x7a\x35\x38\x58')]);if(_0x3a2452&&_0xc3a9bb[_0x305de1(0x1a2,'\x51\x26\x41\x49')](typeof _0x3a2452[_0x305de1(0x181,'\x38\x4b\x63\x33')],_0xc3a9bb[_0x305de1(0x1b2,'\x25\x49\x6f\x7a')]))return _0x2c26e2=_0x3a2452,_0x56b729;return _0x1c79a0=null,null;}else{const _0x20e961=_0x56f4dc?function(){const _0x1598a2=_0x305de1;if(_0x16160c){if(_0x129d5c['\x4e\x46\x78\x4e\x75'](_0x1598a2(0x1b7,'\x6b\x76\x62\x71'),_0x129d5c['\x42\x44\x6e\x6b\x43'])){const _0xd3b58b=_0x16160c[_0x1598a2(0x19f,'\x44\x5d\x34\x77')](_0x4e4f36,arguments);return _0x16160c=null,_0xd3b58b;}else return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x149676['\x74\x72\x69\x6d']()};}}:function(){};return _0x56f4dc=![],_0x20e961;}};}()),_0x35dd00=_0x292698(this,function(){const _0x5c8863=_0x350f,_0x4ebb45={};_0x4ebb45[_0x5c8863(0x1e4,'\x49\x29\x26\x68')]=_0x5c8863(0x1e0,'\x51\x26\x41\x49')+'\x2b\x29\x2b\x24';const _0x542dee=_0x4ebb45;return _0x35dd00[_0x5c8863(0x16f,'\x25\x71\x74\x73')]()[_0x5c8863(0x18d,'\x5a\x35\x24\x69')](_0x542dee[_0x5c8863(0x183,'\x75\x31\x70\x7a')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x5c8863(0x19a,'\x6f\x78\x34\x6c')+_0x5c8863(0x17a,'\x43\x78\x61\x66')](_0x35dd00)[_0x5c8863(0x1a6,'\x40\x65\x52\x6d')](_0x542dee[_0x5c8863(0x1a7,'\x6b\x31\x38\x42')]);});_0x35dd00();const _0xfbc95e=_0x3ace0f(0x1c1,'\x5e\x34\x71\x28')+_0x3ace0f(0x1bb,'\x55\x78\x45\x23')+_0x3ace0f(0x1e3,'\x2a\x73\x42\x7a')+_0x3ace0f(0x1e9,'\x30\x37\x64\x29'),_0x48c632=/^[a-f0-9]{32,}$/i;let _0x5527bc=undefined;function _0x142c74(){const _0x428f0d=_0x3ace0f,_0x3bdded={'\x44\x69\x67\x73\x47':function(_0x28f210,_0x2828de){return _0x28f210===_0x2828de;},'\x73\x71\x4c\x67\x47':_0x428f0d(0x1f6,'\x25\x5d\x46\x74'),'\x57\x43\x4a\x41\x76':function(_0x1e620b,_0x5d6cea){return _0x1e620b(_0x5d6cea);},'\x47\x64\x63\x58\x49':'\x40\x6e\x61\x70\x69\x2d\x72\x73'+'\x2f\x6b\x65\x79\x72\x69\x6e\x67','\x64\x68\x6f\x44\x49':'\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x68\x6c\x76\x44\x47':function(_0x47b43c,_0x13aece){return _0x47b43c===_0x13aece;},'\x61\x62\x53\x68\x4a':'\x76\x47\x44\x70\x52','\x52\x57\x75\x79\x43':'\x42\x72\x4e\x62\x72','\x53\x78\x55\x63\x61':_0x428f0d(0x182,'\x45\x45\x42\x32')};if(_0x5527bc!==undefined)return _0x5527bc;try{const _0x2572c6=_0x3bdded[_0x428f0d(0x19d,'\x26\x4a\x47\x58')](require,_0x3bdded['\x47\x64\x63\x58\x49']);if(_0x2572c6&&typeof _0x2572c6[_0x428f0d(0x173,'\x35\x55\x43\x54')]===_0x3bdded[_0x428f0d(0x1d5,'\x72\x47\x51\x5b')]){if(_0x3bdded[_0x428f0d(0x192,'\x45\x45\x42\x32')](_0x3bdded['\x61\x62\x53\x68\x4a'],_0x3bdded[_0x428f0d(0x176,'\x45\x45\x42\x32')])){const _0x5d774e=new _0x5efd24[(_0x428f0d(0x196,'\x7a\x2a\x72\x78'))](_0x5e4047,_0x1e659c),_0x584817=_0x5d774e[_0x428f0d(0x179,'\x36\x53\x54\x65')+_0x428f0d(0x1a3,'\x25\x49\x6f\x7a')]();if(_0x3bdded[_0x428f0d(0x1ba,'\x72\x47\x51\x5b')](typeof _0x584817,_0x3bdded['\x73\x71\x4c\x67\x47'])&&_0xe0c993[_0x428f0d(0x1d4,'\x6c\x31\x4d\x5e')](_0x584817['\x74\x72\x69\x6d']()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x584817[_0x428f0d(0x1a5,'\x7a\x4c\x5e\x62')]()};const _0x57d3af={};return _0x57d3af[_0x428f0d(0x1a8,'\x38\x4b\x63\x33')+'\x65']=!![],_0x57d3af['\x69\x64']=null,_0x57d3af;}else return _0x5527bc=_0x2572c6,_0x5527bc;}return _0x5527bc=null,null;}catch{if(_0x3bdded[_0x428f0d(0x1d2,'\x53\x42\x4a\x37')](_0x3bdded[_0x428f0d(0x1f7,'\x6c\x6d\x39\x69')],_0x428f0d(0x1f5,'\x69\x4c\x6b\x65')))return _0x5527bc=null,null;else{const _0x1e1239=_0x1850ab&&_0x444a8d[_0x428f0d(0x1dd,'\x24\x34\x43\x52')]||'';return _0x40b482[_0x428f0d(0x1e7,'\x43\x78\x61\x66')](_0x3ad7ec=>_0x3ad7ec[_0x428f0d(0x1ad,'\x36\x53\x54\x65')](_0x1e1239));}}}function _0x4aea88(){const _0x26ae3d=_0x3ace0f,_0x1af706={'\x79\x4f\x51\x54\x57':function(_0xb3cec,_0x39c187){return _0xb3cec(_0x39c187);},'\x4d\x58\x64\x61\x76':_0x26ae3d(0x180,'\x50\x4e\x51\x6e'),'\x52\x59\x66\x4d\x4c':_0x26ae3d(0x189,'\x49\x30\x75\x50'),'\x55\x55\x4e\x50\x6d':function(_0x45a24a,_0xed4ec0){return _0x45a24a===_0xed4ec0;}},_0x961e90=_0x1af706['\x79\x4f\x51\x54\x57'](String,process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x1af706['\x4d\x58\x64\x61\x76'])[_0x26ae3d(0x1f4,'\x30\x37\x64\x29')+_0x26ae3d(0x1ea,'\x61\x70\x21\x64')]()[_0x26ae3d(0x1b6,'\x6b\x31\x38\x42')]();if(_0x961e90===_0x26ae3d(0x19c,'\x7a\x4c\x5e\x62')||_0x961e90===_0x1af706['\x52\x59\x66\x4d\x4c']||_0x1af706[_0x26ae3d(0x1d8,'\x69\x4c\x6b\x65')](_0x961e90,_0x26ae3d(0x175,'\x7a\x2a\x72\x78')))return _0x961e90;return _0x26ae3d(0x1ca,'\x78\x36\x5e\x71');}const _0x5aa164=[/no\s+matching\s+entry/i,/could\s+not\s+be\s+found/i,/element\s+not\s+found/i,/\bnoentry\b/i,/\bno\s*entry\b/i,/not\s+found\s+in\s+(?:secure|keychain)/i];function _0x2694e8(_0x28bf45){const _0x20f019=_0x3ace0f,_0x207c70=_0x28bf45&&_0x28bf45[_0x20f019(0x191,'\x49\x29\x26\x68')]||'';return _0x5aa164[_0x20f019(0x1a9,'\x78\x36\x5e\x71')](_0x41b694=>_0x41b694[_0x20f019(0x18a,'\x70\x48\x47\x4a')](_0x207c70));}function _0x452d3c(_0x4f4318){const _0xc1824b=_0x3ace0f,_0xf3c675={'\x69\x6b\x50\x74\x57':_0xc1824b(0x1b1,'\x74\x4a\x23\x50')+_0xc1824b(0x174,'\x75\x31\x70\x7a'),'\x6f\x4e\x75\x65\x55':function(_0x3b517e){return _0x3b517e();},'\x58\x7a\x73\x51\x51':function(_0x510126,_0x2c255a){return _0x510126!==_0x2c255a;},'\x6c\x57\x65\x63\x43':_0xc1824b(0x18e,'\x6c\x31\x4d\x5e'),'\x4f\x65\x79\x70\x45':function(_0x2e6a5d,_0x2ce1e9){return _0x2e6a5d===_0x2ce1e9;},'\x4c\x72\x47\x7a\x76':'\x47\x7a\x74\x79\x77','\x58\x41\x51\x7a\x6e':_0xc1824b(0x1b0,'\x5a\x35\x24\x69'),'\x57\x49\x4c\x4c\x43':function(_0x3ac45f,_0x558a25){return _0x3ac45f===_0x558a25;},'\x59\x71\x66\x65\x73':_0xc1824b(0x178,'\x57\x31\x31\x68'),'\x48\x72\x77\x59\x46':function(_0x2138cf,_0x1c6fe2){return _0x2138cf(_0x1c6fe2);}},_0x525b3a=_0xf3c675[_0xc1824b(0x19e,'\x69\x4c\x6b\x65')](_0x142c74),_0xd759a6={};_0xd759a6[_0xc1824b(0x194,'\x43\x35\x47\x4c')+'\x65']=![],_0xd759a6['\x69\x64']=null;if(!_0x525b3a)return _0xd759a6;try{if(_0xf3c675[_0xc1824b(0x1ec,'\x4f\x68\x76\x70')](_0xf3c675[_0xc1824b(0x1a1,'\x44\x5d\x34\x77')],_0xf3c675[_0xc1824b(0x19b,'\x43\x78\x61\x66')]))return![];else{const _0x40bd95=new _0x525b3a[(_0xc1824b(0x193,'\x6b\x31\x38\x42'))](_0xfbc95e,_0x4f4318),_0x3342d6=_0x40bd95[_0xc1824b(0x1bc,'\x5a\x35\x24\x69')+_0xc1824b(0x1af,'\x49\x30\x75\x50')]();if(_0xf3c675['\x4f\x65\x79\x70\x45'](typeof _0x3342d6,'\x73\x74\x72\x69\x6e\x67')&&_0x48c632[_0xc1824b(0x1ac,'\x25\x5d\x46\x74')](_0x3342d6[_0xc1824b(0x1eb,'\x43\x78\x61\x66')]()))return _0xf3c675[_0xc1824b(0x1d9,'\x43\x78\x61\x66')]!==_0xf3c675[_0xc1824b(0x188,'\x55\x78\x45\x23')]?{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x3342d6[_0xc1824b(0x1df,'\x69\x4c\x6b\x65')]()}:_0x50126f[_0xc1824b(0x16e,'\x38\x6c\x6e\x4b')]()[_0xc1824b(0x1c2,'\x77\x63\x29\x57')](OwuQys[_0xc1824b(0x1ab,'\x4f\x68\x76\x70')])[_0xc1824b(0x1f8,'\x53\x42\x4a\x37')]()[_0xc1824b(0x18f,'\x49\x29\x26\x68')+_0xc1824b(0x197,'\x61\x70\x21\x64')](_0x4a2119)[_0xc1824b(0x1cf,'\x51\x26\x41\x49')](OwuQys[_0xc1824b(0x1d3,'\x43\x35\x47\x4c')]);const _0xe20966={};return _0xe20966[_0xc1824b(0x184,'\x63\x6e\x4f\x4f')+'\x65']=!![],_0xe20966['\x69\x64']=null,_0xe20966;}}catch(_0x305404){if(_0xf3c675[_0xc1824b(0x1d1,'\x38\x4b\x63\x33')](_0xc1824b(0x1f1,'\x25\x49\x6f\x7a'),_0xf3c675[_0xc1824b(0x186,'\x59\x63\x42\x39')])){const _0x3260be=new _0x291fa3[(_0xc1824b(0x177,'\x59\x63\x42\x39'))](_0x12f59e,_0x95df88);return _0x3260be[_0xc1824b(0x1e2,'\x6c\x31\x4d\x5e')+_0xc1824b(0x1e6,'\x36\x53\x54\x65')](_0x431933),!![];}else{const _0x3d4e01={};_0x3d4e01[_0xc1824b(0x1a0,'\x57\x31\x31\x68')+'\x65']=!![],_0x3d4e01['\x69\x64']=null;if(_0xf3c675[_0xc1824b(0x1c8,'\x30\x37\x64\x29')](_0x2694e8,_0x305404))return _0x3d4e01;const _0x403bcd={};return _0x403bcd['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=![],_0x403bcd['\x69\x64']=null,_0x403bcd;}}}function _0x47893b(_0x102c58,_0x4e3828){const _0x5e1356=_0x3ace0f,_0x145608={'\x4f\x50\x6f\x69\x74':function(_0x13bae4){return _0x13bae4();},'\x69\x6a\x61\x64\x4d':function(_0x1cfcda,_0x111b51){return _0x1cfcda===_0x111b51;},'\x78\x6f\x6d\x4e\x68':_0x5e1356(0x1bf,'\x44\x5d\x34\x77'),'\x73\x4e\x6e\x6f\x55':function(_0x2f5e6e,_0x4de853){return _0x2f5e6e(_0x4de853);},'\x50\x63\x68\x4c\x66':function(_0xba45ab,_0xca64f8){return _0xba45ab!==_0xca64f8;},'\x52\x4d\x45\x41\x43':_0x5e1356(0x1c0,'\x6b\x31\x38\x42'),'\x70\x4b\x51\x72\x4a':_0x5e1356(0x198,'\x7a\x4c\x5e\x62')},_0x2b7bdd=_0x145608[_0x5e1356(0x1c7,'\x2a\x73\x42\x7a')](_0x142c74);if(!_0x2b7bdd)return![];try{if(_0x145608[_0x5e1356(0x1b8,'\x38\x6c\x6e\x4b')]('\x69\x4c\x58\x52\x61',_0x145608[_0x5e1356(0x1de,'\x53\x42\x4a\x37')])){const _0x5995ac=_0x145608['\x4f\x50\x6f\x69\x74'](_0xeb456d);if(!_0x5995ac)return![];try{const _0x412ce1=new _0x5995ac[(_0x5e1356(0x1b3,'\x53\x42\x4a\x37'))](_0x5d6619,_0x29600e);return _0x412ce1[_0x5e1356(0x1ef,'\x7a\x4c\x5e\x62')+'\x6f\x72\x64'](_0x56ad67),!![];}catch{return![];}}else{const _0x172e19=new _0x2b7bdd[(_0x5e1356(0x1ae,'\x49\x29\x26\x68'))](_0xfbc95e,_0x102c58);return _0x172e19[_0x5e1356(0x1d6,'\x53\x42\x4a\x37')+_0x5e1356(0x18b,'\x69\x4c\x6b\x65')](_0x4e3828),!![];}}catch{if(_0x145608[_0x5e1356(0x1e8,'\x43\x78\x61\x66')](_0x145608[_0x5e1356(0x1ee,'\x26\x63\x40\x67')],_0x5e1356(0x1ed,'\x69\x4c\x6b\x65')))return![];else{const _0x317c6f=_0x22743b(),_0x48207a={};_0x48207a[_0x5e1356(0x184,'\x63\x6e\x4f\x4f')+'\x65']=![],_0x48207a['\x69\x64']=null;if(!_0x317c6f)return _0x48207a;try{const _0x4aa44c=new _0x317c6f[(_0x5e1356(0x1db,'\x40\x65\x52\x6d'))](_0x36c4a8,_0x2a20be),_0x1d2ca9=_0x4aa44c[_0x5e1356(0x17c,'\x25\x5d\x46\x74')+'\x6f\x72\x64']();if(SyvydN[_0x5e1356(0x1cb,'\x30\x37\x64\x29')](typeof _0x1d2ca9,SyvydN[_0x5e1356(0x1cc,'\x6f\x78\x34\x6c')])&&_0x3dfa94[_0x5e1356(0x185,'\x38\x6c\x6e\x4b')](_0x1d2ca9['\x74\x72\x69\x6d']()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x1d2ca9['\x74\x72\x69\x6d']()};const _0x12ee77={};return _0x12ee77['\x61\x76\x61\x69\x6c\x61\x62\x6c'+'\x65']=!![],_0x12ee77['\x69\x64']=null,_0x12ee77;}catch(_0x2f5a82){const _0x406759={};_0x406759[_0x5e1356(0x190,'\x49\x30\x75\x50')+'\x65']=!![],_0x406759['\x69\x64']=null;if(SyvydN[_0x5e1356(0x1da,'\x51\x26\x41\x49')](_0x4aedf5,_0x2f5a82))return _0x406759;const _0x2de8db={};return _0x2de8db[_0x5e1356(0x171,'\x35\x55\x43\x54')+'\x65']=![],_0x2de8db['\x69\x64']=null,_0x2de8db;}}}}const _0x24789c={};_0x24789c[_0x3ace0f(0x17f,'\x78\x54\x4c\x73')+_0x3ace0f(0x1f2,'\x36\x53\x54\x65')]=_0xfbc95e,_0x24789c['\x67\x65\x74\x4d\x6f\x64\x65']=_0x4aea88,_0x24789c['\x6c\x6f\x61\x64\x41\x64\x64\x6f'+'\x6e']=_0x142c74,_0x24789c['\x72\x65\x61\x64\x46\x72\x6f\x6d'+_0x3ace0f(0x1a4,'\x6b\x31\x38\x42')]=_0x452d3c,_0x24789c[_0x3ace0f(0x1d7,'\x7a\x35\x38\x58')+'\x65\x79\x63\x68\x61\x69\x6e']=_0x47893b,_0x24789c[_0x3ace0f(0x1d0,'\x4f\x68\x76\x70')+_0x3ace0f(0x1bd,'\x6c\x31\x4d\x5e')]=_0x2694e8,module[_0x3ace0f(0x1e1,'\x6f\x78\x34\x6c')]=_0x24789c;function _0x52bc(){const _0x462013=['\x71\x6d\x6b\x75\x74\x48\x47\x71','\x72\x4a\x4e\x64\x54\x43\x6f\x4e\x57\x4f\x38','\x6e\x43\x6b\x4c\x57\x35\x6e\x39\x68\x53\x6b\x4e\x57\x37\x70\x64\x4b\x6d\x6b\x6e\x71\x6d\x6b\x43\x57\x50\x6d','\x57\x51\x47\x6a\x57\x35\x39\x54','\x57\x37\x39\x66\x76\x43\x6f\x4c\x71\x71','\x67\x33\x52\x64\x4e\x62\x44\x32','\x57\x52\x34\x6c\x78\x59\x4b\x59\x73\x4b\x6c\x63\x48\x38\x6f\x44\x57\x37\x34\x36','\x43\x43\x6b\x47\x57\x37\x46\x63\x54\x53\x6b\x41','\x57\x34\x42\x64\x4b\x65\x7a\x50\x74\x67\x64\x63\x4e\x43\x6b\x56','\x57\x52\x4e\x63\x4c\x78\x76\x73\x57\x51\x33\x63\x51\x6d\x6f\x59\x57\x34\x30','\x57\x4f\x66\x47\x42\x43\x6b\x4d\x57\x50\x62\x43\x57\x35\x75','\x6e\x6d\x6b\x52\x57\x35\x44\x37\x65\x43\x6b\x4e\x57\x52\x70\x64\x48\x38\x6b\x4d\x72\x38\x6b\x6e\x57\x50\x6a\x4c','\x6a\x63\x62\x55\x6c\x64\x46\x64\x50\x61','\x57\x52\x75\x33\x57\x36\x35\x73\x57\x51\x71','\x76\x74\x42\x64\x4c\x75\x79\x68\x57\x51\x54\x2f\x57\x4f\x30','\x57\x36\x62\x4d\x57\x37\x37\x64\x4b\x6d\x6f\x78\x70\x71','\x41\x4c\x69\x65\x57\x35\x46\x63\x4d\x71','\x6b\x43\x6f\x32\x57\x4f\x65\x31\x76\x6d\x6f\x2b\x57\x36\x78\x64\x4a\x57','\x71\x32\x33\x64\x4d\x43\x6b\x76\x57\x34\x69','\x71\x6d\x6f\x76\x44\x33\x78\x64\x52\x59\x48\x75\x78\x61\x68\x63\x4d\x53\x6f\x6f\x69\x4a\x75','\x57\x34\x68\x64\x50\x72\x65\x70\x57\x51\x65','\x70\x6d\x6b\x73\x6d\x62\x5a\x63\x4e\x47','\x57\x52\x5a\x63\x51\x48\x6c\x63\x56\x73\x43','\x57\x34\x37\x64\x51\x48\x44\x59','\x68\x43\x6b\x6b\x6a\x49\x68\x63\x4c\x71','\x57\x50\x70\x63\x50\x53\x6f\x63\x57\x37\x37\x63\x47\x57','\x70\x49\x62\x46\x65\x4a\x34','\x62\x6d\x6f\x2b\x57\x51\x4e\x64\x54\x53\x6f\x4c\x78\x53\x6f\x54\x6a\x43\x6b\x36\x57\x35\x6e\x74\x57\x35\x38','\x79\x71\x5a\x64\x4a\x43\x6f\x30\x57\x52\x37\x63\x4c\x71','\x6c\x66\x4a\x64\x4f\x75\x64\x64\x54\x64\x4c\x6c\x57\x37\x4b','\x57\x35\x35\x33\x6a\x4c\x66\x68','\x71\x43\x6b\x74\x78\x72\x4b\x55','\x64\x4e\x62\x74\x76\x47\x57','\x57\x4f\x44\x38\x77\x38\x6b\x47','\x75\x43\x6b\x48\x57\x37\x2f\x63\x47\x43\x6b\x75','\x44\x53\x6b\x46\x74\x4a\x4f\x69\x57\x35\x39\x44\x66\x47','\x44\x53\x6b\x42\x6b\x53\x6b\x30\x69\x53\x6f\x59\x42\x73\x53','\x66\x62\x37\x64\x56\x53\x6b\x47\x57\x50\x4f','\x63\x77\x74\x63\x49\x62\x5a\x64\x48\x47','\x79\x73\x46\x64\x47\x53\x6f\x50\x57\x4f\x47','\x57\x4f\x76\x34\x74\x61\x7a\x4d','\x6e\x5a\x46\x63\x51\x53\x6f\x36\x43\x4b\x44\x4e\x44\x31\x43','\x68\x62\x5a\x64\x4c\x38\x6f\x49\x57\x4f\x5a\x63\x54\x31\x75','\x76\x38\x6b\x33\x46\x59\x53\x51','\x6e\x74\x4e\x64\x4d\x43\x6b\x44','\x6f\x4b\x68\x63\x48\x6d\x6b\x4f\x57\x37\x42\x64\x4c\x6d\x6f\x4a\x57\x37\x34','\x57\x4f\x37\x63\x53\x43\x6f\x46\x57\x35\x2f\x63\x4d\x77\x33\x63\x49\x71','\x57\x4f\x62\x38\x78\x6d\x6b\x65\x57\x4f\x6e\x61\x57\x35\x74\x63\x4f\x61','\x57\x36\x68\x64\x48\x58\x75\x76\x57\x51\x78\x64\x47\x57\x6c\x64\x4e\x61','\x72\x49\x33\x64\x4c\x74\x61\x6b','\x57\x52\x52\x63\x4a\x75\x35\x76\x57\x36\x46\x63\x4b\x62\x42\x64\x51\x43\x6b\x41\x75\x61\x69\x4f','\x41\x4e\x70\x64\x55\x57','\x6e\x4e\x4e\x63\x4f\x47\x6d','\x6c\x68\x5a\x63\x52\x47\x6c\x64\x56\x71','\x77\x43\x6b\x6a\x69\x57','\x57\x36\x79\x49\x57\x34\x4b','\x6d\x77\x74\x63\x50\x47\x53','\x6b\x30\x56\x64\x4f\x76\x2f\x64\x49\x47','\x6e\x49\x64\x64\x47\x6d\x6b\x63\x57\x4f\x69','\x57\x34\x79\x33\x57\x50\x38\x33\x45\x47','\x57\x52\x65\x4f\x75\x59\x74\x63\x4a\x72\x69\x31\x6f\x61','\x57\x4f\x62\x34\x77\x71\x72\x32\x57\x34\x4f\x68\x57\x51\x34','\x41\x67\x53\x4b\x57\x50\x47\x32','\x77\x4c\x6c\x64\x4d\x53\x6f\x54\x79\x66\x39\x43\x72\x71','\x6d\x43\x6f\x70\x63\x4c\x50\x45\x57\x50\x75\x45\x62\x47\x64\x64\x56\x5a\x37\x64\x4a\x38\x6b\x4b','\x61\x6d\x6b\x70\x63\x59\x52\x63\x52\x33\x71\x77\x45\x61','\x63\x4a\x70\x64\x47\x53\x6b\x75\x57\x51\x75','\x77\x53\x6f\x73\x57\x34\x46\x64\x50\x67\x44\x52','\x43\x49\x56\x63\x4e\x6d\x6b\x42\x57\x37\x6d','\x43\x43\x6b\x76\x41\x72\x34\x42\x57\x34\x76\x61\x62\x47','\x70\x33\x42\x64\x50\x59\x39\x49\x57\x37\x34\x44\x43\x71','\x64\x38\x6b\x58\x74\x53\x6b\x2f\x7a\x4c\x64\x63\x49\x67\x53','\x79\x33\x74\x64\x53\x43\x6f\x43\x71\x4e\x39\x57\x42\x47','\x57\x36\x56\x63\x56\x53\x6f\x4a\x57\x37\x4c\x66\x63\x6d\x6f\x38\x72\x61','\x73\x38\x6b\x4b\x64\x38\x6b\x57\x6c\x47','\x57\x34\x2f\x63\x50\x53\x6f\x32\x57\x36\x6a\x71','\x72\x5a\x4c\x6c\x57\x36\x71','\x71\x4b\x38\x30\x57\x36\x65','\x57\x4f\x6c\x63\x4a\x5a\x53\x6c\x57\x50\x43','\x57\x50\x4e\x63\x4b\x43\x6b\x35\x57\x50\x62\x4f','\x6d\x71\x6c\x64\x47\x68\x69\x55','\x79\x4d\x74\x64\x51\x38\x6f\x56\x76\x32\x76\x53\x44\x57','\x6d\x78\x4e\x63\x56\x71','\x6a\x30\x37\x64\x4d\x58\x50\x44','\x74\x53\x6f\x64\x57\x34\x68\x64\x4e\x77\x48\x2f\x57\x36\x56\x64\x4a\x47','\x6e\x76\x52\x63\x4b\x32\x76\x50\x66\x53\x6f\x78\x71\x6d\x6b\x77\x46\x4e\x70\x63\x54\x43\x6b\x7a\x57\x51\x65','\x57\x35\x37\x63\x53\x75\x70\x63\x4f\x53\x6b\x51\x57\x50\x56\x63\x4f\x49\x68\x63\x4d\x30\x70\x64\x52\x76\x34','\x63\x31\x52\x64\x4f\x76\x68\x64\x53\x43\x6b\x59\x57\x34\x42\x64\x52\x57','\x7a\x38\x6f\x4f\x57\x50\x61\x4a','\x57\x34\x58\x71\x68\x4d\x39\x39','\x57\x50\x56\x63\x4f\x64\x57\x77\x57\x4f\x79','\x6c\x76\x71\x71\x57\x51\x72\x31','\x75\x43\x6f\x69\x77\x72\x30\x4e\x6f\x53\x6f\x77\x61\x71','\x70\x33\x5a\x64\x48\x59\x38','\x57\x4f\x78\x63\x4a\x53\x6b\x52\x57\x4f\x44\x49','\x57\x50\x4b\x4a\x70\x38\x6b\x5a\x6a\x68\x71\x79\x67\x43\x6b\x63\x72\x43\x6b\x65\x68\x43\x6f\x62','\x57\x36\x4a\x64\x56\x4e\x54\x4c\x72\x57','\x41\x75\x42\x64\x4b\x61','\x6a\x6d\x6b\x6e\x63\x53\x6b\x73','\x6c\x4a\x4e\x64\x4c\x61','\x57\x50\x33\x63\x52\x66\x75\x53\x6e\x71\x4a\x64\x54\x53\x6b\x39\x7a\x53\x6f\x50\x57\x4f\x5a\x64\x48\x43\x6b\x45\x71\x57','\x57\x51\x33\x63\x4c\x77\x62\x57\x57\x51\x2f\x63\x53\x57','\x57\x52\x50\x33\x7a\x6d\x6b\x59\x57\x4f\x75','\x7a\x61\x42\x64\x49\x59\x43\x55\x78\x6d\x6b\x71\x66\x57','\x7a\x31\x42\x64\x4c\x38\x6b\x4f\x57\x36\x6a\x4c\x6b\x38\x6f\x4a','\x41\x47\x5a\x64\x4c\x49\x43\x37\x73\x43\x6b\x61','\x57\x52\x4a\x63\x54\x64\x47\x32\x57\x50\x6d','\x57\x50\x4b\x76\x57\x34\x6a\x59\x57\x52\x57','\x62\x4d\x31\x49\x73\x5a\x46\x64\x51\x62\x64\x64\x4d\x71','\x6d\x72\x78\x63\x47\x38\x6f\x31\x57\x52\x48\x6f\x6f\x38\x6f\x49\x57\x34\x5a\x64\x52\x38\x6b\x6f','\x7a\x4c\x71\x30\x57\x37\x5a\x63\x4b\x57','\x57\x37\x6d\x2b\x57\x35\x34','\x57\x52\x75\x4d\x76\x57\x42\x63\x4d\x71','\x57\x50\x56\x63\x50\x31\x6d\x55\x6e\x61\x6c\x63\x53\x38\x6f\x7a\x78\x38\x6f\x71\x57\x52\x4a\x64\x56\x61','\x57\x4f\x4a\x63\x50\x53\x6f\x62\x57\x34\x70\x63\x4e\x32\x56\x63\x4a\x38\x6b\x59','\x6b\x75\x68\x63\x51\x47\x78\x64\x53\x57','\x57\x51\x71\x49\x76\x72\x46\x63\x49\x71','\x44\x43\x6b\x36\x74\x53\x6b\x6e\x72\x61','\x6c\x47\x78\x64\x48\x43\x6b\x76\x57\x51\x69','\x6e\x49\x72\x53\x6b\x73\x61','\x66\x48\x42\x64\x50\x4b\x34\x71\x70\x43\x6f\x4a\x57\x50\x38','\x6f\x57\x6e\x35\x6a\x48\x4f','\x75\x58\x56\x64\x49\x6d\x6f\x49\x57\x4f\x4f','\x71\x32\x4b\x35','\x57\x50\x43\x45\x57\x34\x39\x4a\x57\x51\x33\x64\x50\x53\x6b\x6c\x41\x71','\x57\x52\x79\x2f\x74\x48\x4b','\x57\x52\x6e\x5a\x77\x71\x7a\x38\x57\x4f\x38','\x57\x50\x30\x2f\x57\x34\x7a\x4b\x57\x50\x75','\x57\x36\x48\x69\x63\x33\x72\x4f\x79\x76\x6c\x63\x48\x47','\x57\x35\x5a\x64\x53\x61\x35\x34','\x57\x50\x47\x54\x6f\x38\x6b\x31\x6b\x33\x72\x79\x64\x53\x6b\x50\x71\x53\x6b\x76\x68\x61','\x67\x4c\x52\x64\x47\x4e\x52\x64\x4a\x61','\x78\x43\x6f\x64\x57\x34\x42\x64\x55\x71','\x43\x77\x74\x64\x52\x6d\x6f\x6c','\x71\x47\x46\x64\x4b\x73\x79\x4a','\x41\x76\x6c\x64\x4b\x47','\x57\x51\x42\x63\x4d\x4e\x48\x53\x57\x51\x71','\x57\x37\x52\x64\x54\x68\x4a\x64\x48\x65\x7a\x49\x57\x50\x46\x64\x47\x71','\x73\x33\x65\x58\x57\x52\x57\x6e'];_0x52bc=function(){return _0x462013;};return _0x52bc();}
1
+ // Keychain-backed workspace-id resolver (issue #111 Phase 1).
2
+ //
3
+ // Layered with paths.js#getWorkspaceId(). The current FS-only secret
4
+ // (`<workspace>/.evolver/workspace-id`, mode 0600) closes the *forgery*
5
+ // gap from PR #109 but leaves a *readability* gap: any process running
6
+ // under the same uid can still read the file and impersonate a workspace
7
+ // it does not own. This module gates that secret behind the OS keychain
8
+ // (macOS Keychain Services / libsecret on Linux / Windows Credential
9
+ // Manager) via the optional `@napi-rs/keyring` native addon.
10
+ //
11
+ // PLATFORM NOTES:
12
+ //
13
+ // macOS — backed by Keychain Services (Security.framework). Entries
14
+ // are encrypted by the OS and scoped to the user login session.
15
+ //
16
+ // Linux — backed by libsecret / GNOME Keyring (or the secret-service
17
+ // D-Bus protocol). Unavailable on headless servers without a
18
+ // D-Bus session; the addon load will succeed but getPassword()
19
+ // throws, causing `available: false` and transparent FS fallback.
20
+ //
21
+ // Windows — backed by Windows Credential Manager (CredRead/CredWrite via
22
+ // DPAPI-encrypted blobs). No extra installation needed when the
23
+ // @napi-rs/keyring addon is present. If the addon is absent (bun
24
+ // binary, stripped package, etc.) the resolver falls back to
25
+ // plaintext FS storage — see WINDOWS SECURITY NOTE below.
26
+ //
27
+ // WINDOWS SECURITY NOTE (fallback path):
28
+ // When @napi-rs/keyring is unavailable on Windows (addon load fails),
29
+ // getWorkspaceId() falls back to a plaintext file at
30
+ // <workspace>/.evolver/workspace-id. On Windows, mode 0o600 passed to
31
+ // fs.writeFileSync / fs.openSync is silently ignored, so the file is NOT
32
+ // restricted to the current user at the filesystem ACL level. The only
33
+ // isolation boundary is the Windows user-profile directory
34
+ // (%USERPROFILE%\.evolver or the workspace path), which is ACL-protected
35
+ // by default but grants access to the SYSTEM account and local Admins.
36
+ // This is weaker than the Unix 0o600 guarantee. Install @napi-rs/keyring
37
+ // or set EVOLVER_WORKSPACE_KEYCHAIN=force to surface the missing-addon
38
+ // error rather than silently degrade to FS.
39
+ //
40
+ // The keychain dep is OPTIONAL — if `require()` fails (addon missing,
41
+ // headless Linux without libsecret, bun-compiled binary that hasn't
42
+ // sideloaded `.node` yet), the resolver returns null and paths.js
43
+ // transparently falls back to the existing FS implementation. Behavior
44
+ // for *every* deployment that doesn't actively opt in stays identical
45
+ // to v1.85.x.
46
+ //
47
+ // Mode is controlled by `EVOLVER_WORKSPACE_KEYCHAIN`:
48
+ // - `auto` (default) — try keychain, fall back to FS on any failure.
49
+ // - `force` — keychain only; throw if unavailable. Use in
50
+ // CI to assert the addon is loaded.
51
+ // - `off` — skip keychain entirely; use FS path.
52
+ //
53
+ // Service / account naming:
54
+ // service = "evomap.evolver.workspace-id"
55
+ // account = absolute path to the workspace root
56
+ // The account is the workspace-root path because that's the natural
57
+ // identity boundary — multiple evolver installs sharing the same
58
+ // workspace root must resolve to the SAME secret (writer/reader parity,
59
+ // PR #109 round-1 MEDIUM).
60
+
61
+ const KEYCHAIN_SERVICE = 'evomap.evolver.workspace-id';
62
+
63
+ // 32 hex chars (16 random bytes) — same shape as the FS impl, kept
64
+ // strict so a legacy migration from FS into keychain validates cleanly.
65
+ const ID_RE = /^[a-f0-9]{32,}$/i;
66
+
67
+ let _cachedAddon = undefined; // undefined = not tried, null = failed, fn = ok
68
+
69
+ function loadAddon() {
70
+ if (_cachedAddon !== undefined) return _cachedAddon;
71
+ try {
72
+ // eslint-disable-next-line global-require
73
+ const mod = require('@napi-rs/keyring');
74
+ if (mod && typeof mod.Entry === 'function') {
75
+ // On Windows this uses the Credential Manager (DPAPI-backed) backend
76
+ // from keyring-rs — no extra setup required when the addon is present.
77
+ _cachedAddon = mod;
78
+ return _cachedAddon;
79
+ }
80
+ // Addon present but does not expose the expected Entry constructor —
81
+ // treat as unavailable; callers fall back to FS storage.
82
+ _cachedAddon = null;
83
+ return null;
84
+ } catch {
85
+ // Addon absent or failed to load (bun binary, stripped package, Windows
86
+ // without the prebuilt .node, etc.). On Windows this means Credential
87
+ // Manager is NOT used and the secret falls back to a plaintext file —
88
+ // see WINDOWS SECURITY NOTE at the top of this file.
89
+ _cachedAddon = null;
90
+ return null;
91
+ }
92
+ }
93
+
94
+ function getMode() {
95
+ const raw = String(process.env.EVOLVER_WORKSPACE_KEYCHAIN || 'auto').toLowerCase().trim();
96
+ if (raw === 'force' || raw === 'off' || raw === 'auto') return raw;
97
+ return 'auto';
98
+ }
99
+
100
+ // Patterns indicating a clean "entry not present" miss across the
101
+ // platform backends keyring-rs talks to:
102
+ // - Linux libsecret → "No matching entry found in secure storage"
103
+ // - macOS Keychain → "The specified item could not be found in the keychain"
104
+ // - Windows Cred Mgr → "Element not found"
105
+ // Anything else thrown by getPassword (locked keyring, no D-Bus, version
106
+ // mismatch, ambiguous entry, …) means the keychain itself isn't usable
107
+ // and MUST surface as `available: false` so callers — particularly
108
+ // `force` mode — can refuse to fall back to FS instead of silently
109
+ // papering over the failure (Bugbot PR #121 round-3 MEDIUM: dead code
110
+ // in force-mode unavailable path).
111
+ const NO_ENTRY_PATTERNS = [
112
+ /no\s+matching\s+entry/i, // libsecret
113
+ /could\s+not\s+be\s+found/i, // macOS
114
+ /element\s+not\s+found/i, // Windows
115
+ /\bnoentry\b/i, // keyring-rs NoEntry (CamelCase)
116
+ /\bno\s*entry\b/i, // generic spaced "no entry"
117
+ /not\s+found\s+in\s+(?:secure|keychain)/i,
118
+ ];
119
+
120
+ function _isNoEntryError(err) {
121
+ const msg = (err && err.message) || '';
122
+ return NO_ENTRY_PATTERNS.some((re) => re.test(msg));
123
+ }
124
+
125
+ // Read the secret for `account` from the OS keychain.
126
+ // Returns:
127
+ // { available: true, id: "<32-hex>" } on hit
128
+ // { available: true, id: null } on clean miss (NoEntry-class throw)
129
+ // { available: false, id: null } when the addon isn't loaded OR
130
+ // the keychain throws any non-
131
+ // NoEntry error (locked, no
132
+ // backend, version mismatch, …)
133
+ function readFromKeychain(account) {
134
+ const addon = loadAddon();
135
+ if (!addon) return { available: false, id: null };
136
+ try {
137
+ const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
138
+ const raw = entry.getPassword();
139
+ if (typeof raw === 'string' && ID_RE.test(raw.trim())) {
140
+ return { available: true, id: raw.trim() };
141
+ }
142
+ // getPassword resolved with empty / non-hex — treat as miss; the
143
+ // keychain itself is responding so we stay "available".
144
+ return { available: true, id: null };
145
+ } catch (err) {
146
+ if (_isNoEntryError(err)) return { available: true, id: null };
147
+ return { available: false, id: null };
148
+ }
149
+ }
150
+
151
+ // Persist `id` for `account` in the OS keychain. Returns true on
152
+ // success, false on any failure (callers fall back to FS).
153
+ function writeToKeychain(account, id) {
154
+ const addon = loadAddon();
155
+ if (!addon) return false;
156
+ try {
157
+ const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
158
+ entry.setPassword(id);
159
+ return true;
160
+ } catch {
161
+ return false;
162
+ }
163
+ }
164
+
165
+ module.exports = {
166
+ KEYCHAIN_SERVICE,
167
+ getMode,
168
+ loadAddon,
169
+ readFromKeychain,
170
+ writeToKeychain,
171
+ // Exported for test coverage of the NoEntry-vs-PlatformFailure
172
+ // discrimination (Bugbot PR #121 round-3 MEDIUM).
173
+ _isNoEntryError,
174
+ };