@evomap/evolver 1.90.0 → 2.0.0-beta.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 (231) hide show
  1. package/README.md +27 -564
  2. package/bin/evolver-llm-proxy.js +3 -0
  3. package/bin/evolver-mcp.js +2 -0
  4. package/bin/evolver-proxy.js +3 -0
  5. package/bin/evolver.js +4 -0
  6. package/index.js +1 -3670
  7. package/package.json +32 -62
  8. package/CONTRIBUTING.md +0 -19
  9. package/LICENSE +0 -641
  10. package/README.ja-JP.md +0 -521
  11. package/README.ko-KR.md +0 -520
  12. package/README.zh-CN.md +0 -531
  13. package/SKILL.md +0 -365
  14. package/assets/cover.png +0 -0
  15. package/assets/gep/genes.seed.json +0 -496
  16. package/conformance/savings-core/constants.json +0 -30
  17. package/conformance/savings-core/golden-vectors.json +0 -333
  18. package/scripts/a2a_export.js +0 -63
  19. package/scripts/a2a_ingest.js +0 -79
  20. package/scripts/a2a_promote.js +0 -118
  21. package/scripts/analyze_by_skill.js +0 -121
  22. package/scripts/build_binaries.js +0 -479
  23. package/scripts/check-changelog.js +0 -166
  24. package/scripts/extract_log.js +0 -85
  25. package/scripts/generate_history.js +0 -75
  26. package/scripts/gep_append_event.js +0 -96
  27. package/scripts/gep_personality_report.js +0 -234
  28. package/scripts/human_report.js +0 -147
  29. package/scripts/recall-verify-report.js +0 -234
  30. package/scripts/recover_loop.js +0 -61
  31. package/scripts/refresh_stars_badge.js +0 -168
  32. package/scripts/seed-merchants.js +0 -91
  33. package/scripts/skill2recipes.js +0 -118
  34. package/scripts/suggest_version.js +0 -89
  35. package/scripts/validate-modules.js +0 -38
  36. package/scripts/validate-suite.js +0 -78
  37. package/src/adapters/claudeCode.js +0 -194
  38. package/src/adapters/codex.js +0 -216
  39. package/src/adapters/cursor.js +0 -91
  40. package/src/adapters/hookAdapter.js +0 -469
  41. package/src/adapters/kiro.js +0 -195
  42. package/src/adapters/opencode.js +0 -326
  43. package/src/adapters/scripts/_lockPaths.js +0 -74
  44. package/src/adapters/scripts/_memoryFiltering.js +0 -35
  45. package/src/adapters/scripts/_runtimePaths.js +0 -440
  46. package/src/adapters/scripts/evolver-session-end.js +0 -321
  47. package/src/adapters/scripts/evolver-session-start.js +0 -587
  48. package/src/adapters/scripts/evolver-signal-detect.js +0 -98
  49. package/src/adapters/scripts/evolver-task-recall.js +0 -173
  50. package/src/atp/atpExecute.js +0 -283
  51. package/src/atp/atpTaskPickup.js +0 -233
  52. package/src/atp/autoBuyer.js +0 -382
  53. package/src/atp/autoDeliver.js +0 -215
  54. package/src/atp/cli.js +0 -354
  55. package/src/atp/cliAutobuyPrompt.js +0 -154
  56. package/src/atp/consumerAgent.js +0 -157
  57. package/src/atp/defaultHandler.js +0 -69
  58. package/src/atp/heartbeatSignalsHandler.js +0 -254
  59. package/src/atp/hubClient.js +0 -317
  60. package/src/atp/index.js +0 -38
  61. package/src/atp/merchantAgent.js +0 -118
  62. package/src/atp/protocol.js +0 -41
  63. package/src/atp/questionComposer.js +0 -133
  64. package/src/atp/serviceHelper.js +0 -92
  65. package/src/canary.js +0 -13
  66. package/src/config.js +0 -351
  67. package/src/evolve/guards.js +0 -1
  68. package/src/evolve/pipeline/collect.js +0 -1
  69. package/src/evolve/pipeline/dispatch.js +0 -1
  70. package/src/evolve/pipeline/enrich.js +0 -1
  71. package/src/evolve/pipeline/hub.js +0 -1
  72. package/src/evolve/pipeline/select.js +0 -1
  73. package/src/evolve/pipeline/signals.js +0 -1
  74. package/src/evolve/utils.js +0 -1
  75. package/src/evolve.js +0 -1
  76. package/src/experiment/agentRunner.js +0 -229
  77. package/src/experiment/cli.js +0 -159
  78. package/src/experiment/comparison.js +0 -233
  79. package/src/experiment/metrics.js +0 -75
  80. package/src/forceUpdate.js +0 -991
  81. package/src/gep/a2a.js +0 -173
  82. package/src/gep/a2aProtocol.js +0 -1
  83. package/src/gep/analyzer.js +0 -35
  84. package/src/gep/antiAbuseTelemetry.js +0 -1
  85. package/src/gep/assetCallLog.js +0 -197
  86. package/src/gep/assetStore.js +0 -723
  87. package/src/gep/assets.js +0 -36
  88. package/src/gep/autoDistillConv.js +0 -1
  89. package/src/gep/autoDistillLlm.js +0 -1
  90. package/src/gep/bridge.js +0 -138
  91. package/src/gep/candidateEval.js +0 -1
  92. package/src/gep/candidates.js +0 -1
  93. package/src/gep/claimNudge.js +0 -121
  94. package/src/gep/cliContracts.js +0 -1190
  95. package/src/gep/contentHash.js +0 -1
  96. package/src/gep/conversationDistiller.js +0 -1
  97. package/src/gep/conversationSniffer.js +0 -1
  98. package/src/gep/crypto.js +0 -1
  99. package/src/gep/curriculum.js +0 -1
  100. package/src/gep/deviceId.js +0 -1
  101. package/src/gep/directoryClient.js +0 -115
  102. package/src/gep/envFingerprint.js +0 -1
  103. package/src/gep/epigenetics.js +0 -1
  104. package/src/gep/execBridge.js +0 -1
  105. package/src/gep/executionTrace.js +0 -291
  106. package/src/gep/explore.js +0 -1
  107. package/src/gep/featureFlags.js +0 -121
  108. package/src/gep/gitOps.js +0 -265
  109. package/src/gep/hash.js +0 -1
  110. package/src/gep/hostErrorClassifier.js +0 -34
  111. package/src/gep/hubFetch.js +0 -1
  112. package/src/gep/hubReview.js +0 -1
  113. package/src/gep/hubSearch.js +0 -1
  114. package/src/gep/hubVerify.js +0 -1
  115. package/src/gep/idleScheduler.js +0 -400
  116. package/src/gep/issueReporter.js +0 -416
  117. package/src/gep/learningSignals.js +0 -1
  118. package/src/gep/llmReview.js +0 -92
  119. package/src/gep/localStateAwareness.js +0 -243
  120. package/src/gep/mailboxTransport.js +0 -119
  121. package/src/gep/memoryGraph.js +0 -1
  122. package/src/gep/memoryGraphAdapter.js +0 -1
  123. package/src/gep/mutation.js +0 -1
  124. package/src/gep/narrativeMemory.js +0 -1
  125. package/src/gep/oauthLogin.js +0 -181
  126. package/src/gep/openPRRegistry.js +0 -1
  127. package/src/gep/paths.js +0 -522
  128. package/src/gep/personality.js +0 -1
  129. package/src/gep/policyCheck.js +0 -1
  130. package/src/gep/portable.js +0 -103
  131. package/src/gep/privacyClient.js +0 -235
  132. package/src/gep/prompt.js +0 -1
  133. package/src/gep/questionGenerator.js +0 -518
  134. package/src/gep/recallInject.js +0 -1
  135. package/src/gep/recallVerifier.js +0 -1
  136. package/src/gep/reflection.js +0 -1
  137. package/src/gep/sanitize.js +0 -264
  138. package/src/gep/savingsCore.js +0 -1
  139. package/src/gep/schemas/capsule.js +0 -170
  140. package/src/gep/schemas/gene.js +0 -154
  141. package/src/gep/schemas/index.js +0 -8
  142. package/src/gep/schemas/protocol.js +0 -51
  143. package/src/gep/schemas/task.js +0 -74
  144. package/src/gep/selector.js +0 -1
  145. package/src/gep/selfPR.js +0 -469
  146. package/src/gep/signals.js +0 -776
  147. package/src/gep/skill2gep.js +0 -1056
  148. package/src/gep/skill2gepAudit.js +0 -303
  149. package/src/gep/skill2recipes.js +0 -511
  150. package/src/gep/skillDistiller.js +0 -1
  151. package/src/gep/skillPublisher.js +0 -358
  152. package/src/gep/solidify.js +0 -1
  153. package/src/gep/strategy.js +0 -1
  154. package/src/gep/taskReceiver.js +0 -575
  155. package/src/gep/tokenSavings.js +0 -1
  156. package/src/gep/trajectoryExport.js +0 -1
  157. package/src/gep/validationReport.js +0 -55
  158. package/src/gep/validator/index.js +0 -411
  159. package/src/gep/validator/reporter.js +0 -210
  160. package/src/gep/validator/sandboxExecutor.js +0 -480
  161. package/src/gep/validator/stakeBootstrap.js +0 -357
  162. package/src/gep/workspaceKeychain.js +0 -1
  163. package/src/ops/cleanup.js +0 -80
  164. package/src/ops/commentary.js +0 -60
  165. package/src/ops/health_check.js +0 -104
  166. package/src/ops/index.js +0 -11
  167. package/src/ops/innovation.js +0 -67
  168. package/src/ops/lifecycle.js +0 -798
  169. package/src/ops/self_repair.js +0 -76
  170. package/src/ops/skills_monitor.js +0 -147
  171. package/src/ops/trigger.js +0 -33
  172. package/src/proxy/clientSettings.js +0 -405
  173. package/src/proxy/envelope.js +0 -59
  174. package/src/proxy/extensions/dmHandler.js +0 -45
  175. package/src/proxy/extensions/sessionHandler.js +0 -141
  176. package/src/proxy/extensions/skillUpdater.js +0 -64
  177. package/src/proxy/extensions/traceControl.js +0 -1
  178. package/src/proxy/index.js +0 -1395
  179. package/src/proxy/inject.js +0 -1
  180. package/src/proxy/lifecycle/manager.js +0 -1568
  181. package/src/proxy/mailbox/state.js +0 -207
  182. package/src/proxy/mailbox/store.js +0 -602
  183. package/src/proxy/router/cache_passthrough.js +0 -26
  184. package/src/proxy/router/features.js +0 -84
  185. package/src/proxy/router/gemini_route.js +0 -154
  186. package/src/proxy/router/messages_route.js +0 -535
  187. package/src/proxy/router/model_router.js +0 -113
  188. package/src/proxy/router/models_route.js +0 -52
  189. package/src/proxy/router/ollama_route.js +0 -103
  190. package/src/proxy/router/responses_route.js +0 -170
  191. package/src/proxy/router/vertex_route.js +0 -110
  192. package/src/proxy/server/http.js +0 -363
  193. package/src/proxy/server/routes.js +0 -558
  194. package/src/proxy/server/settings.js +0 -115
  195. package/src/proxy/sync/engine.js +0 -179
  196. package/src/proxy/sync/inbound.js +0 -211
  197. package/src/proxy/sync/outbound.js +0 -361
  198. package/src/proxy/task/monitor.js +0 -131
  199. package/src/proxy/trace/extractor.js +0 -1
  200. package/src/proxy/trace/usage.js +0 -1
  201. package/src/solo/breaker.js +0 -25
  202. package/src/solo/gitGuard.js +0 -65
  203. package/src/webui/client/clientJs/assets.js +0 -111
  204. package/src/webui/client/clientJs/bootstrap.js +0 -92
  205. package/src/webui/client/clientJs/common.js +0 -77
  206. package/src/webui/client/clientJs/i18n.js +0 -366
  207. package/src/webui/client/clientJs/index.js +0 -35
  208. package/src/webui/client/clientJs/interactions.js +0 -351
  209. package/src/webui/client/clientJs/overview.js +0 -152
  210. package/src/webui/client/clientJs/personality.js +0 -285
  211. package/src/webui/client/clientJs/pipelines.js +0 -330
  212. package/src/webui/client/indexHtml.js +0 -221
  213. package/src/webui/client/static.js +0 -23
  214. package/src/webui/client/stylesCss.js +0 -639
  215. package/src/webui/client/vendor/README.md +0 -15
  216. package/src/webui/client/vendor/echarts.min.js +0 -45
  217. package/src/webui/index.js +0 -14
  218. package/src/webui/observer/assets.js +0 -146
  219. package/src/webui/observer/index.js +0 -37
  220. package/src/webui/observer/interactions.js +0 -127
  221. package/src/webui/observer/jsonl.js +0 -75
  222. package/src/webui/observer/paths.js +0 -46
  223. package/src/webui/observer/personality.js +0 -43
  224. package/src/webui/observer/pipelineEvents.js +0 -58
  225. package/src/webui/observer/redact.js +0 -63
  226. package/src/webui/observer/runs.js +0 -356
  227. package/src/webui/observer/safety.js +0 -57
  228. package/src/webui/observer/skills.js +0 -70
  229. package/src/webui/observer/status.js +0 -71
  230. package/src/webui/server/http.js +0 -138
  231. package/src/webui/server/routes.js +0 -41
