@evomap/evolver 1.91.2 → 1.92.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -7
- package/index.js +150 -71
- package/package.json +2 -1
- package/src/adapters/scripts/_runtimePaths.js +10 -1
- package/src/adapters/scripts/evolver-session-end.js +10 -1
- package/src/canonicalIdentityLock.js +455 -0
- package/src/evolve/guards.js +1 -1
- package/src/evolve/pipeline/collect.js +1 -1
- package/src/evolve/pipeline/dispatch.js +1 -1
- package/src/evolve/pipeline/enrich.js +1 -1
- package/src/evolve/pipeline/hub.js +1 -1
- package/src/evolve/pipeline/select.js +1 -1
- package/src/evolve/pipeline/signals.js +1 -1
- package/src/evolve/utils.js +1 -1
- package/src/evolve.js +1 -1
- package/src/gep/a2aProtocol.js +1 -5175
- package/src/gep/antiAbuseTelemetry.js +1 -233
- package/src/gep/assetStore.js +56 -12
- package/src/gep/autoDistillConv.js +1 -205
- package/src/gep/autoDistillLlm.js +1 -315
- package/src/gep/candidateEval.js +1 -92
- package/src/gep/candidates.js +1 -1
- package/src/gep/contentHash.js +1 -30
- package/src/gep/conversationDistiller.js +1 -270
- package/src/gep/conversationSniffer.js +1 -266
- package/src/gep/crypto.js +1 -93
- package/src/gep/curriculum.js +1 -1
- package/src/gep/deviceId.js +1 -218
- package/src/gep/envFingerprint.js +1 -118
- package/src/gep/epigenetics.js +1 -31
- package/src/gep/execBridge.js +1 -712
- package/src/gep/explore.js +1 -289
- package/src/gep/hash.js +1 -15
- package/src/gep/hubFetch.js +1 -672
- package/src/gep/hubReview.js +1 -212
- package/src/gep/hubSearch.js +1 -544
- package/src/gep/hubVerify.js +1 -306
- package/src/gep/learningSignals.js +1 -1
- package/src/gep/memoryGraph.js +1 -1449
- package/src/gep/memoryGraphAdapter.js +1 -203
- package/src/gep/mutation.js +1 -1
- package/src/gep/narrativeMemory.js +1 -1
- package/src/gep/openPRRegistry.js +1 -205
- package/src/gep/personality.js +1 -1
- package/src/gep/policyCheck.js +1 -599
- package/src/gep/prompt.js +1 -1
- package/src/gep/recallInject.js +1 -409
- package/src/gep/recallVerifier.js +1 -318
- package/src/gep/reflection.js +1 -1
- package/src/gep/savingsCore.js +1 -1
- package/src/gep/schemas/gene.js +2 -0
- package/src/gep/selector.js +1 -1
- package/src/gep/skillDistiller.js +1 -1294
- package/src/gep/solidify.js +1 -1
- package/src/gep/strategy.js +1 -136
- package/src/gep/syncAsset.js +1 -0
- package/src/gep/tokenSavings.js +1 -1
- package/src/gep/trajectoryExport.js +1 -3841
- package/src/gep/workspaceKeychain.js +1 -174
- package/src/proxy/extensions/traceControl.js +1 -123
- package/src/proxy/index.js +136 -8
- package/src/proxy/inject.js +1 -52
- package/src/proxy/lifecycle/manager.js +279 -18
- package/src/proxy/mailbox/state.js +60 -29
- package/src/proxy/trace/extractor.js +1 -2355
- package/src/proxy/trace/usage.js +1 -105
|
@@ -1,233 +1 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const crypto = require('crypto');
|
|
4
|
-
const fs = require('fs');
|
|
5
|
-
const os = require('os');
|
|
6
|
-
const path = require('path');
|
|
7
|
-
|
|
8
|
-
const { captureEnvFingerprint, envFingerprintKey } = require('./envFingerprint');
|
|
9
|
-
|
|
10
|
-
const SCHEMA_VERSION = 'anti_abuse.v1';
|
|
11
|
-
const REDACTION_VERSION = 'anti_abuse_redaction.v1';
|
|
12
|
-
const DEFAULT_TTL_DAYS = 90;
|
|
13
|
-
const MAX_HASH_FILE_BYTES = 10 * 1024 * 1024;
|
|
14
|
-
|
|
15
|
-
function nowIso(now) {
|
|
16
|
-
if (now instanceof Date) return now.toISOString();
|
|
17
|
-
if (typeof now === 'string' && now) return now;
|
|
18
|
-
return new Date().toISOString();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function boolFromEnv(value) {
|
|
22
|
-
const v = String(value || '').trim().toLowerCase();
|
|
23
|
-
return v === '1' || v === 'true' || v === 'yes' || v === 'on';
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function hmacPseudonym(value, opts) {
|
|
27
|
-
const raw = value == null ? '' : String(value);
|
|
28
|
-
const salt = opts && opts.salt ? String(opts.salt) : '';
|
|
29
|
-
const purpose = opts && opts.purpose ? String(opts.purpose) : 'anti_abuse';
|
|
30
|
-
if (!raw || !salt) return null;
|
|
31
|
-
return crypto.createHmac('sha256', salt).update(purpose).update('\0').update(raw).digest('hex').slice(0, 32);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function sha256File(filePath) {
|
|
35
|
-
let stat;
|
|
36
|
-
try {
|
|
37
|
-
stat = fs.statSync(filePath);
|
|
38
|
-
} catch (_) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
if (!stat.isFile() || stat.size > MAX_HASH_FILE_BYTES) return null;
|
|
42
|
-
const hash = crypto.createHash('sha256');
|
|
43
|
-
hash.update(fs.readFileSync(filePath));
|
|
44
|
-
return hash.digest('hex');
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function safeJsonFile(filePath) {
|
|
48
|
-
try {
|
|
49
|
-
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
50
|
-
} catch (_) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function filePermissionClass(filePath) {
|
|
56
|
-
let stat;
|
|
57
|
-
try {
|
|
58
|
-
stat = fs.statSync(filePath);
|
|
59
|
-
} catch (_) {
|
|
60
|
-
return 'missing';
|
|
61
|
-
}
|
|
62
|
-
if (!stat.isFile()) return 'not_file';
|
|
63
|
-
const mode = stat.mode & 0o777;
|
|
64
|
-
if ((mode & 0o077) === 0) return 'owner_only';
|
|
65
|
-
if ((mode & 0o007) !== 0) return 'world_accessible';
|
|
66
|
-
return 'group_accessible';
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// The integrity envelope fingerprints the INSTALLED @evomap/evolver package
|
|
70
|
-
// — its package.json, CLI entry, and lockfiles — not the user's project.
|
|
71
|
-
// __dirname tracks this file inside the install (<pkg>/src/gep/), so two
|
|
72
|
-
// levels up is the package root in every install mode (dev clone, npm
|
|
73
|
-
// global, npx cache). Hashing getRepoRoot() (the user's project) here would
|
|
74
|
-
// make hub-side integrity checks compare workspace files against
|
|
75
|
-
// evolver_version, mismatching on every npm/global install.
|
|
76
|
-
function getEvolverPackageRoot() {
|
|
77
|
-
return path.resolve(__dirname, '..', '..');
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Containment gate for EVERY file the integrity envelope reads: resolve the
|
|
81
|
-
// candidate through symlinks and require it to stay inside the package root.
|
|
82
|
-
// Default-on heartbeat collection must not grow an out-of-tree file-read
|
|
83
|
-
// side effect — not via a tampered bin.evolver, and not via a symlinked
|
|
84
|
-
// package.json / lockfile either (each read is up to MAX_HASH_FILE_BYTES).
|
|
85
|
-
// Returns the real path when contained, else null (missing files land here
|
|
86
|
-
// too, matching sha256File's old null-on-ENOENT behavior).
|
|
87
|
-
function containedRealPath(root, candidate) {
|
|
88
|
-
try {
|
|
89
|
-
const realRoot = fs.realpathSync(root);
|
|
90
|
-
const real = fs.realpathSync(candidate);
|
|
91
|
-
return real.startsWith(realRoot + path.sep) ? real : null;
|
|
92
|
-
} catch (_) {
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function collectIntegrityHashes(packageRoot) {
|
|
98
|
-
const root = packageRoot || getEvolverPackageRoot();
|
|
99
|
-
const pkgPath = containedRealPath(root, path.join(root, 'package.json'));
|
|
100
|
-
const pkg = (pkgPath && safeJsonFile(pkgPath)) || {};
|
|
101
|
-
const bin = pkg && pkg.bin && typeof pkg.bin.evolver === 'string' ? pkg.bin.evolver : null;
|
|
102
|
-
const binPath = bin ? containedRealPath(root, path.resolve(root, bin)) : null;
|
|
103
|
-
const lockfiles = ['package-lock.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lockb'];
|
|
104
|
-
const lockfile_hashes = {};
|
|
105
|
-
for (const name of lockfiles) {
|
|
106
|
-
const p = containedRealPath(root, path.join(root, name));
|
|
107
|
-
const digest = p ? sha256File(p) : null;
|
|
108
|
-
if (digest) lockfile_hashes[name] = digest;
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
package_json_hash: pkgPath ? sha256File(pkgPath) : null,
|
|
112
|
-
cli_entry_hash: binPath ? sha256File(binPath) : null,
|
|
113
|
-
lockfile_hashes,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function settingsPermissionClass(env) {
|
|
118
|
-
const e = env || process.env;
|
|
119
|
-
const settingsDir = e.EVOLVER_SETTINGS_DIR || path.join(os.homedir(), '.evolver');
|
|
120
|
-
return filePermissionClass(path.join(settingsDir, 'settings.json'));
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function normalizeTaskMetrics(taskMeta) {
|
|
124
|
-
const meta = taskMeta && typeof taskMeta === 'object' ? taskMeta : {};
|
|
125
|
-
const metrics = meta.task_metrics && typeof meta.task_metrics === 'object' ? meta.task_metrics : null;
|
|
126
|
-
if (!metrics) return null;
|
|
127
|
-
return {
|
|
128
|
-
pending: Number.isFinite(Number(metrics.pending)) ? Number(metrics.pending) : null,
|
|
129
|
-
claimed: Number.isFinite(Number(metrics.claimed)) ? Number(metrics.claimed) : null,
|
|
130
|
-
completed: Number.isFinite(Number(metrics.completed)) ? Number(metrics.completed) : null,
|
|
131
|
-
failed: Number.isFinite(Number(metrics.failed)) ? Number(metrics.failed) : null,
|
|
132
|
-
avg_completion_ms: Number.isFinite(Number(metrics.avg_completion_ms)) ? Number(metrics.avg_completion_ms) : null,
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function ttlDays(env) {
|
|
137
|
-
const raw = Number(env && env.EVOLVER_ANTI_ABUSE_TTL_DAYS);
|
|
138
|
-
return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : DEFAULT_TTL_DAYS;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function unavailable(field, reason, expectedSource) {
|
|
142
|
-
return {
|
|
143
|
-
field,
|
|
144
|
-
reason,
|
|
145
|
-
expected_source: expectedSource || 'hub_server',
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
function buildHeartbeatAntiAbuseTelemetry(opts) {
|
|
150
|
-
const options = opts || {};
|
|
151
|
-
const env = options.env || process.env;
|
|
152
|
-
const fp = options.envFingerprint || captureEnvFingerprint();
|
|
153
|
-
const salt = options.salt != null ? options.salt : env.EVOLVER_ANTI_ABUSE_SALT;
|
|
154
|
-
const saltId = options.saltId || env.EVOLVER_ANTI_ABUSE_SALT_ID || (salt ? 'env' : null);
|
|
155
|
-
const packageRoot = options.packageRoot || getEvolverPackageRoot();
|
|
156
|
-
const devicePseudonym = hmacPseudonym(fp && fp.device_id, { salt, purpose: 'device' });
|
|
157
|
-
const workspacePseudonym = hmacPseudonym(process.cwd(), { salt, purpose: 'workspace' });
|
|
158
|
-
const missing = [];
|
|
159
|
-
if (!devicePseudonym) missing.push(unavailable('device_pseudonym', 'anti_abuse_salt_missing', 'signed_policy_or_env'));
|
|
160
|
-
if (!workspacePseudonym) missing.push(unavailable('workspace_pseudonym', 'anti_abuse_salt_missing', 'signed_policy_or_env'));
|
|
161
|
-
missing.push(
|
|
162
|
-
unavailable('client_ip', 'server_observed_required', 'hub_edge'),
|
|
163
|
-
unavailable('asn', 'server_observed_required', 'hub_edge'),
|
|
164
|
-
unavailable('proxy_vpn_tor_datacenter_class', 'server_observed_required', 'hub_edge'),
|
|
165
|
-
unavailable('account_security', 'account_service_required', 'hub_account'),
|
|
166
|
-
unavailable('payout_method_token', 'payments_service_required', 'hub_payments'),
|
|
167
|
-
unavailable('risk_action_case', 'risk_engine_required', 'hub_risk')
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
return {
|
|
171
|
-
schema_version: SCHEMA_VERSION,
|
|
172
|
-
event_type: 'node.heartbeat',
|
|
173
|
-
purpose: 'anti_abuse',
|
|
174
|
-
pii_class: 'medium',
|
|
175
|
-
consent_level: 'default',
|
|
176
|
-
retention_ttl_days: ttlDays(env),
|
|
177
|
-
policy_version: env.EVOLVER_ANTI_ABUSE_POLICY_VERSION || 'local-default',
|
|
178
|
-
redaction_version: REDACTION_VERSION,
|
|
179
|
-
source: options.source || 'evolver-client',
|
|
180
|
-
generated_at: nowIso(options.now),
|
|
181
|
-
source_confidence: {
|
|
182
|
-
node_identity: 'client_attested',
|
|
183
|
-
device_integrity: 'client_attested',
|
|
184
|
-
task_metrics: 'client_attested',
|
|
185
|
-
network_source: 'server_observed_required',
|
|
186
|
-
account_security: 'server_observed_required',
|
|
187
|
-
payout: 'server_observed_required',
|
|
188
|
-
risk_decision: 'server_observed_required',
|
|
189
|
-
},
|
|
190
|
-
identity: {
|
|
191
|
-
node_id: options.nodeId || null,
|
|
192
|
-
account_id: null,
|
|
193
|
-
org_id: null,
|
|
194
|
-
},
|
|
195
|
-
device: {
|
|
196
|
-
device_pseudonym: devicePseudonym,
|
|
197
|
-
workspace_pseudonym: workspacePseudonym,
|
|
198
|
-
pseudonym_salt_id: saltId,
|
|
199
|
-
env_fingerprint_key: envFingerprintKey(fp),
|
|
200
|
-
platform: fp.platform || null,
|
|
201
|
-
arch: fp.arch || null,
|
|
202
|
-
os_release: fp.os_release || null,
|
|
203
|
-
node_version: fp.node_version || null,
|
|
204
|
-
evolver_version: fp.evolver_version || null,
|
|
205
|
-
client: fp.client || null,
|
|
206
|
-
client_version: fp.client_version || null,
|
|
207
|
-
model: fp.model || null,
|
|
208
|
-
region: fp.region || null,
|
|
209
|
-
container: !!fp.container,
|
|
210
|
-
},
|
|
211
|
-
integrity: collectIntegrityHashes(packageRoot),
|
|
212
|
-
local_security_boundary: {
|
|
213
|
-
proxy_bind_address_class: 'loopback',
|
|
214
|
-
// Env sniffing is only a fallback for the client heartbeat: the proxy
|
|
215
|
-
// lifecycle heartbeat runs INSIDE the proxy process (which usually has
|
|
216
|
-
// neither env var set) and passes its ground truth explicitly.
|
|
217
|
-
proxy_port_configured: options.proxyPortConfigured != null
|
|
218
|
-
? !!options.proxyPortConfigured
|
|
219
|
-
: (boolFromEnv(env.EVOMAP_PROXY) || !!env.EVOMAP_PROXY_PORT),
|
|
220
|
-
settings_permission_class: settingsPermissionClass(env),
|
|
221
|
-
},
|
|
222
|
-
task_timing: normalizeTaskMetrics(options.taskMeta),
|
|
223
|
-
unavailable_fields: missing,
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
module.exports = {
|
|
228
|
-
SCHEMA_VERSION,
|
|
229
|
-
REDACTION_VERSION,
|
|
230
|
-
buildHeartbeatAntiAbuseTelemetry,
|
|
231
|
-
collectIntegrityHashes,
|
|
232
|
-
hmacPseudonym,
|
|
233
|
-
};
|
|
1
|
+
const _0x69ccc5=_0xaf57;(function(_0x4912ec,_0xbc9459){const _0x463d29=_0xaf57,_0xa0af15=_0x4912ec();while(!![]){try{const _0x47d245=parseInt(_0x463d29(0x21c,'\x54\x7a\x4e\x55'))/(-0x5cd+0x3*-0x6b2+-0xcf2*-0x2)*(-parseInt(_0x463d29(0x236,'\x79\x37\x67\x25'))/(0x1*0x1127+-0x77*0x2f+-0x12d*-0x4))+parseInt(_0x463d29(0x190,'\x4b\x56\x6e\x53'))/(-0x8be+-0x2*0x703+0x16c7)*(parseInt(_0x463d29(0x23f,'\x56\x62\x48\x40'))/(-0x235a+0x9*-0x265+0x38eb))+-parseInt(_0x463d29(0x22c,'\x61\x73\x55\x79'))/(0x1*0x1ee3+-0x19fc+0xa*-0x7d)*(parseInt(_0x463d29(0x269,'\x77\x7a\x25\x79'))/(0x240e*-0x1+0xdbe+0xb2b*0x2))+parseInt(_0x463d29(0x229,'\x38\x66\x39\x32'))/(-0xdbb+0x1869*-0x1+0x262b)*(parseInt(_0x463d29(0x2c8,'\x62\x41\x71\x79'))/(0x737+-0x1fc5+-0xc4b*-0x2))+parseInt(_0x463d29(0x22f,'\x78\x5e\x33\x51'))/(0x2573+-0x26f6+-0x84*-0x3)+-parseInt(_0x463d29(0x130,'\x52\x78\x64\x4c'))/(-0x2694+-0x1*-0x1083+0x161b)*(-parseInt(_0x463d29(0x15c,'\x71\x53\x38\x53'))/(0x6fd+-0xb3d+-0x44b*-0x1))+-parseInt(_0x463d29(0x1e6,'\x2a\x31\x71\x69'))/(0x216b+-0x5+-0x215a);if(_0x47d245===_0xbc9459)break;else _0xa0af15['push'](_0xa0af15['shift']());}catch(_0x595c21){_0xa0af15['push'](_0xa0af15['shift']());}}}(_0x2203,-0x16bf83+-0x150596+0x38e895));const _0x1b0fe7=(function(){const _0x160053=_0xaf57,_0x5c2de7={};_0x5c2de7[_0x160053(0x26a,'\x56\x62\x48\x40')]=function(_0x22bfb3,_0xd2236c){return _0x22bfb3||_0xd2236c;},_0x5c2de7[_0x160053(0x148,'\x38\x66\x39\x32')]=_0x160053(0x211,'\x51\x6f\x5e\x79')+'\x65\x72',_0x5c2de7['\x6b\x62\x76\x41\x6b']=function(_0x3b294f,_0x159498){return _0x3b294f===_0x159498;},_0x5c2de7['\x75\x6f\x6c\x49\x66']=_0x160053(0x1fd,'\x72\x25\x62\x71'),_0x5c2de7[_0x160053(0x161,'\x72\x25\x62\x71')]=_0x160053(0x156,'\x6c\x71\x56\x37'),_0x5c2de7[_0x160053(0x13b,'\x4d\x64\x4d\x5a')]=_0x160053(0x1d6,'\x4e\x42\x71\x59');const _0x50dff8=_0x5c2de7;let _0x10446d=!![];return function(_0x496ab5,_0x2368c5){const _0xeb19c4=_0x10446d?function(){const _0x121b9b=_0xaf57,_0x543abf={'\x51\x76\x52\x41\x4e':function(_0x2ff790,_0xc2c3cb){const _0xde20aa=_0xaf57;return _0x50dff8[_0xde20aa(0x248,'\x48\x35\x6b\x71')](_0x2ff790,_0xc2c3cb);},'\x6d\x4c\x70\x6f\x68':_0x50dff8[_0x121b9b(0x29f,'\x4e\x42\x71\x59')]};if(_0x50dff8[_0x121b9b(0x241,'\x71\x53\x38\x53')](_0x50dff8[_0x121b9b(0x1b0,'\x34\x39\x6a\x43')],_0x50dff8[_0x121b9b(0x155,'\x7a\x5d\x4d\x44')])){if(_0x2368c5){if(_0x50dff8[_0x121b9b(0x2ba,'\x61\x44\x23\x59')]===_0x50dff8['\x76\x68\x6d\x63\x61'])return{'\x66\x69\x65\x6c\x64':_0x4acace,'\x72\x65\x61\x73\x6f\x6e':_0x385dac,'\x65\x78\x70\x65\x63\x74\x65\x64\x5f\x73\x6f\x75\x72\x63\x65':_0x543abf[_0x121b9b(0x1cc,'\x6f\x44\x35\x45')](_0x3cd39c,_0x543abf['\x6d\x4c\x70\x6f\x68'])};else{const _0x4802c0=_0x2368c5[_0x121b9b(0x233,'\x6c\x4b\x2a\x54')](_0x496ab5,arguments);return _0x2368c5=null,_0x4802c0;}}}else _0x1c0dd3=_0x2844e6[_0x121b9b(0x259,'\x7a\x5d\x4d\x44')](_0x36c5c0);}:function(){};return _0x10446d=![],_0xeb19c4;};}()),_0x5b3128=_0x1b0fe7(this,function(){const _0x1614ec=_0xaf57,_0x3da750={};_0x3da750[_0x1614ec(0x1ee,'\x4d\x64\x4d\x5a')]=_0x1614ec(0x28f,'\x4e\x42\x71\x59')+_0x1614ec(0x131,'\x6c\x70\x70\x41');const _0x4b1373=_0x3da750;return _0x5b3128[_0x1614ec(0x1b1,'\x28\x21\x70\x5a')]()[_0x1614ec(0x1bd,'\x5d\x23\x56\x4c')](_0x4b1373[_0x1614ec(0x24f,'\x28\x39\x24\x48')])[_0x1614ec(0x20f,'\x6c\x71\x56\x37')]()[_0x1614ec(0x21f,'\x4b\x56\x6e\x53')+_0x1614ec(0x2a8,'\x34\x39\x6a\x43')](_0x5b3128)[_0x1614ec(0x1f9,'\x61\x73\x55\x79')](_0x4b1373[_0x1614ec(0x1af,'\x61\x73\x55\x79')]);});_0x5b3128();'use strict';const _0x40c42d=require(_0x69ccc5(0x27b,'\x56\x62\x48\x40')),_0x3b3bf0=require('\x66\x73'),_0x4f050a=require('\x6f\x73'),_0x25ec80=require(_0x69ccc5(0x194,'\x72\x25\x62\x71')),{captureEnvFingerprint:_0x3a825c,envFingerprintKey:_0x3e109d}=require(_0x69ccc5(0x252,'\x28\x69\x28\x4c')+_0x69ccc5(0x13e,'\x5d\x23\x56\x4c')),_0xa3407b=_0x69ccc5(0x29b,'\x4b\x7a\x66\x51')+'\x73\x65\x2e\x76\x31',_0xf96dc2=_0x69ccc5(0x266,'\x28\x21\x70\x5a')+_0x69ccc5(0x1d4,'\x5d\x23\x56\x4c')+'\x74\x69\x6f\x6e\x2e\x76\x31',_0x10dde5=-0x1a+0x1*-0x1643+0x1*0x16b7,_0x58b836=(-0x17+-0x4d9+0x4fa)*(0xf3e+0x14aa+-0x1fe8)*(0x32e*-0x2+0x195d+-0xa7*0x17);function _0xc6a849(_0x1498f4){const _0x3d8267=_0x69ccc5,_0x47a55f={};_0x47a55f['\x47\x47\x75\x45\x56']=_0x3d8267(0x215,'\x4b\x56\x6e\x53');const _0x13a919=_0x47a55f;if(_0x1498f4 instanceof Date)return _0x1498f4[_0x3d8267(0x282,'\x48\x43\x53\x72')+_0x3d8267(0x249,'\x65\x24\x46\x5b')]();if(typeof _0x1498f4===_0x13a919[_0x3d8267(0x29c,'\x79\x37\x67\x25')]&&_0x1498f4)return _0x1498f4;return new Date()[_0x3d8267(0x14f,'\x54\x7a\x4e\x55')+_0x3d8267(0x2d4,'\x50\x58\x63\x63')]();}function _0x180c05(_0x3116e0){const _0x2bc64e=_0x69ccc5,_0x2e0d81={'\x52\x5a\x72\x6f\x6e':function(_0x634a55,_0x446816){return _0x634a55(_0x446816);},'\x47\x73\x70\x46\x43':function(_0x14f1e1,_0x500bc2){return _0x14f1e1===_0x500bc2;},'\x44\x45\x6a\x56\x6f':function(_0x12f58c,_0x5e0dc9){return _0x12f58c===_0x5e0dc9;},'\x4f\x55\x6f\x6e\x4c':_0x2bc64e(0x1b9,'\x56\x62\x48\x40'),'\x69\x7a\x6d\x74\x76':_0x2bc64e(0x1f8,'\x6a\x59\x47\x43')},_0x392506=_0x2e0d81[_0x2bc64e(0x2b8,'\x4b\x56\x6e\x53')](String,_0x3116e0||'')[_0x2bc64e(0x1dc,'\x55\x6e\x61\x7a')]()[_0x2bc64e(0x1a2,'\x65\x4a\x6f\x58')+'\x61\x73\x65']();return _0x2e0d81[_0x2bc64e(0x2d6,'\x56\x62\x48\x40')](_0x392506,'\x31')||_0x2e0d81[_0x2bc64e(0x268,'\x7a\x5d\x4d\x44')](_0x392506,_0x2e0d81[_0x2bc64e(0x214,'\x24\x36\x36\x68')])||_0x2e0d81[_0x2bc64e(0x2c1,'\x2a\x31\x71\x69')](_0x392506,_0x2e0d81[_0x2bc64e(0x26d,'\x64\x62\x6d\x37')])||_0x392506==='\x6f\x6e';}function _0x14ac81(_0x183828,_0x5b1861){const _0x152967=_0x69ccc5,_0x2480e3={'\x59\x4d\x65\x51\x79':function(_0x3042e2,_0x460a78){return _0x3042e2(_0x460a78);},'\x74\x78\x68\x4b\x48':_0x152967(0x1b6,'\x64\x62\x6d\x37')+'\x73\x65','\x4f\x51\x50\x46\x44':function(_0x37c8c9,_0x1a2432){return _0x37c8c9||_0x1a2432;},'\x76\x74\x4c\x70\x4d':_0x152967(0x2cf,'\x56\x62\x48\x40'),'\x59\x76\x68\x75\x7a':_0x152967(0x27f,'\x51\x45\x2a\x4d')},_0x3f9ae7=_0x183828==null?'':String(_0x183828),_0x389a39=_0x5b1861&&_0x5b1861['\x73\x61\x6c\x74']?_0x2480e3[_0x152967(0x2be,'\x65\x24\x46\x5b')](String,_0x5b1861[_0x152967(0x283,'\x56\x62\x48\x40')]):'',_0x20a14a=_0x5b1861&&_0x5b1861[_0x152967(0x1fc,'\x28\x6c\x57\x74')]?_0x2480e3[_0x152967(0x1a9,'\x48\x35\x6b\x71')](String,_0x5b1861[_0x152967(0x220,'\x28\x39\x24\x48')]):_0x2480e3[_0x152967(0x1f2,'\x51\x6f\x5e\x79')];if(_0x2480e3['\x4f\x51\x50\x46\x44'](!_0x3f9ae7,!_0x389a39))return null;return _0x40c42d[_0x152967(0x258,'\x28\x69\x28\x4c')+'\x61\x63'](_0x2480e3[_0x152967(0x243,'\x64\x62\x6d\x37')],_0x389a39)['\x75\x70\x64\x61\x74\x65'](_0x20a14a)['\x75\x70\x64\x61\x74\x65']('\x00')[_0x152967(0x1f7,'\x61\x44\x23\x59')](_0x3f9ae7)[_0x152967(0x174,'\x6b\x58\x51\x73')](_0x2480e3[_0x152967(0x1ae,'\x74\x49\x36\x5e')])[_0x152967(0x14c,'\x28\x21\x70\x5a')](-0x9*0x40f+0x2*0xa6d+0xfad,0x5*0x121+0x3*-0x242+0x141);}function _0x5a707b(_0x223f69){const _0x5b67f2=_0x69ccc5,_0x5467c4={};_0x5467c4[_0x5b67f2(0x1cd,'\x74\x49\x36\x5e')]=_0x5b67f2(0x24a,'\x4e\x42\x71\x59'),_0x5467c4[_0x5b67f2(0x291,'\x74\x49\x36\x5e')]=function(_0x463677,_0x139543){return _0x463677&_0x139543;},_0x5467c4['\x6d\x49\x56\x78\x61']=function(_0x214192,_0x2b6f8c){return _0x214192===_0x2b6f8c;},_0x5467c4[_0x5b67f2(0x2a5,'\x30\x6b\x51\x5a')]=_0x5b67f2(0x2b1,'\x44\x55\x44\x73')+'\x6c\x79',_0x5467c4[_0x5b67f2(0x2c9,'\x61\x73\x55\x79')]=function(_0x2d893b,_0x5e840b){return _0x2d893b!==_0x5e840b;},_0x5467c4['\x45\x59\x5a\x6a\x7a']=_0x5b67f2(0x225,'\x48\x43\x53\x72')+_0x5b67f2(0x14d,'\x78\x5e\x33\x51'),_0x5467c4[_0x5b67f2(0x2c6,'\x56\x62\x48\x40')]=_0x5b67f2(0x2a2,'\x55\x6e\x61\x7a'),_0x5467c4[_0x5b67f2(0x1e2,'\x61\x73\x55\x79')]=function(_0x233d5e,_0x1b0bba){return _0x233d5e>_0x1b0bba;},_0x5467c4[_0x5b67f2(0x1ea,'\x2a\x31\x71\x69')]=_0x5b67f2(0x1a7,'\x29\x6b\x57\x35');const _0x52f705=_0x5467c4;let _0x2b85ac;try{_0x2b85ac=_0x3b3bf0[_0x5b67f2(0x16c,'\x28\x6c\x57\x74')](_0x223f69);}catch(_0xf95317){if(_0x52f705[_0x5b67f2(0x1e3,'\x74\x49\x36\x5e')](_0x52f705['\x7a\x4b\x79\x6c\x53'],'\x53\x42\x43\x42\x66'))return null;else{let _0x46cae6;try{_0x46cae6=_0x3198da[_0x5b67f2(0x1cf,'\x34\x39\x6a\x43')](_0x29a694);}catch(_0x24902a){return _0x5b67f2(0x2ce,'\x2a\x31\x71\x69');}if(!_0x46cae6[_0x5b67f2(0x160,'\x65\x4a\x6f\x58')]())return _0x52f705[_0x5b67f2(0x265,'\x31\x29\x24\x59')];const _0x10d8ce=_0x52f705[_0x5b67f2(0x29e,'\x48\x35\x6b\x71')](_0x46cae6['\x6d\x6f\x64\x65'],0x25a8+-0x9a*-0x3d+-0x485b);if(_0x52f705['\x6d\x49\x56\x78\x61'](_0x52f705[_0x5b67f2(0x23d,'\x31\x29\x24\x59')](_0x10d8ce,0x18fc+0x5*-0x5e1+-0x2*-0x254),0x2c0*0xd+-0x427*0x5+-0xefd))return _0x52f705['\x42\x53\x57\x4f\x55'];if(_0x52f705['\x43\x4e\x52\x6b\x51'](_0x10d8ce&0x1*-0x4fa+0xdf5+-0x8f4,-0x465+-0xd0a*0x1+0x1*0x116f))return'\x77\x6f\x72\x6c\x64\x5f\x61\x63'+_0x5b67f2(0x1aa,'\x28\x21\x70\x5a');return _0x52f705[_0x5b67f2(0x28b,'\x48\x43\x53\x72')];}}if(!_0x2b85ac[_0x5b67f2(0x29d,'\x61\x73\x55\x79')]()||_0x52f705[_0x5b67f2(0x1f0,'\x71\x53\x38\x53')](_0x2b85ac[_0x5b67f2(0x28c,'\x65\x24\x46\x5b')],_0x58b836))return null;const _0x463b50=_0x40c42d[_0x5b67f2(0x159,'\x72\x26\x51\x74')+'\x73\x68'](_0x52f705[_0x5b67f2(0x26b,'\x6f\x44\x35\x45')]);return _0x463b50[_0x5b67f2(0x14a,'\x48\x43\x53\x72')](_0x3b3bf0['\x72\x65\x61\x64\x46\x69\x6c\x65'+_0x5b67f2(0x16f,'\x4d\x64\x4d\x5a')](_0x223f69)),_0x463b50[_0x5b67f2(0x175,'\x64\x62\x6d\x37')](_0x5b67f2(0x2cd,'\x48\x35\x6b\x71'));}function _0xac62(_0x212574){const _0x212fe2=_0x69ccc5,_0x16cd01={};_0x16cd01[_0x212fe2(0x1a0,'\x48\x35\x6b\x71')]=function(_0x3cc66b,_0x2d21cf){return _0x3cc66b>_0x2d21cf;},_0x16cd01[_0x212fe2(0x1c7,'\x2a\x31\x71\x69')]=function(_0xdfc90,_0x49ed50){return _0xdfc90===_0x49ed50;},_0x16cd01[_0x212fe2(0x1da,'\x28\x69\x28\x4c')]=_0x212fe2(0x1ef,'\x29\x6b\x57\x35'),_0x16cd01[_0x212fe2(0x136,'\x62\x41\x71\x79')]=_0x212fe2(0x152,'\x29\x6b\x57\x35');const _0x5751d1=_0x16cd01;try{if(_0x5751d1[_0x212fe2(0x1be,'\x31\x29\x24\x59')](_0x5751d1[_0x212fe2(0x1da,'\x28\x69\x28\x4c')],'\x43\x46\x74\x79\x6a')){const _0x356b2b=_0x35ba75(_0x27b43d&&_0x4b6d39[_0x212fe2(0x2b4,'\x55\x6e\x61\x7a')+_0x212fe2(0x1db,'\x6b\x58\x51\x73')+_0x212fe2(0x251,'\x4d\x64\x4d\x5a')+'\x41\x59\x53']);return _0x294ca3[_0x212fe2(0x1a3,'\x55\x6e\x61\x7a')](_0x356b2b)&&_0x5751d1[_0x212fe2(0x280,'\x4d\x64\x4d\x5a')](_0x356b2b,-0x5ab*-0x1+-0x1*-0xd4f+0x2*-0x97d)?_0x311940[_0x212fe2(0x1f4,'\x6c\x70\x70\x41')](_0x356b2b):_0x5e6887;}else return JSON[_0x212fe2(0x180,'\x50\x58\x63\x63')](_0x3b3bf0[_0x212fe2(0x27c,'\x74\x49\x36\x5e')+_0x212fe2(0x230,'\x51\x6f\x5e\x79')](_0x212574,_0x5751d1[_0x212fe2(0x184,'\x61\x44\x23\x59')]));}catch(_0x3be114){return null;}}function _0xaf57(_0x35ba75,_0x27b43d){_0x35ba75=_0x35ba75-(0x9*0xd2+0x1e2b+-0x2460);const _0x4b6d39=_0x2203();let _0x294ca3=_0x4b6d39[_0x35ba75];if(_0xaf57['\x42\x76\x6d\x74\x71\x53']===undefined){var _0x311940=function(_0x588a59){const _0x4acace='\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 _0x385dac='',_0x3cd39c='',_0x430b7f=_0x385dac+_0x311940,_0xde0f01=(''+function(){return 0xc*-0x282+-0x2*-0x37e+0x66*0x3a;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x63*0x24+0x3*-0x5a7+0x30a);for(let _0x501a13=0x3*-0x213+0x2538+0x45*-0x73,_0x358d1e,_0x44b44d,_0x5f550f=-0x1*0xa58+-0xb55*-0x2+-0xc52*0x1;_0x44b44d=_0x588a59['\x63\x68\x61\x72\x41\x74'](_0x5f550f++);~_0x44b44d&&(_0x358d1e=_0x501a13%(-0x766+-0x6*-0x2f5+-0xa54)?_0x358d1e*(-0x1c71+-0x2098+0x21d*0x1d)+_0x44b44d:_0x44b44d,_0x501a13++%(-0xfef*-0x2+-0x6a0+0x1*-0x193a))?_0x385dac+=_0xde0f01||_0x430b7f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5f550f+(0x265f+0x1542+-0x3b97))-(0x14*0x10f+-0x242e*-0x1+-0x3950)!==-0x74a+-0x31c+-0xf2*-0xb?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x6*-0x615+0x74a+-0x2ac9&_0x358d1e>>(-(0x40b+-0x1f69+0x1b60)*_0x501a13&-0x2*0x30a+0x1*0x5ce+0x4c)):_0x501a13:0x8da+0x1807*0x1+0x1*-0x20e1){_0x44b44d=_0x4acace['\x69\x6e\x64\x65\x78\x4f\x66'](_0x44b44d);}for(let _0x5f881=0x24dc+-0x21fd+-0x2df,_0x146b13=_0x385dac['\x6c\x65\x6e\x67\x74\x68'];_0x5f881<_0x146b13;_0x5f881++){_0x3cd39c+='\x25'+('\x30\x30'+_0x385dac['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5f881)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0xa30+-0x2355+0x2d95))['\x73\x6c\x69\x63\x65'](-(0x8f5*0x1+-0x20aa+0x17b7));}return decodeURIComponent(_0x3cd39c);};const _0x3f0227=function(_0x3d8984,_0x2303a1){let _0x5dfd6e=[],_0x58bc74=0x2462*-0x1+-0x825+0x2c87,_0x227a30,_0x516049='';_0x3d8984=_0x311940(_0x3d8984);let _0x3e0012;for(_0x3e0012=0x82*-0x8+0x1ded*-0x1+0x7*0x4db;_0x3e0012<0x1ac+-0x1*0x20ef+-0x2043*-0x1;_0x3e0012++){_0x5dfd6e[_0x3e0012]=_0x3e0012;}for(_0x3e0012=-0x9e4+-0x1aee+-0x2*-0x1269;_0x3e0012<0x791*-0x4+-0x155e+0x2*0x1a51;_0x3e0012++){_0x58bc74=(_0x58bc74+_0x5dfd6e[_0x3e0012]+_0x2303a1['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3e0012%_0x2303a1['\x6c\x65\x6e\x67\x74\x68']))%(0x16f3*0x1+-0x2124+0x23d*0x5),_0x227a30=_0x5dfd6e[_0x3e0012],_0x5dfd6e[_0x3e0012]=_0x5dfd6e[_0x58bc74],_0x5dfd6e[_0x58bc74]=_0x227a30;}_0x3e0012=0x420+-0x59e+0xbf*0x2,_0x58bc74=-0x18e6+0x27*0x84+0x4ca*0x1;for(let _0x15472f=0x153c+-0xce1+-0x85b;_0x15472f<_0x3d8984['\x6c\x65\x6e\x67\x74\x68'];_0x15472f++){_0x3e0012=(_0x3e0012+(0x1*-0x1fd1+0x259*0x1+0x1d79))%(-0xbfb*-0x2+-0x1a92+0x39c),_0x58bc74=(_0x58bc74+_0x5dfd6e[_0x3e0012])%(0x5a2+-0x6*-0x278+0x2*-0x9b9),_0x227a30=_0x5dfd6e[_0x3e0012],_0x5dfd6e[_0x3e0012]=_0x5dfd6e[_0x58bc74],_0x5dfd6e[_0x58bc74]=_0x227a30,_0x516049+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x3d8984['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x15472f)^_0x5dfd6e[(_0x5dfd6e[_0x3e0012]+_0x5dfd6e[_0x58bc74])%(-0x1864+-0x26d7+0x403b)]);}return _0x516049;};_0xaf57['\x77\x63\x63\x66\x4d\x63']=_0x3f0227,_0xaf57['\x53\x4b\x70\x6d\x4c\x78']={},_0xaf57['\x42\x76\x6d\x74\x71\x53']=!![];}const _0x5e6887=_0x4b6d39[0x1*-0x6cf+0x1*0x1f34+0x5*-0x4e1],_0x58bffa=_0x35ba75+_0x5e6887,_0x432fdf=_0xaf57['\x53\x4b\x70\x6d\x4c\x78'][_0x58bffa];if(!_0x432fdf){if(_0xaf57['\x42\x71\x6b\x46\x68\x46']===undefined){const _0x4c4a0c=function(_0x39bc9a){this['\x51\x6c\x74\x56\x57\x6c']=_0x39bc9a,this['\x50\x65\x42\x76\x48\x4c']=[-0x25*0x106+0x9b0+0x1c2f,-0xbb+-0x71*0x49+-0x1bc*-0x13,0x68*0x7+-0x1*0xe5d+0x3d7*0x3],this['\x53\x57\x69\x46\x43\x4b']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x71\x7a\x4d\x56\x69\x4b']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x44\x6e\x58\x74\x76\x45']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x4c4a0c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x59\x6a\x65\x73\x46\x67']=function(){const _0x445bb=new RegExp(this['\x71\x7a\x4d\x56\x69\x4b']+this['\x44\x6e\x58\x74\x76\x45']),_0x35407d=_0x445bb['\x74\x65\x73\x74'](this['\x53\x57\x69\x46\x43\x4b']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x50\x65\x42\x76\x48\x4c'][0x1647*-0x1+0x31*-0xf+0x1927]:--this['\x50\x65\x42\x76\x48\x4c'][0x1301*0x1+-0x2469+0x1168];return this['\x50\x4b\x6e\x58\x61\x49'](_0x35407d);},_0x4c4a0c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x50\x4b\x6e\x58\x61\x49']=function(_0x46e11b){if(!Boolean(~_0x46e11b))return _0x46e11b;return this['\x41\x53\x7a\x6f\x74\x56'](this['\x51\x6c\x74\x56\x57\x6c']);},_0x4c4a0c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x41\x53\x7a\x6f\x74\x56']=function(_0x4601aa){for(let _0x48e8dc=0xba9*0x1+-0x1575+0x2*0x4e6,_0x1bc7b2=this['\x50\x65\x42\x76\x48\x4c']['\x6c\x65\x6e\x67\x74\x68'];_0x48e8dc<_0x1bc7b2;_0x48e8dc++){this['\x50\x65\x42\x76\x48\x4c']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x1bc7b2=this['\x50\x65\x42\x76\x48\x4c']['\x6c\x65\x6e\x67\x74\x68'];}return _0x4601aa(this['\x50\x65\x42\x76\x48\x4c'][0x10f*-0xf+-0x3a6*-0x3+0x4ef*0x1]);},(''+function(){return-0x12*-0x19c+0x8c3*0x3+-0x3741;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x1e04+0x1755+0x6b0)&&new _0x4c4a0c(_0xaf57)['\x59\x6a\x65\x73\x46\x67'](),_0xaf57['\x42\x71\x6b\x46\x68\x46']=!![];}_0x294ca3=_0xaf57['\x77\x63\x63\x66\x4d\x63'](_0x294ca3,_0x27b43d),_0xaf57['\x53\x4b\x70\x6d\x4c\x78'][_0x58bffa]=_0x294ca3;}else _0x294ca3=_0x432fdf;return _0x294ca3;}function _0x7feae9(_0x16e35e){const _0x3a3969=_0x69ccc5,_0x2682f8={};_0x2682f8[_0x3a3969(0x183,'\x48\x43\x53\x72')]=function(_0x5c7314,_0x755ac5){return _0x5c7314===_0x755ac5;},_0x2682f8[_0x3a3969(0x2bc,'\x72\x26\x51\x74')]=_0x3a3969(0x1e0,'\x72\x26\x51\x74'),_0x2682f8['\x54\x43\x77\x4c\x73']=_0x3a3969(0x1d0,'\x65\x24\x46\x5b'),_0x2682f8[_0x3a3969(0x1fb,'\x6c\x71\x56\x37')]=function(_0x2abde9,_0x34c933){return _0x2abde9&_0x34c933;},_0x2682f8[_0x3a3969(0x2a3,'\x65\x24\x46\x5b')]=function(_0x51a5b6,_0x46f57f){return _0x51a5b6===_0x46f57f;},_0x2682f8[_0x3a3969(0x189,'\x6e\x36\x67\x43')]=function(_0x13a5df,_0x8b05d6){return _0x13a5df&_0x8b05d6;},_0x2682f8[_0x3a3969(0x203,'\x77\x7a\x25\x79')]='\x67\x72\x6f\x75\x70\x5f\x61\x63'+_0x3a3969(0x23c,'\x34\x39\x6a\x43');const _0x150ecd=_0x2682f8;let _0x1d2b01;try{_0x150ecd[_0x3a3969(0x22e,'\x44\x55\x44\x73')](_0x3a3969(0x1b4,'\x6b\x58\x51\x73'),_0x150ecd['\x6b\x64\x43\x67\x43'])?_0x1d2b01=_0x3b3bf0[_0x3a3969(0x222,'\x65\x4a\x6f\x58')](_0x16e35e):_0x348209=_0x25beed[_0x3a3969(0x2b3,'\x31\x29\x24\x59')](_0x557822);}catch(_0x91df17){return _0x150ecd[_0x3a3969(0x12f,'\x44\x55\x44\x73')];}if(!_0x1d2b01[_0x3a3969(0x139,'\x6c\x4b\x2a\x54')]())return'\x6e\x6f\x74\x5f\x66\x69\x6c\x65';const _0x361d92=_0x150ecd[_0x3a3969(0x25e,'\x5d\x23\x56\x4c')](_0x1d2b01[_0x3a3969(0x274,'\x48\x35\x6b\x71')],-0x20c1+-0x243+0x2503);if(_0x150ecd[_0x3a3969(0x2aa,'\x5d\x23\x56\x4c')](_0x150ecd[_0x3a3969(0x147,'\x28\x39\x24\x48')](_0x361d92,-0x2f*0x8d+0x136a+-0x35c*-0x2),-0x44*0x82+0x12ca+-0x41*-0x3e))return _0x3a3969(0x23a,'\x6c\x70\x70\x41')+'\x6c\x79';if((_0x361d92&-0x5*-0x89+0x96b*-0x4+-0x1183*-0x2)!==-0xe6d+-0x1b41*0x1+0x2*0x14d7)return _0x3a3969(0x25f,'\x79\x37\x67\x25')+_0x3a3969(0x263,'\x28\x6c\x57\x74');return _0x150ecd[_0x3a3969(0x18f,'\x65\x24\x46\x5b')];}function _0x4f1372(){const _0xe83b41=_0x69ccc5;return _0x25ec80[_0xe83b41(0x1c2,'\x65\x24\x46\x5b')](__dirname,'\x2e\x2e','\x2e\x2e');}function _0x2f0c3b(_0x398c1,_0x9721fa){const _0x2cd852=_0x69ccc5,_0x316216={};_0x316216[_0x2cd852(0x267,'\x5a\x33\x30\x6f')]=function(_0x1c6bf8,_0x3477d6){return _0x1c6bf8 instanceof _0x3477d6;},_0x316216['\x7a\x58\x74\x5a\x45']=function(_0x2ff490,_0x889278){return _0x2ff490===_0x889278;},_0x316216[_0x2cd852(0x2c7,'\x71\x53\x38\x53')]='\x75\x74\x66\x38',_0x316216[_0x2cd852(0x20b,'\x28\x39\x24\x48')]=function(_0x3680f6,_0x43494b){return _0x3680f6!==_0x43494b;},_0x316216[_0x2cd852(0x1d2,'\x4e\x42\x71\x59')]='\x42\x6d\x57\x71\x4b',_0x316216[_0x2cd852(0x2ca,'\x62\x41\x71\x79')]=_0x2cd852(0x15e,'\x74\x49\x36\x5e'),_0x316216[_0x2cd852(0x1e5,'\x4d\x64\x4d\x5a')]=function(_0x459d1b,_0x31fa9c){return _0x459d1b+_0x31fa9c;},_0x316216[_0x2cd852(0x192,'\x56\x62\x48\x40')]=function(_0x3c6ba9,_0x390f7a){return _0x3c6ba9===_0x390f7a;},_0x316216[_0x2cd852(0x1ad,'\x72\x26\x51\x74')]=_0x2cd852(0x185,'\x78\x5e\x33\x51');const _0x189f9c=_0x316216;try{if(_0x189f9c[_0x2cd852(0x187,'\x77\x7a\x25\x79')](_0x189f9c[_0x2cd852(0x13a,'\x6c\x71\x56\x37')],_0x189f9c[_0x2cd852(0x1a5,'\x6e\x36\x67\x43')])){const _0x2217db=_0x3b3bf0[_0x2cd852(0x272,'\x4e\x42\x71\x59')+_0x2cd852(0x1c3,'\x24\x36\x36\x68')](_0x398c1),_0x5ac8f5=_0x3b3bf0[_0x2cd852(0x188,'\x29\x6b\x57\x35')+_0x2cd852(0x1df,'\x62\x41\x71\x79')](_0x9721fa);return _0x5ac8f5[_0x2cd852(0x209,'\x62\x41\x71\x79')+'\x74\x68'](_0x189f9c[_0x2cd852(0x176,'\x56\x62\x48\x40')](_0x2217db,_0x25ec80[_0x2cd852(0x15b,'\x51\x45\x2a\x4d')]))?_0x5ac8f5:null;}else{if(xOfJSp[_0x2cd852(0x172,'\x61\x44\x23\x59')](_0x362a5a,_0x2deccc))return _0x49f1ca[_0x2cd852(0x2cb,'\x28\x69\x28\x4c')+_0x2cd852(0x277,'\x28\x39\x24\x48')]();if(xOfJSp[_0x2cd852(0x200,'\x6c\x71\x56\x37')](typeof _0x45faaa,_0x2cd852(0x239,'\x55\x6e\x61\x7a'))&&_0x2310cc)return _0x4b5958;return new _0x424b3e()[_0x2cd852(0x2a0,'\x51\x45\x2a\x4d')+'\x69\x6e\x67']();}}catch(_0x1553a4){if(_0x189f9c[_0x2cd852(0x192,'\x56\x62\x48\x40')](_0x2cd852(0x170,'\x48\x43\x53\x72'),_0x189f9c[_0x2cd852(0x27e,'\x6c\x71\x56\x37')]))return null;else try{return _0x4d0371[_0x2cd852(0x219,'\x6c\x74\x5e\x25')](_0x23ce45[_0x2cd852(0x1c9,'\x6f\x44\x35\x45')+'\x53\x79\x6e\x63'](_0x39f644,xOfJSp[_0x2cd852(0x18d,'\x28\x69\x28\x4c')]));}catch(_0x58efe5){return null;}}}function _0x684905(_0x1710de){const _0x5383d3=_0x69ccc5,_0x5da2d9={'\x6a\x68\x6a\x58\x76':function(_0x2d3d3b,_0x5767e8){return _0x2d3d3b(_0x5767e8);},'\x59\x44\x50\x71\x74':function(_0x1b3216){return _0x1b3216();},'\x61\x4a\x45\x66\x64':function(_0x191035,_0xd7afb9,_0x3d6cc7){return _0x191035(_0xd7afb9,_0x3d6cc7);},'\x79\x6a\x76\x5a\x57':_0x5383d3(0x260,'\x71\x53\x38\x53')+'\x6a\x73\x6f\x6e','\x65\x4d\x59\x6e\x55':function(_0x156c07,_0x86d6f8){return _0x156c07===_0x86d6f8;},'\x44\x53\x75\x6a\x6e':_0x5383d3(0x132,'\x31\x29\x24\x59'),'\x59\x72\x61\x57\x48':function(_0xd8ff72,_0x522a9a,_0x5209d9){return _0xd8ff72(_0x522a9a,_0x5209d9);},'\x66\x75\x4b\x78\x42':_0x5383d3(0x204,'\x62\x41\x71\x79')+_0x5383d3(0x1a1,'\x28\x69\x28\x4c')+'\x6e','\x56\x66\x64\x41\x56':_0x5383d3(0x142,'\x51\x45\x2a\x4d')+_0x5383d3(0x2bd,'\x78\x5e\x33\x51'),'\x63\x55\x50\x48\x4a':'\x79\x61\x72\x6e\x2e\x6c\x6f\x63'+'\x6b','\x56\x47\x49\x57\x4e':_0x5383d3(0x1b2,'\x6c\x4b\x2a\x54')+'\x62','\x45\x61\x69\x46\x5a':function(_0x47a637,_0x3317c1){return _0x47a637===_0x3317c1;},'\x50\x61\x73\x48\x73':_0x5383d3(0x171,'\x72\x25\x62\x71'),'\x70\x6f\x4a\x72\x55':function(_0x196dc8,_0x351249){return _0x196dc8(_0x351249);}},_0x1a2452=_0x1710de||_0x5da2d9[_0x5383d3(0x1ed,'\x2a\x31\x71\x69')](_0x4f1372),_0x38e6c3=_0x5da2d9[_0x5383d3(0x1e9,'\x48\x35\x6b\x71')](_0x2f0c3b,_0x1a2452,_0x25ec80[_0x5383d3(0x15f,'\x29\x6b\x57\x35')](_0x1a2452,_0x5da2d9[_0x5383d3(0x25b,'\x65\x4a\x6f\x58')])),_0x5b9c2a=_0x38e6c3&&_0x5da2d9[_0x5383d3(0x224,'\x6a\x59\x47\x43')](_0xac62,_0x38e6c3)||{},_0x27ce9d=_0x5b9c2a&&_0x5b9c2a[_0x5383d3(0x1f6,'\x4b\x7a\x66\x51')]&&_0x5da2d9[_0x5383d3(0x164,'\x24\x36\x36\x68')](typeof _0x5b9c2a[_0x5383d3(0x22d,'\x29\x6b\x57\x35')]['\x65\x76\x6f\x6c\x76\x65\x72'],_0x5da2d9[_0x5383d3(0x2c5,'\x51\x6f\x5e\x79')])?_0x5b9c2a[_0x5383d3(0x281,'\x77\x7a\x25\x79')]['\x65\x76\x6f\x6c\x76\x65\x72']:null,_0x5724c8=_0x27ce9d?_0x5da2d9['\x59\x72\x61\x57\x48'](_0x2f0c3b,_0x1a2452,_0x25ec80['\x72\x65\x73\x6f\x6c\x76\x65'](_0x1a2452,_0x27ce9d)):null,_0x3bb1fd=[_0x5da2d9[_0x5383d3(0x137,'\x62\x41\x71\x79')],_0x5da2d9[_0x5383d3(0x21b,'\x5a\x33\x30\x6f')],_0x5da2d9['\x63\x55\x50\x48\x4a'],_0x5da2d9[_0x5383d3(0x2b2,'\x28\x6c\x57\x74')]],_0x49f3af={};for(const _0x337950 of _0x3bb1fd){if(_0x5da2d9[_0x5383d3(0x1a8,'\x56\x62\x48\x40')](_0x5da2d9['\x50\x61\x73\x48\x73'],_0x5da2d9['\x50\x61\x73\x48\x73'])){const _0x96e215=_0x2f0c3b(_0x1a2452,_0x25ec80[_0x5383d3(0x13c,'\x6c\x70\x70\x41')](_0x1a2452,_0x337950)),_0x2aab49=_0x96e215?_0x5da2d9[_0x5383d3(0x1ce,'\x71\x53\x38\x53')](_0x5a707b,_0x96e215):null;if(_0x2aab49)_0x49f3af[_0x337950]=_0x2aab49;}else{const _0x44f061=_0x55c591(_0x57d0d5,_0x344ec3[_0x5383d3(0x255,'\x2a\x31\x71\x69')](_0x3fe409,_0x342844)),_0x194b5b=_0x44f061?_0x5da2d9[_0x5383d3(0x2a7,'\x52\x78\x64\x4c')](_0x447d65,_0x44f061):null;if(_0x194b5b)_0x446306[_0x17815d]=_0x194b5b;}}return{'\x70\x61\x63\x6b\x61\x67\x65\x5f\x6a\x73\x6f\x6e\x5f\x68\x61\x73\x68':_0x38e6c3?_0x5a707b(_0x38e6c3):null,'\x63\x6c\x69\x5f\x65\x6e\x74\x72\x79\x5f\x68\x61\x73\x68':_0x5724c8?_0x5da2d9[_0x5383d3(0x2d2,'\x74\x49\x36\x5e')](_0x5a707b,_0x5724c8):null,'\x6c\x6f\x63\x6b\x66\x69\x6c\x65\x5f\x68\x61\x73\x68\x65\x73':_0x49f3af};}function _0x52b870(_0x430b24){const _0x222bcf=_0x69ccc5,_0x3cd08a={'\x46\x56\x77\x7a\x64':function(_0x20d1ad,_0x42826e){return _0x20d1ad(_0x42826e);}},_0x4b1868=_0x430b24||process.env,_0x185497=_0x4b1868['\x45\x56\x4f\x4c\x56\x45\x52\x5f'+_0x222bcf(0x223,'\x6e\x36\x67\x43')+_0x222bcf(0x284,'\x5a\x33\x30\x6f')]||_0x25ec80[_0x222bcf(0x134,'\x31\x29\x24\x59')](_0x4f050a[_0x222bcf(0x182,'\x31\x29\x24\x59')](),'\x2e\x65\x76\x6f\x6c\x76\x65\x72');return _0x3cd08a['\x46\x56\x77\x7a\x64'](_0x7feae9,_0x25ec80[_0x222bcf(0x195,'\x72\x25\x62\x71')](_0x185497,_0x222bcf(0x257,'\x6c\x4b\x2a\x54')+_0x222bcf(0x1cb,'\x61\x44\x23\x59')));}function _0x4be815(_0x3ef4a4){const _0x210b38=_0x69ccc5,_0x5b94ba={'\x6d\x73\x78\x4a\x75':function(_0x1ad8ec,_0x25e750){return _0x1ad8ec===_0x25e750;},'\x4e\x77\x67\x75\x45':'\x6f\x62\x6a\x65\x63\x74','\x6a\x62\x49\x6a\x61':function(_0x1c3991,_0x5b26c0){return _0x1c3991(_0x5b26c0);},'\x48\x6a\x4e\x50\x47':function(_0x2a2b7e,_0x5db580){return _0x2a2b7e(_0x5db580);},'\x6f\x57\x47\x41\x6a':function(_0x619401,_0x2b0e5c){return _0x619401(_0x2b0e5c);}},_0x306d98=_0x3ef4a4&&_0x5b94ba[_0x210b38(0x201,'\x6b\x58\x51\x73')](typeof _0x3ef4a4,_0x5b94ba[_0x210b38(0x146,'\x51\x6f\x5e\x79')])?_0x3ef4a4:{},_0x3bcb67=_0x306d98[_0x210b38(0x20d,'\x72\x26\x51\x74')+'\x72\x69\x63\x73']&&typeof _0x306d98[_0x210b38(0x1fa,'\x5a\x33\x30\x6f')+_0x210b38(0x13f,'\x38\x66\x39\x32')]===_0x5b94ba['\x4e\x77\x67\x75\x45']?_0x306d98[_0x210b38(0x2c4,'\x48\x35\x6b\x71')+_0x210b38(0x253,'\x4d\x64\x4d\x5a')]:null;if(!_0x3bcb67)return null;return{'\x70\x65\x6e\x64\x69\x6e\x67':Number[_0x210b38(0x254,'\x30\x6b\x51\x5a')](_0x5b94ba[_0x210b38(0x135,'\x48\x43\x53\x72')](Number,_0x3bcb67[_0x210b38(0x279,'\x51\x6f\x5e\x79')]))?_0x5b94ba[_0x210b38(0x299,'\x72\x26\x51\x74')](Number,_0x3bcb67[_0x210b38(0x1d5,'\x4b\x7a\x66\x51')]):null,'\x63\x6c\x61\x69\x6d\x65\x64':Number['\x69\x73\x46\x69\x6e\x69\x74\x65'](_0x5b94ba[_0x210b38(0x149,'\x65\x4a\x6f\x58')](Number,_0x3bcb67[_0x210b38(0x2b0,'\x6f\x44\x35\x45')]))?_0x5b94ba[_0x210b38(0x140,'\x6c\x74\x5e\x25')](Number,_0x3bcb67[_0x210b38(0x206,'\x44\x55\x44\x73')]):null,'\x63\x6f\x6d\x70\x6c\x65\x74\x65\x64':Number[_0x210b38(0x24c,'\x77\x7a\x25\x79')](_0x5b94ba[_0x210b38(0x2d1,'\x74\x49\x36\x5e')](Number,_0x3bcb67[_0x210b38(0x226,'\x78\x5e\x33\x51')+'\x64']))?_0x5b94ba[_0x210b38(0x17e,'\x30\x6b\x51\x5a')](Number,_0x3bcb67[_0x210b38(0x199,'\x54\x7a\x4e\x55')+'\x64']):null,'\x66\x61\x69\x6c\x65\x64':Number[_0x210b38(0x169,'\x6e\x36\x67\x43')](_0x5b94ba[_0x210b38(0x20a,'\x4d\x64\x4d\x5a')](Number,_0x3bcb67['\x66\x61\x69\x6c\x65\x64']))?_0x5b94ba[_0x210b38(0x299,'\x72\x26\x51\x74')](Number,_0x3bcb67[_0x210b38(0x1bf,'\x51\x45\x2a\x4d')]):null,'\x61\x76\x67\x5f\x63\x6f\x6d\x70\x6c\x65\x74\x69\x6f\x6e\x5f\x6d\x73':Number[_0x210b38(0x2d5,'\x44\x55\x44\x73')](Number(_0x3bcb67[_0x210b38(0x262,'\x52\x78\x64\x4c')+'\x6c\x65\x74\x69\x6f\x6e\x5f\x6d'+'\x73']))?_0x5b94ba[_0x210b38(0x18b,'\x28\x21\x70\x5a')](Number,_0x3bcb67[_0x210b38(0x178,'\x38\x66\x39\x32')+_0x210b38(0x2d0,'\x65\x24\x46\x5b')+'\x73']):null};}function _0x599689(_0x5ee207){const _0x7b5384=_0x69ccc5,_0x49b359={'\x70\x68\x43\x6f\x48':function(_0x3cf0d7,_0xdddb08){return _0x3cf0d7(_0xdddb08);},'\x7a\x53\x4d\x4f\x6b':function(_0x4df3de,_0x5c04d5){return _0x4df3de>_0x5c04d5;}},_0x4606d3=_0x49b359[_0x7b5384(0x2b9,'\x51\x45\x2a\x4d')](Number,_0x5ee207&&_0x5ee207[_0x7b5384(0x1eb,'\x78\x5e\x33\x51')+_0x7b5384(0x1d3,'\x65\x4a\x6f\x58')+_0x7b5384(0x18c,'\x62\x41\x71\x79')+_0x7b5384(0x21e,'\x64\x62\x6d\x37')]);return Number[_0x7b5384(0x275,'\x6b\x58\x51\x73')](_0x4606d3)&&_0x49b359[_0x7b5384(0x296,'\x28\x69\x28\x4c')](_0x4606d3,-0x269c+0xcc3+0x19d9)?Math[_0x7b5384(0x198,'\x29\x6b\x57\x35')](_0x4606d3):_0x10dde5;}function _0x2f207a(_0x1e9dd1,_0x551f89,_0x367945){const _0x5884e3=_0x69ccc5,_0x51503e={};_0x51503e[_0x5884e3(0x26f,'\x28\x21\x70\x5a')]=function(_0x342982,_0x55237e){return _0x342982||_0x55237e;},_0x51503e['\x76\x44\x69\x43\x76']=_0x5884e3(0x287,'\x28\x69\x28\x4c')+'\x65\x72';const _0x381bd5=_0x51503e;return{'\x66\x69\x65\x6c\x64':_0x1e9dd1,'\x72\x65\x61\x73\x6f\x6e':_0x551f89,'\x65\x78\x70\x65\x63\x74\x65\x64\x5f\x73\x6f\x75\x72\x63\x65':_0x381bd5['\x73\x75\x48\x4f\x4d'](_0x367945,_0x381bd5[_0x5884e3(0x1d7,'\x48\x43\x53\x72')])};}function _0x5b27c1(_0xac3f6a){const _0x169083=_0x69ccc5,_0x100099={'\x44\x50\x4b\x78\x71':function(_0x113a71,_0x49477b){return _0x113a71||_0x49477b;},'\x74\x42\x47\x74\x4b':function(_0x151af3){return _0x151af3();},'\x52\x4c\x57\x44\x72':function(_0x1784c5,_0x213781){return _0x1784c5!=_0x213781;},'\x4f\x44\x7a\x6c\x49':_0x169083(0x240,'\x74\x49\x36\x5e'),'\x71\x69\x55\x66\x54':_0x169083(0x12e,'\x28\x39\x24\x48'),'\x62\x50\x6e\x75\x62':function(_0x42b379,_0xba2f2f,_0x1250b5){return _0x42b379(_0xba2f2f,_0x1250b5);},'\x6a\x72\x6e\x76\x61':function(_0x1bdd22,_0x8e4f78,_0x22e805,_0x15e60c){return _0x1bdd22(_0x8e4f78,_0x22e805,_0x15e60c);},'\x5a\x76\x78\x77\x49':_0x169083(0x1ba,'\x4b\x7a\x66\x51')+'\x73\x65\x75\x64\x6f\x6e\x79\x6d','\x4e\x41\x68\x7a\x6d':'\x61\x6e\x74\x69\x5f\x61\x62\x75'+_0x169083(0x19a,'\x55\x6e\x61\x7a')+_0x169083(0x166,'\x6a\x59\x47\x43'),'\x66\x59\x61\x70\x76':_0x169083(0x256,'\x51\x45\x2a\x4d')+_0x169083(0x1ab,'\x54\x7a\x4e\x55')+_0x169083(0x216,'\x65\x24\x46\x5b'),'\x42\x6f\x6b\x5a\x66':'\x77\x6f\x72\x6b\x73\x70\x61\x63'+'\x65\x5f\x70\x73\x65\x75\x64\x6f'+_0x169083(0x295,'\x48\x43\x53\x72'),'\x49\x69\x62\x52\x65':_0x169083(0x25d,'\x74\x49\x36\x5e')+_0x169083(0x153,'\x64\x62\x6d\x37')+_0x169083(0x17d,'\x72\x25\x62\x71'),'\x77\x68\x71\x61\x57':_0x169083(0x151,'\x79\x37\x67\x25'),'\x76\x6f\x70\x59\x63':function(_0x50bb56,_0x3a3bd0,_0x44b701,_0x4c345f){return _0x50bb56(_0x3a3bd0,_0x44b701,_0x4c345f);},'\x4a\x5a\x55\x51\x48':'\x61\x73\x6e','\x62\x77\x71\x49\x51':_0x169083(0x24d,'\x4d\x64\x4d\x5a')+_0x169083(0x1fe,'\x72\x25\x62\x71')+_0x169083(0x244,'\x2a\x31\x71\x69')+_0x169083(0x2b6,'\x6c\x71\x56\x37'),'\x67\x64\x64\x55\x6b':_0x169083(0x2af,'\x4d\x64\x4d\x5a')+_0x169083(0x179,'\x78\x5e\x33\x51'),'\x74\x76\x73\x73\x50':_0x169083(0x16b,'\x30\x6b\x51\x5a')+_0x169083(0x227,'\x6c\x4b\x2a\x54')+'\x72\x65\x71\x75\x69\x72\x65\x64','\x64\x79\x4e\x65\x69':_0x169083(0x1d9,'\x28\x6c\x57\x74')+_0x169083(0x19b,'\x28\x39\x24\x48'),'\x73\x54\x63\x41\x48':function(_0xc31024,_0x33196c,_0x3828de,_0x5605c3){return _0xc31024(_0x33196c,_0x3828de,_0x5605c3);},'\x79\x6a\x44\x76\x62':_0x169083(0x1b3,'\x5a\x33\x30\x6f')+_0x169083(0x144,'\x65\x24\x46\x5b')+_0x169083(0x20c,'\x4d\x64\x4d\x5a'),'\x59\x62\x44\x56\x62':'\x70\x61\x79\x6d\x65\x6e\x74\x73'+_0x169083(0x27a,'\x7a\x5d\x4d\x44')+'\x5f\x72\x65\x71\x75\x69\x72\x65'+'\x64','\x73\x45\x6e\x70\x7a':_0x169083(0x186,'\x65\x4a\x6f\x58')+_0x169083(0x28a,'\x48\x43\x53\x72'),'\x68\x6e\x68\x6e\x57':_0x169083(0x202,'\x6a\x59\x47\x43')+_0x169083(0x1b8,'\x65\x24\x46\x5b'),'\x72\x52\x78\x59\x66':_0x169083(0x221,'\x6f\x44\x35\x45'),'\x68\x67\x57\x49\x50':_0x169083(0x14e,'\x65\x24\x46\x5b')+'\x72\x74\x62\x65\x61\x74','\x4a\x66\x6c\x67\x55':_0x169083(0x2bf,'\x48\x43\x53\x72')+'\x73\x65','\x52\x4d\x7a\x71\x52':_0x169083(0x297,'\x65\x24\x46\x5b'),'\x52\x57\x52\x54\x44':function(_0x29aaa5,_0x364cc2){return _0x29aaa5(_0x364cc2);},'\x76\x4a\x7a\x4e\x6e':_0x169083(0x26e,'\x28\x21\x70\x5a')+_0x169083(0x18a,'\x28\x69\x28\x4c'),'\x6e\x5a\x47\x48\x48':function(_0x576fd8,_0x4160ea){return _0x576fd8(_0x4160ea);},'\x55\x58\x4d\x57\x71':_0x169083(0x205,'\x5d\x23\x56\x4c')+_0x169083(0x2ad,'\x55\x6e\x61\x7a'),'\x63\x51\x4a\x44\x79':function(_0x45d409,_0x379b2c){return _0x45d409(_0x379b2c);},'\x49\x64\x6b\x6a\x69':_0x169083(0x133,'\x61\x73\x55\x79'),'\x4e\x52\x59\x52\x56':function(_0x459f7b,_0x577d46){return _0x459f7b!=_0x577d46;}},_0xf49b35=_0x100099[_0x169083(0x21a,'\x4d\x64\x4d\x5a')](_0xac3f6a,{}),_0x187967=_0xf49b35[_0x169083(0x141,'\x5a\x33\x30\x6f')]||process.env,_0x4763f9=_0xf49b35[_0x169083(0x271,'\x28\x6c\x57\x74')+_0x169083(0x1d8,'\x64\x62\x6d\x37')]||_0x100099[_0x169083(0x23e,'\x72\x25\x62\x71')](_0x3a825c),_0x142f64=_0x100099[_0x169083(0x191,'\x30\x6b\x51\x5a')](_0xf49b35[_0x169083(0x165,'\x6c\x74\x5e\x25')],null)?_0xf49b35[_0x169083(0x15a,'\x5d\x23\x56\x4c')]:_0x187967['\x45\x56\x4f\x4c\x56\x45\x52\x5f'+_0x169083(0x292,'\x28\x39\x24\x48')+_0x169083(0x1e4,'\x44\x55\x44\x73')],_0x519d2d=_0xf49b35[_0x169083(0x246,'\x29\x6b\x57\x35')]||_0x187967[_0x169083(0x14b,'\x77\x7a\x25\x79')+_0x169083(0x278,'\x55\x6e\x61\x7a')+_0x169083(0x208,'\x4b\x56\x6e\x53')+'\x49\x44']||(_0x142f64?_0x100099[_0x169083(0x25c,'\x4b\x7a\x66\x51')]:null),_0x330571=_0xf49b35[_0x169083(0x210,'\x4d\x64\x4d\x5a')+_0x169083(0x1ac,'\x34\x39\x6a\x43')]||_0x100099[_0x169083(0x196,'\x4e\x42\x71\x59')](_0x4f1372),_0x22676b={};_0x22676b[_0x169083(0x17c,'\x6e\x36\x67\x43')]=_0x142f64,_0x22676b[_0x169083(0x1a6,'\x51\x6f\x5e\x79')]=_0x100099[_0x169083(0x217,'\x51\x6f\x5e\x79')];const _0x4cb71b=_0x14ac81(_0x4763f9&&_0x4763f9[_0x169083(0x1ec,'\x72\x26\x51\x74')+'\x64'],_0x22676b),_0x3ec908={};_0x3ec908['\x73\x61\x6c\x74']=_0x142f64,_0x3ec908[_0x169083(0x2c0,'\x38\x66\x39\x32')]=_0x169083(0x24b,'\x79\x37\x67\x25')+'\x65';const _0xaa034f=_0x100099[_0x169083(0x1e1,'\x6e\x36\x67\x43')](_0x14ac81,process[_0x169083(0x1f3,'\x30\x6b\x51\x5a')](),_0x3ec908),_0x523870=[];if(!_0x4cb71b)_0x523870[_0x169083(0x293,'\x6b\x58\x51\x73')](_0x100099[_0x169083(0x264,'\x6c\x74\x5e\x25')](_0x2f207a,_0x100099[_0x169083(0x1ff,'\x6c\x74\x5e\x25')],_0x100099[_0x169083(0x1d1,'\x38\x66\x39\x32')],_0x100099[_0x169083(0x1dd,'\x31\x29\x24\x59')]));if(!_0xaa034f)_0x523870[_0x169083(0x237,'\x48\x43\x53\x72')](_0x2f207a(_0x100099[_0x169083(0x2a1,'\x72\x25\x62\x71')],'\x61\x6e\x74\x69\x5f\x61\x62\x75'+_0x169083(0x270,'\x52\x78\x64\x4c')+_0x169083(0x261,'\x7a\x5d\x4d\x44'),_0x100099[_0x169083(0x1c5,'\x6e\x36\x67\x43')]));return _0x523870[_0x169083(0x28e,'\x29\x6b\x57\x35')](_0x100099[_0x169083(0x163,'\x6a\x59\x47\x43')](_0x2f207a,_0x169083(0x20e,'\x29\x6b\x57\x35')+'\x70',_0x100099['\x49\x69\x62\x52\x65'],_0x100099[_0x169083(0x28d,'\x6c\x70\x70\x41')]),_0x100099[_0x169083(0x2a6,'\x48\x43\x53\x72')](_0x2f207a,_0x100099[_0x169083(0x168,'\x65\x4a\x6f\x58')],_0x100099[_0x169083(0x231,'\x61\x44\x23\x59')],_0x100099['\x77\x68\x71\x61\x57']),_0x100099[_0x169083(0x2ab,'\x38\x66\x39\x32')](_0x2f207a,_0x100099[_0x169083(0x286,'\x2a\x31\x71\x69')],_0x100099[_0x169083(0x276,'\x52\x78\x64\x4c')],_0x169083(0x213,'\x4b\x56\x6e\x53')),_0x100099[_0x169083(0x15d,'\x4d\x64\x4d\x5a')](_0x2f207a,_0x100099[_0x169083(0x245,'\x28\x6c\x57\x74')],_0x100099[_0x169083(0x247,'\x51\x6f\x5e\x79')],_0x100099[_0x169083(0x1bb,'\x52\x78\x64\x4c')]),_0x100099[_0x169083(0x212,'\x2a\x31\x71\x69')](_0x2f207a,_0x100099[_0x169083(0x167,'\x55\x6e\x61\x7a')],_0x100099[_0x169083(0x1c1,'\x54\x7a\x4e\x55')],_0x100099[_0x169083(0x232,'\x28\x39\x24\x48')]),_0x2f207a(_0x100099[_0x169083(0x16d,'\x74\x49\x36\x5e')],'\x72\x69\x73\x6b\x5f\x65\x6e\x67'+_0x169083(0x235,'\x28\x21\x70\x5a')+_0x169083(0x193,'\x28\x69\x28\x4c'),_0x100099[_0x169083(0x2ac,'\x5d\x23\x56\x4c')])),{'\x73\x63\x68\x65\x6d\x61\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0xa3407b,'\x65\x76\x65\x6e\x74\x5f\x74\x79\x70\x65':_0x100099[_0x169083(0x26c,'\x72\x25\x62\x71')],'\x70\x75\x72\x70\x6f\x73\x65':_0x100099[_0x169083(0x22a,'\x29\x6b\x57\x35')],'\x70\x69\x69\x5f\x63\x6c\x61\x73\x73':_0x169083(0x16a,'\x6c\x4b\x2a\x54'),'\x63\x6f\x6e\x73\x65\x6e\x74\x5f\x6c\x65\x76\x65\x6c':_0x100099['\x52\x4d\x7a\x71\x52'],'\x72\x65\x74\x65\x6e\x74\x69\x6f\x6e\x5f\x74\x74\x6c\x5f\x64\x61\x79\x73':_0x100099[_0x169083(0x238,'\x28\x21\x70\x5a')](_0x599689,_0x187967),'\x70\x6f\x6c\x69\x63\x79\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x187967[_0x169083(0x145,'\x62\x41\x71\x79')+_0x169083(0x22b,'\x31\x29\x24\x59')+_0x169083(0x19f,'\x28\x6c\x57\x74')+_0x169083(0x2d8,'\x65\x4a\x6f\x58')+'\x4e']||_0x100099[_0x169083(0x2d3,'\x5a\x33\x30\x6f')],'\x72\x65\x64\x61\x63\x74\x69\x6f\x6e\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0xf96dc2,'\x73\x6f\x75\x72\x63\x65':_0xf49b35[_0x169083(0x285,'\x72\x25\x62\x71')]||_0x169083(0x218,'\x6a\x59\x47\x43')+_0x169083(0x158,'\x6c\x74\x5e\x25'),'\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x5f\x61\x74':_0x100099[_0x169083(0x157,'\x5d\x23\x56\x4c')](_0xc6a849,_0xf49b35[_0x169083(0x1c4,'\x61\x73\x55\x79')]),'\x73\x6f\x75\x72\x63\x65\x5f\x63\x6f\x6e\x66\x69\x64\x65\x6e\x63\x65':{'\x6e\x6f\x64\x65\x5f\x69\x64\x65\x6e\x74\x69\x74\x79':_0x100099[_0x169083(0x1f5,'\x34\x39\x6a\x43')],'\x64\x65\x76\x69\x63\x65\x5f\x69\x6e\x74\x65\x67\x72\x69\x74\x79':_0x100099[_0x169083(0x19e,'\x28\x21\x70\x5a')],'\x74\x61\x73\x6b\x5f\x6d\x65\x74\x72\x69\x63\x73':_0x100099[_0x169083(0x298,'\x6c\x4b\x2a\x54')],'\x6e\x65\x74\x77\x6f\x72\x6b\x5f\x73\x6f\x75\x72\x63\x65':_0x169083(0x1c6,'\x28\x21\x70\x5a')+_0x169083(0x19c,'\x79\x37\x67\x25')+_0x169083(0x1bc,'\x62\x41\x71\x79'),'\x61\x63\x63\x6f\x75\x6e\x74\x5f\x73\x65\x63\x75\x72\x69\x74\x79':_0x100099[_0x169083(0x1e8,'\x78\x5e\x33\x51')],'\x70\x61\x79\x6f\x75\x74':_0x100099[_0x169083(0x143,'\x6f\x44\x35\x45')],'\x72\x69\x73\x6b\x5f\x64\x65\x63\x69\x73\x69\x6f\x6e':_0x100099[_0x169083(0x21d,'\x6a\x59\x47\x43')]},'\x69\x64\x65\x6e\x74\x69\x74\x79':{'\x6e\x6f\x64\x65\x5f\x69\x64':_0xf49b35[_0x169083(0x2cc,'\x6f\x44\x35\x45')]||null,'\x61\x63\x63\x6f\x75\x6e\x74\x5f\x69\x64':null,'\x6f\x72\x67\x5f\x69\x64':null},'\x64\x65\x76\x69\x63\x65':{'\x64\x65\x76\x69\x63\x65\x5f\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d':_0x4cb71b,'\x77\x6f\x72\x6b\x73\x70\x61\x63\x65\x5f\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d':_0xaa034f,'\x70\x73\x65\x75\x64\x6f\x6e\x79\x6d\x5f\x73\x61\x6c\x74\x5f\x69\x64':_0x519d2d,'\x65\x6e\x76\x5f\x66\x69\x6e\x67\x65\x72\x70\x72\x69\x6e\x74\x5f\x6b\x65\x79':_0x100099[_0x169083(0x289,'\x51\x45\x2a\x4d')](_0x3e109d,_0x4763f9),'\x70\x6c\x61\x74\x66\x6f\x72\x6d':_0x4763f9[_0x169083(0x2c3,'\x61\x73\x55\x79')]||null,'\x61\x72\x63\x68':_0x4763f9[_0x169083(0x150,'\x51\x45\x2a\x4d')]||null,'\x6f\x73\x5f\x72\x65\x6c\x65\x61\x73\x65':_0x4763f9[_0x169083(0x138,'\x30\x6b\x51\x5a')+'\x73\x65']||null,'\x6e\x6f\x64\x65\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4763f9[_0x169083(0x25a,'\x24\x36\x36\x68')+_0x169083(0x1c8,'\x5d\x23\x56\x4c')]||null,'\x65\x76\x6f\x6c\x76\x65\x72\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4763f9[_0x169083(0x242,'\x28\x21\x70\x5a')+_0x169083(0x294,'\x61\x73\x55\x79')]||null,'\x63\x6c\x69\x65\x6e\x74':_0x4763f9[_0x169083(0x234,'\x55\x6e\x61\x7a')]||null,'\x63\x6c\x69\x65\x6e\x74\x5f\x76\x65\x72\x73\x69\x6f\x6e':_0x4763f9[_0x169083(0x17f,'\x4e\x42\x71\x59')+'\x65\x72\x73\x69\x6f\x6e']||null,'\x6d\x6f\x64\x65\x6c':_0x4763f9[_0x169083(0x13d,'\x5d\x23\x56\x4c')]||null,'\x72\x65\x67\x69\x6f\x6e':_0x4763f9[_0x169083(0x162,'\x54\x7a\x4e\x55')]||null,'\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72':!!_0x4763f9[_0x169083(0x2bb,'\x55\x6e\x61\x7a')+'\x72']},'\x69\x6e\x74\x65\x67\x72\x69\x74\x79':_0x100099[_0x169083(0x250,'\x61\x73\x55\x79')](_0x684905,_0x330571),'\x6c\x6f\x63\x61\x6c\x5f\x73\x65\x63\x75\x72\x69\x74\x79\x5f\x62\x6f\x75\x6e\x64\x61\x72\x79':{'\x70\x72\x6f\x78\x79\x5f\x62\x69\x6e\x64\x5f\x61\x64\x64\x72\x65\x73\x73\x5f\x63\x6c\x61\x73\x73':_0x100099[_0x169083(0x290,'\x51\x45\x2a\x4d')],'\x70\x72\x6f\x78\x79\x5f\x70\x6f\x72\x74\x5f\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64':_0x100099[_0x169083(0x177,'\x62\x41\x71\x79')](_0xf49b35[_0x169083(0x2b5,'\x56\x62\x48\x40')+_0x169083(0x1ca,'\x6b\x58\x51\x73')+_0x169083(0x1e7,'\x65\x4a\x6f\x58')],null)?!!_0xf49b35[_0x169083(0x2ae,'\x4d\x64\x4d\x5a')+_0x169083(0x19d,'\x28\x6c\x57\x74')+_0x169083(0x181,'\x28\x39\x24\x48')]:_0x100099[_0x169083(0x2d7,'\x55\x6e\x61\x7a')](_0x180c05,_0x187967[_0x169083(0x1c0,'\x4e\x42\x71\x59')+_0x169083(0x154,'\x30\x6b\x51\x5a')])||!!_0x187967[_0x169083(0x2a4,'\x56\x62\x48\x40')+_0x169083(0x16e,'\x6e\x36\x67\x43')+'\x54'],'\x73\x65\x74\x74\x69\x6e\x67\x73\x5f\x70\x65\x72\x6d\x69\x73\x73\x69\x6f\x6e\x5f\x63\x6c\x61\x73\x73':_0x100099['\x6e\x5a\x47\x48\x48'](_0x52b870,_0x187967)},'\x74\x61\x73\x6b\x5f\x74\x69\x6d\x69\x6e\x67':_0x100099['\x6e\x5a\x47\x48\x48'](_0x4be815,_0xf49b35[_0x169083(0x17b,'\x44\x55\x44\x73')]),'\x75\x6e\x61\x76\x61\x69\x6c\x61\x62\x6c\x65\x5f\x66\x69\x65\x6c\x64\x73':_0x523870};}function _0x2203(){const _0x323927=['\x64\x38\x6f\x44\x57\x4f\x78\x63\x4f\x67\x69','\x57\x52\x61\x67\x57\x37\x4c\x5a\x61\x61','\x57\x37\x2f\x64\x48\x38\x6b\x69\x6e\x38\x6b\x35\x71\x61','\x45\x38\x6f\x75\x6d\x6d\x6b\x2b\x77\x75\x4e\x63\x56\x58\x79','\x65\x38\x6b\x6f\x57\x4f\x69\x53\x70\x61','\x57\x51\x46\x64\x55\x38\x6b\x76\x79\x67\x2f\x63\x54\x6d\x6b\x64\x43\x57','\x45\x30\x57\x4b\x6e\x63\x42\x63\x55\x43\x6b\x41\x57\x34\x43','\x41\x38\x6f\x56\x57\x34\x50\x53\x6b\x31\x75\x66\x57\x37\x71','\x57\x35\x6c\x63\x4b\x38\x6b\x2b\x57\x52\x71','\x57\x52\x37\x63\x4b\x48\x33\x63\x4d\x48\x75\x57\x42\x43\x6f\x36','\x61\x6d\x6b\x46\x63\x78\x30','\x77\x38\x6f\x2f\x72\x4e\x37\x63\x47\x6d\x6f\x4d\x65\x38\x6f\x58','\x6c\x38\x6b\x44\x57\x34\x76\x44','\x57\x34\x66\x68\x57\x36\x68\x63\x4d\x72\x61','\x73\x43\x6f\x76\x57\x50\x4c\x4c\x74\x71','\x57\x52\x6e\x6a\x75\x67\x64\x64\x48\x71','\x65\x57\x2f\x64\x55\x67\x46\x63\x55\x6d\x6b\x61','\x68\x71\x57\x45\x67\x64\x48\x6b\x64\x53\x6f\x78','\x57\x51\x35\x59\x45\x31\x57','\x57\x34\x64\x63\x48\x6d\x6b\x54','\x46\x43\x6f\x35\x43\x43\x6f\x72\x57\x34\x43\x56\x79\x38\x6b\x45\x6d\x53\x6f\x57\x57\x51\x6d','\x57\x51\x64\x63\x48\x43\x6b\x75\x57\x35\x46\x63\x56\x47','\x6c\x77\x47\x31\x57\x34\x53\x58','\x68\x38\x6b\x65\x62\x49\x53','\x57\x50\x65\x46\x57\x37\x66\x6b\x6b\x38\x6f\x31','\x57\x50\x38\x54\x64\x66\x6e\x58','\x42\x43\x6f\x4c\x57\x36\x72\x77\x63\x32\x47','\x6a\x43\x6b\x4e\x57\x35\x35\x41\x67\x47','\x6d\x43\x6f\x4d\x57\x52\x62\x7a\x57\x50\x65','\x61\x57\x6c\x64\x56\x78\x79','\x69\x53\x6b\x38\x57\x34\x6e\x46\x65\x4d\x2f\x64\x47\x47','\x71\x6d\x6b\x65\x77\x6d\x6b\x58\x57\x50\x34','\x57\x52\x69\x32\x57\x36\x6a\x59\x64\x57','\x57\x4f\x4e\x63\x49\x38\x6b\x7a\x57\x34\x75\x2f\x41\x53\x6f\x54\x68\x71','\x57\x35\x7a\x38\x78\x53\x6f\x6b\x69\x38\x6b\x33','\x68\x6d\x6b\x58\x57\x37\x35\x52\x66\x4a\x6e\x4d\x73\x47','\x57\x52\x52\x64\x4e\x49\x42\x63\x56\x32\x50\x74\x71\x4c\x47','\x6e\x77\x30\x2f\x57\x35\x71\x62','\x57\x52\x6c\x63\x54\x38\x6b\x68\x57\x37\x75\x6f\x75\x38\x6f\x77\x6b\x47','\x57\x50\x4e\x63\x4a\x53\x6b\x75\x57\x34\x69','\x57\x35\x56\x64\x53\x38\x6b\x70\x69\x6d\x6b\x53','\x57\x4f\x47\x45\x6a\x65\x76\x6f','\x57\x34\x69\x46\x57\x37\x54\x4d\x57\x50\x75','\x6c\x4c\x4b\x6e\x57\x4f\x33\x64\x4b\x53\x6b\x4b\x57\x36\x31\x6a','\x71\x38\x6b\x55\x6d\x4a\x74\x64\x4f\x6d\x6b\x70','\x78\x43\x6f\x4c\x72\x67\x4e\x63\x48\x43\x6f\x33','\x57\x50\x6c\x64\x56\x38\x6b\x6b\x6b\x67\x65','\x78\x75\x65\x4d\x57\x50\x6a\x41','\x69\x6d\x6f\x65\x57\x4f\x74\x63\x4b\x66\x42\x63\x4b\x38\x6b\x43\x57\x51\x30','\x57\x52\x46\x64\x55\x38\x6b\x66\x7a\x4e\x74\x63\x56\x38\x6b\x42\x42\x57','\x57\x4f\x43\x45\x57\x52\x74\x64\x4f\x4b\x64\x63\x4c\x53\x6f\x37\x57\x51\x6d\x6d\x6f\x53\x6b\x33\x75\x38\x6f\x63','\x72\x43\x6b\x45\x6d\x74\x52\x64\x48\x30\x56\x64\x52\x38\x6b\x4a','\x57\x50\x70\x63\x4d\x43\x6b\x5a\x57\x35\x47','\x57\x52\x57\x52\x68\x31\x66\x49\x6c\x57\x4c\x54','\x66\x38\x6b\x57\x57\x35\x72\x55\x61\x47','\x57\x50\x2f\x64\x52\x38\x6b\x4f\x42\x75\x6c\x63\x54\x33\x78\x64\x4a\x47','\x57\x35\x34\x39\x57\x37\x68\x64\x4d\x6d\x6b\x53','\x57\x52\x4e\x64\x48\x59\x6d','\x41\x6d\x6b\x38\x41\x6d\x6f\x62\x57\x37\x6c\x64\x54\x6d\x6b\x58','\x57\x36\x2f\x64\x4b\x6d\x6b\x47\x6c\x6d\x6b\x44','\x57\x35\x65\x59\x57\x34\x48\x77\x57\x50\x65','\x57\x50\x78\x64\x4d\x53\x6b\x66\x7a\x77\x43','\x57\x50\x61\x7a\x57\x35\x76\x38\x6e\x38\x6f\x58\x57\x4f\x48\x45','\x73\x43\x6f\x5a\x62\x38\x6b\x4e\x76\x57','\x62\x38\x6b\x6f\x64\x49\x4e\x64\x4c\x43\x6b\x74\x79\x58\x75','\x57\x4f\x33\x63\x47\x43\x6b\x6e\x57\x37\x75\x59','\x70\x43\x6f\x62\x45\x48\x4a\x63\x54\x71','\x64\x38\x6b\x31\x57\x51\x57\x6f\x6d\x57','\x71\x66\x79\x47\x57\x50\x72\x79\x57\x37\x70\x64\x4b\x33\x71','\x6f\x6d\x6f\x71\x72\x58\x5a\x63\x53\x61','\x72\x49\x37\x63\x53\x6d\x6b\x69\x57\x36\x76\x34\x57\x51\x52\x63\x54\x38\x6f\x56\x57\x36\x75\x6d\x57\x50\x4c\x5a\x69\x57','\x77\x67\x75\x56\x62\x4c\x57','\x69\x62\x50\x43\x6b\x43\x6b\x2f\x43\x43\x6b\x49\x57\x35\x66\x6e\x57\x36\x4a\x64\x4e\x73\x53','\x6c\x38\x6b\x45\x57\x34\x50\x61\x65\x71','\x57\x52\x52\x64\x51\x6d\x6b\x51\x68\x4b\x69','\x6d\x53\x6f\x73\x41\x48\x61','\x57\x52\x34\x56\x67\x4b\x57','\x57\x51\x71\x48\x62\x30\x4f','\x57\x4f\x4a\x64\x47\x43\x6b\x67\x46\x67\x43','\x57\x37\x2f\x63\x4d\x68\x46\x63\x4a\x4d\x4c\x6e\x73\x33\x74\x63\x50\x71','\x65\x38\x6b\x68\x61\x63\x52\x64\x4c\x57','\x46\x6d\x6f\x56\x57\x36\x35\x70\x63\x67\x6d\x66\x57\x36\x6d','\x73\x53\x6b\x6c\x71\x38\x6b\x30\x57\x50\x30\x77\x57\x52\x66\x46','\x57\x52\x37\x64\x4a\x64\x6d','\x57\x52\x74\x63\x4c\x62\x52\x63\x54\x57\x79\x58\x42\x53\x6f\x61','\x57\x52\x33\x64\x51\x73\x4a\x63\x50\x76\x39\x64\x73\x30\x34','\x6e\x43\x6b\x36\x57\x51\x79\x79\x6b\x61','\x57\x50\x52\x64\x52\x58\x4a\x63\x4d\x33\x7a\x4d\x7a\x78\x47','\x57\x4f\x52\x64\x52\x68\x74\x64\x4e\x6d\x6f\x6b','\x6e\x38\x6f\x70\x42\x62\x2f\x64\x52\x38\x6f\x32\x73\x72\x71','\x57\x4f\x57\x64\x57\x37\x54\x6d\x6d\x6d\x6f\x31\x57\x4f\x6e\x57','\x75\x6d\x6b\x44\x77\x53\x6b\x55\x57\x50\x69\x74\x57\x52\x66\x4c','\x67\x6d\x6b\x70\x63\x53\x6b\x4d\x57\x52\x6d\x6d\x42\x53\x6b\x79','\x57\x50\x4a\x63\x4a\x53\x6b\x68\x57\x37\x53\x76','\x6c\x66\x47\x44\x57\x50\x4a\x64\x4e\x6d\x6b\x4a\x57\x34\x4b','\x62\x53\x6b\x64\x64\x4e\x46\x63\x4b\x6d\x6f\x65','\x57\x4f\x78\x64\x51\x53\x6b\x4b\x67\x76\x71','\x57\x50\x64\x64\x47\x4b\x56\x64\x48\x53\x6f\x47','\x61\x38\x6b\x68\x57\x50\x47\x38\x6d\x6d\x6f\x78\x61\x48\x61','\x43\x6d\x6f\x53\x57\x36\x50\x43\x68\x76\x4b\x45\x57\x37\x71','\x71\x38\x6f\x6d\x57\x4f\x75','\x6b\x72\x75\x72\x6b\x61\x4f','\x62\x68\x75\x2f\x57\x34\x38\x53','\x57\x52\x38\x6b\x65\x5a\x37\x64\x53\x57','\x77\x43\x6f\x6d\x57\x50\x31\x39\x65\x57','\x66\x6d\x6b\x6e\x57\x52\x47\x37\x6b\x38\x6f\x43\x61\x62\x69','\x57\x35\x4c\x53\x76\x6d\x6b\x6e\x6f\x53\x6b\x31\x57\x34\x75\x78','\x73\x6d\x6b\x4d\x65\x6d\x6f\x41\x57\x36\x33\x63\x4e\x57\x30\x6e','\x41\x53\x6b\x33\x6f\x64\x4a\x64\x49\x71','\x61\x43\x6b\x63\x6c\x49\x46\x64\x4b\x6d\x6b\x62\x43\x49\x4b','\x77\x6d\x6f\x49\x76\x32\x78\x63\x51\x43\x6f\x49\x66\x43\x6f\x42','\x57\x4f\x78\x64\x4d\x43\x6b\x45\x66\x4b\x68\x64\x49\x57','\x46\x65\x57\x55\x64\x4d\x56\x63\x53\x6d\x6b\x6d\x57\x34\x6d','\x57\x52\x74\x64\x55\x43\x6b\x34\x6f\x47','\x65\x76\x68\x63\x4d\x72\x30\x53\x57\x4f\x5a\x64\x56\x38\x6b\x37','\x57\x51\x79\x2f\x57\x50\x52\x64\x56\x43\x6b\x36','\x79\x78\x79\x6f\x57\x52\x76\x4c\x57\x34\x33\x64\x51\x76\x71','\x57\x51\x35\x32\x44\x4c\x52\x64\x52\x53\x6f\x30','\x45\x43\x6b\x37\x71\x6d\x6f\x72\x57\x34\x69','\x57\x35\x78\x63\x47\x6d\x6b\x30\x57\x52\x61\x31\x78\x57','\x57\x52\x4e\x64\x4c\x43\x6b\x6f\x72\x77\x33\x63\x4b\x33\x78\x64\x51\x61','\x72\x53\x6f\x49\x57\x34\x44\x50\x62\x47','\x7a\x30\x79\x5a\x70\x4d\x74\x63\x50\x38\x6b\x41','\x62\x38\x6f\x73\x57\x4f\x44\x75','\x57\x4f\x61\x75\x66\x57','\x57\x4f\x42\x63\x4f\x43\x6b\x2b\x57\x35\x57\x4e','\x65\x38\x6b\x68\x57\x50\x4b\x35\x70\x6d\x6f\x68\x6d\x72\x4f','\x57\x50\x48\x48\x6b\x43\x6b\x57\x57\x50\x61','\x57\x51\x35\x36\x45\x65\x79','\x62\x78\x56\x64\x50\x43\x6f\x79\x57\x50\x53\x4e\x57\x37\x46\x64\x4f\x71','\x75\x38\x6b\x65\x6f\x4a\x2f\x64\x54\x43\x6b\x73\x6a\x53\x6b\x38','\x57\x4f\x47\x57\x57\x34\x39\x71\x57\x4f\x30','\x6a\x4d\x4a\x64\x4c\x53\x6f\x39\x57\x50\x6d','\x70\x4b\x65\x75\x57\x36\x6d\x4e','\x6f\x38\x6b\x4a\x63\x6d\x6b\x72\x57\x51\x53','\x78\x38\x6f\x78\x57\x50\x62\x61\x6a\x53\x6f\x66\x66\x53\x6f\x33','\x45\x65\x4f\x5a\x69\x4d\x68\x63\x56\x38\x6b\x79','\x64\x38\x6f\x5a\x57\x4f\x56\x63\x54\x76\x47','\x57\x51\x5a\x64\x55\x38\x6b\x4e\x77\x78\x75','\x57\x52\x4b\x49\x57\x36\x6e\x51\x67\x6d\x6f\x72\x57\x52\x6e\x4d','\x57\x51\x35\x32\x73\x66\x52\x64\x51\x6d\x6f\x34\x67\x74\x71','\x62\x76\x68\x63\x47\x72\x61\x4d\x57\x4f\x46\x64\x48\x57','\x57\x50\x42\x64\x4b\x53\x6b\x51\x43\x67\x4f','\x57\x37\x5a\x64\x53\x38\x6b\x66\x66\x43\x6b\x37','\x73\x38\x6f\x38\x75\x77\x78\x63\x4d\x6d\x6f\x33','\x57\x51\x68\x64\x4e\x59\x78\x63\x4c\x66\x48\x6a\x74\x31\x71','\x70\x6d\x6f\x49\x72\x4a\x37\x63\x4b\x61','\x7a\x53\x6b\x6a\x61\x72\x4a\x64\x4a\x6d\x6b\x36\x61\x38\x6b\x43','\x74\x43\x6b\x43\x44\x43\x6b\x51','\x7a\x53\x6b\x6b\x7a\x6d\x6f\x75\x57\x36\x61','\x57\x37\x76\x57\x57\x36\x5a\x63\x4f\x6d\x6f\x4e\x57\x35\x71\x68\x6f\x6d\x6f\x73\x57\x4f\x79\x73\x68\x71','\x71\x67\x4f\x72\x57\x51\x6d','\x6d\x57\x34\x77\x65\x62\x79','\x57\x4f\x6c\x63\x51\x6d\x6b\x58\x57\x35\x4b\x5a','\x57\x51\x38\x53\x67\x73\x74\x64\x4e\x47','\x68\x4b\x30\x66\x57\x35\x65\x68','\x79\x53\x6b\x36\x68\x71\x6c\x64\x49\x32\x6c\x64\x4a\x57','\x57\x50\x4a\x63\x47\x38\x6b\x39\x57\x35\x42\x63\x53\x61','\x57\x35\x79\x37\x76\x6d\x6f\x31\x57\x37\x57\x30\x57\x4f\x52\x64\x50\x43\x6b\x38\x77\x4e\x38\x37\x57\x52\x47','\x57\x4f\x4f\x6a\x57\x35\x6d','\x57\x4f\x33\x64\x54\x38\x6b\x65\x71\x77\x6d','\x57\x51\x4a\x64\x48\x77\x56\x64\x53\x43\x6f\x39','\x57\x4f\x7a\x2b\x67\x38\x6b\x38\x57\x51\x43','\x57\x4f\x68\x64\x49\x6d\x6b\x50\x78\x31\x64\x63\x4b\x38\x6b\x39\x73\x71','\x67\x48\x53\x6e\x65\x63\x39\x6b\x67\x43\x6f\x46','\x57\x52\x48\x6e\x70\x6d\x6b\x30\x57\x52\x61','\x57\x50\x56\x63\x48\x53\x6b\x6a\x57\x35\x4a\x63\x4e\x71','\x69\x38\x6b\x49\x6f\x49\x74\x64\x56\x61','\x63\x53\x6b\x42\x6f\x38\x6b\x61\x57\x50\x65','\x42\x6d\x6f\x68\x6f\x38\x6b\x5a\x74\x66\x4a\x63\x50\x61\x79','\x6b\x66\x75\x68\x57\x51\x70\x64\x55\x57','\x68\x53\x6b\x4c\x57\x37\x4b','\x57\x52\x6c\x64\x4a\x30\x4e\x63\x49\x6d\x6f\x4d','\x45\x43\x6f\x37\x57\x52\x58\x4a\x62\x61','\x66\x31\x33\x63\x47\x71','\x57\x35\x6d\x51\x57\x35\x48\x45\x57\x50\x44\x74','\x6e\x53\x6b\x57\x57\x34\x6d','\x57\x50\x30\x45\x61\x74\x78\x64\x4b\x53\x6f\x4e','\x74\x6d\x6b\x4d\x67\x53\x6f\x45\x57\x34\x46\x63\x48\x4a\x43\x75','\x75\x53\x6f\x45\x57\x4f\x58\x50\x42\x57','\x57\x52\x4e\x64\x4e\x5a\x78\x63\x55\x31\x7a\x7a\x73\x71','\x57\x52\x79\x44\x6f\x78\x76\x34','\x57\x51\x61\x72\x67\x4b\x54\x35\x61\x47\x48\x4f','\x6b\x48\x78\x64\x51\x78\x78\x63\x4e\x57','\x71\x38\x6f\x4e\x57\x50\x54\x33\x46\x61','\x73\x53\x6b\x30\x6c\x72\x56\x64\x50\x47','\x70\x43\x6b\x38\x57\x34\x6e\x68\x6a\x67\x64\x64\x48\x4d\x57','\x43\x38\x6f\x65\x65\x6d\x6b\x4c\x77\x57','\x79\x33\x69\x43\x57\x51\x54\x54\x57\x35\x4a\x64\x51\x72\x30','\x57\x52\x35\x2f\x46\x4b\x33\x64\x4f\x38\x6f\x4f\x6a\x5a\x79','\x75\x53\x6b\x74\x69\x5a\x4a\x64\x50\x30\x56\x64\x56\x57','\x75\x43\x6b\x64\x46\x43\x6b\x4b\x57\x51\x57\x6a\x57\x51\x62\x31','\x72\x32\x38\x57\x74\x38\x6f\x6e\x62\x6d\x6b\x49\x57\x37\x79','\x79\x67\x43\x45\x57\x52\x6a\x34\x57\x34\x5a\x64\x4d\x31\x4b','\x57\x4f\x6c\x63\x4e\x43\x6b\x30\x57\x37\x68\x63\x4d\x61','\x57\x52\x5a\x64\x4b\x5a\x2f\x64\x4e\x78\x61','\x57\x51\x68\x63\x4b\x53\x6b\x75','\x63\x48\x38\x69\x65\x48\x6e\x63\x69\x38\x6f\x63','\x66\x53\x6b\x68\x62\x49\x64\x64\x49\x38\x6b\x67\x73\x62\x71','\x74\x43\x6f\x71\x57\x52\x58\x7a\x73\x59\x75\x72\x57\x50\x61','\x57\x52\x52\x63\x4c\x53\x6b\x7a\x57\x34\x52\x63\x56\x53\x6b\x57\x6d\x73\x30','\x6e\x66\x47\x6e\x57\x52\x46\x64\x47\x6d\x6b\x31\x57\x35\x35\x72','\x57\x50\x6a\x44\x64\x38\x6b\x65\x57\x4f\x57','\x46\x66\x38\x6e\x71\x38\x6f\x50\x6c\x6d\x6b\x72\x57\x34\x57','\x67\x38\x6f\x2b\x57\x4f\x7a\x7a\x57\x4f\x47','\x7a\x31\x34\x44\x44\x43\x6f\x49\x6c\x57','\x73\x4b\x79\x55\x6a\x57','\x6c\x75\x71\x36\x57\x4f\x37\x64\x50\x57','\x6b\x53\x6b\x4a\x57\x35\x39\x61\x64\x77\x74\x64\x4c\x5a\x75','\x61\x61\x6c\x64\x4f\x33\x68\x63\x53\x57','\x57\x4f\x37\x63\x50\x38\x6b\x58\x57\x35\x4e\x63\x52\x47','\x42\x53\x6b\x48\x64\x43\x6f\x30\x57\x34\x34','\x6b\x6d\x6b\x32\x57\x52\x53\x68\x75\x64\x43\x44\x57\x36\x65\x75\x57\x50\x33\x63\x51\x38\x6f\x57','\x62\x53\x6b\x38\x57\x35\x6a\x2b\x68\x47','\x45\x6d\x6f\x76\x43\x61','\x44\x30\x75\x62\x42\x38\x6f\x34\x6f\x53\x6b\x64\x57\x34\x4f','\x57\x52\x56\x64\x4c\x5a\x78\x64\x55\x65\x46\x63\x47\x43\x6f\x6e','\x68\x32\x56\x64\x50\x53\x6f\x4a\x57\x51\x38\x4e\x57\x36\x4a\x64\x52\x57','\x57\x4f\x53\x79\x57\x35\x7a\x78\x66\x6d\x6f\x50\x57\x50\x39\x71','\x57\x52\x70\x63\x56\x43\x6b\x6c\x57\x37\x47\x79\x74\x43\x6f\x45\x6b\x57','\x6a\x43\x6b\x39\x57\x35\x50\x30\x64\x71','\x57\x36\x33\x64\x48\x43\x6b\x64\x69\x38\x6b\x39\x45\x53\x6b\x41\x67\x71','\x57\x51\x46\x64\x53\x43\x6b\x6c\x79\x32\x52\x63\x53\x38\x6b\x42\x43\x57','\x57\x34\x48\x38\x73\x6d\x6f\x76\x70\x38\x6b\x35\x57\x34\x6d\x4a','\x6f\x32\x56\x63\x55\x74\x65\x44\x57\x52\x52\x64\x51\x43\x6b\x65','\x43\x6d\x6b\x63\x57\x35\x46\x64\x55\x57\x33\x64\x49\x53\x6f\x61\x57\x36\x37\x64\x53\x53\x6b\x50\x42\x43\x6b\x33\x57\x50\x78\x63\x4b\x57','\x70\x38\x6b\x6e\x61\x59\x6c\x64\x53\x61','\x71\x43\x6b\x44\x75\x43\x6f\x54\x57\x34\x4e\x64\x4e\x6d\x6b\x62\x66\x57','\x57\x35\x31\x6e\x77\x78\x78\x63\x48\x38\x6b\x35\x57\x35\x78\x63\x56\x4d\x78\x64\x4f\x4e\x79\x4e\x57\x35\x38','\x66\x38\x6b\x63\x61\x71','\x76\x6d\x6b\x79\x64\x49\x56\x64\x4d\x47','\x57\x37\x78\x63\x51\x38\x6f\x73\x6a\x74\x6c\x64\x4f\x43\x6f\x43\x69\x6d\x6f\x33\x71\x6d\x6b\x76\x57\x52\x78\x63\x52\x53\x6f\x79','\x64\x31\x71\x62\x57\x4f\x53','\x57\x36\x38\x5a\x57\x35\x35\x54\x57\x4f\x79','\x57\x52\x4a\x64\x50\x59\x4e\x64\x55\x66\x69','\x57\x35\x50\x50\x73\x53\x6f\x70\x6c\x57','\x77\x53\x6b\x63\x44\x43\x6b\x49\x57\x50\x69\x6f','\x63\x43\x6b\x6d\x57\x4f\x34\x71\x6b\x38\x6f\x71\x68\x57\x61','\x57\x36\x74\x63\x53\x63\x33\x63\x50\x61\x43\x33\x46\x61','\x57\x37\x52\x64\x47\x53\x6b\x46\x70\x47','\x6d\x53\x6b\x31\x57\x52\x4b\x42\x68\x71','\x73\x53\x6b\x41\x42\x53\x6b\x55\x57\x50\x69\x44','\x57\x52\x56\x64\x4c\x65\x4a\x63\x47\x53\x6f\x4d\x70\x6d\x6b\x43\x57\x51\x79','\x57\x37\x78\x63\x52\x6d\x6b\x73\x76\x67\x4e\x63\x50\x6d\x6b\x4c\x45\x61','\x74\x38\x6f\x67\x57\x4f\x6a\x68\x68\x6d\x6f\x45\x66\x6d\x6f\x58','\x43\x6d\x6b\x38\x71\x53\x6f\x52\x57\x36\x75','\x57\x52\x4f\x6d\x6b\x76\x62\x61','\x57\x37\x74\x64\x48\x53\x6b\x56\x6e\x32\x42\x64\x49\x43\x6b\x70','\x6f\x67\x30\x48','\x69\x6d\x6b\x55\x6e\x6d\x6b\x49\x57\x50\x75','\x62\x43\x6b\x75\x57\x4f\x71\x4a\x6c\x38\x6f\x71\x68\x63\x4f','\x74\x38\x6f\x34\x42\x33\x5a\x63\x55\x57','\x57\x50\x76\x4f\x64\x38\x6b\x47\x57\x51\x50\x59\x57\x35\x2f\x64\x48\x57','\x57\x51\x37\x64\x4a\x49\x70\x63\x4e\x4c\x69','\x62\x53\x6b\x6b\x61\x5a\x68\x64\x52\x6d\x6b\x77','\x6b\x66\x53\x43\x57\x50\x56\x64\x4f\x57','\x57\x52\x2f\x64\x47\x31\x74\x64\x4d\x43\x6f\x4a','\x46\x65\x30\x4e','\x57\x50\x6c\x64\x52\x6d\x6b\x31\x76\x30\x52\x63\x51\x4b\x42\x64\x4e\x71','\x57\x51\x68\x63\x49\x61\x33\x63\x52\x47\x6d\x4b\x41\x38\x6f\x38','\x76\x38\x6f\x58\x6f\x43\x6b\x42\x79\x77\x78\x63\x4d\x73\x57','\x57\x52\x52\x63\x48\x43\x6b\x76\x57\x35\x4e\x63\x50\x53\x6b\x69\x69\x47\x38','\x73\x6d\x6b\x59\x44\x53\x6f\x6d\x57\x37\x70\x64\x52\x47','\x57\x50\x52\x64\x4b\x5a\x74\x64\x53\x77\x4f','\x57\x4f\x30\x51\x6b\x47\x70\x64\x49\x61','\x57\x50\x4e\x63\x53\x53\x6b\x4c\x57\x37\x78\x63\x49\x38\x6b\x42\x63\x5a\x53','\x44\x43\x6b\x70\x41\x48\x52\x63\x54\x38\x6f\x41\x75\x58\x75','\x57\x52\x4a\x63\x4e\x53\x6b\x7a\x57\x35\x69','\x66\x6d\x6b\x48\x57\x35\x54\x54\x64\x74\x72\x4d\x43\x61','\x57\x4f\x54\x4d\x62\x43\x6b\x52','\x57\x34\x64\x63\x49\x6d\x6b\x36\x57\x52\x69\x31\x78\x33\x4e\x64\x49\x57','\x57\x34\x48\x38\x74\x53\x6f\x78\x70\x38\x6b\x30\x57\x34\x65\x70','\x6f\x6d\x6f\x73\x41\x48\x78\x63\x54\x43\x6f\x35\x43\x48\x79','\x57\x34\x44\x43\x57\x36\x5a\x63\x50\x63\x78\x64\x4d\x43\x6b\x47\x57\x50\x47','\x6f\x53\x6f\x65\x57\x4f\x31\x73\x57\x50\x56\x63\x51\x77\x42\x63\x52\x57','\x57\x4f\x65\x67\x57\x34\x66\x35\x65\x61','\x6f\x4e\x64\x63\x4c\x72\x47\x67','\x6c\x4d\x79\x4c\x57\x34\x57\x5a\x57\x36\x31\x71\x63\x61','\x57\x52\x7a\x59\x44\x67\x5a\x64\x4d\x57','\x57\x51\x68\x63\x49\x61\x33\x63\x51\x72\x71\x6c\x41\x38\x6f\x38','\x6f\x38\x6b\x54\x69\x43\x6b\x69\x57\x50\x38\x51\x76\x6d\x6f\x47','\x57\x35\x4c\x62\x57\x37\x37\x63\x4f\x58\x2f\x64\x4a\x53\x6b\x50','\x57\x51\x6d\x57\x57\x52\x70\x64\x48\x38\x6b\x57\x57\x4f\x4f\x67\x6c\x57','\x57\x51\x52\x64\x4a\x5a\x74\x63\x55\x66\x62\x69\x71\x66\x34','\x67\x48\x68\x64\x56\x33\x74\x63\x54\x57','\x79\x38\x6b\x72\x72\x53\x6f\x39\x57\x36\x43','\x61\x43\x6b\x6d\x57\x50\x38\x4d\x62\x53\x6f\x75\x64\x61\x61','\x78\x6d\x6b\x63\x6c\x53\x6f\x53\x57\x36\x34','\x57\x37\x62\x54\x57\x36\x46\x63\x48\x48\x4b','\x64\x38\x6b\x57\x63\x38\x6b\x31\x79\x68\x37\x63\x50\x59\x43','\x57\x52\x42\x64\x48\x38\x6b\x33\x65\x78\x71','\x65\x67\x4e\x64\x53\x38\x6f\x66\x57\x52\x34','\x57\x51\x79\x50\x6f\x77\x31\x42','\x75\x6d\x6f\x32\x74\x4e\x4a\x63\x47\x61','\x64\x6d\x6b\x6e\x57\x4f\x47\x55\x6e\x43\x6b\x79\x63\x48\x61','\x65\x38\x6b\x78\x57\x51\x6d\x61\x66\x61','\x57\x52\x65\x4a\x57\x4f\x56\x64\x51\x38\x6b\x59\x57\x4f\x4b\x46\x61\x61','\x57\x51\x5a\x64\x48\x64\x68\x63\x4a\x76\x62\x65\x73\x31\x34','\x57\x4f\x37\x64\x50\x53\x6b\x47\x7a\x66\x5a\x63\x4f\x4c\x37\x64\x4b\x61','\x57\x35\x62\x68\x57\x36\x70\x63\x51\x72\x53','\x57\x51\x74\x64\x4f\x65\x52\x64\x53\x47','\x74\x53\x6b\x30\x65\x5a\x4a\x64\x56\x43\x6b\x73\x6e\x43\x6b\x53','\x57\x4f\x53\x56\x57\x52\x42\x64\x49\x53\x6b\x32','\x57\x51\x6c\x64\x4a\x63\x61','\x45\x6d\x6b\x47\x73\x6d\x6b\x6f\x57\x51\x6d\x37\x57\x4f\x44\x76','\x6c\x65\x47\x62\x57\x4f\x5a\x64\x4d\x53\x6b\x2b\x57\x34\x53','\x57\x36\x54\x42\x57\x36\x4a\x63\x4f\x47\x64\x64\x49\x43\x6b\x54\x57\x50\x34','\x57\x51\x70\x64\x55\x43\x6b\x30\x6c\x33\x52\x64\x51\x47','\x6c\x32\x79\x32\x57\x35\x34\x71\x57\x37\x7a\x4a\x61\x47','\x43\x43\x6f\x30\x57\x36\x7a\x79\x66\x4d\x38\x66\x57\x37\x38','\x42\x53\x6f\x75\x57\x4f\x76\x38\x46\x57','\x57\x35\x56\x63\x48\x6d\x6b\x4c','\x57\x4f\x4e\x63\x4c\x6d\x6b\x47\x57\x36\x52\x63\x4a\x61','\x78\x6d\x6f\x52\x65\x71','\x57\x37\x37\x64\x4d\x6d\x6b\x4c\x62\x43\x6b\x63\x44\x53\x6b\x70\x63\x61','\x57\x52\x70\x64\x51\x53\x6b\x48\x6b\x57','\x7a\x38\x6b\x64\x69\x6d\x6f\x4e','\x57\x52\x30\x48\x67\x31\x7a\x4f\x6f\x61','\x57\x4f\x6e\x2b\x68\x43\x6b\x6d\x57\x50\x75','\x6d\x38\x6f\x76\x42\x73\x56\x63\x53\x53\x6f\x35\x73\x61\x30','\x57\x37\x5a\x64\x53\x38\x6b\x6d\x43\x65\x70\x63\x56\x6d\x6b\x63','\x57\x35\x33\x63\x55\x38\x6b\x41\x57\x50\x71\x79','\x57\x36\x2f\x64\x4d\x43\x6b\x79\x6a\x71','\x57\x34\x2f\x64\x52\x53\x6b\x32\x70\x6d\x6b\x33','\x7a\x4b\x4f\x36\x6e\x61','\x57\x51\x70\x64\x49\x31\x46\x63\x48\x53\x6f\x64','\x62\x43\x6b\x45\x68\x63\x30','\x57\x35\x74\x63\x51\x38\x6f\x50\x6a\x47\x46\x64\x51\x47\x68\x63\x4b\x71','\x57\x37\x52\x63\x48\x43\x6b\x32\x57\x52\x79\x35','\x6c\x77\x57\x71\x57\x37\x75\x4c','\x57\x4f\x52\x64\x52\x62\x70\x64\x47\x78\x46\x63\x53\x38\x6f\x51\x57\x34\x6d','\x76\x38\x6b\x59\x6a\x4a\x4b','\x57\x50\x47\x45\x65\x4a\x74\x64\x4d\x6d\x6f\x47\x57\x4f\x34','\x57\x36\x74\x64\x4a\x53\x6b\x62','\x69\x43\x6f\x5a\x71\x4a\x56\x63\x51\x47','\x43\x75\x79\x4d\x6d\x68\x33\x63\x56\x43\x6b\x6c','\x57\x36\x35\x62\x44\x38\x6f\x30\x6a\x57','\x66\x62\x57\x59\x65\x59\x30','\x72\x6d\x6b\x4f\x6f\x74\x33\x64\x54\x53\x6b\x79\x6e\x43\x6b\x61','\x66\x66\x52\x63\x4d\x58\x30\x71\x57\x4f\x4a\x64\x47\x53\x6b\x2b','\x57\x50\x68\x63\x4f\x61\x52\x63\x47\x63\x79','\x57\x4f\x43\x69\x6a\x49\x37\x64\x4e\x43\x6f\x51','\x57\x52\x4e\x64\x4f\x67\x4e\x64\x4d\x6d\x6f\x51','\x57\x52\x6c\x64\x52\x6d\x6b\x4e\x7a\x33\x53','\x57\x34\x46\x63\x4a\x53\x6b\x75\x57\x4f\x38\x46\x41\x66\x6c\x64\x49\x71','\x57\x4f\x57\x48\x62\x78\x35\x54','\x45\x38\x6b\x68\x46\x53\x6b\x72\x57\x52\x6d','\x42\x31\x65\x32\x69\x65\x6d','\x57\x4f\x78\x64\x4e\x43\x6b\x63\x65\x4b\x2f\x64\x4c\x43\x6b\x42\x57\x51\x47','\x70\x38\x6b\x62\x57\x34\x50\x6c\x6e\x47','\x57\x37\x5a\x64\x4d\x6d\x6b\x43\x64\x38\x6b\x55','\x57\x51\x47\x55\x57\x52\x37\x64\x47\x6d\x6b\x4c','\x77\x6d\x6f\x6d\x57\x4f\x6d','\x61\x38\x6b\x4f\x65\x64\x64\x64\x56\x75\x33\x64\x52\x71','\x57\x51\x44\x48\x79\x76\x4e\x64\x48\x47','\x6b\x38\x6f\x61\x57\x4f\x33\x63\x55\x76\x71','\x57\x51\x39\x62\x42\x33\x68\x64\x51\x57','\x74\x43\x6b\x41\x45\x43\x6b\x30\x57\x4f\x47\x46\x57\x51\x65','\x57\x52\x52\x63\x48\x43\x6b\x76\x57\x35\x4e\x63\x50\x53\x6b\x68\x6f\x57\x30','\x57\x51\x56\x63\x4c\x6d\x6b\x7a\x57\x34\x37\x63\x51\x53\x6b\x35\x69\x63\x61','\x66\x68\x6c\x64\x50\x43\x6f\x76\x57\x52\x61\x52\x57\x37\x38','\x78\x53\x6b\x69\x6c\x64\x74\x64\x55\x68\x68\x64\x54\x6d\x6b\x53','\x57\x50\x2f\x64\x52\x71\x37\x63\x4e\x68\x43','\x43\x38\x6b\x4e\x7a\x6d\x6f\x71\x57\x34\x78\x64\x50\x6d\x6b\x54\x69\x71','\x46\x6d\x6b\x34\x75\x38\x6b\x6c\x57\x51\x4f\x2f\x57\x50\x44\x46','\x57\x52\x64\x64\x55\x43\x6b\x49\x6a\x33\x46\x64\x4c\x43\x6b\x52\x57\x4f\x4f','\x7a\x53\x6f\x43\x57\x4f\x6e\x6d\x73\x4a\x38','\x45\x53\x6f\x34\x57\x37\x6e\x71\x66\x4e\x69\x63','\x72\x4e\x61\x44\x43\x38\x6f\x49','\x57\x34\x70\x63\x49\x43\x6b\x45\x57\x52\x6d\x79','\x57\x37\x43\x35\x57\x35\x35\x69\x57\x50\x4b','\x77\x53\x6b\x62\x43\x53\x6b\x5a\x57\x50\x30\x74\x57\x51\x54\x4c','\x66\x72\x4f\x34\x68\x47\x38','\x57\x51\x2f\x63\x53\x6d\x6b\x46\x43\x4d\x56\x63\x55\x47','\x74\x67\x34\x4c\x61\x68\x65','\x57\x36\x56\x64\x4d\x43\x6b\x79\x70\x38\x6b\x73\x72\x6d\x6b\x7a\x64\x57','\x6d\x43\x6f\x68\x57\x50\x68\x63\x56\x31\x52\x63\x4a\x38\x6b\x75','\x57\x51\x7a\x36\x68\x6d\x6b\x64\x57\x4f\x43','\x62\x53\x6f\x6e\x45\x4d\x68\x63\x53\x48\x5a\x63\x51\x38\x6b\x73\x6f\x4e\x75\x65\x6d\x73\x34','\x57\x50\x34\x78\x61\x74\x70\x64\x4c\x38\x6f\x47\x57\x50\x6c\x63\x49\x57','\x57\x52\x33\x64\x52\x4c\x33\x64\x56\x6d\x6f\x67\x71\x6d\x6b\x48\x78\x71','\x67\x68\x34\x41\x57\x4f\x6c\x64\x4e\x71','\x57\x52\x52\x64\x47\x6d\x6b\x30\x6d\x31\x30','\x6b\x6d\x6b\x38\x63\x53\x6b\x6c\x57\x4f\x38','\x6b\x33\x34\x76\x57\x51\x6e\x6a\x57\x35\x78\x64\x4f\x71','\x57\x51\x30\x31\x6d\x49\x5a\x64\x4f\x61','\x41\x32\x75\x4e\x57\x50\x44\x69','\x6c\x38\x6f\x70\x72\x49\x46\x63\x4a\x53\x6f\x70\x74\x47\x4b','\x67\x78\x68\x64\x4f\x6d\x6f\x7a\x57\x50\x71\x51','\x57\x51\x68\x64\x51\x4c\x79','\x57\x4f\x58\x47\x68\x38\x6b\x32\x57\x51\x31\x4f\x57\x35\x30','\x57\x52\x70\x64\x4f\x38\x6b\x53\x42\x74\x56\x63\x53\x57','\x45\x75\x79\x30\x6f\x67\x46\x63\x56\x38\x6b\x47\x57\x34\x53','\x6e\x32\x65\x45\x57\x35\x61\x33','\x6e\x32\x53\x39\x57\x36\x69\x47','\x74\x53\x6b\x6e\x65\x38\x6f\x37\x57\x37\x79','\x57\x34\x43\x59\x57\x36\x71','\x77\x6d\x6b\x6d\x62\x64\x4a\x64\x50\x65\x46\x64\x52\x38\x6b\x4e','\x57\x4f\x46\x64\x55\x6d\x6b\x39\x67\x75\x30','\x77\x53\x6b\x2f\x76\x53\x6b\x64\x57\x4f\x75','\x57\x51\x65\x5a\x57\x36\x66\x4d\x66\x43\x6f\x64\x57\x52\x48\x38','\x57\x52\x70\x63\x49\x58\x52\x63\x51\x62\x75\x47\x45\x6d\x6f\x4d','\x57\x51\x2f\x64\x48\x5a\x68\x64\x4f\x75\x56\x63\x4c\x57','\x7a\x43\x6b\x38\x6e\x72\x33\x64\x55\x71','\x57\x37\x72\x30\x57\x36\x74\x64\x4e\x43\x6b\x64\x57\x4f\x69\x6d\x65\x6d\x6f\x38','\x57\x37\x2f\x63\x49\x47\x33\x64\x47\x57','\x43\x38\x6b\x4e\x44\x38\x6f\x6e\x57\x37\x4a\x64\x55\x47','\x57\x4f\x69\x75\x64\x5a\x46\x64\x4b\x38\x6f\x55\x57\x4f\x70\x63\x4a\x71','\x41\x53\x6b\x38\x42\x6d\x6f\x6b','\x57\x36\x64\x64\x4c\x43\x6b\x4c\x70\x6d\x6b\x53','\x7a\x68\x53\x6c\x57\x51\x4c\x2b','\x44\x77\x79\x30\x57\x52\x48\x6f','\x65\x53\x6b\x48\x57\x34\x6a\x32\x62\x4a\x66\x33\x44\x61','\x57\x35\x6a\x51\x46\x6d\x6f\x6b\x6f\x53\x6b\x2f','\x41\x43\x6f\x68\x57\x4f\x4c\x38\x79\x61','\x57\x52\x5a\x63\x4e\x38\x6b\x78\x57\x34\x6c\x63\x56\x47','\x57\x52\x37\x64\x4a\x65\x2f\x63\x49\x71','\x57\x52\x62\x38\x43\x30\x33\x64\x4f\x71','\x57\x52\x50\x32\x7a\x76\x4a\x64\x56\x38\x6f\x31\x66\x49\x6d','\x6d\x38\x6f\x42\x57\x4f\x64\x63\x56\x61','\x6f\x61\x4e\x64\x4e\x31\x6c\x63\x4b\x71','\x78\x43\x6b\x50\x68\x57','\x57\x34\x70\x63\x4a\x38\x6b\x54\x57\x52\x66\x39\x76\x30\x4e\x64\x4d\x61','\x70\x4e\x46\x64\x50\x53\x6f\x55\x57\x52\x47','\x43\x66\x43\x4f\x70\x4d\x5a\x63\x4a\x53\x6b\x6c\x57\x34\x4b','\x76\x4b\x75\x57\x57\x4f\x58\x41\x57\x37\x52\x64\x4e\x4d\x38','\x65\x4c\x4f\x69\x57\x50\x33\x64\x54\x47','\x57\x51\x42\x64\x4d\x58\x78\x64\x4b\x75\x53'];_0x2203=function(){return _0x323927;};return _0x2203();}const _0x5d8e0f={};_0x5d8e0f[_0x69ccc5(0x1a4,'\x71\x53\x38\x53')+_0x69ccc5(0x1b7,'\x56\x62\x48\x40')]=_0xa3407b,_0x5d8e0f[_0x69ccc5(0x1f1,'\x77\x7a\x25\x79')+_0x69ccc5(0x228,'\x4b\x7a\x66\x51')+'\x4e']=_0xf96dc2,_0x5d8e0f['\x62\x75\x69\x6c\x64\x48\x65\x61'+_0x69ccc5(0x173,'\x51\x6f\x5e\x79')+_0x69ccc5(0x1b5,'\x29\x6b\x57\x35')+_0x69ccc5(0x12d,'\x79\x37\x67\x25')]=_0x5b27c1,_0x5d8e0f[_0x69ccc5(0x29a,'\x6b\x58\x51\x73')+_0x69ccc5(0x27d,'\x54\x7a\x4e\x55')+_0x69ccc5(0x24e,'\x31\x29\x24\x59')]=_0x684905,_0x5d8e0f[_0x69ccc5(0x207,'\x55\x6e\x61\x7a')+_0x69ccc5(0x273,'\x7a\x5d\x4d\x44')]=_0x14ac81,module[_0x69ccc5(0x2b7,'\x54\x7a\x4e\x55')]=_0x5d8e0f;
|
package/src/gep/assetStore.js
CHANGED
|
@@ -4,6 +4,7 @@ const { getGepAssetsDir, getBundledGepAssetsDir, getRepoRoot, getSessionScope }
|
|
|
4
4
|
const { computeAssetId, SCHEMA_VERSION } = require('./contentHash');
|
|
5
5
|
const { validateGene } = require('./schemas/gene');
|
|
6
6
|
const { validateCapsule } = require('./schemas/capsule');
|
|
7
|
+
const { validateSyncGene } = require('./syncAsset');
|
|
7
8
|
|
|
8
9
|
// Run validateGene/validateCapsule before persisting. Warn-only -- never throw
|
|
9
10
|
// because losing a write hurts more than persisting a slightly-malformed
|
|
@@ -271,6 +272,14 @@ function legacyGepAssetsDir() {
|
|
|
271
272
|
return baseDir;
|
|
272
273
|
}
|
|
273
274
|
|
|
275
|
+
function readOnlyRuntimeAssetPath(name) {
|
|
276
|
+
const target = path.join(getGepAssetsDir(), name);
|
|
277
|
+
if (fs.existsSync(target) || process.env.GEP_ASSETS_DIR) return target;
|
|
278
|
+
const legacy = path.join(legacyGepAssetsDir(), name);
|
|
279
|
+
if (path.resolve(target) !== path.resolve(legacy) && fs.existsSync(legacy)) return legacy;
|
|
280
|
+
return target;
|
|
281
|
+
}
|
|
282
|
+
|
|
274
283
|
function migrateLegacyRuntimeAssets() {
|
|
275
284
|
if (process.env.GEP_ASSETS_DIR) return;
|
|
276
285
|
const targetDir = getGepAssetsDir();
|
|
@@ -317,13 +326,19 @@ function ensureGenesSeeded() {
|
|
|
317
326
|
}
|
|
318
327
|
}
|
|
319
328
|
|
|
320
|
-
function
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
329
|
+
function _loadGenes(options) {
|
|
330
|
+
const readOnly = options && options.readOnly === true;
|
|
331
|
+
const shouldSeed = !options || options.seed !== false;
|
|
332
|
+
if (!readOnly && shouldSeed) ensureGenesSeeded();
|
|
333
|
+
let jsonPath = readOnly ? readOnlyRuntimeAssetPath('genes.json') : genesPath();
|
|
334
|
+
if (readOnly && !fs.existsSync(jsonPath)) {
|
|
335
|
+
const seed = fs.existsSync(genesSeedPath()) ? genesSeedPath() : bundledGenesPath();
|
|
336
|
+
if (fs.existsSync(seed)) jsonPath = seed;
|
|
337
|
+
}
|
|
338
|
+
const jsonGenes = readJsonIfExists(jsonPath, getDefaultGenes()).genes || [];
|
|
324
339
|
const jsonlGenes = [];
|
|
325
340
|
try {
|
|
326
|
-
const p = path.join(getGepAssetsDir(), 'genes.jsonl');
|
|
341
|
+
const p = readOnly ? readOnlyRuntimeAssetPath('genes.jsonl') : path.join(getGepAssetsDir(), 'genes.jsonl');
|
|
327
342
|
if (fs.existsSync(p)) {
|
|
328
343
|
const raw = fs.readFileSync(p, 'utf8');
|
|
329
344
|
raw.split('\n').forEach(line => {
|
|
@@ -355,11 +370,21 @@ function loadGenes(opts) {
|
|
|
355
370
|
return Array.from(unique.values());
|
|
356
371
|
}
|
|
357
372
|
|
|
358
|
-
function
|
|
359
|
-
|
|
373
|
+
function loadGenes(options) {
|
|
374
|
+
return _loadGenes({ readOnly: false, seed: !options || options.seed !== false });
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
function loadGenesReadOnly() {
|
|
378
|
+
return _loadGenes({ readOnly: true });
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
function _loadCapsules(options) {
|
|
382
|
+
const readOnly = options && options.readOnly === true;
|
|
383
|
+
const jsonPath = readOnly ? readOnlyRuntimeAssetPath('capsules.json') : capsulesPath();
|
|
384
|
+
const legacy = readJsonIfExists(jsonPath, getDefaultCapsules()).capsules || [];
|
|
360
385
|
const jsonlCapsules = [];
|
|
361
386
|
try {
|
|
362
|
-
const p = capsulesJsonlPath();
|
|
387
|
+
const p = readOnly ? readOnlyRuntimeAssetPath('capsules.jsonl') : capsulesJsonlPath();
|
|
363
388
|
if (fs.existsSync(p)) {
|
|
364
389
|
const raw = fs.readFileSync(p, 'utf8');
|
|
365
390
|
raw.split('\n').forEach(line => {
|
|
@@ -381,6 +406,14 @@ function loadCapsules() {
|
|
|
381
406
|
return Array.from(unique.values());
|
|
382
407
|
}
|
|
383
408
|
|
|
409
|
+
function loadCapsules() {
|
|
410
|
+
return _loadCapsules({ readOnly: false });
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
function loadCapsulesReadOnly() {
|
|
414
|
+
return _loadCapsules({ readOnly: true });
|
|
415
|
+
}
|
|
416
|
+
|
|
384
417
|
// Grow the tail chunk until it strictly contains the final newline-terminated
|
|
385
418
|
// line, then JSON.parse it. A single event embeds the full ValidationReport
|
|
386
419
|
// (up to ~4000 chars stdout + ~4000 chars stderr per command, plus blast
|
|
@@ -613,8 +646,8 @@ function recomputeAssetId(obj) {
|
|
|
613
646
|
return obj;
|
|
614
647
|
}
|
|
615
648
|
|
|
616
|
-
function
|
|
617
|
-
_validateAssetWarn('Gene',
|
|
649
|
+
function _upsertGene(geneObj, validatorFn) {
|
|
650
|
+
_validateAssetWarn('Gene', validatorFn, geneObj);
|
|
618
651
|
ensureSchemaFields(geneObj);
|
|
619
652
|
recomputeAssetId(geneObj);
|
|
620
653
|
ensureGenesSeeded();
|
|
@@ -627,6 +660,17 @@ function upsertGene(geneObj) {
|
|
|
627
660
|
});
|
|
628
661
|
}
|
|
629
662
|
|
|
663
|
+
function upsertGene(geneObj) {
|
|
664
|
+
return _upsertGene(geneObj, validateGene);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
// Hub sync payloads are prepared and validated by syncAsset.js. Keep that
|
|
668
|
+
// compatibility validator on this dedicated write path so Hub-only categories
|
|
669
|
+
// never weaken or produce warnings in the standard Gene persistence path.
|
|
670
|
+
function upsertSyncedGene(geneObj) {
|
|
671
|
+
return _upsertGene(geneObj, validateSyncGene);
|
|
672
|
+
}
|
|
673
|
+
|
|
630
674
|
function appendCapsule(capsuleObj) {
|
|
631
675
|
_validateAssetWarn('Capsule', validateCapsule, capsuleObj);
|
|
632
676
|
ensureSchemaFields(capsuleObj);
|
|
@@ -710,10 +754,10 @@ function ensureAssetFiles() {
|
|
|
710
754
|
}
|
|
711
755
|
|
|
712
756
|
module.exports = {
|
|
713
|
-
loadGenes, loadCapsules, readAllEvents, getLastEventId,
|
|
757
|
+
loadGenes, loadGenesReadOnly, loadCapsules, loadCapsulesReadOnly, readAllEvents, getLastEventId,
|
|
714
758
|
appendEventJsonl, appendCandidateJsonl, appendExternalCandidateJsonl,
|
|
715
759
|
readRecentCandidates, readRecentExternalCandidates,
|
|
716
|
-
upsertGene, appendCapsule, upsertCapsule,
|
|
760
|
+
upsertGene, upsertSyncedGene, appendCapsule, upsertCapsule,
|
|
717
761
|
appendFailedCapsule, readRecentFailedCapsules,
|
|
718
762
|
genesPath, capsulesPath, eventsPath, candidatesPath, externalCandidatesPath, failedCapsulesPath,
|
|
719
763
|
pendingSignalsPath, consumePendingSignals,
|