@routinecrew/routinecode 2.31.38 → 2.31.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/prompt-vault.js +1 -1
- package/bin/setup.js +1 -1
- package/hooks/lib/block_message.py +1 -1
- package/hooks/lib/receipt.py +221 -0
- package/hooks/pre-agent-spawn.mjs +1 -1
- package/hooks/pre-credit-guard.sh +5 -3
- package/hooks/pre-mark-complete.sh +19 -0
- package/hooks/pre-read-knowledge-inject.sh +81 -8
- package/hooks/session-start.sh +3 -0
- package/hooks/stop-usage-metrics.sh +150 -2
- package/hooks/tests/gate-integration.test.sh +114 -0
- package/hooks/user-prompt-submit.sh +29 -3
- package/mcp-db-manager/dist/analyzers/duplicate-detector.js +1 -1
- package/mcp-db-manager/dist/core/model-parser.js +1 -1
- package/mcp-db-manager/dist/core/schema-reader.js +1 -1
- package/mcp-db-manager/dist/executors/migration-executor.js +1 -1
- package/mcp-db-manager/dist/generators/migration-generator.js +1 -1
- package/mcp-db-manager/dist/index.js +1 -1
- package/mcp-db-manager/dist/validators/schema-validator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/auth-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/backend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/endpoint-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/frontend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/runtime-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/type-comparator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/validation-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/browser/playwright-manager.js +1 -1
- package/mcp-dev-tester/dist/browser/ui-tester.js +1 -1
- package/mcp-dev-tester/dist/config/project-config.js +1 -1
- package/mcp-dev-tester/dist/index.js +1 -1
- package/mcp-dev-tester/dist/testers/api-tester.js +1 -1
- package/mcp-doc-fetcher/dist/index.js +1 -1
- package/mcp-html-renderer/dist/index.js +1 -1
- package/mcp-html-renderer/dist/preview.js +1 -1
- package/mcp-html-renderer/dist/template-engine.js +1 -1
- package/mcp-intelligence/dist/concept-catalog.js +1 -1
- package/mcp-intelligence/dist/concept-server-proxy.js +1 -1
- package/mcp-intelligence/dist/config-auth.js +1 -1
- package/mcp-intelligence/dist/contracts.generated.js +1 -1
- package/mcp-intelligence/dist/domain-templates.js +1 -1
- package/mcp-intelligence/dist/grounding.js +1 -1
- package/mcp-intelligence/dist/handlers.js +1 -1
- package/mcp-intelligence/dist/index.js +1 -1
- package/mcp-intelligence/dist/intelligence-file.js +1 -1
- package/mcp-intelligence/dist/knowledge-critic.js +1 -1
- package/mcp-intelligence/dist/knowledge-handlers.js +1 -1
- package/mcp-intelligence/dist/mention-extractor.js +1 -1
- package/mcp-intelligence/dist/provenance.js +1 -1
- package/mcp-intelligence/dist/semantic-embedder.js +1 -1
- package/mcp-log-watcher/dist/config-auth.js +1 -1
- package/mcp-log-watcher/dist/file-watcher.js +1 -1
- package/mcp-log-watcher/dist/index.js +1 -1
- package/mcp-log-watcher/dist/known-solutions.js +1 -1
- package/mcp-log-watcher/dist/log-store.js +1 -1
- package/mcp-log-watcher/dist/websocket-server.js +1 -1
- package/mcp-plan-manager/dist/__tests__/plan-parser.test.js +1 -1
- package/mcp-plan-manager/dist/file-ops.js +1 -1
- package/mcp-plan-manager/dist/index.js +1 -1
- package/mcp-plan-manager/dist/plan-parser.js +1 -1
- package/mcp-project-context/dist/git-ops.js +1 -1
- package/mcp-project-context/dist/index.js +1 -1
- package/mcp-project-context/dist/project-analysis.js +1 -1
- package/mcp-routinecode/dist/agent-tracker.js +1 -1
- package/mcp-routinecode/dist/blast-radius.js +1 -1
- package/mcp-routinecode/dist/config-auth.js +1 -1
- package/mcp-routinecode/dist/contracts.generated.js +1 -1
- package/mcp-routinecode/dist/explorer-advisor.js +1 -1
- package/mcp-routinecode/dist/failure-tracker.js +1 -1
- package/mcp-routinecode/dist/file-lock-registry.js +1 -1
- package/mcp-routinecode/dist/file-risk-scorer.js +1 -1
- package/mcp-routinecode/dist/index.js +1 -1
- package/mcp-routinecode/dist/known-solutions.js +1 -1
- package/mcp-routinecode/dist/ledger-miner.js +1 -1
- package/mcp-routinecode/dist/observed-draft.js +1 -1
- package/mcp-routinecode/dist/pattern-matcher.js +1 -1
- package/mcp-routinecode/dist/routines.js +1 -1
- package/mcp-routinecode/dist/rule-engine.js +1 -1
- package/mcp-routinecode/dist/rule-promoter.js +1 -1
- package/mcp-routinecode/dist/telemetry-analyzer.js +1 -1
- package/mcp-routinecode/dist/verification.js +1 -1
- package/mcp-routinecode/dist/viral-loop.js +1 -1
- package/package.json +1 -1
|
@@ -130,7 +130,9 @@ def _target_shape(_name, _inp):
|
|
|
130
130
|
import re as _re
|
|
131
131
|
for _sg in _re.split(r'&&|\||;|\n', (_inp.get('command') or '').strip()):
|
|
132
132
|
for _t in _sg.strip().split():
|
|
133
|
-
if _t
|
|
133
|
+
if _t == 'cd':
|
|
134
|
+
break # cd 의 인자는 경로(명령 아님) → 이 세그먼트 포기, 다음 세그먼트로
|
|
135
|
+
if _t in ('sudo', 'env', 'time', 'nohup', 'exec') or '=' in _t or _t.startswith('-'):
|
|
134
136
|
continue
|
|
135
137
|
_b = os.path.basename(_t)
|
|
136
138
|
return _b if _re.match(r'^[a-zA-Z][a-zA-Z0-9_.+-]*$', _b) else ''
|
|
@@ -217,7 +219,17 @@ for _k, _p in enumerate(_pidx):
|
|
|
217
219
|
|
|
218
220
|
total_tokens = input_tokens + output_tokens + cache_read + cache_create
|
|
219
221
|
|
|
220
|
-
if total_tokens == 0:
|
|
222
|
+
if total_tokens == 0 and turns_delta == 0 and not msg_task_sigs:
|
|
223
|
+
# 신규 구간에 집계할 토큰·작업·sig 전무(degenerate/aborted 세션) → 종료.
|
|
224
|
+
# 단 커서는 전진시켜 다음 Stop 재읽기(중복) 방지. ★reviewer 지적: 기존엔 토큰만
|
|
225
|
+
# 0이면 turns/sig 가 있어도 여기서 종료돼 cursor 미전진 → degenerate 44파일 turns 누락.
|
|
226
|
+
try:
|
|
227
|
+
os.makedirs(_cursor_dir, exist_ok=True)
|
|
228
|
+
with open(_cursor_file, "w") as _cf:
|
|
229
|
+
json.dump({"count": len(entries),
|
|
230
|
+
"last_uuid": (entries[-1].get("uuid") if entries else None)}, _cf)
|
|
231
|
+
except Exception:
|
|
232
|
+
pass
|
|
221
233
|
emit({"continue": True})
|
|
222
234
|
|
|
223
235
|
now = datetime.now(timezone.utc)
|
|
@@ -399,6 +411,92 @@ try:
|
|
|
399
411
|
except Exception:
|
|
400
412
|
pass
|
|
401
413
|
|
|
414
|
+
# ── 3.6. 메타지능 M1: 주입→결과 귀속 (참관 — 기록만, 행동 불변, fail-open) ──
|
|
415
|
+
# 설계: docs2/지능개선/new/메타지능-v1 §3-2 (v1.1). bad = 같은 파일 Edit 재시도 ≥3
|
|
416
|
+
# (transcript 파생 — 에이전트 협조 불요). good = 주입 이후 resolution(build-pass).
|
|
417
|
+
# 판정 불가 엔트리는 pending 유지(무리한 판정 금지 §9). gain 판정은 M2 holdout 대조만.
|
|
418
|
+
try:
|
|
419
|
+
_att_dir = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'attribution')
|
|
420
|
+
_led_path = os.path.join(_att_dir, 'ledger-' + session_id + '.jsonl')
|
|
421
|
+
if os.path.exists(_led_path):
|
|
422
|
+
_led_rows = []
|
|
423
|
+
with open(_led_path) as _lf:
|
|
424
|
+
for _ln in _lf:
|
|
425
|
+
_ln = _ln.strip()
|
|
426
|
+
if _ln:
|
|
427
|
+
try:
|
|
428
|
+
_led_rows.append(json.loads(_ln))
|
|
429
|
+
except Exception:
|
|
430
|
+
pass
|
|
431
|
+
_pending = [_r for _r in _led_rows if not _r.get('done')]
|
|
432
|
+
if _pending:
|
|
433
|
+
# bad 신호: _new 구간의 파일별 Edit 계열 호출 수 (basename sha1[:8] 키 — ledger 와 동일)
|
|
434
|
+
_edit_cnt = {}
|
|
435
|
+
for _ae in _new:
|
|
436
|
+
if _ae.get('type') != 'assistant':
|
|
437
|
+
continue
|
|
438
|
+
_ac = _ae.get('message', {}).get('content', [])
|
|
439
|
+
if not isinstance(_ac, list):
|
|
440
|
+
continue
|
|
441
|
+
for _ab in _ac:
|
|
442
|
+
if not (isinstance(_ab, dict) and _ab.get('type') == 'tool_use'
|
|
443
|
+
and _ab.get('name') in ('Edit', 'Write', 'MultiEdit', 'NotebookEdit')):
|
|
444
|
+
continue
|
|
445
|
+
_ai = _ab.get('input', {})
|
|
446
|
+
_ap = (_ai.get('file_path') or _ai.get('notebook_path') or '') if isinstance(_ai, dict) else ''
|
|
447
|
+
if _ap:
|
|
448
|
+
_afh = _hl.sha1(os.path.basename(_ap).encode('utf-8', 'replace')).hexdigest()[:8]
|
|
449
|
+
_edit_cnt[_afh] = _edit_cnt.get(_afh, 0) + 1
|
|
450
|
+
# good 신호: 이 세션의 resolution(build-pass) 이벤트 at 목록 (주입 이후 것만 인정)
|
|
451
|
+
_res_ats = []
|
|
452
|
+
try:
|
|
453
|
+
with open(os.path.join(log_dir, 'events.jsonl')) as _ef:
|
|
454
|
+
for _ln in _ef:
|
|
455
|
+
if '"resolution"' not in _ln:
|
|
456
|
+
continue
|
|
457
|
+
try:
|
|
458
|
+
_ev = json.loads(_ln)
|
|
459
|
+
except Exception:
|
|
460
|
+
continue
|
|
461
|
+
if _ev.get('type') == 'resolution' and str(_ev.get('session', ''))[:12] == session_id:
|
|
462
|
+
_res_ats.append(str(_ev.get('at', '')))
|
|
463
|
+
except Exception:
|
|
464
|
+
pass
|
|
465
|
+
_stats_p = os.path.join(_att_dir, 'stats.json')
|
|
466
|
+
try:
|
|
467
|
+
with open(_stats_p) as _sf:
|
|
468
|
+
_att_stats = json.load(_sf)
|
|
469
|
+
except Exception:
|
|
470
|
+
_att_stats = {}
|
|
471
|
+
_att_changed = False
|
|
472
|
+
for _pe in _pending:
|
|
473
|
+
_k = _pe.get('kid') or 'unknown'
|
|
474
|
+
_grp = 'holdout' if _pe.get('holdout') else 'exposed'
|
|
475
|
+
_rec = _att_stats.setdefault(_k, {
|
|
476
|
+
"exposed": 0, "holdout": 0, "exposed_bad": 0, "holdout_bad": 0,
|
|
477
|
+
"exposed_good": 0, "holdout_good": 0,
|
|
478
|
+
"kind": _pe.get('kind', ''), "last_seen": today})
|
|
479
|
+
if _edit_cnt.get(_pe.get('file', ''), 0) >= 3:
|
|
480
|
+
_rec[_grp] += 1
|
|
481
|
+
_rec[_grp + '_bad'] += 1
|
|
482
|
+
_rec['last_seen'] = today
|
|
483
|
+
_pe['done'] = 'bad'
|
|
484
|
+
_att_changed = True
|
|
485
|
+
elif any(_ra > str(_pe.get('at', '')) for _ra in _res_ats):
|
|
486
|
+
_rec[_grp] += 1
|
|
487
|
+
_rec[_grp + '_good'] += 1
|
|
488
|
+
_rec['last_seen'] = today
|
|
489
|
+
_pe['done'] = 'good'
|
|
490
|
+
_att_changed = True
|
|
491
|
+
if _att_changed:
|
|
492
|
+
with open(_stats_p, 'w') as _sf:
|
|
493
|
+
json.dump(_att_stats, _sf, ensure_ascii=False, indent=1)
|
|
494
|
+
with open(_led_path, 'w') as _lf:
|
|
495
|
+
for _r in _led_rows:
|
|
496
|
+
_lf.write(json.dumps(_r, ensure_ascii=False) + "\n")
|
|
497
|
+
except Exception:
|
|
498
|
+
pass
|
|
499
|
+
|
|
402
500
|
# ── 4. Usage sync (세션 종료 시 서버 동기화) ──
|
|
403
501
|
# 블로킹 방지: sync_manager.py를 detached 자식 프로세스로 실행하고 즉시 반환.
|
|
404
502
|
# 네트워크 timeout/재시도는 자식에서 처리되며, stop hook 본체는 로컬 기록 후 종료.
|
|
@@ -419,5 +517,55 @@ try:
|
|
|
419
517
|
except Exception:
|
|
420
518
|
pass
|
|
421
519
|
|
|
520
|
+
# ── 5. 영수증 세션말 1줄 (설계 Prevented-Cost §4-3: 싼 트리거 → 변화시만 → 주1회 상한) ──
|
|
521
|
+
# diff 키 = 비휘발 이벤트만 {rule_count(필터후), mcp_candidate_count, r1_state}.
|
|
522
|
+
# last_snapshot 은 '실제 표시한 Stop' 에서만 갱신(이벤트 유실 방지). 기본 완전 침묵. fail-open.
|
|
523
|
+
_receipt_msg = None
|
|
524
|
+
try:
|
|
525
|
+
_rs_path = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe', 'receipt-state.json')
|
|
526
|
+
_rlib2 = os.path.join(os.environ.get('ROUTINECODE_HOOKS_DIR', ''), 'lib')
|
|
527
|
+
if _rlib2 and _rlib2 not in sys.path:
|
|
528
|
+
sys.path.insert(0, _rlib2)
|
|
529
|
+
import receipt as _rcp
|
|
530
|
+
# 싼 트리거: §3.5 가 방금 메모리에 만든 _routines 재사용(파일 읽기 0 추가). stats 는 소형.
|
|
531
|
+
try:
|
|
532
|
+
_pre_routines = _routines
|
|
533
|
+
except NameError:
|
|
534
|
+
_pre_routines = None
|
|
535
|
+
_snap_now = _rcp.snapshot(routines=_pre_routines)
|
|
536
|
+
try:
|
|
537
|
+
with open(_rs_path) as _rf:
|
|
538
|
+
_rstate = json.load(_rf)
|
|
539
|
+
except Exception:
|
|
540
|
+
_rstate = {}
|
|
541
|
+
_old_snap = _rstate.get('last_snapshot') or {}
|
|
542
|
+
if _snap_now != _old_snap:
|
|
543
|
+
from datetime import datetime as _rdt, timezone as _rtz
|
|
544
|
+
_now_r = _rdt.now(_rtz.utc)
|
|
545
|
+
def _cool_ok():
|
|
546
|
+
# 쓰기 직전 재읽기 포함 이중 확인 (경쟁 완화 — 설계 §3-3)
|
|
547
|
+
try:
|
|
548
|
+
with open(_rs_path) as _rf2:
|
|
549
|
+
_ls = (json.load(_rf2) or {}).get('last_shown') or ''
|
|
550
|
+
except Exception:
|
|
551
|
+
_ls = _rstate.get('last_shown') or ''
|
|
552
|
+
if not _ls:
|
|
553
|
+
return True
|
|
554
|
+
try:
|
|
555
|
+
return (_now_r - _rdt.fromisoformat(_ls)).days >= 7
|
|
556
|
+
except Exception:
|
|
557
|
+
return True
|
|
558
|
+
if _cool_ok():
|
|
559
|
+
_receipt_msg = _rcp.oneline(_snap_now, _old_snap)
|
|
560
|
+
if _receipt_msg:
|
|
561
|
+
os.makedirs(os.path.dirname(_rs_path), exist_ok=True)
|
|
562
|
+
with open(_rs_path, 'w') as _rf:
|
|
563
|
+
json.dump({'last_shown': _now_r.isoformat(),
|
|
564
|
+
'last_snapshot': _snap_now}, _rf)
|
|
565
|
+
except Exception:
|
|
566
|
+
_receipt_msg = None
|
|
567
|
+
|
|
568
|
+
if _receipt_msg:
|
|
569
|
+
emit({"continue": True, "systemMessage": _receipt_msg})
|
|
422
570
|
emit({"continue": True})
|
|
423
571
|
PYEOF
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Gate integration tests — 오케스트레이션 게이트 실측 회귀 (설계 W8)
|
|
3
|
+
#
|
|
4
|
+
# 검증 대상:
|
|
5
|
+
# [1-2] 3-strike: escalation 상태 ↔ pre-edit-check.sh 차단 (경로 계약)
|
|
6
|
+
# [2b] 3-strike: 컴파일된 tracker(dist)가 훅과 동일 경로 상수를 쓰는지
|
|
7
|
+
# [3-6] design-gate(.sources/pre-agent-spawn.mjs.src): block/score/light/degraded
|
|
8
|
+
# [7] credit-guard: 검증 도구 무과금 (FREE_TOOLS)
|
|
9
|
+
# [8] mark-complete: MCP 미연결 degraded(고지 후 생략) + 연결 시 fail-closed 유지
|
|
10
|
+
#
|
|
11
|
+
# 전부 격리 HOME/XDG — 실사용 상태 무오염. 실행: bash hooks/tests/gate-integration.test.sh
|
|
12
|
+
set -u
|
|
13
|
+
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
14
|
+
HOOKS="$(cd "$HERE/.." && pwd)"
|
|
15
|
+
ROOT="$(cd "$HOOKS/.." && pwd)"
|
|
16
|
+
|
|
17
|
+
pass=0; fail=0
|
|
18
|
+
ok() { echo " ✓ $1"; pass=$((pass+1)); }
|
|
19
|
+
ng() { echo " ✗ $1"; fail=$((fail+1)); }
|
|
20
|
+
assert_contains() { echo "$1" | grep -q "$2" && ok "$3" || ng "$3 — got: $(echo "$1" | head -c 140)"; }
|
|
21
|
+
assert_not_contains() { echo "$1" | grep -q "$2" && ng "$3 — got: $(echo "$1" | head -c 140)" || ok "$3"; }
|
|
22
|
+
|
|
23
|
+
TH=$(mktemp -d)
|
|
24
|
+
export XDG_RUNTIME_DIR=""
|
|
25
|
+
RUN="$TH/.routinecode/run"
|
|
26
|
+
KNOW="$TH/.routinecode/knowledge"
|
|
27
|
+
mkdir -p "$RUN" "$KNOW/verification" "$KNOW/classifications"
|
|
28
|
+
|
|
29
|
+
# design-gate는 소스 오브 트루스(.src)를 복사해 직접 실행 (obfuscated 산출물은 publish 시 재생성)
|
|
30
|
+
GATE_MJS="$TH/gate.mjs"
|
|
31
|
+
cp "$ROOT/.sources/pre-agent-spawn.mjs.src" "$GATE_MJS"
|
|
32
|
+
|
|
33
|
+
IMPL_PAYLOAD='{"tool_name":"Agent","tool_input":{"subagent_type":"routinecode:implementor","description":"w8","prompt":"TASK: x\nCONTEXT:\n- taskId: sim-w8\n- planName: none"}}'
|
|
34
|
+
EDIT_PAYLOAD='{"tool_name":"Edit","tool_input":{"file_path":"/tmp/x.ts"}}'
|
|
35
|
+
|
|
36
|
+
echo "[1] 3-strike: 통일 경로의 escalation → Edit 차단"
|
|
37
|
+
echo '{"escalated":true,"issueId":"w8"}' > "$RUN/routinecode-escalation.json"
|
|
38
|
+
OUT=$(echo "$EDIT_PAYLOAD" | HOME="$TH" bash "$HOOKS/pre-edit-check.sh" 2>/dev/null)
|
|
39
|
+
assert_contains "$OUT" '"block"' "escalation 활성 시 Edit block"
|
|
40
|
+
|
|
41
|
+
echo "[2] 3-strike: escalation 없음 → allow"
|
|
42
|
+
rm -f "$RUN/routinecode-escalation.json"
|
|
43
|
+
OUT=$(echo "$EDIT_PAYLOAD" | HOME="$TH" bash "$HOOKS/pre-edit-check.sh" 2>/dev/null)
|
|
44
|
+
assert_contains "$OUT" 'allow' "비에스컬레이션 시 allow"
|
|
45
|
+
|
|
46
|
+
echo "[2b] 3-strike: 컴파일된 tracker가 훅과 동일 경로 상수 사용 (쓰기=읽기 계약)"
|
|
47
|
+
# 주의: publish 파이프라인이 dist를 in-place 난독화하면 문자열 grep이 불가(인코딩됨).
|
|
48
|
+
# 난독화 감지 시 정적검사는 생략 — 행동 계약은 케이스[1](훅 차단)이 이미 보증한다.
|
|
49
|
+
# 원본 소스(src/failure-tracker.ts) grep으로 소스 레벨 계약은 항상 검사.
|
|
50
|
+
DIST="$ROOT/mcp-routinecode/dist/failure-tracker.js"
|
|
51
|
+
SRC_TS="$ROOT/mcp-routinecode/src/failure-tracker.ts"
|
|
52
|
+
if grep -q "XDG_RUNTIME_DIR" "$SRC_TS" 2>/dev/null && ! grep -q "= '/tmp/routinecode-escalation.json'" "$SRC_TS" 2>/dev/null; then
|
|
53
|
+
ok "src tracker가 RC_RUNDIR 해석식 사용 (/tmp 하드코딩 제거됨)"
|
|
54
|
+
else
|
|
55
|
+
ng "src tracker에 RC_RUNDIR 해석식 없음 — 회귀"
|
|
56
|
+
fi
|
|
57
|
+
if [ -f "$DIST" ]; then
|
|
58
|
+
if head -c 200 "$DIST" | grep -qE '_0x[0-9a-f]'; then
|
|
59
|
+
echo " - dist 난독화 상태 — 정적 grep 생략(소스 검사로 대체)"
|
|
60
|
+
elif grep -q "XDG_RUNTIME_DIR" "$DIST"; then
|
|
61
|
+
ok "dist tracker도 RC_RUNDIR 해석식 포함"
|
|
62
|
+
else
|
|
63
|
+
ng "clean dist인데 RC_RUNDIR 없음 — 재빌드 필요"
|
|
64
|
+
fi
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
echo "[3] design-gate: mcp-alive 有 + 검증파일 無 → block (fail-closed 유지)"
|
|
68
|
+
echo "$(date +%s)" > "$RUN/mcp-alive"
|
|
69
|
+
OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
|
|
70
|
+
assert_contains "$OUT" 'No design verification' "무검증 implementor block"
|
|
71
|
+
|
|
72
|
+
echo "[4] design-gate: score 95 → allow"
|
|
73
|
+
echo '{"taskId":"sim-w8","phase":"design","currentScore":95}' > "$KNOW/verification/design-sim-w8.json"
|
|
74
|
+
OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
|
|
75
|
+
assert_contains "$OUT" 'allow' "score>=90 allow"
|
|
76
|
+
assert_not_contains "$OUT" '"block"' "score>=90 비차단"
|
|
77
|
+
rm -f "$KNOW/verification/design-sim-w8.json"
|
|
78
|
+
|
|
79
|
+
echo "[5] design-gate: tier=light → allow (면제)"
|
|
80
|
+
echo '{"tier":"light"}' > "$KNOW/classifications/sim-w8.json"
|
|
81
|
+
OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
|
|
82
|
+
assert_contains "$OUT" 'allow' "light tier 면제"
|
|
83
|
+
rm -f "$KNOW/classifications/sim-w8.json"
|
|
84
|
+
|
|
85
|
+
echo "[6] design-gate: mcp-alive 無 → degraded(allow+고지)"
|
|
86
|
+
rm -f "$RUN/mcp-alive"
|
|
87
|
+
OUT=$(echo "$IMPL_PAYLOAD" | HOME="$TH" node "$GATE_MJS" 2>/dev/null)
|
|
88
|
+
assert_contains "$OUT" 'allow' "MCP 미연결 시 allow"
|
|
89
|
+
assert_contains "$OUT" 'MCP 미연결' "degraded 고지 포함"
|
|
90
|
+
|
|
91
|
+
echo "[7] credit-guard: score_verification 무과금 통과"
|
|
92
|
+
OUT=$(echo '{"tool_name":"mcp__routinecode__score_verification","tool_input":{}}' \
|
|
93
|
+
| HOME="$TH" ROUTINECODE_USER_ID=1 ROUTINECODE_TENANT_ID=1 bash "$HOOKS/pre-credit-guard.sh" 2>/dev/null)
|
|
94
|
+
RC=$?
|
|
95
|
+
if [ "$RC" -eq 0 ]; then
|
|
96
|
+
assert_not_contains "$OUT" '"block"' "FREE 도구 비차단(exit 0)"
|
|
97
|
+
else
|
|
98
|
+
ng "credit-guard exit=$RC (FREE여야 0)"
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
echo "[8] mark-complete: mcp-alive 無 + BUILD unknown → degraded(고지, 비차단)"
|
|
102
|
+
OUT=$(echo '{}' | HOME="$TH" bash "$HOOKS/pre-mark-complete.sh" 2>/dev/null)
|
|
103
|
+
assert_contains "$OUT" 'MCP 미연결' "완료게이트 degraded 고지"
|
|
104
|
+
assert_not_contains "$OUT" '"block"' "완료게이트 비차단"
|
|
105
|
+
|
|
106
|
+
echo "[8b] mark-complete: mcp-alive 有 + BUILD unknown → 기존 fail-closed block 유지"
|
|
107
|
+
echo "$(date +%s)" > "$RUN/mcp-alive"
|
|
108
|
+
OUT=$(echo '{}' | HOME="$TH" bash "$HOOKS/pre-mark-complete.sh" 2>/dev/null)
|
|
109
|
+
assert_contains "$OUT" '"block"' "연결 세션 게이트 무약화"
|
|
110
|
+
|
|
111
|
+
rm -rf "$TH"
|
|
112
|
+
echo ""
|
|
113
|
+
echo "pass=$pass fail=$fail"
|
|
114
|
+
[ "$fail" -eq 0 ] && exit 0 || exit 1
|
|
@@ -12,6 +12,32 @@
|
|
|
12
12
|
|
|
13
13
|
INPUT=$(cat)
|
|
14
14
|
|
|
15
|
+
# ── 영수증 R2: 채택 커맨드 사용 추적 (설계 Prevented-Cost §4-4 — fail-open, 무출력) ──
|
|
16
|
+
# /routines 로 채택된 커맨드가 프롬프트로 호출되면 adoption.json use_count 증분.
|
|
17
|
+
# 어떤 실패도 무시, 출력 없음 → 아래 credit gate/주입 흐름 무간섭.
|
|
18
|
+
ROUTINECODE_HOOK_INPUT="$INPUT" python3 - <<'PYADOPT' 2>/dev/null || true
|
|
19
|
+
import json, os
|
|
20
|
+
try:
|
|
21
|
+
inp = json.loads(os.environ.get('ROUTINECODE_HOOK_INPUT', '') or '{}')
|
|
22
|
+
p = (inp.get('prompt') or '').strip()
|
|
23
|
+
if p.startswith('/'):
|
|
24
|
+
name = p.split()[0][1:]
|
|
25
|
+
ap = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe', 'adoption.json')
|
|
26
|
+
if name and os.path.exists(ap):
|
|
27
|
+
with open(ap) as f:
|
|
28
|
+
arr = json.load(f)
|
|
29
|
+
hit = False
|
|
30
|
+
for a in (arr if isinstance(arr, list) else []):
|
|
31
|
+
if isinstance(a, dict) and a.get('command') == name:
|
|
32
|
+
a['use_count'] = int(a.get('use_count', 0) or 0) + 1
|
|
33
|
+
hit = True
|
|
34
|
+
if hit:
|
|
35
|
+
with open(ap, 'w') as f:
|
|
36
|
+
json.dump(arr, f, ensure_ascii=False, indent=1)
|
|
37
|
+
except Exception:
|
|
38
|
+
pass
|
|
39
|
+
PYADOPT
|
|
40
|
+
|
|
15
41
|
# ── Credit gate: SERVER-AUTHORITATIVE (per-turn) ──
|
|
16
42
|
# 서버(growth, knowledge /growth-proxy 경유)가 apiKey에서 userId를 도출하고 잔액·gate를
|
|
17
43
|
# 결정한다. 로컬 파일(잔액/플래그) 편집으로는 온라인 상태에서 우회 불가.
|
|
@@ -54,7 +80,7 @@ except Exception:
|
|
|
54
80
|
_RC_MARK="$HOME/.routinecode/.recharge-opened-$(date -u +%Y%m%d 2>/dev/null)"
|
|
55
81
|
if [ ! -f "$_RC_MARK" ]; then
|
|
56
82
|
touch "$_RC_MARK" 2>/dev/null || true
|
|
57
|
-
_RC_URL="https://routinecode.routinecrew.net/recharge
|
|
83
|
+
_RC_URL="https://routinecode.routinecrew.net/recharge"
|
|
58
84
|
( if command -v open >/dev/null 2>&1; then open "$_RC_URL" >/dev/null 2>&1
|
|
59
85
|
elif command -v xdg-open >/dev/null 2>&1; then xdg-open "$_RC_URL" >/dev/null 2>&1
|
|
60
86
|
elif command -v cmd.exe >/dev/null 2>&1; then cmd.exe /c start "$_RC_URL" >/dev/null 2>&1; fi ) &
|
|
@@ -68,12 +94,12 @@ try:
|
|
|
68
94
|
import block_message
|
|
69
95
|
msg = block_message.generate()
|
|
70
96
|
except Exception:
|
|
71
|
-
msg = '[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge
|
|
97
|
+
msg = '[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge for instant +50, or run /share.'
|
|
72
98
|
# UserPromptSubmit: {"decision":"block","reason":...} DISPLAYS reason to the user
|
|
73
99
|
# (continue:false does NOT — it only shows the generic 'Operation stopped by hook').
|
|
74
100
|
print(json.dumps({'decision': 'block', 'reason': msg}))
|
|
75
101
|
" 2>/dev/null)
|
|
76
|
-
[ -z "$_RC_BLOCK_JSON" ] && _RC_BLOCK_JSON='{"decision":"block","reason":"[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge
|
|
102
|
+
[ -z "$_RC_BLOCK_JSON" ] && _RC_BLOCK_JSON='{"decision":"block","reason":"[RoutineCode] Daily free Credits exhausted. Write one line at https://routinecode.routinecrew.net/recharge for instant +50, or run /share."}'
|
|
77
103
|
printf '%s\n' "$_RC_BLOCK_JSON"
|
|
78
104
|
exit 0
|
|
79
105
|
;;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x5504ca=a0_0x53b1;function a0_0x5298(){const _0x3025af=['tfVdTMm9ra','smo3gmou','W5BcRblcKSk4p8o/W6Lp','nLXmxW','f8kJW44tfWhdKmoIW6OjWR/dHSo/wCk8cxqsbslcOSkAW5ZdVG','W4FcTrhcNCkP','WQXqrgC','64Ex7j+X67cXW6xRTPZSNApSURpcNU2bSUYNRSkUE10','WObljSkUW7pdSmoJWP1ZW68','W5xQS4ddN8kP','vCkdWRRdGCkrBmks','WQfqrwfQl8o5W4mNWQxcJ8kdkvKwlHFcI0i7DCkgt8k1','aSkQW4u6DsGcxINcMbHN','FSogFZBcI8kZW7qUb1tdRCkyWPdcS8knpCop','W65tW6xdRmoOW443imo4kX1m','m1Dev1tcNa','lSk0i8oSnb4','kXVcHCkYWRRdIwfAd8k0tSkhxGKbW6WTu39qWQC','DXddOCkb','mCkIWROB','s8oFWRZdSCotmgldGSkxycxdQCoKW7RcUSkUW6xcRSoVeSkQ','gHxcQmkxrMbGpsXNtSoRkq','WQjaEa','W4xcNaFdSWKR','W67dIxLpf8k7WPJdTSk+cSkwWP/cQG','qSoGgCoEW63cLG','oCktgCkcbSk+utVdHSkIC8kzgmoyWQu5WQFdJa','tmoiWQhdOmozj0FdMW','o8kbcM9CWRVcNmoxiWBdQY7dPq','gCkWqSkmWQhdJCkkW5tcQ0hdISos','W5hcPb3cL8kXemoS','W7Wc7zQx7ykI66oZWQNTH67SNkHP6Rw97j+UW49c7jUF7zEDWQbh','pa7cNCk+WQ0','W63cUSon','7yAj7j2r67Iytmkk','WP/dOflcOMb3','qCovWRRdUCorke/dJCkcsIxdR8oPW6RcKCkBW6NcQq','WQFcNCoAWR0','lG3cGSkYWQRdJMnggSk0q8kGsG0iW5eVugDCWRT6FCkPW5FdGtNcJxJdTa','WRfkqapdMSoAovfDW6z1','v8kiWRO','W4XHW6BdOWxcQW','WOdcQJFcLexcVW','eCkSW5yccWJdGG','jSo0ha','gGddNgldQSowBmkrzdNcOW0wnsm4Fd5lW4K0','CCkxW6f+hmolhq','WO1Apmk7W67dUG','lG3dOuiwW50qW5xcNN8','rCo1WOLM','WOddReBcOa','W7qUbmkl','z8oxqG','ySomBJtcH8kYW7G6bLtdRCkyWPdcS8kfnCoAva','uCkEWR3dLSklESkNChWvW4mRtb85BbhdVmk4WQ7cHCkZW4iPt0D1lbtcQa','WRjewMO','W4rHW7ZdOrlcTW','j8kjgmkh','WQZcLCom','mCkvb8kd','W4hcRbZcNCkOhCo/W7bpCW00W5JdLqRdSSo2t8oPW5RcKceiWQu','xCkmWRy','amkJW4aCbYpdKmo7W6O','W7CUgq','r8oRfmovW6ZcMSkAW6u','WO/dNmoXWRKuWRG','uCkLWQq','W6GQcSkbyCoxWQv6WQddQmo/W5hcTWtcQSovamoBia','aCkUW4m7CYKABcJcUqXx','veFdQge','WPhdNmoVWRibWRmJ','qSo9WPfVifioDIC','iXZdK8oeESkh','WOqfoJpcJCksxuxcQmk+W6mU','nXddJ8oCFSkwW5e','WO3dMmoYWRS','WOtcRIO','WP5zWPhdQqTm','W7NcSCoU','uSkRWQBdRJdcNJ7cLWX/jsDIW4SxWRv6WOG','WQTeyqK','WR5yW6G6','fWZcQdX/gtPoW4ZcMSosCa','nCk2WQSFwwW/oM8','WOhcOd3cLL3cPa','66QK65gdpo2eLEYEKUU7IUYvGEYfNepSNA7QTOtRK6hdNoUhS+YEV+UXMCkx7ikD7jI7xEYNHxldQ+Y1GoQZRCot7kci7lMafEU0SE2xHoYzJSo3','BCk+D8o0AN0','W77QSkxdP+YFMoYaS+2vMUUjSEUkR8olb+YLUEUZQsJRJAxSNkxTHPrp65II64IoB+YFLEUPKoUsUK/SOB/QTlBTM7xSNybC7iQyWPBSNA3SIyFRIO/RI4FcP0FRS7VTL4CX65M064UMBEQ3IUQWGhFSNRpSHQtQSOhRPOpdVEQZSU2fO+2wHoYhQ+YyHfu','W4xcNb/dSrmWDwVcNu1AW7/dHLK1W4BcHbldPW','p8kwlwVdNSoTWQKijuVdL8kFWOu','W4nwEa','uCkRWRddPJ3cGq','WPmXWRNcTKNdSmo7W7i4Dqe/W60','krFcNCkJWRZdJW','W7tcOqFcSqpcUCkNW5WT','W7lcPqBcSGVcMSkJW58SkhyMsCoxpbHD','gmkNW4WxfGu','WRiDWOfrWPXRv8kotSoDpmoO','mLnA','CedcI8khlSomWO3dSComxqFdLN4','WORcJJ1xW5lcSCkSkNZdPfNcL8kIW4dcLmobemo4ymoCyG','F8otCddcKG','WOy7EHarW6VcQmous1GrWQ7dH8oNWPBdS8o3fmkSdSoi','W6pdLCkGW4q','W5NcJbRdVa','WOfmWPpdPWS','nSk2WRSDvuW5','W6xdN8k/W4/cOxJcGvGZBqldTGNdUexcUWqeWP8','vf/dUMGSyI5uW4m','W6nbW5GqW4eQ','FSozFJatW6JdLSoNjrBdVG','WQWmWQVcVa','WPxdT1pcQa','r0FdVSoacJ4','W5nTW6xdRr3cOSkXW5mkvq','W5FdNx8hWO3dSmkUfNxdG3dcSq','m8kYWQOCuu87ow4oWO3dK8kBcx93hSkOWQm','WRvaWRhcNCoXqmorp8katGzpyxG4W4GoqmoZoZq','WRHrWRpcISo2uComp8kava'];a0_0x5298=function(){return _0x3025af;};return a0_0x5298();}(function(_0x5a7448,_0x16b55b){const _0x16541b=a0_0x53b1,_0x2717e3=_0x5a7448();while(!![]){try{const _0x9b057=parseInt(_0x16541b(0x122,'MFBT'))/(0x1cc5+-0x89*-0x1b+-0x2b37)+parseInt(_0x16541b(0x112,'MFy0'))/(-0xeb*-0x1+-0x53*-0x2+-0x18f*0x1)+parseInt(_0x16541b(0x100,'O)W]'))/(-0x1a9+-0x18d2+-0x1a7e*-0x1)+-parseInt(_0x16541b(0x12b,'gt$!'))/(0x3fb*-0x6+-0x1*0x21be+0x77*0x7c)+parseInt(_0x16541b(0xe3,'MFBT'))/(-0x1*0xad+0x3a*0x7a+-0x1af2)+parseInt(_0x16541b(0xf8,'A]4#'))/(-0xc28+-0xafe+-0x2*-0xb96)+-parseInt(_0x16541b(0x12e,'YR5E'))/(-0x1b01+-0x3*0x8f5+0x1*0x35e7);if(_0x9b057===_0x16b55b)break;else _0x2717e3['push'](_0x2717e3['shift']());}catch(_0x53ce17){_0x2717e3['push'](_0x2717e3['shift']());}}}(a0_0x5298,-0x35*-0x1649+-0x30d0+-0x8e*-0x16));function a0_0x53b1(_0x2c663d,_0x3585b7){_0x2c663d=_0x2c663d-(-0xd2f+0x56e+0x880);const _0x2e3bd8=a0_0x5298();let _0x1f42a7=_0x2e3bd8[_0x2c663d];if(a0_0x53b1['JRXyAY']===undefined){var _0x3eb1e4=function(_0x1044f4){const _0x3daf82='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2612a2='',_0x57158e='';for(let _0x1ec0fa=0x10fd+-0x1*0x1862+0x277*0x3,_0x541410,_0x1f093b,_0x2c732f=-0xa7*0x14+-0xad*-0x9+0x6f7;_0x1f093b=_0x1044f4['charAt'](_0x2c732f++);~_0x1f093b&&(_0x541410=_0x1ec0fa%(0x326+0x929*0x1+-0xc4b)?_0x541410*(-0x3*0x92c+-0xd01+0x28c5)+_0x1f093b:_0x1f093b,_0x1ec0fa++%(0x2*0x10be+-0xdf9+-0x1*0x137f))?_0x2612a2+=String['fromCharCode'](0xe3*0x16+0x197b+-0x2bfe&_0x541410>>(-(0xc3d+0x348+-0xf83)*_0x1ec0fa&0x1707*-0x1+0x18d4+-0x1c7)):0x1*0x1e7e+0x2*-0x12a+0x5a2*-0x5){_0x1f093b=_0x3daf82['indexOf'](_0x1f093b);}for(let _0x4fcfe8=-0x1*-0xa4e+-0xdb9*-0x2+-0x25c0,_0x4c881a=_0x2612a2['length'];_0x4fcfe8<_0x4c881a;_0x4fcfe8++){_0x57158e+='%'+('00'+_0x2612a2['charCodeAt'](_0x4fcfe8)['toString'](-0x413*-0x3+-0x44e+0x7db*-0x1))['slice'](-(0x40*0x1e+-0xeba+0x73c));}return decodeURIComponent(_0x57158e);};const _0x2ae599=function(_0x3abedd,_0x1c8f50){let _0x27151d=[],_0x210677=0x26ba+0x3*0x923+-0x4223,_0x2648cd,_0x55be99='';_0x3abedd=_0x3eb1e4(_0x3abedd);let _0x592ca8;for(_0x592ca8=-0x462*-0x8+-0x204+0xc*-0x2c1;_0x592ca8<-0x2005+-0x17*-0x10d+0x8da;_0x592ca8++){_0x27151d[_0x592ca8]=_0x592ca8;}for(_0x592ca8=0x1c5a+-0x1*0x20b0+0x5*0xde;_0x592ca8<-0x1239*-0x1+0x13*0xdf+-0x21c6;_0x592ca8++){_0x210677=(_0x210677+_0x27151d[_0x592ca8]+_0x1c8f50['charCodeAt'](_0x592ca8%_0x1c8f50['length']))%(0x7c9+-0x1*0x1ca3+0x15da*0x1),_0x2648cd=_0x27151d[_0x592ca8],_0x27151d[_0x592ca8]=_0x27151d[_0x210677],_0x27151d[_0x210677]=_0x2648cd;}_0x592ca8=-0x23d2+-0x1*0xdff+-0x75*-0x6d,_0x210677=0x115*-0x3+0xec*0x29+0x1d*-0x131;for(let _0x20a546=-0x11d*0xd+-0x1f7*0x13+0x33ce;_0x20a546<_0x3abedd['length'];_0x20a546++){_0x592ca8=(_0x592ca8+(0x19ab*0x1+0x15f6+-0x17d*0x20))%(0x2*0x663+-0x1410+-0x2*-0x425),_0x210677=(_0x210677+_0x27151d[_0x592ca8])%(-0x110c+-0x77*-0x2a+-0x17a),_0x2648cd=_0x27151d[_0x592ca8],_0x27151d[_0x592ca8]=_0x27151d[_0x210677],_0x27151d[_0x210677]=_0x2648cd,_0x55be99+=String['fromCharCode'](_0x3abedd['charCodeAt'](_0x20a546)^_0x27151d[(_0x27151d[_0x592ca8]+_0x27151d[_0x210677])%(0x1f0e+0x2*0x767+-0x9*0x4fc)]);}return _0x55be99;};a0_0x53b1['nnpmUU']=_0x2ae599,a0_0x53b1['NzdeFu']={},a0_0x53b1['JRXyAY']=!![];}const _0x4993e4=_0x2e3bd8[-0x1e76+-0x16e3+-0x7*-0x79f],_0x35eaf3=_0x2c663d+_0x4993e4,_0x230b80=a0_0x53b1['NzdeFu'][_0x35eaf3];return!_0x230b80?(a0_0x53b1['vPRkvI']===undefined&&(a0_0x53b1['vPRkvI']=!![]),_0x1f42a7=a0_0x53b1['nnpmUU'](_0x1f42a7,_0x3585b7),a0_0x53b1['NzdeFu'][_0x35eaf3]=_0x1f42a7):_0x1f42a7=_0x230b80,_0x1f42a7;}export class DuplicateDetector{[a0_0x5504ca(0xd7,'R2f]')](_0x94b072){const _0x5cbc1a=a0_0x5504ca,_0x58e44e=this[_0x5cbc1a(0x105,'nFSE')](_0x94b072[_0x5cbc1a(0xf3,'rp)E')]),_0x36fc95=this[_0x5cbc1a(0x127,'28^s')](_0x94b072[_0x5cbc1a(0xfa,'^lKc')]),_0x3c2df1=_0x58e44e[_0x5cbc1a(0xe7,'x^1r')](_0x1184c6=>_0x1184c6[_0x5cbc1a(0xe4,'UPp8')]===_0x5cbc1a(0x134,'5J&8'))[_0x5cbc1a(0x125,'hKPG')]+_0x36fc95[_0x5cbc1a(0x10c,'O)W]')](_0x37c520=>_0x37c520[_0x5cbc1a(0x111,'R2f]')]>0x22d5+0x14b7*0x1+-0x378c+0.8)[_0x5cbc1a(0xe0,'(ED%')];return{'fields':_0x58e44e,'tables':_0x36fc95,'summary':{'totalDuplicateFields':_0x58e44e[_0x5cbc1a(0x12f,'8Fka')],'totalDuplicateTables':_0x36fc95[_0x5cbc1a(0xff,'O0KQ')],'autoFixable':_0x3c2df1}};}[a0_0x5504ca(0xcc,'!TJA')](_0xca2219){const _0x20dd1a=a0_0x5504ca,_0x256889=[],_0x11017e=new Map();for(const _0x426292 of _0xca2219){for(const _0x40535b of _0x426292[_0x20dd1a(0x11e,'T3&h')]){const _0x187c4a=this[_0x20dd1a(0x130,'e1]A')](_0x40535b[_0x20dd1a(0xef,'w04F')]);!_0x11017e[_0x20dd1a(0xed,'HvLq')](_0x187c4a)&&_0x11017e[_0x20dd1a(0xc0,'jcIq')](_0x187c4a,[]),_0x11017e[_0x20dd1a(0xc7,'er[8')](_0x187c4a)[_0x20dd1a(0xd8,'e1]A')](_0x426292[_0x20dd1a(0xf2,'ZUK]')]+'.'+_0x40535b[_0x20dd1a(0xea,'(ED%')]);}}for(const [_0x3e9c06,_0x1ea838]of _0x11017e[_0x20dd1a(0x120,'er[8')]()){if(_0x1ea838[_0x20dd1a(0x126,'Vj39')]<=0x21d4+0x1*-0x1869+-0x96a)continue;const _0x4be33d=new Set(_0x1ea838[_0x20dd1a(0xe1,'^lKc')](_0x33d464=>_0x33d464[_0x20dd1a(0x104,'A]4#')]('.')[0x269+0x23d8+-0x2640])),_0x34736b=_0x4be33d[_0x20dd1a(0xd1,'l2UD')]===0x1512+-0x6bb+-0x5*0x2de,_0x4b8be8=_0x1ea838[_0x20dd1a(0xe1,'^lKc')](_0x4afea9=>_0x4afea9[_0x20dd1a(0x108,'guQ@')]('.')[0x3d4+-0x1*-0x867+0x65*-0x1f]);_0x256889[_0x20dd1a(0x129,'ZUK]')]({'fieldName':_0x3e9c06,'tables':_0x4b8be8,'type':_0x34736b?_0x20dd1a(0x11b,'5J&8'):_0x20dd1a(0xcd,'6cX1'),'severity':this[_0x20dd1a(0xc5,'28^s')](_0x3e9c06,_0x4b8be8),'recommendation':this[_0x20dd1a(0x123,'A]4#')](_0x3e9c06,_0x4b8be8,_0x34736b)});}return _0x256889;}[a0_0x5504ca(0x12a,'qj!9')](_0x58e7e0){const _0x1e42e1=a0_0x5504ca,_0x3965d3=[];for(let _0x465325=0x1966+0x15da+0x6*-0x7e0;_0x465325<_0x58e7e0[_0x1e42e1(0xf5,'yF^F')];_0x465325++){const _0x46da71=_0x58e7e0[_0x465325],_0x364adc=[];for(let _0x538e6f=_0x465325+(-0x1873+-0x109c+0x248*0x12);_0x538e6f<_0x58e7e0[_0x1e42e1(0xc8,'R2f]')];_0x538e6f++){const _0x9eca30=_0x58e7e0[_0x538e6f],_0xb496ba=this[_0x1e42e1(0x121,'7ZpW')](_0x46da71,_0x9eca30);_0xb496ba>0x25d0+-0x1*0xc16+0x1*-0x19ba+0.6&&_0x364adc[_0x1e42e1(0xd6,'7ZpW')](_0x9eca30[_0x1e42e1(0xdd,'O0KQ')]);}_0x364adc[_0x1e42e1(0xec,'guQ@')]>0x3e0*0x5+0x11c*0xb+-0x1*0x1f94&&_0x3965d3[_0x1e42e1(0x107,'Y#6q')]({'tableName':_0x46da71[_0x1e42e1(0xfd,'h%qJ')],'similarTo':_0x364adc,'similarity':Math[_0x1e42e1(0xd9,'E8Nv')](..._0x364adc[_0x1e42e1(0xd3,'EC1j')](_0x501572=>{const _0x3fd247=_0x1e42e1,_0x2258a0=_0x58e7e0[_0x3fd247(0xc4,'E8Nv')](_0x533682=>_0x533682[_0x3fd247(0x10b,'UPp8')]===_0x501572);return this[_0x3fd247(0x11a,'O0KQ')](_0x46da71,_0x2258a0);})),'recommendation':this[_0x1e42e1(0xe2,'cy*U')](_0x46da71,_0x364adc)});}return _0x3965d3;}[a0_0x5504ca(0xee,'^lKc')](_0x41b553){const _0x2641b8=a0_0x5504ca;return _0x41b553[_0x2641b8(0xe5,'(ED%')](/[-_]/g,'')[_0x2641b8(0xe9,'x^1r')](/([A-Z])/g,_0x377b07=>_0x377b07[_0x2641b8(0xc6,'w04F')]())[_0x2641b8(0x10d,'EC1j')]();}[a0_0x5504ca(0xdb,'5J&8')](_0x14841e,_0x14908f){const _0x110bbd=a0_0x5504ca,_0x3b0f1f=this[_0x110bbd(0x114,'kYXj')](_0x14841e[_0x110bbd(0x118,'5J&8')],_0x14908f[_0x110bbd(0xe6,'MFBT')]),_0x4e796a=new Set(_0x14841e[_0x110bbd(0xcf,'e@n2')][_0x110bbd(0x101,'hKPG')](_0x355029=>this[_0x110bbd(0xc3,'qj!9')](_0x355029[_0x110bbd(0xd2,'cy*U')]))),_0x1ee496=new Set(_0x14908f[_0x110bbd(0x115,'kYXj')][_0x110bbd(0xde,'cy*U')](_0x4e2a49=>this[_0x110bbd(0xd4,'A]4#')](_0x4e2a49[_0x110bbd(0x11c,'7ZpW')]))),_0x575bbf=new Set([..._0x4e796a][_0x110bbd(0xfc,'28^s')](_0x4e5828=>_0x1ee496[_0x110bbd(0xeb,'rp)E')](_0x4e5828))),_0x297a4f=new Set([..._0x4e796a,..._0x1ee496]),_0x3fbfbe=_0x297a4f[_0x110bbd(0x10e,'(qsY')]>0x22ca+-0x1*0x1da2+-0xa5*0x8?_0x575bbf[_0x110bbd(0xd1,'l2UD')]/_0x297a4f[_0x110bbd(0xd0,'MFBT')]:0x3*-0x9e9+0x1897+0x2f*0x1c;return _0x3b0f1f*(0x35*-0x2b+-0x2e2+0x7*0x1af+0.3)+_0x3fbfbe*(-0x2303+-0x462*-0x8+-0xd+0.7);}[a0_0x5504ca(0x103,'MFy0')](_0x3270ce,_0x5e79c0){const _0x322acf=a0_0x5504ca,_0x53a14=this[_0x322acf(0xf7,'Y#6q')](_0x3270ce,_0x5e79c0),_0x99e2d2=Math[_0x322acf(0xdc,'er[8')](_0x3270ce[_0x322acf(0x116,'UPp8')],_0x5e79c0[_0x322acf(0xc2,'l2UD')]);return _0x99e2d2>0x23ff+-0x8ef*-0x1+-0x47*0xa2?-0xa60+0x1c5a+-0x1*0x11f9-_0x53a14/_0x99e2d2:0x2*0x233+-0x78a*-0x1+0x2f*-0x41;}[a0_0x5504ca(0x10a,'IpL(')](_0x9b233f,_0x2af9c0){const _0x5456fd=a0_0x5504ca,_0x44a9dd=_0x9b233f[_0x5456fd(0xce,'T3&h')],_0x527c09=_0x2af9c0[_0x5456fd(0xc9,'rp)E')],_0x2782fe=Array[_0x5456fd(0x10f,'l2UD')]({'length':_0x44a9dd+(-0x7a5+0x7c9+-0x1*0x23)},()=>Array(_0x527c09+(0x3b7+0x20bc+-0x2472))[_0x5456fd(0xda,'e1]A')](-0x39*-0x17+-0x501+0xa*-0x3));for(let _0x385838=0x2c*0x81+-0xb*-0x21+-0x1797;_0x385838<=_0x44a9dd;_0x385838++)_0x2782fe[_0x385838][-0x67*-0x9+-0x1d87+0x33d*0x8]=_0x385838;for(let _0x3e51f8=0x3bb+-0x1f97*-0x1+-0x89*0x42;_0x3e51f8<=_0x527c09;_0x3e51f8++)_0x2782fe[0x2685+-0x5*-0xd3+-0x2aa4][_0x3e51f8]=_0x3e51f8;for(let _0x40a557=-0x77*-0x2a+-0x665+0x20*-0x69;_0x40a557<=_0x44a9dd;_0x40a557++){for(let _0x348f86=0x27a*-0x6+0x866+0x677;_0x348f86<=_0x527c09;_0x348f86++){_0x9b233f[_0x40a557-(-0x16e3+-0x2*0x151+0x1986)]===_0x2af9c0[_0x348f86-(0x4c8+0x3d*-0x5+-0x9*0x66)]?_0x2782fe[_0x40a557][_0x348f86]=_0x2782fe[_0x40a557-(-0x3*0x14f+-0x5*0x526+-0xc*-0x279)][_0x348f86-(0x1*-0x2a7+0x1a52+-0x17aa)]:_0x2782fe[_0x40a557][_0x348f86]=Math[_0x5456fd(0xcb,'IB*b')](_0x2782fe[_0x40a557-(0xc04*-0x1+-0x7b4+0x13b9)][_0x348f86],_0x2782fe[_0x40a557][_0x348f86-(0x1*-0x1206+-0xf34+0x213b)],_0x2782fe[_0x40a557-(0x126d+0x12e5+-0x2551)][_0x348f86-(0xcf6+0x22c7+-0xeb*0x34)])+(0x18c7+-0x6e5*0x5+0x9b3);}}return _0x2782fe[_0x44a9dd][_0x527c09];}[a0_0x5504ca(0xd5,'er[8')](_0x127c12,_0x4ce3bf){const _0x26cdb6=a0_0x5504ca;if(_0x127c12[_0x26cdb6(0xdf,'8Fka')]('id')&&_0x4ce3bf[_0x26cdb6(0x12d,'Y#6q')]>0x19*-0x1+0x69*-0x1d+0xc00)return _0x26cdb6(0x131,'qj!9');if(_0x4ce3bf[_0x26cdb6(0x110,'gt$!')]>=0x297*0x6+-0x15e7+-0x18*-0x44)return _0x26cdb6(0x109,'ZUK]');return _0x26cdb6(0x119,'hKPG');}[a0_0x5504ca(0xfe,'h%qJ')](_0x3df665,_0x58b40b,_0x45a728){const _0x288e39=a0_0x5504ca;if(_0x45a728)return _0x288e39(0xf4,'A]4#');const _0x496389=new Map();for(const _0x2c7208 of _0x58b40b){const _0x54dafe=_0x2c7208[_0x288e39(0xbf,'28^s')]('.')[-0xb86+-0x1ded+0x2974]||_0x3df665;_0x496389[_0x288e39(0xf9,'FlVl')](_0x54dafe,(_0x496389[_0x288e39(0x12c,'w04F')](_0x54dafe)||0xfb9+0x1*-0x15e8+0x62f)+(-0x1f39+-0x22f*0x2+-0x8e6*-0x4));}const _0x3c81fc=Array[_0x288e39(0x117,'8Fka')](_0x496389[_0x288e39(0xca,'O0KQ')]())[_0x288e39(0xf0,'xmD5')]((_0x107483,_0x54ead6)=>_0x54ead6[0x1*-0x2110+-0x1*-0xd2b+0x13e6*0x1]-_0x107483[0x17*0x1d+0x15dd+-0x1877])[0x18df+0xb3e*0x2+-0x9*0x543][-0x4c1*0x2+0x265c+-0x3*0x99e];return _0x288e39(0x11d,'l2UD')+_0x3c81fc+_0x288e39(0x135,'SyeE')+_0x58b40b[_0x288e39(0x106,'IpL(')](',\x20');}[a0_0x5504ca(0x113,'ZUK]')](_0x335f47,_0x4f5a34){const _0x1fb8e3=a0_0x5504ca,_0x146bba=_0x335f47[_0x1fb8e3(0xdd,'O0KQ')],_0x50ba83=_0x4f5a34[_0x1fb8e3(0x128,'e)2g')](',\x20');return _0x1fb8e3(0xc1,'w04F')+_0x146bba+_0x1fb8e3(0x11f,'guQ@')+_0x50ba83+_0x1fb8e3(0xf6,'kYXj');}}
|
|
1
|
+
const a0_0x40b165=a0_0x120c;function a0_0x58dd(){const _0x54dd0d=['W5igWPBdL8oOiK0vWQveWPpcSCo2w8kIW643aSkSW4ux','WQRdLwDu','WOhcRNOeW4C5W4hcHSkmW5NcSMy','7yEp7j6u67MXW58u','igxcJa','W5Xgu8oDWOVcNa','WQrmWPVcOW','W63cJXFcKLlcHG/cKmoNWQ8xzCkRW6/cNmkEW6xcNq','WPJcTmk3EZX2ig56ja','WOhdOmoXzWxcNgNcP8oIEW','W5RdVCoSjba','WQBdLCk2WQ3dKXnPWQxcQSoAWQyLBW','ySonfmk9ugGo','udxcN8kygSkZgGf+W5C','W4GeW7BdJcddPa','WOjsW5FcHSk+zgCoWOzjWOpcPG','WPhcV8omDmoHWO/cSSod','WPXrms/dJW','bgevWOW','qYtcM8kgeSkYcG','qKLikmoCzmk5fWRcQmojC8kCtYZcJCoiBSoTecK','lCkIW77dKdvhq1eJW7jMW6FcRYRcJIyPqG','jmkyx8oRatjBW5VdJgtcVghdRG','W7FcGqFcK1BcPaFcH8oN','WPtdHxO','W5qvbCo9','WOTekspdMmoqbxrhW6P9fuW6W6HpjJ5qW7/cGW','W5ldJ8o3','WRpcTN7cTq','W4uvW6ZdMt3dRNGeW5SL','W44oW7hdHq','h2OdWO9nWQ7dIW','WPZQSRBcM+YFN+YcIU2uV+UkS+UkOCk+hEYMUoUYLSoV64YK7jYC7yEjWOlRM6/RIO/cGEYFK+URTEUqV0VSOlZQTRlTMRBSNPmI7iM7qEYCVEYjMUUiQUUiL2ag67kS7zwQioUyO+UiPhJQTkhQSz7cPoYEIoYeJUQXG+UMSmoh6Rck7ysU7zwN7isN7jQMW6C','zSojeG','pK/dOSknW7VdTZXYmmoE','qJhcH8kdbW','W4xdTNdcHW','jqNdNtG','AmkvEKpcIIzAW4rozfxdR8kntSkSW7BcImor','W5aaW7RdHZhdGMWDW5S','W6pcGmoTW7NcJMK6WR/cRa','yCodkSk8tMmBW6/dJN7cOa','ymktzfRcJJG','W63cVmoiDHOeWPK','xLLnjq','W4KiW7y','nmk2C8k1gMDlzxldGW','xeLDiSoFESk0dqVcH8oorCkzrGpcImor','W5nrvmooWPBcL2rz','W4VdG8oiWPC','WRPeWPK','jW/dK8or','WQrtWOpdPCo/W5yEWRK','aXq8WP5Bxsi2dG','nSkBk8kUvd8','WOq4vwOflJqRWPZcGbW','WPfd7zU37ygU66oxDU2gVoYCNmo16RAK7j2FW7ZcT+YyRU2vOSksFG','W57cUCkTmG','oua/jSkgFdKFW6mEW47cVYNdLqKZWQ3cUmoJms4','W6xdIrPdcCoY','mmkSC8k1gMbn','oCkNCCkIhxzwzxldMwtdJbRcHYCGW79FWRpdGmor','W4/dMCo3WPbrmWKgW7foW4W','W7SmWRFdJSouW4m','W7VcHmoHW7lcN08','WPXimc/dL8ofmW','WRhQSP/dS8km','W63dIqbbhSoUW7O9hmomCmopBCoMv2DWW6RdRmkyWO8','pmkQhCkfWPZcOG','CvNcIMVdTCoUWQ1NWOFdOLi','x8kXmMNcJmonWQRdOSkuja','CCojeSk2wNi','WRVcPxZcVq','udlcMmkpamkIkrX+W4G2uCohAhhdTa9hW5iBBmoDuJXczmkeW5H7WOS','lSkIW6JdMdHy','dfpdOGnfsIH9y3ZdJCo+','WOG/wc1lW63cPmoAk3nTWPK','grqZWPC','WQxcUSkNWOS','tmoKimoyFIGyWOL4W4XfjmkemXK6y8oyna','66IR65carE2gS+YDH+U7VUYwTUYhTSkI7j6v6Rw+65cCW6FRHQ/SNQBRS7lcQoYbLoYzHmku7kwqW5JcPUY1IEQWHmoh7kcK7lMgWOlRT5/TLQxSM6hdOa','WPVcQYRdNtjtWR/cTIfMfq','WPxdGwXufcG','bxddNSoErSoJarTiW4uRyq','jb/dLa','W6xcIqNcKW','oX/dLSoCqIzHW4joWQHVhCkCW4dcS28Nlbu','cSk1CCkbjNaeWOvZW59waW','W6xcIqNcI1BcMa','W6PIb0VdRSkBamkscsZdN8kBWOZdS0JdNCojW7ZcKsvwW4yZBW','vWxcOq','W6DSguxdUSkBcmkCct7dL8kCWOZdSLxdLCojW7a','vItcNW','WR/dLxffW5BcQq','WQneWOpcQLlcNmoeWOFdRq','WPXijYm','gHqU','nCk3eSkbWPW','jghcKv7dR8k+','W4HQchCBWPBcVmoviq','W7VcU8orBr8aWPG','W49Ieh4','kCkxkmkGtdBdKX7dV8kf','W6uCW5JdSq7cOmo8WO7dIuya','q01o','m8kWAmkQ','W63cJI4fWOhcGwujs2Hr','AujFrN4KW6dcRaFdR8oHcCkdW4/dNdux','W4meW6W','W6HWge3dQmkej8kpcrtdMSk9WPxdPNFdNCohW7tcIs1lW4euC8koW7dcNv8OWOO','xZ8JWQ1RWQVdVmoH','oCkNACkGb20','W5LSetPDdqOvWP7cNWhcTxdcSLPiB2NdHq','W5BdL8ol','W6xcS8om','W4xdQmoUkHbl','W5hdUczvWOvHW7RcS8kSW73cMKS8eheVlmoNWP7dNMr9sZS','WQDqWPlcRG','k2xcK1RdRSk6x8o3W4pcQ8k4FSojW67cTHhcH08NW7Glg19g','64wN7j6567kbWP3RT5ZSNzFSUBil7ykw7kw0iCkIW6q','W6vkumkrDXnPWRJcQc3cUXvxWRpdQSkve8kYuq','W6/cHqVcMeFcGG','xd5bW5yAWP3dUmofk2tdLq','W4VdJ8oLWQldK3mhDwm','WQhcVwhcVq','WPtcTmobF8oGWOm'];a0_0x58dd=function(){return _0x54dd0d;};return a0_0x58dd();}function a0_0x120c(_0x477250,_0x2fabff){_0x477250=_0x477250-(-0x1b*0x13+0x5*0x233+0x63*-0x14);const _0x377946=a0_0x58dd();let _0x3cc0d2=_0x377946[_0x477250];if(a0_0x120c['udQsPT']===undefined){var _0x4af986=function(_0x2966f0){const _0xc5927b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x247f5e='',_0x25f8d2='';for(let _0x3c0d8c=0xd7b+-0xa24+-0x357,_0x3a2378,_0x4b147b,_0x6bd2f9=-0x2352+0x7b3+0x1b9f;_0x4b147b=_0x2966f0['charAt'](_0x6bd2f9++);~_0x4b147b&&(_0x3a2378=_0x3c0d8c%(0xdc+0x4*-0x254+0x878)?_0x3a2378*(-0x70f*-0x2+-0x1*0xf87+0x1a9)+_0x4b147b:_0x4b147b,_0x3c0d8c++%(-0x26a7+-0x2621+-0xa*-0x7ae))?_0x247f5e+=String['fromCharCode'](0x481+0x1*0x53c+0x8be*-0x1&_0x3a2378>>(-(0x13de+-0xbe5+-0x1*0x7f7)*_0x3c0d8c&-0x1c73*0x1+0x1c28+0x51)):0x1a38*0x1+-0x215*-0xb+-0x311f){_0x4b147b=_0xc5927b['indexOf'](_0x4b147b);}for(let _0x566fa9=-0x5f*-0x3+-0x1*0xb23+-0xa06*-0x1,_0x3f3cf4=_0x247f5e['length'];_0x566fa9<_0x3f3cf4;_0x566fa9++){_0x25f8d2+='%'+('00'+_0x247f5e['charCodeAt'](_0x566fa9)['toString'](-0x23cd+0x1cc4+0x719))['slice'](-(-0x7c0+0x24d3+-0x1d11));}return decodeURIComponent(_0x25f8d2);};const _0x3066af=function(_0x7f2a91,_0x59d394){let _0x22097a=[],_0x7255b7=-0xe8e*0x2+0x472+0x18aa,_0x2e7db8,_0x44ac57='';_0x7f2a91=_0x4af986(_0x7f2a91);let _0x1bc402;for(_0x1bc402=-0x2*-0x6ad+0x1f32+0x1*-0x2c8c;_0x1bc402<-0x14fd+0x16bd+-0xc0;_0x1bc402++){_0x22097a[_0x1bc402]=_0x1bc402;}for(_0x1bc402=-0x1f7e+0x17be+0x7c0;_0x1bc402<0x10*0xf1+0x2073+-0x7*0x6a5;_0x1bc402++){_0x7255b7=(_0x7255b7+_0x22097a[_0x1bc402]+_0x59d394['charCodeAt'](_0x1bc402%_0x59d394['length']))%(0x21a*0x3+0x85b+-0x10d*0xd),_0x2e7db8=_0x22097a[_0x1bc402],_0x22097a[_0x1bc402]=_0x22097a[_0x7255b7],_0x22097a[_0x7255b7]=_0x2e7db8;}_0x1bc402=0x979+0x1c46+-0x25bf,_0x7255b7=0x3*0x71+0x363+-0x4b6;for(let _0x527d82=0x58c*-0x1+0x1*-0x526+0xab2;_0x527d82<_0x7f2a91['length'];_0x527d82++){_0x1bc402=(_0x1bc402+(0x4c+-0x1421+0x13d6))%(0x13*-0x19a+0x170*0xb+0xf9e),_0x7255b7=(_0x7255b7+_0x22097a[_0x1bc402])%(-0xc32+-0x2534+0x3266),_0x2e7db8=_0x22097a[_0x1bc402],_0x22097a[_0x1bc402]=_0x22097a[_0x7255b7],_0x22097a[_0x7255b7]=_0x2e7db8,_0x44ac57+=String['fromCharCode'](_0x7f2a91['charCodeAt'](_0x527d82)^_0x22097a[(_0x22097a[_0x1bc402]+_0x22097a[_0x7255b7])%(0x5*0x233+0x228c+-0x2c8b)]);}return _0x44ac57;};a0_0x120c['MOYATe']=_0x3066af,a0_0x120c['AcmKNx']={},a0_0x120c['udQsPT']=!![];}const _0x89429e=_0x377946[-0x1529+-0x118c+0x26b5],_0x2dec7b=_0x477250+_0x89429e,_0x50854e=a0_0x120c['AcmKNx'][_0x2dec7b];return!_0x50854e?(a0_0x120c['hiAPmW']===undefined&&(a0_0x120c['hiAPmW']=!![]),_0x3cc0d2=a0_0x120c['MOYATe'](_0x3cc0d2,_0x2fabff),a0_0x120c['AcmKNx'][_0x2dec7b]=_0x3cc0d2):_0x3cc0d2=_0x50854e,_0x3cc0d2;}(function(_0x282f27,_0x3bbdd3){const _0x5ddc07=a0_0x120c,_0x42f9f8=_0x282f27();while(!![]){try{const _0x19342d=parseInt(_0x5ddc07(0x19a,'R55P'))/(0x19b5*-0x1+-0x2400+0x3db6)+-parseInt(_0x5ddc07(0x17b,'uCJe'))/(0x607*0x1+0x38c*0x7+0x1*-0x1ed9)+parseInt(_0x5ddc07(0x183,'sY70'))/(-0x1747+-0x1d3c+0x3486)+parseInt(_0x5ddc07(0x19e,'tarq'))/(0x6*-0x655+0x3b3+0x224f)*(-parseInt(_0x5ddc07(0x187,'$E8p'))/(0x1*0x23ef+0x12d8+-0x36c2))+-parseInt(_0x5ddc07(0x1b9,')zZ!'))/(0x1d*0x125+-0x11cd+-0xf5e)+-parseInt(_0x5ddc07(0x167,'z6cw'))/(-0x101a+0x1c76+-0xc55)*(-parseInt(_0x5ddc07(0x1b6,'1Ch1'))/(0x1*-0x24e8+0x2*-0x80e+0x350c*0x1))+-parseInt(_0x5ddc07(0x197,'fBDa'))/(0x121*-0x4+-0x2d9+0x766)*(-parseInt(_0x5ddc07(0x152,'u*%^'))/(-0x139d*0x1+-0x694*0x5+0x1*0x348b));if(_0x19342d===_0x3bbdd3)break;else _0x42f9f8['push'](_0x42f9f8['shift']());}catch(_0xf543e0){_0x42f9f8['push'](_0x42f9f8['shift']());}}}(a0_0x58dd,-0x23de8+-0x1f*0x3d0d+0x1*0xe434d));export class DuplicateDetector{[a0_0x40b165(0x177,'$EzQ')](_0x2b788c){const _0x27e89a=a0_0x40b165,_0x12f15e=this[_0x27e89a(0x1ae,')kFP')](_0x2b788c[_0x27e89a(0x17a,'DTHp')]),_0x14d3ed=this[_0x27e89a(0x173,'2i82')](_0x2b788c[_0x27e89a(0x16f,'SHkA')]),_0x30c5a3=_0x12f15e[_0x27e89a(0x15a,'fFPs')](_0x12cdcc=>_0x12cdcc[_0x27e89a(0x1ac,'bneO')]===_0x27e89a(0x171,'wABx'))[_0x27e89a(0x1a3,'1Ch1')]+_0x14d3ed[_0x27e89a(0x18d,'R55P')](_0x45aeeb=>_0x45aeeb[_0x27e89a(0x196,'XaZ*')]>-0x1c8e+-0x19b6+-0x12e*-0x2e+0.8)[_0x27e89a(0x1ad,'XWrV')];return{'fields':_0x12f15e,'tables':_0x14d3ed,'summary':{'totalDuplicateFields':_0x12f15e[_0x27e89a(0x182,'KLgq')],'totalDuplicateTables':_0x14d3ed[_0x27e89a(0x1a9,'TXvv')],'autoFixable':_0x30c5a3}};}[a0_0x40b165(0x16a,'^NkH')](_0x2f21bb){const _0x3b2274=a0_0x40b165,_0x2739c1=[],_0x869103=new Map();for(const _0x1a5191 of _0x2f21bb){for(const _0x2bbee1 of _0x1a5191[_0x3b2274(0x1bb,'sY70')]){const _0x48c774=this[_0x3b2274(0x1b5,'TXvv')](_0x2bbee1[_0x3b2274(0x17d,'nd^w')]);!_0x869103[_0x3b2274(0x18a,'uCJe')](_0x48c774)&&_0x869103[_0x3b2274(0x184,'JMZY')](_0x48c774,[]),_0x869103[_0x3b2274(0x18c,'sY70')](_0x48c774)[_0x3b2274(0x163,'JMZY')](_0x1a5191[_0x3b2274(0x165,'nd^w')]+'.'+_0x2bbee1[_0x3b2274(0x149,'8wC%')]);}}for(const [_0x27c704,_0x40272a]of _0x869103[_0x3b2274(0x16c,'mpJe')]()){if(_0x40272a[_0x3b2274(0x174,'iH^W')]<=-0x9*0x393+-0x25bc+0x2*0x22f4)continue;const _0x11363e=new Set(_0x40272a[_0x3b2274(0x1a2,'j$*f')](_0x2351cb=>_0x2351cb[_0x3b2274(0x1bf,'wABx')]('.')[-0x16c7+-0x70f*-0x2+-0x1*-0x8aa])),_0x74ef49=_0x11363e[_0x3b2274(0x195,'3MOI')]===-0x1028+-0x26a7+0x36d0,_0x27d0d5=_0x40272a[_0x3b2274(0x198,'lfi@')](_0xa16133=>_0xa16133[_0x3b2274(0x1b8,'1Ch1')]('.')[0x4*0x1fa+-0xdd2+0x1*0x5ea]);_0x2739c1[_0x3b2274(0x161,'Te7i')]({'fieldName':_0x27c704,'tables':_0x27d0d5,'type':_0x74ef49?_0x3b2274(0x191,'iH^W'):_0x3b2274(0x194,'j$*f'),'severity':this[_0x3b2274(0x179,'sY70')](_0x27c704,_0x27d0d5),'recommendation':this[_0x3b2274(0x15f,'lfi@')](_0x27c704,_0x27d0d5,_0x74ef49)});}return _0x2739c1;}[a0_0x40b165(0x14a,'wABx')](_0x432f18){const _0x5c1e85=a0_0x40b165,_0x21aeed=[];for(let _0x3139a2=-0x9*-0x1b4+0x24cb+-0x341f;_0x3139a2<_0x432f18[_0x5c1e85(0x1a3,'1Ch1')];_0x3139a2++){const _0x1687f6=_0x432f18[_0x3139a2],_0x59b61e=[];for(let _0x50c715=_0x3139a2+(0x38b+0x102b*-0x1+0xca1);_0x50c715<_0x432f18[_0x5c1e85(0x16b,'2i82')];_0x50c715++){const _0x46b6cf=_0x432f18[_0x50c715],_0x2c8d60=this[_0x5c1e85(0x189,'QPK(')](_0x1687f6,_0x46b6cf);_0x2c8d60>0x38b*-0x2+0xd84*-0x1+-0xa4d*-0x2+0.6&&_0x59b61e[_0x5c1e85(0x1a5,'fBDa')](_0x46b6cf[_0x5c1e85(0x1ab,'2shi')]);}_0x59b61e[_0x5c1e85(0x1b3,'qqqe')]>-0x625+-0x5f*-0x3+-0x17*-0x38&&_0x21aeed[_0x5c1e85(0x15c,'lfi@')]({'tableName':_0x1687f6[_0x5c1e85(0x18e,'fBDa')],'similarTo':_0x59b61e,'similarity':Math[_0x5c1e85(0x162,'fBDa')](..._0x59b61e[_0x5c1e85(0x190,'nd^w')](_0x2b0cdc=>{const _0x47a323=_0x5c1e85,_0x2cc4be=_0x432f18[_0x47a323(0x155,'U4Mb')](_0x4a41da=>_0x4a41da[_0x47a323(0x157,'V%jf')]===_0x2b0cdc);return this[_0x47a323(0x1a4,'xFVB')](_0x1687f6,_0x2cc4be);})),'recommendation':this[_0x5c1e85(0x17f,'$E8p')](_0x1687f6,_0x59b61e)});}return _0x21aeed;}[a0_0x40b165(0x145,'DTHp')](_0x365963){const _0x329904=a0_0x40b165;return _0x365963[_0x329904(0x143,'sY70')](/[-_]/g,'')[_0x329904(0x14f,'tarq')](/([A-Z])/g,_0x533826=>_0x533826[_0x329904(0x159,'$EzQ')]())[_0x329904(0x16e,'Te7i')]();}[a0_0x40b165(0x1a6,'LKes')](_0x497d55,_0x1d75a4){const _0x45e91d=a0_0x40b165,_0x39f84a=this[_0x45e91d(0x144,'lfi@')](_0x497d55[_0x45e91d(0x147,'TXvv')],_0x1d75a4[_0x45e91d(0x193,'3MOI')]),_0x38adfa=new Set(_0x497d55[_0x45e91d(0x14d,'V%jf')][_0x45e91d(0x1a1,'Te7i')](_0x5bbc39=>this[_0x45e91d(0x156,'fFPs')](_0x5bbc39[_0x45e91d(0x169,'p#dq')]))),_0x2a349b=new Set(_0x1d75a4[_0x45e91d(0x15e,'mpJe')][_0x45e91d(0x14b,'2shi')](_0x45d695=>this[_0x45e91d(0x18b,'QPK(')](_0x45d695[_0x45e91d(0x178,'bneO')]))),_0x1cb279=new Set([..._0x38adfa][_0x45e91d(0x188,'TXvv')](_0x2b8ecb=>_0x2a349b[_0x45e91d(0x1b2,'LKes')](_0x2b8ecb))),_0x46e32b=new Set([..._0x38adfa,..._0x2a349b]),_0x17e30c=_0x46e32b[_0x45e91d(0x1b4,'fBDa')]>0x1ea5+-0x1d3*0x15+0x7aa?_0x1cb279[_0x45e91d(0x1af,'R55P')]/_0x46e32b[_0x45e91d(0x18f,'wABx')]:-0x19b1*0x1+-0x7c0+0x2171;return _0x39f84a*(-0xe8e*0x2+0x472+0x18aa+0.3)+_0x17e30c*(-0x2*-0x6ad+0x1f32+0x1*-0x2c8c+0.7);}[a0_0x40b165(0x16d,'mpJe')](_0x5c0829,_0x2c3ff2){const _0x356d9a=a0_0x40b165,_0x53f708=this[_0x356d9a(0x1a0,'z6cw')](_0x5c0829,_0x2c3ff2),_0x31c005=Math[_0x356d9a(0x148,'KLgq')](_0x5c0829[_0x356d9a(0x170,')zZ!')],_0x2c3ff2[_0x356d9a(0x192,'LKes')]);return _0x31c005>-0x14fd+0x16bd+-0x1c0?-0x1f7e+0x17be+0x7c1-_0x53f708/_0x31c005:0x10*0xf1+0x2073+-0x1*0x2f82;}[a0_0x40b165(0x186,'JMZY')](_0x4b0ca7,_0x24b447){const _0x553710=a0_0x40b165,_0x1f7e9d=_0x4b0ca7[_0x553710(0x166,'XaZ*')],_0x5be8ac=_0x24b447[_0x553710(0x1bc,'V%jf')],_0x2a037d=Array[_0x553710(0x14c,'bneO')]({'length':_0x1f7e9d+(0x21a*0x3+0x85b+-0x1d5*0x8)},()=>Array(_0x5be8ac+(0x979+0x1c46+-0x25be))[_0x553710(0x185,'TXvv')](0x3*0x71+0x363+-0x4b6));for(let _0x21a8ba=0x58c*-0x1+0x1*-0x526+0xab2;_0x21a8ba<=_0x1f7e9d;_0x21a8ba++)_0x2a037d[_0x21a8ba][0x4c+-0x1421+0x13d5]=_0x21a8ba;for(let _0x10022b=0x13*-0x19a+0x170*0xb+0xe9e;_0x10022b<=_0x5be8ac;_0x10022b++)_0x2a037d[-0xc32+-0x2534+0x3166][_0x10022b]=_0x10022b;for(let _0x246506=0x5*0x233+0x228c+-0x2d8a;_0x246506<=_0x1f7e9d;_0x246506++){for(let _0x331b1a=-0x1529+-0x118c+0x26b6;_0x331b1a<=_0x5be8ac;_0x331b1a++){_0x4b0ca7[_0x246506-(0x1377+0x3*-0x1+-0x1373)]===_0x24b447[_0x331b1a-(-0x172+0x1ae6+-0x1973)]?_0x2a037d[_0x246506][_0x331b1a]=_0x2a037d[_0x246506-(0x1*-0x92b+-0x7f6*0x1+0x22*0x81)][_0x331b1a-(-0x208f+-0x2279+0x4309)]:_0x2a037d[_0x246506][_0x331b1a]=Math[_0x553710(0x15d,'V%jf')](_0x2a037d[_0x246506-(0x1b*0xa3+-0x1053+-0xdd)][_0x331b1a],_0x2a037d[_0x246506][_0x331b1a-(-0x1*0x2357+-0x11e*0xf+-0xea*-0x39)],_0x2a037d[_0x246506-(0x899+0x3b*0xa9+-0x2f8b)][_0x331b1a-(0x1*-0x2231+0x1143+0xff*0x11)])+(-0xfd*-0x7+0x3*-0x4d1+-0x3*-0x283);}}return _0x2a037d[_0x1f7e9d][_0x5be8ac];}[a0_0x40b165(0x19d,'QPK(')](_0x568c0f,_0x1ffa24){const _0x44dc3c=a0_0x40b165;if(_0x568c0f[_0x44dc3c(0x1be,'XWrV')]('id')&&_0x1ffa24[_0x44dc3c(0x166,'XaZ*')]>-0xfe4+-0x1a*0x44+0x16ce)return _0x44dc3c(0x160,'qqqe');if(_0x1ffa24[_0x44dc3c(0x19f,'mpJe')]>=0x9f2+0x6c3+-0x2*0x859)return _0x44dc3c(0x1ba,'$EzQ');return _0x44dc3c(0x142,'tarq');}[a0_0x40b165(0x19b,'!*28')](_0x44c11b,_0x17003f,_0x21f1e2){const _0x5136b8=a0_0x40b165;if(_0x21f1e2)return _0x5136b8(0x180,'TXvv');const _0x1b408b=new Map();for(const _0x39f0e9 of _0x17003f){const _0x5a7a2e=_0x39f0e9[_0x5136b8(0x153,'sY70')]('.')[0xf*-0x223+-0x831*-0x3+0x77b]||_0x44c11b;_0x1b408b[_0x5136b8(0x151,'$EzQ')](_0x5a7a2e,(_0x1b408b[_0x5136b8(0x19c,'V%jf')](_0x5a7a2e)||-0x727+0x1a5b+-0x1334)+(-0x1350+0xadb+0x876));}const _0x3eabef=Array[_0x5136b8(0x199,'mpJe')](_0x1b408b[_0x5136b8(0x15b,'j$*f')]())[_0x5136b8(0x17e,'t0kz')]((_0x28ad45,_0x49e1eb)=>_0x49e1eb[-0x1*0xd85+0x1ee5+-0x115f]-_0x28ad45[-0x178e+0x4*0x70d+-0x4a5])[0x172f+-0x2*0x84+-0x1627*0x1][-0x265b+0x2a+0x2631];return _0x5136b8(0x1a7,'DTHp')+_0x3eabef+_0x5136b8(0x168,')kFP')+_0x17003f[_0x5136b8(0x14e,'V%jf')](',\x20');}[a0_0x40b165(0x1a8,'kqbY')](_0x4e2458,_0x1b6073){const _0x4776db=a0_0x40b165,_0x5509d5=_0x4e2458[_0x4776db(0x158,')zZ!')],_0x5af3f4=_0x1b6073[_0x4776db(0x154,'#76(')](',\x20');return _0x4776db(0x1b1,'TXvv')+_0x5509d5+_0x4776db(0x172,'SHkA')+_0x5af3f4+_0x4776db(0x150,'Te7i');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a1_0x2ba18d=a1_0x3a0d;function a1_0x306e(){const _0x3d7278=['C8oOmSk4W7Oi','tgzqWQpdUwBdMf42WONdJqRdLxG','fSobW4JdLSkIlmokneRcRtBcPu12','DgzrWP3dVuxdJG','cSkDarnnW4v+dcFdOSoSW7e','pCkkgIjAW5b/gapdV8oRW6VdSCoJcmoHWPtcTq','yJlcGCkB','EmofWRZdLq','A8oKwwdcJKxcM8opFH7dKeZdHdu','W4K8Dmkr','WQ/cHCkSjCkIW6H0sCk6W7O','F2udW6FcIq','omkcW7NcImoJlSojWPJdSSkYECoz','DZ/cHSkbW4VdS8oQW6j0fuD6WONcUsKkW5m','lComW5jZW4GFEmkreu7dHG','WRKGW5mNW6Xhi8o0W63dHt3cLY/dM1RdSW','xhKfmurtWRuwW5pdMWe','DslcHSkNW4/dQmoQ','EmoUFKFcGuFcISoLFGhdNa','drPYnfJcSHVdKmodW4dcGMm','tIPSgSoiDCkjv8ooiH97EKalpNa','gCkDbIy','W7/cHmoAW5ixW6WlW7FdSCkcWOhdGa','W4dcLmkgW7W8zmkCy8khW5nJWPajFmk2WO/cI8oIWQBcQ3tdQ8ox','W4hcLget','rsTHWQPmAmocBHe0B8kzWPFcMG','yCoTWQv7Bmk4C1/dUZRdLsBcMNldM8oHcZBdQeDVACkv','WPFdLdZdMGmYWPJdRXS','vaK6W5xcU8kf','fSobW4JdJ8k+kSooofNcTsy','bCk3WQZcIqBcRKBdIq','aW4XemkLW5Hvnd7dSSkHWOC','wYb3aSomDCkj','fCklcmoL','W5ZcJNyEW43dHSotW6xcKmoI','fSoWbSo4WRyVW6FcLCoC','W4xcGhaxW4tdU8oIW6NcGq','xWKGW6lcVCkcsN/cOmk2WPmdWRu','sWa9W5hcQG','hXCDWRqVWOL/sdi/mmkdW5O','WRlcPJvnW4JdNITfocdcKN4','kY/dGmkWC8kFW7eCoYyiWONdVG','vvKogCkMW6HUba','hCoGWP/dPmk7W4FcRG','zSoUreC','DslcHSkXW4VdO8o7W6bSaezG','ltNdV8kDEmkyW5eCdJOvWPq','gqeIWO0ZWOjaxXqJoW','WPajW7RcQCkmig7cIhhdVa','dbzJhfNcOG','W7/cHmoAW4mxW6qoW7/dPSkyWOW','xmoSnCkJW7evka','W5j9WRRdOtbknCoUdmoTAq','eWuIWR4P','W5W2t8kDcCo8WPNdM8k8W7n6kr0','DmoRk8ksW7CzemkdW5zOr8omm8kkWPNcKCkHWP/dLSoXWRVdGwS','W4hcH3ddOqKRWO/dHs/dHSkLWPCRCq','cSkDarzAW4fKeYpdUmo3W7a','avjKWPZdVd9P','iCowW5xdSSkTn8ohfK7cUa','yCoxpvJcRs7cUW','W7/dOYKid8kxWQFdHSk+aZC6o8ocgvBdR3q','WO/cLSkXjSkIW4XHxmkoW6ZcLLH9l2VdHSoFaa','W5BcHgy6W5pdKSo2W6NcGCoKW68P','tbhcQ8kt','aW4XbmkYW5rkiY3dSSk3','g8oGWPZdVa','WPOdW6RcMmkfk0O','W5XoySocW5O','F8oBWQddK8k1','W73cMCoAW6eeW6GkW5xdPmkyWPZdNmk8DW','WPr1j3/cVSort8og','drPYovpcUaddI8odW5JcHgS3h3KBdMTxxmkEWP3dGCkqW7hcKbK','WQZdP1eDW5hcUG','W5lcJvFdHGyPWP7dRY/dMCkP','oSkJDmogWQiFw8oDW6xdHCkCWPJcHsK6WRL5u8oC','cSkDaqjnW417bdddUmoH','WQRcISk3j8kYW5S','ymofW6ldIJ8B','sIzSgSoaDmkiySoFjq','W4pcKmkEbuddSfe/W5eCW61MW48','xmoQWR9YBSkVwG','W4hcH3ddUbuTWOVdItZdNSk1','amkxetDtW5fBadBdPa','xqiWW4hcMmketNi','ACkFWPy4WP4GBCkBofBdLW','hLDNrmkEC8oH','waXifNBcLdi','ACopWR3dGSkXEmovWR3dSmk0CmojW79XW6etgCoa','vSkCWO4UWPGztSkwkv/dLJpcMxm7WPBcOSoqWOlcSCopW6dcLG','W6tdTwjcW6ZdUszXcq','yZTHWOXRB8ovDru1y8knWOy','CqtcTmkFz8oHW5f/DuilWPFdRa','d8koo8oEWPtdP8ktW7H1l8krWOKO','wM86cfHyWOObW7xdHWOkW5m','eSkZWQRcOqBcQfVdHmk1WO47W5KGWRRdJ2yYW5hcQgxdNSo8W5NdJCo5amkM','hLDNxSkAzSoW','W6NcN8kjW7u7','a8k3WRlcGqZcOfVdIa','WPz+n1JcJmoatW','WQb9DaZdNSk5xCoqhmoyWQtcHG','qCoyWQ3dLCk8','W7uQn3dcISoKu8oYgSoAWP8','sCoQWRTxyCkLs1/dRJpdJJ3cK0u','W5ZdSJnCjcLWDSkb','W7/cHmoAW4CaW7mk','WQ3dU00j','dGGJWQ8GWOfzqam','FSoKxuxcGu/cIG','ECozWQ3dLCk2CSopWPhdUG','b8kqgmoSW48','W57cJ0ClW4xdLmo3W6e','cWXngvpcTtVdKmo2W5ZcN34L','CGlcQCkgBmo0W6LVqfqkWP/dP8kDy0ddPCke','BCotW4FdHcuxnIbNWPDNWPv3','tmkdWOrSW4nwb0z3exazWOldUSk9WQddPwe','WOmHW6JcQLrro8oO','E8kuWP9DW5rdbLjtdhCd','WRKGW5mNW6Xhi8oPW6ldGZtcIIFdK1ldUSkGpW','sCotwCkdW4dcV8oaW7X4fCk9','sCoSmCkBW7uooq','W77cG3GEW4ldGCopW63cKmoVW6K7WRq6e8kyxaFdIuj+d8oe','bComW47dSmk5iSow','xSobrMChWPjtoYBdQCo+W48','zSoOk8keW61tsG','W5OGCmk6bSo1WRm','W7NcKSoLW7OlW68XW6JdGmkeWOFdNmkL','WQfOBSolgmkgmIRdH8oeWOD0sffd','WQpcRtPDW4JdLW','dHy/WRaGWP9jCqmU','WR0RW6W8W6nagmosW5JdJYpcNry','W4DnASolW5X8WQtcLmkGWPLHW7G6W6f4Du0zW7ldRmkOACkM','W5Ozs3e','W5OGCmkKfCo3WQBdJmkAW69X','rrxcSSk/z8oVW6L/yeSqWOZdPCkb','W4JdTdi7bSkeWQddJmkAaW','p8ocAMJcTuNcIq','W6hcK30lW4tdH8o3W73cPCo5W6GZWR8rbSknqby','rdXCdCofC8kjCW','xhKfierBWRaEW4tdGqWw','xG04W4hcQG','jmokW5xdRSk5ia','WRJdVeWdW63cSt7cSmkcW7ldGCouWP4','amkknSoPW4vgWOddMmoAF8kVdhW','k8oiW5uLWQOME8kDdq','WQ/cLSkXpmkIW51H','uZxcGmksW5pdNmo3W5DLe1r/WQ7cTc0DW4xdTSo7iqDY','x8o4hCosWRiUWQW','rZzHWPfdySocuXe6ASkgWRZcICk/aq','W4JdTdiSd8kDWQC','W7tdTILAbdG','WP1+lwVcNCoq','WRhcPID8W4/dNs92kZJcNG','W4PkBmobW5fVWPVcQCk7','EmksWOGKWOWJD8ktmq','zmoHlSkAW61CrSouW6m','gSk9W70Npmo/rvldHdNdJGO','CYVcNSkCW53dNSoRW49S','w2jwWOddRKtdH18HWPhdOGBdIG','WP3dQeWnW7dcPI3cP8ojW4ZdSmoOWQpcRtK','a8oGWOhdR8kUW4W','W7HAC8og','mSolW5ddQSkHkW','W6RcJSkyW6S+C8kKs8kaW4v+WPimwmk6WPBcLSoPWQy','W4/cJgddJr8NWOG','tgzqWQpdUx3dLLyMWOa','FmoZretcGv7cLSoTEGS','BCoeWOldMCk+F8oUWOBdISk4z8oEW44','WRS9W5mBW6XjmG','y8oaiL7cQs7cQG','gxCVW63cP35Z','tIT7WOrwAq','WRKGW5mNW6Xhi8oJW6pdIYtcNW/dTuFdOSkTi8kuWQ0','c1DJFmkAAmoW','whaaW7NcMeHIW5/dQrq','hCobW5ldUmk4lq','sIftaCohCSkYzmoUpH99BW','s30deLnXWQOxW4tdGZ4mW4GN','faCWjSkHW5DtpdO','s8kPAG','qCoxpulcRt/cU0j8WPvGWRLlW40FW4ldUSoU','emkUWQRcMGNcOLVdPmk6WOy3W5SGWRS','bSkCcCojW4vlWRVdG8oVE8k0gw5p','lSkBf8oLW4HwWOpdG8o6CSkVaMD4WRNcUmk7amkuq3zweG','u0y1qq3cNZZdK8onW5lcHa','aXP1','A8ofW7JdQs4qfIbsWOT6WOG','WRe5W5C','WPGEW6RcVSkbmeRcOgVdSmoukmkPW7O','af5+WQZdLcH5WPBdOf3cOuldOmkD','WQn5E0FcGSoXxCouiq','EYb3gmomzmkjB8o7jr57F1SspM1p','lZldR8kQsSksW4Og','W7NdPJnsot5JyCokWP/dImknyq','ACopWR3dGSkXEmovWRddV8kKDmoLW4bOW6e','wx9wWQldVuJdG3K8WONdVG7dL1i6W43cK8k+W7n9','EGK4W53cOCkksu7cVCkpWPSiWR8','pSogW5BdUSkVmCoYnf/cPc3cVKrbWRxdRxTXFLTyWPBdGa','WR7dReWNW43cStK','sNCQW6lcGL96W4tdIrrIW5lcUW','WRC9oqyBWPpdQLWHfa','x2HpWR3dUuxdGW','s8oHWQTTwmkLs14','WPDYlwJcPmoxx8olWR8/W5uiW7j7','W4RdVYilpCkmWQFdLW','sCoQWRTBy8kPuLpdOsVdLa','WRS9W5mrW6HhomosW63dKZ7cGa','tMjdWRtdUeldHq','W6ZdQJDy','aW4XhCkUW5jolZ7dQSkNWO/cKCkQ','W5OGCmkGaSoGWQi','gqeIWPeOWPLvsaC7fmknW4hcQ8oH','sCoQWRTkASk0sW','WRewm8kFWO9gWQdcJmk7WPP6','tdDSiCohF8kjF8oBoGrOFuC2puHsWPLlW4ldMNdcJ3G7fq','sZ1rWOPqzmovCX8QFW','W6aQj0dcHCoK','wwefW77cJ14','WR3dHmoDWQPQi8oMtCkFW79yWOm3','umolnSonW41XWPVdQa','tCojECkf','rsTHWQ1dBmot','W4RdQtikc8kgWQFdSmkpbc08mSoF','wSoGWPXWBSkNwNxdRIZdGG','W73dQZnpetn0v8ooWOBdJmk3BmoexG','ufL3BCoZWOHaiHtdOmkNWRG','xxrPWRNdSK/dUeGhWO3dUqZdJG','b8kZWQ7cHaNcOKO','FSkBWPapWP4oBCknpe7dIYa','eaqjo8k3W55ibt7dTCkR','WPWvW5xcPCkon3hcM1hdVmodp8k7','W73cK8kiW6W8Dq','W6ZcImodW7ywW78FW7FdPmkF','qSoQWQf5E8kK','WRiUW67cTwy','bmkwetDhW4D4','gH50a1JcKaFdKConW5FcHhaMbf8tcNjnuCk+WOhdPG','drPYie/cVGtdH8oqW4dcLa','W69kDmoQW5PRWOFcJ8k1WOH8W6S','C8oOl8kMW61DsG','jCkKWRhcMa3cS1VdLmkvWPeHW4OIWQBdQ2uxW4W','W6ZcK8oBW7y','nLb5DCkyF8ozWPyjWPHCW4xcTGJcH8opjSkLz03dTZdcOW','B8opW6hdGc4Ddq','bCkCg8oHW55oWRVdVmoVE8kObG','WPWvW63cO8kdoL/cNwZdU8oFiW','p8koW7RcHCoOk8o5WQ7dUSk1C8o8','W6RcHmkEW7yT','dYLbwqujWQ0FW43dJrqn','W6JcK8kyW5GTD8kLz8kwW5HLWOi','WQaUW6xcTwzCB8o0l8k5E09SWO/dHd8','tgevW5VcNLrfW5pdRWHP','EmkAWOayWPqyCmkCohZdJt7cKhC3WRBcSCobWPK','cCoSWOhdRa','s30deLn9WRyaW47dJbeeW5aRFNzLWR1tWQdcOCosWOO','tCofWRVdKCkPv8oiWOddU8kIDmoDW7XGW7qngmoaW5udWRRdQq','rrxcSSk9ymoOW7K','gCkZWRdcJXZcQq','DCo+emkbW6juymoCW5ldGSkaWPhcMW','i8kxzqVdShxcRhXvWPbBWQa','tIPSgSoiDCkjv8ojjqjXCvqlmMXvWOq','WOeGjbmxWOBdSg4fhHpcIf3dIMKXW4Sq','vG05W5C','WOHOAG'];a1_0x306e=function(){return _0x3d7278;};return a1_0x306e();}(function(_0xa7cc08,_0x1762e1){const _0x41961f=a1_0x3a0d,_0x450314=_0xa7cc08();while(!![]){try{const _0x4369bc=-parseInt(_0x41961f(0x104,'IA7V'))/(0x2c3*0xe+-0x947+-0x1d62)*(-parseInt(_0x41961f(0x14d,')730'))/(0x332+0x10dd*-0x2+-0x6*-0x517))+parseInt(_0x41961f(0x17e,'ex1H'))/(-0x3b*-0x93+0x1b*-0x129+-0x28b)*(parseInt(_0x41961f(0x15a,'MliZ'))/(0x2*0x179+-0x6b9*-0x1+-0x9a7))+-parseInt(_0x41961f(0x102,'oM5X'))/(-0xd*0x8b+-0x5c*-0x31+0xa88*-0x1)+-parseInt(_0x41961f(0x120,'kRWk'))/(-0xcf4+-0x201b+0x2d15)*(-parseInt(_0x41961f(0x192,'fL*E'))/(-0x636+-0x1279*0x2+0x2b2f))+parseInt(_0x41961f(0x153,'yooX'))/(-0xe7d*0x1+0xef*0x28+-0x16d3)+parseInt(_0x41961f(0x150,'3jNB'))/(0x5c4*0x6+-0x766*-0x1+-0x1d3*0x17)*(parseInt(_0x41961f(0x1cb,'I0L5'))/(-0x1094+0xf3*0x25+-0x1281))+-parseInt(_0x41961f(0xe4,'oM5X'))/(-0x22b5+-0x1*-0x627+0x1*0x1c99)*(parseInt(_0x41961f(0x111,'%[7B'))/(0xcc+0x205b+0x19*-0x153));if(_0x4369bc===_0x1762e1)break;else _0x450314['push'](_0x450314['shift']());}catch(_0x233012){_0x450314['push'](_0x450314['shift']());}}}(a1_0x306e,-0x1f*0x13c6+-0x32f51*0x1+-0x5*-0x1b551));import*as a1_0x3e0215 from'fs/promises';function a1_0x3a0d(_0x719e0a,_0x3d8520){_0x719e0a=_0x719e0a-(0x5*-0x57d+-0x67a+-0x115f*-0x2);const _0x19cd9a=a1_0x306e();let _0x5a2f36=_0x19cd9a[_0x719e0a];if(a1_0x3a0d['frlxVy']===undefined){var _0x31c185=function(_0x598c87){const _0x270de7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1df6c2='',_0x57b376='';for(let _0x15bb2d=-0x1*0x14b7+0x1fba+0xb03*-0x1,_0x1b4e4e,_0x1b18c9,_0x13b142=0x1*0x222+0x6a*-0x24+0xcc6;_0x1b18c9=_0x598c87['charAt'](_0x13b142++);~_0x1b18c9&&(_0x1b4e4e=_0x15bb2d%(0x1*-0x142d+0x97*-0x3d+-0x14*-0x2cf)?_0x1b4e4e*(0x6*0x57f+0x256a+0x2312*-0x2)+_0x1b18c9:_0x1b18c9,_0x15bb2d++%(0xdfb+0x1*0x142d+-0x2224))?_0x1df6c2+=String['fromCharCode'](0x1f1*0xd+0x31*-0x4b+-0x9e3*0x1&_0x1b4e4e>>(-(0x1*0x1cc9+-0x3e+-0x1c89)*_0x15bb2d&-0x2359+0x13*0x92+-0x23b*-0xb)):-0x1ad6+-0x17a1+0x3277*0x1){_0x1b18c9=_0x270de7['indexOf'](_0x1b18c9);}for(let _0x58193a=-0x20e0+-0x3cf+0x24af,_0x59a0db=_0x1df6c2['length'];_0x58193a<_0x59a0db;_0x58193a++){_0x57b376+='%'+('00'+_0x1df6c2['charCodeAt'](_0x58193a)['toString'](-0x2*0x8f6+-0x1*0x1552+0x306*0xd))['slice'](-(0x14d8*0x1+0x4ae*0x3+-0x22e0));}return decodeURIComponent(_0x57b376);};const _0x122201=function(_0x2bbb34,_0x49d3af){let _0x5efe8d=[],_0xa57f5c=0x1f*-0x75+0xb4a*-0x1+0x1975,_0x4646cf,_0x4d634f='';_0x2bbb34=_0x31c185(_0x2bbb34);let _0x4ae689;for(_0x4ae689=0x268+0xa06*-0x1+-0xf*-0x82;_0x4ae689<0x1a4*-0x5+0x79*-0x1b+0x15f7;_0x4ae689++){_0x5efe8d[_0x4ae689]=_0x4ae689;}for(_0x4ae689=-0x2*0x745+-0x539*-0x7+-0x1605;_0x4ae689<0x14dd+0x25d8+0x365*-0x11;_0x4ae689++){_0xa57f5c=(_0xa57f5c+_0x5efe8d[_0x4ae689]+_0x49d3af['charCodeAt'](_0x4ae689%_0x49d3af['length']))%(-0xa*-0x279+-0x6*-0x5df+-0x3af4),_0x4646cf=_0x5efe8d[_0x4ae689],_0x5efe8d[_0x4ae689]=_0x5efe8d[_0xa57f5c],_0x5efe8d[_0xa57f5c]=_0x4646cf;}_0x4ae689=-0x1212+0x1*-0x1f46+0x3158,_0xa57f5c=-0x311+0x17*0x132+-0x186d;for(let _0x8ee92c=-0x2269+0x5*-0x3c+0x2395;_0x8ee92c<_0x2bbb34['length'];_0x8ee92c++){_0x4ae689=(_0x4ae689+(-0x3*0xa99+-0x2604+0x45d0))%(-0x281+-0x1*0x24c5+0x2846),_0xa57f5c=(_0xa57f5c+_0x5efe8d[_0x4ae689])%(0xbbb+-0x9*0xbd+0x1*-0x416),_0x4646cf=_0x5efe8d[_0x4ae689],_0x5efe8d[_0x4ae689]=_0x5efe8d[_0xa57f5c],_0x5efe8d[_0xa57f5c]=_0x4646cf,_0x4d634f+=String['fromCharCode'](_0x2bbb34['charCodeAt'](_0x8ee92c)^_0x5efe8d[(_0x5efe8d[_0x4ae689]+_0x5efe8d[_0xa57f5c])%(0xef7+0x1*-0x777+0x40*-0x1a)]);}return _0x4d634f;};a1_0x3a0d['gbANnF']=_0x122201,a1_0x3a0d['sAAjSd']={},a1_0x3a0d['frlxVy']=!![];}const _0x301fdd=_0x19cd9a[0x223+-0x1ebf+0x1*0x1c9c],_0x2071d4=_0x719e0a+_0x301fdd,_0x5402a9=a1_0x3a0d['sAAjSd'][_0x2071d4];return!_0x5402a9?(a1_0x3a0d['lgTzbt']===undefined&&(a1_0x3a0d['lgTzbt']=!![]),_0x5a2f36=a1_0x3a0d['gbANnF'](_0x5a2f36,_0x3d8520),a1_0x3a0d['sAAjSd'][_0x2071d4]=_0x5a2f36):_0x5a2f36=_0x5402a9,_0x5a2f36;}import*as a1_0x279477 from'path';import{Project,SyntaxKind}from'ts-morph';export class ModelParser{[a1_0x2ba18d(0x116,'jc%y')];[a1_0x2ba18d(0x118,'o%YT')];constructor(_0x118ffc){const _0xc43dfb=a1_0x2ba18d;this[_0xc43dfb(0x126,'nTqk')]=_0x118ffc,this[_0xc43dfb(0x187,'hfdW')]=new Project({'tsConfigFilePath':a1_0x279477[_0xc43dfb(0x122,'ex1H')](_0x118ffc,_0xc43dfb(0x141,'q$uC')),'skipAddingFilesFromTsConfig':!![]});}async[a1_0x2ba18d(0x14b,'IA7V')](){const _0x3ab1f2=a1_0x2ba18d,_0x4a271a=await this[_0x3ab1f2(0x1c1,'$v9!')](),_0x2189af=[];for(const _0x56ff68 of _0x4a271a){try{const _0x3705df=await this[_0x3ab1f2(0xf7,'Il7w')](_0x56ff68);_0x3705df&&_0x2189af[_0x3ab1f2(0xfc,'ypGP')](_0x3705df);}catch(_0x41f3b3){console[_0x3ab1f2(0xe5,'[azE')](_0x3ab1f2(0xe8,'n9U%')+_0x56ff68+':',_0x41f3b3);}}return{'models':_0x2189af,'totalTables':_0x2189af[_0x3ab1f2(0x18d,'$v9!')],'totalColumns':_0x2189af[_0x3ab1f2(0x1cf,']Jq0')]((_0x2693df,_0x15b9ae)=>_0x2693df+_0x15b9ae[_0x3ab1f2(0x145,'jc%y')][_0x3ab1f2(0x196,'T]7Z')],0x1013*-0x1+-0x41*0x83+0x1*0x3156),'totalIndexes':_0x2189af[_0x3ab1f2(0xd5,'[azE')]((_0x379458,_0x3251ca)=>_0x379458+_0x3251ca[_0x3ab1f2(0x19a,'%[7B')][_0x3ab1f2(0x1a5,'$Q]p')],0x14b2+0x16be+-0x2b70),'totalAssociations':_0x2189af[_0x3ab1f2(0x1ce,'MliZ')]((_0x479237,_0x4b4ffe)=>_0x479237+_0x4b4ffe[_0x3ab1f2(0xe3,'nTqk')][_0x3ab1f2(0x112,'xg0w')],0x107*0x1b+-0x8*-0x15+0x1c65*-0x1)};}async[a1_0x2ba18d(0x1a7,'bkUR')](_0x324c69){const _0x48ede3=a1_0x2ba18d,_0xa295d5=this[_0x48ede3(0x132,'hrtx')][_0x48ede3(0xea,'IA7V')](_0x324c69),_0x111e87=_0xa295d5[_0x48ede3(0x17d,'1@OT')](),_0x15d445=_0x111e87[_0x48ede3(0xeb,'T]7Z')](_0x301fdd=>{const _0x18c24f=_0x48ede3,_0x2071d4=_0x301fdd[_0x18c24f(0x123,'ypGP')]();return _0x2071d4?.[_0x18c24f(0x156,'nBo0')]()===_0x18c24f(0x15b,'oM5X');});if(!_0x15d445)return null;const _0x5373d3=_0x15d445[_0x48ede3(0x173,'6MKK')](),_0x326dec=this[_0x48ede3(0x105,'8Qe9')](_0x15d445),_0x719e0a=this[_0x48ede3(0x10a,'jc%y')](_0x15d445),_0x3d8520=this[_0x48ede3(0x1ab,'SW8g')](_0x15d445),_0x19cd9a=this[_0x48ede3(0x199,'[azE')](_0x15d445),{timestamps:_0x5a2f36,paranoid:_0x31c185}=this[_0x48ede3(0x1d4,'1@OT')](_0x15d445);return{'modelName':_0x5373d3,'tableName':_0x326dec,'filePath':_0x324c69,'attributes':_0x719e0a,'indexes':_0x3d8520,'associations':_0x19cd9a,'timestamps':_0x5a2f36,'paranoid':_0x31c185};}[a1_0x2ba18d(0x18a,'2E$@')](_0x5402a9){const _0x1de246=a1_0x2ba18d,_0x122201=_0x5402a9[_0x1de246(0x109,')730')](_0x1de246(0x13a,'I0L5'));if(!_0x122201){const _0x57b376=_0x5402a9[_0x1de246(0x1d3,'2E$@')]();return this[_0x1de246(0x1d5,'fL*E')](this[_0x1de246(0x1a8,'kRWk')](_0x57b376));}const _0x598c87=_0x122201[_0x1de246(0x135,'o%YT')]();if(_0x598c87[_0x1de246(0xd7,'fL*E')]===0x1f75+0x27b*0x2+0x246b*-0x1)return this[_0x1de246(0x16d,'yooX')](this[_0x1de246(0x191,'q$uC')](_0x5402a9[_0x1de246(0x19e,'8Qe9')]()));const _0x270de7=_0x598c87[-0x2f*0x71+-0x1*-0x33b+0xec*0x13],_0x1df6c2=_0x270de7[_0x1de246(0x1d8,'Il7w')](SyntaxKind[_0x1de246(0x1bb,'$Q]p')])[_0x1de246(0x142,')XdA')](_0x1de246(0x11a,'o%YT'));if(_0x1df6c2){const _0x15bb2d=_0x1df6c2[_0x1de246(0x1bd,']Jq0')](SyntaxKind[_0x1de246(0xde,'SW8g')])[_0x1de246(0x155,'SW8g')](SyntaxKind[_0x1de246(0x152,'r1yO')])[_0x1de246(0x1c9,'5Z9m')]();return _0x15bb2d;}return this[_0x1de246(0x108,'ex1H')](this[_0x1de246(0x161,'5Z9m')](_0x5402a9[_0x1de246(0x189,'vqOB')]()));}[a1_0x2ba18d(0x103,'ypGP')](_0x1b4e4e){const _0x51cbd4=a1_0x2ba18d,_0x1b18c9=[],_0x13b142=_0x1b4e4e[_0x51cbd4(0x11b,'xg0w')]();for(const _0x58193a of _0x13b142){const _0x59a0db=_0x58193a[_0x51cbd4(0x1c4,'8Qe9')](_0x51cbd4(0x198,'$Q]p'));if(!_0x59a0db)continue;const _0x2bbb34=_0x58193a[_0x51cbd4(0xdd,'q$uC')](),_0x49d3af=this[_0x51cbd4(0x1b8,'oM5X')](_0x59a0db),_0x5efe8d=this[_0x51cbd4(0x1a2,'8Qe9')](_0x59a0db);_0x1b18c9[_0x51cbd4(0x1d2,'yooX')]({'name':_0x2bbb34,'type':_0x49d3af,'allowNull':_0x5efe8d[_0x51cbd4(0x193,'ypGP')]??!![],'defaultValue':_0x5efe8d[_0x51cbd4(0xe2,')WB0')],'primaryKey':_0x5efe8d[_0x51cbd4(0x19c,'ex1H')]||_0x58193a[_0x51cbd4(0xdc,'I0L5')](_0x51cbd4(0x131,'$Q]p'))!==undefined,'autoIncrement':_0x5efe8d[_0x51cbd4(0x1b7,'VHw!')]||_0x58193a[_0x51cbd4(0x124,'R2NS')](_0x51cbd4(0x151,'2E$@'))!==undefined,'unique':_0x5efe8d[_0x51cbd4(0x176,'3jNB')]||_0x58193a[_0x51cbd4(0x12f,')XdA')](_0x51cbd4(0x183,'$Q]p'))!==undefined,'field':_0x5efe8d[_0x51cbd4(0x164,')WB0')],'validate':_0x5efe8d[_0x51cbd4(0x158,'SW8g')],'comment':_0x5efe8d[_0x51cbd4(0x1bf,'Il7w')]});}return _0x1b18c9;}[a1_0x2ba18d(0x1b2,'nTqk')](_0xa57f5c){const _0x3b0b7b=a1_0x2ba18d,_0x4646cf=_0xa57f5c[_0x3b0b7b(0x1da,'IA7V')](_0x3b0b7b(0xd8,'n9U%'));if(!_0x4646cf)return[];const _0x4d634f=_0x4646cf[_0x3b0b7b(0xfa,')XdA')]();if(_0x4d634f[_0x3b0b7b(0x18c,'VHw!')]===-0x41b*-0x4+-0x1*-0x132b+0x1*-0x2397)return[];const _0x4ae689=_0x4d634f[-0x20f3+-0x115*0x13+0x6*0x8eb][_0x3b0b7b(0x174,'KY#Y')](SyntaxKind[_0x3b0b7b(0x10d,'[azE')]),_0x8ee92c=_0x4ae689[_0x3b0b7b(0x106,'bkUR')](_0x3b0b7b(0xd9,')XdA'));if(!_0x8ee92c)return[];const _0x226120=_0x8ee92c[_0x3b0b7b(0x178,'8Qe9')](SyntaxKind[_0x3b0b7b(0xde,'SW8g')])[_0x3b0b7b(0x1cc,'jc%y')](SyntaxKind[_0x3b0b7b(0x188,'ypGP')]);return _0x226120[_0x3b0b7b(0x15c,'MliZ')]()[_0x3b0b7b(0xf5,'$a(u')](_0x27df7e=>{const _0x33a007=_0x3b0b7b,_0xccad7f=_0x27df7e[_0x33a007(0x11d,'5Z9m')](SyntaxKind[_0x33a007(0x12d,'6r2#')]),_0x4ac04b=_0xccad7f[_0x33a007(0xe9,']Jq0')](_0x33a007(0x136,'r1yO'))?.[_0x33a007(0x166,')730')](SyntaxKind[_0x33a007(0xfb,')XdA')])[_0x33a007(0x12e,'%[7B')]()?.[_0x33a007(0x1c8,'6MKK')](),_0x2240d0=this[_0x33a007(0x14e,'oM5X')](_0xccad7f),_0x229a8a=_0xccad7f[_0x33a007(0x113,'$Q]p')](_0x33a007(0x143,'hfdW'))?.[_0x33a007(0x11f,'R2NS')](SyntaxKind[_0x33a007(0x169,'j#jt')])[_0x33a007(0x17c,'r1yO')]()?.[_0x33a007(0x14c,'nBo0')]()===_0x33a007(0xdf,'KY#Y'),_0x523e10=_0xccad7f[_0x33a007(0x18e,'3jNB')](_0x33a007(0xff,'6MKK'))?.[_0x33a007(0xd4,'nTqk')](SyntaxKind[_0x33a007(0x134,'hfdW')])[_0x33a007(0xf8,'$Q]p')]()?.[_0x33a007(0x18b,'1@OT')]();return{'name':_0x4ac04b?.[_0x33a007(0x121,'T]7Z')](/['"]/g,''),'fields':_0x2240d0,'unique':_0x229a8a,'type':_0x523e10?.[_0x33a007(0x172,'q$uC')](/['"]/g,'')};});}[a1_0x2ba18d(0xf2,'jc%y')](_0x19f5c3){const _0xbd0840=a1_0x2ba18d,_0x1fecd4=[],_0x594565=_0x19f5c3[_0xbd0840(0x194,'Il7w')]();for(const _0x4b98e6 of _0x594565){const _0x1956e2=[_0xbd0840(0xf6,'6r2#'),_0xbd0840(0xf9,'Il7w'),_0xbd0840(0x18f,'I0L5'),_0xbd0840(0x1ba,'xg0w')];for(const _0x32731d of _0x1956e2){const _0x195139=_0x4b98e6[_0xbd0840(0x115,'kRWk')](_0x32731d);if(!_0x195139)continue;const _0x1867fa=_0x195139[_0xbd0840(0x10c,'KY#Y')](),_0x3e5f7e=_0x1867fa[0xc78+-0x1843+0xbcb]?.[_0xbd0840(0x139,'nTqk')](),_0x31adbc=_0x3e5f7e?.[_0xbd0840(0x12b,'5Z9m')](/\(\)\s*=>\s*(\w+)/)?.[-0x875*0x2+0xec4+0x227];if(!_0x31adbc)continue;const _0x31d0cb=_0x1867fa[-0xe5c+-0x259c+-0x1*-0x33f9]?this[_0xbd0840(0xec,'bkUR')](_0x1867fa[0x72d*0x5+0x2*-0x44f+0x1b42*-0x1][_0xbd0840(0xd4,'nTqk')](SyntaxKind[_0xbd0840(0x1ad,')WB0')])):{};_0x1fecd4[_0xbd0840(0x197,'I0L5')]({'type':_0x32731d[_0xbd0840(0x162,'ex1H')](/([A-Z])/g,_0x4b55c5=>_0x4b55c5[_0xbd0840(0xd3,'kRWk')]())[_0xbd0840(0x16e,'6r2#')](/^./,_0x32f73e=>_0x32f73e),'target':_0x31adbc,..._0x31d0cb});}}return _0x1fecd4;}[a1_0x2ba18d(0x13c,'KY#Y')](_0x50dc7e){const _0x292bd4=a1_0x2ba18d,_0x18ca1f=_0x50dc7e[_0x292bd4(0x1b0,'^IPf')](_0x292bd4(0x101,']Jq0'));if(!_0x18ca1f)return{};const _0x17a012=_0x18ca1f[_0x292bd4(0x16b,'j#jt')]();if(_0x17a012[_0x292bd4(0x144,'^IPf')]===0x94a+0x1907+-0x2251)return{};const _0x269238=_0x17a012[0x1a0*0x2+0xe6b+-0x1*0x11ab][_0x292bd4(0xf0,'q$uC')](SyntaxKind[_0x292bd4(0x110,'fL*E')]);return{'timestamps':_0x269238[_0x292bd4(0x137,'kRWk')](_0x292bd4(0xd6,'KY#Y'))?.[_0x292bd4(0x168,'^IPf')](SyntaxKind[_0x292bd4(0x133,'1@OT')])[_0x292bd4(0xfe,'ex1H')]()?.[_0x292bd4(0x107,'ypGP')]()===_0x292bd4(0xfd,'oM5X'),'paranoid':_0x269238[_0x292bd4(0x148,'%[7B')](_0x292bd4(0x114,'SW8g'))?.[_0x292bd4(0x185,')WB0')](SyntaxKind[_0x292bd4(0xf3,'H*N9')])[_0x292bd4(0x15d,'fL*E')]()?.[_0x292bd4(0x1ca,'fL*E')]()===_0x292bd4(0x117,')WB0')};}[a1_0x2ba18d(0x1d6,'VHw!')](_0x4fee3e){const _0xe638af=a1_0x2ba18d,_0x336a68=_0x4fee3e[_0xe638af(0x181,'bkUR')]();if(_0x336a68[_0xe638af(0x1a1,'2E$@')]===0x47*-0x37+0xa5f+0x4e2)return _0xe638af(0x195,'QWcr');const _0x1b921b=_0x336a68[0x79*-0x1b+-0x9b2*-0x2+-0x6a1],_0x1d9e58=_0x1b921b[_0xe638af(0x15f,'KY#Y')]();if(_0x1d9e58[_0xe638af(0x1a4,']Jq0')](_0xe638af(0x15e,'VHw!')))return _0x1d9e58;if(_0x1b921b[_0xe638af(0x1bc,'QWcr')]()===SyntaxKind[_0xe638af(0x16f,'o%YT')]){const _0x1fd911=_0x1b921b[_0xe638af(0x154,'bkUR')](SyntaxKind[_0xe638af(0x14f,'IA7V')])[_0xe638af(0x128,'KY#Y')](_0xe638af(0x1c6,'VHw!'));if(_0x1fd911)return _0x1fd911[_0xe638af(0x19d,'oM5X')](SyntaxKind[_0xe638af(0x1aa,'hrtx')])[_0xe638af(0x10f,'2E$@')]()[_0xe638af(0x130,'PHCl')]();}return _0xe638af(0x175,'$a(u');}[a1_0x2ba18d(0x1b9,'Il7w')](_0x233256){const _0x5c9437=a1_0x2ba18d,_0x26442b=_0x233256[_0x5c9437(0xe7,'[azE')]();if(_0x26442b[_0x5c9437(0xef,'SW8g')]===0x248f+-0x17*-0x3+-0x24d4)return{};if(_0x26442b[0x14dd+0x25d8+0x317*-0x13][_0x5c9437(0xee,'r1yO')]()!==SyntaxKind[_0x5c9437(0x179,'I0L5')])return{};const _0x2d79f6=_0x26442b[-0xa*-0x279+-0x6*-0x5df+-0x3bf4][_0x5c9437(0x1a6,'jc%y')](SyntaxKind[_0x5c9437(0xe0,'nBo0')]),_0x44c178={},_0x235c69=[_0x5c9437(0x190,'IA7V'),_0x5c9437(0x11e,'3jNB'),_0x5c9437(0x177,'5Z9m'),_0x5c9437(0x184,'QWcr'),_0x5c9437(0x13f,'QWcr'),_0x5c9437(0x157,'[azE'),_0x5c9437(0xe1,'^IPf')];for(const _0x2a1bad of _0x235c69){const _0x221014=_0x2d79f6[_0x5c9437(0x17b,'6MKK')](_0x2a1bad);if(!_0x221014)continue;const _0x1500a6=_0x221014[_0x5c9437(0x12c,'6MKK')](SyntaxKind[_0x5c9437(0x17f,'o%YT')])[_0x5c9437(0x1c7,'kRWk')]()?.[_0x5c9437(0x129,'6r2#')]();_0x1500a6&&(_0x44c178[_0x2a1bad]=this[_0x5c9437(0x19b,'Il7w')](_0x1500a6));}return _0x44c178;}[a1_0x2ba18d(0x16c,'8Qe9')](_0x4c0b7d){const _0x174be7=a1_0x2ba18d,_0x1536d7=_0x4c0b7d[_0x174be7(0xdb,')730')](_0x174be7(0x127,')730'));if(!_0x1536d7)return[];const _0x5dfaaa=_0x1536d7[_0x174be7(0x146,'D]6C')](SyntaxKind[_0x174be7(0x167,'r1yO')])[_0x174be7(0x13e,')730')](SyntaxKind[_0x174be7(0xed,'oM5X')]);return _0x5dfaaa[_0x174be7(0x1c3,'fL*E')]()[_0x174be7(0x1b1,'8Qe9')](_0x455e92=>_0x455e92[_0x174be7(0x1c8,'6MKK')]()[_0x174be7(0x147,'fL*E')](/['"]/g,''));}[a1_0x2ba18d(0xda,')730')](_0x11b9c8){const _0x629fe=a1_0x2ba18d,_0x11fd91={},_0x376d6b=[_0x629fe(0x1be,'H*N9'),'as',_0x629fe(0x170,'$Q]p'),_0x629fe(0x180,'jc%y'),_0x629fe(0x165,'o%YT')];for(const _0x5af12a of _0x376d6b){const _0xed0fb1=_0x11b9c8[_0x629fe(0x125,'5Z9m')](_0x5af12a);if(!_0xed0fb1)continue;const _0x9bee74=_0xed0fb1[_0x629fe(0xf0,'q$uC')](SyntaxKind[_0x629fe(0x1b5,'jc%y')])[_0x629fe(0x1ac,')WB0')]()?.[_0x629fe(0x159,'$v9!')]();_0x9bee74&&(_0x11fd91[_0x5af12a]=_0x9bee74[_0x629fe(0x1d9,'SW8g')](/['"]/g,''));}return _0x11fd91;}async[a1_0x2ba18d(0x1b3,'PHCl')](){const _0x8a0bcf=a1_0x2ba18d,_0x65dcec=[];async function _0x1c6f5d(_0x496a16){const _0x4a21e6=a1_0x3a0d,_0x401bfa=await a1_0x3e0215[_0x4a21e6(0x1c5,'Il7w')](_0x496a16,{'withFileTypes':!![]});for(const _0x58047a of _0x401bfa){const _0x1fc58f=a1_0x279477[_0x4a21e6(0x122,'ex1H')](_0x496a16,_0x58047a[_0x4a21e6(0xf4,'xg0w')]);if(_0x58047a[_0x4a21e6(0x1cd,'2E$@')]())await _0x1c6f5d(_0x1fc58f);else _0x58047a[_0x4a21e6(0x136,'r1yO')][_0x4a21e6(0x16a,'n9U%')](_0x4a21e6(0x119,'vqOB'))&&_0x65dcec[_0x4a21e6(0x10e,'o%YT')](_0x1fc58f);}}return await _0x1c6f5d(this[_0x8a0bcf(0x149,')XdA')]),_0x65dcec;}[a1_0x2ba18d(0x140,'%[7B')](_0x49ec19){const _0x6af7f=a1_0x2ba18d;return _0x49ec19[_0x6af7f(0x19f,'hrtx')](/([A-Z])/g,_0x6af7f(0x1a9,'q$uC'))[_0x6af7f(0xd3,'kRWk')]()[_0x6af7f(0x1a3,'nBo0')](/^_/,'');}[a1_0x2ba18d(0x191,'q$uC')](_0x485f6e){const _0x5966f2=a1_0x2ba18d;if(_0x485f6e[_0x5966f2(0x1c2,'1@OT')]('y'))return _0x485f6e[_0x5966f2(0x11c,'xg0w')](-0x1212+0x1*-0x1f46+0x3158,-(-0x311+0x17*0x132+-0x186c))+_0x5966f2(0x1af,')730');if(_0x485f6e[_0x5966f2(0x14a,'xg0w')]('s')||_0x485f6e[_0x5966f2(0x1b6,'R2NS')]('x')||_0x485f6e[_0x5966f2(0x13d,'$v9!')]('ch')||_0x485f6e[_0x5966f2(0x1c0,'fL*E')]('sh'))return _0x485f6e+'es';return _0x485f6e+'s';}[a1_0x2ba18d(0x100,'hfdW')](_0x19e390){const _0x4d5d22=a1_0x2ba18d;if(_0x19e390===_0x4d5d22(0x160,'QWcr'))return!![];if(_0x19e390===_0x4d5d22(0x182,'xg0w'))return![];if(_0x19e390===_0x4d5d22(0x17a,'Sw8H'))return null;if(_0x19e390===_0x4d5d22(0x163,'oM5X'))return undefined;if(/^['"]/[_0x4d5d22(0x138,'T]7Z')](_0x19e390))return _0x19e390[_0x4d5d22(0x13b,'oM5X')](-0x2269+0x5*-0x3c+0x2396,-(-0x3*0xa99+-0x2604+0x45d0));if(/^\d+$/[_0x4d5d22(0x10b,')XdA')](_0x19e390))return parseInt(_0x19e390,-0x281+-0x1*0x24c5+0x2750);return _0x19e390;}}
|
|
1
|
+
const a1_0x17fc53=a1_0x88f3;(function(_0x1b1db8,_0x5b2cfb){const _0xbc2ef9=a1_0x88f3,_0xbe208d=_0x1b1db8();while(!![]){try{const _0x431116=parseInt(_0xbc2ef9(0x1db,'lam5'))/(-0xf5b+-0x6*-0x37+-0x709*-0x2)+-parseInt(_0xbc2ef9(0x225,'bu84'))/(-0x5b+0x2325+-0x1164*0x2)+-parseInt(_0xbc2ef9(0x1d5,'c2!A'))/(0xd06+0x1*-0x361+-0x9a2)*(parseInt(_0xbc2ef9(0x1ab,'^otN'))/(0x1c4f*0x1+0x17f*0xb+-0x166*0x20))+parseInt(_0xbc2ef9(0x1f6,'!]O&'))/(0x227d+-0x310+-0x14*0x192)+-parseInt(_0xbc2ef9(0x145,'Bss]'))/(-0x874+-0x1db9+-0xb*-0x379)*(parseInt(_0xbc2ef9(0x231,'l]Gn'))/(-0x3*0x45f+-0x67d*0x2+0x1a1e))+-parseInt(_0xbc2ef9(0x1de,'0byG'))/(0x1*0x1d6b+-0x189*0x17+0x5ec)+parseInt(_0xbc2ef9(0x168,'roj9'))/(-0x1*0x2149+0xf32*0x1+0x1220);if(_0x431116===_0x5b2cfb)break;else _0xbe208d['push'](_0xbe208d['shift']());}catch(_0x4c4329){_0xbe208d['push'](_0xbe208d['shift']());}}}(a1_0x3319,0x2b67d+-0x22*-0x2e99+0x19cff*-0x2));function a1_0x88f3(_0x169728,_0x28b399){_0x169728=_0x169728-(-0x11d9*0x1+0x1*-0x76d+-0x127*-0x17);const _0x59f704=a1_0x3319();let _0x4e1752=_0x59f704[_0x169728];if(a1_0x88f3['bUpCNt']===undefined){var _0x3f57ab=function(_0x2195d5){const _0x1fc121='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x926328='',_0x41ae0d='';for(let _0x501906=0x1*0x21e9+-0x172d*-0x1+-0x3916,_0x207425,_0x2ea2f7,_0x424f8e=-0x1bfe+-0x3f+0x1c3d*0x1;_0x2ea2f7=_0x2195d5['charAt'](_0x424f8e++);~_0x2ea2f7&&(_0x207425=_0x501906%(-0x1d5f+0x6*0x22d+0x1055)?_0x207425*(-0x602+0x1*-0xa01+-0x1043*-0x1)+_0x2ea2f7:_0x2ea2f7,_0x501906++%(0x4ad+0x21e+0x5*-0x15b))?_0x926328+=String['fromCharCode'](-0x5*-0x631+-0xf*-0x81+-0x11*0x235&_0x207425>>(-(0x1*-0x1bb1+-0x10c0+-0x2c73*-0x1)*_0x501906&-0x2*0x463+0x98b+-0xbf)):0x1d8d*0x1+0x29*0x2b+-0x2470){_0x2ea2f7=_0x1fc121['indexOf'](_0x2ea2f7);}for(let _0x18898d=-0x1*0xd70+0xc*0x2e3+0x5c*-0x3b,_0x81bafd=_0x926328['length'];_0x18898d<_0x81bafd;_0x18898d++){_0x41ae0d+='%'+('00'+_0x926328['charCodeAt'](_0x18898d)['toString'](-0x5f3+0x9a7*-0x1+0xfaa))['slice'](-(-0x2244+-0x2b0*0x3+0x2a56));}return decodeURIComponent(_0x41ae0d);};const _0x2867ec=function(_0x13e998,_0x207c1c){let _0x126a41=[],_0x10b49d=-0x15d*-0x13+0xf7f+0x5ea*-0x7,_0x1d4d21,_0x2b4f39='';_0x13e998=_0x3f57ab(_0x13e998);let _0x254b4f;for(_0x254b4f=0x1238+-0x3*0x239+-0xb8d;_0x254b4f<-0x1*0x177+0x1bee+0x87d*-0x3;_0x254b4f++){_0x126a41[_0x254b4f]=_0x254b4f;}for(_0x254b4f=0x69+0x134e+-0x13b7;_0x254b4f<0x10d*0x11+-0xe3*-0x7+-0x1712;_0x254b4f++){_0x10b49d=(_0x10b49d+_0x126a41[_0x254b4f]+_0x207c1c['charCodeAt'](_0x254b4f%_0x207c1c['length']))%(-0x22d8+0x1cfd+-0x1*-0x6db),_0x1d4d21=_0x126a41[_0x254b4f],_0x126a41[_0x254b4f]=_0x126a41[_0x10b49d],_0x126a41[_0x10b49d]=_0x1d4d21;}_0x254b4f=-0x1e3f+-0x59d+0x23dc,_0x10b49d=-0x97a+-0x177*-0x3+0x515;for(let _0x3c72dd=-0x7c+0x59f*0x6+-0x172*0x17;_0x3c72dd<_0x13e998['length'];_0x3c72dd++){_0x254b4f=(_0x254b4f+(-0x2d*0x85+-0x265a*0x1+0x3dbc))%(-0x10*-0x1b1+-0x1412+0x2*-0x2ff),_0x10b49d=(_0x10b49d+_0x126a41[_0x254b4f])%(0x1*0xd7d+0x22aa+-0x2f27),_0x1d4d21=_0x126a41[_0x254b4f],_0x126a41[_0x254b4f]=_0x126a41[_0x10b49d],_0x126a41[_0x10b49d]=_0x1d4d21,_0x2b4f39+=String['fromCharCode'](_0x13e998['charCodeAt'](_0x3c72dd)^_0x126a41[(_0x126a41[_0x254b4f]+_0x126a41[_0x10b49d])%(0x2dd*0xb+-0x1a85+-0x3fa)]);}return _0x2b4f39;};a1_0x88f3['PZSixk']=_0x2867ec,a1_0x88f3['ChavrN']={},a1_0x88f3['bUpCNt']=!![];}const _0xec2df5=_0x59f704[-0x2692+-0x1*-0xb2f+0x30b*0x9],_0x5c1f4d=_0x169728+_0xec2df5,_0xb992f3=a1_0x88f3['ChavrN'][_0x5c1f4d];return!_0xb992f3?(a1_0x88f3['OQRzag']===undefined&&(a1_0x88f3['OQRzag']=!![]),_0x4e1752=a1_0x88f3['PZSixk'](_0x4e1752,_0x28b399),a1_0x88f3['ChavrN'][_0x5c1f4d]=_0x4e1752):_0x4e1752=_0xb992f3,_0x4e1752;}import*as a1_0x4026f6 from'fs/promises';import*as a1_0x59ff51 from'path';import{Project,SyntaxKind}from'ts-morph';function a1_0x3319(){const _0x314e7d=['WQ1qW4jEWRZcLgPAW7FdHa','jmkeWRpcLSouWR7dI8kpWQlcU8kDW4a0','W67cHvVdLmkRW5S','CG0flK9nWOu6BSkoqG','WPNcPmoBWOXs','ASo3dfiYpsK','rCoEWP/dI0RcTCoNW7SWWOTKW4XYW7xdVSkGufq','qGjKBSkvESksFmoyuaSuW7D7WRS','WOVdGCkJ','WQ7cUSojhCkewCoBvCoHW5Lr','kXeeWPCnWPFdKdJcQx0RWRNcRmo+WO/cMHtcLCoJW7NdLSoVW6K','hbZdP20nWP3cHgWR','jmotW70/ACkI','W4FdL3O5CmkPpZfodmkV','WPNdSLtdUmkAmmk0cmklW4zq','W7KwWRKfWOBcO1j7W6ddG2DaW44','vSkTWOtdPu3dGwVcIu3dTCoVkLa','omoyA8kNbXe','WOfspLddNCkDrmoWWOVcUeS','WPXwWO8wW7tdQmkttvJdSmo4E0RcNCkb','su5VBCkHlMHJ','CSojWOtdR0RcV8oN','W5BcP8oPuSoaWQKYiaOgWRWrh8oeW5NcTxJcIMu','W78aWOyTWPRcOgHKW5hdHwfC','n8ouW7OQuCkOh8ovk8o5WP5lW790','x3ldUuLx','AKzgW5qkWO/dHb3cONG','W5ldJNW4DmkhjbzedmkPWP0ZW4qJW47dMs88va','mL7cPmoPW7hdQWtcVW','tdzwsW','lxNdKtBcNwNcRGfZlmoGW78aWO8','WO9CWQG0W7ZdT8ktFfJdR8ol','W6CjW5pcTaCN','zJzpt8kyWQddHrpcHGBdUrRdQMmG','yCo8v8keW7/dTqZdRNPVj8oZW5u','W7auW4pcSWuHW5FcQ3xdPfxcGSkoDa','uITdwSkEW5TUW5S7lq','WOJdSCkdrSorpYrWk8o+gSkaWPFcLCkPW6pdVSkj','W43cNNhcRSkZW7rnaSoSW5NcUmkcW7vPWR7cI8oziq','W5RdMwWVECkxadrFca','AcZcKh3dJXZcOdndaCoRW7q','W5BdHumJE8kahYD/cmkUWP8Q','W5tcUSoPACopWQmYcbGzWROie8ox','cSkvWPlcMSozWQ7dImkuWOlcTSkDW44VySoFW7feWRhcU8omW4tdJ8or','W6PAl8o3jSkwWOu','W4X9zZldU8kNds/cMCouW6VdPN5q','i0lcTCo/','mCofCCkYeHRcUmkRfmklaSkwW77dTHdcIJ7cTH7cKa','oN3dLWtcIKpcTaHZlSosW6u','iSksWOZcU8oFWRNdQ8kpWPFcP8kaW50','WR/dPSkyzSogiIbSgmo5amkmWOm','WQVdR8kfvCor','chBdIJtcJue','W7VdGCkufMNdTCob','nCkcWOVcLW','CSojWOtdUu7cTmo2W4eDWPLKW5y','i1hcOSo2W4pdJbhcUSoe','WOFdLCkNn8oUwbtcSmkYWPNdPsBdRG','W7NdLSknf2NdPmoDWQ0oWOK','jexdVrv/W7baW7yTWPNdPYddJq','W7ijW4pcJWuVW4y','WOpdKSkHn8ov','WR/dPSkyFCoDiZq','j1hcSSoPW4pdLbhcU8oubq','z8oQAmkPW7tdSIZdRK9ZoSoU','W4BdHSkoh2VdOSoOWO8FWPu7uezhWRXrdfNcTmkmW4RdTgO','wY9AFa','v8ojWPZdLehcOmoGW5yE','mJv1xN7dTZSUW45Y','W4X9zY/dSmk2dq','mCofCCkYeHRcUmkPd8ktbCksW7ldJbtcMYq','WPNdSLtdOCkgnSkWbmkyW55aW4JdJca','ifPfsaKvW4C3EmkOttddHG','yqzKx8kZBmksFmkeDYy','WOBcVSoYD2tdSSkiug/dVmoqyG','W63cMw3cTG','CbafdfXbWOewCSkExIFdKdK','W4VcPrtcNSoCAmo2bCkDW6bFW53dMG','dCknW6VdG8oiW6LtlHFdPW','W5BcP8oPuSoaWQKYnrGxWR8xomoeW4dcUq','DCkrASk6ChpdTa','aalcUsa','Caj8zSkLySkwFa','Aq1fF8kLySkwFa','FxNdHuObr2tcKHhcO8oY','WQVdK0JcRfRdJmoo','gflcQSo/W4xdTJZcVSovbCothcRdTqVcJrpdIKjysSoDDa','W6JdPmk2q8ogc8krjSoMW6ndW6HDW6i','W4flkhjrtN4','W5zckvrvwMnoBa','aqNcOYxcJmk3','iLpdGJH0W7DGW7yyWOxdUJ0','W4tdGMK4yCkxbZXFca','W4ZcKLBdJmkPW4WxamkIbG','ddPusSkPWRxcMWldMW','iLpdGJv/W717W60yWP3dVdxdN8kw','CZBcJgVdLGVcTrz1l8oiW7afWO3cS8oNjmoBW50','rSo+cvbqW6hdVv3dNfmzmW','E2DEW6VdO3jsCmkUW5ncW64','rZLFxCkBWRddGr4','nCootSkPhr3cG8kAl8kpbCkuW6C','W6NcU8oFbCkgEdPNb8oIamkR','FhxdN34+r3dcKG/cKCoIWQjRiq','W7ZcVCo3rCocWR4kca0qWQetgSoGW5xcRgxcGwxcIh3cObO','sM7dNMOwwMdcJIlcPmo4WQDPpaGPk8oH','W6XmemoklCkkWR7cMCoidCkojmoO','W6uNW6SPW4rNwKelrmoXWOn6','uSkMWRVdVKldHLdcUMRdRSoYjK4kWRyYimk6WP0','m8oyCCkjhrdcUmkbgSklhSkbW7xdIYNcMbZcSb7cH8k5WPapW6lcJYGx','W77cG3pcS8kZW6Hn','xeX+Bmkxk3vXta','mfxcTmotW4JdQWtcVSoadmoibYpdGG','W6rAka','a1FdNXb0W7aVW7awW5hdPs7dImkxt8o9','pXJdP1G8WPZcGa','W4RdKHlcOmkgFqBcVSkjWRPyhMS/W5OtDvpdGCk9W6tcHs8','W73cK3tdImkMW5OHoCktf8o1WOVdNG','WOtcSmoCWOC','svH/BmkxjgHpseZdJMfxm8ou','jqlcISoicw/dIa','W7RcIwRcJSkKW6LjhSoFW57cSG','WPpcOmoBWR9ifSoFWQ5bW5ldKq','m8oyCCkbar7cUCkfhSkja8ki','WOtcPmoDWPXFomoCWRHCW4xdGCoxWRf/s1XLACotW4ddIxue','zMyWiL/dTZ0SW51oWRPrW5Ss','WPddOKZdHa','mr8FWOO','cZBdIHRdQ38wW7VcRSoyW4LGW5JdO3Gjl2vHESkqW5zIlCoPjGW','DxeXdG','bLNdMGL8W7O','n1pdHHbWW7DQ','W7RcIwRcISkZW75n','mfxcTmotW4JdQWtcVSoadmoibYpdGJRcMYRdHL9pBmoatMNcNH1y','FSk/ta','WP/dPgVdGCkgo8klh8kTW5PBW53dNG','hCoOodK','WPDwWPu9W6NdTa','W7LwnSogmmkAWPdcHSoSfG','BgWGdL3dRrKKW4Hk','CCoPeMrqW7ddPLBdVfqfkmklemkxWPlcR8oP','zhSWgvddVt0bW51wWRj/W4CqW64','W5ddK3WoCmkhpYDkfmkZWOi','vCo0lNPuW6NdT2ZdNfqt','oN3dLWhcNuFcRHD3nmojW6q','DSofbwVcRmkQgHFcP8k7grZdSW','W4PlmKfaxG','AN3dG2KwzxVcKWBcU8onWQDInW','WQ7dPu/dMmknlCkWfmk4W4fAW5VdJJZcP3Slma','kYJcGsHdeslcJG7cVCoFWR1g','WPxcTSoKWOzuhCoGWRLNW47dMSozWRi','yXTKFCkGymkwwmkcDY0VW5XaWOJdOZm','yqzKs8kKymknA8kxDZa0','txtdJ0TscSkBASo6E8k3','W5tdR8k1cZBcQCkgDfVdICoYCG','ymkrESkbCNS','nCorACkVbdFcUCkefW','pL7cPmo/W57dPWm','pbJdTw0SWOJcGf9KWRJdSXu','xhxdUfzKcmkkqq','CG0fmfXpWPa','WPfKWQXZW6vBygazqG','kbZdOw03WOVcNw0','mmoiW6aHvCkPgmociSosWPjjW64','vHf/F8kKCCkwymk3CcWVW5LBWPhdOY7dPG','W41XFr8','W6SWW7uJW659DvOAtmoMWOXIWONdHLW4W4RdJZxdLwxcRG','WPjygx/dJSkrvmoEWO/cPvRdIq','umk7WRVdNfhdILtcNMVdQCoK','ExPEW5JdShztvmkLW5LtW6xdRJJdQt/dKSkx','n8ksWOJcK8oBWRNdOq','WQRdTKldHmkn','imoeDCkL','z8oQAmk5W7tdQtC','W4DDf09AuKvgxCoYW7VdTXC','W6uaW4lcSWuUW4RcMh4','W5RdKmkwe2BdSCoOWO8FWPu7uey','Cmo9C8khW7tdSJC','W4flkgnyu2Drz8oUW7O','W59WyrtdOmkPeq','Dwy3hW','ymoPd3vmW47dU1VdMfuxlCkPbSkkWOxcPmoUW7a/z2u','WQTbWPqQW7JdRSkcrNJdR8oDC0hcHSkjrmkYWOG','zqX9ySkKBCkw','wwBcJMhdKuuvW4hcJmoB','C8odWOldNKBcOmo9W4KuWOe','W5NdLSklcM3dPmoqWP8QWOm6we1SWQLeeeG','W5tdR8k1atlcP8km','WO9CWRC1W6RdUCkeFfJdR8ol','mNBdPYdcLehcTqa','u8o+hhbrW6VdOa','qqKteLG','W45GzWNdTmkTdqNcImomW6VdS3vr','BmoHm285irlcSCoXWRhdQGdcLG','dsddTtRdQ3iTW6dcM8oCW5j1W4O','zmosbNtcP8k/htRcICkfcXVdRCo4hdxdQIu','WPXwWO8rW7tdSSks','WOTsWOKPW7JdISkxu0ZdUq','pHZdV388','z8oQAmk9W6pdVJpdUvXZla','eWlcVGtcI8k9W6NcPmoUEcy','wSk/WR8','uJToxmkTWRxdNaZdJq','xN7dQhvbdSkotmoPFmkR','ymkrBSkyCh3dTa','C2y0b1ddVsW','W6ldLqZcLCkxzJRcSSkpWQTt','W65pl2Tvwhm','W5hdKrRcQCka','WRBcHKNdSmkQydJcVmkpWO8','W5ZcNMZcV8kVW4Pqd8oiW5JcQSkhW5D/WQpcNmosjGq5wIe','AM7dNNaws2a','W7mfW5lcRqa','emkTtsrxW5VdTxNdMue','AMNdGNi','i0NcSmo/','W7zCm1zrrh5nsmoPW7RdSqFcOKlcS8oAfW','W5BdSSk1ptlcQCkDuLVdN8oXzCkaW5ycDW','zMyWjvddSYW','lJmzWPVcPciFlCkTW7rbW6RdUbm','BSoUCCki','CSojWOtdQ13cQmoJW6CdWOX+W4bM','W63cNNFcS8k3W7rammoiW5m','nmofW6a8FCkKd8o/n8olWP5iW7r0','WPlcTmo2pCkDwq','WOVdUuNdMCkDoG','W6tdLbZcLSkkFdJcTmkyWPLde2i7W5yZzKldMG','xx7dUKrgdCkkF8o6zmkNW7m','wsTzFSkgW5i','kCksWPBcMmooWRi','WOZdJ8k6nG','W7RcIwRcL8k4W69neSomW4BcOSkrW7D1','CG0fo1fhWPG6CSkosa','FxNdHvmDqwdcNGlcU8oIWRrRia','D8ozWRlcK8odW49gfbtdQu8bhCoMW7ddVH3dSmkOW5lcKI83','BZHFs8kG','WPbtcu3dQ8kFvCoB','lNtdIIBcNq','WOldQ8kTeSkrW7nWgbqFWOCbpG','wCoiWPpcN8ooW59fdZtdPe8pbG','WPLya1NdImkE','W6xdGCkkhxZdVG','cJRdMZ/dOwu','lWidWOe','WR/dPSkyySornsq','W7qaW5VcRHmmW5BcJNC','W6OaWOiaWONcPhG','DmoyWOtdIuBcPCoMW7yuWOS','x8oEWQZcOSofW4n+','AmoQdhq2jINcISolWR3dVrFcP8oBiCoHlcS','swNdS09waSkk','dSo/oqHYW77cNq','vx7dM38qxfJcNHFcSSo5WQ9IfX08n8oWodpcUhRcIa','W6bqp8ogl8kDWQhcISoOdq','qSkWWQVdQuxdJeRcNN0','W4D9FrZdOCkM','W6JdL8kVe2BdSSoRWPq/WPG7xL0','C2/dTxmbtxFcGWZcPCoY','W6JcJGVdSWNcMSobAM8SW43dRG','mmooW6CHF8kUgSoelSoqWPLu'];a1_0x3319=function(){return _0x314e7d;};return a1_0x3319();}export class ModelParser{[a1_0x17fc53(0x160,'bu84')];[a1_0x17fc53(0x18a,'0tU2')];constructor(_0x4a8c35){const _0x215aec=a1_0x17fc53;this[_0x215aec(0x21b,'c2!A')]=_0x4a8c35,this[_0x215aec(0x187,'Ugu5')]=new Project({'tsConfigFilePath':a1_0x59ff51[_0x215aec(0x173,'J]rb')](_0x4a8c35,_0x215aec(0x1f1,'RD52')),'skipAddingFilesFromTsConfig':!![]});}async[a1_0x17fc53(0x19e,'(qU(')](){const _0x219a54=a1_0x17fc53,_0x37892c=await this[_0x219a54(0x1f7,'bu84')](),_0x20365f=[];for(const _0x159496 of _0x37892c){try{const _0x562120=await this[_0x219a54(0x223,'bu84')](_0x159496);_0x562120&&_0x20365f[_0x219a54(0x206,'[iEj')](_0x562120);}catch(_0xf5212a){console[_0x219a54(0x1ce,'J]rb')](_0x219a54(0x202,'gRtN')+_0x159496+':',_0xf5212a);}}return{'models':_0x20365f,'totalTables':_0x20365f[_0x219a54(0x219,'a#nI')],'totalColumns':_0x20365f[_0x219a54(0x22b,'xJ8k')]((_0x569c77,_0x494737)=>_0x569c77+_0x494737[_0x219a54(0x184,']fZC')][_0x219a54(0x17d,'G$cj')],-0xbf8*-0x2+0xade+-0x22ce),'totalIndexes':_0x20365f[_0x219a54(0x1b1,'CxiX')]((_0x2cfc92,_0x1a6f40)=>_0x2cfc92+_0x1a6f40[_0x219a54(0x22d,'RnDn')][_0x219a54(0x18c,'Rl&v')],-0x3f+0x1cc4*-0x1+0x1d03),'totalAssociations':_0x20365f[_0x219a54(0x193,'Il)i')]((_0x9cf59,_0x3d569f)=>_0x9cf59+_0x3d569f[_0x219a54(0x190,'6&8f')][_0x219a54(0x1a2,'VA)^')],0x6*0x22d+-0x1b1f+0xe11)};}async[a1_0x17fc53(0x1af,'RD52')](_0xd7c712){const _0x299fd8=a1_0x17fc53,_0x4663ec=this[_0x299fd8(0x13e,'jnbw')][_0x299fd8(0x16f,'0fTq')](_0xd7c712),_0x2d10a1=_0x4663ec[_0x299fd8(0x1b5,'TLkI')](),_0x4c5dfd=_0x2d10a1[_0x299fd8(0x235,'Rl&v')](_0x5c1f4d=>{const _0x48ef50=_0x299fd8,_0xb992f3=_0x5c1f4d[_0x48ef50(0x1c8,']fZC')]();return _0xb992f3?.[_0x48ef50(0x148,'lam5')]()===_0x48ef50(0x178,'3bvX');});if(!_0x4c5dfd)return null;const _0x56ff2e=_0x4c5dfd[_0x299fd8(0x230,'G8gP')](),_0x169728=this[_0x299fd8(0x166,'lam5')](_0x4c5dfd),_0x28b399=this[_0x299fd8(0x227,'lq*P')](_0x4c5dfd),_0x59f704=this[_0x299fd8(0x1b4,'CxiX')](_0x4c5dfd),_0x4e1752=this[_0x299fd8(0x1a7,'E96T')](_0x4c5dfd),{timestamps:_0x3f57ab,paranoid:_0xec2df5}=this[_0x299fd8(0x16c,'6&8f')](_0x4c5dfd);return{'modelName':_0x56ff2e,'tableName':_0x169728,'filePath':_0xd7c712,'attributes':_0x28b399,'indexes':_0x59f704,'associations':_0x4e1752,'timestamps':_0x3f57ab,'paranoid':_0xec2df5};}[a1_0x17fc53(0x1e0,'E96T')](_0x2867ec){const _0x42118e=a1_0x17fc53,_0x2195d5=_0x2867ec[_0x42118e(0x22a,'lam5')](_0x42118e(0x23b,'0byG'));if(!_0x2195d5){const _0x501906=_0x2867ec[_0x42118e(0x1e1,'xJ8k')]();return this[_0x42118e(0x1a3,'G$cj')](this[_0x42118e(0x13c,'CxiX')](_0x501906));}const _0x1fc121=_0x2195d5[_0x42118e(0x1c1,'RD52')]();if(_0x1fc121[_0x42118e(0x171,'TLkI')]===0x1*-0xa01+-0x7d8*0x1+0x1*0x11d9)return this[_0x42118e(0x21f,'C2G1')](this[_0x42118e(0x1ea,'%rwo')](_0x2867ec[_0x42118e(0x167,'c2!A')]()));const _0x926328=_0x1fc121[0x3*-0x94d+0x1*-0x115a+-0x5*-0x90d],_0x41ae0d=_0x926328[_0x42118e(0x226,'[iEj')](SyntaxKind[_0x42118e(0x236,'l]Gn')])[_0x42118e(0x158,'Ugu5')](_0x42118e(0x1c9,'RnDn'));if(_0x41ae0d){const _0x207425=_0x41ae0d[_0x42118e(0x14e,'HHA2')](SyntaxKind[_0x42118e(0x150,'OhEi')])[_0x42118e(0x1fd,'VA)^')](SyntaxKind[_0x42118e(0x13d,']%wo')])[_0x42118e(0x1a4,'a#nI')]();return _0x207425;}return this[_0x42118e(0x229,'Ugu5')](this[_0x42118e(0x157,'3bvX')](_0x2867ec[_0x42118e(0x1cd,'CxiX')]()));}[a1_0x17fc53(0x1d7,'VA)^')](_0x2ea2f7){const _0x3df076=a1_0x17fc53,_0x424f8e=[],_0x18898d=_0x2ea2f7[_0x3df076(0x16a,']fZC')]();for(const _0x81bafd of _0x18898d){const _0x13e998=_0x81bafd[_0x3df076(0x220,'RD52')](_0x3df076(0x212,'gRtN'));if(!_0x13e998)continue;const _0x207c1c=_0x81bafd[_0x3df076(0x167,'c2!A')](),_0x126a41=this[_0x3df076(0x207,'Cp6D')](_0x13e998),_0x10b49d=this[_0x3df076(0x1c0,'VA)^')](_0x13e998);_0x424f8e[_0x3df076(0x1dc,'$Ta%')]({'name':_0x207c1c,'type':_0x126a41,'allowNull':_0x10b49d[_0x3df076(0x182,'CxiX')]??!![],'defaultValue':_0x10b49d[_0x3df076(0x22e,'FGM#')],'primaryKey':_0x10b49d[_0x3df076(0x1cb,']%wo')]||_0x81bafd[_0x3df076(0x21e,'(qU(')](_0x3df076(0x1ee,'Il)i'))!==undefined,'autoIncrement':_0x10b49d[_0x3df076(0x233,'6&8f')]||_0x81bafd[_0x3df076(0x1c2,'QFe*')](_0x3df076(0x1fb,'l]Gn'))!==undefined,'unique':_0x10b49d[_0x3df076(0x16e,'0byG')]||_0x81bafd[_0x3df076(0x228,'lq*P')](_0x3df076(0x1c5,'RD52'))!==undefined,'field':_0x10b49d[_0x3df076(0x1aa,'Ugu5')],'validate':_0x10b49d[_0x3df076(0x1e3,'lq*P')],'comment':_0x10b49d[_0x3df076(0x144,'lq*P')]});}return _0x424f8e;}[a1_0x17fc53(0x1dd,'G8gP')](_0x1d4d21){const _0x1593a3=a1_0x17fc53,_0x2b4f39=_0x1d4d21[_0x1593a3(0x1f2,'C2G1')](_0x1593a3(0x14c,'G8gP'));if(!_0x2b4f39)return[];const _0x254b4f=_0x2b4f39[_0x1593a3(0x237,'G$cj')]();if(_0x254b4f[_0x1593a3(0x18c,'Rl&v')]===-0x2*-0x17f+-0xf63+0xc65)return[];const _0x3c72dd=_0x254b4f[0x13ac+-0x29b*-0x1+-0x1647][_0x1593a3(0x217,'0byG')](SyntaxKind[_0x1593a3(0x189,'bu84')]),_0x1bb352=_0x3c72dd[_0x1593a3(0x19f,'0byG')](_0x1593a3(0x208,'SP0B'));if(!_0x1bb352)return[];const _0x595dd2=_0x1bb352[_0x1593a3(0x205,'Il)i')](SyntaxKind[_0x1593a3(0x224,'0byG')])[_0x1593a3(0x215,'RnDn')](SyntaxKind[_0x1593a3(0x142,'C2G1')]);return _0x595dd2[_0x1593a3(0x175,'G8gP')]()[_0x1593a3(0x156,'M!xE')](_0x47e3af=>{const _0x4861d0=_0x1593a3,_0x327645=_0x47e3af[_0x4861d0(0x1b3,'jnbw')](SyntaxKind[_0x4861d0(0x1bc,'QFe*')]),_0x247994=_0x327645[_0x4861d0(0x20a,'[iEj')](_0x4861d0(0x1d3,'TLkI'))?.[_0x4861d0(0x18d,']%wo')](SyntaxKind[_0x4861d0(0x234,'lq*P')])[_0x4861d0(0x1bb,'E96T')]()?.[_0x4861d0(0x1bd,'0tU2')](),_0x3c8bb8=this[_0x4861d0(0x239,'roj9')](_0x327645),_0x5c6c98=_0x327645[_0x4861d0(0x209,'$Ta%')](_0x4861d0(0x1eb,'vcKE'))?.[_0x4861d0(0x1a1,'M!xE')](SyntaxKind[_0x4861d0(0x197,']fZC')])[_0x4861d0(0x176,'bu84')]()?.[_0x4861d0(0x185,'zWc4')]()===_0x4861d0(0x1bf,'RnDn'),_0x53497c=_0x327645[_0x4861d0(0x1da,'lq*P')](_0x4861d0(0x23c,'VA)^'))?.[_0x4861d0(0x1fa,'0tU2')](SyntaxKind[_0x4861d0(0x1f9,'bu84')])[_0x4861d0(0x20d,'c2!A')]()?.[_0x4861d0(0x196,'HHA2')]();return{'name':_0x247994?.[_0x4861d0(0x1c6,']%wo')](/['"]/g,''),'fields':_0x3c8bb8,'unique':_0x5c6c98,'type':_0x53497c?.[_0x4861d0(0x23a,'QFe*')](/['"]/g,'')};});}[a1_0x17fc53(0x1fc,'M!xE')](_0x1ba8bf){const _0x4cc6b9=a1_0x17fc53,_0x22a3ba=[],_0x31bad3=_0x1ba8bf[_0x4cc6b9(0x1c3,'!]O&')]();for(const _0x3e09d2 of _0x31bad3){const _0x3f691e=[_0x4cc6b9(0x16d,'pq[w'),_0x4cc6b9(0x15c,'%rwo'),_0x4cc6b9(0x1d4,']fZC'),_0x4cc6b9(0x221,'OhEi')];for(const _0x188475 of _0x3f691e){const _0x561a55=_0x3e09d2[_0x4cc6b9(0x1d1,'jnbw')](_0x188475);if(!_0x561a55)continue;const _0x1cba76=_0x561a55[_0x4cc6b9(0x1c1,'RD52')](),_0x1c78ba=_0x1cba76[0x98b+0x25e5+-0x2f70]?.[_0x4cc6b9(0x1e9,'%rwo')](),_0x1df1b4=_0x1c78ba?.[_0x4cc6b9(0x195,'[iEj')](/\(\)\s*=>\s*(\w+)/)?.[0x1d8d*0x1+0x29*0x2b+-0x246f];if(!_0x1df1b4)continue;const _0x2bfc72=_0x1cba76[-0x1*0xd70+0xc*0x2e3+0x51*-0x43]?this[_0x4cc6b9(0x20c,'[iEj')](_0x1cba76[-0x5f3+0x9a7*-0x1+0xf9b][_0x4cc6b9(0x1b3,'jnbw')](SyntaxKind[_0x4cc6b9(0x204,'0fTq')])):{};_0x22a3ba[_0x4cc6b9(0x163,'bu84')]({'type':_0x188475[_0x4cc6b9(0x15a,'c2!A')](/([A-Z])/g,_0x55185d=>_0x55185d[_0x4cc6b9(0x19a,'pq[w')]())[_0x4cc6b9(0x159,'xJ8k')](/^./,_0x554741=>_0x554741),'target':_0x1df1b4,..._0x2bfc72});}}return _0x22a3ba;}[a1_0x17fc53(0x14d,'Rl&v')](_0x39412c){const _0xaed88a=a1_0x17fc53,_0x4b4154=_0x39412c[_0xaed88a(0x1ec,'gRtN')](_0xaed88a(0x15d,'0fTq'));if(!_0x4b4154)return{};const _0x5af7cd=_0x4b4154[_0xaed88a(0x1f3,'roj9')]();if(_0x5af7cd[_0xaed88a(0x172,'QFe*')]===-0x2244+-0x2b0*0x3+0x2a54)return{};const _0x3f1b04=_0x5af7cd[-0x15d*-0x13+0xf7f+0x5ea*-0x7][_0xaed88a(0x1a0,'&[Zq')](SyntaxKind[_0xaed88a(0x1d2,']%wo')]);return{'timestamps':_0x3f1b04[_0xaed88a(0x194,'G8gP')](_0xaed88a(0x21a,'0tU2'))?.[_0xaed88a(0x1f5,'VA)^')](SyntaxKind[_0xaed88a(0x1b6,'!]O&')])[_0xaed88a(0x1be,'Rl&v')]()?.[_0xaed88a(0x188,'5o(t')]()===_0xaed88a(0x180,'^otN'),'paranoid':_0x3f1b04[_0xaed88a(0x238,'M!xE')](_0xaed88a(0x232,'FGM#'))?.[_0xaed88a(0x13b,'%rwo')](SyntaxKind[_0xaed88a(0x147,']%wo')])[_0xaed88a(0x174,'$Ta%')]()?.[_0xaed88a(0x23d,'jnbw')]()===_0xaed88a(0x211,'c2!A')};}[a1_0x17fc53(0x21d,'c2!A')](_0x4ea667){const _0x189b63=a1_0x17fc53,_0x547e5f=_0x4ea667[_0x189b63(0x1a8,'&[Zq')]();if(_0x547e5f[_0x189b63(0x17e,']%wo')]===0x1238+-0x3*0x239+-0xb8d)return _0x189b63(0x198,'lq*P');const _0xffdddd=_0x547e5f[-0x1*0x177+0x1bee+0x1a77*-0x1],_0x4c86ae=_0xffdddd[_0x189b63(0x203,'FGM#')]();if(_0x4c86ae[_0x189b63(0x1ed,'(qU(')](_0x189b63(0x19c,'FGM#')))return _0x4c86ae;if(_0xffdddd[_0x189b63(0x151,'a#nI')]()===SyntaxKind[_0x189b63(0x177,'zWc4')]){const _0x48321a=_0xffdddd[_0x189b63(0x14f,'Bss]')](SyntaxKind[_0x189b63(0x236,'l]Gn')])[_0x189b63(0x155,'vcKE')](_0x189b63(0x164,'RnDn'));if(_0x48321a)return _0x48321a[_0x189b63(0x1cc,'gRtN')](SyntaxKind[_0x189b63(0x21c,'C2G1')])[_0x189b63(0x200,'RnDn')]()[_0x189b63(0x1a6,']fZC')]();}return _0x189b63(0x1b2,'3bvX');}[a1_0x17fc53(0x1ac,'(qU(')](_0x5b1a20){const _0x1ebd9f=a1_0x17fc53,_0x4fe59e=_0x5b1a20[_0x1ebd9f(0x20b,'VA)^')]();if(_0x4fe59e[_0x1ebd9f(0x222,'%rwo')]===0x69+0x134e+-0x13b7)return{};if(_0x4fe59e[0x10d*0x11+-0xe3*-0x7+-0x1812][_0x1ebd9f(0x1cf,'!]O&')]()!==SyntaxKind[_0x1ebd9f(0x1f8,'E96T')])return{};const _0x1edb88=_0x4fe59e[-0x22d8+0x1cfd+-0x1*-0x5db][_0x1ebd9f(0x192,'QFe*')](SyntaxKind[_0x1ebd9f(0x1e7,'RnDn')]),_0x4743a9={},_0x4dced9=[_0x1ebd9f(0x22c,'VA)^'),_0x1ebd9f(0x170,'Ugu5'),_0x1ebd9f(0x16b,'$Ta%'),_0x1ebd9f(0x1ca,'J]rb'),_0x1ebd9f(0x19d,'6&8f'),_0x1ebd9f(0x161,'CxiX'),_0x1ebd9f(0x1fe,'$Ta%')];for(const _0x1e8669 of _0x4dced9){const _0x310a0d=_0x1edb88[_0x1ebd9f(0x1e5,'bu84')](_0x1e8669);if(!_0x310a0d)continue;const _0x1047db=_0x310a0d[_0x1ebd9f(0x1ba,'(qU(')](SyntaxKind[_0x1ebd9f(0x165,'%rwo')])[_0x1ebd9f(0x1d8,'0byG')]()?.[_0x1ebd9f(0x214,'$Ta%')]();_0x1047db&&(_0x4743a9[_0x1e8669]=this[_0x1ebd9f(0x152,'a#nI')](_0x1047db));}return _0x4743a9;}[a1_0x17fc53(0x186,'HHA2')](_0x146912){const _0x129cd9=a1_0x17fc53,_0x2ac1b2=_0x146912[_0x129cd9(0x154,'jnbw')](_0x129cd9(0x17f,'Bss]'));if(!_0x2ac1b2)return[];const _0x1bb0d3=_0x2ac1b2[_0x129cd9(0x17c,'zWc4')](SyntaxKind[_0x129cd9(0x143,'a#nI')])[_0x129cd9(0x210,'Bss]')](SyntaxKind[_0x129cd9(0x15f,'$Ta%')]);return _0x1bb0d3[_0x129cd9(0x13f,'%rwo')]()[_0x129cd9(0x199,'J]rb')](_0x40e21a=>_0x40e21a[_0x129cd9(0x1d6,'Rl&v')]()[_0x129cd9(0x1e6,'2Geq')](/['"]/g,''));}[a1_0x17fc53(0x19b,'^otN')](_0xa72933){const _0x35c1c4=a1_0x17fc53,_0x77098f={},_0x48e886=[_0x35c1c4(0x146,']fZC'),'as',_0x35c1c4(0x140,'Rl&v'),_0x35c1c4(0x14a,'RD52'),_0x35c1c4(0x1e4,'lq*P')];for(const _0x719654 of _0x48e886){const _0x1ae651=_0xa72933[_0x35c1c4(0x15b,'0fTq')](_0x719654);if(!_0x1ae651)continue;const _0x5975c9=_0x1ae651[_0x35c1c4(0x205,'Il)i')](SyntaxKind[_0x35c1c4(0x1b7,'$Ta%')])[_0x35c1c4(0x1f0,'gRtN')]()?.[_0x35c1c4(0x181,'!]O&')]();_0x5975c9&&(_0x77098f[_0x719654]=_0x5975c9[_0x35c1c4(0x213,'gRtN')](/['"]/g,''));}return _0x77098f;}async[a1_0x17fc53(0x1a9,'6&8f')](){const _0x139236=a1_0x17fc53,_0x120a72=[];async function _0x2fb237(_0x5eef1f){const _0x3b4873=a1_0x88f3,_0x320119=await a1_0x4026f6[_0x3b4873(0x14b,'C2G1')](_0x5eef1f,{'withFileTypes':!![]});for(const _0x1033fe of _0x320119){const _0x28c0f2=a1_0x59ff51[_0x3b4873(0x20f,'^otN')](_0x5eef1f,_0x1033fe[_0x3b4873(0x1ae,'3bvX')]);if(_0x1033fe[_0x3b4873(0x18e,'bu84')]())await _0x2fb237(_0x28c0f2);else _0x1033fe[_0x3b4873(0x169,'jnbw')][_0x3b4873(0x1ad,'RnDn')](_0x3b4873(0x1ef,'3bvX'))&&_0x120a72[_0x3b4873(0x1c7,'QFe*')](_0x28c0f2);}}return await _0x2fb237(this[_0x139236(0x1b8,'(qU(')]),_0x120a72;}[a1_0x17fc53(0x1b0,'a#nI')](_0x34d261){const _0xf1ba97=a1_0x17fc53;return _0x34d261[_0xf1ba97(0x183,'&[Zq')](/([A-Z])/g,_0xf1ba97(0x216,'C2G1'))[_0xf1ba97(0x149,'a#nI')]()[_0xf1ba97(0x1e6,'2Geq')](/^_/,'');}[a1_0x17fc53(0x1ff,'Cp6D')](_0x20997c){const _0x1139d1=a1_0x17fc53;if(_0x20997c[_0x1139d1(0x1a5,'Cp6D')]('y'))return _0x20997c[_0x1139d1(0x1c4,'!]O&')](-0x1e3f+-0x59d+0x23dc,-(-0x97a+-0x177*-0x3+0x516))+_0x1139d1(0x201,'0tU2');if(_0x20997c[_0x1139d1(0x1a5,'Cp6D')]('s')||_0x20997c[_0x1139d1(0x22f,'Ugu5')]('x')||_0x20997c[_0x1139d1(0x1f4,'3bvX')]('ch')||_0x20997c[_0x1139d1(0x179,'G$cj')]('sh'))return _0x20997c+'es';return _0x20997c+'s';}[a1_0x17fc53(0x1d0,'RnDn')](_0x1bbbac){const _0x3b5814=a1_0x17fc53;if(_0x1bbbac===_0x3b5814(0x218,'5o(t'))return!![];if(_0x1bbbac===_0x3b5814(0x153,'FGM#'))return![];if(_0x1bbbac===_0x3b5814(0x20e,'0byG'))return null;if(_0x1bbbac===_0x3b5814(0x18b,'M!xE'))return undefined;if(/^['"]/[_0x3b5814(0x141,'c2!A')](_0x1bbbac))return _0x1bbbac[_0x3b5814(0x17a,'RD52')](-0x7c+0x59f*0x6+-0x7f*0x43,-(-0x2d*0x85+-0x265a*0x1+0x3dbc));if(/^\d+$/[_0x3b5814(0x1e2,'vcKE')](_0x1bbbac))return parseInt(_0x1bbbac,-0x10*-0x1b1+-0x1412+0x4*-0x1bd);return _0x1bbbac;}}
|