@@ -1,291 +0,0 @@
1
- // Execution Trace: structured, desensitized evolution execution summary.
2
- // Built during solidify and optionally shared with Hub via EvolutionEvent payload.
3
- //
4
- // Desensitization rules (applied locally, never on Hub):
5
- // - File paths: basename + extension only (src/utils/retry.js -> retry.js)
6
- // - Code content: never sent, only statistical metrics (lines, files)
7
- // - Error messages: type signature only (TypeError: x is not a function -> TypeError)
8
- // - Environment variables, secrets, user data: stripped entirely
9
- // - Configurable via EVOLVER_TRACE_LEVEL: none | minimal | standard | collaboration (default: minimal)
10
-
11
- const path = require('path');
12
-
13
- const TRACE_LEVELS = { none: 0, minimal: 1, standard: 2, collaboration: 3 };
14
-
15
- function getTraceLevel() {
16
- const raw = String(process.env.EVOLVER_TRACE_LEVEL || 'minimal').toLowerCase().trim();
17
- return TRACE_LEVELS[raw] != null ? raw : 'minimal';
18
- }
19
-
20
- function desensitizeFilePath(filePath) {
21
- if (!filePath || typeof filePath !== 'string') return null;
22
- const ext = path.extname(filePath);
23
- const base = path.basename(filePath);
24
- return base || ext || 'unknown';
25
- }
26
-
27
- function extractErrorSignature(errorText) {
28
- if (!errorText || typeof errorText !== 'string') return null;
29
- const text = errorText.trim();
30
-
31
- // Match common error type patterns: TypeError, ReferenceError, SyntaxError, etc.
32
- const jsError = text.match(/^((?:[A-Z][a-zA-Z]*)?Error)\b/);
33
- if (jsError) return jsError[1];
34
-
35
- // Match errno-style: ECONNRESET, ENOENT, EPERM, etc.
36
- const errno = text.match(/\b(E[A-Z]{2,})\b/);
37
- if (errno) return errno[1];
38
-
39
- // Match HTTP status codes
40
- const http = text.match(/\b((?:4|5)\d{2})\b/);
41
- if (http) return 'HTTP_' + http[1];
42
-
43
- // Fallback: first word if it looks like an error type
44
- const firstWord = text.split(/[\s:]/)[0];
45
- if (firstWord && firstWord.length <= 40 && /^[A-Z]/.test(firstWord)) return firstWord;
46
-
47
- return 'UnknownError';
48
- }
49
-
50
- function inferToolChain(validationResults, blast) {
51
- const tools = new Set();
52
-
53
- if (blast && blast.files > 0) tools.add('file_edit');
54
-
55
- if (Array.isArray(validationResults)) {
56
- for (const r of validationResults) {
57
- const cmd = String(r.cmd || '').trim();
58
- if (cmd.startsWith('npm test') || cmd.includes('jest') || cmd.includes('mocha')) {
59
- tools.add('test_run');
60
- } else if (cmd.includes('lint') || cmd.includes('eslint')) {
61
- tools.add('lint_check');
62
- } else if (cmd.includes('validate') || cmd.includes('check')) {
63
- tools.add('validation_run');
64
- } else if (cmd.startsWith('node ')) {
65
- tools.add('node_exec');
66
- }
67
- }
68
- }
69
-
70
- return Array.from(tools);
71
- }
72
-
73
- function classifyBlastLevel(blast) {
74
- if (!blast) return 'unknown';
75
- const files = Number(blast.files) || 0;
76
- const lines = Number(blast.lines) || 0;
77
- if (files <= 3 && lines <= 50) return 'low';
78
- if (files <= 10 && lines <= 200) return 'medium';
79
- return 'high';
80
- }
81
-
82
- function buildExecutionTrace({
83
- gene,
84
- mutation,
85
- signals,
86
- blast,
87
- constraintCheck,
88
- validation,
89
- canary,
90
- outcomeStatus,
91
- startedAt,
92
- collaborationContext,
93
- }) {
94
- const level = getTraceLevel();
95
- if (level === 'none') return null;
96
-
97
- const trace = {
98
- gene_id: gene && gene.id ? String(gene.id) : null,
99
- mutation_category: (mutation && mutation.category) || (gene && gene.category) || null,
100
- signals_matched: Array.isArray(signals) ? signals.slice(0, 10) : [],
101
- outcome: outcomeStatus || 'unknown',
102
- };
103
-
104
- // Minimal level: core metrics only
105
- trace.files_changed_count = blast ? Number(blast.files) || 0 : 0;
106
- trace.lines_added = 0;
107
- trace.lines_removed = 0;
108
-
109
- // Compute added/removed from blast if available
110
- if (blast && blast.lines) {
111
- // blast.lines is total churn (added + deleted); split heuristically
112
- const total = Number(blast.lines) || 0;
113
- if (outcomeStatus === 'success') {
114
- trace.lines_added = Math.round(total * 0.6);
115
- trace.lines_removed = total - trace.lines_added;
116
- } else {
117
- trace.lines_added = Math.round(total * 0.5);
118
- trace.lines_removed = total - trace.lines_added;
119
- }
120
- }
121
-
122
- trace.validation_result = validation && validation.ok ? 'pass' : 'fail';
123
- trace.blast_radius = classifyBlastLevel(blast);
124
-
125
- // Standard level: richer context
126
- if (level === 'standard') {
127
- // Desensitized file list (basenames only)
128
- if (blast && Array.isArray(blast.changed_files)) {
129
- trace.file_types = {};
130
- for (const f of blast.changed_files) {
131
- const ext = path.extname(f) || '.unknown';
132
- trace.file_types[ext] = (trace.file_types[ext] || 0) + 1;
133
- }
134
- }
135
-
136
- // Validation commands (already safe -- node/npm/npx only)
137
- if (validation && Array.isArray(validation.results)) {
138
- trace.validation_commands = validation.results.map(r => String(r.cmd || '').slice(0, 100));
139
- }
140
-
141
- // Error signatures (desensitized)
142
- trace.error_signatures = [];
143
- if (constraintCheck && Array.isArray(constraintCheck.violations)) {
144
- for (const v of constraintCheck.violations) {
145
- // Constraint violations have known prefixes; classify directly
146
- const vStr = String(v);
147
- if (vStr.startsWith('max_files')) trace.error_signatures.push('max_files_exceeded');
148
- else if (vStr.startsWith('forbidden_path')) trace.error_signatures.push('forbidden_path');
149
- else if (vStr.startsWith('HARD CAP')) trace.error_signatures.push('hard_cap_breach');
150
- else if (vStr.startsWith('CRITICAL')) trace.error_signatures.push('critical_overrun');
151
- else if (vStr.startsWith('critical_path')) trace.error_signatures.push('critical_path_modified');
152
- else if (vStr.startsWith('canary_failed')) trace.error_signatures.push('canary_failed');
153
- else if (vStr.startsWith('ethics:')) trace.error_signatures.push('ethics_violation');
154
- else {
155
- const sig = extractErrorSignature(v);
156
- if (sig) trace.error_signatures.push(sig);
157
- }
158
- }
159
- }
160
- if (validation && Array.isArray(validation.results)) {
161
- for (const r of validation.results) {
162
- if (!r.ok && r.err) {
163
- const sig = extractErrorSignature(r.err);
164
- if (sig && !trace.error_signatures.includes(sig)) {
165
- trace.error_signatures.push(sig);
166
- }
167
- }
168
- }
169
- }
170
- trace.error_signatures = trace.error_signatures.slice(0, 10);
171
-
172
- // Tool chain inference
173
- trace.tool_chain = inferToolChain(
174
- validation && validation.results ? validation.results : [],
175
- blast
176
- );
177
-
178
- // Duration
179
- if (validation && validation.startedAt && validation.finishedAt) {
180
- trace.validation_duration_ms = validation.finishedAt - validation.startedAt;
181
- }
182
-
183
- // Canary result
184
- if (canary && !canary.skipped) {
185
- trace.canary_ok = !!canary.ok;
186
- }
187
- }
188
-
189
- // Collaboration level: swarm interaction decision traces
190
- if (level === 'collaboration') {
191
- // Include everything from standard level
192
- if (blast && Array.isArray(blast.changed_files)) {
193
- if (!trace.file_types) {
194
- trace.file_types = {};
195
- for (const f of blast.changed_files) {
196
- const ext = path.extname(f) || '.unknown';
197
- trace.file_types[ext] = (trace.file_types[ext] || 0) + 1;
198
- }
199
- }
200
- }
201
-
202
- if (validation && Array.isArray(validation.results)) {
203
- if (!trace.validation_commands) {
204
- trace.validation_commands = validation.results.map(r => String(r.cmd || '').slice(0, 100));
205
- }
206
- }
207
-
208
- if (!trace.error_signatures) trace.error_signatures = [];
209
- if (!trace.tool_chain) {
210
- trace.tool_chain = inferToolChain(
211
- validation && validation.results ? validation.results : [],
212
- blast
213
- );
214
- }
215
-
216
- if (canary && !canary.skipped && trace.canary_ok === undefined) {
217
- trace.canary_ok = !!canary.ok;
218
- }
219
-
220
- // Collaboration-specific fields
221
- trace.collaboration = {};
222
-
223
- if (collaborationContext) {
224
- const ctx = collaborationContext;
225
-
226
- if (ctx.roleDecision) {
227
- trace.collaboration.role_decision = {
228
- chosen_role: ctx.roleDecision.chosenRole || null,
229
- reasoning: (ctx.roleDecision.reasoning || '').slice(0, 500),
230
- alternatives_considered: Array.isArray(ctx.roleDecision.alternatives)
231
- ? ctx.roleDecision.alternatives.slice(0, 5)
232
- : [],
233
- };
234
- }
235
-
236
- if (ctx.teammateOutputsConsumed) {
237
- trace.collaboration.context_consumption = Array.isArray(ctx.teammateOutputsConsumed)
238
- ? ctx.teammateOutputsConsumed.slice(0, 10).map(o => ({
239
- from_node_id: o.fromNodeId || null,
240
- output_type: o.outputType || 'unknown',
241
- consumed_bytes: Number(o.consumedBytes) || 0,
242
- usage_summary: (o.usageSummary || '').slice(0, 200),
243
- }))
244
- : [];
245
- }
246
-
247
- if (ctx.delegations) {
248
- trace.collaboration.delegations = Array.isArray(ctx.delegations)
249
- ? ctx.delegations.slice(0, 10).map(d => ({
250
- to_node_id: d.toNodeId || null,
251
- task_title: (d.taskTitle || '').slice(0, 100),
252
- role: d.role || 'builder',
253
- }))
254
- : [];
255
- }
256
-
257
- if (ctx.reviewFeedback) {
258
- trace.collaboration.review_feedback = {
259
- score: Math.max(0, Math.min(100, Number(ctx.reviewFeedback.score) || 0)),
260
- issues_count: Number(ctx.reviewFeedback.issuesCount) || 0,
261
- fix_instructions_count: Number(ctx.reviewFeedback.fixInstructionsCount) || 0,
262
- };
263
- }
264
-
265
- if (ctx.roleSwitch) {
266
- trace.collaboration.role_switch = {
267
- from_role: ctx.roleSwitch.fromRole || null,
268
- to_role: ctx.roleSwitch.toRole || null,
269
- trigger: (ctx.roleSwitch.trigger || '').slice(0, 200),
270
- };
271
- }
272
-
273
- if (ctx.sessionId) trace.collaboration.session_id = ctx.sessionId;
274
- if (ctx.teamSize) trace.collaboration.team_size = Math.max(0, Number(ctx.teamSize) || 0);
275
- }
276
- }
277
-
278
- // Timestamp
279
- trace.created_at = new Date().toISOString();
280
-
281
- return trace;
282
- }
283
-
284
- module.exports = {
285
- buildExecutionTrace,
286
- desensitizeFilePath,
287
- extractErrorSignature,
288
- inferToolChain,
289
- classifyBlastLevel,
290
- getTraceLevel,
291
- };
@@ -1 +0,0 @@
1
- const _0x31e7f1=_0x103d;(function(_0x37a9eb,_0xe7abb8){const _0x4c8239=_0x103d,_0x451e52=_0x37a9eb();while(!![]){try{const _0x478438=-parseInt(_0x4c8239(0x230,'\x6f\x46\x5b\x52'))/(0x476+0x52*-0xb+-0xef)+parseInt(_0x4c8239(0x2af,'\x47\x5d\x26\x37'))/(0x7ad+-0x106e+0x8c3)*(parseInt(_0x4c8239(0x284,'\x47\x57\x4c\x66'))/(-0x1710+0x979+0x1*0xd9a))+parseInt(_0x4c8239(0x36d,'\x6f\x46\x5b\x52'))/(0x1*-0x2a7+0x9*-0x6+0x2e1)*(parseInt(_0x4c8239(0x2bc,'\x71\x46\x72\x41'))/(0x1*-0x1aad+0x1273*-0x1+0x1*0x2d25))+-parseInt(_0x4c8239(0x3b5,'\x57\x4c\x55\x34'))/(0x9bc*0x3+0xf1*-0x1+0x1c3d*-0x1)*(-parseInt(_0x4c8239(0x3b1,'\x5e\x29\x66\x75'))/(-0x92b+-0xece*0x2+0x26ce))+-parseInt(_0x4c8239(0x1f8,'\x28\x76\x6c\x53'))/(0xf1a*0x1+0x13c9+-0x22db)*(parseInt(_0x4c8239(0x37f,'\x32\x65\x30\x6f'))/(-0x23ea+-0x1421+0x3814))+-parseInt(_0x4c8239(0x38d,'\x37\x4b\x41\x5e'))/(0x1*-0x22d9+-0xc6a+0x2f4d)+parseInt(_0x4c8239(0x2fe,'\x52\x4f\x4b\x29'))/(0xed2+-0x10b*-0x8+0x1*-0x171f);if(_0x478438===_0xe7abb8)break;else _0x451e52['push'](_0x451e52['shift']());}catch(_0x36716c){_0x451e52['push'](_0x451e52['shift']());}}}(_0x521b,0xf37d7+0x641*-0x22d+0xa1db0));const _0x19571a=(function(){let _0x2cce33=!![];return function(_0x3f874d,_0x4e80be){const _0x3740b8=_0x103d,_0x256a7b={};_0x256a7b['\x69\x62\x41\x65\x4e']=_0x3740b8(0x337,'\x50\x24\x69\x29');const _0x114132=_0x256a7b,_0x197f6a=_0x2cce33?function(){const _0x2d5821=_0x3740b8;if(_0x114132[_0x2d5821(0x2b8,'\x75\x4a\x25\x73')]!==_0x114132['\x69\x62\x41\x65\x4e'])return{};else{if(_0x4e80be){const _0x346611=_0x4e80be[_0x2d5821(0x24a,'\x34\x51\x6c\x67')](_0x3f874d,arguments);return _0x4e80be=null,_0x346611;}}}:function(){};return _0x2cce33=![],_0x197f6a;};}()),_0x251a76=_0x19571a(this,function(){const _0xa1d660=_0x103d,_0x5c0223={};_0x5c0223[_0xa1d660(0x38b,'\x66\x61\x75\x23')]=_0xa1d660(0x35f,'\x48\x36\x5e\x4c')+_0xa1d660(0x3b6,'\x55\x34\x5a\x38');const _0x145e21=_0x5c0223;return _0x251a76[_0xa1d660(0x3bd,'\x51\x77\x57\x41')]()[_0xa1d660(0x27c,'\x66\x61\x75\x23')](_0x145e21['\x71\x70\x43\x4f\x47'])[_0xa1d660(0x205,'\x33\x5a\x5d\x33')]()['\x63\x6f\x6e\x73\x74\x72\x75\x63'+_0xa1d660(0x298,'\x33\x5a\x5d\x33')](_0x251a76)[_0xa1d660(0x387,'\x74\x24\x73\x44')](_0xa1d660(0x292,'\x34\x51\x6c\x67')+_0xa1d660(0x34b,'\x47\x71\x53\x52'));});_0x251a76();'use strict';const _0x29a8a9=require('\x66\x73'),_0x1b59f5=require(_0x31e7f1(0x3ad,'\x43\x50\x4e\x55')),{execSync:_0x1c0d86}=require('\x63\x68\x69\x6c\x64\x5f\x70\x72'+_0x31e7f1(0x376,'\x47\x5d\x26\x37')),_0x5e17fd=(-0x12f7+0x21c9+-0x4*0x3b2)*(0x69+0x1065*-0x2+-0x2461*-0x1)*(0x9e1+0x17da+0x81*-0x3b),{getEvolutionDir:_0x535b2b,getRepoRoot:_0x2daf58}=require('\x2e\x2f\x70\x61\x74\x68\x73'),_0x3fc85d=String(process.env.EVOLVER_EXPLORE_ENABLED||_0x31e7f1(0x1ff,'\x47\x57\x4c\x66'))['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x31e7f1(0x308,'\x62\x21\x36\x52')]()!==_0x31e7f1(0x1fe,'\x66\x24\x36\x6c'),_0x558e7d=parseInt(process.env.EVOLVER_EXPLORE_COOLDOWN_MS||'\x31\x38\x30\x30\x30\x30\x30',0x1*0x26db+-0x2*-0x10ac+0x1*-0x4829)||0xfcd72+0x11855*-0x1f+0x2d9c19,_0x3c37a4=(process.env.EVOLVER_EXPLORE_ARXIV_CATEGORIES||_0x31e7f1(0x245,'\x52\x4f\x4b\x29')+_0x31e7f1(0x36f,'\x6f\x46\x5b\x52'))[_0x31e7f1(0x389,'\x33\x5a\x5d\x33')]('\x2c')[_0x31e7f1(0x332,'\x75\x4a\x25\x73')](_0x52df8c=>_0x52df8c[_0x31e7f1(0x30d,'\x49\x61\x78\x5b')]())[_0x31e7f1(0x238,'\x57\x4c\x55\x34')](Boolean),_0x5f588b=parseInt(process.env.EVOLVER_EXPLORE_STALE_DAYS||'\x33\x30',-0x2b*-0xb+-0x2631*-0x1+-0x5*0x800)||0xb*-0xe+0x1abf*-0x1+-0x59*-0x4f,_0x8ffcd2=0x4b*-0x2f+-0x220d+-0x2*-0x17f3,_0x2a1093=0x796*-0x3+-0x84f*0x1+0x1f1b,_0x23bc67=0x1deb+-0x92e+-0xe5*0x15;function _0x3c4be5(){const _0x2e13a7=_0x31e7f1,_0xb78783={'\x42\x49\x6b\x6c\x56':function(_0x597334){return _0x597334();},'\x6e\x74\x55\x55\x41':_0x2e13a7(0x2b5,'\x47\x71\x53\x52')+_0x2e13a7(0x371,'\x66\x24\x36\x6c')+_0x2e13a7(0x1ef,'\x55\x34\x5a\x38')};return _0x1b59f5['\x6a\x6f\x69\x6e'](_0xb78783[_0x2e13a7(0x2c8,'\x52\x4f\x4b\x29')](_0x535b2b),_0xb78783[_0x2e13a7(0x3aa,'\x30\x69\x32\x66')]);}function _0x11f493(){const _0x343ae2=_0x31e7f1,_0xf4be24={'\x44\x52\x5a\x79\x72':function(_0x52da94,_0x59c566){return _0x52da94-_0x59c566;},'\x66\x72\x57\x4c\x55':function(_0x36854e,_0x1fc357){return _0x36854e*_0x1fc357;},'\x6d\x41\x41\x59\x43':_0x343ae2(0x3b8,'\x64\x5e\x6c\x67'),'\x52\x70\x6a\x56\x58':'\x73\x74\x61\x6c\x65\x5f\x66\x69'+'\x6c\x65','\x6e\x6e\x6b\x73\x74':function(_0x3fee52,_0x5cb5a5){return _0x3fee52===_0x5cb5a5;},'\x6b\x42\x66\x58\x6e':_0x343ae2(0x217,'\x37\x4b\x41\x5e'),'\x72\x75\x53\x79\x6d':function(_0x34c5cf){return _0x34c5cf();},'\x67\x77\x65\x4d\x75':_0x343ae2(0x2b4,'\x46\x5d\x34\x73')};try{if(_0xf4be24[_0x343ae2(0x261,'\x2a\x6e\x4e\x58')](_0xf4be24[_0x343ae2(0x2e2,'\x70\x59\x66\x40')],_0xf4be24[_0x343ae2(0x339,'\x43\x50\x4e\x55')])){const _0xdfdce3=_0x29a8a9[_0x343ae2(0x2e5,'\x71\x46\x72\x41')+_0x343ae2(0x38f,'\x74\x24\x73\x44')](_0xf4be24[_0x343ae2(0x22b,'\x29\x48\x5a\x35')](_0x3c4be5),_0xf4be24[_0x343ae2(0x3a7,'\x51\x4e\x76\x41')]);return JSON[_0x343ae2(0x2bf,'\x51\x4e\x76\x41')](_0xdfdce3);}else{const _0x46a7ef=_0x54b2d3['\x73\x74\x61\x74\x53\x79\x6e\x63'](_0x186481[_0x343ae2(0x28d,'\x36\x4d\x42\x74')](_0x490709,_0x3f9122)),_0x54dae0=_0xe653f7[_0x343ae2(0x29c,'\x71\x78\x41\x4d')](_0xf4be24[_0x343ae2(0x364,'\x5d\x25\x53\x55')](_0x46139b,_0x46a7ef[_0x343ae2(0x259,'\x57\x4c\x55\x34')])/(_0xf4be24['\x66\x72\x57\x4c\x55'](_0xf4be24[_0x343ae2(0x2d0,'\x28\x4f\x34\x67')](-0x1*-0x219b+-0x2308+-0x1*-0x185,0x1db+0x2*0x243+-0xd*0x79),-0x199e+0x25e*0xb+0x6*-0x8)*(0x1d2c+-0x10e7+-0x85d))),_0x2d23f2={};_0x2d23f2[_0x343ae2(0x23c,'\x66\x24\x36\x6c')]=_0xf4be24[_0x343ae2(0x231,'\x43\x50\x4e\x55')],_0x2d23f2['\x63\x61\x74\x65\x67\x6f\x72\x79']=_0xf4be24[_0x343ae2(0x358,'\x25\x6d\x45\x37')],_0x2d23f2['\x66\x69\x6c\x65']=_0x1527bc,_0x2d23f2[_0x343ae2(0x2ed,'\x47\x5d\x26\x37')]=_0x54dae0,_0x2d23f2[_0x343ae2(0x313,'\x66\x61\x75\x23')+'\x65\x73']=_0x46a7ef[_0x343ae2(0x29f,'\x66\x61\x75\x23')],_0x368563[_0x343ae2(0x256,'\x43\x50\x4e\x55')](_0x2d23f2);}}catch(_0x2a5955){return{};}}function _0x165126(_0x17bbf4){const _0x571bac=_0x31e7f1,_0x1f8f71={'\x46\x72\x61\x45\x51':function(_0x2d56c2){return _0x2d56c2();},'\x4a\x41\x43\x72\x47':function(_0x33dcfb,_0x3755d6){return _0x33dcfb+_0x3755d6;},'\x50\x65\x6c\x44\x54':'\x2e\x74\x6d\x70','\x48\x6e\x67\x68\x56':function(_0x35ad74,_0x22b902){return _0x35ad74+_0x22b902;},'\x71\x4b\x69\x53\x46':'\x75\x74\x66\x38'},_0x20f00e=_0x1f8f71[_0x571bac(0x28e,'\x48\x36\x5e\x4c')](_0x535b2b),_0x5b261e=_0x3c4be5();try{const _0x1e9939={};_0x1e9939[_0x571bac(0x1f6,'\x33\x5a\x5d\x33')+'\x65']=!![];if(!_0x29a8a9[_0x571bac(0x2b2,'\x43\x50\x4e\x55')+'\x6e\x63'](_0x20f00e))_0x29a8a9[_0x571bac(0x2c5,'\x52\x4f\x4b\x29')+'\x63'](_0x20f00e,_0x1e9939);const _0x991082={'\x6c\x61\x73\x74\x5f\x65\x78\x70\x6c\x6f\x72\x65\x5f\x61\x74':new Date()[_0x571bac(0x206,'\x48\x36\x5e\x4c')+_0x571bac(0x34e,'\x28\x4f\x34\x67')](),'\x6c\x61\x73\x74\x5f\x65\x78\x70\x6c\x6f\x72\x65\x5f\x74\x73':Date[_0x571bac(0x2ae,'\x25\x6d\x45\x37')](),'\x72\x65\x73\x75\x6c\x74\x5f\x63\x6f\x75\x6e\x74':_0x17bbf4[_0x571bac(0x273,'\x5a\x57\x70\x69')],'\x72\x65\x73\x75\x6c\x74\x73':_0x17bbf4[_0x571bac(0x222,'\x32\x65\x30\x6f')](-0x148c+0x1c*-0x2b+-0x328*-0x8,-0x19*0x12f+0x1e49+0x25*-0x4)},_0x4c0c63=_0x1f8f71['\x4a\x41\x43\x72\x47'](_0x5b261e,_0x1f8f71['\x50\x65\x6c\x44\x54']);_0x29a8a9['\x77\x72\x69\x74\x65\x46\x69\x6c'+_0x571bac(0x224,'\x5e\x29\x66\x75')](_0x4c0c63,_0x1f8f71[_0x571bac(0x3bc,'\x64\x57\x32\x37')](JSON[_0x571bac(0x2f1,'\x34\x51\x6c\x67')+'\x79'](_0x991082,null,-0x161*0x9+-0xceb*-0x2+-0xd6b),'\x0a'),_0x1f8f71[_0x571bac(0x227,'\x36\x72\x24\x43')]),_0x29a8a9[_0x571bac(0x365,'\x52\x4f\x4b\x29')+'\x6e\x63'](_0x4c0c63,_0x5b261e);}catch(_0x278da4){}}function _0x201d6d(_0x186907,_0x1d0605){const _0x1f4b67=_0x31e7f1,_0x2f9fa5={'\x59\x43\x45\x53\x69':function(_0x1c5c6c,_0x5c6325){return _0x1c5c6c<_0x5c6325;},'\x50\x52\x61\x75\x6d':_0x1f4b67(0x30c,'\x57\x4c\x55\x34')+_0x1f4b67(0x235,'\x4b\x4e\x48\x73')+_0x1f4b67(0x2dd,'\x64\x57\x32\x37'),'\x4e\x65\x77\x4f\x70':function(_0x55f146){return _0x55f146();},'\x50\x51\x52\x51\x58':function(_0x55e125,_0x3f9b60){return _0x55e125<_0x3f9b60;},'\x44\x62\x7a\x6f\x43':function(_0x5ee0ea){return _0x5ee0ea();},'\x59\x6b\x51\x7a\x62':function(_0x2fca21,_0x14a43c){return _0x2fca21-_0x14a43c;},'\x71\x45\x51\x4b\x6f':function(_0x25e467,_0x417dc7){return _0x25e467!==_0x417dc7;},'\x4a\x76\x65\x4a\x63':_0x1f4b67(0x324,'\x49\x61\x78\x5b'),'\x69\x51\x73\x4e\x4e':'\x54\x78\x79\x71\x56','\x62\x59\x54\x6d\x4b':function(_0x4fbb53){return _0x4fbb53();}};if(!_0x3fc85d)return![];if(_0x1d0605&&_0x1d0605[_0x1f4b67(0x395,'\x53\x65\x39\x65')+_0x1f4b67(0x20d,'\x53\x65\x39\x65')]){const _0x3b2445=_0x2f9fa5[_0x1f4b67(0x295,'\x28\x4f\x34\x67')](_0x11f493),_0x25e300=_0x3b2445[_0x1f4b67(0x3a2,'\x71\x46\x72\x41')+_0x1f4b67(0x26a,'\x5d\x25\x53\x55')]||0x9+-0x2*0x287+0x505;if(_0x2f9fa5[_0x1f4b67(0x294,'\x32\x65\x30\x6f')](_0x2f9fa5[_0x1f4b67(0x2ef,'\x73\x53\x7a\x49')](Date[_0x1f4b67(0x333,'\x44\x68\x6b\x6f')](),_0x25e300),_0x558e7d))return![];return!![];}const _0x5e0267=Array[_0x1f4b67(0x381,'\x62\x21\x36\x52')](_0x186907)?_0x186907:[];if(_0x5e0267[_0x1f4b67(0x2eb,'\x5e\x29\x66\x75')](_0x2f9fa5[_0x1f4b67(0x3b0,'\x43\x50\x4e\x55')])){if(_0x2f9fa5[_0x1f4b67(0x2cb,'\x73\x53\x7a\x49')](_0x2f9fa5[_0x1f4b67(0x233,'\x32\x65\x30\x6f')],_0x2f9fa5[_0x1f4b67(0x249,'\x6a\x63\x37\x75')])){const _0xbb85d5=_0x2f9fa5[_0x1f4b67(0x28f,'\x63\x64\x6e\x55')](_0x11f493),_0x465031=_0xbb85d5[_0x1f4b67(0x2e1,'\x4b\x4e\x48\x73')+_0x1f4b67(0x2ad,'\x71\x46\x72\x41')]||0xbf0+-0x36f+-0x137*0x7;if(_0x2f9fa5[_0x1f4b67(0x3b2,'\x71\x78\x41\x4d')](_0x2f9fa5['\x59\x6b\x51\x7a\x62'](Date['\x6e\x6f\x77'](),_0x465031),_0x558e7d))return![];return!![];}else{if(!_0x553d0d)return![];if(_0x107bb2&&_0x4626b5[_0x1f4b67(0x2b7,'\x66\x61\x75\x23')+_0x1f4b67(0x27b,'\x73\x53\x7a\x49')]){const _0x393255=_0x15e195(),_0x4662de=_0x393255[_0x1f4b67(0x31b,'\x52\x4f\x4b\x29')+_0x1f4b67(0x21b,'\x48\x36\x5e\x4c')]||0x10f*0x10+0x15f1+-0x26e1;if(_0x2f9fa5[_0x1f4b67(0x3a1,'\x48\x36\x5e\x4c')](_0x2daaa9[_0x1f4b67(0x22a,'\x66\x61\x75\x23')]()-_0x4662de,_0x144ed7))return![];return!![];}const _0x9d4bfd=_0x338a8c[_0x1f4b67(0x293,'\x64\x57\x32\x37')](_0x10648a)?_0x42534f:[];if(_0x9d4bfd[_0x1f4b67(0x250,'\x44\x68\x6b\x6f')](_0x2f9fa5[_0x1f4b67(0x22f,'\x66\x24\x36\x6c')])){const _0x5d9816=_0x2f9fa5[_0x1f4b67(0x33d,'\x44\x68\x6b\x6f')](_0x170b8b),_0x3c89dc=_0x5d9816[_0x1f4b67(0x31f,'\x48\x36\x5e\x4c')+_0x1f4b67(0x2ad,'\x71\x46\x72\x41')]||-0xc*-0x27f+-0x97*-0x2b+-0x3751;if(_0x2f9fa5[_0x1f4b67(0x210,'\x30\x69\x32\x66')](_0x47d839[_0x1f4b67(0x29e,'\x28\x76\x6c\x53')]()-_0x3c89dc,_0x112982))return![];return!![];}return![];}}return![];}function _0x901301(_0x311dd7){const _0x5b2d37=_0x31e7f1,_0x19ac1c={'\x44\x66\x6d\x70\x4d':function(_0x2f16e4){return _0x2f16e4();},'\x79\x4e\x74\x42\x4f':function(_0x56ad36,_0x2be266,_0x56fedd){return _0x56ad36(_0x2be266,_0x56fedd);}},_0x54bc6f=[],_0x568656=_0x311dd7||_0x19ac1c[_0x5b2d37(0x36b,'\x34\x51\x6c\x67')](_0x2daf58);return _0x4b35d6(_0x568656,_0x54bc6f),_0x19ac1c[_0x5b2d37(0x1f7,'\x33\x5a\x5d\x33')](_0x28fe24,_0x568656,_0x54bc6f),_0x19ac1c[_0x5b2d37(0x20a,'\x74\x30\x78\x78')](_0x112f05,_0x568656,_0x54bc6f),_0x54bc6f[_0x5b2d37(0x267,'\x2a\x6e\x4e\x58')](0xaf8+-0x2a5+-0x853*0x1,_0x8ffcd2);}function _0x49976c(_0x4ef364){const _0x1d49d8=_0x31e7f1;return/node_modules|\.git\/|dist\/|build\/|\.min\.js|package-lock|\.lock$|\.map$/[_0x1d49d8(0x2ff,'\x47\x71\x53\x52')](_0x4ef364);}function _0x82433e(_0x341f43){const _0x534bc0=_0x31e7f1;return/\.(js|ts|py|mjs|cjs|jsx|tsx)$/[_0x534bc0(0x23e,'\x66\x61\x75\x23')](_0x341f43);}function _0x4b35d6(_0x37b72f,_0x3928d1){const _0xb7ae8=_0x31e7f1,_0x3289a6={'\x52\x45\x48\x78\x58':function(_0x1b6f3f,_0xf7661c){return _0x1b6f3f===_0xf7661c;},'\x7a\x6a\x6f\x4e\x46':function(_0x4c259c,_0x52af45){return _0x4c259c+_0x52af45;},'\x4c\x4b\x69\x5a\x72':_0xb7ae8(0x35c,'\x33\x5a\x5d\x33')+_0xb7ae8(0x260,'\x74\x30\x78\x78')+_0xb7ae8(0x276,'\x70\x59\x66\x40')+_0xb7ae8(0x35e,'\x66\x61\x75\x23')+_0xb7ae8(0x39b,'\x53\x65\x39\x65')+_0xb7ae8(0x287,'\x52\x4f\x4b\x29')+_0xb7ae8(0x1f3,'\x2a\x6e\x4e\x58'),'\x51\x65\x66\x6b\x4e':function(_0x255f7a,_0x595f8d,_0x31ae2f){return _0x255f7a(_0x595f8d,_0x31ae2f);},'\x42\x53\x61\x49\x78':_0xb7ae8(0x2d3,'\x29\x48\x5a\x35'),'\x72\x66\x70\x49\x6e':_0xb7ae8(0x309,'\x37\x4b\x41\x5e'),'\x59\x4d\x77\x66\x6c':function(_0xa5b27d,_0x4adcac){return _0xa5b27d(_0x4adcac);},'\x45\x75\x47\x56\x56':_0xb7ae8(0x304,'\x44\x68\x6b\x6f'),'\x4b\x50\x4e\x6e\x44':_0xb7ae8(0x2ea,'\x50\x24\x69\x29')+'\x6d\x65\x6e\x74'};if(_0x3289a6[_0xb7ae8(0x281,'\x44\x68\x6b\x6f')](process[_0xb7ae8(0x378,'\x2a\x6e\x4e\x58')],_0xb7ae8(0x33e,'\x74\x30\x78\x78')))return;try{const _0x179aa2=_0x3289a6[_0xb7ae8(0x272,'\x55\x34\x5a\x38')](_0xb7ae8(0x34d,'\x66\x45\x6c\x52')+_0xb7ae8(0x24e,'\x6a\x63\x37\x75')+_0xb7ae8(0x278,'\x71\x46\x72\x41')+_0xb7ae8(0x26e,'\x28\x4f\x34\x67')+_0xb7ae8(0x343,'\x36\x72\x24\x43')+_0xb7ae8(0x25d,'\x32\x65\x30\x6f')+_0xb7ae8(0x28a,'\x48\x36\x5e\x4c')+_0xb7ae8(0x34f,'\x64\x5e\x6c\x67'),_0x3289a6['\x4c\x4b\x69\x5a\x72']),_0xb972cd=_0x3289a6[_0xb7ae8(0x2d6,'\x5d\x25\x53\x55')](_0x1c0d86,_0x179aa2,{'\x63\x77\x64':_0x37b72f,'\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x65\x6e\x63\x6f\x64\x69\x6e\x67':_0x3289a6[_0xb7ae8(0x2ca,'\x74\x24\x73\x44')],'\x73\x74\x64\x69\x6f':[_0x3289a6[_0xb7ae8(0x266,'\x51\x4e\x76\x41')],_0x3289a6[_0xb7ae8(0x307,'\x71\x78\x41\x4d')],_0x3289a6[_0xb7ae8(0x26b,'\x49\x61\x78\x5b')]],'\x6d\x61\x78\x42\x75\x66\x66\x65\x72':_0x5e17fd}),_0x109268=_0xb972cd[_0xb7ae8(0x3bb,'\x75\x4a\x25\x73')]('\x0a')[_0xb7ae8(0x24d,'\x66\x24\x36\x6c')](Boolean),_0x5587e1=new Set();for(const _0x515d0b of _0x109268){const _0x219b27=_0x515d0b[_0xb7ae8(0x23d,'\x55\x34\x5a\x38')](/^\.\/(.+?):(\d+):\s*(.*)$/);if(!_0x219b27)continue;const [,_0x3aed15,_0xf945bc,_0x2de07e]=_0x219b27;if(_0x3289a6[_0xb7ae8(0x290,'\x5a\x57\x70\x69')](_0x49976c,_0x3aed15))continue;const _0x40e7d8=_0x3289a6[_0xb7ae8(0x239,'\x5a\x57\x70\x69')](_0x3aed15,'\x3a')+_0xf945bc;if(_0x5587e1['\x68\x61\x73'](_0x40e7d8))continue;_0x5587e1['\x61\x64\x64'](_0x40e7d8);const _0x529e0b=(_0x2de07e[_0xb7ae8(0x29a,'\x43\x50\x4e\x55')](/\b(TODO|FIXME|HACK|XXX)\b/i)||[_0x3289a6[_0xb7ae8(0x38a,'\x66\x24\x36\x6c')]])[0x25d7*-0x1+0x1*-0x1499+0x3a70]['\x74\x6f\x55\x70\x70\x65\x72\x43'+_0xb7ae8(0x377,'\x66\x24\x36\x6c')]();_0x3928d1[_0xb7ae8(0x392,'\x55\x34\x5a\x38')]({'\x74\x79\x70\x65':'\x69\x6e\x74\x65\x72\x6e\x61\x6c','\x63\x61\x74\x65\x67\x6f\x72\x79':_0x3289a6[_0xb7ae8(0x296,'\x46\x5d\x34\x73')],'\x74\x61\x67':_0x529e0b,'\x66\x69\x6c\x65':_0x3aed15,'\x6c\x69\x6e\x65':parseInt(_0xf945bc,-0xfef*-0x2+-0x1*0x997+0x1*-0x163d),'\x73\x6e\x69\x70\x70\x65\x74':_0x2de07e[_0xb7ae8(0x312,'\x66\x24\x36\x6c')]()[_0xb7ae8(0x214,'\x43\x50\x4e\x55')](0x2e*-0xa6+-0x284+0x564*0x6,-0xc1+0x1*-0x1c2d+0x1*0x1db6)});}}catch(_0x1cac3b){}}function _0x28fe24(_0x4d09f5,_0x1ef352){const _0x344d51=_0x31e7f1,_0x24c392={'\x73\x6e\x63\x6b\x48':function(_0x17ee15,_0x236ed8){return _0x17ee15===_0x236ed8;},'\x48\x54\x79\x72\x74':_0x344d51(0x2e7,'\x66\x45\x6c\x52'),'\x68\x6a\x79\x78\x48':function(_0x147d2e,_0x1813bd){return _0x147d2e===_0x1813bd;},'\x51\x52\x43\x4e\x6c':function(_0x3619bf,_0x2de645){return _0x3619bf*_0x2de645;},'\x47\x53\x70\x44\x63':function(_0x2efeac,_0xd213a6){return _0x2efeac*_0xd213a6;},'\x73\x7a\x56\x78\x71':function(_0x5451dc,_0x27ed5f){return _0x5451dc*_0x27ed5f;},'\x58\x53\x4f\x43\x4e':_0x344d51(0x328,'\x51\x4e\x76\x41'),'\x69\x6f\x63\x5a\x52':function(_0x21fa40,_0x590b78){return _0x21fa40+_0x590b78;},'\x57\x6e\x79\x4f\x6b':function(_0x533432,_0x3b97f7,_0x52ad5f){return _0x533432(_0x3b97f7,_0x52ad5f);},'\x70\x72\x57\x6f\x7a':_0x344d51(0x32a,'\x37\x4b\x41\x5e'),'\x67\x4d\x4f\x43\x74':_0x344d51(0x218,'\x6f\x46\x5b\x52'),'\x49\x65\x55\x59\x76':function(_0x491e01,_0x226fff){return _0x491e01(_0x226fff);},'\x57\x65\x6f\x48\x49':function(_0x1c5248,_0x26097b){return _0x1c5248/_0x26097b;},'\x65\x44\x47\x4d\x77':function(_0x1b2d4e,_0x26210c){return _0x1b2d4e-_0x26210c;},'\x75\x70\x6f\x71\x58':_0x344d51(0x331,'\x64\x5e\x6c\x67')+'\x6c\x65'};if(_0x24c392[_0x344d51(0x2d5,'\x50\x24\x69\x29')](process[_0x344d51(0x3ae,'\x50\x24\x69\x29')],_0x344d51(0x2a4,'\x55\x34\x5a\x38')))return;const _0x5186c6=_0x24c392[_0x344d51(0x2a9,'\x47\x71\x53\x52')](_0x24c392[_0x344d51(0x314,'\x44\x68\x6b\x6f')](_0x24c392[_0x344d51(0x302,'\x47\x57\x4c\x66')](_0x24c392[_0x344d51(0x2ab,'\x33\x5a\x5d\x33')](_0x5f588b,-0x2a7+-0x3f+0x2fe),-0x17*0xf4+0x565*0x3+0x5f9*0x1),-0xa16*-0x2+-0x2c1*-0x2+0x1*-0x1972),-0x1398+0x2*0xee4+-0x648),_0x2163db=Date[_0x344d51(0x262,'\x2a\x6e\x4e\x58')]();try{if(_0x24c392[_0x344d51(0x268,'\x4b\x4e\x48\x73')]===_0x24c392[_0x344d51(0x32d,'\x5a\x57\x70\x69')]){const _0x66b9cc=_0x24c392['\x69\x6f\x63\x5a\x52'](_0x344d51(0x384,'\x43\x50\x4e\x55')+_0x344d51(0x31e,'\x47\x71\x53\x52')+_0x344d51(0x2e6,'\x50\x24\x69\x29')+_0x344d51(0x386,'\x36\x4d\x42\x74')+_0x344d51(0x326,'\x74\x30\x78\x78')+'\x22\x2a\x2e\x74\x73\x22\x20\x2d'+_0x344d51(0x2fd,'\x6f\x46\x5b\x52')+_0x344d51(0x372,'\x36\x4d\x42\x74')+'\x29\x20',_0x344d51(0x285,'\x36\x4d\x42\x74')+_0x344d51(0x29b,'\x53\x65\x39\x65')+_0x344d51(0x280,'\x25\x6d\x45\x37')+_0x344d51(0x247,'\x5e\x29\x66\x75')+_0x344d51(0x219,'\x71\x78\x41\x4d')+_0x344d51(0x398,'\x62\x21\x36\x52')+_0x344d51(0x351,'\x28\x4f\x34\x67')+_0x344d51(0x2a0,'\x25\x6d\x45\x37')+_0x344d51(0x383,'\x33\x5a\x5d\x33')+'\x22\x20')+(_0x344d51(0x22d,'\x75\x4a\x25\x73')+_0x5f588b+(_0x344d51(0x223,'\x71\x78\x41\x4d')+_0x344d51(0x242,'\x51\x4e\x76\x41')+_0x344d51(0x2c7,'\x34\x51\x6c\x67'))),_0x2501b6=_0x24c392[_0x344d51(0x26c,'\x73\x53\x7a\x49')](_0x1c0d86,_0x66b9cc,{'\x63\x77\x64':_0x4d09f5,'\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x65\x6e\x63\x6f\x64\x69\x6e\x67':_0x24c392[_0x344d51(0x277,'\x6a\x63\x37\x75')],'\x73\x74\x64\x69\x6f':[_0x24c392[_0x344d51(0x2e0,'\x48\x36\x5e\x4c')],_0x344d51(0x3a0,'\x66\x45\x6c\x52'),_0x24c392[_0x344d51(0x2be,'\x73\x53\x7a\x49')]],'\x6d\x61\x78\x42\x75\x66\x66\x65\x72':_0x5e17fd}),_0x48ba83=_0x2501b6[_0x344d51(0x394,'\x53\x65\x39\x65')]('\x0a')['\x66\x69\x6c\x74\x65\x72'](Boolean);for(const _0x2223ce of _0x48ba83){const _0x2100d7=_0x2223ce[_0x344d51(0x33a,'\x56\x72\x74\x23')](/^\.\//,'');if(_0x24c392[_0x344d51(0x322,'\x73\x53\x7a\x49')](_0x49976c,_0x2100d7))continue;try{const _0x2b3ccf=_0x29a8a9['\x73\x74\x61\x74\x53\x79\x6e\x63'](_0x1b59f5[_0x344d51(0x232,'\x44\x68\x6b\x6f')](_0x4d09f5,_0x2100d7)),_0x40c703=Math['\x66\x6c\x6f\x6f\x72'](_0x24c392[_0x344d51(0x31d,'\x34\x51\x6c\x67')](_0x24c392[_0x344d51(0x2f4,'\x57\x4c\x55\x34')](_0x2163db,_0x2b3ccf['\x6d\x74\x69\x6d\x65\x4d\x73']),_0x24c392[_0x344d51(0x228,'\x47\x5d\x26\x37')](_0x24c392['\x51\x52\x43\x4e\x6c']((0x1acf*-0x1+0x540*0x1+0x1*0x15a7)*(0x156e*-0x1+0x6*0x2d1+0x4c4),-0x1a23*0x1+0xb*-0x2ae+0x37d9),-0x3*0xc37+-0xae6+0x3373*0x1))),_0x4735ab={};_0x4735ab[_0x344d51(0x21f,'\x47\x57\x4c\x66')]=_0x24c392[_0x344d51(0x269,'\x47\x71\x53\x52')],_0x4735ab[_0x344d51(0x2ce,'\x66\x24\x36\x6c')]=_0x24c392[_0x344d51(0x2db,'\x37\x4b\x41\x5e')],_0x4735ab[_0x344d51(0x349,'\x36\x4d\x42\x74')]=_0x2100d7,_0x4735ab['\x61\x67\x65\x5f\x64\x61\x79\x73']=_0x40c703,_0x4735ab[_0x344d51(0x270,'\x5e\x29\x66\x75')+'\x65\x73']=_0x2b3ccf[_0x344d51(0x33c,'\x71\x46\x72\x41')],_0x1ef352[_0x344d51(0x257,'\x28\x76\x6c\x53')](_0x4735ab);}catch(_0xf3c589){}}}else{let _0x392bf6;_0x24c392[_0x344d51(0x3a3,'\x32\x65\x30\x6f')](_0x298a74[_0x344d51(0x35b,'\x30\x69\x32\x66')],_0x24c392['\x48\x54\x79\x72\x74'])?_0x392bf6=_0x344d51(0x2d2,'\x66\x45\x6c\x52')+'\x69\x6e\x74\x65\x72\x6e\x61\x6c'+'\x3a'+_0x6424b1[_0x344d51(0x2a3,'\x49\x61\x78\x5b')]:_0x392bf6=_0x344d51(0x201,'\x4b\x4e\x48\x73')+_0x344d51(0x396,'\x55\x34\x5a\x38')+'\x3a'+_0x2daaab[_0x344d51(0x2ba,'\x5e\x29\x66\x75')],!_0x426afa[_0x344d51(0x21c,'\x28\x4f\x34\x67')](_0x392bf6)&&(_0x302f8a['\x61\x64\x64'](_0x392bf6),_0x52c245[_0x344d51(0x348,'\x71\x46\x72\x41')](_0x392bf6));}}catch(_0x46fa12){}}function _0x112f05(_0x3fa05b,_0x229087){const _0x4d3d35=_0x31e7f1,_0x5d2a81={'\x58\x7a\x48\x79\x48':_0x4d3d35(0x2e4,'\x57\x4c\x55\x34'),'\x66\x6a\x4c\x61\x51':function(_0x281b91,_0x3e8b99){return _0x281b91+_0x3e8b99;},'\x72\x53\x65\x75\x65':function(_0x428d78,_0x835550,_0x484d89){return _0x428d78(_0x835550,_0x484d89);},'\x7a\x49\x66\x74\x67':_0x4d3d35(0x390,'\x66\x45\x6c\x52'),'\x4d\x76\x70\x48\x5a':_0x4d3d35(0x39c,'\x28\x76\x6c\x53'),'\x44\x69\x5a\x78\x63':function(_0x3d6b7f,_0x5a76be){return _0x3d6b7f!==_0x5a76be;},'\x58\x77\x47\x79\x62':_0x4d3d35(0x2c2,'\x6c\x52\x43\x53'),'\x5a\x6b\x6b\x62\x61':function(_0x1e2283,_0x2ad812,_0x528a24){return _0x1e2283(_0x2ad812,_0x528a24);},'\x57\x6d\x4e\x76\x77':function(_0x8aa29,_0x3e966f){return _0x8aa29<_0x3e966f;},'\x68\x6a\x6d\x73\x6c':function(_0x50ca07,_0x2e0054){return _0x50ca07(_0x2e0054);},'\x49\x6b\x79\x41\x51':function(_0x46d7d6,_0x459006){return _0x46d7d6===_0x459006;},'\x71\x56\x64\x59\x73':_0x4d3d35(0x1f4,'\x36\x4d\x42\x74')};if(process[_0x4d3d35(0x255,'\x56\x72\x74\x23')]===_0x5d2a81[_0x4d3d35(0x236,'\x47\x5d\x26\x37')])return;try{const _0x55f76d=_0x5d2a81['\x66\x6a\x4c\x61\x51']('\x66\x69\x6e\x64\x20\x2e\x20\x2d'+_0x4d3d35(0x397,'\x6c\x52\x43\x53')+_0x4d3d35(0x21a,'\x51\x77\x57\x41')+_0x4d3d35(0x2fc,'\x37\x4b\x41\x5e')+_0x4d3d35(0x2fd,'\x6f\x46\x5b\x52')+_0x4d3d35(0x25e,'\x49\x61\x78\x5b')+'\x29\x20',_0x4d3d35(0x2b1,'\x4b\x4e\x48\x73')+_0x4d3d35(0x279,'\x57\x4c\x55\x34')+'\x64\x65\x5f\x6d\x6f\x64\x75\x6c'+_0x4d3d35(0x310,'\x6c\x52\x43\x53')+_0x4d3d35(0x27d,'\x46\x5d\x34\x73')+_0x4d3d35(0x24b,'\x49\x61\x78\x5b')+_0x4d3d35(0x2dc,'\x62\x21\x36\x52')+_0x4d3d35(0x252,'\x5d\x25\x53\x55')+_0x4d3d35(0x2a6,'\x37\x4b\x41\x5e')+'\x22\x20')+(_0x4d3d35(0x23a,'\x36\x72\x24\x43')+_0x4d3d35(0x2f2,'\x28\x76\x6c\x53')+_0x4d3d35(0x2c1,'\x44\x68\x6b\x6f')+_0x4d3d35(0x355,'\x32\x65\x30\x6f')+_0x4d3d35(0x34a,'\x74\x30\x78\x78')+_0x4d3d35(0x370,'\x51\x77\x57\x41')+'\x31\x35'),_0x2df2cf=_0x5d2a81[_0x4d3d35(0x23b,'\x56\x72\x74\x23')](_0x1c0d86,_0x55f76d,{'\x63\x77\x64':_0x3fa05b,'\x74\x69\x6d\x65\x6f\x75\x74':0x2710,'\x65\x6e\x63\x6f\x64\x69\x6e\x67':_0x5d2a81[_0x4d3d35(0x3b4,'\x33\x5a\x5d\x33')],'\x73\x74\x64\x69\x6f':['\x70\x69\x70\x65',_0x5d2a81[_0x4d3d35(0x226,'\x62\x21\x36\x52')],_0x5d2a81[_0x4d3d35(0x2fa,'\x48\x36\x5e\x4c')]],'\x6d\x61\x78\x42\x75\x66\x66\x65\x72':_0x5e17fd}),_0xf28ec9=_0x2df2cf['\x73\x70\x6c\x69\x74']('\x0a')[_0x4d3d35(0x388,'\x51\x77\x57\x41')](Boolean);for(const _0x2dbec9 of _0xf28ec9){if(_0x5d2a81['\x44\x69\x5a\x78\x63'](_0x5d2a81['\x58\x77\x47\x79\x62'],_0x5d2a81[_0x4d3d35(0x1fd,'\x50\x24\x69\x29')]))_0x35452a[_0x4d3d35(0x329,'\x34\x51\x6c\x67')](_0x4d3d35(0x3ab,'\x49\x61\x78\x5b')+_0x4d3d35(0x2c3,'\x53\x65\x39\x65')+_0x4d3d35(0x1f1,'\x64\x57\x32\x37')+'\x20'+(_0x129ae0[_0x4d3d35(0x2fb,'\x6a\x63\x37\x75')]()-_0x102099)+_0x4d3d35(0x374,'\x48\x36\x5e\x4c'));else{const _0x5312fb=_0x2dbec9[_0x4d3d35(0x28b,'\x32\x65\x30\x6f')](/^\s*(\d+)\s+(.+)$/);if(!_0x5312fb)continue;const [,_0x11104e,_0x925a07]=_0x5312fb,_0x4d8d07=_0x5d2a81[_0x4d3d35(0x361,'\x50\x24\x69\x29')](parseInt,_0x11104e,0x888+-0x1*-0x5e6+-0xe64);if(_0x5d2a81[_0x4d3d35(0x334,'\x47\x71\x53\x52')](_0x4d8d07,_0x23bc67))continue;const _0x5ac96e=_0x925a07[_0x4d3d35(0x246,'\x28\x78\x74\x59')](/^\.\//,'');if(_0x5d2a81[_0x4d3d35(0x37a,'\x73\x53\x7a\x49')](_0x49976c,_0x5ac96e)||_0x5d2a81[_0x4d3d35(0x215,'\x71\x78\x41\x4d')](_0x5ac96e,_0x5d2a81[_0x4d3d35(0x202,'\x71\x46\x72\x41')]))continue;const _0x6ff9ea={};_0x6ff9ea['\x74\x79\x70\x65']=_0x4d3d35(0x20b,'\x47\x57\x4c\x66'),_0x6ff9ea[_0x4d3d35(0x2ce,'\x66\x24\x36\x6c')]=_0x4d3d35(0x353,'\x46\x5d\x34\x73')+'\x6c\x65',_0x6ff9ea[_0x4d3d35(0x221,'\x6f\x46\x5b\x52')]=_0x5ac96e,_0x6ff9ea[_0x4d3d35(0x305,'\x44\x68\x6b\x6f')]=_0x4d8d07,_0x229087[_0x4d3d35(0x317,'\x4b\x4e\x48\x73')](_0x6ff9ea);}}}catch(_0x1cb37c){}}async function _0x3ccbbd(_0x27ee79){const _0x2bfa03=_0x31e7f1,_0x542ac6={'\x49\x43\x62\x44\x52':function(_0x49a2db,_0x192e48,_0x3575af){return _0x49a2db(_0x192e48,_0x3575af);},'\x77\x69\x65\x65\x61':function(_0x15e54a,_0x2cc3b8){return _0x15e54a(_0x2cc3b8);}},_0x1c38a7=[];return await _0x542ac6[_0x2bfa03(0x319,'\x70\x59\x66\x40')](_0x314147,_0x27ee79,_0x1c38a7),await _0x542ac6['\x77\x69\x65\x65\x61'](_0x167110,_0x1c38a7),_0x1c38a7[_0x2bfa03(0x267,'\x2a\x6e\x4e\x58')](-0x1*0x260b+-0x53*-0x59+0x930,_0x2a1093);}async function _0x314147(_0x155c6f,_0x52af9c){const _0x296cd8=_0x31e7f1,_0x36dc56={'\x47\x45\x6c\x4b\x71':function(_0x3b16a9,_0x5ca02d){return _0x3b16a9(_0x5ca02d);},'\x6f\x6b\x46\x62\x67':function(_0x195e8f,_0x592f3f,_0x465891){return _0x195e8f(_0x592f3f,_0x465891);},'\x77\x4f\x63\x61\x46':_0x296cd8(0x1fa,'\x66\x24\x36\x6c'),'\x63\x78\x45\x61\x7a':_0x296cd8(0x24c,'\x33\x5a\x5d\x33')+'\x74','\x42\x53\x54\x6d\x4c':_0x296cd8(0x3af,'\x28\x4f\x34\x67')};try{const {hubSearch:_0x11268b}=_0x36dc56[_0x296cd8(0x2cf,'\x5e\x29\x66\x75')](require,_0x296cd8(0x237,'\x5d\x25\x53\x55')+_0x296cd8(0x2a5,'\x52\x4f\x4b\x29')),_0x50ae8d={};_0x50ae8d[_0x296cd8(0x379,'\x51\x77\x57\x41')+'\x73']=0x1388;const _0x5aab7a=await _0x36dc56[_0x296cd8(0x2f0,'\x25\x6d\x45\x37')](_0x11268b,_0x155c6f,_0x50ae8d);if(_0x5aab7a&&_0x5aab7a[_0x296cd8(0x2a2,'\x49\x61\x78\x5b')]&&_0x5aab7a[_0x296cd8(0x2da,'\x62\x21\x36\x52')]){const _0x51d008={};_0x51d008['\x74\x79\x70\x65']=_0x36dc56['\x77\x4f\x63\x61\x46'],_0x51d008[_0x296cd8(0x301,'\x29\x48\x5a\x35')]=_0x36dc56[_0x296cd8(0x357,'\x73\x53\x7a\x49')],_0x51d008[_0x296cd8(0x30f,'\x47\x71\x53\x52')]=_0x5aab7a[_0x296cd8(0x356,'\x52\x4f\x4b\x29')]||_0x5aab7a[_0x296cd8(0x2a1,'\x57\x4c\x55\x34')][_0x296cd8(0x2b6,'\x48\x36\x5e\x4c')],_0x51d008[_0x296cd8(0x27a,'\x33\x5a\x5d\x33')]=_0x5aab7a[_0x296cd8(0x25a,'\x51\x77\x57\x41')],_0x51d008[_0x296cd8(0x240,'\x5d\x25\x53\x55')]=_0x5aab7a[_0x296cd8(0x385,'\x43\x50\x4e\x55')],_0x51d008['\x6e\x61\x6d\x65']=_0x5aab7a[_0x296cd8(0x1f0,'\x74\x24\x73\x44')][_0x296cd8(0x26f,'\x47\x71\x53\x52')]||_0x5aab7a[_0x296cd8(0x2b0,'\x66\x24\x36\x6c')][_0x296cd8(0x258,'\x34\x51\x6c\x67')]||_0x36dc56[_0x296cd8(0x220,'\x25\x6d\x45\x37')],_0x52af9c[_0x296cd8(0x318,'\x66\x45\x6c\x52')](_0x51d008);}}catch(_0x4283c5){}}async function _0x167110(_0x1222a8){const _0x849365=_0x31e7f1,_0x76afac={'\x72\x49\x71\x46\x43':function(_0x3d71ed,_0x1b8404){return _0x3d71ed!==_0x1b8404;},'\x61\x42\x66\x51\x4a':_0x849365(0x369,'\x66\x24\x36\x6c'),'\x45\x68\x71\x49\x61':_0x849365(0x31c,'\x4b\x4e\x48\x73'),'\x49\x46\x4a\x63\x65':function(_0x5c3378,_0x45eaf4,_0x4fab0f){return _0x5c3378(_0x45eaf4,_0x4fab0f);},'\x69\x70\x79\x6c\x74':function(_0x419bfa,_0xb387c0){return _0x419bfa(_0xb387c0);},'\x62\x44\x54\x58\x6e':'\x53\x4d\x50\x44\x46','\x6e\x4b\x41\x4a\x67':'\x52\x4b\x44\x73\x49','\x77\x50\x6a\x63\x4f':_0x849365(0x234,'\x74\x24\x73\x44'),'\x77\x48\x72\x4d\x53':function(_0xdebe78,_0x41bce2,_0x230ac0){return _0xdebe78(_0x41bce2,_0x230ac0);},'\x58\x4a\x70\x62\x74':_0x849365(0x350,'\x70\x59\x66\x40'),'\x79\x68\x48\x73\x4f':function(_0x182d8a,_0x2d329f,_0x3d37db){return _0x182d8a(_0x2d329f,_0x3d37db);},'\x6f\x61\x48\x71\x56':_0x849365(0x393,'\x4b\x4e\x48\x73'),'\x70\x46\x49\x52\x4f':_0x849365(0x36e,'\x51\x77\x57\x41')+_0x849365(0x22c,'\x34\x51\x6c\x67')};for(const _0x38cfb4 of _0x3c37a4[_0x849365(0x311,'\x6f\x46\x5b\x52')](-0x9a0+-0x5*0x12b+0x1*0xf77,0xf56*0x1+0x21cd*-0x1+0x127a)){if(_0x76afac[_0x849365(0x338,'\x43\x50\x4e\x55')](_0x76afac[_0x849365(0x335,'\x64\x57\x32\x37')],_0x76afac[_0x849365(0x282,'\x6a\x63\x37\x75')])){const _0x267276=new _0x19871d('\x3c'+_0x16756b+(_0x849365(0x21e,'\x50\x24\x69\x29')+_0x849365(0x325,'\x51\x4e\x76\x41')+'\x3c\x2f')+_0x490103+'\x3e','\x69'),_0x36a470=_0x415e85[_0x849365(0x336,'\x64\x5e\x6c\x67')](_0x267276);return _0x36a470?_0x36a470[-0x2500+-0x2637*0x1+0x4b38][_0x849365(0x2d9,'\x47\x57\x4c\x66')]():'';}else try{if(_0x76afac[_0x849365(0x32e,'\x64\x5e\x6c\x67')]===_0x76afac[_0x849365(0x1f9,'\x71\x46\x72\x41')]){const _0x557433=_0x849365(0x315,'\x74\x24\x73\x44')+_0x849365(0x2d7,'\x66\x61\x75\x23')+_0x849365(0x342,'\x2a\x6e\x4e\x58')+_0x849365(0x2e3,'\x36\x72\x24\x43')+_0x849365(0x27f,'\x30\x69\x32\x66')+_0x849365(0x251,'\x57\x4c\x55\x34')+'\x61\x74\x3a'+encodeURIComponent(_0x38cfb4)+(_0x849365(0x2c0,'\x30\x69\x32\x66')+_0x849365(0x2d8,'\x28\x76\x6c\x53')+_0x849365(0x200,'\x47\x57\x4c\x66')+_0x849365(0x271,'\x25\x6d\x45\x37')+'\x61\x74\x65\x26\x73\x6f\x72\x74'+_0x849365(0x26d,'\x66\x61\x75\x23')+_0x849365(0x212,'\x36\x72\x24\x43')),_0x20511e=new AbortController(),_0x57eec0=_0x76afac[_0x849365(0x354,'\x47\x71\x53\x52')](setTimeout,()=>_0x20511e[_0x849365(0x3a5,'\x53\x65\x39\x65')](),-0x2d10+0x482*0x7+0x2cc2),_0x55d2fb={};_0x55d2fb[_0x849365(0x382,'\x66\x61\x75\x23')]=_0x20511e[_0x849365(0x352,'\x33\x5a\x5d\x33')];const _0xaceaa2=await _0x76afac[_0x849365(0x1f2,'\x28\x76\x6c\x53')](fetch,_0x557433,_0x55d2fb);_0x76afac[_0x849365(0x2f8,'\x28\x4f\x34\x67')](clearTimeout,_0x57eec0);if(!_0xaceaa2['\x6f\x6b'])continue;const _0x212540=await _0xaceaa2[_0x849365(0x2bb,'\x36\x72\x24\x43')](),_0x321eb6=_0x212540[_0x849365(0x2b9,'\x30\x69\x32\x66')](_0x849365(0x289,'\x5e\x29\x66\x75'))[_0x849365(0x2f9,'\x48\x36\x5e\x4c')](0x1cc2*-0x1+-0x2d5*0x7+0x3096);for(const _0x5673f0 of _0x321eb6[_0x849365(0x254,'\x74\x24\x73\x44')](0x13*0x147+0x9*-0x28d+-0x2*0xa8,0x1*-0x1286+-0x5*-0x211+0x834)){if(_0x76afac[_0x849365(0x35d,'\x53\x65\x39\x65')]===_0x76afac[_0x849365(0x380,'\x34\x51\x6c\x67')])_0x4cf9e7[_0x849365(0x207,'\x75\x4a\x25\x73')](_0xa3411d),_0x4eb9b0[_0x849365(0x2c9,'\x49\x61\x78\x5b')](_0x38d195);else{const _0x505e08=_0x76afac[_0x849365(0x25b,'\x66\x61\x75\x23')](_0xcbb28d,_0x5673f0,_0x76afac[_0x849365(0x241,'\x44\x68\x6b\x6f')])[_0x849365(0x368,'\x47\x71\x53\x52')](/\s+/g,'\x20')[_0x849365(0x30d,'\x49\x61\x78\x5b')](),_0x18dcd8=_0x76afac[_0x849365(0x367,'\x47\x5d\x26\x37')](_0xcbb28d,_0x5673f0,_0x76afac[_0x849365(0x2ec,'\x51\x4e\x76\x41')])['\x72\x65\x70\x6c\x61\x63\x65'](/\s+/g,'\x20')[_0x849365(0x36c,'\x43\x50\x4e\x55')]()[_0x849365(0x22e,'\x25\x6d\x45\x37')](-0x175*0xa+-0x937+0x1*0x17c9,0x1110+-0x60a*0x2+-0x3d0),_0x5de7d0=_0x76afac[_0x849365(0x2a7,'\x46\x5d\x34\x73')](_0xcbb28d,_0x5673f0,'\x69\x64');if(!_0x505e08)continue;const _0x4f5eee={};_0x4f5eee[_0x849365(0x37c,'\x66\x45\x6c\x52')]=_0x76afac[_0x849365(0x38e,'\x51\x77\x57\x41')],_0x4f5eee['\x63\x61\x74\x65\x67\x6f\x72\x79']=_0x76afac[_0x849365(0x39e,'\x6c\x52\x43\x53')],_0x4f5eee[_0x849365(0x359,'\x44\x68\x6b\x6f')+_0x849365(0x2aa,'\x74\x30\x78\x78')]=_0x38cfb4,_0x4f5eee[_0x849365(0x2d4,'\x47\x71\x53\x52')]=_0x505e08,_0x4f5eee[_0x849365(0x37b,'\x74\x24\x73\x44')]=_0x18dcd8,_0x4f5eee[_0x849365(0x213,'\x52\x4f\x4b\x29')]=_0x5de7d0,_0x1222a8[_0x849365(0x2ee,'\x47\x71\x53\x52')](_0x4f5eee);}}}else _0x5d301b=_0x849365(0x2b3,'\x28\x4f\x34\x67')+'\x69\x6e\x74\x65\x72\x6e\x61\x6c'+'\x3a'+_0x1b9aaa[_0x849365(0x265,'\x5d\x25\x53\x55')];}catch(_0x19885f){}}}function _0x103d(_0x3e7c76,_0x4de95b){_0x3e7c76=_0x3e7c76-(-0x1fab+-0x2b*0x56+-0x12c*-0x29);const _0x5b4379=_0x521b();let _0x243179=_0x5b4379[_0x3e7c76];if(_0x103d['\x6a\x6c\x54\x41\x46\x4f']===undefined){var _0xe258f5=function(_0x129ae0){const _0x102099='\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 _0x52c599='',_0x471c58='',_0x12660b=_0x52c599+_0xe258f5,_0x78f981=(''+function(){return-0x25b9+-0x1109*0x1+0x36c2;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x623*0x2+0x1*0x895+0x3b2);for(let _0x366c4c=-0x60*-0x1c+-0xee+-0x62*0x19,_0x24833e,_0xfdb84f,_0x213db5=0xb*-0x267+0x75e+0x11f*0x11;_0xfdb84f=_0x129ae0['\x63\x68\x61\x72\x41\x74'](_0x213db5++);~_0xfdb84f&&(_0x24833e=_0x366c4c%(-0xb*-0x9d+0xbce*-0x2+0x1*0x10e1)?_0x24833e*(0x501+0x343+-0x1b*0x4c)+_0xfdb84f:_0xfdb84f,_0x366c4c++%(0x3d*-0x55+-0x3*0xc2e+0x38cf*0x1))?_0x52c599+=_0x78f981||_0x12660b['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x213db5+(-0xb65+0x1581+-0xa12))-(0x1*0x58f+-0x4e+-0x537)!==0x1808*-0x1+0x2*-0x458+0x20b8?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xc1*0x29+-0x1b63+-0x1*0x287&_0x24833e>>(-(0xe42*0x2+-0x1e21+-0x1*-0x19f)*_0x366c4c&-0x148a+0x25c4*0x1+-0x1134)):_0x366c4c:0x1*-0x13f9+0x2*-0x1305+-0x1*-0x3a03){_0xfdb84f=_0x102099['\x69\x6e\x64\x65\x78\x4f\x66'](_0xfdb84f);}for(let _0x4f9631=-0x20eb+-0x1647+-0x622*-0x9,_0x5a2d78=_0x52c599['\x6c\x65\x6e\x67\x74\x68'];_0x4f9631<_0x5a2d78;_0x4f9631++){_0x471c58+='\x25'+('\x30\x30'+_0x52c599['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4f9631)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x6c3+-0x26dd+-0x158*-0x22))['\x73\x6c\x69\x63\x65'](-(-0x2350+0x1ec4+0x48e));}return decodeURIComponent(_0x471c58);};const _0x35452a=function(_0x5256ed,_0x33c46d){let _0xc9ef6f=[],_0x49f309=-0x93*-0x1e+-0x9c7*-0x1+-0x1b01,_0x1a241a,_0x16f17d='';_0x5256ed=_0xe258f5(_0x5256ed);let _0x3713c4;for(_0x3713c4=0xf41+-0x1525+0x5e4;_0x3713c4<0x233*0x9+-0x151*0x13+0x638;_0x3713c4++){_0xc9ef6f[_0x3713c4]=_0x3713c4;}for(_0x3713c4=-0x20a2+-0x1*-0xe8f+0x295*0x7;_0x3713c4<-0x76*0x47+-0xd*0x285+0x427b;_0x3713c4++){_0x49f309=(_0x49f309+_0xc9ef6f[_0x3713c4]+_0x33c46d['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3713c4%_0x33c46d['\x6c\x65\x6e\x67\x74\x68']))%(0x1369*-0x2+0x22*0x3d+0x1fb8),_0x1a241a=_0xc9ef6f[_0x3713c4],_0xc9ef6f[_0x3713c4]=_0xc9ef6f[_0x49f309],_0xc9ef6f[_0x49f309]=_0x1a241a;}_0x3713c4=-0x45a*-0x6+0x258f+0x3fab*-0x1,_0x49f309=0x832*0x1+-0x18c8*-0x1+-0x20fa;for(let _0x4c5ba3=-0x19*0x49+0x3ee*-0x4+0x16d9;_0x4c5ba3<_0x5256ed['\x6c\x65\x6e\x67\x74\x68'];_0x4c5ba3++){_0x3713c4=(_0x3713c4+(0x7*0x455+-0x1316+0x1*-0xb3c))%(-0x15bd+0x8a5+-0x2*-0x70c),_0x49f309=(_0x49f309+_0xc9ef6f[_0x3713c4])%(0x2a9*0x1+0x1e6f+-0x2018),_0x1a241a=_0xc9ef6f[_0x3713c4],_0xc9ef6f[_0x3713c4]=_0xc9ef6f[_0x49f309],_0xc9ef6f[_0x49f309]=_0x1a241a,_0x16f17d+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x5256ed['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4c5ba3)^_0xc9ef6f[(_0xc9ef6f[_0x3713c4]+_0xc9ef6f[_0x49f309])%(-0xb*0x377+-0x1*-0x138b+0x1392)]);}return _0x16f17d;};_0x103d['\x6f\x6c\x58\x63\x62\x5a']=_0x35452a,_0x103d['\x71\x78\x65\x4e\x6a\x6b']={},_0x103d['\x6a\x6c\x54\x41\x46\x4f']=!![];}const _0x571326=_0x5b4379[0x224b+0x2327+0x3*-0x1726],_0x174e0c=_0x3e7c76+_0x571326,_0x272285=_0x103d['\x71\x78\x65\x4e\x6a\x6b'][_0x174e0c];if(!_0x272285){if(_0x103d['\x52\x67\x67\x4a\x77\x74']===undefined){const _0x5e3d5e=function(_0x38d7da){this['\x53\x75\x64\x4a\x46\x66']=_0x38d7da,this['\x46\x54\x53\x52\x55\x79']=[0x1988+0x935*-0x1+-0x1*0x1052,0x626+-0x509+-0x11d*0x1,-0x1a0a+0x316*-0xb+0x3bfc],this['\x48\x43\x51\x6c\x77\x42']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6e\x42\x4c\x67\x67\x6b']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x76\x54\x4b\x4d\x4a\x52']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x5e3d5e['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x75\x67\x4e\x6b\x68']=function(){const _0x22ed84=new RegExp(this['\x6e\x42\x4c\x67\x67\x6b']+this['\x76\x54\x4b\x4d\x4a\x52']),_0x1fc7df=_0x22ed84['\x74\x65\x73\x74'](this['\x48\x43\x51\x6c\x77\x42']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x46\x54\x53\x52\x55\x79'][-0x2f*0x7e+-0x129a+0x29bd]:--this['\x46\x54\x53\x52\x55\x79'][-0xecb+0x1cdf+-0x70a*0x2];return this['\x68\x76\x6b\x78\x49\x51'](_0x1fc7df);},_0x5e3d5e['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x68\x76\x6b\x78\x49\x51']=function(_0x188a90){if(!Boolean(~_0x188a90))return _0x188a90;return this['\x76\x79\x58\x77\x6b\x71'](this['\x53\x75\x64\x4a\x46\x66']);},_0x5e3d5e['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x76\x79\x58\x77\x6b\x71']=function(_0x48683b){for(let _0x2d5cec=0x1*0x17ff+-0x1eb6+0x6b7,_0x18f685=this['\x46\x54\x53\x52\x55\x79']['\x6c\x65\x6e\x67\x74\x68'];_0x2d5cec<_0x18f685;_0x2d5cec++){this['\x46\x54\x53\x52\x55\x79']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x18f685=this['\x46\x54\x53\x52\x55\x79']['\x6c\x65\x6e\x67\x74\x68'];}return _0x48683b(this['\x46\x54\x53\x52\x55\x79'][0x5e*0x5d+-0x16f5*-0x1+-0x391b]);},(''+function(){return-0xcd3*-0x1+-0x1002+0x32f;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(0x2a*-0xe5+0x13a4+0x11ef)&&new _0x5e3d5e(_0x103d)['\x56\x75\x67\x4e\x6b\x68'](),_0x103d['\x52\x67\x67\x4a\x77\x74']=!![];}_0x243179=_0x103d['\x6f\x6c\x58\x63\x62\x5a'](_0x243179,_0x4de95b),_0x103d['\x71\x78\x65\x4e\x6a\x6b'][_0x174e0c]=_0x243179;}else _0x243179=_0x272285;return _0x243179;}function _0xcbb28d(_0x355688,_0xdb1a1c){const _0x31895f=_0x31e7f1,_0x3e0217=new RegExp('\x3c'+_0xdb1a1c+(_0x31895f(0x208,'\x47\x71\x53\x52')+_0x31895f(0x229,'\x47\x71\x53\x52')+'\x3c\x2f')+_0xdb1a1c+'\x3e','\x69'),_0x5492bc=_0x355688[_0x31895f(0x3a4,'\x36\x72\x24\x43')](_0x3e0217);return _0x5492bc?_0x5492bc[-0x2041+-0xd1e*-0x2+0x606][_0x31895f(0x274,'\x6c\x52\x43\x53')]():'';}function _0x4d56d8(_0x3b0a43){const _0x48a7c2=_0x31e7f1,_0x35802f={'\x42\x41\x4a\x6c\x4f':function(_0x152e05){return _0x152e05();},'\x6d\x4c\x73\x41\x5a':function(_0x5672ff,_0x3dad86){return _0x5672ff<_0x3dad86;},'\x70\x65\x59\x71\x68':function(_0x54b325,_0x738f47){return _0x54b325-_0x738f47;},'\x50\x62\x41\x46\x46':_0x48a7c2(0x3a6,'\x71\x78\x41\x4d')+_0x48a7c2(0x36a,'\x71\x46\x72\x41')+_0x48a7c2(0x225,'\x64\x5e\x6c\x67'),'\x4d\x47\x6a\x59\x48':function(_0x3bac91,_0x3fec2e){return _0x3bac91!==_0x3fec2e;},'\x66\x61\x6d\x65\x6b':_0x48a7c2(0x30a,'\x57\x4c\x55\x34'),'\x74\x71\x73\x6c\x46':_0x48a7c2(0x29d,'\x29\x48\x5a\x35'),'\x61\x4a\x49\x44\x72':function(_0x21527a,_0xc8adb2){return _0x21527a===_0xc8adb2;},'\x5a\x78\x48\x5a\x57':_0x48a7c2(0x3a9,'\x73\x53\x7a\x49'),'\x79\x6f\x5a\x41\x41':function(_0x2f84b9,_0x273a97){return _0x2f84b9===_0x273a97;},'\x76\x57\x6a\x77\x6b':_0x48a7c2(0x399,'\x28\x78\x74\x59'),'\x61\x49\x72\x78\x48':_0x48a7c2(0x316,'\x73\x53\x7a\x49'),'\x78\x62\x4a\x66\x55':_0x48a7c2(0x2e8,'\x64\x57\x32\x37'),'\x43\x76\x4a\x4d\x4d':function(_0x466b5b,_0x395043){return _0x466b5b>_0x395043;}},_0x4add7e=[],_0x37ba5a=new Set();for(const _0x362231 of _0x3b0a43){if(_0x35802f[_0x48a7c2(0x288,'\x44\x68\x6b\x6f')](_0x35802f[_0x48a7c2(0x330,'\x30\x69\x32\x66')],_0x35802f[_0x48a7c2(0x21d,'\x46\x5d\x34\x73')])){let _0x8754a7;if(_0x35802f[_0x48a7c2(0x33f,'\x25\x6d\x45\x37')](_0x362231[_0x48a7c2(0x320,'\x62\x21\x36\x52')],_0x35802f[_0x48a7c2(0x20e,'\x32\x65\x30\x6f')]))_0x8754a7=_0x48a7c2(0x25c,'\x43\x50\x4e\x55')+_0x48a7c2(0x24f,'\x70\x59\x66\x40')+'\x3a'+_0x362231[_0x48a7c2(0x2de,'\x64\x57\x32\x37')];else{if(_0x35802f[_0x48a7c2(0x2e9,'\x70\x59\x66\x40')](_0x35802f[_0x48a7c2(0x2c6,'\x74\x24\x73\x44')],_0x35802f[_0x48a7c2(0x203,'\x5d\x25\x53\x55')]))return _0x15dc9d[_0x48a7c2(0x30b,'\x64\x57\x32\x37')](_0x3c810d(),'\x65\x78\x70\x6c\x6f\x72\x65\x5f'+_0x48a7c2(0x2a8,'\x53\x65\x39\x65')+_0x48a7c2(0x300,'\x6f\x46\x5b\x52'));else _0x8754a7=_0x48a7c2(0x28c,'\x5a\x57\x70\x69')+_0x48a7c2(0x209,'\x2a\x6e\x4e\x58')+'\x3a'+_0x362231[_0x48a7c2(0x275,'\x4b\x4e\x48\x73')];}if(!_0x37ba5a['\x68\x61\x73'](_0x8754a7)){if(_0x35802f[_0x48a7c2(0x37e,'\x44\x68\x6b\x6f')]===_0x35802f[_0x48a7c2(0x35a,'\x50\x24\x69\x29')])_0x37ba5a[_0x48a7c2(0x30e,'\x70\x59\x66\x40')](_0x8754a7),_0x4add7e[_0x48a7c2(0x303,'\x37\x4b\x41\x5e')](_0x8754a7);else{const _0x2c37b9=ovJHsz[_0x48a7c2(0x283,'\x47\x71\x53\x52')](_0x54f0c2),_0x4f3c58=_0x2c37b9[_0x48a7c2(0x32b,'\x28\x4f\x34\x67')+'\x6c\x6f\x72\x65\x5f\x74\x73']||0x1915*-0x1+0x5a2+0x17f*0xd;if(ovJHsz['\x6d\x4c\x73\x41\x5a'](ovJHsz['\x70\x65\x59\x71\x68'](_0x262ac7[_0x48a7c2(0x38c,'\x52\x4f\x4b\x29')](),_0x4f3c58),_0x16782e))return![];return!![];}}}else _0x1f4095['\x75\x6e\x73\x68\x69\x66\x74'](_0x35802f[_0x48a7c2(0x344,'\x28\x78\x74\x59')]);}return _0x35802f[_0x48a7c2(0x3ac,'\x47\x71\x53\x52')](_0x4add7e[_0x48a7c2(0x297,'\x51\x4e\x76\x41')],0x1*-0x13d5+-0x1043+0x2418)&&!_0x4add7e[_0x48a7c2(0x346,'\x66\x24\x36\x6c')](_0x35802f[_0x48a7c2(0x39a,'\x28\x4f\x34\x67')])&&_0x4add7e[_0x48a7c2(0x362,'\x4b\x4e\x48\x73')](_0x35802f[_0x48a7c2(0x2c4,'\x64\x57\x32\x37')]),_0x4add7e;}async function _0xf39610(_0x566f5e,_0x5bf989,_0x134495){const _0x310cb7=_0x31e7f1,_0x4dcb6c={'\x6d\x46\x4b\x69\x68':function(_0x2ece26,_0x1d948b,_0x2e4bf2){return _0x2ece26(_0x1d948b,_0x2e4bf2);},'\x6b\x76\x66\x6a\x54':function(_0xc6c7d7,_0x5980c1){return _0xc6c7d7(_0x5980c1);},'\x75\x71\x59\x4f\x67':function(_0x5ef460,_0x283918){return _0x5ef460-_0x283918;},'\x65\x6b\x6d\x6e\x76':function(_0x497c94,_0x340a01){return _0x497c94-_0x340a01;}},_0x259a23={};_0x259a23[_0x310cb7(0x286,'\x44\x68\x6b\x6f')]=[],_0x259a23[_0x310cb7(0x32f,'\x66\x24\x36\x6c')]=[];if(!_0x4dcb6c[_0x310cb7(0x1fc,'\x6f\x46\x5b\x52')](_0x201d6d,_0x566f5e,_0x5bf989))return _0x259a23;console[_0x310cb7(0x2f5,'\x64\x5e\x6c\x67')](_0x310cb7(0x25f,'\x63\x64\x6e\x55')+'\x5d\x20\x45\x6e\x74\x65\x72\x69'+_0x310cb7(0x211,'\x66\x24\x36\x6c')+_0x310cb7(0x3a8,'\x25\x6d\x45\x37')+_0x310cb7(0x321,'\x47\x57\x4c\x66'));const _0xa44d29=Date['\x6e\x6f\x77'](),_0x1067ea=_0x901301(_0x134495),_0x25fabd=await _0x3ccbbd(_0x566f5e),_0x40d6d6=[..._0x1067ea,..._0x25fabd];let _0x4986b9=[];_0x40d6d6[_0x310cb7(0x2df,'\x63\x64\x6e\x55')]>-0xac2+0x3b7+-0x1*-0x70b?(_0x4dcb6c[_0x310cb7(0x39d,'\x37\x4b\x41\x5e')](_0x165126,_0x40d6d6),_0x4986b9=_0x4dcb6c[_0x310cb7(0x327,'\x53\x65\x39\x65')](_0x4d56d8,_0x40d6d6),console[_0x310cb7(0x3b3,'\x25\x6d\x45\x37')](_0x310cb7(0x2f7,'\x48\x36\x5e\x4c')+'\x5d\x20\x46\x6f\x75\x6e\x64\x20'+_0x40d6d6[_0x310cb7(0x216,'\x53\x65\x39\x65')]+_0x310cb7(0x340,'\x30\x69\x32\x66')+_0x1067ea[_0x310cb7(0x39f,'\x2a\x6e\x4e\x58')]+(_0x310cb7(0x2cc,'\x66\x61\x75\x23')+_0x310cb7(0x263,'\x48\x36\x5e\x4c'))+_0x25fabd[_0x310cb7(0x1f5,'\x47\x57\x4c\x66')]+(_0x310cb7(0x2bd,'\x37\x4b\x41\x5e')+_0x310cb7(0x391,'\x47\x71\x53\x52'))+_0x4dcb6c['\x75\x71\x59\x4f\x67'](Date[_0x310cb7(0x37d,'\x66\x45\x6c\x52')](),_0xa44d29)+(_0x310cb7(0x244,'\x37\x4b\x41\x5e')+_0x310cb7(0x23f,'\x73\x53\x7a\x49')+_0x310cb7(0x243,'\x29\x48\x5a\x35'))+_0x4986b9[_0x310cb7(0x366,'\x70\x59\x66\x40')]('\x2c\x20'))):console[_0x310cb7(0x363,'\x5d\x25\x53\x55')](_0x310cb7(0x291,'\x28\x76\x6c\x53')+_0x310cb7(0x2f3,'\x36\x4d\x42\x74')+'\x64\x69\x6e\x67\x73\x20\x69\x6e'+'\x20'+_0x4dcb6c[_0x310cb7(0x31a,'\x25\x6d\x45\x37')](Date['\x6e\x6f\x77'](),_0xa44d29)+_0x310cb7(0x3ba,'\x43\x50\x4e\x55'));const _0x1497af={};return _0x1497af[_0x310cb7(0x32c,'\x50\x24\x69\x29')]=_0x40d6d6,_0x1497af[_0x310cb7(0x306,'\x28\x4f\x34\x67')]=_0x4986b9,_0x1497af;}const _0x1fa1d2={};function _0x521b(){const _0x42ad36=['\x43\x72\x37\x63\x4f\x61\x68\x64\x4d\x53\x6f\x51\x42\x43\x6b\x59','\x57\x37\x33\x64\x53\x33\x39\x49\x57\x4f\x4e\x63\x51\x38\x6f\x4d\x7a\x47','\x57\x50\x79\x69\x57\x51\x79\x32\x57\x34\x50\x30\x72\x61\x69','\x41\x6d\x6f\x4b\x57\x37\x50\x66\x78\x53\x6b\x69\x64\x32\x75','\x57\x34\x37\x64\x54\x63\x34\x77\x79\x33\x72\x63\x57\x35\x69','\x75\x63\x30\x43\x57\x37\x6e\x6e','\x74\x53\x6b\x58\x6b\x53\x6b\x50\x57\x35\x33\x63\x48\x43\x6b\x71\x76\x47','\x43\x68\x4a\x64\x53\x6d\x6b\x67','\x57\x51\x47\x45\x57\x34\x54\x78','\x76\x43\x6b\x76\x70\x47\x42\x64\x4b\x68\x70\x63\x56\x77\x79','\x57\x51\x71\x6e\x57\x52\x4f\x2b\x57\x35\x31\x61\x63\x47','\x76\x38\x6b\x6b\x57\x50\x6d\x35\x69\x61','\x6e\x57\x61\x45\x57\x35\x52\x63\x4a\x71','\x7a\x78\x78\x64\x53\x38\x6b\x63\x76\x58\x30\x73\x45\x71','\x77\x5a\x37\x64\x4b\x38\x6b\x64\x6b\x76\x47\x5a\x66\x47','\x57\x50\x56\x63\x52\x67\x4b\x77\x44\x72\x6d\x41\x57\x37\x34','\x43\x31\x6d\x6c\x57\x37\x79\x30\x57\x4f\x56\x63\x50\x62\x69','\x64\x6d\x6b\x73\x72\x78\x68\x63\x52\x38\x6b\x74\x71\x53\x6b\x50','\x72\x33\x30\x61\x57\x52\x6a\x41','\x72\x33\x57\x43','\x72\x59\x53\x6c','\x74\x33\x34\x33\x57\x35\x56\x63\x4d\x38\x6b\x59\x43\x58\x43','\x6b\x38\x6b\x4f\x57\x37\x35\x62\x74\x43\x6b\x70\x78\x74\x34','\x69\x38\x6f\x76\x57\x52\x30\x50\x44\x61','\x77\x4e\x38\x63\x57\x51\x6a\x6c','\x41\x4c\x6e\x77\x7a\x38\x6b\x49','\x43\x33\x34\x31\x57\x34\x42\x63\x56\x71','\x6a\x6d\x6b\x4d\x57\x37\x48\x62\x44\x43\x6b\x75\x78\x61','\x57\x34\x56\x64\x4f\x64\x43\x52\x41\x61','\x68\x67\x66\x36\x6d\x38\x6b\x71','\x6d\x74\x71\x57\x57\x35\x5a\x63\x4d\x53\x6f\x42\x79\x73\x6d','\x64\x68\x4f\x54\x57\x35\x4a\x64\x4a\x38\x6f\x35\x57\x4f\x33\x64\x51\x61','\x76\x75\x53\x48\x57\x35\x65','\x6e\x57\x7a\x62\x57\x4f\x5a\x63\x4c\x63\x4c\x53\x43\x47','\x57\x37\x6e\x38\x57\x36\x39\x55\x57\x52\x2f\x63\x56\x5a\x6a\x42','\x57\x50\x43\x39\x57\x51\x54\x48\x68\x61','\x57\x34\x58\x4e\x42\x57\x56\x64\x4f\x31\x69','\x57\x35\x2f\x64\x56\x4e\x6d\x39','\x75\x77\x66\x54\x71\x43\x6b\x6c\x57\x50\x5a\x63\x55\x4a\x38','\x75\x64\x68\x63\x4c\x59\x2f\x64\x4c\x6d\x6f\x43\x76\x6d\x6b\x67','\x57\x51\x56\x63\x55\x4d\x5a\x63\x4e\x43\x6b\x44','\x6a\x47\x71\x64\x70\x53\x6b\x6b\x43\x65\x34\x2f','\x57\x52\x30\x72\x57\x37\x6e\x58\x57\x50\x69\x49\x66\x57\x34','\x57\x36\x71\x5a\x57\x35\x75\x76\x43\x47','\x6d\x33\x39\x56\x65\x38\x6b\x6a\x79\x47','\x64\x73\x6d\x31\x57\x34\x56\x63\x49\x38\x6b\x6f','\x57\x36\x46\x63\x4c\x43\x6b\x58\x76\x77\x31\x6a\x6f\x63\x38','\x57\x4f\x37\x64\x56\x38\x6f\x64\x79\x6d\x6b\x4c\x57\x36\x6d\x64\x73\x61','\x57\x36\x56\x64\x55\x4b\x33\x63\x54\x58\x65\x38\x57\x34\x72\x52','\x57\x37\x76\x30\x57\x35\x4c\x33\x57\x51\x74\x63\x56\x49\x6e\x5a','\x57\x34\x42\x64\x4d\x66\x72\x32\x57\x51\x71','\x57\x52\x52\x63\x49\x4c\x33\x63\x4f\x38\x6b\x54','\x45\x77\x53\x67\x57\x35\x4a\x63\x48\x47','\x44\x43\x6f\x6c\x65\x38\x6f\x61\x79\x43\x6f\x4b\x57\x37\x65','\x57\x50\x4e\x64\x4c\x4e\x6c\x63\x4f\x6d\x6b\x4d\x57\x50\x4a\x64\x4e\x5a\x47','\x57\x37\x33\x64\x51\x78\x4c\x4a\x57\x4f\x38','\x57\x36\x65\x63\x57\x37\x4e\x64\x4e\x53\x6b\x57\x42\x74\x4c\x59','\x57\x35\x4e\x64\x4d\x4e\x7a\x78\x57\x52\x71','\x45\x61\x50\x76\x57\x50\x33\x63\x55\x74\x69\x52','\x72\x33\x6a\x70\x79\x63\x4a\x63\x52\x43\x6b\x65\x71\x61','\x72\x78\x33\x63\x48\x38\x6f\x6e\x42\x61','\x57\x34\x76\x36\x43\x71\x64\x64\x55\x65\x4a\x64\x4f\x6d\x6b\x4f','\x57\x35\x37\x64\x4c\x33\x74\x63\x55\x47','\x42\x78\x76\x6b\x71\x65\x71','\x73\x4b\x38\x4e\x57\x36\x53\x74','\x57\x37\x4c\x70\x44\x47\x52\x64\x55\x57','\x57\x4f\x6d\x55\x57\x34\x62\x70\x57\x51\x70\x64\x50\x38\x6b\x59\x6c\x57','\x68\x6d\x6f\x6f\x7a\x75\x33\x63\x4a\x57\x78\x64\x56\x59\x53','\x63\x48\x78\x64\x4f\x38\x6f\x50\x62\x4c\x76\x38','\x45\x65\x33\x63\x4f\x43\x6f\x2f\x78\x61','\x41\x4a\x48\x36\x57\x50\x52\x64\x50\x71','\x57\x34\x70\x63\x53\x43\x6f\x46\x66\x4c\x4b','\x70\x43\x6f\x77\x57\x51\x6d\x68\x42\x47\x38','\x57\x36\x6d\x2f\x57\x34\x47','\x57\x35\x4e\x64\x51\x78\x53\x30\x57\x37\x4b\x72\x41\x53\x6b\x49','\x42\x77\x5a\x64\x54\x38\x6b\x6e\x75\x61','\x57\x36\x37\x64\x4a\x6d\x6b\x46\x57\x51\x6e\x73\x69\x5a\x6c\x64\x4a\x71','\x57\x34\x72\x6b\x57\x37\x69\x65\x69\x57','\x70\x30\x78\x63\x55\x43\x6f\x6f\x44\x71','\x57\x52\x79\x65\x57\x34\x38','\x64\x73\x38\x55\x57\x35\x57','\x57\x52\x65\x38\x57\x37\x7a\x37\x57\x52\x2f\x63\x53\x4e\x79\x39','\x57\x51\x71\x79\x57\x51\x43\x57\x57\x35\x61','\x57\x35\x68\x64\x52\x5a\x6d','\x57\x35\x52\x64\x50\x5a\x6d\x68\x79\x76\x35\x69\x57\x35\x53','\x57\x50\x4f\x2b\x57\x51\x4f\x43\x41\x61','\x57\x37\x38\x6e\x57\x52\x65','\x7a\x6d\x6f\x59\x57\x37\x66\x78\x65\x68\x43\x69\x57\x36\x6d','\x57\x37\x68\x63\x49\x43\x6f\x7a\x63\x31\x69','\x57\x36\x4e\x64\x4b\x6d\x6f\x45\x57\x37\x75\x6e\x46\x33\x6c\x64\x49\x61','\x41\x4e\x47\x70\x57\x37\x52\x63\x50\x71','\x6e\x38\x6b\x6c\x7a\x66\x46\x63\x48\x43\x6b\x4e','\x57\x36\x71\x51\x57\x36\x57\x46\x7a\x47','\x57\x4f\x4a\x63\x53\x4e\x62\x76\x6e\x47\x47\x6f\x57\x50\x68\x64\x4b\x43\x6b\x52\x76\x64\x70\x63\x52\x6d\x6b\x42','\x6c\x47\x35\x6d\x45\x43\x6f\x2f\x6b\x4c\x43','\x57\x37\x39\x2b\x57\x37\x65','\x70\x30\x70\x64\x54\x43\x6f\x43\x57\x50\x33\x64\x4b\x30\x37\x64\x50\x48\x72\x53\x57\x4f\x76\x6f\x45\x61','\x57\x35\x62\x59\x57\x52\x57\x37\x57\x4f\x57','\x68\x32\x35\x32\x75\x6d\x6f\x6d\x57\x35\x37\x63\x55\x63\x43','\x7a\x78\x78\x64\x51\x53\x6b\x44\x74\x62\x57\x4b\x6f\x47','\x73\x59\x6a\x57\x57\x50\x4e\x64\x49\x43\x6f\x4c\x57\x4f\x56\x63\x56\x47','\x57\x37\x33\x63\x4c\x43\x6f\x33\x71\x61','\x78\x4c\x69\x38\x57\x35\x4a\x63\x50\x47\x54\x53\x74\x61','\x73\x4e\x72\x79\x79\x67\x68\x64\x4b\x6d\x6f\x68\x63\x47','\x64\x73\x34\x37\x57\x34\x5a\x63\x48\x6d\x6b\x63\x77\x49\x6d','\x6e\x6d\x6f\x62\x6a\x73\x6a\x77','\x57\x36\x68\x63\x54\x76\x6c\x63\x55\x57\x71','\x6a\x57\x35\x70\x57\x4f\x5a\x63\x52\x63\x72\x4e\x46\x57','\x44\x38\x6f\x50\x65\x71\x4b','\x43\x31\x4b\x6c\x72\x53\x6f\x30\x63\x4d\x69\x38\x57\x37\x71','\x42\x53\x6b\x34\x57\x36\x31\x6b\x62\x4e\x66\x6a\x57\x51\x47','\x6c\x65\x6a\x6d\x70\x38\x6b\x70','\x69\x43\x6f\x73\x57\x52\x38\x74\x46\x57','\x57\x52\x74\x63\x51\x66\x2f\x63\x51\x49\x38\x38\x57\x34\x6a\x57','\x57\x52\x74\x63\x52\x59\x69\x48\x57\x50\x4a\x63\x51\x53\x6f\x31\x6f\x47','\x57\x35\x5a\x64\x4c\x4b\x69\x32\x57\x34\x38','\x57\x34\x46\x63\x48\x6d\x6f\x58\x57\x36\x35\x79\x41\x4a\x78\x64\x4a\x61','\x6d\x57\x74\x64\x4f\x38\x6f\x44\x6d\x47','\x57\x36\x61\x66\x57\x52\x33\x64\x49\x38\x6f\x49\x76\x49\x76\x39','\x76\x72\x79\x46\x57\x36\x44\x64','\x75\x43\x6b\x68\x6b\x75\x70\x63\x49\x72\x2f\x64\x50\x61','\x57\x34\x38\x4e\x57\x52\x6c\x64\x4a\x53\x6f\x67','\x57\x34\x4e\x64\x53\x5a\x71\x6b','\x79\x72\x69\x75\x57\x35\x4c\x71','\x6f\x4b\x50\x73\x6e\x38\x6b\x75','\x78\x49\x38\x36\x57\x34\x33\x63\x4a\x43\x6b\x75\x41\x59\x43','\x57\x35\x48\x52\x57\x52\x47\x30\x57\x4f\x54\x32\x75\x38\x6f\x70','\x57\x35\x35\x59\x57\x52\x57\x39\x57\x4f\x6e\x52\x72\x6d\x6f\x5a','\x61\x59\x50\x78\x57\x51\x6c\x63\x55\x47','\x73\x63\x48\x78\x57\x52\x4e\x64\x53\x57','\x42\x4e\x4e\x64\x50\x53\x6b\x43\x76\x47\x34\x42','\x69\x31\x70\x64\x53\x31\x37\x63\x47\x59\x48\x7a\x57\x36\x57','\x62\x4e\x6c\x63\x56\x53\x6b\x30','\x74\x30\x6d\x34\x57\x35\x4a\x63\x52\x61','\x57\x4f\x52\x64\x55\x53\x6f\x69\x46\x43\x6b\x2b','\x67\x43\x6b\x53\x57\x36\x58\x70\x7a\x61','\x62\x4a\x79\x37\x57\x34\x56\x63\x4e\x6d\x6f\x69\x7a\x64\x71','\x57\x51\x30\x68\x57\x34\x58\x6d\x57\x37\x6c\x63\x55\x38\x6f\x4d\x6f\x71','\x6e\x38\x6f\x69\x70\x53\x6f\x50','\x76\x43\x6b\x58\x78\x53\x6b\x4e\x57\x52\x43','\x6f\x38\x6b\x54\x57\x37\x50\x70\x6f\x57','\x66\x38\x6f\x36\x63\x6d\x6f\x4b\x57\x37\x6c\x63\x50\x47\x52\x64\x53\x57','\x63\x48\x6c\x64\x4d\x57','\x61\x61\x46\x64\x4c\x53\x6f\x2b\x65\x31\x54\x33\x73\x71','\x72\x68\x6d\x44\x57\x36\x65\x53\x57\x4f\x57','\x74\x65\x50\x4b\x72\x4d\x65','\x78\x4d\x66\x51\x75\x6d\x6b\x5a\x57\x50\x42\x63\x53\x64\x79','\x43\x5a\x6c\x63\x53\x4a\x5a\x64\x48\x47','\x79\x53\x6f\x38\x61\x66\x6c\x64\x4b\x4d\x6c\x63\x4c\x38\x6f\x41','\x57\x52\x34\x71\x57\x52\x31\x47\x57\x4f\x4f','\x6d\x61\x72\x46\x45\x6d\x6f\x4d\x6e\x30\x47\x50','\x57\x34\x52\x63\x53\x6d\x6b\x43\x41\x38\x6b\x78\x57\x37\x4f\x68\x68\x61','\x6c\x30\x78\x64\x54\x31\x46\x63\x4e\x4a\x72\x44\x57\x52\x4f','\x6f\x57\x6c\x64\x4b\x6d\x6f\x34\x62\x57','\x79\x72\x2f\x63\x4a\x49\x78\x64\x51\x71','\x57\x50\x42\x64\x56\x38\x6f\x76\x41\x53\x6b\x50\x57\x37\x71\x6e\x75\x71','\x6c\x71\x66\x79\x57\x4f\x78\x63\x56\x49\x39\x57\x44\x71','\x63\x43\x6f\x35\x57\x52\x30\x63\x42\x47','\x42\x58\x78\x63\x4f\x38\x6b\x31\x57\x34\x4a\x63\x47\x71\x2f\x64\x4e\x71','\x73\x31\x38\x2f\x57\x35\x57','\x65\x4d\x72\x73\x62\x53\x6b\x7a','\x57\x37\x35\x36\x57\x34\x62\x34\x57\x51\x57','\x72\x38\x6b\x73\x70\x57\x52\x64\x49\x4b\x56\x63\x56\x77\x71','\x57\x37\x48\x67\x57\x35\x71\x46\x57\x52\x74\x64\x54\x43\x6f\x47\x79\x71','\x57\x36\x4e\x63\x4d\x66\x70\x63\x55\x38\x6b\x4d\x57\x35\x70\x64\x48\x4a\x43','\x57\x51\x57\x39\x57\x50\x71\x45\x57\x34\x38','\x57\x34\x7a\x68\x57\x37\x47','\x45\x4a\x4b\x57\x74\x38\x6f\x6d\x6d\x33\x53\x6e\x74\x6d\x6f\x6c\x69\x77\x6d','\x43\x65\x6a\x74\x44\x78\x4e\x64\x4f\x6d\x6f\x43\x63\x57','\x72\x59\x50\x35\x57\x50\x4e\x64\x4b\x47','\x77\x67\x54\x63\x7a\x4e\x61','\x7a\x4e\x66\x42\x74\x75\x38','\x57\x52\x78\x63\x50\x30\x57','\x42\x6d\x6f\x33\x57\x52\x54\x75\x65\x63\x65\x68\x57\x36\x71','\x57\x35\x79\x4f\x41\x4e\x71\x52\x57\x37\x52\x64\x4f\x6d\x6f\x59','\x57\x52\x58\x41\x57\x36\x37\x63\x4c\x43\x6b\x47\x70\x67\x47\x47\x76\x6d\x6f\x68\x69\x67\x6a\x41\x57\x4f\x53','\x74\x30\x38\x2f\x57\x34\x61','\x57\x34\x50\x4e\x6b\x71','\x65\x67\x46\x63\x52\x6d\x6f\x50\x71\x43\x6f\x48\x6c\x38\x6b\x6b','\x65\x53\x6f\x4f\x66\x6d\x6f\x6b\x77\x71','\x70\x53\x6b\x4f\x57\x36\x7a\x77','\x57\x34\x64\x64\x4b\x4c\x48\x62','\x57\x37\x4a\x64\x54\x68\x6a\x52\x57\x4f\x38','\x78\x74\x6e\x4e\x57\x50\x56\x64\x48\x38\x6f\x37\x57\x50\x30','\x57\x35\x62\x61\x57\x36\x30\x49\x70\x57','\x77\x43\x6b\x4a\x74\x57','\x70\x53\x6b\x30\x57\x36\x76\x42','\x57\x50\x61\x52\x57\x52\x57\x6c\x57\x34\x69','\x63\x71\x4e\x64\x49\x38\x6f\x31','\x57\x51\x57\x62\x57\x51\x6d\x2f\x57\x35\x44\x2f\x68\x64\x34','\x57\x34\x33\x64\x54\x63\x34\x70','\x45\x72\x74\x63\x53\x61','\x77\x4c\x4b\x2f\x57\x35\x68\x63\x56\x73\x7a\x47\x44\x57','\x57\x34\x37\x64\x56\x5a\x76\x36\x57\x50\x35\x6a\x6e\x38\x6b\x47','\x57\x34\x50\x4b\x6c\x4e\x4b\x56','\x57\x34\x4c\x48\x57\x51\x65\x31','\x64\x73\x38\x55\x57\x35\x5a\x63\x54\x38\x6b\x65\x46\x64\x69','\x57\x35\x70\x64\x4a\x4d\x58\x6b\x57\x50\x38','\x73\x5a\x75\x62\x57\x36\x61\x73\x57\x4f\x33\x63\x4b\x53\x6f\x4c','\x70\x67\x62\x69\x70\x43\x6b\x30','\x71\x4e\x76\x51\x74\x61','\x6e\x4c\x37\x64\x53\x66\x4f','\x75\x74\x70\x63\x54\x49\x64\x64\x55\x47','\x57\x37\x72\x36\x57\x36\x54\x30\x57\x52\x30','\x57\x36\x65\x70\x57\x51\x52\x64\x4c\x53\x6f\x70\x79\x63\x72\x4a','\x76\x4d\x7a\x59\x43\x43\x6b\x4b','\x79\x38\x6b\x64\x69\x49\x56\x64\x52\x71','\x74\x31\x6d\x38\x57\x35\x68\x64\x51\x72\x38\x50\x74\x57','\x72\x32\x7a\x79\x43\x75\x52\x64\x51\x53\x6f\x77\x68\x47','\x74\x6d\x6b\x50\x77\x53\x6b\x48','\x6c\x6d\x6f\x45\x6d\x53\x6b\x51\x67\x38\x6b\x79','\x61\x4d\x50\x77\x6a\x43\x6b\x6e','\x57\x52\x74\x63\x4d\x31\x6c\x63\x4c\x43\x6b\x6a\x61\x4d\x71\x47','\x57\x35\x42\x64\x49\x4a\x6d\x61\x79\x57','\x64\x43\x6f\x61\x57\x50\x65\x5a\x72\x30\x30\x62\x79\x57','\x6c\x6d\x6f\x6f\x6c\x4c\x42\x63\x4c\x53\x6b\x5a\x79\x53\x6f\x31','\x57\x37\x68\x64\x4b\x53\x6f\x7a\x57\x36\x53\x53','\x6e\x53\x6f\x2b\x57\x4f\x75\x68\x76\x57','\x77\x6d\x6b\x6a\x6b\x47','\x6f\x38\x6b\x50\x57\x37\x6d\x67','\x71\x4a\x54\x5a\x57\x4f\x68\x64\x55\x43\x6f\x59\x57\x50\x42\x64\x54\x61','\x57\x4f\x56\x64\x50\x6d\x6f\x75\x41\x6d\x6b\x66','\x57\x37\x48\x72\x74\x49\x2f\x64\x4d\x71','\x57\x36\x39\x61\x57\x36\x37\x64\x52\x53\x6f\x30','\x57\x34\x35\x36\x57\x51\x38\x32\x57\x4f\x76\x4f\x72\x71','\x57\x37\x74\x63\x50\x66\x70\x63\x54\x58\x53','\x57\x35\x4c\x43\x57\x37\x37\x64\x49\x38\x6f\x57\x6b\x33\x2f\x64\x47\x57','\x6d\x6d\x6f\x63\x66\x61','\x57\x37\x52\x64\x53\x4d\x53','\x42\x65\x43\x63\x57\x34\x6c\x63\x56\x47','\x61\x49\x74\x64\x48\x6d\x6f\x6b\x70\x47','\x57\x34\x44\x6a\x57\x36\x56\x64\x48\x6d\x6f\x39','\x57\x50\x42\x64\x55\x43\x6f\x63\x76\x38\x6b\x55','\x43\x4b\x74\x64\x53\x53\x6b\x4f\x45\x57','\x41\x30\x2f\x64\x50\x43\x6b\x32\x76\x47','\x74\x6d\x6b\x34\x6f\x38\x6b\x58\x57\x35\x52\x63\x49\x43\x6b\x68','\x57\x36\x4e\x64\x55\x71\x4e\x64\x48\x6d\x6f\x73\x76\x64\x34\x6b\x74\x72\x37\x63\x51\x73\x75\x4c','\x6d\x71\x48\x65\x45\x71','\x57\x35\x52\x64\x55\x67\x54\x62\x57\x4f\x57','\x6e\x6d\x6b\x68\x42\x71\x56\x64\x48\x71','\x57\x37\x62\x42\x57\x34\x39\x45\x57\x52\x4b','\x57\x52\x6c\x63\x52\x65\x52\x63\x54\x58\x30\x39\x57\x4f\x43\x52','\x57\x50\x34\x2f\x57\x51\x54\x41\x6e\x53\x6f\x32\x57\x52\x4f\x53','\x75\x78\x4f\x44\x57\x36\x39\x62\x57\x36\x57\x54\x57\x37\x4f','\x44\x53\x6f\x4f\x64\x65\x64\x63\x47\x74\x33\x64\x4e\x6d\x6f\x43','\x46\x38\x6b\x35\x57\x37\x48\x59\x57\x37\x4b','\x62\x48\x37\x64\x4b\x53\x6f\x33\x67\x30\x7a\x47\x45\x71','\x57\x35\x72\x39\x57\x51\x53\x30\x57\x50\x66\x47\x75\x38\x6f\x35','\x57\x35\x42\x63\x50\x43\x6b\x64\x6d\x6d\x6f\x67\x57\x51\x6e\x73\x73\x38\x6f\x70\x57\x50\x4a\x64\x4f\x30\x4e\x63\x4d\x71','\x6d\x48\x72\x6e\x44\x61','\x57\x35\x6c\x64\x4b\x78\x68\x63\x53\x71','\x6c\x6d\x6b\x43\x44\x58\x4a\x64\x4d\x53\x6b\x53\x41\x43\x6f\x31','\x65\x61\x6e\x4e\x57\x50\x61','\x67\x43\x6b\x51\x57\x37\x31\x57\x57\x36\x54\x62\x6d\x71','\x69\x76\x4e\x64\x50\x4b\x6c\x64\x4a\x68\x44\x6f\x57\x52\x47','\x72\x5a\x72\x4e','\x57\x35\x50\x72\x57\x52\x33\x63\x48\x57','\x41\x57\x78\x63\x55\x71\x4e\x64\x49\x43\x6f\x32\x44\x71','\x61\x78\x61\x49\x57\x35\x78\x63\x49\x38\x6f\x35\x57\x4f\x68\x64\x53\x61','\x57\x36\x71\x35\x57\x35\x30\x6a\x44\x4c\x53','\x57\x36\x74\x63\x47\x6d\x6f\x4a\x68\x33\x48\x33\x6b\x49\x34','\x43\x4d\x57\x67\x57\x35\x46\x63\x52\x61','\x72\x4d\x4e\x63\x4e\x38\x6f\x63\x6a\x65\x31\x39\x62\x47','\x57\x36\x57\x44\x57\x51\x52\x64\x48\x38\x6f\x4b\x77\x4a\x76\x33','\x6b\x68\x44\x67\x68\x43\x6b\x62','\x57\x34\x6e\x48\x57\x36\x58\x6d\x57\x50\x6d','\x57\x37\x78\x64\x52\x32\x72\x4e\x57\x4f\x52\x63\x4b\x6d\x6f\x47\x44\x61','\x57\x50\x52\x64\x53\x53\x6f\x37\x79\x38\x6b\x4a','\x57\x36\x42\x63\x56\x65\x37\x63\x54\x57','\x57\x52\x4f\x76\x57\x50\x50\x66\x70\x32\x70\x64\x55\x62\x38','\x57\x37\x4a\x64\x4f\x6d\x6f\x52\x57\x35\x4b\x77','\x76\x58\x4f\x32\x57\x50\x56\x64\x49\x6d\x6f\x69\x6a\x78\x71','\x61\x59\x38\x64\x6b\x5a\x37\x63\x50\x53\x6b\x66\x72\x57','\x46\x38\x6f\x4c\x57\x51\x62\x4b\x6e\x31\x44\x48\x57\x52\x4b\x74','\x57\x52\x4a\x64\x55\x38\x6f\x41\x7a\x38\x6b\x78','\x72\x32\x35\x51\x74\x6d\x6b\x66\x57\x50\x78\x63\x56\x61','\x6a\x6d\x6b\x4d\x57\x36\x30','\x64\x6d\x6b\x42\x57\x35\x62\x44\x77\x61','\x57\x37\x38\x6c\x57\x52\x46\x64\x47\x38\x6f\x39\x79\x61\x39\x51','\x43\x48\x2f\x63\x56\x71\x4f','\x45\x74\x52\x63\x54\x6d\x6b\x4e\x57\x37\x38','\x73\x75\x38\x38\x57\x35\x4a\x63\x51\x62\x50\x53','\x57\x36\x50\x46\x57\x51\x79\x44\x57\x51\x4b','\x6c\x72\x66\x6f\x43\x38\x6f\x73\x6b\x4c\x65\x49','\x43\x6d\x6b\x61\x69\x62\x70\x64\x51\x71','\x44\x68\x2f\x64\x51\x53\x6b\x64','\x57\x4f\x57\x35\x43\x59\x54\x34\x57\x36\x74\x64\x4e\x43\x6b\x32\x64\x43\x6b\x67\x57\x52\x4b','\x72\x43\x6b\x42\x57\x4f\x71\x49\x6d\x33\x37\x63\x4e\x4a\x6d','\x57\x50\x44\x42\x61\x47','\x77\x6d\x6f\x6a\x57\x50\x71\x55\x6a\x65\x78\x64\x4a\x4e\x38','\x57\x34\x35\x4e\x57\x51\x4b\x53\x57\x50\x66\x33\x67\x6d\x6f\x47','\x57\x50\x42\x63\x4b\x4a\x70\x63\x50\x6d\x6f\x2f\x57\x50\x46\x63\x4a\x57\x75','\x57\x51\x57\x62\x57\x51\x6d\x38\x57\x34\x50\x35\x63\x47','\x72\x4e\x71\x66','\x6f\x30\x70\x64\x53\x53\x6f\x42\x57\x50\x37\x63\x4b\x59\x37\x64\x49\x48\x50\x71\x57\x52\x71','\x79\x72\x68\x63\x4f\x38\x6b\x7a\x57\x35\x38','\x57\x35\x58\x47\x57\x51\x30','\x77\x78\x38\x6b\x57\x52\x76\x69\x57\x37\x65\x34\x57\x52\x47','\x75\x6d\x6b\x61\x57\x50\x65\x55\x6b\x4c\x74\x63\x4d\x48\x38','\x69\x32\x76\x55\x64\x38\x6b\x78','\x75\x64\x71\x79\x57\x37\x31\x6a\x57\x35\x64\x64\x48\x61','\x6d\x4c\x6c\x64\x53\x31\x43','\x6b\x65\x74\x64\x54\x61','\x57\x36\x5a\x64\x56\x31\x7a\x4f\x57\x51\x4b','\x67\x73\x74\x63\x4b\x6d\x6f\x6d\x44\x32\x75\x52\x6a\x61','\x77\x53\x6b\x54\x64\x63\x4e\x64\x47\x57','\x75\x43\x6b\x4a\x41\x38\x6b\x32\x57\x51\x33\x63\x51\x72\x57','\x64\x73\x38\x5a\x57\x35\x46\x63\x49\x43\x6b\x6b','\x57\x52\x31\x2f\x57\x35\x34\x6f\x7a\x65\x70\x63\x4d\x68\x65','\x7a\x4d\x74\x64\x52\x43\x6b\x6b\x67\x65\x66\x78\x42\x47','\x42\x77\x6c\x64\x50\x38\x6b\x6c','\x57\x50\x42\x63\x4b\x4a\x70\x63\x56\x53\x6f\x31\x57\x50\x46\x63\x4a\x33\x71','\x75\x63\x71\x75\x57\x36\x6a\x6c\x57\x34\x4f','\x71\x53\x6b\x61\x57\x50\x61\x2f\x69\x66\x6d','\x57\x36\x71\x47\x57\x35\x79\x6f\x79\x57','\x57\x37\x48\x4d\x57\x4f\x38\x6f\x57\x52\x69','\x64\x5a\x79\x78\x57\x37\x42\x63\x52\x57','\x57\x36\x6d\x62\x57\x51\x34','\x45\x53\x6f\x4f\x57\x51\x43\x6c\x75\x5a\x43\x78\x57\x52\x34\x70\x57\x4f\x57\x52\x57\x4f\x46\x63\x47\x57','\x73\x38\x6b\x69\x57\x52\x71\x36\x65\x57','\x43\x64\x47\x42\x57\x37\x6d','\x6d\x31\x2f\x64\x50\x71\x4f','\x76\x57\x6e\x53\x57\x35\x33\x63\x50\x31\x4b','\x57\x50\x30\x49\x57\x52\x44\x68','\x76\x33\x48\x54\x71\x43\x6b\x45\x57\x50\x33\x63\x51\x73\x4f','\x57\x36\x4e\x64\x4c\x6d\x6f\x74\x57\x36\x47\x6d','\x57\x36\x4e\x64\x4a\x6d\x6f\x71\x57\x37\x71\x75\x41\x61\x70\x64\x48\x57','\x57\x4f\x47\x56\x57\x52\x62\x6b\x6b\x6d\x6f\x38\x57\x50\x34\x34','\x57\x35\x2f\x64\x54\x77\x4f\x31\x57\x50\x57\x70\x6f\x53\x6b\x73','\x67\x6d\x6f\x59\x61\x6d\x6f\x52\x57\x37\x68\x63\x52\x57\x5a\x64\x53\x57','\x73\x6d\x6b\x6e\x57\x37\x7a\x45\x57\x34\x53','\x46\x4a\x48\x62\x57\x52\x70\x64\x4f\x61','\x57\x51\x74\x63\x49\x38\x6f\x42\x57\x36\x71\x6f\x69\x5a\x6c\x64\x4c\x57','\x57\x51\x47\x63\x57\x34\x48\x41','\x6a\x43\x6b\x52\x57\x37\x6e\x75\x6e\x57','\x57\x35\x56\x64\x49\x4c\x6d\x63\x57\x37\x6d','\x72\x78\x79\x66\x57\x51\x7a\x41\x57\x37\x79','\x6e\x4b\x6c\x64\x53\x31\x43','\x43\x4b\x72\x55\x76\x4e\x57','\x6c\x47\x62\x6e\x41\x6d\x6f\x2f\x6f\x31\x57\x38','\x77\x33\x6c\x63\x4b\x6d\x6f\x66\x74\x61','\x42\x53\x6f\x54\x68\x72\x37\x64\x49\x57','\x57\x37\x56\x64\x48\x53\x6f\x71\x57\x37\x6d\x6d','\x57\x34\x44\x45\x57\x36\x30\x68\x70\x4b\x52\x63\x49\x6d\x6b\x59','\x6e\x53\x6f\x65\x57\x51\x47\x54\x42\x57','\x57\x36\x6e\x57\x57\x37\x6a\x5a\x57\x51\x74\x63\x54\x68\x7a\x59','\x69\x4d\x66\x33\x67\x43\x6b\x6a\x41\x75\x6d\x5a','\x57\x37\x5a\x63\x53\x77\x56\x63\x48\x5a\x65','\x57\x36\x6c\x64\x47\x5a\x38\x73\x41\x4c\x35\x69\x57\x34\x43','\x45\x66\x57\x67\x57\x37\x4e\x63\x48\x61','\x43\x67\x5a\x64\x54\x38\x6b\x67','\x57\x50\x6c\x64\x56\x6d\x6f\x71\x43\x43\x6b\x71\x57\x37\x47\x71\x75\x71','\x77\x5a\x72\x52\x57\x50\x56\x64\x49\x43\x6f\x47\x57\x4f\x61','\x75\x66\x2f\x64\x4f\x53\x6b\x42\x76\x71','\x43\x66\x7a\x43\x57\x50\x56\x63\x48\x73\x7a\x53\x71\x57','\x57\x37\x54\x4c\x57\x35\x47\x34\x6f\x61','\x57\x37\x31\x2b\x57\x36\x65','\x57\x36\x30\x7a\x57\x35\x57\x74\x43\x61','\x57\x37\x48\x70\x57\x36\x62\x47\x57\x4f\x38\x35\x69\x64\x6e\x4e\x57\x37\x5a\x63\x49\x38\x6b\x71','\x57\x34\x7a\x2b\x57\x36\x38\x6c','\x65\x74\x71\x58\x57\x36\x52\x63\x4e\x6d\x6b\x68\x43\x73\x6d','\x57\x34\x6e\x67\x57\x36\x56\x64\x47\x53\x6f\x4e\x67\x4e\x4a\x64\x48\x47','\x46\x38\x6f\x53\x57\x51\x79\x69\x75\x4a\x61\x46\x57\x4f\x65\x4c\x57\x52\x43\x6e\x57\x4f\x6c\x63\x50\x71','\x42\x78\x37\x63\x52\x71','\x6c\x53\x6f\x74\x63\x63\x35\x53','\x6b\x57\x4a\x64\x48\x43\x6f\x5a\x69\x47','\x75\x6d\x6b\x67\x57\x51\x38\x2f\x6e\x30\x4a\x63\x47\x64\x75','\x57\x50\x34\x34\x57\x51\x4f','\x74\x49\x61\x62\x57\x37\x6e\x61','\x62\x57\x2f\x64\x4a\x6d\x6f\x38\x62\x58\x72\x53\x78\x47','\x57\x50\x65\x54\x57\x37\x6a\x43\x57\x51\x4f','\x74\x74\x6e\x67\x57\x37\x71\x45','\x57\x34\x64\x64\x4c\x32\x4e\x63\x54\x43\x6f\x51','\x6c\x38\x6f\x46\x6f\x43\x6f\x4a\x71\x43\x6f\x45','\x57\x36\x75\x31\x57\x35\x4b\x73\x7a\x75\x74\x64\x4e\x49\x30','\x57\x36\x34\x45\x57\x34\x34\x4c\x77\x61','\x57\x36\x50\x41\x57\x4f\x4f\x6a\x57\x37\x52\x63\x56\x38\x6f\x32\x65\x57\x30\x37\x57\x34\x4e\x64\x50\x73\x69','\x62\x57\x4c\x70\x76\x43\x6f\x62','\x57\x35\x48\x52\x57\x52\x57\x39\x57\x50\x7a\x51\x76\x38\x6f\x4d','\x77\x78\x38\x65\x57\x52\x6e\x6c','\x57\x35\x72\x6f\x64\x68\x6d\x49','\x57\x52\x52\x64\x50\x38\x6f\x32\x46\x6d\x6b\x75','\x57\x35\x54\x59\x57\x51\x71\x52\x57\x4f\x65','\x6e\x38\x6f\x69\x69\x53\x6f\x48','\x6c\x6d\x6f\x69\x69\x38\x6f\x67\x74\x6d\x6b\x6c\x57\x36\x46\x63\x50\x57','\x76\x33\x48\x50\x73\x6d\x6b\x64\x57\x4f\x68\x63\x52\x78\x57','\x6d\x5a\x44\x41\x72\x43\x6f\x74','\x6b\x43\x6b\x61\x57\x37\x48\x43\x79\x47','\x57\x52\x58\x44\x57\x36\x64\x63\x4b\x6d\x6b\x4b\x6e\x32\x76\x6b\x72\x6d\x6f\x45\x6b\x4c\x4c\x69','\x57\x36\x6d\x2f\x57\x36\x4b\x74\x7a\x76\x37\x64\x4d\x74\x57','\x78\x32\x48\x49\x76\x4c\x52\x64\x4e\x6d\x6f\x41\x68\x61','\x70\x6d\x6f\x68\x61\x61','\x79\x68\x72\x59\x57\x36\x4e\x64\x4f\x30\x43\x48\x73\x61','\x74\x67\x53\x46\x57\x51\x72\x43\x57\x37\x61\x52\x57\x52\x4b','\x6f\x53\x6b\x47\x44\x33\x52\x63\x55\x61','\x6b\x53\x6f\x75\x69\x38\x6f\x48\x72\x38\x6f\x79\x57\x37\x78\x63\x56\x47','\x70\x6d\x6b\x37\x57\x37\x6e\x48\x75\x53\x6b\x71\x71\x59\x47','\x57\x36\x6c\x64\x4c\x6d\x6f\x74\x57\x36\x34\x6b\x41\x71','\x43\x4d\x74\x63\x55\x38\x6f\x30\x75\x57','\x74\x6d\x6b\x73\x6b\x62\x68\x64\x49\x4b\x33\x63\x55\x61','\x57\x34\x6c\x63\x4c\x67\x5a\x63\x47\x59\x47','\x57\x35\x6e\x30\x57\x36\x47\x39\x57\x50\x58\x30\x77\x53\x6f\x4c','\x43\x6d\x6f\x56\x64\x62\x70\x64\x48\x33\x37\x63\x4e\x6d\x6f\x70','\x57\x37\x47\x43\x57\x52\x75','\x43\x32\x68\x64\x51\x53\x6b\x6e\x78\x71','\x57\x36\x54\x6e\x57\x36\x71\x51\x61\x61','\x57\x37\x42\x64\x47\x43\x6f\x72\x57\x36\x79\x6d\x7a\x61','\x63\x38\x6b\x50\x57\x36\x44\x71\x6c\x71','\x57\x34\x4c\x48\x6e\x33\x38','\x57\x34\x31\x73\x57\x52\x31\x67\x69\x76\x4e\x63\x4d\x43\x6b\x66','\x64\x6d\x6f\x6a\x57\x35\x65\x4c\x6a\x65\x5a\x63\x49\x33\x69','\x72\x32\x48\x7a\x79\x65\x52\x64\x55\x38\x6f\x44','\x72\x4a\x54\x5a','\x57\x37\x5a\x63\x4b\x6d\x6f\x49\x66\x66\x53','\x57\x52\x4e\x64\x4a\x53\x6b\x70\x77\x6d\x6f\x43\x57\x51\x4c\x6b\x7a\x57','\x6e\x38\x6f\x64\x6a\x38\x6f\x48','\x57\x35\x6e\x63\x57\x35\x6a\x33\x57\x4f\x43','\x57\x35\x39\x48\x6b\x33\x38','\x77\x33\x64\x63\x4d\x53\x6f\x6e\x79\x71','\x57\x4f\x69\x75\x57\x51\x6e\x65\x6e\x76\x33\x63\x4d\x38\x6f\x63','\x69\x74\x58\x63\x57\x4f\x46\x63\x51\x61','\x57\x34\x6e\x43\x57\x36\x79','\x44\x43\x6b\x4d\x77\x53\x6b\x6d\x57\x4f\x75','\x43\x53\x6f\x68\x61\x63\x37\x64\x50\x71','\x73\x73\x68\x63\x54\x53\x6b\x55\x57\x34\x38','\x7a\x31\x4b\x71\x57\x36\x46\x63\x4c\x66\x6d\x32\x6f\x47','\x65\x63\x4b\x4a','\x61\x78\x70\x63\x49\x38\x6f\x31\x73\x57','\x72\x6d\x6b\x64\x70\x57','\x43\x6d\x6f\x6f\x65\x63\x35\x31\x57\x35\x2f\x64\x47\x75\x43','\x57\x36\x6a\x39\x57\x36\x39\x35\x57\x51\x34','\x57\x36\x31\x62\x57\x51\x4b\x54\x57\x4f\x4b','\x57\x4f\x47\x37\x46\x49\x48\x2b\x57\x51\x78\x63\x56\x6d\x6b\x6c\x6b\x38\x6b\x33\x57\x4f\x5a\x63\x49\x43\x6b\x4a','\x42\x75\x5a\x64\x47\x53\x6b\x33\x45\x57','\x57\x37\x37\x64\x53\x4e\x76\x47','\x79\x4d\x52\x63\x4c\x53\x6f\x4b\x7a\x57','\x76\x59\x47\x62\x57\x37\x58\x6e','\x78\x78\x62\x50\x73\x38\x6b\x45\x57\x4f\x46\x63\x56\x73\x47','\x76\x47\x4a\x63\x4a\x53\x6b\x74\x57\x36\x71','\x7a\x53\x6f\x4d\x57\x36\x6a\x72\x73\x6d\x6b\x5a\x73\x49\x79','\x57\x51\x38\x71\x57\x52\x38\x4e\x57\x35\x31\x2f','\x57\x35\x50\x4f\x42\x49\x6c\x64\x4b\x71','\x6c\x53\x6f\x50\x65\x72\x4a\x64\x47\x64\x46\x63\x48\x43\x6f\x6c','\x74\x6d\x6b\x6f\x6c\x53\x6b\x4f\x57\x35\x34','\x57\x34\x4c\x51\x57\x52\x47\x39','\x57\x4f\x61\x32\x57\x52\x62\x6d\x6d\x47','\x63\x49\x6d\x4e\x57\x34\x30','\x6b\x68\x54\x4d\x67\x6d\x6f\x42\x44\x65\x53\x34','\x6a\x43\x6b\x4d\x57\x36\x35\x62','\x57\x36\x70\x64\x4a\x78\x7a\x54\x57\x52\x6d','\x70\x38\x6f\x67\x57\x51\x65\x6d\x6f\x48\x53\x45\x69\x47','\x68\x77\x46\x63\x54\x6d\x6f\x2f\x68\x6d\x6b\x55','\x69\x38\x6b\x55\x57\x52\x53\x45\x6b\x4d\x31\x6e\x57\x51\x57','\x57\x36\x34\x44\x57\x37\x46\x64\x4f\x38\x6f\x7a\x6b\x74\x39\x47','\x78\x43\x6b\x2b\x57\x34\x4c\x79\x57\x35\x35\x57\x6d\x71','\x69\x72\x57\x75\x57\x34\x70\x64\x51\x77\x53\x34\x41\x61','\x65\x67\x4e\x63\x54\x53\x6f\x36\x71\x38\x6f\x38\x6b\x43\x6b\x4e','\x57\x52\x6c\x63\x4d\x75\x4a\x63\x56\x6d\x6b\x50','\x76\x43\x6b\x77\x70\x71\x2f\x64\x4e\x71','\x57\x50\x4e\x63\x50\x67\x31\x6e\x6b\x66\x7a\x74\x57\x35\x79','\x57\x37\x38\x4c\x57\x35\x47\x34\x44\x4b\x74\x64\x48\x64\x34','\x57\x35\x54\x36\x57\x51\x71\x53\x57\x4f\x66\x32','\x57\x37\x56\x64\x50\x72\x42\x63\x4d\x38\x6b\x6a\x61\x67\x71\x4d'];_0x521b=function(){return _0x42ad36;};return _0x521b();}_0x1fa1d2[_0x31e7f1(0x341,'\x55\x34\x5a\x38')+_0x31e7f1(0x1fb,'\x2a\x6e\x4e\x58')]=_0x201d6d,_0x1fa1d2[_0x31e7f1(0x345,'\x64\x57\x32\x37')+_0x31e7f1(0x2d1,'\x43\x50\x4e\x55')]=_0x901301,_0x1fa1d2[_0x31e7f1(0x2cd,'\x66\x24\x36\x6c')+_0x31e7f1(0x20f,'\x34\x51\x6c\x67')]=_0x3ccbbd,_0x1fa1d2[_0x31e7f1(0x248,'\x29\x48\x5a\x35')+_0x31e7f1(0x323,'\x6a\x63\x37\x75')]=_0x4d56d8,_0x1fa1d2[_0x31e7f1(0x253,'\x49\x61\x78\x5b')+_0x31e7f1(0x27e,'\x50\x24\x69\x29')+'\x65']=_0x165126,_0x1fa1d2[_0x31e7f1(0x299,'\x6c\x52\x43\x53')+_0x31e7f1(0x3b7,'\x66\x61\x75\x23')]=_0x11f493,_0x1fa1d2[_0x31e7f1(0x20c,'\x5d\x25\x53\x55')+'\x72\x65']=_0xf39610,module[_0x31e7f1(0x373,'\x57\x4c\x55\x34')]=_0x1fa1d2;
@@ -1,121 +0,0 @@
1
- // Feature flags persistence layer.
2
- //
3
- // Provides three-tier override semantics (read by callers):
4
- // 1. Local env (highest priority, user escape hatch)
5
- // 2. Persisted flag from disk (set by hub mailbox or manual write)
6
- // 3. Code default (lowest priority)
7
- //
8
- // File location: ~/.evomap/feature_flags.json (same dir as node_id / node_secret).
9
- // Schema: { "<key>": { value: any, source: string, updatedAt: ISO8601 } }
10
- //
11
- // Whitelist enforcement happens at the caller (HUB_EVENT_HANDLERS).
12
-
13
- 'use strict';
14
-
15
- const fs = require('fs');
16
- const path = require('path');
17
-
18
- // Lazy resolution via paths.getEvomapDir() — honors EVOLVER_HOME (#114).
19
- const { getEvomapDir } = require('./paths');
20
- function _flagsDir() { return getEvomapDir(); }
21
- function _flagsFile() { return path.join(_flagsDir(), 'feature_flags.json'); }
22
- const LOCAL_FLAGS_FILE = path.resolve(__dirname, '..', '..', '.evomap_feature_flags.json');
23
-
24
- let _cache = null;
25
- let _cacheLoaded = false;
26
-
27
- function _readFile(p) {
28
- try {
29
- if (!fs.existsSync(p)) return null;
30
- const raw = fs.readFileSync(p, 'utf8');
31
- if (!raw) return null;
32
- const obj = JSON.parse(raw);
33
- if (obj && typeof obj === 'object') return obj;
34
- } catch (_) {}
35
- return null;
36
- }
37
-
38
- function _loadFromDisk() {
39
- if (_cacheLoaded) return _cache;
40
- _cacheLoaded = true;
41
- _cache = _readFile(_flagsFile()) || _readFile(LOCAL_FLAGS_FILE) || {};
42
- return _cache;
43
- }
44
-
45
- function _writeToDisk(obj) {
46
- // NOTE(windows): mode 0o700 / 0o600 are silently ignored on Windows.
47
- // Feature-flag files will NOT be owner-only on Windows; they are protected
48
- // only by user-profile directory ACLs. This is acceptable as feature flags
49
- // are not security-critical secrets.
50
- try {
51
- const dir = _flagsDir();
52
- if (!fs.existsSync(dir)) {
53
- fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
54
- }
55
- fs.writeFileSync(_flagsFile(), JSON.stringify(obj, null, 2), { encoding: 'utf8', mode: 0o600 });
56
- return true;
57
- } catch (_) {}
58
- try {
59
- fs.writeFileSync(LOCAL_FLAGS_FILE, JSON.stringify(obj, null, 2), { encoding: 'utf8', mode: 0o600 });
60
- return true;
61
- } catch (_) {}
62
- return false;
63
- }
64
-
65
- /**
66
- * Read a persisted feature flag value. Returns undefined if not set.
67
- * @param {string} key
68
- * @returns {any|undefined}
69
- */
70
- function readFeatureFlag(key) {
71
- if (!key || typeof key !== 'string') return undefined;
72
- const all = _loadFromDisk();
73
- const entry = all[key];
74
- if (!entry || typeof entry !== 'object') return undefined;
75
- return entry.value;
76
- }
77
-
78
- /**
79
- * Persist a feature flag. Returns true on success.
80
- * @param {string} key
81
- * @param {any} value
82
- * @param {string} [source] - origin tag, e.g. "hub_mailbox", "manual"
83
- */
84
- function writeFeatureFlag(key, value, source) {
85
- if (!key || typeof key !== 'string') return false;
86
- const all = _loadFromDisk();
87
- all[key] = {
88
- value,
89
- source: typeof source === 'string' && source ? source : 'unknown',
90
- updatedAt: new Date().toISOString(),
91
- };
92
- const ok = _writeToDisk(all);
93
- if (ok) _cache = all;
94
- return ok;
95
- }
96
-
97
- /**
98
- * Returns the full flags object (read-only view). For diagnostics/tests.
99
- */
100
- function getAllFeatureFlags() {
101
- const all = _loadFromDisk();
102
- return JSON.parse(JSON.stringify(all));
103
- }
104
-
105
- /**
106
- * Reset the in-process cache. Test-only.
107
- */
108
- function _resetCacheForTests() {
109
- _cache = null;
110
- _cacheLoaded = false;
111
- }
112
-
113
- module.exports = {
114
- readFeatureFlag,
115
- writeFeatureFlag,
116
- getAllFeatureFlags,
117
- _resetCacheForTests,
118
- // Getter so callers see the current EVOLVER_HOME at call time (#114).
119
- get FLAGS_FILE() { return _flagsFile(); },
120
- LOCAL_FLAGS_FILE,
121
- };