@scheduler-systems/gal-run 0.0.247 → 0.0.253

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.
@@ -1,2559 +1,932 @@
1
1
  #!/usr/bin/env node
2
- const _0x30fc96 = _0x2a4e;
3
- (function (_0x383380, _0x1d8b91) {
4
- const _0x22f681 = {
5
- _0x45509c: 0x268,
6
- _0x49b2d1: 0x2b3,
7
- _0x3324fa: 0x177,
8
- _0x4128f2: 0x3c7,
9
- _0x13e4cb: 0x1ac,
10
- _0x544fc0: 0x25a,
11
- _0x2d3df7: 0x66f,
12
- _0x344eeb: 0x6f8,
13
- _0x4ddea3: 0x119
14
- }, _0x1e3ff0 = _0x2a4e, _0x524250 = _0x383380();
15
- while (!![]) {
16
- try {
17
- const _0x2b0a57 = parseInt(_0x1e3ff0(_0x22f681._0x45509c)) / 0x1 + parseInt(_0x1e3ff0(_0x22f681._0x49b2d1)) / 0x2 * (parseInt(_0x1e3ff0(_0x22f681._0x3324fa)) / 0x3) + parseInt(_0x1e3ff0(_0x22f681._0x4128f2)) / 0x4 * (parseInt(_0x1e3ff0(_0x22f681._0x13e4cb)) / 0x5) + parseInt(_0x1e3ff0(_0x22f681._0x544fc0)) / 0x6 + -parseInt(_0x1e3ff0(_0x22f681._0x2d3df7)) / 0x7 + -parseInt(_0x1e3ff0(_0x22f681._0x344eeb)) / 0x8 + parseInt(_0x1e3ff0(_0x22f681._0x4ddea3)) / 0x9;
18
- if (_0x2b0a57 === _0x1d8b91)
19
- break;
20
- else
21
- _0x524250['push'](_0x524250['shift']());
22
- } catch (_0x31ee94) {
23
- _0x524250['push'](_0x524250['shift']());
2
+ /**
3
+ * GAL CLI Postinstall Script
4
+ *
5
+ * Automatically installs Claude Code integrations when GAL CLI is installed via pnpm.
6
+ * This script runs as a pnpm lifecycle hook after package installation completes.
7
+ *
8
+ * What it installs:
9
+ * 1. SessionStart hook → ~/.claude/hooks/gal-sync-reminder.js
10
+ * - Shows sync status at the start of each Claude session
11
+ * - Prompts user to login/sync if needed
12
+ * 2. Status line script → ~/.claude/status_lines/gal-sync-status.py
13
+ * - Displays sync warnings in Claude's status bar (when not synced)
14
+ * 3. GAL CLI rules → ~/.claude/rules/gal-cli.md
15
+ * - Provides persistent GAL CLI awareness to Claude Code
16
+ *
17
+ * Scope:
18
+ * - These are CLI-level integrations (user-wide, not project-specific)
19
+ * - Org-specific configs are handled by `gal sync --pull`
20
+ *
21
+ * Key behaviors:
22
+ * - Idempotent: Safe to run multiple times, only updates when versions change
23
+ * - Version-aware: Checks version markers before overwriting files
24
+ * - Self-cleaning: Installed scripts remove themselves if GAL CLI is uninstalled
25
+ * - Non-destructive: Won't overwrite user's custom configs (e.g., custom statusLine)
26
+ * - Telemetry: Queues installation event for next CLI run (GAL-114)
27
+ *
28
+ * When it runs:
29
+ * - Automatically during `pnpm add -g @scheduler-systems/gal-run`
30
+ * - Can be manually triggered via `pnpm run postinstall` in the CLI package directory
31
+ *
32
+ * Prerequisites:
33
+ * - Node.js 18+ (CommonJS module)
34
+ * - Writable ~/.claude directory
35
+ *
36
+ * Related files:
37
+ * - apps/cli/scripts/preuninstall.cjs - Cleanup script (runs before uninstall)
38
+ * - apps/cli/package.json - pnpm lifecycle hooks configuration
39
+ *
40
+ * @see specs/gal-cli/installation.md
41
+ */
42
+
43
+ const fs = require('fs');
44
+ const path = require('path');
45
+ const os = require('os');
46
+
47
+ // =============================================================================
48
+ // Version Configuration
49
+ // =============================================================================
50
+ // Version markers control when files get updated.
51
+ // Bump these when file contents change to trigger reinstallation.
52
+
53
+ // Get current CLI version from package.json
54
+ const cliPackageJson = require('../package.json');
55
+ const cliVersion = cliPackageJson.version;
56
+
57
+ // Version markers for idempotency checks
58
+ // Bump these to force updates to installed files
59
+ const HOOK_VERSION = '4.0.0'; // SessionStart hook (4.0.0: Background cache refresh + sync)
60
+ const STATUS_LINE_VERSION = '1.0.0'; // Status line script
61
+ const RULES_VERSION = '1.0.0'; // GAL CLI rules
62
+
63
+ // =============================================================================
64
+ // GAL CLI Rules Content
65
+ // =============================================================================
66
+ // Injected into ~/.claude/rules/gal-cli.md
67
+ // Provides persistent GAL CLI awareness to Claude without hook overhead.
68
+ // Claude automatically loads rules from ~/.claude/rules/ at session start.
69
+ // =============================================================================
70
+
71
+ const GAL_CLI_RULES_CONTENT = `# GAL CLI
72
+
73
+ <!-- GAL_RULES_VERSION = "${RULES_VERSION}" -->
74
+
75
+ The \`gal\` CLI is available for managing org-approved AI agent configurations.
76
+
77
+ ## Available Commands
78
+ - \`gal sync --pull\` - Download latest approved config from your organization
79
+ - \`gal auth login\` - Authenticate with GitHub
80
+ - \`gal --help\` - See all available commands
81
+
82
+ ## Behavior Rules
83
+ - **Confirmation Required**: Always ask the user before running any \`gal\` command
84
+ - **Self-Discovery**: If unsure about syntax, run \`gal --help\` or \`gal <command> --help\` first
85
+ - **Sync Notifications**: When you see a GAL sync notification, ask: "Do you want me to sync gal now?"
86
+ `;
87
+
88
+ // =============================================================================
89
+ // SessionStart Hook Content
90
+ // =============================================================================
91
+ // Shows sync status notification at Claude session start.
92
+ // Appears once at the top of the chat window and stays visible.
93
+ // For continuous status updates, see the status line script below.
94
+ // =============================================================================
95
+
96
+ const HOOK_CONTENT = `#!/usr/bin/env node
97
+ /**
98
+ * GAL Config Sync Hook for Claude Code (SessionStart)
99
+ * Version: ${HOOK_VERSION}
100
+ *
101
+ * Shows sync status at session start:
102
+ * - Not authenticated → prompt to login
103
+ * - Token expired → prompt to re-login
104
+ * - Not synced → prompt to sync
105
+ * - Config outdated → prompt to sync
106
+ * - All good → show synced status
107
+ *
108
+ * Self-cleaning: removes itself if GAL CLI is uninstalled.
109
+ */
110
+
111
+ // GAL_HOOK_VERSION = "${HOOK_VERSION}"
112
+
113
+ const fs = require('fs');
114
+ const path = require('path');
115
+ const { execSync, spawn } = require('child_process');
116
+ const os = require('os');
117
+
118
+ const GAL_DIR = '.gal';
119
+ const SYNC_STATE_FILE = 'sync-state.json';
120
+ const GAL_CONFIG_FILE = path.join(os.homedir(), '.gal', 'config.json');
121
+
122
+ function showMessage(message, status) {
123
+ // Queue telemetry event before showing message
124
+ queueTelemetryEvent(status);
125
+ console.log(JSON.stringify({ systemMessage: message }));
126
+ process.exit(0);
127
+ }
128
+
129
+ // =============================================================================
130
+ // Telemetry: Queue events for CLI to send on next run (GAL-114)
131
+ // =============================================================================
132
+ // Hook runs in Claude context (no network access), so we queue telemetry events
133
+ // in a JSON file that the CLI reads and flushes on next run. This allows us to
134
+ // track hook executions without blocking the user or requiring network calls.
135
+ // =============================================================================
136
+
137
+ /**
138
+ * Queue a telemetry event for the next CLI run.
139
+ *
140
+ * Since hooks run synchronously in Claude's context, we can't send telemetry
141
+ * directly. Instead, we write events to a pending queue file that the CLI
142
+ * reads and flushes on its next execution.
143
+ *
144
+ * @param {string} status - Sync status from the hook (auth_required, synced, etc.)
145
+ */
146
+ function queueTelemetryEvent(status) {
147
+ const pendingEventsPath = path.join(os.homedir(), '.gal', 'telemetry-pending-events.json');
148
+ const galDir = path.join(os.homedir(), '.gal');
149
+
150
+ let pending = [];
151
+ try {
152
+ if (fs.existsSync(pendingEventsPath)) {
153
+ pending = JSON.parse(fs.readFileSync(pendingEventsPath, 'utf-8'));
154
+ }
155
+ } catch {}
156
+
157
+ // Add session start hook event
158
+ pending.push({
159
+ id: require('crypto').randomUUID(),
160
+ eventType: 'hook_triggered',
161
+ timestamp: new Date().toISOString(),
162
+ payload: {
163
+ notificationType: 'session_start',
164
+ hookVersion: '${HOOK_VERSION}',
165
+ status: status,
166
+ cwd: process.cwd(),
167
+ platform: process.platform,
168
+ nodeVersion: process.version,
169
+ },
170
+ queuedAt: Date.now(),
171
+ });
172
+
173
+ try {
174
+ if (!fs.existsSync(galDir)) {
175
+ fs.mkdirSync(galDir, { recursive: true });
176
+ }
177
+ fs.writeFileSync(pendingEventsPath, JSON.stringify(pending), 'utf-8');
178
+ } catch {
179
+ // Ignore errors - telemetry is optional
180
+ }
181
+ }
182
+
183
+ // =============================================================================
184
+ // Self-cleaning: Remove hook if GAL CLI is uninstalled
185
+ // =============================================================================
186
+
187
+ function isGalInstalled() {
188
+ try {
189
+ execSync('which gal', { stdio: 'ignore' });
190
+ return true;
191
+ } catch {
192
+ return false;
193
+ }
194
+ }
195
+
196
+ function selfClean() {
197
+ const hookPath = __filename;
198
+ const claudeDir = path.join(os.homedir(), '.claude');
199
+ const settingsPath = path.join(claudeDir, 'settings.json');
200
+ const rulesPath = path.join(claudeDir, 'rules', 'gal-cli.md');
201
+
202
+ // Remove hook file
203
+ try { fs.unlinkSync(hookPath); } catch {}
204
+
205
+ // Remove rules file
206
+ try { fs.unlinkSync(rulesPath); } catch {}
207
+
208
+ // Remove hook entries from settings.json
209
+ try {
210
+ if (fs.existsSync(settingsPath)) {
211
+ const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
212
+ const hookEvents = ['SessionStart', 'UserPromptSubmit'];
213
+
214
+ for (const event of hookEvents) {
215
+ if (settings.hooks?.[event]) {
216
+ settings.hooks[event] = settings.hooks[event].filter(entry => {
217
+ if (!entry.hooks) return true;
218
+ entry.hooks = entry.hooks.filter(h => !h.command?.includes('gal-'));
219
+ return entry.hooks.length > 0;
220
+ });
221
+ if (settings.hooks[event].length === 0) delete settings.hooks[event];
24
222
  }
223
+ }
224
+
225
+ if (Object.keys(settings.hooks || {}).length === 0) delete settings.hooks;
226
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
25
227
  }
26
- }(_0x2ea4, 0x7116f));
27
- const fs = require('fs'), path = require(_0x30fc96(0x2f7)), os = require('os'), cliPackageJson = require(_0x30fc96(0x769) + _0x30fc96(0x6ba) + _0x30fc96(0x3de)), cliVersion = cliPackageJson[_0x30fc96(0x5fe) + 'on'], HOOK_VERSION = _0x30fc96(0x88d), STATUS_LINE_VERSION = _0x30fc96(0x899), RULES_VERSION = _0x30fc96(0x899), GAL_CLI_RULES_CONTENT = _0x30fc96(0x62b) + _0x30fc96(0x831) + _0x30fc96(0x372) + _0x30fc96(0x71c) + _0x30fc96(0x722) + _0x30fc96(0x539) + _0x30fc96(0x801) + '\x20\x22' + RULES_VERSION + (_0x30fc96(0x3ed) + _0x30fc96(0x680) + _0x30fc96(0x457) + _0x30fc96(0x5be) + _0x30fc96(0x3db) + _0x30fc96(0x5dd) + _0x30fc96(0x2a4) + _0x30fc96(0x7a9) + _0x30fc96(0x182) + _0x30fc96(0x8c9) + _0x30fc96(0x2e9) + _0x30fc96(0x4e1) + _0x30fc96(0x62e) + _0x30fc96(0x436) + _0x30fc96(0x3b9) + _0x30fc96(0x3ff) + _0x30fc96(0x694) + _0x30fc96(0x8f6) + _0x30fc96(0x5dd) + _0x30fc96(0x131) + _0x30fc96(0x42e) + _0x30fc96(0x29b) + _0x30fc96(0x846) + _0x30fc96(0x201) + _0x30fc96(0x628) + _0x30fc96(0x2df) + _0x30fc96(0x29d) + _0x30fc96(0x8f5) + _0x30fc96(0x7ca) + _0x30fc96(0x3f1) + _0x30fc96(0x4e1) + _0x30fc96(0x693) + _0x30fc96(0x2a8) + _0x30fc96(0x889) + _0x30fc96(0x8b3) + _0x30fc96(0x1c5) + _0x30fc96(0x282) + _0x30fc96(0x17d) + _0x30fc96(0x278) + _0x30fc96(0x525) + _0x30fc96(0x1c1) + _0x30fc96(0x2ee) + _0x30fc96(0x4ef) + _0x30fc96(0x927) + _0x30fc96(0x61d) + _0x30fc96(0x849) + _0x30fc96(0x5d5) + _0x30fc96(0x682) + _0x30fc96(0x83e) + _0x30fc96(0x274) + _0x30fc96(0x434) + _0x30fc96(0x1ec) + _0x30fc96(0x211) + _0x30fc96(0x160) + _0x30fc96(0x853) + _0x30fc96(0x60b) + _0x30fc96(0x49f) + _0x30fc96(0x249) + _0x30fc96(0x12b) + _0x30fc96(0x347) + _0x30fc96(0x742) + _0x30fc96(0x296) + _0x30fc96(0x45c) + _0x30fc96(0x6fb) + _0x30fc96(0x805) + _0x30fc96(0x553) + _0x30fc96(0x8c1) + _0x30fc96(0x128) + _0x30fc96(0x877) + _0x30fc96(0x85b) + _0x30fc96(0x689) + _0x30fc96(0x2b0) + _0x30fc96(0x5b0) + _0x30fc96(0x569) + _0x30fc96(0x23d) + _0x30fc96(0x750) + _0x30fc96(0x7d9) + _0x30fc96(0x607) + _0x30fc96(0x30f) + _0x30fc96(0x530) + _0x30fc96(0x6c1) + _0x30fc96(0x159) + _0x30fc96(0x7ad) + _0x30fc96(0x23c) + _0x30fc96(0x4b9) + _0x30fc96(0x457) + _0x30fc96(0x6cd) + _0x30fc96(0x83d) + _0x30fc96(0x165) + _0x30fc96(0x89e) + _0x30fc96(0x23d) + _0x30fc96(0x132) + _0x30fc96(0x27a) + _0x30fc96(0x74a) + _0x30fc96(0x750) + _0x30fc96(0x26c) + _0x30fc96(0x5f9) + _0x30fc96(0x6f6) + _0x30fc96(0x59c) + _0x30fc96(0x752) + _0x30fc96(0x62a) + _0x30fc96(0x410) + _0x30fc96(0x486) + _0x30fc96(0x658) + _0x30fc96(0x402) + _0x30fc96(0x49a) + _0x30fc96(0x49b) + _0x30fc96(0x21a) + _0x30fc96(0x355) + _0x30fc96(0x72b) + _0x30fc96(0x267) + _0x30fc96(0x514) + _0x30fc96(0x262) + _0x30fc96(0x2d9) + _0x30fc96(0x150)), HOOK_CONTENT = _0x30fc96(0x31f) + _0x30fc96(0x380) + _0x30fc96(0x631) + _0x30fc96(0x5bb) + _0x30fc96(0x8b7) + _0x30fc96(0x264) + _0x30fc96(0x42c) + _0x30fc96(0x892) + _0x30fc96(0x45e) + _0x30fc96(0x156) + _0x30fc96(0x1c6) + _0x30fc96(0x677) + _0x30fc96(0x81e) + _0x30fc96(0x621) + _0x30fc96(0x70f) + _0x30fc96(0x510) + _0x30fc96(0x166) + _0x30fc96(0x83f) + '\x20' + HOOK_VERSION + (_0x30fc96(0x8d6) + _0x30fc96(0x64e) + _0x30fc96(0x7c9) + _0x30fc96(0x340) + _0x30fc96(0x5c4) + _0x30fc96(0x5a2) + _0x30fc96(0x35e) + _0x30fc96(0x3d9) + _0x30fc96(0x834) + _0x30fc96(0x8e0) + _0x30fc96(0x88e) + _0x30fc96(0x394) + _0x30fc96(0x291) + _0x30fc96(0x3b6) + _0x30fc96(0x478) + _0x30fc96(0x6a5) + _0x30fc96(0x209) + _0x30fc96(0x386) + _0x30fc96(0x373) + _0x30fc96(0x1de) + _0x30fc96(0x697) + _0x30fc96(0x1ad) + _0x30fc96(0x50d) + _0x30fc96(0x82f) + _0x30fc96(0x209) + _0x30fc96(0x34f) + _0x30fc96(0x405) + _0x30fc96(0x77c) + _0x30fc96(0x925) + _0x30fc96(0x78b) + _0x30fc96(0x64b) + _0x30fc96(0x3cc) + _0x30fc96(0x3cd) + _0x30fc96(0x52f) + _0x30fc96(0x2d6) + _0x30fc96(0x697) + _0x30fc96(0x1ad) + _0x30fc96(0x50d) + _0x30fc96(0x8af) + _0x30fc96(0x4c7) + _0x30fc96(0x4f0) + _0x30fc96(0x5a9) + _0x30fc96(0x5f1) + _0x30fc96(0x658) + _0x30fc96(0x620) + _0x30fc96(0x2fe) + _0x30fc96(0x663) + _0x30fc96(0x6c9) + _0x30fc96(0x632) + _0x30fc96(0x38a) + _0x30fc96(0x3e7) + _0x30fc96(0x875) + _0x30fc96(0x493) + _0x30fc96(0x818) + _0x30fc96(0x28b) + _0x30fc96(0x764) + _0x30fc96(0x138) + _0x30fc96(0x5ec) + _0x30fc96(0x243) + _0x30fc96(0x14d) + _0x30fc96(0x71c) + _0x30fc96(0x593) + _0x30fc96(0x6ab) + _0x30fc96(0x174) + '\x22') + HOOK_VERSION + (_0x30fc96(0x384) + _0x30fc96(0x568) + _0x30fc96(0x71e) + _0x30fc96(0x7cb) + _0x30fc96(0x761) + _0x30fc96(0x6b9) + _0x30fc96(0x54d) + _0x30fc96(0x73b) + _0x30fc96(0x281) + _0x30fc96(0x2a0) + _0x30fc96(0x418) + _0x30fc96(0x6b9) + _0x30fc96(0x54d) + _0x30fc96(0x5de) + _0x30fc96(0x6a2) + _0x30fc96(0x271) + _0x30fc96(0x71b) + _0x30fc96(0x281) + _0x30fc96(0x2a0) + _0x30fc96(0x7b2) + _0x30fc96(0x6fa) + _0x30fc96(0x351) + _0x30fc96(0x7dc) + _0x30fc96(0x40d) + _0x30fc96(0x71e) + _0x30fc96(0x7cb) + _0x30fc96(0x474) + _0x30fc96(0x192) + _0x30fc96(0x77b) + _0x30fc96(0x71c) + _0x30fc96(0x487) + _0x30fc96(0x6c2) + _0x30fc96(0x48e) + _0x30fc96(0x54d) + _0x30fc96(0x895) + _0x30fc96(0x723) + _0x30fc96(0x559) + _0x30fc96(0x6e0) + _0x30fc96(0x6e5) + _0x30fc96(0x460) + _0x30fc96(0x472) + _0x30fc96(0x836) + _0x30fc96(0x244) + _0x30fc96(0x163) + _0x30fc96(0x5b2) + _0x30fc96(0x527) + _0x30fc96(0x3a0) + _0x30fc96(0x254) + _0x30fc96(0x880) + _0x30fc96(0x679) + _0x30fc96(0x499) + _0x30fc96(0x6e6) + _0x30fc96(0x148) + _0x30fc96(0x3b9) + _0x30fc96(0x3de) + _0x30fc96(0x192) + _0x30fc96(0x554) + _0x30fc96(0x69e) + _0x30fc96(0x313) + _0x30fc96(0x787) + _0x30fc96(0x1d9) + _0x30fc96(0x7ea) + _0x30fc96(0x8b9) + _0x30fc96(0x412) + _0x30fc96(0x2cc) + _0x30fc96(0x4ec) + _0x30fc96(0x2be) + _0x30fc96(0x707) + _0x30fc96(0x341) + _0x30fc96(0x75b) + _0x30fc96(0x78f) + _0x30fc96(0x259) + _0x30fc96(0x6bf) + _0x30fc96(0x920) + _0x30fc96(0x43a) + _0x30fc96(0x34e) + _0x30fc96(0x786) + _0x30fc96(0x1b5) + _0x30fc96(0x145) + _0x30fc96(0x760) + _0x30fc96(0x655) + _0x30fc96(0x8a9) + _0x30fc96(0x8c2) + _0x30fc96(0x411) + _0x30fc96(0x8f8) + _0x30fc96(0x221) + _0x30fc96(0x784) + _0x30fc96(0x3ae) + _0x30fc96(0x787) + _0x30fc96(0x269) + _0x30fc96(0x622) + _0x30fc96(0x577) + _0x30fc96(0x833) + _0x30fc96(0x84b) + _0x30fc96(0x3e8) + _0x30fc96(0x6a1) + _0x30fc96(0x6ea) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x843) + _0x30fc96(0x359) + _0x30fc96(0x707) + _0x30fc96(0x81f) + _0x30fc96(0x62c) + _0x30fc96(0x6db) + _0x30fc96(0x251) + _0x30fc96(0x903) + _0x30fc96(0x30a) + _0x30fc96(0x90a) + _0x30fc96(0x25c) + _0x30fc96(0x308) + _0x30fc96(0x53d) + _0x30fc96(0x507) + _0x30fc96(0x4ce) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x44e) + _0x30fc96(0x6d8) + _0x30fc96(0x717) + _0x30fc96(0x343) + _0x30fc96(0x368) + _0x30fc96(0x414) + _0x30fc96(0x501) + _0x30fc96(0x157) + _0x30fc96(0x817) + _0x30fc96(0x3e5) + _0x30fc96(0x4d5) + _0x30fc96(0x728) + _0x30fc96(0x424) + _0x30fc96(0x567) + _0x30fc96(0x8b1) + _0x30fc96(0x194) + _0x30fc96(0x18c) + _0x30fc96(0x336) + _0x30fc96(0x8bf) + _0x30fc96(0x61b) + _0x30fc96(0x605) + _0x30fc96(0x639) + _0x30fc96(0x438) + _0x30fc96(0x566) + _0x30fc96(0x924) + _0x30fc96(0x27e) + _0x30fc96(0x63f) + _0x30fc96(0x724) + _0x30fc96(0x915) + _0x30fc96(0x8ce) + _0x30fc96(0x481) + _0x30fc96(0x7c6) + _0x30fc96(0x521) + _0x30fc96(0x12a) + _0x30fc96(0x6c6) + _0x30fc96(0x609) + _0x30fc96(0x7a4) + _0x30fc96(0x5db) + _0x30fc96(0x68d) + _0x30fc96(0x7f7) + _0x30fc96(0x649) + _0x30fc96(0x81d) + _0x30fc96(0x407) + _0x30fc96(0x88b) + _0x30fc96(0x7cb) + _0x30fc96(0x60e) + _0x30fc96(0x817) + _0x30fc96(0x7e9) + _0x30fc96(0x392) + _0x30fc96(0x36c) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + (_0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x5e3) + _0x30fc96(0x75a) + _0x30fc96(0x74c) + _0x30fc96(0x59a) + _0x30fc96(0x2be) + _0x30fc96(0x707) + _0x30fc96(0x341) + _0x30fc96(0x3b5) + _0x30fc96(0x5d0) + _0x30fc96(0x6dc) + _0x30fc96(0x1b4) + _0x30fc96(0x36e) + _0x30fc96(0x2d8) + _0x30fc96(0x420) + _0x30fc96(0x75c) + _0x30fc96(0x50e) + _0x30fc96(0x658) + _0x30fc96(0x63a) + _0x30fc96(0x39c) + _0x30fc96(0x277) + _0x30fc96(0x657) + _0x30fc96(0x604) + _0x30fc96(0x318) + _0x30fc96(0x837) + _0x30fc96(0x7a0) + _0x30fc96(0x389) + _0x30fc96(0x650) + _0x30fc96(0x8e4) + _0x30fc96(0x4d8) + _0x30fc96(0x4bf) + _0x30fc96(0x2c1) + _0x30fc96(0x8cd) + _0x30fc96(0x4b2) + _0x30fc96(0x37c) + _0x30fc96(0x341) + _0x30fc96(0x3e6) + _0x30fc96(0x416) + _0x30fc96(0x7ec) + _0x30fc96(0x69b) + _0x30fc96(0x92d) + _0x30fc96(0x12e) + _0x30fc96(0x205) + _0x30fc96(0x831) + _0x30fc96(0x204) + _0x30fc96(0x6c0) + _0x30fc96(0x225) + _0x30fc96(0x20f) + _0x30fc96(0x3d4) + _0x30fc96(0x653) + _0x30fc96(0x857) + _0x30fc96(0x3a8) + _0x30fc96(0x6ad) + _0x30fc96(0x2d8) + _0x30fc96(0x618) + _0x30fc96(0x400) + _0x30fc96(0x6b1) + _0x30fc96(0x729) + _0x30fc96(0x2c5) + _0x30fc96(0x26c) + _0x30fc96(0x8b9) + _0x30fc96(0x888) + _0x30fc96(0x7b6) + _0x30fc96(0x75c) + _0x30fc96(0x811) + _0x30fc96(0x57d) + _0x30fc96(0x667) + _0x30fc96(0x740) + _0x30fc96(0x5f7) + _0x30fc96(0x8fe) + _0x30fc96(0x606) + _0x30fc96(0x554) + _0x30fc96(0x8d3) + _0x30fc96(0x827) + _0x30fc96(0x8e2) + _0x30fc96(0x431) + _0x30fc96(0x542) + _0x30fc96(0x37e) + _0x30fc96(0x1c8) + _0x30fc96(0x40c) + _0x30fc96(0x4cc) + _0x30fc96(0x1c0) + _0x30fc96(0x21e) + _0x30fc96(0x651) + _0x30fc96(0x3af) + _0x30fc96(0x30e) + _0x30fc96(0x7f6) + _0x30fc96(0x456) + _0x30fc96(0x496) + _0x30fc96(0x6c2) + _0x30fc96(0x2c8) + _0x30fc96(0x650) + _0x30fc96(0x5ce) + _0x30fc96(0x15c) + _0x30fc96(0x71a) + _0x30fc96(0x3c6) + _0x30fc96(0x472) + _0x30fc96(0x7a3) + _0x30fc96(0x77b) + _0x30fc96(0x70c) + _0x30fc96(0x2b5) + _0x30fc96(0x34b) + _0x30fc96(0x2b9) + _0x30fc96(0x49c) + _0x30fc96(0x396) + _0x30fc96(0x3c1) + _0x30fc96(0x887) + _0x30fc96(0x5fc) + _0x30fc96(0x161) + _0x30fc96(0x15c) + _0x30fc96(0x53f) + _0x30fc96(0x172) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x206) + _0x30fc96(0x85a) + _0x30fc96(0x2a6) + _0x30fc96(0x6a9) + _0x30fc96(0x1e8) + _0x30fc96(0x4b3) + _0x30fc96(0x534) + _0x30fc96(0x3c9) + _0x30fc96(0x870) + _0x30fc96(0x2dd) + _0x30fc96(0x7e8) + _0x30fc96(0x7ba) + _0x30fc96(0x78d) + _0x30fc96(0x564) + _0x30fc96(0x869) + _0x30fc96(0x162) + _0x30fc96(0x6a9) + _0x30fc96(0x1e8) + _0x30fc96(0x4b3) + _0x30fc96(0x534) + _0x30fc96(0x865) + _0x30fc96(0x5d6) + _0x30fc96(0x350) + _0x30fc96(0x45b) + _0x30fc96(0x1b2) + _0x30fc96(0x3d2) + _0x30fc96(0x8ca) + _0x30fc96(0x154) + _0x30fc96(0x6d5) + _0x30fc96(0x35e) + _0x30fc96(0x3d9) + _0x30fc96(0x89b) + _0x30fc96(0x2e6) + _0x30fc96(0x5e9) + _0x30fc96(0x15c) + _0x30fc96(0x7cc) + _0x30fc96(0x292) + _0x30fc96(0x743) + _0x30fc96(0x53b) + _0x30fc96(0x660) + _0x30fc96(0x6bc) + _0x30fc96(0x202) + _0x30fc96(0x64a) + _0x30fc96(0x7e6) + _0x30fc96(0x67a) + _0x30fc96(0x5cf) + _0x30fc96(0x879) + _0x30fc96(0x5eb) + _0x30fc96(0x334) + _0x30fc96(0x2d3) + _0x30fc96(0x86c) + _0x30fc96(0x741) + _0x30fc96(0x7ce) + _0x30fc96(0x68c) + _0x30fc96(0x918) + _0x30fc96(0x8df) + _0x30fc96(0x515) + _0x30fc96(0x65c) + _0x30fc96(0x31e) + _0x30fc96(0x1d6) + _0x30fc96(0x5c5) + _0x30fc96(0x149) + _0x30fc96(0x770) + _0x30fc96(0x573) + _0x30fc96(0x65b) + _0x30fc96(0x6f6) + _0x30fc96(0x27d) + _0x30fc96(0x1fd) + _0x30fc96(0x8a2) + _0x30fc96(0x312) + _0x30fc96(0x83a) + _0x30fc96(0x573) + _0x30fc96(0x75c) + _0x30fc96(0x8fd) + _0x30fc96(0x737))) + HOOK_VERSION + (_0x30fc96(0x741) + _0x30fc96(0x260) + _0x30fc96(0x37e) + _0x30fc96(0x1a2) + _0x30fc96(0x1fb) + _0x30fc96(0x573) + _0x30fc96(0x446) + _0x30fc96(0x379) + _0x30fc96(0x3a7) + _0x30fc96(0x1d8) + _0x30fc96(0x870) + _0x30fc96(0x23b) + _0x30fc96(0x8c7) + _0x30fc96(0x1fc) + _0x30fc96(0x84b) + _0x30fc96(0x4b5) + _0x30fc96(0x751) + _0x30fc96(0x573) + _0x30fc96(0x558) + _0x30fc96(0x8fd) + _0x30fc96(0x91d) + _0x30fc96(0x6b6) + _0x30fc96(0x70d) + _0x30fc96(0x561) + _0x30fc96(0x870) + _0x30fc96(0x588) + _0x30fc96(0x43a) + _0x30fc96(0x184) + _0x30fc96(0x5b3) + _0x30fc96(0x2e2) + _0x30fc96(0x1d6) + _0x30fc96(0x11f) + _0x30fc96(0x4d2) + _0x30fc96(0x788) + _0x30fc96(0x2ff) + _0x30fc96(0x35c) + _0x30fc96(0x2c4) + _0x30fc96(0x8d9) + _0x30fc96(0x5b1) + _0x30fc96(0x8f1) + _0x30fc96(0x88c) + _0x30fc96(0x8b2) + _0x30fc96(0x179) + _0x30fc96(0x364) + _0x30fc96(0x5b1) + _0x30fc96(0x614) + _0x30fc96(0x58a) + _0x30fc96(0x68b) + _0x30fc96(0x7d2) + _0x30fc96(0x1dd) + _0x30fc96(0x902) + _0x30fc96(0x14b) + _0x30fc96(0x8e9) + _0x30fc96(0x37c) + _0x30fc96(0x162) + _0x30fc96(0x6a9) + _0x30fc96(0x1e8) + _0x30fc96(0x4b3) + _0x30fc96(0x534) + _0x30fc96(0x33d) + _0x30fc96(0x565) + _0x30fc96(0x852) + _0x30fc96(0x27b) + _0x30fc96(0x7ec) + _0x30fc96(0x676) + _0x30fc96(0x5d6) + _0x30fc96(0x7a3) + _0x30fc96(0x375) + _0x30fc96(0x65a) + _0x30fc96(0x22a) + _0x30fc96(0x777) + _0x30fc96(0x44c) + _0x30fc96(0x8c6) + _0x30fc96(0x4cf) + _0x30fc96(0x8b1) + _0x30fc96(0x326) + _0x30fc96(0x2da) + _0x30fc96(0x848) + _0x30fc96(0x3ce) + _0x30fc96(0x6ea) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x843) + _0x30fc96(0x6c9) + _0x30fc96(0x632) + _0x30fc96(0x38a) + _0x30fc96(0x60d) + _0x30fc96(0x158) + _0x30fc96(0x1dc) + _0x30fc96(0x55e) + _0x30fc96(0x6f4) + _0x30fc96(0x6ef) + _0x30fc96(0x6d4) + _0x30fc96(0x8e1) + _0x30fc96(0x36c) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x5e3) + _0x30fc96(0x28f) + _0x30fc96(0x4ae) + _0x30fc96(0x8e6) + _0x30fc96(0x6e7) + _0x30fc96(0x2c2) + _0x30fc96(0x1c8) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x454) + _0x30fc96(0x684) + _0x30fc96(0x699) + _0x30fc96(0x60c) + _0x30fc96(0x703) + _0x30fc96(0x465) + _0x30fc96(0x4c6) + _0x30fc96(0x90e) + _0x30fc96(0x11f) + _0x30fc96(0x912) + _0x30fc96(0x4c2) + _0x30fc96(0x871) + _0x30fc96(0x263) + _0x30fc96(0x2c3) + _0x30fc96(0x54f) + _0x30fc96(0x5b8) + _0x30fc96(0x346) + _0x30fc96(0x5c1) + _0x30fc96(0x263) + _0x30fc96(0x841) + _0x30fc96(0x5e7) + _0x30fc96(0x8d8) + _0x30fc96(0x1d7) + _0x30fc96(0x5c0) + _0x30fc96(0x348) + _0x30fc96(0x54d) + _0x30fc96(0x709) + _0x30fc96(0x5d9) + _0x30fc96(0x881) + _0x30fc96(0x146) + _0x30fc96(0x57c) + _0x30fc96(0x77b) + _0x30fc96(0x295) + _0x30fc96(0x3d5) + _0x30fc96(0x17f) + _0x30fc96(0x455) + _0x30fc96(0x579) + _0x30fc96(0x4a9) + _0x30fc96(0x5ac) + _0x30fc96(0x4a5) + _0x30fc96(0x4c0) + _0x30fc96(0x2fa) + _0x30fc96(0x40c) + _0x30fc96(0x754) + _0x30fc96(0x627) + _0x30fc96(0x651) + _0x30fc96(0x3af) + _0x30fc96(0x30e) + _0x30fc96(0x84c) + _0x30fc96(0x520) + _0x30fc96(0x603) + _0x30fc96(0x1bf) + _0x30fc96(0x72c) + _0x30fc96(0x75f) + _0x30fc96(0x655) + _0x30fc96(0x1d1) + _0x30fc96(0x5ed) + _0x30fc96(0x5d9) + _0x30fc96(0x3a0) + _0x30fc96(0x254) + _0x30fc96(0x404) + _0x30fc96(0x3d5) + _0x30fc96(0x6b2) + _0x30fc96(0x813) + _0x30fc96(0x28e) + _0x30fc96(0x537) + _0x30fc96(0x6c8) + _0x30fc96(0x701) + _0x30fc96(0x437) + (_0x30fc96(0x14f) + _0x30fc96(0x5a6) + _0x30fc96(0x5ab) + _0x30fc96(0x77f) + _0x30fc96(0x4b8) + _0x30fc96(0x8d2) + _0x30fc96(0x894) + _0x30fc96(0x82b) + _0x30fc96(0x578) + _0x30fc96(0x4e8) + _0x30fc96(0x3d2) + _0x30fc96(0x8ca) + _0x30fc96(0x4e7) + _0x30fc96(0x7c8) + _0x30fc96(0x6b5) + _0x30fc96(0x171) + _0x30fc96(0x63e) + _0x30fc96(0x2b2) + _0x30fc96(0x2f0) + _0x30fc96(0x178) + _0x30fc96(0x847) + _0x30fc96(0x5ed) + _0x30fc96(0x443) + _0x30fc96(0x3e0) + _0x30fc96(0x22b) + _0x30fc96(0x5e0) + _0x30fc96(0x4fd) + _0x30fc96(0x129) + _0x30fc96(0x25f) + _0x30fc96(0x2d5) + _0x30fc96(0x6f3) + _0x30fc96(0x387) + _0x30fc96(0x591) + _0x30fc96(0x2f1) + _0x30fc96(0x625) + _0x30fc96(0x6d3) + _0x30fc96(0x743) + _0x30fc96(0x563) + _0x30fc96(0x2c4) + _0x30fc96(0x8d9) + _0x30fc96(0x1ee) + _0x30fc96(0x627) + _0x30fc96(0x578) + _0x30fc96(0x1c8) + _0x30fc96(0x573) + _0x30fc96(0x77b) + _0x30fc96(0x3eb) + _0x30fc96(0x125) + _0x30fc96(0x7ba) + _0x30fc96(0x78d) + _0x30fc96(0x564) + _0x30fc96(0x869) + _0x30fc96(0x162) + _0x30fc96(0x85d) + _0x30fc96(0x1bf) + _0x30fc96(0x20e) + _0x30fc96(0x865) + _0x30fc96(0x5d6) + _0x30fc96(0x350) + _0x30fc96(0x573) + _0x30fc96(0x77b) + _0x30fc96(0x75c) + _0x30fc96(0x821) + _0x30fc96(0x776) + _0x30fc96(0x24c) + _0x30fc96(0x6f5) + _0x30fc96(0x1f3) + _0x30fc96(0x19d) + _0x30fc96(0x4a7) + _0x30fc96(0x186) + _0x30fc96(0x7fa) + _0x30fc96(0x923) + _0x30fc96(0x8b2) + _0x30fc96(0x11e) + _0x30fc96(0x54d) + _0x30fc96(0x7dd) + _0x30fc96(0x7b1) + _0x30fc96(0x5ad) + _0x30fc96(0x2e3) + _0x30fc96(0x88c) + _0x30fc96(0x573) + _0x30fc96(0x206) + _0x30fc96(0x688) + _0x30fc96(0x3a5) + _0x30fc96(0x24d) + _0x30fc96(0x616) + _0x30fc96(0x637) + _0x30fc96(0x199) + _0x30fc96(0x573) + _0x30fc96(0x31d) + _0x30fc96(0x627) + _0x30fc96(0x1b8) + _0x30fc96(0x258) + _0x30fc96(0x555) + _0x30fc96(0x3eb) + _0x30fc96(0x7da) + _0x30fc96(0x774) + _0x30fc96(0x928) + _0x30fc96(0x747) + _0x30fc96(0x687) + _0x30fc96(0x513) + _0x30fc96(0x413) + _0x30fc96(0x870) + _0x30fc96(0x573) + _0x30fc96(0x2ff) + _0x30fc96(0x187) + _0x30fc96(0x448) + _0x30fc96(0x1c3) + _0x30fc96(0x68a) + _0x30fc96(0x792) + _0x30fc96(0x18e) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x661) + _0x30fc96(0x3f6) + _0x30fc96(0x307) + _0x30fc96(0x513) + _0x30fc96(0x1b8) + _0x30fc96(0x2c9) + _0x30fc96(0x32c) + _0x30fc96(0x647) + _0x30fc96(0x91f) + _0x30fc96(0x246) + _0x30fc96(0x595) + _0x30fc96(0x7fb) + _0x30fc96(0x6da) + _0x30fc96(0x7af) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x5c3) + _0x30fc96(0x629) + _0x30fc96(0x89a) + _0x30fc96(0x774) + _0x30fc96(0x43d) + _0x30fc96(0x2aa) + _0x30fc96(0x6dd) + _0x30fc96(0x573) + _0x30fc96(0x15f) + _0x30fc96(0x902) + _0x30fc96(0x573) + _0x30fc96(0x528) + _0x30fc96(0x704) + _0x30fc96(0x7da) + _0x30fc96(0x774) + _0x30fc96(0x928) + _0x30fc96(0x5a0) + _0x30fc96(0x383) + _0x30fc96(0x76b) + _0x30fc96(0x858) + _0x30fc96(0x75e) + _0x30fc96(0x1bf) + _0x30fc96(0x7b8) + _0x30fc96(0x16d) + _0x30fc96(0x810) + _0x30fc96(0x902) + _0x30fc96(0x573) + _0x30fc96(0x417) + _0x30fc96(0x45b) + _0x30fc96(0x870) + _0x30fc96(0x528) + _0x30fc96(0x535) + _0x30fc96(0x1e4) + _0x30fc96(0x4bd) + _0x30fc96(0x591) + _0x30fc96(0x886) + _0x30fc96(0x4e6) + _0x30fc96(0x2e7) + _0x30fc96(0x224) + _0x30fc96(0x38d) + _0x30fc96(0x57f) + _0x30fc96(0x878) + _0x30fc96(0x3eb) + _0x30fc96(0x7da) + _0x30fc96(0x774) + _0x30fc96(0x902) + _0x30fc96(0x447) + _0x30fc96(0x1f2) + _0x30fc96(0x745) + _0x30fc96(0x684) + _0x30fc96(0x688) + _0x30fc96(0x421) + _0x30fc96(0x1a7) + _0x30fc96(0x1b6) + _0x30fc96(0x31e) + _0x30fc96(0x4bc) + _0x30fc96(0x1bf) + _0x30fc96(0x4d9) + _0x30fc96(0x8fa) + _0x30fc96(0x439) + _0x30fc96(0x630) + _0x30fc96(0x358) + _0x30fc96(0x2de) + _0x30fc96(0x233) + _0x30fc96(0x6ea) + _0x30fc96(0x785) + _0x30fc96(0x818) + _0x30fc96(0x506) + _0x30fc96(0x35d) + _0x30fc96(0x4db) + _0x30fc96(0x13f)) + (_0x30fc96(0x91e) + _0x30fc96(0x1ea) + _0x30fc96(0x366) + _0x30fc96(0x270) + _0x30fc96(0x8e6) + _0x30fc96(0x6e7) + _0x30fc96(0x2c2) + _0x30fc96(0x5aa) + _0x30fc96(0x22f) + _0x30fc96(0x2e4) + _0x30fc96(0x78a) + _0x30fc96(0x833) + _0x30fc96(0x84b) + _0x30fc96(0x3e8) + _0x30fc96(0x6a1) + _0x30fc96(0x6ea) + _0x30fc96(0x3e2) + _0x30fc96(0x551) + _0x30fc96(0x726) + _0x30fc96(0x85c) + _0x30fc96(0x78e) + _0x30fc96(0x66b) + _0x30fc96(0x2dc) + _0x30fc96(0x7b3) + _0x30fc96(0x613) + _0x30fc96(0x28f) + _0x30fc96(0x4ae) + _0x30fc96(0x581) + _0x30fc96(0x43e) + _0x30fc96(0x369) + _0x30fc96(0x88c) + _0x30fc96(0x270) + _0x30fc96(0x85a) + _0x30fc96(0x2a6) + _0x30fc96(0x38c) + _0x30fc96(0x41f) + _0x30fc96(0x5bd) + _0x30fc96(0x796) + _0x30fc96(0x2bf) + _0x30fc96(0x716) + _0x30fc96(0x550) + _0x30fc96(0x4af) + _0x30fc96(0x88c) + _0x30fc96(0x5c3) + _0x30fc96(0x532) + _0x30fc96(0x433) + _0x30fc96(0x8a4) + _0x30fc96(0x7c0) + _0x30fc96(0x5e4) + _0x30fc96(0x2ce) + _0x30fc96(0x48d) + _0x30fc96(0x926) + _0x30fc96(0x1a0) + _0x30fc96(0x362) + _0x30fc96(0x5d6) + _0x30fc96(0x350) + _0x30fc96(0x3e0) + _0x30fc96(0x22b) + _0x30fc96(0x68a) + _0x30fc96(0x451) + _0x30fc96(0x466) + _0x30fc96(0x6f7) + _0x30fc96(0x3e4) + _0x30fc96(0x829) + _0x30fc96(0x2d2) + _0x30fc96(0x415) + _0x30fc96(0x4d4) + _0x30fc96(0x49a) + _0x30fc96(0x8a3) + _0x30fc96(0x2cf) + _0x30fc96(0x469) + _0x30fc96(0x175) + _0x30fc96(0x758) + _0x30fc96(0x22c) + _0x30fc96(0x28f) + _0x30fc96(0x4ae) + _0x30fc96(0x864) + _0x30fc96(0x504) + _0x30fc96(0x74e) + _0x30fc96(0x1c8) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x40c) + _0x30fc96(0x2b1) + _0x30fc96(0x12d) + _0x30fc96(0x74e) + _0x30fc96(0x50b) + _0x30fc96(0x88f) + _0x30fc96(0x7a3) + _0x30fc96(0x528) + _0x30fc96(0x26f) + _0x30fc96(0x40b) + _0x30fc96(0x1ce) + _0x30fc96(0x921) + _0x30fc96(0x68a) + _0x30fc96(0x451) + _0x30fc96(0x391) + _0x30fc96(0x58d) + _0x30fc96(0x147) + _0x30fc96(0x36b) + _0x30fc96(0x1da) + _0x30fc96(0x433) + _0x30fc96(0x8a4) + _0x30fc96(0x1f0) + _0x30fc96(0x2e8) + _0x30fc96(0x692) + _0x30fc96(0x7b0) + _0x30fc96(0x449) + _0x30fc96(0x226) + _0x30fc96(0x12c) + _0x30fc96(0x31e) + _0x30fc96(0x7d0) + _0x30fc96(0x8bb) + _0x30fc96(0x902) + _0x30fc96(0x68a) + _0x30fc96(0x213) + _0x30fc96(0x149) + _0x30fc96(0x263) + _0x30fc96(0x2c3) + _0x30fc96(0x856) + _0x30fc96(0x4c2) + _0x30fc96(0x1bc) + _0x30fc96(0x4b4) + _0x30fc96(0x6ea) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x843) + _0x30fc96(0x1b1) + _0x30fc96(0x4ed) + _0x30fc96(0x905) + _0x30fc96(0x217) + _0x30fc96(0x7e2) + _0x30fc96(0x572) + _0x30fc96(0x4ff) + _0x30fc96(0x824) + _0x30fc96(0x66c) + _0x30fc96(0x708) + _0x30fc96(0x58b) + _0x30fc96(0x66a) + _0x30fc96(0x2d0) + _0x30fc96(0x36c) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x5e3) + _0x30fc96(0x554) + _0x30fc96(0x37f) + _0x30fc96(0x360) + _0x30fc96(0x842) + _0x30fc96(0x6d0) + _0x30fc96(0x429) + _0x30fc96(0x348) + _0x30fc96(0x54d) + _0x30fc96(0x5b5) + _0x30fc96(0x773) + _0x30fc96(0x7c2) + _0x30fc96(0x17f) + _0x30fc96(0x455) + _0x30fc96(0x579) + _0x30fc96(0x4a9) + _0x30fc96(0x5ac) + _0x30fc96(0x266) + _0x30fc96(0x2fc) + _0x30fc96(0x1e2) + _0x30fc96(0x2ac) + _0x30fc96(0x3b2) + _0x30fc96(0x8a7) + _0x30fc96(0x8da) + _0x30fc96(0x1e7) + _0x30fc96(0x2ec) + _0x30fc96(0x6e3) + _0x30fc96(0x59b) + _0x30fc96(0x3ea) + _0x30fc96(0x2f5) + _0x30fc96(0x549) + _0x30fc96(0x68a)) + (_0x30fc96(0x451) + _0x30fc96(0x391) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x40c) + _0x30fc96(0x7e5) + _0x30fc96(0x56c) + _0x30fc96(0x411) + _0x30fc96(0x669) + _0x30fc96(0x727) + _0x30fc96(0x227) + _0x30fc96(0x79f) + _0x30fc96(0x731) + _0x30fc96(0x432) + _0x30fc96(0x19e) + _0x30fc96(0x7e1) + _0x30fc96(0x898) + _0x30fc96(0x7af) + _0x30fc96(0x743) + _0x30fc96(0x4b0) + _0x30fc96(0x6c5) + _0x30fc96(0x7d5) + _0x30fc96(0x216) + _0x30fc96(0x322) + _0x30fc96(0x1e5) + _0x30fc96(0x3dd) + _0x30fc96(0x2b6) + _0x30fc96(0x35a) + _0x30fc96(0x8cb) + _0x30fc96(0x87f) + _0x30fc96(0x287) + _0x30fc96(0x902) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x6d7) + _0x30fc96(0x832) + _0x30fc96(0x8fd) + _0x30fc96(0x497) + _0x30fc96(0x8ee) + _0x30fc96(0x234) + _0x30fc96(0x3b3) + _0x30fc96(0x236) + _0x30fc96(0x781) + _0x30fc96(0x524) + _0x30fc96(0x51b) + _0x30fc96(0x30d) + _0x30fc96(0x668) + _0x30fc96(0x483) + _0x30fc96(0x526) + _0x30fc96(0x46f) + _0x30fc96(0x33e) + _0x30fc96(0x1a1) + _0x30fc96(0x261) + _0x30fc96(0x28a) + _0x30fc96(0x7df) + _0x30fc96(0x2de) + _0x30fc96(0x5f8) + _0x30fc96(0x346) + _0x30fc96(0x529) + _0x30fc96(0x14b) + _0x30fc96(0x4de) + _0x30fc96(0x706) + _0x30fc96(0x468) + _0x30fc96(0x832) + _0x30fc96(0x8fd) + _0x30fc96(0x7ee) + _0x30fc96(0x845) + _0x30fc96(0x1c7) + _0x30fc96(0x851) + _0x30fc96(0x50b) + _0x30fc96(0x88f) + _0x30fc96(0x2cd) + _0x30fc96(0x63d) + _0x30fc96(0x5e6) + _0x30fc96(0x5c9) + _0x30fc96(0x54d) + _0x30fc96(0x4be) + _0x30fc96(0x778) + _0x30fc96(0x310) + _0x30fc96(0x3cb) + _0x30fc96(0x8dd) + _0x30fc96(0x508) + _0x30fc96(0x475) + _0x30fc96(0x79d) + _0x30fc96(0x4c5) + _0x30fc96(0x7f8) + _0x30fc96(0x2f4) + _0x30fc96(0x641) + _0x30fc96(0x749) + _0x30fc96(0x902) + _0x30fc96(0x161) + _0x30fc96(0x257) + _0x30fc96(0x495) + _0x30fc96(0x610) + _0x30fc96(0x759) + _0x30fc96(0x870) + _0x30fc96(0x914) + _0x30fc96(0x476) + _0x30fc96(0x85e) + _0x30fc96(0x2a7) + _0x30fc96(0x890) + _0x30fc96(0x15b) + _0x30fc96(0x573) + _0x30fc96(0x206) + _0x30fc96(0x22e) + _0x30fc96(0x20a) + _0x30fc96(0x89d) + _0x30fc96(0x2bb) + _0x30fc96(0x20a) + _0x30fc96(0x365) + _0x30fc96(0x185) + _0x30fc96(0x19f) + _0x30fc96(0x683) + _0x30fc96(0x408) + _0x30fc96(0x47d) + _0x30fc96(0x7f3) + _0x30fc96(0x573) + _0x30fc96(0x206) + _0x30fc96(0x22e) + _0x30fc96(0x20a) + _0x30fc96(0x695) + _0x30fc96(0x2bb) + _0x30fc96(0x20a) + _0x30fc96(0x2b4) + _0x30fc96(0x665) + _0x30fc96(0x870) + _0x30fc96(0x417) + _0x30fc96(0x206) + _0x30fc96(0x8a1) + _0x30fc96(0x19f) + _0x30fc96(0x425) + _0x30fc96(0x4c2) + _0x30fc96(0x1bc) + _0x30fc96(0x902) + _0x30fc96(0x206) + _0x30fc96(0x7f1) + _0x30fc96(0x48b) + _0x30fc96(0x33b) + _0x30fc96(0x855) + _0x30fc96(0x16b) + _0x30fc96(0x494) + _0x30fc96(0x183) + _0x30fc96(0x4b1) + _0x30fc96(0x780) + _0x30fc96(0x84b) + _0x30fc96(0x54e) + _0x30fc96(0x1f1) + _0x30fc96(0x346) + _0x30fc96(0x529) + _0x30fc96(0x870) + _0x30fc96(0x11c) + _0x30fc96(0x870) + _0x30fc96(0x349) + _0x30fc96(0x6a2) + _0x30fc96(0x2f6) + _0x30fc96(0x1db) + _0x30fc96(0x76f) + _0x30fc96(0x6a4) + _0x30fc96(0x80c) + _0x30fc96(0x74d) + _0x30fc96(0x812) + _0x30fc96(0x5d3) + _0x30fc96(0x43f) + _0x30fc96(0x47c) + _0x30fc96(0x870) + _0x30fc96(0x5c3) + _0x30fc96(0x378) + _0x30fc96(0x6c5) + _0x30fc96(0x7d5) + _0x30fc96(0x216) + _0x30fc96(0x155) + _0x30fc96(0x630) + _0x30fc96(0x2c3) + _0x30fc96(0x856) + _0x30fc96(0x4c2) + _0x30fc96(0x1bc) + _0x30fc96(0x644) + _0x30fc96(0x3e0) + _0x30fc96(0x22b) + _0x30fc96(0x68a) + _0x30fc96(0x451) + _0x30fc96(0x466) + _0x30fc96(0x6f7) + _0x30fc96(0x31a) + _0x30fc96(0x135) + _0x30fc96(0x5b5) + _0x30fc96(0x77e) + _0x30fc96(0x11b) + _0x30fc96(0x126) + _0x30fc96(0x1bb) + _0x30fc96(0x6d1) + _0x30fc96(0x442) + _0x30fc96(0x87c) + _0x30fc96(0x235) + _0x30fc96(0x13e) + _0x30fc96(0x5cb) + _0x30fc96(0x7f0) + _0x30fc96(0x799) + _0x30fc96(0x4e3) + _0x30fc96(0x664)) + (_0x30fc96(0x76c) + _0x30fc96(0x272) + _0x30fc96(0x6d3) + _0x30fc96(0x5c9) + _0x30fc96(0x54d) + _0x30fc96(0x5b5) + _0x30fc96(0x773) + _0x30fc96(0x7c2) + _0x30fc96(0x17f) + _0x30fc96(0x455) + _0x30fc96(0x579) + _0x30fc96(0x4a9) + _0x30fc96(0x5ac) + _0x30fc96(0x266) + _0x30fc96(0x2fc) + _0x30fc96(0x1e2) + _0x30fc96(0x2ac) + _0x30fc96(0x3b2) + _0x30fc96(0x8a7) + _0x30fc96(0x902) + _0x30fc96(0x161) + _0x30fc96(0x257) + _0x30fc96(0x55f) + _0x30fc96(0x6ff) + _0x30fc96(0x408) + _0x30fc96(0x870) + _0x30fc96(0x92c) + _0x30fc96(0x2ec) + _0x30fc96(0x6e3) + _0x30fc96(0x59b) + _0x30fc96(0x3ea) + _0x30fc96(0x2f5) + _0x30fc96(0x549) + _0x30fc96(0x88c) + _0x30fc96(0x882) + _0x30fc96(0x6d3) + _0x30fc96(0x573) + _0x30fc96(0x58d) + _0x30fc96(0x808) + _0x30fc96(0x37b) + _0x30fc96(0x7ba) + _0x30fc96(0x78d) + _0x30fc96(0x564) + _0x30fc96(0x869) + _0x30fc96(0x162) + _0x30fc96(0x57e) + _0x30fc96(0x799) + _0x30fc96(0x4e3) + _0x30fc96(0x4c8) + _0x30fc96(0x690) + _0x30fc96(0x8bb) + _0x30fc96(0x902) + _0x30fc96(0x573) + _0x30fc96(0x2ed) + _0x30fc96(0x6c5) + _0x30fc96(0x26d) + _0x30fc96(0x7b9) + _0x30fc96(0x230) + _0x30fc96(0x22d) + _0x30fc96(0x1f4) + _0x30fc96(0x87b) + _0x30fc96(0x7d1) + _0x30fc96(0x344) + _0x30fc96(0x4b7) + _0x30fc96(0x670) + _0x30fc96(0x220) + _0x30fc96(0x220) + _0x30fc96(0x72f) + _0x30fc96(0x1c8) + _0x30fc96(0x573) + _0x30fc96(0x176) + _0x30fc96(0x753) + _0x30fc96(0x23a) + _0x30fc96(0x20d) + _0x30fc96(0x759) + _0x30fc96(0x870) + _0x30fc96(0x630) + _0x30fc96(0x870) + _0x30fc96(0x1b2) + _0x30fc96(0x3d2) + _0x30fc96(0x4cb) + _0x30fc96(0x8ef) + _0x30fc96(0x2ff) + _0x30fc96(0x1f9) + _0x30fc96(0x67c) + _0x30fc96(0x21f) + _0x30fc96(0x88c) + _0x30fc96(0x5c9) + _0x30fc96(0x54d) + _0x30fc96(0x222) + _0x30fc96(0x3f5) + _0x30fc96(0x45d) + _0x30fc96(0x7d8) + _0x30fc96(0x533) + _0x30fc96(0x2b7) + _0x30fc96(0x2d1) + _0x30fc96(0x3ef) + _0x30fc96(0x180) + _0x30fc96(0x870) + _0x30fc96(0x260) + _0x30fc96(0x4da) + _0x30fc96(0x599) + _0x30fc96(0x63c) + _0x30fc96(0x870) + _0x30fc96(0x85f) + _0x30fc96(0x6b3) + _0x30fc96(0x803) + _0x30fc96(0x8b0) + _0x30fc96(0x573) + _0x30fc96(0x11f) + _0x30fc96(0x573) + _0x30fc96(0x46e) + _0x30fc96(0x5a7) + _0x30fc96(0x3ac) + _0x30fc96(0x870) + _0x30fc96(0x8d5) + _0x30fc96(0x2c3) + _0x30fc96(0x3cf) + _0x30fc96(0x1a6) + _0x30fc96(0x765) + _0x30fc96(0x799) + _0x30fc96(0x17e) + _0x30fc96(0x4dc) + _0x30fc96(0x2a3) + _0x30fc96(0x862) + _0x30fc96(0x69c) + _0x30fc96(0x1c2) + _0x30fc96(0x597) + _0x30fc96(0x37d) + _0x30fc96(0x495) + _0x30fc96(0x773) + _0x30fc96(0x584) + _0x30fc96(0x3b7) + _0x30fc96(0x309) + _0x30fc96(0x586) + _0x30fc96(0x38b) + _0x30fc96(0x394) + _0x30fc96(0x86e) + _0x30fc96(0x636) + _0x30fc96(0x127) + _0x30fc96(0x54d) + _0x30fc96(0x556) + _0x30fc96(0x85c) + _0x30fc96(0x280) + _0x30fc96(0x55b) + _0x30fc96(0x3b9) + _0x30fc96(0x33f) + _0x30fc96(0x791) + _0x30fc96(0x746) + _0x30fc96(0x8aa) + _0x30fc96(0x518) + _0x30fc96(0x4ef) + _0x30fc96(0x440) + _0x30fc96(0x270) + _0x30fc96(0x556) + _0x30fc96(0x85c) + _0x30fc96(0x601) + _0x30fc96(0x43e) + _0x30fc96(0x5e1) + _0x30fc96(0x169) + _0x30fc96(0x191) + _0x30fc96(0x5d1) + _0x30fc96(0x313) + _0x30fc96(0x787) + _0x30fc96(0x838) + _0x30fc96(0x89f) + _0x30fc96(0x2c7) + _0x30fc96(0x6fc) + _0x30fc96(0x5e8) + _0x30fc96(0x7cb) + _0x30fc96(0x733) + _0x30fc96(0x7a8) + _0x30fc96(0x196) + _0x30fc96(0x4fe) + _0x30fc96(0x587) + _0x30fc96(0x3b1) + _0x30fc96(0x371) + _0x30fc96(0x660) + _0x30fc96(0x123) + _0x30fc96(0x7b5) + _0x30fc96(0x586) + _0x30fc96(0x8db) + _0x30fc96(0x353) + _0x30fc96(0x725) + _0x30fc96(0x441) + _0x30fc96(0x54d) + _0x30fc96(0x74e) + _0x30fc96(0x3a4) + _0x30fc96(0x1ae) + _0x30fc96(0x864) + _0x30fc96(0x504) + _0x30fc96(0x556) + _0x30fc96(0x1ab) + _0x30fc96(0x479) + _0x30fc96(0x904) + _0x30fc96(0x876) + _0x30fc96(0x574) + _0x30fc96(0x547) + _0x30fc96(0x5fd) + _0x30fc96(0x49e)) + (_0x30fc96(0x385) + _0x30fc96(0x241) + _0x30fc96(0x377) + _0x30fc96(0x348) + _0x30fc96(0x54d) + _0x30fc96(0x1de) + _0x30fc96(0x611) + _0x30fc96(0x12f) + _0x30fc96(0x385) + _0x30fc96(0x241) + _0x30fc96(0x7ae) + _0x30fc96(0x72f) + _0x30fc96(0x8da) + _0x30fc96(0x72e) + _0x30fc96(0x219) + _0x30fc96(0x297) + _0x30fc96(0x725) + _0x30fc96(0x916) + _0x30fc96(0x1c8) + _0x30fc96(0x35f) + _0x30fc96(0x602) + _0x30fc96(0x7e3) + _0x30fc96(0x861) + _0x30fc96(0x51a) + _0x30fc96(0x35e) + _0x30fc96(0x725) + _0x30fc96(0x3d0) + _0x30fc96(0x8f4) + _0x30fc96(0x240) + _0x30fc96(0x7a2) + _0x30fc96(0x43b) + _0x30fc96(0x1ba) + _0x30fc96(0x57a) + _0x30fc96(0x1de) + _0x30fc96(0x4c3) + _0x30fc96(0x62f) + _0x30fc96(0x7b5) + _0x30fc96(0x586) + _0x30fc96(0x6d2) + _0x30fc96(0x830) + _0x30fc96(0x363) + _0x30fc96(0x8fc) + _0x30fc96(0x640) + _0x30fc96(0x5e7) + _0x30fc96(0x70a) + _0x30fc96(0x80e) + _0x30fc96(0x44a) + _0x30fc96(0x61a) + _0x30fc96(0x655) + _0x30fc96(0x4d3) + _0x30fc96(0x617) + _0x30fc96(0x5d9) + _0x30fc96(0x3a0) + _0x30fc96(0x254) + _0x30fc96(0x381) + _0x30fc96(0x3a7) + _0x30fc96(0x1d8) + _0x30fc96(0x71c) + _0x30fc96(0x3fb) + _0x30fc96(0x895) + _0x30fc96(0x723) + _0x30fc96(0x559) + _0x30fc96(0x7a3) + _0x30fc96(0x270) + _0x30fc96(0x85a) + _0x30fc96(0x2a6) + _0x30fc96(0x85d) + _0x30fc96(0x617) + _0x30fc96(0x549) + _0x30fc96(0x68a) + _0x30fc96(0x451) + _0x30fc96(0x391) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x68a) + _0x30fc96(0x301) + _0x30fc96(0x2c6) + _0x30fc96(0x170) + _0x30fc96(0x5cd) + _0x30fc96(0x1a5) + _0x30fc96(0x684) + _0x30fc96(0x4eb) + _0x30fc96(0x4c8) + _0x30fc96(0x690) + _0x30fc96(0x8bb) + _0x30fc96(0x263) + _0x30fc96(0x2c3) + _0x30fc96(0x856) + _0x30fc96(0x4c2) + _0x30fc96(0x1bc) + _0x30fc96(0x4b4) + _0x30fc96(0x590) + _0x30fc96(0x729) + _0x30fc96(0x6ce) + _0x30fc96(0x88a) + _0x30fc96(0x303) + _0x30fc96(0x2f8) + _0x30fc96(0x8c0) + _0x30fc96(0x52c) + _0x30fc96(0x850) + _0x30fc96(0x8f3) + _0x30fc96(0x4fc) + _0x30fc96(0x859) + _0x30fc96(0x2e5) + _0x30fc96(0x255) + _0x30fc96(0x77f) + _0x30fc96(0x199) + _0x30fc96(0x454) + _0x30fc96(0x684) + _0x30fc96(0x5f0) + _0x30fc96(0x201) + _0x30fc96(0x628) + _0x30fc96(0x214) + _0x30fc96(0x276) + _0x30fc96(0x524) + _0x30fc96(0x51b) + _0x30fc96(0x30d) + _0x30fc96(0x668) + _0x30fc96(0x483) + _0x30fc96(0x86d) + _0x30fc96(0x3fd) + _0x30fc96(0x902) + _0x30fc96(0x729) + _0x30fc96(0x6ce) + _0x30fc96(0x88a) + _0x30fc96(0x303) + _0x30fc96(0x2f8) + _0x30fc96(0x358) + _0x30fc96(0x2de) + _0x30fc96(0x5f4) + _0x30fc96(0x528) + _0x30fc96(0x52c) + _0x30fc96(0x850) + _0x30fc96(0x870) + _0x30fc96(0x77b) + _0x30fc96(0x633) + _0x30fc96(0x712) + _0x30fc96(0x767) + _0x30fc96(0x3b9) + _0x30fc96(0x766) + _0x30fc96(0x61f) + _0x30fc96(0x646) + _0x30fc96(0x7e0) + _0x30fc96(0x3ba) + _0x30fc96(0x798) + _0x30fc96(0x66e) + _0x30fc96(0x870) + _0x30fc96(0x7a1) + _0x30fc96(0x352) + _0x30fc96(0x279) + _0x30fc96(0x332) + _0x30fc96(0x45f) + _0x30fc96(0x189) + _0x30fc96(0x252) + _0x30fc96(0x7cd) + _0x30fc96(0x7fe) + _0x30fc96(0x505) + _0x30fc96(0x477) + _0x30fc96(0x316) + _0x30fc96(0x1ab) + _0x30fc96(0x4bb) + _0x30fc96(0x3f9) + _0x30fc96(0x658) + _0x30fc96(0x285) + _0x30fc96(0x8c8) + _0x30fc96(0x5bf) + _0x30fc96(0x253) + _0x30fc96(0x123) + _0x30fc96(0x3ce) + _0x30fc96(0x6ea) + _0x30fc96(0x785) + _0x30fc96(0x50f) + _0x30fc96(0x3b9) + _0x30fc96(0x806) + _0x30fc96(0x440) + _0x30fc96(0x315) + _0x30fc96(0x6be) + _0x30fc96(0x512) + _0x30fc96(0x672) + _0x30fc96(0x900) + _0x30fc96(0x2af) + _0x30fc96(0x69a) + _0x30fc96(0x729) + _0x30fc96(0x64d) + _0x30fc96(0x324) + _0x30fc96(0x648) + _0x30fc96(0x44f) + _0x30fc96(0x1c8) + _0x30fc96(0x154) + _0x30fc96(0x283) + _0x30fc96(0x88e) + _0x30fc96(0x516) + _0x30fc96(0x929) + _0x30fc96(0x806) + _0x30fc96(0x92e) + _0x30fc96(0x693) + _0x30fc96(0x121) + _0x30fc96(0x11c) + _0x30fc96(0x870) + _0x30fc96(0x8ee)) + (_0x30fc96(0x234) + _0x30fc96(0x5b7) + _0x30fc96(0x302) + _0x30fc96(0x7de) + _0x30fc96(0x645) + _0x30fc96(0x69f) + _0x30fc96(0x6a4) + _0x30fc96(0x80c) + _0x30fc96(0x74d) + _0x30fc96(0x812) + _0x30fc96(0x5d3) + _0x30fc96(0x43f) + _0x30fc96(0x47c) + _0x30fc96(0x870) + _0x30fc96(0x4eb) + _0x30fc96(0x538) + _0x30fc96(0x80e) + _0x30fc96(0x44a) + _0x30fc96(0x5b9) + _0x30fc96(0x1b2) + _0x30fc96(0x3d2) + _0x30fc96(0x8ca) + _0x30fc96(0x206) + _0x30fc96(0x4eb) + _0x30fc96(0x7ac) + _0x30fc96(0x460) + _0x30fc96(0x3a2) + _0x30fc96(0x6f2) + _0x30fc96(0x423) + _0x30fc96(0x8b8) + _0x30fc96(0x7d4) + _0x30fc96(0x3d8) + _0x30fc96(0x1c9) + _0x30fc96(0x772) + _0x30fc96(0x80b) + _0x30fc96(0x5c9) + _0x30fc96(0x54d) + _0x30fc96(0x580) + _0x30fc96(0x207) + _0x30fc96(0x320) + _0x30fc96(0x56e) + _0x30fc96(0x22d) + _0x30fc96(0x1f4) + _0x30fc96(0x2bd) + _0x30fc96(0x517) + _0x30fc96(0x47e) + _0x30fc96(0x33a) + _0x30fc96(0x598) + _0x30fc96(0x52b) + _0x30fc96(0x18d) + _0x30fc96(0x435) + _0x30fc96(0x120) + _0x30fc96(0x795) + _0x30fc96(0x56f) + _0x30fc96(0x686) + _0x30fc96(0x686) + _0x30fc96(0x1fa) + _0x30fc96(0x7a3) + _0x30fc96(0x275) + _0x30fc96(0x28c) + _0x30fc96(0x208) + _0x30fc96(0x793) + _0x30fc96(0x428) + _0x30fc96(0x867) + _0x30fc96(0x65d) + _0x30fc96(0x509) + _0x30fc96(0x5f2) + _0x30fc96(0x804) + _0x30fc96(0x1f6) + _0x30fc96(0x666) + _0x30fc96(0x2ea) + _0x30fc96(0x1c5) + _0x30fc96(0x8c4) + _0x30fc96(0x32d) + _0x30fc96(0x3d8) + _0x30fc96(0x250) + _0x30fc96(0x8dd) + _0x30fc96(0x4bb) + _0x30fc96(0x3f9) + _0x30fc96(0x658) + _0x30fc96(0x285) + _0x30fc96(0x8c8) + _0x30fc96(0x84d) + _0x30fc96(0x16e) + _0x30fc96(0x910) + _0x30fc96(0x123) + _0x30fc96(0x3ce) + _0x30fc96(0x6ea) + _0x30fc96(0x785) + _0x30fc96(0x5b4) + _0x30fc96(0x594) + _0x30fc96(0x681) + _0x30fc96(0x14e) + _0x30fc96(0x5bc) + _0x30fc96(0x315) + _0x30fc96(0x6be) + _0x30fc96(0x512) + _0x30fc96(0x24e) + _0x30fc96(0x189) + _0x30fc96(0x58e) + _0x30fc96(0x7ac) + _0x30fc96(0x460) + _0x30fc96(0x253) + _0x30fc96(0x1a5) + _0x30fc96(0x40b) + _0x30fc96(0x8ae) + _0x30fc96(0x652) + _0x30fc96(0x655) + _0x30fc96(0x1d4) + _0x30fc96(0x594) + _0x30fc96(0x25b) + _0x30fc96(0x3f7) + _0x30fc96(0x460) + _0x30fc96(0x253) + _0x30fc96(0x1a5) + _0x30fc96(0x2c9) + _0x30fc96(0x5f5) + _0x30fc96(0x413) + _0x30fc96(0x870) + _0x30fc96(0x77b) + _0x30fc96(0x29e) + _0x30fc96(0x651) + _0x30fc96(0x3af) + _0x30fc96(0x30e) + _0x30fc96(0x13c) + _0x30fc96(0x84b) + _0x30fc96(0x32b) + _0x30fc96(0x4ad) + _0x30fc96(0x870) + _0x30fc96(0x1e5) + _0x30fc96(0x2ba) + _0x30fc96(0x2c4) + _0x30fc96(0x8d9) + _0x30fc96(0x8be) + _0x30fc96(0x82d) + _0x30fc96(0x7a3) + _0x30fc96(0x47f) + _0x30fc96(0x528) + _0x30fc96(0x718) + _0x30fc96(0x3bb) + _0x30fc96(0x480) + _0x30fc96(0x8ed) + _0x30fc96(0x398) + _0x30fc96(0x88c) + _0x30fc96(0x275) + _0x30fc96(0x28c) + _0x30fc96(0x208) + _0x30fc96(0x793) + _0x30fc96(0x397) + _0x30fc96(0x484) + _0x30fc96(0x253) + _0x30fc96(0x491) + _0x30fc96(0x228) + _0x30fc96(0x67b) + _0x30fc96(0x247) + _0x30fc96(0x58e) + _0x30fc96(0x254) + _0x30fc96(0x370) + _0x30fc96(0x713) + _0x30fc96(0x7a8) + _0x30fc96(0x5b7) + _0x30fc96(0x302) + _0x30fc96(0x7de) + _0x30fc96(0x5d2) + _0x30fc96(0x594) + _0x30fc96(0x7bb) + _0x30fc96(0x76d) + _0x30fc96(0x62f) + _0x30fc96(0x7b5) + _0x30fc96(0x7c5) + _0x30fc96(0x1a4) + _0x30fc96(0x124) + _0x30fc96(0x5f3) + _0x30fc96(0x77c) + _0x30fc96(0x8b9) + _0x30fc96(0x4ca) + _0x30fc96(0x622) + _0x30fc96(0x445) + _0x30fc96(0x485) + _0x30fc96(0x544) + _0x30fc96(0x39a) + _0x30fc96(0x430) + _0x30fc96(0x299) + _0x30fc96(0x642) + _0x30fc96(0x25e) + _0x30fc96(0x88c) + _0x30fc96(0x7a1) + _0x30fc96(0x352) + _0x30fc96(0x133) + _0x30fc96(0x332) + _0x30fc96(0x8f7) + _0x30fc96(0x24b) + _0x30fc96(0x189) + _0x30fc96(0x897) + _0x30fc96(0x590) + _0x30fc96(0x658) + _0x30fc96(0x46a) + _0x30fc96(0x54a) + _0x30fc96(0x6df) + _0x30fc96(0x1a3)) + (_0x30fc96(0x77c) + _0x30fc96(0x445) + _0x30fc96(0x90f) + _0x30fc96(0x3c3) + _0x30fc96(0x7bc) + _0x30fc96(0x296) + _0x30fc96(0x505) + _0x30fc96(0x477) + _0x30fc96(0x316) + _0x30fc96(0x85c) + _0x30fc96(0x600) + _0x30fc96(0x460) + _0x30fc96(0x5fe) + _0x30fc96(0x153) + _0x30fc96(0x2fb) + _0x30fc96(0x8f0) + _0x30fc96(0x43c) + _0x30fc96(0x338) + _0x30fc96(0x799) + _0x30fc96(0x17e) + _0x30fc96(0x322) + _0x30fc96(0x5d1) + _0x30fc96(0x286) + _0x30fc96(0x787) + _0x30fc96(0x56d) + _0x30fc96(0x779) + _0x30fc96(0x62d) + _0x30fc96(0x15d) + _0x30fc96(0x463) + _0x30fc96(0x5b5) + _0x30fc96(0x15a) + _0x30fc96(0x6a3) + _0x30fc96(0x873) + _0x30fc96(0x658) + _0x30fc96(0x46a) + _0x30fc96(0x1cf) + _0x30fc96(0x6ea) + _0x30fc96(0x809) + _0x30fc96(0x503) + _0x30fc96(0x659) + _0x30fc96(0x6b5) + _0x30fc96(0x48f) + _0x30fc96(0x8f2) + _0x30fc96(0x72a) + _0x30fc96(0x1e3) + _0x30fc96(0x715) + _0x30fc96(0x788) + _0x30fc96(0x40c) + _0x30fc96(0x503) + _0x30fc96(0x659) + _0x30fc96(0x651) + _0x30fc96(0x3af) + _0x30fc96(0x30e) + _0x30fc96(0x13c) + _0x30fc96(0x84b) + _0x30fc96(0x32b) + _0x30fc96(0x266) + _0x30fc96(0x2fc) + _0x30fc96(0x1df) + _0x30fc96(0x7c4) + _0x30fc96(0x87a) + _0x30fc96(0x3de) + _0x30fc96(0x2fa) + _0x30fc96(0x206) + _0x30fc96(0x85a) + _0x30fc96(0x2a6) + _0x30fc96(0x675) + _0x30fc96(0x39a) + _0x30fc96(0x23e) + _0x30fc96(0x3c9) + _0x30fc96(0x870) + _0x30fc96(0x77b) + _0x30fc96(0x6b5) + _0x30fc96(0x3a3) + _0x30fc96(0x433) + _0x30fc96(0x8a4) + _0x30fc96(0x7c0) + _0x30fc96(0x5e4) + _0x30fc96(0x2ce) + _0x30fc96(0x82c) + _0x30fc96(0x382) + _0x30fc96(0x335) + _0x30fc96(0x4ac) + _0x30fc96(0x14a) + _0x30fc96(0x870) + _0x30fc96(0x41d) + _0x30fc96(0x2f3) + _0x30fc96(0x52d) + _0x30fc96(0x40f) + _0x30fc96(0x6b5) + _0x30fc96(0x4b6) + _0x30fc96(0x31b) + _0x30fc96(0x61c) + _0x30fc96(0x870) + _0x30fc96(0x4de) + _0x30fc96(0x18b) + _0x30fc96(0x720) + _0x30fc96(0x6ce) + _0x30fc96(0x2f3) + _0x30fc96(0x329) + _0x30fc96(0x56a) + _0x30fc96(0x1a8) + _0x30fc96(0x623) + _0x30fc96(0x81a) + _0x30fc96(0x52d) + _0x30fc96(0x60a) + _0x30fc96(0x583) + _0x30fc96(0x81a) + _0x30fc96(0x8e7) + _0x30fc96(0x902) + _0x30fc96(0x58d) + _0x30fc96(0x5c8) + _0x30fc96(0x6bd) + _0x30fc96(0x6cb) + _0x30fc96(0x884) + _0x30fc96(0x4f6) + _0x30fc96(0x1b0) + _0x30fc96(0x328) + _0x30fc96(0x8a0) + _0x30fc96(0x293) + _0x30fc96(0x789) + _0x30fc96(0x883) + _0x30fc96(0x306) + _0x30fc96(0x721) + _0x30fc96(0x4f2) + _0x30fc96(0x870) + _0x30fc96(0x528) + _0x30fc96(0x311) + _0x30fc96(0x638) + _0x30fc96(0x224) + _0x30fc96(0x490) + _0x30fc96(0x1c8) + _0x30fc96(0x573) + _0x30fc96(0x906) + _0x30fc96(0x826) + _0x30fc96(0x1eb) + _0x30fc96(0x702) + _0x30fc96(0x6ae) + _0x30fc96(0x7a5) + _0x30fc96(0x354) + _0x30fc96(0x3fa) + _0x30fc96(0x1e0) + _0x30fc96(0x140) + _0x30fc96(0x152) + _0x30fc96(0x540) + _0x30fc96(0x467) + _0x30fc96(0x72d) + _0x30fc96(0x55d) + _0x30fc96(0x188) + _0x30fc96(0x3fa) + _0x30fc96(0x86b) + _0x30fc96(0x73e) + _0x30fc96(0x134) + _0x30fc96(0x383) + _0x30fc96(0x54c) + _0x30fc96(0x635) + _0x30fc96(0x3bc) + _0x30fc96(0x739) + _0x30fc96(0x5fa) + _0x30fc96(0x92b) + _0x30fc96(0x531) + _0x30fc96(0x168) + _0x30fc96(0x84e) + _0x30fc96(0x7ab) + _0x30fc96(0x573) + _0x30fc96(0x14b) + _0x30fc96(0x8ef) + _0x30fc96(0x656) + _0x30fc96(0x2de) + _0x30fc96(0x88c) + _0x30fc96(0x5ea) + _0x30fc96(0x3fa) + _0x30fc96(0x7db) + _0x30fc96(0x2cb) + _0x30fc96(0x42b) + _0x30fc96(0x67f) + _0x30fc96(0x576) + _0x30fc96(0x7f4) + _0x30fc96(0x4a3) + _0x30fc96(0x41c) + _0x30fc96(0x7a1) + _0x30fc96(0x352) + _0x30fc96(0x90c) + _0x30fc96(0x826) + _0x30fc96(0x7ea) + _0x30fc96(0x2bc) + _0x30fc96(0x4c3) + '\x0a')), STATUS_LINE_CONTENT = _0x30fc96(0x31f) + _0x30fc96(0x380) + _0x30fc96(0x631) + _0x30fc96(0x24a) + _0x30fc96(0x393) + _0x30fc96(0x6ec) + _0x30fc96(0x5d7) + _0x30fc96(0x2ef) + _0x30fc96(0x141) + _0x30fc96(0x4a8) + _0x30fc96(0x7cb) + _0x30fc96(0x32f) + _0x30fc96(0x3ad) + _0x30fc96(0x19a) + _0x30fc96(0x2fd) + _0x30fc96(0x419) + _0x30fc96(0x1d3) + _0x30fc96(0x643) + _0x30fc96(0x2a2) + _0x30fc96(0x4d7) + _0x30fc96(0x3ec) + _0x30fc96(0x8ff) + _0x30fc96(0x130) + _0x30fc96(0x3dc) + _0x30fc96(0x730) + _0x30fc96(0x2e1) + _0x30fc96(0x82a) + _0x30fc96(0x29c) + _0x30fc96(0x7fd) + _0x30fc96(0x14c) + _0x30fc96(0x6aa) + _0x30fc96(0x1c6) + _0x30fc96(0x677) + _0x30fc96(0x337) + _0x30fc96(0x13b) + _0x30fc96(0x73c) + _0x30fc96(0x248) + _0x30fc96(0x831) + _0x30fc96(0x54b) + _0x30fc96(0x732) + STATUS_LINE_VERSION + (_0x30fc96(0x5b6) + _0x30fc96(0x75d) + _0x30fc96(0x901) + _0x30fc96(0x2a5) + _0x30fc96(0x6e2) + _0x30fc96(0x6a7) + _0x30fc96(0x56b) + _0x30fc96(0x7fc) + _0x30fc96(0x42a) + _0x30fc96(0x800) + _0x30fc96(0x6e2) + _0x30fc96(0x678) + _0x30fc96(0x6eb) + _0x30fc96(0x519) + _0x30fc96(0x6a8) + _0x30fc96(0x27c) + _0x30fc96(0x62b) + _0x30fc96(0x8ea) + _0x30fc96(0x29a) + _0x30fc96(0x624) + _0x30fc96(0x1b9) + _0x30fc96(0x41a)) + STATUS_LINE_VERSION + (_0x30fc96(0x91b) + _0x30fc96(0x7d7) + _0x30fc96(0x768) + _0x30fc96(0x3c0) + _0x30fc96(0x288) + _0x30fc96(0x3c0) + _0x30fc96(0x662) + _0x30fc96(0x74f) + _0x30fc96(0x8bc) + _0x30fc96(0x48c) + _0x30fc96(0x5a1) + _0x30fc96(0x73d) + _0x30fc96(0x8c5) + _0x30fc96(0x6b8) + _0x30fc96(0x239) + _0x30fc96(0x5ff) + _0x30fc96(0x4f3) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x5e3) + _0x30fc96(0x560) + _0x30fc96(0x462) + _0x30fc96(0x7bd) + _0x30fc96(0x907) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x16a) + _0x30fc96(0x87d) + _0x30fc96(0x487) + _0x30fc96(0x6c2) + _0x30fc96(0x1ff) + _0x30fc96(0x84a) + _0x30fc96(0x66d) + _0x30fc96(0x527) + _0x30fc96(0x65e) + _0x30fc96(0x4d6) + _0x30fc96(0x406) + _0x30fc96(0x8ec) + _0x30fc96(0x41f) + _0x30fc96(0x5bd) + _0x30fc96(0x4df) + _0x30fc96(0x545) + _0x30fc96(0x78c) + _0x30fc96(0x7f9) + _0x30fc96(0x6c2) + _0x30fc96(0x2a1) + _0x30fc96(0x84d) + _0x30fc96(0x30c) + _0x30fc96(0x3d6) + _0x30fc96(0x3c5) + _0x30fc96(0x3ab) + _0x30fc96(0x48a) + _0x30fc96(0x5ec) + _0x30fc96(0x80f) + _0x30fc96(0x7c1) + _0x30fc96(0x6b4) + _0x30fc96(0x67e) + _0x30fc96(0x785) + _0x30fc96(0x818) + _0x30fc96(0x28b) + _0x30fc96(0x764) + _0x30fc96(0x3bf) + _0x30fc96(0x691) + _0x30fc96(0x4c1) + _0x30fc96(0x453) + _0x30fc96(0x8d0) + _0x30fc96(0x573) + _0x30fc96(0x3aa) + _0x30fc96(0x6b6) + _0x30fc96(0x1e1) + _0x30fc96(0x3be) + _0x30fc96(0x79b) + _0x30fc96(0x28e) + _0x30fc96(0x8eb) + _0x30fc96(0x304) + _0x30fc96(0x256) + _0x30fc96(0x30b) + _0x30fc96(0x27f) + _0x30fc96(0x3ef) + _0x30fc96(0x4e4) + _0x30fc96(0x90d) + _0x30fc96(0x573) + _0x30fc96(0x1e5) + _0x30fc96(0x4d0) + _0x30fc96(0x3d3) + _0x30fc96(0x58c) + _0x30fc96(0x426) + _0x30fc96(0x49d) + _0x30fc96(0x84b) + _0x30fc96(0x711) + _0x30fc96(0x92a) + _0x30fc96(0x53c) + _0x30fc96(0x6ed) + _0x30fc96(0x820) + _0x30fc96(0x212) + _0x30fc96(0x2d7) + _0x30fc96(0x6c4) + _0x30fc96(0x573) + _0x30fc96(0x5b8) + _0x30fc96(0x346) + _0x30fc96(0x58f) + _0x30fc96(0x16f) + _0x30fc96(0x839) + _0x30fc96(0x345) + _0x30fc96(0x511) + _0x30fc96(0x870) + _0x30fc96(0x470) + _0x30fc96(0x129) + _0x30fc96(0x860) + _0x30fc96(0x8b9) + _0x30fc96(0x8dc) + _0x30fc96(0x8de) + _0x30fc96(0x551) + _0x30fc96(0x330) + _0x30fc96(0x8cc) + _0x30fc96(0x543) + _0x30fc96(0x7cf) + _0x30fc96(0x492) + _0x30fc96(0x5ba) + _0x30fc96(0x5a8) + _0x30fc96(0x21d) + _0x30fc96(0x874) + _0x30fc96(0x500) + _0x30fc96(0x1f8) + _0x30fc96(0x4c4) + _0x30fc96(0x7aa) + _0x30fc96(0x260) + _0x30fc96(0x1bf) + _0x30fc96(0x782) + _0x30fc96(0x21d) + _0x30fc96(0x422) + _0x30fc96(0x81b) + _0x30fc96(0x319) + _0x30fc96(0x70e) + _0x30fc96(0x546) + _0x30fc96(0x502) + _0x30fc96(0x627) + _0x30fc96(0x3de) + _0x30fc96(0x8ac) + _0x30fc96(0x6d6) + _0x30fc96(0x7c8) + _0x30fc96(0x5ba) + _0x30fc96(0x4cd) + _0x30fc96(0x21c) + _0x30fc96(0x4af) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x141) + _0x30fc96(0x6bb) + _0x30fc96(0x144) + _0x30fc96(0x34d) + _0x30fc96(0x870) + _0x30fc96(0x52e) + _0x30fc96(0x34c) + _0x30fc96(0x575) + _0x30fc96(0x164) + _0x30fc96(0x738) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x3c2) + _0x30fc96(0x870) + _0x30fc96(0x1d2) + _0x30fc96(0x7a7) + _0x30fc96(0x5f6) + _0x30fc96(0x1bf) + _0x30fc96(0x72c) + _0x30fc96(0x15e) + _0x30fc96(0x4af) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x34a) + _0x30fc96(0x591) + _0x30fc96(0x32e) + _0x30fc96(0x4ab) + _0x30fc96(0x461) + _0x30fc96(0x294) + (_0x30fc96(0x573) + _0x30fc96(0x260) + _0x30fc96(0x1bf) + _0x30fc96(0x6e9) + _0x30fc96(0x8b4) + _0x30fc96(0x6c3) + _0x30fc96(0x704) + _0x30fc96(0x321) + _0x30fc96(0x34b) + _0x30fc96(0x273) + _0x30fc96(0x909) + _0x30fc96(0x376) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x8b9) + _0x30fc96(0x39e) + _0x30fc96(0x6ee) + _0x30fc96(0x18f) + _0x30fc96(0x591) + _0x30fc96(0x37a) + _0x30fc96(0x911) + _0x30fc96(0x80d) + _0x30fc96(0x36d) + _0x30fc96(0x215) + _0x30fc96(0x7ef) + _0x30fc96(0x42e) + _0x30fc96(0x2d4) + _0x30fc96(0x77d) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x1cd) + _0x30fc96(0x6e8) + _0x30fc96(0x3c4) + _0x30fc96(0x50a) + _0x30fc96(0x3e3) + _0x30fc96(0x37e) + _0x30fc96(0x3f8) + _0x30fc96(0x7f2) + _0x30fc96(0x870) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x8d1) + _0x30fc96(0x3eb) + _0x30fc96(0x4ba) + _0x30fc96(0x6f0) + _0x30fc96(0x82e) + _0x30fc96(0x197) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x688) + _0x30fc96(0x571) + _0x30fc96(0x137) + _0x30fc96(0x2ad) + _0x30fc96(0x909) + _0x30fc96(0x8b4) + _0x30fc96(0x854) + _0x30fc96(0x704) + _0x30fc96(0x819) + _0x30fc96(0x8e5) + _0x30fc96(0x5e5) + _0x30fc96(0x90d) + _0x30fc96(0x58c) + _0x30fc96(0x473) + _0x30fc96(0x5e2) + _0x30fc96(0x5ee) + _0x30fc96(0x91a) + _0x30fc96(0x8b5) + _0x30fc96(0x8d7) + _0x30fc96(0x26a) + _0x30fc96(0x870) + _0x30fc96(0x3ca) + _0x30fc96(0x46b) + _0x30fc96(0x3c5) + _0x30fc96(0x273) + _0x30fc96(0x719) + _0x30fc96(0x3b9) + _0x30fc96(0x6c7) + _0x30fc96(0x6a0) + _0x30fc96(0x79c) + _0x30fc96(0x55e) + _0x30fc96(0x7bf) + _0x30fc96(0x3b9) + _0x30fc96(0x811) + _0x30fc96(0x198) + _0x30fc96(0x671) + _0x30fc96(0x122) + _0x30fc96(0x8ad) + _0x30fc96(0x913) + _0x30fc96(0x870) + _0x30fc96(0x41b) + _0x30fc96(0x290) + _0x30fc96(0x6fd) + _0x30fc96(0x73f) + _0x30fc96(0x7e4) + _0x30fc96(0x3ee) + _0x30fc96(0x55a) + _0x30fc96(0x573) + _0x30fc96(0x68a) + _0x30fc96(0x3d1) + _0x30fc96(0x203) + _0x30fc96(0x4af) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x1e5) + _0x30fc96(0x8d4) + _0x30fc96(0x1af) + _0x30fc96(0x143) + _0x30fc96(0x163) + _0x30fc96(0x5b2) + _0x30fc96(0x1c4) + _0x30fc96(0x73a) + _0x30fc96(0x790) + _0x30fc96(0x90d) + _0x30fc96(0x58c) + _0x30fc96(0x473) + _0x30fc96(0x5e2) + _0x30fc96(0x5ee) + _0x30fc96(0x91a) + _0x30fc96(0x8b5) + _0x30fc96(0x8d7) + _0x30fc96(0x26a) + _0x30fc96(0x870) + _0x30fc96(0x912) + _0x30fc96(0x4c2) + _0x30fc96(0x40e) + _0x30fc96(0x16f) + _0x30fc96(0x69d) + _0x30fc96(0x541) + _0x30fc96(0x5ae) + _0x30fc96(0x52a) + _0x30fc96(0x870) + _0x30fc96(0x470) + _0x30fc96(0x151) + _0x30fc96(0x340) + _0x30fc96(0x11d) + _0x30fc96(0x3f3) + _0x30fc96(0x835) + _0x30fc96(0x6e5) + _0x30fc96(0x460) + _0x30fc96(0x3fe) + _0x30fc96(0x2a9) + _0x30fc96(0x832) + _0x30fc96(0x1a9) + _0x30fc96(0x4a2) + _0x30fc96(0x7a6) + _0x30fc96(0x260) + _0x30fc96(0x265) + _0x30fc96(0x73b) + _0x30fc96(0x545) + _0x30fc96(0x3b0) + _0x30fc96(0x59f) + _0x30fc96(0x401) + _0x30fc96(0x327) + _0x30fc96(0x895) + _0x30fc96(0x723) + _0x30fc96(0x559) + _0x30fc96(0x870) + _0x30fc96(0x41b) + _0x30fc96(0x6f9) + _0x30fc96(0x17b) + _0x30fc96(0x305) + _0x30fc96(0x3ee) + _0x30fc96(0x55a) + _0x30fc96(0x573) + _0x30fc96(0x68a) + _0x30fc96(0x3d1) + _0x30fc96(0x203) + _0x30fc96(0x4af) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x1e5) + _0x30fc96(0x8d4) + _0x30fc96(0x1af) + _0x30fc96(0x7c7) + _0x30fc96(0x464) + _0x30fc96(0x68e) + _0x30fc96(0x73a) + _0x30fc96(0x790) + _0x30fc96(0x90d) + _0x30fc96(0x58c) + _0x30fc96(0x473) + _0x30fc96(0x5e2) + _0x30fc96(0x5ee) + _0x30fc96(0x91a) + _0x30fc96(0x8b5) + _0x30fc96(0x8d7) + _0x30fc96(0x26a) + _0x30fc96(0x870) + _0x30fc96(0x912) + _0x30fc96(0x4c2) + _0x30fc96(0x40e) + _0x30fc96(0x16f) + _0x30fc96(0x744) + _0x30fc96(0x39d) + _0x30fc96(0x5fb) + _0x30fc96(0x7f5) + _0x30fc96(0x18a) + _0x30fc96(0x844) + _0x30fc96(0x195)) + (_0x30fc96(0x870) + _0x30fc96(0x59d) + _0x30fc96(0x3da) + _0x30fc96(0x3d7) + _0x30fc96(0x55e) + _0x30fc96(0x201) + _0x30fc96(0x8b9) + _0x30fc96(0x8dc) + _0x30fc96(0x4e0) + _0x30fc96(0x6ac) + _0x30fc96(0x4e5) + _0x30fc96(0x36f) + _0x30fc96(0x84f) + _0x30fc96(0x2a5) + _0x30fc96(0x6e2) + _0x30fc96(0x6a7) + _0x30fc96(0x56b) + _0x30fc96(0x7fc) + _0x30fc96(0x42a) + _0x30fc96(0x2b8) + _0x30fc96(0x3df) + _0x30fc96(0x200) + _0x30fc96(0x39f) + _0x30fc96(0x29c) + _0x30fc96(0x4f1) + _0x30fc96(0x61e) + _0x30fc96(0x2b8) + _0x30fc96(0x86f) + _0x30fc96(0x815) + _0x30fc96(0x6a0) + _0x30fc96(0x333) + _0x30fc96(0x482) + _0x30fc96(0x1ef) + _0x30fc96(0x8bd) + _0x30fc96(0x5df) + _0x30fc96(0x7eb) + _0x30fc96(0x138) + _0x30fc96(0x5ec) + _0x30fc96(0x231) + _0x30fc96(0x5af) + _0x30fc96(0x342) + _0x30fc96(0x13d) + _0x30fc96(0x3bf) + _0x30fc96(0x2c2) + _0x30fc96(0x55a) + _0x30fc96(0x573) + _0x30fc96(0x3a1) + _0x30fc96(0x245) + _0x30fc96(0x181) + _0x30fc96(0x573) + _0x30fc96(0x5c3) + _0x30fc96(0x237) + _0x30fc96(0x333) + _0x30fc96(0x6d6) + _0x30fc96(0x323) + _0x30fc96(0x17c) + _0x30fc96(0x42f) + _0x30fc96(0x374) + _0x30fc96(0x51e) + _0x30fc96(0x85c) + _0x30fc96(0x280) + _0x30fc96(0x388) + _0x30fc96(0x771) + _0x30fc96(0x7ed) + _0x30fc96(0x870) + _0x30fc96(0x471) + _0x30fc96(0x1cc) + _0x30fc96(0x1d0) + _0x30fc96(0x1ca) + _0x30fc96(0x8c3) + _0x30fc96(0x6e4) + _0x30fc96(0x802) + _0x30fc96(0x56b) + _0x30fc96(0x51c) + _0x30fc96(0x528) + _0x30fc96(0x7e7) + _0x30fc96(0x51e) + _0x30fc96(0x85c) + _0x30fc96(0x626) + _0x30fc96(0x450) + _0x30fc96(0x771) + _0x30fc96(0x458) + _0x30fc96(0x7ff) + _0x30fc96(0x735) + _0x30fc96(0x552) + _0x30fc96(0x870) + _0x30fc96(0x912) + _0x30fc96(0x4c2) + _0x30fc96(0x367) + _0x30fc96(0x757) + _0x30fc96(0x762) + _0x30fc96(0x896) + _0x30fc96(0x8b6) + _0x30fc96(0x41e) + _0x30fc96(0x823) + _0x30fc96(0x696) + _0x30fc96(0x1bd) + _0x30fc96(0x8a5) + _0x30fc96(0x7d6) + _0x30fc96(0x589) + _0x30fc96(0x189) + _0x30fc96(0x21b) + _0x30fc96(0x553) + _0x30fc96(0x1e9) + _0x30fc96(0x260) + _0x30fc96(0x6be) + _0x30fc96(0x280) + _0x30fc96(0x541) + _0x30fc96(0x5ae) + _0x30fc96(0x705) + _0x30fc96(0x870) + _0x30fc96(0x41b) + _0x30fc96(0x6f9) + _0x30fc96(0x1cb) + _0x30fc96(0x573) + _0x30fc96(0x5c3) + _0x30fc96(0x237) + _0x30fc96(0x814) + _0x30fc96(0x76a) + _0x30fc96(0x332) + _0x30fc96(0x39b) + _0x30fc96(0x452) + _0x30fc96(0x46d) + _0x30fc96(0x7c3) + _0x30fc96(0x785) + _0x30fc96(0x825) + _0x30fc96(0x3b9) + _0x30fc96(0x806) + _0x30fc96(0x92e) + _0x30fc96(0x7b4) + _0x30fc96(0x6d9) + _0x30fc96(0x4c9) + _0x30fc96(0x21b) + _0x30fc96(0x553) + _0x30fc96(0x1e9) + _0x30fc96(0x743) + _0x30fc96(0x38e) + _0x30fc96(0x674) + _0x30fc96(0x489) + _0x30fc96(0x8ba) + _0x30fc96(0x5d8) + _0x30fc96(0x3e9) + _0x30fc96(0x729) + _0x30fc96(0x8a6) + _0x30fc96(0x136) + _0x30fc96(0x324) + _0x30fc96(0x648) + _0x30fc96(0x44f) + _0x30fc96(0x2db) + _0x30fc96(0x573) + _0x30fc96(0x5c3) + _0x30fc96(0x237) + _0x30fc96(0x814) + _0x30fc96(0x60f) + _0x30fc96(0x332) + _0x30fc96(0x822) + _0x30fc96(0x6fe) + _0x30fc96(0x16c) + _0x30fc96(0x333) + _0x30fc96(0x45a) + _0x30fc96(0x7b9) + _0x30fc96(0x6b7) + _0x30fc96(0x247) + _0x30fc96(0x658) + _0x30fc96(0x167) + _0x30fc96(0x922) + _0x30fc96(0x802) + _0x30fc96(0x56b) + _0x30fc96(0x51c) + _0x30fc96(0x906) + _0x30fc96(0x19c) + _0x30fc96(0x33c) + _0x30fc96(0x8b8) + _0x30fc96(0x674) + _0x30fc96(0x4a6) + _0x30fc96(0x444) + _0x30fc96(0x4f8) + _0x30fc96(0x1f7) + _0x30fc96(0x870) + _0x30fc96(0x783) + _0x30fc96(0x582) + _0x30fc96(0x6cc) + _0x30fc96(0x294) + _0x30fc96(0x573) + _0x30fc96(0x840) + _0x30fc96(0x53f) + _0x30fc96(0x5a5) + _0x30fc96(0x42d) + _0x30fc96(0x289) + _0x30fc96(0x19c) + _0x30fc96(0x33c) + _0x30fc96(0x41b) + _0x30fc96(0x5c7) + _0x30fc96(0x20b) + _0x30fc96(0x2e0) + _0x30fc96(0x5a3) + _0x30fc96(0x63b) + _0x30fc96(0x797) + _0x30fc96(0x573) + _0x30fc96(0x528)) + (_0x30fc96(0x840) + _0x30fc96(0x36a) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x68a) + _0x30fc96(0x863) + _0x30fc96(0x53a) + _0x30fc96(0x7b7) + _0x30fc96(0x4d1) + _0x30fc96(0x594) + _0x30fc96(0x210) + _0x30fc96(0x325) + _0x30fc96(0x41e) + _0x30fc96(0x823) + _0x30fc96(0x64c) + _0x30fc96(0x77c) + _0x30fc96(0x1be) + _0x30fc96(0x11a) + _0x30fc96(0x317) + _0x30fc96(0x5b8) + _0x30fc96(0x346) + _0x30fc96(0x5da) + _0x30fc96(0x19b) + _0x30fc96(0x6a6) + _0x30fc96(0x294) + _0x30fc96(0x5d4) + _0x30fc96(0x870) + _0x30fc96(0x76e) + _0x30fc96(0x5c6) + _0x30fc96(0x5ca) + _0x30fc96(0x53e) + _0x30fc96(0x409) + _0x30fc96(0x570) + _0x30fc96(0x44d) + _0x30fc96(0x4c0) + _0x30fc96(0x4a1) + _0x30fc96(0x51d) + _0x30fc96(0x1fe) + _0x30fc96(0x634) + _0x30fc96(0x90d) + _0x30fc96(0x573) + _0x30fc96(0x242) + _0x30fc96(0x685) + _0x30fc96(0x79e) + _0x30fc96(0x522) + _0x30fc96(0x47a) + _0x30fc96(0x29f) + _0x30fc96(0x756) + _0x30fc96(0x523) + _0x30fc96(0x173) + _0x30fc96(0x573) + _0x30fc96(0x3b4) + _0x30fc96(0x3da) + _0x30fc96(0x77a) + _0x30fc96(0x142) + _0x30fc96(0x83c) + _0x30fc96(0x573) + _0x30fc96(0x65f) + _0x30fc96(0x4f4) + _0x30fc96(0x57b) + _0x30fc96(0x298) + _0x30fc96(0x81c) + _0x30fc96(0x8b9) + _0x30fc96(0x39e) + _0x30fc96(0x25d) + _0x30fc96(0x4ea) + _0x30fc96(0x90b) + _0x30fc96(0x573) + _0x30fc96(0x7c3) + _0x30fc96(0x585) + _0x30fc96(0x673) + _0x30fc96(0x357) + _0x30fc96(0x4a4) + _0x30fc96(0x608) + _0x30fc96(0x714) + _0x30fc96(0x339) + _0x30fc96(0x5f1) + _0x30fc96(0x870) + _0x30fc96(0x743) + _0x30fc96(0x38e) + _0x30fc96(0x4f4) + _0x30fc96(0x229) + _0x30fc96(0x573) + _0x30fc96(0x573) + _0x30fc96(0x4dd) + _0x30fc96(0x356) + _0x30fc96(0x71d) + _0x30fc96(0x4e9) + _0x30fc96(0x823) + _0x30fc96(0x573) + _0x30fc96(0x654) + _0x30fc96(0x5ef) + _0x30fc96(0x173) + _0x30fc96(0x47b) + _0x30fc96(0x8cf) + _0x30fc96(0x5e2) + _0x30fc96(0x5ee) + _0x30fc96(0x91a) + _0x30fc96(0x74b) + _0x30fc96(0x870) + _0x30fc96(0x76e) + _0x30fc96(0x4f9) + _0x30fc96(0x459) + _0x30fc96(0x7d3) + _0x30fc96(0x5cc) + _0x30fc96(0x4a3) + _0x30fc96(0x6ca) + _0x30fc96(0x488) + _0x30fc96(0x557) + _0x30fc96(0x710) + _0x30fc96(0x794) + _0x30fc96(0x24f) + _0x30fc96(0x573) + _0x30fc96(0x654) + _0x30fc96(0x5ef) + _0x30fc96(0x90d) + _0x30fc96(0x58c) + _0x30fc96(0x8e8) + _0x30fc96(0x807) + _0x30fc96(0x3f4) + _0x30fc96(0x573) + _0x30fc96(0x6af) + _0x30fc96(0x89c) + _0x30fc96(0x891) + _0x30fc96(0x885) + _0x30fc96(0x3b8) + _0x30fc96(0x596) + _0x30fc96(0x284) + _0x30fc96(0x232) + _0x30fc96(0x44b) + _0x30fc96(0x3f0) + _0x30fc96(0x5e9) + _0x30fc96(0x573) + _0x30fc96(0x4a0) + _0x30fc96(0x3e8) + _0x30fc96(0x23f) + _0x30fc96(0x615) + _0x30fc96(0x1b3) + _0x30fc96(0x4aa) + _0x30fc96(0x55c) + _0x30fc96(0x35b) + _0x30fc96(0x294) + _0x30fc96(0x700) + _0x30fc96(0x51f)));
28
- function _0x2ea4() {
29
- const _0x3b2df2 = [
30
- 'lYbjz24',
31
- 'y2fJAgu',
32
- 'ieDbtdO',
33
- 'zsbZDge',
34
- 'y29UC3q',
35
- 'BMnLzca',
36
- 'jYKkica',
37
- 'zsbJywm',
38
- 'ihrYEsa',
39
- 'FcbWCM8',
40
- 'Aw9UjYW',
41
- 'z3nFCge',
42
- 'AwyGC3K',
43
- 'EYbZExm',
44
- 'q2HLy2S',
45
- 'zw1LDhi',
46
- 'C3nHz2u',
47
- 'Esb7cIa',
48
- 'BMfIBgu',
49
- 'BIGPoWO',
50
- 'Bxb0ihq',
51
- 'Ac5OB20',
52
- 'tI5Wyxi',
53
- 'kgf1DgG',
54
- 'B3jLihm',
55
- 'zxH0kcK',
56
- 'lY8Gq2G',
57
- 'CM4GDhi',
58
- '4PQG77IpieDbta',
59
- 'C2LSzw4',
60
- 'ksaVicG',
61
- 'rKLmrsK',
62
- 'kcLDcIa',
63
- 'BML6yxq',
64
- 'CgrHDgu',
65
- 'lNb5',
66
- 'AwnOjYW',
67
- 'iLjLywq',
68
- 'DI8SicC',
69
- 'id0GANm',
70
- 'BgvtEw4',
71
- 'yw4NDca',
72
- 'C2HVD00',
73
- 'yxv0Aca',
74
- 'ktSkica',
75
- 'EgvJDxq',
76
- 'A2DYB3u',
77
- 'lIiIiGO',
78
- 'B3zLigy',
79
- 'uNvUoIa',
80
- 'B3iGBwe',
81
- 'DMuOkqO',
82
- 'j31GoWO',
83
- 'icyMihm',
84
- 'B3v0ihm',
85
- 'zxHWicO',
86
- 'jYKPoWO',
87
- 'DhnBmv0',
88
- 'ig9MigG',
89
- 'j2nOAwW',
90
- 'zMf1Bhq',
91
- 'kgHHC2G',
92
- 'FqOklY8',
93
- 'Bsb0Agu',
94
- 'm23IMQdVUi8GrW',
95
- 'z3mUAg8',
96
- 'AgvJAYa',
97
- 'psbku08',
98
- 'z19MAwW',
99
- 'z2fUAxO',
100
- 'qvrjt04',
101
- 'y29TBwe',
102
- 'q0Xjigm',
103
- 'zNmUCMu',
104
- 'pIbIB28',
105
- 'zvbHDgG',
106
- 'icaGiYa',
107
- 'yxrJAc0',
108
- 'iefSBca',
109
- 'B3DZihu',
110
- 'zhmOC3q',
111
- 'zw1VDMu',
112
- 'D3mGC3K',
113
- 'yxrLC3q',
114
- 'zxf1Axi',
115
- 'BMCUChu',
116
- 'icr7B3i',
117
- 'icb0Aw0',
118
- 'zwqUiIi',
119
- 'kcD1Dgy',
120
- 'AguUBge',
121
- 'ztOGDhi',
122
- 't04Gzgu',
123
- 'DguUyxa',
124
- 'Bgf0zxm',
125
- 'AMvJDca',
126
- 'Cg9YDca',
127
- 'z2fSjYW',
128
- 'u2vSzI0',
129
- 'Aw5NCY4',
130
- 'AcbYDwW',
131
- 'ktSky28',
132
- 'zxzLBNq',
133
- 'lxb1BgW',
134
- 'icaGFsa',
135
- 'j3LVDxi',
136
- 'DgGSicC',
137
- 'CNvUigC',
138
- 'C2fNzsG',
139
- 'teuUzxG',
140
- 'DcbJywm',
141
- 'B21vvuK',
142
- 'BM90igC',
143
- 'zgLUzYa',
144
- 'AYbJywW',
145
- 'ywDLlca',
146
- 'tcbPCYa',
147
- 'BMrPBMC',
148
- 'AwCOkqO',
149
- 'B24UCMu',
150
- 'zxqOj2m',
151
- 'CMvZAfu',
152
- 'ChjVy2u',
153
- 'x2nTzdO',
154
- 'AZSGFqO',
155
- 'BM9Yzsa',
156
- 'DxnFBgK',
157
- 'BIHVCY4',
158
- 'DxqGyMW',
159
- 'BgL0kcC',
160
- 'zsGPic8',
161
- 'BwL0j10',
162
- 'DwrLCYG',
163
- 'B3CGD2e',
164
- 'ifn0yxq',
165
- 'z05HBwu',
166
- 'DcGNyxu',
167
- 'cI0Gu3K',
168
- 'su9oid0',
169
- 'igfSD2e',
170
- 'zwq6ihq',
171
- 'ksbIzwG',
172
- 'kJOGqwW',
173
- 'ig91Dgq',
174
- 'y2vWDgK',
175
- 'BNn0igm',
176
- 'sw5Qzwm',
177
- 'B3jT',
178
- 'AcKGEWO',
179
- 'Aw86icC',
180
- 'DhvZtgK',
181
- 'ywrtEw4',
182
- 'zcGPic0',
183
- 'DMvUDf0',
184
- 'icHHDxq',
185
- 'lcb0Aw0',
186
- 'BgvZjYW',
187
- 'xdaZm1S',
188
- 'z2uPcIa',
189
- 'DxmGBgK',
190
- 'zxr3B3i',
191
- 'igLMieC',
192
- 'Aw5NCYW',
193
- 'pt4GyY4',
194
- 'Ag9TzsG',
195
- 'CMf0zv8',
196
- 'zYb0Agu',
197
- 'B2rLicG',
198
- 'oIbrDwu',
199
- 'rMLSzu4',
200
- 'rxzLBNq',
201
- 'B3v0zge',
202
- 'cGOGica',
203
- 'AwyGysa',
204
- 'idm6iem',
205
- 'y01LC3m',
206
- 'Dwv1zvq',
207
- 'icaXlIa',
208
- 'B2rLieO',
209
- 'iGPhquW',
210
- 'kgHVB2S',
211
- 'kgrPC3a',
212
- 'BfbHDgG',
213
- 'DxnmAw4',
214
- 'CMuTBg8',
215
- 'uhjVAMu',
216
- 'ienmsqO',
217
- 'CNjLBNq',
218
- 'icbWCM8',
219
- 'DdOkicO',
220
- 'z2fSl3m',
221
- 'oWPJB24',
222
- 'ihDLigm',
223
- 'kclWN5sqieC',
224
- 'zIbZzwW',
225
- 'CNqNlaO',
226
- 'ignOyw4',
227
- 'Aw5LcIa',
228
- 'BhbGig8',
229
- 'AgvSCga',
230
- 'C2LVBJO',
231
- 'BwLZC2K',
232
- 'cN0kcMy',
233
- 'BMrbDxq',
234
- 'pt0klY8',
235
- 'Chv0x2q',
236
- 'CgXHy2u',
237
- 'ygDHBca',
238
- 'Ew5Jkhi',
239
- 'B25HBaO',
240
- 'AxriDwi',
241
- 'tKnFu1q',
242
- 'y2vZCY4',
243
- 'BIHJBge',
244
- 'j2nVBMy',
245
- 'jYa6icC',
246
- 'icaTie4',
247
- 'DguPihS',
248
- 'lcaNjYK',
249
- 'CMLUz2K',
250
- 'yw5KCWO',
251
- 'zhvTChm',
252
- 'x05px0e',
253
- 'Acb7ihi',
254
- 'EhqGzxG',
255
- 'ksbKzwW',
256
- 'Bxb0ige',
257
- 'zNmUzxG',
258
- 'zM9Yzsa',
259
- 'BMzPzYa',
260
- 'Ew5Jkhm',
261
- 'id0GmdS',
262
- 'icaGigq',
263
- 'DgHPCYa',
264
- 'iVcFLjaGr0e',
265
- 'A0fUzee',
266
- 'CM4GiLW',
267
- 'zgvJB2q',
268
- 'AcWGj3u',
269
- 'BNbTx2m',
270
- 'zMLNigK',
271
- 'ienmssa',
272
- 'lNjLywq',
273
- 'quWGC3q',
274
- 'AfXGlIa',
275
- 'z2vYzwq',
276
- 'oIaZmda',
277
- 'y2f0Aw8',
278
- 'BwvZC2e',
279
- 'cIaGica',
280
- 'ihrYDwu',
281
- 'Dg9ju08',
282
- 'lIbGicS',
283
- 'ugf0AcG',
284
- 'DMvZigK',
285
- 'oWPPzIa',
286
- 'zxiGyMu',
287
- 'zwXLDgu',
288
- 'DMvUDfq',
289
- 'CNvSzxm',
290
- 'lsbJywm',
291
- 'icG+mJq',
292
- 'cKDbtf8',
293
- 'l2DHBc8',
294
- 'zw50vMu',
295
- 'kg9ZlMG',
296
- 'if9FzMK',
297
- 'icaGihq',
298
- 'zcKUBwe',
299
- 'zxmUy2e',
300
- 'B3rOzxi',
301
- 'CY5OB28',
302
- 'lMDHBcC',
303
- 'CYbMCM8',
304
- 'Bsb5B3u',
305
- 'zwfKu3K',
306
- 'ig9Yihi',
307
- 'ihSkica',
308
- 'nc4WlJa',
309
- 'DcbHDxq',
310
- 'DcGNlIC',
311
- 'mZSGAsS',
312
- 'igfUEsa',
313
- 'AwCGu3K',
314
- 'Dg9Tihm',
315
- 'A1n5BMm',
316
- 'u1Loq18',
317
- 'oIbSB2C',
318
- 'jYK7cN0',
319
- 'DxrMltG',
320
- 'ms4WlJa',
321
- 'BNrYEs4',
322
- 'DcbOB28',
323
- 'yw5KBgu',
324
- 'mcKGpca',
325
- 'Bca8y28',
326
- 'quW6iee',
327
- 'kgmGpt4',
328
- 'iw5Lzwq',
329
- 'zxnZAw8',
330
- 'Aw9UicG',
331
- 'yxjZzsG',
332
- 'oIbqCM8',
333
- 'zs5Nzxq',
334
- 'C29UjYK',
335
- 'Dw5RBM8',
336
- 'BNnVBgu',
337
- 'oIboB3q',
338
- 'ys5QC28',
339
- 'jWOkica',
340
- 'DcbVCMC',
341
- 'z3rOid4',
342
- 'C3LUyWO',
343
- 'CNvLlaO',
344
- 'BgvTzxq',
345
- 'icaGigy',
346
- 'CIbVCMC',
347
- 'ANnVBI4',
348
- 'CNjVCIW',
349
- 'Aw5Cmdm',
350
- 'lYOQcIa',
351
- 'psbZDge',
352
- 'C3rHDhu',
353
- 'C3rtEw4',
354
- 'ltGNksK',
355
- 'CNqGC3u',
356
- 'BgvHBIa',
357
- 'yYHMDwW',
358
- 'igeGsLm',
359
- 'cGPPzIa',
360
- 'yxnRihq',
361
- 'lMXVzYG',
362
- 'BNrPy2e',
363
- 'DgLVBN0',
364
- 'yxrOBgK',
365
- 'CNjVCNm',
366
- 'DgzVCM0',
367
- 'BgXGlca',
368
- 'zYbVCMC',
369
- 'E30kcIa',
370
- 'ign1CNi',
371
- 'ihvUAw4',
372
- 'C3rLywq',
373
- 'lIbuAgK',
374
- 'zxb0igO',
375
- 'EtOkica',
376
- 'icbKzwW',
377
- 'Dw5SAw4',
378
- 'Aw9Uihe',
379
- 'BIbQC28',
380
- 'FqOGih0',
381
- 'cIaQcIa',
382
- 'ieLprxi',
383
- 'B24GC2u',
384
- 'DhntEw4',
385
- 'oWOGigK',
386
- 'AYaYoIa',
387
- 'CYbSAw4',
388
- 'C2LVBI4',
389
- 'zsbPzIa',
390
- 'DYbeyxq',
391
- 'ic0GtM8',
392
- 'BgvKcI8',
393
- 'zwXLBwu',
394
- 'tMv4Dca',
395
- 'zxrYEqO',
396
- 'igLUzgu',
397
- 'AxnhywW',
398
- 'BMfTzsK',
399
- 'ChqGrxG',
400
- 'icbMCY4',
401
- 'x1nuqvq',
402
- 'j10Sigm',
403
- 'B24NcKC',
404
- 'zw5NDgG',
405
- 'zxHLy1m',
406
- 'icb9cIa',
407
- 'zxn0j30',
408
- 'rgLYksK',
409
- 'BwfYEsa',
410
- 'cIaGlY8',
411
- 'BLj1BJO',
412
- 'B2fKigW',
413
- 'cImJiee',
414
- 'uMvHzhK',
415
- 'C3rYAw4',
416
- 'icaYlIa',
417
- 'DwXSlca',
418
- 'u3LUyW',
419
- 'DcbZEw4',
420
- 'vMvYC2K',
421
- 'zxrJlIK',
422
- 'Ag9Ulwq',
423
- 'yxn0u3K',
424
- 'oGOTie4',
425
- 'oWOGica',
426
- 'teKGDg8',
427
- 'B2TLBIK',
428
- 'DguGy2G',
429
- 'icbZEw4',
430
- 'cImGpt0',
431
- 'lMDHBa',
432
- 'Dgv4DcG',
433
- 'ig9Uig4',
434
- 'DgePcGO',
435
- 'zsHZEw4',
436
- 'kqOGica',
437
- 'BM9YzsC',
438
- 'jhTZDge',
439
- 'DgrHDgu',
440
- 'kcDZDge',
441
- 'icaGihi',
442
- 'ks4IiIi',
443
- 'zM9YicG',
444
- 'DcbYDw4',
445
- 'CMvZqxq',
446
- 'uMvZDge',
447
- 'CdOGBMu',
448
- 'q29Kzs8',
449
- 'y29Kzuu',
450
- 'iGOkAw0',
451
- 'C2TPCha',
452
- 'B246iha',
453
- 'zI1JBgu',
454
- 'Ac5JB20',
455
- 'C2fNzqO',
456
- 'pt0GmYK',
457
- 'BgvZic0',
458
- 'oWOkica',
459
- 'CYbHBMq',
460
- '4OAsihbYBW',
461
- 'q09orKK',
462
- 'yxrLihC',
463
- 'w2v2zw4',
464
- 'yYbMB3i',
465
- 'zfbYB2m',
466
- 'jYdIHPiGAW',
467
- 'AwyGkgy',
468
- 'zsbMAwW',
469
- 'yxrLzca',
470
- 'mJGXntyYm1DHt3ztsG',
471
- 'EsbZAwW',
472
- 'AguGAw4',
473
- 'Dhj5ihS',
474
- 'yxrLigy',
475
- 'B3iGkgm',
476
- 'ih0PoWO',
477
- 'Aw1LkcK',
478
- 'z3mkica',
479
- 'zwzHDwW',
480
- 'zcCPoWO',
481
- 'lsbIDwK',
482
- 'Aw5NCYa',
483
- 'igjHy2S',
484
- 'DhvZcMm',
485
- 'AguGDxm',
486
- 'Bw92zsa',
487
- 'lY8GDhi',
488
- 'BgvZcI0',
489
- 'ks50B1m',
490
- 'DhmGpsa',
491
- 'zsb0Age',
492
- 'psb0B2S',
493
- 'B3rLBNy',
494
- 'yMXLiem',
495
- 'pIaTlwG',
496
- 'zsGI4PYfia',
497
- 'ywWUBgu',
498
- 'CMvZAca',
499
- 'kcDHCha',
500
- 'yxrOlNC',
501
- 'Dw5PBNm',
502
- 'Cg5WBs8',
503
- 'Aw5KzxG',
504
- 'zw5LCMe',
505
- 'BIHWCM8',
506
- 'x2DHBf8',
507
- 'BMn0Aw8',
508
- 'lcbZzwW',
509
- 'zwXPz2K',
510
- 'C2nYAxa',
511
- 'DhvZigW',
512
- 'zhmOr0e',
513
- 'Ac51BMW',
514
- 'DcHZDge',
515
- 'BgvUyw0',
516
- 'BNn0iha',
517
- 'jYWGj2m',
518
- 'EwXVywq',
519
- 'ocCPktS',
520
- 'ih0kica',
521
- 'DxmGtgK',
522
- 'lWOklY8',
523
- 'y2vKigy',
524
- 'B3zLigG',
525
- 'DZ8IcG',
526
- 'ywqGC3K',
527
- 'yMXLlMO',
528
- 'B24GFhW',
529
- 'ic8Viee',
530
- 'Aw9UoWO',
531
- 'B2SGzM8',
532
- 'kg5Vig4',
533
- 'DMuGAg8',
534
- 'CMuGywi',
535
- 'zwrwzxi',
536
- 'kYKGEWO',
537
- 'CgvUzgK',
538
- 'DgvKihq',
539
- 'B24kica',
540
- 'icaGFsK',
541
- 'ignVBw0',
542
- 'igXLDca',
543
- 'rMLSzvm',
544
- 'tf9dt04',
545
- 'lcbjt0u',
546
- 'CIbGz2e',
547
- 'kIbwzxi',
548
- 'zwqGzMK',
549
- 'B2nHBc4',
550
- 'DxrOvg8',
551
- 'pt09pt0',
552
- 'vvrpx1u',
553
- 'mZnBmg0',
554
- 'B2TZw2u',
555
- 'AwDFB3u',
556
- 'cGOkzgu',
557
- 'CNnLkgy',
558
- 'CYbMAwW',
559
- 'w107cIa',
560
- 'kqOkica',
561
- 't04Gpsa',
562
- 'zwnRigu',
563
- 'icaGig4',
564
- 'mti4mtL0sLjiCgS',
565
- 'BgLUA1m',
566
- 'CY5TA2q',
567
- 'zgLZDa',
568
- 'DgvFCge',
569
- 'quWGy28',
570
- 'lsbGz2e',
571
- 'zfzLCNm',
572
- 'id0GCge',
573
- 'j10SihS',
574
- 'BIGPcIa',
575
- 'BMfNAw4',
576
- 'id09psa',
577
- 'DwvKqxq',
578
- 'ig5Lzwq',
579
- 'ChrtDwi',
580
- 'icGHzw4',
581
- 'ywWGzgK',
582
- 'Ew5Jzwq',
583
- 'BMuOAw4',
584
- 'C3qGzwW',
585
- 'zw50CWO',
586
- 'DgfTCcK',
587
- 'Dwu7cIa',
588
- 'id0GC2u',
589
- 'zxHPC3q',
590
- 'A2vUksa',
591
- 'jYK7cGO',
592
- 'BgWTBwu',
593
- 'CNKGzxy',
594
- 'yxrHktO',
595
- 'z2fSige',
596
- 'zsDDcIa',
597
- 'Acb0B2S',
598
- 'EWOGica',
599
- 'psaIpJ0',
600
- 'zgvMig0',
601
- 'y2vKx2y',
602
- 'icDvC2u',
603
- 'y2HLuge',
604
- 'C1vWzge',
605
- 'r19gsuW',
606
- 'Aw5NkcK',
607
- 'oIbZDge',
608
- 'tdOGu3K',
609
- 'z29Vzca',
610
- 'zezPBgu',
611
- 'FqOky28',
612
- 'DgGSieO',
613
- 'lMzPBhq',
614
- 'igrPCMu',
615
- 'CMfUzg8',
616
- 'BMzPzY4',
617
- 'mtK2mZqYmfbmr2Ttvq',
618
- 'ChjVBxa',
619
- 'ywqGpsa',
620
- 'BI5SB2e',
621
- 'AwvZlMy',
622
- 'ief1Dg8',
623
- 'icb9igm',
624
- 'BMfTzv8',
625
- 'q0Xjihi',
626
- 'Euv2zw4',
627
- 'u09olNm',
628
- 'Ag9VA18',
629
- 'lMHVB2S',
630
- 'uLnjt04',
631
- 'iIWGj3q',
632
- 'z3jVDw4',
633
- 'ig51BgW',
634
- 'zwnRidi',
635
- 'lsbZDge',
636
- 'zxr0Aw4',
637
- 'zgLUz0u',
638
- 'Aw5Gic0',
639
- 'zgf0zsG',
640
- 'B29RCYK',
641
- 'suXflNi',
642
- 'yw5PEMe',
643
- 'CIbdBge',
644
- 'kc9EDI8',
645
- 'ksb7cIa',
646
- 'zenVBMy',
647
- 'yxv0Agu',
648
- 'Dgu6cIa',
649
- 'y2SGmtO',
650
- 'AwyGj2C',
651
- 'z3rOice',
652
- 'z2u7cN0',
653
- 'ie5VDca',
654
- 'BNn0ihi',
655
- 'iYbszw0',
656
- 'CgvUzgu',
657
- 'BNn0ig0',
658
- 'nZu1',
659
- 'kcKScIa',
660
- 'BgzdBgu',
661
- 'D2qOksW',
662
- 'kg1LC3m',
663
- 'zca9ieO',
664
- 'ihvWzge',
665
- 'B2SGAwy',
666
- 'DwuGFsK',
667
- 'zxHWAxi',
668
- 'j2rPC3a',
669
- 'AdOGjhS',
670
- 'CY5YDw4',
671
- 'j3vWzge',
672
- 'ywLSywi',
673
- 'y3qUA2u',
674
- 'CMv0Dxi',
675
- 'DhjPz2C',
676
- 'zIaOiwy',
677
- 'zw5KAw4',
678
- 'C2HVDWO',
679
- 'yw4GAwy',
680
- 'ywDLicS',
681
- 'igf2ywK',
682
- 'BMDZlMO',
683
- 'yYHZzxq',
684
- 'zwXMlwm',
685
- 'qNvMzMu',
686
- 'ssKGCMu',
687
- 'lNDYAxq',
688
- 'yxj0jYW',
689
- 'B3COksa',
690
- 'ChvZAa',
691
- 'Aw5Kicq',
692
- 'lcbBxsK',
693
- 'zv9Fks4',
694
- 'icHUzwu',
695
- 'mtaWmcK',
696
- 'DhvZlaO',
697
- 'oIbWCM8',
698
- 'ztOGj3m',
699
- 'zxmGy28',
700
- 'BcCku1K',
701
- 'DgXLkqO',
702
- 'C3LUyYa',
703
- 'ChrVjYK',
704
- 'BMukica',
705
- 'icOGCMu',
706
- 'Dcb0Agu',
707
- 'igLMicG',
708
- 'psbnyxq',
709
- 'ywDLkga',
710
- 'z2LUcIa',
711
- 'xsb8Fca',
712
- 'DgGUy3C',
713
- 'Bg9N',
714
- 'Aca9igy',
715
- 'z3nqyxq',
716
- 'DxnOzxm',
717
- 'zYbMAwW',
718
- 'BgfIBgu',
719
- 'B3rgB3u',
720
- 'CM4GCge',
721
- 'BcaTlwe',
722
- 'E30PlMC',
723
- 'DfzLCNm',
724
- 'zwnRoIa',
725
- 'zwn0lG',
726
- 'DguUBM8',
727
- 'yxnRoIa',
728
- 'ic0GywW',
729
- 'Bgukica',
730
- 'DgGGpsa',
731
- 'DMvUDhm',
732
- 'CMvZAcK',
733
- 'idyWicO',
734
- 'z2LMEsG',
735
- 'y2HPBgq',
736
- 'C1DPDgG',
737
- 'BgvUz3q',
738
- 'BMqGzMW',
739
- 'C2u2ncC',
740
- 'zwfKrMK',
741
- 'zsHZktO',
742
- 'Aw5LoGO',
743
- 'icaGic8',
744
- 'DgnOihS',
745
- 'DgLVBIK',
746
- 'yxrLlM4',
747
- 'kgn2w2K',
748
- 'icbZzwW',
749
- 'jIyGkeq',
750
- 'zaOGica',
751
- 'BgX5ic0',
752
- 'ihT9cN0',
753
- 'Ew5JkcC',
754
- 'AcKkzNu',
755
- 'lxzLCNm',
756
- 'DxjUici',
757
- 'Ew5J',
758
- 'B3j0ifa',
759
- 'zwzYzxm',
760
- 'icbWBge',
761
- 'Ew50yxG',
762
- 'Bw1HBMq',
763
- 'y2Hqyxq',
764
- 'mcKkcGO',
765
- 'igDHBca',
766
- 'Bg9Hzc4',
767
- 'Aw5WDxq',
768
- 'zc4kicO',
769
- 'C3qGr0e',
770
- 'x2nSzwe',
771
- 'BwfUzd8',
772
- 'C3nPBMC',
773
- 'EsbhquW',
774
- 'B3iGuNu',
775
- 'lvmGDxy',
776
- 'iIWGj3m',
777
- 'j1nLC3m',
778
- 'B29RCZ8',
779
- 'yxrLlNm',
780
- 'DaOGica',
781
- 'zcb2zxi',
782
- 'zM9Yiem',
783
- 'ihDPDgG',
784
- 'C3LUy2u',
785
- 'lMPVAw4',
786
- 'Ew5JcIa',
787
- 'zv9VDxq',
788
- 'BMvLzhm',
789
- 'C1TLDMu',
790
- 'Ag93Aw4',
791
- 'nda1ndK5ogXPEwvLEq',
792
- 'z0zPBgu',
793
- 'zxH0ihi',
794
- 'zsHPBNa',
795
- 'Dgf0zsK',
796
- 'Ag9VAYa',
797
- 'icaGihm',
798
- 'lNrYAw0',
799
- 'Ew5JigC',
800
- 'oWOGih0',
801
- 'kIbhquW',
802
- 'Dgf0zv8',
803
- 'lcaNlMC',
804
- 'BNqGBwu',
805
- 'mtm5mtu0wg56yNLq',
806
- 'oIbTzxm',
807
- 'CM9YktO',
808
- 'AM9PBG',
809
- 'u3LUyYa',
810
- 'BgfZDem',
811
- 'ANnVBG',
812
- 'khbHCNq',
813
- 'AwyGkce',
814
- 'lcbZCge',
815
- 'EWOGihq',
816
- 'CMvHzf8',
817
- 'ic0Gu2u',
818
- 'icbZAg8',
819
- 'DxrVjYW',
820
- 'Aw4Gq2W',
821
- 'BcbHDxq',
822
- 'zsHG8j+tPsa',
823
- 'zwXWyca',
824
- 'zNKOCgu',
825
- 'iIiIcGO',
826
- 'B25uExa',
827
- 'igzSDxm',
828
- 'CNvLlca',
829
- 'psbYzwe',
830
- 'psbYzxe',
831
- 'DgLVBGO',
832
- 'DhrLBxa',
833
- 'ywnLzNu',
834
- 'ic0TChu',
835
- 'Ew5Jtwu',
836
- 'CNnPB24',
837
- 'DcbVCWO',
838
- 'BIbZEw4',
839
- 'kcK7cIa',
840
- 'quWGq0W',
841
- 'D01LC3m',
842
- 'yxj0igG',
843
- 'icDNywW',
844
- 'cMz1BMm',
845
- 'DcbhquW',
846
- 'y2f0zwq',
847
- 'C2GOEWO',
848
- 'icfJlMu',
849
- 'oGOGica',
850
- 'ignSyxu',
851
- 'yxrPB24',
852
- 'DYGPid4',
853
- 'igDLBMu',
854
- 'BgvZcMK',
855
- 'vvnFteK',
856
- 'zhmklsa',
857
- 'ifn5BMm',
858
- 'rg93BMW',
859
- 'igz1BgW',
860
- 'ExmUC3q',
861
- 'DwLYzsG',
862
- 'BcCGlYa',
863
- 'id0GwWO',
864
- 'ignOzwm',
865
- 'yMXLigy',
866
- 't1qGC3K',
867
- 'Axn0C1m',
868
- 'igKGpca',
869
- 'zYbMCM8',
870
- 'Aw4Gy3u',
871
- 'DgGGpIa',
872
- 'ierVD24',
873
- 'DguTy2e',
874
- 'CML0zv8',
875
- 'CNqGq2W',
876
- 'BMniyxm',
877
- 'BMCGyw4',
878
- 'DcbWyxi',
879
- 'CNKGEYa',
880
- 'mteYruzeCNvQ',
881
- 'mcKPigi',
882
- 'AxiGpsa',
883
- 'BdSkica',
884
- 'zgf0zsC',
885
- 'icHUBYa',
886
- 'AM9PBIG',
887
- 'BIaHzNm',
888
- 'kgX2w2K',
889
- 'j3n5BMm',
890
- 'lsbUzxC',
891
- 'ihrLBgu',
892
- 'ksbYzxq',
893
- 'BMuGAw4',
894
- 'Es4Gsw4',
895
- 'BgXLzcG',
896
- 'ignHDgm',
897
- 'lMv4Axm',
898
- 'DxmGlsa',
899
- 't04UCge',
900
- 'DxrOzw4',
901
- 'BcCSicC',
902
- 'CY5MAwW',
903
- 'BNbT',
904
- 'zxmGyxi',
905
- 'icaVlYa',
906
- 'ks5Tyxa',
907
- 'zvn5BMm',
908
- 'ANvZDca',
909
- 'AgvKcI8',
910
- 'lcaNls0',
911
- 'v1qGD2K',
912
- 'x3rYAwC',
913
- 'zcCSicC',
914
- 'zw50CMK',
915
- 'DxrKyxq',
916
- 'BMrfCNi',
917
- 'kGOGkIa',
918
- 'ywWGBM8',
919
- 'ig9WDgK',
920
- 'jYK6cIa',
921
- 'BIWGzgu',
922
- 'icbWzw4',
923
- 'y2f0y2G',
924
- 'BgaGlsa',
925
- 'zcGPic8',
926
- 'lY8kiIi',
927
- 'zs5UB3C',
928
- 'zw50CYK',
929
- 'zKnSzwe',
930
- 'DxrVlxm',
931
- 'AYbLDMu',
932
- 'ihT9ks4',
933
- 'CI5MCM8',
934
- 'lwfWChi',
935
- 'zs5VCMC',
936
- 'BYb0ywS',
937
- 'CY5LEgK',
938
- 'AwyGkgm',
939
- 'ief1DgG',
940
- 'ic8VlYa',
941
- 'zNmUDw4',
942
- 'CY5QC28',
943
- 'DgfKyxq',
944
- 'DwXLCY4',
945
- 'lICPlM0',
946
- 'ywnOzva',
947
- 'kcDNywW',
948
- 'Cgf0Aa',
949
- 'DguOktS',
950
- 'yxvKzsa',
951
- 'jYK7cIa',
952
- 'icDSyxq',
953
- 'ywWNlca',
954
- 'mY4Xmsi',
955
- 'yxr1CWO',
956
- 'icaGAwy',
957
- 'y2HTB2q',
958
- 'CM4GsLm',
959
- 'Ew5Jic0',
960
- 'BMntDge',
961
- 'yxb0Dxi',
962
- 'DgGUzxG',
963
- 'CcHJid0',
964
- 'A3mGpsa',
965
- 'Dw4GkeC',
966
- 'oWOklY8',
967
- 'ihnLBMq',
968
- 'Chv0pvq',
969
- 'AwCUANm',
970
- 'j3bPCgu',
971
- 'Ac5QB2K',
972
- 'DMvYEsO',
973
- 'lMXHDgu',
974
- 'kgvSAwC',
975
- 'BL9ZDge',
976
- 'Ag93twu',
977
- 'u3vIBwK',
978
- 'AwyGkhm',
979
- 'zwqGy28',
980
- 'zw50cIa',
981
- 'Dgv4DcW',
982
- 'ksaVicC',
983
- 'lYbszwy',
984
- 'zwDVCMK',
985
- 'z2fSlq',
986
- 'icbZzxq',
987
- 'DhjPBMC',
988
- 'iYeVDxm',
989
- 'Ac5MBg8',
990
- 'Aw5NC18',
991
- 'Aw9Uksa',
992
- 'zwfKieC',
993
- 'CM92zwq',
994
- 'zxnCmdm',
995
- 'CNKGAxm',
996
- 'sviGlYa',
997
- 'AwX0zxi',
998
- 'y2f0zwC',
999
- 'zgv0zwm',
1000
- 'y3DKkcK',
1001
- 'DgvYkgG',
1002
- 'j3mGyxa',
1003
- 'C19Wyxq',
1004
- 'zxmTChK',
1005
- 'teKGAxm',
1006
- 'C0XPBMu',
1007
- 'r0fmoIa',
1008
- 'iGOkica',
1009
- 'j2HVB2S',
1010
- 'yxrOlca',
1011
- 'lY8GAw4',
1012
- 'B2rLcKC',
1013
- 'AwyGkhu',
1014
- 'BMCGDg8',
1015
- 'zs5Syxm',
1016
- 'DI5hquW',
1017
- 'AwXLCYa',
1018
- 'AcWGsLm',
1019
- 'Dg9tDhi',
1020
- 'kcK7cGO',
1021
- 'BMmGC3q',
1022
- 'igv2zw4',
1023
- 'B3qGAxm',
1024
- 'CYbPBIa',
1025
- 'C3rdAgu',
1026
- 'zL9JBgu',
1027
- 'DhvYBIa',
1028
- 'icOQq28',
1029
- 'EWOGigm',
1030
- 'icbLEgu',
1031
- 'AwyGC2u',
1032
- 'Cgf0Ac4',
1033
- 'DcaOt1m',
1034
- 'Aw5RkcK',
1035
- 'DwvuzwW',
1036
- 'kIaTie4',
1037
- 'ksK7cIa',
1038
- 'y2vZCYC',
1039
- 'zxnZywC',
1040
- 'vg9Rzw4',
1041
- 'BMqGzgK',
1042
- 'iKrVihK',
1043
- 'BNqOC3q',
1044
- 'DcbPzIa',
1045
- 'cIaGFsa',
1046
- 'ifrLBgu',
1047
- 'icbSzxq',
1048
- 'Aw5FxYC',
1049
- 'icGHzNm',
1050
- 'igLUC3q',
1051
- 'C3nPB24',
1052
- 'icaGC2G',
1053
- 'AgvJA0e',
1054
- 'C3rHCNq',
1055
- 'rsWGj3u',
1056
- 'y3qGBM8',
1057
- 'AxjtEw4',
1058
- 'mcKPihS',
1059
- 'ig5VDaO',
1060
- 'icjCmdm',
1061
- 'q2XHDwq',
1062
- 'zMLNkcK',
1063
- 'BMC6cIa',
1064
- 'yxLSB2e',
1065
- 'lYa9pt0',
1066
- 'BMuNlca',
1067
- 'Dw4UcIa',
1068
- 'CJOkica',
1069
- 'kcCSicC',
1070
- 'DgHFCMu',
1071
- 'cJWHls0',
1072
- 'B2TLBIa',
1073
- 'icaGigC',
1074
- 'FsbJyxq',
1075
- 'ksKkica',
1076
- 'zxHWksa',
1077
- 'DxjUigm',
1078
- 'ihbYB2m',
1079
- 'CY5Nzxq',
1080
- 'ywnOzsa',
1081
- 'D3jPDgu',
1082
- 'zNjLC2G',
1083
- 'Dgf0Dxm',
1084
- 'Aw9Uigm',
1085
- 'CI9IAw4',
1086
- 'khbYB2m',
1087
- 'yxrJAfa',
1088
- 'BMD0Aca',
1089
- 'iGOky28',
1090
- 'zw5qyxK',
1091
- 'kIaTifq',
1092
- 'B20GC2u',
1093
- 'zf9NywW',
1094
- 'C2vUzca',
1095
- 'BMLUzZO',
1096
- 'AYbHDxq',
1097
- 'Ew5JkeC',
1098
- 'Aca9pt0',
1099
- 'zIbZDge',
1100
- 'CM9TChq',
1101
- 'BM9Kzsa',
1102
- 'BgW7cIa',
1103
- 'BhmUcI8',
1104
- 'ihj1BIa',
1105
- 'AgvUDgK',
1106
- 'B3jNlwe',
1107
- 'BwvKAxi',
1108
- 'oIbnAxm',
1109
- 'id4GmcK',
1110
- 'C1n5BMm',
1111
- 'AxnWyxq',
1112
- 'C3LUy1W',
1113
- 'DxnSEsa',
1114
- 'zxjHDgu',
1115
- 'C19SAw4',
1116
- 'icaGic0',
1117
- 'ihbHDgG',
1118
- 'ihnLBgy',
1119
- 'BgfZDfm',
1120
- 'CYa9ieO',
1121
- 'ugf5Bg8',
1122
- 'BMDZlMG',
1123
- 'Cg5WBq',
1124
- 'zxnZlMm',
1125
- 'zwn1DgK',
1126
- 'zMLSDgu',
1127
- 'ihn1yNa',
1128
- 'AxnFz2e',
1129
- 'zwyOktS',
1130
- 'DgHVBIa',
1131
- 'DgvTtwu',
1132
- 'psbWyxq',
1133
- 'Ac5JD2q',
1134
- 'lcaNyxu',
1135
- 'y2HLlMO',
1136
- 'z2fSic0',
1137
- 'icmGr2u',
1138
- 'DcbMB3i',
1139
- 'iokgKIbWCG',
1140
- 'ywXLkcK',
1141
- 'igvYCM8',
1142
- 'B25MAwC',
1143
- 'ig9Yz2e',
1144
- 'Aw5NrMK',
1145
- 'Bc5QB2K',
1146
- 'zgvZ',
1147
- 'kfSND2G',
1148
- 'Aw5ZDge',
1149
- 'Aw1WB3i',
1150
- 'kcKSicC',
1151
- 'CgfZCWO',
1152
- 'DguUB3i',
1153
- 'BMmTC3q',
1154
- 'cMrLzIa',
1155
- 'zw50CY4',
1156
- 'neLuvNzqzq',
1157
- 'zw52',
1158
- 'AcKPihS',
1159
- 'icaGiha',
1160
- 'C3rwzxi',
1161
- 'yWOGkIa',
1162
- 'lsbdB24',
1163
- 'icb9cN0',
1164
- 'Acb7FqO',
1165
- 'CMvKlLW',
1166
- 'CM4GtM8',
1167
- 'yxrJAca',
1168
- 'zqOGica',
1169
- 'ig9UigK',
1170
- 'zgveAxi',
1171
- 'B24NcGO',
1172
- 'zsb0Agu',
1173
- 'ChjVDMu',
1174
- 'ihn0yxi',
1175
- 'BMvYyxq',
1176
- 'igLZige',
1177
- 'iIWkiYa',
1178
- 'BIbUDwW',
1179
- 'lMPZB24',
1180
- 'DgHYB3q',
1181
- 'ih0Gy2e',
1182
- 'Aw5NieC',
1183
- 'uMvHzca',
1184
- 'igLUihm',
1185
- 'lYbezwm',
1186
- 'AYbHy2m',
1187
- 'DhmGDg8',
1188
- 'ihjLBw8',
1189
- 'zxHPDcG',
1190
- 'jYKGit0',
1191
- 'zgf0zum',
1192
- 'ihnLDhq',
1193
- 'icjWExq',
1194
- 'iIaTlt4',
1195
- 'Axn0CYG',
1196
- 'y2HLy2S',
1197
- 'ihnPBgu',
1198
- 'igfWChi',
1199
- 'AwXLu3K',
1200
- 'CM9Tic4',
1201
- 'B246cIa',
1202
- 'id0GC3a',
1203
- 'Es5OB28',
1204
- 'CYa9ihm',
1205
- 'x2XPBMu',
1206
- 'oIbNywW',
1207
- 'C3bHDgm',
1208
- 'reLslca',
1209
- 'z2LMEq',
1210
- 'mdaGFsK',
1211
- 'ANnVBIa',
1212
- 'DxjHDgK',
1213
- 'Bsb7C3q',
1214
- 'r0fmx0q',
1215
- 'ig5VDgK',
1216
- 'BMzPzW',
1217
- 'kgnSyxu',
1218
- 'B3qGC3K',
1219
- 'DguUANm',
1220
- 'ihvZzxi',
1221
- 'Dhj1ztS',
1222
- 'DcbMCM8',
1223
- 'zsbLzMy',
1224
- 'CY5Szw4',
1225
- 'ignVBNm',
1226
- 'BNn0ig8',
1227
- 'ie5VBMu',
1228
- 'zwqGjIy',
1229
- 'ihnLzsa',
1230
- 'sLnptI4',
1231
- 'CYKGEWO',
1232
- 'id0+ihS',
1233
- 'zsbJB24',
1234
- 'DgHVDxq',
1235
- 'igeGCgu',
1236
- 'FqOGica',
1237
- 'j3bHDgG',
1238
- 'cImGzgu',
1239
- 'id0GiG',
1240
- 'AwyGBM8',
1241
- 'CWP9cGO',
1242
- 'AwyGkhi',
1243
- 'm1SWBsi',
1244
- 'quXFq08',
1245
- 'u2LUy2u',
1246
- 'BMDZuge',
1247
- 'ugf0Ac4',
1248
- 'C2GGit0',
1249
- 'zsbXDwu',
1250
- 'DguPihi',
1251
- 'ChqGkhm',
1252
- 'q3vYC28',
1253
- 'oIbdB24',
1254
- 'DguOksa',
1255
- 'CM5PBMC',
1256
- 'zsbVChq',
1257
- 'ienVBMy',
1258
- 'CIbMigK',
1259
- 'B21Tyw4',
1260
- 'BMzPzWO',
1261
- 'y2GGCNu',
1262
- 'Dhj5rxy',
1263
- 'yxrLq2e',
1264
- 'u09olNa',
1265
- 'zsbHBgW',
1266
- 'lMDLDfq',
1267
- 'zw50igm',
1268
- 'lYbszw0',
1269
- 'zsbdteK',
1270
- 'mIKPoWO',
1271
- 'icbXDwu',
1272
- 'Bg9NAw4',
1273
- 'kwa7cGO',
1274
- 'lMXLBMC',
1275
- 'ywXdB24',
1276
- 'idmWmda',
1277
- 'yxrLzaO',
1278
- 'CMvKcMm',
1279
- 'C3rHBgu',
1280
- 'yxrOktS',
1281
- 'BMnLzey',
1282
- 'D2L0Aca',
1283
- 'ign3zdO',
1284
- 'icaGzNm',
1285
- 'Dhj5lMG',
1286
- 'lcaNyMe',
1287
- 'y1n0yxq',
1288
- 'ihn0yxK',
1289
- 'B3jLigu',
1290
- 'Aw4Gkem',
1291
- 'pt09cI8',
1292
- 'z0HHC2G',
1293
- 'DcbNywW',
1294
- 'CM4GBNu',
1295
- 'mdmZwZa',
1296
- 'icaGDhi',
1297
- 'igv4zwm',
1298
- 'DgGUAM8',
1299
- 'Ag9Tzwq',
1300
- 'igbNywW',
1301
- 'AwCUz2u',
1302
- 'BguGsLm',
1303
- 'icaJiem',
1304
- 'icaGFqO',
1305
- 'ifjLCxu',
1306
- 'yxDUkcC',
1307
- 'BMmGsg8',
1308
- 'tM90ihm',
1309
- 'Dgf0zs4',
1310
- 'C3rZkcK',
1311
- 'rKLhvvi',
1312
- 'BYb2jhS',
1313
- 'yxrLx3a',
1314
- 'C3rKAw8',
1315
- 'BgW7ih0',
1316
- 'lcaNkx0',
1317
- 'id0Gy3u',
1318
- 'Dg8Gy2G',
1319
- 'twvZC2e',
1320
- 'yxnZcGO',
1321
- 'Bg9Hzca',
1322
- 'BsikcIa',
1323
- 'ignOAwW',
1324
- 'mcb9ks4',
1325
- 'iIiIuMu',
1326
- 'iYbdAgu',
1327
- 'ANnVBIC',
1328
- 'ChqGkgO',
1329
- 'zsGNB3m',
1330
- 'y2uOl14',
1331
- 'Bgv0igK',
1332
- 'ChbYB3y',
1333
- 'B21WDca',
1334
- 'yxv0Afq',
1335
- 'ywrZkhm',
1336
- 'icbLEgm',
1337
- 'mcb9ktS',
1338
- 'igjYzwe',
1339
- 'khn0yxq',
1340
- 'FsK7cGO',
1341
- 'BgvZlMW',
1342
- 'CYbHBgW',
1343
- 'icaJifm',
1344
- 'BwvVDxq',
1345
- 'C2LUzYa',
1346
- 'B3b0Aw8',
1347
- 'ysbhquW',
1348
- 'reLsid0',
1349
- 'y2vMDwW',
1350
- 'DcGNBge',
1351
- 'Bf9PBNm',
1352
- 'C3mUzw4',
1353
- 'yNbYB2m',
1354
- 'keDbtf8',
1355
- 'BcC7cMm',
1356
- 'CYbZDw0',
1357
- 'Aca+ida',
1358
- 'zcbMAwW',
1359
- 'iGOGica',
1360
- 'DhnLBgy',
1361
- 'uerbveu',
1362
- 'vxbKyxq',
1363
- 'AxiOksW',
1364
- 'B24Gpsa',
1365
- 'vxnLCLa',
1366
- 'CIGPlca',
1367
- 'zMLJyxq',
1368
- 'Aw9Ulca',
1369
- 'B3mUAg8',
1370
- 'DwjWCM8',
1371
- 'jIb0B2S',
1372
- 'zwHHDMK',
1373
- 'ihn5CY4',
1374
- 'ienVzgu',
1375
- 'y3rVCNK',
1376
- 'zxjYB3i',
1377
- 'DgHLCMu',
1378
- 'lcaNlMm',
1379
- 'DcGNC3K',
1380
- 'CLbYB20',
1381
- 'DaOJihi',
1382
- 'lMHVBwu',
1383
- 'xYa9psa',
1384
- 'Ac5LEgK',
1385
- 'j3v0zI0',
1386
- 'lcbMktS',
1387
- 'DgLVBIa',
1388
- 'icb0CNK',
1389
- 'zIaOiwm',
1390
- 'jZeNihW',
1391
- 'lcb3zsa',
1392
- 'z0v2zw4',
1393
- 'oYb9cN0',
1394
- 'CgXHDgy',
1395
- 'CY5Jyxq',
1396
- 'y2SPidW',
1397
- 'EYbMCY4',
1398
- 'lcbYDw4',
1399
- 'Aw5NC1S',
1400
- 'xg5sDw4',
1401
- 'Awz5khm',
1402
- 'ExmOC2u',
1403
- 'BhyGpsa',
1404
- 'CMvJDgW',
1405
- 'Bgf1zgu',
1406
- 'iIiIcIa',
1407
- 'zxr1CM4',
1408
- 'zwqNktS',
1409
- 'CMvZB2W',
1410
- 'jYKUC3a',
1411
- 'oIaNAwC',
1412
- 'icOGlsa',
1413
- 'ugf0AcW',
1414
- 'yxrJAcK',
1415
- 'CYbTzxm',
1416
- 'E30kica',
1417
- 'DcbWzw4',
1418
- 'ChqGzMK',
1419
- 'id09pt0',
1420
- 'ic0GDgu',
1421
- 'BIbuCNu',
1422
- 'quW6ig0',
1423
- 'cIaGDhi',
1424
- 'BNn0ihm',
1425
- 'ihzLCMK',
1426
- 'zxnZksW',
1427
- 'yY1ZDge',
1428
- 'iYaGica',
1429
- 'icOGzgK',
1430
- 'z3mSig4',
1431
- 'DgrPBZO',
1432
- 'ywXSzwq',
1433
- 'Aw9Uid0',
1434
- 'icbWCMK',
1435
- 'icbJB24',
1436
- 'rKLmrsa',
1437
- 'zs4kcIa',
1438
- 'B3zLzca',
1439
- 'BM93',
1440
- 'q2fJAgu',
1441
- 'pvrYDwu',
1442
- 'Agf2Aw8',
1443
- 'A3mGFhW',
1444
- 'ic8Vifi',
1445
- 'oYb9igm',
1446
- 'BgLUzsK',
1447
- 'DxrFzge',
1448
- 'C3rHDgu',
1449
- 'uxvLDwu',
1450
- 'lxvWzge',
1451
- 'lMnQCW',
1452
- 'zw50Awm',
1453
- 'qwXSigC',
1454
- 'zwq6ifm',
1455
- 'yw1LktS',
1456
- 'iYa9pt0',
1457
- 'DhvZx2W',
1458
- 'tgLUzsa',
1459
- 'DgvNB3i',
1460
- 'u3rYAw4',
1461
- 'AwXLCYC',
1462
- 'ieHHBMq',
1463
- 'ifnLC3m',
1464
- 'z2fSlxm',
1465
- 'ief0Dgu',
1466
- 'lY8GuMu',
1467
- 'DxrOigW',
1468
- 'zgf0zsa',
1469
- 'x19MAwW',
1470
- 'Dgv4Dca',
1471
- 'icDZzxq',
1472
- 'DcbKAxm',
1473
- 'zuP3DcG',
1474
- 'FsDZige',
1475
- 'quWGAxm',
1476
- 'ncKklY8',
1477
- 'CMvWBge',
1478
- 'yxLZFsa',
1479
- 'yxr1CYC',
1480
- 'lNnWBgK',
1481
- 'BgKUBwq',
1482
- 'Dcb0BYa',
1483
- 'CYbYDw4',
1484
- 'idq6iem',
1485
- 'CNqPcIa',
1486
- 'yw4OktO',
1487
- 'jIyGC3q',
1488
- 'zw50CNK',
1489
- 'ihrVihm',
1490
- 'zsGPlNq',
1491
- 'BY1ZEw4',
1492
- 'ierHDgu',
1493
- 'igf1DgG',
1494
- 'BYbVDxq',
1495
- 'tdOGu2u',
1496
- 'zgLVoIa',
1497
- 'B3Ckica',
1498
- 'ihbHC3m',
1499
- 'ywXFy28',
1500
- 'kcKk',
1501
- 'DwrLrgK',
1502
- 'CYb0BWO',
1503
- 'B24UBg8',
1504
- 'zwfKkcK',
1505
- 'ihSGC3q',
1506
- 'AcbSB2C',
1507
- 'oIa1mda',
1508
- 'suXfid0',
1509
- 'icbPzIa',
1510
- 'BNvSBdS',
1511
- 'DguOktO',
1512
- 'vgLTzxm',
1513
- 'kcfZDge',
1514
- 'zw5HyMW',
1515
- 'zxHJzxa',
1516
- 'zMLNig8',
1517
- 'kJOGswy',
1518
- 'zwvWigW',
1519
- 'DxjUieO',
1520
- 'ifSNDxa',
1521
- 'Dhnqyxq',
1522
- 'ke9IAMu',
1523
- 'C29Tzq',
1524
- 'lwnSAs4',
1525
- 'id0GCMu',
1526
- 'x1zfuLm',
1527
- 'mdmZwZm',
1528
- 'zdOGCMu',
1529
- 'zxnZrxi',
1530
- 'quWTmte',
1531
- 'igLUChu',
1532
- 'BMCGpsa',
1533
- 'B2LUkcC',
1534
- 'zf9ZEw4',
1535
- 'zw50khm',
1536
- 'C3rHBgW',
1537
- 'BMfSigq',
1538
- 'psbqyxq',
1539
- 'zguNic8',
1540
- 'BLbHEwW',
1541
- 'Cg9ZDgK',
1542
- 'yxrOksK',
1543
- 'z2uGpsa',
1544
- 'cLzLCNm',
1545
- 'pIaWid8',
1546
- 'B25ZDca',
1547
- 'zw52lKm',
1548
- 'Acb7cIa',
1549
- 'DwXSoWO',
1550
- 'r0fmiem',
1551
- 'zw4NktO',
1552
- 'D2f5CYa',
1553
- 'zNvUy3q',
1554
- 'BNrDid0',
1555
- 'z2fSq28',
1556
- 'BhKGlsa',
1557
- 'ig5Vzgu',
1558
- 'x0zjteu',
1559
- 'ktOkica',
1560
- 'zeDHBem',
1561
- 'j19FBwe',
1562
- 'zsbCygC',
1563
- 'ieDbtca',
1564
- 'uMvMCMu',
1565
- 'iYbdt04',
1566
- 'C2LVBIW',
1567
- 'z2fSlwm',
1568
- 'zIaOzNm',
1569
- 'C2uOzNm',
1570
- 't04UC3q',
1571
- 'ihjLywq',
1572
- 'DwuGDgu',
1573
- 'BNn0igy',
1574
- 'BgaGy28',
1575
- 'B3jPzxm',
1576
- 'ExmGC2G',
1577
- 'AguGpsa',
1578
- 'id0GypcFLiq',
1579
- 'B3iOkeq',
1580
- 'mJqGkIa',
1581
- 'BsbZDgq',
1582
- 'BMDZx3a',
1583
- 'ywWGDxa',
1584
- 'icaGica',
1585
- 'khrVA2u',
1586
- 'rxjYB3i',
1587
- 'ic0GAwC',
1588
- 'FsKPoWO',
1589
- 'ugf0AcK',
1590
- 'Aw4OB3m',
1591
- 'B2TLBL8',
1592
- 'Aw5Lid0',
1593
- 'ztSkica',
1594
- 'Af9Yzxe',
1595
- 'Ew5Jkhu',
1596
- 'idaPigq',
1597
- 'zgf5CYa',
1598
- 'CMvHzeC',
1599
- 'BMnLzf8',
1600
- 'yxaOyYa',
1601
- 'zuLMu3q',
1602
- 't25SEsa',
1603
- 'ienOzwm',
1604
- 'B2DPBIi',
1605
- 'FsWkica',
1606
- 'BM90ihm',
1607
- 'EYbYzwm',
1608
- 'Aw9UigK',
1609
- 'igv4y2u',
1610
- 'icaGy28',
1611
- 'rMLSzxm',
1612
- 'rMfSC2u',
1613
- 'cGPSzxq',
1614
- 'DhrPBMC',
1615
- 'zxiUANm',
1616
- 'se9ps18',
1617
- 'AxnZAw4',
1618
- 'lMLUy2W',
1619
- 'CNmGz3i',
1620
- 'ktSkCMu',
1621
- 'Dfn5BMm',
1622
- 'icDPz24',
1623
- 'zxvLige',
1624
- 'BMmODxa',
1625
- 'B25ZkIO',
1626
- 'iIiIr2u',
1627
- 'z2vZihq',
1628
- 'kcKGlYa',
1629
- 'Df0UBgu',
1630
- 'zxnZcMy',
1631
- 'yxqGC2u',
1632
- 'igyPlMu',
1633
- '4Os5ien1CW',
1634
- 'w2yGzM8',
1635
- 'B29Rigy',
1636
- 'zc51BNi',
1637
- 'ChrFCge',
1638
- 'B29KiokgKG',
1639
- 'ksKGEWO',
1640
- 'AwXLcIa',
1641
- 'zgLYkcK',
1642
- 'B29Rrxy',
1643
- 'y19ZDge',
1644
- 'igLMig4',
1645
- 'EsbGz2e',
1646
- 'yYHNywW',
1647
- 'rKLhx0y',
1648
- 'oIbeyxq',
1649
- 'idu6ie0',
1650
- 'DxbKyxq',
1651
- 'cGPczwG',
1652
- 'z2fSihm',
1653
- 'icaGCMu',
1654
- 'zsGPoWO',
1655
- 'ihnJCMK',
1656
- 'BM9KzqO',
1657
- 'AwXLCWO',
1658
- 'tKzjr18',
1659
- 'ycbdteK',
1660
- 'j25VDf8',
1661
- 'yw4Oksa',
1662
- 'zMfSC2u',
1663
- 'B29RigK',
1664
- 'icbYzxq',
1665
- 'yxr1CYa',
1666
- 'icaGCge',
1667
- 'ifjLywq',
1668
- 'DcaOuge',
1669
- 'BNn0igW',
1670
- 'icaGigm',
1671
- 'iePtt04',
1672
- 'BIbYzwy',
1673
- 'y29Kzsa',
1674
- 'CY5Yzwe',
1675
- 'zxrYEs0',
1676
- 'icaGigu',
1677
- 'ihrOzsa',
1678
- 'EWOGihm',
1679
- 'ycWGj20',
1680
- 'zw91DdO',
1681
- 'ihrYEtO',
1682
- 'cI0GygC',
1683
- 'DgyTocC',
1684
- 'Axb0cIm',
1685
- 'y0HHC2G',
1686
- 'yxrOid0',
1687
- 'iIikcGO',
1688
- 'Aw9UCYa',
1689
- 'Aw5JBhu',
1690
- 'DMfPBge',
1691
- 'EYbLEgu',
1692
- 'AwyGr0e',
1693
- 'FqOkica',
1694
- 'zMLNlMe',
1695
- 'C29UlKO',
1696
- 'pt09pqO',
1697
- 'ywrgAwW',
1698
- 'BNq9mIK',
1699
- 'zxiPoWO',
1700
- 'Dw5JDgK',
1701
- 'Aw9Uihi',
1702
- 'BNqkica',
1703
- 'lY8GrgK',
1704
- 'ExbLoIa',
1705
- 'DgfSBgu',
1706
- 'DwXLC1a',
1707
- 'u09orgu',
1708
- 'EgL0kda',
1709
- 'j2DHBca',
1710
- 'ihnOB3C',
1711
- 'zgf5khm',
1712
- 'BgqGC3K',
1713
- 'ihT9cGO',
1714
- 'DgvYkgy',
1715
- 'CM9Tihm',
1716
- 'y2vKlca',
1717
- 'ihSGCMu',
1718
- 'tM90Awy',
1719
- 'jYKGkYa',
1720
- 'x3n0yxq',
1721
- 'ktSkcIa',
1722
- 'B2fKicy',
1723
- 'DMvYC2K',
1724
- 'yxrOcGO',
1725
- 'khyKE3m',
1726
- 'FhWGiwC',
1727
- 'B3Dnzxm',
1728
- 'CIWGj3m',
1729
- 'CYbJB24',
1730
- 'BguGDgG',
1731
- 'cIaQlWO',
1732
- 'rgLZy28',
1733
- 'j3mGC28',
1734
- 'B29Rigu',
1735
- 'zwqPlM0',
1736
- 'cImJiei',
1737
- 'AcbNywW',
1738
- 'ifjLBw8',
1739
- 'Aw5Nig4',
1740
- 'mZnT4PQG77Ipia',
1741
- 'zsa9igy',
1742
- 'zxnbDca',
1743
- 'zxjLza',
1744
- 'ig9YzYK',
1745
- 'rgLYlca',
1746
- 'AwyGx18',
1747
- 'lLTLDMu',
1748
- 'Dgf0zva',
1749
- 'qhbHCMe',
1750
- 'DgvKlca',
1751
- 'zsGPihS',
1752
- 't04GzMK',
1753
- 'zxmPihS',
1754
- 'AxrOieC',
1755
- 'AwXLBNq',
1756
- 'DwX0t3i',
1757
- 'zwqGC3q',
1758
- 'u2vZC2K',
1759
- 'C2fNzsa',
1760
- 'zxiOyYa',
1761
- 'tKvFvKu',
1762
- 'BGOGihq',
1763
- 'B3iGBM8',
1764
- 'DgLUz3m',
1765
- 'ls1WDwW',
1766
- 'DxjUigu',
1767
- 'BIb5B3u',
1768
- 'iYbhquW',
1769
- 'DwuGzxy',
1770
- 'ifvWzge',
1771
- 'quKGywC',
1772
- 'cIaGFqO',
1773
- 'icaGih0',
1774
- 'l2vUDIa',
1775
- 'lwnSzwe',
1776
- 'ig9Yz04',
1777
- 'BNrLEhq',
1778
- 'igXVy2e',
1779
- 'BIbZDge',
1780
- 'BNrDksa',
1781
- 'AwjSzs4',
1782
- 'yxqGDgG',
1783
- 'AhjVBM8',
1784
- 'EgLZDhm',
1785
- 'B3jLjYW',
1786
- 'ke51Bwi',
1787
- 'zqOGihq',
1788
- 'AgvZig8',
1789
- 'y2vKcMy',
1790
- 'yxaOtNu',
1791
- 'zIaOixm',
1792
- 'BMnPzxm',
1793
- 'oYb9cIa',
1794
- 'ic0Tyxu',
1795
- 'zYb8Fca',
1796
- 'id0+ice',
1797
- 'q29UzMK',
1798
- 'B2nRAw4',
1799
- 'lNjHBMq',
1800
- 'BYbZEw4',
1801
- 'icmGu3K',
1802
- 'zs5HCha',
1803
- 'kIbtAg8',
1804
- '4PYtieDbta',
1805
- 'DgvSzw0',
1806
- 'ugf0Aca',
1807
- 'idaPihS',
1808
- 'DhmGBMu',
1809
- 'C3LZlMu',
1810
- 'cIaGy28',
1811
- 'ih0kFsa',
1812
- 'yxvKzsC',
1813
- 'ihn5BMm',
1814
- 'Cgf0y2G',
1815
- 'y2GGEWO',
1816
- 'BM90Awy',
1817
- 'B0Ltt1m',
1818
- 'CYaKE2q',
1819
- 'icDZEw4',
1820
- 'icbZDge',
1821
- 'CxvPCMu',
1822
- 'igvUDhi',
1823
- 'DcbZExm',
1824
- 'icOkicO',
1825
- 'swztDge',
1826
- 'CMvHAZS',
1827
- 'E3n0yxq',
1828
- 'DwLYzwq',
1829
- 'jYWGDgK',
1830
- 'CgfYC2u',
1831
- 'CYbJywm',
1832
- 'ihrVA2u',
1833
- 'BMv3zxi',
1834
- 'qvrfx0y',
1835
- 'Aw9UjZS',
1836
- 'ntyZmdG3n3LbreD3wq',
1837
- 'idi0icO',
1838
- 'zw4Sigq',
1839
- 'yxrLlMW',
1840
- 'B3v0Chu',
1841
- 'DguUz2u',
1842
- 'Ew5Jkgq',
1843
- 'ksWGj3u',
1844
- 'DwrLiem',
1845
- 'ifnPBgu',
1846
- 'B21LzgK',
1847
- 'rcGPlaO',
1848
- 'icr7BwK',
1849
- 'zhnszwy',
1850
- 'C29U',
1851
- 'icaIiIi',
1852
- 'Aw9UywW',
1853
- 'cGPuAgu',
1854
- 'zYbZEw4',
1855
- 'ywWGls0',
1856
- 'DguGpsa',
1857
- 'u3LUyYG',
1858
- 'x2rHDge',
1859
- 'nJaGkIa',
1860
- 'BhrLCIG',
1861
- 'C2v0DgK',
1862
- 'CNvUBMK',
1863
- 'ihjLDhu',
1864
- 'DxjZAxy',
1865
- 'zxn0yw0',
1866
- 'D2L0Ag8',
1867
- 'yxrOlNi',
1868
- 'x3vZzxi',
1869
- 'icD1Dgy',
1870
- 'BgXLzc4',
1871
- 'BsHWyxi',
1872
- 'y29UzMK',
1873
- 'B25ZlGO',
1874
- 'mcKGpIa',
1875
- 'icmGq2G',
1876
- 'zwqG4OAsia',
1877
- 'BgvK',
1878
- 'j3DOAwm',
1879
- 'AcaHpt0',
1880
- 'ihf1zxu',
1881
- 'DxrVvxa',
1882
- 'zIbYzwe',
1883
- 'Aw9Uihm',
1884
- 'Dg8Nlca',
1885
- 'icaGiIi',
1886
- 'mcK7cN0',
1887
- 'y1n5BMm',
1888
- 'C2LVBN0',
1889
- 'EYbZDgq',
1890
- 'Dg8GBg8',
1891
- 'ywLUkcK',
1892
- 'iefSD2e',
1893
- 'Chv0kqO',
1894
- 'Ew5Jkha',
1895
- 'BMuGzM8',
1896
- 'vKvsu0K',
1897
- 'icaGqMu',
1898
- 'B24UcIa',
1899
- '8j+tIYbcywm',
1900
- 'icaJieG',
1901
- 'Bvvvsuq',
1902
- 'CMLUz30',
1903
- 'lcaNCNu',
1904
- 'zxrHy2G',
1905
- 'BdOkica',
1906
- 'ihj1Bgu',
1907
- 'CM9Jzxm',
1908
- 'ndOGtwK',
1909
- 'yIbPBxa',
1910
- 'jYK7cMm',
1911
- 'y2THz2u',
1912
- 'Df9Wyxq',
1913
- 'kcDJCNK',
1914
- 'B2nHBca',
1915
- 'Dgf0zsa',
1916
- 'zYbTzxm',
1917
- 'ywrZige',
1918
- 'ihvUC3u',
1919
- 'icCUz2e',
1920
- 'Bg9Hzhm',
1921
- 'B3iPoGO',
1922
- 'ywnOzs4',
1923
- 'ywnRigG',
1924
- 'kcK6cIa',
1925
- 'BwqNktS',
1926
- 'ifnLBgy',
1927
- 'CYbNCMe',
1928
- 'psbYDwW',
1929
- 'zMLSzxm',
1930
- 'ic0TAgu',
1931
- 'zsa9ihi',
1932
- 'BgLUzq',
1933
- 'B1vWzge',
1934
- 'zcbPzIa',
1935
- 'AYaZoIa',
1936
- 'CNKGEWO',
1937
- 'BNn0ywW',
1938
- 'zgqGC2u',
1939
- 'icaJifi',
1940
- 'icaGy3u',
1941
- 'lYbiB28',
1942
- 'ig1PC20',
1943
- 'j2DHBc0',
1944
- 'zw50CYa',
1945
- 'BMv4Dca',
1946
- 'mdSkica',
1947
- 'CIbMB3i',
1948
- 'yokCHsbhqq',
1949
- 'id0Gj3m',
1950
- 'BNbTlW',
1951
- 'BMnLzdO',
1952
- 'C3rZu3K',
1953
- 'DgvKic0',
1954
- 'Ew5Jlxm',
1955
- 'jY5NywW',
1956
- 'sw5ZDge',
1957
- 'ywWTC3K',
1958
- 'z3mGpsa',
1959
- 'cGOVlYa',
1960
- 'BNqGkg4',
1961
- 'ls1Zy3i',
1962
- 'CM9Ylca',
1963
- 'zv9JBwq',
1964
- 'CYb1BMK',
1965
- 'j3n0yxq',
1966
- 'B2DPBIa',
1967
- 'Ew5Jsge',
1968
- 'zxmGzNi',
1969
- 'q0XjigK',
1970
- 'Aw9Uu3q',
1971
- 'AwnHDgK',
1972
- 'cN0kcI8',
1973
- 'mZKZnZq0mhfuEujKqG',
1974
- 'DcbZDge',
1975
- 'zf9WCM8',
1976
- 'AxjLzcO',
1977
- 'DgLJyxq',
1978
- 'x0nptKy',
1979
- 'DgvKxda',
1980
- 'C2GGpsa',
1981
- 'ig1HAw4',
1982
- 'cGOGic8',
1983
- 'psbGxg4',
1984
- 'jYWGEYa',
1985
- 'khnLDhq',
1986
- 'DguOkqO',
1987
- 'C3qGy3y',
1988
- 'Bwv0CNK',
1989
- 'ihzLCNm',
1990
- 'Ag9VA1a',
1991
- 'B24GCMu',
1992
- 'x2fNzw4',
1993
- 'igDHBeq',
1994
- 'CY52zxi',
1995
- 'lMnSyxu',
1996
- 'B25tDge',
1997
- 'C3rHEsa',
1998
- 'q2fSBgu',
1999
- 'yw1Lid0',
2000
- 'kx0Uxg4',
2001
- 'Bwv0AgK',
2002
- 'BgukDhi',
2003
- 'DxjUig4',
2004
- 'AYbYDw4',
2005
- 'kg1PC3m',
2006
- 'z2fSx2m',
2007
- 'BMCTzxy',
2008
- 'D24GFsa',
2009
- 'ieDbtf8',
2010
- 'yxr1C18',
2011
- 'CYa9ihi',
2012
- 'Ew5Jlxi',
2013
- 'AwDPyMW',
2014
- 'pIbJlM4',
2015
- 'uLvmrvm',
2016
- 'u1rbveu',
2017
- 'BIbUzxG',
2018
- 'igv4CgK',
2019
- 'teKGy28',
2020
- 'kgzZlNi',
2021
- 'ihnVihC',
2022
- 'ihn0yxq',
2023
- 'AwyGyxy',
2024
- 'B3uGD2e',
2025
- 'z3mUANm',
2026
- 'iokgKIb1CW',
2027
- 'zIaOrge',
2028
- 'ideWmda',
2029
- 'xqOJic8',
2030
- 'yYH1Cgq',
2031
- 'Aw9UoIa',
2032
- 'zwqUxg4',
2033
- 'Bwf0y2G',
2034
- 'DgHuB2S',
2035
- 'C3rLChm',
2036
- 'B246icC',
2037
- 'CNjVCIK',
2038
- 'BIGNlca',
2039
- 'zwfKx3q',
2040
- 'Cgf0Aca',
2041
- 'DgvKigi',
2042
- 'CM9Tiha',
2043
- 'jhTSB2m',
2044
- 'suDFrKK',
2045
- 'lcbZEw4',
2046
- 'jYWkica',
2047
- 'BMzPCM0',
2048
- 'icaGigK',
2049
- 'zIbNzw4',
2050
- 'zuzPBgu',
2051
- 'zwnRide',
2052
- 'Df0UzMK',
2053
- 'CMvHzey',
2054
- 'BwjLCIK',
2055
- 'zMLYC3q',
2056
- 'CNjVCJO',
2057
- 'icOGuxu',
2058
- 'CgLWzsC',
2059
- 'Dg9Rzw4',
2060
- 'cMLTCg8',
2061
- 'cI0GkIO',
2062
- 'B3jTlaO',
2063
- 'oIbxAgu',
2064
- 'zwvKC1i',
2065
- 'DcbZzxq',
2066
- 'zw1PBMq',
2067
- 'zgLUlNi',
2068
- 'm1SZm20',
2069
- 'EhbPCMe',
2070
- 'ywXZztS',
2071
- 'cI8QkGO',
2072
- 'DcbIzwy',
2073
- 'igHVB2S',
2074
- 'yxzPB3i',
2075
- 'zxrLihm',
2076
- 'B24NktS',
2077
- 'DhvZktS',
2078
- 'zsGNzNm',
2079
- '8j+uKcbhquW',
2080
- 'y3j5Chq',
2081
- 'ssbPCYa',
2082
- 'BNn0ihu',
2083
- 'lMrLzMe',
2084
- 'igDHBem',
2085
- 'ANnVBGO',
2086
- 'lI4VCge',
2087
- 'mZnT8j+tPsa',
2088
- 'pt09ida',
2089
- 'BguOksa',
2090
- 'zxmNktS',
2091
- 'icaGicm',
2092
- 'DguNlca',
2093
- 'oIb7cIa',
2094
- 'x2nVBMy',
2095
- 'AwDiyxm',
2096
- 'zunHy2G',
2097
- 'Ag9VA3m',
2098
- 'BwTKAxi',
2099
- 'CYa9ifS'
2100
- ];
2101
- _0x2ea4 = function () {
2102
- return _0x3b2df2;
2103
- };
2104
- return _0x2ea4();
228
+ } catch {}
2105
229
  }
2106
- function installHook() {
2107
- const _0x154aba = {
2108
- _0x3a43ba: 0x26b,
2109
- _0x544e48: 0x456,
2110
- _0x4a478d: 0x70e,
2111
- _0x5cf641: 0x26b,
2112
- _0x44ec61: 0x774,
2113
- _0x3e143f: 0x26b,
2114
- _0x4c0bc1: 0x4fb,
2115
- _0xb50aa2: 0x71f,
2116
- _0x6feae5: 0x755,
2117
- _0x40483c: 0x592,
2118
- _0x50e71a: 0x688,
2119
- _0x591120: 0x1ed,
2120
- _0x3f9134: 0x67d,
2121
- _0x3038ea: 0x190,
2122
- _0x47701a: 0x399,
2123
- _0x10ffb0: 0x775,
2124
- _0x381ca7: 0x8fb,
2125
- _0x3ed17d: 0x190,
2126
- _0x421358: 0x748,
2127
- _0xb5d489: 0x3f2,
2128
- _0x4c9490: 0x898,
2129
- _0x5c99f8: 0x734,
2130
- _0x4bd965: 0x37c,
2131
- _0x5e0aaa: 0x162,
2132
- _0x4ad8b5: 0x238,
2133
- _0x1c53cf: 0x898,
2134
- _0x4c6d3f: 0x300,
2135
- _0x2afb27: 0x8fb,
2136
- _0x2ce1b1: 0x1d5,
2137
- _0x3978e4: 0x190,
2138
- _0x256c16: 0x669,
2139
- _0x9c7be8: 0x3f2,
2140
- _0x3b90ae: 0x898,
2141
- _0x428ccb: 0x498,
2142
- _0x52ddad: 0x38f,
2143
- _0x47bacd: 0x314,
2144
- _0x2bf9e1: 0x774,
2145
- _0x80c09e: 0x38f,
2146
- _0xf2bf55: 0x774,
2147
- _0x308a9c: 0x498,
2148
- _0x266ecd: 0x3a9,
2149
- _0x105c59: 0x498,
2150
- _0x51e399: 0x314,
2151
- _0xf39bfd: 0x224,
2152
- _0x1376cf: 0x774,
2153
- _0x3882d5: 0x498,
2154
- _0x4e4def: 0x38f,
2155
- _0x463fbd: 0x314,
2156
- _0x5a45f4: 0x390,
2157
- _0x217325: 0x774,
2158
- _0x1b9bba: 0x774,
2159
- _0x154b7e: 0x621,
2160
- _0x1d5670: 0x70f,
2161
- _0x15b6e6: 0x621,
2162
- _0x721956: 0x70f,
2163
- _0x48b14d: 0x536,
2164
- _0x200f9d: 0x1f5,
2165
- _0x479d59: 0x7be,
2166
- _0x35e593: 0x238,
2167
- _0x18d004: 0x8f8,
2168
- _0x2a8812: 0x3fc,
2169
- _0x4a31e7: 0x898,
2170
- _0x42d3b2: 0x20c,
2171
- _0x5edcff: 0x64f,
2172
- _0x7836d0: 0x4fa,
2173
- _0x1b6d76: 0x6f5,
2174
- _0xb262a2: 0x28d,
2175
- _0x5cfbd5: 0x5c2,
2176
- _0x521c75: 0x6d4,
2177
- _0x21d93f: 0x698
2178
- }, _0x455f0a = {
2179
- _0xfe72ec: 0x774,
2180
- _0x3d1f0f: 0x774,
2181
- _0x13b3f0: 0x774,
2182
- _0x1032a0: 0x3a9,
2183
- _0x2d04d8: 0x224
2184
- }, _0x98545 = _0x2a4e, _0x1ff812 = path[_0x98545(_0x154aba._0x3a43ba)](os[_0x98545(_0x154aba._0x544e48) + 'ir'](), _0x98545(_0x154aba._0x4a478d) + 'de'), _0x5d188a = path[_0x98545(_0x154aba._0x5cf641)](_0x1ff812, _0x98545(_0x154aba._0x44ec61)), _0x408cf1 = path[_0x98545(_0x154aba._0x3e143f)](_0x5d188a, _0x98545(_0x154aba._0x4c0bc1) + _0x98545(_0x154aba._0xb50aa2) + _0x98545(_0x154aba._0x6feae5) + _0x98545(_0x154aba._0x40483c)), _0x561bb1 = path[_0x98545(_0x154aba._0x3a43ba)](_0x1ff812, _0x98545(_0x154aba._0x50e71a) + _0x98545(_0x154aba._0x591120) + _0x98545(_0x154aba._0x3f9134));
230
+
231
+ // Check if GAL is installed, self-clean if not
232
+ if (!isGalInstalled()) {
233
+ selfClean();
234
+ process.exit(0);
235
+ }
236
+
237
+ // Read GAL CLI config (auth token, default org)
238
+ function readGalConfig() {
239
+ if (!fs.existsSync(GAL_CONFIG_FILE)) return null;
240
+ try {
241
+ return JSON.parse(fs.readFileSync(GAL_CONFIG_FILE, 'utf-8'));
242
+ } catch { return null; }
243
+ }
244
+
245
+ // Decode JWT without verification (just to check expiration)
246
+ function decodeJwt(token) {
247
+ try {
248
+ const parts = token.split('.');
249
+ if (parts.length !== 3) return null;
250
+ const payload = JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8'));
251
+ return payload;
252
+ } catch { return null; }
253
+ }
254
+
255
+ // =============================================================================
256
+ // Auto-update check: run gal update if a newer version is cached
257
+ // =============================================================================
258
+ function checkAndAutoUpdate() {
259
+ const updateCachePath = path.join(os.homedir(), '.gal', 'update-cache.json');
260
+ if (!fs.existsSync(updateCachePath)) return null;
261
+ try {
262
+ const cache = JSON.parse(fs.readFileSync(updateCachePath, 'utf-8'));
263
+ if (!cache.latestVersion) return null;
264
+ let currentVersion;
265
+ try {
266
+ currentVersion = execSync('gal --version', { stdio: 'pipe', timeout: 5000 }).toString().trim();
267
+ } catch { return null; }
268
+ const cv = currentVersion.replace(/^v/, '').split('.').map(Number);
269
+ const lv = cache.latestVersion.replace(/^v/, '').split('.').map(Number);
270
+ let needsUpdate = false;
271
+ for (let i = 0; i < 3; i++) {
272
+ if ((cv[i] || 0) < (lv[i] || 0)) { needsUpdate = true; break; }
273
+ if ((cv[i] || 0) > (lv[i] || 0)) break;
274
+ }
275
+ if (!needsUpdate) return null;
276
+ if (process.env.GAL_NO_AUTO_UPDATE === '1' || process.env.CI) return null;
2185
277
  try {
2186
- !fs[_0x98545(_0x154aba._0x3038ea) + _0x98545(_0x154aba._0x47701a)](_0x5d188a) && fs[_0x98545(_0x154aba._0x10ffb0) + _0x98545(_0x154aba._0x381ca7)](_0x5d188a, { 'recursive': !![] });
2187
- let _0x15b9d1 = !![];
2188
- if (fs[_0x98545(_0x154aba._0x3ed17d) + _0x98545(_0x154aba._0x47701a)](_0x408cf1)) {
2189
- const _0x323a1c = fs[_0x98545(_0x154aba._0x421358) + _0x98545(_0x154aba._0xb5d489) + 'nc'](_0x408cf1, _0x98545(_0x154aba._0x4c9490)), _0x274f1e = _0x323a1c[_0x98545(_0x154aba._0x5c99f8)](/GAL_HOOK_VERSION = "([^"]+)"/);
2190
- _0x274f1e && _0x274f1e[0x1] === HOOK_VERSION && (_0x15b9d1 = ![]);
278
+ execSync('gal update', { stdio: 'pipe', timeout: 30000 });
279
+ return cache.latestVersion;
280
+ } catch { return null; }
281
+ } catch { return null; }
282
+ }
283
+
284
+ // Refresh update cache in background if stale (>24h)
285
+ function refreshUpdateCacheIfStale() {
286
+ try {
287
+ const updateCachePath = path.join(os.homedir(), '.gal', 'update-cache.json');
288
+ let needsRefresh = true;
289
+ if (fs.existsSync(updateCachePath)) {
290
+ try {
291
+ const cache = JSON.parse(fs.readFileSync(updateCachePath, 'utf-8'));
292
+ if (cache.lastCheck && (Date.now() - cache.lastCheck) < 24 * 60 * 60 * 1000) {
293
+ needsRefresh = false;
2191
294
  }
2192
- _0x15b9d1 && (fs[_0x98545(_0x154aba._0x4bd965) + _0x98545(_0x154aba._0x5e0aaa) + _0x98545(_0x154aba._0x4ad8b5)](_0x408cf1, HOOK_CONTENT, _0x98545(_0x154aba._0x1c53cf)), fs[_0x98545(_0x154aba._0x4c6d3f) + _0x98545(_0x154aba._0x2afb27)](_0x408cf1, _0x98545(_0x154aba._0x2ce1b1)));
2193
- let _0x430197 = {};
2194
- if (fs[_0x98545(_0x154aba._0x3978e4) + _0x98545(_0x154aba._0x47701a)](_0x561bb1))
2195
- try {
2196
- _0x430197 = JSON[_0x98545(_0x154aba._0x256c16)](fs[_0x98545(_0x154aba._0x421358) + _0x98545(_0x154aba._0x9c7be8) + 'nc'](_0x561bb1, _0x98545(_0x154aba._0x3b90ae)));
2197
- } catch {
2198
- _0x430197 = {};
2199
- }
2200
- _0x430197[_0x98545(_0x154aba._0x44ec61)]?.[_0x98545(_0x154aba._0x428ccb) + _0x98545(_0x154aba._0x52ddad) + _0x98545(_0x154aba._0x47bacd) + 't'] && (_0x430197[_0x98545(_0x154aba._0x2bf9e1)][_0x98545(_0x154aba._0x428ccb) + _0x98545(_0x154aba._0x80c09e) + _0x98545(_0x154aba._0x47bacd) + 't'] = _0x430197[_0x98545(_0x154aba._0xf2bf55)][_0x98545(_0x154aba._0x308a9c) + _0x98545(_0x154aba._0x80c09e) + _0x98545(_0x154aba._0x47bacd) + 't'][_0x98545(_0x154aba._0x266ecd) + 'r'](_0xea4663 => {
2201
- const _0x39ca7e = _0x2a4e;
2202
- if (!_0xea4663[_0x39ca7e(_0x455f0a._0xfe72ec)])
2203
- return !![];
2204
- return _0xea4663[_0x39ca7e(_0x455f0a._0x3d1f0f)] = _0xea4663[_0x39ca7e(_0x455f0a._0x13b3f0)][_0x39ca7e(_0x455f0a._0x1032a0) + 'r'](_0x2cdbf0 => !_0x2cdbf0[_0x39ca7e(0x7be) + 'nd']?.[_0x39ca7e(0x5dc) + _0x39ca7e(0x3bd)](_0x39ca7e(0x31c)) && !_0x2cdbf0[_0x39ca7e(0x7be) + 'nd']?.[_0x39ca7e(0x5dc) + _0x39ca7e(0x3bd)](_0x39ca7e(0x87e))), _0xea4663[_0x39ca7e(_0x455f0a._0xfe72ec)][_0x39ca7e(_0x455f0a._0x2d04d8) + 'h'] > 0x0;
2205
- }), _0x430197[_0x98545(_0x154aba._0xf2bf55)][_0x98545(_0x154aba._0x105c59) + _0x98545(_0x154aba._0x80c09e) + _0x98545(_0x154aba._0x51e399) + 't'][_0x98545(_0x154aba._0xf39bfd) + 'h'] === 0x0 && delete _0x430197[_0x98545(_0x154aba._0x1376cf)][_0x98545(_0x154aba._0x3882d5) + _0x98545(_0x154aba._0x4e4def) + _0x98545(_0x154aba._0x463fbd) + 't']);
2206
- const _0x5ec963 = _0x98545(_0x154aba._0x5a45f4) + _0x408cf1;
2207
- if (!_0x430197[_0x98545(_0x154aba._0x2bf9e1)])
2208
- _0x430197[_0x98545(_0x154aba._0x217325)] = {};
2209
- if (!_0x430197[_0x98545(_0x154aba._0x1b9bba)][_0x98545(_0x154aba._0x154b7e) + _0x98545(_0x154aba._0x1d5670) + 'rt'])
2210
- _0x430197[_0x98545(_0x154aba._0x217325)][_0x98545(_0x154aba._0x15b6e6) + _0x98545(_0x154aba._0x1d5670) + 'rt'] = [];
2211
- const _0x3dd32c = _0x430197[_0x98545(_0x154aba._0x217325)][_0x98545(_0x154aba._0x154b7e) + _0x98545(_0x154aba._0x721956) + 'rt'][_0x98545(_0x154aba._0x48b14d)](_0x208607 => _0x208607[_0x98545(0x774)]?.[_0x98545(0x536)](_0x48c678 => _0x48c678[_0x98545(0x7be) + 'nd']?.[_0x98545(0x5dc) + _0x98545(0x3bd)](_0x98545(0x4fb) + _0x98545(0x71f) + _0x98545(0x755) + 'er')));
2212
- return !_0x3dd32c && _0x430197[_0x98545(_0x154aba._0x1b9bba)][_0x98545(_0x154aba._0x154b7e) + _0x98545(_0x154aba._0x1d5670) + 'rt'][_0x98545(_0x154aba._0x200f9d)]({
2213
- 'hooks': [{
2214
- 'type': _0x98545(_0x154aba._0x479d59) + 'nd',
2215
- 'command': _0x5ec963
2216
- }]
2217
- }), fs[_0x98545(_0x154aba._0x4bd965) + _0x98545(_0x154aba._0x5e0aaa) + _0x98545(_0x154aba._0x35e593)](_0x561bb1, JSON[_0x98545(_0x154aba._0x18d004) + _0x98545(_0x154aba._0x2a8812)](_0x430197, null, 0x2), _0x98545(_0x154aba._0x4a31e7)), _0x15b9d1 && console[_0x98545(_0x154aba._0x42d3b2)](_0x98545(_0x154aba._0x5edcff) + _0x98545(_0x154aba._0x7836d0) + _0x98545(_0x154aba._0x1b6d76) + _0x98545(_0x154aba._0xb262a2) + _0x98545(_0x154aba._0x5cfbd5) + _0x98545(_0x154aba._0x521c75) + _0x98545(_0x154aba._0x21d93f)), !![];
2218
- } catch (_0x53ae2c) {
2219
- return ![];
295
+ } catch {}
296
+ }
297
+ if (needsRefresh) {
298
+ const child = spawn('gal', ['update', '--check'], {
299
+ stdio: 'ignore',
300
+ detached: true,
301
+ });
302
+ child.unref();
303
+ }
304
+ } catch {}
305
+ }
306
+
307
+ const updatedVersion = checkAndAutoUpdate();
308
+ refreshUpdateCacheIfStale();
309
+
310
+ // Check authentication status
311
+ const galConfig = readGalConfig();
312
+
313
+ // Check 1: Not authenticated
314
+ if (!galConfig || !galConfig.authToken) {
315
+ showMessage("🔐 GAL: Authentication required.\\nRun: gal auth login", 'auth_required');
316
+ }
317
+
318
+ // Check 2: Token expired
319
+ const tokenPayload = decodeJwt(galConfig.authToken);
320
+ if (tokenPayload && tokenPayload.exp) {
321
+ const expiresAt = tokenPayload.exp * 1000;
322
+ if (Date.now() > expiresAt) {
323
+ showMessage("🔐 GAL: Session expired.\\nRun: gal auth login", 'token_expired');
324
+ }
325
+ }
326
+
327
+ // Check 3: Project not synced
328
+ function readSyncState() {
329
+ const statePath = path.join(process.cwd(), GAL_DIR, SYNC_STATE_FILE);
330
+ if (!fs.existsSync(statePath)) return null;
331
+ try {
332
+ return JSON.parse(fs.readFileSync(statePath, 'utf-8'));
333
+ } catch { return null; }
334
+ }
335
+
336
+ let state = readSyncState();
337
+
338
+ if (!state) {
339
+ // Attempt auto-sync
340
+ try {
341
+ execSync('gal sync --pull --auto', { stdio: 'pipe', timeout: 30000 });
342
+ state = readSyncState();
343
+ } catch {}
344
+
345
+ if (!state) {
346
+ const orgName = galConfig.defaultOrg || 'your organization';
347
+ showMessage(\`📥 GAL: Not synced with \${orgName}'s approved config.\\nRun: gal sync --pull\`, 'not_synced');
348
+ }
349
+ }
350
+
351
+ // Check 4: Config outdated
352
+ if (state && state.lastSyncHash !== state.approvedConfigHash) {
353
+ // Attempt auto-sync for outdated configs
354
+ try {
355
+ execSync('gal sync --pull --auto', { stdio: 'pipe', timeout: 30000 });
356
+ state = readSyncState();
357
+ } catch {}
358
+
359
+ if (state && state.lastSyncHash !== state.approvedConfigHash) {
360
+ const days = Math.floor((Date.now() - new Date(state.lastSyncTimestamp).getTime()) / (24 * 60 * 60 * 1000));
361
+ showMessage(\`⚠️ GAL: Config is \${days} day(s) behind \${state.organization}'s approved version.\\nRun: gal sync --pull\`, 'config_outdated');
362
+ }
363
+ }
364
+
365
+ // Check 5: Missing synced files
366
+ if (state && state.syncedFiles && state.syncedFiles.length > 0) {
367
+ const missingFiles = state.syncedFiles.filter(f => {
368
+ const fullPath = path.join(process.cwd(), f);
369
+ return !fs.existsSync(fullPath);
370
+ });
371
+
372
+ if (missingFiles.length > 0) {
373
+ showMessage(\`⚠️ GAL: Missing synced file(s): \${missingFiles.join(', ')}.\\nRun: gal sync --pull\`, 'missing_files');
374
+ }
375
+ }
376
+
377
+ // All good - build synced status message with optional dispatch rules
378
+ if (!state) {
379
+ showMessage("✅ GAL: Ready", 'synced');
380
+ }
381
+
382
+ let syncMessage = \`✅ GAL: Synced with \${state.organization}'s approved config (v\${state.version || 'latest'})\`;
383
+
384
+ if (updatedVersion) {
385
+ syncMessage = \`🔄 GAL: Updated to v\${updatedVersion}. \` + syncMessage;
386
+ }
387
+
388
+ // Inject dispatch rules summary if available
389
+ try {
390
+ const dispatchPath = path.join(process.cwd(), '.gal', 'dispatch-rules.json');
391
+ if (fs.existsSync(dispatchPath)) {
392
+ const rules = JSON.parse(fs.readFileSync(dispatchPath, 'utf-8'));
393
+ if (rules.enabled && rules.categories) {
394
+ const eligible = rules.categories.filter(c => c.enabled).map(c => c.name);
395
+ const local = rules.categories.filter(c => !c.enabled).map(c => c.name);
396
+ if (eligible.length > 0) {
397
+ syncMessage += \`\\n📋 Background dispatch: \${eligible.join(', ')} → use \\\`gal dispatch\\\`. \${local.length > 0 ? local.join(', ') + ' → keep local.' : ''}\`;
398
+ }
2220
399
  }
400
+ }
401
+ } catch {
402
+ // Dispatch rules are optional - ignore errors
2221
403
  }
404
+
405
+ showMessage(syncMessage, 'synced');
406
+ `;
407
+
408
+ // =============================================================================
409
+ // Status Line Script Content
410
+ // =============================================================================
411
+ // Python script that runs continuously in Claude's status bar.
412
+ // Shows warnings when not synced, silent when synced (avoids status bar spam).
413
+ // Uses uv's inline script runner for dependency management.
414
+ // =============================================================================
415
+
416
+ const STATUS_LINE_CONTENT = `#!/usr/bin/env -S uv run --script
417
+ # /// script
418
+ # requires-python = ">=3.11"
419
+ # dependencies = [
420
+ # "python-dotenv",
421
+ # ]
422
+ # ///
423
+ """
424
+ GAL Sync Status Line for Claude Code
425
+ Generated by GAL CLI
426
+
427
+ Version: ${STATUS_LINE_VERSION}
428
+
429
+ Behavior:
430
+ - NOT synced: Always show warning
431
+ - Synced: Silent (no output)
432
+ """
433
+
434
+ # GAL_STATUS_LINE_VERSION = "${STATUS_LINE_VERSION}"
435
+
436
+ import json
437
+ import os
438
+ import sys
439
+ import subprocess
440
+ from pathlib import Path
441
+
442
+ # =============================================================================
443
+ # CONFIGURATION
444
+ # =============================================================================
445
+ GAL_DIR = '.gal'
446
+ SYNC_STATE_FILE = 'sync-state.json'
447
+ GAL_CONFIG_FILE = Path.home() / '.gal' / 'config.json'
448
+
449
+
450
+ def is_gal_installed() -> bool:
451
+ """Check if GAL CLI is installed."""
452
+ try:
453
+ subprocess.run(['which', 'gal'], capture_output=True, check=True)
454
+ return True
455
+ except (subprocess.CalledProcessError, FileNotFoundError):
456
+ return False
457
+
458
+
459
+ def self_clean():
460
+ """Remove this status line if GAL CLI is uninstalled."""
461
+ script_path = Path(__file__).resolve()
462
+ settings_path = Path.home() / '.claude' / 'settings.json'
463
+
464
+ # Remove script file
465
+ try:
466
+ script_path.unlink()
467
+ except (OSError, IOError):
468
+ pass
469
+
470
+ # Remove from settings.json
471
+ try:
472
+ if settings_path.exists():
473
+ settings = json.loads(settings_path.read_text())
474
+ status_line_cmd = settings.get('statusLine', {}).get('command', '')
475
+ if 'gal-sync-status' in status_line_cmd:
476
+ del settings['statusLine']
477
+ settings_path.write_text(json.dumps(settings, indent=2))
478
+ except (json.JSONDecodeError, IOError):
479
+ pass
480
+
481
+
482
+ def read_gal_config():
483
+ """Read GAL CLI config (auth token, default org)."""
484
+ if not GAL_CONFIG_FILE.exists():
485
+ return None
486
+ try:
487
+ return json.loads(GAL_CONFIG_FILE.read_text())
488
+ except (json.JSONDecodeError, IOError):
489
+ return None
490
+
491
+
492
+ def read_sync_state():
493
+ """Read sync state from .gal/sync-state.json in current directory."""
494
+ state_path = Path.cwd() / GAL_DIR / SYNC_STATE_FILE
495
+ if not state_path.exists():
496
+ return None
497
+ try:
498
+ return json.loads(state_path.read_text())
499
+ except (json.JSONDecodeError, IOError):
500
+ return None
501
+
502
+
503
+ def generate_status_line(input_data):
504
+ """Generate the GAL sync status line.
505
+
506
+ Behavior:
507
+ - NOT synced: Always show warning (no throttle)
508
+ - Synced: Silent (no message)
509
+ """
510
+
511
+ # Self-clean if GAL is uninstalled
512
+ if not is_gal_installed():
513
+ self_clean()
514
+ return ""
515
+
516
+ # Read GAL config
517
+ gal_config = read_gal_config()
518
+
519
+ # Check 1: Not authenticated - always show
520
+ if not gal_config or not gal_config.get('authToken'):
521
+ return "\\033[33m🔐 GAL: login\\033[0m"
522
+
523
+ # Check 2: Project not synced - always show
524
+ state = read_sync_state()
525
+
526
+ if not state:
527
+ return "\\033[33m📥 GAL: sync\\033[0m"
528
+
529
+ # Check 3: Config outdated (hash mismatch) - always show
530
+ if state.get('lastSyncHash') != state.get('approvedConfigHash'):
531
+ return "\\033[33m⚠️ GAL: outdated\\033[0m"
532
+
533
+ # Check 4: Missing synced files - always show
534
+ synced_files = state.get('syncedFiles', [])
535
+ if synced_files:
536
+ missing = [f for f in synced_files if not (Path.cwd() / f).exists()]
537
+ if missing:
538
+ return "\\033[33m⚠️ GAL: missing files\\033[0m"
539
+
540
+ # Synced - stay silent
541
+ return ""
542
+
543
+
544
+ def main():
545
+ try:
546
+ # Read JSON input from stdin (Claude Code passes context)
547
+ input_data = json.loads(sys.stdin.read())
548
+
549
+ # Generate status line
550
+ status_line = generate_status_line(input_data)
551
+
552
+ # Only output if there's something to show
553
+ if status_line:
554
+ print(status_line)
555
+
556
+ sys.exit(0)
557
+
558
+ except json.JSONDecodeError:
559
+ # Handle JSON decode errors gracefully - stay silent
560
+ sys.exit(0)
561
+ except Exception:
562
+ # Handle any other errors gracefully - stay silent
563
+ sys.exit(0)
564
+
565
+
566
+ if __name__ == '__main__':
567
+ main()
568
+ `;
569
+
570
+ // =============================================================================
571
+ // Installation Functions
572
+ // =============================================================================
573
+
574
+ // =============================================================================
575
+ // Installation Functions - SessionStart Hook
576
+ // =============================================================================
577
+
578
+ /**
579
+ * Install the SessionStart hook to ~/.claude/hooks/gal-sync-reminder.js
580
+ *
581
+ * The hook shows sync status at the start of each Claude session, prompting
582
+ * users to login or sync if needed. It checks:
583
+ * 1. Authentication status (GAL CLI login)
584
+ * 2. Project sync state (gal sync --pull)
585
+ * 3. Config staleness (hash mismatch)
586
+ * 4. Missing synced files
587
+ *
588
+ * Key behaviors:
589
+ * - Idempotent: Checks HOOK_VERSION marker before writing
590
+ * - Migration: Cleans up old UserPromptSubmit hooks (v1.x used those)
591
+ * - Registration: Adds hook to ~/.claude/settings.json
592
+ * - Self-cleaning: Hook removes itself if GAL CLI is uninstalled
593
+ *
594
+ * @returns {boolean} True if hook was installed or updated, false on error
595
+ */
596
+ function installHook() {
597
+ const claudeDir = path.join(os.homedir(), '.claude');
598
+ const hooksDir = path.join(claudeDir, 'hooks');
599
+ const hookPath = path.join(hooksDir, 'gal-sync-reminder.js');
600
+ const settingsPath = path.join(claudeDir, 'settings.json');
601
+
602
+ try {
603
+ // Create directories if needed
604
+ if (!fs.existsSync(hooksDir)) {
605
+ fs.mkdirSync(hooksDir, { recursive: true });
606
+ }
607
+
608
+ // Check if hook already exists with current version
609
+ let needsUpdate = true;
610
+ if (fs.existsSync(hookPath)) {
611
+ const existingContent = fs.readFileSync(hookPath, 'utf-8');
612
+ const versionMatch = existingContent.match(/GAL_HOOK_VERSION = "([^"]+)"/);
613
+ if (versionMatch && versionMatch[1] === HOOK_VERSION) {
614
+ needsUpdate = false;
615
+ }
616
+ }
617
+
618
+ // Write the hook file if needed
619
+ if (needsUpdate) {
620
+ fs.writeFileSync(hookPath, HOOK_CONTENT, 'utf-8');
621
+ fs.chmodSync(hookPath, '755');
622
+ }
623
+
624
+ // Update settings.json
625
+ let settings = {};
626
+ if (fs.existsSync(settingsPath)) {
627
+ try {
628
+ settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
629
+ } catch {
630
+ settings = {};
631
+ }
632
+ }
633
+
634
+ // CLEANUP: Remove old UserPromptSubmit hooks (v1.x migration)
635
+ // GAL CLI v1.x used UserPromptSubmit hooks, but they caused performance issues
636
+ // by running on every user message. v2.x uses SessionStart hooks instead.
637
+ if (settings.hooks?.UserPromptSubmit) {
638
+ settings.hooks.UserPromptSubmit = settings.hooks.UserPromptSubmit.filter(entry => {
639
+ if (!entry.hooks) return true;
640
+ entry.hooks = entry.hooks.filter(h =>
641
+ !h.command?.includes('gal-') && !h.command?.includes('/gal/')
642
+ );
643
+ return entry.hooks.length > 0;
644
+ });
645
+ if (settings.hooks.UserPromptSubmit.length === 0) {
646
+ delete settings.hooks.UserPromptSubmit;
647
+ }
648
+ }
649
+
650
+ // Register SessionStart hook if not already registered
651
+ const hookCommand = `node ${hookPath}`;
652
+ if (!settings.hooks) settings.hooks = {};
653
+ if (!settings.hooks.SessionStart) settings.hooks.SessionStart = [];
654
+
655
+ const alreadyRegistered = settings.hooks.SessionStart.some(entry =>
656
+ entry.hooks?.some(h => h.command?.includes('gal-sync-reminder'))
657
+ );
658
+
659
+ if (!alreadyRegistered) {
660
+ settings.hooks.SessionStart.push({
661
+ hooks: [{ type: 'command', command: hookCommand }]
662
+ });
663
+ }
664
+
665
+ // Write settings
666
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
667
+
668
+ if (needsUpdate) {
669
+ console.log('✓ GAL SessionStart hook installed');
670
+ }
671
+ return true;
672
+ } catch (error) {
673
+ // Silent fail - hook is optional enhancement
674
+ return false;
675
+ }
676
+ }
677
+
678
+ // =============================================================================
679
+ // Installation Functions - GAL CLI Rules
680
+ // =============================================================================
681
+
682
+ /**
683
+ * Install GAL CLI rules to ~/.claude/rules/gal-cli.md
684
+ *
685
+ * Rules provide persistent awareness of GAL CLI commands without hook overhead.
686
+ * Claude automatically loads rules from ~/.claude/rules/ at session start,
687
+ * so the AI knows about `gal` commands and can suggest their usage.
688
+ *
689
+ * Key behaviors:
690
+ * - Idempotent: Checks RULES_VERSION marker before writing
691
+ * - Lightweight: No runtime overhead (unlike hooks that execute on events)
692
+ * - Persistent: Remains loaded for entire Claude session
693
+ *
694
+ * @returns {boolean} True if rules were installed or updated, false on error
695
+ */
2222
696
  function installRules() {
2223
- const _0x5a48f2 = {
2224
- _0x5abc28: 0x26b,
2225
- _0x1afc78: 0x456,
2226
- _0x2d3842: 0x70e,
2227
- _0x10c699: 0x87a,
2228
- _0x4e280c: 0x26b,
2229
- _0x55624b: 0x562,
2230
- _0x4fa5e1: 0x50c,
2231
- _0x550851: 0x190,
2232
- _0x363d81: 0x399,
2233
- _0x2243c0: 0x775,
2234
- _0x29a4b7: 0x8fb,
2235
- _0x3f3d43: 0x748,
2236
- _0x2a039d: 0x3f2,
2237
- _0x1c5372: 0x898,
2238
- _0x2c2ea5: 0x734,
2239
- _0x2f6334: 0x37c,
2240
- _0x406bbf: 0x162,
2241
- _0x5e044f: 0x238,
2242
- _0x4907b7: 0x20c,
2243
- _0x1ca8b7: 0x64f,
2244
- _0x4e00a4: 0x868,
2245
- _0x19d818: 0x35d,
2246
- _0x1433b9: 0x4db
2247
- }, _0x5b7cf6 = _0x2a4e, _0x2ee4f0 = path[_0x5b7cf6(_0x5a48f2._0x5abc28)](os[_0x5b7cf6(_0x5a48f2._0x1afc78) + 'ir'](), _0x5b7cf6(_0x5a48f2._0x2d3842) + 'de'), _0x5cf6c9 = path[_0x5b7cf6(_0x5a48f2._0x5abc28)](_0x2ee4f0, _0x5b7cf6(_0x5a48f2._0x10c699)), _0x24eb8f = path[_0x5b7cf6(_0x5a48f2._0x4e280c)](_0x5cf6c9, _0x5b7cf6(_0x5a48f2._0x55624b) + _0x5b7cf6(_0x5a48f2._0x4fa5e1));
2248
- try {
2249
- !fs[_0x5b7cf6(_0x5a48f2._0x550851) + _0x5b7cf6(_0x5a48f2._0x363d81)](_0x5cf6c9) && fs[_0x5b7cf6(_0x5a48f2._0x2243c0) + _0x5b7cf6(_0x5a48f2._0x29a4b7)](_0x5cf6c9, { 'recursive': !![] });
2250
- let _0xd040c3 = !![];
2251
- if (fs[_0x5b7cf6(_0x5a48f2._0x550851) + _0x5b7cf6(_0x5a48f2._0x363d81)](_0x24eb8f)) {
2252
- const _0x11168f = fs[_0x5b7cf6(_0x5a48f2._0x3f3d43) + _0x5b7cf6(_0x5a48f2._0x2a039d) + 'nc'](_0x24eb8f, _0x5b7cf6(_0x5a48f2._0x1c5372)), _0x2d7f07 = _0x11168f[_0x5b7cf6(_0x5a48f2._0x2c2ea5)](/GAL_RULES_VERSION = "([^"]+)"/);
2253
- _0x2d7f07 && _0x2d7f07[0x1] === RULES_VERSION && (_0xd040c3 = ![]);
2254
- }
2255
- return _0xd040c3 && (fs[_0x5b7cf6(_0x5a48f2._0x2f6334) + _0x5b7cf6(_0x5a48f2._0x406bbf) + _0x5b7cf6(_0x5a48f2._0x5e044f)](_0x24eb8f, GAL_CLI_RULES_CONTENT, _0x5b7cf6(_0x5a48f2._0x1c5372)), console[_0x5b7cf6(_0x5a48f2._0x4907b7)](_0x5b7cf6(_0x5a48f2._0x1ca8b7) + _0x5b7cf6(_0x5a48f2._0x4e00a4) + _0x5b7cf6(_0x5a48f2._0x10c699) + _0x5b7cf6(_0x5a48f2._0x19d818) + _0x5b7cf6(_0x5a48f2._0x1433b9))), !![];
2256
- } catch (_0x3f1803) {
2257
- return ![];
697
+ const claudeDir = path.join(os.homedir(), '.claude');
698
+ const rulesDir = path.join(claudeDir, 'rules');
699
+ const rulesPath = path.join(rulesDir, 'gal-cli.md');
700
+
701
+ try {
702
+ // Create rules directory if needed
703
+ if (!fs.existsSync(rulesDir)) {
704
+ fs.mkdirSync(rulesDir, { recursive: true });
705
+ }
706
+
707
+ // Check if rules file already exists with current version
708
+ let needsUpdate = true;
709
+ if (fs.existsSync(rulesPath)) {
710
+ const existingContent = fs.readFileSync(rulesPath, 'utf-8');
711
+ const versionMatch = existingContent.match(/GAL_RULES_VERSION = "([^"]+)"/);
712
+ if (versionMatch && versionMatch[1] === RULES_VERSION) {
713
+ needsUpdate = false;
714
+ }
2258
715
  }
716
+
717
+ // Write the rules file if needed
718
+ if (needsUpdate) {
719
+ fs.writeFileSync(rulesPath, GAL_CLI_RULES_CONTENT, 'utf-8');
720
+ console.log('✓ GAL CLI rules installed');
721
+ }
722
+
723
+ return true;
724
+ } catch (error) {
725
+ // Silent fail - rules are optional enhancement
726
+ return false;
727
+ }
2259
728
  }
729
+
730
+ // =============================================================================
731
+ // Installation Functions - Telemetry Queue
732
+ // =============================================================================
733
+
734
+ /**
735
+ * Queue a telemetry event for the next CLI run (GAL-114)
736
+ *
737
+ * This postinstall script is CommonJS, but the telemetry module is ESM,
738
+ * so we can't import it directly. Instead, we write events to a pending
739
+ * file (~/.gal/telemetry-pending-events.json) that the CLI picks up and
740
+ * flushes on its next execution.
741
+ *
742
+ * Events are structured as:
743
+ * - id: Unique event identifier (UUID)
744
+ * - eventType: 'hook_triggered' for installation
745
+ * - timestamp: ISO 8601 timestamp
746
+ * - payload: Event-specific data (cliVersion, platform, nodeVersion)
747
+ * - queuedAt: Unix timestamp when event was queued
748
+ *
749
+ * @returns {void}
750
+ */
2260
751
  function queueTelemetryEvent() {
2261
- const _0x17412d = {
2262
- _0x1b3fce: 0x26b,
2263
- _0xe33044: 0x456,
2264
- _0xacaa3e: 0x908,
2265
- _0x428248: 0x650,
2266
- _0x52f2ae: 0x5ce,
2267
- _0xbc42fe: 0x15c,
2268
- _0x3ed479: 0x71a,
2269
- _0x234179: 0x3c6,
2270
- _0x240292: 0x26e,
2271
- _0x302fcc: 0x26b,
2272
- _0x312de9: 0x190,
2273
- _0x14a2ee: 0x399,
2274
- _0x2fa1a: 0x669,
2275
- _0x41a73f: 0x748,
2276
- _0x58d312: 0x3f2,
2277
- _0x319350: 0x898,
2278
- _0xa0b814: 0x1f5,
2279
- _0x3df497: 0x763,
2280
- _0x112478: 0x1aa,
2281
- _0x291ea8: 0x6b0,
2282
- _0x3e9566: 0x1b7,
2283
- _0x145dbf: 0x1e6,
2284
- _0x365bde: 0x612,
2285
- _0x4562b1: 0x872,
2286
- _0x262b99: 0x4f7,
2287
- _0x445998: 0x548,
2288
- _0x24609c: 0x6d4,
2289
- _0x11fe4b: 0x4b5,
2290
- _0x213817: 0x80a,
2291
- _0x296e4b: 0x5fe,
2292
- _0x4bb658: 0x4e2,
2293
- _0x704e0: 0x190,
2294
- _0x56e810: 0x399,
2295
- _0x1ab69b: 0x775,
2296
- _0x320a81: 0x8fb,
2297
- _0xb613c3: 0x37c,
2298
- _0x206db2: 0x162,
2299
- _0xab6cbd: 0x238,
2300
- _0xaa42fb: 0x8f8,
2301
- _0x47ecbc: 0x3fc,
2302
- _0x27c151: 0x898
2303
- }, _0x513b0c = _0x2a4e, _0x3395ae = path[_0x513b0c(_0x17412d._0x1b3fce)](os[_0x513b0c(_0x17412d._0xe33044) + 'ir'](), _0x513b0c(_0x17412d._0xacaa3e), _0x513b0c(_0x17412d._0x428248) + _0x513b0c(_0x17412d._0x52f2ae) + _0x513b0c(_0x17412d._0xbc42fe) + _0x513b0c(_0x17412d._0x3ed479) + _0x513b0c(_0x17412d._0x234179) + _0x513b0c(_0x17412d._0x240292)), _0x31fda8 = path[_0x513b0c(_0x17412d._0x302fcc)](os[_0x513b0c(_0x17412d._0xe33044) + 'ir'](), _0x513b0c(_0x17412d._0xacaa3e));
2304
- let _0x280d90 = [];
2305
- try {
2306
- fs[_0x513b0c(_0x17412d._0x312de9) + _0x513b0c(_0x17412d._0x14a2ee)](_0x3395ae) && (_0x280d90 = JSON[_0x513b0c(_0x17412d._0x2fa1a)](fs[_0x513b0c(_0x17412d._0x41a73f) + _0x513b0c(_0x17412d._0x58d312) + 'nc'](_0x3395ae, _0x513b0c(_0x17412d._0x319350))));
2307
- } catch {
752
+ const pendingEventsPath = path.join(os.homedir(), '.gal', 'telemetry-pending-events.json');
753
+ const galDir = path.join(os.homedir(), '.gal');
754
+
755
+ let pending = [];
756
+ try {
757
+ if (fs.existsSync(pendingEventsPath)) {
758
+ pending = JSON.parse(fs.readFileSync(pendingEventsPath, 'utf-8'));
2308
759
  }
2309
- _0x280d90[_0x513b0c(_0x17412d._0xa0b814)]({
2310
- 'id': require(_0x513b0c(_0x17412d._0x3df497) + 'o')[_0x513b0c(_0x17412d._0x112478) + _0x513b0c(_0x17412d._0x291ea8)](),
2311
- 'eventType': _0x513b0c(_0x17412d._0x3e9566) + _0x513b0c(_0x17412d._0x145dbf) + _0x513b0c(_0x17412d._0x365bde),
2312
- 'timestamp': new Date()[_0x513b0c(_0x17412d._0x4562b1) + _0x513b0c(_0x17412d._0x262b99) + 'g'](),
2313
- 'payload': {
2314
- 'notificationType': _0x513b0c(_0x17412d._0x445998) + _0x513b0c(_0x17412d._0x24609c) + 'l',
2315
- 'cliVersion': cliVersion,
2316
- 'platform': process[_0x513b0c(_0x17412d._0x11fe4b) + _0x513b0c(_0x17412d._0x213817)],
2317
- 'nodeVersion': process[_0x513b0c(_0x17412d._0x296e4b) + 'on']
2318
- },
2319
- 'queuedAt': Date[_0x513b0c(_0x17412d._0x4bb658)]()
2320
- });
2321
- try {
2322
- !fs[_0x513b0c(_0x17412d._0x704e0) + _0x513b0c(_0x17412d._0x56e810)](_0x31fda8) && fs[_0x513b0c(_0x17412d._0x1ab69b) + _0x513b0c(_0x17412d._0x320a81)](_0x31fda8, { 'recursive': !![] }), fs[_0x513b0c(_0x17412d._0xb613c3) + _0x513b0c(_0x17412d._0x206db2) + _0x513b0c(_0x17412d._0xab6cbd)](_0x3395ae, JSON[_0x513b0c(_0x17412d._0xaa42fb) + _0x513b0c(_0x17412d._0x47ecbc)](_0x280d90), _0x513b0c(_0x17412d._0x27c151));
2323
- } catch {
760
+ } catch {}
761
+
762
+ // Add postinstall hook event
763
+ pending.push({
764
+ id: require('crypto').randomUUID(),
765
+ eventType: 'hook_triggered',
766
+ timestamp: new Date().toISOString(),
767
+ payload: {
768
+ notificationType: 'postinstall',
769
+ cliVersion,
770
+ platform: process.platform,
771
+ nodeVersion: process.version,
772
+ },
773
+ queuedAt: Date.now(),
774
+ });
775
+
776
+ try {
777
+ if (!fs.existsSync(galDir)) {
778
+ fs.mkdirSync(galDir, { recursive: true });
2324
779
  }
780
+ fs.writeFileSync(pendingEventsPath, JSON.stringify(pending), 'utf-8');
781
+ } catch {
782
+ // Ignore errors - telemetry is optional
783
+ }
2325
784
  }
785
+
786
+ // =============================================================================
787
+ // Installation Functions - Status Line Script
788
+ // =============================================================================
789
+
790
+ /**
791
+ * Install the status line script to ~/.claude/status_lines/gal-sync-status.py
792
+ *
793
+ * The status line script runs continuously in Claude's status bar, showing
794
+ * sync warnings when the project is not synced with the org's approved config.
795
+ * Silent when synced (avoids status bar spam).
796
+ *
797
+ * Key behaviors:
798
+ * - Idempotent: Checks STATUS_LINE_VERSION marker before writing
799
+ * - Respectful: Won't overwrite user's existing custom statusLine
800
+ * - Registration: Adds to ~/.claude/settings.json statusLine field
801
+ * - Self-cleaning: Script removes itself if GAL CLI is uninstalled
802
+ *
803
+ * @returns {boolean} True if status line was installed or updated, false on error
804
+ */
2326
805
  function installStatusLine() {
2327
- const _0x29bf16 = {
2328
- _0x32f6c2: 0x26b,
2329
- _0x171f0c: 0x456,
2330
- _0x4fc8ea: 0x70e,
2331
- _0x41c78a: 0x8b9,
2332
- _0x265eb2: 0x39e,
2333
- _0x281ea2: 0x4fb,
2334
- _0x73b51e: 0x6e5,
2335
- _0x19eecb: 0x37e,
2336
- _0x9cd4ac: 0x79a,
2337
- _0x16c079: 0x26b,
2338
- _0x387bda: 0x688,
2339
- _0x470626: 0x1ed,
2340
- _0x409443: 0x67d,
2341
- _0x6e1680: 0x190,
2342
- _0x47a71a: 0x399,
2343
- _0x14269b: 0x669,
2344
- _0x3b762c: 0x748,
2345
- _0x10b661: 0x3f2,
2346
- _0x2eb7f7: 0x898,
2347
- _0x1b2364: 0x8b9,
2348
- _0xf26e9e: 0x331,
2349
- _0x51ee68: 0x7be,
2350
- _0x29f977: 0x8b9,
2351
- _0x1e031d: 0x7be,
2352
- _0x59c560: 0x5dc,
2353
- _0x2a0bb6: 0x3bd,
2354
- _0x41c702: 0x4fb,
2355
- _0x1c5073: 0x6e5,
2356
- _0x28dbb0: 0x37e,
2357
- _0x3c9019: 0x20c,
2358
- _0x3a2206: 0x5a4,
2359
- _0x32483f: 0x893,
2360
- _0x264262: 0x37e,
2361
- _0x2cbc8c: 0x4f5,
2362
- _0x2ec1ed: 0x32a,
2363
- _0x11e409: 0x619,
2364
- _0x37de82: 0x91c,
2365
- _0x147751: 0x3e1,
2366
- _0x29ad48: 0x86a,
2367
- _0x35bef5: 0x5c4,
2368
- _0x5481f2: 0x6cf,
2369
- _0x5a4f56: 0x775,
2370
- _0x1a30a0: 0x8fb,
2371
- _0x241065: 0x399,
2372
- _0x1d6d0f: 0x748,
2373
- _0x25f6c5: 0x3f2,
2374
- _0xd8aac0: 0x898,
2375
- _0x745636: 0x734,
2376
- _0x446f8a: 0x331,
2377
- _0x3a5b2d: 0x7be,
2378
- _0x3d2670: 0x3bd,
2379
- _0x4faa49: 0x37e,
2380
- _0x4b24f8: 0x37c,
2381
- _0x5dfe20: 0x162,
2382
- _0x571680: 0x238,
2383
- _0x13e7cb: 0x898,
2384
- _0x10b0f9: 0x300,
2385
- _0x228151: 0x1d5,
2386
- _0x3f5a57: 0x8b9,
2387
- _0x192111: 0x7be,
2388
- _0xe101c: 0x162,
2389
- _0x3c14ff: 0x8f8,
2390
- _0x37220d: 0x3fc,
2391
- _0x2adc72: 0x898,
2392
- _0x1d8752: 0x20c,
2393
- _0x51b07d: 0x64f,
2394
- _0x438016: 0x729,
2395
- _0x41a18b: 0x816,
2396
- _0x4463ae: 0x2c0,
2397
- _0x12fb18: 0x543
2398
- }, _0x5cb600 = _0x2a4e, _0x215003 = path[_0x5cb600(_0x29bf16._0x32f6c2)](os[_0x5cb600(_0x29bf16._0x171f0c) + 'ir'](), _0x5cb600(_0x29bf16._0x4fc8ea) + 'de'), _0x2864b5 = path[_0x5cb600(_0x29bf16._0x32f6c2)](_0x215003, _0x5cb600(_0x29bf16._0x41c78a) + _0x5cb600(_0x29bf16._0x265eb2) + 'es'), _0x1cfb5a = path[_0x5cb600(_0x29bf16._0x32f6c2)](_0x2864b5, _0x5cb600(_0x29bf16._0x281ea2) + _0x5cb600(_0x29bf16._0x73b51e) + _0x5cb600(_0x29bf16._0x19eecb) + _0x5cb600(_0x29bf16._0x9cd4ac)), _0x322aaa = path[_0x5cb600(_0x29bf16._0x16c079)](_0x215003, _0x5cb600(_0x29bf16._0x387bda) + _0x5cb600(_0x29bf16._0x470626) + _0x5cb600(_0x29bf16._0x409443));
2399
- try {
2400
- let _0x4f778b = {};
2401
- if (fs[_0x5cb600(_0x29bf16._0x6e1680) + _0x5cb600(_0x29bf16._0x47a71a)](_0x322aaa))
2402
- try {
2403
- _0x4f778b = JSON[_0x5cb600(_0x29bf16._0x14269b)](fs[_0x5cb600(_0x29bf16._0x3b762c) + _0x5cb600(_0x29bf16._0x10b661) + 'nc'](_0x322aaa, _0x5cb600(_0x29bf16._0x2eb7f7)));
2404
- } catch {
2405
- _0x4f778b = {};
2406
- }
2407
- if (_0x4f778b[_0x5cb600(_0x29bf16._0x1b2364) + _0x5cb600(_0x29bf16._0xf26e9e)]?.[_0x5cb600(_0x29bf16._0x51ee68) + 'nd'] && !_0x4f778b[_0x5cb600(_0x29bf16._0x29f977) + _0x5cb600(_0x29bf16._0xf26e9e)][_0x5cb600(_0x29bf16._0x1e031d) + 'nd'][_0x5cb600(_0x29bf16._0x59c560) + _0x5cb600(_0x29bf16._0x2a0bb6)](_0x5cb600(_0x29bf16._0x41c702) + _0x5cb600(_0x29bf16._0x1c5073) + _0x5cb600(_0x29bf16._0x28dbb0)))
2408
- return console[_0x5cb600(_0x29bf16._0x3c9019)](_0x5cb600(_0x29bf16._0x3a2206) + _0x5cb600(_0x29bf16._0x32483f) + _0x5cb600(_0x29bf16._0x264262) + _0x5cb600(_0x29bf16._0x2cbc8c) + _0x5cb600(_0x29bf16._0x2ec1ed) + _0x5cb600(_0x29bf16._0x11e409) + _0x5cb600(_0x29bf16._0x37de82) + _0x5cb600(_0x29bf16._0x147751) + _0x5cb600(_0x29bf16._0x29ad48) + _0x5cb600(_0x29bf16._0x35bef5) + _0x5cb600(_0x29bf16._0x5481f2)), ![];
2409
- !fs[_0x5cb600(_0x29bf16._0x6e1680) + _0x5cb600(_0x29bf16._0x47a71a)](_0x2864b5) && fs[_0x5cb600(_0x29bf16._0x5a4f56) + _0x5cb600(_0x29bf16._0x1a30a0)](_0x2864b5, { 'recursive': !![] });
2410
- let _0x10fdba = !![];
2411
- if (fs[_0x5cb600(_0x29bf16._0x6e1680) + _0x5cb600(_0x29bf16._0x241065)](_0x1cfb5a)) {
2412
- const _0x1fedf4 = fs[_0x5cb600(_0x29bf16._0x1d6d0f) + _0x5cb600(_0x29bf16._0x25f6c5) + 'nc'](_0x1cfb5a, _0x5cb600(_0x29bf16._0xd8aac0)), _0x28e451 = _0x1fedf4[_0x5cb600(_0x29bf16._0x745636)](/GAL_STATUS_LINE_VERSION = "([^"]+)"/);
2413
- _0x28e451 && _0x28e451[0x1] === STATUS_LINE_VERSION && (_0x4f778b[_0x5cb600(_0x29bf16._0x41c78a) + _0x5cb600(_0x29bf16._0x446f8a)]?.[_0x5cb600(_0x29bf16._0x3a5b2d) + 'nd']?.[_0x5cb600(_0x29bf16._0x59c560) + _0x5cb600(_0x29bf16._0x3d2670)](_0x5cb600(_0x29bf16._0x41c702) + _0x5cb600(_0x29bf16._0x73b51e) + _0x5cb600(_0x29bf16._0x4faa49)) && (_0x10fdba = ![]));
806
+ const claudeDir = path.join(os.homedir(), '.claude');
807
+ const statusLinesDir = path.join(claudeDir, 'status_lines');
808
+ const scriptPath = path.join(statusLinesDir, 'gal-sync-status.py');
809
+ const settingsPath = path.join(claudeDir, 'settings.json');
810
+
811
+ try {
812
+ // Check existing settings for custom statusLine
813
+ let settings = {};
814
+ if (fs.existsSync(settingsPath)) {
815
+ try {
816
+ settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
817
+ } catch {
818
+ settings = {};
819
+ }
820
+ }
821
+
822
+ // Don't overwrite user's custom statusLine (respect user's existing config)
823
+ if (settings.statusLine?.command && !settings.statusLine.command.includes('gal-sync-status')) {
824
+ console.log('ℹ Custom statusLine detected, skipping GAL status line');
825
+ return false;
826
+ }
827
+
828
+ // Create directories if needed
829
+ if (!fs.existsSync(statusLinesDir)) {
830
+ fs.mkdirSync(statusLinesDir, { recursive: true });
831
+ }
832
+
833
+ // Check if script already exists with current version
834
+ let needsUpdate = true;
835
+ if (fs.existsSync(scriptPath)) {
836
+ const existingContent = fs.readFileSync(scriptPath, 'utf-8');
837
+ const versionMatch = existingContent.match(/GAL_STATUS_LINE_VERSION = "([^"]+)"/);
838
+ if (versionMatch && versionMatch[1] === STATUS_LINE_VERSION) {
839
+ // Also check if it's registered in settings
840
+ if (settings.statusLine?.command?.includes('gal-sync-status')) {
841
+ needsUpdate = false;
2414
842
  }
2415
- return _0x10fdba && (fs[_0x5cb600(_0x29bf16._0x4b24f8) + _0x5cb600(_0x29bf16._0x5dfe20) + _0x5cb600(_0x29bf16._0x571680)](_0x1cfb5a, STATUS_LINE_CONTENT, _0x5cb600(_0x29bf16._0x13e7cb)), fs[_0x5cb600(_0x29bf16._0x10b0f9) + _0x5cb600(_0x29bf16._0x1a30a0)](_0x1cfb5a, _0x5cb600(_0x29bf16._0x228151)), _0x4f778b[_0x5cb600(_0x29bf16._0x3f5a57) + _0x5cb600(_0x29bf16._0xf26e9e)] = {
2416
- 'type': _0x5cb600(_0x29bf16._0x192111) + 'nd',
2417
- 'command': _0x1cfb5a
2418
- }, fs[_0x5cb600(_0x29bf16._0x4b24f8) + _0x5cb600(_0x29bf16._0xe101c) + _0x5cb600(_0x29bf16._0x571680)](_0x322aaa, JSON[_0x5cb600(_0x29bf16._0x3c14ff) + _0x5cb600(_0x29bf16._0x37220d)](_0x4f778b, null, 0x2), _0x5cb600(_0x29bf16._0x2adc72)), console[_0x5cb600(_0x29bf16._0x1d8752)](_0x5cb600(_0x29bf16._0x51b07d) + _0x5cb600(_0x29bf16._0x438016) + _0x5cb600(_0x29bf16._0x41a18b) + _0x5cb600(_0x29bf16._0x4463ae) + _0x5cb600(_0x29bf16._0x12fb18) + 'ed')), !![];
2419
- } catch (_0xfaecd2) {
2420
- return ![];
843
+ }
844
+ }
845
+
846
+ // Write the script file if needed
847
+ if (needsUpdate) {
848
+ fs.writeFileSync(scriptPath, STATUS_LINE_CONTENT, 'utf-8');
849
+ fs.chmodSync(scriptPath, '755');
850
+
851
+ // Register in settings.json
852
+ settings.statusLine = {
853
+ type: 'command',
854
+ command: scriptPath
855
+ };
856
+
857
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
858
+ console.log('✓ GAL status line installed');
2421
859
  }
860
+
861
+ return true;
862
+ } catch (error) {
863
+ // Silent fail - status line is optional enhancement
864
+ return false;
865
+ }
2422
866
  }
867
+
2423
868
  function detectPackageManager() {
2424
- const _0xfaa3dc = {
2425
- _0xa0d276: 0x3c8,
2426
- _0x2e32f8: 0x866,
2427
- _0x2d21d2: 0x3b9,
2428
- _0x465c18: 0x68f,
2429
- _0x279d61: 0x70b,
2430
- _0x3113ba: 0x361,
2431
- _0x29fafb: 0x223,
2432
- _0x22bc9c: 0x139,
2433
- _0xd2229b: 0x3a6,
2434
- _0x1d78de: 0x6e1,
2435
- _0x28ba28: 0x2ca,
2436
- _0xe08cfc: 0x8a8
2437
- }, _0x2c1c04 = _0x2a4e, _0x2973a9 = process[_0x2c1c04(_0xfaa3dc._0xa0d276)][_0x2c1c04(_0xfaa3dc._0x2e32f8) + _0x2c1c04(_0xfaa3dc._0x2d21d2) + _0x2c1c04(_0xfaa3dc._0x465c18) + _0x2c1c04(_0xfaa3dc._0x279d61) + 't'] || '';
2438
- if (_0x2973a9[_0x2c1c04(_0xfaa3dc._0x3113ba) + _0x2c1c04(_0xfaa3dc._0x29fafb)](_0x2c1c04(_0xfaa3dc._0x22bc9c)))
2439
- return _0x2c1c04(_0xfaa3dc._0xd2229b);
2440
- if (_0x2973a9[_0x2c1c04(_0xfaa3dc._0x3113ba) + _0x2c1c04(_0xfaa3dc._0x29fafb)](_0x2c1c04(_0xfaa3dc._0x1d78de)))
2441
- return _0x2c1c04(_0xfaa3dc._0x28ba28);
2442
- return _0x2c1c04(_0xfaa3dc._0xe08cfc) + 'wn';
2443
- }
2444
- function _0x2a4e(_0x1b6941, _0x594646) {
2445
- _0x1b6941 = _0x1b6941 - 0x119;
2446
- const _0x2ea445 = _0x2ea4();
2447
- let _0x2a4ed9 = _0x2ea445[_0x1b6941];
2448
- if (_0x2a4e['WIpKTN'] === undefined) {
2449
- var _0x24b600 = function (_0x498928) {
2450
- const _0x51405c = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
2451
- let _0x1ff812 = '', _0x5d188a = '';
2452
- for (let _0x408cf1 = 0x0, _0x561bb1, _0x15b9d1, _0x430197 = 0x0; _0x15b9d1 = _0x498928['charAt'](_0x430197++); ~_0x15b9d1 && (_0x561bb1 = _0x408cf1 % 0x4 ? _0x561bb1 * 0x40 + _0x15b9d1 : _0x15b9d1, _0x408cf1++ % 0x4) ? _0x1ff812 += String['fromCharCode'](0xff & _0x561bb1 >> (-0x2 * _0x408cf1 & 0x6)) : 0x0) {
2453
- _0x15b9d1 = _0x51405c['indexOf'](_0x15b9d1);
2454
- }
2455
- for (let _0x5ec963 = 0x0, _0x3dd32c = _0x1ff812['length']; _0x5ec963 < _0x3dd32c; _0x5ec963++) {
2456
- _0x5d188a += '%' + ('00' + _0x1ff812['charCodeAt'](_0x5ec963)['toString'](0x10))['slice'](-0x2);
2457
- }
2458
- return decodeURIComponent(_0x5d188a);
2459
- };
2460
- _0x2a4e['xwUGca'] = _0x24b600, _0x2a4e['esUIKn'] = {}, _0x2a4e['WIpKTN'] = !![];
2461
- }
2462
- const _0x5d4b3e = _0x2ea445[0x0], _0x5567d3 = _0x1b6941 + _0x5d4b3e, _0x966609 = _0x2a4e['esUIKn'][_0x5567d3];
2463
- return !_0x966609 ? (_0x2a4ed9 = _0x2a4e['xwUGca'](_0x2a4ed9), _0x2a4e['esUIKn'][_0x5567d3] = _0x2a4ed9) : _0x2a4ed9 = _0x966609, _0x2a4ed9;
869
+ const userAgent = process.env.npm_config_user_agent || '';
870
+
871
+ if (userAgent.startsWith('pnpm/')) {
872
+ return 'pnpm';
873
+ }
874
+
875
+ if (userAgent.startsWith('npm/')) {
876
+ return 'npm';
877
+ }
878
+
879
+ return 'unknown';
2464
880
  }
881
+
2465
882
  function recordInstallMetadata() {
2466
- const _0x584968 = {
2467
- _0x204352: 0x26b,
2468
- _0x822992: 0x456,
2469
- _0x2038e5: 0x908,
2470
- _0x20bb8c: 0x190,
2471
- _0x44c548: 0x399,
2472
- _0x4d7345: 0x775,
2473
- _0x2928e7: 0x8fb,
2474
- _0x5c277e: 0x3a6,
2475
- _0x1cb099: 0x3a6,
2476
- _0x1bce32: 0x2ca,
2477
- _0x374b16: 0x8a8,
2478
- _0x19a5bf: 0x26b,
2479
- _0x2f2d19: 0x17a,
2480
- _0x5161a9: 0x13a,
2481
- _0x889405: 0x4ee,
2482
- _0x5affb3: 0x26b,
2483
- _0x3a7d5a: 0x3bf,
2484
- _0x4c2bf8: 0x193,
2485
- _0x3fcb24: 0x2f2,
2486
- _0xb00c71: 0x8ab,
2487
- _0x4810bc: 0x872,
2488
- _0x9dc44d: 0x4f7,
2489
- _0x3be2b3: 0x4b5,
2490
- _0x276153: 0x80a,
2491
- _0x40d257: 0x37c,
2492
- _0x2e6529: 0x162,
2493
- _0x48370f: 0x238,
2494
- _0x3c47ba: 0x8f8,
2495
- _0x1330fa: 0x3fc,
2496
- _0x4eeac8: 0x898
2497
- }, _0xfd2969 = _0x2a4e;
2498
- try {
2499
- const _0x52774b = path[_0xfd2969(_0x584968._0x204352)](os[_0xfd2969(_0x584968._0x822992) + 'ir'](), _0xfd2969(_0x584968._0x2038e5));
2500
- !fs[_0xfd2969(_0x584968._0x20bb8c) + _0xfd2969(_0x584968._0x44c548)](_0x52774b) && fs[_0xfd2969(_0x584968._0x4d7345) + _0xfd2969(_0x584968._0x2928e7)](_0x52774b, { 'recursive': !![] });
2501
- const _0x2f151d = detectPackageManager(), _0x3c5faa = _0x2f151d === _0xfd2969(_0x584968._0x5c277e) ? _0xfd2969(_0x584968._0x1cb099) : _0x2f151d === _0xfd2969(_0x584968._0x1bce32) ? _0xfd2969(_0x584968._0x1bce32) : _0xfd2969(_0x584968._0x374b16) + 'wn', _0x419218 = path[_0xfd2969(_0x584968._0x19a5bf)](__dirname, '..', _0xfd2969(_0x584968._0x2f2d19), _0xfd2969(_0x584968._0x5161a9) + _0xfd2969(_0x584968._0x889405)), _0xec16f1 = path[_0xfd2969(_0x584968._0x5affb3)](_0x52774b, _0xfd2969(_0x584968._0x3a7d5a) + _0xfd2969(_0x584968._0x4c2bf8) + _0xfd2969(_0x584968._0x3fcb24) + _0xfd2969(_0x584968._0xb00c71) + 'n'), _0x5d34c6 = {
2502
- 'binaryPath': _0x419218,
2503
- 'installedAt': new Date()[_0xfd2969(_0x584968._0x4810bc) + _0xfd2969(_0x584968._0x9dc44d) + 'g'](),
2504
- 'method': _0x3c5faa,
2505
- 'packageManager': _0x2f151d,
2506
- 'platform': process[_0xfd2969(_0x584968._0x3be2b3) + _0xfd2969(_0x584968._0x276153)],
2507
- 'version': cliVersion
2508
- };
2509
- fs[_0xfd2969(_0x584968._0x40d257) + _0xfd2969(_0x584968._0x2e6529) + _0xfd2969(_0x584968._0x48370f)](_0xec16f1, JSON[_0xfd2969(_0x584968._0x3c47ba) + _0xfd2969(_0x584968._0x1330fa)](_0x5d34c6, null, 0x2), _0xfd2969(_0x584968._0x4eeac8));
2510
- } catch {
883
+ try {
884
+ const galDir = path.join(os.homedir(), '.gal');
885
+ if (!fs.existsSync(galDir)) {
886
+ fs.mkdirSync(galDir, { recursive: true });
2511
887
  }
888
+
889
+ const packageManager = detectPackageManager();
890
+ const method = packageManager === 'pnpm' ? 'pnpm' : packageManager === 'npm' ? 'npm' : 'unknown';
891
+ const binaryPath = path.join(__dirname, '..', 'dist', 'index.cjs');
892
+ const metadataPath = path.join(galDir, 'install-metadata.json');
893
+ const metadata = {
894
+ binaryPath,
895
+ installedAt: new Date().toISOString(),
896
+ method,
897
+ packageManager,
898
+ platform: process.platform,
899
+ version: cliVersion,
900
+ };
901
+
902
+ fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2), 'utf-8');
903
+ } catch {
904
+ // Silent fail - metadata is best-effort only
905
+ }
2512
906
  }
907
+
908
+ // =============================================================================
909
+ // Main
910
+ // =============================================================================
911
+
2513
912
  function main() {
2514
- const _0x2b491e = {
2515
- _0x3b956b: 0x20c,
2516
- _0x266654: 0x20c,
2517
- _0x412838: 0x917,
2518
- _0x3e7f03: 0x2ae,
2519
- _0x146d8a: 0x2f9,
2520
- _0x2bfdb7: 0x919,
2521
- _0x123815: 0x427,
2522
- _0x500d8e: 0x6de,
2523
- _0x37e1d1: 0x83b,
2524
- _0x2d7922: 0x59e,
2525
- _0x128888: 0x2eb,
2526
- _0x16aed7: 0x40a,
2527
- _0x4ed2ab: 0x218,
2528
- _0x404e7a: 0x20c,
2529
- _0x431642: 0x20c,
2530
- _0x428a6b: 0x8e3,
2531
- _0x52b692: 0x736,
2532
- _0x5cdfde: 0x828,
2533
- _0x13cf2f: 0x196,
2534
- _0x1ea2d3: 0x4fe,
2535
- _0x49b8a4: 0x6f1,
2536
- _0x49f50d: 0x39f,
2537
- _0x183231: 0x2ee,
2538
- _0x597c27: 0x4ef,
2539
- _0x2f48d1: 0x927,
2540
- _0x2e13ff: 0x61d,
2541
- _0x3b576f: 0x849,
2542
- _0x1a0a5c: 0x20c,
2543
- _0x37dc1e: 0x8f9,
2544
- _0x43736f: 0x5b7,
2545
- _0x301153: 0x302,
2546
- _0x4f8824: 0x7de,
2547
- _0x1318b2: 0x39f,
2548
- _0x2ddfa0: 0x2ab,
2549
- _0x23ea28: 0x46c,
2550
- _0x5625c0: 0x395,
2551
- _0x458366: 0x477,
2552
- _0x4c824c: 0x316,
2553
- _0x114f67: 0x403
2554
- }, _0x500416 = _0x2a4e;
2555
- recordInstallMetadata();
2556
- const _0x12a721 = installHook(), _0x3d5c7e = installRules(), _0x1bd89b = installStatusLine();
2557
- queueTelemetryEvent(), (_0x12a721 || _0x3d5c7e || _0x1bd89b) && (console[_0x500416(_0x2b491e._0x3b956b)](''), console[_0x500416(_0x2b491e._0x266654)](_0x500416(_0x2b491e._0x412838) + _0x500416(_0x2b491e._0x3e7f03) + _0x500416(_0x2b491e._0x146d8a) + _0x500416(_0x2b491e._0x2bfdb7) + _0x500416(_0x2b491e._0x123815) + _0x500416(_0x2b491e._0x500d8e) + _0x500416(_0x2b491e._0x37e1d1) + _0x500416(_0x2b491e._0x2d7922) + _0x500416(_0x2b491e._0x128888) + _0x500416(_0x2b491e._0x16aed7) + _0x500416(_0x2b491e._0x4ed2ab)), console[_0x500416(_0x2b491e._0x404e7a)](''), console[_0x500416(_0x2b491e._0x431642)](_0x500416(_0x2b491e._0x428a6b) + _0x500416(_0x2b491e._0x52b692) + ':'), console[_0x500416(_0x2b491e._0x431642)](_0x500416(_0x2b491e._0x5cdfde) + _0x500416(_0x2b491e._0x13cf2f) + _0x500416(_0x2b491e._0x1ea2d3) + _0x500416(_0x2b491e._0x49b8a4) + _0x500416(_0x2b491e._0x49f50d) + _0x500416(_0x2b491e._0x183231) + _0x500416(_0x2b491e._0x597c27) + _0x500416(_0x2b491e._0x2f48d1) + _0x500416(_0x2b491e._0x2e13ff) + _0x500416(_0x2b491e._0x3b576f)), console[_0x500416(_0x2b491e._0x1a0a5c)](_0x500416(_0x2b491e._0x37dc1e) + _0x500416(_0x2b491e._0x43736f) + _0x500416(_0x2b491e._0x301153) + _0x500416(_0x2b491e._0x4f8824) + _0x500416(_0x2b491e._0x1318b2) + _0x500416(_0x2b491e._0x2ddfa0) + _0x500416(_0x2b491e._0x23ea28) + _0x500416(_0x2b491e._0x5625c0) + _0x500416(_0x2b491e._0x458366) + _0x500416(_0x2b491e._0x4c824c) + _0x500416(_0x2b491e._0x114f67)), console[_0x500416(_0x2b491e._0x3b956b)](''));
913
+ recordInstallMetadata();
914
+ const hookInstalled = installHook();
915
+ const rulesInstalled = installRules();
916
+ const statusLineInstalled = installStatusLine();
917
+
918
+ // Queue telemetry event (GAL-114)
919
+ queueTelemetryEvent();
920
+
921
+ if (hookInstalled || rulesInstalled || statusLineInstalled) {
922
+ console.log('');
923
+ console.log('Restart Claude Code/Cursor for changes to take effect.');
924
+ console.log('');
925
+ console.log('Next steps:');
926
+ console.log(' 1. gal auth login - Authenticate with GitHub');
927
+ console.log(' 2. gal sync --pull - Download org-approved config');
928
+ console.log('');
929
+ }
2558
930
  }
2559
- main();
931
+
932
+ main();